余小高
摘 要:為提高學(xué)習(xí)效率、解決個(gè)性化學(xué)習(xí)問題,本文給出了基于大數(shù)據(jù)的微課程個(gè)性化學(xué)習(xí)機(jī)制。通過對學(xué)習(xí)用戶行為數(shù)據(jù)的獲取、存儲(chǔ)、清洗、挖掘,由改進(jìn)的余弦相似度算法計(jì)算出微課程的相似度,向用戶推薦其喜歡的微課程。該機(jī)制能夠有效提升微課程推薦的準(zhǔn)確性,增強(qiáng)用戶黏性,為微課程平臺(tái)創(chuàng)造更多價(jià)值。
關(guān)鍵詞:大數(shù)據(jù);微課程;個(gè)性化學(xué)習(xí);相似度矩陣
中圖分類號(hào):G434 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1673-8454(2015)13-0018-05
引言
教學(xué)變革的關(guān)鍵是讓每個(gè)學(xué)生都能以適合自己的方式與節(jié)奏進(jìn)行學(xué)習(xí),讓每個(gè)學(xué)生都能夠在自己原有的基礎(chǔ)上發(fā)展前進(jìn)。然而班級(jí)授課制的存在使得每位教師不得不同時(shí)而對幾十位學(xué)生。同樣的教學(xué)內(nèi)容,不同學(xué)習(xí)起點(diǎn)與學(xué)習(xí)風(fēng)格的學(xué)生,或許只有教師掌握了某種神奇的魔法才能幫助班上的每位學(xué)生都能在短短的40幾分鐘內(nèi)以適合自己的速度與方法進(jìn)行學(xué)習(xí)。然而在大數(shù)據(jù)時(shí)代,這一美好的愿望將迎來走向現(xiàn)實(shí)的那一刻[1]。以下將從微課程的角度來分析大數(shù)據(jù)時(shí)代給教學(xué)帶來的變革。
微課程定義:在信息化環(huán)境中,為滿足人們個(gè)性化學(xué)習(xí)的需要,針對某個(gè)知識(shí)點(diǎn)或教學(xué)主題,由教育工作者精心設(shè)計(jì)并開發(fā)的、以視頻為主要載體,包含輔助資源和學(xué)習(xí)支持服務(wù)的網(wǎng)絡(luò)教學(xué)資源集合,具有短小精悍的特點(diǎn)[2]。
大數(shù)據(jù)創(chuàng)新發(fā)展帶動(dòng)了微課程迅速發(fā)展,目前,微課程已開始影響我國信息化教學(xué)實(shí)踐。湖北、廣東、上海等十多個(gè)省、市、自治區(qū)紛紛開展微課程實(shí)踐。微課程實(shí)踐的積累,將導(dǎo)致微課程群的形成,微課程群的應(yīng)用又會(huì)形成新的應(yīng)用數(shù)據(jù),將有利于大數(shù)據(jù)分析與挖掘、發(fā)現(xiàn)與預(yù)測的創(chuàng)新應(yīng)用[3]。
在國內(nèi),高校學(xué)者、區(qū)域教育研究者、一線教師等對微課程進(jìn)行了相關(guān)的研究或?qū)嵤?,微課程的研究是近三年以來才在中國開始萌芽,主要關(guān)注于概念、資源設(shè)計(jì)和教學(xué)模式的研究[4]。
近年來,國外越來越重視“微課程”、“微視頻”的研究,但其核心組成資源不統(tǒng)一,呈現(xiàn)方式是教案式或視頻式;課程結(jié)構(gòu)較為松散,主要用于學(xué)習(xí)及培訓(xùn)等方面,應(yīng)用領(lǐng)域有待擴(kuò)充;在課程資源的自我生長、擴(kuò)充性還不是很成熟[5]。
微課程個(gè)性化學(xué)習(xí)是利用個(gè)性化推薦技術(shù),是根據(jù)用戶的興趣特點(diǎn)及行為向用戶推薦其感興趣的學(xué)習(xí)內(nèi)容。主要解決如何在海量的微課程資源中發(fā)現(xiàn)用戶感興趣的內(nèi)容。對于微課程平臺(tái)來說,通過基于大數(shù)據(jù)挖掘技術(shù)構(gòu)建個(gè)性化學(xué)習(xí)系統(tǒng),能有效幫助用戶發(fā)現(xiàn)喜歡的微課程,同時(shí)也體現(xiàn)了微課程提供者的貢獻(xiàn)。
結(jié)合筆者在微課程平臺(tái)研發(fā)和數(shù)據(jù)分析的相關(guān)工作經(jīng)驗(yàn),本文提出了大數(shù)據(jù)環(huán)境中微課程個(gè)性化學(xué)習(xí)架構(gòu)。首先將學(xué)生海量學(xué)習(xí)行為數(shù)據(jù)存儲(chǔ),然后利用Hadoop框架對存儲(chǔ)的數(shù)據(jù)進(jìn)行處理,計(jì)算微課程之間的相似度矩陣,運(yùn)用Redis存儲(chǔ)中間結(jié)果和最終推薦結(jié)果,最后向用戶提供微課程學(xué)習(xí)列表。
一、個(gè)性化學(xué)習(xí)算法分析
1.算法選擇
個(gè)性化學(xué)習(xí)算法是利用個(gè)性化推薦系統(tǒng)算法,通常有如下幾種:ItemCF(基于項(xiàng)的協(xié)同過濾)、UserCF(基于用戶的協(xié)同過濾)、Content Based(基于內(nèi)容的推薦),Slope One,SVD(singular value decomposition,奇異值分解)、組合算法等[6]。
ItemCF是當(dāng)今很多大型網(wǎng)站都在采用的核心算法之一,適用于項(xiàng)(item)的增長速度遠(yuǎn)遠(yuǎn)小于用戶(user),且項(xiàng)之間的相似性比較穩(wěn)定的場景,可以在離線系統(tǒng)中將項(xiàng)的相似度矩陣計(jì)算好,以供線上實(shí)時(shí)地進(jìn)行推薦。UserCF常用于咨詢服務(wù)類的應(yīng)用,尋找與用戶具有同樣愛好的人。由于用戶的相似用戶群非常敏感,因此需要頻繁地計(jì)算出用戶的相似用戶矩陣,運(yùn)算量比較大。Content_Based一般用于文本挖掘的項(xiàng)目中,每天都要根據(jù)Web生成的或通過爬蟲抓取的數(shù)據(jù),不斷地計(jì)算item之間的相似性,提取關(guān)鍵詞,該算法可以很好地解決推薦系統(tǒng)冷啟動(dòng)問題,比如想推出一個(gè)新的項(xiàng),由于沒有用戶對此新項(xiàng)進(jìn)行評(píng)分和產(chǎn)生行為,所以之前的算法不可能推薦新的東西給用戶,但可以用基于內(nèi)容的算法計(jì)算出新項(xiàng)屬于哪個(gè)類,然后根據(jù)用戶對該項(xiàng)類的喜好程度推薦新項(xiàng)。Slope One算法簡單實(shí)現(xiàn)了ItemCF算法,該算法的存儲(chǔ)量是普通的ItemCF存儲(chǔ)量的一半(甚至更少),更容易計(jì)算,但是準(zhǔn)確性方面不夠穩(wěn)定,很少用于商業(yè)系統(tǒng)。實(shí)際上,SVD是提取一般實(shí)矩陣“特征值”的算法,該算法提取“特征值”后,能夠分析出主成分因子。也就是說,能夠?qū)υ瓉睚嫶蟮摹⑼ǔS址浅O∈璧木仃囘M(jìn)行降維和分解,大大降低矩陣的維度,提高運(yùn)算的速度,但是需要付出較大的空間資源。組合算法多種多樣,主要是對上面一些算法的組合操作,比如將多種算法計(jì)算出來的結(jié)果,加權(quán)之后排序推薦給用戶,也可以將多種算法計(jì)算出來的結(jié)果,各取前幾個(gè)推薦給用戶,增加推薦結(jié)果的多樣性等。
基于內(nèi)容的協(xié)同過濾算法與基于行為的協(xié)同過濾算法[7]相比,基于內(nèi)容的過濾算法主要利用物品的內(nèi)容數(shù)據(jù)或者外部信息,認(rèn)為在內(nèi)容上用戶會(huì)喜歡與以前喜歡相似的物品;而基于行為的協(xié)同過濾算法通過分析大量的用戶對物品的行為數(shù)據(jù),從中找出特定的行為模式,據(jù)此來預(yù)測用戶的興趣,并給用戶做出推薦。對于微課程平臺(tái)來說,微課程分類屬性還沒有標(biāo)準(zhǔn)化,基于內(nèi)容過濾的推薦算法難以反映用戶的真正需求;相對而言,微課程平臺(tái)對用戶的訪問、下載等行為數(shù)據(jù)均有記錄,現(xiàn)階段適合采用協(xié)同過濾算法。
基于行為的協(xié)同過濾算法大體上分為基于用戶的UserCF算法和基于項(xiàng)的ItemCF算法,UserCF給用戶推薦那些和他有共同興趣愛好的用戶喜歡的項(xiàng),需要維護(hù)一個(gè)用戶相似度的矩陣,而ItemCF給用戶推薦那些和他之前喜歡的項(xiàng)類似的東西,需要維護(hù)一個(gè)項(xiàng)相似度矩陣。現(xiàn)階段微課程平臺(tái)一般更注重用戶學(xué)習(xí)行為而不是社交行為,而且一般用戶的基數(shù)遠(yuǎn)大于微課程的基數(shù),存儲(chǔ)UserCF的用戶相似度矩陣的開銷遠(yuǎn)遠(yuǎn)大于存儲(chǔ)ItemCF的微課程相似度矩陣,所以選擇基于項(xiàng)的協(xié)同過濾算法。
對用戶的個(gè)性化推薦,主要有兩個(gè)步驟:第一,計(jì)算微課程之間的相似度;第二,根據(jù)微課程的相似度和用戶的歷史行為生成微課程推薦列表。
課程資源相似度的計(jì)算,需先確定用戶與微課程關(guān)系的矩陣。設(shè)用戶已學(xué)習(xí)的微課程集合為N,若用戶學(xué)習(xí)過某微課程,則認(rèn)為該用戶對該微課程感興趣。矩陣每一行代表一個(gè)用戶感興趣的微課程集合。對于每個(gè)微課程集合,將微課程進(jìn)行兩兩組合,得到一個(gè)新的矩陣,這些矩陣“相加”得到矩陣C,C[i][j]表示同時(shí)下載微課程i和微課程j的用戶列表。
微課程相似度有如下幾種算式。
(1)基本計(jì)算如算式(1)所示。
其中,Cij是微課程i和微課程j的相似度,分母|U(i)|是喜歡微課程i的用戶數(shù),而分子|U(i)∩U(j)|是同時(shí)喜歡微課程i和微課程j的用戶數(shù)。
(2)余弦相似度(cosin_base) 如算式(2)所示。
通過降低微課程j的權(quán)重,該算法能減輕熱門微課程和很多微課程相似的可能性,從而提升推薦的質(zhì)量。
(3)余弦相似度a(cosin_alph)如算式(3)所示。
該算法進(jìn)一步降低了微課程j的權(quán)重,可以根據(jù)實(shí)際的應(yīng)用效果指定a的取值。
(4)改進(jìn)的余弦相似度(cosin_mod)如算式(4)所示。
對于微課程平臺(tái)來說,存在部分惡意下載用戶,為了保證微課程之間相似度的可靠性,需要修正活躍用戶對微課程相似度的貢獻(xiàn),即對同一微課程來說,已經(jīng)下載了50次微課程的用戶的貢獻(xiàn)度要小于只下載了10次微課程的用戶,調(diào)整后的算式如(4)所示。
對于過于活躍的用戶,為了避免相似度矩陣過于稠密,在實(shí)際的計(jì)算中,一般直接忽略其興趣列表,不將其納入相似度計(jì)算的數(shù)據(jù)集中。
(5)改進(jìn)的余弦相似度的歸一化如算式(5)所示。
為了進(jìn)一步提高推薦的準(zhǔn)確度,在改進(jìn)的余弦相似度計(jì)算式基礎(chǔ)上進(jìn)行歸一化,同時(shí)也可以提高推薦的覆蓋率和多樣性。在微課程平臺(tái)中,選擇該算法進(jìn)行個(gè)性化學(xué)習(xí)。
完成微課程相似度計(jì)算后,通過算式(6)計(jì)算用戶u對微課程i的興趣:
這里的U(u)是用戶喜歡的微課程集合,S(i,k)是與微課程i最相似的k個(gè)微課程的集合,Cji是微課程j和微課程i的相似度,rui是用戶u對微課程i的興趣(對于微課程平臺(tái)來說rui=1)。結(jié)合用戶歷史上感興趣的微課程,通過該算式,越相似的微課程,越有可能在用戶的學(xué)習(xí)列表中獲得比較高的排名。
2.算法評(píng)價(jià)指標(biāo)
算法的精確度、覆蓋率、多樣性等決定了其優(yōu)劣,具體指標(biāo)如下。
(1)精度指標(biāo):召回率(Recall Rate)/準(zhǔn)確度(Precision)
用戶u推薦N個(gè)微課程記為N(u),用戶u在測試集上喜歡的微課程集合為L(u),通過準(zhǔn)確度/召回率評(píng)測算法的精度,召回率描述的是,在最終的學(xué)習(xí)列表中,有多少用戶與微課程下載記錄的比例;而準(zhǔn)確度描述的是,在最終學(xué)習(xí)列表中,有多少發(fā)生過的用戶與微課程下載記錄的比例。召回率定義如算式(7)所示,準(zhǔn)確度如算式(8)所示。
(2)覆蓋率指標(biāo)(Coverage Rate)
覆蓋率表示最終的推薦列表中包含多大比例的微課程。如果所有的微課程都被推薦給至少一個(gè)用戶,那么覆蓋率就是100%。覆蓋率反映推薦算法發(fā)掘長尾的能力,覆蓋率越高,說明推薦算法越能夠?qū)㈤L尾中的微課程推薦給用戶。采用最簡單的覆蓋率定義如算式(9)所示。
其中,|Uu∈UN(u)|表示對推薦給用戶的微課程去重?cái)?shù)。|I|指“微課程”平臺(tái)中所有的微課程數(shù)。
(3)多樣性指標(biāo)(Diversity)
多樣性用來描述推薦列表中兩個(gè)微課程之間的不相似性。多樣性和相似性是對應(yīng)的,如算式(10)所示,其中S(I,j)∈[0,1]定義微課程i和微課程j之間的相似度。
個(gè)性化學(xué)習(xí)系統(tǒng)的整體多樣性可以定義為所有用戶學(xué)習(xí)列表多樣性的平均值,如算式(11)所示。
二、體系架構(gòu)
1.數(shù)據(jù)獲取與存儲(chǔ)
對上述個(gè)性化學(xué)習(xí)算法在湖北經(jīng)濟(jì)學(xué)院“微課程”平臺(tái)進(jìn)行了實(shí)踐,利用該校教研項(xiàng)目(2014015)“大數(shù)據(jù)背景下管理信息系統(tǒng)課程教學(xué)改革研究”的成果,建成了管理信息系統(tǒng)微課程資源庫。目前校內(nèi)外用戶數(shù)超過20000戶,日均數(shù)據(jù)增量1000 MB左右,數(shù)據(jù)分析需要獲取數(shù)據(jù)并存儲(chǔ)數(shù)據(jù)。微課程平臺(tái)的個(gè)性化學(xué)習(xí)系統(tǒng)一般采用用戶的下載行為作為用戶的行為數(shù)據(jù),一旦用戶下載了一個(gè)微課程,則視該用戶對微課程產(chǎn)生了一個(gè)正向喜歡。數(shù)據(jù)獲取與存儲(chǔ)的架構(gòu)如圖1所示。
微課程下載功能由微課程下載服務(wù)器提供,當(dāng)用戶發(fā)出微課程下載請求,下載服務(wù)器在本地日志上記錄一條用戶下載記錄。日志采集系統(tǒng)RLog對日志數(shù)據(jù)進(jìn)行實(shí)時(shí)、高效的采集,然后傳遞給實(shí)時(shí)計(jì)算系統(tǒng)RFilt , RFilt按照設(shè)定的規(guī)則進(jìn)行數(shù)據(jù)過濾,最后將有效數(shù)據(jù)存入Hadoop分布式文件系統(tǒng)(HDFS )[5]進(jìn)行固化。
HDFS對硬件要求比較低,能夠在一般服務(wù)器集群上運(yùn)行,充分利用計(jì)算機(jī)的存儲(chǔ)能力。通過HDFS的“一次寫入、多次讀取”機(jī)制[5],用戶海量訪問的數(shù)據(jù)能夠快速處理;通過分布式文件存儲(chǔ)機(jī)制,能夠長久地存儲(chǔ)用戶的歷史訪問記錄,為用戶行為分析提供堅(jiān)實(shí)的數(shù)據(jù)支撐。
2.數(shù)據(jù)清洗與挖掘
微課程數(shù)據(jù)清洗與挖掘如圖2所示。
數(shù)據(jù)存儲(chǔ)好之后,采用MapReduce計(jì)算框架[7],可以快捷地對大型數(shù)據(jù)矩陣進(jìn)行計(jì)算,從而為個(gè)性化學(xué)習(xí)系統(tǒng)提供計(jì)算支持。首先,進(jìn)行數(shù)據(jù)清洗,過濾掉非法的用戶和微課程;然后,進(jìn)行數(shù)據(jù)重構(gòu),把用戶和微課程的標(biāo)識(shí)唯一化,同時(shí)生成用戶的下載數(shù)表和微課程被下載次數(shù)表;最后,進(jìn)行相似度矩陣計(jì)算,計(jì)算結(jié)果以兩份的方式存儲(chǔ),一份存儲(chǔ)在Oracle數(shù)據(jù)庫中,供系統(tǒng)評(píng)測和統(tǒng)計(jì)使用,另一份存儲(chǔ)在Redis高速緩存服務(wù)器中,為各類應(yīng)用提供查詢。
3.微課程個(gè)性化學(xué)習(xí)流程
面向用戶的微課程個(gè)性化學(xué)習(xí)流程如圖3所示。
(1)用戶通過客戶端訪問微課程平臺(tái),點(diǎn)擊進(jìn)入任意微課程詳情頁面。
(2)客戶端發(fā)送用戶的訪問請求給后臺(tái)程序。
(3)后臺(tái)程序獲取用戶當(dāng)前訪問的微課程ID,并根據(jù)用戶ID來獲取用戶的歷史記錄。
(4)通過Redis獲取該微課程的相似度矩陣。
(5)使用個(gè)性化學(xué)習(xí)算法根據(jù)用戶的相似度矩陣、當(dāng)前訪問微課程ID、用戶歷史訪問微課程ID,計(jì)算用戶可能喜歡的微課程列表。
(6)對用戶可能喜歡的微課程列表按照相似度排列。
(7)取前TopN個(gè)微課程,并返回結(jié)果給客戶端,客戶端將相應(yīng)的微課程顯示在學(xué)習(xí)欄目中。
三、算法驗(yàn)證
“微課程”平臺(tái)目前每天的下載用戶數(shù)為10000戶左右,人均下載3~5個(gè)微課程,累計(jì)3個(gè)月的用戶下載數(shù)據(jù)為370萬條左右,微課程相似度矩陣規(guī)模為5000×5000。應(yīng)用余弦相似度推薦算法,對數(shù)據(jù)進(jìn)行了計(jì)算,結(jié)果如表1所示。
從表1中的結(jié)果可以看出,改進(jìn)的余弦相似度的歸一化推薦算法相對基本算法在準(zhǔn)確率、召回率等各個(gè)指標(biāo)上均有所提升。通過降低熱門微課程的權(quán)重,能有效提升準(zhǔn)確率和召回率。通過降低活躍用戶的權(quán)重,能有效提升微課程覆蓋度和多樣性,從而強(qiáng)化個(gè)性化學(xué)習(xí)系統(tǒng)發(fā)掘長尾的能力。
推薦算法還有一個(gè)重要的影響因素,即向用戶推薦的微課程個(gè)數(shù),針對該因素影響情況進(jìn)行針對性的效果分析,分析結(jié)果如表2所示。
由圖4可知,隨著微課程推薦數(shù)的增大,微課程的準(zhǔn)確率、覆蓋率明顯上升,召回率則逐步下降,與實(shí)踐情況相符,從而說明了算法的正確性和實(shí)用性。
四、結(jié)束語
本文介紹了在大數(shù)據(jù)環(huán)境中,利用智能推薦技術(shù),構(gòu)建微課程平臺(tái),進(jìn)行個(gè)性化學(xué)習(xí)。采用Hadoop框架處理數(shù)據(jù),計(jì)算微課程之間的相似度矩陣;中間結(jié)果和最終推送結(jié)果存儲(chǔ)在Redis中。結(jié)合微課程平臺(tái)實(shí)際情況研究了余弦相似度算法,利用降低活躍用戶權(quán)重和降低熱門微課程權(quán)重等幾種方法,改進(jìn)算法。根據(jù)計(jì)算結(jié)果,對比和分析了相應(yīng)算法,構(gòu)建了一種適用于微課程平臺(tái)的個(gè)性化學(xué)習(xí)機(jī)制和方法,為其它平臺(tái)大數(shù)據(jù)分析提供了良好的參考和借鑒。隨著用戶行為和微課程數(shù)據(jù)趨于多樣化和復(fù)雜化,下一步研究的方向和目標(biāo)是進(jìn)一步拓展數(shù)據(jù)源,包括用戶訪問、用戶已安裝的應(yīng)用軟件、微課程的描述信息等,將采用復(fù)合權(quán)重相加的方式擬合微課程相似度矩陣,并考慮不同數(shù)據(jù)源的權(quán)重,提高微課程個(gè)性化推薦的精確度。
參考文獻(xiàn):
[1]梁文鑫.大數(shù)據(jù)時(shí)代—課堂教學(xué)將迎來真正的變革[J].北京教育學(xué)院學(xué)報(bào)(自然科學(xué)版).2013,3(1):14-16.
[2]陳川.基于微課程的自主學(xué)習(xí)支持系統(tǒng)設(shè)計(jì)與開發(fā)[D].華中師范大學(xué),2014.
[3]金陵.大數(shù)據(jù)與信息化教學(xué)變革[J].中國電化教育,2013,10(7):8-13.
[4]姜玉蓮.微課程研究與發(fā)展趨勢系統(tǒng)化分析[J].中國遠(yuǎn)程教育, 2013(12):64-73.
[5]海浪,錢鋒,黃祥為.基于大數(shù)據(jù)挖掘構(gòu)建游戲平臺(tái)個(gè)性化推薦系統(tǒng)的研究與實(shí)踐[J].電信科學(xué),2014(10):27-32.
[6]Shin-gyu Kim, Junghee Won, Hyuck Han, et aL. Improving Hadoop performance in intercloud environments[J]. Performance Evaluation Review,2011,39(3):107-109.
[7]FangW,Pan W B, Cui Z M. View of MapReduce: programming model, methods, and its applications[J]. IETE Technical Review,2012,29(5).
(編輯:王曉明)