徐文健 劉青昆 鄭曉薇 李永波
1(遼寧師范大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院 遼寧 大連 116081) 2(瓦房店市第八高級(jí)中學(xué) 遼寧 大連 116300)
2012年是大規(guī)模開放在線課程MOOC元年,隨著MOOC的全球化,MOOC的學(xué)習(xí)者和課程規(guī)模都在不斷擴(kuò)大,并且逐漸在各個(gè)高校的教育方式中發(fā)揮著重要的作用。
MOOC的全新學(xué)習(xí)模式的優(yōu)點(diǎn)十分突出,然而在這種自由選課和自主學(xué)習(xí)的學(xué)習(xí)模式下,不可避免地會(huì)出現(xiàn)傳統(tǒng)學(xué)習(xí)模式下未曾遇到的一些問題:比如在線課程種類繁多、魚龍混雜,學(xué)習(xí)者很多時(shí)候并不能找到真正適合自己的課程。當(dāng)學(xué)習(xí)者發(fā)現(xiàn)課程并不適合自己時(shí),學(xué)習(xí)時(shí)間已經(jīng)過半,在不停的切換課程后可能會(huì)對(duì)課程學(xué)習(xí)失去耐心。而隨著學(xué)習(xí)過程的進(jìn)行,學(xué)習(xí)者對(duì)課程表現(xiàn)出的忠誠度也會(huì)發(fā)生變化,最終能堅(jiān)持將課程學(xué)習(xí)完成的只是一小部分[1]。以上問題的出現(xiàn)導(dǎo)致了在線學(xué)習(xí)者的學(xué)習(xí)效率降低、學(xué)習(xí)質(zhì)量難以保證。在有些MOOC平臺(tái)上為學(xué)習(xí)者提供了相應(yīng)的課程推薦功能,通過對(duì)學(xué)習(xí)者的學(xué)習(xí)記錄等信息來分析用戶或課程之間相似程度以及課程的熱門程度。但隨著MOOC學(xué)習(xí)者的人數(shù)逐漸增加,大量學(xué)習(xí)者的數(shù)據(jù)加大了服務(wù)器的負(fù)載和工作壓力;同時(shí)目前的推薦算法不能針對(duì)性地給學(xué)習(xí)者個(gè)性化推薦,推薦結(jié)果往往并不盡如人意。
利用Apache-Mahout機(jī)器學(xué)習(xí)框架中的協(xié)同過濾推薦算法可對(duì)在線課程進(jìn)行評(píng)價(jià),得到相應(yīng)的推薦值矩陣。但這種算法對(duì)課程的評(píng)價(jià)僅考慮了學(xué)習(xí)這門課程的人數(shù)的多少以及部分讀者的評(píng)論,沒有將課程本身的質(zhì)量因素和適用性加入到對(duì)學(xué)習(xí)者進(jìn)行推薦的過程中。本文從對(duì)在線課程作綜合評(píng)價(jià)的角度提出IRS課程評(píng)價(jià)方法,以交互度I、評(píng)價(jià)率R、用戶評(píng)分S等參數(shù)作為評(píng)價(jià)指標(biāo)。在進(jìn)行個(gè)性化推薦時(shí),將用戶的偏好與IRS結(jié)合形成新的推薦算法。本文在Hadoop分布式云計(jì)算環(huán)境下,以慕課網(wǎng)學(xué)習(xí)者的學(xué)習(xí)數(shù)據(jù)為實(shí)驗(yàn)樣本,Hadoop集群中各個(gè)節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行并行處理,處理速度快、延遲低且易于操作。實(shí)驗(yàn)結(jié)果表明本文的IRS推薦算法所推薦的課程更適合學(xué)習(xí)者的個(gè)性化學(xué)習(xí)。實(shí)驗(yàn)數(shù)據(jù)體現(xiàn)了在Hadoop集群下IRS并行推薦算法對(duì)大數(shù)據(jù)量處理的高效性,同時(shí)驗(yàn)證了該推薦算法的可行性。
參與度的概念在傳統(tǒng)課堂教學(xué)的研究中已經(jīng)有很多成果,早期研究中將學(xué)習(xí)參與度定義為學(xué)生關(guān)注,并完成一定學(xué)習(xí)任務(wù)的學(xué)習(xí)參與行為表現(xiàn)。之后學(xué)者不斷對(duì)學(xué)習(xí)參與度的概念提出新的內(nèi)容和新的定義,現(xiàn)在的學(xué)習(xí)參與度的概念在原有概念的基礎(chǔ)上加入了學(xué)習(xí)者情感方面的內(nèi)容,不僅指學(xué)生完成學(xué)習(xí)任務(wù),同時(shí)在學(xué)習(xí)的過程中的積極認(rèn)知、行為、情感等表現(xiàn)[2]。
在線學(xué)習(xí)參與度與傳統(tǒng)課堂教學(xué)的參與度最大的不同在于學(xué)習(xí)環(huán)境的不同,而兩種環(huán)境下學(xué)習(xí)者學(xué)習(xí)參與的實(shí)質(zhì)是相同的。同樣是在完成學(xué)習(xí)任務(wù)時(shí),表現(xiàn)于努力理解學(xué)習(xí)內(nèi)容,花費(fèi)精力解決學(xué)習(xí)中出現(xiàn)的問題,反復(fù)觀看課程視頻、反復(fù)研讀課程資料課件、積極與老師同學(xué)進(jìn)行交流探討、認(rèn)真完成作業(yè)、分享學(xué)習(xí)成果、幫助學(xué)習(xí)者解決難題等[3]。由此可見,學(xué)習(xí)者對(duì)于一門課程的參與度很大程度上影響了學(xué)習(xí)者對(duì)該課程感興趣的程度,因而可以將其作為評(píng)價(jià)該門課程的一項(xiàng)指標(biāo)。為了更合理地描述學(xué)習(xí)者對(duì)課程的認(rèn)可程度,基于學(xué)習(xí)參與度的定義,本文提出交互度I的概念,指學(xué)習(xí)者對(duì)于所學(xué)習(xí)的某門課程,單位時(shí)間內(nèi)與該課程的平均交互的次數(shù)。其量化公式為:
(1)
式中:Q代表交互數(shù),指學(xué)習(xí)者在學(xué)習(xí)一門課程中,做筆記、問答、評(píng)論、作業(yè)、觀看視頻等動(dòng)作的總次數(shù);RC代表完成率,表示某人學(xué)習(xí)此門課程的進(jìn)度,即當(dāng)前已完成課程量與課程總量的比值;T代表課程時(shí)長(zhǎng);n為學(xué)習(xí)者樣本的數(shù)量。
慕課網(wǎng)是垂直的互聯(lián)網(wǎng)IT技能免費(fèi)培訓(xùn)的網(wǎng)站,網(wǎng)站中有涵蓋IT領(lǐng)域各方面超多700個(gè)課程,數(shù)以百萬計(jì)的學(xué)習(xí)者。在用戶對(duì)于課程的學(xué)習(xí)中,學(xué)習(xí)者可對(duì)內(nèi)容是否充實(shí)、邏輯是否清晰,是否簡(jiǎn)單易懂進(jìn)行打分。經(jīng)統(tǒng)計(jì),截至2017年3月30日之前,在慕課網(wǎng)已有的課程評(píng)分中,學(xué)習(xí)者對(duì)內(nèi)容充實(shí)、邏輯清晰、簡(jiǎn)單易懂的平均評(píng)分分別為9.79、9.57、9.50(10滿分),學(xué)習(xí)者的綜合平均評(píng)分為9.60分(10滿分)。從各個(gè)課程來看,絕大多數(shù)課程的評(píng)分均高于9.0分,由此可看出,參與評(píng)價(jià)的學(xué)習(xí)者對(duì)課程表示認(rèn)可的程度很高。但由于參與評(píng)價(jià)的學(xué)習(xí)者在總學(xué)習(xí)人數(shù)中不足百分之一,僅憑少數(shù)學(xué)習(xí)者的評(píng)分并不能全面評(píng)價(jià)一門課程。
為了更客觀、合理地評(píng)價(jià)一門在線課程,本文提出一個(gè)評(píng)價(jià)對(duì)象基于課程的IRS指標(biāo)評(píng)價(jià)方法,用于評(píng)價(jià)一門課程是否具有傳統(tǒng)意義上較高的參與度,對(duì)學(xué)習(xí)者有較大的吸引力,使其更好地參與到課程學(xué)習(xí)當(dāng)中。IRS指標(biāo)中:I為交互度;評(píng)價(jià)率R為參與該課程評(píng)價(jià)的總?cè)藬?shù)與參加該課程學(xué)習(xí)的總?cè)藬?shù)的比值,該數(shù)值越高,體現(xiàn)出越多學(xué)習(xí)者愿意為該課程進(jìn)行評(píng)價(jià),為保證數(shù)據(jù)可用性,采用千分?jǐn)?shù)記錄數(shù)據(jù),見式(2)。評(píng)分S為參與評(píng)價(jià)的所有用戶根據(jù)各個(gè)方面對(duì)該課程的主觀打分的平均值。
(2)
IRS指標(biāo)評(píng)價(jià)量化公式為:
IRS=α1I·+α2R·+α3S·
(3)
式中:α1、α2、α3為I、R、S各個(gè)指標(biāo)的權(quán)重,通過熵值法確定。I·、R·、S·為各個(gè)課程所對(duì)應(yīng)指標(biāo)的真實(shí)值。表1列舉出了IRS評(píng)價(jià)指標(biāo)中各個(gè)指標(biāo)的含義。
表1 IRS各個(gè)指標(biāo)的含義
IRS評(píng)價(jià)指標(biāo)權(quán)衡影響學(xué)習(xí)者學(xué)習(xí)質(zhì)量的三個(gè)因素,綜合并客觀地對(duì)一門課程進(jìn)行量化,從而進(jìn)行課程評(píng)價(jià)。
本文爬取并計(jì)算Java入門、Ajax全接觸、C語言入門等15門課程的各個(gè)指標(biāo)的數(shù)據(jù),得到各指標(biāo)的權(quán)重:α1=0.662、α2=0.205、α3=0.133,由此可見交互度在IRS指標(biāo)系列中所占比重較大,學(xué)習(xí)者在學(xué)習(xí)的過程中是否能夠更多地參與到課程中去,對(duì)于評(píng)價(jià)一門課程有著重要的參考意義。
推薦系統(tǒng)的作用在于通過數(shù)據(jù)挖掘等技術(shù),找到用戶與物品等信息上的聯(lián)系,通過對(duì)信息的分析與計(jì)算,發(fā)現(xiàn)適合用戶或用戶更感興趣的信息,結(jié)合這些信息對(duì)用戶做出相應(yīng)的推薦[4]。在實(shí)際應(yīng)用中,系統(tǒng)在對(duì)用戶進(jìn)行推薦時(shí),需要實(shí)時(shí)處理大量數(shù)據(jù),為了保證推薦系統(tǒng)能夠高效地處理海量數(shù)據(jù),分布式云計(jì)算能出色地完成任務(wù)。
作為目前應(yīng)用廣泛的云計(jì)算平臺(tái),Hadoop具有計(jì)算效率高、穩(wěn)定性好、開源等特點(diǎn)。Hadoop的核心:HDFS(分布式文件系統(tǒng)),實(shí)現(xiàn)對(duì)分布式存儲(chǔ)的底層支持[5];MapReduce是云計(jì)算并行框架,Map(拆分映射)和Reduce(化簡(jiǎn)規(guī)約),其思想是:Map函數(shù)將數(shù)據(jù)切割為獨(dú)立的數(shù)據(jù)塊,分配給Hadoop集群做并行計(jì)算,再通過Reduce函數(shù)將結(jié)果匯總,輸出需要的結(jié)果[6]。其函數(shù)式編程思想的概念表達(dá)可表示為:
Map
Mahout是ASF(Apache Software Foundation)旗下的一個(gè)開源項(xiàng)目,提供了可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn)。其主要部分為協(xié)同過濾(CF)、推薦引擎(recommender)、聚類(clusting)和分類(classification)[7]。通過Apache Hadoop庫,可以將Mahout擴(kuò)展至分布式云計(jì)算平臺(tái),并進(jìn)行相應(yīng)的計(jì)算功能。
2.2.1共現(xiàn)矩陣
在Mahout協(xié)同過濾推薦算法中,用到共現(xiàn)矩陣M。共現(xiàn)矩陣中的元素為在某些用戶偏好值列表中每個(gè)項(xiàng)目對(duì)共同出現(xiàn)的次數(shù),即用戶對(duì)兩種項(xiàng)目同時(shí)偏好的次數(shù),矩陣中對(duì)角線上的元素?zé)o效。
2.2.2計(jì)算用戶向量
在進(jìn)行個(gè)性化推薦時(shí),將每一個(gè)用戶的偏好視為一個(gè)向量,這些用戶偏好被視為n維空間中的點(diǎn),每個(gè)維度代表一個(gè)項(xiàng)目,用戶對(duì)項(xiàng)目的偏好值為此向量中的值,用戶沒有表達(dá)偏好的項(xiàng)目映射維向量中的0值。由于用戶通常情況下只對(duì)一小部分項(xiàng)目表達(dá)過偏好,所以用戶向量中的值大多為零,是一個(gè)系數(shù)矩陣。
2.2.3產(chǎn)生推薦結(jié)果
將共現(xiàn)矩陣M和用戶向量U相乘得到推薦結(jié)果R,如下式所示:
(4)
式中:對(duì)于課程x,uix代表用戶i對(duì)應(yīng)的偏好值,Rix為推薦值,在得到的推薦值矩陣R中,矩陣R對(duì)應(yīng)的值為相應(yīng)課程的推薦值,將這些值從大到小進(jìn)行排序即為所求推薦結(jié)果[8]。
2.3.1IRS推薦算法
基于原始的Mahout推薦方法,引入IRS指標(biāo)評(píng)價(jià),將學(xué)習(xí)者對(duì)已學(xué)習(xí)過的課程的評(píng)分作為用戶偏好值構(gòu)成向量,得到改進(jìn)后的推薦方法。如下式所示:
(5)
2.3.2算法實(shí)現(xiàn)
在Mahout工具中,org.apache.mahout.cf.taste.hadoop.item.RecommenderJob
將推薦過程中各種Mapper和Reducer組件粘連在一起,將原封裝代碼中偏好值的計(jì)算方式按照式(5)進(jìn)行更改,在HDFS中得到改進(jìn)后的偏好值和偏好向量。
本文通過網(wǎng)絡(luò)爬蟲從慕課網(wǎng)得到學(xué)習(xí)者的數(shù)據(jù),包括學(xué)習(xí)者學(xué)習(xí)過的課程和對(duì)應(yīng)的評(píng)分,在Mahout的RecommenderJob作業(yè)下,進(jìn)行分布式計(jì)算,其推薦算法的基本流程為:
(1) 生成用戶向量:map函數(shù)解析每一個(gè)用戶ID和若干個(gè)課程ID,實(shí)現(xiàn)一一對(duì)應(yīng)的關(guān)系;Reduce函數(shù)利用全部課程ID,與用戶的偏好值對(duì)應(yīng),構(gòu)造用戶向量。
(2) 計(jì)算共現(xiàn)關(guān)系:將流程(1)的輸出結(jié)果作為輸入,通過第二個(gè)MapReduce函數(shù),循環(huán)遍歷非零元素進(jìn)行累計(jì),統(tǒng)計(jì)課程共現(xiàn)的次數(shù),得到共現(xiàn)矩陣。
(3) 計(jì)算用戶偏好向量:將預(yù)計(jì)算的k值與學(xué)習(xí)者對(duì)應(yīng)的偏好值做乘積,構(gòu)成用戶偏好向量;對(duì)流程(2)得到的共現(xiàn)矩陣的每一列的列向量與用戶向量的對(duì)應(yīng)元素相乘,將結(jié)果保存至推薦向量R中。
(4) 計(jì)算矩陣乘:通過兩個(gè)MapReduce函數(shù)將共現(xiàn)矩陣與用戶向量歸并為一條輸出記錄并存儲(chǔ)下來。
(5) 形成推薦:算法為每個(gè)用戶合并推薦向量,將推薦值按從大到小的順序進(jìn)行排序,除去學(xué)習(xí)者已經(jīng)學(xué)習(xí)過的課程,找到N個(gè)最大值(為方便計(jì)算和統(tǒng)計(jì),本文實(shí)驗(yàn)中N取值為3),輸出得到推薦結(jié)果。
本文中實(shí)驗(yàn)使用的硬件平臺(tái)由三臺(tái)CPU Inter(R) E5-2609 四核2.40 GHz、8 GB的惠普PC構(gòu)建,其中一臺(tái)Hadoop3作為主機(jī)來分配任務(wù),其余兩臺(tái)Hadoop2、Hadoop1作為從機(jī)來實(shí)現(xiàn)計(jì)算任務(wù)。搭載Ubuntu 14.04操作系統(tǒng),安裝JDK1.7.0_25、Hadoop-2.7.3、mahout-0.12.0和Eclipse java EE IDE集成開發(fā)環(huán)境。設(shè)定分布式環(huán)境Hadoop和mahout環(huán)境存放目錄為/usr/hadoop。
本次實(shí)驗(yàn)分別選取了1.5 MB(18 600條記錄)、3.0 MB(37 306條記錄)、6.0 MB(74 512條記錄)、12.0 MB(149 024條記錄)四種數(shù)據(jù)量大小不同的學(xué)習(xí)者信息,數(shù)據(jù)文件表(部分)內(nèi)容為不同的學(xué)習(xí)者所學(xué)習(xí)過的課程及課程編號(hào),如圖1所示。在Hadoop-Mahout環(huán)境下通過單個(gè)節(jié)點(diǎn)、雙節(jié)點(diǎn)和三節(jié)點(diǎn)分別對(duì)這些數(shù)據(jù)表進(jìn)行實(shí)驗(yàn)。
圖1 userID-itemID數(shù)據(jù)文件
以1.5 MB大小的數(shù)據(jù)文件表的分布式計(jì)算為例,輸出的推薦結(jié)果如圖2所示,輸出格式為:userID [itemID:R1,itemID2:R2,itemID3:R3]。
圖2 1.5 MB文件推薦結(jié)果
從輸出結(jié)果看出,對(duì)用戶1的推薦課程為2號(hào)、11號(hào)、12號(hào)課程,推薦指數(shù)分別為1 824 365,1 043 211,775 426。圖中其他行是對(duì)其他用戶的推薦結(jié)果。
并行加速比用來衡量并行機(jī)工作的速度,即順序執(zhí)行時(shí)間與并行執(zhí)行時(shí)間的比值;并行效率為加速比與節(jié)點(diǎn)個(gè)數(shù)的比值。本實(shí)驗(yàn)的評(píng)價(jià)數(shù)值計(jì)算如表2所示。
表2 并行執(zhí)行效果對(duì)比
表2顯示出在不同的數(shù)據(jù)規(guī)模中,隨著數(shù)據(jù)量的增大,集群所承擔(dān)的額外開銷所占的比例變小,加速比和并行效率也相應(yīng)增加。從而證明本文設(shè)計(jì)的推薦算法適用于分布式環(huán)境,并驗(yàn)證了分布式環(huán)境下并行計(jì)算的高效性。
通過實(shí)驗(yàn)可得出結(jié)論:在節(jié)點(diǎn)數(shù)目一定時(shí),執(zhí)行時(shí)間的縮短趨勢(shì)隨著數(shù)據(jù)規(guī)模的增加而加大;在數(shù)據(jù)規(guī)模一定時(shí),執(zhí)行時(shí)間隨節(jié)點(diǎn)數(shù)的增加而相應(yīng)大幅減少[9]。
本實(shí)驗(yàn)隨機(jī)選取100名學(xué)習(xí)者的學(xué)習(xí)數(shù)據(jù),抽取相關(guān)的在線課程作為測(cè)試數(shù)據(jù)集,對(duì)改進(jìn)前后的推薦算法分別進(jìn)行實(shí)驗(yàn),計(jì)算分析兩者的差別。
(6)
(7)
計(jì)算結(jié)果表明,雖然IRS推薦算法的推薦結(jié)果命中174門課程(共300門推薦課程)、命中率58%,相比較Mahout推薦算法的命中213門課程、命中率71%較低,但評(píng)分差為0.448。評(píng)分差為正值表明IRS推薦算法較Mahout推薦算法推薦了更多被學(xué)習(xí)者忽略或還沒有被學(xué)到的高質(zhì)量課程,且IRS推薦算法的推薦課程對(duì)于學(xué)習(xí)者來說評(píng)分更高,滿意程度更好。所以本文的推薦算法更適合學(xué)習(xí)者的個(gè)性化學(xué)習(xí)。
本文提出的IRS在線課程分布式推薦算法,在機(jī)器學(xué)習(xí)框架Mahout協(xié)同過濾推薦算法的基礎(chǔ)上,將評(píng)價(jià)對(duì)象基于課程的IRS指標(biāo)評(píng)價(jià)方法與用戶的偏好結(jié)合,形成更適合學(xué)習(xí)者個(gè)性化學(xué)習(xí)的推薦算法。本實(shí)驗(yàn)以Hadoop云計(jì)算平臺(tái)的MapReduce為基礎(chǔ),將大量在線學(xué)習(xí)者的學(xué)習(xí)行為數(shù)據(jù)分配于集群的節(jié)點(diǎn)機(jī),極大地加快了推薦算法的運(yùn)行速度。新的推薦算法在Hadoop分布式云平臺(tái)的運(yùn)行,不僅解決了在線課程推薦系統(tǒng)的實(shí)時(shí)性需求,為學(xué)習(xí)者更加客觀、科學(xué)地推薦課程;同時(shí)在大量數(shù)據(jù)的網(wǎng)絡(luò)環(huán)境中,提高運(yùn)行速度,減輕服務(wù)器的工作負(fù)載。在遠(yuǎn)程教育和在線教育領(lǐng)域的建設(shè)中,對(duì)提高網(wǎng)絡(luò)課程的學(xué)習(xí)質(zhì)量和工作效率具有較重要的參考意義。
[1] 魏玲,李陽. 基于RFL的MOOC學(xué)習(xí)者細(xì)分忠誠度研究——以“怪誕行為學(xué)”課程為例[J].現(xiàn)代教育技術(shù).2016,26(11):67-73.
[2] Skinner E A, Belmont M J. Motivation in the classroom: Reciprocal effects of teacher behavior and student engagement across the school year.[J]. Journal of Educational Psychology, 1993, 85(4):571-581.
[3] 朱文輝,靳玉樂.網(wǎng)絡(luò)化合作活動(dòng)學(xué)習(xí)對(duì)教育碩士在線學(xué)習(xí)參與度影響的行動(dòng)研究[J].中國電化教育,2013,319(8):48-54.
[4] 孟祥武,劉樹棟,張玉潔,等.社會(huì)化推薦系統(tǒng)研究[J].軟件學(xué)報(bào),2016,26(6):1356-1372.
[5] 趙彥榮,王偉平,孟丹,等.基于Hadoop的高效連接查詢處理算法CHMJ[J].軟件學(xué)報(bào),2012,23(8):2032-2041.
[6] 江務(wù)學(xué),張璟,王志明.MapReduce并行編程架構(gòu)模型研究[J].微電子學(xué)與計(jì)算機(jī),2011,28(6):168-170.
[7] 劉剛. Hadoop應(yīng)用開發(fā)技術(shù)詳解[M].北京:機(jī)械工業(yè)出版社,2014.
[8] 李龍飛.基于Hadoop+Mahout的智能終端云應(yīng)用推薦引擎的研究與實(shí)現(xiàn)[D].西安:電子科技大學(xué),2013.
[9] 鄭曉薇,馬琳. 基于Hadoop集群的多表并行關(guān)聯(lián)算法及應(yīng)用[J].微型機(jī)與應(yīng)用,2013,32(4):91-93.