蒲 杰,張所娟,陳衛(wèi)衛(wèi)
(陸軍工程大學(xué)指揮控制工程學(xué)院,南京,210023)
隨著互聯(lián)網(wǎng)和移動(dòng)通信技術(shù)的普及,在線教育正以前所未有的規(guī)模發(fā)展[1].學(xué)習(xí)者在使用在線教育系統(tǒng)(如Massive Open Online Course,MOOC)時(shí)產(chǎn)生了大量學(xué)習(xí)者與學(xué)習(xí)系統(tǒng)之間的交互數(shù)據(jù),而知識(shí)追蹤(Knowledge Tracing,KT)就是從這些交互數(shù)據(jù)中挖掘?qū)W習(xí)者動(dòng)態(tài)的認(rèn)知狀態(tài)、學(xué)習(xí)偏好等信息的一類(lèi)認(rèn)知診斷技術(shù)[2].
學(xué)習(xí)者在學(xué)習(xí)過(guò)程中,通過(guò)對(duì)具體試題的作答,按照作答順序產(chǎn)生一連串的交互記錄.知識(shí)追蹤任務(wù)的目標(biāo)是通過(guò)有監(jiān)督學(xué)習(xí)的方法來(lái)評(píng)估學(xué)習(xí)者在作答過(guò)程中認(rèn)知狀態(tài)的變化,并預(yù)測(cè)其在下一個(gè)時(shí)刻的答題情況.本文提出結(jié)合知識(shí)權(quán)重、試題難度等知識(shí)情境實(shí)現(xiàn)知識(shí)追蹤,如圖1 所示,進(jìn)一步為在線教育系統(tǒng)提供評(píng)估支持,使每個(gè)學(xué)習(xí)者都能獲得更優(yōu)的學(xué)習(xí)體驗(yàn).
圖1 融合知識(shí)權(quán)重的知識(shí)追蹤示意圖Fig.1 The example of the knowledge tracing with incorporated knowledge weights
知識(shí)追蹤模型通常分三類(lèi):基于概率圖模型的知識(shí)追蹤、基于因素分析的知識(shí)追蹤和基于深度學(xué)習(xí)的知識(shí)追蹤[3].基于概率圖模型和因素分析的知識(shí)追蹤方法對(duì)建模學(xué)習(xí)者的認(rèn)知狀態(tài)具有較好的解釋性,但很難捕捉復(fù)雜的認(rèn)知過(guò)程.相比之下,基于深度學(xué)習(xí)的知識(shí)追蹤模型依賴(lài)于深度學(xué)習(xí)對(duì)特征提取的強(qiáng)大能力,近年來(lái)成為研究的熱點(diǎn).許多學(xué)者提出了一系列基于深度學(xué)習(xí)的知識(shí)追蹤模型,其中最具代表性的是深度知識(shí)追蹤(Deep Knowledge Tracing,DKT)[4].
早期KT 模型通常將試題編號(hào)或試題包含的知識(shí)點(diǎn)編號(hào)以獨(dú)熱(one-hot)編碼作為模型輸入.研究表明,使用知識(shí)點(diǎn)編號(hào)作為輸入的模型,其性能優(yōu)于使用試題編號(hào)作為輸入的模型[5].而且,如果考慮答題過(guò)程中學(xué)習(xí)者與試題之間更復(fù)雜的交互關(guān)系,如知識(shí)點(diǎn)間的關(guān)聯(lián)關(guān)系[6]、知識(shí)點(diǎn)難度[7]等,能使模型的性能進(jìn)一步得到提升.
現(xiàn)有的知識(shí)追蹤方法通常直接利用試題中考查的知識(shí)點(diǎn)來(lái)表征試題,這樣會(huì)損失重要的知識(shí)情境特征,限制模型的效果.聯(lián)通主義理論認(rèn)為知識(shí)建構(gòu)于情境之中,教育強(qiáng)調(diào)學(xué)習(xí)內(nèi)容緊貼實(shí)際背景,即情境(Context)的融入.然而,目前對(duì)于學(xué)習(xí)者狀態(tài)的評(píng)估主要關(guān)注純粹的知識(shí),試題之間互相獨(dú)立,缺乏與現(xiàn)實(shí)世界的聯(lián)系,無(wú)法考查學(xué)習(xí)者在面對(duì)實(shí)際任務(wù)時(shí)的能力和表現(xiàn).同時(shí),在基礎(chǔ)教育階段,學(xué)習(xí)者的信息素養(yǎng)評(píng)測(cè)考查的是學(xué)習(xí)者應(yīng)對(duì)各種復(fù)雜現(xiàn)實(shí)情境、利用信息解決現(xiàn)實(shí)任務(wù)的能力,如果忽視試題內(nèi)在的知識(shí)情境,就無(wú)法有效地評(píng)估學(xué)習(xí)者認(rèn)知狀態(tài)的發(fā)展情況.因此,本文將試題涉及的各知識(shí)點(diǎn)的權(quán)重,試題的難度、區(qū)分度以及試題本身的猜測(cè)和失誤因子看作試題包含的知識(shí)情境.
同時(shí),與靜態(tài)的認(rèn)知診斷模型相比,傳統(tǒng)知識(shí)追蹤模型在解釋性方面稍顯不足.認(rèn)知診斷模型源自教育學(xué)和心理測(cè)量學(xué),并將教育理論的影響因素納入模型設(shè)計(jì).在知識(shí)追蹤模型中引入認(rèn)知診斷模型蘊(yùn)含的教育理論特性,可以增強(qiáng)對(duì)學(xué)習(xí)者認(rèn)知過(guò)程的理解,提升解釋性.
本文提出一種新的知識(shí)追蹤模型,即知識(shí)情境感知的深度知識(shí)追蹤模型(Knowledge Context-Aware Deep Knowledge Tracing Model,KCA -DKT),其融合知識(shí)情境特征來(lái)增強(qiáng)試題的表征,結(jié)合學(xué)習(xí)者的回答情況,利用循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)學(xué)習(xí)者的認(rèn)知狀態(tài)進(jìn)行建模,同時(shí),引入知識(shí)權(quán)重來(lái)實(shí)現(xiàn)多個(gè)知識(shí)聚合,最后由模型預(yù)測(cè)層對(duì)學(xué)習(xí)者未來(lái)的答題表現(xiàn)進(jìn)行初步預(yù)測(cè),并引入失誤、猜測(cè)因素修正預(yù)測(cè)結(jié)果.該模型一方面融入知識(shí)情境特征,進(jìn)一步豐富試題信息,提高序列建模效果;另一方面利用認(rèn)知診斷模型所蘊(yùn)含的教育理論特性,強(qiáng)化知識(shí)追蹤的可解釋性.本文的創(chuàng)新如下.
(1)實(shí)現(xiàn)了對(duì)試題內(nèi)部知識(shí)之間的交互關(guān)系帶來(lái)的知識(shí)權(quán)重的表征.
(2)構(gòu)建融合知識(shí)權(quán)重、試題難度等信息的知識(shí)情境嵌入模塊來(lái)增強(qiáng)模型的試題表征.
(3)利用認(rèn)知診斷模型蘊(yùn)含的教育理論特性增加知識(shí)追蹤模型的可解釋性.
1.1 知識(shí)情境
1.1.1 知識(shí)權(quán)重由于學(xué)習(xí)目標(biāo)的差異性,不同的試題中知識(shí)間往往呈現(xiàn)不同的交互關(guān)系,不同的知識(shí)對(duì)任務(wù)達(dá)成的重要程度也不同.學(xué)習(xí)過(guò)程中某些知識(shí)點(diǎn)在解決問(wèn)題時(shí)比其他知識(shí)點(diǎn)更關(guān)鍵[8-9],即每個(gè)知識(shí)點(diǎn)的權(quán)重可能是不同的[10].盡管部分學(xué)者已經(jīng)開(kāi)始考慮多知識(shí)間的相互影響,但現(xiàn)有的研究?jī)H從知識(shí)自身的層次結(jié)構(gòu)或者學(xué)科體系中的知識(shí)依賴(lài)關(guān)系來(lái)分析確定知識(shí)間的關(guān)聯(lián)性,沒(méi)有結(jié)合試題本身來(lái)建模知識(shí)關(guān)聯(lián).若忽視同一試題中不同知識(shí)之間的影響,對(duì)學(xué)習(xí)者認(rèn)知過(guò)程的理解會(huì)產(chǎn)生一定的偏差.
現(xiàn)有的知識(shí)追蹤方法主要捕捉基于學(xué)科體系的知識(shí)關(guān)聯(lián),這類(lèi)知識(shí)關(guān)聯(lián)可以看作是相對(duì)靜態(tài)和穩(wěn)定的.其中,知識(shí)先決關(guān)系的研究受到了特別關(guān)注[6,11],如關(guān)系感知知識(shí)追蹤(Relation-Aware Self-Attention Model for Knowledge Tracing,RKT)[12]通過(guò)自注意力感知試題的上下文信息來(lái)獲得試題之間的相關(guān)關(guān)系;注意力知識(shí)追蹤(Attentive Knowledge Tracing,AKT)[13]則利用多頭注意力,用不同的時(shí)間尺度對(duì)應(yīng)不同的衰減率來(lái)感知過(guò)去試題和當(dāng)前試題的交互關(guān)系.
然而,現(xiàn)有研究大多將包含兩個(gè)(含)以上知識(shí)點(diǎn)的試題中的知識(shí)點(diǎn)視為同等重要,這是一種簡(jiǎn)化,雖然降低了模型處理的復(fù)雜性,但實(shí)際上不同知識(shí)點(diǎn)對(duì)于作答當(dāng)前試題的重要程度不盡相同.因此,在多知識(shí)點(diǎn)試題中,每個(gè)知識(shí)點(diǎn)的權(quán)重可能是不一樣的.
1.1.2 試題難度難度(Difficulty)是用來(lái)描述試題的重要參數(shù)之一,試題中除了知識(shí)點(diǎn)之外,還有任務(wù)難度等其他特征.項(xiàng)目反應(yīng)理論模型(Item Response Theory,IRT)[14]包含難度參數(shù),其對(duì)應(yīng)的數(shù)值越大,試題越難.難度通常被定義為一個(gè)試題被正確回答的概率,通過(guò)統(tǒng)計(jì)分析可以得到難度參數(shù)的估計(jì)值.試題的難度系數(shù)可以由專(zhuān)家設(shè)置,也可以通過(guò)學(xué)習(xí)者的學(xué)習(xí)表現(xiàn)與試題之間的交互來(lái)捕捉.將試題的難度系數(shù)納入知識(shí)情境的范疇可以更好地表征試題,更精準(zhǔn)地評(píng)估學(xué)習(xí)者認(rèn)知狀態(tài).
本文把試題內(nèi)部各知識(shí)權(quán)重、試題的難度系數(shù)作為面向試題知識(shí)情境的表征信息.
1.2 知識(shí)追蹤下面分別介紹基于概率圖模型的知識(shí)追蹤、基于因素分析的知識(shí)追蹤和深度學(xué)習(xí)知識(shí)追蹤.
1.2.1 基于概率圖模型的知識(shí)追蹤概率圖模型用圖形和概率分布表示變量之間的關(guān)系[15],貝葉斯知識(shí)追蹤(Bayesian Knowledge Tracing,BKT)是一種具有代表性的基于概率圖的知識(shí)追蹤模型[2].BKT 將學(xué)習(xí)者的認(rèn)知狀態(tài)建模為一個(gè)動(dòng)態(tài)變化的過(guò)程,基于先驗(yàn)概率(通常根據(jù)領(lǐng)域?qū)<业慕?jīng)驗(yàn)或大量數(shù)據(jù)得出)和學(xué)習(xí)者的歷史答題記錄,通過(guò)隱馬爾可夫模型(Hidden Markov Model,HMM)來(lái)推測(cè)學(xué)習(xí)者的知識(shí)水平和理解程度.在BKT 模型的基礎(chǔ)上,許多研究者提出了相應(yīng)的變體模型.例如,K?ser et al[16]對(duì)知識(shí)點(diǎn)之間的關(guān)系和多個(gè)包含多個(gè)知識(shí)點(diǎn)的試題進(jìn)行建模,Khajah et al[17]在BKT 模型中引入猜測(cè)概率和失誤概率,Yudelson et al[18]將學(xué)習(xí)者特定參數(shù)和技能特定參數(shù)作為BKT 模型的參數(shù).
基于概率圖的知識(shí)追蹤模型對(duì)于建模學(xué)習(xí)者的認(rèn)知狀態(tài)有較好的解釋性,但模型的結(jié)構(gòu)通常基于統(tǒng)計(jì)學(xué)原理進(jìn)行設(shè)計(jì),模型參數(shù)需要通過(guò)復(fù)雜的推導(dǎo)算法來(lái)確定.而且,由于認(rèn)知過(guò)程的復(fù)雜性,這些模型可能難以完全捕捉學(xué)習(xí)者的認(rèn)知過(guò)程.
1.2.2 基于因素分析的知識(shí)追蹤基于因素分析的知識(shí)追蹤模型通過(guò)學(xué)習(xí)一個(gè)回歸函數(shù)并結(jié)合學(xué)習(xí)者在具體學(xué)習(xí)過(guò)程中的各種因素來(lái)擬合并預(yù)計(jì)學(xué)習(xí)者的表現(xiàn),代表性模型包括項(xiàng)目反應(yīng)理論模型(IRT)[14]、表現(xiàn)因素分析模型(Performance Factor Analysis,PFA)[19]和因子分解機(jī)知識(shí)追蹤模 型(Knowledge Tracing Machine,KTM)[20].IRT 模型考慮了試題的特征因素(如難度和區(qū)分度),通過(guò)建立邏輯函數(shù)來(lái)推斷學(xué)習(xí)者的潛在能力水平.PFA 模型區(qū)分學(xué)習(xí)者在作答試題時(shí)答對(duì)和答錯(cuò)的不同情況,設(shè)置相應(yīng)的學(xué)習(xí)率.KTM 模型綜合考慮了學(xué)習(xí)者、試題、知識(shí)點(diǎn)、答對(duì)或答錯(cuò)次數(shù)等多種因素進(jìn)行建模.
基于因素分析的知識(shí)追蹤模型沒(méi)有考慮學(xué)習(xí)者回答問(wèn)題的先后順序,在一定程度上弱化了問(wèn)題的處理難度.然而,這也導(dǎo)致了一個(gè)假設(shè),即特定學(xué)習(xí)者的能力水平始終保持不變,這與教育學(xué)理論和實(shí)際情況不相符.
1.2.3 深度學(xué)習(xí)知識(shí)追蹤由于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)在圖像處理、自然語(yǔ)言處理等任務(wù)上取得了較好的效果,DKT[4]首次將RNN 應(yīng)用于知識(shí)追蹤模型.隨后有大量的相關(guān)研究,如基于圖的知識(shí)追蹤(Graph-based Knowledge Tracing,GKT)[21]使用圖神經(jīng)網(wǎng)絡(luò)來(lái)模擬知識(shí)概念的結(jié)構(gòu)圖和學(xué)習(xí)者知識(shí)狀態(tài)的變化過(guò)程;動(dòng)態(tài)鍵值對(duì)記憶網(wǎng)絡(luò)知識(shí)追蹤(Dynamic Key-Value Memory Networks,DKVMN)[22]使用一個(gè)靜態(tài)矩陣存儲(chǔ)知識(shí)概念,使用另一個(gè)動(dòng)態(tài)矩陣存儲(chǔ)和更新相應(yīng)知識(shí)概念的掌握水平;AKT[13]使用單調(diào)注意力機(jī)制,將預(yù)測(cè)學(xué)習(xí)者對(duì)評(píng)估試題的作答與他們過(guò)去的歷史答題記錄聯(lián)系起來(lái).
深度學(xué)習(xí)知識(shí)追蹤模型在具體任務(wù)上取得了較好的效果,但由于深度學(xué)習(xí)的復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)和黑盒性質(zhì),深度學(xué)習(xí)知識(shí)追蹤模型的可解釋性差,給后續(xù)研究和應(yīng)用帶來(lái)困難.本研究引入知識(shí)情境以及認(rèn)知診斷模型中的猜測(cè)和失誤因子,進(jìn)一步增強(qiáng)知識(shí)追蹤方法的可解釋性,為學(xué)習(xí)者畫(huà)像、學(xué)習(xí)推薦等下游任務(wù)提供有效的支撐.
本文提出KCA-DKT 模型,其框架如圖2 所示.本節(jié)首先介紹必要的假設(shè)及知識(shí)追蹤的問(wèn)題,然后分別介紹知識(shí)情境嵌入模塊、知識(shí)狀態(tài)追蹤模塊、知識(shí)聚合計(jì)算模塊、學(xué)習(xí)表現(xiàn)預(yù)測(cè)模塊.
圖2 知識(shí)情境感知的深度知識(shí)追蹤模型框架圖Fig.2 The framework of knowledge context-aware deep knowledge tracing model
2.1 問(wèn)題描述
假設(shè)1若一道試題對(duì)應(yīng)多個(gè)知識(shí),則知識(shí)之間存在不同的交互關(guān)系.
假設(shè)2考慮同一試題內(nèi)知識(shí)間的交互關(guān)系,各知識(shí)對(duì)于試題正確作答的支持力度不同,稱(chēng)為知識(shí)權(quán)重.
假設(shè)3由試題考查的知識(shí)概念及對(duì)應(yīng)交互關(guān)系帶來(lái)的知識(shí)權(quán)重和試題本身的難度系數(shù),共同構(gòu)成知識(shí)情境.
學(xué)習(xí)系統(tǒng)中有N個(gè)學(xué)習(xí)者、M道試題和K個(gè)知識(shí)概念,分別表示為:
學(xué)習(xí)者sn的答題歷史記錄定義為:
2.2 知識(shí)情境嵌入模塊對(duì)于試題,除了考查的知識(shí)概念不同,試題內(nèi)不同知識(shí)概念的重要性也存在差異,這種差異由試題內(nèi)多個(gè)知識(shí)存在的交互關(guān)系產(chǎn)生,因此,在構(gòu)建知識(shí)情境特征時(shí),首先應(yīng)考慮知識(shí)權(quán)重的表征方法.在認(rèn)知診斷模型中使用Q矩陣建立試題與知識(shí)概念之間的關(guān)聯(lián),試題ei與知識(shí)點(diǎn)kj相關(guān)時(shí)Qij=1,不相關(guān)時(shí)Qij=0.本節(jié)首先引入Q矩陣,可知t時(shí)刻試題對(duì)應(yīng)的知識(shí)概念.
初始化知識(shí)權(quán)重參數(shù)矩陣如式(1)所示:
其中,wt=1/Ket表示t時(shí)刻對(duì)應(yīng)試題的知識(shí)權(quán)重參數(shù),符號(hào)?表示逐個(gè)元素相乘.
其次,在試題表征中嵌入知識(shí)權(quán)重,具體方法如下.首先,將學(xué)習(xí)者sn在t時(shí)刻作答的試題表征為涉及各知識(shí)權(quán)重的向量,如式(2)所示:
根據(jù)Q矩陣給出的知識(shí)關(guān)聯(lián)信息,非0 部分反映該試題考查的知識(shí),在保留Q矩陣信息的前提下,知識(shí)權(quán)重向量在訓(xùn)練過(guò)程中按照式(3)進(jìn)行約束,歸一化處理為:
歸一化處理后,每道試題考查的知識(shí)概念的向量元素和為1,如式(4)所示:
根據(jù)假設(shè)3,融合試題難度系數(shù)來(lái)實(shí)現(xiàn)知識(shí)情境特征的構(gòu)建.采用統(tǒng)計(jì)的方式[23]計(jì)算每個(gè)試題的難度系數(shù),學(xué)習(xí)者sn在t時(shí)刻做的試題的難度系數(shù)為,如式(5)所示:
其中,count()* 表示滿足條件*的數(shù)量;試題的難度系數(shù)是訓(xùn)練集的所有答題記錄R中試題答錯(cuò)的次數(shù)與作答次數(shù)的比值.由于試題層級(jí)數(shù)據(jù)的稀疏性,當(dāng)式(5)計(jì)算的試題難度系數(shù)時(shí),用相同的統(tǒng)計(jì)方法計(jì)算每個(gè)知識(shí)點(diǎn)的難度,試題難度按對(duì)應(yīng)知識(shí)點(diǎn)難度的平均值計(jì)算.
其中,Wkd∈RK×()K+1,是模型訓(xùn)練學(xué)習(xí)的參數(shù),⊕為串聯(lián)操作.
其中,0={0}1*K表示維度為K的全0 向量.
2.3 認(rèn)知狀態(tài)追蹤模塊本模塊以知識(shí)情境嵌入模塊得到的試題表征向量作為輸入,利用門(mén)控循環(huán)單元(Gate Recurrent Unit,GRU)中隱藏狀態(tài)向量的變化情況來(lái)模擬學(xué)習(xí)者sn的隱式認(rèn)知狀態(tài)隨特定試題作答后的變化情況.具體步驟如下.
其中,σ表示Sigmoid 激活函數(shù),Wir,Whr,Wiz,Whz∈RD1×2K和br,bz∈RD1×1是模型訓(xùn)練要學(xué)習(xí)的參數(shù).
由于學(xué)習(xí)者在學(xué)習(xí)過(guò)程中存在遺忘行為,根據(jù)式(10)模擬計(jì)算遺忘歷史隱式認(rèn)知狀態(tài)中的部分信息,得到候選激活門(mén)向量:
其中,tanh 為激活函數(shù),Wih,Wh∈RD1×1和bh∈RD1×1是模型訓(xùn)練要學(xué)習(xí)的參數(shù),?為逐個(gè)元素相乘.
2.4 知識(shí)聚合計(jì)算模塊在認(rèn)知狀態(tài)追蹤模塊中可以獲得學(xué)習(xí)者sn在t時(shí)刻的隱式認(rèn)知狀態(tài),通過(guò)全連接層建立隱式認(rèn)知狀態(tài)到知識(shí)維度的顯式認(rèn)知狀態(tài)的關(guān)聯(lián)關(guān)系:
其中,W1∈RD1×K和b1∈RK×1是模型訓(xùn)練要學(xué)習(xí)的參數(shù).
對(duì)于多知識(shí)點(diǎn)的試題,學(xué)習(xí)者是否達(dá)成某項(xiàng)試題取決于其在各知識(shí)點(diǎn)的顯式認(rèn)知狀態(tài)以及該知識(shí)點(diǎn)的權(quán)重.如學(xué)習(xí)者sn在t時(shí)刻的顯式認(rèn)知狀態(tài)=[0.2,0.3,0.4,0.1],若t+1 時(shí)刻對(duì)應(yīng)的試題考查第1,3,4 個(gè)知識(shí)點(diǎn),該任務(wù)中各知識(shí)點(diǎn)的權(quán)重分別為=[0.2,0.1,0.7].參考認(rèn)知診斷模型對(duì)于多知識(shí)任務(wù)的處理方式,學(xué)習(xí)者在特定試題上的能力可以表示為表示聚合函數(shù),即聚合每個(gè)知識(shí)點(diǎn)的顯式認(rèn)知狀態(tài)來(lái)獲得達(dá)成試題的能力值.本文將聚合函數(shù)設(shè)置為知識(shí)權(quán)重與顯式認(rèn)知狀態(tài)的加權(quán)計(jì)算,得到t時(shí)刻學(xué)習(xí)者sn在試題上的能力值具體計(jì)算如下:
其中,Σ 表示對(duì)向量進(jìn)行逐元素求和.
2.5 學(xué)習(xí)表現(xiàn)預(yù)測(cè)模塊由式(14)計(jì)算t+1 時(shí)刻作答任務(wù)的區(qū)分度:
其中,C∈RM×1是模型訓(xùn)練要學(xué)習(xí)的參數(shù).
通過(guò)兩個(gè)全連接層和一個(gè)輸出層得到理想作答情況下(即不考慮猜測(cè)和失誤的情況)的預(yù)測(cè)結(jié)果:
在預(yù)測(cè)學(xué)習(xí)表現(xiàn)時(shí)應(yīng)考慮學(xué)習(xí)者在答題過(guò)程中的猜測(cè)和失誤行為.試題的猜測(cè)因子表示在學(xué)習(xí)者沒(méi)有掌握正確作答試題所需知識(shí)點(diǎn)的情況下,以猜測(cè)的方式答對(duì)試題的概率,取值范圍通常是0~1,其值越高說(shuō)明學(xué)習(xí)者更可能通過(guò)猜測(cè)來(lái)正確作答.試題的失誤因子表示學(xué)習(xí)者在認(rèn)知狀態(tài)完全掌握所需知識(shí)點(diǎn)的情況下,出現(xiàn)失誤而答錯(cuò)的概率,取值范圍通常為0~1,其值較高表示學(xué)習(xí)者更容易出現(xiàn)失誤.本文在KCA-DKT 模型中加入了猜測(cè)和失誤因子,進(jìn)一步提高了模型的預(yù)測(cè)性能和可解釋性.
其中,W5,W6∈RM×1是模型訓(xùn)練需要學(xué)習(xí)的參數(shù).
3.1 實(shí)驗(yàn)設(shè)置使用ASSIST2009[24]和Algebra2006[25]兩個(gè)公開(kāi)數(shù)據(jù)集及一個(gè)私有數(shù)據(jù)集Program 進(jìn)行實(shí)驗(yàn).
ASSIST2009 數(shù)據(jù)集是ASSISTments 在線教學(xué)系統(tǒng)收集的數(shù)據(jù)集,涉及的試題對(duì)應(yīng)一個(gè)或多個(gè)知識(shí)等多種情況,選擇更新的skill-builder 版本,該版本修復(fù)了部分?jǐn)?shù)據(jù)重復(fù)的問(wèn)題.
Algebra2006 是PSLC DataShop 發(fā)布的數(shù)據(jù)集,是KDD Cup 2010 競(jìng)賽的數(shù)據(jù)集之一.KDD Cup 中包含多個(gè)步驟的任務(wù),將一個(gè)含多個(gè)步驟的問(wèn)題按照步驟看作多個(gè)不同的試題,數(shù)據(jù)集中的每一條響應(yīng)日志都包含一個(gè)學(xué)習(xí)者對(duì)一個(gè)問(wèn)題的一個(gè)步驟的回答結(jié)果.
選取在線編程學(xué)習(xí)平臺(tái)產(chǎn)生的真實(shí)數(shù)據(jù)集Program,學(xué)習(xí)者可以在線進(jìn)行編程學(xué)習(xí),提交答案并實(shí)時(shí)獲得編譯器輸出進(jìn)行修正.平臺(tái)允許學(xué)習(xí)者多次重復(fù)作答,本文選取學(xué)習(xí)者前兩次的作答記錄以保證實(shí)驗(yàn)的公平性.
對(duì)于兩個(gè)公開(kāi)數(shù)據(jù)集的預(yù)處理,均刪除了未標(biāo)記知識(shí)點(diǎn)的試題和總計(jì)作答次數(shù)小于15 的試題.同時(shí),將單個(gè)學(xué)習(xí)者作答次數(shù)大于200 的序列劃分為多個(gè)最大長(zhǎng)度為200 的作答序列,刪除總計(jì)作答次數(shù)小于15 的學(xué)習(xí)者.預(yù)處理后的響應(yīng)序列的20%為測(cè)試集,剩下的數(shù)據(jù)再按8∶2 分為訓(xùn)練集和驗(yàn)證集.Program 數(shù)據(jù)集通過(guò)正則表達(dá)式提取含關(guān)鍵字python 的試題,將試題按照作答次數(shù)從高到低排序,取作答次數(shù)多的前70 題,平均作答次數(shù)大于200.三個(gè)數(shù)據(jù)集預(yù)處理后的情況如表1 所示.
表1 預(yù)處理后的數(shù)據(jù)集的統(tǒng)計(jì)信息Table 1
本文基于Pytorch 深度學(xué)習(xí)框架實(shí)現(xiàn)KCADKT.為了保證實(shí)驗(yàn)的公平性,所有基準(zhǔn)模型的參數(shù)均調(diào)整至最優(yōu)性能.
實(shí)驗(yàn)環(huán)境:兩個(gè)2.1 GHz Intel(R)Xeon(R)Gold 6230R CPU 和一個(gè)11 GB GeForce RTX 2080Ti GPU 的Linux 服務(wù)器.
3.2 實(shí)驗(yàn)結(jié)果分析
3.2.1 學(xué)習(xí)表現(xiàn)預(yù)測(cè)首先對(duì)學(xué)習(xí)者的學(xué)習(xí)表現(xiàn)進(jìn)行預(yù)測(cè),將提出的知識(shí)情境感知的深度知識(shí)追蹤模型與知識(shí)追蹤基準(zhǔn)模型進(jìn)行比較.為了公平起見(jiàn),實(shí)驗(yàn)沒(méi)有引入使用輔助信息(如知識(shí)圖譜[21]、試題文本[26])的模型.進(jìn)行對(duì)比的具體的基準(zhǔn)模型如下.
(1)BKT[2]:貝葉斯知識(shí)追蹤模型,是傳統(tǒng)知識(shí)追蹤模型的代表,常作為知識(shí)追蹤研究的基準(zhǔn)模型.
(2)DKVMN[22]:基于深度學(xué)習(xí)的動(dòng)態(tài)鍵值對(duì)記憶網(wǎng)絡(luò)知識(shí)追蹤,使用一個(gè)靜態(tài)矩陣來(lái)存儲(chǔ)知識(shí)概念,使用一個(gè)動(dòng)態(tài)矩陣來(lái)存儲(chǔ)和更新相應(yīng)知識(shí)概念的掌握水平,以跟蹤學(xué)習(xí)者不斷變化的認(rèn)知狀態(tài).
(3)DKT[4]:選用以試題編號(hào)為輸入表征的深度知識(shí)追蹤模型(DKT_Q)和以試題知識(shí)點(diǎn)編號(hào)為輸入表征的深度知識(shí)追蹤模型(DKT_KC).
(4)DIRT_4(Dynamic Cognitive Diagnosis Models with IRT)[27]:在深度項(xiàng)目反應(yīng)理論模型的基礎(chǔ)上整合知識(shí)點(diǎn)編號(hào)、難度和區(qū)分度的試題特征,對(duì)學(xué)生認(rèn)知狀態(tài)演變的順序建模產(chǎn)生了積極影響.
(5)DNeuralCDM(Dynamic Cognitive Diagnosis Models with NeuralCDM)[27]:將認(rèn)知診斷對(duì)教育先驗(yàn)的可解釋性融入基于深度學(xué)習(xí)的知識(shí)追蹤方法.
(6)AKT(Context-Aware Attentive Knowledge Tracing)[13]:使用注意力機(jī)制的知識(shí)追蹤模型,通過(guò)指數(shù)衰減和上下文感知的相對(duì)距離來(lái)計(jì)算注意力權(quán)重,同時(shí)考慮試題之間的相似性,將歷史交互信息和當(dāng)前試題聯(lián)系起來(lái).
(7)SAINT(Separated Self-Attentive Neural Knowledge Tracing)[28]:基 于Transformer 的知識(shí)追蹤模型,使用多層注意力機(jī)制,在編碼器和解碼器中分別對(duì)試題和作答記錄進(jìn)行編碼.
首先在兩個(gè)公開(kāi)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),選擇曲線下方面積(Area under Curve,AUC)和準(zhǔn)確性(Accuracy,ACC)作為評(píng)價(jià)指標(biāo).實(shí)驗(yàn)結(jié)果如表2 所示,表中黑體字表示性能最優(yōu).由表可見(jiàn),KCA-DKT 的性能優(yōu)于基準(zhǔn)模型,預(yù)測(cè)精度更好.和同為試題層級(jí)的融入教育先驗(yàn)的DIRT_4 對(duì)比,在ASSIST2009 數(shù)據(jù)集上,KCA-DKT 的AUC提 升5.93%,ACC提 升4.40%,在Algebra2006 數(shù)據(jù)集上則分別提升了7.97% 和2.49%,提升效果比較明顯.
表2 各模型在學(xué)習(xí)者學(xué)習(xí)表現(xiàn)預(yù)測(cè)上的性能對(duì)比Table 2 Performance of each model on learner learning performance prediction
在Program 數(shù)據(jù)集上的對(duì)比實(shí)驗(yàn)結(jié)果如表3所示,表中黑體字表示性能更優(yōu).由表可見(jiàn),KCADKT 模型同樣具有更優(yōu)的預(yù)測(cè)性能.
表3 KCA-DKT 和DIRT_4 模型在Program 數(shù)據(jù)集上的預(yù)測(cè)性能對(duì)比Table 3 Prediction performance of KCA -DKT and DIRT_4 on Program dataset
3.2.2 消融實(shí)驗(yàn)為了驗(yàn)證KCA-DKT 模型中各模塊的有效性,在ASSIST2009 數(shù)據(jù)集上開(kāi)展消融實(shí)驗(yàn).KCA-DKT 和各變體模型(KCADKT_1 至KCA-DKT_5)的相關(guān)設(shè)置如表4 所示,表中“√”指對(duì)應(yīng)模型中包含當(dāng)前因素,“—”指對(duì)應(yīng)模型不包含當(dāng)前因素.
表4 KCA-DKT 及各變體模型的相關(guān)設(shè)置Table 4 The relevant settings of KCA_DKT and its variants
實(shí)驗(yàn)結(jié)果如圖3 所示.由圖可見(jiàn),知識(shí)情境與猜測(cè)和失誤因子等因素對(duì)模型的預(yù)測(cè)效果都有積極的影響.不考慮猜測(cè)和失誤因子,僅考慮知識(shí)情境特征的KCA-DKT_1 仍有較好的性能,AUC和ACC略有下降;不考慮試題難度的KCADKT_2 與不考慮知識(shí)權(quán)重的KCA-DKT_3 相比,KCA-DKT_3 的AUC和ACC的下降更明顯,證明知識(shí)情境的知識(shí)權(quán)重因素對(duì)模型性能的影響更大;不考慮知識(shí)情境的KCA-DKT_4 和不考慮知識(shí)情境特征與猜測(cè)和失誤因子的KCA-DKT_5 兩種模型預(yù)測(cè)能力的下降較明顯,證明了知識(shí)情境特征在模型建模中的必要性.
圖3 KCA-DKT 及其變體模型在消融實(shí)驗(yàn)中的預(yù)測(cè)性能Fig.3 Prediction performance of KCA-DKT and its variants in ablation experiments
3.2.3 不同序列長(zhǎng)度下的預(yù)測(cè)實(shí)驗(yàn)為了評(píng)估KCA-DKT 是否能更好地建模學(xué)生的學(xué)習(xí)過(guò)程,對(duì)此進(jìn)行了實(shí)驗(yàn).一般地,完整的學(xué)習(xí)過(guò)程需要較長(zhǎng)的學(xué)習(xí)序列,學(xué)習(xí)序列越短,學(xué)習(xí)過(guò)程越不完整.因此,設(shè)置了四個(gè)不同的最大序列長(zhǎng)度進(jìn)行實(shí)驗(yàn),分別為20,50,100 和200.在ASSIST2009數(shù)據(jù)集上比較了KCA-DKT 和DIRT_4 在學(xué)習(xí)序列長(zhǎng)度不同時(shí)對(duì)學(xué)生成績(jī)的預(yù)測(cè)結(jié)果,圖4 展示了序列長(zhǎng)度不同時(shí)各模型的預(yù)測(cè)性能.由圖可見(jiàn),在學(xué)習(xí)序列長(zhǎng)度不同時(shí),KCA-DKT 的預(yù)測(cè)效果始終具有一定的優(yōu)勢(shì).同時(shí),隨著學(xué)習(xí)序列的增長(zhǎng),KCA-DKT 的優(yōu)勢(shì)更加明顯,即隨著序列長(zhǎng)度的增加,KCA-DKT 性能指標(biāo)的上升幅度大于DIRT_4,表明KCA-DKT 受學(xué)習(xí)序列的影響較大,能更好地模擬學(xué)習(xí)者的長(zhǎng)序列學(xué)習(xí)過(guò)程.在真實(shí)的學(xué)習(xí)環(huán)境中,獲得的學(xué)習(xí)者的學(xué)習(xí)反饋越多,KCA-DKT 越能更好地掌握學(xué)習(xí)者的認(rèn)知狀態(tài),給下游應(yīng)用提供更準(zhǔn)確的信息.
圖4 不同學(xué)習(xí)序列長(zhǎng)度的預(yù)測(cè)性能Fig.4 Prediction performance for different learned sequence lengths
3.2.4 案例分析1使用KCA-DKT 模型對(duì)ASSIST2009 數(shù)據(jù)集的一個(gè)具體學(xué)習(xí)者的知識(shí)追蹤過(guò)程進(jìn)行分析.該學(xué)習(xí)者在一段作答序列中對(duì)30個(gè)單知識(shí)概念試題作答,試題分別對(duì)應(yīng)知識(shí)概念1、知識(shí)概念2、知識(shí)概念3,學(xué)習(xí)者對(duì)應(yīng)的認(rèn)知狀態(tài)為知識(shí)狀態(tài)1、知識(shí)狀態(tài)2、知識(shí)狀態(tài)3,實(shí)驗(yàn)結(jié)果如圖5 所示.由圖可見(jiàn),試題的作答情況與對(duì)應(yīng)的認(rèn)知狀態(tài)的變化基本一致.例如,學(xué)習(xí)者在知識(shí)狀態(tài)1 對(duì)第1,3,5,6,7 題答錯(cuò),則對(duì)應(yīng)時(shí)刻的認(rèn)知狀態(tài)有明顯的下降,證明了KCA-DKT 模型的有效性.
圖5 ASSIST2009 數(shù)據(jù)集知識(shí)追蹤過(guò)程示例Fig.5 The example of KT process on ASSIST2009 dataset
3.2.5 案例分析2表5 展示了KCA-DKT 模型對(duì)學(xué)習(xí)者學(xué)習(xí)表現(xiàn)的預(yù)測(cè)過(guò)程.對(duì)學(xué)習(xí)者理想作答的預(yù)測(cè)值為0.578,通過(guò)預(yù)定義的閾值(通常設(shè)置為0.5)來(lái)離散化對(duì)目標(biāo)任務(wù)的預(yù)測(cè)結(jié)果后,學(xué)習(xí)表現(xiàn)的預(yù)測(cè)值為1,即學(xué)習(xí)者答對(duì)該道試題.但由于失誤和猜測(cè)因子的存在,根據(jù)式(21)計(jì)算得到實(shí)際作答的預(yù)測(cè)值為0.489,離散后的結(jié)果為0,即學(xué)習(xí)者答錯(cuò)了該道試題,這與實(shí)際觀測(cè)的結(jié)果一致.由此可見(jiàn),在KCA-DKT 模型中利用認(rèn)知診斷模型蘊(yùn)含的教育理論特性引入猜測(cè)和失誤因子,可以增強(qiáng)知識(shí)追蹤預(yù)測(cè)的可解釋性.
表5 學(xué)習(xí)者的學(xué)習(xí)表現(xiàn)預(yù)測(cè)過(guò)程Table 5 The prediction process of learners' learning performance
針對(duì)目前知識(shí)追蹤中沒(méi)有考慮同一試題內(nèi)的知識(shí)權(quán)重、試題表征過(guò)于簡(jiǎn)單的問(wèn)題,本文提出一種知識(shí)情境感知的深度知識(shí)追蹤模型,構(gòu)建了知識(shí)情境嵌入模塊來(lái)增強(qiáng)試題的表征.同時(shí),從試題層級(jí)出發(fā),結(jié)合知識(shí)權(quán)重和學(xué)習(xí)者的認(rèn)知狀態(tài)聚合計(jì)算來(lái)獲得學(xué)習(xí)者的作答能力,最后引入認(rèn)知診斷模型的猜測(cè)和失誤因素,進(jìn)一步提高模型的性能和可解釋性.實(shí)驗(yàn)證明,本文提出的方法在學(xué)習(xí)者表現(xiàn)預(yù)測(cè)任務(wù)上的性能更優(yōu),同時(shí)具備了一定的可解釋性.
未來(lái)將融合多模態(tài)數(shù)據(jù)表征試題信息以進(jìn)一步增強(qiáng)構(gòu)建知識(shí)情境表征,還將嘗試將學(xué)習(xí)者的個(gè)性化特征與試題知識(shí)情境表征相結(jié)合,進(jìn)一步提高模型的可解釋性.