李曉光,魏思齊,張 昕,杜岳峰,于 戈
1(遼寧大學(xué) 信息學(xué)院,遼寧 沈陽 110036)
2(東北大學(xué) 計算機科學(xué)與工程學(xué)院,遼寧 沈陽 110163)
在線教育系統(tǒng)提倡因材施教,即根據(jù)學(xué)生的知識水平為其推薦合適的學(xué)習(xí)資源[1].學(xué)生的知識水平受其學(xué)習(xí)階段和認(rèn)知能力的影響,在學(xué)習(xí)過程中不斷變化.實時追蹤學(xué)生知識水平,對于個性化在線教育至關(guān)重要[2,3].知識追蹤(knowledge tracing,簡稱KT)任務(wù)主要包括:(1)通過學(xué)生的學(xué)習(xí)歷史實時追蹤其知識水平變化;(2)根據(jù)學(xué)生的知識水平預(yù)測其在未來學(xué)習(xí)中的表現(xiàn).
傳統(tǒng)的知識追蹤技術(shù)主要有基于隱馬爾可夫模型(HMM)[4]的貝葉斯知識追蹤(BKT)[5].近年來,深度學(xué)習(xí)在自然語言處理[6]及模式識別[7]等任務(wù)上的表現(xiàn)優(yōu)于傳統(tǒng)模型.在知識追蹤研究領(lǐng)域,亦提出了大量基于深度學(xué)習(xí)的知識追蹤模型.基于循環(huán)神經(jīng)網(wǎng)絡(luò)的深度知識追蹤(DKT)模型[8]采用循環(huán)神經(jīng)網(wǎng)絡(luò)的隱藏向量表示學(xué)生的知識狀態(tài),并且據(jù)此預(yù)測學(xué)生的表現(xiàn).動態(tài)鍵-值對記憶網(wǎng)絡(luò)(DKVMN)[9]借鑒了記憶網(wǎng)絡(luò)(memory network)[10]的思想,用值矩陣表示學(xué)生對于各個知識點的掌握程度,并以此預(yù)測學(xué)生表現(xiàn),提升預(yù)測準(zhǔn)確度.但是以上知識追蹤方法都忽略了學(xué)生在學(xué)習(xí)過程中的遺忘行為對知識水平的影響.在教育心理學(xué)領(lǐng)域已經(jīng)有很多學(xué)者認(rèn)識到人類的遺忘行為,并且探索影響人類遺忘的因素.教育心理學(xué)理論艾賓浩斯遺忘曲線理論[11,12]提出:學(xué)生會遺忘所學(xué)知識,遺忘帶來的影響是知識掌握程度的下降.學(xué)生重復(fù)學(xué)習(xí)知識點的次數(shù)與距離上次學(xué)習(xí)知識點的時間間隔會影響學(xué)生的遺忘程度.教育心理學(xué)理論記憶痕跡衰退說[13]認(rèn)為:遺忘是記憶痕跡的衰退引起的,消退隨時間的推移自動發(fā)生,原始的痕跡越深,則遺忘的程度越低.目前,在知識追蹤領(lǐng)域,只有少數(shù)的研究考慮了學(xué)生的遺忘行為.BKT 的擴展[14,15]考慮了艾賓浩斯遺忘曲線提到的影響遺忘程度的兩個因素:重復(fù)學(xué)習(xí)知識點的次數(shù)和間隔時間.DKT 的擴展[16]考慮了學(xué)生順序?qū)W習(xí)的間隔時間,該研究認(rèn)為:學(xué)科中的各個知識點是相通的,持續(xù)的學(xué)習(xí)會降低學(xué)生對于知識點的遺忘程度.然而,以上的研究僅僅考慮了部分影響學(xué)生遺忘的信息,忽略了學(xué)生原本知識水平對于遺忘程度的影響,學(xué)生對于其掌握的知識點和沒有掌握的知識點的遺忘程度不同.與此同時,由于BKT 算法與DKT 算法的局限性,以往涉及遺忘的研究或者僅考慮了學(xué)生對于單個知識點的遺忘程度,或者僅考慮了學(xué)生對于整個知識空間的遺忘程度,沒有建模學(xué)生對知識空間中的各個知識點的遺忘情況.
針對于此,本文提出一種兼顧學(xué)習(xí)和遺忘的深度知識追蹤模型 LFKT(learning and forgetting behavior modeling for knowledge tracing).LFKT 擬合了學(xué)生的學(xué)習(xí)與遺忘行為,實時更新、輸出知識點掌握程度,并以此預(yù)測其未來表現(xiàn).本文主要創(chuàng)新和貢獻(xiàn)有:
(1)結(jié)合教育心理學(xué),知識追蹤模型LFKT 考慮了4 個影響知識遺忘的因素:學(xué)生重復(fù)學(xué)習(xí)知識點的間隔時間、重復(fù)學(xué)習(xí)知識點的次數(shù)、順序?qū)W習(xí)間隔時間以及學(xué)生對于知識點的掌握程度.LFKT 根據(jù)以上信息建模遺忘行為,擬合學(xué)生因遺忘行為導(dǎo)致的知識掌握程度變化;
(2)基于深度神經(jīng)網(wǎng)絡(luò)技術(shù),LFKT 設(shè)計了一個基于RNN 和記憶神經(jīng)網(wǎng)絡(luò)的知識追蹤神經(jīng)網(wǎng)絡(luò).該網(wǎng)絡(luò)包括注意力層、遺忘層、學(xué)習(xí)層、預(yù)測層和知識水平輸出層.其中:遺忘層采用全連接網(wǎng)絡(luò)計算記憶擦除向量和記憶更新向量,用以擬合遺忘行為;學(xué)習(xí)層采用LSTM 網(wǎng)絡(luò),并利用學(xué)生在學(xué)習(xí)結(jié)束時的答題結(jié)果作為知識掌握程度的間接反饋.根據(jù)記憶擦除向量和記憶更新向量,獲得經(jīng)過遺忘后的知識掌握程度的中間嵌入,并以此作為學(xué)習(xí)層的輸入,進(jìn)而獲得遺忘與學(xué)習(xí)相融合的知識掌握程度嵌入;
(3)通過在兩個真實在線教育數(shù)據(jù)集上的實驗驗證結(jié)果表明:LFKT 可以有效地建模學(xué)生的學(xué)習(xí)行為與遺忘行為,實時追蹤學(xué)生的知識水平,并且LFKT 模型的預(yù)測性能優(yōu)于現(xiàn)有模型.
本文第1 節(jié)介紹知識追蹤相關(guān)工作.第2 節(jié)給出相關(guān)概念和符號定義,并提出問題.第3 節(jié)詳細(xì)介紹LFKT模型結(jié)構(gòu)以及訓(xùn)練方法.第4 節(jié)給出LFKT 對比實驗結(jié)果和分析.最后總結(jié)全文.
知識追蹤大致可以分為基于隱馬爾可夫模型的知識追蹤與基于深度學(xué)習(xí)的知識追蹤.
貝葉斯知識追蹤是典型的基于隱馬爾可夫模型實現(xiàn)知識追蹤目標(biāo)的模型之一.BKT 將學(xué)生對某個知識點的潛在知識狀態(tài)建模為一組二進(jìn)制變量,每一個變量代表學(xué)生對于特定知識點“掌握”或“沒掌握”,根據(jù)隱馬爾可夫模型更新學(xué)生的知識狀態(tài),進(jìn)而更新其在未來學(xué)習(xí)中的表現(xiàn).在BKT 的基礎(chǔ)上,通過考慮其他因素,提出了很多擴展方案,例如:Pardos 等人的研究[17]引入了習(xí)題難度對預(yù)測學(xué)生表現(xiàn)的影響;Baker 等人的研究[18]引入了學(xué)生猜測和失誤對預(yù)測學(xué)生表現(xiàn)的影響;Khajah 等人的研究[19]將人類的認(rèn)知因素擴展到BKT 中,從而提高預(yù)測精度.基于隱馬爾可夫的知識追蹤模型將學(xué)生對各個知識點的掌握程度分別建模,忽略各個知識點之間的關(guān)系.BKT 模型簡單地將學(xué)生對于各個知識點的掌握程度分為“掌握”與“未掌握”,忽略了中間情況.
深度知識追蹤是深度學(xué)習(xí)模型循環(huán)神經(jīng)網(wǎng)絡(luò)在知識追蹤任務(wù)的首次嘗試,將學(xué)生的學(xué)習(xí)歷史作為輸入,使用RNN 隱藏狀態(tài)向量來表示學(xué)生的知識水平,并且基于此預(yù)測學(xué)生未來學(xué)習(xí)表現(xiàn).DKT 模型無法建模學(xué)生對于各個知識點的掌握程度,僅僅可以建模學(xué)生的整個知識水平.Chen 等人的研究[20]考慮了知識點之間的先驗關(guān)系,提升了DKT 的預(yù)測性能.Su 等人的研究[21]將習(xí)題文本信息和學(xué)生的學(xué)習(xí)歷史作為循環(huán)神經(jīng)網(wǎng)絡(luò)的輸入,利用RNN 的隱向量建模學(xué)生的知識水平,取得了較好的預(yù)測效果,但是依舊無法建模學(xué)生對于各個知識點的掌握程度.DKVMN 模型借鑒了記憶網(wǎng)絡(luò)的思想,用值矩陣建模學(xué)生對于各個知識點的掌握程度,考察習(xí)題與各個知識點之間的關(guān)系,追蹤學(xué)生對于各個知識點的掌握程度.Abdelrahman 等人的研究[22]利用注意力機制,著重考察學(xué)生作答相似習(xí)題時的答題歷史,改進(jìn)了 DKVMN.Sun 等人的研究[23]將學(xué)生答題時的行為特征擴展到DKVMN,從而取得更好的預(yù)測效果.Liu 等人的研究[24]利用習(xí)題的文本信息與學(xué)生的學(xué)習(xí)歷史進(jìn)行知識追蹤.Nakagawa 等人的研究[25]用知識圖建模各個知識點之間的關(guān)系,取得了良好的預(yù)測效果.Minn 等人的研究[26]根據(jù)學(xué)生的知識水平對學(xué)生進(jìn)行分類,再對每一類學(xué)生進(jìn)行知識追蹤.Cheng 等人的研究[27]通過深度學(xué)習(xí)擴展了傳統(tǒng)方法項目反映理論.Shen 等人的研究[28]考慮了每個學(xué)生的個性化差異,取得了很好的效果.Ai 等人的研究[29]考慮了知識點之間的包含關(guān)系,重新設(shè)計了記憶矩陣,改進(jìn)了DKVMN,取得了良好的效果.關(guān)于學(xué)生遺忘行為對知識掌握狀態(tài)的影響,Qiu 等人[15]考慮了學(xué)生距離上一次重復(fù)學(xué)習(xí)知識點的間隔時間,將新一天的標(biāo)記加入到BKT 中,建模先前學(xué)習(xí)之后一天的遺忘行為,但是無法對較短時間的遺忘行為進(jìn)行建模.Khajah 等人的研究[14]應(yīng)用學(xué)生重復(fù)學(xué)習(xí)知識點的次數(shù)估計遺忘的概率,改進(jìn)了BKT,提升了預(yù)測準(zhǔn)度.Nagatani 等人的研究[16]考慮了重復(fù)學(xué)習(xí)知識點的次數(shù)、距離上一次學(xué)習(xí)知識點的間隔時間和距離上一次學(xué)習(xí)的間隔時間,改進(jìn)了DKT模型,但忽略了學(xué)生原本對于知識點掌握程度對學(xué)生遺忘程度影響.
總的來說,當(dāng)前的研究可以一定程度上追蹤學(xué)生對于各個知識點的掌握程度,但或者忽略了學(xué)生遺忘行為,默認(rèn)學(xué)生在學(xué)習(xí)間隔前后知識水平一致;或者對于遺忘行為的建模不夠全面.本文所提出的LFKT 模型綜合考察了影響學(xué)生遺忘程度的因素,將學(xué)生的練習(xí)結(jié)果作為學(xué)生知識掌握程度的間接反饋,建模學(xué)生的學(xué)習(xí)與遺忘行為,實時追蹤學(xué)生對于各個知識點的掌握程度,預(yù)測學(xué)生未來學(xué)習(xí)表現(xiàn).
這里,我們定義S為學(xué)生集合,K為知識點集合,E為習(xí)題集合.每個學(xué)生單獨進(jìn)行學(xué)習(xí),互不影響.學(xué)生s的答題歷史Hs=[(e1,r1),(e2,r2),...,(et,rt)],其中:et為學(xué)生t時刻所做的習(xí)題;rt為答題結(jié)果,rt=1 表示答題正確,rt=0 表示答題錯誤.kt?K為習(xí)題et所涉及的知識點集合.矩陣MK(dk×|K|)為整個知識空間中|K|個知識點嵌入表示,其中,dk維列向量為一個知識點的嵌入表示.矩陣為學(xué)生在t?1 時刻的知識空間中知識點嵌入.用|K|維向量valuet?1表示t?1 時刻學(xué)習(xí)結(jié)束時學(xué)生對于各個知識點的掌握程度,其中,向量每一維的值介于(0,1)之間:值為0,表示學(xué)生對于該知識點沒有掌握;值為1,表示學(xué)生對于該知識點已經(jīng)完全掌握.學(xué)生在學(xué)習(xí)過程中會遺忘未復(fù)習(xí)的知識點,同時,學(xué)生在兩次學(xué)習(xí)的間隔時間也會遺忘所學(xué)知識,因此,t?1 時刻學(xué)習(xí)結(jié)束時的知識水平與t時刻學(xué)習(xí)開始時的知識水平不盡相同.本文用矩陣建模學(xué)生在t時刻開始學(xué)習(xí)時的知識掌握狀態(tài).矩陣與形狀相同,是由經(jīng)過遺忘處理后得到.t時刻學(xué)習(xí)結(jié)束,系統(tǒng)獲得學(xué)生答題結(jié)果,LFKT 模型根據(jù)答題結(jié)果將開始學(xué)習(xí)時知識掌握嵌入矩陣更新為學(xué)習(xí)結(jié)束時知識掌握嵌入矩陣,以此建模學(xué)習(xí)行為.預(yù)測學(xué)生在下一個候選習(xí)題et+1上的表現(xiàn)時,由于t時刻學(xué)習(xí)結(jié)束到t+1 時刻開始答題之間存在時間間隔,學(xué)生在時間間隔內(nèi)的遺忘行為會影響知識掌握狀態(tài),因此需要根據(jù)影響知識遺忘的因素將更新為,從而預(yù)測學(xué)生答題表現(xiàn).
基于以上描述,本文將問題定義為:給定每個學(xué)生的學(xué)習(xí)歷史記錄,實現(xiàn)以下兩個目標(biāo).
? 跟蹤學(xué)生的知識狀態(tài)變化;
? 預(yù)測學(xué)生在下一個候選習(xí)題et+1上的表現(xiàn).
學(xué)生如果沒有及時復(fù)習(xí)所學(xué)知識,就會產(chǎn)生遺忘,其對知識的掌握程度便會衰減.教育學(xué)理論艾賓浩斯曲線理論[11,12]表明,學(xué)生對于所學(xué)知識點的保留率受以下兩方面影響:學(xué)生重復(fù)學(xué)習(xí)次數(shù)與時間間隔.時間間隔可以分為重復(fù)學(xué)習(xí)知識點的時間間隔和順序?qū)W習(xí)的時間間隔.除此之外,教育心理學(xué)理論記憶痕跡衰退說[13]認(rèn)為,學(xué)生對于知識點的掌握狀態(tài)也影響著學(xué)生的遺忘程度.因此,本文考慮了以下4 個影響知識遺忘的因素.
? RT(repeated time interval):距離上次學(xué)習(xí)相同知識點的時間間隔;
? ST(sequence time interval):距離上次學(xué)習(xí)的時間間隔;
? LT(repeated learn times):重復(fù)學(xué)習(xí)知識點的次數(shù);
? KL(past knowledge level):學(xué)生原本對于該知識點的掌握程度.
RT,ST 和LT 這3 個標(biāo)量組合在一起得到向量Ct(i)=[RTt(i),STt(i),LTt(i)],表示影響學(xué)生對于知識點i遺忘程度的前3 個因素.每個知識點所對應(yīng)的向量Ct(i)組成矩陣Ct(dc×|K|).本文用向量度量學(xué)生原本對于知識點i的掌握程度,并且將其作為影響學(xué)生對于知識點遺忘程度的第4 個因素(KL).將矩陣Ct與組合在一起,得到矩陣,表示4 個影響知識遺忘的因素.
本文提出了一種融合學(xué)習(xí)與遺忘的深度知識追蹤模型LFKT,如圖1 所示.
Fig.1 LFKT model圖1 LFKT 模型
LFKT 模型分為注意力層(attention layer)、遺忘層(forget layer)、預(yù)測層(prediction layer)、學(xué)習(xí)層(learn layer)以及知識水平輸出層(knowledge level output layer):注意力層以習(xí)題et以及習(xí)題所涵蓋的知識點集合kt作為輸入,計算習(xí)題與各個知識點的知識相關(guān)權(quán)重;遺忘層根據(jù)第3.1 節(jié)中提出的影響知識遺忘的4 個因素將學(xué)生上一時刻學(xué)習(xí)結(jié)束時知識掌握嵌入矩陣更新為當(dāng)前時刻學(xué)習(xí)開始時知識掌握嵌入矩陣,有效地對學(xué)生遺忘行為進(jìn)行建模;預(yù)測層根據(jù)t+1 時刻開始答題時的預(yù)測學(xué)生的答題表現(xiàn);學(xué)習(xí)層通過LSTM 網(wǎng)絡(luò)將本次學(xué)習(xí)開始時的更新為本次學(xué)習(xí)結(jié)束時的,對學(xué)生學(xué)習(xí)行為進(jìn)行建模;知識水平輸出層以學(xué)生本次學(xué)習(xí)結(jié)束時的作為輸入,輸出學(xué)生知識水平向量valuet,實時輸出學(xué)生對于各個知識點的掌握程度.
3.2.1 注意力層
注意力層的作用是計算習(xí)題與知識點之間的知識相關(guān)權(quán)重.注意力層的輸入是學(xué)生當(dāng)前練習(xí)題目et以及題目所涉及的知識點集合kt.為了將et映射到連續(xù)的向量空間,用et乘以習(xí)題嵌入矩陣A(dk×|E|),生成一個dk維度的習(xí)題嵌入向量vt.其中,矩陣A中每一個dk維列向量為一道習(xí)題的嵌入表示.專家標(biāo)注了每道習(xí)題所涵蓋的知識點,存放于集合kt中.本文通過知識點過濾器(K-Filter)濾掉不相關(guān)知識點,保留習(xí)題涵蓋知識點.矩陣Rt存儲習(xí)題涵蓋知識點的嵌入向量,其中,矩陣Rt中每一個dk維列向量為習(xí)題涵蓋的一個知識點的嵌入向量.計算習(xí)題嵌入向量vt與涵蓋知識點嵌入向量Rt(i)之間的內(nèi)積,再計算內(nèi)積的Softmax值并存入向量RSt中.向量RSt表示習(xí)題vt與習(xí)題涵蓋知識點之間的知識相關(guān)權(quán)重,如公式(1)所示:
|K|維向量wt為習(xí)題與全部知識點之間的知識相關(guān)權(quán)重向量.由于習(xí)題涵蓋知識點被知識點過濾器濾出,模型需要將習(xí)題涵蓋知識點的知識相關(guān)權(quán)重放入到wt對應(yīng)的位置上.首先,初始化|K|維全零向量wt,即wt←[0,…,0];之后,將RSt每一維的權(quán)重放入到wt的相應(yīng)位置上,即wt[kt[i]]←RSt[i],得到習(xí)題與各個知識點的知識相關(guān)權(quán)重.
3.2.2 遺忘層
遺忘層根據(jù)第3.1 節(jié)中介紹的影響知識遺忘的因素Ft對上一次學(xué)習(xí)結(jié)束時學(xué)生的知識掌握嵌入矩陣進(jìn)行遺忘處理,得到學(xué)生本次學(xué)習(xí)開始時的知識掌握嵌入矩陣受LSTM中遺忘門與輸入門的啟發(fā),根據(jù)影響知識遺忘的因素Ft更新時,首先要擦除中原有的信息,再寫入信息.對于遺忘行為建模來說,擦除過程控制學(xué)生知識點掌握程度的衰退,寫入過程控制學(xué)生知識點掌握程度的更新.遺忘層如圖2 所示.
Fig.2 Forget layer圖2 遺忘層
利用一個帶有Sigmoid激活函數(shù)的全連接層將影響學(xué)生對知識點i遺忘程度的因素Ft(i)轉(zhuǎn)換為知識點i對應(yīng)的記憶擦除向量fet(i):
全連接層的權(quán)重矩陣FE的形狀是(dv+dc)×dv,全連接層的偏置向量bfe為dv維.記憶擦除向量fet(i)是一個維度為dv的列向量,向量中的所有值都是在(0,1)范圍之內(nèi).利用一個帶有Tanh 激活函數(shù)的全連接層將影響學(xué)生對知識點i遺忘程度的因素Ft(i)轉(zhuǎn)換為知識點i對應(yīng)的記憶更新向量fat(i):
全連接層的權(quán)重矩陣FA的形狀是(dv+dc)×dv,全連接層的偏置向量bfa為dv維,記憶更新向量fat(i)是一個維度為dv的列向量.根據(jù)記憶擦除向量與記憶更新向量對更新得到
3.2.3 學(xué)習(xí)層學(xué)習(xí)層根據(jù)學(xué)生答題結(jié)果追蹤學(xué)習(xí)過程中的知識掌握變化,將學(xué)生開始學(xué)習(xí)時知識掌握嵌入矩陣更新為學(xué)生學(xué)習(xí)結(jié)束時知識掌握嵌入矩陣,建模學(xué)習(xí)行為.元組(et,rt)表示學(xué)生在時間t的答題結(jié)果,為了將元組(et,rt)映射到連續(xù)的向量空間,元組(et,rt)與大小為dv×2|E|的答題結(jié)果嵌入矩陣B相乘,得到dv維答題結(jié)果嵌入向量st.學(xué)習(xí)層將答題結(jié)果嵌入向量st和習(xí)題對應(yīng)的知識相關(guān)權(quán)重向量wt作為輸入,利用學(xué)生在在線教育系統(tǒng)中的練習(xí)結(jié)果作為學(xué)生學(xué)習(xí)效果的間接反饋,通過LSTM 網(wǎng)絡(luò)更新學(xué)生學(xué)習(xí)過程中的知識掌握狀態(tài),建模學(xué)習(xí)行為:
3.2.4 預(yù)測層
預(yù)測層的目的是預(yù)測學(xué)生在下一個候選習(xí)題et+1上的表現(xiàn).由于學(xué)生在兩次答題間隔內(nèi)的遺忘行為會影響其知識掌握狀態(tài),預(yù)測層根據(jù)當(dāng)前時刻開始答題時的知識掌握嵌入矩陣預(yù)測學(xué)生正確回答習(xí)題et+1的概率.將知識相關(guān)權(quán)重wt+1與當(dāng)前時刻開始答題時學(xué)生知識掌握嵌入加權(quán)求和,得到的向量dt+1為學(xué)生對于習(xí)題涵蓋知識點的加權(quán)掌握程度嵌入向量:
學(xué)生成功解答習(xí)題,不僅與學(xué)生對于習(xí)題涵蓋知識點的綜合掌握程度有關(guān),還與習(xí)題本身有關(guān),所以將向量dt+1和vt+1連接得到的組合向量[dt+1,vt+1]輸入到帶有Tanh激活函數(shù)的全連接層,輸出向量ht+1包含了學(xué)生對習(xí)題涵蓋知識點的綜合掌握程度和習(xí)題本身的特點.其中,矩陣W1和向量b1分別表示全連接層的權(quán)重與偏置:
最后,將向量ht+1輸入到一個帶有Sigmoid激活函數(shù)的全連接層中,得到表示學(xué)生答對習(xí)題的概率pt+1.其中,矩陣W2和向量b2分別表示全連接層的權(quán)重與偏置:
3.2.5 知識水平輸出層
在預(yù)測層中,每一個時間節(jié)點t,公式(7)、公式(8)根據(jù)兩種輸入預(yù)測學(xué)生在特定習(xí)題et上的表現(xiàn):學(xué)生對于該習(xí)題涵蓋知識點的綜合掌握嵌入向量dt和習(xí)題嵌入向量vt.因此,如果只是想估計在沒有任何習(xí)題輸入情況下學(xué)生對于第i個知識點的掌握情況,可以省略習(xí)題嵌入vt,同時,讓學(xué)生知識掌握嵌入矩陣的第i列作為等式的輸入.圖3 展示了知識水平輸出層的詳細(xì)過程.具體來說:學(xué)習(xí)層輸出矩陣后,為了估計對于第i個知識點的掌握程度,構(gòu)造了權(quán)重向量βi=(0,…,1,…,0),其中,第i維的值等于1,并用公式(9)提取第i個知識點的知識掌握嵌入向量,之后,使用公式(10)、公式(11)估計知識掌握水平:
向量0=(0,0,…,0)與習(xí)題嵌入vt維度相同,用于補齊向量維度.參數(shù)W1,W2,b1,b2與公式(7)和公式(8)中的完全相同.依次計算知識空間中每一個知識的掌握程度,得到學(xué)生知識掌握程度向量valuet.
Fig.3 Knowledge level output layer圖3 知識水平輸出層
3.2.6 模型優(yōu)化目標(biāo)
模型需要訓(xùn)練的參數(shù)主要是習(xí)題嵌入矩陣A、答題結(jié)果嵌入矩陣B、神經(jīng)網(wǎng)絡(luò)權(quán)重與偏置以及知識點矩陣MK.本文通過最小化模型對于學(xué)生答題結(jié)果的預(yù)測值pt和學(xué)生答題的真實結(jié)果rt之間的交叉熵?fù)p失函數(shù)來優(yōu)化各個參數(shù).損失函數(shù)如公式(12)所示,本文使用Adam 方法優(yōu)化參數(shù):
本文在兩個真實在線教育數(shù)據(jù)集上進(jìn)行實驗,通過對比LFKT 模型與其他知識追蹤模型的預(yù)測性能以及知識追蹤表現(xiàn),證明LFKT 模型的有效性.
首先介紹實驗所使用的兩個真實在線教育數(shù)據(jù)集.
? ASSISTments2012:該數(shù)據(jù)集來自于ASSISTments 在線教育平臺.本文刪除了學(xué)習(xí)記錄數(shù)過少(<3)的學(xué)生信息,經(jīng)過預(yù)處理后,數(shù)據(jù)集包含45 675 個學(xué)生、266 個知識點以及總計5 818 868 條學(xué)習(xí)記錄.數(shù)據(jù)集中,user_id 字段表示學(xué)生編號,skill_id 字段表示知識點編號,problem_id 字段表示題目編號,correct字段表示學(xué)生真實答題結(jié)果,start_time 字段表示學(xué)生本次開始學(xué)習(xí)的時間,end_time 字段表示學(xué)生本次學(xué)習(xí)結(jié)束的時間;
? slepemapy.cz:該數(shù)據(jù)集來自于地理在線教育系統(tǒng).本文同樣刪除學(xué)習(xí)記錄數(shù)過少(<3)的學(xué)生信息,經(jīng)過預(yù)處理后,數(shù)據(jù)集包含87 952 個學(xué)生、1 458 個知識點以及總計10 087 305 條學(xué)習(xí)記錄.數(shù)據(jù)集中,user字段表示學(xué)生編號,place_answered 字段表示學(xué)生真實答題結(jié)果,response_time 字段表示學(xué)生學(xué)習(xí)時間,place_asked 字段表示問題編號.其中,由于該數(shù)據(jù)集中每個問題僅僅考察一個知識點,因此place_asked 也是知識點編號.
本文使用平均AUC(area under the curve)、平均ACC(accurary)和平均RMSE(root mean squared error)作為評估預(yù)測性能的指標(biāo).AUC 被定義為ROC 曲線與下坐標(biāo)軸圍成的面積,50%的AUC 值表示隨機猜測獲得的預(yù)測性能,高AUC 值說明模型具有較高的預(yù)測性能.ACC 為準(zhǔn)確率,即正確預(yù)測結(jié)果占全部結(jié)果的百分比,高ACC值說明模型具有較高的預(yù)測性能.RMSE 被定義為預(yù)測值與真實值的均方根誤差,RMSE 的值越低,說明模型的預(yù)測性能越好.對于每一個模型,本文都進(jìn)行30 次測試,取平均AUC 值、平均ACC 值和平均RMSE 值.
為了評估LFKT 模型的性能,本文選擇貝葉斯知識追蹤[5]、深度知識追蹤[8]和動態(tài)鍵-值對記憶網(wǎng)絡(luò)[9]這3個經(jīng)典KT 模型作為對比方法.對比方法的參數(shù)設(shè)置如下.
? BKT[5]:實驗設(shè)置4 個主要參數(shù):L0表示學(xué)生未開始作答時對題目考察知識點的掌握程度,T為學(xué)生作答后對知識點掌握程度從不會到會的概率,G為學(xué)生沒掌握該知識點但是答對題目的概率,S表示學(xué)生掌握知識點但是答錯題目的概率.BKT 利用以上參數(shù)構(gòu)造一個隱馬爾可夫模型,并使用EM 算法求解參數(shù);
? DKT[8]:實驗按照Piech 等人[8]的方法設(shè)置超參數(shù).循環(huán)神經(jīng)網(wǎng)絡(luò)GRU 隱藏層的大小為200,批處理大小設(shè)置為30,使用Adam 作為優(yōu)化器,學(xué)習(xí)率為0.001;
? DKVMN[9]:本文使用Zhang 等人[9]的方法設(shè)置超參數(shù).對于ASSISTments2012 數(shù)據(jù)集,記憶矩陣列數(shù)為20,隱藏向量的大小為30.對于slepemapy.cz 數(shù)據(jù)集,記憶矩陣列數(shù)為320,隱藏向量大小為128.批處理大小為30,使用Adam 作為優(yōu)化器,學(xué)習(xí)率為0.001.
LFKT 模型:對于ASSISTments2012 數(shù)據(jù)集,知識嵌入矩陣的列數(shù)為266.對于slepemapy.cz 數(shù)據(jù)集,知識嵌入矩陣的列數(shù)為1 458.批處理大小為30,采用Adam 優(yōu)化器,學(xué)習(xí)率為0.001.對于知識點嵌入向量的維度dk和學(xué)生知識掌握程度嵌入向量的維度dv的超參數(shù)設(shè)置,本文通過比較模型在測試數(shù)據(jù)集上的平均AUC值進(jìn)行選取.為了減少參數(shù)數(shù)量,本文設(shè)d=dk=dv,測試結(jié)果見表1.ASSISTments2012 數(shù)據(jù)集中,當(dāng)d=dk=dv=32 時,平均AUC 值為0.7513,高于其他超參數(shù)設(shè)置情況.在slepemapy.cz 數(shù)據(jù)集中,當(dāng)d=dk=dv=128 時,平均AUC值為0.8032,高于其他超參數(shù)設(shè)置.通過對比可知:當(dāng)d=dk=dv設(shè)置過低時,模型的學(xué)習(xí)能力較低;當(dāng)d=dk=dv設(shè)置過高時候,模型參數(shù)過多,容易造成過擬合.因此,對于ASSISTments2012 數(shù)據(jù)集,設(shè)dk=dv=32;對于slepemapy.cz 數(shù)據(jù)集,設(shè)dk=dv=128.
Table 1 AUC results of different hyperparameters表1 不同超參數(shù)設(shè)置下AUC 值對比實驗結(jié)果
知識追蹤的基本任務(wù)之一是,預(yù)測學(xué)生當(dāng)前對于下一道候選習(xí)題的答題表現(xiàn).通過對比模型的預(yù)測結(jié)果與學(xué)生的真實答題結(jié)果,比較模型的預(yù)測性能.本文隨機地將數(shù)據(jù)集中70%的數(shù)據(jù)作為訓(xùn)練集,另外20%的數(shù)據(jù)作為測試集,10%的數(shù)據(jù)作為驗證集,用于超參數(shù)的調(diào)整與早期停止.
表2 給出了LFKT 與3 個對比方法在兩個數(shù)據(jù)集上的平均AUC 值、平均ACC 值和平均RMSE 值的對比結(jié)果.LFKT 在兩個數(shù)據(jù)集上的平均AUC 值、平均ACC 值和平均RMSE 值均優(yōu)于其他3 種對比方法.這一結(jié)果表明,LFKT 模型在預(yù)測學(xué)生未來表現(xiàn)方面性能是優(yōu)于現(xiàn)有模型的.從實驗對比結(jié)果可以看出,BKT 在兩個數(shù)據(jù)集上的預(yù)測性能最低.這說明BKT 將學(xué)生對于某一知識點的潛在知識水平建模為二進(jìn)制變量是具有局限性的.DKT 利用循環(huán)神經(jīng)網(wǎng)絡(luò)的潛在向量建模學(xué)生整體的知識水平,無法建模學(xué)生對于各個知識點的掌握程度,因此DKT 在兩個數(shù)據(jù)集上的預(yù)測性能低于DKVMN 和LFKT.DKVMN 與LFKT 都可以建模學(xué)生對于各個知識點的掌握程度,但是DKVMN 忽略了學(xué)生在學(xué)習(xí)期間的遺忘行為,默認(rèn)學(xué)生對未復(fù)習(xí)知識點的掌握程度一直不變,這存在一定的局限性,因此LFKT 的預(yù)測性能強于DKVMN.
Table 2 Prediction results of models表2 模型預(yù)測性能對比實驗結(jié)果
除此之外,本文測試了去掉遺忘層后LFKT 模型的預(yù)測表現(xiàn).LFKT 模型去掉遺忘層以后,忽略了學(xué)生的遺忘行為,默認(rèn)學(xué)生在學(xué)習(xí)間隔內(nèi),知識水平不會發(fā)生任何變化,即.實驗結(jié)果顯示:去掉遺忘層后,LFKT模型的預(yù)測性能較沒去掉遺忘層時有所下降.這表明學(xué)生的遺忘行為對其知識水平有所影響,本文所提出的影響知識遺忘的因素是十分有效的.
知識追蹤的另一個基本任務(wù)是實時輸出學(xué)生對于各個知識點的掌握程度.本文進(jìn)行以下實驗驗證LFKT 模型在知識追蹤任務(wù)上的有效性.
本文截取了數(shù)據(jù)集ASSISTments2012 中一位學(xué)生在一段時間內(nèi)的學(xué)習(xí)記錄,并分別使用LFKT 模型和DKVMN 模型追蹤學(xué)生對于5 個知識點掌握程度的變化,如圖4 和圖5 所示.圖中橫軸表示學(xué)生的學(xué)習(xí)歷史,元組(kt,rt)中kt表示學(xué)生學(xué)習(xí)的知識點,rt表示學(xué)生作答情況.縱軸表示模型追蹤的5 個知識點.
Fig.4 Knowledge level output result of LFKT in ASSISTments2012圖4 ASSISTments2012 數(shù)據(jù)集LFKT 知識水平輸出結(jié)果
Fig.5 Knowledge level output result of DKVMN in ASSISTments 2012圖5 ASSISTments 2012 數(shù)據(jù)集DKVMN 知識水平輸出結(jié)果
實驗結(jié)果顯示:在第2 時刻,學(xué)生對知識點0 答題正確后,DKVMN 和LFKT 模型對學(xué)生知識點0 掌握程度的追蹤結(jié)果都有所提高(輸出值增加);在第4 時刻,學(xué)生對知識點3 對應(yīng)習(xí)題答題錯誤后,DKVMN 模型和LFKT模型對學(xué)生知識點3 的掌握程度的追蹤結(jié)果都有所下降.以上結(jié)果說明:DKVMN 模型和LFKT 模型在獲得學(xué)生作答結(jié)果以后,都會根據(jù)學(xué)生的作答結(jié)果更新對應(yīng)知識點的掌握程度,以此建模學(xué)生的學(xué)習(xí)過程.圖4 和圖5中,學(xué)生第2 時刻學(xué)生學(xué)習(xí)知識點0 到第10 時刻第2 次學(xué)習(xí)知識點0 期間,DKVMN 模型并沒有更新學(xué)生對于知識點0 的掌握程度,而LFKT 模型顯示學(xué)生對于知識點0 的掌握程度一直在下降.由此可以看出:DKVMN 模型沒有考慮學(xué)習(xí)者在學(xué)習(xí)期間的遺忘行為,而LFKT 模型考慮了學(xué)習(xí)者在學(xué)習(xí)期間的遺忘行為.以上結(jié)果表明:LFKT 模型與DKVMN 模型都可以建模學(xué)生的學(xué)習(xí)行為,DKVMN 模型無法建模學(xué)生的遺忘行為,而LFKT 模型可以建模學(xué)生的遺忘行為,并實時追蹤學(xué)生對于各個知識點的掌握程度.
本文在slepemapy.cz 測試數(shù)據(jù)集中隨機抽取3 名學(xué)生在一段時間內(nèi)的學(xué)習(xí)記錄,并分別使用LFKT 模型與DKVMN 模型輸出其對5 個知識點的掌握程度.3 名學(xué)生的部分答題序列如下.
?Ha=[(1,1),(2,1),(3,1),(4,0),(5,0),(6,0),(1,0),(2,1),(3,1),(4,0),(5,1),(6,1)];
?Hb=[(6,1),(5,1),(4,1),(3,1),(2,1),(1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(1,1)];
?Hc=[(1,1),(2,1),(3,1),(4,0),(5,1),(6,1),(1,1),(2,1),(3,0),(4,1),(5,0),(6,0)].
序列中的每一項(kt,rt)表示學(xué)生作答的結(jié)果,其中,kt表示學(xué)生當(dāng)前作答習(xí)題所涵蓋的知識點,rt表示學(xué)生的答題結(jié)果,結(jié)果為0 表示答錯,結(jié)果為1 表示答對.
Fig.6 Knowledge level output result in slepemapy.cz圖6 slepemapy.cz 數(shù)據(jù)集知識水平輸出結(jié)果
LFKT 模型與DKVMN 模型對學(xué)生各個知識點掌握程度的追蹤情況如圖6 所示,其中:實線表示LFKT 模型對于學(xué)生知識點掌握程度的追蹤情況,虛線表示DKVMN 模型對于學(xué)生知識點掌握程度的追蹤情況.以圖6(c)為例,學(xué)生a在第3 時刻正確回答涵蓋知識點3 的習(xí)題,LFKT 與DKVMN 輸出的知識點掌握程度值均在第3時刻后開始增加.該結(jié)果說明,LFKT 與DKVMN 均可以根據(jù)學(xué)生的答題結(jié)果建模學(xué)生學(xué)習(xí)行為.圖6(a)中,學(xué)生a在第8 時刻后一直沒有復(fù)習(xí)知識點1,在第8 時刻以后,DKVMN 輸出的對應(yīng)知識點掌握程度值變化很小,但LFKT 輸出值變化較大,呈持續(xù)下降趨勢.該結(jié)果說明:LFKT 模型可以建模學(xué)生的遺忘行為,追蹤到學(xué)生由于遺忘而產(chǎn)生的知識掌握程度變化;但DKVMN 忽略了學(xué)生的遺忘行為,無法追蹤學(xué)生由遺忘產(chǎn)生的知識水平變化.本文匯總了ASSISTments2012 測試集中所有學(xué)生答對一道習(xí)題后的答題序列,記錄LFKT 輸出的知識點掌握程度,并記錄學(xué)生下一次作答涉及該知識點習(xí)題時LFKT 輸出的知識點掌握程度,求解下一次答題時LFKT輸出的知識點掌握程度距上一次答題結(jié)束時LFKT 輸出的知識點掌握程度的衰減比例,即valuet+1(i)/valuet(i).圖7 顯示了學(xué)生平均知識掌握程度衰減比例與重復(fù)學(xué)習(xí)知識點次數(shù)與時間間隔之間的關(guān)系.縱軸表示重復(fù)學(xué)習(xí)知識點次數(shù),單位為“次”;橫軸表示距離上次學(xué)習(xí)知識點的間隔時間,單位為“分鐘”.數(shù)據(jù)集中的間隔時間從0分到幾天不等,因此本文通過log2(RT)的方法降低橫軸的長度.由結(jié)果可知,LFKT 模型再現(xiàn)了學(xué)生復(fù)雜的遺忘行為,即:在相同間隔時間的情況下,重復(fù)學(xué)習(xí)次數(shù)越多,由于遺忘引起的知識點掌握程度的衰減比例越低;在相同重復(fù)學(xué)習(xí)次數(shù)的情況下,間隔時間越長,由于遺忘引起的知識點掌握程度衰減比例越大.由此可以看出:LFKT可以根據(jù)影響知識遺忘的因素挖掘遺忘規(guī)律,建模遺忘行為,準(zhǔn)確計算出由于遺忘引起的知識掌握程度變化.
Fig.7 Quantized distribution map of knowledge level decline ratio of LFKT against repeated time interval and repeated learn times圖7 LFKT 知識水平輸出衰減比例與間隔時間和重復(fù)次數(shù)的量化分布圖
本文重點考慮了學(xué)生遺忘行為對其知識掌握程度的影響,提出了融合學(xué)習(xí)與遺忘的深度知識追蹤模型LFKT.實驗表明,LFKT 在預(yù)測學(xué)生答題表現(xiàn)方面優(yōu)于傳統(tǒng)知識追蹤模型BKT,DKT 和DKVMN.LFKT 在追蹤學(xué)生知識水平變化時,不但可以根據(jù)學(xué)生答題情況追蹤學(xué)生學(xué)習(xí)過程中的知識水平變化,還可以體現(xiàn)由復(fù)雜知識遺忘因素導(dǎo)致的學(xué)生遺忘行為,并實時追蹤由于學(xué)生遺忘造成的知識水平變化過程.
在未來的研究中,我們將針對以下方面進(jìn)行探索.
(1)知識點之間的關(guān)系特征對知識追蹤的影響.知識點之間存在先驗、后驗、包含等關(guān)系,需要明確知識點之間的關(guān)系特征,進(jìn)而準(zhǔn)確推測學(xué)生對于各個知識點的掌握程度;
(2)本文所采用數(shù)據(jù)集中習(xí)題涉及的知識點相對較少,比較容易根據(jù)學(xué)生的答題結(jié)果追蹤學(xué)生對于習(xí)題考察知識點的掌握程度.對于覆蓋知識點數(shù)量較高的習(xí)題,如綜合性習(xí)題,會導(dǎo)致知識點掌握程度的不確定性.知識點高覆蓋率下的知識追蹤,也是我們下一步的研究工作.