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