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