自動解題批改與自適應(yīng)學(xué)習(xí) AI在教育行業(yè)的應(yīng)用實(shí)踐
原創(chuàng)【51CTO.com原創(chuàng)稿件】近幾年人工智能風(fēng)靡,諸多大中小企業(yè)紛紛布局,對于創(chuàng)業(yè)公司來說,想要有所建樹,深耕垂直細(xì)分領(lǐng)域才是關(guān)鍵。因?yàn)檫@里有大量的行業(yè)背景知識,即使巨頭投入巨資也需要先摸清行業(yè)情況,這個(gè)過程往往需要一年或更多,這就為創(chuàng)業(yè)公司贏得了大量的時(shí)間機(jī)會。對于這一類的情況,巨頭可能更傾向于收購或注資,而不是自建團(tuán)隊(duì)。
三年來,學(xué)霸君在教育行業(yè)積累很多行業(yè)知識,尤其在校內(nèi)業(yè)務(wù)方面,對學(xué)校的情況非常熟悉。同時(shí),因校內(nèi)業(yè)務(wù)的需求,學(xué)霸君一直非常注重人工智能相關(guān)技術(shù)的研發(fā)。通用人工智能技術(shù)非常難做,但與垂直行業(yè)場景結(jié)合起來,降低算法的難度,使得算法找到用武之地。在這個(gè)過程中,踩了很多坑,也收貨了豐富的實(shí)踐經(jīng)驗(yàn)。本文將介紹學(xué)霸君在校內(nèi)業(yè)務(wù)所的幾大應(yīng)用:結(jié)構(gòu)化題庫建設(shè)、自動解題與知識圖譜、作業(yè)自動批改、自適應(yīng)學(xué)習(xí)。
【結(jié)構(gòu)化題庫建設(shè)】
結(jié)構(gòu)化題目格式
題庫是教育公司的核心之一,市面上絕大部分題庫,題目的數(shù)據(jù)都是一段簡單的字符串。為了真實(shí)還原題目的結(jié)構(gòu),學(xué)霸君選擇使用json來描述題目的結(jié)構(gòu),一道題由很多零件根據(jù)一定的規(guī)則組合而成。
如下圖所展示的選擇題,由題干描述部分和選項(xiàng)部分組成,選項(xiàng)分成4個(gè),題干上有填空的位置,有每一個(gè)公式的位置標(biāo)記。用json結(jié)構(gòu)來記錄題目結(jié)構(gòu),可以把大題拆成小題,可以精準(zhǔn)定位每一個(gè)填空的位置,等等。這樣的題庫可以給產(chǎn)品設(shè)計(jì)提供更多更靈活的使用條件。
這種數(shù)據(jù)結(jié)構(gòu)給題目的應(yīng)用帶來了好處,但也增加了題庫生產(chǎn)的成本,因?yàn)轭}目的錄入環(huán)節(jié)需要對題目做結(jié)構(gòu)拆分與關(guān)聯(lián)。為了降低成本,學(xué)霸君采用大量的圖像識別算法。
如下流程圖是一個(gè)簡化的題目錄入流程,從圖中可以看到,很多關(guān)鍵環(huán)節(jié)都相應(yīng)地使用了識別算法來提高效率。
例如,在結(jié)構(gòu)化錄入環(huán)節(jié),我們使用了版面分析、OCR、公式識別等算法,所有題目都會經(jīng)過算法先識別出一個(gè)初步的結(jié)果,錄入人員人工審核結(jié)果,如果正確就直接跳過,有錯(cuò)誤就局部修改,這樣可以大大提高錄入人員的效率。目前題庫生產(chǎn)系統(tǒng),對于任意一本教輔書,可以做到一天內(nèi)完成所有題目的結(jié)構(gòu)化加工生產(chǎn)到入庫,如果沒有系統(tǒng)和算法的支持,這幾乎是不可能的。
LaTex存儲公式
除了題目結(jié)構(gòu)問題之外,理科題目的公式也是一個(gè)重要點(diǎn)。因?yàn)楣降慕Y(jié)構(gòu)和排版比較復(fù)雜,所以很多題庫都采用了截圖的方式存儲公式,這種方法丟失了公式的內(nèi)容信息,并且存在圖像縮放影響美觀的問題。
學(xué)霸君采用LaTex存儲公式的方案,LaTex是一種通用的排版規(guī)范,可以適用于各種排版的場景。我們針對K12中出現(xiàn)的所有公式和符號,制定了一套基于LaTex的展示標(biāo)準(zhǔn),基于這套標(biāo)準(zhǔn),優(yōu)化了MathJax開源工具,使得web端JS渲染的質(zhì)量和效果都達(dá)到理想要求。
除了JS渲染工具,學(xué)霸君還開發(fā)了基于C語言內(nèi)核的LaTex渲染工具,進(jìn)一步封裝成安卓和iOS版本SDK。它的原理是解析LaTex文本并轉(zhuǎn)義成SVG矢量圖,然后再交給web頁面來渲染成最終結(jié)果。C語言內(nèi)核的SDK的渲染速度比JS快幾倍,特別適用于學(xué)校大規(guī)模使用的低端PAD。
采用LaTex來存儲公式,就需要在錄入題目的時(shí)候把題目錄成LaTex格式,這個(gè)人工成本很大,尤其需要算法的幫助。
以往公式識別的算法,都是先通過一些圖像處理的手段,把公式切割成單個(gè)字符,然后分別識別每一個(gè)字符,最后再通過二維空間的結(jié)構(gòu)關(guān)系,把字符組合成公式。這一類算法有很多局限性,字符有粘連的情況無法很好處理,基于空間結(jié)構(gòu)的組合隨著深度增加,計(jì)算復(fù)雜度程幾何數(shù)量級增長,加上字符有可能有識別錯(cuò)誤,導(dǎo)致無法從海量候選列表中找到正確的結(jié)果。
學(xué)霸君使用了端到端的識別方法,避免了以上所有問題,輸入是一個(gè)整體的圖像,輸出就是基于LaTex結(jié)構(gòu)的公式的識別結(jié)果。算法的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是CNN(卷積網(wǎng)絡(luò))+BLSTM(雙向長短記憶模型)+CTC(時(shí)序分類)。
為了訓(xùn)練模型,學(xué)霸君在學(xué)校采集了大量的學(xué)生手寫公式數(shù)據(jù),并標(biāo)注為LaTex結(jié)構(gòu)。這種網(wǎng)絡(luò)模型目前也有局限性,對于十分復(fù)雜的公式也是無法識別準(zhǔn)確的,對于格式過于復(fù)雜的公式,我們通過空間結(jié)構(gòu)關(guān)系將其拆分為若干個(gè)簡單的公式,然后分別使用端到端的手段來識別,最后組合在一起。
【自動解題與知識圖譜】
除了結(jié)構(gòu)化格式外,學(xué)霸君還希望題庫的每一道題都能說清楚用到了什么知識點(diǎn),甚至希望知道解題過程的每一個(gè)步驟都用到哪些知識點(diǎn)。如果每一題每一個(gè)步驟都由人來標(biāo)記知識點(diǎn),是無法完成的,希望通過算法代替人工來實(shí)現(xiàn),這就用到了自動解題技術(shù)。自動解題大體分為三個(gè)步驟:理解、推導(dǎo)和表達(dá),整體流程如下圖所示。
理解題干的語義
首先理解題干的語義,將題干內(nèi)容從自然語言翻譯成形式化的語言,也就是NLP的過程。開放的語義理解是科研界的難題,至今也距離實(shí)用甚遠(yuǎn)。但在中學(xué)理科體系里,語言的表達(dá)往往十分規(guī)范,這就大大降低了NLP的難度。
更重要的是,在開放的語義理解場景,是無法定義評判標(biāo)準(zhǔn)的,缺少客觀標(biāo)準(zhǔn),會給訓(xùn)練帶來巨大難度。但在中學(xué)理科體系里,很容易定義對錯(cuò),結(jié)合大量的數(shù)據(jù),可以訓(xùn)練出比較理想的模型。
題目中經(jīng)常會遇到公式,前文提到我們題庫中的題目公式都是統(tǒng)一定義和規(guī)范的LaTex格式的,這就保證了機(jī)器可以準(zhǔn)確地識別公式內(nèi)容。
解題步驟的推理過程
接下來是解題步驟的推理過程。需要根據(jù)當(dāng)前所有條件,獲取所需要的知識元信息。知識元是我們定義的最小細(xì)分的知識點(diǎn),一個(gè)知識元是該知識點(diǎn)的定義和特征的總和,例如一個(gè)圓可以作為一個(gè)知識元,它有直徑、半徑、周長、面積等屬性,當(dāng)我們知道它的直徑,可以進(jìn)而計(jì)算出它的半徑、周長和面積。簡單理解,一個(gè)知識元就是一個(gè)小知識點(diǎn)。
將當(dāng)前所有條件綜合到一起,當(dāng)做初始狀態(tài)。根據(jù)當(dāng)前所有知識元的特性可以進(jìn)行步驟推導(dǎo),獲得新的條件,進(jìn)而狀態(tài)不斷變化。每一次推導(dǎo)都有很多種可能性,哪種推導(dǎo)最優(yōu)由模型根據(jù)題干的問題來決定。
每次狀態(tài)切換后,比對一下是否獲得最終答案,如果獲得答案則推導(dǎo)過程結(jié)束。推導(dǎo)過程和知識元是密切相關(guān)的,同時(shí)中間狀態(tài)發(fā)生的條件變化,也會引入新的知識元。
表達(dá)過程
最后是表達(dá)過程,也就是將推導(dǎo)的過程翻譯成標(biāo)準(zhǔn)解題步驟,同時(shí)從幾個(gè)不同維度輸出關(guān)鍵信息。例如,每一個(gè)推導(dǎo)的步驟都會標(biāo)記上所使用的知識點(diǎn);在所有的步驟中,根據(jù)該題所有知識元的情況,找到幾個(gè)最重要的步驟作為關(guān)鍵步驟;綜合該題的所有知識元,概括出本題考察的教研層面的知識點(diǎn)(教研知識點(diǎn)是從老師角度觀察的知識點(diǎn),與解題算法中的知識元不是一個(gè)維度)。
解題技術(shù)封裝成高考機(jī)器人
為了實(shí)戰(zhàn)驗(yàn)證自動解題技術(shù)的效果,將解題技術(shù)封裝成高考機(jī)器人,在2017年6月高考當(dāng)天,我們的高考機(jī)器人和廣大學(xué)生一起參加了高考,在高中數(shù)學(xué)取得了134分的成績,這是人工智能技術(shù)落地在教育行業(yè)的一個(gè)重要突破,引起了包括央視在內(nèi)的各大媒體的關(guān)注和報(bào)道。
知識圖譜
有了自動解題技術(shù),我們就可以給所有題目標(biāo)注知識點(diǎn)。教研老師與技術(shù)同學(xué)一起制定一套覆蓋所有知識點(diǎn)的四級知識體系,知識點(diǎn)之間有層級關(guān)系,也有依賴或關(guān)聯(lián)關(guān)系,呈一個(gè)網(wǎng)狀結(jié)構(gòu)。
這個(gè)知識體系與我們的題庫可以通過自動解題技術(shù)關(guān)聯(lián)起來,形成一個(gè)知識圖譜。在這個(gè)知識圖譜中,每一題都可以關(guān)聯(lián)到若干個(gè)知識點(diǎn),每一個(gè)知識點(diǎn)也可以關(guān)聯(lián)到若干個(gè)題目。有了知識圖譜,系統(tǒng)就可以自動為每次學(xué)生作業(yè)和考試生成學(xué)習(xí)報(bào)告,從知識點(diǎn)的各個(gè)維度剖析學(xué)生的掌握情況。
【作業(yè)自動批改】
點(diǎn)陣數(shù)碼筆
在學(xué)校的調(diào)研中,學(xué)霸君發(fā)現(xiàn)老師批改作業(yè)的負(fù)擔(dān)十分繁重,希望通過系統(tǒng)來幫助老師批改作業(yè),解放老師的時(shí)間和精力。如果實(shí)現(xiàn)系統(tǒng)批改作業(yè)呢?
首先需要收集到學(xué)生的手寫作業(yè)數(shù)據(jù),我們通過點(diǎn)陣數(shù)碼筆來實(shí)現(xiàn)。點(diǎn)陣數(shù)碼筆需要在普通紙張上印刷一層幾乎不可見的點(diǎn)陣圖案,數(shù)碼筆前端的高速攝像頭隨時(shí)捕捉筆尖的運(yùn)動軌跡,同時(shí)結(jié)合壓力傳感器將數(shù)據(jù)收集到處理器,通過編碼翻譯將點(diǎn)陣圖像翻譯為筆跡的坐標(biāo)位置,最終將筆跡信息通過藍(lán)牙傳輸?shù)絇AD上。
如下圖所示,學(xué)生使用點(diǎn)陣數(shù)碼筆做作業(yè)或考試,不改變在紙上寫字的傳統(tǒng)習(xí)慣,同時(shí)可以實(shí)時(shí)將筆跡數(shù)據(jù)電子化。
手寫識別
獲取到學(xué)生手寫數(shù)據(jù)后,先通過版面圖像處理技術(shù)將手寫數(shù)據(jù)拆解成文本行,然后通過聯(lián)機(jī)手寫識別技術(shù)來識別出每一行的文字。
聯(lián)機(jī)手寫識別同樣用到CNN(卷積網(wǎng)絡(luò))+BLSTM(雙向長短記憶模型)+CTC(時(shí)序分類)的模型,但具體的實(shí)現(xiàn)與前面的公式識別場景不一樣,特別是CNN的輸入圖像序列部分,學(xué)霸君采用了華南理工大學(xué)金教授論文里的Path-signature特征作為CNN的輸入特征圖序列。
對于復(fù)雜排版公式,同樣先拆分成簡單文本行,識別后再組合起來。采用學(xué)生的真實(shí)手寫數(shù)據(jù)來訓(xùn)練,實(shí)踐證明,真實(shí)場景數(shù)據(jù)比我們雇傭人力來寫的效果要明顯好。
自動批改
只識別出學(xué)生手寫筆跡,還無法完成自動批改,因?yàn)闃?biāo)準(zhǔn)答案是有很多種變形的,同一個(gè)標(biāo)準(zhǔn)答案,不同的表達(dá)方式可能都是正確的,例如圖上的這個(gè)例子。一個(gè)答案往往是有十幾種變形的,這背后需要有大量的教研基礎(chǔ)知識,系統(tǒng)識別出標(biāo)準(zhǔn)答案后,通過數(shù)學(xué)符號語言處理等算法,自動生成所有的同義表達(dá)式。將學(xué)生筆跡的最終答案,與標(biāo)準(zhǔn)答案的所有同義表達(dá)式進(jìn)行匹配比較,找到結(jié)果一致的表達(dá)式。匹配的過程還需要考慮到,學(xué)生筆跡的最終答案有可能有一些冗余文字。
對于解答題,還希望能根據(jù)步驟來批改,想做到這一點(diǎn)是非常困難,學(xué)霸君采用關(guān)鍵步驟匹配的折中方案。通過自動解題技術(shù),可以獲得解題過程的關(guān)鍵步驟,為了提高批改準(zhǔn)確率,只選擇少量關(guān)鍵步驟,將關(guān)鍵步驟與學(xué)生的解題步驟進(jìn)行匹配。最終題目的得分由關(guān)鍵步驟的分?jǐn)?shù)和答案的分?jǐn)?shù)加和而得。
【自適應(yīng)學(xué)習(xí)】
隨著學(xué)生持續(xù)使用學(xué)霸君的題庫做題(作業(yè)、考試等),系統(tǒng)可以持續(xù)收集到學(xué)生的學(xué)習(xí)行為數(shù)據(jù),有了這些數(shù)據(jù)就可以做到自適應(yīng)學(xué)習(xí),也就是個(gè)性化學(xué)習(xí)。這里用到IRT的傳統(tǒng)模型,IRT理論即項(xiàng)目反應(yīng)理論(Item Response Theory),又稱題目反應(yīng)理論,是一系列心理統(tǒng)計(jì)學(xué)模型的總稱。IRT是用來分析考試成績或者問卷調(diào)查數(shù)據(jù)的數(shù)學(xué)模型,目前廣泛應(yīng)用在心理和教育測量領(lǐng)域。
通過IRT模型,結(jié)合大量學(xué)生做題數(shù)據(jù),可以分析出每一道題目的難度以及學(xué)生的能力,結(jié)合知識圖譜體系,進(jìn)一步分析出學(xué)生在每個(gè)知識點(diǎn)的能力情況,也就是學(xué)生的知識點(diǎn)能力模型。有了這個(gè)模型,對于任何一道新題目,可以預(yù)測出學(xué)生做對這道題的概率,這樣,就可以給學(xué)生推薦難度適中適合他的題目,太簡單或太難的題就沒必要浪費(fèi)時(shí)間了。
對于行為數(shù)據(jù)豐富的地區(qū)和學(xué)科知識模塊,可以直接用RNN模型來訓(xùn)練,輸入的是學(xué)生的做題序列特征數(shù)據(jù),輸出的是每一題的正確與否的預(yù)測。當(dāng)數(shù)據(jù)量較大并且比較均勻的時(shí)候,RNN模型的效果才會相對理想。隨著用戶行為數(shù)據(jù)的不斷收集,以及用戶對產(chǎn)品的越來越規(guī)范的使用,相信RNN模型是未來的方向。
【結(jié)語】
以上是學(xué)霸君將人工智能算法與教育行業(yè)結(jié)合的一些探索,一些算法看起來比較難,但在垂直場景下使用得當(dāng),與工程項(xiàng)目深度融合,是可以獲得比較理想的效果的。學(xué)霸君始終認(rèn)為,人工智能在創(chuàng)業(yè)公司里的落地,離不開與業(yè)務(wù)場景的深度融合。我們的算法工程師不僅可以寫代碼,也能做卷子參加考試,只有這樣才能保持特有的競爭力,在行業(yè)內(nèi)有所突破。
【苗廣藝簡介】
苗廣藝,中科院碩士研究生,先后就職于搜狐、YY、奇虎360?,F(xiàn)擔(dān)任學(xué)霸君技術(shù)副總裁,負(fù)責(zé)人工智能相關(guān)算法的研發(fā)推進(jìn),以及基礎(chǔ)技術(shù)在業(yè)務(wù)場景的落地實(shí)施。帶領(lǐng)團(tuán)隊(duì)在國內(nèi)率先研發(fā)出適應(yīng)手機(jī)拍照各種復(fù)雜場景的文字識別算法,為學(xué)霸君題庫與教研體系搭建基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)和算法服務(wù),并將其應(yīng)用于各條業(yè)務(wù)線,同時(shí)帶領(lǐng)Ai學(xué)智慧教育平臺技術(shù)團(tuán)隊(duì)研發(fā)了自動批改、自適應(yīng)學(xué)習(xí)等多項(xiàng)前沿技術(shù),為Ai學(xué)業(yè)務(wù)奠定了技術(shù)基礎(chǔ)。
更多AI內(nèi)容,請關(guān)注公眾號:AI推手
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】