姚淑佳 譚紅葉 李 茹 盧 宇 段慶龍
1(山西大學計算機與信息技術學院 山西 太原 030006)
2(北京師范大學未來教育高精尖創新中心 北京 100875)
3(北京師范大學教育技術學院 北京 100875)
自動批閱(Automatic Marking)是指根據參考答案、題目考察點等對學生答案進行自動評分和自動反饋[1],其中自動評分(Automatic Grading)[2]是指根據專家提供的參考答案預測學生答案的分數,目前已經有了較為成熟的研究成果并投入使用。但是在應用中發現,同一個得分錯誤類型可能不同。例如:同樣都是0分,可能是與題目完全無關的答案,也可能是看出了考察點但并沒有回答正確。對于這種情況,需要給出更為具體的信息來輔助學習,因此需要提供反饋。
反饋本身是一件很耗費時間的工作,教師在進行反饋的時候需要先判斷學生的錯誤屬于什么類型,再根據不同的類型給出不同的意見和建議。對于老師而言,通常需要對幾百甚至上千份學生答案進行反饋,耗時耗力,而且存在學生答案錯誤類別相似,但仍然需要重復給出相似反饋的情況。對于學生而言,由于老師反饋所需要的時間較長,因此學生并不能收到即時反饋[3]。自動反饋[4](Automatic Feedback)為了有效減少老師的工作量,提供即時反饋,提高學生的學習效率。但是不同科目、不同題型的反饋重點不同,例如:英文一般關注時態,短語搭配等;語文一般更注重語義一致,語句通順等問題。
本文主要研究數學簡答題自動反饋,數學簡答題是指有閱讀材料描述,答案為數學概念的題目,圖1所示為一個題目和答案舉例。

圖1 數學簡答題題目及答案舉例
本文構建的數據集具有以下特點:(1) 數據量較小。本文所使用的數據來源于真實考試中的學生答案,因此數據量有限,每道題大概有4 000條左右的數據并且有一定的重復率。(2) 答案的類型有限。通過對學生答案的分析將其分為完全正確、概念描述錯誤、概念不適合這道題目和答案完全錯誤四類。(3) 答案類型易混淆。例如“同旁內角互余,兩直線平行”和“同旁內角互補,兩直線平行”只差一個字,但分別屬于上述最后兩類答案,傳統的分類模型很難正確地將其進行分類。此外,在進行自動反饋之前,本文還為每個類型的學生答案定義了一個反饋模板,但是為了使模板具有針對性,模板中的一部分內容是需要通過相似度計算進行填充的,具體如表1所示。

表1 答案類型及反饋模板
本文提出一種分兩步進行的數學簡答題自動反饋方法,第一步確定學生答案類型,第二步通過相似度計算填充對應的反饋模板。本文使用基于靜態路由的膠囊網絡用于確定答案類型。Capsule network是2017年Hunter提出的一種方法,用神經元向量代替傳統神經網絡的單個神經元節點,以動態路由的方式去訓練這種全新的神經網絡。與傳統的卷積神經網絡相比,其具有以下特點:(1) 傳統分類模型輸出類別,但是Capsule network輸出的是向量;(2) CNN要得到比較好的結果需要大量的訓練數據,而Capsule network因為在膠囊內部進行特征學習,因此較少的數據就能得到更好的結果;(3) CNN池化會丟失一些信息,而每個capsule的都會攜帶大量的信息;(4) capsule間的傳遞和運算更符合人腦的思考形式。本文將膠囊層間的連接方式改為靜態路由,與動態路由相比,降低了計算的復雜度,提高結果精度,更適合文本分類。
確定答案類型之后,每個類型對應一個反饋模板,但是反饋模板中的一部分內容是需要填充的。因此通過相似度計算對模板進行填充。通過上述方法在已構建數據集上可以達到83.3%以上的正確率。
Page[5]早在1966年就已經開始進行自動批閱相關研究,但早期的自動批閱主要是使用規則的方法為學生提供一個合理的分數。如Bachman等[6]提出WebLAS方法,根據答案自動生成正則表達式,每個正則表達式與一個分數相關聯,因此當學生答案與表達式相匹配就會給出該答案的分數。但是基于規則的方法由于規則表達的有限性,泛化能力較差,隨著機器學習的發展,人們開始用文本分類或回歸模型來預測分數。Sultan等[7]使用文本相似度、詞項權重等特征構建了隨機森林分類器,在SemEval-2013評測數據集SCIENTSBANK上進行測試,F1值達到55%。近年來,由于深度學習方法在許多任務上已經達到了最先進的水平,研究人員開始使用詞向量和深度神經網絡進行評分研究。如Riordan等[8]使用CNN-LSTM構成的神經網絡進行自動評分,獲得的效果比非神經網絡方法好。隨著評分技術的日漸成熟,人們發現如果只是給出分數并不能讓學生很清楚地認識到自己的不足之處,無法達到智能批閱的真正目的,因此人們開始嘗試研究自動反饋。
在自動反饋研究初期,Marvaniya等[9]提出了一種針對于英語填空的自動反饋方法。對于每個空,由老師提前預測每個空的所有可能錯誤答案,例如動詞時態變化、名詞單復數形式的變化、短語的固定搭配等。對于預測的每一個答案教師都給出了一個反饋,通過計算學生答案和所有預測答案的相似度,找出和學生答案相似度最高的預測答案,將相對應的反饋提供給學生。通過該方法有效地減少了老師對相似答案重復提供類似反饋的工作量。但是并不是所有題目都可以預測到所有錯誤類型,而且這項工作需要老師有豐富的教學經驗。因此,Brooks等[10]對于從慕課網上收集的學生答案進行度量聚類,老師對于每一類聚類結果給出反饋,使得老師的工作量由幾百甚至幾千降到幾十。但是聚類方法的準確性不高。Zhang等[11]提出了一種基于深度學習+聚類+學生建模的方法,追蹤學生的學習軌跡為學生提供反饋。這個方法需要大量的學生學習數據,并不是很容易實現。同時,Dzikovska等[12]提出將答案按照錯誤類型分類而不是分數,將答案分為正確、部分正確、非領域、不相關、矛盾五類,為本文的反饋提供了思路。
文獻[13]發表后,關于膠囊網絡的研究受到了許多關注。Afshar等[14]將膠囊網絡用于腫瘤圖片的分類,通過改變capsule的特征層數來提高精度。Du等[15]提出一種新的基于膠囊的混合神經網絡用于情感分類。阿里研究發現膠囊網絡應用到投訴文本模型上的整體表現優于原先TextCNN[16]。Zhao等[17]將基于動態路由的膠囊網絡用于文本分類任務,在六個經典文本分類數據集上進行實驗,其中四個都取得了當前最好的結果。
本文提出一種分兩步進行的數學簡答題自動反饋方法。第一步是對學生答案類型進行建模,給定學生答案,通過基于靜態路由的膠囊網絡判斷學生答案類型。該模型的最大的特點是以膠囊的形式進行特征傳遞,能更好地保留文本內部信息,在小數據集上得到精度更高的分類結果。第二步是通過計算學生答案和正確概念的相似度確定概念屬性,將概念屬性填充到反饋模版中。這一步的優點是可以較為準確地預測答案類型,同時提供的反饋與學生答案緊密相關。
本文采用一種基于靜態路由的膠囊網絡確定答案類型,模型架構示意圖如圖2所示,由輸入層、N-gram卷積層、初級膠囊層、卷積膠囊層、全連接膠囊層、輸出層六層構成。膠囊能夠表示局部實體的屬性,并用向量而不是標量來表達語義。

圖2 膠囊網絡模型架構示意圖
模型的輸入層是學生答案S∈RL×V,L代表句子長度,V代表詞向量維度。
第二層是N-gram卷積層。在這一層用B個大小相同、權重不同的濾波器Wa∈RK×V抽取低級特征,每個濾波器都會生成一個神經元ma∈RL-K+1,這個神經元中的每一個元素按式(1)進行計算。
(1)
式中:Xi:i+K-1代表第i到i+K-1個詞的詞向量;Wa為寬度K、長度為V的濾波器,目的是在不同位置抽取特征;*代表單元乘法;f為激活函數(本文采用sigmod函數);b代表偏置。對于a=1,2,…,B,一共有B個擁有相同的N-gram尺寸的濾波器,可以生成B個特征映射,如下所示:
M=[m1,m2,…,mB]∈R(L-K+1)×B
(2)
下一層是初級膠囊層,pi∈Rd代表一個膠囊,d代表膠囊的大小。由mi∈RB作為輸入,Wb∈RB×d是不同窗口共享的濾波器。窗口的滑動步幅為1,則會產生C個(L-K+1)×d的膠囊,每一個膠囊pi的計算為:
pi=g(WbMi+b1)
(3)
式中:g是Squashing激活函數;b1是膠囊偏置項。對于所有的C個濾波器,生成的膠囊特征映射可以重新排列:
P=[p1,p2,…,pB]
(4)
激活函數具體如下:
(5)
激活函數g既保留了向量的大小,也將向量的模長控制在[0,1)之間。
第四層卷積膠囊層,這一層會自動學習“部分-整體”關系,也就是由低級特征(子膠囊)ui預測高級特征uj|i(父膠囊),如式(6)所示。
(6)

下一層是全連接膠囊層,卷積膠囊層的膠囊被放入了一個膠囊列表中,并輸入到全連接的膠囊層中,膠囊與膠囊乘以變換矩陣Wd∈RE×d×d,通過路由協議產生最終的膠囊vj∈Rd及其概率aj∈R。
接下來通過比較膠囊層間的不同的連接方式選出適合文本分類的連接方式。
2.1.1動態路由
Sabour等[13]指出,膠囊網絡通過動態路由過程更新耦合系數cij的權重,并確定低級特征和高級特征之間的匹配程度。耦合系數由正確高級特征和預測的高級特征的的相似度決定,計算式如下:
(7)
式中:i∈[1,a];j∈[1,k];k代表總的類別數;bij是由子膠囊和父膠囊的相似程度決定的;cij在每次迭代過程都會根據bj|i進行更新。具體如算法1所示。
算法1動態路由算法
procedureROUTING(uj|i,aj|i,r,l)
初始化耦合系數的logits
bj|i=0
forriterationsdo
for all capsuleiin layerland capsulejin
layerl+1
cj|i=aj|i·leaky-softmax(bj|i)
for all capsulejin layerl+1:
for all capsuleiin layer l and capsulejin
layerl+1:bj|i=bj|i+uj|i·vj
returnvj,aj
2.1.2靜態路由
與基于動態路由的膠囊網絡相比,靜態路由主要有以下兩個優勢:(1) 降低了計算復雜度;(2) 提高計算精度。Zhao等[17]首次將膠囊網絡用于文本分類時采用的是動態路由的連接方式。這是直接借鑒Hunter在圖像上的兩個膠囊層之間的連接方式通過靜態路由決定,在圖像上考慮到實體間的空間結構是合理的,但是在語言中,文字的表達方式有很大不同,因此,本文提出靜態路由的方式將子膠囊和父膠囊進行連接:
(8)
確定答案類型后不同的類型有不同的模板,本文通過相似度計算的方法進行反饋模板填充。在進行反饋模板填充之前,本文人工構建了初中數學概念庫,包含了初中階段所有用到的數學概念184條。概念庫中的概念以表2所示的形式存在。概念庫構建完成之后,進行模板填充。本文的答案類型包括完全無關、概念錯誤、概念不適合這道題目、回答正確四類。通過字重疊確定相似度最高的概念,將對應的概念屬性填充進模板,完成自動反饋。

表2 概念庫舉例
本文所使用的數據集來源于某中學八年級數學試卷的三道數學簡答題,每個題目有兩個空,每個空的答案數量分別為3 632、3 632、4 290、4 290、4 913、4 913。由于學生答案有一定的重復和空白,因此對數據進行去重之后進行統計,數據集的具體信息如表3所示,其中Math2重復率最高,Math1次之,Math3最低。

表3 數據集統計
本文采用準確率P作為實驗評價指標。假定a表示被正確分到某類的文檔數,b表示錯誤分到該類的文檔數。則準確率計算如下:
(9)
在參數設置上,本文使用Skip-gram訓練維度為60維的字向量和詞向量,通過對詞級別和字級別的句子長度進行統計發現(包括學生答案+參考案),詞級別的最大長度為15,字級別為40。因此本文輸入為15×60和40×60的矩陣,在N-gram層,采用64個3-gram的卷積層抽取低級特征。膠囊的維度d=6,答案類別設為四類,共享濾波器的窗口維度為2。
3.3.1實驗結果
為了說明本文方法的有效性,本文分別采用傳統機器學習模型SVM和深度學習模型CNN作為基線模型,同時和最近在各個任務上都表現優異的Bert進行了對比實驗。
SVM[15]是一個進行文本分類的經典模型,使用N-gram來提取輸入特征,使用SVM作為分類器,得到答案類型的分類結果。
CNN[16]是目前應用范圍最廣的神經網絡模型之一,許多學者利用其解決多種NLP任務并獲得很好效果。本文分別使用字級別和詞級別的特征作為輸入,得到答案類型的分類結果。
Bert[17]是2018年Google提出的通用預訓練語模型,目前在許多文本分類任務上都取得了比傳統方法更好的結果。
表4列出了基于動態路由的Capsule network(CPN_d)和基于靜態路由的Capsule network(CPN_s)和上述模型的對比結果。

表4 各模型準確率對比(%)
可以看出,CPN_s在三道題上表現均為最優,Bert和CPN_d的實驗結果在三道題上的結果都明顯高于SVM和CNN,但稍低于CPN_s。在Math1上兩種膠囊網絡的結果均優于Bert,準確率達到了91.4%和91.8%。在Math2上膠囊網絡的準確率為96.5%和95.2%,是三道題里最高的。可能是由于題目難度較低,學生答案重復率較高。在Math3上Bert的表現稍優于CPN_d。實驗結果表明在文本分類任務上膠囊形式優于單個的神經元,且靜態路由優于動態路由。
3.3.2數據去重
由表3對數據的統計發現數據的重復率較高,通過對題目的分析發現和題目難度呈正相關。本文為了證明模型的有效性在去重數據上重新進行了實驗,實驗參數與之前一致。實驗結果如表5所示。

表5 數據去重后各模型準確率(%)
通過對去重后的實驗結果進行分析發現,去重之后三道題的準確率均有大幅下降,在Math2上的準確率下降幅度最大,Math1次之,Math3最小,準確率與數據重復率成正相關。
3.3.3不同級別特征
為了檢驗不同級別的特征對實驗結果的影響,本文使用字向量在CNN和基于靜態路由的Capsule network上進行對比實驗,具體如圖3所示,其中:t(token)代表字級別的特征,w代表詞級別的特征。

圖3 不同級別特征在CNN和CPN_s上的結果
通過對圖3觀察發現,不論是CNN還是CPN_s,字級別的實驗結果都優于詞級別的實驗結果。
本文首先構建了數學簡答題數據庫,然后提出將數學簡答題的自動反饋分為兩步進行,通過基于靜態路由的Capsule network確定答案類別。為了證明該方法的有效性,與SVM、CNN、Bert進行了對比實驗。確定答案類型后,不同的類型有不同的模板,本文通過相似度計算的方法進行反饋模板填充。但是該方法的反饋模板需要手動定義,答案類別也并沒有細分,因此只能給出較為概括性的反饋。下一步計劃通過構建數學概念知識圖譜為學生提供更細致的反饋。