人工智慧閱讀理解已經超過人類了,是不是連識字都可以省了?
源小象文李燁
AI的新成績
2018年1月3日,微軟亞洲研究院的R-NET在SQuAD 機器閱讀理解挑戰賽(SQuAD machine reading comprehension challenge)上達到Exact Match(精準匹配)82.650的好成績。
人工智慧首次在EM指標上,超越了人類在2016年創下的82.304的記錄。
之後兩天,阿里巴巴iDST也取得佳績,EM達到82.440,也超過了人類表現。並刷新F1分數至88.607。
不過他們的EM成績(82.440)略遜於微軟亞洲研究院,所以在榜單上iDST和MSRA並列第一。
突破,超越人類表現
突破!計算機文本理解首次超越人類!
——此次成果的宣傳用詞。
按照一貫的宣傳邏輯:
別急,我們先來看看,這個挑戰賽比的是什麼,得第一的神經網路又幹了什麼。
什麼是SQuAD
問答數據集
SQuAD 的全稱是:斯坦福問答數據集(Stanford Question Answering Dataset)。它是一個2016年由斯坦福大學推出的閱讀理解數據集。
其中包含了10萬多個來源自wikipedia的問答對(question-answer pair qa pair)。
不再是在幾個給定的選項中找答案, 而是要從整段文本中去找正確答案。
構造過程
SQuAD 團隊採用Project Nayuki的Wikipedia internal PageRanks,獲得了rank在前10000的英語wikipedia文章,然後從中隨機選取了500多篇。
團隊去掉每篇文章的圖片、圖表等非文字部分,將出其中超過500個字元的自然段抽取出來。
被抽取出的20000多個自然段覆蓋了非常廣泛的主題。所有這些段落按照8:1:1的比例被切割為訓練集、驗證集和測試集。
然後,團隊僱傭了眾包工作者(均來自美國和加拿大),來為這2萬多個段落創建問題。
眾包工作者被要求完成兩個任務:
由此,所有的問題答案都在原文中可見;且一個問題被提出後,除了提問者自己要標出答案,至少還要被兩個其他人回答,以保證答案的正確性。
Context + QA Pairs
經過這樣的處理,每個段落就成了一個數據點,包含兩個部分:背景描述(context) 和問題答案對(qa pair)。
下面是一個數據點的例子:
【Context】:
In meteorology, precipitation is any product of the condensation of atmospheric water vapor that falls under gravity. The main forms of precipitation include drizzle, rain, sleet, snow, graupel and hail... Precipitation forms as smaller droplets coalesce via collision with other rain drops or ice crystals within a cloud. Short, intense periods of rain in scattered locations are called 「showers」.
【Question】: What causes precipitation to fall?
【Answer】: gravity
【Question】: What is another main form of precipitation besides drizzle, rain, snow, sleet and hail?
【Answer】: graupel
【Question】: Where do water droplets collide with ice crystals to form precipitation?
【Answer】: within a cloud
什麼是SQuAD機器閱讀理解挑戰賽
挑戰賽
顧名思義,SQuAD機器閱讀理解挑戰賽,是一個基於SQuAD數據集的文本閱讀理解挑戰賽。
只不過進行閱讀的不是人,而是機器(或者叫做程序)。從實踐而言,是機器學習或者深度學習模型。
模型=> SQuAD的測試集不公開發布。挑戰者使用SQuAD提供的數據訓練出自己的模型後,需將模型和源代碼提交給SQuAD開放平台(https://worksheets.codalab.org/)。由平台方在測試集上運行,得出最終結果。
模型的評判
模型評判基於兩個指標:
針對每個問題獲得EM和F1之後,再總體求平均,最後得出全局EM和F1。
NOTE:EM和F1的取值範圍都是[0-1],主頁上的值(例如:EM=82.650, F1=88.493),其實都是百分比。
SQuAD挑戰賽雖然推出時間不長,但是已經吸引了眾多學術機構和大企業加入,被譽為「機器閱讀理解界的ImageNet」。
人類表現(Human Performance)指標測定
在官網首頁最上方的人類表現(Human Performance)數據:EM = 82.304;F1 = 91.221,是怎麼來的呢?
為什麼人類做這麼簡單的閱讀題,EM才只有百分八十多呀?
這個數據,並不是SQuAD團隊僱傭了另外一批工作人員專門又做了一遍閱讀理解,而是利用之前眾包工作者創建qa pair的成果,通過自動化手段獲得的。
具體做法如下:
因為每一個問題都有至少三個答案,SQuAD團隊就把第二個答案設定為人類閱讀的「預測結果」,而將其他幾個答案作為真實結果。然後計算出了整體的EM和F1。
根據團隊提供的反饋來看,無法匹配通常是因為介詞、定冠詞之類非核心短語的不一致,而不是因為實質性的理解。
綜上,這個Human Performance的結果並不能夠完全反應人類的閱讀水平,而僅僅是SQuAD數據集上的一種表現指標而已。
做對題一定要*理解*文章嗎?
人類要做對一篇文章的閱讀理解題,一定要理解這篇文字嗎?
曾經,我以為一定是的。但是就在不久前,被我家小朋友開了眼——事情要從英語測試那天說起:
筆試試卷總分60分,小朋友得了57分。只丟了3分嘛!
有2分是拼寫問題,還有1分是閱讀理解錯了最後一道小題。
於是隨口問她:「閱讀理解知道怎麼錯了嗎?」
她:「不知道。」
我:「這篇文章說了什麼事?」
她:「不知道。」
我:「是忘了吧。來,再讀一遍,你看這第一句是什麼意思呀?」
她:「不知道。」
我:「不知道是什麼意思?」
她:「不知道第一句是什麼意思。」
我:「第二句呢?」
她:「哪句都不知道什麼意思。」
我:「都不知道什麼意思,你前面幾道題怎麼做對的?!」
她:「我就看了題,到文章里找題目那句話,然後再找哪個選項(出現)在那句話里。」 (表達得理直氣壯氣定神閑)
通過追查發現,她已經不是初犯了,之前用這種方法做對了不少閱讀題。
這個例子告訴我們,很多時候,做對閱讀理解題,其實並不需要*理解*原文;並不需要知道文字對應的事物、概念是什麼,會字型匹配就可以了。
但如果一個人能夠看到很多有Context和相應Question、Answer的例子,經過仔細類比對比,即使不懂英語,也不難發現一些問答的規律,比如:問題是Where開頭的,答案基本都是大寫開頭,等等。
只要數據量足夠大,TA又足夠專註仔細,發現多種類似的關聯,並非不可能。
同時,又限定答案必須在原文中。那麼,運用這些關聯回到原文中去給題目找答案,「對」的可能性與關聯的質量數量直接相關。
機器閱讀理解
機器做閱讀理解,並沒有真的理解。
這次在SQuAD測試集上,EM指標超越Human Performance的,由微軟亞洲研究院研發的R-NET,籠統而言,是一個端到端的神經網路模型。
創新點
【1】R-NET在注意力循環網路(attention-based recurrent networks)之上,又添加了一個門(gate),構成了門控注意力循環網路(gated attention-based recurrent network)。
這種設計所針對的情況是:在回答一個特定問題的時候,Context段落中不同詞語的重要程度是不同的。
【2】同時,R-NET引入了自匹配(self-matching)機制,該機制可以高效地從文本中聚集針對問題的回答。
R-NET在兩個大規模數據集:SQuAD和MS-MARCO上,都取得了很好的結果。
實現原理
上圖是R-NET的結構圖。
首先,問題(Question)和文本(Context)被一個雙向循環網路(bi-directional recurrent network)分別處理,生成各自的詞嵌套向量。(圖中最下一層)
接著,採用門控注意力循環網路(gated attention-based recurrent network)來匹配問題和文本的向量,獲取文本中和問題相關的表達。
然後,採用自匹配(self-matching)注意力機制,在當前文本全局中進行匹配,聚集回答相關的表達(representation),並對其進行改進。
經過改進的表達被傳給最後的輸出層,用來預測答案。
如前所述,R-NET在SQuAD上取得了優異的成績,在EM分數上超越了人類表現。不過說到底,它還是一種詞向量之間的匹配機制。
雖然在被問「What causes precipitation to fall?」 的時候,R-NET能夠回答「gravity」。但它並不知道「gravity」是什麼東西,不知道人類在生活中的每一天每一件事都要和gravity相伴。
-END-
版權聲明:本文為小象原創文章,轉載請聯繫後台。
TAG:小象 |