宋 剛 許曉東
(江蘇大學(xué)計(jì)算機(jī)科學(xué)與通信工程學(xué)院 鎮(zhèn)江 212000)
ITS是一個(gè)活躍的研究領(lǐng)域,旨在為學(xué)生提供個(gè)性化的指導(dǎo)。早期工作可追溯到20世紀(jì)70年代后期,在各種各樣的人工智能和知識(shí)表示技術(shù)中,主要有基于規(guī)則和貝葉斯的學(xué)生知識(shí)和誤解的表示,項(xiàng)目響應(yīng)理論中邏輯回歸的技能建模,強(qiáng)化學(xué)習(xí)和深度學(xué)習(xí)[1]。在知識(shí)追蹤問(wèn)題上,我們無(wú)法將學(xué)生的知識(shí)狀態(tài)是定義為靜態(tài)的,而且學(xué)生對(duì)每個(gè)知識(shí)點(diǎn)的掌握情況并不是獨(dú)立的[2],DKT采用的是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),它相對(duì)于著名的貝葉斯知識(shí)跟蹤模型(BKT)取得了顯著改善,其結(jié)果已被證明能夠發(fā)現(xiàn)技能概念中的潛在結(jié)構(gòu),可用于課程優(yōu)化[3]。但是忽略學(xué)生實(shí)際答題時(shí)間帶來(lái)的個(gè)體化差異問(wèn)題,會(huì)影響模型訓(xùn)練的準(zhǔn)確度。
針對(duì)上述問(wèn)題,本文將學(xué)生當(dāng)前的答題時(shí)間編碼,結(jié)合答題情況輸入模型,結(jié)合改進(jìn)的損失函數(shù),來(lái)預(yù)測(cè)學(xué)生的表現(xiàn)。
我們?cè)谶@里回顧四種最先進(jìn)的學(xué)生建模方法,用于評(píng)估學(xué)生的表現(xiàn),無(wú)論是他們?cè)谛睦碛?jì)量學(xué)(IRT)或教育數(shù)據(jù)挖掘(BKT)中的優(yōu)勢(shì),還是因?yàn)樗麄兪潜憩F(xiàn)最好的(PFA,DKT)。參見(jiàn)文獻(xiàn)[4]進(jìn)行一般性回顧。
IRT假設(shè)學(xué)生的知識(shí)狀態(tài)是靜態(tài)的,并且在測(cè)試期間完成評(píng)估時(shí)以其熟練程度表示[5~8]。IRT為單個(gè)技能建模,并假定測(cè)試項(xiàng)目是一維的。它為學(xué)生i分配了靜態(tài)熟練度θi。每個(gè)項(xiàng)目j都有自己的難度βi。IRT的主要思想是通過(guò)使用學(xué)生的能力和項(xiàng)目難度來(lái)估計(jì)學(xué)生i正確回答項(xiàng)目j的可能性。

貝葉斯知識(shí)追蹤(BKT)模型[9]是一個(gè)將學(xué)生知識(shí)點(diǎn)掌握情況表示成一個(gè)二元變量,其中學(xué)生的表現(xiàn)是觀察到的變量,學(xué)生的知識(shí)是潛在數(shù)據(jù)。該模型采用學(xué)生的表現(xiàn),并使用它們來(lái)估計(jì)學(xué)生對(duì)特定技能的知識(shí)水平。引入BKT是為了在學(xué)習(xí)環(huán)境中進(jìn)行知識(shí)跟蹤,對(duì)于該學(xué)習(xí)環(huán)境,靜態(tài)知識(shí)狀態(tài)的假設(shè)已被丟棄。用以下4個(gè)概率不斷更新學(xué)生對(duì)技能知識(shí)的標(biāo)準(zhǔn)BKT估計(jì):[P(L0)掌握的初始概率,P(T)從未掌握轉(zhuǎn)變?yōu)榫ǎ琍(G)猜測(cè)和P(S)滑移]。

PFA是BKT的替代方案,它還放寬了靜態(tài)知識(shí)假設(shè),并以其基本結(jié)構(gòu)同時(shí)為多種技能建模[11]。它定義學(xué)生i成功完成項(xiàng)目j的概率為

其中βk是技能k的偏差,而γk和ρk分別代表技能k每次成功和失敗嘗試的學(xué)習(xí)收益。sik是成功嘗試的次數(shù),而fik是學(xué)生i對(duì)技能k的失敗嘗試的次數(shù)。
DKT是在[3]中引入的。它使用長(zhǎng)短期記憶(LSTM)[12]動(dòng)態(tài)地表示學(xué)生的潛在知識(shí)空間。可以通過(guò)利用學(xué)生歷史表現(xiàn)來(lái)推斷學(xué)生通過(guò)習(xí)題增加的知識(shí)。DKT使用大量的人工神經(jīng)元來(lái)表示潛在知識(shí)狀態(tài)以及時(shí)間動(dòng)態(tài)結(jié)構(gòu),并允許模型從數(shù)據(jù)中學(xué)習(xí)潛在知識(shí)狀態(tài)。它由以下等式定義:

在DKT中,tanh和sigmoid函數(shù)均按元素種類應(yīng)用,并通過(guò)輸入權(quán)重矩陣Whx,循環(huán)權(quán)重矩陣Whh,初始狀態(tài)h0和輸出權(quán)重矩陣Wyh進(jìn)行參數(shù)化。隱藏和輸出單元偏置量用bh和by表示。
在教育領(lǐng)域[13~14]的幾項(xiàng)研究工作中,根據(jù)他們先前在學(xué)習(xí)系統(tǒng)中各種內(nèi)容上的表現(xiàn),將學(xué)生分為具有相似學(xué)習(xí)能力的不同群體,以向具有相似學(xué)習(xí)能力的每組學(xué)生提供更多的適應(yīng)性指導(dǎo)。目前大多數(shù)的網(wǎng)上學(xué)習(xí)平臺(tái),在缺少線下老師的管理情況下,學(xué)生的自制力低,追蹤學(xué)生的學(xué)習(xí)狀態(tài),可以對(duì)學(xué)生的學(xué)習(xí)情況進(jìn)行更準(zhǔn)確的預(yù)測(cè)。在每個(gè)時(shí)間間隔對(duì)學(xué)生的學(xué)習(xí)情況動(dòng)態(tài)評(píng)估,是根據(jù)下一個(gè)時(shí)間間隔開(kāi)始之前,對(duì)他們處理知識(shí)點(diǎn)的時(shí)間進(jìn)行聚類進(jìn)行的。
1)時(shí)間間隔:時(shí)間間隔是一個(gè)段,是學(xué)生嘗試回答系統(tǒng)中同一知識(shí)點(diǎn)的時(shí)間差。從這個(gè)角度來(lái)看,一個(gè)時(shí)間點(diǎn)(時(shí)間戳)是對(duì)知識(shí)點(diǎn)的一次嘗試。
2)劃分學(xué)生的嘗試序列,將每個(gè)學(xué)生的響應(yīng)序列劃分為多個(gè)時(shí)間間隔有兩個(gè)目的。
(1)減少計(jì)算量和內(nèi)存空間分配,以便在整個(gè)較長(zhǎng)的序列中進(jìn)行學(xué)習(xí)。(2)在每個(gè)時(shí)間間隔后重新評(píng)估學(xué)生的學(xué)習(xí)狀態(tài),并在下一個(gè)時(shí)間間隔中將其動(dòng)態(tài)分配到所屬的組中。
圖1舉例說(shuō)明一個(gè)學(xué)生的16次嘗試響應(yīng)序列,其中技能標(biāo)簽13進(jìn)行了5次嘗試,分為4個(gè)片段(時(shí)間間隔)的示例,其中一個(gè)片段代表一個(gè)時(shí)間間隔,在該時(shí)間間隔中,學(xué)生嘗試的次數(shù)根據(jù)他們與系統(tǒng)交互過(guò)程中回答的問(wèn)題數(shù)量而有所不同。
3)用于聚類的長(zhǎng)期狀態(tài)編碼:根據(jù)學(xué)生技能學(xué)習(xí)的時(shí)間對(duì)學(xué)生的學(xué)習(xí)時(shí)間進(jìn)行分組,可以從數(shù)據(jù)集D中獲取,學(xué)習(xí)時(shí)間分類的配置文件被編碼為具有技能數(shù)量長(zhǎng)度的向量。獲取學(xué)生當(dāng)前技能的時(shí)間戳與先前嘗試的該技能的時(shí)間戳之間的差值,在時(shí)間間隔內(nèi)對(duì)學(xué)生i進(jìn)行聚類,如下所示:

其中Timestamps(xj)1:z代表學(xué)生i對(duì)n個(gè)技能(x1,x2,…,xn)的從開(kāi)始答題到當(dāng)前答題的時(shí)間,表R(xj)1:z表示在1到z次的時(shí)間間隔內(nèi),對(duì)技能j最近一次的回答時(shí)間差,而表示一個(gè)向量,其中包含學(xué)生i對(duì)每種技能的學(xué)習(xí)次數(shù)概括,學(xué)習(xí)次數(shù)1到z。每個(gè)學(xué)生在與系統(tǒng)交互的生命周期中同一技能的學(xué)習(xí)可能會(huì)有不同數(shù)量的總學(xué)習(xí)次數(shù)。
4)K-means聚類:通過(guò)在數(shù)據(jù)D上進(jìn)行聚類[15~16],聚類訓(xùn)練階段,在不考慮學(xué)習(xí)次數(shù)的情況下找到每個(gè)學(xué)生組的質(zhì)心。一旦計(jì)算出,在整個(gè)聚類過(guò)程中,每個(gè)組的質(zhì)心將不再改變。將每次技能的學(xué)習(xí)狀態(tài)(在訓(xùn)練和測(cè)試數(shù)據(jù)中)分為不同的組,其中1代表學(xué)習(xí)狀態(tài)最差,遞推,4代表當(dāng)前學(xué)習(xí)狀態(tài)最佳(參見(jiàn)圖2)。

圖2 技能學(xué)習(xí)的時(shí)間間隔對(duì)學(xué)生進(jìn)行聚類
找到學(xué)生i學(xué)習(xí)技能所屬的組,使用學(xué)習(xí)狀態(tài)配置數(shù)據(jù)點(diǎn)在學(xué)習(xí)了所有K個(gè)聚類的質(zhì)心之后,每個(gè)學(xué)生每次技能的學(xué)習(xí)狀態(tài)Se gz都通過(guò)以下方程式分配到最近的聚類Cc中:

其中,μc是學(xué)生組去除極端情況下聚類集Cc(k均值聚類中C2,…,Ck-1)中點(diǎn)的平均值,狀態(tài)描述數(shù)據(jù)表示學(xué)生i從學(xué)習(xí)技能次數(shù)從z-1到z的學(xué)習(xí)時(shí)間。
圖3是5位學(xué)生對(duì)相同技能學(xué)習(xí)時(shí)間間隔的表示,是基于他們以前技能答題的時(shí)間間隔。答題數(shù)量的不同,時(shí)間間隔的總數(shù)也有差異,其中t1,t2,t3,t4代表學(xué)生對(duì)同一技能答題時(shí)間的時(shí)間間隔,t1代表的是學(xué)生第二次與第一次對(duì)該技能的答題時(shí)間差,依次,t2,t3,t4也是代表當(dāng)前答題時(shí)間與上一次答題時(shí)間的時(shí)間差(其中線條越長(zhǎng)代表時(shí)間間隔越長(zhǎng))。每次練習(xí)的時(shí)間間隔(t1,…,t4)都會(huì)根據(jù)當(dāng)前技能的第幾次練習(xí)z,均使用先前的表現(xiàn)數(shù)據(jù)通過(guò)k-means聚類方法進(jìn)行分配。

圖3 學(xué)習(xí)交互過(guò)程中,學(xué)生技能學(xué)習(xí)的時(shí)間間隔
在標(biāo)準(zhǔn)DKT中,xt是學(xué)生互動(dòng)元組xt={st,at}的單次編碼矢量,它表示st所練習(xí)的技能的組合,并且在其中指示答案是否正確。但是學(xué)生的學(xué)習(xí)狀態(tài)還需要另外加上ct+1,這是一個(gè)表示St ui在當(dāng)前時(shí)間間隔技能st的學(xué)習(xí)狀態(tài),是從學(xué)生下次的答題時(shí)間獲取的。在隱藏層中,當(dāng)我們將響應(yīng)序列的每個(gè)時(shí)間間隔的最后一個(gè)節(jié)點(diǎn)將用作下一個(gè)時(shí)間間隔的第一節(jié)點(diǎn)h0。輸出yt是一個(gè)與問(wèn)題數(shù)量相同長(zhǎng)度的向量。
圖4說(shuō)明了如何通過(guò)在每次答題時(shí),將學(xué)生的學(xué)習(xí)狀態(tài)作為不同的小組信息納入到DKT模型中來(lái)進(jìn)行改進(jìn),以改進(jìn)知識(shí)跟蹤中的個(gè)性化。因此,可以結(jié)合學(xué)生下次的答題時(shí)間結(jié)合當(dāng)前技能的答題情況獲得下次答題正確的概率。為了在模型訓(xùn)練中驗(yàn)證這一假設(shè),我們引入以下?lián)p失函數(shù)并將其最小化:

圖4 在學(xué)生與系統(tǒng)的整個(gè)交互過(guò)程中,每次答題都與一個(gè)不同的組(集群)相關(guān)聯(lián)

其中是加入學(xué)生當(dāng)前學(xué)習(xí)情況的單次編碼矢量,δ(qt)是技能在t時(shí)刻的one-hot編碼,at+1是技能回答正確或錯(cuò)誤(1或0)的編碼,l是二元交叉熵函數(shù)。
在這方面,式(7)和(8)對(duì)于本文模型仍然有效,本文模型和DKT的輸出yt相同,這為特定問(wèn)題提供了預(yù)測(cè)的概率。輸入層中每次學(xué)生答題的時(shí)間間隔的顏色表示學(xué)生根據(jù)其學(xué)習(xí)狀態(tài)在該次答題中所屬的組。通過(guò)添加該學(xué)生所屬組的聚類信息Cl ust er(Stui,Staz),我們確保這些高水平統(tǒng)計(jì)信息仍可用于模型,從而在整個(gè)學(xué)年中進(jìn)行預(yù)測(cè)。DKT模型就是這樣做的,以相同的方式對(duì)待所有學(xué)生,而不考慮他們由于線上學(xué)習(xí)時(shí)間的差異性。相反,通過(guò)對(duì)學(xué)生的學(xué)習(xí)狀態(tài)使用聚類,通過(guò)在不同的答題時(shí)間使用他們的實(shí)際學(xué)習(xí)概況數(shù)據(jù)來(lái)找到一群具有相似學(xué)習(xí)狀態(tài)的學(xué)生。在每個(gè)不同的組中追蹤學(xué)生的知識(shí)可以在學(xué)生的成績(jī)預(yù)測(cè)中提供更大的效果。訓(xùn)練目標(biāo)是在模型下最大程度地減少觀察到的學(xué)生反應(yīng)序列的交叉熵?fù)p失函數(shù):

損失函數(shù)L'由式(15)定義,并且模型經(jīng)過(guò)優(yōu)化以最小化此損失函數(shù),其中λ是任意非負(fù)實(shí)數(shù)。最后,我們?cè)诒?中總結(jié)了每種模型的特征。


表1 不同模型對(duì)比
本文使用Google的TensorFlow框架實(shí)施DKT算法來(lái)完成深度知識(shí)跟蹤的實(shí)驗(yàn)。在實(shí)驗(yàn)中,我們按照學(xué)生的答題序列,將每個(gè)數(shù)據(jù)集隨機(jī)分為80%的訓(xùn)練數(shù)據(jù)和20%的測(cè)試數(shù)據(jù)。使用EM訓(xùn)練BKT,并將迭代極限設(shè)置為200。DKT中RNN的權(quán)重是從具有零均值和小方差的高斯分布中隨機(jī)初始化的。我們遵循文獻(xiàn)[3]中的超參數(shù)設(shè)置,以0.01的學(xué)習(xí)率訓(xùn)練模型,訓(xùn)練迭代次數(shù)設(shè)為100。狀態(tài)大小為200的單層RNN-LSTM被用作DKT模型的基礎(chǔ),同時(shí)也應(yīng)用了Dropout以避免過(guò)度擬合[18],此外,我們還將標(biāo)準(zhǔn)梯度閾值始終設(shè)置為3.0。為了加快訓(xùn)練過(guò)程,使用了小批量隨機(jī)梯度下降來(lái)最小化損失函數(shù)。我們對(duì)正則化參數(shù)λ執(zhí)行超參數(shù)搜索。首先,根據(jù)LARS-EN[19]算法,來(lái)有效地計(jì)算彈性網(wǎng)絡(luò)正則化路徑,分別檢查每個(gè)參數(shù)以識(shí)別給出良好結(jié)果的值范圍。λ的初始搜索范圍為{0、0.001、0.01、0.1、1.0、10.0}。在縮小每個(gè)參數(shù)的范圍之后,對(duì)λ的組合進(jìn)行網(wǎng)格搜索{0、0.25、0.5、1.0}。
為了更好地解釋模型的不同方面,文中使用AUC和r2結(jié)合使用作為評(píng)估指標(biāo),為我們提供評(píng)估模型的基礎(chǔ)。
為了驗(yàn)證模型,我們?cè)趦蓚€(gè)不同的輔導(dǎo)場(chǎng)景中的三個(gè)公共數(shù)據(jù)集上對(duì)其進(jìn)行了測(cè)試,在該場(chǎng)景中,學(xué)生與教育環(huán)境中基于計(jì)算機(jī)的學(xué)習(xí)系統(tǒng)進(jìn)行了交互。KDD Cup 2010明確的記錄了學(xué)生開(kāi)始的答題時(shí)間,ASSISTments中沒(méi)有雖然沒(méi)有明確標(biāo)出,在數(shù)據(jù)集說(shuō)明中發(fā)現(xiàn)了學(xué)生的答題時(shí)間是包含在log_id中的,數(shù)據(jù)集信息如表2。

表2 數(shù)據(jù)集概述
本文對(duì)學(xué)生狀態(tài)的評(píng)估來(lái)提高預(yù)測(cè)結(jié)果,是對(duì)原始DKT算法的擴(kuò)展,并與具有歐幾里得距離的k均值聚類方法結(jié)合在一起。我們將所有模型進(jìn)行比較:IRT[5],BKT[10],PFA[11],DKT[3]。但是,我們無(wú)法將其與其他變體模型進(jìn)行比較,因?yàn)樗鼈兓蚨嗷蛏傧嗨撇⑶以谛阅苌蠜](méi)有顯著差異。對(duì)于IRT,我們使用Knewton[5]中的代碼,而DKT的代碼則來(lái)自WPI[17]。將每個(gè)模型做出的學(xué)生表現(xiàn)預(yù)測(cè)制成表格,并根據(jù)曲線下面積(AUC)和皮爾遜相關(guān)系數(shù)的平方(r2)評(píng)估準(zhǔn)確性。
在表3中,本文模型的預(yù)測(cè)效果在所有數(shù)據(jù)集中的表現(xiàn)均優(yōu)于最新模型。在ASSISTments09數(shù)據(jù)集上,與AUC為0.73的標(biāo)準(zhǔn)DKT相比,我們的DKT-DSST模型實(shí)現(xiàn)了0.81的AUC,這意味著10%的顯著增長(zhǎng)。在ASSISTments11數(shù)據(jù)集上,結(jié)果顯示增加了5%,DKT-DSST中的AUC為0.83,而原始DKT中的AUC為0.79。在KDD數(shù)據(jù)集中,DKT-DSST在AUC=0.79的情況下相比原始DKT也實(shí)現(xiàn)了約2.5%的增益。在上述所有模型中,只有IRT模型需要學(xué)習(xí)問(wèn)題難度,而所有其他模型僅依賴技能。在表4中,當(dāng)我們比較r2模型時(shí),BKT在ASSISTments09中為0.07,在ASSISTments11中為0.06,在KDD中為0.05。本文模型在所有數(shù)據(jù)集中的r2結(jié)果均高于0.21。

表3 AUC結(jié)果

表4 r2結(jié)果
表5中我們發(fā)現(xiàn)通過(guò)融入了學(xué)生的學(xué)習(xí)時(shí)間,對(duì)模型訓(xùn)練效果只產(chǎn)生了正收益。我們對(duì)正則化參數(shù)λ執(zhí)行超參數(shù)搜索。首先,根據(jù)后面將要說(shuō)明的一些評(píng)估措施,對(duì)參數(shù)λ給出良好結(jié)果的值范圍{0,0.25,0.5,1.0},在縮小每個(gè)參數(shù)的范圍之后。對(duì)群集的各種劃分還提供不同的性能,如表5所述。根據(jù)實(shí)驗(yàn)結(jié)果,將學(xué)生學(xué)習(xí)狀態(tài)劃分為6個(gè)群集,參數(shù)值為0.25時(shí)是本文模型的最佳參數(shù)。

表5 AUC在不同分組下的實(shí)驗(yàn)結(jié)果
本文提出將習(xí)題答題時(shí)間融入到傳統(tǒng)的DKT模型中,并結(jié)合改進(jìn)的模型損失函數(shù),通過(guò)AUC與r2證明模型的準(zhǔn)確度更強(qiáng),達(dá)到改進(jìn)目的。