讓人工智能解數學題,可能沒你想像的那麼簡單

分享到:

讓人工智能解數學題,可能沒你想像的那麼簡單

導讀:約1500年前的古代數學著作《孫子算經》中記載了一個有趣的問題:“今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?”這就是今人所謂的雞兔同籠問題。如今這個問題小學生們解決起來可能都輕而易舉,但對於人工智能而言可能並非如此。在人工智能火熱的今天,我們想聊聊如何讓計算機具備解此類問題的能力——即數學解題。

智慧答題任務

如果説一套系統就能解決所有問題的“通用人工智能”離人們的生活還很遙遠,那麼讓人工智能系統解決具體的某一項、或某一類問題已經是一個切實可行的小目標。近幾年智慧解題逐漸成為人工智能的一大研究熱點。隨著這項研究的日益火熱,人們想通過讓人工智能參加“考試”,與人類選手進行公平、公開的比試,從而衡量目前人工智能系統的“智慧”水準。

在全世界範圍內,有多家研究機構正在從事這一方面的研究。例如日本國立情報學研究所開發了一個項目Todai Robot,他們讓機器人挑戰大學試題,目標是2021能夠考上東京大學。艾倫人工智能研究所(Allen Institute for Artificial Intelligence) 也舉辦了一項比賽,來自全世界的幾千個團隊紛紛提交了自己的軟體系統來挑戰8年級的科學題目,最終,該比賽的第一名僅能達到59%的正確率。在中國,國家科技部2015年也開啟了“高考機器人” 項目(863計劃中的類人智慧項目),讓人工智能系統和全國的文科考生一樣,挑戰2017年高考語文、數學、文綜三項科目,研究相關類人答題系統。超過30多家高校和科研機構(清華大學、中科院自動化所等)聯合參與了該項目。

意料之外但又情理之中的是,目前各個人工智能系統的表現普遍在理科解題上弱于文科解題。究其原因:目前機器學習更多強調的是對記憶、計算等相關內容的儲存和運用,而對於邏輯理解和推理這一模組還沒有很好的解決。數學解題,作為理科考試的一部分,十分考驗計算機的理解能力和推理能力,針對數學解題之上的研究成果非常有可能定義計算機智慧的新層次。有鋻於此,數學解題應該也正在成為人工智能的一塊重要拼圖。

難點和挑戰

儘管雞兔同籠問題已經成為小學數學中的常見題型,然而該問題對於計算機來説卻是一個極大的挑戰。具體來講,為了得到最終答案計算機需要通過理解題目的文字描述來得到相關數學表達,計算機需要具備邏輯推理能力來對得到的數學表達進行算術演算,計算機還需要具有一定的有關現實世界的常識從而能夠約束和簡化題目。

讓人工智能解數學題,可能沒你想像的那麼簡單

首先,數學解題需要多種層次的自然語言理解。對於一道題目的文字描述,計算機需要知道並理解其中包含的概念。舉個例子,“一加一等於幾”以及“小明有一個蘋果和一個梨,問小明有幾個水果”,同樣本質是“1+1=?”的兩道題,在題型概念上是一樣的,表達方式卻截然不同。計算機需要知道如何把以上兩道問題都抽象成兩個對象相加,這就涉及到所謂的自然語言理解。

事實上,抽取題目中各個概念變數的關係也十分具有難度。數學題要求的是精確,如果題目變換了一個詞,變數之間的關係可能就會改變,整個解法也會不一樣。比如下面兩道追趕問題:

(1)兩輛車同時往同一方向開,速度分別為28km/h和46km/h,問多少小時後兩車相距63km?

(2)兩輛車同時往相反方向開,速度分別為28km/h和46km/h,問多少小時後兩車相距63km?

兩道題描述很類似,但是車的方向關係導致了兩題的解法大不相同。如何捕抓出這種細微的差別也是一大難點。這也是所謂的自然語言理解的一部分。

其次,在一定程度上理解文字之後,數學解題需要通過邏輯推理生成解題公式。如下圖Hosseni 2014的工作,把數學題通過自然語言處理得到幾個變數狀態之後,需要推理得到各個變數狀態之間的關係得出數學公式。在他給出的例子中,計算機通過學習能得到動詞“give”代表兩個狀態相減。

讓人工智能解數學題,可能沒你想像的那麼簡單

Hosseni 2014訓練一個分類器判斷一個動詞屬於加/減

最後,計算機需要具有一定有關現實世界的常識去理解自然語言裏面一些隱式的指代。比如圓周率為3.14,速度乘以時間等於路程等等。在雞兔同籠問題中,雞有兩條腿、兔有四條腿是隱式包含的條件,只有知道這些常識才能正確的解答問題。

歷史與現狀

智慧答題系統最早可以回溯到20世紀60年代。1964年提出的STUDENT(Bobrow 1964)系統可以視作早期答題人工智能實現的代表:輸入有規定的描述方式的數學題,人工定義一組關鍵詞和關係(如EQUAL, SUM, PRODUCT),把自然語言(linguistic form)通過模式匹配映射到對應的函數關係表達。例如句子“the number of advertisements is 45”可轉化為函數表達方式(EQUAL (NUMBER OF ADVERTISMENTS)45)。之後的CARPS系統(Charniak 1968)能夠把自然語言表示成為成樹狀結構,再匹配生成公式解答,此外它嵌入了很多數學模型的知識,如面積、體積、維度等等。但CARPS系統僅限于解決比率問題 (ratio problem)。  

2008年之前多數關於智慧答題系統的工作都是基於預定義的模式匹配規則,這類工作主有兩個主要的缺點:(1)定義的規則覆蓋率小,能解決的問題十分有限,而在真實場景下數學題目的描述往往是比較自由、不太受限的;(2)評測比較模糊,這些系統很少給出評測結果以驗證其有效性。

在這之後有了很多不同的嘗試。比如SoMaTePs系統(Liguda & Pfeiffer 2012)嘗試用擴張語義網(Augmented Semantic Network)表示數學題,抽取題目的對象(object)作為節點,節點之間的關係包括加減乘除。ARIS 系統(Hosseini 2014)讓機器學習題目中的動詞,並對這些動詞進行加減二分類,把數學題看作以動詞為關係的狀態轉移圖,但這個方法目前只解決一元加減問題,不考慮乘除。

讓人工智能解數學題,可能沒你想像的那麼簡單

MIT 于2014年在國際計算語言年會(ACL 2014, Kushman 2014) 上提出了一種基於統計學習的方法(命名為KAZB),引入了模板的概念 (比如“1+1”和 “1+2”同屬於一個模板x = a + b) 。根據公式的標注把數學題歸類成不同的題型,抽取題目中不同層次的特徵(如有關詞彙、詞性以及語法等),使用統計學習技術自動判斷題型。但是此類方法的一個缺點為:無法解決訓練集之外的題型。比如訓練集只出現過兩個數相加,機器無法泛化解答三個數相加的問題。之後百度ZDC(Zhou et al. 2015),微軟研究院 (Upadhyay 2016)的研究團隊也在同樣的方法框架下分別做了不同的優化改進。在一個開放的評測數據集上(即ALG514,含有514道題),三個系統準確率在上分別是68.7%,78.7%以及83%。

隨後,華盛頓大學的ALGES系統(Koncel-Kedziorski et al. 2015)定義了Qset的概念(一個Qset包括Quantity,Entity,Adjective等屬性)。首先抽取一道問題的Qset,利用線性整數規劃把Qset和加減乘除生成可能的公式,再選出最有可能的公式解出答案。目前限定於一元一次方程。他們同時構建了一個508道題的數據集,系統獲得的準確率在72%左右。

艾倫人工智能研究所除了考慮數學文字題之外,還有關於幾何看圖題的研究。GEOS (Seo et al. 2015) 根據幾何數學定義了一組數學概念以及函數,對圖和文字分別構建了不同的分析器(parser)。他們在186道SAT的數學題上獲得的準確率大概是60%左右。

下表對以上一些具有代表性的系統做出了總結。給出一道數學題文字描述,系統需要涵蓋三大部分:自然語言理解,語義表達和映射以及數學推理得出解決公式和答案。

讓人工智能解數學題,可能沒你想像的那麼簡單

應用場景

作為一種有趣的人工智能問題,數學解題相關的研究和努力不僅有助於推動機器智慧的進步,同時也會在眾多實際應用場景中産生價值。

>>>>線上教育

近幾年興起的中小學生學習平臺,該類應用普遍會支持如下功能——學生可以採取對準題目拍照,或者文字語音方式來輸入數學題,學習平臺識別題目並給出解題思路。由於此類平臺具有龐大的題庫,因此可以通過識別匹配題目來實現上功能。該應用的用戶量已經突破一億,在教育市場份額巨大。但是這些平台中所有的題目需要人工預設解題思路,受限於此,題庫的擴展存在一定約束。人工智能數學解題的成功解決將會大大提升此類平臺。

>>>>知識問答系統

作為新一代的知識搜索引擎的代表,WolframAlpha能理解用戶搜索問題並直接給出答案,而不是返回一堆網頁連結。其中WolframAlpha被搜索過的一類典型的問題就是數學問題。輸入數學題,它能給出數學模型、解題步驟以及答案。數學解題是此類引擎的核心構件之一。

讓人工智能解數學題,可能沒你想像的那麼簡單

>>>>智慧問答

智慧對話系統的終極目標是實現人機自由對話,計算機能夠響應來自用戶的各種問題。其中,自然也包括數學解題。微軟小冰實際上已經開始了這方面的嘗試,它目前已可以解決比較簡單的算術題。

讓人工智能解數學題,可能沒你想像的那麼簡單

SigmaDolphin——微軟亞洲研究院的數學解題

SigmaDolphin是微軟亞洲研究院在2013年初啟動的解題項目。Sigma即西格瑪大廈,是微軟亞洲研究院的誕生地;而Dolphin則是該系統被賦予的期望——像海豚一樣聰明。

目前SigmaDolphin主要有兩個研究成果。

● Dolphin解題

SigmaDolphin定義了一套針對數學解題的抽象表示語言(被命名為Dolphin Language),包含了數學相關的類和函數。該語言人工定義了1000多種數學類型以及7000多種從Freebase和其它網頁自動抽取的概念類型,加上其定義的函數和資料結構,使得該語言十分適合表達數學概念及運算,並能很好地構建出一個精準的數學解題系統。同時Dolphin Language具有大約1萬條語法規則,把自然語言解析成Dolphin Language的表示,繼而進行推理得到數學公式。有關該方法的詳細介紹已經發表在EMNLP 2015, 題為“Automatically Solving Number Word Problems by Semantic Parsing and Reasoning” 。

讓人工智能解數學題,可能沒你想像的那麼簡單

“what is 1 plus 2”的Dolphin語言表示形式

● Dolphin18K數據集

目前該研究領域正在使用的數據集規模都相對較小,而且題型都比較簡單。眾所週知,機器學習的關鍵是數據,特別關鍵的是數據規模。然而,數學題庫需要提供公式和答案,人工標注十分耗時。微軟亞洲研究院團隊採用半自動地方法從雅虎問答獲取數學題,經過人工篩選題目,並自動抽取公式和答案作為標注,構建一個新的數據集Dolphin18K。該數據集包含了1萬8千多道數學題。有關該數據集的詳細介紹已發表在ACL 2016,題為“How Well Do Computers Solve Math Word Problems? Large-Scale Dataset Construction and Evaluation”。過往的系統在各自的數據集上都有高達60%至80%的準確率,但由於評測的數據集都在幾百道題目的規模上,而且都有不同的題型限制,導致其得出的結論可能不夠有代表性。對比之前的數據集,Dolphin18K題目數量增加了10倍以上,涵蓋了不同年級、不同難度的數學題,且題型更加全面豐富,更具有挑戰性。目前,在Dolphin18K的評測上,過往的這些數學解題系統平均只能獲得20%左右的準確率,説明瞭數學解題並沒有想像中的那麼簡單。

如上所述,目前智慧解題任務仍然存在眾多的挑戰。但我們仍可以期冀,通過不斷的數據積累和方法創新,智慧解題系統的能力終將逼近甚至超過人類——答題能力能從及格逐漸提升至100分的水準。(文章轉自公眾號微軟研究院AI頭條)

logo_fororder_教育logo

國際在線教育頻道

  • 68890812
  • 68891547
  • yangdongxia@cri.cn
中華人民共和國教育部_fororder_QQ截圖20200109113906教育部官網新華網教育新華網教育人民網教育人民網教育央視網央視網央廣網教育央廣網教育中國網教育中國網教育光明網教育_fororder_QQ截圖20190715162912光明網教育中國青年網教育中國青年網教育中國教育新聞網中國教育新聞網半月談_fororder_QQ截圖20200109112942半月談中國科技網_fororder_QQ截圖20190726164356中國科技網中工網教育_fororder_QQ截圖20190726164613中工網教育