CHANGLOGgit
- 4/10/2020,展開背景介紹和方法、優化內容組織。
前言github
2019年底的時候在工做中開始嘗試使用機器閱讀理解作信息抽取,經過調研發現多答案抽取領域一直鮮有人問津。不過伴隨DROP的橫空出世,也出現了2篇關於multi-span extraction的研究,在此分享下調研成果。web
目錄算法
- 背景介紹
- 任務定義
- 方法
- 總結
1. 背景介紹
機器閱讀理解(Machine Reading Comprehension,MRC)因其開放性和交互性已成爲NLP領域煊赫一時的方向,頭部企業及高校如Google、Facebook、斯坦福等紛紛下場廝殺,在衆多相關比賽如SQuAD上達到或超越人類水平。架構


儘管如此,現有的MRC處理現實場景下的QA問題依舊能力不足。緣由有三:性能
- 現有的方法大多基於天然語言模型將問題和文檔直接結合起來做爲模型的輸入,但因爲模型一次能接受的文字輸入長度有限,這麼作每每會形成模型聚焦於從短段落中提取答案,而不是經過閱讀整個內容頁面找到合適的上下文,最後致使預測的答案並不可以很好的反映問題。
- 現有的中文機器閱讀理解模型大多假設文檔中必定有能回答問題的答案,而沒有考慮如何處理無答案問題的狀況,這樣會致使模型的預測有所誤差。
- 現有的機器閱讀理解模型大多假設文檔中最多隻有一個答案能回答問題,而沒有考慮如何處理有多個答案問題的狀況,這樣會致使模型的預測結果有所遺漏。
MRC在業務場景上應用的難點主要有4點:優化
- 在垂直領域MRC標註數據較少的條件下,如何儘量的提升模型效果。
- 在篇章長度不肯定的狀況下,如何設計通用的分段策略以下降錯誤預測答案的整體風險。
- 如何回答在文檔中沒有答案的問題。
- 如何回答在文檔中有多個答案的問題。
不久前,新一代QA比賽DROP吸引了衆多目光,其要求模型對上下文段落進行離散推理獲得不一樣類型的最終答案。ui
2. 任務定義
機器閱讀理解(Machine Reading Comprehension, MRC)任務主要是指讓機器根據給定的文本回答與文本相關的問題,以此來衡量機器對天然語言的理解能力。spa
研究[1]概括了四種廣義的機器閱讀理解任務:設計
- 完形填空
- 定義:給定文章
,將其中的一個詞或者實體
隱去做爲待填空的問題,完形填空任務要求經過最大化條件機率
來利用正確的詞或實體
進行填空。
- 數據集:CNN & Daily Mail、CBT、LAMBADA、Who-did-What、CLOTH、CliCR
- 多項選擇
- 定義:給定文章
、問題
和一系列候選答案集合,多項選擇任務經過最大化條件機率來從候選答案集合
中挑選出正確答案回答問題
。
- 數據集:MCTest、RACE
- 片斷抽取
- 定義:給定文章
(其中包含 n 個詞)和問題
,片斷抽取任務經過最大化條件機率
來從文章中抽取連續的子序列做爲問題的正確答案。
- 數據集:SQuAD、NewsQA、TriviaQA、DuoRC
- 自由做答
- 定義:給定文章
和問題
,自由做答的正確答案
有時可能不是文章
的子序列,即
或
。自由做答任務經過最大化條件機率
來預測回答問題
的正確答案
。
- 數據集:bAbI、MS MARCO、SearchQA、NarrativeQA、DuReader
本文介紹的方法主要解決的是片斷抽取任務中的多答案問題。
3. 方法
3.1 A Multi-Type Multi-Span Network for Reading Comprehension that Requires Discrete Reasoning (Hu et al., 2019)[2]
這篇文章是第一篇研究Multi-span extraction的paper。
3.1.1 模型


本文經過增長一個預測answer span的數目的分類子任務,結合non-maximum suppression (NMS) 算法,獲得置信度最高且互不重疊的 個answer span。
具體思路以下圖:


3.1.2 實驗
- Performance breakdown


如上圖所示,MTMSN與只能找到單個answer span的baseline NABERT相比,在mutli span類型的問題上的F1提高了超過40個點,EM也有超過25個點的提高,幾乎是從0到1的重大突破。
- Effect of maximum number of spans
爲了肯定span數目分類子任務的最優類別數,做者在DROP的dev數據上調參,結果代表,將span數目建模成8分類任務的效果最佳。


3.1.3 利弊
- 優勢
- 繼承並擴展了當前主流閱讀理解模型的思路,更易於實現
- 缺點
- 引入了一個額外的span數目預測子任務,可能會形成更大的傳遞偏差
3.2 Tag-based Multi-Span Extraction in Reading Comprehension (Efrat et al., 2019) [3]
本文富有創意地的結合了MRC和NER兩種任務的思路處理多答案抽取,後續DROP的top solution大多延續了本文的思路。
3.2.1 多答案抽取基本思路
和single-span MRC的pointer network方法不一樣,本文將multi-span問題轉化成序列標註任務。具體而言,對於:
- 預處理
對於multi-span answer span集合,使用BIO格式對輸入文本序列打上標籤, 其中用B標記answer span的開始,answer span標記片斷的中間,O標記不屬於答案片斷的token。
- 模型結構
設計多輸出head結構進行multi-task learning,E.g. answer type head + single-span head + multi-span head。
- 訓練
優化全部輸出head子任務的聯合loss。
- 預測
有以下3種方法能夠找到最可能的答案序列:
- Viterbi Decoding,NER的經典解碼方法。優勢是基於機率轉移矩陣,能找到全局最優序列,缺點是計算代價高昂。
- Beam Search(文中採納),保留top-k個預測結果,去除掉錯誤的序列。優勢是在性能和精度之間取得了平衡,缺點是可能只找到局部最優。關於Beam Search技術,能夠參考文章:十分鐘讀懂Beam Search 1:基礎 @不刷知乎
- Greedy Tagging,直接拼接每一個token上的預測標籤做爲最終的預測結果序列。優勢是計算代價最小,缺點是容易陷入局部最優。
3.2.2 實驗


如上圖所示,Tag-based Multi-Span Extraction與MTMSN相比,在mutli span類型的問題上的F1提高了超過15個點,EM也有超過31個點的提高,提高巨大。
3.2.3 利弊
- 優勢
- 利用序列標註任務的特性,一個任務同時考慮預測答案及答案數目
- 缺點
- 可能會預測出過多的答案
4. 總結
在以往的機器閱讀理解方案中,用戶每每被要求將一個可能包含多答案的問題拆分紅多個單答案問題,就實際使用體驗而言確實談不上好。而今,隨着NLP技術的不斷突破,學術界的目光也開始投向multi-span extraction的方向,這無疑是機器閱讀理解技術落地的一大福音。
博主寫文不易,若是以爲本文有所幫助請點個贊^_^,更多精彩內容歡迎關注公衆號【AI充電站】。
參考
- ^Liu, Shanshan, et al. "Neural Machine Reading Comprehension: Methods and Trends."Applied Sciences9.18 (2019): 3698. https://arxiv.org/abs/1907.01118
- ^Hu, Minghao, et al. "A Multi-Type Multi-Span Network for Reading Comprehension that Requires Discrete Reasoning."arXiv preprint arXiv:1908.05514(2019). https://www.aclweb.org/anthology/D19-1170/
- ^Efrat, Avia, Elad Segal, and Mor Shoham. "Tag-based Multi-Span Extraction in Reading Comprehension."arXiv preprint arXiv:1909.13375(2019) https://arxiv.org/abs/1909.13375