丁澤元,梁嘉輝,張云飛,郝 飛,李 鵬,郭龍江
(陜西師范大學 計算機科學學院,陜西 西安 710119)
認知診斷是指對個體知識結構、加工技能或認知過程的診斷評估[1],主要應用在游戲、教育、醫療診斷等領域,其中在智慧教育領域應用最為廣泛[2]。認知診斷對傳統考試的測驗與評價體系進行了改進,它旨在探究學生在學習過程中的狀態。通過分析學生的答題記錄和試卷信息,推斷出學生當前的知識狀態,進一步得到學生對知識點的熟練程度,進而全方位地對被測者認知的長處與不足進行評估和診斷,以達到具有針對性地促進被測者全面發展的目的。
具體過程如圖1所示。

圖1 認知診斷過程
學生選擇一組練習(例如,e1,…,e4),之后寫下他們的答案(例如,對或錯)。然后,根據相應的概念(例如線性代數)來推斷他們的實際知識狀態以及掌握程度。可以看到,e1-e4每個題目都對應知識點相關內容,可以看到這個同學e1題目作對了,那么在診斷報告中會認為這位同學對于e1所考察的線性代數的掌握度比較高,若e3題目做錯了,那么就會得出學生對操作系統、數據結構和高等數學掌握的不夠好。
該文從ASSISTments 2009-2010 Skill-builder data數據集獲得了346 860條樣本,首先進行數據預處理;其次通過特征選擇選出有助于認知診斷任務的特征;由于IRT和DINA模型分別是最為典型的連續型和離散型認知診斷模型,因此二者能較好表征出傳統認知診斷模型的特點。MIRT是IRT模型最具代表性的變體,體現了認知診斷由僅關注學生的單一維度的能力到聚焦學生多維能力的視野變化,是認知診斷領域發展的一個重要里程。而NeuralCD模型是認知診斷領域最新的產物,它以人工神經網絡為基礎,體現了認知診斷領域與深度學習領域的進一步緊密結合,是認知診斷領域發展的又一重要里程。因此,該文選用了這4個模型,以Precision,Recall,F1_score和Accuracy作為模型認知準確度的誤差分析指標,并比較了不同模型的可解釋性。最后,分析了比較結果并總結了不同模型在現代智慧教育中的適用場景,為認知診斷研究提供了新視角。
17世紀,真分數理論開始萌芽,這也是經典測量理論(CTT)的前身[3]。1904年,C.Spearman提出對于測量誤差引起的衰減的相關系數的校正思路[3],正式標志著經典測量理論的誕生。迄今為止,經典測量理論仍是最為廣泛的一種測量理論。
1972年,Cronbach提出了概化理論(GT)[3]。它綜合使用方差分析模型等統計方法在一定范圍內對誤差進行控制,提高了測量的可信度。相比CTT,GT可以更加有效地去提升測量精度與準確性。
1951年,F.Lord發表的博士論文《A Theory of Test Scores》標志著IRT理論的誕生[3]。同時期,丹麥數學家G. Rasch提出了IRT的函數形式和單參數模型。而在隨后的30年中,F.Lord依次提出IRT的雙參數模型和三參數模型[3],并最終于1980年出版了《Applications of Item Response Theory to Practical Testing Problems》,完善了整個IRT理論的框架,使得IRT理論與CTT,GT并列為教育測量領域最為重要的三大理論。
隨著現代教育技術水平的精進,Frederiksen等人于1993年在《Test Theory for a New Generation of Tests》中提出了新一代測量理論的概念,并將CTT,GT和IRT都歸為標準測量理論的范疇[4-5]。書中指出標準測量理論只會給被測者一個整體的能力水平測量及評估,缺乏對被試者心理認知能力的研究。而新一代測量理論同時兼具整體診斷和細節分析、囊括能力水平測量和認知水平評估。時至今日,新一代測量理論已然演變為認知診斷。
現有的認知診斷研究主要分為三大類:基于傳統的認知診斷角度、基于數據挖掘角度以及基于人工神經網絡。
基于傳統的認知診斷角度的模型的主要特點是將學生回答練習的結果建模為學生的特質特征和練習之間的交互作用。此類模型由原始的IRT模型和DINA模型,衍生出了MIRT等一系列新模型。其中,IRT屬于能力水平研究范式,強調整體的能力水平測量及評估;而DINA和MIRT屬于認知水平研究范式,強調理解個體心理層面的認知加工過程和對被試的認知狀態做出詳細分析。
近年來,一些基于數據挖掘角度的認知診斷方法發現了矩陣分解在認知診斷中的可行性與適用性。學生在矩陣分解中被認為是用戶,而習題對應于矩陣分解中的項目。如Thai-Nghe等人[6]在教育背景下應用了矩陣分解等技術實現了推薦系統,并與傳統的回歸方法進行了比較。Thai-Nghe等人[7]提出了一種多關系因子分解方法用于智能輔導系統中學生建模。Liu等人[8]為平衡模型的認知準確度和可解釋性,以矩陣分解為基礎提出了同時考慮主觀和客觀測驗類型的FuzzyCDF。然而矩陣分解獲得的潛在特質向量中的元素與特定知識概念之間沒有明確的對應關系,因此并不能推斷出學生對于知識點的掌握情況等信息。
基于人工神經網絡的認知診斷技術主要有深度知識追蹤(DKT)以及神經認知診斷等模型。深度知識追蹤[9]對學生的學習過程進行建模,繼而跟蹤學生知識狀態的動態變化。然而,DKT更多的是預測下一時刻學生答對各道題目的概率,并不區分試題本身與其蘊含知識點,因此DKT并不適合直接用作認知診斷方法。而對于NeuralCD這一模型在后續的2.4節中會詳細介紹。
項目反應理論是用來分析考試成績的標準測量檢驗模型。IRT基于3個基本假設建立了項目性能、被試潛在特質水平與項目應答正確概率之間的關系[10]。相比CTT,IRT是非線性的概率模型,因此它對被試者的分析、對測試項目的分析更加細致與具體,常被視為CTT的升級。
IRT的3個假設如下:
單維性假設:假設某個試題只測量學生的某一種能力。
獨立性假設:假設學生在每一個試題上的作答反應是相互獨立的,且作答反應只與學生自身的能力水平有關,與其他因素無關。
模型假設:學生在測驗上的正確作答概率與被試的能力水平可以通過函數關系反應。
IRT的核心公式是:
(1)
此公式代表的含義是在當前的學生能力參數、試題區分度以及試題難度的情況下,學生做對該題的概率。其中,Xji代表第j位學生做對第i道題的概率;θj代表第j位學生的能力參數;αi代表第i道題的區分度;βi代表第i道題的試題難度。
隨著IRT模型較多地用于實踐,大家逐漸認識到IRT模型的單維性假設不符合現實場景:人們在完成某項測驗任務時需要多種能力去協調配合是吻合的,極少有測驗它只評定人們單維度的能力[11]。
因此,人們基于項目反應理論和因素分析理論發展出了多維項目反應理論。由于其兼備了項目反應理論和因素分析的優點,多維項目反應理論和認知診斷、計算機化自適應測量共同被看作是當代心理測量理論的3個重要的發展方向[12]。
實用性最好的Logistics多維項目反應模型的項目反應函數表達式為[13]:
(2)
其中,θi=(θi1,θi2,…,θik)表示學生i的第k維能力的向量;αj=(αj1,αj2,…,αjk)表示試題j在第k維的區分度的向量;dj表示和MIRT難易程度相關的參數,它雖和IRT模型的難度參數不同,但二者可以相互轉換;cj表示為試題猜測度參數。
DINA模型是一種典型的離散型認知診斷模型[14]。該模型結合Q矩陣,將學生看作一個多維的知識點掌握向量。DINA模型簡單,易于識別,且具有很好的模型擬合度,因此具有較好的發展趨勢[15]。
DINA模型也是一種潛在性分類模型,適合用于二值記分的項目評測,從而實現認知診斷[15]。該模型可以診斷被試者的認知屬性掌握的概率,相比其他復雜的、多參數的模型,DINA模型僅有兩項參數,即“失誤”和“猜測”。兩項參數所對應的數學符號為sj(學生熟練掌握了試題j所考知識點的情況下丟分的概率)和gj(學生在未掌握試題j所考知識點下得分的概率)。在已知學生i的知識點掌握情況的前提下,試題j成功答對的概率表達式如下所示:
(3)
其中,Yij表示學生i對試題j的作答情況;αi=(αi1,αi2,…,αik)表示學生i的知識狀態,k代表試題j所考察的知識點個數;Pj(αi)為學生i在知識狀態為αi的情況下正確作答試題j的概率;ηij代表學生i在試題j上面的潛在的作答情況[15]。
傳統的認知診斷不能具體清晰地捕捉學生與試題之間復雜的關系,比如IRT模型只能給出學生單一的能力值、DINA模型對知識點掌握程度的評價只有掌握和沒掌握[16]。
而神經認知診斷框架,通過將神經網絡用于比較復雜的非線性交互建模,避免了依賴人工定義的函數[2]的弊端。該文使用的NeuralCD模型通過將學生和試題投影到因子向量,使用多層建模去模擬學生回答試題這一復雜的交互,為了保證該神經網絡有良好可解釋性,引入教育理論中的單調性假設,從傳統的Q矩陣中去提取試題的因子向量,并通過使用全連接層去保證單調性。
認知診斷模型,通常需要考慮的因素有3個:學生、試題以及學生和試題之間的相互作用。NeuralCD框架的結構如圖2所示[1]。

圖2 神經認知診斷框架
對于學生的每一條做題記錄,使用對應學生和試題的獨熱編碼作為輸入。學生和試題的診斷因子被輸入進交互層。在框架的全連接層,假設在學生知識水平的任何維度上,正確回答練習的概率都是單調遞增(即掌握知識越多,答對概率越高)的單調性假設來保證框架的可解釋性。該框架的輸出為學生個體正確回答具體一道試題的概率.
(1)學生因素。
學生因素即每一位學生對每一個知識點的熟練程度(即掌握情況,不采用0/1值,而采用0-1之間的連續值),采用DINA模型中使用的方法,將[0,1]二值變為連續值[2]。
使用Fs向量來描述學生個體,Fs為知識熟練度向量,其中每一個元素都是連續的,表示具體學生對具體一個知識點的掌握程度。
(2)試題因素。
試題因素就是試題與知識點之間的關系和其他因素這兩類。試題和知識點之間的關系是考慮的最基本的因素,其每個元素對應著所診斷的目標的具體的知識點,即知識相關向量,用Fkn表示,它的維度和Fs是一樣的,表示試題與知識點之間的相關性。其他因素可以使用IRT模型和DINA模型中采用的因素,比如知識難度、試題難度和試題的區分度等。
(3)交互函數。
該文是通過人工神經網絡來獲得交互作用函數的,讓神經網絡從數據中去學習。神經網絡可以逼近任何連續函數并且其強大的擬合能力是可以捕捉到學生與試題因素之間的復雜關系的;其次,神經網絡的交互函數從數據中學習,使得該模型具有更好的通用性,可以廣泛應用推廣。
該模型的輸出公式表達為:
y=φn(…φ1(Fs,Fkn,Fother,θf))
(4)
其中,φi表示多層神經網絡的第i層,Fother就是指試題因素中的其他因素,θf表示為神經網絡交互層的模型參數。
數據集選用的是2009-2010 ASSISTment Skill Builder Data這個最經典的認知診斷數據集,由346 860條記錄以及student id,problem id,tutor mode,skill name,skill id等30個特征組成。
首先,對于數據集進行特征選擇:根據特征相關性,篩選出user_id,problem_id,skill_id和correct 4個特征,并建立4個特征之間的聯系。
接著,刪除了答題數過少的學生信息,因為學生答題數過少不能讓模型有效建立答題信息和能力水平之間的關系,從而無法正確對學生的知識點掌握情況做出合理診斷。
最后,將經過預處理的數據集按照7∶1∶2的比例劃分訓練集、驗證集、測試集。
(1)IRT模型訓練采用EM算法,對P(Xji=1 |θj,αi,βi)進行最大似然估計:
E步:根據當前的θ,α,β,求出似然函數的條件期望。
M步:根據E步給出的對數似然函數的條件期望,求出新的參數的值。
(2)模型輸入:訓練集。
(3)模型參數:學生個數、試題個數、迭代次數epoch、收斂條件ε。
(4)模型輸出:學生能力參數θ、試題區分度α、試題難度β。
(1)MIRT模型由學生個數、試題個數和試題維度這3個參數初始化而成。通過傳入的參數初始化生成2.2節所述的θi,αj,dj這3個向量,分別用θ,a和b來表示。輸出為:
(5)
其中,°表示哈達瑪積。
(2)模型輸入:訓練集。
(3)模型參數:用戶個數、題目個數、維度。
(4)模型輸出:被試者能力參數向量θ、試題區分度向量α和試題難度d。
DINA模型如圖3所示。

圖3 DINA模型
模型輸入:
(1)學生-試題矩陣Y(學生實際作答信息)。
(2)試題-知識點矩陣Q(試題所含知識點信息)。
模型輸出:學生-知識點矩陣A(記錄學生是否掌握知識點)。
NeuralCD模型如圖4所示。

圖4 NeuralCD模型
(1)學生因素。
每一位學生都用一個知識熟練度向量來表示,即上面提到的Fs是通過學生的獨熱編碼xs乘上一個可以訓練的矩陣A得到:
Fs=sigmoid(xs,A)
(6)
其中,Fs∈(0,1)1×k,xs∈{0,1}1×n,A∈Rn×k。
(2)試題因素。
對于每一道試題,Fkn知識相關向量是從傳統Q矩陣中獲取Fkn=xe×Q。
其中,xe∈{0,1}1×m是試題的獨熱編碼表示,Fkn∈(0,1)1×k。
其他因素采用:試題難度hdiff∈{0,1}1×k、試題區分度hdisc∈(0,1)。
hdiff=sigmoid(xe×B)
(7)
hdisc=sigmoid(xe×C)
(8)
其中,B∈Rm×k和C∈Rm×1。
(3)交互函數。
交互層的輸入受到MIRT模型的啟發,輸入為:
x=Fkn°(Fs-hdiff)×hdisc
(9)
接下來的兩個全連接層和最后的輸出層為:
f1=φ(W1×xT+b1)
(10)
f2=φ(W2×xT+b2)
(11)
f3=φ(W3×xT+b3)
(12)
其中,φ表示激活函數,這里采用sigmoid函數。
該文采用了一個比較簡單的方法來滿足單調性假設:就是限制W1,W2,W3的每個元素為正。
模型的損失函數采用輸出的預測值和真實值之間的交叉熵:
(13)
上述提到的A,B,C都是可訓練的參數矩陣,分別代表學生對知識點的掌握程度、試題和知識點的相關度和試題的區分度。
該文選用Precision,Recall,F1_score和Accuracy 4個指標作為模型誤差分析的評判標準:
(14)
(15)
(16)
(17)
其中,TP代表被模型預測為正類的正樣本,FP代表被模型預測為正類的負樣本,FN代表被模型預測為負類的正樣本,TN代表被模型預測為負類的負樣本。
圖5為4個模型在相同測試集上的Precision,Recall,F1_score和Accuracy。可以看出:

圖5 不同模型測試集結果展示
在Precision上:IRT>NeuralCD>MIRT>DINA;
在Recall上:NeuralCD>IRT>MIRT>DINA;
在F1_score上:NeuralCD>IRT>MIRT>DINA;
在Accuracy上:NeuralCD>IRT>MIRT>DINA。
綜合4個指標來看:
NeuralCD>IRT>MIRT>DINA
NeuralCD模型效果最好的原因是它采用神經網絡為核心結構,通過神經網絡強大的擬合能力使其能夠從數據中學到更為復雜且貼近現實的交互函數,因此它比其余3個模型具有更強的泛用性,也具有更強的擬合能力,效果也更好。
IRT模型是基于單維性假設和獨立性假設的,因此在該模型中得到的學生能力參數,是一個具體的數值,該數值僅描述的是當前學生在當前這一道試題上的能力。
MIRT模型是對IRT模型的一個擴展,因為在實際的認知診斷過程中,試題之間是存在關聯的。而要正確回答一道試題需要學生多方面能力間的相互作用。所以MIRT模型會得到的學生能力參數向量,表示該學生在多個維度上分別的能力值。
這兩個模型理論上只是根據我們訓練集的數據訓練得出學生的“能力值”,盡管MIRT模型可以將維度的大小定為總的知識點個數,但是并沒有體現出學生對于這個知識點的具體掌握程度。
而DINA和NeuralCD這兩個模型,加入了知識點和每一道試題之間的關系,即人工標注的Q矩陣(描述了每道試題考察了哪些知識點)。
DINA模型雖然引入了Q矩陣,但是從結果上來看,將學生對知識點的掌握程度進行0/1劃分,即對于一個知識點只有掌握和沒掌握這兩種情況。雖然有效解決了IRT模型和MIRT模型無法體現對知識點掌握情況的這一問題,但是最后體現的掌握情況過于絕對,不符合實際的教學評估標準。
最新提出的NeuralCD模型利于神經網絡的架構來進行認知診斷,但是NeuralCD模型與傳統的神經網絡認知診斷最大的不同在于它打破了神經網絡難以獲得可解釋性結果的特性。在輸入層中包含知識熟練度向量Fs和試題相關向量Fkn按元素相乘得到的結果,即保證Fs中的每一維和Fkn中對應維的知識點是相對應的,同時在連接層通過單調性假設使得可以輸出學生的知識掌握程度。
因此,從模型得到的結果的可解釋性角度來看,IRT模型和MIRT模型得到的結果僅僅是學生能力的描述,沒有引入試題和知識點的關系,因此并沒有體現出學生對知識的掌握情況。DINA模型雖然體現了掌握情況,但0/1描述過于絕對,不符合現實情況下對學生學習狀態的評估。而NeuralCD模型得到的學生認知狀態是用連續值進行描述,更加準確具體,具有高度的可解釋性。
所以在可解釋性上:
NeuralCD>DINA>MIRT>IRT
經過對4個模型的分析,得出以下結論:
(1)IRT模型、MIRT模型和DINA模型都是傳統的認知診斷模型,其中IRT模型和MIRT模型基于連續值,DINA模型基于離散值。而NeuralCD模型是基于神經網絡架構的。
(2)在交互函數上3個傳統認知診斷模型依賴于人工所定義的函數,采用邏輯回歸函數或者是向量的內積,而NeuralCD模型是通過神經網絡去學習數據,不再依賴于人工定義的交互函數。
(3)IRT模型和MIRT模型診斷的結果表現為學生的“能力”值。因為兩個模型并未引入Q矩陣,所以并不能準確體現出學生對知識點的掌握情況。
(4)DINA模型和NeuralCD模型引入Q矩陣后實現了學生對于知識點的掌握,但是DINA模型得到學生對于一個知識點掌握的結果只是0(未掌握)和1(掌握),而NeuralCD模型得到的結果是[0,1]這個區間內的值,符合現實教育中對于知識點的掌握是階段性的實際情況。
(5)將NeuralCD模型的Q矩陣變為一個等維度的單位矩陣,將多層神經網絡求和后再使用sigmoid函數激活,NeuralCD模型就變成了MIRT模型。
(6)IRT模型診斷的其實是學生的單一做題記錄,MIRT模型、DINA模型和NeuralCD模型診斷的是學生的多個歷史做題記錄,是多交互的診斷過程。
上述結論也并不表示NeuralCD模型就可以完全替代其它3個模型所具有的效果。從目前在教育領域的認知診斷來看,有整體的診斷,也存在對具體一個階段的診斷,因此,對于認知診斷模型的選取有如下建議:
(1)NeuralCD模型適合用于大樣本數據,是對學生之前歷史做題記錄的總結診斷,并且知識點覆蓋是較大的,全面的診斷工作。
(2)IRT模型適合用于在教育中對具體一個知識點相關的習題測試中,根據學生對習題回答的正確與否來估計學生在這一知識點上所具有的能力值。
(3)MIRT模型適合用于在知識點個數已知,考查學生在與這些知識點相關聯的習題中的作答情況,分析出學生在這幾個知識點上所具有的能力值。
(4)DINA模型適合用于對二值計分測驗進行認知診斷,如一場考試中的判斷題只有兩種答案的場景,用DINA模型可以獲得較高的認知準確度。
首先,介紹了認知診斷的基本概念、研究目的、歷史發展以及研究現狀;接著,基于研究開源的數據資料建立了IRT等4個認知診斷模型,并對4個模型在相同數據集上的認知準確度和模型可解釋性能力進行對比;最終,得出NeuralCD模型認知準確度最高且具有最好的可解釋性的結論。此外,通過調研和實驗總結出不同模型的適用場景,為認知診斷研究提供了新視角。
但是,該文僅研究了學生的答題準確率與學生能力水平以及題目信息的關系。未來,希望探究不同因素對學生知識點掌握程度的影響以及學生掌握知識點的普遍練習次數等,從多因素多角度進行認知診斷,推動認知診斷研究領域的發展。