1
本文作者: 谷磊 | 2017-03-03 10:39 |
雷鋒網(wǎng)按:本文作者微軟亞洲研究院知識挖掘組,雷鋒網(wǎng)獲授權轉載。
導讀:約1500年前的古代數(shù)學著作《孫子算經(jīng)》中記載了一個有趣的問題:
今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?
這就是今人所謂的雞兔同籠問題。如今這個問題小學生們解決起來可能都輕而易舉,但對于人工智能而言可能并非如此。在人工智能火熱的今天,我們想聊聊如何讓計算機具備解此類問題的能力——即數(shù)學解題。
智能答題任務
如果說一套系統(tǒng)就能解決所有問題的“通用人工智能”離人們的生活還很遙遠,那么讓人工智能系統(tǒng)解決具體的某一項、或某一類問題已經(jīng)是一個切實可行的小目標。近幾年智能解題逐漸成為人工智能的一大研究熱點。隨著這項研究的日益火熱,人們想通過讓人工智能參加“考試”,與人類選手進行公平、公開的比試,從而衡量目前人工智能系統(tǒng)的“智能”水平。
在全世界范圍內,有多家研究機構正在從事這一方面的研究。
例如日本國立情報學研究所開發(fā)了一個項目Todai Robot,他們讓機器人挑戰(zhàn)大學試題,目標是2021能夠考上東京大學。艾倫人工智能研究所(Allen Institute for Artificial Intelligence) 也舉辦了一項比賽,來自全世界的幾千個團隊紛紛提交了自己的軟件系統(tǒng)來挑戰(zhàn)8年級的科學題目,最終,該比賽的第一名僅能達到59%的正確率。
在中國,國家科技部2015年也開啟了“高考機器人” 項目(863計劃中的類人智能項目),讓人工智能系統(tǒng)和全國的文科考生一樣,挑戰(zhàn)2017年高考語文、數(shù)學、文綜三項科目,研究相關類人答題系統(tǒng)。超過30多家高校和科研機構(清華大學、中科院自動化所等)聯(lián)合參與了該項目。
意料之外但又情理之中的是,目前各個人工智能系統(tǒng)的表現(xiàn)普遍在理科解題上弱于文科解題。究其原因:目前機器學習更多強調的是對記憶、計算等相關內容的儲存和運用,而對于邏輯理解和推理這一模塊還沒有很好的解決。數(shù)學解題,作為理科考試的一部分,十分考驗計算機的理解能力和推理能力,針對數(shù)學解題之上的研究成果非常有可能定義計算機智能的新層次。有鑒于此,數(shù)學解題應該也正在成為人工智能的一塊重要拼圖。
難點和挑戰(zhàn)
盡管雞兔同籠問題已經(jīng)成為小學數(shù)學中的常見題型,然而該問題對于計算機來說卻是一個極大的挑戰(zhàn)。具體來講,為了得到最終答案計算機需要通過理解題目的文字描述來得到相關數(shù)學表達,計算機需要具備邏輯推理能力來對得到的數(shù)學表達進行算術演算,計算機還需要具有一定的有關現(xiàn)實世界的常識從而能夠約束和簡化題目。
首先,數(shù)學解題需要多種層次的自然語言理解。對于一道題目的文字描述,計算機需要知道并理解其中包含的概念。舉個例子,“一加一等于幾”以及“小明有一個蘋果和一個梨,問小明有幾個水果”,同樣本質是“1+1=?”的兩道題,在題型概念上是一樣的,表達方式卻截然不同。計算機需要知道如何把以上兩道問題都抽象成兩個對象相加,這就涉及到所謂的自然語言理解。
事實上,抽取題目中各個概念變量的關系也十分具有難度。數(shù)學題要求的是精確,如果題目變換了一個詞,變量之間的關系可能就會改變,整個解法也會不一樣。比如下面兩道追趕問題:
兩輛車同時往同一方向開,速度分別為28km/h和46km/h,問多少小時后兩車相距63km?
兩輛車同時往相反方向開,速度分別為28km/h和46km/h,問多少小時后兩車相距63km?
兩道題描述很類似,但是車的方向關系導致了兩題的解法大不相同。如何捕抓出這種細微的差別也是一大難點。這也是所謂的自然語言理解的一部分。
其次,在一定程度上理解文字之后,數(shù)學解題需要通過邏輯推理生成解題公式。如下圖Hosseni 2014的工作,把數(shù)學題通過自然語言處理得到幾個變量狀態(tài)之后,需要推理得到各個變量狀態(tài)之間的關系得出數(shù)學公式。在他給出的例子中,計算機通過學習能得到動詞“give”代表兩個狀態(tài)相減。
↑Hosseni 2014訓練一個分類器判斷一個動詞屬于加/減
最后,計算機需要具有一定有關現(xiàn)實世界的常識去理解自然語言里面一些隱式的指代。比如圓周率為3.14,速度乘以時間等于路程等等。在雞兔同籠問題中,雞有兩條腿、兔有四條腿是隱式包含的條件,只有知道這些常識才能正確的解答問題。
歷史與現(xiàn)狀
智能答題系統(tǒng)最早可以回溯到20世紀60年代。1964年提出的STUDENT(Bobrow 1964)系統(tǒng)可以視作早期答題人工智能實現(xiàn)的代表:輸入有規(guī)定的描述方式的數(shù)學題,人工定義一組關鍵詞和關系(如EQUAL, SUM, PRODUCT),把自然語言(linguistic form)通過模式匹配映射到對應的函數(shù)關系表達。例如句子
the number of advertisements is 45
可轉化為函數(shù)表達方式
EQUAL (NUMBER OF ADVERTISMENTS)45
之后的CARPS系統(tǒng)(Charniak 1968)能夠把自然語言表示成為成樹狀結構,再匹配生成公式解答,此外它嵌入了很多數(shù)學模型的知識,如面積、體積、維度等等。但CARPS系統(tǒng)僅限于解決比率問題(ratio problem)。
2008年之前多數(shù)關于智能答題系統(tǒng)的工作都是基于預定義的模式匹配規(guī)則,這類工作主有兩個主要的缺點:
定義的規(guī)則覆蓋率小,能解決的問題十分有限,而在真實場景下數(shù)學題目的描述往往是比較自由、不太受限的;
評測比較模糊,這些系統(tǒng)很少給出評測結果以驗證其有效性。
在這之后有了很多不同的嘗試。比如SoMaTePs系統(tǒng)(Liguda & Pfeiffer 2012)嘗試用擴張語義網(wǎng)(Augmented Semantic Network)表示數(shù)學題,抽取題目的對象(object)作為節(jié)點,節(jié)點之間的關系包括加減乘除。ARIS 系統(tǒng)(Hosseini 2014)讓機器學習題目中的動詞,并對這些動詞進行加減二分類,把數(shù)學題看作以動詞為關系的狀態(tài)轉移圖,但這個方法目前只解決一元加減問題,不考慮乘除。
MIT 于2014年在國際計算語言年會(ACL 2014, Kushman 2014) 上提出了一種基于統(tǒng)計學習的方法(命名為KAZB),引入了模板的概念 (比如“1+1”和 “1+2”同屬于一個模板x = a + b) 。根據(jù)公式的標注把數(shù)學題歸類成不同的題型,抽取題目中不同層次的特征(如有關詞匯、詞性以及語法等),使用統(tǒng)計學習技術自動判斷題型。
但是此類方法的一個缺點為:無法解決訓練集之外的題型。比如訓練集只出現(xiàn)過兩個數(shù)相加,機器無法泛化解答三個數(shù)相加的問題。之后百度ZDC(Zhou et al. 2015),微軟研究院 (Upadhyay 2016)的研究團隊也在同樣的方法框架下分別做了不同的優(yōu)化改進。在一個開放的評測數(shù)據(jù)集上(即ALG514,含有514道題),三個系統(tǒng)準確率在上分別是68.7%,78.7%以及83%。
隨后,華盛頓大學的ALGES系統(tǒng)(Koncel-Kedziorski et al. 2015)定義了Qset的概念(一個Qset包括Quantity,Entity,Adjective等屬性)。首先抽取一道問題的Qset,利用線性整數(shù)規(guī)劃把Qset和加減乘除生成可能的公式,再選出最有可能的公式解出答案。目前限定于一元一次方程。他們同時構建了一個508道題的數(shù)據(jù)集,系統(tǒng)獲得的準確率在72%左右。
艾倫人工智能研究所除了考慮數(shù)學文字題之外,還有關于幾何看圖題的研究。GEOS (Seo et al. 2015) 根據(jù)幾何數(shù)學定義了一組數(shù)學概念以及函數(shù),對圖和文字分別構建了不同的分析器(parser)。他們在186道SAT的數(shù)學題上獲得的準確率大概是60%左右。
下表對以上一些具有代表性的系統(tǒng)做出了總結。給出一道數(shù)學題文字描述,系統(tǒng)需要涵蓋三大部分:自然語言理解,語義表達和映射以及數(shù)學推理得出解決公式和答案。
應用場景
作為一種有趣的人工智能問題,數(shù)學解題相關的研究和努力不僅有助于推動機器智能的進步,同時也會在眾多實際應用場景中產(chǎn)生價值。
線上教育
近幾年興起的中小學生學習平臺,該類應用普遍會支持如下功能——學生可以采取對準題目拍照,或者文字語音方式來輸入數(shù)學題,學習平臺識別題目并給出解題思路。由于此類平臺具有龐大的題庫,因此可以通過識別匹配題目來實現(xiàn)上功能。該應用的用戶量已經(jīng)突破一億,在教育市場份額巨大。但是這些平臺中所有的題目需要人工預設解題思路,受限于此,題庫的擴展存在一定約束。人工智能數(shù)學解題的成功解決將會大大提升此類平臺。
知識問答系統(tǒng)
作為新一代的知識搜索引擎的代表,WolframAlpha能理解用戶搜索問題并直接給出答案,而不是返回一堆網(wǎng)頁鏈接。其中WolframAlpha被搜索過的一類典型的問題就是數(shù)學問題。輸入數(shù)學題,它能給出數(shù)學模型、解題步驟以及答案。數(shù)學解題是此類引擎的核心構件之一。
智能問答
智能對話系統(tǒng)的終極目標是實現(xiàn)人機自由對話,計算機能夠響應來自用戶的各種問題。其中,自然也包括數(shù)學解題。微軟小冰實際上已經(jīng)開始了這方面的嘗試,它目前已可以解決比較簡單的算術題。
SigmaDolphin——微軟亞洲研究院的數(shù)學解題
SigmaDolphin是微軟亞洲研究院在2013年初啟動的解題項目。Sigma即西格瑪大廈,是微軟亞洲研究院的誕生地;而Dolphin則是該系統(tǒng)被賦予的期望——像海豚一樣聰明。
目前SigmaDolphin主要有兩個研究成果。
Dolphin解題
SigmaDolphin定義了一套針對數(shù)學解題的抽象表示語言(被命名為Dolphin Language),包含了數(shù)學相關的類和函數(shù)。該語言人工定義了1000多種數(shù)學類型以及7000多種從Freebase和其它網(wǎng)頁自動抽取的概念類型,加上其定義的函數(shù)和數(shù)據(jù)結構,使得該語言十分適合表達數(shù)學概念及運算,并能很好地構建出一個精準的數(shù)學解題系統(tǒng)。
同時Dolphin Language具有大約1萬條語法規(guī)則,把自然語言解析成Dolphin Language的表示,繼而進行推理得到數(shù)學公式。有關該方法的詳細介紹已經(jīng)發(fā)表在EMNLP 2015, 題為“Automatically Solving Number Word Problems by Semantic Parsing and Reasoning” 。
↑what is 1 plus 2”的Dolphin語言表示形式
Dolphin18K數(shù)據(jù)集
目前該研究領域正在使用的數(shù)據(jù)集規(guī)模都相對較小,而且題型都比較簡單。眾所周知,機器學習的關鍵是數(shù)據(jù),特別關鍵的是數(shù)據(jù)規(guī)模。然而,數(shù)學題庫需要提供公式和答案,人工標注十分耗時。微軟亞洲研究院團隊采用半自動地方法從雅虎問答獲取數(shù)學題,經(jīng)過人工篩選題目,并自動抽取公式和答案作為標注,構建一個新的數(shù)據(jù)集Dolphin18K。該數(shù)據(jù)集包含了1萬8千多道數(shù)學題。有關該數(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ī)模上,而且都有不同的題型限制,導致其得出的結論可能不夠有代表性。對比之前的數(shù)據(jù)集,Dolphin18K題目數(shù)量增加了10倍以上,涵蓋了不同年級、不同難度的數(shù)學題,且題型更加全面豐富,更具有挑戰(zhàn)性。目前,在Dolphin18K的評測上,過往的這些數(shù)學解題系統(tǒng)平均只能獲得20%左右的準確率,說明了數(shù)學解題并沒有想象中的那么簡單。
如上所述,目前智能解題任務仍然存在眾多的挑戰(zhàn)。但我們仍可以期冀,通過不斷的數(shù)據(jù)積累和方法創(chuàng)新,智能解題系統(tǒng)的能力終將逼近甚至超過人類——答題能力能從及格逐漸提升至100分的水平。
參考文獻
Daniel G. Bobrow. 1964. Natural Language input for a computer problem solving system. MIT technical report, 1964.
Charniak E. 1968. CARPS, a program which solves calculus word problems. MIT technical report, 1968.
Mohammad Javad Hosseini, Hannaneh Hajishirizi, Oren Etzioni, and Nate Kushman. 2014. Learning to solve arithmetic word problems with verb categorization. EMNLP 2014.
Danqing Huang, Shuming Shi, Chin-Yew Lin, Jian Yin and Wei-Ying Ma. 2016. How well do computers solve math word problems? Large-scale dataset construction and evaluation. ACL 2016.
Rik Koncel-Kedziorsk, Hannaneh Hajishirizi, Ashish Sabharwal, Oren Etzioni, and Siena Dumas Ang. 2015. Parsing algebraic word problems into equations. TACL 2015.
Nate Kushman, Yoav Artzi, Luke Zettlemoyer, and Regina Barzilay. 2014. Learning to automatically solve algebra word problems. ACL 2014.
Christian Liguda and Thies Pfeiffer. 2012. Modeling math word problems with augmented semantic networks. NLDB 2012.
Anirban Mukherjee and Utpal Garain. 2008. A review of methods for automatic understanding of natural language mathematical problems. Artif. Intell. Rev. 29(2): 93-122, 2008.
Minjoon Seo, Hannaneh Hajishirzi, Ali Farhadi, Oren Etzioni, and Clint Malcolm. 2015. Solving gemometry problems: Combining text and diagram interpretation. EMNLP 2015.
Shuming Shi, Yuehui Wang, Chin-Yew Lin, Xiaojiang Liu, and Yong Rui. 2015. Automatically solving number word problems by semantic parsing and reasoning. EMNLP 2015.
Lipu Zhou, Shuaixiang Dai, and Liwei Chen. 2015. Learn to solve algebra word problems using quadratic programming. EMNLP 2015.
雷峰網(wǎng)版權文章,未經(jīng)授權禁止轉載。詳情見轉載須知。