邵小萌,張 猛
(華中師范大學(xué) 計(jì)算機(jī)學(xué)院,武漢 430079)
在線教學(xué)平臺(tái)提供了高質(zhì)量的課程資源和便捷的學(xué)習(xí)方式,吸引了大量用戶使用。如何利用人工智能技術(shù)對這些平臺(tái)上的海量學(xué)習(xí)數(shù)據(jù)進(jìn)行分析,為用戶提供個(gè)性化教學(xué),成為教育數(shù)據(jù)挖掘領(lǐng)域的重要研究課題。知識追蹤可以從在線平臺(tái)上的交互數(shù)據(jù)中自動(dòng)挖掘?qū)W生隨時(shí)間變化的知識狀態(tài),預(yù)測學(xué)生未來的學(xué)習(xí)表現(xiàn),從而為學(xué)生提供精準(zhǔn)的個(gè)性化教育。
知識追蹤根據(jù)學(xué)生的交互記錄預(yù)測學(xué)生未來的表現(xiàn),是一種時(shí)間序列建模任務(wù)。深度知識追蹤(Deep Knowledge Tracing,DKT)[1]是目前最流行的模型之一,該模型利用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)對學(xué)生的交互記錄建模。雖然DKT 的預(yù)測效果相比傳統(tǒng)模型有很大提升,但是將RNN 的隱藏狀態(tài)解釋為學(xué)生的知識狀態(tài)過于抽象,導(dǎo)致DKT 的可解釋性不足[2];并且在許多實(shí)際應(yīng)用中,RNN對于較長序列容易出現(xiàn)梯度消失問題,無法利用很久以前的輸入信息,這使得DKT 在處理學(xué)生的長時(shí)間學(xué)習(xí)記錄時(shí)也會(huì)存在類似缺點(diǎn)[3]。
近年來,一些研究表明特定結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)可以很好地應(yīng)用于時(shí)間序列建模問題,并在預(yù)測精度和計(jì)算復(fù)雜性方面優(yōu)于RNN,如時(shí)間卷積網(wǎng)絡(luò)(Temporal Convolutional Network,TCN)。Li 等[4]利用TCN 能夠建立更深層的神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn),挖掘更抽象的語義特征,對視頻各幀的目標(biāo)進(jìn)行分割定位和動(dòng)作識別;You 等[5]利用TCN 運(yùn)算效率高的特點(diǎn),建立了能夠處理大規(guī)模數(shù)據(jù)的廣告推薦系統(tǒng)。本文嘗試使用時(shí)間卷積網(wǎng)絡(luò)對學(xué)生的歷史交互記錄建模,并融入注意力機(jī)制,構(gòu)建了一種新的知識追蹤模型。
本文提出一種融合注意力機(jī)制的時(shí)間卷積知識追蹤(Temporal Convolutional Knowledge Tracing with Attention mechanism,ATCKT)模型。
本文的主要工作如下:
1)使用時(shí)間卷積網(wǎng)絡(luò)提取學(xué)生動(dòng)態(tài)變化的知識狀態(tài),時(shí)間卷積使用擴(kuò)張卷積和深層網(wǎng)絡(luò)結(jié)構(gòu),可以學(xué)習(xí)到長時(shí)間的交互信息,減少信息遺漏。
2)考慮到學(xué)生對于相似的題目容易做出相同的答題結(jié)果,使用基于題目的注意力機(jī)制學(xué)習(xí)特定權(quán)重矩陣,計(jì)算學(xué)生的歷史相關(guān)表現(xiàn),提升了模型的可解釋性。
3)在ASSISTments2009、ASSISTments2015、Statics2011 和Synthetic-5 這4 個(gè)公開數(shù)據(jù)集上將新提出的ATCKT 模型與四種具有代表性的知識追蹤模型進(jìn)行對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果驗(yàn)證了本文模型在預(yù)測準(zhǔn)確率和運(yùn)算效率方面的提升效果。
知識追蹤可以根據(jù)已有的交互記錄預(yù)測學(xué)生未來的表現(xiàn),圖1 描述了一個(gè)基礎(chǔ)的知識追蹤任務(wù)。已知3 個(gè)學(xué)生S1、S2、S3分別回答了與2 個(gè)不同知識點(diǎn)k1、k2相關(guān)的6 道題目e1~e6,知識追蹤可以根據(jù)前6 道題目的答題結(jié)果,預(yù)測學(xué)生下一個(gè)時(shí)刻正確回答題目e7的概率。
圖1 知識追蹤示例Fig.1 Example of knowledge tracing
知識追蹤方法主要分為三種:第一種是基于概率圖模型的知識追蹤,如貝葉斯知識追蹤(Bayesian Knowledge Tracing,BKT)[6],將學(xué)生的知識狀態(tài)建模為一組二元變量,使用隱馬爾可夫模型更新這組變量;但是BKT 無法捕捉不同概念間的關(guān)系,并且使用二元組來表示學(xué)生的知識狀態(tài)是不合理的[7]。第二種是基于矩陣分解的知識追蹤,如使用因子分解機(jī)來處理知識追蹤[8]。第三種是基于神經(jīng)網(wǎng)絡(luò)的知識追蹤。
Piech 等[1]在2015 年提出深度知識追蹤(DKT),首次將神經(jīng)網(wǎng)絡(luò)應(yīng)用于知識追蹤。DKT 采用RNN 對學(xué)生的交互記錄建模,將學(xué)生的交互記錄轉(zhuǎn)化成獨(dú)熱編碼作為輸入,使用RNN 的隱藏狀態(tài)ht表示學(xué)生的知識狀態(tài)。與BKT 相比,DKT能夠挖掘題目間的隱藏關(guān)系,準(zhǔn)確率得到大幅提升,但仍存在可解釋性不足和長序列依賴等問題,且DKT 將交互記錄以獨(dú)熱編碼的形式作為輸入,缺乏學(xué)習(xí)特征,不利于模型提取學(xué)生的知識狀態(tài)。
許多研究人員在DKT 的基礎(chǔ)上進(jìn)行改進(jìn),如Yeung 等[3]提出DKT+(Deep Knowledge Tracing plus),在損失函數(shù)中加入正則化項(xiàng)來平滑預(yù)測中的過渡,減輕DKT 對學(xué)生狀態(tài)預(yù)測波動(dòng)較大的問題。Minn 等[9]提 出DKT-DSC(Deep Knowledge Tracing and Dynamic Student Classification for knowledge tracing),通過對學(xué)生階段性學(xué)習(xí)狀態(tài)的聚類進(jìn)行預(yù)測,但是這些變體模型依然無法擺脫RNN自身結(jié)構(gòu)的缺陷。
許多學(xué)者嘗試使用其他方法處理知識追蹤問題。Zhang等[10]提出一種動(dòng)態(tài)鍵值對記憶網(wǎng)絡(luò)知識追蹤模型(Dynamic Key-Value Memory Network,DKVMN),使用一個(gè)動(dòng)態(tài)矩陣來存儲(chǔ)每個(gè)知識點(diǎn)對應(yīng)的知識狀態(tài),當(dāng)學(xué)生完成練習(xí)后,更新與該題目有關(guān)的知識點(diǎn)的知識狀態(tài),提升了模型的可解釋性;Pandey 等[11]提出SAKT(Self Attentive Knowledge Tracing)模型,完全使用Transformer 模型[12]處理知識追蹤,Transformer 模型基于自注意力機(jī)制,脫離了RNN 的結(jié)構(gòu)限制,不存在長序列依賴問題;Nakagawa 等[13]提出GKT(Graphbased Knowledge Tracing)模型,將知識點(diǎn)之間的關(guān)系表示為有向圖,將知識追蹤任務(wù)轉(zhuǎn)化成圖神經(jīng)網(wǎng)絡(luò)中的時(shí)間序列節(jié)點(diǎn)級分類問題;此外,一些工作[14-15]通過挖掘知識點(diǎn)和習(xí)題之間的關(guān)聯(lián),為模型賦予更多的學(xué)生和題目特征來提高模型的可解釋性。
本文提出融合注意力機(jī)制的時(shí)間卷積知識追蹤ATCKT模型。如圖2 所示,該模型由4 個(gè)部分組成,分別是嵌入模塊、注意力模塊、知識狀態(tài)提取模塊和預(yù)測模塊。首先,通過嵌入層學(xué)習(xí)題目的嵌入向量,將題目嵌入與答題結(jié)果拼接作為學(xué)生的交互記錄;然后,使用注意力機(jī)制根據(jù)題目之間的相似度,為不同題目的交互記錄分配不同的權(quán)重,得到學(xué)生的歷史相關(guān)表現(xiàn);最后,使用時(shí)間卷積網(wǎng)絡(luò)提取學(xué)生的知識狀態(tài)特征,與題目的嵌入向量做點(diǎn)積運(yùn)算,經(jīng)過sigmoid 激活函數(shù)得到學(xué)生正確回答下一道題目的概率。
圖2 ATCKT模型結(jié)構(gòu)Fig.2 Structure of ATCKT model
學(xué)生的歷史交互記錄被表示為題目的嵌入向量與答題結(jié)果的拼接。給定一個(gè)學(xué)生i的N條交互序列Xi={xi1,xi2,…,xin},其中xit=(qit,ait),t∈(1,N),qit表示該學(xué)生在t時(shí)刻回答的題目,ait為1 或0,表示該題答對或答錯(cuò)。假設(shè)數(shù)據(jù)集包含M道不同的題目,隨機(jī)初始化嵌入矩陣E∈RM×K,矩陣的每一行et∈RK為題目qt的嵌入向量,K表示題目的嵌入向量維度,在模型訓(xùn)練過程中et可以自動(dòng)學(xué)習(xí)到題目有意義的表示,隱式地包含了題目涉及的知識點(diǎn)、題目難度等信息。規(guī)定aT=(1,1,…,1)和aF=(0,0,…,0)是兩個(gè)與et維度相同的全1 和全0 向量。將xt表示為et和aT或aF的連接,得到學(xué)生的歷史交互記錄xt∈R1×2K,如式(1)所示,⊕表示連接兩個(gè)向量:
在實(shí)際場景中,如果一些題目涉及相同的知識點(diǎn),或難易度相似,則學(xué)生對這些題目可能會(huì)做出相同的答題結(jié)果;并且,學(xué)生的歷史答題表現(xiàn)在一定程度上反映了學(xué)生對不同知識的掌握情況?;诖?,本文使用基于題目的注意力機(jī)制,根據(jù)題目間的相似程度,量化不同題目的歷史交互記錄對學(xué)生知識狀態(tài)的貢獻(xiàn)度,具體反映學(xué)生對不同知識點(diǎn)的掌握情況。本文將當(dāng)前時(shí)刻回答的題目et作為注意力機(jī)制的查詢query,學(xué)生前t個(gè)時(shí)刻作答的題目e1~et-1及對應(yīng)的交互記錄x1~xt-1作為鍵-值對,如式(2)~(4):
其中:Wquery∈RK×K、Wkey∈RK×K,用來對et和ei行線性變換,K為題目的嵌入向量維度。然后對query 和key 進(jìn)行點(diǎn)積運(yùn)算,使用softmax 激活函數(shù)進(jìn)行歸一化得到注意力權(quán)重αi,如式(5)和(6):
本文將嵌入層得到的學(xué)生交互記錄和注意力模塊得到的學(xué)生歷史綜合表現(xiàn)拼接輸入時(shí)間卷積網(wǎng)絡(luò)(TCN),提取學(xué)生每個(gè)時(shí)刻的知識狀態(tài)。
TCN 在一維卷積的基礎(chǔ)上,增加了因果擴(kuò)張卷積。因果卷積保證模型在t時(shí)刻的輸出只依賴前t時(shí)刻的輸入,防止未來的信息泄露,擴(kuò)張卷積[16]通過間隔一些輸入來增大視野范圍。圖3展示了一個(gè)因果擴(kuò)張卷積,其中d表示擴(kuò)張系數(shù)。
圖3 因果擴(kuò)張卷積Fig.3 Causal expansion convolution
由圖3 可知,當(dāng)神經(jīng)網(wǎng)絡(luò)層數(shù)足夠多時(shí),TCN 可以學(xué)習(xí)到所有輸入數(shù)據(jù),產(chǎn)生高精度的預(yù)測結(jié)果;同時(shí)為了避免深層模型中出現(xiàn)網(wǎng)絡(luò)退化,TCN 在卷積層之間增加了殘差連接[17]。本文模型的殘差塊內(nèi)包含:因果擴(kuò)張卷積、層歸一化將該層的所有神經(jīng)元?dú)w一化、ReLU(Rectified Linear Unit)激活函數(shù)和Dropout 層防止過擬合。
TCN 提取學(xué)生每個(gè)時(shí)刻的知識狀態(tài)矩陣S∈RN×K,N表示學(xué)生交互記錄的全部數(shù)量,st∈RK的維度等于題目的嵌入維度K,表示學(xué)生在該時(shí)刻對于知識的掌握情況。
將學(xué)生的知識狀態(tài)st與下一時(shí)刻要回答的題目et+1進(jìn)行點(diǎn)積操作得到y(tǒng)t+1,然后對yt+1使用sigmoid激活函數(shù)得到pt+1表示預(yù)測的學(xué)生正確回答下一道題目的概率,計(jì)算公式如下:
本文采用交叉熵?fù)p失函數(shù)作為真實(shí)值at與預(yù)測值pt之間的損失函數(shù)L,采用最小化L的方式優(yōu)化題目的嵌入向量、網(wǎng)絡(luò)參數(shù)和學(xué)生正確回答下一道題目的概率pt。損失函數(shù)L如式(10)所示:
為了評估本文模型的效果,在4 個(gè)常用公開數(shù)據(jù)集上進(jìn)行了對比實(shí)驗(yàn),并與四種具有代表性的模型進(jìn)行比較,驗(yàn)證本文模型的準(zhǔn)確性和高效性。
各個(gè)數(shù)據(jù)集所包含的學(xué)生數(shù)、題目數(shù)和交互記錄數(shù)如表1 所示,其中Synthetic-5 是人工數(shù)據(jù)集,其余均為真實(shí)數(shù)據(jù)集。ASSISTments2009 與2015[18]分別來自在線教育平 臺(tái)ASSISTments 上2009 年和2015 年的數(shù)據(jù);Statics2011 來自《工程靜力學(xué)》課程;Synthetic-5 是DKT 模型使用的數(shù)據(jù)集,它模擬了4 000 名虛擬的學(xué)生回答50 個(gè)題目。
表1 數(shù)據(jù)集介紹Tab.1 Dataset introduction
本文選取了4 個(gè)具有代表性的知識追蹤模型進(jìn)行了對比實(shí)驗(yàn),分別是:DKT、DKVMN、卷積知識追蹤(Convolutional Knowledge Tracing,CKT)[19]和SAKT,如下:
DKT:首次使用循環(huán)神經(jīng)網(wǎng)絡(luò)處理知識追蹤任務(wù),是知識追蹤領(lǐng)域廣泛使用的經(jīng)典模型。
DKVMN:使用動(dòng)態(tài)鍵值對記憶網(wǎng)絡(luò)存儲(chǔ)并更新學(xué)生關(guān)于每個(gè)知識概念的知識狀態(tài),增強(qiáng)了模型的可解釋性。
CKT:在建模學(xué)生狀態(tài)時(shí)考慮了學(xué)生的先驗(yàn)知識和學(xué)習(xí)率,豐富了學(xué)生特征。
SAKT:使用Transformer 結(jié)構(gòu)處理知識追蹤,脫離了RNN的結(jié)構(gòu)限制,不存在長序列依賴問題。
在數(shù)據(jù)預(yù)處理中,刪除了少于3 條答題記錄的學(xué)生數(shù)據(jù),并對擁有超過380 條答題記錄的學(xué)生數(shù)據(jù)做截?cái)嗵幚?,將超過380 條的部分作為一位新的學(xué)生數(shù)據(jù)。
本文模型的參數(shù)設(shè)置為:模型訓(xùn)練的學(xué)習(xí)率為2E-3,epoch 為32;式(1)中題目嵌入的維度為10;TCN 中卷積核大小為6,共12 個(gè)殘差塊,擴(kuò)張卷積的擴(kuò)張系數(shù)d=2n,每隔一個(gè)殘差塊增大一倍,n初始值為0。殘差模塊中Dropout 比率初始值設(shè)置為0.05。
本文使用曲線下面積(Area Under the Curve,AUC)和準(zhǔn)確率(Accuracy,Acc)指標(biāo)來衡量ATCKT 模型與對比模型的預(yù)測效果,不同模型在各個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表2所示。
表2 不同知識追蹤模型的實(shí)驗(yàn)結(jié)果對比 單位:%Tab.2 Comparison of experimental results of different knowledge tracing models unit:%
本文提出新穎的時(shí)間卷積方式處理知識追蹤問題,使用嵌入向量的形式表示題目,增強(qiáng)模型的特征提取能力,使用時(shí)間卷積網(wǎng)絡(luò)提取學(xué)生的知識狀態(tài),并融合基于題目的注意力機(jī)制判斷歷史交互對未來答題的影響。表2 的實(shí)驗(yàn)結(jié)果顯示,與其他模型相比,ATCKT 模型的AUC 和Acc 值在4 個(gè)數(shù)據(jù)集上是最高的,特別在ASSISTments2015 數(shù)據(jù)集上提升最多,AUC 值相比DKT 提升了接近20 個(gè)百分點(diǎn),達(dá)到92.22%。ACC 值相比DKT 提升了接近11 個(gè)百分點(diǎn),達(dá)到86.11%。
為了驗(yàn)證時(shí)間卷積對長序列特征提取的有效性,本文使用TCKT-One-Hot 與DKT 進(jìn)行了單一變量對比實(shí)驗(yàn),TCKTOne-Hot 與DKT 采用相同的獨(dú)熱編碼形式作為輸入,使用時(shí)間卷積網(wǎng)絡(luò)對學(xué)生的歷史交互進(jìn)行建模,沒有融入注意力機(jī)制。兩種模型的預(yù)測結(jié)果如表3 所示。
表3 TCKT-One-Hot與DKT模型的預(yù)測結(jié)果 單位:%Tab.3 Prediction results of TCKT-One-Hot and DKT models unit:%
由表3 可得,在4 個(gè)數(shù)據(jù)集上,TCKT-One-Hot 的AUC 值和Acc 值比DKT 均有明顯提升,特別在ASSISTments2015 數(shù)據(jù)集上提升最多,AUC 值相比DKT 提升了接近10 個(gè)百分點(diǎn)。這表明時(shí)間卷積TCN 中的擴(kuò)張卷積和深層神經(jīng)網(wǎng)絡(luò)能夠有效考慮到學(xué)生更長時(shí)間的學(xué)習(xí)記錄,在一定程度上減輕了RNN 的長序列依賴問題。
訓(xùn)練完成的題目嵌入向量隱式地包含了題目難度、題目涉及的知識概念等豐富的題目特征信息,有助于神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取。為了驗(yàn)證該結(jié)論,本文在ASSISTments2009 數(shù)據(jù)集上隨機(jī)選擇了7 個(gè)題目,分別是86 號、75 號、85 號、89號、99 號、77 號和22 號題目,計(jì)算它們的嵌入向量之間的余弦相似度,表4 介紹了每個(gè)題目主要涉及的知識概念,計(jì)算結(jié)果如圖4 所示。方塊內(nèi)部的數(shù)值表示對應(yīng)題目的相似度,相似度越大方塊顏色越深。
表4 題目編號與其對應(yīng)的知識概念Tab.4 Exercise problem numbers and corresponding knowledge concepts
由圖4 可以看出,與知識點(diǎn)“體積”相關(guān)的86 號和75 號題目相似度較高,相似度為0.7,與知識點(diǎn)“線性方程”相關(guān)的89 號和99 號題目相似度較高,相似度為0.63,而其他題目之間相似度很低。實(shí)驗(yàn)結(jié)果表明經(jīng)過訓(xùn)練后的題目的嵌入向量包含不同題目之間的相關(guān)性信息,提高了模型的可解釋性。
圖4 題目嵌入向量的余弦相似度Fig.4 Cosine similarity of embeddings of exercise problems
為了具體說明ATCKT 模型預(yù)測的準(zhǔn)確性,本文在ASSISTments2015 數(shù)據(jù)集中隨機(jī)選擇了一個(gè)學(xué)生,截取其分別使用ATCKT 和DKT 模型的部分輸出結(jié)果,進(jìn)行可視化對比。如圖5 和圖6 所示,圖片左側(cè)數(shù)字59、90、16、21 和15 表示題目編號,每一列下方兩個(gè)數(shù)字表示一次交互記錄,表中0 到1 之間的數(shù)字表示模型預(yù)測學(xué)生下一次能夠正確回答相關(guān)題目的概率。在實(shí)際情況中,若學(xué)生連續(xù)答錯(cuò)一道題目,表示學(xué)生對該題的掌握程度較差,未來答對該題目的概率很小。但在圖中紅框內(nèi),當(dāng)學(xué)生連續(xù)答錯(cuò)90 號題目后,ATCKT模型預(yù)測的學(xué)生下一次正確回答90 號題目的概率值在0.2~0.4,而DKT 的預(yù)測值在0.5~0.6,而這明顯不符合實(shí)際情況。該結(jié)果表明,ATCKT 模型中的Attention 機(jī)制能有效識別歷史相關(guān)答題記錄對未來知識狀態(tài)的貢獻(xiàn)度,提升了模型的可解釋性和準(zhǔn)確性。
圖5 DKT模型的預(yù)測結(jié)果可視化Fig.5 Visualization of prediction results of DKT model
圖6 ATCKT模型的預(yù)測結(jié)果可視化Fig.6 Visualization of prediction results of ATCKT model
RNN 中每一時(shí)刻的輸出依賴上一時(shí)刻的隱藏層狀態(tài),無法并行計(jì)算,而卷積神經(jīng)網(wǎng)絡(luò)中同一層次的計(jì)算均使用同一卷積核,不存在前后關(guān)系,可以同時(shí)進(jìn)行計(jì)算,因此訓(xùn)練速度更快。為驗(yàn)證ATCKT 模型的運(yùn)算效率,本文與DKT 模型進(jìn)行了對比實(shí)驗(yàn)。本文的實(shí)驗(yàn)環(huán)境為Windows 10 64 位,i9 處理器,32 GB 內(nèi)存,采用為Python3.6,Tensorflow 1.15 版本。ATCKT 與DKT 模型的訓(xùn)練時(shí)間如表5 所示,可得ATCKT 模型的訓(xùn)練速度明顯快于DKT。
表5 ATCKT與DKT模型的訓(xùn)練時(shí)間對比 單位:minTab.5 Comparison of training time between ATCKT and DKT models unit:min
針對DKT 模型的可解釋性較弱和長序列依賴兩個(gè)問題,本文提出一種融合注意力機(jī)制的時(shí)間卷積知識追蹤ATCKT 模型,該模型根據(jù)題目之間的相似度,使用基于題目的注意力機(jī)制,識別并強(qiáng)化歷史不同題目的交互記錄對學(xué)生知識狀態(tài)的貢獻(xiàn)度,豐富學(xué)生的個(gè)性化特征,使用時(shí)間卷積提取學(xué)生的知識狀態(tài),對學(xué)生未來的答題結(jié)果進(jìn)行預(yù)測,通過擴(kuò)張卷積和深層神經(jīng)網(wǎng)絡(luò),緩解DKT 的長序列依賴問題。實(shí)驗(yàn)結(jié)果表明本文模型在多個(gè)數(shù)據(jù)集上的準(zhǔn)確率均優(yōu)于對比模型,且運(yùn)算性能小幅提升。在后續(xù)的研究工作中可以挖掘?qū)嶒?yàn)數(shù)據(jù)中更多的學(xué)生的個(gè)性化特征,以及題目和知識點(diǎn)之間的深層次的關(guān)聯(lián),進(jìn)一步加強(qiáng)模型對學(xué)生知識狀態(tài)的表征能力。