聯合編譯:章敏,陳圳
NLP尚未解決的核心目標是,確保電腦理解文件回答理解問題。而通過機器學習系統,解決該問題的一大阻礙是:人類-注釋數據的可用性有限。Hermann等人通過生成一個超過百萬的實例(將CNN和日常郵件消息與他們自己總結的重點進行配對)來尋求解決方案,結果顯示神經網絡可以通過訓練,提高在該任務方面的性能。本文中,我們對這項新的閱讀理解任務進行了徹底的檢測。我們的主要目標是,了解在該任務中,需要什麼深度的語言理解。一方面,我們仔細的手動分析問題小的子集,另一方面進行簡單的展示,在兩個數據集中,細心的設計系統,就可以獲得72.4%和75.8%的精度,這超過了當前最好結果的5%,並且達到了我們認為在,該任務上的最高性能。
閱讀理解(RC)也就是閱讀文章,處理,並且理解含義的能力。如何讓計算機具有這方面的能力,是難以捉摸的挑戰,而且這也是人工智慧的一個長期目標(例如,(Norvig,1978))。真正的閱讀理解涉及解釋文章,並進行推理。人類閱讀理解通常通過,問關於文章理解方面的問題,來進行測試,並且,這樣的方法也被建議用於測試電腦(Burges,2013)。
最近幾年,在DeepMind方面的研究者(Hermann等人,2015)非常吸引眼球,探索這方面的最初想法是:通過大量附有要點總結的CNN和Daily Mail新聞文章,來嘗試創造用於閱讀理解任務的大規模監督訓練數據。圖1給出了一個例子。其想法是:總結文章1個或幾個方面的要點。如果電腦理解了文章的意思,它就應該可以推測出要點中丟失的實體。
這是最聰明的方法,用來創建實惠且可以在RC模型上面進行訓練的監督數據集;然而,解決一些人工任務,所需的閱讀等級並不是非常清楚。實際上,已經真正學會了什麼樣的統計模型,在該任務方面做的最好。
本文中,我們的目標是,對文章提供一個深度且縝密的分析,並了解需要什麼等級的自然語言理解,才可以在該任務方面做得更好。我們簡單的證明了,細心的設計系統,就可以分別在CNN和Daily Mail獲得最高精度72.4%和75.8%。我們對問題子集做了仔細的手動分析,以在他們的困難方面,提供數據和成功所需要的語言理解種類,同時我們也儘量判斷,我們創建的系統學習了什麼。我們總結出:(i)數據集比原先認為的要簡單,(ii)簡單的,傳統的NLP系統,比以前的建議做得更好,(iii)在識別釋義方面,深度學習系統的分布式表示非常的有效,(iv)部分由於問題的性質,相比於更大的語篇語境文本理解系統,當前的系統更具有單句子關係抽取系統的性質。(v)我們提出的系統接近於單句的最高性能,和數據集明確的情況。(vi)正確獲得問題最後20%的前景的結果不理想,因為他們中的大多數都涉及數據中的準備問題,這會破壞回答問題的機會(指代錯誤或進行匿名實體的理解太困難)。
圖1:CNN數據集的實例
Hermann等人介紹的RC數據集,是利用新聞網站CNN和Daily Mail的文章及要點總結得到的。 圖1展示了一個例子:它由文章p,問題q和答案a組成,其中文章是新聞網站,問題是完形填空任務(文章要點被橫線代替),答案是問題的本質。目標是從所有可能的選項中(在文章中給出)推測出丟失的實體(答案a)。新聞文章通常只有很少的要點,並且每一個要點都強調了文章的一方面。
文章通過GoogleNLP通道運行。它已經進行了,標誌,字體小寫,識別命名實體和共指消解。為了獨特的指標n,每個共指鏈包含至少一個命名實體,鏈中的所有項目都是由一個@實體n標誌所取代。Hemann等人(2015)令人信服地說明了:這樣的策略是必要的,以確保系統通過理解它們面前的文章,來完成這個任務,而不是在不需要理解文章的情況下,通過使用世界知識和語言模型來回答問題。然而,這也給出了一些符合人工特性的任務。一方面,實體識別和已被執行的指代很大程度上幫助了系統;另一方面,無論模塊是否失敗,它都會很艱難(如圖1所示,「特性」應該復指@entity14;在我們後續的數據分析中,有更清晰的失敗實例)。此外,無法使用世界知識,也使得人類進行該任務變得更加困難——以方式提出一個匿名條款時,人類很難決定出正確的答案。
網上有大量可利用的新聞文章,使得創建數據集變得很方便,因此它們為統計模型提供了一個大而現實的試驗場。表1提供了一些兩個數據集的統計:裡面分別有380k和879k的CNN和Daily Mail訓練實例。文章平均有30個句子和800個標誌,同時每個問題包含12-14個標誌。
接下來的章節中,我們尋求對於數據集本質更深度的理解。我們首先建立了一些簡單的系統,以便更好的了解當前NLP系統的下邊界性能。然後,轉向數據分析項目的樣本,以檢查他們的性質和性能的上限。
表1:CNN和Daily Mail數據集的數據統計。平均標誌和文章的句子,查詢中的標誌,和訓練集中基於統計的實體數量,當在發展和測試集中它們非常相似。
本節中,我們描述了實施的兩個系統——一個傳統的以實體為中心的分類器和一個終端到終端的神經網絡。儘管Hermann等人在RC任務方面的性能提供了幾個基線,我們仍然懷疑它們的基本不夠強大。他們試圖使用一個框架—語義(frame-semantic)分析器,我們覺得這種小範圍的解析器破壞了結果,並且它不能代表簡單的NLP系統—基於標準的方法來陳述問題答案,和過去15年中發展的關係提取(可以實現)。的確,他們的框架—語義模型明顯遜色於他們提供的另一個基線,一個啟發式的單詞距離模型。目前只有兩篇論文可以用來展示RC任務的結果,這兩篇論文都是利用神經網絡的方法:Hermann等人和Hill等人的研究。然而後者被包裹在終端到終端的存儲網絡的語言中,它實際上提出了一個相當簡單的,運行於CNN數據集上的,基於窗口的神經網絡分類器。它的成功再次提出了,關於由該數據集提供RC任務的真實性和複雜性問題,這方面,我們通過建立簡單的基於注意力神經網絡分類器,進行分類。
給定(文章,問題,答案)三元組(p,q,a),p={p1, . . . , pm},q= {q1, . . . , ql}是文章標標誌的結果,且問題語句,用q包含一個「@placeholder」標誌。目標是推測出正確的實體 a ∈ p ∩ E(與佔位符對應),其中E是所有抽象實體標記的集合。注意:正確的答案實體必須出現在文章p中。
我們首先建立一個傳統的基於特徵的分類器,用於探索對於該任務有效的特徵。這和Wang等人的靈感相似,目前它在MCTest RC數據集有極具競爭力的性能(Richardson等人)。該系統的步驟是為每一個候選實體e,設計特徵矢量fpq(e),並且學習一個權重矢量θ,例如正確的答a的排名高於所有其他候選實體:
我們採用以下功能模板:
1.在通道中是否存在實體E。
2.在問題中是否存在實體E。
3.段落中實體的頻率。
4.段落中實體e第一次出現的位置。
5.n-gram精確匹配:在佔位符周圍的文本和文本周圍的實體e,是否有一個確切的匹配。我們有所有匹配組合的特徵,左和/或右一個或兩個單詞。
6.字間距:我們用每一個發生的實體e排列佔位符,並計算每一個不停的(non-stop)問題詞彙到段落中實體的平均距離。
7.句子共生:在一些句子的段落,實體e是否與另一個出現在這個問題上的實體或動詞一起發生。
8.依賴解析匹配:我們依賴解析這兩個問題和所有在段落中的句子,並且提取指標特徵
我們的神經網絡系統基礎是:Hermann等人提出的AttentiveReader模型。該框架可以用下三個步驟描述(見圖2):
圖2:我們用於閱讀理解任務的神經網絡結構。
編程:
注意力:在這一步中,目標是將問題的嵌入和所有語境嵌入進行對比,並選擇與這個問題有關的信息碎片。我們計算一個依賴於詞與詞之間的關聯度pi(在它的語境)和問題q的概率分布α,然後產生輸出向量O,它是所有語境嵌入{pi~}的加權組合:
預測:使用輸出向量O,系統輸出最有可能的答案:
最後,該系統在Wtap上面增加了一個softmax函數,並且將負對數似然用於訓練。
不同於Hermann等人.我們的模型基本上都遵循AttentiveReader。然而,讓我們驚訝的是:我們的實驗觀察到,相比於原先在CNN和Daily Mail數據集上AttentiveReader結果,我們的結果提升了將近8-10%(第四部分進行討論)。具體地說,我們的模型有以下差異:
·我們使用一個雙線性的術語,而不是一個雙曲正切層,計算問題和語境嵌入的關聯(注意)簡單雙線性注意函數的有效性,已經在以前的神經機器翻譯得到了證明(Luong 等人)。
·獲得權重語境嵌入o後,我們使用o進行直接預測。與之相比,在做最後的預測之前,原來的模型(Hermann等人)通過另一個非線性層結合o和問題嵌入q。我們發現,可以不損害性能的情況下去除這一層。並且我們相信,這足以讓模型學習返回被給予最大限度地注意的實體。
·原來的模型在作出預測時,考慮了所有來自詞彙V的話。我們認為這是不必要的,並且只預測在段落中出現的實體。
在這些變化中,似乎只有第一個是重要的;另外兩個只是為了保持模型的簡單性。(敏)
Window-based MemN2Ns.另一個神經網絡系統方法是基於記憶網絡結構的。我們認為這兩個方法在思想上是極度相似的。最大的不同在於編碼方式的不一樣:證明顯示在評估一個候選單位時,僅使用5個單詞文本是最有效的語境嵌入編碼方式:如果窗口包含5個單詞x1,……x5,那麼就會編碼成5個獨立的嵌入矩陣進行學習。他們能以類似的方式圍繞佔位符,對5詞窗口或是其他所有在問題文本中被忽視的單詞進行編碼。此外,他們僅僅使用一個產品點來計算問題或是文本鑲嵌之間的「相關性」。這個簡單的模型表現的十分好,因為顯示出了RC任務在何種程度能通過本地文本匹配表現的十分好。
為訓練常規分類器,我們在RankLib應用LambdaMART。我們使用排序算法,因為我們的問題本身就是排序問題,所以也就促進決策樹體系最近的成功。我們並未使用LambdaMART的所有特徵,因為僅基於第一條建議對1/0損失進行排序,而不是使用IR矩陣對所有的結果進行排序。我們使用斯坦福神經網絡依賴解析器對文本或是問題進行解析,並且其他的特徵都能在不使用額外工具的情況下提取出來。
為訓練我們的神經網絡,我們僅保留最常使用的50k的單詞(包括實體和佔字符),並會標註其他所有的單詞。我們選擇單詞的嵌入尺寸d=100,並為初始化使用100維度的預訓練GloVe單詞鑲嵌。注意力或是輸出是從統一的分配(-0.01,0.01)之間進行初始化,LSTM權重是從高斯分布N(0.01)中進行初始化。
表3:實體為中心的分類器會基於CNN數據集的部分發展進行特徵消融分析。數字暗示了我們從所有系統中排除的每一個特徵的準確性,所以較小的數字就暗示是一個重要特徵。
我們使用的CNN大小是h=128,Daily Mail是256。優化是通過隨機梯度遞減(SGD)實現的,其固定學習率為0.1。我們根據所有例子的文本長度來進行分類,並隨機抽取樣本批量大小為32進行更新。當梯度的規模超過了10,會將丟棄概率為0.2應用於嵌入層和梯度剪裁。
我們所有的模式都是在單個GPU(GeForce GTX TITAN X)上運行,對於CNN每一個階段的運行時間為6小時,DailyMail的每一個階段的運行施加為15小時。我們運行的模式其階段長達30個,並基於發展集選擇最精準的模式。
表2展示了我們的主要成就。基於特徵的傳統分類器在CNN測試集上實現了67.9%的準確度。這一結果不僅超過了其他象徵方法,也超過了其他神經網絡在論文中或是單一系統上的結果報告。這也表明,這一任務不會像想像的那麼困難,並且一個簡單的特徵集能包含許多種情況。表3顯示的是基於CNN部分數據發展實體分類器的特徵消融分析。這表明n-gram匹配和實體頻率是特徵分類最重要的兩類。
表2:基於CNN和Daily Mail數據集的模式準確度。分類器和神經網絡分別指代實體中心分類器和神經網絡系統。標有*的數據暗示其結果是來自於集成模式。
更加戲劇化的是,但模式神經網絡的結果大幅度超過之前的結果(超過5%),並推動其具有領先水平的結果至72.4%或是75.8%。由於資源的限制,我們沒有機會調查集成模式,儘管集成模式能像其他論文所描述的那樣帶來更好的結果。
同時與我們的論文一樣,Kadlec等和Kabayashi等同樣也基於這兩個數據集進行試驗但其結果也是非常出色的。然而,我們的單一模式不僅僅在模式上超過他們,在結構上也更加簡單。最近所有的結果匯聚成了相似的數據,並且我們相信這一數據是逼近於這一任務的最好結果,這一結論我們會在接下來的部分進行說明。
到目前為止,通過我們的系統獲得了較好的結果。在本部分,我們致力於進行深入分析並回答以下問題:(1)由於數據是基於自動化和啟發式的方式創建的,有多少問題是不重要的?有多少是嘈雜並不能回答的?(2)這些模式學到了什麼?進一步改善它們的前景在哪?為研究這一問題,我們隨機從CNN部分發展集中選取100例子進行分析。
在仔細分析這100個實例之後,我們把它們大概分成以下幾個種類(如果一個例子不僅滿足一個類型,我們會把它歸類於前一個類型):
完全匹配:最靠近佔字符的單詞同樣也存在於實體標記中;且答案是明顯的。
句子級別的釋義:問題文本重新用一句話在文中進行改寫,所以其答案也是和這一句子是完全一樣的。
局部線索:在許多情況下,儘管我們不能把問題文本和一些句子在語義上完全匹配,但任能通過一些局部線索進行推理,例如一些單詞或是概念的匹配。
多個句子:這需要通過處理多個句子來推理出正確答案。
指代錯誤:在數據集中指代錯誤是不可避免的。這一類包括在問題中出現的答案實體或是關鍵實體的指代錯誤。一般我們會把這一類問題歸類為「不可回答」。
表4:每一類型的代表例子。
圖5:基於從CNN數據集中取樣的100個實例分析,對數據分解的評價。
模糊或是十分困難:這一類型所包含的實例是我們認為人類都難以回答的問題。
表5展示的是每一個類型所佔的百分比,表4展示的是每一類型的代表實例。令人驚訝的是,基於我們的人工分析「指代錯誤」和「模糊/困難」的情況佔了25%,所以這對於將準確率提高到75%會是一個障礙(當然,模式有時能猜測準確。)此外,僅有2個例子需要多個句子進行推理—這是一個就Hermann而言比較小的概率。因此,我們要假設在大對數「不能回答」的情況下,目標是要找出相關的(單個)句子,並基於這單一句子進行答案推理。
現在,基於以上的分類,我們進一步分析這兩個系統的預測。
如表6,我們觀察結果如下:(1)完全匹配的情況十分簡單,且兩個系統都能實現100%的準確。(2)對於模糊/困難的情況或是實體和錯誤相連的情況,正如我們所預測的那樣,兩個系統表現都很差。(3)這兩個系統在釋義和有部分提示的情況下差別教大。這也表明了在涉及到改寫或是兩個句子詞彙有所區別時,神經網絡系統能更好地進行語義匹配。(4)我們相信在單一句子或是明確的情況下,神經系統的表現已接近最佳表現。基於這一數據集,對於探索更加複雜的自然語言理解方法似乎沒有很多有用的淨空。
圖6:這兩個模式在每一個類別上表現。
我們會簡單調查其他與閱讀理解相關的任務。
MCTest是一個開放性領域的問題,經常是一個短篇小說的形式呈現並帶有多項選擇式的問題。這是通過大規模探索創造出來的方法,其目標是達到一個7歲小孩的閱讀理解水平。
一方面,需要具有各種各樣推理技能的數據集:超過50%的問題需要通過理解多個句子進行回答,並且問題的種類也是多種多樣的(例如,是什麼,為什麼,怎麼樣,誰的,哪一個等問題)。另一方面,整個數據集總共只包括660個段落(每一個段落包含4個問題),這使得訓練統計模式(尤其是複雜的模式)變得相當困難。
到目前為止,最好的解決方案依然是依賴手動提取的句義或是語義上的特徵,以及額外知識的幫助(例如,鑲嵌詞彙,句義或是改寫數據集)。
兒童書測試是為類似的目的基於CNN/DailyMail數據集所創建的任務。從兒童書內隨機選取20個連續的句子—前20個句子作為一個段落,目標是推斷出在第21個句子中所缺失的單詞(問題或是答案)。這些問題也可以按照所缺少的單詞進行分類:實體名詞,普通單詞,介詞或是動詞。根據對此數據集的第一個研究得出,一個有當地文本的語言模式(n-gram模式或是遞歸神經網絡)足以預測動詞或是介詞。然而,對於預測實體名詞或是普通名詞,只能通過瀏覽全文才能提高預測的結果。
bAbI是一個人工數據集合包括20中不同的推理類型。它鼓勵發展模式的鏈推理,歸納,演繹等能力,所以它在閱讀「約翰在操場;鮑勃在辦公室;約翰拿了足球;鮑勃去了廚房」這一系列句子之後能回到出像「足球在操場上」的問題。在這些任務上不同類型存儲網絡已表現出了有效性,此外基於廣泛問題分析的空間矢量模式能在所有的任務類型上表現出接近於完美的準確率。儘管這些結果十分好,但是數據集僅限於少量的詞彙(100-200詞)和簡單的語言變化,所以這與在現實世界中我們需要預測的數據集相比相差很大。
在本文中,我們仔細的研究了最近CNN/DailMail的閱讀理解任務。我們的系統表現出了完美的結果,但是更重要的是,我們手動進行了仔細的數據分析。
總體而言,我們認為CNN/Dail Mail數據集是極具價值的數據集,為訓練用於閱讀理解任務的數據模式提供了良好的方法。但是,我們還是認為:(1)由於數據的創建方法和指代錯誤,數據集還是十分的吵雜;(2)目前遞歸神經網絡在此數據集上表現已達到最優;(3)所用推理的數據集還是過於簡單。
在未來的研究中,我們會考慮如何利用這些數據集(以及基於這些數據集訓練的模式)去解決更為複雜的閱讀理解(RC)推理問題。
哈爾濱工業大學李衍傑副教授的點評:閱讀理解是一種閱讀文章並且處理理解文章含義的能力,如何讓計算機具有閱讀理解能力,理解文獻並回答理解型問題是NLP領域重要且未解決的問題,阻礙機器學習系統解決該問題的一個關鍵因素是人類注釋數據的可用性有限,為此,有研究者通過CNN和日常郵件消息與他們自己總結的重點進行配對,生成了超過百萬的訓練數據,並藉助於神經網絡較好的解決文獻理解的問題。今天推薦的這篇論文對這方面的研究又進行了詳細的檢查,通過對數據集的手動分析,並引入實體中心分類器(Entity-Centric Classifier)和端到端神經網絡,從另一方面考慮並解決了上述問題,得到了更高的精度。
PS : 本文由雷鋒網(公眾號:雷鋒網)獨家編譯,未經許可拒絕轉載!
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。