李金鵬,徐興榮,張冬梅,王雷,鄭凱,劉聰
(山東理工大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255049)
教育過程挖掘[1](education process mining, EPM)是教育數(shù)據(jù)挖掘(education data mining, EDM)的一個新興課題,旨在發(fā)現(xiàn)教育數(shù)據(jù)集中隱含的過程性信息。隨著各種教學(xué)支持環(huán)境的普及,使得捕捉不同粒度的在線事件成為可能,例如從鼠標(biāo)、鍵盤的敲擊動作到高級學(xué)習(xí)活動的獲取,同時這些系統(tǒng)具有跟蹤和記錄各種不同實時數(shù)據(jù)的能力,如連續(xù)的敲擊數(shù)據(jù)流、文本編輯的歷史數(shù)據(jù)、動作追蹤、學(xué)習(xí)資源使用記錄等,過程挖掘[2]能夠憑借這些記錄發(fā)現(xiàn)并檢測整個教育過程。教育過程的剩余時間預(yù)測可以作為EPM在時間維度上的應(yīng)用。當(dāng)前EMP已有的工作僅討論模型能否準(zhǔn)確還原教育過程,并在挖掘的基礎(chǔ)上驗證模型的契合程度,僅強(qiáng)調(diào)在線學(xué)習(xí)過程的挖掘與學(xué)生案例分析,鮮有研究在挖掘教育過程模型的基礎(chǔ)上拓展其在時間維度上的應(yīng)用。
為彌補(bǔ)這一空缺,本文引入長短時記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory, LSTM)、門控制單元網(wǎng)絡(luò)(gated recurrent unit, GRU)、雙向(bi-direction)、注意力機(jī)制(attention mechanism)預(yù)測學(xué)生學(xué)習(xí)過程的剩余時間,采用MAE(mean absolute error)做為預(yù)測模型的評判標(biāo)準(zhǔn),并設(shè)計一個應(yīng)用架構(gòu)論證學(xué)生學(xué)習(xí)過程的剩余時間預(yù)測在教學(xué)規(guī)劃中的作用。本文應(yīng)用架構(gòu)以學(xué)生實時軌跡為輸入,并預(yù)測實時軌跡的剩余時間,當(dāng)監(jiān)聽到實時軌跡與優(yōu)秀學(xué)生的過程模型發(fā)生偏移時,搜索前綴與實時軌跡一致且剩余時長與預(yù)測剩余時間誤差最小的優(yōu)秀學(xué)生軌跡并推薦;當(dāng)再次監(jiān)聽到實時軌跡發(fā)生偏移時再次推薦。該機(jī)制保證在優(yōu)秀學(xué)生日志中能夠搜索到與實時軌跡前綴匹配的優(yōu)秀學(xué)生軌跡。
過程挖掘技術(shù)面向教育領(lǐng)域的研究尚處在初級階段,過程挖掘之父Van Der Aalst院士在文獻(xiàn)[2]首次提出將過程挖掘技術(shù)引入教育領(lǐng)域,同時期,在文獻(xiàn)[3]描述了處理學(xué)習(xí)軌跡的方法,并用軌跡對齊策略研究學(xué)生的學(xué)習(xí)模式,在文獻(xiàn)[4]擴(kuò)展散點圖的維度,嘗試借助過程立方體建立可比較過程模型,分析荷蘭學(xué)生和他國學(xué)生在學(xué)習(xí)過程上的區(qū)別。為了延伸教育過程挖掘的應(yīng)用范圍,文獻(xiàn)[5]根據(jù)觀看時長、評論字?jǐn)?shù)等參數(shù)將表現(xiàn)相近的學(xué)生分為同一組,挖掘不同類別學(xué)生的學(xué)習(xí)過程;文獻(xiàn)[6]用模糊挖掘(fuzzy miner)算法發(fā)現(xiàn)學(xué)生的認(rèn)知過程,同時借助建模工具構(gòu)建理論上的認(rèn)知模型用以重演真實的學(xué)生在線行為事件日志,提出了一種驗證心理學(xué)理論模型的手段,使得過程挖掘技術(shù)的應(yīng)用范圍擴(kuò)展到認(rèn)知心理學(xué)研究。為了與傳統(tǒng)機(jī)器學(xué)習(xí)模型結(jié)合,文獻(xiàn)[7]將決策樹與過程挖掘算法相結(jié)合,發(fā)現(xiàn)學(xué)生在Moodle平臺上需要遵守的隱含行為規(guī)則;文獻(xiàn)[8]用支持向量機(jī)、過程相似度相結(jié)合的方式預(yù)測學(xué)生在OJ系統(tǒng)的表現(xiàn)。
運營和支持是過程挖掘的目的所在,在對現(xiàn)實場景的運營支持中,要考慮事前數(shù)據(jù)對案例下一步運行的影響,過程挖掘非僅局限于分析事后數(shù)據(jù),同時可以為運行中的案例提供支持。第一類運作支持是檢測運行時的偏差,即當(dāng)偏差發(fā)生時及時反饋,文獻(xiàn)[9]介紹如何用現(xiàn)有過程挖掘技術(shù)檢測業(yè)務(wù)執(zhí)行過程中發(fā)生的偏移(deviation),文獻(xiàn)[10]引入多維度的declarative模型檢測案例執(zhí)行的一致性;第二類運作支持是預(yù)測,即將軌跡的部分特征或相關(guān)屬性映射到預(yù)測變量并做出響應(yīng),文獻(xiàn)[11]用現(xiàn)有過程挖掘技術(shù)分析并預(yù)測制造過程的開銷,文獻(xiàn)[12]結(jié)合隊列挖掘(queue mining)預(yù)測服務(wù)過程的延遲;第三類運作支持是推薦,需要從事后數(shù)據(jù)中學(xué)習(xí)到一個模型,同時運作系統(tǒng)需要收斂一個決策空間,從而能夠選擇其中一個置信度最高的決策作為未來執(zhí)行狀態(tài)。 整合本文所提供的第二類運作支持教育過程控掘架構(gòu)如圖1所示。

圖1 教育過程挖掘架構(gòu)
定義1事件(event):事件是組成日志數(shù)據(jù)的最小元素,可以是學(xué)習(xí)活動發(fā)生的一次實例,e=(act,id,studentId,resource,start,end,other),令A(yù)為活動名的集合,則act∈A,代表事件執(zhí)行活動;id表示活動實例的唯一標(biāo)識;studentId表示活動的執(zhí)行者,即學(xué)生的標(biāo)識; resource表示實例運行所需的資源;start、end分別表示該事件運行的開始和結(jié)束,當(dāng)然,同一事件可以用更詳細(xì)的屬性類別描述;other代指額外屬性。設(shè)ε為事件集合,N為事件包含屬性集合,若存在n∈N,對于其中任意一個事件e∈ε,#n(e)表示其屬性n的值,令UC為案例集,UA為任務(wù)集合,UL為生命周期集合,UT為時間集合,假設(shè)對于任意一個事件e∈ε都包含屬性:#case(e)∈UC為事件e所屬的案例,即每個事件只能屬于同一個案例;#act(e)∈UA為事件e活動名;#trans(e)∈UL為事件e的生命周期相關(guān)信息;#time(e)∈UT表示事件e發(fā)生的時間戳。在本文所示課程案例中,鼠標(biāo)的一次敲擊,每個章節(jié)的一次觀看,或者一次評論均可記錄為一個事件,其中#section(e)表示學(xué)生發(fā)生事件e的章節(jié)名稱。
定義2分類器(classifier):分類器的作用是根據(jù)事件的具體特征標(biāo)識事件,定義為C:ε→UA×UL,即對于任意e∈ε,存在活動名#act(e)∈UA,#act(e)∈UL,若存在分類器C(e)= (#act(e), #trans(e)),設(shè)其生命周期取值范圍是#trans(e)∈{start, suspend, reassign, complete},則該分類器將C(ei)=(act, start)標(biāo)為acts,C(ej)= (act, complete)標(biāo)為actc。在學(xué)生在線事件日志中,C(e)= (#section(e), #time.start(e), #time.end(e) )表示事件在軌跡中由章節(jié)名稱、章節(jié)開始時間、章節(jié)結(jié)束時間組成。
定義3軌跡(trace):軌跡是事件的有限序列,令ε*是定義在集合ε上任意長度有限事件序列組成的集合,案例(case)是有限的事件發(fā)生序列σ∈ε*,σ= 定義4軌跡前綴(prefix)形式化為σ(k)= 定義5Petri網(wǎng)(Petri net):Petri網(wǎng)[2]用于表示事物的演化過程,同時可以表示事物之間交互的控制流關(guān)系,在教學(xué)場景中,可以表示學(xué)習(xí)活動發(fā)生的順序關(guān)系,Petri網(wǎng)由三元組N=(P, T, F)組成,T表示有限變遷(Transition)集合,P表示有限庫所(Place)集合,其中F?((P×T)∪(T×P)),P∩T=?為Petri網(wǎng)中表示控制流的弧集合,如圖2所示,該P(yáng)etri網(wǎng)表示為:F={ (start,a), (p1,b), (p2,c), (a, p1), (a, p2),(b, p3), (p3,d), (p4,d), (c, p4), (d, end) };T={a,c,d,b};P={start, p1, p3, p4, p2, end }。 圖2 Petri網(wǎng) 訓(xùn)練集的獲取思路是將教育事件日志L中的任意軌跡σi(1≤i≤|L|)截取為軌跡前綴σi(k),并標(biāo)記σi(k)的剩余完成時間構(gòu)建(σi(k), remain(σi,k))∈Dk,其中Dk是長度為k的軌跡前綴與其剩余時間組成的(σ(k), remain(σ,k))的集合,再整合∪Dk(1≤k< |σ|max)為輸入模型的數(shù)據(jù)集合。詳細(xì)描述如算法1所示。 算法1 GetTrainSet輸入:前綴σ(k)的最小長度lmin(lmin >0),最大長度lmax(lmax< |σ|),事件日志L ;輸出:∪Dk ;1.k = lmin ; D= ?2. FOR k ≤ lmax DO:3. Dk = ?4. FOR σ IN L DO:5. IF k ≤ |σ | THEN:6. Dk =Dk∪( σ (k), remain_time(σ, k) )7. END IF END FOR8. D =D∪Dk k++9. END FOR10.RETURN D; 最后,將∪Dk按照78∶22的比例分割為訓(xùn)練集與測試集,其中訓(xùn)練集用于擬合模型,測試集用以檢驗?zāi)P皖A(yù)測教育過程剩余時間的誤差。 循環(huán)神經(jīng)網(wǎng)絡(luò)[13](recurrent neural network, RNN)是一類處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),具有多種具體的實現(xiàn)方式,其中最具代表性的是LSTM和GRU。RNN支持可變長的輸入序列,其基本特征是假設(shè)在較早的時間序列可以決定下一步的前提下,每個神經(jīng)元t時刻的輸出轉(zhuǎn)化為t+1時刻輸入的一部分,如圖3所示,設(shè)RNN神經(jīng)元接受當(dāng)前時刻向量表示的信息xt∈Rk,上一時刻的輸入為ht-1∈Rk,運算后得到輸出ht∈Rk,傳統(tǒng)RNN是一種單向神經(jīng)網(wǎng)絡(luò),但當(dāng)前事件同時與以后的事件存在密切聯(lián)系,雙向循環(huán)神經(jīng)網(wǎng)絡(luò)通過增加由后向前傳的隱藏層來處理此類情況。隨著輸入序列增長,普遍存在與預(yù)測剩余時間無明顯因果關(guān)系的序列片段,嚴(yán)重影響RNN的預(yù)測精度。為解決這一問題引入注意力機(jī)制[14],技術(shù)原理是把注意力放到關(guān)鍵部分,而不是序列的全部,其最核心的技術(shù)是實現(xiàn)記錄元素權(quán)重的參數(shù)矩陣及權(quán)重向量,同時擬合每一個元素在序列中的重要程度,然后按照權(quán)重參數(shù)將序列重新組合,權(quán)重參數(shù)是注意力分配系數(shù)。本文嘗試引入不同類型RNN預(yù)測教育過程剩余時間,其中添加注意力機(jī)制的雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(BiRNNAtt)結(jié)構(gòu)如圖4所示,將該模型刪除或替換其中機(jī)制可以轉(zhuǎn)化為其他結(jié)構(gòu)的RNN預(yù)測模型。 圖3 RNN神經(jīng)元 圖4 添加注意力機(jī)制的雙向RNN結(jié)構(gòu) 3.2.1 事件在BiRNNAtt中的表示方式 本文所用循環(huán)神經(jīng)網(wǎng)絡(luò)以任意軌跡前綴標(biāo)記其剩余時間組成的∪Dk做為輸入,其中(σ(k), remain_time(σ,k))∈∪Dk,σ(k)= 3.2.2BiRNNAtt的上下文表示 3.2.3 注意力機(jī)制在BiRNNAtt中的軌跡表示 得到軌跡前綴每個t時刻發(fā)生事件的上下文表示后,進(jìn)而計算完整軌跡的表示,具體方法為 (1) 式中:at表示t時刻發(fā)生事件的上下文權(quán)重值,其含義是軌跡中第t個事件對預(yù)測剩余時間的影響程度,引用雙層感知機(jī)網(wǎng)絡(luò)計算上下文的權(quán)重,即 (2) 式中:gatt為注意力機(jī)制權(quán)重向量;batt為偏置參數(shù);Watt為權(quán)重矩陣;gatt、batt、Watt參數(shù)值對任意輸入共享;tanh是單調(diào)遞增且值域為(-1,1)的雙曲正切函數(shù)。 根據(jù)循環(huán)神經(jīng)網(wǎng)絡(luò)中學(xué)生在線學(xué)習(xí)軌跡的表示方式,使用全連接網(wǎng)絡(luò)搭建預(yù)測模型,并且為了避免梯度消失、梯度爆炸,減小運算復(fù)雜程度,引入RELU線性整流函數(shù)。綜合式(1)、式(2)所述,學(xué)生在線剩余學(xué)習(xí)時間的計算方法為 remain_time(σ,k)=gT·RELU(W·v+b)。 (3) 本實驗引用在線學(xué)習(xí)微處理器系統(tǒng)設(shè)計課程的數(shù)據(jù)集[15],對學(xué)生學(xué)習(xí)該課程的在線剩余時間進(jìn)行預(yù)測。該課程包含6個章節(jié)(Session1—Session6),每章包含4~6個小節(jié),其中包含學(xué)生觀看教學(xué)視頻、建模、實時測試、翻閱資料、點擊網(wǎng)頁的事件記錄,學(xué)生在線學(xué)習(xí)時常最大不超過5 h,原始數(shù)據(jù)集轉(zhuǎn)化為事件日志之后的概況見表1。事件數(shù)和事件類型數(shù)偏多且軌跡過長,平均每條學(xué)生軌跡有1 000個事件且包含28個以上的事件類型,因此需要將事件粒度提升,減少軌跡的事件數(shù)量,并將事件類型數(shù)減少到7~10。 表1 在線學(xué)習(xí)事件日志規(guī)模 為了提升預(yù)測效果,在連續(xù)且活動名重復(fù)的多個事件轉(zhuǎn)化為一個事件的前提下,將事件粒度放大到每一節(jié)課為一個事件,并且設(shè)每一節(jié)(section)第一個事件的開始時間作為該節(jié)開始時間,最后一個事件的結(jié)束時間為該節(jié)結(jié)束時間。處理后的軌跡長度由1 000到1 200不等縮小至30到100個事件之間,獲取輸入事件日志的具體算法如算法2所示。 算法2 GetInputLog輸入:事件日志 L;寄存事件的棧Stack;輸出:粒度提升后的LNew;1.C(e)= ( #section(e), #time.start (e), #time.end (e) );2.FOR σ IN L DO: 3.NewTrace=?; Stack=?4.FOR e IN σ DO:5. IF Stack!=? && Stack.top().section!= e.section THEN:6.Stack.top().start_time=Stack.bottom().Start.time 7.END IF8.NewTrace=NewTrace∪C( Stack.top( ) )9. Stack.PopAll( ) END FOR10. Stack.push(e)11.LNew=LNew∪NewTrace12. END FOR13.RETURN LNew; 本實驗使用平均絕對誤差MAE作為預(yù)測結(jié)果的評價方式,其值越低說明預(yù)測結(jié)果的誤差越小,若σ表示數(shù)據(jù)集中已完成的學(xué)生軌跡,則MAE計算方法為 (4) 式中f(σk)表示RNN對學(xué)生軌跡前綴σk的預(yù)測結(jié)果。 本實驗剩余時間的單位為min,設(shè)置訓(xùn)練集比率0.78,測試集比率0.22,學(xué)習(xí)率控制在(0.000 1, 0.01)。在本實驗中模型隱藏層的維度為5,最大epoch數(shù)為500,batch_size為20,dropout為1。全部預(yù)測結(jié)果如圖5所示,所用方法對Session4數(shù)據(jù)集中學(xué)生剩余學(xué)習(xí)時間的預(yù)測最為準(zhǔn)確,所有模型在該章的MAE值均小于18 min,且最優(yōu)模型的MAE值小于12 min,表明預(yù)測結(jié)果十分接近真實情況,體現(xiàn)了本文所提供策略的有效性。由于時間預(yù)測的最終目的是對學(xué)生整個學(xué)習(xí)過程進(jìn)行早期推薦與規(guī)劃,因此將前綴長度設(shè)置為[3,30],可能是訓(xùn)練集中軌跡前綴長度設(shè)置較短,遠(yuǎn)小于某些軌跡的真實長度,導(dǎo)致某些模型的觀測結(jié)果較差。實驗結(jié)果表明,不同模型在不同數(shù)據(jù)集中的表現(xiàn)存在差異,BiLSTM預(yù)測Session1、Session2、Session3數(shù)據(jù)集的剩余時間比較精確;GRU在Session4、Session6數(shù)據(jù)集的預(yù)測表現(xiàn)較好;LSTM在 Session5數(shù)據(jù)集的表現(xiàn)較好。在一定程度上反應(yīng)不同的數(shù)據(jù)集適合不同的RNN。 (a)Session1的預(yù)測誤差 (b)Session2的預(yù)測誤差 本節(jié)解析當(dāng)學(xué)生行為發(fā)生偏移時,利用過程模型推薦與該學(xué)生軌跡前綴吻合且剩余時間誤差最小的優(yōu)秀學(xué)生學(xué)習(xí)軌跡,推薦架構(gòu)如圖6所示,因果關(guān)系用黑色箭頭表示,漸近色箭頭表示兩者之間存在協(xié)同。 圖6 教育過程推薦架構(gòu) 第一步,訓(xùn)練預(yù)測剩余時間的RNN模型,從日志中選取優(yōu)秀學(xué)生的學(xué)習(xí)軌跡并調(diào)用Inductive Miner[16]挖掘Petri網(wǎng);第二步,接收教育信息系統(tǒng)傳來的實時事件,并檢測Petri網(wǎng)內(nèi)是否能夠找到契合該事件的下一個變遷,如果是,則當(dāng)前庫所指向該下一個變遷的輸出庫所,如果否,則進(jìn)行下一步;第三步,檢測當(dāng)前軌跡前綴是否用時過短,若學(xué)生實時軌跡比任何前綴相同的優(yōu)秀學(xué)生都短則提醒,由于算法從學(xué)生發(fā)生的第一個事件開始監(jiān)聽,因此只檢測最后兩個事件就可以判斷學(xué)習(xí)時間是否過短,如果監(jiān)聽的實時軌跡與Petri網(wǎng)不契合時,調(diào)用RNN模型預(yù)測該軌跡從開始事件到當(dāng)前實時事件的上一個事件組成前綴的剩余完成時間,并搜索在剩余用時誤差最小的優(yōu)秀學(xué)生軌跡并推薦。與工業(yè)生產(chǎn)過程、企業(yè)辦公過程不同的是,當(dāng)學(xué)生行為與過程模型發(fā)生偏移時,學(xué)生可以立刻調(diào)整,糾錯代價接近于無,因此推薦較優(yōu)學(xué)習(xí)路徑的時延不影響學(xué)生的全局學(xué)習(xí)效果,由于算法設(shè)定,學(xué)生必須按照模型給定的行為參與學(xué)習(xí),且由于過程模型出自優(yōu)秀學(xué)生的在線學(xué)習(xí)事件日志,必然可以在優(yōu)秀學(xué)生事件日志中找到與實時軌跡相吻合的推薦軌跡,且這種推薦策略省略了大量計算,因此推薦速度明顯快于智能計算方法,更適合教學(xué)這種實時場景。 假設(shè)實時軌跡定義為CurrentTrace,優(yōu)秀學(xué)生軌跡定義為Lo,預(yù)測模型定義為Rnn,推薦軌跡定義為BetterTrace,則推薦策略如算法3所示,具體實現(xiàn)步驟如算法4所示。 算法3 Recommend輸入:靜態(tài)變量CurrentTrace , Lo , Rnn;輸出:BetterTrace;1.PredicatedTime=Rnn.remain_time(CurrentTrace,Current-Trace.length)2.C(e)= ( #section(e), #time.end (e))3.FOR σj IN LoDO:4. i=0 ;flag=0;5.FOR e IN σjDO:6.IF C(CurrentTrace.GetEvent(i++))!= C(e) THEN:7.flag=1 BREAK 8.END IF9.END FOR10.IF flag==1&& PredicatedTime-remaintime(σj,k)|=|min(PredicatedTime -remain_time(σ,k))| THEN://更新實時軌跡11. CurrentTrace= CurrentTrace - CurrentTrace.get(Current-Trace.Length)//返回推薦結(jié)果12.Return BetterTrace=σj13.END IF 14.END FOR 算法4 Recommend Trace By Remain Time輸入:事后事件日志L,間歇且持續(xù)的實時事件CurrentEvent, CurrentTrace表示CurrentEvent發(fā)生前的軌跡前綴;輸出:推薦學(xué)習(xí)軌跡BeterTrace;1.Rnn=TrainedRemainPredicationRNNModel();2.Lo=GetBetterStudentLog();3.PetriNet=InductiveMinner(Lo);4.P= PetriNet.StartPlace();5.C(e)=( #section(e), #time.start(e))//檢查實時軌跡是否符合與模型一致6.FOR e IN CurrentTrace DO:7.FOR t IN P.OutTransitions () DO:8. IF t.Label== C(e) THEN:9. P=t.OutPlace()10.ElSE IF RETURN “ error !”11.END IF END FOR 12.END FOR //檢查實時事件執(zhí)行時間是否過短,是則提示13.ei=CurrentTrace.get(CurrentTrace.Length)14.ej=CurrentTrace.get(CurrentTrace.Length-1)15.Time= ei.start.time - ej.start.time 續(xù)表 本文系統(tǒng)介紹了教育過程挖掘的發(fā)展現(xiàn)狀與研究成果,同時構(gòu)想過程挖掘技術(shù)對在線教學(xué)場景提供支持,將學(xué)生在線學(xué)習(xí)事件日志的粒度提升,并引入不同類型的循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測學(xué)習(xí)過程的剩余時間,預(yù)測結(jié)果總體上表現(xiàn)較好,最后設(shè)計教育過程挖掘與剩余時間預(yù)測相結(jié)合的應(yīng)用架構(gòu)。本文不足之處:其一,僅考慮單一軌跡維度,并未引入資源等其他維度使得預(yù)測結(jié)果更為準(zhǔn)確,整合在線學(xué)習(xí)軌跡和其他屬性應(yīng)更具有說服力;其二,如何預(yù)先對數(shù)據(jù)集進(jìn)行評估用以選擇最合適的預(yù)測模型;其三,如何構(gòu)造更合適的教學(xué)模擬環(huán)境,從而對教育過程挖掘方法進(jìn)行更充分的驗證,以及如何通過教學(xué)環(huán)境搭建更標(biāo)準(zhǔn)的推薦機(jī)制。未來研究工作將著重于以上三個方面。
3 基于RNN的時間預(yù)測
3.1 獲取訓(xùn)練集、測試集

3.2 循環(huán)神經(jīng)網(wǎng)絡(luò)




3.3 剩余在線學(xué)習(xí)時間預(yù)測
4 實驗分析

4.1 學(xué)生事件日志粒度的提升

4.2 評估標(biāo)準(zhǔn)
4.3 實驗設(shè)置

5 應(yīng)用架構(gòu)設(shè)計

5.1 設(shè)計思路
5.2 架構(gòu)實現(xiàn)



6 結(jié)束語