諸葛斌,尹正虎,斯文學(xué),顏蕾,董黎剛,蔣獻(xiàn)
(浙江工商大學(xué)信息與電子工程學(xué)院,浙江 杭州 310020)
隨著教育信息化和移動(dòng)端應(yīng)用的加速普及,在線教育打破了傳統(tǒng)教學(xué)的時(shí)空壁壘,學(xué)習(xí)者可以隨時(shí)隨地進(jìn)行線上學(xué)習(xí),海量的習(xí)題和教學(xué)資源能夠充分滿足不同層次學(xué)習(xí)者的學(xué)習(xí)需求,吸引大批用戶來到線上平臺(tái)學(xué)習(xí)。在這個(gè)信息爆炸的時(shí)代,線上教育資源也在呈指數(shù)級(jí)增長(zhǎng),然而這些資源的質(zhì)量參差不齊,極大地增加了學(xué)習(xí)者選擇學(xué)習(xí)資源的難度,而個(gè)性化推薦技術(shù)恰能解決這一難題。因此,如何利用推薦技術(shù)從海量的線上資源中為學(xué)習(xí)者提供精準(zhǔn)、個(gè)性化的習(xí)題推薦,讓學(xué)習(xí)者能更高效地學(xué)習(xí),是在線教育急需解決的問題。
傳統(tǒng)的習(xí)題推薦技術(shù)主要分為兩類,一類是基于內(nèi)容和基于鄰域的協(xié)同過濾推薦[1-2],這是推薦系統(tǒng)中應(yīng)用最為廣泛的推薦算法,主要根據(jù)學(xué)生的歷史學(xué)習(xí)記錄,找到與目標(biāo)學(xué)生興趣相似的近鄰學(xué)生,無須考慮習(xí)題的具體屬性。其中Li等[3]搭建了一個(gè)在線教育平臺(tái),通過協(xié)同過濾算法為用戶推薦個(gè)性化課程;吳云峰等[4]針對(duì)協(xié)同過濾推薦法中用戶的歷史信息不足等問題,提出基于多分類器的遷移Bagging習(xí)題推薦算法;Segal[5]等設(shè)計(jì)了一種針對(duì)學(xué)生的個(gè)性化教育算法,首先通過UserCF對(duì)相似學(xué)生進(jìn)行排序,再為目標(biāo)學(xué)生的習(xí)題構(gòu)建一個(gè)“難度”排名,可輔助教師為學(xué)生布置個(gè)性化作業(yè)和考試。雖然基于UserCF的推薦方法結(jié)構(gòu)簡(jiǎn)單、可解釋性強(qiáng),但這類算法忽略了不同學(xué)生知識(shí)掌握水平的差異,只能粗粒度地對(duì)學(xué)生進(jìn)行分類,無法滿足智慧教育的個(gè)性化習(xí)題推薦要求。
另一類是基于認(rèn)知診斷的推薦技術(shù),如Ozaki[6]提出了傳統(tǒng)DINA模型,該方法將習(xí)題的知識(shí)點(diǎn)考查矩陣作為輸入,得到學(xué)生的認(rèn)知掌握向量,然后根據(jù)學(xué)生認(rèn)知情況向目標(biāo)學(xué)生個(gè)性化推薦習(xí)題。Bang等[7]提出了一個(gè)通用神經(jīng)認(rèn)知診斷(neural cognitive 2iagnosis,NeuralCD)框架,結(jié)合神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)復(fù)雜的運(yùn)動(dòng)交互,將學(xué)生和練習(xí)投射到因子向量上,并利用多個(gè)神經(jīng)層對(duì)其交互進(jìn)行建模,以獲得準(zhǔn)確且可解釋的診斷結(jié)果。Liu等[8]提出了一種模糊認(rèn)知診斷方法框架(fuzzy cognitive 2iagnosis framework,F(xiàn)uzzyCDF),用于考生對(duì)客觀和主觀問題的認(rèn)知建模,結(jié)合模糊集理論和教育假設(shè)來模擬考生的行為,通過考慮失誤和猜測(cè)因素對(duì)每個(gè)問題進(jìn)行評(píng)分。項(xiàng)目反應(yīng)理論(item response theory,IRT)是一種經(jīng)典的認(rèn)知診斷方法,它可以為分析學(xué)生表現(xiàn)提供可解釋的參數(shù)(即學(xué)生潛在特質(zhì)、問題辨別和難度)。Cheng等[9]提出了一個(gè)通用的深度項(xiàng)目反應(yīng)理論(2eep item response theory,DIRT)框架,利用深度學(xué)習(xí)提取問題文本的語(yǔ)義表征,從而增強(qiáng)傳統(tǒng)的認(rèn)知診斷IRT?;谡J(rèn)知診斷的方法能夠考慮學(xué)生的知識(shí)狀態(tài),再基于學(xué)生個(gè)人的知識(shí)水平做出推薦,但是沒有將相似學(xué)生的信息加入?yún)⒖?,忽略了學(xué)習(xí)的群體性,推薦的多樣性受限。
為了彌補(bǔ)上述兩種算法的不足,本文提出了一種基于學(xué)生知識(shí)追蹤的多指標(biāo)習(xí)題推薦(stu2ent knowle2ge tracking base2 multi-in2icator exercise recommen2ation,SKT-MIER)方法,首先對(duì)學(xué)生知識(shí)概念學(xué)習(xí)情況進(jìn)行深入研究,利用LSTM神經(jīng)網(wǎng)絡(luò)對(duì)學(xué)生知識(shí)點(diǎn)學(xué)習(xí)范圍進(jìn)行預(yù)測(cè),以便對(duì)未答知識(shí)點(diǎn)或答錯(cuò)知識(shí)點(diǎn)的相關(guān)習(xí)題進(jìn)行優(yōu)先推薦;利用更先進(jìn)的深度知識(shí)追蹤模型對(duì)學(xué)生的知識(shí)點(diǎn)掌握情況進(jìn)行建模,從而得到學(xué)生當(dāng)前知識(shí)狀態(tài),預(yù)測(cè)其在未來學(xué)習(xí)中的表現(xiàn);其次融入U(xiǎn)serCF算法,結(jié)合學(xué)生相似群體之間的學(xué)習(xí)情況,從而提高推薦的多樣性。綜上所述,本文的主要?jiǎng)?chuàng)新和貢獻(xiàn)如下:
· 提出了一個(gè)結(jié)合學(xué)生遺忘規(guī)律的知識(shí)概率預(yù)測(cè)模型SF-KCCP,得到學(xué)生的知識(shí)點(diǎn)學(xué)習(xí)范圍向量,保證推薦習(xí)題的新穎性,有利于學(xué)生學(xué)習(xí)新知識(shí);
· 基于DKVMN模型,得到學(xué)生的知識(shí)點(diǎn)掌握水平向量,確保推薦習(xí)題難度適當(dāng),有利于激發(fā)學(xué)生的學(xué)習(xí)熱情;
· 將上述兩組向量值為計(jì)算依據(jù),利用協(xié)同過濾算法得到相似學(xué)生,結(jié)合學(xué)生自身和其相似學(xué)生的知識(shí)水平進(jìn)行推薦,提高習(xí)題推薦的多樣性,有利于幫助學(xué)生對(duì)未掌握的知識(shí)點(diǎn)進(jìn)行查漏補(bǔ)缺;
· 在4個(gè)真實(shí)開源的數(shù)據(jù)集上對(duì)本文提出的推薦模型進(jìn)行評(píng)估,并與其他主流模型進(jìn)行對(duì)比,SKT-MIER在相應(yīng)的評(píng)價(jià)指標(biāo)上均有所提高。
知識(shí)追蹤是根據(jù)學(xué)生過去的答題情況對(duì)學(xué)生的知識(shí)掌握情況進(jìn)行建模,從而得到學(xué)生當(dāng)前知識(shí)狀態(tài)表示的一種技術(shù)。早期的知識(shí)追蹤模型是基于一階馬爾可夫模型的,但其有著明顯的缺陷,隨著技術(shù)的進(jìn)步,有研究將深度學(xué)習(xí)(2eep learning,DL)技術(shù)引入知識(shí)追蹤領(lǐng)域,最早基于DL的知識(shí)追蹤模型來自美國(guó)斯坦福大學(xué)的深度知識(shí)追蹤(2eep knowle2ge tracing,DKT)[10],文獻(xiàn)[10]提出利用遞歸神經(jīng)網(wǎng)絡(luò)(recursive neural network,RNN)對(duì)學(xué)生的學(xué)習(xí)情況進(jìn)行建模,將學(xué)生過去的學(xué)習(xí)活動(dòng)壓縮在隱藏層中,映射學(xué)生對(duì)不同知識(shí)概念的掌握水平,以此預(yù)測(cè)學(xué)生未來的答題正確率。DKT在不需要過多專家經(jīng)驗(yàn)和大量特征工程的情況下,精度優(yōu)于傳統(tǒng)方法。針對(duì)DKT算法預(yù)測(cè)結(jié)果的一致性與波動(dòng)性問題,Yeung等[11]提出了在DKT算法的損失函數(shù)中加入3個(gè)正則化項(xiàng)的方法,增強(qiáng)了算法預(yù)測(cè)的精度,使知識(shí)狀態(tài)轉(zhuǎn)移更為平滑。Zhang等[12]在練習(xí)層面加入了更多的特征,并使用自動(dòng)編碼器將高維信息轉(zhuǎn)換為低維特征,提升了模型性能。為了更好地把握學(xué)生做題情況的歷史關(guān)聯(lián)性,神經(jīng)教學(xué)代理[13](neural pe2agogical agent,NPA)模型利用雙向長(zhǎng)短期記憶網(wǎng)絡(luò)對(duì)學(xué)生知識(shí)狀態(tài)進(jìn)行建模,該網(wǎng)絡(luò)配備了一個(gè)注意層用來對(duì)學(xué)生的學(xué)習(xí)歷史進(jìn)行重點(diǎn)分析,從而得出更準(zhǔn)確的預(yù)測(cè)。
除了基于RNN架構(gòu)的知識(shí)追蹤模型,Zhang等[14]提出了基于動(dòng)態(tài)鍵值對(duì)網(wǎng)絡(luò)的知識(shí)追蹤模型DKVMN。它借鑒了記憶增強(qiáng)神經(jīng)網(wǎng)絡(luò)的思想,依賴于外部存儲(chǔ)器中的讀寫操作,比RNN和LSTM更適合對(duì)大量的學(xué)生答題記錄進(jìn)行建模,解決了RNN類模型難以評(píng)估學(xué)生對(duì)每個(gè)知識(shí)點(diǎn)的掌握程度的問題。DKVMN模型網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,其包含一個(gè)讀過程和一個(gè)寫過程,使用鍵值對(duì)存儲(chǔ)器結(jié)構(gòu)而不是單個(gè)矩陣。其中包含了一個(gè)靜態(tài)的鍵(key)矩陣kM,用來存儲(chǔ)所有習(xí)題包含的所有知識(shí)點(diǎn),是不可變的;一個(gè)動(dòng)態(tài)的值(value)矩陣vM,根據(jù)擦除向量和增加向量存儲(chǔ)并更新學(xué)生對(duì)于各個(gè)知識(shí)點(diǎn)的掌握情況,是可變的。
圖1 DKVMN模型網(wǎng)絡(luò)結(jié)構(gòu)
在每個(gè)時(shí)間戳,DKVMN模型有兩組輸入,第一組輸入為離散的練習(xí)題標(biāo)簽qt,對(duì)應(yīng)輸出正確回答qt的概率p ( rt= 1|qt),第二組輸入為題目和回答元組(qt,rt),用來更新下個(gè)時(shí)間步的值矩陣。其中,qt屬于具有若干個(gè)不同練習(xí)的集合Q,rt為該題是否正確回答的二值表示。假設(shè)Q包含m個(gè)知識(shí)點(diǎn)概念{k1,k2,k3,… ,km},那么這些概念存儲(chǔ)在鍵矩陣 Mk(大小為 m ×dk)中。學(xué)生對(duì)每個(gè)知識(shí)點(diǎn)的掌握程度,即知識(shí)點(diǎn)掌握水平狀態(tài)則會(huì)存儲(chǔ)在值矩陣中(大小為 m ×dv),顯然該矩陣隨時(shí)間變化,輸入學(xué)生的每一條做題記錄作為更新依據(jù)。kt為習(xí)題嵌入向量,由輸入qt和嵌入矩陣A相乘得到。kt與 Mk矩陣中每個(gè)知識(shí)點(diǎn)向量進(jìn)行內(nèi)積,再通過激活函數(shù)Softmax計(jì)算權(quán)重向量wt,它代表了習(xí)題和每個(gè)概念之間的關(guān)系:
(1)讀過程
讀過程可以實(shí)現(xiàn)對(duì)學(xué)生答題情況的預(yù)測(cè),當(dāng)練習(xí)題tq來臨時(shí),首先通過計(jì)算權(quán)重向量tw得到該習(xí)題包含哪些知識(shí)點(diǎn),繼而將 tw與值矩陣求內(nèi)積,得到該學(xué)生對(duì)于答對(duì)這道題所需的知識(shí)點(diǎn)的掌握情況,如果掌握了大部分知識(shí)點(diǎn),則估計(jì)該學(xué)生答對(duì)這道題的可能性較大,具體計(jì)算式如下:
盡管有些題目包含的知識(shí)點(diǎn)內(nèi)容相同,但每個(gè)習(xí)題其自身的難度不一,因此將學(xué)生對(duì)練習(xí)的掌握程度tr和輸入練習(xí)嵌入向量tk連接,再通過具有tanh激活的完全連接層獲得總結(jié)向量tf,就包含了習(xí)題本身的難度:
(2)寫過程
寫過程根據(jù)學(xué)生的實(shí)際答題情況實(shí)現(xiàn)對(duì)學(xué)生知識(shí)點(diǎn)掌握情況的更新,體現(xiàn)在值矩陣的動(dòng)態(tài)改變上。輸入答題記錄元組(qt,rt)得到學(xué)生的知識(shí)增長(zhǎng)向量tv,在對(duì)值矩陣進(jìn)行更新之前,先模仿LSTM的輸入門和遺忘門進(jìn)行記憶擦除和新增操作,從而更符合現(xiàn)實(shí)中學(xué)生的遺忘規(guī)律和記憶強(qiáng)化規(guī)律。
計(jì)算擦除向量te:
其中,E為變換矩陣,使得te成為一組列向量且每個(gè)元素取值均在(0,1)內(nèi)。上一時(shí)間步的值矩陣經(jīng)過擦除之后如下:
計(jì)算更新向量ta,其中,TD表示需訓(xùn)練的權(quán)重矩陣,ab表示需訓(xùn)練的偏置參數(shù)向量:
其中,ta為行向量,經(jīng)過更新之后得到下一個(gè)時(shí)間步的值矩陣:
如式(9)所示,在訓(xùn)練過程中,嵌入矩陣A和B以及其他參數(shù)和 Mk、Mtv的初始值通過最小化tp和真實(shí)標(biāo)簽tr之間的標(biāo)準(zhǔn)交叉熵?fù)p失來共同學(xué)習(xí):
本文提出的多指標(biāo)的習(xí)題推薦系統(tǒng)框架如圖2所示,采用一種先篩選后過濾的模式,首先根據(jù)SF-KCCP模型從原始題庫(kù)中篩選符合當(dāng)前學(xué)生知識(shí)點(diǎn)學(xué)習(xí)范圍的習(xí)題,得到預(yù)備習(xí)題庫(kù)。在此基礎(chǔ)上,采用基于用戶的協(xié)同過濾算法過濾,將學(xué)生知識(shí)點(diǎn)學(xué)習(xí)范圍向量和學(xué)生知識(shí)點(diǎn)掌握程度向量作為相似學(xué)生的評(píng)判指標(biāo),然后計(jì)算學(xué)生間的余弦相似度,選擇相似度排名大于一定閾值(通常為0.95)的學(xué)生作為相似用戶,計(jì)算相似用戶的平均知識(shí)點(diǎn)掌握程度,最后根據(jù)設(shè)置的期望難度,過濾得到推薦習(xí)題集。
對(duì)于目標(biāo)學(xué)生在某個(gè)做題時(shí)間t,首先通過初篩模塊生成符合學(xué)生知識(shí)點(diǎn)學(xué)習(xí)范圍的習(xí)題庫(kù)EBp。習(xí)題初篩結(jié)構(gòu)如圖3所示。首先將學(xué)生做題記錄 tX輸入SF-KCCP模型對(duì)學(xué)生已學(xué)知識(shí)點(diǎn)情況進(jìn)行建模,預(yù)測(cè)下一時(shí)刻學(xué)生需要學(xué)習(xí)的知識(shí)點(diǎn)向量并將其與原始習(xí)題庫(kù)中每道習(xí)題真實(shí)包含的知識(shí)點(diǎn)向量 tK進(jìn)行計(jì)算,得到它們的相似性分?jǐn)?shù)tω,相似性分?jǐn)?shù)越高,越符合學(xué)生需要學(xué)習(xí)的知識(shí)范圍,最終選擇符合要求的前N個(gè)習(xí)題e組成EBp。算法 1描述了EBp的計(jì)算過程。相似性分?jǐn)?shù)計(jì)算式如下:
圖3 習(xí)題初篩結(jié)構(gòu)
2.1.1 融入遺忘規(guī)律的知識(shí)點(diǎn)學(xué)習(xí)范圍預(yù)測(cè)模型
圖2 多指標(biāo)的習(xí)題推薦系統(tǒng)框架
圖4 SF-KCCP模型
著名的艾賓浩斯遺忘曲線理論展示了學(xué)生對(duì)所學(xué)知識(shí)的遺忘規(guī)律[15],遺忘的速度呈現(xiàn)先快后慢的趨勢(shì)。遺忘帶來的影響是學(xué)生知識(shí)點(diǎn)學(xué)習(xí)范圍的縮小,之前學(xué)過的知識(shí)點(diǎn)也會(huì)隨著時(shí)間的流逝被逐漸遺忘,從而轉(zhuǎn)變?yōu)槲磳W(xué)知識(shí)點(diǎn)。影響遺忘的具體因素有學(xué)生重復(fù)學(xué)習(xí)知識(shí)點(diǎn)的次數(shù)與距離上次學(xué)習(xí)該知識(shí)點(diǎn)的時(shí)間間隔。SF-KCCP模型如圖4所示,其由本文將遺忘規(guī)律定量地融入預(yù)測(cè)模型中而得到。
2.1.2 知識(shí)點(diǎn)學(xué)習(xí)范圍預(yù)測(cè)
利用知識(shí)概念從0到t的出現(xiàn)順序來預(yù)測(cè)每個(gè)知識(shí)概念在t+1時(shí)刻的出現(xiàn)概率,因此知識(shí)點(diǎn)學(xué)習(xí)范圍預(yù)測(cè)是一個(gè)基于順序的預(yù)測(cè)問題,可以采用LSTM獲得序列預(yù)測(cè)模型?;贚STM的知識(shí)點(diǎn)學(xué)習(xí)范圍預(yù)測(cè)模型如圖5所示,其中標(biāo)記為A的圓角矩形表示模型在時(shí)刻t的狀態(tài)。輸入矩形 tK表示在時(shí)刻t出現(xiàn)的知識(shí)概念,從做題記錄 tX中得到;輸出矩形 1t+K表示通過模型預(yù)測(cè)得到的在時(shí)間1t+知識(shí)概念出現(xiàn)的概率。
圖5 基于LSTM的知識(shí)點(diǎn)學(xué)習(xí)范圍預(yù)測(cè)模型
在被輸入網(wǎng)絡(luò)之前,先對(duì) tK進(jìn)行獨(dú)熱編碼[16],結(jié)果表示為φ (Kt)。模型的輸出 Kt+1是一個(gè)維度等于所有知識(shí)概念數(shù)量的向量,表示對(duì)下一時(shí)刻知識(shí)概念出現(xiàn)的預(yù)測(cè),而1t+時(shí)刻模型的輸入記為φ( Kt+1)即真實(shí)的知識(shí)點(diǎn)學(xué)習(xí)向量。依據(jù)LSTM模型,在一個(gè)訓(xùn)練周期T結(jié)束后對(duì)知識(shí)點(diǎn)學(xué)習(xí)范圍預(yù)測(cè)問題進(jìn)行建模,使用二元交叉熵?fù)p失構(gòu)造一個(gè)損失函數(shù)對(duì)模型進(jìn)行訓(xùn)練。
最終模型的輸出是一個(gè)向量,其長(zhǎng)度等于課程中所有知識(shí)概念的數(shù)量,表示為:
其中,F(xiàn) (ki)表示第i個(gè)知識(shí)概念在t+1時(shí)刻出現(xiàn)的概率。為了滿足推薦的新穎性,讓已經(jīng)回答正確的知識(shí)概念在以后的練習(xí)中盡量少出現(xiàn),模型賦予學(xué)生答題過程中未答知識(shí)點(diǎn)和回答錯(cuò)誤的知識(shí)點(diǎn)更大的權(quán)重,即在LSTM網(wǎng)絡(luò)的輸出層添加一個(gè)權(quán)重向量,其長(zhǎng)度等于知識(shí)概念的數(shù)量:
其中,ir表示某學(xué)生在答題時(shí)間段T內(nèi)正確回答知識(shí)點(diǎn) iK的次數(shù),ic表示T時(shí)間段內(nèi)知識(shí)點(diǎn) iK出現(xiàn)的次數(shù)。通過LSTM模型的輸出與權(quán)重向量的結(jié)合可以得到下次練習(xí)中知識(shí)概念的出現(xiàn)概率向量,即
2.1.3 融入學(xué)生遺忘規(guī)律
將距離上次學(xué)習(xí)相同知識(shí)點(diǎn)的時(shí)間間隔因素記為SK(same knowle2ge),將重復(fù)學(xué)習(xí)相同知識(shí)點(diǎn)的次數(shù)因素記為RT(repeat times),這兩個(gè)標(biāo)量組合得到向量表示學(xué)生對(duì)知識(shí)點(diǎn)i的遺忘程度。受LSTM網(wǎng)絡(luò)的啟發(fā),采用全連接網(wǎng)絡(luò)計(jì)算記憶擦除向量和記憶更新向量來擬合遺忘行為,與第2.1.2節(jié)中得到的相結(jié)合得到新的知識(shí)點(diǎn)學(xué)習(xí)范圍
遺忘處理過程如圖6所示,將影響學(xué)生遺忘的因素Ft(i)與t時(shí)刻學(xué)生的知識(shí)點(diǎn)學(xué)習(xí)范圍嵌入矩陣進(jìn)行遺忘處理,得到學(xué)生本次學(xué)習(xí)開始時(shí)的知識(shí)點(diǎn)學(xué)習(xí)范圍嵌入矩陣。受LSTM中遺忘門與輸入門的啟發(fā),根據(jù)影響知識(shí)遺忘的因素Ft(i )更新 時(shí),首先要擦除中原有的信息,再寫入信息。其中,擦除過程控制學(xué)生知識(shí)點(diǎn)學(xué)習(xí)范圍的衰減,寫入過程控制學(xué)生知識(shí)點(diǎn)學(xué)習(xí)范圍的更新。
圖6 遺忘處理過程
利用一個(gè)帶有Sigmoi2激活函數(shù)的全連接層實(shí)現(xiàn)擦除過程,具體計(jì)算式為:
其中,σ表示Sigmoi2激活函數(shù),eW為權(quán)重矩陣,形狀是全連接層的偏置向量eb為vd維。
利用一個(gè)帶有tanh激活函數(shù)的全連接層實(shí)現(xiàn)更新過程,具體計(jì)算式為:
習(xí)題初篩模塊的算法描述如下。
算法1 習(xí)題的初篩算法
輸入:Xt, EB, N {做題記錄,習(xí)題庫(kù),需要的題數(shù)} 輸出:EBp{預(yù) 備習(xí)題庫(kù)}
2.2.1 計(jì)算相似學(xué)生用戶
本節(jié)介紹了如何基于SF-KCCP模型與DKVMN模型得到目標(biāo)學(xué)生的相似用戶S′,再通過相似用戶計(jì)算每個(gè)目標(biāo)學(xué)生的平均知識(shí)掌握程度gi。算法 2描述了gi的計(jì)算過程。其中,PF(kc)( m ×n)表示確定時(shí)刻學(xué)生的知識(shí)點(diǎn)學(xué)習(xí)范圍矩陣,m表示學(xué)生個(gè)數(shù),n表示知識(shí)點(diǎn)數(shù)量;p(m×z)表示學(xué)生知識(shí)掌握水平矩陣,z表示題目數(shù)量。假設(shè)學(xué)生i與學(xué)生j的pj={d1,d2,… ,dz},則學(xué)生i與學(xué)生j的余弦相似度計(jì)算式如下:
對(duì)于目標(biāo)學(xué)生i,其最終的平均知識(shí)掌握程度計(jì)算式如下:
其中,average(pS′)為與學(xué)生i相似的所有學(xué)生的知識(shí)掌握水平向量平均值,gi由學(xué)生個(gè)人的知識(shí)水平pi和相似學(xué)生的共性知識(shí)水平average(pS′)按一定的比例相加得到,比例由參數(shù)ρ調(diào)節(jié),ρ的取值范圍為[0, 1]。ρ越大,學(xué)生個(gè)人知識(shí)水平產(chǎn)生的影響越大,這里 ρ= 0.7。
計(jì)算學(xué)生的平均知識(shí)掌握程度算法描述如下。
算法2 學(xué)生的平均知識(shí)掌握程度算法
輸入: PF(kc)( m ×n),p( m ×z),S{學(xué)生的知識(shí)點(diǎn)學(xué)習(xí)范圍矩陣, 知識(shí)掌握水平矩陣, 學(xué)生}
輸出:g{所 有學(xué)生的平均知識(shí)掌握水平}
2.2.2 再過濾算法
在進(jìn)行習(xí)題推薦時(shí),考慮學(xué)生個(gè)人的知識(shí)掌握水平既可以使推薦結(jié)果更具針對(duì)性,又能對(duì)推薦題目的難度把控更到位。而加入U(xiǎn)serCF算法可以結(jié)合學(xué)生相似群體之間的學(xué)習(xí)情況,提高推薦結(jié)果的多樣性。
為了達(dá)到上述目的,習(xí)題再過濾結(jié)構(gòu)如圖7所示,設(shè)置習(xí)題再過濾模塊用于對(duì)初篩后的預(yù)備習(xí)題庫(kù)進(jìn)行二次過濾。ig表示學(xué)生i的平均知識(shí)掌握程度向量,每一位的值越大代表學(xué)生i答對(duì)該題的概率越大,即該題對(duì)該學(xué)生來說難度越小,因此可以使用1i-g表示學(xué)生i的習(xí)題預(yù)測(cè)難度向量。其中iδ表示推薦題目的期望難度,它可以是一個(gè)適當(dāng)?shù)碾y度范圍,表示向?qū)W生推薦正確概率為iδ的題目。標(biāo)有Distance的圓角矩形是一個(gè)計(jì)算習(xí)題預(yù)測(cè)難度和期望難度iδ之間距離的過程,預(yù)測(cè)難度即1i-g。在獲得每個(gè)練習(xí)的預(yù)測(cè)難度與期望難度之間的距離|δi-(1 -gi)|后,通過設(shè)定最大權(quán)重值 Ωi對(duì)練習(xí)進(jìn)行排序,并選擇所有小于 iΩ的n個(gè)練習(xí)組成最終的輸出練習(xí)集
圖7 習(xí)題再過濾結(jié)構(gòu)
本文的實(shí)驗(yàn)部分使用了3個(gè)數(shù)據(jù)集作對(duì)比分析,分別是ASSISTment2009、Statics 2011以及本文作者團(tuán)隊(duì)自主開發(fā)的智慧在線教育系統(tǒng)DouDouYun的數(shù)據(jù)集,3個(gè)數(shù)據(jù)集的縮寫分別是ASST09、STATICS、DouDY,數(shù)據(jù)集簡(jiǎn)介見表1。
表1 數(shù)據(jù)集簡(jiǎn)介
實(shí)驗(yàn)將本文提出的推薦算法與以下3個(gè)基線模型進(jìn)行對(duì)比,分別是基于學(xué)生的協(xié)同過濾[17](stu2ent-base2 collaborative filter,SB-CF)、基于習(xí)題的協(xié)同過濾[18](exercise-base2 collaborative filter,EB-CF)以及馬驍睿等[19]提出的基于協(xié)同過濾的深度知識(shí)追蹤(2eep knowle2ge tracking base2 on collaborative filtering,DKT-CF)模型方法。
(1)SB-CF
該模型參考協(xié)同過濾的思想,為特定用戶尋找感興趣的內(nèi)容,在習(xí)題推薦中基于學(xué)生相似度進(jìn)行推薦,根據(jù)學(xué)生的做題記錄構(gòu)建學(xué)生之間的相似度矩陣,然后識(shí)別得到與目標(biāo)學(xué)生答題情況最為相似的前10名學(xué)生,再?gòu)拿總€(gè)相似學(xué)生的答題記錄中抽取適合難度的題目進(jìn)行推薦。
(2)EB-CF
該模型參考物品之間相似度進(jìn)行推薦的思想,利用項(xiàng)目的內(nèi)在品質(zhì)或者固有屬性進(jìn)行推薦,在習(xí)題推薦中根據(jù)學(xué)生的習(xí)題作答情況為每個(gè)習(xí)題設(shè)置難度權(quán)重,然后計(jì)算習(xí)題相似矩陣并從中提取和已做練習(xí)相似的習(xí)題,再根據(jù)想要的習(xí)題難度權(quán)重進(jìn)行推薦。
(3)DKT-CF
該模型通過深度知識(shí)追蹤模型DKT對(duì)學(xué)生知識(shí)狀態(tài)建模,再結(jié)合相似學(xué)生的信息進(jìn)行協(xié)同過濾推薦,使推薦結(jié)果既考慮學(xué)生個(gè)人的知識(shí)狀態(tài)又考慮群體學(xué)生學(xué)習(xí)的共性,提高了推薦結(jié)果的可解釋性和準(zhǔn)確性。
本文結(jié)合多種算法實(shí)現(xiàn)了一個(gè)多指標(biāo)的習(xí)題推薦系統(tǒng),多指標(biāo)指的是練習(xí)的難度、新穎度和多樣性。其中,習(xí)題難度會(huì)影響學(xué)生答題的正確率,從而影響學(xué)生的使用體驗(yàn),所以難度對(duì)于推薦習(xí)題的質(zhì)量把控起到最為關(guān)鍵的作用[20];推薦習(xí)題的新穎程度能夠給學(xué)生提供一種驚喜感,有助于學(xué)生對(duì)新知識(shí)點(diǎn)的學(xué)習(xí);多樣性則能夠方便學(xué)生查漏補(bǔ)缺,對(duì)于所有知識(shí)點(diǎn)進(jìn)行一個(gè)更為全面的學(xué)習(xí)[21]。
(1)準(zhǔn)確性
在實(shí)際應(yīng)用中,可以通過答題準(zhǔn)確性(accuracy)評(píng)估習(xí)題難度。如式(21)所示,表示學(xué)生對(duì)所推薦習(xí)題的作答結(jié)果(正確為1,不正確為0),表示在推薦的n道習(xí)題中學(xué)生作答正確的題數(shù),做對(duì)題數(shù)除以總題數(shù)表示答對(duì)概率,通過判斷答對(duì)概率與設(shè)定值δ(在實(shí)驗(yàn)中,該值為0.7)的接近程度來衡量推薦效果,越接近則推薦效果越好。
(2)新穎性
第2個(gè)指標(biāo)為習(xí)題新穎性(Novelty)[22],若推薦習(xí)題中包含越多學(xué)生未答或答錯(cuò)知識(shí)點(diǎn),則推薦的習(xí)題新穎性越高。在介紹新穎性計(jì)算式之前先了解一下Jaccar2系數(shù)的概念,Jaccar2相似系數(shù)[23]用于比較有限樣本集之間的相似性與差異性,系數(shù)值越大,樣本相似度越高。下列計(jì)算式中e (ki)==1表示習(xí)題e (k)包含第i個(gè)知識(shí)點(diǎn),E (k)表示習(xí)題e( k)包含的所有知識(shí)概念;相對(duì)的E (k)r表示正確回答的習(xí)題e (k)r包含的知識(shí)點(diǎn);為Jaccar2 距離的計(jì)算式,表示未答或答錯(cuò)知識(shí)點(diǎn)占所有知識(shí)點(diǎn)的比重,通過對(duì)推薦習(xí)題列表中的每一道題進(jìn)行Jaccar2距離加權(quán)平均值計(jì)算就可以得到推薦習(xí)題的新穎性值。
(3)多樣性 第3個(gè)指標(biāo)為習(xí)題多樣性(Diversity),多樣性表示推薦練習(xí)所包含知識(shí)點(diǎn)間的差異,用兩個(gè)習(xí)題的知識(shí)點(diǎn)向量之間的余弦相似度進(jìn)行定量表示[24]。首先計(jì)算推薦列表中每道題之間的知識(shí)點(diǎn)差異度,再對(duì)推薦的n道題進(jìn)行差異度均值計(jì)算得到多樣性值,計(jì)算式如下:
3.4.1 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)環(huán)境操作系統(tǒng)為 Bin2ows10 64 bit,語(yǔ)言為Python3.6,采用PyTorch1.8.1版本,GPU型號(hào)為RTX 2080 Ti。
3.4.2 模型參數(shù)設(shè)置
在DKVMN模型訓(xùn)練階段,學(xué)習(xí)速率和迭代次數(shù)設(shè)置為0.005和50,使用 A2am 優(yōu)化算法,使用 Glorot初始化所有可訓(xùn)練的參數(shù)[25]。對(duì)于模型批尺寸(batchsize)的設(shè)置,通過在測(cè)試數(shù)據(jù)集上的平均AUC得分來確定,AUC的值越大表明模型的性能越強(qiáng),不同批尺寸下AUC值對(duì)比結(jié)果見表2。ASSIST2009和DouDouYun數(shù)據(jù)集的批尺寸為32時(shí),AUC值最高;STATICS數(shù)據(jù)集的批尺寸為8時(shí),AUC值最高,這是由于該數(shù)據(jù)集缺乏隨機(jī)噪聲引起的。通過模型在測(cè)試數(shù)據(jù)集上的平均AUC得分來確定知識(shí)點(diǎn)嵌入向量的維度kd和學(xué)生知識(shí)掌握程度嵌入向量的維度vd的超參數(shù)設(shè)置。為了減少參數(shù)數(shù)量,一般設(shè)
3.4.3 模型預(yù)測(cè)性能對(duì)比分析
實(shí)驗(yàn)采用五重交叉驗(yàn)證的形式,每輪將數(shù)據(jù)集隨機(jī)分成兩份,其中70%作為模型的訓(xùn)練數(shù)據(jù),10%作為驗(yàn)證數(shù)據(jù),剩余20%的數(shù)據(jù)集用作整個(gè)推薦模型的測(cè)試數(shù)據(jù)。為了度量DKVMN算法的性能并與現(xiàn)有知識(shí)追蹤模型——貝葉斯知識(shí)追蹤(Bayesian knowle2ge tracking,BKT)、DKT進(jìn)行比較,本文采用知識(shí)追蹤領(lǐng)域的標(biāo)準(zhǔn)度量AUC(曲線下面積)、ACC(準(zhǔn)確率)、RMSE(均方根誤差)作為性能衡量指標(biāo),AUC和ACC的值越大表明模型的預(yù)測(cè)性能越強(qiáng),RMSE的值越小表明模型的預(yù)測(cè)性能越好。模型預(yù)測(cè)性能對(duì)比見表3,給出了DKVMN與另外兩個(gè)模型在3個(gè)數(shù)據(jù)集的平均AUC 值、平均 ACC 值和平均 RMSE 值的對(duì)比結(jié)果。表3表明DKVMN在3個(gè)數(shù)據(jù)集上的平均AUC、ACC、RMSE都優(yōu)于另外兩種知識(shí)追蹤模型,這也證明了DKVMN在預(yù)測(cè)學(xué)生答題表現(xiàn)上性能優(yōu)于現(xiàn)有模型。BKT在3個(gè)模型中性能最低,這表明對(duì)學(xué)生的知識(shí)掌握狀態(tài)直接二值化是有缺陷的。DKT的預(yù)測(cè)性能也低于DKVMN,這是因?yàn)槠涫褂肦NN雖然能夠獲得學(xué)生整體的知識(shí)水平狀態(tài),卻無法準(zhǔn)確預(yù)測(cè)對(duì)某個(gè)知識(shí)點(diǎn)的掌握水平??梢钥吹皆诓煌臄?shù)據(jù)集上模型的精確度不同且差異較大,這與數(shù)據(jù)集中包含的題庫(kù)類別、單位學(xué)生做題數(shù)及單位習(xí)題包含知識(shí)概念數(shù)息息相關(guān)。隨著預(yù)測(cè)精度的提高,推薦模型可以更好地確保推薦的效果,因此采用上述訓(xùn)練得到的最優(yōu)模型進(jìn)行組合得到本文提出的SKT-MIER習(xí)題推薦模型。
表2 不同批尺寸下AUC值對(duì)比結(jié)果
表3 模型預(yù)測(cè)性能對(duì)比
3.4.4 實(shí)驗(yàn)結(jié)果
為了比較各習(xí)題推薦模型的效果,實(shí)驗(yàn)使用上文提到的4個(gè)數(shù)據(jù)集,其中20%的學(xué)生數(shù)據(jù)用于測(cè)試推薦系統(tǒng)的效果。首先將這20%的學(xué)生做題記錄輸入SF-KCCP模型,得到學(xué)生知識(shí)點(diǎn)學(xué)習(xí)范圍向量,根據(jù)范圍向量得到預(yù)備習(xí)題庫(kù)。在習(xí)題再過濾階段,根據(jù)設(shè)置的期望難度iδ和預(yù)測(cè)難度ig之間的距離對(duì)預(yù)備習(xí)題庫(kù)進(jìn)行重排序,選擇前n道習(xí)題進(jìn)行推薦。
習(xí)題推薦的準(zhǔn)確性見表4,習(xí)題推薦多樣性見表5,習(xí)題推薦的新穎性見表6,分別展示了上述4種模型在推題準(zhǔn)確性、新穎性和多樣性上的結(jié)果。Mean值表示推薦列表中相應(yīng)指標(biāo)的平均值,該值越接近1,性能越好。St2.D表示各指標(biāo)的標(biāo)準(zhǔn)差,該值越接近0,推薦效果越穩(wěn)定。
表4反映了4種模型在4個(gè)數(shù)據(jù)集上推薦習(xí)題的準(zhǔn)確性,SKT-MIER模型相較其他3種模型的推題準(zhǔn)確度是最高的。在DouDouYun數(shù)據(jù)集中,模型DKT-CF的穩(wěn)定性略優(yōu)于本文所提模型,這是由于該數(shù)據(jù)集學(xué)生數(shù)較多,且SKT-MIER在計(jì)算學(xué)生i的平均知識(shí)掌握水平ig時(shí),需要考慮相似學(xué)生的知識(shí)掌握水平。這里設(shè)置了較大的相似學(xué)生的權(quán)重系數(shù)ρ,所以推薦的穩(wěn)定性受到影響。
表4 習(xí)題推薦的準(zhǔn)確性
表5 習(xí)題推薦的多樣性
表6 習(xí)題推薦的新穎性
表5反映了4種模型在不同數(shù)據(jù)集推薦習(xí)題多樣性上的差異,可以發(fā)現(xiàn),當(dāng)數(shù)據(jù)集的知識(shí)概念較少時(shí),生成的推薦習(xí)題集的多樣性也會(huì)降低。在ASST2009數(shù)據(jù)集中,模型DKT-CF的穩(wěn)定性略優(yōu)于本文所提模型,此處與表4的原因相同,因?yàn)镾KT-MIER設(shè)置了較大的相似學(xué)生的權(quán)重系數(shù)ρ,所以推薦的穩(wěn)定性受到影響。
表6反映了4種模型在3個(gè)數(shù)據(jù)集上推薦習(xí)題新穎性上的差異,習(xí)題數(shù)量越多則習(xí)題的新穎性越高。
習(xí)題推薦準(zhǔn)確性如圖8所示,習(xí)題推薦多樣性如圖9所示,習(xí)題推薦新穎性如圖10所示,圖8~圖10中不同的折線表示不同模型在推題準(zhǔn)確性、多樣性和新穎性上的結(jié)果,橫坐標(biāo)為推題組數(shù),每組推薦10道題。
從圖8的實(shí)驗(yàn)結(jié)果可知,傳統(tǒng)的習(xí)題推薦算法SB-CF和EB-CF在推薦的準(zhǔn)確性上比較差,而DKT-CF和SKT-MIER模型的推題準(zhǔn)確性有顯著的提高,這證明了DKT在提高推薦準(zhǔn)確性上的有效性。SKT-MIER采用了基于增強(qiáng)神經(jīng)網(wǎng)絡(luò)的DKVMN知識(shí)追蹤網(wǎng)絡(luò),可以更精準(zhǔn)地挖掘?qū)W生的知識(shí)掌握水平,所以習(xí)題推薦的準(zhǔn)確性明顯優(yōu)于其他3個(gè)模型。
習(xí)題推薦多樣性如圖9所示。值得注意的是本文提出的SKT-MIER模型在3個(gè)數(shù)據(jù)集的多樣性結(jié)果比DKT-CF模型平均高出8.7%,這是因?yàn)楸疚牟捎昧藢W(xué)生知識(shí)點(diǎn)學(xué)習(xí)范圍向量和學(xué)生知識(shí)掌握水平向量作為雙重指標(biāo)判定相似學(xué)生,可選學(xué)生范圍更廣,可供推薦的知識(shí)點(diǎn)更加多元,所以推薦的習(xí)題更加多樣化。
圖8 習(xí)題推薦準(zhǔn)確性
習(xí)題推薦新穎性如圖10所示,顯示了SKT-MIER模型在推題新穎性方面有較好的表現(xiàn)。傳統(tǒng)推薦算法忽略了學(xué)習(xí)中的遺忘特性,在不斷推題過程中無法根據(jù)學(xué)生知識(shí)掌握情況的改變而變化,導(dǎo)致推題的新穎性不足。學(xué)生的遺忘行為會(huì)導(dǎo)致先前學(xué)過的知識(shí)點(diǎn)在一定程度上轉(zhuǎn)變?yōu)槲磳W(xué)知識(shí)點(diǎn),因此本文在SKT-MIER中融入了學(xué)生的遺忘規(guī)律,使推薦習(xí)題中包含更多未學(xué)或遺忘的知識(shí)點(diǎn),所以在推題新穎性上優(yōu)于傳統(tǒng)模型。綜上所述,本文所提方法比其他3種基線模型有明顯的優(yōu)勢(shì)。
圖9 習(xí)題推薦多樣性
圖10 習(xí)題推薦新穎性
針對(duì)傳統(tǒng)的習(xí)題推薦算法忽略了學(xué)生的遺忘規(guī)律,不能合理地將學(xué)生知識(shí)掌握水平與相似學(xué)生的共性特征進(jìn)行結(jié)合,推薦習(xí)題的評(píng)價(jià)指標(biāo)單一,新穎性和多樣性不足,不能合理地促進(jìn)學(xué)生對(duì)新知識(shí)的學(xué)習(xí)或幫助學(xué)生查缺補(bǔ)漏等問題,本文結(jié)合深度知識(shí)追蹤模型和基于用戶的協(xié)同過濾算法,提出一種基于學(xué)生知識(shí)追蹤的多指標(biāo)習(xí)題推薦方法。該方法首先從學(xué)生已經(jīng)學(xué)習(xí)的知識(shí)點(diǎn)范圍出發(fā),提出了基于學(xué)生遺忘規(guī)律的知識(shí)點(diǎn)學(xué)習(xí)范圍預(yù)測(cè)模型,從而滿足習(xí)題推薦新穎性,合理地促進(jìn)學(xué)生學(xué)習(xí)新知識(shí);然后從學(xué)生對(duì)知識(shí)點(diǎn)的掌握程度出發(fā),利用DKVMN模型追蹤學(xué)生的知識(shí)掌握水平,從而實(shí)現(xiàn)習(xí)題的個(gè)性化精準(zhǔn)推薦,合理地激發(fā)學(xué)生的學(xué)習(xí)熱情;最后從學(xué)生群體之間的相似性出發(fā),將UserCF算法融入再過濾模塊,實(shí)現(xiàn)推薦習(xí)題的多樣性,合理地幫助學(xué)生查缺補(bǔ)漏。最后本文作者團(tuán)隊(duì)在幾個(gè)經(jīng)典教育數(shù)據(jù)集上驗(yàn)證了SKT-MIER方法的優(yōu)勢(shì),證實(shí)了該方法的有效性及合理性。
雖然本文提出的習(xí)題推薦模型優(yōu)于多個(gè)現(xiàn)有方法,但仍有許多可以改進(jìn)的地方,在未來可以朝以下幾個(gè)方向深入研究。
(1)對(duì)題目文本進(jìn)行語(yǔ)義分析
建立學(xué)生行為和習(xí)題內(nèi)容之間的語(yǔ)義聯(lián)系,進(jìn)一步解決推薦時(shí)的冷啟動(dòng)[27]問題。
(2)進(jìn)行多類型習(xí)題推薦研究
前大多數(shù)模型的研究以選擇題居多,答題結(jié)果也只有對(duì)或錯(cuò)兩類,在實(shí)際情況中習(xí)題類型豐富多樣,有選擇填空、問答以及計(jì)算題等,答題結(jié)果并非只有0和1的情況,對(duì)于多樣化的習(xí)題類型,知識(shí)圖譜[28]技術(shù)會(huì)是一個(gè)不錯(cuò)的選擇。
(3)提高推薦算法的效率
為了充分挖掘?qū)W生行為數(shù)據(jù),實(shí)現(xiàn)精細(xì)化推薦,本文研究極大地提高了算法復(fù)雜度,在未來可采用更先進(jìn)的模型或優(yōu)化流程簡(jiǎn)化模型復(fù)雜度,實(shí)現(xiàn)快速推薦。
(4)探索知識(shí)追蹤多場(chǎng)景應(yīng)用
在實(shí)際學(xué)習(xí)中除了習(xí)題、知識(shí)點(diǎn)、答題結(jié)果等數(shù)據(jù),還有如做題嘗試次數(shù)、題目解析查看情況以及題目收藏情況等標(biāo)簽,當(dāng)前對(duì)于這些標(biāo)簽的使用場(chǎng)景研究還不夠深入,未來可持續(xù)探索。