Machine Reading Comprehension(主要是NRC)
MRC:數據集與技術——主要是神經閱讀理解
數據集(詳細數據集見論文 or 筆記圖)
- 抽取答案數據集: triviaQA\ SQUAD1.0/2.0; triviaQA; WIKIHOP(multi-hop reasoning)
- 描述性 descriptive:NarrativeQA\unanswerable questions)
- 多選回答 multiple-choice : RACE; CoQA; ARC
- 未來數據集的趨勢後面會說
MRC的基礎
RC任務四類
- 完型填空類型,問題包含一個placeholder佔位符
- 多項選擇類型,答案可是一個單詞、短語or一句話 -CoQA
- 範圍預測類型(抽取式問答extractive question answering),答案必須是文本中的一個範圍。因此答案可以表示爲(a_start, a_end) SQUAD
- 自由形式回答類型(free-form answer),允許答案是任何形式的文本 a∈V CoQA
還有如多跳推理multi-hop question: hotpotQA
PS推理類型
word matching
paraphrasing
single-sentence reasoning
multi-sentence reasoning
ambiguous/insufficient
resolving the coreference
評估指標
通常使用:
- EM(exact match)、F1(F1 score計算平均單詞重疊)
- 自由形式的回答閱讀理解任務沒有理想的評價指標
MRC與QA
- 高性能的RC系統成爲問答/對話系統的關鍵。
- RC看作是QA的一個實例;但是強調了不同的東西:
QA目標是建立一個系統,系統可以依賴任何資源。
RC強調文本理解和一些被認爲是衡量語言理解程度的尖銳問題,so所有回答理解問題的信息都來自文章本身,而不是任何世界知識。
NRC的基本構建模塊
- word embeddings(現在有character embeddings\ context embeddings)
- RNN 對NLP中時態or段落進行建模(變體 lstm grus bi-rnn等)
- attention機制 (transformer最近的趨勢,transformer新的神經網絡結構僅僅依賴注意力機制):
soft\hard\co\bi\self-match
MRC模型(MRC綜述論文總結)
-
幾乎所有做SQuAD的模型都可以概括爲同一種框架:
Embed 層,Encode 層,Interaction 層和 Answer 層。
但ReasonNet不同,使用的是Memory networks框架 + 強化學習; 模仿人類推理過程
-
關注NN結構:R-NET\FastQA\QANET問答架構(encoder僅由卷積+self-attention組成不用RNN)
-
關注語言模型:Bert(它將雙向 Transformer 用於語言模型)\XLNet
細節與tips:
- stacked BiLSTMs
(可以增加 question&passage encoding的bi-LSTMs 的深度,堆疊的 BiLSTM比單層的效果更好)
- Dropout
(可以添加到LSTM層的嵌入、輸入、隱藏向量中)
- handling word embedding
( or 當trainset足夠大的時候,對所有單詞的embeddings進行微調; 訓練集小的時候可以固定爲靜態特徵)
- fine-tune
對常用的疑問詞(如:what how which)進行微調是有幫助的!
- 集成模型可以進一步提高性能的幾個點!
【好】重要組件與改善:
-
最近進展用於:
初始化的預訓練語言模型;
更細粒度的attention機制;
數據增強技術;
更好的訓練目標
幾種改善方式:在單詞表示、注意機制、LSTMs的變體、其他(訓練目標、數據擴充) -
詞表示:
- 學習更好的分佈式單詞表示;爲特定任務發現更好的詞嵌入集合(如將Glove用更新的fasttext向量表示代替)
- 字符嵌入character embeddigns(對罕見字or詞彙表外單詞更有用–> CNN n-gram字符的表面模式 char-CNN)
- 上下文單詞嵌入——(如ElMo Embeddings)重要創新
- 上下文單詞嵌入 + 傳統單詞嵌入 + 字符嵌入一起使用,這在非常大的文本語料庫上預訓練上下文詞嵌入非常有效
----以上基於統計,無法解決一詞多義問題----
ELMo(embeddings for LM) 可以解決一詞多義問題
GPT——不使用LSTM,而使用transformer
Bert(無法處理需要複雜推理的例子,bert的好處見後面)
GPT\GPT2都使用單向語言模型來學習詞表示,bert使用雙向,ELMo雖然考慮了上下文context但是效果不如bert
-
預訓練方法
目前的預訓練方法來看主要可以分爲以下兩個類型:- 基於特徵(feature-based)主要代表有ELMo,用做任務的模型來學習提前預訓練好的語言模型內部隱狀態的組合參數
- 微調(fine-tuning)主要代表有openAI GPT,用做任務的數據來微調已經訓練好的語言模型。
以上的預訓練存在一個問題,就是在預訓練的時候僅僅考慮的文本的單向順序,始終不能很好的解決同時學習詞彙上下文信息的問題(ELMo只是把兩個方向拼接起來而已),因此本文的bert提出了一種新的預訓練語言模型的方法。
-
attention機制——捕捉問題和文章之間的語義相似性
- bi-attention
- self-attention
對段落——文章中的單詞可以與其他文章中的單詞對齊,希望它可以解決相互參照的問題,並從文章中的多個地方收集(同一實體的)信息。
attention還有(soft\hard\co\bi\self-match)- transformer:
一種注意力機制,可以學習文本中單詞之間的上下文關係的。原型包括兩個獨立的機制,一個 encoder 負責接收文本作爲輸入,一個 decoder 負責預測任務的結果。
BERT 的目標是生成語言模型,所以只需要 encoder 機制。
- LSTM替換
因爲LSTM有梯度消失問題、可拓展性問題、層數增加而訓練時間也線性增長。
方法:
1.層與層之間添加告訴連接or殘差連接
2.(RNN替換)LSTM替換: transformer、 SRU
例:QANET問答架構(encoder僅由卷積+self-attention組成不用RNN) -
改進訓練目標:
- 完型填空or多項選擇題: 交叉熵 or 最大邊際損失
- 跨度預測span prediction: ,涉及到gold answer 與 ground truth之間的單詞重疊; 混合訓練目標,將位置交叉熵損失和訓練後的單詞重疊量與強化學習相結合
- free form QA: 更好的seq2seq; 句子level的訓練; 最小風險訓練
-
數據增強:
- data augmentation:SQUAD與TRIVIAQA聯合訓練(Joshi等,2017)可以適度提高SQUAD上的性能。
- 遷移學習and多任務學習進行更多研究,建立跨數據集的高性能模型
現在vs未來
現有問題:
數字推理、多跳推理問題、or問題不在文檔中or大文檔QA;問題根據文章提出的過於簡單了、不需要多句推理、只允許文章中一個跨度可以回答的問題
現有問題:文末添加讓人分心的句子 ; 添加不符合語法的單詞序列 效果更糟;
- 目前模型在很大程度上依賴於文章和問題之間的詞彙線索。分散注意力的句子會如此具有破壞性;
- 模型在原始開發集上取得了很高的精度,但對於對抗性的例子,它們的魯棒性並不強。這是標準監督學習範式的一個關鍵問題,它使得現有的模型難以在現實世界中部署。
- 目前的模型只關注文本的表層信息,在理解的(稍微)更深層次上仍然存在簡單的錯誤。
- 有一些困難的例子需要在SQUAD中進行復雜的推理,但是由於它們的稀缺性,它們的準確性並沒有真正反映在平均度量中。
未來趨勢
數據集:與SQUAD相比,這些數據集:
- 要麼需要更復雜的跨時態或文檔推理(hotpotQA多個文檔),要麼需要處理更長的文檔(triviaQA NarrativeQA),很長的文檔用RNN編碼不現實;
- 要麼需要生成自由形式的答案而不是提取單個跨度,(NarrativeQA)
- 要麼需要預測文章中何時沒有答案。(SQUAD2.0)
模型的未來:
-
speed and scalability 更快、可拓展到更長的文檔
用RNN編碼一個很長的文檔(例如TRIVIAQA)甚至是一本書(例如NARRATIVEQA)都是不現實的,這仍然是一個嚴峻的挑戰
更快的構建模型(用於訓練and推理)
- transformer模型 or 更輕的non-recurrent模型取代LSTMs
- 訓練學習跳過部分文檔模型,這樣不用閱讀所有內容,從而運行更快;論文:Yu等(2017)和Seo等(2018)。
優化算法的選擇也會極大地影響收斂速度; 多gpu和硬件性能
-
Robustness:
現有的模型對於對抗性例子來說是非常脆弱,目前的大多數工作都遵循標準範例:對一個數據集的分割進行培訓和評估。未來:
1.如何創造更好的對抗訓練示例並且將它們加入到訓練過程中
2.對遷移學習and多任務學習進行更多深入的研究,建立跨數據集的高性能模型。
3.打破監督學習的標準範式,並考慮如何創建更好的方法來評估我們當前的模型 -
Interpretability:可解釋性(難)
1.最簡單的方法是要求模型學會從文檔中提取輸入片段作爲支持證據
模型結構:缺失的元素
- 當前的模型要麼建立在序列模型的基礎上or對稱地處理所有單詞對(例如TRANSFORMER),but忽略了語言的固有結構。
- 這些語言知識/結構仍然是對現有模型的有益補充。
- 大多數現有模型仍然缺少的另一個方面是模塊(modules),如果我們想達到更深層次的閱讀理解,我們未來的模型將更加結構化,模塊化,解決一個綜合任務可以分解成許多子問題,我們可以單獨解決每一個規模較小的子問題(例如,每個推理類型)並組合它們。
研究問題
-
評估閱讀理解的指標?
參加人的標準化考試可以作爲評價機器閱讀理解系統性能的一個好策略。
未來需要將許多閱讀理解數據集集成爲一個測試套件進行評估,而不是隻在一個數據集上進行測試。
我們需要更好地理解我們現有的數據集:描述它們的質量和回答問題所需的技能,這將是構建更具挑戰性的數據集和分析模型行爲的重要一步。 -
Representations vs. Architecture在對閱讀理解模型性能影響上的角色
兩類模型表明了兩個極端:一方面非監督表示的不可思議的力量(Radford et al., 2018;Devlin et al ., 2018)。從大量文本中預先訓練的強大的語言模型,該模型已經編碼了大量關於語言的屬性,而一個連接篇章和問題的簡單模型足以學習兩者之間的依賴關係。(利用完整預訓練的語言模型,能大大減輕業務端網絡結構的複雜度)
另一方面,當只給出單詞嵌入時,似乎對文章和問題之間的交互進行建模(或者爲模型提供更多的先驗知識)會有所幫助。
未來,鼓勵更多在非監督學習和遷移學習上的研究。
* 模型(chen論文 可省)
- 篇章編碼 and 問題編碼(question encoding & passage encoding)
篇章編碼stanford attentive
reader是拼接拼接:詞嵌入、篇章token、em、align四個組件 - 計算上下文中問題 and 它的短文詞之間的相似度函數(得到問題-短文相似度評分)
- 答案預測(attention來訓練2個分類器 起始位置)
- 訓練和推理training and inference. (訓練目標這裏是最小化交叉熵損失——一般問答形式常用的方式)
MRC應用研究方向
- 開放領域的問答 (信息檢索 + 閱讀理解),回答一般的問題
- 會話形式的問答 (對話 + 閱讀理解) 在一段文本中多輪對話