王文濤,馬慧芳,舒躍育,賀相春
(1.西北師范大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,甘肅 蘭州 730070;2.西北師范大學(xué)心理學(xué)院,甘肅 蘭州 730070;3.西北師范大學(xué)教育技術(shù)學(xué)院,甘肅 蘭州 730070)
近年來,隨著在線評(píng)測(cè)OJ(Online Judge)系統(tǒng)[1]和大規(guī)模在線開放課程MOOC(Massive Open Online Course)[2]等平臺(tái)的日益普及,越來越多的學(xué)生能夠?qū)崿F(xiàn)在線自主學(xué)習(xí)。然而在線教育系統(tǒng)在帶來便利的同時(shí),其提供的海量學(xué)習(xí)資源往往使得學(xué)生在進(jìn)行自主學(xué)習(xí)時(shí)面臨諸多困難,例如學(xué)生如何在眾多學(xué)習(xí)資源中選擇最適合自身情況的資源,在線教育平臺(tái)如何為學(xué)生推薦一套個(gè)性化的學(xué)習(xí)資源等。隨著教育數(shù)據(jù)挖掘技術(shù)的迅猛發(fā)展,已有大量的致力于知識(shí)追蹤方法的研究工作。盡管這些方法取得了一定的效果,但其大多將知識(shí)點(diǎn)視為一個(gè)獨(dú)立的實(shí)體進(jìn)行建模,并且對(duì)于利用影響學(xué)生學(xué)習(xí)過程的復(fù)雜學(xué)習(xí)因素對(duì)知識(shí)點(diǎn)進(jìn)行上下文表示的研究還不夠充分[3]。
傳統(tǒng)知識(shí)追蹤方法主要基于概率模型對(duì)學(xué)生與習(xí)題之間的交互關(guān)系進(jìn)行建模,其中基于隱馬爾可夫模型的貝葉斯知識(shí)追蹤BKT(Bayesian Knowledge Tracing)方法[4]是最具代表性的知識(shí)追蹤方法之一,該方法構(gòu)建了學(xué)生認(rèn)知狀態(tài)的動(dòng)態(tài)變化過程,以監(jiān)測(cè)和估計(jì)學(xué)生掌握知識(shí)點(diǎn)的概率。然而,這類方法使用的交互函數(shù)高度依賴于領(lǐng)域?qū)<业娜斯ぴO(shè)計(jì),且忽略了學(xué)生的認(rèn)知遺忘因素,即認(rèn)為學(xué)生一旦掌握某個(gè)知識(shí)點(diǎn)后就不再遺忘。由于人類的知識(shí)及大腦具有天然復(fù)雜性,使用復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)來設(shè)計(jì)知識(shí)追蹤方法應(yīng)該更為合適,然而大多數(shù)現(xiàn)有方法的設(shè)計(jì)仍然是基于具有嚴(yán)格約束函數(shù)的一階隱馬爾可夫模型。隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,一些使用神經(jīng)網(wǎng)絡(luò)技術(shù)的方法對(duì)傳統(tǒng)知識(shí)追蹤方法進(jìn)行了改進(jìn),主要分為以下2類:
(1)省略專家標(biāo)注知識(shí)點(diǎn)的過程,即不使用習(xí)題與知識(shí)點(diǎn)之間的關(guān)聯(lián)信息而直接對(duì)學(xué)生知識(shí)狀態(tài)進(jìn)行估計(jì)。Piech等人[5]使用循環(huán)神經(jīng)網(wǎng)絡(luò)并結(jié)合學(xué)生歷史答題序列數(shù)據(jù)對(duì)學(xué)生與習(xí)題之間的交互關(guān)系進(jìn)行建模,提出了深度知識(shí)追蹤DKT(Deep Knowledge Tracing)方法,在不需要專家標(biāo)注習(xí)題與知識(shí)點(diǎn)關(guān)系的情況下,顯著提升了傳統(tǒng)BKT方法作答表現(xiàn)預(yù)測(cè)的性能。Zhang等人[6]在結(jié)合BKT和DKT兩者優(yōu)點(diǎn)的基礎(chǔ)上,將記憶增強(qiáng)網(wǎng)絡(luò)MANN(Memory-Augmented Neural Networks)應(yīng)用于知識(shí)追蹤問題,通過引入key-value存儲(chǔ)單元,提出了動(dòng)態(tài)鍵值記憶網(wǎng)絡(luò)DKVMN(Dynamic Key-Value Memory Networks for knowledge tracing)模型,以發(fā)現(xiàn)每個(gè)輸入習(xí)題的潛在知識(shí)概念,跟蹤學(xué)生對(duì)知識(shí)點(diǎn)的認(rèn)知狀態(tài)。
(2)盡管第(1)類方法在性能上優(yōu)于傳統(tǒng)知識(shí)追蹤方法,但是隨著對(duì)學(xué)生知識(shí)狀態(tài)結(jié)果的研究與分析不斷深入,發(fā)現(xiàn)由第(1)類方法估計(jì)出的學(xué)生知識(shí)狀態(tài)不具有可解釋性,并且領(lǐng)域?qū)<覙?biāo)注的習(xí)題與知識(shí)點(diǎn)間的關(guān)聯(lián)信息不容忽視。針對(duì)這些問題提出的方法被稱為第(2)類方法。Huo等人[3]認(rèn)為雖然諸如DKT和DKVMN等方法能夠自動(dòng)識(shí)別出習(xí)題考察的潛在知識(shí)點(diǎn),但卻不能保證識(shí)別結(jié)果比專家人工標(biāo)注的知識(shí)點(diǎn)更可靠,故在此基礎(chǔ)上對(duì)知識(shí)點(diǎn)進(jìn)行上下文化,提出了LSTMCQP(Long Short-Term Memory network using CQ-matrix and Personalization mechanism)方法。盡管該方法在對(duì)知識(shí)點(diǎn)的上下文表示上進(jìn)行了探索,但其效果對(duì)數(shù)據(jù)集較為敏感。
針對(duì)以上方法存在的問題,本文設(shè)計(jì)了基于上下文表示的知識(shí)追蹤方法KTCR(Knowledge Tracing via Contextualized Representations)。該方法既考慮了習(xí)題與知識(shí)點(diǎn)之間的關(guān)聯(lián)信息,又綜合考慮了學(xué)生在學(xué)習(xí)過程中的復(fù)雜學(xué)習(xí)背景對(duì)知識(shí)點(diǎn)基于上下文表示。首先,基于學(xué)生響應(yīng)數(shù)據(jù)及其在知識(shí)點(diǎn)上的綜合表現(xiàn)情況,設(shè)計(jì)一種對(duì)知識(shí)點(diǎn)基于上下文表示的方法,從而實(shí)現(xiàn)對(duì)知識(shí)點(diǎn)進(jìn)行上下文信息的嵌入;其次,利用基于上下文表示后的知識(shí)點(diǎn)對(duì)習(xí)題進(jìn)行有效表示,以實(shí)現(xiàn)習(xí)題向量的降維處理;最后,結(jié)合降維后的習(xí)題向量和學(xué)生歷史交互數(shù)據(jù),利用長(zhǎng)短期記憶LSTM(Long Short-Term Memory)網(wǎng)絡(luò)[7]對(duì)學(xué)生的知識(shí)狀態(tài)進(jìn)行追蹤。本文將所提方法應(yīng)用于4個(gè)真實(shí)數(shù)據(jù)集上,實(shí)驗(yàn)結(jié)果表明,本文所提方法能夠有效地對(duì)習(xí)題進(jìn)行嵌入表示,并且能較好地估計(jì)學(xué)生知識(shí)狀態(tài)。
設(shè)有N個(gè)學(xué)生,M道習(xí)題,K個(gè)知識(shí)點(diǎn),記學(xué)生集S={s1,s2,…,sN},習(xí)題集E={e1,e2,…,eM}和知識(shí)點(diǎn)集C={c1,c2,…,cK}。習(xí)題與知識(shí)點(diǎn)之間的關(guān)聯(lián)信息用二元矩陣QM×K來表示,矩陣中元素qmk表示第m道習(xí)題是否包含第k個(gè)知識(shí)點(diǎn)(包含為1,否則為0)。此外,學(xué)生的響應(yīng)數(shù)據(jù)(即歷史做題數(shù)據(jù))用矩陣RN×M表示,每一行表示學(xué)生在M道題上的交互情況(答對(duì)記為1,答錯(cuò)記為0,未交互記為-1)。因此,對(duì)于知識(shí)追蹤而言,其任務(wù)是預(yù)測(cè)在t+1時(shí)刻第i個(gè)學(xué)生將一道題回答正確的可能性,即P(yt+1=1|Ф,Q,R,C,E,S),其中Φ為模型的參數(shù)集合。
Figure 1 Framework of knowledge tracing based on contextualized representations method圖1 基于上下文表示的知識(shí)追蹤方法框架
隨著教育心理學(xué)領(lǐng)域的不斷發(fā)展,對(duì)認(rèn)知診斷評(píng)估方法的研究已經(jīng)成為近年來的研究重點(diǎn)?;趯W(xué)生在習(xí)題上的作答情況,認(rèn)知診斷方法可以對(duì)學(xué)生進(jìn)行個(gè)性化的認(rèn)知診斷建模。具體地,認(rèn)知診斷方法假設(shè)習(xí)題和知識(shí)點(diǎn)之間存在顯示關(guān)聯(lián),可以通過Q矩陣來刻畫這種相關(guān)關(guān)系,如表1[8]所示。
Table 1 Q matrix about the correlations between exercises and knowledge concepts
認(rèn)知診斷方法將學(xué)生的知識(shí)狀態(tài)分解為若干個(gè)具體知識(shí)點(diǎn),并通過學(xué)生的響應(yīng)數(shù)據(jù)和Q矩陣來評(píng)價(jià)學(xué)生對(duì)這些知識(shí)點(diǎn)的掌握程度[9]。由此可見,Q矩陣在認(rèn)知診斷評(píng)估方法中有十分重要的作用,使模型能夠?yàn)閷W(xué)生提供特定知識(shí)點(diǎn)上細(xì)粒度的診斷信息,具有非常重要的研究意義。然而,已有的一些知識(shí)追蹤方法,例如DKT和DKVMN等方法,摒棄了習(xí)題與知識(shí)點(diǎn)之間的關(guān)聯(lián)信息,利用模型自身得到習(xí)題的潛在知識(shí)點(diǎn),然而通過此種方式得到的知識(shí)點(diǎn)與學(xué)生知識(shí)狀態(tài)無法對(duì)應(yīng),導(dǎo)致最終得到的學(xué)生知識(shí)狀態(tài)不具有可解釋性。因此,將Q矩陣中習(xí)題和知識(shí)點(diǎn)之間的關(guān)聯(lián)信息引入知識(shí)追蹤方法中很有必要。
本文方法的框架如圖1所示:首先,通過學(xué)生響應(yīng)矩陣R和習(xí)題知識(shí)點(diǎn)關(guān)聯(lián)矩陣Q設(shè)計(jì)一種基于知識(shí)點(diǎn)上下文表示的計(jì)算策略,對(duì)Q矩陣進(jìn)行上下文表示,得到上下文化Q矩陣CQ(Contextualized Q-matrix);其次,利用CQ矩陣和學(xué)生響應(yīng)數(shù)據(jù)對(duì)習(xí)題進(jìn)行嵌入表示,從而在實(shí)現(xiàn)習(xí)題向量降維的同時(shí)豐富了其語(yǔ)義信息;最后,結(jié)合基于上下文表示的習(xí)題向量和學(xué)生歷史交互數(shù)據(jù),通過LSTM對(duì)所有學(xué)生的知識(shí)狀態(tài)進(jìn)行估計(jì),最終得到學(xué)生在所有知識(shí)點(diǎn)上的掌握狀態(tài)。為了描述清晰起見,表2集中給出了本文方法中涉及到的常用符號(hào)定義。
Table 2 Definition of commonly used symbols
不同于DKT和DKVMN直接利用學(xué)生在習(xí)題上的表現(xiàn)情況作為估計(jì)學(xué)生知識(shí)狀態(tài)的依據(jù),KTCR致力于綜合考慮學(xué)生在習(xí)題和知識(shí)點(diǎn)上的表現(xiàn)情況,以此將學(xué)生的客觀反饋與專家主觀標(biāo)注的知識(shí)點(diǎn)信息進(jìn)行融合。值得注意的是,“習(xí)題表現(xiàn)”與“知識(shí)點(diǎn)表現(xiàn)”是2個(gè)不同的概念。例如能夠正確回答考察了“相似三角形”相關(guān)習(xí)題的學(xué)生,在同時(shí)考察“相似三角形”和“勾股定理”相關(guān)的習(xí)題中卻可能出錯(cuò),這是由于“連接要求”[10],即學(xué)生必須掌握所有與習(xí)題相關(guān)的知識(shí)點(diǎn)才能正確回答該習(xí)題。因此,KTCR不僅考慮了學(xué)生在習(xí)題上的表現(xiàn)情況,同時(shí)還計(jì)算了學(xué)生在知識(shí)點(diǎn)上的表現(xiàn)情況。而隨著學(xué)生交互的習(xí)題數(shù)量的增加,其在知識(shí)點(diǎn)上的表現(xiàn)情況會(huì)有所波動(dòng),造成這種波動(dòng)的原因可能是學(xué)生的復(fù)雜學(xué)習(xí)背景,例如習(xí)題難度、教學(xué)相關(guān)的因素以及習(xí)題與其他知識(shí)點(diǎn)的關(guān)聯(lián)等。然而,由于對(duì)這些復(fù)雜學(xué)習(xí)背景的建模十分困難,本文并非試圖去識(shí)別和建模每一個(gè)學(xué)習(xí)背景,而是將其視為一個(gè)復(fù)合結(jié)果,即上下文。
為此,本節(jié)通過學(xué)生響應(yīng)矩陣和習(xí)題知識(shí)點(diǎn)關(guān)聯(lián)矩陣Q設(shè)計(jì)一種知識(shí)點(diǎn)上下文計(jì)算策略,以此實(shí)現(xiàn)Q矩陣的上下文表示,得到上下文化后的Q矩陣,即CQ矩陣。具體地,首先考慮所有學(xué)生交互過的習(xí)題數(shù)量,用集合e(s)表示,即e(s)={e(s1),e(s2),…,e(sN)};其次考慮所有學(xué)生與考察了第l個(gè)知識(shí)點(diǎn)的習(xí)題的交互數(shù)量,用集合el(s)表示,即el(s)={el(s1),el(s2),…,el(sN)},故第i個(gè)學(xué)生在考察了第l個(gè)知識(shí)點(diǎn)的習(xí)題中,其答題正確率accl(si)如式(1)所示:
(1)
其中,I(·)為指示函數(shù),當(dāng)滿足條件“·”時(shí)函數(shù)值為1,否則為0。故第l個(gè)知識(shí)點(diǎn)的上下文因子如式(2)所示:
(2)
其中,σ[·]為sigmoid函數(shù)。接著由Q矩陣和知識(shí)點(diǎn)上下文因子可得CQ矩陣,如式(3)所示:
CQ[:,l]=δl×Q[:,l]
(3)
其中,列向量CQ[:,l]為CQ矩陣中的第l列,列向量Q[:,l]為Q矩陣中的第l列。
因此,借助于知識(shí)點(diǎn)上下文因子,實(shí)現(xiàn)了從Q矩陣到CQ矩陣的上下文表示轉(zhuǎn)換。接下來,給出一種習(xí)題嵌入表示方法,將學(xué)生習(xí)題表現(xiàn)與知識(shí)點(diǎn)表現(xiàn)進(jìn)行融合,從而得到習(xí)題的向量表示。
在DKT中,習(xí)題向量的維度為習(xí)題數(shù)量的2倍,且由one-hot向量進(jìn)行表示。這樣的習(xí)題向量不僅攜帶的語(yǔ)義信息十分有限,而且習(xí)題向量高維稀疏,都將影響模型的最終性能。為此,本節(jié)利用CQ矩陣與學(xué)生響應(yīng)數(shù)據(jù)來得到每道習(xí)題的嵌入表示。
對(duì)于t時(shí)刻與第i個(gè)學(xué)生交互的習(xí)題初始嵌入向量表示如式(4)所示:
(4)
其中,et為該題的one-hot表示。
有別于DKT中通過隱含方式表示學(xué)生響應(yīng)數(shù)據(jù),此處直接引入響應(yīng)數(shù)據(jù)。即對(duì)于第i個(gè)學(xué)生而言,其在t時(shí)刻傳遞到LSTM中的輸入向量如式(5)所示:
xt=[cqt,rt]T
(5)
其中,cqt為t時(shí)刻與第i個(gè)學(xué)生交互過的習(xí)題初始嵌入向量,rt為對(duì)應(yīng)的響應(yīng)數(shù)據(jù)。因此,通過使用CQ矩陣與響應(yīng)數(shù)據(jù)對(duì)習(xí)題向量進(jìn)行重表示,使得習(xí)題嵌入向量在DKT的基礎(chǔ)上實(shí)現(xiàn)降維的同時(shí),還包含了習(xí)題知識(shí)點(diǎn)關(guān)聯(lián)的細(xì)粒度語(yǔ)義信息。
在得到習(xí)題向量表示之后,將其作為L(zhǎng)STM的輸入,從而估計(jì)學(xué)生在知識(shí)點(diǎn)集合上的掌握情況,如式(6)~式(12)所示:
it=σ(Wixt+Uiht-1+bi)
(6)
ft=σ(Wfxt+Ufht-1+bf)
(7)
ot=σ(Woxt+Uoht-1+bo)
(8)
(9)
(10)
ht=ot°tanh(zt-1)
(11)
(12)
(13)
在明確模型的輸入輸出之后,則需要建立模型的損失函數(shù)。對(duì)于單個(gè)學(xué)生的損失函數(shù)建模如式(14)所示:
(14)
算法1KTCR方法
輸入:響應(yīng)矩陣R,習(xí)題知識(shí)點(diǎn)關(guān)聯(lián)矩陣Q,學(xué)生集S={s1,s2,…,sN},習(xí)題集E={e1,e2,…,eM}和知識(shí)點(diǎn)集C={c1,c2,…,cK}。
輸出:t+1時(shí)刻第i個(gè)學(xué)生在第j+1個(gè)習(xí)題上回答正確的概率,即P(yt+1=1 | Ф,R,Q,S,E,C) 。
步驟1計(jì)算所有學(xué)生交互過的習(xí)題數(shù)量,得e(s)={e(s1),e(s2),…,e(sN)};
步驟2計(jì)算所有學(xué)生與考察了第l個(gè)知識(shí)點(diǎn)的習(xí)題的交互數(shù)量,得el(s)={el(s1),el(s2),…,el(sN)};
步驟3初始化長(zhǎng)度為N的一維全零數(shù)組ACC;
步驟4 forl=1 toKdo
步驟5fori=1 toNdo
步驟6利用式(1)計(jì)算第i個(gè)學(xué)生在考察了第l個(gè)知識(shí)點(diǎn)的習(xí)題中的答題正確率accl(si);
步驟7ACC[i]=accl(si);
步驟8endfor
步驟9利用數(shù)組ACC與式(2)計(jì)算第l個(gè)知識(shí)點(diǎn)的上下文因子δl;
步驟10利用式(3)對(duì)Q矩陣的第l列進(jìn)行上下文表示;
步驟11 endfor
步驟12 fori=1 toNdo
步驟13forj=1 toMdo
步驟14ifrij=1 orrij=0
步驟15利用式(4)和式(5)得當(dāng)前習(xí)題向量x;
步驟18endif
步驟19endfor
步驟20根據(jù)式(14)計(jì)算第i個(gè)學(xué)生的損失函數(shù)L;
步驟21while第i個(gè)學(xué)生的損失函數(shù)未收斂do
步驟22利用SGD算法更新參數(shù)集合Ф;
步驟23執(zhí)行步驟12~步驟20;
步驟24endwhile
步驟25 endfor
為了驗(yàn)證本文方法的合理性與有效性,本文設(shè)計(jì)實(shí)驗(yàn)進(jìn)行驗(yàn)證。實(shí)驗(yàn)將回答以下幾個(gè)問題:
(1)KTCR方法與現(xiàn)有的一些知識(shí)追蹤方法相比,性能方面存在哪些優(yōu)勢(shì)?
(2)使用KTCR方法得到學(xué)生知識(shí)狀態(tài)估計(jì)結(jié)果的準(zhǔn)確性如何?
(3)在真實(shí)數(shù)據(jù)集上,KTCR方法對(duì)估計(jì)學(xué)生知識(shí)狀態(tài)的貢獻(xiàn)如何?
在本節(jié)中,首先介紹實(shí)驗(yàn)所使用的數(shù)據(jù)集;其次介紹實(shí)驗(yàn)設(shè)置與基線方法;再次根據(jù)所提問題對(duì)評(píng)價(jià)指標(biāo)進(jìn)行介紹;最后對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,并結(jié)合案例分析闡釋本文方法的合理性與有效性。
實(shí)驗(yàn)所用的4個(gè)公開數(shù)據(jù)集分別為:ASSISTment2009(ASSIST2009)、ASSISTment 2015(ASSIST2015)、ASSISTment Challenge(ASSISTChall)和STATICS,其中每個(gè)數(shù)據(jù)集的相關(guān)信息如下所示:
(1)ASSIST2009數(shù)據(jù)集是2009年由ASSISTment在線教育平臺(tái)所收集的,是知識(shí)追蹤相關(guān)論文中使用最廣泛的數(shù)據(jù)集之一[11]。由于原始數(shù)據(jù)集中有大量重復(fù)的交互記錄存在,故在數(shù)據(jù)預(yù)處理時(shí)刪除了重復(fù)部分,最終得到的數(shù)據(jù)集包含4 417名學(xué)生的328 291條做題記錄,其中與學(xué)生交互的習(xí)題來自于124個(gè)不同的知識(shí)點(diǎn)。
(2)ASSIST2015數(shù)據(jù)集與ASSIST2009類似,同樣來源于ASSISTment在線教育平臺(tái)。不同的是,該數(shù)據(jù)集是由平臺(tái)在2015年收集的,包含19 917名學(xué)生的708 631條做題記錄,其中知識(shí)點(diǎn)個(gè)數(shù)為100個(gè)。
(3)ASSISTChall數(shù)據(jù)集來自于2017年ASSISTment平臺(tái)的數(shù)據(jù)挖掘競(jìng)賽,該數(shù)據(jù)集包含686名學(xué)生的942 816條交互記錄和102個(gè)知識(shí)點(diǎn)。
(4)STATICS數(shù)據(jù)集是從大學(xué)的工程力學(xué)課程中收集的[6],包括333名學(xué)生在來自于1 223個(gè)知識(shí)點(diǎn)的習(xí)題上的189 927條做題記錄。
表3總結(jié)了上述4個(gè)數(shù)據(jù)集的統(tǒng)計(jì)信息。
4.2.1 實(shí)驗(yàn)設(shè)置
實(shí)驗(yàn)將4個(gè)數(shù)據(jù)集分別劃分為訓(xùn)練集和測(cè)試集,抽取其中20%的學(xué)生做題記錄作為測(cè)試集,剩余部分為訓(xùn)練集。為了保證實(shí)驗(yàn)結(jié)果的可靠性,實(shí)驗(yàn)采用5次5折交叉驗(yàn)證法評(píng)價(jià)KTCR方法的性能。
在KTCR方法的訓(xùn)練階段,隱含層使用了150個(gè)LSTM單元,keep_prob設(shè)為0.5,學(xué)習(xí)率learning_rate設(shè)為0.01,訓(xùn)練輪數(shù)max_epoch為200,每批數(shù)據(jù)的大小batch_size設(shè)為32。實(shí)驗(yàn)使用Xavier[12]中的初始化參數(shù),其對(duì)權(quán)重初始化的隨機(jī)值采樣于N~(0,std2)。此外,實(shí)驗(yàn)所用操作系統(tǒng)為Windows10 64位,顯卡為NVIDIA GTX1080-8 GG,內(nèi)存為16 GB,實(shí)驗(yàn)代碼通過Python3.6.5由TensorFlow1.10實(shí)現(xiàn)。
4.2.2 基線方法
為評(píng)估KTCR方法的性能,選取以下2類方法作為基線方法:(1)只考慮學(xué)生響應(yīng)數(shù)據(jù),不考慮習(xí)題與知識(shí)點(diǎn)之間的關(guān)聯(lián)信息,即DKT和DKVMN;(2)融合了習(xí)題與知識(shí)點(diǎn)之間的關(guān)聯(lián)信息,即 LSTMCQ及KTCR的幾種變體方法。具體描述如下:
(1)DKT[5]:實(shí)驗(yàn)采用DKT的LSTM實(shí)現(xiàn)方法,使用one-hot向量來表示一道習(xí)題,向量維度為2×106。當(dāng)t時(shí)刻模型的輸入向量為xt=[et,0]T時(shí),表示該題在真實(shí)情況下學(xué)生回答正確,即rt=1,其中,0表示與et維數(shù)相同的全0向量;而當(dāng)t時(shí)刻模型的輸入向量為xt=[0,et]T時(shí),則表示該題在真實(shí)情況下學(xué)生回答錯(cuò)誤。
(2)DKVMN[6]:該方法在記憶增強(qiáng)網(wǎng)絡(luò)MANNs(Memory-Augmented Neural Networks)[13,14]的基礎(chǔ)上,結(jié)合了BKT和DKT的優(yōu)點(diǎn),對(duì)學(xué)生知識(shí)狀態(tài)進(jìn)行追蹤。
(3)LSTMCQ[3]:該方法在DKT的基礎(chǔ)上使用文獻(xiàn)[3]中的基于上下文表示方法對(duì)Q矩陣進(jìn)行重表示。
(4)Q-DKT:該方法為KTCR方法的一種變體方法。Q-DKT將習(xí)題嵌入向量中習(xí)題正確與否的信息用類似DKT中的方法進(jìn)行表示,并且未使用3.1節(jié)中的知識(shí)點(diǎn)上下文表示對(duì)Q矩陣進(jìn)行上下文化。在3.2節(jié)中提到的KTCR方法在t時(shí)刻傳遞到LSTM中的輸入向量為xt=[cqt,rt]T,而對(duì)于Q-DKT,t時(shí)刻傳遞到LSTM中的輸入向量為xt=[qt,0]T或xt=[0,qt]T,其中0的含義與DKT中的類似,其維度與qt相同。
Table 3 Statistics of all datasets
(5)QR-DKT:該方法為KTCR方法的一種變體方法。QR-DKT在Q-DKT的基礎(chǔ)上將學(xué)生響應(yīng)數(shù)據(jù)顯式表示,使用未經(jīng)上下文化的Q矩陣對(duì)習(xí)題向量進(jìn)行降維。即t時(shí)刻傳遞到LSTM中的輸入向量為xt=[qt,rt]T。
4.3.1 學(xué)生答題情況預(yù)測(cè)
由于無法得到真實(shí)情況下學(xué)生在知識(shí)點(diǎn)上的掌握情況,故對(duì)知識(shí)追蹤方法進(jìn)行性能評(píng)估是很難做到的。之前的很多工作大都是通過預(yù)測(cè)學(xué)生的做題情況來得到追蹤結(jié)果,通過在此類預(yù)測(cè)任務(wù)上模型的表現(xiàn),可以間接地從某個(gè)層面對(duì)知識(shí)追蹤方法進(jìn)行評(píng)估??紤]到實(shí)驗(yàn)數(shù)據(jù)中使用的所有習(xí)題都是客觀題,實(shí)驗(yàn)從分類和回歸2個(gè)角度使用評(píng)價(jià)指標(biāo)來評(píng)估模型預(yù)測(cè)的學(xué)生答題情況,包括準(zhǔn)確率Accuracy[15]、均方根誤差RMSE[16]和AUC(Area Under ROC),其定義如下所示:
定義1準(zhǔn)確率(Accuracy):基于混淆矩陣(如表4所示),Accuracy是分類正確的樣本數(shù)量占樣本總數(shù)的比例,如式(15)所示:
(15)
Table 4 Confusion matrix
定義2均方根誤差(RMSE):基于學(xué)生響應(yīng)數(shù)據(jù)與模型預(yù)測(cè)結(jié)果,RMSE的定義如式(16)所示:
(16)
此外,實(shí)驗(yàn)還將選用受試者工作特征ROC(Receiver Operating Characteristic)曲線下的面積AUC作為方法性能評(píng)價(jià)指標(biāo)之一。選用AUC作為本文方法評(píng)價(jià)指標(biāo)的原因有二:(1)AUC作為性能度量指標(biāo)在機(jī)器學(xué)習(xí)領(lǐng)域憑借其優(yōu)越性得到了廣泛應(yīng)用;(2)在知識(shí)追蹤任務(wù)中,相關(guān)論文均使用AUC作為性能度量指標(biāo),因此本文選用AUC來評(píng)價(jià)性能,易于同其他知識(shí)追蹤方法進(jìn)行比較。
4.3.2 學(xué)生知識(shí)狀態(tài)估計(jì)
除了從預(yù)測(cè)學(xué)生答題情況的層面來評(píng)價(jià)本文方法外,還引入DOA(Degree of Agreement)[15]作為預(yù)測(cè)的準(zhǔn)確性指標(biāo)。
定義3一致性(DOA):DOA用來比較方法預(yù)測(cè)的學(xué)生知識(shí)狀態(tài)與學(xué)生真實(shí)答題情況之間的一致程度,其定義如式(17)所示:
(17)
其中,KSak為第a個(gè)學(xué)生在第k個(gè)知識(shí)點(diǎn)上的掌握情況,I(·)為指示函數(shù),qjk為Q矩陣中的第j行第k列中的元素,raj表示第a個(gè)學(xué)生的真實(shí)做題情況。從直覺上來說,如果第a個(gè)學(xué)生比第b個(gè)學(xué)生在第k個(gè)知識(shí)點(diǎn)上的掌握情況更好,那么第a個(gè)學(xué)生就更有可能比第b個(gè)學(xué)生答對(duì)與第k個(gè)知識(shí)點(diǎn)相關(guān)聯(lián)的那些習(xí)題。DOA值越高,表明模型預(yù)測(cè)的學(xué)生知識(shí)狀態(tài)與實(shí)際結(jié)果越一致,即預(yù)測(cè)的學(xué)生知識(shí)狀態(tài)更準(zhǔn)確。
4.4.1 性能比較
表5顯示了在不同數(shù)據(jù)集上本文KTCR方法與各基線方法的準(zhǔn)確率、均方根誤差及AUC值。表5中的數(shù)值為經(jīng)過5次5折交叉驗(yàn)證后各方法在4個(gè)數(shù)據(jù)集上的各指標(biāo)數(shù)據(jù)平均值。從表5中可以看出:首先,使用Q矩陣作為習(xí)題嵌入信息的方法性能基本上優(yōu)于未使用Q矩陣的方法。這是由于Q矩陣為模型提供了習(xí)題與知識(shí)點(diǎn)之間的細(xì)粒度關(guān)聯(lián)信息,從而在一定程度上提升了方法的性能。其次,在使用Q矩陣的方法中,2種使用不同知識(shí)點(diǎn)上下文策略的方法(即本文方法與LSTMCQ方法)性能始終優(yōu)于另2種方法,這說明對(duì)知識(shí)點(diǎn)進(jìn)行基于上下文表示能夠使習(xí)題向量攜帶更加豐富的語(yǔ)義信息,使得模型性能有所提高。具體對(duì)于LSTMCQ方法而言,由于其對(duì)知識(shí)點(diǎn)上下文表示的局限性,導(dǎo)致其在數(shù)據(jù)集ASSIST2009和數(shù)據(jù)集ASSIST2015上的表現(xiàn)與未使用Q矩陣的2種方法差別不大,即LSTMCQ方法對(duì)數(shù)據(jù)集敏感。相反,由于本文在設(shè)計(jì)知識(shí)點(diǎn)上下文表示策略時(shí),既考慮了在某一知識(shí)點(diǎn)上的學(xué)生交互人數(shù),又將每個(gè)學(xué)生交互過的習(xí)題數(shù)量作為可信度考慮在內(nèi),因此KTCR方法在保證了方法有效性的同時(shí),還在不同數(shù)據(jù)集上具備性能的穩(wěn)定性。
Table 5 Experimental results of student performance prediction
4.4.2 學(xué)生知識(shí)狀態(tài)準(zhǔn)確性研究
為了評(píng)價(jià)KTCR方法獲取學(xué)生知識(shí)狀態(tài)的準(zhǔn)確性,本文在所有知識(shí)點(diǎn)上對(duì)DOA取平均值,結(jié)果如圖2所示。
Figure 2 DOA results of different methods on four datasets圖2 4個(gè)數(shù)據(jù)集上不同方法的DOA值
由于未使用Q矩陣的DKT方法和DKVMN方法得到的學(xué)生知識(shí)狀態(tài)無法與真實(shí)數(shù)據(jù)集中的知識(shí)點(diǎn)相匹配,因此實(shí)驗(yàn)僅將KTCR方法與本文變體方法及LSTMCQ方法從一致性角度進(jìn)行比較。由圖2可知,KTCR方法的DOA顯著高于其他基線方法的,說明使用KTCR方法得到的學(xué)生知識(shí)狀態(tài)相較于基線方法更準(zhǔn)確,與真實(shí)情況更一致。與此同時(shí),觀察到KTCR和LSTMCQ方法的DOA普遍高于Q-DKT和QR-DKT方法的,這同樣說明了知識(shí)點(diǎn)的基于上下文表示對(duì)獲得準(zhǔn)確的學(xué)生知識(shí)狀態(tài)具有重要作用。
本節(jié)通過設(shè)計(jì)一個(gè)案例來分析KTCR方法對(duì)估計(jì)學(xué)生知識(shí)狀態(tài)的貢獻(xiàn)。圖3給出了基于ASSIST2009數(shù)據(jù)集的KTCR方法在學(xué)生與習(xí)題交互序列中捕獲編號(hào)為80807的學(xué)生知識(shí)狀態(tài)的過程案例。由圖3中的案例可知,學(xué)生在連續(xù)回答了5道來自5個(gè)不同知識(shí)點(diǎn)的習(xí)題之后,經(jīng)過KTCR方法對(duì)學(xué)生答題序列中學(xué)生知識(shí)狀態(tài)的挖掘,最終獲取學(xué)生在5個(gè)知識(shí)點(diǎn)上的掌握情況。從圖3中左側(cè)的雷達(dá)圖中觀察到該學(xué)生在“相似三角形”和“勾股定理”2個(gè)知識(shí)點(diǎn)上掌握得較好,而對(duì)于其余知識(shí)點(diǎn)則掌握得較差,此結(jié)果與學(xué)生答題序列反映出來的信息基本一致。
Figure 3 Process of capturing a student’s knowledge state by KTCR圖3 KTCR捕獲編號(hào)為80807的學(xué)生知識(shí)狀態(tài)的整體過程
本文針對(duì)現(xiàn)有方法未能充分利用習(xí)題與知識(shí)點(diǎn)之間關(guān)聯(lián)信息的局限性,提出了基于上下文表示的知識(shí)追蹤方法KTCR。該方法既考慮了習(xí)題與知識(shí)點(diǎn)之間的關(guān)聯(lián)信息,又綜合考慮了學(xué)生在學(xué)習(xí)過程中的復(fù)雜學(xué)習(xí)背景對(duì)知識(shí)點(diǎn)基于上下文表示。在真實(shí)數(shù)據(jù)集上的大量實(shí)驗(yàn)驗(yàn)證了本文KTCR方法的有效性與知識(shí)狀態(tài)追蹤結(jié)果的可解釋性。