有的人會有疑問,機(jī)器可以做自動解題嗎?我想說自動解題不僅可以做,而且可以做的更好。

學(xué)霸君首席科學(xué)家陳銳鋒:如何做一個高考機(jī)器人?

2017-06-23 11:47:10發(fā)布     來源:多知網(wǎng)    作者:初驪禹  

  多知網(wǎng)6月23日消息,從月初到現(xiàn)在,高考話題一直熱度不減。今年參加高考并考得134分的學(xué)霸君智能教育機(jī)器人,也在持續(xù)受到關(guān)注。智能教育機(jī)器人是怎樣完成整個答題過程的?在這個機(jī)器人背后,學(xué)霸君構(gòu)建了一個怎樣的數(shù)據(jù)分析處理系統(tǒng)?

  本次,多知網(wǎng)邀請到學(xué)霸君首席科學(xué)家陳銳鋒做客多知網(wǎng)第十二期OpenTalk“當(dāng)教育遭遇AI,將帶來哪些顛覆性的變革”活動,在活動上他針對以上問題進(jìn)行了講述和解答。

  以下為陳銳鋒的分享(經(jīng)多知網(wǎng)編輯):

  有的人會有疑問,機(jī)器可以做自動解題嗎?我想說自動解題不僅可以做,而且可以做的更好。如果我們進(jìn)入這個領(lǐng)域更長時間,能做出更好的東西。因為所有的信息全部蘊含在數(shù)據(jù)里面,這次就是我們在過去四年,觀測數(shù)據(jù)、分析數(shù)據(jù)所積累的東西。

  今天分享主要有兩個內(nèi)容。首先說動機(jī),我們的數(shù)據(jù)智能是什么樣子,為啥要做數(shù)據(jù)智能,第二說路徑,有動機(jī)有路徑,就形成一個完整的我們做這個東西的描述。我是做運籌學(xué)出身的,我的一個觀點是學(xué)習(xí)到后面不僅僅是智能重要,它的優(yōu)化同樣非常重要。

  打地基:用拍照搜題建立高考數(shù)學(xué)知識點數(shù)據(jù)庫

  這是我們以前做的關(guān)于芯片制作的系統(tǒng)簡化模型,芯片的制作有幾個環(huán)節(jié),首先要熔化硅的原材料,成型、冷卻、做質(zhì)量檢測、切片再做質(zhì)量檢測,再做打磨,才可以看到原始的芯片。這里面有幾個環(huán)節(jié)是質(zhì)量檢測,我們在教育里面也發(fā)現(xiàn)有同樣的問題。

  每一次處理,如果帶著一點點缺陷,會導(dǎo)致它下一部分缺陷的累計。如果是把每一個知識點的學(xué)習(xí)當(dāng)成是一次裝配的過程,我們可以把整個學(xué)習(xí)過程當(dāng)成是一個很長的組裝過程。直線與直線平面的關(guān)系、平面與平面的關(guān)系、旋轉(zhuǎn)體、多面體,可以看到這是立體幾何幾個關(guān)聯(lián)知識點的前后關(guān)系。

  我們學(xué)習(xí)的時候會從最簡單的學(xué)起,第一個課程掌握了80%左右知識點的情況下,有20%要累計到下一個知識點,直線與平面又有20%產(chǎn)生知識的空缺,不斷累計下來,第三、第四、第五節(jié)課開始有些同學(xué)跟不上,這就是學(xué)習(xí)缺陷的累計。

  如果有比較好的機(jī)制在每個知識點的學(xué)習(xí)加一次檢測,并且能把這些量化、固化、指標(biāo)化,我們可以用這個東西幫學(xué)生去補漏。他做題,到底是直線與直線的題目不懂,還是直線與平面的題目不懂,這是我們圍繞數(shù)據(jù)做的自適應(yīng)學(xué)習(xí)方面的工作。

  怎么樣檢測每個知識點需要做哪些題?這就需要有比較深入的分析。我們在早期開始做學(xué)霸君拍照搜題的時候,用的是識別+搜索,很多的問題是通過搜索去進(jìn)行分析。一道題目和另外一道題目相近,這兩道題包含著相似的詞,但是相似題推薦完全不夠,因為我們在后來的實踐中發(fā)現(xiàn),有很多情況下,兩道題用完全不一樣的字,考的是同樣的內(nèi)容。

  這就要去更深度地挖掘,做深度挖掘的第一個非常重要的媒介是拍照搜題。拍照搜題是收集學(xué)生不懂題目的數(shù)據(jù)的自發(fā)性通道,早期設(shè)計這個產(chǎn)品時候,我們想去捕捉學(xué)生不懂不會的題目,最后用的是拍照搜題的方案。如果學(xué)生非常懂一道題,他不會花費一分鐘去拍個照搜一個,他如果去搜基本上表明這個學(xué)生對這道題能力的缺失。

  學(xué)霸君里面捕捉了每個學(xué)生帶問號的題目,帶感嘆號、他懂的就不會捕捉,捕捉過來之后就形成了比較大的題目庫。我們現(xiàn)在有80億次學(xué)生訪問,8000萬道題目。這些題目變成做自適應(yīng)學(xué)習(xí)、自適應(yīng)分析的基礎(chǔ)。

  這是我們在進(jìn)校產(chǎn)品里用的自適應(yīng)學(xué)習(xí)引擎。它的工作原理,分為三大塊。第一是條件反應(yīng)理論,即所有題目只要有人做過或者有數(shù)據(jù)沉淀,我們就可以對題目進(jìn)行難度的劃線,每道題難度的曲線是從0到1的分布。

  我們可以對每個學(xué)生做題的對錯進(jìn)行分析,并且根據(jù)他的數(shù)據(jù)庫,預(yù)測他在下一題的表現(xiàn)。據(jù)統(tǒng)計,目前我們可以預(yù)測出學(xué)生做對做錯一道題的精準(zhǔn)度是70%。

  建路徑:在高考數(shù)學(xué)有限集內(nèi)建立知識圖譜和行為圖譜

  接下來是知識圖譜,它經(jīng)歷了兩個層面的演變。首先是樹狀結(jié)構(gòu),大家可以看到經(jīng)常出現(xiàn)三層樹狀結(jié)構(gòu)。兩、三年前我們開始往下鉆一層,到四層的樹狀結(jié)構(gòu),這是為了更精細(xì)地對題目進(jìn)行打標(biāo)簽,隨著我們產(chǎn)品繼續(xù)往前推,發(fā)現(xiàn)四層的知識點結(jié)構(gòu)還是不夠。因為有些題目就是蘊藏在更下一層里面,我們在知識圖譜里面又往下放一層,這時候我們可以做自動解題。

  這時候我們可以把題目一道一道猜出來,我們把8000萬題目里面的數(shù)學(xué)那部分做處理,之后進(jìn)行文本的分詞、分句,把接近的題目題干做相應(yīng)的排序,排序后,會發(fā)現(xiàn)非常典型的數(shù)據(jù)現(xiàn)象開始出來,題目都是有套路的。

  當(dāng)把每一類型題的所有題目放在一塊,你從這個維度去看,會發(fā)現(xiàn)依據(jù)相應(yīng)的題目模式,有些時侯看數(shù)字就可以把題做出來,這就說明自動解題是有章可尋的。解題步驟序列化挖掘為解題提供了非常重要的基礎(chǔ)。

  這里面有一個非常重要的邏輯,我們說的知識圖譜不是廣譜。如果要做自動解題,要沉淀一個足夠量的題庫,并能夠高頻次覆蓋中國90%多的出題模式。

  當(dāng)我們把題目的難度曲線、學(xué)生行為的序列和知識圖譜結(jié)合起來的時候,就可以根據(jù)每個學(xué)生所做的作業(yè)情況做相應(yīng)的推薦。我們推題非常重要的原則不是碾壓學(xué)生,也不是總是讓他得到勝利的喜悅,而是會推將將會、將將不會的題目。

  大家覺得可能認(rèn)為推題是非常主觀的判斷,但是一旦你可以分析出一道題里面蘊含哪些知識點,一道題和另外的題有哪些關(guān)聯(lián),這就變成可工程化的問題,所有東西可以用數(shù)據(jù)去表達(dá)。

  學(xué)生做作業(yè)、跟另外一個同學(xué)的關(guān)聯(lián),學(xué)生和班級的關(guān)聯(lián),這個班級和另外一個班級的關(guān)聯(lián),這個學(xué)校處于什么城市,處于上海還是北京,還是三線城市,他們的數(shù)據(jù)如果用起來,能夠極大幫助這個推薦引擎固化,針對當(dāng)?shù)氐膶W(xué)習(xí)具體需求去和學(xué)生做學(xué)習(xí)的互動。

  我受一些同行的啟發(fā),開始意識到一開始我們思考的時候是停留于上面的知識網(wǎng)絡(luò),比如解題更多是知識網(wǎng)絡(luò)的事情。但我在分析一個班級的情況時,會停留在社會網(wǎng)絡(luò),比如行為數(shù)據(jù)。這樣的數(shù)據(jù)也變成自動解題非常特殊的數(shù)據(jù)。

  接下來給大家看一套我們的系統(tǒng),用點陣筆搜集學(xué)生的作業(yè)數(shù)據(jù),把每一個答案、每一個細(xì)節(jié)都記錄下來,搜集大量的班級數(shù)據(jù),就形成一個班級的圖譜,這是社會圖譜里面的,所有的數(shù)據(jù)不斷記錄下來,這是非常特殊的數(shù)據(jù)資產(chǎn),這是我們傳統(tǒng)做題庫沒有積累的,因為是跟行為所關(guān)聯(lián)的。

  我們隨便拿某位同學(xué)的題目中的一道題目,你會發(fā)現(xiàn)這位同學(xué)做的題目,另外一個同學(xué)在做,拿出另外一個題目,也有這樣的關(guān)聯(lián)。如果看所有班級的數(shù)據(jù),會發(fā)現(xiàn)一個非常有意思的現(xiàn)象,一道題我們記錄了這個班級50個人做這道題的解題過程樣本。每個人可以從不同維度去描述這道題怎么解,每個邏輯之間怎么跳變。之前這部分?jǐn)?shù)據(jù)沒有充分利用,我們做分析的時候,如果把這部分?jǐn)?shù)據(jù)利用起來,它可以加強(qiáng)解題的套路和模式。

  得結(jié)果:將試卷翻譯為機(jī)器語言、搜索并轉(zhuǎn)為自然語言輸出

  我給大家講一下自動解題的技術(shù)過程,以2016年高考第一道題為例,首先把題目拆出來、拉成列,每個文字變成一個輸入值。第二步我們來做一個序列狀的神經(jīng)網(wǎng)絡(luò)模型,通過這個模型將試卷中使用的語言翻譯成另外一種機(jī)器能夠看得懂的語言。

  比如,一道題拆成三個部分,一個是句法解析,實際上就是主語、謂語、賓語,還有他們之間的關(guān)聯(lián),這是傳統(tǒng)NLP可以做的事情,但這還不足以解題。第二步是把算式挖出來,這是通過算式的一些規(guī)律,可以去挖出來。第三步是提取出它的SVO結(jié)構(gòu),我們叫做主謂賓的結(jié)構(gòu)。比如說,三角形的一邊為5,這個SVO結(jié)構(gòu)是一邊是5,對于機(jī)器來說就可以理解。

  于是,我們把這道題的條件變成基礎(chǔ)的條件。然后在一個比較大的數(shù)據(jù)系統(tǒng)里面記錄了各種運算網(wǎng)絡(luò),求面積、求它的虛部、求它的實部,求截面描述的片斷等等。通過這樣的條件搜索,你可以發(fā)現(xiàn)它會找出一條最終可行的解題路徑。從一開始的條件一步一步跳到答案,這個就是整體關(guān)鍵的步驟。

  有了這個之后我們接下來另外一步,是把這些關(guān)鍵的步驟從機(jī)器可理解的語言轉(zhuǎn)換成自然語言,這步相對比較簡單,每個基礎(chǔ)的運算都有相應(yīng)的描述方式,這道題第一步怎么做,第二步怎么做,再重新翻譯一下就可以了。做圖形題也是類似的過程。

  所有的題目就是一個找出最佳解題路徑的過程。我們記錄大量學(xué)生解題時每步之間的跳轉(zhuǎn),只要能夠洞悉或者理解每步之間的運算,這是有大量的信息的。這樣就知道遇到某道題你要調(diào)用什么樣的方式去解。

  為了做這樣的東西,我們做了手寫識別?,F(xiàn)在每天所發(fā)送上來的樣本在被我們做數(shù)據(jù)的標(biāo)注,做了數(shù)據(jù)的標(biāo)注之后扔到系統(tǒng)會訓(xùn)練出更好的識別模型,不斷去識別每一個答案跟每一步是什么樣子。有一些現(xiàn)在沒法識別,有些可以轉(zhuǎn)化出來處理,根據(jù)題目的難度有不同的處理方式。

  融合到系統(tǒng)里面就可以發(fā)現(xiàn)根據(jù)每個學(xué)生做題的不同記錄,我們可以給他制定一套學(xué)習(xí)方案。用的是基于解題邏輯和更深層次自然語言邏輯處理進(jìn)行的題目推送,每道題根據(jù)這個同學(xué)的答案進(jìn)行推送。甚至加入艾賓浩斯記憶曲線,學(xué)生做完這個知識點,后一個星期他要再復(fù)習(xí)一下,所有這些東西就是用數(shù)據(jù)去完成的一套系統(tǒng)。(多知網(wǎng) 初驪禹)