劉坤佳 李欣奕 唐九陽 趙 翔
(國防科技大學(xué)信息系統(tǒng)工程重點實驗室 長沙 410073)
隨著智能輔導(dǎo)系統(tǒng)(intelligent tutoring system)和大規(guī)模在線開放課程(massive open online course)等在線學(xué)習(xí)平臺的發(fā)展,在線教育得到廣泛關(guān)注與應(yīng)用.在線教育系統(tǒng)通過收集用戶的行為數(shù)據(jù)并記錄其學(xué)習(xí)軌跡,實現(xiàn)更為智能的個性化資源推薦與教輔.這個過程的關(guān)鍵就在于知識追蹤(knowledge tracing, KT),即通過用戶不同時刻的習(xí)題作答情況來跟蹤其認知狀態(tài),進而預(yù)測其下一時刻的答題情況,實現(xiàn)對用戶知識掌握程度的智能評估.
知識追蹤任務(wù)可以形式化表示為一個有監(jiān)督的序列學(xué)習(xí)任務(wù).如圖1所示,用戶在在線學(xué)習(xí)過程中,與包含不同知識點的習(xí)題交互,產(chǎn)生一個習(xí)題作答交互記錄.知識追蹤的目標(biāo)是通過建模用戶答題情況,評估其認知狀態(tài),從而預(yù)測其在下一個時刻的答題情況.另外,對于可解釋知識追蹤任務(wù),不僅要預(yù)測用戶作答表現(xiàn),還要對預(yù)測結(jié)果提供解釋.
Fig.1 Illustration of interpretable knowledge tracing
當(dāng)前知識追蹤領(lǐng)域的研究主要分為基于傳統(tǒng)機器學(xué)習(xí)方法和基于深度學(xué)習(xí)的方法2類.Corbett等人[1]首次提出知識追蹤的概念,并提出用貝葉斯網(wǎng)絡(luò)建模用戶的學(xué)習(xí)過程.隨后的工作分別將學(xué)習(xí)因素分析、性能因素分析、項目反應(yīng)理論應(yīng)用于知識追蹤.Piech等人[2]首先將循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)引入知識追蹤領(lǐng)域,開啟了深度知識追蹤方法的序幕.相比于傳統(tǒng)非深度模型,深度學(xué)習(xí)方法預(yù)測能力取得明顯提升.
當(dāng)前深度知識追蹤方法多針對習(xí)題對應(yīng)的知識點建模,而忽視了題目本身蘊含的豐富信息.例如,考察同一知識點的不同題目可能由于難度設(shè)置不同而導(dǎo)致不同的作答結(jié)果.另外,目前的方法假設(shè)學(xué)生認知水平變化程度相同,忽視了學(xué)生認知狀態(tài)與習(xí)題表示的個性化交互,因此無法建模學(xué)生知識狀態(tài)變化的個體差異.再者,基于深度學(xué)習(xí)的方法預(yù)測過程和結(jié)果缺乏可解釋性.在實際應(yīng)用中,尤其是在線教育領(lǐng)域,可解釋的預(yù)測結(jié)果不僅可以提升系統(tǒng)透明度,還能提高用戶對系統(tǒng)的信任和對預(yù)測結(jié)果的接受程度.當(dāng)前的研究對預(yù)測結(jié)果的可解釋性多集中在為認知狀態(tài)變化過程提供可視化展示[3-4],但是并未給出得到當(dāng)前預(yù)測結(jié)果所依據(jù)的推理路徑,因此不能直接為預(yù)測結(jié)果提供解釋.
針對以上問題,本文提出可解釋的深度知識追蹤模型(interpretable deep knowledge tracing, IDKT).首先,通過引入習(xí)題的上下文信息、擴充了習(xí)題-知識點關(guān)系圖,得到更有表征能力的習(xí)題與知識點表示,緩解數(shù)據(jù)稀疏問題;接著,基于用戶知識狀態(tài)學(xué)習(xí)注意力權(quán)重,得到習(xí)題-知識點關(guān)系圖中用戶對不同鄰居節(jié)點的關(guān)注程度并聚合鄰居節(jié)點,得到當(dāng)前預(yù)測習(xí)題基于用戶知識狀態(tài)的個性化表示.值得注意的是,為了捕捉用戶不同語義下的關(guān)注重點,我們設(shè)計了多頭注意力機制穩(wěn)定學(xué)習(xí)過程.然后,該個性化習(xí)題表示與用戶認知狀態(tài)共同用于預(yù)測用戶最終的作答表現(xiàn);最后,對于預(yù)測結(jié)果,我們在習(xí)題-知識點圖中依據(jù)前述基于用戶知識狀態(tài)的注意力值選擇一條推理路徑作為解釋.
本文的主要貢獻包括4個方面:
1)利用習(xí)題與知識點的上下文信息挖掘其間隱含關(guān)系,豐富習(xí)題-知識點圖關(guān)系類型,緩解數(shù)據(jù)稀疏問題;
2)基于用戶認知狀態(tài)學(xué)習(xí)個性化注意力權(quán)重,得到習(xí)題-知識點關(guān)系圖中用戶對不同鄰居節(jié)點的關(guān)注程度,充分考慮用戶知識狀態(tài)差異,實現(xiàn)習(xí)題個性化表示;
3)提供一種可解釋框架,通過個性化注意力機制,在習(xí)題-知識點關(guān)系圖中選擇推理路徑,實現(xiàn)對知識追蹤結(jié)果的可解釋;
4)在多個知識追蹤數(shù)據(jù)集上對提出的IDKT模型進行廣泛驗證,均取得最佳預(yù)測表現(xiàn),有力驗證了所提模型的有效性.
現(xiàn)有知識追蹤方法可以大致分為2類:基于傳統(tǒng)機器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法.其中基于傳統(tǒng)機器學(xué)習(xí)的方法可以進一步分為貝葉斯模型和回歸模型[5].
基于貝葉斯的方法典型代表是貝葉斯知識追蹤(bayesian knowledge tracing, BKT)[1].BKT基于隱馬爾可夫模型(hidden Markov model, HMM)建模用戶的認知狀態(tài)變化,在每一次用戶交互后,BKT根據(jù)其答題情況基于HMM更新用戶掌握知識點的概率.然而,BKT忽略了知識點之間的相互聯(lián)系,難以處理較復(fù)雜的知識體系,且在實際應(yīng)用中難以模擬較長的交互序列.
回歸模型則從歷史數(shù)據(jù)中學(xué)習(xí)特定參數(shù)從而對答題情況進行預(yù)測.項目反應(yīng)理論(item response theory, IRT)模型[6]從交互數(shù)據(jù)中訓(xùn)練用戶能力和習(xí)題難度2個參數(shù).多維項目反應(yīng)理論(multi-item response theory)[7]對用戶能力的考察從單一維度擴展到多維度.廣義分部評分模型(generalized partial credit model)[8]進一步細化對習(xí)題回答情況的評價,引入分部計分方式.表現(xiàn)因子分析(performance factors analysis)[9]考慮用戶對知識點的正面和負面回應(yīng)情況.知識追蹤機(knowledge tracing machine)[10]利用矩陣分解將習(xí)題和用戶的邊信息編碼到參數(shù)模型中.
回歸模型得到的結(jié)果有著天然的可解釋性,但是難以自動拓展到不同的數(shù)據(jù)中.另外,由于模型本身的表示能力有限,因此預(yù)測性能不佳.
基于深度學(xué)習(xí)的方法由于具有強大的表征能力,因而在知識追蹤任務(wù)取得了很好的預(yù)測結(jié)果,逐步受到廣泛的重視.其中,深度知識追蹤(deep knowledge tracing, DKT)和動態(tài)鍵值記憶網(wǎng)絡(luò)(dynamic key-value memory network, DKVMN)在預(yù)測用戶未來答題情況中都表現(xiàn)出了強大的預(yù)測能力,成為后續(xù)基于深度學(xué)習(xí)方法的比較基準(zhǔn).
DKT以RNN為基礎(chǔ)結(jié)構(gòu),用戶的學(xué)習(xí)交互記錄通過one-hot編碼或壓縮感知轉(zhuǎn)換為輸入向量.RNN的隱層狀態(tài)即為用戶對知識點掌握情況的表征,通常被稱為知識狀態(tài)(knowledge state).與DKT將用戶知識狀態(tài)表示為一個向量不同,DKVMN維持一個靜態(tài)外部矩陣存儲所有知識點的表示,然后動態(tài)更新用戶對知識點的掌握程度.
此后,一些工作通過建模知識點之間的相互關(guān)系、引入習(xí)題和知識點的輔助信息、挖掘用戶的交互特點等方式進一步提高模型預(yù)測能力.引入習(xí)題的知識追蹤方法(exercise-aware knowledge tracing)[11]利用注意力機制聚合用戶歷史認知狀態(tài),圖交互知識追蹤(graph-based interaction knowledge tracing, GIKT)[12-14]利用圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)知識點間的潛在關(guān)系,并以此更新用戶知識狀態(tài).有輔助信息的深度知識追蹤(deep knowledge tracing with side information)模型[13]通過挖掘習(xí)題之間的相關(guān)關(guān)系(side relations),整合習(xí)題之間關(guān)系的特征信息,得到更加豐富的特征.有約束的先決關(guān)系驅(qū)動下的深度知識追蹤(prerequisite-driven deep knowledge tracing with constraint modeling)模型[14]將知識點之間的先決關(guān)系作為模型約束擴充特征信息.Zhang等人[15]將用戶的反應(yīng)時間、嘗試次數(shù)等輔助信息引入DKT模型.此外還有工作通過整合交互序列中特定的用戶行為信息并分別建模其遺忘行為[16]實現(xiàn)個性化.個性化評估知識追蹤(individual estimation knowledge tracing, IEKT)[17]在RNN序列中引入評估用戶個性化認知狀態(tài)和知識獲取敏感度的模塊,根據(jù)答題序列將用戶分入不同類別,實現(xiàn)了一定程度的個性化知識追蹤.
由于深度學(xué)習(xí)采用端到端的學(xué)習(xí)過程,模型訓(xùn)練過程和最終結(jié)果往往不具有可解釋性.在DKT中得到的隱知識狀態(tài)是一個高度抽象的向量,不具有可解釋性.DKVMN通過學(xué)習(xí)當(dāng)前輸入習(xí)題與各個知識點之間的相關(guān)關(guān)系,自動選擇與當(dāng)前輸入習(xí)題相關(guān)的知識概念,因而可以一定程度上為用戶在各個知識點上的狀態(tài)變化提供解釋.但是DKVMN并不直接對知識點建模知識狀態(tài),而是通過定義一個低維隱向量間接更新其知識表示,雖然可以將知識狀態(tài)變化過程進行可視化展現(xiàn),但是不能提供推理路徑層面的可解釋性.
為實現(xiàn)可解釋的知識追蹤,習(xí)題輔助的RNN模型(exercise-enhanced RNN)[18]利用余弦相似度計算習(xí)題之間的相似性,以此作為知識狀態(tài)的權(quán)重,提高預(yù)測能力的同時也為結(jié)果提供可解釋性.基于深度信息反應(yīng)理論(deep item response theory)的模型[19]將DKT與IRT結(jié)合,保留了深度學(xué)習(xí)的預(yù)測能力,同時參照IRT理論,從習(xí)題難度和用戶個人能力2方面為預(yù)測結(jié)果提供解釋.上下文感知的注意力知識追蹤(context-aware attentive knowledge tracing, AKT)模型[20]通過引入上下文信息并結(jié)合IRT模型,增強嵌入的表征能力,通過注意力機制為結(jié)果提供解釋.圖知識追蹤(graph knowledge tracing, GKT)模型[4]在預(yù)測過程中同步學(xué)習(xí)知識點之間的隱關(guān)系,每次僅更新與當(dāng)前習(xí)題相關(guān)的知識狀態(tài),實現(xiàn)了知識點級別的可解釋性.注意力深度知識追蹤(attention deep knowledge tracing)[21]通過計算知識點之間的注意力權(quán)重為結(jié)果提供可解釋性.
這些方法或通過記錄知識狀態(tài)變化過程,或通過與邏輯回歸模型結(jié)合提供可解釋性,但是忽略了在解釋中引入知識與習(xí)題間的關(guān)聯(lián)性.本文提出的可解釋知識追蹤方法根據(jù)用戶知識狀態(tài)從習(xí)題-知識點圖中構(gòu)建推理路徑提供解釋.本文是首個提出以推理路徑為知識追蹤任務(wù)提供解釋的工作.
本節(jié)主要給出知識追蹤任務(wù)的形式化定義、介紹相關(guān)預(yù)備知識,并說明可解釋知識追蹤模型基本框架.
在智慧教育系統(tǒng)中,假設(shè)每個用戶獨立完成習(xí)題,記錄某一用戶的習(xí)題作答情況為Xt.其中,某時間步下習(xí)題作答交互通常表達為一個習(xí)題-作答元組xt=(qt,at),即用戶在時刻t回答了習(xí)題qt,作答情況為at,at一般為1/0二元取值,如果該用戶在時刻t正確回答習(xí)題qt,則at=1,反之a(chǎn)t=0.
知識追蹤任務(wù)可以建模為一個有監(jiān)督的序列學(xué)習(xí)任務(wù),如圖1所示.已知用戶的習(xí)題作答交互記錄Xt={x1,x2,…,xt},通過建模其答題情況,從交互歷史中提取用戶的隱式知識狀態(tài),并跟蹤該知識狀態(tài)隨時間的變化情況.由于對知識狀態(tài)的評估無法外顯量化,因此現(xiàn)有的知識追蹤任務(wù)預(yù)測用戶在下一時間步答對習(xí)題的概率P(at+1=1|qt+1,Xt),從而間接反映對用戶知識狀態(tài)的評估.
通常,每個習(xí)題qt會對應(yīng)考察一個或多個知識點,習(xí)題qt考察了知識點si與sj,則認為qt與si,sj之間存在對應(yīng)關(guān)系.值得注意的是,某習(xí)題可能考察了若干個知識點,某知識點可能被若干習(xí)題考察,即習(xí)題與知識點之間的對應(yīng)關(guān)系為多對多.該關(guān)系由矩陣Q表示.若習(xí)題與知識點間存在對應(yīng)關(guān)系,則矩陣Q中對應(yīng)位置值為1,否則為0.在本文中,矩陣Q將進一步轉(zhuǎn)換為習(xí)題-知識點之間的單一關(guān)系二部圖.
本文提出一個基于圖注意力網(wǎng)絡(luò)的可解釋深度知識追蹤框架,通過引入習(xí)題的上下文信息擴充習(xí)題-知識點關(guān)系圖,然后利用RNN網(wǎng)絡(luò)對答題序列建模得到用戶當(dāng)前的知識狀態(tài).最后基于用戶知識狀態(tài)學(xué)習(xí)注意力權(quán)重,得到當(dāng)前預(yù)測習(xí)題基于用戶知識狀態(tài)的個性化表示,并為預(yù)測結(jié)果生成推理路徑作為解釋.模型由4個模塊組成,分別為認知狀態(tài)模塊、基于用戶知識狀態(tài)的個性化習(xí)題表示模塊、作答表現(xiàn)預(yù)測模塊和解釋路徑生成模塊.
1)認知狀態(tài)序列模塊.用于在用戶交互序列中建模其知識狀態(tài),捕捉知識點間粗粒度的依賴關(guān)系.將序列最終時間步對應(yīng)的隱藏狀態(tài)作為當(dāng)前用戶狀態(tài)表征,包含了用戶對習(xí)題與對應(yīng)知識點的掌握狀態(tài).
2)基于用戶知識狀態(tài)的個性化習(xí)題表示模塊.本模塊首先根據(jù)矩陣Q構(gòu)建知識點與習(xí)題之間關(guān)系的二部圖,然后從所有用戶交互信息中進一步建模知識點之間的聯(lián)系、習(xí)題之間的共現(xiàn)關(guān)系等.這些上下文信息將用于擴展二部圖,將知識點與習(xí)題之間的單一關(guān)系擴展為包含知識點間、習(xí)題間相關(guān)關(guān)系的圖.然后對該圖應(yīng)用注意力圖神經(jīng)網(wǎng)絡(luò)算法,由認知狀態(tài)模塊中獲得的用戶當(dāng)前知識狀態(tài)得到注意力值,據(jù)此聚合鄰居節(jié)點信息,得到當(dāng)前預(yù)測習(xí)題基于用戶知識狀態(tài)的表示.隨后,該注意力加權(quán)的習(xí)題表示將與用戶認知狀態(tài)一道送入預(yù)測模塊,預(yù)測用戶作答表現(xiàn).值得注意的是,基于用戶認知狀態(tài)的個性化權(quán)值將為預(yù)測結(jié)果提供解釋.若預(yù)測結(jié)果為用戶將答錯此題,由注意力值得到的路徑將幫助定位出用戶知識掌握中的薄弱環(huán)節(jié).
3)作答表現(xiàn)預(yù)測模塊. 本模塊根據(jù)之前得到的用戶知識狀態(tài)與個性化習(xí)題表示,輸出用戶在下一個時間步正確回答目標(biāo)習(xí)題的概率.
4)解釋路徑生成模塊.本模塊在得到當(dāng)前作答表現(xiàn)預(yù)測后,為預(yù)測結(jié)果提供可解釋性.基于用戶認知狀態(tài)的個性化注意力可以使得用戶關(guān)注的鄰居節(jié)點得到更高的注意力值,因而對預(yù)測結(jié)果產(chǎn)生更大影響.由此,可利用該注意力值在圖中為預(yù)測結(jié)果展示出一條推理路徑.在每一跳鄰居中選擇最大注意力值的節(jié)點添加到解釋路徑內(nèi),直至達到預(yù)定的跳數(shù),就在習(xí)題-知識點圖中生成了一條解釋路徑,直觀展示當(dāng)前預(yù)測結(jié)果的產(chǎn)生原因.IDKT模型整體結(jié)構(gòu)如圖2所示:
Fig.2 Framework of our model
本節(jié)主要介紹可解釋知識追蹤模型的各個模塊,包括用戶認知狀態(tài)序列建模、基于用戶認知狀態(tài)的個性化習(xí)題表示模塊、作答表現(xiàn)預(yù)測模塊、解釋路徑生成模塊以及模型訓(xùn)練方法.
由于用戶的作答交互序列存在時序,而且不同習(xí)題之間可能存在依賴性,因此本模塊通過建模作答序列,捕捉用戶狀態(tài)的變化并自動學(xué)習(xí)習(xí)題之間的潛在關(guān)系.本模塊結(jié)構(gòu)設(shè)計如圖2中①的部分所示,參照DKT[2]使用長短時記憶網(wǎng)絡(luò)(long-short term memory, LSTM)從用戶交互序列中學(xué)習(xí)其當(dāng)前知識狀態(tài).
(1)
其中,xt為習(xí)題表示與用戶作答情況的拼接向量,變量ht,ct,it,ft,ot分別代表隱藏層狀態(tài)、單元狀態(tài)、輸入門、遺忘門、輸出門.該認知狀態(tài)序列模塊可以捕捉知識點間粗粒度的依賴關(guān)系,此處將序列最終時間步對應(yīng)的隱藏狀態(tài)向量ht作為當(dāng)前用戶狀態(tài)表征,其中包含了用戶對習(xí)題與對應(yīng)知識點的掌握狀態(tài).
所提模型的核心是基于用戶知識狀態(tài)的個性化習(xí)題表示模塊,主要分為2部分.
首先,為緩解數(shù)據(jù)稀疏性問題,在由矩陣Q構(gòu)建的知識點與習(xí)題二部圖基礎(chǔ)上,從所有用戶交互信息中進一步建模知識點之間的聯(lián)系、習(xí)題之間的共現(xiàn)關(guān)系等上下文信息,利用得到的知識點間、習(xí)題間相關(guān)關(guān)系將二部圖擴展為包含多種關(guān)系類型的異質(zhì)圖結(jié)構(gòu).然后在此異質(zhì)圖基礎(chǔ)上,應(yīng)用注意力圖神經(jīng)網(wǎng)絡(luò)聚合鄰居節(jié)點,得到當(dāng)前預(yù)測習(xí)題更加豐富的節(jié)點表示.其中,用戶當(dāng)前時刻的知識狀態(tài)將與習(xí)題節(jié)點表示一道,共同得到注意力值作為聚合鄰居節(jié)點的依據(jù).由于用戶知識狀態(tài)不同,所以在圖中對鄰居節(jié)點的關(guān)注程度也不同,因此,通過利用用戶當(dāng)前知識狀態(tài)可以學(xué)到個性化的習(xí)題表示.
1)基于上下文的習(xí)題-知識點圖構(gòu)建.根據(jù)每道習(xí)題所考察的知識點,很自然地就可以構(gòu)建出知識點-習(xí)題二部圖.然而,知識點之間的關(guān)聯(lián)關(guān)系、先序關(guān)系,習(xí)題之間的相關(guān)關(guān)系并不能通過該二部圖體現(xiàn).為了得到信息更加豐富的習(xí)題-知識點關(guān)系圖,我們提出融合上下文信息,擴展習(xí)題之間、知識點之間的關(guān)系,將單一關(guān)系的二部圖擴展為展示習(xí)題、知識點間豐富聯(lián)系的異構(gòu)圖.
① 習(xí)題-知識點關(guān)系構(gòu)建.通過2.1節(jié)中介紹的矩陣Q可以得到習(xí)題與知識點間的對應(yīng)考察關(guān)系.例如圖3(b)中,若習(xí)題q1考察了知識點s1,s2,s3,則認為在習(xí)題-知識點二部圖中q1與s1,s2,s3存在連接,即:
(2)
注意,習(xí)題考察知識點關(guān)系是研究知識追蹤的基礎(chǔ)信息,支持知識追蹤問題研究的數(shù)據(jù)均直接提供該類信息,因此建模時無需做額外處理.如圖3(a)所示.
② 習(xí)題-習(xí)題關(guān)系構(gòu)建.在習(xí)題與知識點之間的考察關(guān)系中不難看出,若某些習(xí)題共同考察了相同的知識點,該習(xí)題之間存在較強的相關(guān)關(guān)系.以圖3為例,若習(xí)題q1考察了知識點s1,s2,s3,習(xí)題q2考察了知識點s2,s3,習(xí)題q3考察了知識點s3,s4,習(xí)題q4考察了知識點s5,則可將其關(guān)系表示為如圖3(c)所示.
q1與q3的共同考察的知識點最多,因此相關(guān)度最高,q1與q4考察不同的知識點,因此相關(guān)度最低.因此采用習(xí)題之間的知識點共現(xiàn)作為習(xí)題相關(guān)程度的衡量指標(biāo)之一.
另外,通過挖掘用戶的答題序列發(fā)現(xiàn),某些習(xí)題會呈現(xiàn)出固定的共現(xiàn)模式.例如兩習(xí)題經(jīng)常在用戶答題序列中伴隨出現(xiàn),則可推測其間存在一定關(guān)聯(lián),例如習(xí)題有相似的題型,關(guān)聯(lián)的考點等.在圖3中的例子為q3與q4.我們統(tǒng)計序列中習(xí)題共現(xiàn)的頻繁模式與非共現(xiàn)頻次的比值,選擇其中大于一定閾值的共現(xiàn)模式,其形式化表述:
(3)
其中,freq(qi,qj)表示習(xí)題qi,qj共現(xiàn)的頻次,freq(qi),freq(qj)分別表示習(xí)題qi,qj單獨出現(xiàn)的頻次.
此外,考察相同知識點的問題因為難度設(shè)置不同,從而會導(dǎo)致不同的作答表現(xiàn).對此我們統(tǒng)計習(xí)題被所有用戶作答的正確率來表征該習(xí)題的難度系數(shù),若用戶整體正確率高說明習(xí)題相對簡單,反之說明題目本身難度較大.
③ 知識點-知識點關(guān)系構(gòu)建.知識點之間也存在著關(guān)聯(lián)關(guān)系、先修關(guān)系、上下位關(guān)系等.比如知識點s1,s2,s3共同被習(xí)題q1考察,說明知識點s1,s2,s3之間存在關(guān)聯(lián)關(guān)系或上下位關(guān)系.另外,如果在用戶答題序列中,知識點s1總是先于知識點s5被考察,說明知識點s1可能是知識點s5的先修知識點,即掌握知識點s1是掌握知識點s5的前提,如圖3(d)所示.基于以上2條假設(shè),通過挖掘所有用戶的答題序列和作答情況,可以構(gòu)建知識點之間的關(guān)聯(lián)關(guān)系和先修關(guān)系.
Fig.3 Inter-relations between questions and skills
2)基于用戶知識狀態(tài)的個性化習(xí)題表示.通過結(jié)合上下文信息得到習(xí)題-知識點間的異質(zhì)圖后,為了對習(xí)題-知識點圖的豐富信息進行建模,模型用注意力圖神經(jīng)網(wǎng)絡(luò)聚合鄰居節(jié)點,得到當(dāng)前待預(yù)測習(xí)題更加豐富的節(jié)點表示.
① 基于用戶知識狀態(tài)的注意力機制.對于同一習(xí)題,知識狀態(tài)不同的用戶關(guān)注的考察重點不同,影響用戶作答表現(xiàn)的考點也不同.基于這一考慮,我們提出將用戶知識狀態(tài)納入圖神經(jīng)網(wǎng)絡(luò)的節(jié)點表示學(xué)習(xí)過程.
假設(shè)當(dāng)前習(xí)題-知識點圖中所有節(jié)點的嵌入向量集合為Ω={n1,n2,…,nN},ni∈F,其中N為節(jié)點數(shù),F(xiàn)為每個節(jié)點的特征維度.首先,為了獲取特征之間的高階聯(lián)系,需要對節(jié)點進行線性變換.本文對圖中節(jié)點共享線性變換矩陣W∈F′×F,F(xiàn)為每個節(jié)點特征的初始維度,F(xiàn)′為線性變換后節(jié)點特征維度.
(4)
輸出eij經(jīng)過softmax激活函數(shù)映射αij=σ(eij)即得到節(jié)點j對節(jié)點i重要程度的表征.
此外,為了捕獲用戶知識狀態(tài)與節(jié)點表示的多語義下的特征交互,模型引入了多頭注意力機制(multi-head attention),即采用相同的注意力機制,但是對于每一頭注意力學(xué)習(xí)不同的權(quán)值矩陣W,以實現(xiàn)當(dāng)前節(jié)點與用戶知識狀態(tài)進行更加全面的交互.在傳播過程將多頭注意力得到的結(jié)果拼接,在輸出層求和平均,得到最終的節(jié)點表示.
② 聚合鄰居節(jié)點.得到了目標(biāo)節(jié)點與周圍鄰居節(jié)點基于用戶認知狀態(tài)的注意力向量后,鄰居節(jié)點的表示將根據(jù)該注意力值進行加權(quán)求和,此即為單頭注意力的聚合過程.
(5)
我們將得到的多頭注意力進行拼接,
(6)
通過重復(fù)這樣的過程,更多跳的鄰居節(jié)點表示被聚合到中心節(jié)點.值得注意的是,在輸出層,由于輸出向量維度限制,上述的拼接操作將不再適用,此時可以將多頭注意力機制得到的節(jié)點表示進行平均,得到最終基于用戶知識狀態(tài)的個性化節(jié)點.
(7)
本模塊根據(jù)用戶知識狀態(tài)與個性化習(xí)題表示,輸出用戶在下一個時間步正確回答目標(biāo)習(xí)題的概率.該過程可形式化地表示為
(8)
其中,σ(·)為激活函數(shù),fp為預(yù)測函數(shù),ht為認知狀態(tài)模塊得到的用戶當(dāng)前知識狀態(tài)表示向量,ni為習(xí)題表示模塊經(jīng)過多頭注意力聚合鄰居節(jié)點得到的個性化習(xí)題表示向量.激活函數(shù)與預(yù)測函數(shù)可根據(jù)不同數(shù)據(jù)特點選擇.在本模型中,fp為內(nèi)積函數(shù),σ(·)為sigmoid函數(shù).
最后,采用隨機梯度下降通過最小化預(yù)測概率與標(biāo)簽結(jié)果的交叉熵損失的方式更新模型參數(shù).其中ai為用戶實際作答情況,正確為1,錯誤為0.pi為預(yù)測用戶作答正確的概率,pi∈[0,1].
(9)
基于用戶認知狀態(tài)的注意力值不僅用于聚合鄰居節(jié)點得到個性化的習(xí)題表示,也將在得到當(dāng)前作答表現(xiàn)預(yù)測后,為預(yù)測結(jié)果提供可解釋性.
在注意力圖神經(jīng)網(wǎng)絡(luò)聚合表示的過程中,對每一跳鄰居都會學(xué)習(xí)一組歸一化的權(quán)值.該個性化注意力可以直觀地理解為在用戶當(dāng)前的認知狀態(tài)下更關(guān)注哪個鄰居節(jié)點.用戶更加關(guān)注的鄰居會得到更高的注意力值,因此在聚合得到中心節(jié)點表示時會發(fā)揮更大的作用,所以很自然地,會對預(yù)測結(jié)果有更直接的影響.基于這樣的認識,我們可以利用該注意力值在圖中為預(yù)測結(jié)果展示出一條推理路徑.如圖2中④的部分所示.在每一跳鄰居中選擇最大注意力值的節(jié)點添加到解釋路徑內(nèi),直至達到預(yù)定的跳數(shù),這樣,我們就在習(xí)題-知識點圖中生成了一條解釋路徑,直觀展示當(dāng)前預(yù)測結(jié)果的產(chǎn)生原因.
本節(jié)首先介紹實驗的基本設(shè)置,包括參數(shù)設(shè)置、度量指標(biāo)、數(shù)據(jù)集和對比方法.接著展示本模型和各對比方法在各個數(shù)據(jù)集中的預(yù)測表現(xiàn).隨后進行消融實驗以驗證個性化注意力機制和融合上下文信息習(xí)題-知識點關(guān)系圖構(gòu)建2個模塊的有效性.最后通過案例分析,展示基于注意力的推理路徑的生成結(jié)果.
本實驗在隨機梯度下降中使用的學(xué)習(xí)速率r∈{0.0001,0.001,0.01},嵌入維度k∈{50,100,200},訓(xùn)練批量大小B∈{50,100,200,400},RNN層數(shù)l∈{1,2,3},隱藏狀態(tài)層數(shù)h∈{32,64,128},隨機采樣鄰居節(jié)點數(shù)n∈{2,4,8},聚合范圍為m∈{1,2,3,4}跳內(nèi)鄰居.最優(yōu)參數(shù)通過網(wǎng)格搜索由驗證集確定.本實驗中所有數(shù)據(jù)集的迭代次數(shù)均設(shè)為1 000.習(xí)題、知識點嵌入維度均設(shè)為100,嵌入矩陣在隨機初始化后隨訓(xùn)練過程動態(tài)更新.知識狀態(tài)建模部分的RNN算法采用LSTM,包含2個隱藏狀態(tài)層,隱藏層維度均設(shè)為64,最終輸出的用戶知識狀態(tài)向量維度為100.利用習(xí)題-知識點圖進行嵌入更新的過程中,每一跳隨機采樣的鄰居節(jié)點數(shù)設(shè)為4,最遠聚合3跳以內(nèi)的鄰居節(jié)點.模型的參數(shù)優(yōu)化采用隨機梯度下降,學(xué)習(xí)率設(shè)置為0.001,批大小為100.
參照大多數(shù)認知跟蹤模型研究工作,本實驗采用ROC 曲線下方的面積大小(area under the curve, AUC)和預(yù)測結(jié)果準(zhǔn)確率(accuracy, ACC)作為評價指標(biāo).AUC與ACC越大表示模型預(yù)測性能越好.
本實驗在3個公開的知識追蹤數(shù)據(jù)集上驗證模型有效性:ASSIST09,ASSIST12,EdNet.3個數(shù)據(jù)集均從用戶的答題交互日志中抽取,表1顯示了各個數(shù)據(jù)集的統(tǒng)計信息.每個數(shù)據(jù)集中,80%數(shù)據(jù)用于訓(xùn)練與驗證,20%用于測試,交互序列最大長度設(shè)為200.我們從各個數(shù)據(jù)集中選擇習(xí)題,習(xí)題考察的知識,和用戶的作答情況作為知識追蹤任務(wù)的基本數(shù)據(jù).此外我們統(tǒng)計了每個題目在平臺內(nèi)總體正確率,不同題目之間的共現(xiàn)關(guān)系,習(xí)題考察知識點的對應(yīng)關(guān)系,以此作為擴充習(xí)題-知識點關(guān)系圖的上下文信息.在以上3個數(shù)據(jù)集中,我們?nèi)サ粑礃?biāo)注考察知識點的答題記錄,過濾了交互次數(shù)小于10的用戶.
Table 1 Statistics of Datasets
ASSIST09[22]是2009—2010年間從 ASSIST 在線教育平臺(上標(biāo)加網(wǎng)址)收集的用戶交互答題序列.我們在“技能構(gòu)建者(skill builder)”數(shù)據(jù)集上進行實驗.數(shù)據(jù)集包含3 852名用戶,123個知識點,17 737個問題和 282 619次交互練習(xí).
ASSIST12[22]是2012—2013年間ASSIST 在線教育平臺收集的數(shù)據(jù).和ASSIST09不同,ASSIST12數(shù)據(jù)集中每個問題只考查單一知識點.我們采取與ASSIST09相同的預(yù)處理方式.
EdNet[23]由人工智能在線輔導(dǎo)平臺Santa收集提供,包含131 441 538條交互記錄,涉及784 309個用戶.由于數(shù)據(jù)量過大,本實驗隨機選擇5 000名用戶的學(xué)習(xí)記錄,其中包含189個知識點、12 161個習(xí)題和676 974條交互記錄.
為了驗證所提模型在預(yù)測用戶作答表現(xiàn)上的有效性,我們選取7個典型基準(zhǔn)模型.
傳統(tǒng)模型通過非深度方法,人工定義影響用戶作答表現(xiàn)的因素,并根據(jù)用戶交互序列擬合參數(shù),文中選取2個:貝葉斯知識追蹤(BKT)[1]以二元參數(shù)表示用戶知識狀態(tài),應(yīng)用貝葉斯網(wǎng)絡(luò)學(xué)習(xí)影響用戶作答表現(xiàn)的參數(shù),如學(xué)習(xí)概率、失誤概率、猜測概率等.知識追蹤機(KTM)[10]引入人工建模的習(xí)題和知識點特征,并應(yīng)用因子分解機預(yù)測作答表現(xiàn).為了與其他基準(zhǔn)模型保持一致,本實驗僅采用習(xí)題ID,知識點ID和作答情況作為輸入.
深度模型通過將作答表現(xiàn)預(yù)測問題建模為序列預(yù)測問題,應(yīng)用循環(huán)神經(jīng)網(wǎng)絡(luò)方法建模用戶知識狀態(tài),預(yù)測答題表現(xiàn),文中選取2個:深度知識追蹤(DKT)[2]用RNN建模學(xué)習(xí)交互序列,學(xué)習(xí)一個隱狀態(tài)表征用戶的知識狀態(tài),以此預(yù)測答題表現(xiàn).動態(tài)鍵值記憶網(wǎng)絡(luò)(DKVMN)[3]用記憶網(wǎng)絡(luò)存儲不同的知識狀態(tài),并學(xué)習(xí)知識點之間的隱含關(guān)系,以此預(yù)測作答表現(xiàn).
深度知識追蹤模型有許多擴展工作,此處選取3個與本文所提模型有共通之處的典型代表.圖交互知識追蹤模型(GIKT)[12]利用圖卷積神經(jīng)網(wǎng)絡(luò)挖掘習(xí)題-知識點之間的隱含關(guān)系.通過泛化待預(yù)測習(xí)題與知識狀態(tài)的交互,提高模型預(yù)測能力.個性化評估知識追蹤(IEKT)[17]通過個性化方法評估用戶的認知狀態(tài)和知識獲取狀態(tài),提高模型預(yù)測能力.上下文感知的注意力知識追蹤(AKT)[20]通過引入上下文信息并結(jié)合IRT模型,增強嵌入的表征能力,通過注意力機制為結(jié)果提供解釋.
實驗結(jié)果如表2所示,其中黑體數(shù)字表示該數(shù)據(jù)集中取得最優(yōu)預(yù)測效果的算法表現(xiàn).分析表中數(shù)據(jù)可以得到4個結(jié)論:
1)針對數(shù)據(jù)稀疏性和建模個性化認知的擴展模型進一步提高了深度學(xué)習(xí)類方法的預(yù)測能力,證明為深度學(xué)習(xí)方法引入更多輔助信息和考慮個性化因素均是提升模型指標(biāo)的有效途徑.
Table 2 The Predicted Results of Different Methods on Knowledge Tracing
Fig.4 Generating inference path for interpretable prediction
2)和利用習(xí)題-知識點二部圖挖掘隱含聯(lián)系的GIKT模型相比,IDKT利用上下文信息挖掘習(xí)題-知識點之間更加豐富的聯(lián)系,AUC指標(biāo)在ASSIST09,ASSIST12,EdNet數(shù)據(jù)上分別提高1.64%,1.76%,0.89%,說明充分挖掘上下文擴展習(xí)題-知識點關(guān)系對緩解數(shù)據(jù)稀疏問題的有效性.
3)IDKT設(shè)計的個性化嵌入對比IEKT的泛個性化方法,AUC分別取得了2.68%,6.98%,1.64%的提升,證明了個性化建模的有效性.
4)IDKT設(shè)計的基于知識狀態(tài)的注意力節(jié)點表示聚合機制對比AKT的指數(shù)衰減注意力方法,AUC分別取得了1.32%,1.86%,1.78%的提升,證明了基于知識狀態(tài)的注意力機制的有效性.
本節(jié)通過案例分析展示由個性化注意力權(quán)重生成推理路徑的過程.以ASSIST09數(shù)據(jù)集為例,圖4顯示了以id為96295的用戶的案例分析,預(yù)測該用戶在id為86633習(xí)題作答情況為錯誤的情況下,為解釋預(yù)測結(jié)果生成推理路徑的過程,此處僅展示單頭注意力結(jié)果,多頭注意力推理過程以此類推.
根據(jù)個性化注意力權(quán)值,當(dāng)前習(xí)題聚合一跳內(nèi)鄰居的注意力權(quán)值分別為0.5,0.4,0.1.因此我們將id為280的知識點和id為147382的習(xí)題分別加入推理序列中.重復(fù)以上過程,就可以在每一層鄰居中選擇注意力權(quán)值高的節(jié)點加入推理路徑.由此,對于用戶在當(dāng)前習(xí)題的作答預(yù)測,如圖4所示,IDKT生成了2條推理路徑:86623-280-310-309和86623-147382-276.對照id的實際含義,就可以對所得推理路徑進行解釋.以推理路徑1為例,模型預(yù)測用戶未正確作答id為86623的習(xí)題可能因為其考察了id為280的知識點.而知識點280與知識點310相關(guān),由此得出的解釋路徑是,用戶在知識點310存在薄弱環(huán)節(jié)導(dǎo)致當(dāng)前習(xí)題沒有回答正確.
通過以上過程,IDKT將個性化注意力權(quán)值轉(zhuǎn)化為推理路徑,為結(jié)果提供可解釋性.該解釋可以指導(dǎo)用戶找出學(xué)習(xí)過程的薄弱知識點,也可以為后續(xù)個性化學(xué)習(xí)資源推薦、智能問答等提供依據(jù).
本模型的核心部分是將用戶知識狀態(tài)引入圖神經(jīng)網(wǎng)絡(luò)的注意力學(xué)習(xí)過程,學(xué)習(xí)用戶個性化的習(xí)題表示.我們推測個性化的習(xí)題表示不僅為結(jié)果提供了推理路徑級別的可解釋性,也提高了模型預(yù)測能力.為了驗證這一設(shè)計的有效性,將針對個性化注意力機制進行消融實驗,觀察其對模型預(yù)測性能的改善作用.
變種1.為了得到語義更加豐富的聚合鄰居表示我們采用多頭注意力機制.為了驗證多頭注意力機制的有效性,此處將多頭注意力簡化為單頭注意力機制,簡寫為IDKT-s head.
變種2.聚合鄰居表示的過程中,計算注意力權(quán)值僅考慮目標(biāo)節(jié)點與鄰居節(jié)點,即退化為注意力圖神經(jīng)網(wǎng)絡(luò)的表示學(xué)習(xí)方法,簡寫為IDKT-w/o ks.
變種3.聚合鄰居表示的過程中,不考慮計算注意力權(quán)值,對鄰居節(jié)點的表示加和求平均更新目標(biāo)節(jié)點的表示,簡寫為IDKT-w/o att.
3個變種的實驗參數(shù)均按照4.1節(jié)描述設(shè)置,與本文模型保持一致.由于數(shù)據(jù)集ASSIST12為單知識點習(xí)題數(shù)據(jù)集,而在實際的智能教育系統(tǒng)中,一個習(xí)題可能會考察多個知識點,因此在消融實驗階段我們不考慮ASSIST12,僅展示模型與變體在考察多知識點的ASSIST09與EdNet數(shù)據(jù)集中的結(jié)果.表3展示了本文模型與3個變種的預(yù)測結(jié)果.從實驗結(jié)果看,在ASSIST09數(shù)據(jù)集中,本文所題模型的ACC比3個變種分別高了 0.11%,0.67%,1.13%;AUC分別高了0.24%,1.15%,1.50%.在EdNet數(shù)據(jù)集中,ACC比3個變種分別高了 0.39%,2.01%,1.11%,AUC分別高了0.39%,0.77%,1.14%.說明基于知識狀態(tài)的多頭個性化注意力機制中,多頭注意力、個性化注意力和注意力機制本身均對模型預(yù)測能力有提升作用.
對于變種1,將多頭注意力退化為單頭注意力,對用戶知識狀態(tài)挖掘的能力減弱,模型預(yù)測性能有小幅度下降.對于變種2,在聚合鄰居節(jié)點表示時,未引入用戶當(dāng)前認知狀態(tài),相當(dāng)于將個性化注意力機制退化為基礎(chǔ)注意力機制,模型預(yù)測AUC在兩數(shù)據(jù)集上下降最大,證明了個性化注意力機制不僅為模型提供可解釋性,對模型預(yù)測能力提升也發(fā)揮了重要作用.對于變種3,聚合鄰居表示時直接采用直接加和平均的方式,模型預(yù)測能力有大幅度下降,證明了注意力機制的有效性.
Table 3 The Predicted Results of Our Model and Its Variants on the Knowledge Tracing Task
本文主要提出了一個可解釋深度知識追蹤模型,通過對用戶答題序列建模獲得其知識狀態(tài),然后基于該知識狀態(tài)學(xué)習(xí)注意力權(quán)重,得到習(xí)題-知識點關(guān)系圖中用戶對不同鄰居節(jié)點的關(guān)注程度,并以此聚合鄰居節(jié)點,得到當(dāng)前預(yù)測習(xí)題基于用戶知識狀態(tài)的個性化表示,提高了知識追蹤模型預(yù)測性能.對于預(yù)測結(jié)果,提出在習(xí)題-知識點圖中依據(jù)用戶個性化注意力值選擇推理路徑作為對預(yù)測結(jié)果的解釋.
后續(xù)工作將主要研究引入更豐富上下文知識的方法,將習(xí)題-知識點圖擴展為有向帶權(quán)圖,以此有效刻畫知識之間先修關(guān)系的方向性和節(jié)點之間的關(guān)聯(lián)程度差別.
作者貢獻聲明:劉坤佳設(shè)計了初步的模型框架、實現(xiàn)了本文的所有實驗并撰寫論文初稿;李欣奕參與了論文框架設(shè)計、實驗設(shè)計,對論文初稿進行了細致修改;唐九陽對論文修改提出建設(shè)性意見,并審核同意發(fā)表;趙翔對模型框架和實驗設(shè)計提出了建設(shè)性意見.