孫 浩, 洪青青, 魏李婷, 李 斌
(揚(yáng)州大學(xué)信息工程學(xué)院(人工智能學(xué)院), 江蘇 揚(yáng)州 225127)
1978年, 知識追蹤的概念首次被提出, 其主要任務(wù)是根據(jù)學(xué)生的練習(xí)表現(xiàn)動(dòng)態(tài)預(yù)測知識狀態(tài), 從而預(yù)測學(xué)生在后續(xù)練習(xí)中的表現(xiàn).近年來, 知識追蹤成為實(shí)現(xiàn)個(gè)性化學(xué)習(xí)的關(guān)鍵研究問題之一.Piech等[1]將循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks, RNN)中的隱藏變量視作學(xué)生的掌握情況并應(yīng)用于知識追蹤任務(wù), 提出一種基于深度學(xué)習(xí)方法的知識追蹤(deep knowledge tracing, DKT), 但因其僅使用一個(gè)隱藏變量故難以準(zhǔn)確說明任一知識點(diǎn)的掌握情況.于是, Zhang等[2]受記憶增強(qiáng)神經(jīng)網(wǎng)絡(luò)[3](memory augmented neural network, MANN)啟發(fā)提出一種動(dòng)態(tài)鍵值記憶網(wǎng)絡(luò)(dynamic key-value memory networks, DKVMN), 獲得較好的預(yù)測性能.Xie[4], Sun[5], 宗曉萍[6]等通過修改DKVMN的內(nèi)部結(jié)構(gòu)提升了模型預(yù)測的準(zhǔn)確性,但在遺忘和學(xué)習(xí)方面仍有待改進(jìn).對于遺忘和學(xué)習(xí)行為, 王璨等[7]利用RNN計(jì)算學(xué)生的先驗(yàn)基礎(chǔ),選擇通用時(shí)間卷積網(wǎng)絡(luò)預(yù)測下一題的正確率, 有效融合了學(xué)生遺忘行為; Nagatani等[8]考慮艾賓浩斯曲線理論[9-10]在DKT中增加重復(fù)時(shí)間間隔、序列時(shí)間差和過去答題次數(shù)等因素進(jìn)行建模, 提出納入遺忘特征的深度知識追蹤; 李曉光等[11]基于DKT+Forget模型, 考慮學(xué)生對知識點(diǎn)的掌握程度, 將其答題結(jié)果作為知識追蹤過程中掌握程度的間接反饋, 建立了一個(gè)融合學(xué)習(xí)和遺忘行為的知識追蹤模型.本文在DKVMN基礎(chǔ)上引入重復(fù)時(shí)間間隔和過去答題次數(shù)等特征進(jìn)行建模,通過門控機(jī)制[12]在預(yù)測部分整合遺忘因素和學(xué)習(xí)因素,提出一種基于序列中遺忘行為的動(dòng)態(tài)鍵值記憶網(wǎng)絡(luò)(dynamic key-value memory networks-forget, DKVMN-F).
給定答題者的答題序列X=({q1,y1},{q2,y2},…,{qt-1,yt-1}), 其中qt為問題編號,yt∈{0,1}表示答題者答題是否正確,正確為1,錯(cuò)誤為0.知識追蹤的主要任務(wù)是根據(jù)給定的答題序列X,預(yù)測時(shí)間t內(nèi)該答題者正確回答新問題的概率p(yt=1|qt,X).
根據(jù)序列X提取所需特征: 1) 重復(fù)時(shí)間間隔(repeated time gap, RTG), 即學(xué)生對于同一知識點(diǎn)中習(xí)題的答題互動(dòng)與前一次互動(dòng)之間的延遲時(shí)間; 2) 過去答題次數(shù)(past test counts, PTC), 即學(xué)生針對同一知識點(diǎn)中習(xí)題的已答題次數(shù).設(shè)置首次出現(xiàn)的問題的RTG為無窮大值, PTC為0.為了避免數(shù)據(jù)過于稀疏,對提取的特征進(jìn)行l(wèi)b(·)運(yùn)算.提取過程如圖1所示.
圖1 序列特征提取
基于DKVMN的整體架構(gòu), 在其預(yù)測部分增設(shè)重復(fù)時(shí)間間隔和過去答題次數(shù)特征, 再利用門控機(jī)制進(jìn)行特征融合, 改進(jìn)后的DKVMN-F網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.由圖2可見, DKVMN-F框架由嵌入層、鍵處理層、讀取層、寫入層和預(yù)測層組成.
圖2 DKVMN-F的網(wǎng)絡(luò)結(jié)構(gòu)示意圖
DKVMN-F模型的實(shí)現(xiàn)流程如下:
1) 掌握程度初始化.DKVMN中以鍵矩陣存儲(chǔ)潛在知識點(diǎn), 值矩陣存儲(chǔ)知識點(diǎn)的掌握情況.設(shè)定鍵矩陣(大小為N×dk)和值矩陣(大小為N×dv)的維度, 其中N為潛在的知識點(diǎn)個(gè)數(shù),dk,dv為嵌入的維度, 對鍵矩陣和值矩陣進(jìn)行隨機(jī)初始化.
2) 答題序列嵌入.在嵌入層對習(xí)題編號qt、元組(qt,yt)進(jìn)行嵌入.計(jì)算元組(qt,yt)的聯(lián)合表示qyt=2qt+yt, 再將qt、qyt分別乘以嵌入向量A,B進(jìn)行嵌入, 得到習(xí)題編號嵌入kt和聯(lián)合嵌入vt,kt的維度為dk,vt的維度為dv.將重復(fù)時(shí)間間隔和過去答題次數(shù)特征的獨(dú)熱編碼(One-Hot編碼)分別乘以嵌入向量WRTG、WPTG, 得到學(xué)習(xí)因素向量lt和遺忘因素向量ft.
3) 知識點(diǎn)相關(guān)性計(jì)算.在鍵處理層通過習(xí)題編號嵌入kt與鍵矩陣Mk=(Mk(1),Mk(2), …,Mk(N))中的每個(gè)單元Mk(i)內(nèi)積, 再進(jìn)行Softmax激活, 得到kt與鍵矩陣中每個(gè)單元之間的相關(guān)權(quán)值
(1)
即其與每個(gè)潛在知識點(diǎn)之間的相關(guān)性.
4) 知識點(diǎn)掌握程度計(jì)算.在讀取層根據(jù)相關(guān)性計(jì)算所得權(quán)值wt計(jì)算出習(xí)題編號qt所需的知識點(diǎn)掌握情況, 即wt與值矩陣Mv=(Mv(1),Mv(2),…,Mv(N))中每個(gè)單元內(nèi)積的加權(quán)和, 所需知識點(diǎn)掌握情況
(2)
采用殘差連接方法將習(xí)題編號嵌入kt與知識點(diǎn)掌握情況rt相結(jié)合, 并引入學(xué)習(xí)因素向量lt, 得到已掌握信息匯總向量
(3)
其中W1,b1分別為已掌握知識的權(quán)重矩陣和偏置向量, 從而提升預(yù)測的性能.
(4)
其中We,be分別為遺忘信息的權(quán)重矩陣和偏置向量; 然后計(jì)算值矩陣中每個(gè)知識點(diǎn)遺忘后的值
(5)
其中w′t(i)為利用相關(guān)性計(jì)算得到的與每個(gè)知識點(diǎn)之間的相關(guān)性權(quán)重; 其次計(jì)算從題目中學(xué)習(xí)的新增信息向量at,
(6)
其中Wa,ba分別為新增學(xué)習(xí)信息的權(quán)重矩陣和偏置向量; 最后更新記憶矩陣為
(7)
6) 答題情況預(yù)測.利用遺忘門機(jī)制整合知識點(diǎn)掌握程度, 得到學(xué)習(xí)信息總向量ot和遺忘總向量
fst=wt⊙ft,
(8)
其中ft為遺忘因素向量.首先, 計(jì)算門向量gt∈RN用于控制記憶的讀寫,
gt=Sigmoid(Wo·ot+Wf·fst),
(9)
其中Wo∈RN×N和Wf∈RN×N分別為總學(xué)習(xí)信息和總遺忘信息的權(quán)重矩陣; 其次, 得到整合遺忘和學(xué)習(xí)的組合信息向量glt∈RN,
glt=gt⊙ot+(1-gt)⊙fst;
(10)
最后, 將組合信息向量glt發(fā)送到Sigmoid層, 計(jì)算正確回答當(dāng)前習(xí)題的概率
(11)
其中Wg∈RN,bg為組合信息的權(quán)重矩陣和偏置向量.
7) 模型優(yōu)化.使用預(yù)測習(xí)題答題狀況與真實(shí)答題狀況之間的交叉熵?fù)p失函數(shù)
L=-∑t(rtlogpt+(1-rt)log(1-pt))
(12)
優(yōu)化模型.
本文采用如下4個(gè)數(shù)據(jù)集對模型進(jìn)行性能評估:
1) ASSISTment 2009.收集ASSISTments在線輔導(dǎo)平臺(tái)中2009—2010年的學(xué)生練習(xí)數(shù)據(jù), 過濾去除僅一次練習(xí)記錄的學(xué)生練習(xí)數(shù)據(jù)、未標(biāo)注技能的數(shù)據(jù)以及重復(fù)的數(shù)據(jù);
2) ASSISTment 2015.收集ASSISTments在線輔導(dǎo)平臺(tái)中2015—2016年的學(xué)生練習(xí)數(shù)據(jù);
3) Statics 2011.收集的2011年秋季卡內(nèi)基梅隆大學(xué)某統(tǒng)計(jì)學(xué)課程相關(guān)數(shù)據(jù);
4) JunyiAcademy.Kaggle網(wǎng)站中君一書院平臺(tái)中2018年8月至2019年7月的數(shù)據(jù), 約7.2萬名學(xué)生的1 600萬余次練習(xí)記錄, 并刪除僅一次練習(xí)記錄的學(xué)生.
具體的數(shù)據(jù)集統(tǒng)計(jì)信息如表1所示.
表1 數(shù)據(jù)集統(tǒng)計(jì)信息
對上述所有數(shù)據(jù)集通過刪除重復(fù)數(shù)據(jù)和部分不完整記錄, 處理成如圖3所示的數(shù)據(jù)格式. 圖3中第一行表示某學(xué)生學(xué)習(xí)序列的答題總數(shù), 第二行表示完整序列的習(xí)題編號, 第三行表示對應(yīng)的學(xué)生答題情況.取最大序列長度為200, 截取多余部分作為新的學(xué)生序列, 序列不足200進(jìn)行補(bǔ)0操作.將數(shù)據(jù)集按4∶1劃分為訓(xùn)練集和測試集.
圖3 數(shù)據(jù)預(yù)處理示意圖
選擇曲線下面積(area under curve, AUC)和準(zhǔn)確率(accuracy, ACC)作為評價(jià)指標(biāo), 其中AUC表示接收者操作特征曲線(receiver operating characteristic curve, ROC)曲線下的面積, ACC的計(jì)算式為:
ACC=(NTP+NTN)/(NTP+NTN+NFP+NFN),
(13)
式中NTP為正確分類為正樣本的樣本數(shù),NTN為正確分類為負(fù)樣本的樣本數(shù),NFP為錯(cuò)誤分類為正樣本的樣本數(shù),NFN為錯(cuò)誤分類為負(fù)樣本的樣本數(shù).AUC的取值范圍為[0.5,1], 其值越接近1, 模型的效果越好.
設(shè)置kt的維度dk=50,vt的維度dv=200.根據(jù)數(shù)據(jù)集調(diào)整Mk和Mv的潛在知識點(diǎn)個(gè)數(shù)N, 令Mk的維度為dk,Mv的維度為dv, 將重復(fù)時(shí)間間隔及重復(fù)答題次數(shù)的嵌入向量維度均設(shè)置為N.
為了驗(yàn)證本文模型的有效性, 將DKVMN-F模型與DKT[1]、DKVMN[2]和DKGRU[4]模型進(jìn)行比較, 結(jié)果如表2所示.由表2可知: DKVMN-F在ASSISTment 2009、ASSISTment 2015和JunyiAcademy數(shù)據(jù)集上的預(yù)測性能均最佳, 而在Statics 2011數(shù)據(jù)集上預(yù)測性能略低于DKGRU; 在Statics 2011數(shù)據(jù)集上, DKVMN-F模型雖未獲得最佳效果, 但與DKVMN相比, AUC提升了3.22%, ACC提升了0.7%.結(jié)果表明, 通過門控機(jī)制整合遺忘因素和學(xué)習(xí)因素是有效的.
表2 各模型在4種數(shù)據(jù)集的預(yù)測性能對比結(jié)果