郭崇慧, 呂征達
(大連理工大學 系統工程研究所,遼寧 大連 116024)
隨著互聯網教育規模的不斷擴大和學生學習需求的深化,中國在線教育在現階段已經進入了學習方式豐富多樣、資源開放共享的智能教育時代,互聯網、大數據和教育的有機結合成為時代發展的必然趨勢。教育大數據是指整個教育活動過程中所產生的以及根據教育需要采集到的,一切用于教育發展并且具有巨大潛在價值的數據集合。教育大數據作為教育戰略資源,具有推動教育領域改革的巨大科學力量,并且引領著智慧教育的發展。教育大數據的價值具體表現在教育管理科學化、教學模式改革、學習個性化、教育服務人性化等若干方面[1]。因此,對教育大數據的相關研究顯得尤為重要。
美國教育部在2012年10月發布了《通過教育數據挖掘和學習分析促進教與學》報告,提出了目前教育大數據領域中兩大主要研究方向——教育數據挖掘和學習分析。教育數據挖掘是綜合運用數學、統計學、機器學習和數據挖掘技術,對教育數據進行處理和分析,通過數據建模,發現學習者學習結果與學習內容、學習資源和教學行為等變量的相關關系,來預測學習者未來的學習趨勢;學習分析是綜合運用信息科學、社會學、計算機科學、心理學和學習科學的理論和方法,通過對廣義教育大數據的處理和分析,利用已知模型和方法去回答影響學習者學習的重大問題,評估學習者學習行為,并為學習者提供人為的適應性反饋[2]。
在教育活動過程中,試題作為考察學生對所學知識點掌握程度的重要途徑受到了充分關注。教師在設計試題時都有著一定的考察目標,因此每道試題涉及一個或者多個知識點。在傳統教學中,這些知識點需要學生在解題過程中自己去分析。隨著互聯網與教育相結合,在線教育平臺收集了豐富多樣的試題數據,而其中絕大部分試題都沒有標注知識點。在教育數據挖掘研究中,利用標注好知識點的試題數據輔以學生的作答數據可以進行學習者知識建模、個性化試題推薦、試題難度預測等研究。如果采用人工標注知識點的方法費時費力,并且可信度也得不到保障。
因此,尋找一種高效準確的自動標注試題知識點的方法成為當務之急,且對初等教育尤為重要。文[3]提出了基于支持向量機(Support Vector Machine, SVM)算法的地理試題自動分類模型,文[4]構建了基于SVM的試題自動分類系統,文[5]設計出基于向量空間模型的分類系統,通過計算特征詞相似度來進行分類。以上文獻中的試題數據僅有一個知識點標簽,并且總的知識點標簽數量過少,與初等教育試題、知識點分布的實際情況不符,若將上述方法應用到初等教育領域試題知識點標注問題中,則存在一定局限性。為了解決初等教育試題多知識點標注問題,本文提出一種基于集成學習的多知識點標注方法。本文形式化定義試題知識點標注問題,構建了高中數學知識點知識圖譜,提出的方法能夠很好地完成知識點標注任務。
經過文獻查閱可以發現大多數教育數據挖掘研究和學習分析涉及到的學生層次多為接受高等教育的大學生,幾乎沒有面向初等教育的研究[6~8],并且現階段對于教育大數據中教育資源數據的研究主要集中在教育資源個性化推薦,大多使用的是學生行為數據,也就是從學生角度來做分析比較,并未從教育資源的角度考慮。試題知識點標注,也可稱為試題分類,試題主要以文本的形式存儲在信息系統中,因此可以借鑒文本分類方法來進行研究[9]。學科領域的知識點集合構成了知識體系,可以利用知識圖譜方法構建知識體系[10]。而試題考察的知識點可能不止一個,因此又涉及到多標簽分類[11]。為了提高分類精度,本文提出的方法應用了集成學習的思想[12]。
文本分類是按照構建好的分類體系對文檔數據進行類別劃分的一種自動分類方法。文本分類任務通常由三部分組成:文本數據獲取與預處理、特征工程、分類器設計及評估[13],如圖1所示。

圖1 文本分類一般流程
使用的數據集一般是由文本數據以及相關標簽組成,預處理階段需要對原始的文本進行清洗。由于文本結構不同,進行中文文本分析時首先應該分詞處理,而進行英文文本分析時需要去掉單詞的前后綴。然后刪除低頻詞、停用詞、無意義的特殊符號等。通常情況下文本分類中的特征維數高,構成的矩陣稀疏,特征工程的主要目的是降維,包括特征選擇、特征提取以及文本表示[14]。特征選擇是從原始的特征集合中選取最合適的特征構建成新的可以用于分析的特征矢量,常用的方法有互信息、信息增益、χ2統計量等。特征提取是將高維特征矢量映射到低維空間中。為了使計算機能夠處理真實文本則需要選擇合適的方法來表示文檔。最常用的文檔表示方法是向量空間模型,又稱詞袋模型(Bag of Word, BoW)。該方法首先通過所有的文檔構造一個詞典,每篇文檔表示成與詞典長度相同的向量,向量的每個位置對應著詞典中相同位置的詞。一篇文檔中出現了某詞,則在表示該篇文檔的向量對應位置上賦予該詞的權重,權重可以是詞頻或者是詞頻-逆文檔頻率 (Term Frequency-Inverse Document Frequency, TF-IDF)。而用于文本分類的機器學習分類方法有樸素貝葉斯分類器、支持向量機、神經網絡、決策樹等[15]。
為了增強下一代智能搜索引擎功能,谷歌公司在2012年5月提出了知識圖譜的概念。知識圖譜本質上是一種語義網絡,用于表示實體間的關系。如今,知識圖譜也泛指各種大規模的知識庫。雖然知識圖譜這個名詞較新穎,但是其技術淵源已久,從20世紀70年代的“專家系統”,到萬維網之父伯納斯·李提出的“語義網”,再到后來提出的“鏈接數據”都是知識圖譜的前身[16]。
知識圖譜的構建方式主要有兩種:自頂向下和自底向上。自頂向下的方式是借助結構化數據抽取實體、屬性及關系;而自底向上的方式則是憑借技術方法在采集到的網絡公開數據中按照信息抽取、知識融合、知識加工三個步驟得到的實體、屬性及關系[17]。
傳統意義上的分類問題多為單標簽分類,包括二元分類和多類分類,而實際上很多待分類樣本并不只有唯一標簽,因此對于多標簽分類問題的研究逐漸增多。現有的多標簽數據的處理方法主要分為兩大類:問題轉換法和算法適應法[18]。問題轉換法是將多標簽分類問題轉換為多個單標簽分類問題,然后沿用傳統單標簽分類算法如支持向量機、貝葉斯分類器、K最近鄰分類器等來求解問題,主要方法有二元關系法(Binary Relevance, BR)、標簽冪集法(Label Power-set, LP)等。而算法適應法則是通過修改傳統的單標簽學習算法,使之能夠處理多標簽數據,主要方法有多標簽KNN算法(Multi-label KNN, MLKNN)、多類多標簽關聯分類法(Multi-class Multi-label Associative Classification, MMAC)等。
集成學習通過構建并集成多個分類器來完成學習任務,常可獲得比單一分類器效果優越的泛化性能,尤其是當分類器是“弱分類器”時更為明顯[19]。根據基分類器的生成方式,集成學習方法大致可分為兩大類:以提升法(Boosting)為代表的序列化方法和以裝袋法(Bagging)為代表的并行化方法。
裝袋法是并行集成學習方法最著名的代表,通過自助采樣法從包含m個樣本的訓練集中有放回抽樣得到T個含有m個可重復樣本的訓練子集。然后基于訓練子集訓練出T個基分類器,再根據集成策略(比如投票法)對分類器進行集成。
表1中列舉出了原始高中數學試題數據樣例,下面對試題知識點自動標注問題給出形式化的描述:
定義1(試題題干) 試題題干q是由p個中文詞語及數學符號組成的文本,可以表示為q=(w1,w2,…,wp),其中wi(1≤i≤p)表示試題題干的第i個特征。
定義2(知識點標簽) 知識點標簽k是一道試題所考察的知識點lm的集合,可以表示為k=(l1,l2,…,lm)。lj(1≤j≤m)表示試題是否考察了知識點j,若考察了則lj=1,否則lj=0,其中m為全部知識點數量。
定義3(試題數據) 試題數據集Q是由若干試題題干及其知識點標簽共同組成,Q={Q(1),Q(2),…,Q(i),…,Q(n)},其中Q(i)=(q(i),k(i))(1≤i≤n),n表示題庫中試題總數量。
定義4(試題知識點標注)試題多知識點標注是指在給定試題題干q=(w1,w2,…,wp)的情況下,自動化標注出該試題題干所考察的一個或者多個知識點組成的知識點標簽k=(l1,l2,…,lm)。標注過程共分為兩個階段,對已標注知識點的試題數據進行學習的學習階段和對未標注知識點的試題自動標注階段。

表1 未處理前試題數據
為了解決試題知識點自動標注問題,首先需要利用已標注數據,學習訓練出分類器。本文提出一種基于集成學習的試題多知識點標注方法。基本流程如圖2所示。
首先對收集到的試題數據進行清洗、轉換,試題題干部分通過自然語言相關預處理方法進行梳理,知識點標簽部分通過含有領域知識的外部材料或領域專家構建知識點圖譜進行原始知識點標簽的半自動替換。之后劃分出訓練集和測試集,訓練集用于訓練分類器。將測試集輸入訓練好的分類器,預測出對應考察知識點并與測試集原本的知識點標注進行對比,通過若干度量指標度量本方法的有效性。

圖2 基于集成學習的試題多知識點標注方法流程
文本數據預處理需要首先對試題數據進行半自動篩選,刪除重復試題、標注錯誤試題、題干過短試題,最終整理出合適的、可以用于實驗的數據集。然后,對篩選得到的試題題干數據進行預處理,刪除其中的無用字符,結合領域詞典進行分詞,并依據停用詞表去除分詞操作中得到的停用詞,得到干凈合適的預處理后數據。最后,使用詞袋模型并結合TF-IDF來表示試題題干文本。具體流程圖如圖3所示。

圖3 試題題干處理表示流程
以高中數學試題為例,不少高中數學試題中存在幾何圖形和公式,對于這樣的數據暫無可靠方法提取,因此從原始文本文件提取的試題數據主要由中文、英文、數字以及一些特殊字符組成。其后需要對提取出的數學試題文本數據進行預處理。首先,刪除無意義的數字、英文字母和特殊字符。然后依托搜狗細胞詞庫中的數學專有名詞詞庫構適合高中數學的專有領域詞典,并在常用停用詞表基礎上添加在數學試題文本中常出現的無意義的詞,例如“已知”、“證明”、“其中”等,構造出專用停用詞表。最后根據領域詞典使用分詞工具對試題文本數據進行分詞,并依據停用詞表對分詞后的題干數據進行清洗。最終得到的文本如表2所示。然后使用詞袋模型和TF-IDF相結合的方法來表示處理后的文本信息,并劃分出訓練集和測試集。

表2 處理后試題數據
知識點是教學活動中傳遞教學信息的基本單元。根據劃分的粒度可以分為單位知識點和復合知識點。知識點的關系有三種:層次關系、前驅關系和關聯關系。本文的數學知識圖譜的構建借助人教版高中數學教材采用自頂向下的方式得到的。首先抽取出教材中的目錄,目錄有三個層級:章、節、小節,定義每個章節的標題為一個知識點。由于教材目錄的結構存在互相包含,互相嵌套的情況,有的知識點的層次關系并不明顯,因此按照“相互獨立”原則,結合領域知識修改不恰當知識點結點。由此構建出具有層次關系的依托教材的知識點圖譜,如圖4所示。

圖4 知識點的知識圖譜舉例
對原始數據進行梳理后發現,原始數據集中的標簽存在如下問題:表達的意思相同但用詞不同;存在包含關系;標簽粒度不一致等。因此,使用知識點圖譜中的單位知識點,即樹形結構的葉結點作為標準知識點,對原始數據集中的標簽進行替換。最終得到標準化的知識點標簽
文本分類中由于支持向量機算法性能優越,因此選擇支持向量機分類器作為基分類器。本文集成學習方法選擇的是裝袋法,基于自助采樣法的裝袋法是并行式集成學習方法最著名的代表。使用自助采樣法從訓練集中構造出若干訓練子集,每個訓練子集都輸入到基分類器中得到若干性能不同的基分類器。
將測試集分別輸入到訓練得到的基分類器中,選擇子集準確率(Subset Accuracy, SubAcc)作為基分類器評價指標,分別計算各個基分類器對于測試集的子集準確率,并計算其均值作為篩選優基分類器的閾值。通過比較各個基分類器的子集準確率與平均子集準確率的大小,即可篩選出優基分類器。得到若干優基分類器后,通過相對多數投票法對所有的預測結果進行組合來得到最終的預測結果,基分類器集成流程圖如圖5所示。

圖5 基分類器集成流程
本文的實驗數據來自某在線教育平臺數據庫中的高中數學試題,原始數據共計2195道,經過半自動篩選后得到1357道試題。原始標注的知識點也就是原始標簽共計166項,經過數學知識點圖譜構建并替換后得到61項標簽。
通常多標簽任務的評價指標有基于樣本的度量方法和基于標簽的度量方法兩大類,并且在這種任務中僅考慮單一指標并不十分合適,因此本文選擇如下幾個實驗評價指標[20]:
(1)基于樣本的度量方法
子集準確率(Subset Accuracy):預測標簽集與真實標簽集完全相同的比率,計算公式為
(1)
其中h(xi)表示預測出的標簽,Yi表示真實的標簽情況。
海明損失(Hamming Loss):預測標簽與真實標簽的差距, 計算公式為
(2)
其中Δ表示預測標簽集和真實標簽集的對稱差分。
查準率(Precision):預測為真中真實為真的比例, 計算公式為
(3)
查全率(Recall):真實為真中預測為真的比例, 計算公式為
(4)
F1值(F1 Score):每個樣本的查準率和查全率的調和平均數, 計算公式為
(5)
(2)基于標簽的度量方法:
對于標簽集中的第j個標簽,其真正例、假正例、真反例、假反例定義如下:
TPj=|{xi|yi∈Yi∧yj∈h(xi),1≤i≤n}|
FPj=|{xi|yi?Yi∧yj∈h(xi),1≤i≤n}|
TNj=|{xi|yi?Yi∧yj?h(xi),1≤i≤n}|
FNj=|{xi|yi∈Yi∧yj?h(xi),1≤i≤n}|
(6)
宏F1(macro-F1):從各個標簽的混淆矩陣分別計算出查準率和查全率并取平均值,再計算F1,即
(7)
微F1(micro-F1):現將各混淆矩陣對應元素平均,再求出F1值,即
(8)
覆蓋率(Coverage):平均每個樣本的預測標簽排序中,需要查找多少預測標簽才能找出所有樣本的真實標簽,其中rankf(xi,y)表示預測標簽的排序,即
(9)
平均準確率(Average Precision):所有樣本的預測標簽排序中,排在真實標簽前的也是真實標簽的概率的平均值,即
(10)
由于樣本數據不平衡,不同知識點標注的試題數量差距比較大,因此,設置了不同閾值來根據標簽出現的頻次篩選知識點標簽及相應試題數據。表3展示實驗的設置,標簽頻次閾值分別設為100、50、40、30、20、10。標簽的勢(label cardinality)表示每道試題的平均知識點數量,標簽密度(label density)是標簽的勢的標準化,其計算公式如下
(11)
其中n表示數據集中試題的數量,m表示知識點標簽的數量。
在算法上選擇了二元關系法(Binary Relevance, BR),多標簽KNN算法(Multi-label KNN, MLKNN)[21],分類器鏈法(Classifier Chain, CC)作為對比算法,實驗的訓練集測試集劃分比例為1∶1。根據上文提到的度量指標,對比試驗結果如表4~表6所示。

表3 實驗設置

表4 標簽頻次閾值分別為100和50時的實驗結果對比

表5 標簽頻次閾值分別為40和30時的實驗結果對比

表6 標簽頻次閾值分別為20和10時的實驗結果對比
從實驗結果可以看出,與二元關系法、多標簽KNN算法、分類器鏈法相比,本文提出的基于集成學習的試題多知識點標注方法在不同的知識點標簽數量下都取得了較好的結果。在多標簽分類中評價比較嚴苛的指標——子集準確率上,本文方法總是明顯優于其他三種方法。篩選表現相對較優的基分類器并將其結果通過多數投票法集成,彌補了各個基分類器的劣勢,獲得了很好的結果。

表7 預測結果與原始標注對比
不過,隨著標簽頻次閾值的降低,知識點的數量逐漸增加,多標簽分類難度越來越大。原因之一是一道試題實際蘊含的知識點和教師出題考察的知識點并不完全一致。如表7所示,前三道題中原始人工標注的知識點并無“等差數列”,而試題題干內容中卻含有“等差數列”這一詞項,第4題和第5題知識點為“等差數列”且題干中也有“等差數列”。所以使用經過訓練得到的模型來對前三道題進行預測時會將“等差數列”作為這一試題的知識點標注出來。依據現有數據進一步判定試題考察知識點與試題蘊含的知識點是比較困難的。原因之二是由于知識點分布不均勻,有不少知識點并沒有足夠數量的試題數據用來學習,導致在預測試題考察知識點時很難預測出來。
現階段教育活動中的知識點標注主要是憑借教師人工標注,存在成本高、效率低、準確度難以保障等問題。因此,自動標注試題知識點成為了亟待解決的問題。本文提出一種基于集成學習的試題多知識點標注方法,能夠有效地自動標注試題知識點,并且取得了較好的效果。
本文的主要貢獻有以下三點:
(1)對試題知識點標注問題進行了形式化的定義,將試題多知識點標注問題轉化為多標簽分類問題;
(2)借助教材目錄和領域知識構建知識點的知識圖譜作為分類依據;
(3)提出基于集成學習的多知識點標注方法,能夠有效標注試題考察的知識點,完成試題分類。
本文使用實際背景下的高中數學試題進行了實驗,實驗結果表明在實際背景下文本提出的方法要優于已有的基于傳統機器學習的多標簽文本分類方法。但是,總體效果還有待進一步提升,主要原因有以下兩點:
(1)數學試題題干中含有的公式和圖形信息無法提取,而對于某些試題公式和圖形中蘊含著有關考察知識點的信息。由于信息缺失導致試題題干特征表示的不完整,因此導致難以做出正確的預測。
(2)試題的分類目標,即知識點體系,目前尚無公認的標準,本文中依托高中教材目錄和領域知識構建了知識點圖譜來對原始數據的雜亂的標簽進行了半自動化的替換。
因此,需要在未來進行更深入的研究的重要關鍵點有兩點:一是深入挖掘現有試題題干文本的語義信息;二是尋找可以利用原始試題中的公式、圖形圖像的方法來彌補僅憑借文本挖掘方法導致的信息缺失。