999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MapReduce 的個(gè)性化課程推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2021-03-01 05:25:02偉,許
關(guān)鍵詞:用戶課程系統(tǒng)

徐 偉,許 鵬

云計(jì)算、大數(shù)據(jù)、人工智能技術(shù)的發(fā)展改變了傳統(tǒng)的課程教學(xué)模式,促進(jìn)了線下線上課程教學(xué)模式的融合,尤其是在今年的新冠肺炎疫情期間,各學(xué)校為了深入貫徹教育部“停課不停學(xué)”的指示精神,要求教師在職教云、騰訊課堂、學(xué)習(xí)通等在線教育平臺(tái)上進(jìn)行線上授課,開展線上課程建設(shè).線上課程以其具有的不受時(shí)間場地限制、授課形式靈活多樣的特點(diǎn),在新冠肺炎疫情期間得到廣泛應(yīng)用.據(jù)不完全統(tǒng)計(jì),新冠肺炎疫情期間線上課程數(shù)量急劇增加,占課程總量的85%,在一定程度上滿足了學(xué)生學(xué)習(xí)知識(shí)和技能的需求,但同時(shí)也給學(xué)生選課帶來了困擾.為了能夠讓學(xué)生在眾多的線上課程中選擇到適合自身學(xué)習(xí)特點(diǎn)的課程,筆者提出設(shè)計(jì)開發(fā)一款高效精準(zhǔn)的個(gè)性化推薦系統(tǒng)[1],該推薦系統(tǒng)可以根據(jù)用戶的歷史行為數(shù)據(jù)發(fā)現(xiàn)用戶的喜好,形成用戶畫像數(shù)據(jù),從而為用戶做出精準(zhǔn)的個(gè)性化推薦,提供更加優(yōu)質(zhì)的服務(wù).

本文在對(duì)當(dāng)前主流在線教育平臺(tái)的課程推薦功能進(jìn)行深入研究的基礎(chǔ)上,對(duì)學(xué)生購買課程的歷史數(shù)據(jù)進(jìn)行分析,將評(píng)分?jǐn)?shù)據(jù)作為學(xué)生對(duì)課程喜好度的主要依據(jù),將評(píng)論數(shù)據(jù)作為次要依據(jù),基于協(xié)同過濾推薦算法,使用MapReduce 計(jì)算模型計(jì)算出課程間的相似度,最終向?qū)W生推薦符合其喜好的課程列表,實(shí)現(xiàn)了個(gè)性化課程推薦[2]功能.

1 系統(tǒng)架構(gòu)

整個(gè)系統(tǒng)由日志采集子系統(tǒng)、數(shù)據(jù)清洗子系統(tǒng)、數(shù)據(jù)計(jì)算子系統(tǒng)、在線教育平臺(tái)業(yè)務(wù)子系統(tǒng)組成.通過收集業(yè)務(wù)系統(tǒng)學(xué)生用戶的行為數(shù)據(jù),針對(duì)不同學(xué)生進(jìn)行個(gè)性化課程推薦,以滿足不同學(xué)生用戶的需求.系統(tǒng)架構(gòu)如圖1 所示.

(1)日志采集子系統(tǒng).負(fù)責(zé)采集用戶的操作日志,并通過大數(shù)據(jù)組件Flume 將每天的數(shù)據(jù)實(shí)時(shí)采集到HDFS 中.Nginx 服務(wù)器除了作為網(wǎng)站的代理服務(wù)器外,還作為網(wǎng)站日志接收服務(wù)器,網(wǎng)站所產(chǎn)生的日志信息發(fā)送到Nginx服務(wù)器,Nginx 將接收到的日志存儲(chǔ)在日志文件access.log 中.Flume 組件運(yùn)行在集群中并實(shí)時(shí)監(jiān)控access.log 文件的增量日志,一旦監(jiān)測到有新的增量日志就會(huì)將新日志導(dǎo)入到HDFS文件系統(tǒng)的指定目錄[3].

(2)數(shù)據(jù)清洗子系統(tǒng).負(fù)責(zé)對(duì)日志進(jìn)行數(shù)據(jù)清洗,剔除無效數(shù)據(jù),從HDFS 指定目錄讀入非結(jié)構(gòu)化日志數(shù)據(jù),然后根據(jù)特定規(guī)則切分日志條目,將不符合特定規(guī)則的臟日志數(shù)據(jù)舍棄,并將清洗后的數(shù)據(jù)存入數(shù)據(jù)倉庫以便于其他應(yīng)用程序使用[4].

(3)數(shù)據(jù)計(jì)算子系統(tǒng).基于協(xié)同過濾推薦算法,采用MapReduce 離線計(jì)算框架,通過Linux 定時(shí)任務(wù)[5]周期性計(jì)算課程相似度,并把結(jié)果回寫到MySQL 的推薦表中.

(4)在線教育平臺(tái)業(yè)務(wù)子系統(tǒng).本業(yè)務(wù)系統(tǒng)是基于Python 語言的輕量級(jí)Web 框架Flask快速開發(fā)的在線教育平臺(tái)[6],主要包含用戶模塊、課程模塊、訂單模塊、評(píng)論模塊等核心業(yè)務(wù)模塊,具備線上教育平臺(tái)的核心業(yè)務(wù)功能,包括前臺(tái)課程展示頁面與后臺(tái)管理員頁面,同時(shí)在課程詳情頁面還包括課程的推薦列表.在管理員頁面可以對(duì)課程進(jìn)行相應(yīng)的操作,以及查看不同維度統(tǒng)計(jì)信息.在Web 開發(fā)中,頁面跳轉(zhuǎn)是通過不同的Flask 控制器View 視圖函數(shù)進(jìn)行控制,根據(jù)用戶的請(qǐng)求路徑調(diào)用對(duì)應(yīng)的視圖函數(shù)進(jìn)行處理[7].

2 MapReduce 計(jì)算模型執(zhí)行過程

本文采用MapReduce 離線計(jì)算模型,使用Linux 下執(zhí)行定時(shí)任務(wù)工具crontab 周期性對(duì)學(xué)生行為日志數(shù)據(jù)進(jìn)行離線計(jì)算,并將計(jì)算結(jié)果通過Sqoop 同步更新到數(shù)據(jù)庫中.MapReduce 采用的是分而治之的數(shù)據(jù)處理方式,Map操作即為“分”操作,將一個(gè)大數(shù)據(jù)塊分解為多個(gè)切片,交由集群中的各個(gè)節(jié)點(diǎn)去計(jì)算;而Reduce 即為“合”操作,合并各個(gè)節(jié)點(diǎn)上的計(jì)算結(jié)果并輸出[8].

MapReduce 編程模型是一種并行數(shù)據(jù)計(jì)算模型,該模型根據(jù)數(shù)據(jù)輸入量的大小將數(shù)據(jù)劃分為N個(gè)相對(duì)獨(dú)立的數(shù)據(jù)切片,啟動(dòng)N個(gè)Map 任務(wù),每個(gè)Map 任務(wù)獲得一個(gè)切片數(shù)據(jù),該切片數(shù)據(jù)經(jīng)計(jì)算處理后生成鍵值對(duì),以(Key/Value)的形式輸出,在Map 和Reduce 中間需要一個(gè)Shuffle 過程,該過程將Map 的輸出結(jié)果Key/Value 鍵值對(duì)按Key 進(jìn)行分組,形成P個(gè)Key/ValueList,然后 交 給P個(gè)Reduce 任務(wù)去處理,即一個(gè)Shuffle 之后的Key 對(duì)應(yīng)一個(gè)Reduce 任務(wù),如果用戶指定了Reduce 任務(wù)的個(gè)數(shù),則需要通過對(duì)Key 進(jìn)行Hash 計(jì)算,求出Hash 值,然后根據(jù)Hash 值將不同的Key 發(fā)送到不同的Reduce 任務(wù),Reduce 任務(wù)接收到來自Shuffle 的Key/ValueList 輸入,通過迭代ValueList 計(jì)算并輸出最終結(jié)果,這是單個(gè)MapReduceJob 的完整執(zhí)行過程[9],如圖2 所示.

在實(shí)際項(xiàng)目開發(fā)中,可以根據(jù)自身的業(yè)務(wù)功能進(jìn)行靈活選擇,比如,如果只是一個(gè)簡單的數(shù)據(jù)清洗作業(yè)(Job),可以只有Map 過程,而沒有Reduce 過程;也可以將多個(gè)Job 串聯(lián)在一起,形成一個(gè)復(fù)雜的計(jì)算邏輯,將JobA的輸出作為JobB 的輸入,JobB 的輸出作為JobC 的輸入直至整個(gè)任務(wù)完成[10].

3 基于協(xié)同過濾算法的課程推薦實(shí)現(xiàn)過程

本課程推薦系統(tǒng)主要實(shí)現(xiàn)兩個(gè)功能,分步驟實(shí)現(xiàn),首先計(jì)算出課程與課程間的相似度,然后根據(jù)用戶的訂單及評(píng)分?jǐn)?shù)據(jù),找出課程相似度比較高的課程列表進(jìn)行推薦.以下為具體實(shí)現(xiàn)過程.

首先,獲取用戶對(duì)某一課程的評(píng)價(jià)信息,主要是評(píng)分?jǐn)?shù)據(jù),這一信息可以在訂單表中獲取.通過Sqoop 數(shù)據(jù)導(dǎo)入導(dǎo)出工具,按指定要求增量或者全部導(dǎo)出所有數(shù)據(jù)到HDFS 指定目錄,這里只導(dǎo)出用戶ID、課程ID 和評(píng)分?jǐn)?shù)據(jù).數(shù)據(jù)集如表1 所示.

圖2 單個(gè)MapReduceJob 完整執(zhí)行過程

表1 課程評(píng)分表

然后,運(yùn)行指定的MapReduce 程序,讀入上述數(shù)據(jù)集,建立用戶對(duì)課程的評(píng)分矩陣并把計(jì)算結(jié)果存入相應(yīng)目錄中.用戶對(duì)課程評(píng)分矩陣如圖3 所示.

圖3 用戶對(duì)課程評(píng)分矩陣

評(píng)分矩陣的行為課程ID,列為用戶ID,評(píng)分矩陣中的數(shù)值代表該ID 用戶對(duì)該ID 課程的評(píng)分?jǐn)?shù)據(jù),如果數(shù)據(jù)為0,則表示該ID 的用戶尚未對(duì)該課程進(jìn)行評(píng)價(jià).從該矩陣列方向看,每一列在MapReduce 程序中可以用一行字符串101:5,102:0,103:-3,104:4.5,105:0,106:4,107:4 表示.按照上述方式處理矩陣,圖3 用戶評(píng)分矩陣的5 列就可以由5 行類似的字符串來構(gòu)成.那么第一個(gè)MapReduce 程序的功能就是將關(guān)系型評(píng)分矩陣按照列維度進(jìn)行數(shù)據(jù)轉(zhuǎn)換操作.

其次,讀入評(píng)分矩陣,計(jì)算出課程的同現(xiàn)矩陣[11],如圖4 所示.

圖4 課程同現(xiàn)矩陣

課程同現(xiàn)矩陣的行為課程ID,列也為課程ID,矩陣的值表示兩個(gè)課程同時(shí)被用戶評(píng)分的次數(shù),例如104 和105 這個(gè)課程組合被3、5 兩個(gè)ID 的用戶評(píng)價(jià)過,那么在矩陣中104 和105 所對(duì)應(yīng)的數(shù)值就是2.如果兩個(gè)課程同時(shí)被多個(gè)用戶購買并評(píng)價(jià)過,那么這兩個(gè)課程在很大程度上是相似課程,同時(shí)被購買并評(píng)價(jià)的次數(shù)越多,即課程同現(xiàn)矩陣中數(shù)值越大,根據(jù)協(xié)同過濾算法的定義,這兩個(gè)課程的相似度就越高.從列方向上看,這個(gè)同現(xiàn)矩陣的每一列在MapReduce 程序中可以通過簡單的字 符 串102:101 3,102:102 3,102:103 2,102:104 2,102:105 1,102:106 1,102:107 0表示,x*y的同現(xiàn)矩陣就由x個(gè)以上的字符串(y行)組成.可以看出,課程和課程的同現(xiàn)矩陣需要另外一個(gè)MapReduce 任務(wù)來完成,它是將第一個(gè)MapReduce 任務(wù)的輸出作為輸入進(jìn)行計(jì)算的.

最后,計(jì)算課程相似度并產(chǎn)生最終推薦結(jié)果,推薦結(jié)果等于用戶對(duì)課程的評(píng)分矩陣*課程同現(xiàn)矩陣.課程的同現(xiàn)次數(shù)*用戶對(duì)各個(gè)課程的評(píng)分,反應(yīng)出用戶對(duì)課程的評(píng)分.

例如,計(jì)算用戶2 對(duì)105 課程的喜好度,那么必須找到和105 課程相似的課程,課程之間的相似度體現(xiàn)在同現(xiàn)度上,同現(xiàn)度越高,相似度越高.比如101 課程和105 課程的同現(xiàn)度為4,說明101 課程和105 課程相似,用戶2 對(duì)105 課程的評(píng)分為2,表示用戶2 對(duì)105 課程的喜好度,101 課程和105 課程的同現(xiàn)度*用戶2對(duì)101 課程的評(píng)分可得到用戶2 對(duì)105 課程的喜好度權(quán)重值,將用戶2 對(duì)各課程評(píng)分權(quán)重相加,最終計(jì)算出用戶2 對(duì)105 課程的喜好度.第三個(gè)MapReduce 任務(wù)的功能就是實(shí)現(xiàn)評(píng)分矩陣和同現(xiàn)矩陣的相乘,并輸出結(jié)果.推薦結(jié)果如圖5 所示.

圖5 推薦結(jié)果

個(gè)性化課程推薦系統(tǒng)開發(fā)完成后,部署在學(xué)校數(shù)據(jù)中心的服務(wù)器上,學(xué)生可以通過互聯(lián)網(wǎng)或校園網(wǎng)訪問使用該系統(tǒng).為了解學(xué)生使用該系統(tǒng)的實(shí)際效果,設(shè)計(jì)了在線問卷調(diào)查系統(tǒng),經(jīng)統(tǒng)計(jì)共874 名學(xué)生參與問卷調(diào)查.調(diào)查數(shù)據(jù)顯示:71%的學(xué)生認(rèn)為該系統(tǒng)可以滿足自己的個(gè)性化需求,感到“非常滿意”;23%的學(xué)生認(rèn)為對(duì)自己選課有所幫助,感到“滿意”;6%的學(xué)生認(rèn)為該系統(tǒng)的個(gè)性化課程推薦對(duì)自己幫助不大,感覺“一般”;沒有同學(xué)感到“不滿意”.系統(tǒng)滿意度調(diào)查如圖6 所示.

圖6 推薦系統(tǒng)滿意度調(diào)查

4 結(jié)語

隨著在線教育體系的不斷發(fā)展和完善,線上教學(xué)模式必將成為今后學(xué)生學(xué)習(xí)知識(shí)和技能的一個(gè)重要途徑,而在線教育平臺(tái)如何滿足學(xué)生用戶個(gè)性化需求將是一個(gè)值得研究的課題.本文采用協(xié)同過濾推薦算法,根據(jù)學(xué)生對(duì)課程的評(píng)分?jǐn)?shù)據(jù)和對(duì)課程的歷史評(píng)價(jià)數(shù)據(jù),了解學(xué)生感興趣的課程特征,使用MapReduce 離線計(jì)算框架計(jì)算出課程之間的相似度,從而實(shí)現(xiàn)了個(gè)性化的課程推薦功能,在很大程度上滿足了學(xué)生的需求.后期將在業(yè)務(wù)系統(tǒng)中采集學(xué)生的個(gè)人愛好、喜歡的講師授課風(fēng)格等更多個(gè)性化特征數(shù)據(jù)并應(yīng)用于算法模型中,進(jìn)一步提高推薦系統(tǒng)的精準(zhǔn)性.

猜你喜歡
用戶課程系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
數(shù)字圖像處理課程混合式教學(xué)改革與探索
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
軟件設(shè)計(jì)與開發(fā)實(shí)踐課程探索與實(shí)踐
為什么要學(xué)習(xí)HAA課程?
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
主站蜘蛛池模板: 久久女人网| www亚洲精品| 成人午夜天| 99久久婷婷国产综合精| 操操操综合网| 亚洲日本韩在线观看| 熟女成人国产精品视频| 精品一区国产精品| 青草视频免费在线观看| 国产日本一线在线观看免费| 毛片免费高清免费| 中文国产成人久久精品小说| 日本精品中文字幕在线不卡| 四虎永久免费在线| 国产成人亚洲综合A∨在线播放| 免费AV在线播放观看18禁强制| 国产亚洲欧美在线专区| 国产玖玖玖精品视频| 国产呦视频免费视频在线观看 | 国产亚洲精品97AA片在线播放| 国产成人高清精品免费软件| 日韩黄色大片免费看| 国产美女无遮挡免费视频网站| 91啪在线| 国产精品永久久久久| 日韩一区二区三免费高清 | 国产美女91呻吟求| 国产一在线| 99热国产这里只有精品无卡顿"| 人妻丰满熟妇AV无码区| 国产91丝袜在线观看| 手机精品福利在线观看| 四虎免费视频网站| 欧美一级高清免费a| 精品免费在线视频| 欧美一级夜夜爽www| 国产成人夜色91| 亚洲欧美另类日本| 国产不卡网| 激情成人综合网| 天天婬欲婬香婬色婬视频播放| 男人天堂亚洲天堂| 久久精品91麻豆| 久久久噜噜噜久久中文字幕色伊伊| 青青青视频91在线 | 亚洲第一视频网| 国产噜噜在线视频观看| 毛片基地美国正在播放亚洲 | 色婷婷综合在线| 久久黄色小视频| 手机在线国产精品| 热伊人99re久久精品最新地| 无码免费视频| 老司机久久99久久精品播放| 国产美女自慰在线观看| 91麻豆精品国产91久久久久| 日韩精品中文字幕一区三区| 人妻精品久久无码区| 欧美成人影院亚洲综合图| 五月婷婷伊人网| 97视频免费看| 国产女人在线视频| 国产在线观看一区精品| 91亚洲视频下载| 亚洲人成网站观看在线观看| 国产在线麻豆波多野结衣| 三级毛片在线播放| 亚洲AⅤ无码日韩AV无码网站| 五月激情综合网| 亚洲欧洲美色一区二区三区| 男人天堂伊人网| 日韩黄色精品| 成人在线亚洲| 99久久国产综合精品女同 | 久久综合亚洲鲁鲁九月天| 尤物亚洲最大AV无码网站| 亚洲侵犯无码网址在线观看| 日韩成人午夜| 国产美女精品人人做人人爽| 婷婷六月激情综合一区| 国产精品入口麻豆| 米奇精品一区二区三区|