王家輝, 文欣秀, 趙 敏, 范貴生, 唐佳誠, 張嘉寅
(華東理工大學(xué) a.信息科學(xué)與工程學(xué)院;b.理學(xué)院,上海 200237)
隨著智能手機(jī)和4G網(wǎng)絡(luò)的普及,海量教學(xué)資源觸手可及,各類輔助教學(xué)工具也得到了廣泛的發(fā)展。手機(jī)智能做題軟件(例如猿題庫,扇貝單詞,粉筆公考等),發(fā)揮移動(dòng)端的優(yōu)勢(shì),打破時(shí)間空間的束縛,幫助用戶利用一切碎片化的時(shí)間進(jìn)行學(xué)習(xí),因此受到了用戶的廣泛青睞。大數(shù)據(jù)已經(jīng)成為當(dāng)下的一個(gè)研究熱點(diǎn),各類輔助教學(xué)軟件也正朝著智能化方向不斷前行,例如利用推薦算法對(duì)每個(gè)用戶進(jìn)行個(gè)性化推薦,致力于幫助學(xué)生尋找到學(xué)習(xí)的最佳路徑等。
目前推薦算法已廣泛應(yīng)用于電商行業(yè)、視頻網(wǎng)站等,作為推薦算法的鼻祖亞馬遜,其35%的收入來源于推薦,Netflix宣稱60%的用戶是通過其推薦系統(tǒng)找到自己感興趣的電影和視頻的[1]。在電商、電影等領(lǐng)域,主要利用用戶在網(wǎng)站中的行為數(shù)據(jù),根據(jù)用戶或者物品相似度,給特定用戶推薦對(duì)應(yīng)的商品,吸引用戶點(diǎn)擊并發(fā)生點(diǎn)擊行為;在教育領(lǐng)域中,雖然用戶的答題數(shù)據(jù)背后依然隱含著題目之間的關(guān)聯(lián)信息,但是追溯根源還是歸因于學(xué)生沒有掌握相應(yīng)的知識(shí)點(diǎn),因此需要構(gòu)建出題目與知識(shí)點(diǎn)之間的強(qiáng)關(guān)聯(lián)關(guān)系。
尤其是對(duì)于《C程序設(shè)計(jì)》這類需要深入理解的課程,單純地利用行為數(shù)據(jù)和協(xié)同過濾算法來推薦相似的題目和相似用戶做錯(cuò)的題目效果一般,因?yàn)樽鲥e(cuò)題目還是由于相應(yīng)的知識(shí)點(diǎn)沒有掌握,在這種情況下做再多相似的題目也是徒勞的[2,3]。因此本文將在協(xié)同過濾思想的基礎(chǔ)上融合Google在2012年提出的知識(shí)圖譜的概念[4],將用戶-題目-知識(shí)點(diǎn)作為圖的節(jié)點(diǎn),用戶和題目之間的相似度作為邊的權(quán)重,將知識(shí)與用戶行為結(jié)合起來進(jìn)行個(gè)性化推薦。
隨著互聯(lián)網(wǎng)的興起,海量的教學(xué)資源觸手可及,借鑒在電商行業(yè)中對(duì)于商品資源的推薦,在教學(xué)領(lǐng)域也興起了大量關(guān)于教學(xué)資源推薦的研究,幫助用戶快速的從海量資源中找到與自己相關(guān)的內(nèi)容,提升學(xué)習(xí)的效率。
協(xié)同過濾算法的思想是通過用戶的行為數(shù)據(jù)來計(jì)算出用戶、物品之間的相似度,然后推薦相似用戶所感興趣的內(nèi)容,目前已廣泛應(yīng)用于各類教學(xué)資源的推薦,并且取得了較好的效果。例如文獻(xiàn)[5-6]中利用協(xié)同過濾算法對(duì)于課程進(jìn)行了推薦,文獻(xiàn)[7-8]中對(duì)于學(xué)習(xí)資源進(jìn)行了推薦。協(xié)同過濾算法在資源推薦領(lǐng)域受到了廣泛的應(yīng)用,并且取得了較好的效果。雖然教學(xué)資源的推薦非常重要,在信息化教學(xué)系統(tǒng)中對(duì)于習(xí)題的推薦同樣非常重要,可以幫助學(xué)生快速地掌握所學(xué)的知識(shí)。然而習(xí)題的推薦與資源推薦存在著一定的差異,用戶做錯(cuò)題的本質(zhì)是因?yàn)橹R(shí)的欠缺,如果不停地推薦相似用戶的錯(cuò)題并未從根源上解決問題,目前對(duì)于這方面的研究目前較少。
吳云峰等[9]把電子商務(wù)中的用戶對(duì)商品的評(píng)分方式加以修改應(yīng)用到中學(xué)教學(xué)中學(xué)生對(duì)習(xí)題的評(píng)分,并利用協(xié)同過濾算法進(jìn)行習(xí)題推薦。徐琳等[10]設(shè)計(jì)了一個(gè)基于Prim改進(jìn)用戶聚類的推薦算法。郭紅霞[11]利用Apriori算法針對(duì)學(xué)生錯(cuò)題挖掘出學(xué)生薄弱知識(shí)點(diǎn)的關(guān)聯(lián)關(guān)系, 并利用K-Means算法將推薦試題與原錯(cuò)誤試題進(jìn)行聚類,結(jié)合學(xué)生自身對(duì)錯(cuò)題的評(píng)分,預(yù)測(cè)學(xué)生對(duì)推薦試題的評(píng)分進(jìn)行推薦。
目前對(duì)于習(xí)題的推薦也主要還是利用用戶行為數(shù)據(jù)來隱式地反映出題目的內(nèi)在關(guān)聯(lián)進(jìn)而進(jìn)行推薦,隨著Google知識(shí)圖譜概念的提出,知識(shí)圖譜越來越多的被用于知識(shí)表示,基于圖的搜索與推薦也逐漸興起[12-13]。文獻(xiàn)[14-15]中分別利用知識(shí)圖譜進(jìn)行了標(biāo)簽和學(xué)習(xí)資源的推薦。陸星兒等[16]通過分析所構(gòu)建的教學(xué)知識(shí)圖譜,幫助教師反思教學(xué)設(shè)計(jì)與學(xué)生認(rèn)知過程中產(chǎn)生的問題。刷題系統(tǒng)與傳統(tǒng)的資源推薦不同,所關(guān)注的并不是用戶是否對(duì)所推薦的內(nèi)容感興趣,誘導(dǎo)用戶產(chǎn)生點(diǎn)擊行為,提高轉(zhuǎn)換率,而是如何幫助提升復(fù)習(xí)的效率。除了行為數(shù)據(jù)外,知識(shí)同樣占據(jù)著重要的地位,因此本文融合知識(shí)圖譜和協(xié)同過濾算法,構(gòu)建了一套智能刷題系統(tǒng),旨在幫助用戶尋找到復(fù)習(xí)的捷徑。
智能刷題系統(tǒng)中,用戶U、題目Q、知識(shí)點(diǎn)K之間形成了一個(gè)三元關(guān)系,其中:用戶集用U={u1,u2…um}表示;題目集用Q={q1,q2,…,qn}表示;知識(shí)點(diǎn)集用K={k1,k2,…,ko}表示。
(1) 題目-知識(shí)點(diǎn)M(Q,K):權(quán)重表示知識(shí)點(diǎn)對(duì)于該題目的重要程度,分別用0.1,0.3,0.5, 0.7,0.9表示。
(2) 用戶-題目M(U,Q):權(quán)重表示用戶對(duì)題目的掌握程度,M(U,Q)=∑αq1+βq2(其中q1、q2分別表示用戶答對(duì)、答錯(cuò)該題的次數(shù),α,β為權(quán)重系數(shù)。
(3) 用戶-知識(shí)點(diǎn)M(U,K):權(quán)重表示用戶對(duì)知識(shí)點(diǎn)的掌握程度,M(U,K)=∑αq1+βq2(其中q1,q2表示用戶答對(duì)、答錯(cuò)該知識(shí)點(diǎn)的次數(shù),α,β為權(quán)重系數(shù)。
其中:①手工標(biāo)定了題目-知識(shí)點(diǎn)之間的聯(lián)系,②、③根據(jù)用戶的做題記錄定義了用戶對(duì)于題目和知識(shí)點(diǎn)的掌握程度,④、⑤參考協(xié)同過濾的思想,計(jì)算出了題目和用戶之間的相似度,并且通過閾值設(shè)定的方法來計(jì)算出用戶之間的相似度。
圖1所示通過Echarts可視化地呈現(xiàn)了知識(shí)圖譜中的子圖-題目與知識(shí)點(diǎn)之間的關(guān)系,包括了題目-知識(shí)點(diǎn),題目-題目之間的關(guān)系。
圖1 題目-知識(shí)點(diǎn)知識(shí)圖譜
針對(duì)每個(gè)獨(dú)立的用戶在Redis中創(chuàng)建一個(gè)題目隊(duì)列,當(dāng)用戶做錯(cuò)一道題目的時(shí)候,去知識(shí)圖譜中查詢與該題目所相關(guān)的知識(shí)點(diǎn)和關(guān)聯(lián)題,并加入該用戶的刷題隊(duì)列中,來進(jìn)行推薦。
例子:用戶做錯(cuò)了題目7004,
5(int)((double)9/2)-9%2 A.0 B.3 C.4 D.5
步驟1查詢相關(guān)概念知識(shí)點(diǎn)。利用cypher語句去知識(shí)圖譜中查詢?cè)擃}目所涉及的知識(shí)點(diǎn),即match p=(question)-[r]-(knowledgePoint) where question.name = “7004,5” and r.name = “qk_1” return p。結(jié)果將返回該題目所涉及的概念知識(shí)點(diǎn)(求余運(yùn)算和強(qiáng)制轉(zhuǎn)換)
C語言的基本運(yùn)算符有加、減、乘(*)、除(/)、求余__________
類型的強(qiáng)制轉(zhuǎn)換表示形式:__________ (表達(dá)式)
步驟2查詢相關(guān)基礎(chǔ)題知識(shí)點(diǎn)
由于知識(shí)點(diǎn)過于抽象,因此又針對(duì)概念設(shè)置了基礎(chǔ)題知識(shí)點(diǎn),查詢結(jié)果如下:
9%2的值是
取一定量的粉煤灰提取氧化鋁后的白泥,水洗3~5次用于去除其吸附的氯離子,于120 ℃烘箱中烘干。準(zhǔn)確稱量60 g白泥固體加入三頸燒瓶中,加入4.0 mol/L的NaOH溶液240 mL,采用加熱套加熱,溫度為80 ℃,磁力攪拌時(shí)間為2.5 h,過濾后獲得濾液通過ICP測(cè)定成分。
(double)9/2的值是
(int)(4.5)
步驟3查詢相似題。在知識(shí)圖譜中定義了題目與題目之間的關(guān)系M(I_1,I_2),該關(guān)系表示兩道題目同時(shí)做錯(cuò)的概率達(dá)到了某個(gè)特定的閾值。利用語句match p=(q1)-[r]-(q2) where q1.name=“7004,5” return q2即可獲取相似題的數(shù)據(jù),結(jié)果如下:
表達(dá)式3.6-5/2+1.2+5%2的值是
A 4.3 B 4.8 C 3.3 D 3.8
若有以下程序段
double x=5.168 94;
(int)(x*1 000+0.5)/(double)1 000);
則程序段的輸出結(jié)果是
A 5.170 000 B 5.175 000 C 5.169 000
D 5.168 000
步驟4推薦過程。在Redis中針對(duì)每個(gè)用戶設(shè)置了一個(gè)刷題隊(duì)列,將上述所有的關(guān)聯(lián)題目lpush進(jìn)隊(duì)列(見圖2)。并且從隊(duì)列中rpop出一道題目作為下一道推薦的題目。
圖2 推薦過程示意圖
利用知識(shí)圖譜中存儲(chǔ)的用戶-用戶的M(U1,U2)關(guān)系,從圖譜中尋找出與當(dāng)前用戶所相似的用戶集合U={u1,u2,…,un},同時(shí)利用M(U,Q)關(guān)系,遍歷用戶集合查詢出每個(gè)用戶ui未掌握的題目集合Qi并且將該題目加入用戶隊(duì)列中。
知識(shí)圖譜中M(U,K)關(guān)系存儲(chǔ)了用戶對(duì)于知識(shí)點(diǎn)的掌握程度,造成用戶做錯(cuò)題的主要原因還是因?yàn)橹R(shí)點(diǎn)沒有掌握,因此根據(jù)該用戶未掌握的知識(shí)點(diǎn)可以反向推薦出所涉及該知識(shí)點(diǎn)的題目。
上述3種方法分別從用戶-題目(基于知識(shí)),用戶-用戶(基于用戶),用戶-知識(shí)點(diǎn)(基于物品屬性)3個(gè)角度對(duì)于每個(gè)用戶進(jìn)行了個(gè)性化推薦。由于用戶的刷題數(shù)據(jù)是實(shí)時(shí)更新的,后兩種方式中所依托的M(U1,U2)以及M(U,K)計(jì)算復(fù)雜度較高,無法做到實(shí)時(shí)的推薦,因此最終選擇以基于知識(shí)的推薦為主要推薦方式,并且每天定時(shí)對(duì)圖譜進(jìn)行更新并將后兩種方法的計(jì)算結(jié)果加入隊(duì)列進(jìn)行推薦。
利用第2節(jié)中所構(gòu)建的知識(shí)圖譜和第3節(jié)中提到的基于知識(shí)圖譜的推薦方案,在我校進(jìn)行了小規(guī)模的測(cè)試來對(duì)模型進(jìn)行驗(yàn)證,通過分析用戶使用情況、考試成績等數(shù)據(jù)論證了該模型的有效性。
表1統(tǒng)計(jì)了我校2016、2017兩年《C程序設(shè)計(jì)》課程的刷題情況,在2017年我們邀請(qǐng)了2位教師所任教的5個(gè)班級(jí)參與智能模式的測(cè)試。從表1數(shù)據(jù)可以看出,隨著系統(tǒng)的不斷測(cè)試與完善,微信刷題受到了全校師生的廣泛認(rèn)可,在1年時(shí)間內(nèi),刷題總數(shù)從5.6萬題提升到12.1萬題,總計(jì)提升了2.16倍。此外基于知識(shí)圖譜的推薦方式較之傳統(tǒng)的順序、隨機(jī)等模式,用戶忠誠度更高,使用智能模式比傳統(tǒng)模式的人均刷題數(shù)提升了41道。
表1 用戶總體使用情況統(tǒng)計(jì)
進(jìn)一步分析每位學(xué)生的刷題數(shù)目,圖3所示為刷題數(shù)目與占比的關(guān)系圖,普通模式下刷題數(shù)目在30題以下占比約為40%而在智能模式下約為15%,當(dāng)刷題數(shù)超過60題時(shí),智能模式明顯高于普通模式,說明智能刷題的用戶忠誠度更加高,也從側(cè)面體現(xiàn)出該學(xué)生對(duì)該模式的認(rèn)可。
圖3 刷題數(shù)目分布情況
表2為我校某位老師《C程序設(shè)計(jì)》課程的成績分布數(shù)據(jù),總計(jì)186名學(xué)生使用了刷題系統(tǒng),其中35名學(xué)生使用了智能刷題模式。從表中數(shù)據(jù)可以看出使用智能刷題的同學(xué)均分高了3.97分,此外統(tǒng)計(jì)每個(gè)分?jǐn)?shù)段學(xué)生占比情況可見智能模式占比遠(yuǎn)高于普通模式,說明使用智能刷題模式對(duì)成績提高有一定的幫助。
進(jìn)一步分析刷題數(shù)目與成績的關(guān)系,如圖4所示,可以看出刷題數(shù)目與成績大致呈正比關(guān)系,并且除60分以下外,相同分?jǐn)?shù)段智能刷題的刷題數(shù)目低于整體的刷題平均數(shù)和普通模式平均數(shù),說明該方法復(fù)習(xí)的效果更加好。
表2 成績分布情況
圖4 刷題數(shù)與成績關(guān)系圖
為了幫助每個(gè)學(xué)生更好地了解自身的情況,系統(tǒng)提供了各類分析報(bào)表如圖5所示,包括每個(gè)章節(jié)的刷題數(shù)目,掌握情況以及所有未掌握的知識(shí)點(diǎn),另外支持個(gè)人錯(cuò)題集的導(dǎo)出,幫助學(xué)生提高復(fù)習(xí)效率。
本文討論了教學(xué)領(lǐng)域中對(duì)題目的推薦與傳統(tǒng)電商等領(lǐng)域?qū)τ谫Y源推薦的差異。闡述了在信息化教學(xué)系統(tǒng)中單純地利用行為數(shù)據(jù)存在一定的問題,應(yīng)當(dāng)融合進(jìn)題目與知識(shí)點(diǎn)的強(qiáng)關(guān)聯(lián)規(guī)則。利用知識(shí)圖譜構(gòu)建出用戶、題目、知識(shí)點(diǎn)三者之間的關(guān)系,通過計(jì)算用戶、題目之間的相似度來設(shè)定的圖權(quán)重。融合了傳統(tǒng)的基于用戶行為和基于知識(shí)的推薦方法,搭建了一套微信智能刷題系統(tǒng)。通過對(duì)我校近2年刷題數(shù)據(jù)的分析,發(fā)現(xiàn)該方法受到了學(xué)生的廣泛信賴,人均刷題數(shù)提升了41道,此外智能模式較傳統(tǒng)模式平均分高了3.97分,80分以上所占比也有了顯著提升。通過一系列實(shí)驗(yàn)論證了該方法的有效性,可以更好地幫助學(xué)生提升復(fù)習(xí)效率。下一步將結(jié)合算法實(shí)現(xiàn)知識(shí)點(diǎn)的自動(dòng)標(biāo)注,使得系統(tǒng)更加智能化。