導(dǎo)讀:約1500年前的古代數(shù)學(xué)著作《孫子算經(jīng)》中記載了一個(gè)有趣的問(wèn)題:“今有雉兔同籠,上有三十五頭,下有九十四足,問(wèn)雉兔各幾何?”這就是今人所謂的雞兔同籠問(wèn)題。如今這個(gè)問(wèn)題小學(xué)生們解決起來(lái)可能都輕而易舉,但對(duì)于人工智能而言可能并非如此。在人工智能火熱的今天,我們想聊聊如何讓計(jì)算機(jī)具備解此類問(wèn)題的能力——即數(shù)學(xué)解題。
智能答題任務(wù)
如果說(shuō)一套系統(tǒng)就能解決所有問(wèn)題的“通用人工智能”離人們的生活還很遙遠(yuǎn),那么讓人工智能系統(tǒng)解決具體的某一項(xiàng)、或某一類問(wèn)題已經(jīng)是一個(gè)切實(shí)可行的小目標(biāo)。近幾年智能解題逐漸成為人工智能的一大研究熱點(diǎn)。隨著這項(xiàng)研究的日益火熱,人們想通過(guò)讓人工智能參加“考試”,與人類選手進(jìn)行公平、公開(kāi)的比試,從而衡量目前人工智能系統(tǒng)的“智能”水平。
在全世界范圍內(nèi),有多家研究機(jī)構(gòu)正在從事這一方面的研究。例如日本國(guó)立情報(bào)學(xué)研究所開(kāi)發(fā)了一個(gè)項(xiàng)目Todai Robot,他們讓機(jī)器人挑戰(zhàn)大學(xué)試題,目標(biāo)是2021能夠考上東京大學(xué)。艾倫人工智能研究所(Allen Institute for Artificial Intelligence) 也舉辦了一項(xiàng)比賽,來(lái)自全世界的幾千個(gè)團(tuán)隊(duì)紛紛提交了自己的軟件系統(tǒng)來(lái)挑戰(zhàn)8年級(jí)的科學(xué)題目,最終,該比賽的第一名僅能達(dá)到59%的正確率。在中國(guó),國(guó)家科技部2015年也開(kāi)啟了“高考機(jī)器人” 項(xiàng)目(863計(jì)劃中的類人智能項(xiàng)目),讓人工智能系統(tǒng)和全國(guó)的文科考生一樣,挑戰(zhàn)2017年高考語(yǔ)文、數(shù)學(xué)、文綜三項(xiàng)科目,研究相關(guān)類人答題系統(tǒng)。超過(guò)30多家高校和科研機(jī)構(gòu)(清華大學(xué)、中科院自動(dòng)化所等)聯(lián)合參與了該項(xiàng)目。
意料之外但又情理之中的是,目前各個(gè)人工智能系統(tǒng)的表現(xiàn)普遍在理科解題上弱于文科解題。究其原因:目前機(jī)器學(xué)習(xí)更多強(qiáng)調(diào)的是對(duì)記憶、計(jì)算等相關(guān)內(nèi)容的儲(chǔ)存和運(yùn)用,而對(duì)于邏輯理解和推理這一模塊還沒(méi)有很好的解決。數(shù)學(xué)解題,作為理科考試的一部分,十分考驗(yàn)計(jì)算機(jī)的理解能力和推理能力,針對(duì)數(shù)學(xué)解題之上的研究成果非常有可能定義計(jì)算機(jī)智能的新層次。有鑒于此,數(shù)學(xué)解題應(yīng)該也正在成為人工智能的一塊重要拼圖。
難點(diǎn)和挑戰(zhàn)
盡管雞兔同籠問(wèn)題已經(jīng)成為小學(xué)數(shù)學(xué)中的常見(jiàn)題型,然而該問(wèn)題對(duì)于計(jì)算機(jī)來(lái)說(shuō)卻是一個(gè)極大的挑戰(zhàn)。具體來(lái)講,為了得到最終答案計(jì)算機(jī)需要通過(guò)理解題目的文字描述來(lái)得到相關(guān)數(shù)學(xué)表達(dá),計(jì)算機(jī)需要具備邏輯推理能力來(lái)對(duì)得到的數(shù)學(xué)表達(dá)進(jìn)行算術(shù)演算,計(jì)算機(jī)還需要具有一定的有關(guān)現(xiàn)實(shí)世界的常識(shí)從而能夠約束和簡(jiǎn)化題目。
首先,數(shù)學(xué)解題需要多種層次的自然語(yǔ)言理解。對(duì)于一道題目的文字描述,計(jì)算機(jī)需要知道并理解其中包含的概念。舉個(gè)例子,“一加一等于幾”以及“小明有一個(gè)蘋果和一個(gè)梨,問(wèn)小明有幾個(gè)水果”,同樣本質(zhì)是“1+1=?”的兩道題,在題型概念上是一樣的,表達(dá)方式卻截然不同。計(jì)算機(jī)需要知道如何把以上兩道問(wèn)題都抽象成兩個(gè)對(duì)象相加,這就涉及到所謂的自然語(yǔ)言理解。
事實(shí)上,抽取題目中各個(gè)概念變量的關(guān)系也十分具有難度。數(shù)學(xué)題要求的是精確,如果題目變換了一個(gè)詞,變量之間的關(guān)系可能就會(huì)改變,整個(gè)解法也會(huì)不一樣。比如下面兩道追趕問(wèn)題:
(1)兩輛車同時(shí)往同一方向開(kāi),速度分別為28km/h和46km/h,問(wèn)多少小時(shí)后兩車相距63km?
(2)兩輛車同時(shí)往相反方向開(kāi),速度分別為28km/h和46km/h,問(wèn)多少小時(shí)后兩車相距63km?
兩道題描述很類似,但是車的方向關(guān)系導(dǎo)致了兩題的解法大不相同。如何捕抓出這種細(xì)微的差別也是一大難點(diǎn)。這也是所謂的自然語(yǔ)言理解的一部分。
其次,在一定程度上理解文字之后,數(shù)學(xué)解題需要通過(guò)邏輯推理生成解題公式。如下圖Hosseni 2014的工作,把數(shù)學(xué)題通過(guò)自然語(yǔ)言處理得到幾個(gè)變量狀態(tài)之后,需要推理得到各個(gè)變量狀態(tài)之間的關(guān)系得出數(shù)學(xué)公式。在他給出的例子中,計(jì)算機(jī)通過(guò)學(xué)習(xí)能得到動(dòng)詞“give”代表兩個(gè)狀態(tài)相減。
Hosseni 2014訓(xùn)練一個(gè)分類器判斷一個(gè)動(dòng)詞屬于加/減
最后,計(jì)算機(jī)需要具有一定有關(guān)現(xiàn)實(shí)世界的常識(shí)去理解自然語(yǔ)言里面一些隱式的指代。比如圓周率為3.14,速度乘以時(shí)間等于路程等等。在雞兔同籠問(wèn)題中,雞有兩條腿、兔有四條腿是隱式包含的條件,只有知道這些常識(shí)才能正確的解答問(wèn)題。
歷史與現(xiàn)狀
智能答題系統(tǒng)最早可以回溯到20世紀(jì)60年代。1964年提出的STUDENT(Bobrow 1964)系統(tǒng)可以視作早期答題人工智能實(shí)現(xiàn)的代表:輸入有規(guī)定的描述方式的數(shù)學(xué)題,人工定義一組關(guān)鍵詞和關(guān)系(如EQUAL, SUM, PRODUCT),把自然語(yǔ)言(linguistic form)通過(guò)模式匹配映射到對(duì)應(yīng)的函數(shù)關(guān)系表達(dá)。例如句子“the number of advertisements is 45”可轉(zhuǎn)化為函數(shù)表達(dá)方式(EQUAL (NUMBER OF ADVERTISMENTS)45)。之后的CARPS系統(tǒng)(Charniak 1968)能夠把自然語(yǔ)言表示成為成樹(shù)狀結(jié)構(gòu),再匹配生成公式解答,此外它嵌入了很多數(shù)學(xué)模型的知識(shí),如面積、體積、維度等等。但CARPS系統(tǒng)僅限于解決比率問(wèn)題 (ratio problem)。
2008年之前多數(shù)關(guān)于智能答題系統(tǒng)的工作都是基于預(yù)定義的模式匹配規(guī)則,這類工作主有兩個(gè)主要的缺點(diǎn):(1)定義的規(guī)則覆蓋率小,能解決的問(wèn)題十分有限,而在真實(shí)場(chǎng)景下數(shù)學(xué)題目的描述往往是比較自由、不太受限的;(2)評(píng)測(cè)比較模糊,這些系統(tǒng)很少給出評(píng)測(cè)結(jié)果以驗(yàn)證其有效性。
在這之后有了很多不同的嘗試。比如SoMaTePs系統(tǒng)(Liguda & Pfeiffer 2012)嘗試用擴(kuò)張語(yǔ)義網(wǎng)(Augmented Semantic Network)表示數(shù)學(xué)題,抽取題目的對(duì)象(object)作為節(jié)點(diǎn),節(jié)點(diǎn)之間的關(guān)系包括加減乘除。ARIS 系統(tǒng)(Hosseini 2014)讓機(jī)器學(xué)習(xí)題目中的動(dòng)詞,并對(duì)這些動(dòng)詞進(jìn)行加減二分類,把數(shù)學(xué)題看作以動(dòng)詞為關(guān)系的狀態(tài)轉(zhuǎn)移圖,但這個(gè)方法目前只解決一元加減問(wèn)題,不考慮乘除。
MIT 于2014年在國(guó)際計(jì)算語(yǔ)言年會(huì)(ACL 2014, Kushman 2014) 上提出了一種基于統(tǒng)計(jì)學(xué)習(xí)的方法(命名為KAZB),引入了模板的概念 (比如“1+1”和 “1+2”同屬于一個(gè)模板x = a + b) 。根據(jù)公式的標(biāo)注把數(shù)學(xué)題歸類成不同的題型,抽取題目中不同層次的特征(如有關(guān)詞匯、詞性以及語(yǔ)法等),使用統(tǒng)計(jì)學(xué)習(xí)技術(shù)自動(dòng)判斷題型。但是此類方法的一個(gè)缺點(diǎn)為:無(wú)法解決訓(xùn)練集之外的題型。比如訓(xùn)練集只出現(xiàn)過(guò)兩個(gè)數(shù)相加,機(jī)器無(wú)法泛化解答三個(gè)數(shù)相加的問(wèn)題。之后百度ZDC(Zhou et al. 2015),微軟研究院 (Upadhyay 2016)的研究團(tuán)隊(duì)也在同樣的方法框架下分別做了不同的優(yōu)化改進(jìn)。在一個(gè)開(kāi)放的評(píng)測(cè)數(shù)據(jù)集上(即ALG514,含有514道題),三個(gè)系統(tǒng)準(zhǔn)確率在上分別是68.7%,78.7%以及83%。
隨后,華盛頓大學(xué)的ALGES系統(tǒng)(Koncel-Kedziorski et al. 2015)定義了Qset的概念(一個(gè)Qset包括Quantity,Entity,Adjective等屬性)。首先抽取一道問(wèn)題的Qset,利用線性整數(shù)規(guī)劃把Qset和加減乘除生成可能的公式,再選出最有可能的公式解出答案。目前限定于一元一次方程。他們同時(shí)構(gòu)建了一個(gè)508道題的數(shù)據(jù)集,系統(tǒng)獲得的準(zhǔn)確率在72%左右。
艾倫人工智能研究所除了考慮數(shù)學(xué)文字題之外,還有關(guān)于幾何看圖題的研究。GEOS (Seo et al. 2015) 根據(jù)幾何數(shù)學(xué)定義了一組數(shù)學(xué)概念以及函數(shù),對(duì)圖和文字分別構(gòu)建了不同的分析器(parser)。他們?cè)?86道SAT的數(shù)學(xué)題上獲得的準(zhǔn)確率大概是60%左右。
下表對(duì)以上一些具有代表性的系統(tǒng)做出了總結(jié)。給出一道數(shù)學(xué)題文字描述,系統(tǒng)需要涵蓋三大部分:自然語(yǔ)言理解,語(yǔ)義表達(dá)和映射以及數(shù)學(xué)推理得出解決公式和答案。
應(yīng)用場(chǎng)景
作為一種有趣的人工智能問(wèn)題,數(shù)學(xué)解題相關(guān)的研究和努力不僅有助于推動(dòng)機(jī)器智能的進(jìn)步,同時(shí)也會(huì)在眾多實(shí)際應(yīng)用場(chǎng)景中產(chǎn)生價(jià)值。
>>>>線上教育
近幾年興起的中小學(xué)生學(xué)習(xí)平臺(tái),該類應(yīng)用普遍會(huì)支持如下功能——學(xué)生可以采取對(duì)準(zhǔn)題目拍照,或者文字語(yǔ)音方式來(lái)輸入數(shù)學(xué)題,學(xué)習(xí)平臺(tái)識(shí)別題目并給出解題思路。由于此類平臺(tái)具有龐大的題庫(kù),因此可以通過(guò)識(shí)別匹配題目來(lái)實(shí)現(xiàn)上功能。該應(yīng)用的用戶量已經(jīng)突破一億,在教育市場(chǎng)份額巨大。但是這些平臺(tái)中所有的題目需要人工預(yù)設(shè)解題思路,受限于此,題庫(kù)的擴(kuò)展存在一定約束。人工智能數(shù)學(xué)解題的成功解決將會(huì)大大提升此類平臺(tái)。
>>>>知識(shí)問(wèn)答系統(tǒng)
作為新一代的知識(shí)搜索引擎的代表,WolframAlpha能理解用戶搜索問(wèn)題并直接給出答案,而不是返回一堆網(wǎng)頁(yè)鏈接。其中WolframAlpha被搜索過(guò)的一類典型的問(wèn)題就是數(shù)學(xué)問(wèn)題。輸入數(shù)學(xué)題,它能給出數(shù)學(xué)模型、解題步驟以及答案。數(shù)學(xué)解題是此類引擎的核心構(gòu)件之一。
>>>>智能問(wèn)答
智能對(duì)話系統(tǒng)的終極目標(biāo)是實(shí)現(xiàn)人機(jī)自由對(duì)話,計(jì)算機(jī)能夠響應(yīng)來(lái)自用戶的各種問(wèn)題。其中,自然也包括數(shù)學(xué)解題。微軟小冰實(shí)際上已經(jīng)開(kāi)始了這方面的嘗試,它目前已可以解決比較簡(jiǎn)單的算術(shù)題。
SigmaDolphin——微軟亞洲研究院的數(shù)學(xué)解題
SigmaDolphin是微軟亞洲研究院在2013年初啟動(dòng)的解題項(xiàng)目。Sigma即西格瑪大廈,是微軟亞洲研究院的誕生地;而Dolphin則是該系統(tǒng)被賦予的期望——像海豚一樣聰明。
目前SigmaDolphin主要有兩個(gè)研究成果。
● Dolphin解題
SigmaDolphin定義了一套針對(duì)數(shù)學(xué)解題的抽象表示語(yǔ)言(被命名為Dolphin Language),包含了數(shù)學(xué)相關(guān)的類和函數(shù)。該語(yǔ)言人工定義了1000多種數(shù)學(xué)類型以及7000多種從Freebase和其它網(wǎng)頁(yè)自動(dòng)抽取的概念類型,加上其定義的函數(shù)和數(shù)據(jù)結(jié)構(gòu),使得該語(yǔ)言十分適合表達(dá)數(shù)學(xué)概念及運(yùn)算,并能很好地構(gòu)建出一個(gè)精準(zhǔn)的數(shù)學(xué)解題系統(tǒng)。同時(shí)Dolphin Language具有大約1萬(wàn)條語(yǔ)法規(guī)則,把自然語(yǔ)言解析成Dolphin Language的表示,繼而進(jìn)行推理得到數(shù)學(xué)公式。有關(guān)該方法的詳細(xì)介紹已經(jīng)發(fā)表在EMNLP 2015, 題為“Automatically Solving Number Word Problems by Semantic Parsing and Reasoning” 。
“what is 1 plus 2”的Dolphin語(yǔ)言表示形式
● Dolphin18K數(shù)據(jù)集
目前該研究領(lǐng)域正在使用的數(shù)據(jù)集規(guī)模都相對(duì)較小,而且題型都比較簡(jiǎn)單。眾所周知,機(jī)器學(xué)習(xí)的關(guān)鍵是數(shù)據(jù),特別關(guān)鍵的是數(shù)據(jù)規(guī)模。然而,數(shù)學(xué)題庫(kù)需要提供公式和答案,人工標(biāo)注十分耗時(shí)。微軟亞洲研究院團(tuán)隊(duì)采用半自動(dòng)地方法從雅虎問(wèn)答獲取數(shù)學(xué)題,經(jīng)過(guò)人工篩選題目,并自動(dòng)抽取公式和答案作為標(biāo)注,構(gòu)建一個(gè)新的數(shù)據(jù)集Dolphin18K。該數(shù)據(jù)集包含了1萬(wàn)8千多道數(shù)學(xué)題。有關(guān)該數(shù)據(jù)集的詳細(xì)介紹已發(fā)表在ACL 2016,題為“How Well Do Computers Solve Math Word Problems? Large-Scale Dataset Construction and Evaluation”。過(guò)往的系統(tǒng)在各自的數(shù)據(jù)集上都有高達(dá)60%至80%的準(zhǔn)確率,但由于評(píng)測(cè)的數(shù)據(jù)集都在幾百道題目的規(guī)模上,而且都有不同的題型限制,導(dǎo)致其得出的結(jié)論可能不夠有代表性。對(duì)比之前的數(shù)據(jù)集,Dolphin18K題目數(shù)量增加了10倍以上,涵蓋了不同年級(jí)、不同難度的數(shù)學(xué)題,且題型更加全面豐富,更具有挑戰(zhàn)性。目前,在Dolphin18K的評(píng)測(cè)上,過(guò)往的這些數(shù)學(xué)解題系統(tǒng)平均只能獲得20%左右的準(zhǔn)確率,說(shuō)明了數(shù)學(xué)解題并沒(méi)有想象中的那么簡(jiǎn)單。
如上所述,目前智能解題任務(wù)仍然存在眾多的挑戰(zhàn)。但我們?nèi)钥梢云诩剑ㄟ^(guò)不斷的數(shù)據(jù)積累和方法創(chuàng)新,智能解題系統(tǒng)的能力終將逼近甚至超過(guò)人類——答題能力能從及格逐漸提升至100分的水平。
(文章轉(zhuǎn)自公眾號(hào)微軟研究院AI頭條)
2、芥末堆不接受通過(guò)公關(guān)費(fèi)、車馬費(fèi)等任何形式發(fā)布失實(shí)文章,只呈現(xiàn)有價(jià)值的內(nèi)容給讀者;
3、如果你也從事教育,并希望被芥末堆報(bào)道,請(qǐng)您 填寫(xiě)信息告訴我們。