郭 陽,李全龍,李 騏
(1.哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 黑龍江 哈爾濱 150001;2.教育部考試中心 北京 100084)
近年來,隨著互聯(lián)網(wǎng)+教育的融合,各種在線教育平臺(tái)迅速發(fā)展。這些平臺(tái)憑借其優(yōu)質(zhì)而海量的資源,積累了眾多用戶。在線教育已成為學(xué)習(xí)者知識(shí)獲取、技能拓展及學(xué)歷教育等重要的教育模式和技術(shù)途徑。如何在海量的課程資源中為學(xué)習(xí)者提供個(gè)性化的內(nèi)容是一個(gè)值得研究的問題。
在線教育平臺(tái)中,小部分學(xué)習(xí)者是為了完成學(xué)校規(guī)定的學(xué)分任務(wù),有更多的學(xué)習(xí)者是基于興趣驅(qū)動(dòng)學(xué)習(xí)的。所以,對(duì)在線教育平臺(tái)學(xué)習(xí)者的興趣進(jìn)行挖掘,有助于更好理解學(xué)習(xí)者的需求,幫助平臺(tái)為學(xué)習(xí)者提供個(gè)性化的教學(xué)服務(wù)。
隨著在線教育應(yīng)用的不斷增加,在線教育平臺(tái)已經(jīng)成為多個(gè)學(xué)習(xí)者共同創(chuàng)造、共享和獲取知識(shí)的重要平臺(tái)和空間。在線教育平臺(tái)中涉及許多不同的學(xué)習(xí)者,每個(gè)人都有不同的興趣愛好,并且是動(dòng)態(tài)變化的。為了標(biāo)注和管理學(xué)習(xí)者的興趣,在線教育平臺(tái)通常為學(xué)習(xí)者提供了通過標(biāo)注主題來自定義興趣的方法。但是學(xué)習(xí)者很難詳細(xì)描述自己的興趣,而且不一定會(huì)隨著興趣的變化而更新興趣標(biāo)簽。此外,還有許多學(xué)習(xí)者并不積極標(biāo)記他們的興趣。因此,如何在開放的學(xué)習(xí)環(huán)境中自動(dòng)發(fā)現(xiàn)學(xué)習(xí)者的學(xué)習(xí)興趣是一個(gè)值得研究的問題。
在線教育平臺(tái)吸引了百萬的學(xué)習(xí)者,積累了海量的學(xué)習(xí)者行為數(shù)據(jù),根據(jù)學(xué)習(xí)者行為數(shù)據(jù),可以挖掘出學(xué)習(xí)者的學(xué)習(xí)興趣,進(jìn)一步地,可以為學(xué)習(xí)者提供個(gè)性化的課程推薦。傳統(tǒng)的興趣挖掘方法,要么以學(xué)習(xí)者感興趣的課程作為興趣點(diǎn),要么以討論區(qū)的主題作為興趣點(diǎn)。本文提出基于學(xué)習(xí)者感興趣的知識(shí)主題、感興趣的課程、感興趣的領(lǐng)域的多維興趣模型的表示方法。此外,不僅學(xué)習(xí)者感興趣的點(diǎn)值得關(guān)注,其感興趣的程度也具有參考價(jià)值。根據(jù)學(xué)習(xí)者行為數(shù)據(jù),本文對(duì)學(xué)習(xí)者的興趣進(jìn)行了刻畫,并根據(jù)學(xué)習(xí)者之間興趣的相似性,采用協(xié)同過濾的思想,使用KNN算法對(duì)學(xué)習(xí)者進(jìn)行個(gè)性化課程推薦。在現(xiàn)實(shí)數(shù)據(jù)上進(jìn)行的實(shí)驗(yàn)表明本文的興趣模型對(duì)課程推薦有明顯的幫助。
學(xué)習(xí)者興趣在基于網(wǎng)絡(luò)的學(xué)習(xí)環(huán)境中發(fā)揮著重要作用,并與學(xué)習(xí)結(jié)果呈正相關(guān)。在開放的學(xué)習(xí)環(huán)境中,學(xué)習(xí)者生成的內(nèi)容及其與在線資源交互的大量數(shù)據(jù)提供了自動(dòng)檢測(cè)學(xué)習(xí)者興趣的機(jī)會(huì)。同時(shí),利用這些數(shù)據(jù),開放的學(xué)習(xí)環(huán)境可以通過自適應(yīng)地發(fā)現(xiàn)學(xué)習(xí)者的需求,并自動(dòng)推薦相關(guān)資源,從而改善他們的教育服務(wù)[1]。
主流的發(fā)現(xiàn)學(xué)習(xí)者興趣的方法有文本挖掘、聚類分析等。Wu等基于文本挖掘方法構(gòu)建了一個(gè)學(xué)習(xí)者興趣模型來解決學(xué)習(xí)者興趣發(fā)現(xiàn)問題,將學(xué)習(xí)興趣分為知識(shí)興趣(基于學(xué)習(xí)者產(chǎn)出內(nèi)容)和收集興趣(基于其他學(xué)習(xí)資源),并在開放學(xué)習(xí)環(huán)境中自動(dòng)生成了學(xué)習(xí)者的興趣[1]。Liu等基于學(xué)習(xí)者討論區(qū)數(shù)據(jù),使用潛在狄利克雷分配方法來挖掘討論的關(guān)鍵話題。該方式是一個(gè)數(shù)學(xué)模型,可以自動(dòng)對(duì)大量文本進(jìn)行分類并按主題進(jìn)行標(biāo)記[2]。Dun等提出了一種在社區(qū)問答系統(tǒng)中,基于命名實(shí)體識(shí)別、同義詞擴(kuò)展和同義詞替換等技術(shù),將學(xué)習(xí)者關(guān)心的問題作為主題分布來揭示學(xué)習(xí)者興趣的方法[3]。
總的來說,在學(xué)習(xí)者興趣挖掘方向上,已經(jīng)有了許多工作。主流的方法是對(duì)用戶的行為數(shù)據(jù)進(jìn)行分析挖掘,但是并沒有對(duì)學(xué)習(xí)者的興趣的感興趣程度進(jìn)行標(biāo)注。而學(xué)習(xí)者的興趣意圖是動(dòng)態(tài)發(fā)展的,且學(xué)習(xí)者對(duì)于不同的知識(shí)主題有不同的感興趣程度。此外,從學(xué)習(xí)者行為數(shù)據(jù)中發(fā)現(xiàn)的是學(xué)習(xí)者直接興趣,還可以考慮基于學(xué)習(xí)者關(guān)系網(wǎng)絡(luò)發(fā)現(xiàn)學(xué)習(xí)者的潛在興趣,從而對(duì)學(xué)習(xí)者進(jìn)行個(gè)性化課程推薦。
在線教育平臺(tái)的個(gè)性化課程推薦也是一個(gè)熱點(diǎn)研究問題。當(dāng)前的課程推薦主要以協(xié)同過濾為主。具體來說,包括以學(xué)習(xí)者為中心的協(xié)同過濾、以課程為中心的系統(tǒng)過濾及混合方式[4]。
李國(guó)成[5]提出基于學(xué)習(xí)者的互動(dòng)行為等建立學(xué)習(xí)者之間的信任關(guān)系,從而對(duì)學(xué)習(xí)者進(jìn)行個(gè)性化課程推薦。Obeidat等基于傳統(tǒng)的數(shù)據(jù)挖掘方法[6],采用協(xié)同過濾方法和關(guān)聯(lián)規(guī)則分析對(duì)比的方式,為學(xué)習(xí)者進(jìn)行課程推薦,其實(shí)驗(yàn)結(jié)果表明,對(duì)學(xué)習(xí)者進(jìn)行分組聚類,對(duì)推薦效果有明顯改善。Huang等使用強(qiáng)化學(xué)習(xí)方法和馬爾科夫決策過程[7],對(duì)學(xué)習(xí)者進(jìn)行習(xí)題推薦,推薦時(shí)綜合考慮習(xí)題難度的平滑、復(fù)習(xí)和預(yù)習(xí)及學(xué)習(xí)者的參與程度。Liu提出使用基于神經(jīng)網(wǎng)絡(luò)的方法[8],對(duì)學(xué)習(xí)者的知識(shí)水平進(jìn)行追蹤,從而為學(xué)習(xí)者提供個(gè)性化學(xué)習(xí)路徑推薦。Zhang等提出的MCRS 基于分布式關(guān)聯(lián)規(guī)則挖掘算法[9],使推薦信息傳遞得更加及時(shí),并提高了用戶的課程檢索效率。Chen等提出一個(gè)基于學(xué)習(xí)者現(xiàn)有知識(shí)和學(xué)習(xí)材料的知識(shí)推薦算法[10],將推薦過程建模成一個(gè)馬爾科夫決策問題。
綜上,在學(xué)習(xí)者個(gè)性化課程推薦方面已有許多工作。學(xué)習(xí)者興趣作為個(gè)性化課程推薦中的一個(gè)重要特征,已有的研究多以學(xué)習(xí)者對(duì)課程評(píng)分進(jìn)行刻畫,較少有對(duì)學(xué)習(xí)者興趣特征的深入分析并將其用于個(gè)性化推薦。此外,協(xié)同過濾算法是當(dāng)前流行的一種推薦算法,但大部分是根據(jù)用戶對(duì)項(xiàng)目的評(píng)分?jǐn)?shù)據(jù)進(jìn)行聚類,沒有對(duì)用戶或項(xiàng)目之間的隱含信息進(jìn)行充分利用[11]。
本文將學(xué)習(xí)者的興趣特征分成三個(gè)層級(jí)表示:知識(shí)主題、課程、知識(shí)領(lǐng)域。它們之間的關(guān)系如圖1所示。
圖1 興趣分層結(jié)構(gòu)示意圖Figure 1 Schematic diagram of interest hierarchical structure
系統(tǒng)中的學(xué)習(xí)者集合為U={u1,u2,…,un},系統(tǒng)中的課程集合為C={c1,c2,…,cm},系統(tǒng)中的知識(shí)主題集合為T={t1,t2,…,tl},系統(tǒng)中的知識(shí)領(lǐng)域集合為D={d1,d2,…,dp}。
學(xué)習(xí)者ui的知識(shí)主題興趣向量表示為
前文提到,為了獲取學(xué)習(xí)者感興趣的領(lǐng)域向量,需要對(duì)學(xué)習(xí)者的知識(shí)主題興趣向量及學(xué)習(xí)者課程興趣向量進(jìn)行聚合,因此需要獲取知識(shí)主題所屬領(lǐng)域信息和課程所屬領(lǐng)域信息。課程所屬領(lǐng)域信息一般在課程的描述信息及元數(shù)據(jù)信息中提取,而知識(shí)主題所屬領(lǐng)域信息則需要通過一定的方法獲取。
這部分主要解決兩個(gè)問題:系統(tǒng)知識(shí)主題抽取及對(duì)應(yīng)領(lǐng)域生成;學(xué)習(xí)者興趣向量生成。為了從系統(tǒng)中抽取出合適的知識(shí)主題,從而進(jìn)一步刻畫學(xué)習(xí)者的興趣,本文使用了自然語言處理工具分詞加詞頻統(tǒng)計(jì)的方法。具體的過程如圖2。
圖2 知識(shí)主題抽取流程圖Figure 2 Knowledge topic extraction flowchart
為了判斷知識(shí)主題詞所屬領(lǐng)域,本文使用了類似于TF-IDF統(tǒng)計(jì)的方法。TF-IDF是一種統(tǒng)計(jì)方法,用以評(píng)估一個(gè)字詞對(duì)于一個(gè)文件集或一個(gè)語料庫(kù)中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加,但同時(shí)會(huì)隨著它在語料庫(kù)中出現(xiàn)的頻率成反比下降。
學(xué)習(xí)者興趣模型包括三個(gè)興趣向量:知識(shí)主題興趣向量、課程興趣向量及知識(shí)領(lǐng)域興趣向量。在2.1節(jié)興趣模型表示中,給出了計(jì)算公式。具體來說,學(xué)習(xí)者知識(shí)主題興趣向量的計(jì)算根據(jù)學(xué)習(xí)者的搜索行為分析和討論區(qū)數(shù)據(jù)分析;學(xué)習(xí)者的課程興趣向量的計(jì)算根據(jù)學(xué)習(xí)者課程學(xué)習(xí)行為數(shù)據(jù)分析;學(xué)習(xí)者的知識(shí)領(lǐng)域興趣向量則根據(jù)知識(shí)主題興趣向量和課程興趣向量進(jìn)行聚合。
算法1學(xué)習(xí)者知識(shí)主題興趣向量生成算法
輸入:學(xué)習(xí)者集合V,搜索日志Search_Log
輸出:學(xué)習(xí)者興趣主題集合列表
1 for each v in V do
2 topicMap← {}
3 find wordlist in Search_Log
4 for each word in wordlist do
5 topics=segment(word)
6 for each topic in topics do
7 if (topic in topicMap)topic.count++
8 else add topic to topicMap
9 count each topic.weight
10 output v.topicMap
11 return
本文將學(xué)習(xí)者的興趣表示成知識(shí)主題興趣向量、課程興趣向量和知識(shí)領(lǐng)域興趣向量。基于這三個(gè)向量,可以計(jì)算學(xué)習(xí)者之間的興趣相似性,進(jìn)一步構(gòu)建學(xué)習(xí)者興趣關(guān)系網(wǎng)絡(luò)。具體過程如圖3所示。
圖3 基于興趣模型的個(gè)性化課程推薦Figure 3 Personalized course recommendation based on learner interest model
根據(jù)余弦相似性的定義計(jì)算學(xué)習(xí)者興趣相似性,學(xué)習(xí)者知識(shí)主題興趣相似性的計(jì)算公式為t_sim(ui,uj)=tui·tuj/|tui||tuj|。學(xué)習(xí)者課程興趣相似性的計(jì)算公式為c_sim(ui,uj)=cui·cuj/|cui||cuj|。學(xué)習(xí)者知識(shí)領(lǐng)域興趣相似性的計(jì)算公式為d_sim(ui,uj)=dui·duj/|dui||duj|。
基于相似性可以構(gòu)建學(xué)習(xí)者基于興趣的信任關(guān)系網(wǎng)絡(luò)。學(xué)習(xí)者的信任關(guān)系網(wǎng)絡(luò)是一個(gè)圖G(V,E),V表示全體學(xué)習(xí)者的集合,E表示學(xué)習(xí)者之間的關(guān)系組成的邊。學(xué)習(xí)者之間興趣相似性也可以組成邊。如果兩個(gè)學(xué)習(xí)者u1和u2之間的興趣相似性大于一個(gè)給定的閾值,則可以在這兩個(gè)學(xué)習(xí)者之間添加一條邊,邊的權(quán)值為學(xué)習(xí)者之間的相似性。具體見算法2。
基于構(gòu)建的信任關(guān)系網(wǎng)絡(luò),可以對(duì)學(xué)習(xí)者進(jìn)行課程推薦。類似協(xié)同過濾的思想,推薦過程為:首先獲取當(dāng)前學(xué)習(xí)者的距離最近的k個(gè)鄰居,包括直接鄰居和間接鄰居,即當(dāng)前學(xué)習(xí)者在給定的跳數(shù)內(nèi)能夠到達(dá)的學(xué)習(xí)者,本文實(shí)驗(yàn)中,跳數(shù)設(shè)為2;然后統(tǒng)計(jì)鄰居所選擇的課程,并按頻率進(jìn)行排序,即出現(xiàn)次數(shù)越多的課程,排在越前面;最后過濾掉學(xué)習(xí)者已選擇的課程,剩下的課程根據(jù)語義與學(xué)習(xí)者的興趣匹配的分?jǐn)?shù)高低推薦給學(xué)習(xí)者。具體見算法3。
算法2興趣關(guān)系網(wǎng)絡(luò)構(gòu)建算法
輸入:學(xué)習(xí)者集合V,學(xué)習(xí)者興趣向量D,T,C
輸出:圖G(V,E),V為結(jié)點(diǎn),E為學(xué)習(xí)者興趣相似性的邊
1 E←?
2 for each v1in V do
2 for each v2in V do
3 sim=getSimilarity(v1,v2)
4 if(sim>threshold)
5 E←E∪{〈v1,v2〉}
6 return
算法3基于興趣相似性的個(gè)性化課程推薦算法
輸入:學(xué)習(xí)者u1,學(xué)習(xí)者興趣關(guān)系網(wǎng)絡(luò)圖G(V,E)
輸出:為學(xué)習(xí)者u1生成的課程推薦列表Rec_Courses
1 Rec_Courses←?
2 for each u in findNeighbors(ui,G)do
3 Rec_Courses←Rec_Courses∪u.courses
4 for each c in Rec_Courses do
5 if(getScore(c,u1) 6 E←E-{c} 7 return Rec_Courses 數(shù)據(jù)來自學(xué)堂在線提供的學(xué)習(xí)者行為數(shù)據(jù),其中包含了370萬學(xué)習(xí)者。本文對(duì)系統(tǒng)提供的8 524門課程描述信息進(jìn)行了處理,對(duì)包括課程名稱、授課教師、課程介紹等幾個(gè)字段進(jìn)行了分詞,并對(duì)主題詞出現(xiàn)的頻次及在各個(gè)領(lǐng)域出現(xiàn)的頻次進(jìn)行了統(tǒng)計(jì)。通過這種方法,從系統(tǒng)給的課程文件中抽取出了18 042個(gè)主題詞,并獲取每個(gè)主題詞對(duì)應(yīng)的領(lǐng)域。 選取數(shù)據(jù)集中5 000名學(xué)習(xí)者進(jìn)行了實(shí)驗(yàn),采用隨機(jī)、基于知識(shí)主題向量、基于課程向量、基于知識(shí)領(lǐng)域向量的推薦方法進(jìn)行對(duì)比。評(píng)價(jià)指標(biāo)包括:準(zhǔn)確率、召回率和F1值。準(zhǔn)確率指推薦的課程列表中,用戶感興趣的概率。召回率指用戶感興趣的課程出現(xiàn)在列表中的概率。F1值是準(zhǔn)確率和召回率的調(diào)和平均數(shù)。 實(shí)驗(yàn)結(jié)果如圖4,分別為對(duì)比實(shí)驗(yàn)的準(zhǔn)確率、召回率和F1值隨N值的變化曲線,其中N值指的是最近鄰算法KNN中鄰居的個(gè)數(shù)。從圖中可以看到,所有對(duì)比實(shí)驗(yàn)的準(zhǔn)確率都隨著N值的升高而升高,召回率都隨著N值的升高而下降,F(xiàn)1值隨著N值的升高,都經(jīng)歷了一個(gè)先升后降的過程。這是符合準(zhǔn)確率、召回率及F1值的一般規(guī)律的。 圖4 實(shí)驗(yàn)結(jié)果Figure 4 Experimental result 此外,可以看到,當(dāng)基于學(xué)習(xí)者的知識(shí)領(lǐng)域興趣向量進(jìn)行協(xié)同過濾推薦時(shí),相應(yīng)的評(píng)價(jià)指標(biāo)的值最好。這是比較符合預(yù)期的,因?yàn)閷W(xué)習(xí)者的知識(shí)領(lǐng)域興趣綜合考慮了學(xué)習(xí)者的知識(shí)主題興趣和學(xué)習(xí)者的課程興趣,并對(duì)學(xué)習(xí)者的知識(shí)領(lǐng)域有一定的預(yù)測(cè)性(如選擇《編譯原理》課程和選擇《計(jì)算機(jī)網(wǎng)絡(luò)》課程的學(xué)習(xí)者同屬于計(jì)算機(jī)領(lǐng)域),故而基于知識(shí)領(lǐng)域進(jìn)行推薦可以比單純的基于課程推薦和基于知識(shí)主題的推薦效果更好。 本文提出了一種基于學(xué)習(xí)者興趣挖掘的個(gè)性化課程推薦算法。本文將學(xué)習(xí)者的興趣模型表示成結(jié)合知識(shí)主題、課程、領(lǐng)域信息的多層興趣模型,并基于學(xué)習(xí)者的行為數(shù)據(jù),對(duì)學(xué)習(xí)者的興趣模型進(jìn)行了刻畫。在學(xué)習(xí)者的興趣模型基礎(chǔ)上,對(duì)學(xué)習(xí)者進(jìn)行了個(gè)性化的課程推薦。在數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果證明了本文方法的有效性。4 實(shí)驗(yàn)
4.1 系統(tǒng)知識(shí)主題抽取及對(duì)應(yīng)領(lǐng)域生成
4.2 課程推薦
5 結(jié)束語