方寒月,曹浪財
(廈門大學航空航天學院,廈門市大數據智能分析與決策重點實驗室,福建廈門361005)
認知診斷是智慧教育中的一個基本問題,旨在發現考生對特定知識點的掌握程度[1-2],圖1展示了一個認知診斷的示例.通常,考生完成試題(e.g.,e1,e2,e3)并留下他們的回答(e.g., 對或錯).接著,我們的目標是依據該答題記錄推斷出考生對試題中知識點的實際掌握程度.這些診斷報告可以用于預測考生的試題得分,為后續的個性化補救和教學計劃改進提供幫助.目前關于認知診斷的研究主要集中在試題所考察的多個知識點之間的相互作用上[3-4].同時,越來越多的研究人員正在將神經網絡應用于認知診斷工作中[5-6],且已證實效果遠優于傳統認知診斷方法.其具體做法是使用神經網絡代替傳統認知診斷模型中的函數關系.
現有的認知診斷工作主要存在以下兩個問題:1) 客觀題和主觀題的差異尚未得到充分研究[7-8].客觀題以完全正確或完全錯誤的方式評分,而主觀題的評分卻可以是部分正確的.顯然,考生在回答主觀題時,很難通過猜測答案而得到正確的回答,或者因為粗心而得到錯誤回答,主觀題可以更好地衡量考生對試題的實際掌握程度.因此,同時處理客觀題和主觀題中的信息是非常有必要的,而不是將主觀題視為客觀題來處理[9].2) 現有基于深度學習的認知診斷模型雖然準確性較高,但是不能清晰地診斷出不同考生對同一知識點的掌握程度差異,可解釋性相對不足[5-6].此類模型以神經網絡的嵌入層表示考生和試題,并使用考生和試題嵌入向量的差值作為網絡的輸入,實現對考生的診斷.為了充分地利用考生和試題嵌入向量的信息,模型通常選擇sigmoid或tanh作為激活函數.但是隨著網絡層數的加深,使用上述激活函數會導致梯度消失的問題[10-11],使得模型無法清晰學習出考生的嵌入向量表示,不能有效診斷出不同考生對同一知識點的掌握程度.

圖1 認知診斷示例Fig.1The example of cognitive diagnosis
針對上述問題,考慮到主觀題和客觀題觀測到的得分類型是不同的,以及梯度消失造成的考生嵌入向量的不充分學習,本文首先提出了一種基于層次觀測的認知診斷框架(hierarchical observational-based cognitive diagnosis framework,HoCDF).HoCDF是一個以三層框架(知識點掌握程度、試題掌握程度、試題觀測分數)來模擬生成試題預測分數的逐級過程.然后采用了受神經網絡啟發的解決方案來處理這個三層框架中的層次關系,圍繞主觀題和客觀題信息的差異,從觀測角度實現對不同試題類型的聯合建模;接著,HoCDF通過增加不含激活函數的單層網絡作為額外通路,緩解了模型的梯度消失,提高了對考生嵌入向量的學習效果,更加充分地診斷出不同考生對同一知識點的掌握程度,從而提高模型的可解釋性及性能表現;最后,對考生成績的預測驗證了HoCDF的有效性.
本研究中假設在學習系統中有N個考生、M個試題和H個知識點,可以表示為S={s1,s2,…,sN},E={e1,e2,…,eM}和K={k1,k2,…,kH}.其中,小寫字符表示任一個元素,大寫字符表示元素的總數(e.g.,n表示第n個考生,N表示考生總數).HoCDF定義了一些具體的符號用來支撐整個框架的實現.
θnh表示考生sn對知識點kh的掌握程度,cmh表示試題em中知識點kh的難度水平,ρnm表示考生sn對試題em的掌握程度,Rnm表示考生sn在試題em上的觀測分數.
此外使用矩陣Q=(Qmh)M×H表示試題em與知識點kh的關系.其中Qmh=1表示試題em與知識點kh有關,Qmh=0表示試題em與知識點kh無關(通常由教育專家標記).HoCDF借助考生的分數和Q矩陣,挖掘考生對知識點的掌握程度.
假設1考生在主觀題和客觀題上的得分,是對試題掌握程度的不同觀測結果,與客觀題相比,考生對主觀題的得分應更接近于考生對試題的實際掌握程度.
通常,考生對試題的掌握程度越高,考生在試題上的得分就越高.但是由于客觀題和主觀題的評分方式不同,相同的試題的掌握程度,考生在主客觀題中卻可能獲得不同的分數.如圖2所示,同一道試題分別設計成客觀題和主觀題,理論上考生對這兩道試題應當有同樣的掌握程度.實際情況是:客觀題的分數是一個二分類的結果(完全正確或者完全錯誤),而主觀題卻可以是正確的、錯誤的或者部分正確的.因此考生在對試題的掌握程度相同的情況下,主觀題可以更好地衡量考生對試題的實際掌握程度. (e.g., 當考生答案為30(m),在客觀題中考生往往獲得0分.而在主觀題中,由于成功列出表達式,將得到部分分數).

圖2 客觀題和主觀題的示例Fig.2An example of objective and subjective problems
假設2增加不含激活函數的單層網絡作為額外通路,可以緩解梯度消失造成的考生嵌入向量的不充分學習.
現有基于深度學習的認知診斷模型通常使用考生和試題嵌入向量的差值作為網絡輸入,為了保證對輸入的正負進行激活,以及對稱性,模型通常選擇了sigmoid作為激活函數,但是隨著網絡層數的加深,上述激活函數將會導致梯度消失的問題[10-11],使得考生的嵌入向量不能得到充分學習.為此,本文在現有的認知診斷網絡模型的基礎上,增加了不含激活函數的單層網絡作為額外通路.由于該單層網絡不含激活函數,并且直接連通嵌入層和輸出層,避免了由于激活函數導致的梯度消失,因此增加不含激活函數的單層網絡作為額外通路,可以提高對考生嵌入向量的學習效果,可以更加充分地診斷出不同考生對同一知識點的掌握程度差異.
基于上述兩個假設,構建的HoCDF如圖3所示,整個框架關聯了考生因素(知識點掌握程度)、試題因素(知識點難度、試題掌握程度、試題觀測分數構成)以及交互函數(神經網絡)3個部分.
2.1.1 考生因素
HoCDF使用向量來描述一個考生對不同知識點的掌握程度,即知識點掌握程度向量.向量中的每一個維度的數值都在[0,1]之間,表示考生對一個知識點的掌握程度.例如sn=(0.3,0.7)表示考生對第一個知識點掌握程度較差,對第二個知識點掌握程度較好.
2.1.2 試題因素
HoCDF使用向量來描述一道試題中不同知識點的難度,即試題難度向量.向量中的每一維度的數值都在[0,1]之間,表示一個知識點的難度.例如:em=(0.2,0.8)表示第一個知識點的難度較低,而第二個知識點難度較高.試題掌握程度表示考生對試題的實際掌握情況,且為一個連續值([0,1]).試題觀測分數表示試題的得分,在客觀題中為二分類的值({0,1}),在主觀題中為連續值([0,1]).
2.1.3 交互函數
針對上述的考生因素和試題因素,層次認知診斷框架需要擬合以下3層關系以實現假設1:
·考生知識點掌握程度向量sn和試題掌握程度ρnm的關系.
·試題掌握程度ρnm和試題觀測分數Rnm的關系.
·客觀題和主觀題之間的關系.
為此需要通過設計交互函數去實現這一目的.但是由于無法直接觀測到考生的知識點掌握程度以及試題掌握程度,因此通過設計具體的函數去探究這一關系是一個非常復雜的問題.然而神經網絡近似連續函數的能力已經在許多領域得到證明[12-13],針對本文中的假設1,通過神經網絡作為交互函數,將sn、ρnm及Rnm設置為網絡中關鍵節點,從而搭建出特定的網絡結構,從數據中有效地學習出上述三層關系.

圖3 基于層次觀測的認知診斷框架Fig.3Hierarchical observational-based cognitive diagnosis framework
如圖4所示,基于HoCDF,本文從觀測角度實現不同試題類型的聯合建模,實現了一個具體的層次觀測認知診斷模型.

圖4 基于層次觀測的認知診斷模型Fig.4Hierarchical observational-based cognitive diagnosis model
每個考生是由H個知識點組成的特征向量,并使用sn表示,sn的每一維表示考生對某一知識點的掌握程度θnh:
sn=sigmoid(Xs×A),
(1)
其中,sn∈(0,1)1×H,Xs∈{0,1}1×N,A∈RN×H,Xs表示學生One-hot,A表示學生嵌入向量矩陣.
試題因素包括試題知識點向量Qm,知識點難度cmh.試題知識點向量Qm的每一維表示試題中是否考核該知識點:
Qm=sigmoid(Xe×Q),
(2)
其中,Qm∈{0,1}1×H,Xe∈{0,1}1×M,Q=RM×H,Xe表示試題One-hot.
每道試題由一個特征向量em表示,em的每一維表示知識點的難度cmh:
em=sigmoid(Xe×B),
(3)
其中em∈(0,1)1×H,Xe∈{0,1}1×M,B∈RM×H,Xe表示試題One-hot,B表示試題嵌入向量矩陣.
為了對神經網絡的輸入層建模,受NeuralCD[5]的啟發,將網絡的輸入層表示為:
X=Qm·(sn-em),
(4)
其中·表示逐點乘積.
以下是4個神經網絡全連接層(其中f4為增加的不含激活函數的單層網絡),連接在輸入層之后:
(f1=φ(W1XT+b1),
f2=φ(W2f1+b2),
f3=φ(W3f2+b3),
f4=W4XT+b4,)
(5)
其中φ是激活函數,并且W4的維度固定為知識點的數量H.
在生成考生分數的過程中,主客觀題共享隱藏層f1,f2,f3和f4.接下來,將進一步生成試題掌握程度以及主觀題分數:
ya=ρnm=f5=φ(0.5(f4+f3)),
(6)
其中φ是激活函數,ya表示主觀題的預測分數Rnm,ρnm表示試題掌握程度.
為了充分應用假設1,本文中采取了極限情況,即認為試題掌握程度與主觀題觀測分數是一致的.然后,通過同時使用隱藏層和輸出層,進一步模擬從試題掌握程度ρnm獲得客觀題分數的過程:
f6=φ(W5f5+b5),
f7=φ(W6f6+b6),
(7)
yb=φ(W7f7+b7),
其中,φ是激活函數,yb表示客觀題的預測分數Rnm.
單調性假設[5,14]可以用來確保對考生和試題因素的可解釋性.為了使模型滿足該假設,本文采用了一個簡單的策略:將W1,W2,W3,W5,W6,W7的每個元素限制為正[5].HoCDF的損失函數結合了均方誤差和交叉熵損失函數:


(8)
其中:ma表示主觀題數量,ra表示主觀題的真實標簽,mb表示客觀題數量,rb表示客觀題的真實標簽,ya和yb分別表示主觀題和客觀題的預測分數.訓練后,sn和em的維度值分別表示考生的知識點掌握程度θnh和知識點難度cmh.HoCDF的算法示例如算法1所示.
算法1HoCDF
輸入:Q矩陣,試題one-hot,考生one-hot
輸出:考生向量sn,試題向量em,試題預測分數ya和yb
1. 初始化考生矩陣A,試題矩陣B
2. for all (sn,em)∈訓練集do
3. for = 1, 2, …, 32 do
4. 根據式(1)~(3)計算sn,Qm,em
5. 根據式(4)對神經網絡的輸入層X進行建模
6. 將X輸入神經網絡,根據式(5)和(6)建模試題掌握程度ρnm
7. ifem∈主觀題then
8. 根據式(6)預測主觀題分數ya
9. else
10. 根據公式7預測客觀題分數yb
11. end if
12. end for
13. 根據式(8),分別使用反向傳播算法更新網絡參數
14. end for
15. return考生向量sn,試題向量em,試題預測分數ya和yb
模型由PyTorch使用Python實現,并在具有Corei9-10900K 3.7 GHz、RTX3090GPU和128 GB內存的Linux服務器進行了一系列的實驗以評估所提出的模型.
實驗在兩個真實世界的數據集[4]上進行,這兩個數據集來自于高中考生的兩個期末數學考試,每個數據集由一個分數矩陣和一個由教育專家給出的Q矩陣表示.數據集的構成如表1所示.圖5是Q矩陣的預覽,展示了試題中的知識點分布情況.為了觀察模型在不同稀疏性水平下的性能表現.本文構建了不同大小的訓練集,分別占每個考生得分數據的80%、60%、40%和20%.

表1 數據集的相關統計

圖5 Q矩陣預覽Fig.5A preview of the Q-matrices

由于無法觀測到考生對知識點的實際掌握程度,通過預測考生在每個主觀題和客觀題上的得分驗證HoCDF的有效性[16].使用的評價指標是平均絕對誤差(mean absolute error,MAE)和均方根誤差(root mean square error,RMSE).選擇三種機器學習方法和兩種深度學習方法作為基線方法:
1) IRT(item response theory)[17]是一種教育心理學中對考生建模的方法.它是一種模擬考生的潛在特征、試題難度和試題區分度的認知診斷方法.
2) DINA(deterministic input,noisy and-gata)[18]是一種經典的認知診斷模型.在Q矩陣的幫助下,DINA通過考慮失誤和猜測的因素,對考生的知識點掌握情況和試題進行建模.
3) NMF(non-negative matrix factorization)[19]是一個潛在的非負因子模型.該方法可以實現對考生潛在能力的建模.
4) DeepFM(factorization-machine based neural network)[20]基于因子分解機和前饋神經網絡進行知識點間的交互,以實現對考生成績的預測.
5) NeuralCD(neural cognitive diagnosis)[5]是利用神經網絡捕捉考生與試題之間的關系,從而診斷考生的知識點掌握程度.
本文首先將HoCDF與其他用于考生建模的基線方法比較,以驗證模型的綜合性能.接著,分別進行了HoCDF對客觀題和主觀題的預測,以展示模型對主客觀題預測的性能.然后,在模型內進行消融實驗以驗證文中提出的假設的有效性.接著,通過展示考生在各個知識點上的掌握程度分布的箱型圖,驗證模型可以更加清晰地診斷出不同考生對同一知識點的掌握程度差異.最后通過案例分析說明模型的可解釋性和準確性.
3.4.1 不同數據集比例下的預測性能
下面將展示每個模型在不同數據集比率方面的有效性,誤差條是每個模型的5次評估運行的標準差.圖6顯示了所有模型在預測考生成績任務上的實驗結果.首先可以觀察到:HoCDF在兩個數據集上MAE均優于其他基線方法,RMSE優于大部分基線方法,驗證了HoCDF的有效性.與DeepFM相比,隨著訓練數據的增加,本文提出的模型可以得到更加充分的訓練.其次,盡管模型是基于神經網絡來捕捉考生與試題之間的交互作用,但是當訓練數據稀疏時,HoCDF保持了良好的預測性能.接著,雖然DeepFM通過深度學習利用了考生的潛在特征和試題的語義特征,但HoCDF(忽略語義特征)在不同的測試集比率下優于競爭方法.最后,深度學習方法明顯優于傳統方法,但不同的深度學習方法在RMSE方面的性能是相近的.

圖6 不同數據集比率下的預測性能Fig.6Prediction performance with different dataset ratios
3.4.2 客觀題和主觀題的預測性能
為了檢驗該框架對客觀題和主觀題的預測效果,在20%的測試比例下進行了實驗,誤差條是每個模型的5次評估運行的標準差,實驗結果顯示在圖7中.與基線方法相比,HoCDF在主觀題和客觀題上均取得了較好的預測性能.與NeuralCD相比,模型對于主觀題和客觀題的預測性能均得到了明顯提升,并且針對主觀題的預測性能更加優越,主要是由于HoCDF區分了主觀題和客觀題的差異.
3.4.3 消融實驗
為了驗證假設1和假設2的有效性,本文進行了一組消融實驗,設置了3個對照組:剔除假設1、剔除假設2以及同時剔除兩種假設的基線組,并以“HoCDF-假設1”、“HoCDF-假設2”和“HoCDF-假設1,2”表示.為了剔除假設1,文中將主觀題視為客觀題來處理(將部分正確的回答標記為錯誤[4]).為了剔除假設2,對照組剔除了不含激活函數的單層網絡.
實驗結果如圖8所示,相較于同時剔除兩種假設的基線組,通過分別增加不同假設,模型在不同比例的訓練集下預測考生成績的性能均得到了提升.但是在MAE指標上,相較于HoCDF,假設2對模型的性能已經無法造成較大影響,模型性能已達上限.

圖7 客觀和主觀試題的預測性能Fig.7Prediction performance for objective and subjective problems

圖8 消融實驗Fig.8Ablation experiment
3.4.4 考生在各個知識點上的掌握程度分布
在上一節中已經展示假設1和假設2對模型性能的影響.然而通過增加額外的單層網絡,主要是為了提高對考生嵌入向量的學習效果,從而更加充分的診斷出不同考生對同一知識點的掌握程度差異.為此,本文在20%的測試比例下進行了實驗,并在圖9中展示了所有考生在各個知識點上的掌握程度分布的箱型圖.

圖9 考生在各個知識點上的掌握程度分布Fig.9The distribution of examinees’ proficiency of each knowledge concept
如圖9所示,在剔除假設2后,考生對各個知識點的掌握程度分布在一個較小的區間內,考生的能力波動較小.顯然無法清晰地區分不同考生對同一知識點的掌握程度差異,這使得模型并沒有充足的可解釋性.通過增加假設2,考生對各個知識點掌握程度的分布區間均得到了不同程度的提升.因此,HoCDF可以提高對考生嵌入向量的學習效果,更加清楚地區分不同考生對同一知識點的掌握程度差異.因此基于神經網絡的認知診斷模型的可解釋性得到了一定程度的提升.
3.4.5 案例分析
圖10給出了HoCDF診斷報告的具體案例分析.案例分析表明,HoCDF可以給出考生對知識點的具體掌握程度并清晰地區分出考生對知識點的掌握程度和知識點難度之間的差異性.

圖10 HoCDF案例分析Fig.10Case study for HoCDF
進一步分析了考生的答題記錄可知,考生的知識點掌握程度達到了e1、e6中各知識點的難度要求.但是僅部分滿足e20中的知識點的難度要求.從圖中可以看出,當考生的知識點掌握程度滿足了試題的要求時,他更有可能做出正確的反應,可見本文的模型具有較強的可解釋性.根據診斷結果,考生可以更好地掌握其現狀,幫助教師給出個性化的補救建議以及設計有針對性的教學計劃.
認知診斷旨在發現考生對特定知識點的掌握程度,從而實現對考生成績的預測.然而,目前關于認知診斷的研究主要集中在試題中所考察的多個知識點之間的相互作用上,并沒有充分探索試題類型之間的差異,而基于深度學習的認知診斷模型往往不能清晰地診斷出不同考生對同一知識點的掌握程度差異.HoCDF通過觀測得分的差異性區分主觀題和客觀題,從而實現不同試題類型的聯合建模,并且通過增加不含激活函數的單層網絡作為額外通路,更加充分地診斷出不同考生對同一知識點的掌握程度差異.HoCDF的性能遠優于其他考生建模方法,不僅能成功診斷出考生對知識點的掌握程度,而且可以更加有效地實現考生成績預測.本文提出的方法沒有對知識點進行特殊處理,可以進一步考慮有針對性地構建知識點之間的關系圖,用以提高模型的有效性.