有的人會有疑問,機器可以做自動解題嗎?我想說自動解題不僅可以做,而且可以做的更好。
多知網(wǎng)6月23日消息,從月初到現(xiàn)在,高考話題一直熱度不減。今年參加高考并考得134分的學霸君智能教育機器人,也在持續(xù)受到關(guān)注。智能教育機器人是怎樣完成整個答題過程的?在這個機器人背后,學霸君構(gòu)建了一個怎樣的數(shù)據(jù)分析處理系統(tǒng)?
本次,多知網(wǎng)邀請到學霸君首席科學家陳銳鋒做客多知網(wǎng)第十二期OpenTalk“當教育遭遇AI,將帶來哪些顛覆性的變革”活動,在活動上他針對以上問題進行了講述和解答。
以下為陳銳鋒的分享(經(jīng)多知網(wǎng)編輯):
有的人會有疑問,機器可以做自動解題嗎?我想說自動解題不僅可以做,而且可以做的更好。如果我們進入這個領域更長時間,能做出更好的東西。因為所有的信息全部蘊含在數(shù)據(jù)里面,這次就是我們在過去四年,觀測數(shù)據(jù)、分析數(shù)據(jù)所積累的東西。
今天分享主要有兩個內(nèi)容。首先說動機,我們的數(shù)據(jù)智能是什么樣子,為啥要做數(shù)據(jù)智能,第二說路徑,有動機有路徑,就形成一個完整的我們做這個東西的描述。我是做運籌學出身的,我的一個觀點是學習到后面不僅僅是智能重要,它的優(yōu)化同樣非常重要。
打地基:用拍照搜題建立高考數(shù)學知識點數(shù)據(jù)庫
這是我們以前做的關(guān)于芯片制作的系統(tǒng)簡化模型,芯片的制作有幾個環(huán)節(jié),首先要熔化硅的原材料,成型、冷卻、做質(zhì)量檢測、切片再做質(zhì)量檢測,再做打磨,才可以看到原始的芯片。這里面有幾個環(huán)節(jié)是質(zhì)量檢測,我們在教育里面也發(fā)現(xiàn)有同樣的問題。
每一次處理,如果帶著一點點缺陷,會導致它下一部分缺陷的累計。如果是把每一個知識點的學習當成是一次裝配的過程,我們可以把整個學習過程當成是一個很長的組裝過程。直線與直線平面的關(guān)系、平面與平面的關(guān)系、旋轉(zhuǎn)體、多面體,可以看到這是立體幾何幾個關(guān)聯(lián)知識點的前后關(guān)系。
我們學習的時候會從最簡單的學起,第一個課程掌握了80%左右知識點的情況下,有20%要累計到下一個知識點,直線與平面又有20%產(chǎn)生知識的空缺,不斷累計下來,第三、第四、第五節(jié)課開始有些同學跟不上,這就是學習缺陷的累計。
如果有比較好的機制在每個知識點的學習加一次檢測,并且能把這些量化、固化、指標化,我們可以用這個東西幫學生去補漏。他做題,到底是直線與直線的題目不懂,還是直線與平面的題目不懂,這是我們圍繞數(shù)據(jù)做的自適應學習方面的工作。
怎么樣檢測每個知識點需要做哪些題?這就需要有比較深入的分析。我們在早期開始做學霸君拍照搜題的時候,用的是識別+搜索,很多的問題是通過搜索去進行分析。一道題目和另外一道題目相近,這兩道題包含著相似的詞,但是相似題推薦完全不夠,因為我們在后來的實踐中發(fā)現(xiàn),有很多情況下,兩道題用完全不一樣的字,考的是同樣的內(nèi)容。
這就要去更深度地挖掘,做深度挖掘的第一個非常重要的媒介是拍照搜題。拍照搜題是收集學生不懂題目的數(shù)據(jù)的自發(fā)性通道,早期設計這個產(chǎn)品時候,我們想去捕捉學生不懂不會的題目,最后用的是拍照搜題的方案。如果學生非常懂一道題,他不會花費一分鐘去拍個照搜一個,他如果去搜基本上表明這個學生對這道題能力的缺失。
學霸君里面捕捉了每個學生帶問號的題目,帶感嘆號、他懂的就不會捕捉,捕捉過來之后就形成了比較大的題目庫。我們現(xiàn)在有80億次學生訪問,8000萬道題目。這些題目變成做自適應學習、自適應分析的基礎。
這是我們在進校產(chǎn)品里用的自適應學習引擎。它的工作原理,分為三大塊。第一是條件反應理論,即所有題目只要有人做過或者有數(shù)據(jù)沉淀,我們就可以對題目進行難度的劃線,每道題難度的曲線是從0到1的分布。
我們可以對每個學生做題的對錯進行分析,并且根據(jù)他的數(shù)據(jù)庫,預測他在下一題的表現(xiàn)。據(jù)統(tǒng)計,目前我們可以預測出學生做對做錯一道題的精準度是70%。
建路徑:在高考數(shù)學有限集內(nèi)建立知識圖譜和行為圖譜
接下來是知識圖譜,它經(jīng)歷了兩個層面的演變。首先是樹狀結(jié)構(gòu),大家可以看到經(jīng)常出現(xiàn)三層樹狀結(jié)構(gòu)。兩、三年前我們開始往下鉆一層,到四層的樹狀結(jié)構(gòu),這是為了更精細地對題目進行打標簽,隨著我們產(chǎn)品繼續(xù)往前推,發(fā)現(xiàn)四層的知識點結(jié)構(gòu)還是不夠。因為有些題目就是蘊藏在更下一層里面,我們在知識圖譜里面又往下放一層,這時候我們可以做自動解題。
這時候我們可以把題目一道一道猜出來,我們把8000萬題目里面的數(shù)學那部分做處理,之后進行文本的分詞、分句,把接近的題目題干做相應的排序,排序后,會發(fā)現(xiàn)非常典型的數(shù)據(jù)現(xiàn)象開始出來,題目都是有套路的。
當把每一類型題的所有題目放在一塊,你從這個維度去看,會發(fā)現(xiàn)依據(jù)相應的題目模式,有些時侯看數(shù)字就可以把題做出來,這就說明自動解題是有章可尋的。解題步驟序列化挖掘為解題提供了非常重要的基礎。
這里面有一個非常重要的邏輯,我們說的知識圖譜不是廣譜。如果要做自動解題,要沉淀一個足夠量的題庫,并能夠高頻次覆蓋中國90%多的出題模式。
當我們把題目的難度曲線、學生行為的序列和知識圖譜結(jié)合起來的時候,就可以根據(jù)每個學生所做的作業(yè)情況做相應的推薦。我們推題非常重要的原則不是碾壓學生,也不是總是讓他得到勝利的喜悅,而是會推將將會、將將不會的題目。
大家覺得可能認為推題是非常主觀的判斷,但是一旦你可以分析出一道題里面蘊含哪些知識點,一道題和另外的題有哪些關(guān)聯(lián),這就變成可工程化的問題,所有東西可以用數(shù)據(jù)去表達。
學生做作業(yè)、跟另外一個同學的關(guān)聯(lián),學生和班級的關(guān)聯(lián),這個班級和另外一個班級的關(guān)聯(lián),這個學校處于什么城市,處于上海還是北京,還是三線城市,他們的數(shù)據(jù)如果用起來,能夠極大幫助這個推薦引擎固化,針對當?shù)氐膶W習具體需求去和學生做學習的互動。
我受一些同行的啟發(fā),開始意識到一開始我們思考的時候是停留于上面的知識網(wǎng)絡,比如解題更多是知識網(wǎng)絡的事情。但我在分析一個班級的情況時,會停留在社會網(wǎng)絡,比如行為數(shù)據(jù)。這樣的數(shù)據(jù)也變成自動解題非常特殊的數(shù)據(jù)。
接下來給大家看一套我們的系統(tǒng),用點陣筆搜集學生的作業(yè)數(shù)據(jù),把每一個答案、每一個細節(jié)都記錄下來,搜集大量的班級數(shù)據(jù),就形成一個班級的圖譜,這是社會圖譜里面的,所有的數(shù)據(jù)不斷記錄下來,這是非常特殊的數(shù)據(jù)資產(chǎn),這是我們傳統(tǒng)做題庫沒有積累的,因為是跟行為所關(guān)聯(lián)的。
我們隨便拿某位同學的題目中的一道題目,你會發(fā)現(xiàn)這位同學做的題目,另外一個同學在做,拿出另外一個題目,也有這樣的關(guān)聯(lián)。如果看所有班級的數(shù)據(jù),會發(fā)現(xiàn)一個非常有意思的現(xiàn)象,一道題我們記錄了這個班級50個人做這道題的解題過程樣本。每個人可以從不同維度去描述這道題怎么解,每個邏輯之間怎么跳變。之前這部分數(shù)據(jù)沒有充分利用,我們做分析的時候,如果把這部分數(shù)據(jù)利用起來,它可以加強解題的套路和模式。
得結(jié)果:將試卷翻譯為機器語言、搜索并轉(zhuǎn)為自然語言輸出
我給大家講一下自動解題的技術(shù)過程,以2016年高考第一道題為例,首先把題目拆出來、拉成列,每個文字變成一個輸入值。第二步我們來做一個序列狀的神經(jīng)網(wǎng)絡模型,通過這個模型將試卷中使用的語言翻譯成另外一種機器能夠看得懂的語言。
比如,一道題拆成三個部分,一個是句法解析,實際上就是主語、謂語、賓語,還有他們之間的關(guān)聯(lián),這是傳統(tǒng)NLP可以做的事情,但這還不足以解題。第二步是把算式挖出來,這是通過算式的一些規(guī)律,可以去挖出來。第三步是提取出它的SVO結(jié)構(gòu),我們叫做主謂賓的結(jié)構(gòu)。比如說,三角形的一邊為5,這個SVO結(jié)構(gòu)是一邊是5,對于機器來說就可以理解。
于是,我們把這道題的條件變成基礎的條件。然后在一個比較大的數(shù)據(jù)系統(tǒng)里面記錄了各種運算網(wǎng)絡,求面積、求它的虛部、求它的實部,求截面描述的片斷等等。通過這樣的條件搜索,你可以發(fā)現(xiàn)它會找出一條最終可行的解題路徑。從一開始的條件一步一步跳到答案,這個就是整體關(guān)鍵的步驟。
有了這個之后我們接下來另外一步,是把這些關(guān)鍵的步驟從機器可理解的語言轉(zhuǎn)換成自然語言,這步相對比較簡單,每個基礎的運算都有相應的描述方式,這道題第一步怎么做,第二步怎么做,再重新翻譯一下就可以了。做圖形題也是類似的過程。
所有的題目就是一個找出最佳解題路徑的過程。我們記錄大量學生解題時每步之間的跳轉(zhuǎn),只要能夠洞悉或者理解每步之間的運算,這是有大量的信息的。這樣就知道遇到某道題你要調(diào)用什么樣的方式去解。
為了做這樣的東西,我們做了手寫識別?,F(xiàn)在每天所發(fā)送上來的樣本在被我們做數(shù)據(jù)的標注,做了數(shù)據(jù)的標注之后扔到系統(tǒng)會訓練出更好的識別模型,不斷去識別每一個答案跟每一步是什么樣子。有一些現(xiàn)在沒法識別,有些可以轉(zhuǎn)化出來處理,根據(jù)題目的難度有不同的處理方式。
融合到系統(tǒng)里面就可以發(fā)現(xiàn)根據(jù)每個學生做題的不同記錄,我們可以給他制定一套學習方案。用的是基于解題邏輯和更深層次自然語言邏輯處理進行的題目推送,每道題根據(jù)這個同學的答案進行推送。甚至加入艾賓浩斯記憶曲線,學生做完這個知識點,后一個星期他要再復習一下,所有這些東西就是用數(shù)據(jù)去完成的一套系統(tǒng)。(多知網(wǎng) 初驪禹)