魏 思,沈雙宏,黃振亞,劉 淇,陳恩紅,3,蘇 喻,王士進
(1. 認知智能國家重點實驗室(科大訊飛),安徽 合肥 230088;2. 中國科學技術大學 計算機科學與技術學院 大數據分析與應用安徽省重點實驗室,安徽 合肥 230027;3. 中國科學技術大學 大數據學院,安徽 合肥 230027)
在線學習系統(tǒng)(Online Learning Systems,OLS),包括智能輔導系統(tǒng)(Intelligent Tutoring Systems,ITS)和大規(guī)模在線開放課程(Massive Online Open Courses,MOOC),能夠為學生提供智能教育服務[1-3]。例如,自適應地向學生推薦個性化的學習資源和學習路徑,以提高他們的學習效率和體驗[4-5]。知識追蹤(Knowledge Tracing,KT)旨在監(jiān)測學生在學習中的動態(tài)知識狀態(tài)[6],是提供這些智能服務中最基礎和必要的研究任務之一。近年來,隨著在線教育的迅速發(fā)展,越來越多的研究開始關注到這個新興的研究方向[7-20]。
具體來說,知識追蹤問題的定義如下: 在一個智能在線學習系統(tǒng)中,假設學生集合是={s1,s2,…,sI},包含I個不同的學生;題目集合是={e1,e2,…,eJ},包含J個不同的題目;知識點集合是={kc1,kc2,…,kcM},包含M個不同的知識點。每個題目都與特定的知識點關聯(lián),學生通過在不同的題目上進行練習達到對相應知識點的掌握。這里學生的學習交互序列可表示為X=(e1,a1),(e2,a2),…,(et,at),其中,et表示t時刻學生回答的題目,at是對應的答案標簽(1代表正確答案,0代表錯誤答案),T表示學習交互序列的長度。基于學生的學習交互序列,知識追蹤是評估學生在學習過程中不斷演變的知識狀態(tài)并進一步預測他們未來表現的任務。這里的知識狀態(tài)指的是學生在具體知識點上的掌握程度。為了方便理解,本文在圖1中給出了一個知識追蹤的具體示例: 在學生的練習過程中,知識追蹤模型不斷估計學生知識狀態(tài)并給出反映學生知識掌握程度變化的雷達圖。在該示例中,雷達圖的每一維對應學生在對應知識點上的掌握情況。通過雷達圖面積的變化可以看出,學生在練習后獲得了較好的知識增長。
圖1 知識追蹤過程示例
針對知識追蹤的現有工作中,研究重點主要集中在兩個方向: 探索更好的追蹤方法或尋求更恰當的題目表征方式。如表1所示,本文對現有的知識追蹤模型進行了系統(tǒng)的分類,從表中可以看出研究不同的追蹤方法更受關注。一些最新的技術,尤其是基于深度學習(deep learning, DL)的方法,已經成功應用于知識追蹤任務。與此同時,針對題目表征的研究相對較少。然而,在追蹤方法上的諸多研究給知識追蹤任務帶來的性能提升實際上并不如在題目表征上的研究。例如,目前表現最優(yōu)的采用基于自注意力機制的編碼器-解碼器架構的 AKT模型在知識追蹤中取得了很好的表現[16]。根據AKT原文的實驗結果,其主要的表現收益來自基于Rasch模型[21]的題目表征,而不是基于單調自注意力機制的追蹤方法。
表1 知識追蹤模型分類結果
此外,在現有大多數知識追蹤模型中,題目往往僅由其含有的知識點表示,在這樣的情況下,它們假設具有相同知識點的題目是相同的。例如,圖2中題目e4和e6具有相同的知識點——“平方根”,所以它們被認為是同一道題。然而,這樣簡單的假設在現實情況中是不合理的。因為具有相同知識點的題目之間,不同的題目難度等獨特特征被忽略了,而題目難度等特征在學生學習場景中是十分重要的。具體來說,在對圖1中學生的知識狀態(tài)進行建模時,能答對題目e4的學生顯然比只能答對題目e6的學生在“平方根”知識點上具有更好的掌握水平。此外,答錯題目e4和e6代表的含義也不相同: 答錯題目e6可以表明學生掌握得很差,而答錯題目e4只能說明掌握得不夠好。為了完善知識追蹤中的題目表征,Liu等人[17]提出利用題目的文本去預訓練得到獨特的題目表征;Liu等人[19]同樣提出一種預訓練題目表征的方法,該方法通過構建題目-知識點關系、題目相似關系、知識點相似關系、題目難度二分圖,利用神經網絡預訓練得到題目表征。此外,Ghosh等人[16]將心理測量學中的Rasch模型[21]引入到題目表征中。上述方法雖然取得了一定的效果,但是它們都往往需要先獲取題目文本等額外資源,并且經過復雜的預訓練過程去獲取題目表征,然后再將這些題目表征應用到知識追蹤任務中,這限制了其進一步的發(fā)展和實際的應用場景。
圖2 題目示例
圖3 題目特征維度及其關系
鑒于題目表征對知識追蹤任務的重要意義和影響,針對目前知識追蹤任務中題目表征存在的問題,本文首先提出了一種通用題目表征方法。如圖3所示,題目具有多種特征維度,通過知識點和難度等預定義的顯性特征就可以辨別絕大多數不同的題目,但考慮到少部分具有相同知識點和難度的題目也可能不一樣,本文用題目獨有隱性特征來區(qū)分這類題目。因此,本文進一步利用知識點、難度等顯性特征和題目獨有隱性特征來構建通用題目表征以綜合表示題目。然后,為了學習到有意義的題目表征,本文提出將題目表征學習融入知識追蹤過程中,并設計了一種融合通用題目表征學習的神經知識追蹤框架(Neural Knowledge Tracing Framework,NKTF),在進行知識追蹤的同時學習精確有效的題目表征,不需要額外的文本資源并省去了復雜的題目表征預訓練過程。該框架包含三個主要模塊: ①學習交互表征模塊; ②追蹤方法模塊; ③表現預測模塊。具體來說,學習交互表征模塊包含本文設計的通用題目表征以及學生相應的答案表征。追蹤方法模塊可以由任意一種現有的知識追蹤模型來完成,本文應用了三種常用的基于深度學習的方法,分別是深度知識追蹤中的LSTM[10]、卷積知識追蹤中的CNN[14]和基于注意力知識追蹤中的self-attention[15]。表現預測模塊用于預測學生未來的表現,本文通過學生的知識狀態(tài)與待回答題目的內積對建模學生運用知識回答題目的過程,學生的表現也可以通過內積結果來預測。最后,本文在三個真實數據集上進行了實驗,實驗結果表明,通過將題目表征學習融入知識追蹤任務中,NKTF可以同時促進題目表征學習和知識追蹤的效果,在自動學到有意義的題目表征的同時也能較大程度地提高基線知識追蹤模型的性能,使它們能夠超過目前最優(yōu)的模型。
追蹤方法驅動的知識追蹤模型代表尋求不同 的方法來建模學生知識狀態(tài)演變的一類知識追蹤模型。貝葉斯知識追蹤(Bayesian knowledge tracing,BKT)是第一個被提出的知識追蹤模型[1],它是隱馬爾可夫模型的一個特例。隨后,一些其他模型,比如表現因子分析(Performance Factor Analysis,PFA)[7],采用邏輯函數來估計學生掌握知識點的概率。用在推薦系統(tǒng)中對用戶和項目進行編碼的因子分解機(Factorization Machines,FM)也被成功應用在知識追蹤任務中對學生和題目進行建模[8]。HawkesKT利用Hawkes過程對知識追蹤過程中的時序交叉效應進行自適應建模[9]。近年來,深度學習的進步推動了基于神經網絡的知識追蹤模型的發(fā)展。神經網絡強大的非線性和特征提取能力使其非常適合對復雜的學習過程進行建模。具體地,深度知識追蹤(DKT)首先將深度學習引入知識追蹤任務中[10],它利用RNN及其變種LSTM對學生的知識狀態(tài)進行建模。然后,動態(tài)鍵值記憶網絡模型(DKVMN)使用記憶網絡來存儲潛在的知識點并更新學生的知識掌握程度[11]?;趫D神經網絡的知識追蹤(Graph-based Knowledge Tracing,GKT)提出使用GNN對知識點中自然存在的圖結構進行建模[12]。同樣,基于知識結構的知識追蹤(SKT)也使用GNN來捕獲知識追蹤過程中知識點之間的影響力傳播[13]。卷積知識追蹤(CKT)應用CNN來模擬學生的個性化學習率[14]?;谧⒁饬Φ闹R追蹤(SAKT)將Transformer中的self-attention引入到知識追蹤[15]。情境感知的注意力知識追蹤(AKT)結合了具有單調假設的自注意力機制[16],并提出一種編碼器-解碼器架構對學生知識能力進行建模。
相較于追蹤方法驅動的知識追蹤模型,題目表征驅動的知識追蹤模型旨在更好地表征知識追蹤中的題目。題目感知的知識追蹤(EKT)有效利用題目文本內容來提高知識追蹤的表現[17]。EKT定義了一個Bi-LSTM 架構來自動地從文本內容中學習題目的語義表征,然后將這些表征輸入到 LSTM 層以捕獲學生的動態(tài)知識狀態(tài)。同樣,關系感知的知識追蹤(RKT)利用題目的上下文信息來增強自注意力機制[18]。RKT定義了題目相關系數并從文本內容中捕獲題目之間的關系信息?;诙謭D的預訓練表征(PEBG)提出了一種獲得預訓練題目表征的方法[19]。它將題目-知識點關系、題目相似關系、知識點相似關系、題目難度一起表示為二分圖,并利用基于內積的神經網絡將它們融合以獲得預訓練的題目表征。此外,AKT 還提出利用心理測量學中的Rasch模型來構建題目和知識點的表征[16]。題目表征驅動的知識追蹤模型通常需要復雜的預訓練方法和題目文本等額外資源,這限制了它們的進一步發(fā)展。
總的來說,追蹤方法驅動的知識追蹤模型受到了更多研究人員的關注。然而,從現有研究的結果來看,題目表征驅動的知識追蹤模型更能有效地提升知識追蹤的效果。例如,基于Rasch模型的題目和知識點表征可以使AKT獲得最大的收益。PEBG中的預訓練題目表征也很好地提高了基線知識追蹤模型的表現。本文提出一種通用題目表征方法,并將題目表征學習融入到知識追蹤過程中,在實驗部分可以看到,本文方法不僅提升了知識追蹤的效果,而且學到了精確有效的題目表征。
本文提出了融合通用題目表征學習的神經知識追蹤框架NKTF,模型框架如圖4所示。本節(jié)首先介紹學習交互表征模塊,然后介紹追蹤方法模塊,最后介紹表現預測模塊。
圖4 NKTF模型框架圖
學習交互由題目和答案組成。基于知識點的學習交互表征無法區(qū)分具有相同知識點的題目,除了知識點之外,題目還有難度等其他特征。完整的題目表征應當能精確有效地區(qū)分每一道題目。為了得到這樣的題目表征,本文用知識點、難度等顯性特征,以及題目獨有的隱性特征來綜合表征題目。具體地,題目的知識點可以由專家標注得到,首先隨機初始化一個嵌入矩陣K∈M×dk,其中dk是向量的維度。對于知識點kcm,本文分配一個特定的向量對其進行表征。對于題目難度,本文采用經典測試理論[22]中基于統(tǒng)計的難度計算方式,如式(1)所示。
(1)
其中,Si是回答了題目et的學生集合,ai==1表示答案正確,常量Cd是預定義的難度級別數目。同樣地,隨機初始化一個嵌入矩陣D∈Cd×Cd,用于表示題目難度,其中Cd是向量的維度。對于難度級別為c的題目,其難度向量為dc∈dk。因此,對于題目et,其知識點和難度向量分別為ket和det。然后,本文可以通過ket和det的組合得到題目表征的顯性特征首先連接ket和det,然后輸入層感知器(multi-layer perceptron,MLP),如式(2)所示。
(2)
其中,W1∈(dk+dd)×d1是權重矩陣,b1∈d1是偏差項。經過組合后,將包含其知識點和題目難度的深度混合特征。綜合考慮知識點和題目難度可以更好地推斷學生的知識狀態(tài): 對較難練習的正確答案表明知識掌握程度較高,對較簡單練習的錯誤答案表明知識掌握程度較低。然而,難度和知識點等顯示特征只能在二維空間中表達每個題目,無法區(qū)分更高維空間中題目的差異。因此,本文在難度和知識點的基礎上,為每一個題目添加一個獨有的隱性特征d2,其中,d2是向量的維度。最后,題目et的表征可以通過式(3)得到。
(3)
其中,“⊕”是連接運算,W2∈(d1+d2)×dh是權重矩陣,b2∈dh是偏差項,dh是向量的維度。因此,本文提出的通用題目表征包含了知識點、難度以及題目獨有特征等綜合信息,可以準確區(qū)分每一道題目。在知識追蹤過程中,NKTF將同時自動學習題目表征。
得到題目表征后,本文將題目表征和答案表征融合得到學習交互表征。在這里,答案表征也來自隨機初始化的矩陣A∈2×da;這里2表示答案的正確或錯誤兩種類別,da是向量的維度。學習交互(et,at)如式(4)所示。
(4)
其中,W3∈(d1+d2+da)×dx是權重矩陣,b3∈dx是偏差項,dx是向量的維度。經過訓練,本文可以獲得精確有效的學習交互表征。
本文的研究重點是知識追蹤中的題目表征學習,為了驗證本文提出的通用題目表征學習的有效性,在追蹤方法模塊,本文將上述學習交互表征作為輸入,選擇現有的三種常用知識追蹤模型來實現追蹤方法模塊,分別是DKT中的LSTM、CKT中的CNN和SAKT中的self-attention。以 DKT中的LSTM為例,本文提出的學習交互表征xi,將作為LSTM的輸入,學生知識狀態(tài)的具體計算如式(5)所示。
(5)
其中,Wi,Wf,Wo,Wc∈(dx+dh)×dh是權重矩陣,bi,bi,bo,bc∈dh是偏差項。類似地,本文將LSTM中的隱藏狀態(tài)hi∈dh視為學生的知識狀態(tài)。
在表現預測模塊中,和傳統(tǒng)知識追蹤模型不同的是,本文輸出知識狀態(tài)向量的長度并不等于知識點的數量。與通過索引進行預測的方式不同的是,NKTF利用知識狀態(tài)向量和待回答題目的表征的內積來模擬學生的回答過程。然后,通過sigmoid函數將內積結果轉換為估計學生回答正確的概率,如式(6)所示。
yt +1=σ(et +1·hi)
(6)
為了訓練NKTF中的所有參數和隨機初始化的表征向量,本文選擇預測答案y和實際答案a之間的交叉熵對數損失作為目標函數,使用Adam優(yōu)化器[23]在mini-batches上優(yōu)化,如式(7)所示。
(7)
為了驗證本文提出的融合通用題目表征學習的神經知識追蹤框架的有效性,本文選取了三個真實數據集進行實驗,這三個數據集的具體介紹如下:
●ASSIST2012(1)https://sites.google.com/site/assistmentsdata/home/2012-13- school-data-with-affect該數據集中的數據收集自在線輔導系統(tǒng)——ASSISTments[24]。數據是從技能構建者題目集中收集的,學生需要在這些題目集中進行類似的練習以獲得知識。在這個數據集中,本文過濾了沒有相關知識點的學習交互記錄。過濾后共有2 711 813條學習交互記錄,29 018名學生,53 091個題目,265個知識點,平均學習交互序列長度約為93。該數據集擁有最多數量的題目。
●ASSISTchall(2)https://sites.google.com/view/assistmentsdatamining/dataset該數據集來自于2017 年ASSISTments教育數據挖掘競賽,跟蹤了學生2004—2007年間在ASSISTments學習平臺中的使用記錄。這個數據集中共有942 816 條學習交互記錄,1 709名學生,3 162個題目,102個知識點,平均學習交互序列長度約為552。該數據集具有最長的平均學習交互序列。
●NeurIPS_EDU2020(3)https://eedi.com/projects/neurips-education-challenge該數據集發(fā)表于NeurIPS 2020教育挑戰(zhàn)賽,該挑戰(zhàn)賽提供了來自教育平臺Eedi[25]的學生用戶兩個學年的數學練習數據。這個數據集共有15 867 850條學習交互記錄,118 971個學生,27 613個題目,1 125個知識點,平均答題交互序列長度約為133。該數據集擁有最多的答題交互序列。本文去掉了該數據集中部分學習交互時間信息重復的記錄。
本文首先按照答題的時間順序對學生的所有學習交互記錄進行排序。然后,根據數據集的平均學習交互序列長度將所有輸入序列設置為固定長度: ASSIST2012為100、NeurIPS_EDU2020為200、ASSISTchall為500。對于比固定長度更長的序列,本文將它們切分成幾個子序列。對于短于固定長度的序列,使用零向量將它們填充到固定長度。本文使用均勻分布[26]隨機初始化模型訓練中的所有參數。對于所有數據集和模型,本文都進行了標準的5折交叉驗證。所有的超參數都是在訓練集上學習的,在驗證集上表現最好的模型被用來評估測試集。本文共劃分了100個不同的難度等級(Cd=100)。為方便起見,在本文的NKTF 實現中,參數dh、de、da、dk、dd、d1、d2、d3都設置成100。
本文將3個基于NKTF的知識追蹤模型與5個基線進行比較,為了公平比較,所有方法都經過調整以獲得最佳性能。模型具體介紹如下:
(1) 基于動態(tài)記憶網絡的DKVMN[11];
(2) 基于LSTM實現的DKT[10];
(3) 基于DKT的改進DKT+[27],加入了正則化項解決DKT預測的問題;
(4) 基于自注意力機制的SAKT[15];
(5) 基于CNN的CKT[14];
(6) 具有單調注意機制和基于Rasch模型題目表征的AKT[16];
(7) 基于DKT的NKTF_DKT;
(8) 基于SAKT的NKTF_SAKT;
(9) 基于CKT的NKTF_CKT;
上述所有模型都在帶有兩個2.30 GHz Intel(R) Xeon(R) Gold 5218 CPU資源和一個TeslaV100-SXM2-32GB GPU資源的Linux服務器上進行訓練。本文公開了NKTF 的源代碼(4)https://github.com/bigdata-ustc/EduKTM/tree/main/EduKTM/NKTF。
為了評估NKTF的有效性,本文將3個基于NKTF的模型與所有基線模型學生表現預測任務上進行比較,并在表2中列出了5折交叉實驗在測試集上的平均結果,其中基線模型的結果來源于本文基于基線模型開源代碼復現的實驗結果(5)AKT原文在ASSISTchall數據集中AUC為0.770 2,本文復現結果為0.764 3。原文在ASSISTchall數據集中AUC約為0.723,本文復現結果為0.722 1。這些復現差異主要源于數據預處理方式不同,不會影響本文提出方法的有效性。。為了提供可靠的評估結果,本文在所有實驗中都采用了四項評估指標: 均方根誤差 (RMSE)、ROC曲線下面積 (AUC)、準確度 (ACC) 和皮爾遜相關系數的平方 (r2),其中在計算準確度時將閾值設置為0.5。從表2中可以觀察到幾個重要的實驗結果。首先,受益于本文提出的通用題目表征學習,基線知識追蹤方法的效果得到了顯著的改進,并且擊敗了現有最優(yōu)的方法。其次,基線模型中不同的追蹤方法在性能上只有很小的差異,DKT中的LSTM略微優(yōu)于其他方法。此外,本文注意到基于自注意力機制的知識追蹤模型,如SAKT和AKT,不擅長處理ASSISTchall數據集中的較長學習交互序列,其原因是這些模型對學習交互中關鍵的序列信息不敏感。
表2 學生表現預測結果比較
續(xù)表
本節(jié)進行了更多的實驗來展示NKTF在知識追蹤過程中學習到的通用題目表征的可解釋性。具體來說,本文首先隨機在數據集NeurIPS_EDU2020上選擇八個具有不同知識點和難度的題目。如圖5所示,本文計算并可視化了這些題目之間的余弦相似度相關權重。從圖3中可以看到,經過足夠的訓練,NKTF學習到的題目表征,反映出了不同題目的知識點、難度和個體特征。圖3清楚地表明,具有相同知識點的題目或難度更接近的題目之間的相關權重往往更高。然后,本文首先隨機選擇50個不同的知識點和10個不同的難度,在數據集ASSISTchall 上構建500個不同的題目。然后利用T-SNE方法[28]將這些題目的表征向量投影到二維空間,并使用K-means聚類將它們分成10個類別,如圖6所示??梢钥吹?,聚類結果顯示出很好的可解釋性, NKTF學到的題目表征向量可以清楚地分為10個類別不同的難度級別。
圖5 數據集NeurIPS_EDU2020上不同知識點和難度的題目之間的相關權重可視化標簽(i,j)表示題目的知識點為i,難度為j,其中較大的j表示更難的題目
圖6 數據集ASSISTchall上500個題目表征向量的聚類結果這些題目由50個不同的知識點和 10個不同的難度級別組成
為了進一步驗證本文提出的包含知識點、難度等顯性特征和題目獨有隱性特征的通用題目表征的有效性,本文進一步在表現最好的NKTF_DKT模型上進行了消融實驗。實驗在ASSIST2012和ASSISTchall兩個數據集上進行,實驗結果如表3所示。從表中可以看出,當訓練數據足夠的時候,NKTF可以在知識追蹤的過程中同時學習到有意義的顯性特征和隱性特性,在ASSISTchall上使用兩種特征可以得到最好的表現。當題目數量太多或者訓練數據不足的時候,NKTF無法學到有效的隱性特征,在ASSIST2012數據集上,單獨使用顯性特征可以得到最佳表現,加入隱性特征反而使得預測的準確率略微下降。因此,在實際運用中,應當根據數據集的具體情況決定題目表征是否需要包含隱性特征。
表3 NKTF_DKT消融實驗結果對比
在圖7中,本文給出了數據集ASSIST2012里一個學生具體的知識追蹤過程。在該學生回答18個不同題目的過程中,本文使用NKTF_DKT追蹤了他/她不斷演變的知識狀態(tài)。從這個案例中,可以更好地理解本文提出的題目表征在知識追蹤過程中發(fā)揮的重要作用。例如,學生在知識點為49: 實數排序、難度為0.25的練習中得到了正確答案,但未能正確回答具有相同知識點但難度更大 (0.55) 的題目。同樣,他/她在知識點為45: 正小數排序、難度為0.38的題目中得到了錯誤的答案,但仍能夠正確回答具有相同知識點但更簡單(難度值為0.13)題目。通過兼顧題目的知識點和難度,本文可以更加準確快速地評估學生的知識熟練程度。
圖7 ASSIST2012數據集上學生在具有不同難度級別的五個知識點上知識狀態(tài)的追蹤過程其中難度值已歸一化到0到1之間,數值越大代表難度越大
本文梳理了目前知識追蹤領域追蹤方法驅動和題目表征驅動的兩類模型,發(fā)現了題目表征驅動的知識追蹤模型事實上更能有效地提升知識追蹤的效果。針對目前知識追蹤中簡單的基于知識點的題目表征以及復雜的基于預訓練的題目表征中存在的問題,本文提出了一種通用的題目表征方法,利用知識點、難度等顯性特征和題目獨有的隱性特征來完整地表示題目,并且將題目表征學習融入知識追蹤過程,構建了融合通用題目表征學習的神經知識追蹤框架。實驗證明,本文方法可以在知識追蹤過程中自動學習到精確有效的題目表征,并且大幅度提高了基線知識追蹤模型在學生表現預測任務上的性能,超過了當前最優(yōu)的結果。
在未來的工作中,我們將繼續(xù)探究更好地結合題目表征學習和知識追蹤任務,例如,針對性地構建多任務學習框架更好地完成題目表征學習和知識追蹤。此外,可以嘗試將學習到的題目表征運用在題目屬性標注、質量預測等任務上。