陳 晨,劉 娟,沈 恂,郭 城
(蚌埠學(xué)院計(jì)算機(jī)與信息工程學(xué)院,蚌埠 233030)
本校已開(kāi)展C++慕課(MOOC)和網(wǎng)絡(luò)習(xí)題平臺(tái)作為教學(xué)輔助手段多年,新冠疫情更是讓慕課和網(wǎng)課迅速發(fā)展,成為2020 年后的主流教學(xué)方式。教學(xué)過(guò)程中發(fā)現(xiàn)的主要問(wèn)題有:學(xué)生知識(shí)水平不一,缺乏課堂教學(xué)實(shí)時(shí)反饋,教師難以根據(jù)薄弱環(huán)節(jié)及時(shí)調(diào)整,學(xué)生不易發(fā)現(xiàn)自己的知識(shí)薄弱點(diǎn)并有針對(duì)性地進(jìn)行加強(qiáng)鞏固。因此,急需一種可以幫助學(xué)生迅速定位知識(shí)薄弱點(diǎn)的方法。針對(duì)此種情況,我們?cè)贑++課程教學(xué)中引入了一種基于自注意力深度知識(shí)追蹤和協(xié)同過(guò)濾的C++教學(xué)輔助方法,利用一種改進(jìn)后的自注意力深度知識(shí)追蹤算法SAINT-Lite 發(fā)現(xiàn)知識(shí)薄弱點(diǎn),再結(jié)合協(xié)同過(guò)濾(Collaborative Filtering,CF)進(jìn)行個(gè)性化習(xí)題。本文將這種方法稱為SAINT-Lite-CF。
知識(shí)追蹤(Knowledge Tracing)是一個(gè)時(shí)間序列問(wèn)題,根據(jù)學(xué)生過(guò)去的習(xí)題作答情況,預(yù)測(cè)未來(lái)的答題正確率,反映學(xué)生對(duì)知識(shí)點(diǎn)的動(dòng)態(tài)掌握情況。貝葉斯知識(shí)追蹤(Bayesian Knowl?edge Tracing,BKT)[1]是經(jīng)典的非深度知識(shí)追蹤方法。深度知識(shí)追蹤(Deep Knowledge Tracing,DKT)[2]開(kāi)創(chuàng)了深度知識(shí)追蹤方法,主要結(jié)構(gòu)為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM),隨后動(dòng)態(tài)鍵值對(duì)記憶網(wǎng)絡(luò)(Dynamic Key-Value Memory Networks,DKVMN)[3]之類的改進(jìn)均基于RNN和LSTM。扇貝、英語(yǔ)流利說(shuō)等大量網(wǎng)絡(luò)教學(xué)平臺(tái)廣泛應(yīng)用基于LSTM 的DKT算法進(jìn)行知識(shí)追蹤。DKT 的不足是需要海量數(shù)據(jù),RNN和LSTM依次處理時(shí)間序列數(shù)據(jù),訓(xùn)練時(shí)間長(zhǎng),難以應(yīng)用到高校專業(yè)課程這種小規(guī)模教學(xué)上。Transformer[4]提出自注意力機(jī)制,對(duì)小數(shù)據(jù)集也有很好的性能,Transformer 結(jié)構(gòu)實(shí)現(xiàn)了時(shí)間序列數(shù)據(jù)的并行處理,可以一次處理數(shù)十個(gè)甚至上百個(gè)時(shí)刻數(shù)據(jù),大大提高訓(xùn)練和執(zhí)行效率。SAKT(Self-Attention Knowledge Tracing)[5]是基于自注意力的第一篇知識(shí)追蹤論文,使用習(xí)題(Exercise)和答案(Result)成對(duì)組成的交互(Interaction)信息,隨后的SAINT(Separated Self-Attention Neural Knowledge Tracing)[6]和SAINT+[7]相對(duì)SAKT 的主要改進(jìn)是引入編碼器(Encoder)和解碼器(Decoder),習(xí)題和答案信息分別進(jìn)入編碼器和解碼器處理,實(shí)驗(yàn)表明這種方式性能更佳。本文工作主要基于SAINT展開(kāi)。
令習(xí)題庫(kù)總習(xí)題數(shù)為M,某學(xué)生從t1時(shí)刻到ti時(shí)刻做題序列定義為{I1,I2,I3,…,Ii},Ii為{Ei,Ri},其中:I 是Interaction(交互),表示在第i時(shí)刻學(xué)生的一次做題行為,E 是Exercise(習(xí)題),表示習(xí)題庫(kù)中一道習(xí)題;R 是Result(答案),表示對(duì)應(yīng)習(xí)題學(xué)生答案。知識(shí)追蹤的任務(wù)是根據(jù)t1到ti時(shí)刻序列預(yù)測(cè)ti+1時(shí)刻學(xué)生回答所有習(xí)題正確概率,表示為一個(gè)M維向量,每1 位取值區(qū)間為[0,1]。
相比DKT 論文中常用的Synthetic、ASSIST和STATICS 數(shù)據(jù)集,本文實(shí)際處理數(shù)據(jù)集規(guī)模較小,為避免模型過(guò)擬合和難以收斂,我們對(duì)SAINT 模型進(jìn)行裁剪,將其稱為SAINT-Lite。后續(xù)實(shí)驗(yàn)和實(shí)踐證明,裁剪后的模型在處理小數(shù)據(jù)集時(shí),可以獲得較好性能。本文提出方法的整體結(jié)構(gòu)見(jiàn)圖1。
圖1 SAINT-Lite-CF 主要結(jié)構(gòu)
總體結(jié)構(gòu)包括編碼器、解碼器和最后的全連接層。編碼器的輸出作為解碼器的輸入,解碼器的輸出作為線性層的輸入。
編碼器由一個(gè)習(xí)題嵌入層(Exercise Embed?ding Layer)和多個(gè)編碼器層組成,習(xí)題和位置信息經(jīng)過(guò)嵌入表示后分別生成d_model 維度向量,這些向量相加并輸入習(xí)題嵌入層。每個(gè)編碼器層由一個(gè)多頭注意力運(yùn)算模塊、點(diǎn)式前饋網(wǎng)絡(luò)(Point-wise Feed-Forward Networks)和層歸一化組成,且每層在其周圍有一個(gè)殘差連接。點(diǎn)式前饋網(wǎng)絡(luò)是全連接神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),目的是提高模型非線性能力。殘差連接用于避免深度網(wǎng)絡(luò)中梯度消失問(wèn)題。
每個(gè)多頭注意力運(yùn)算模塊有三個(gè)輸入,分別是:Q(查詢,Query)、K(主鍵,Key)、V(數(shù)值,Value),其計(jì)算過(guò)程分成四個(gè)步驟:QKV線性層分拆成多頭,按照比例縮放的點(diǎn)積注意力多頭級(jí)聯(lián)(Concat),最后一層線性層。以上過(guò)程用公式表示為
其中Mask是上三角掩膜,F(xiàn)FN是點(diǎn)式前饋網(wǎng)絡(luò)。
解碼器由一個(gè)答案嵌入層(Result Embed?ding Layer)和多個(gè)解碼器層組成,答案和位置信息經(jīng)過(guò)嵌入表示后生成d_model維度向量,這些向量相加并輸入答案嵌入層。每個(gè)解碼器層由兩個(gè)多頭注意力運(yùn)算模塊、點(diǎn)式前饋網(wǎng)絡(luò)和層歸一化組成,第二層多頭注意力模塊的V和K接收編碼器輸出作為輸入,Q接收第一層多頭注意力模塊的輸出,每層在其周圍同樣有一個(gè)殘差連接。解碼器關(guān)注編碼器的輸出及其自身輸入(自注意力),來(lái)預(yù)測(cè)下一個(gè)時(shí)刻做題的正確概率。
嵌入表示后的習(xí)題矩陣分別作為Q、K、V輸入編碼器(各自權(quán)重不同),輸出O分別作為V、K(各自權(quán)重不同)輸入解碼器的第二層多頭自注意力模塊。嵌入表示后的答案矩陣分別作為另一套Q、K、V(各自權(quán)重不同)輸入解碼器。Q是解碼器第一層多頭自注意力模塊的輸出。編碼器過(guò)程用公式表示為
X在第一個(gè)編碼器層是習(xí)題嵌入層輸出,其余編碼器層是上一個(gè)編碼器層的輸出,Oenc是編碼器輸出,LayerNorm 是層歸一化。解碼器過(guò)程用公式表示為
X在第一個(gè)解碼器層是答案嵌入層輸出,其余解碼器層是上一個(gè)解碼器層的輸出,Odec是解碼器輸出。解碼器的最后輸出經(jīng)過(guò)一個(gè)全連接層,采用Sigmod 激活函數(shù),輸出每個(gè)知識(shí)點(diǎn)掌握情況,并映射回所有習(xí)題正確概率。
令共有I個(gè)學(xué)生,習(xí)題庫(kù)共M個(gè)習(xí)題,N個(gè)知識(shí)點(diǎn),習(xí)題同知識(shí)點(diǎn)是多對(duì)多關(guān)系,Km表示第m個(gè)習(xí)題對(duì)應(yīng)的N位一維知識(shí)點(diǎn)向量,每位取0 或1,K為所有習(xí)題對(duì)應(yīng)知識(shí)點(diǎn)的M×N矩陣。SAINT-Lite 輸入時(shí)只使用主要知識(shí)點(diǎn)ID,輸出N維向量SKi,表示第i個(gè)學(xué)生所有知識(shí)點(diǎn)掌握情況,以主要知識(shí)點(diǎn)ID 預(yù)測(cè)結(jié)果表示習(xí)題ID 預(yù)測(cè)結(jié)果,將N維向量映射回M維,令其為SEi,所有學(xué)生向量組成I×M的答題正確概率矩陣SE。用答題正確概率矩陣點(diǎn)乘所有習(xí)題對(duì)應(yīng)知識(shí)點(diǎn)矩陣,即SE×K,歸一化后得到所有學(xué)生知識(shí)水平矩陣Y。令Yi表示第i個(gè)學(xué)生的知識(shí)水平向量,Yij表示第i個(gè)學(xué)生對(duì)第j個(gè)知識(shí)點(diǎn)的掌握情況,則KPj為第j個(gè)知識(shí)點(diǎn)均值:
所有KPj組成N維知識(shí)水平均值向量(KP1,KP2,KP3,…,KPN),對(duì)KPj小于閾值(本文取0.5)的知識(shí)點(diǎn)向教師進(jìn)行教學(xué)預(yù)警,表明此知識(shí)點(diǎn)是共性的薄弱環(huán)節(jié),教師應(yīng)進(jìn)行集中復(fù)習(xí)講解,對(duì)特定學(xué)生KPj過(guò)低的知識(shí)點(diǎn)向該學(xué)生提示重新學(xué)習(xí)課程。
獲得學(xué)生答題正確概率矩陣后,使用協(xié)同過(guò)濾來(lái)進(jìn)行個(gè)性化習(xí)題推薦。協(xié)同過(guò)濾目前廣泛應(yīng)用于電子商務(wù)網(wǎng)站的商品推薦,其本質(zhì)思想是找到與當(dāng)前目標(biāo)類似的目標(biāo)群體,即找到水平接近的學(xué)生近鄰集合,預(yù)測(cè)學(xué)生對(duì)沒(méi)有做過(guò)習(xí)題的得分水平。令全體學(xué)生答題正確概率矩陣為U,Ui表示第i行,為第i個(gè)學(xué)生的答題正確概率向量,則Uj為第j個(gè)學(xué)生的答題正確概率向量,遍歷所有行,以余弦相似度判斷Ui和Uj相似度:
得分大于一定閾值(本文取0.9)的作為相似學(xué)生。根據(jù)馬驍睿等[8]提出的方法計(jì)算第i個(gè)學(xué)生的習(xí)題得分向量為
average(NUi)表示同第i個(gè)學(xué)生相似學(xué)生答題正確概率向量的平均值,p取值0 到1,用于調(diào)節(jié)相似學(xué)生對(duì)于習(xí)題得分向量的影響力,p為1時(shí),習(xí)題得分向量完全退化為答題正確概率向量。向?qū)W生推薦預(yù)測(cè)得分在某個(gè)區(qū)間的習(xí)題,對(duì)于預(yù)測(cè)得分過(guò)低甚至為0 的習(xí)題和學(xué)習(xí)內(nèi)容,本文認(rèn)為這樣的內(nèi)容學(xué)生完全沒(méi)有掌握,應(yīng)重新學(xué)習(xí)而不是直接做題。
使用兩個(gè)公開(kāi)數(shù)據(jù)集ASSISTments 2009(以下簡(jiǎn)稱ASSIST)、STATICS 2011(以下簡(jiǎn)稱STATICS)和一個(gè)本文數(shù)據(jù)集來(lái)驗(yàn)證習(xí)題。ASSIST 收集自ASSISTments 教育平臺(tái)2009 年數(shù)據(jù),為高中數(shù)學(xué)題,對(duì)應(yīng)124個(gè)知識(shí)點(diǎn),包含了4217 名學(xué)生共525535 次答題記錄。STATICS 收集自大學(xué)工程力學(xué)課程,對(duì)應(yīng)1223 個(gè)知識(shí)點(diǎn),包含了333 個(gè)學(xué)生共189927 條答題記錄。本文數(shù)據(jù)集來(lái)自本校已使用多年的C++網(wǎng)絡(luò)習(xí)題平臺(tái),共1374 道習(xí)題,對(duì)應(yīng)173 個(gè)C++知識(shí)點(diǎn),采集自2018 年和2019 年不同專業(yè)532 人共32843條答題記錄。為使ASSIST、STATICS 數(shù)據(jù)規(guī)模同本文數(shù)據(jù)集接近,從ASSIST、STATICS中分別抽取一段時(shí)間內(nèi)數(shù)據(jù),處理后所有數(shù)據(jù)集具體信息見(jiàn)表1。數(shù)據(jù)分布上,ASSIST 更接近本文數(shù)據(jù)集,將其稱為稀疏數(shù)據(jù)集,將STATICS稱為稠密數(shù)據(jù)集。
表1 所有數(shù)據(jù)集信息
訓(xùn)練在i7 CPU、16 G 內(nèi)存、GTX 2060 顯卡的機(jī)器上進(jìn)行,使用PyTorch 框架實(shí)現(xiàn),使用Adam 優(yōu)化器,學(xué)習(xí)率0.001,迭代次數(shù)100 次。數(shù)據(jù)集根據(jù)學(xué)生按照8∶2 的比例分為訓(xùn)練集和測(cè)試集。
本文數(shù)據(jù)集中包括以下幾項(xiàng)特征:練習(xí)題ID,對(duì)應(yīng)的一個(gè)主要知識(shí)點(diǎn)ID,對(duì)應(yīng)的多個(gè)附屬知識(shí)點(diǎn)ID,學(xué)生答題結(jié)果。習(xí)題的特征包括習(xí)題對(duì)應(yīng)的主要知識(shí)點(diǎn)ID、位置信息。答案的特征包括回答正確與否(取值0 或1)、位置信息。先預(yù)處理數(shù)據(jù)集,得到每個(gè)學(xué)生對(duì)應(yīng)答題序列,此時(shí)只使用主要知識(shí)點(diǎn)ID,將此序列轉(zhuǎn)換為知識(shí)點(diǎn)獨(dú)熱(one-hot)編碼和答案獨(dú)熱編碼。模型一次并行處理windows_size 個(gè)時(shí)刻數(shù)據(jù),舍棄所有做題數(shù)目不超過(guò)windows_size 的學(xué)生數(shù)據(jù),超過(guò)windows_size 的分拆后分批處理,分拆后不足window_size部分舍棄。
所有特征各自嵌入表示降為d_model維,再求和。由于習(xí)題和答案位置一一對(duì)應(yīng),兩者共享同樣的位置編碼。位置編碼用于保留因并行處理丟失的序列信息,即學(xué)生做題先后順序,反映學(xué)生知識(shí)技能動(dòng)態(tài)掌握程度。
答案的輸入比習(xí)題的輸入推遲一個(gè)時(shí)刻,即在一次訓(xùn)練迭代中,編碼器輸入window_size個(gè)時(shí)刻的習(xí)題信息,解碼器輸入只有win?dow_size-1 個(gè)時(shí)刻的答案信息,最后輸出win?dow_size個(gè)r_,使用上三角掩膜避免模型在使用習(xí)題信息預(yù)測(cè)t時(shí)刻答題正確概率時(shí)參考t時(shí)刻之后的答案信息。訓(xùn)練時(shí)候使用最小化二分類交叉熵?fù)p(Binary Cross Entropy Loss)作為損失函數(shù),計(jì)算輸出和標(biāo)簽的誤差并執(zhí)行反向傳播,優(yōu)化模型參數(shù)。推理時(shí)只關(guān)注最后時(shí)刻輸出的r_。
超參數(shù)n是解碼器/編碼器層堆疊數(shù)(多頭自注意力模塊重復(fù)次數(shù)),SAINT 取4,分別設(shè)置n為2 和4 進(jìn)行消融測(cè)試。深度知識(shí)追蹤一般使用準(zhǔn)確率(Accuracy,ACC)和受試者工作特性(ROC)曲線下面積(Area Under the Curve,AUC),ACC為正確預(yù)測(cè)結(jié)果占全部結(jié)果的百分比,AUC被定義為ROC 曲線與下坐標(biāo)軸圍成的面積,兩個(gè)指標(biāo)均是越高,說(shuō)明模型性能越好,具體計(jì)算方法見(jiàn)SAINT/SAINT+論文。結(jié)果見(jiàn)表2及圖2。
表2 超參數(shù)n的不同取值對(duì)ACC和AUC的影響
圖2 超參數(shù)n的不同取值對(duì)ACC和AUC的影響
n為4 時(shí),在STATICS 上AUC和ACC均升高,表現(xiàn)變好,ASSIST 和本文數(shù)據(jù)集上AUC和ACC均降低,表現(xiàn)變差。n為2 時(shí),在STATICS上表現(xiàn)變差,ASSIST和本文數(shù)據(jù)集上表現(xiàn)變好。本文認(rèn)為n為4 更適合STATICS 類的稠密數(shù)據(jù)集,n為2更適合ASSIST和本文數(shù)據(jù)集類的稀疏數(shù)據(jù)集。本文系統(tǒng)實(shí)際應(yīng)用中n取2。
超參數(shù)d_model是每個(gè)編碼器層或解碼器層輸入或輸出的維數(shù),SAINT 取256 和512,分別設(shè)置d_model 為64、128 和256 進(jìn)行消融測(cè)試。結(jié)果見(jiàn)表3及圖3。
表3 超參數(shù)d_model的不同取值對(duì)ACC和AUC的影響
圖3 超參數(shù)d_model的不同取值對(duì)ACC和AUC的影響
縱向比較,隨著d_model 取值增大,在STATICS 上ACC和AUC均升高。在ASSIST和本文數(shù)據(jù)集上,當(dāng)d_model 是64 或128 時(shí),ACC和AUC 差別不大,甚至在d_model 為256 時(shí),ACC和AUC 均出現(xiàn)下降。橫向比較,d_model 為256或128 時(shí),在STATICS 上ACC和AUC均升高,表現(xiàn)變好;ASSIST 和本文數(shù)據(jù)集上ACC和AUC均降低,表現(xiàn)變差。d_model為64在STATICS上表現(xiàn)變差,ASSIST 和本文數(shù)據(jù)集上表現(xiàn)變好。我們認(rèn)為d_model 為64 即可處理ASSIST 和本文數(shù)據(jù)集類的稀疏數(shù)據(jù)集,更高的取值適合STATICS 類的稠密數(shù)據(jù)集。本文系統(tǒng)實(shí)際應(yīng)用中d_model取64。
超參數(shù)window_size 表示模型一次處理幾個(gè)時(shí)刻的數(shù)據(jù),本文取100。超參數(shù)h表示多頭注意力機(jī)制頭(head)數(shù),SAINT 中取8,本文取2,即64 維(d_model 維)的QKV 被拆分成32 維進(jìn)行注意力計(jì)算。訓(xùn)練時(shí)的超參數(shù)batch_size,表示模型在一個(gè)時(shí)刻處理幾批數(shù)據(jù),本文取16。所有超參數(shù)最終取值見(jiàn)表4。
表4 所有超參數(shù)及取值
本實(shí)驗(yàn)使用Paper with code 網(wǎng)站上開(kāi)源的DKT、SAKT 和SAINT 在PyTorch 下實(shí) 現(xiàn),將三種數(shù)據(jù)集在四種模型上重新訓(xùn)練測(cè)試。評(píng)測(cè)指標(biāo)為ACC、AUC和RMSE(Root Mean Squared Er?ror)。RMSE被定義為預(yù)測(cè)值與真實(shí)值的均方根誤差,其值越低,說(shuō)明模型性能越好。結(jié)果見(jiàn)表5及圖4。
圖4 DKT、SAKT、SAINT和SAINT-Lite在ACC、AUC、RMSE上的得分對(duì)比
表5 SAINT-Lite同DKT、SAKT和SAINT的對(duì)比
在ACC和AUC這兩個(gè)評(píng)測(cè)指標(biāo)上,SAINTLite 在ASSIST 和本文數(shù)據(jù)集下表現(xiàn)比DKT 和SAKT 要好,比SAINT 略差,但在STATICS 下表現(xiàn)較差,僅比DKT 稍好,比同樣使用自注意力機(jī)制的SAKT 和SAINT 均差。在RMSE 這個(gè)指標(biāo)上,SAINT-Lite 在ASSIST 和本文數(shù)據(jù)集下表現(xiàn)最好,在STATICS 下表現(xiàn)同樣較差,僅比DKT稍好。我們認(rèn)為這是由于STATICS 知識(shí)點(diǎn)較多,簡(jiǎn)化模型結(jié)構(gòu)使得系統(tǒng)不能很好擬合這種復(fù)雜數(shù)據(jù),但是對(duì)于小數(shù)據(jù)集,裁剪后的結(jié)構(gòu)也可以獲得較好的性能,其結(jié)果是可信的,可以用于教學(xué)預(yù)警和后續(xù)的習(xí)題推薦。
一些論文或者系統(tǒng)使用答題正確率來(lái)衡量推薦習(xí)題質(zhì)量,本文認(rèn)為這不符合實(shí)際,極端情況下推薦最簡(jiǎn)單的習(xí)題必然都是正確的。本文通過(guò)判斷答題正確率是否符合期望來(lái)驗(yàn)證習(xí)題推薦效果,將習(xí)題推薦難度平均分為五個(gè)區(qū)間,使用三個(gè)測(cè)試集中每個(gè)學(xué)生的200次答題記錄推薦50 題,并計(jì)算推薦習(xí)題的實(shí)際答題正確率,結(jié)果見(jiàn)表6。
表6 不同難度區(qū)間推薦習(xí)題的實(shí)際答題正確率
表6數(shù)據(jù)表明,基于STATICS訓(xùn)練模型的習(xí)題推薦有部分實(shí)際正確率未落在對(duì)應(yīng)區(qū)間內(nèi),再次說(shuō)明本文使用的解碼器/編碼器堆疊層數(shù)2不能很好擬合STATICS 這種知識(shí)點(diǎn)較多的復(fù)雜數(shù)據(jù),而基于ASSIST 和本文數(shù)據(jù)集訓(xùn)練模型的習(xí)題推薦所有實(shí)際正確率都落在對(duì)應(yīng)區(qū)間內(nèi),表明實(shí)際應(yīng)用中SAINT-Lite-CF 的推薦結(jié)果是可信的。
本校C++一學(xué)期共16 周課程,從第2 周開(kāi)始,除共同課后作業(yè)外,向每個(gè)學(xué)生進(jìn)行個(gè)性化習(xí)題推薦,推薦區(qū)間為[0.6,0.8)。統(tǒng)計(jì)全體學(xué)生每周所有習(xí)題的平均正確率,結(jié)果見(jiàn)圖5。
圖5 全體學(xué)生16周內(nèi)所有習(xí)題的平均正確率
橫軸為周次,縱軸為平均正確率,圖中出現(xiàn)兩次較明顯的平均正確率下降,分別是第2周和第8 周,原因是第1 周主要復(fù)習(xí)C 語(yǔ)言內(nèi)容,第2 周開(kāi)始教學(xué)C++新內(nèi)容,第8 周和第9 周開(kāi)始教學(xué)繼承和多態(tài)。這兩周均有大量重點(diǎn)難點(diǎn)內(nèi)容,學(xué)生初期掌握不好,通過(guò)個(gè)性化習(xí)題推薦和教學(xué)預(yù)警后教師針對(duì)薄弱知識(shí)點(diǎn)的補(bǔ)強(qiáng),提升了學(xué)生的平均正確率,其效果反映在預(yù)測(cè)和多次真實(shí)考試中,最后的期終考試也取得了師生滿意的成績(jī)。
本文提出的SAINT-Lite-CF 方法在C++教學(xué)實(shí)踐中起到了很好的輔助作用,幫助學(xué)生和教師快速定位薄弱知識(shí)點(diǎn),進(jìn)行教學(xué)預(yù)警和個(gè)性化習(xí)題推薦。受平臺(tái)限制,SAINT-Lite 使用的特征沒(méi)有考慮時(shí)間對(duì)知識(shí)遺忘的影響,后續(xù)可以改進(jìn)本校C++網(wǎng)絡(luò)習(xí)題平臺(tái),收集學(xué)生做題相關(guān)的時(shí)間信息用于訓(xùn)練,提高模型對(duì)學(xué)生知識(shí)水平的擬合和表達(dá)能力。本文方法應(yīng)用協(xié)同過(guò)濾較簡(jiǎn)單,后續(xù)可以考慮更復(fù)雜的個(gè)性化習(xí)題推薦算法。本文使用2018 年和2019 年積累的數(shù)據(jù)來(lái)預(yù)測(cè)2020 年,后續(xù)會(huì)擴(kuò)充數(shù)據(jù)集,繼續(xù)輔助C++教學(xué)。