阅读理解调研及NLP其它任务转化为MRC参考
閱讀理解概述
所謂的機器閱讀理解(Machine Reading Comprehension, MRC)就是給定一篇文章,以及基于文章的一個問題, 讓機器在閱讀文章后對問題進行作答。 機器閱讀理解(MRC)是一項任務,用于測試機器通過要求機器根據給定的上下文回答問題來理解自然語言的程度。 早期的MRC系統是基于規則的,性能非常差。隨著深度學習和大規模數據集的興起,基于深度學習的MRC顯著優于 基于規則的MRC。
一、機器閱讀理解的發展歷程 機器閱讀理解方法發展階段: 特征+傳統機器學習 BERT以前:各種神奇的QA架構 BERT以后:預訓練+微調+trick
二、常見任務定義 MRC 的常見任務主要有六個:完形填空、多項選擇、片段抽取(答案抽取)、生成式(自由作答)、會話、多跳推 理: 完形填空(Cloze Tests):將文章中的某些單詞隱去,讓模型根據上下文判斷被隱去的單詞最可能是哪個。 多項選 擇(Multiple Choice):給定一篇文章和一個問題,讓模型從多個備選答案中選擇一個最有可能是正確答案的選 項。 片段抽取式(Span Extraction):給定一篇文章和一個問題,讓模型從文章中抽取連續的單詞序列,并使得該 序列盡可能的作為該問題的答案。 生成式(Free Answering):給定一篇文章和一個問題,讓模型生成一個單詞序 列,并使得該序列盡可能的作為該問題的答案。與片段抽取任務不同的是,該序列不再限制于是文章中的句子。 會 話:目標與機器進行交互式問答,因此,答案可以是文本自由形式(free-text form),即可以是跨距形式,可以是“不可回 答”形式,也可以是“是/否”形式等等。 多跳推理:問題的答案無法從單一段落或文檔中直接獲取,而是需要結合多個 段落進行鏈式推理才能得到答案。因此,機器的目標是在充分理解問題的基礎上從若干文檔或段落中進行多步推理, 最終返回正確答案。
1 完形填空(Cloze Test)
數據集:CNN & Daily Mail 、CBT、LAMBADA、Who-did-What、CLOTH、CliCR
2 多項選擇(Multiple Choice)
數據集:MCTest、RACE
3 片段抽取(Span Extraction)
數據集:SQuAD、NewsQA、TriviaQA、DuoRC
4 自由作答(Free Answering) 對于答案局限于一段上下文是不現實的,為了回答問題,機器需要在多個上下文中進行推理并總結答案。自由回答任 務是四個任務中最復雜的,也更適合現實的應用場景。 數據集:bAbI、MS MARCO 、SearchQA、NarrativeQA、DuReader
三、評價指標(Evaluation Metrics) 對于不同的MRC任務,有不同的評估指標。一般有Accuracy,F1 Score,ROUGE-L,BLEU。
閱讀理解模型架構
典型的MRC系統以上下文和問題為輸入,然后輸入答案,系統包含四個關鍵模塊:Embeddings, Feature Extraction, Context-Question Interaction,Answer Prediction。
Embeddings(嵌入層):將單詞映射為對應的詞向量,可能還會加上POS、NER、question category等信息;
Feature Extraction(特征提取/編碼層):抽取question和context的上下文信息,可以通過CNN、RNN等模型結 構;
Context-Question Interaction(交互層):context和question之間的相關性在預測答案中起著重要作用。有 了這些信息,機器就能夠找出context中哪些部分對回答question更為重要。為了實現該目標,在該模塊中廣泛使用 attention機制,單向或雙向,以強調與query相關的context的部分。為了充分提取它們的相關性,context和 question之間的相互作用有時會執行多跳,這模擬了人類理解的重讀過程。
Answer Prediction(輸出層):基于上 述模塊獲得的信息輸出最終答案。因為MRC任務根據答案形式分為了很多種,所以該模塊與不同任務相關。對于完形 填空,該模塊輸出context中的一個單詞或一個實體;對于多項選擇,該模塊從候選答案中選擇正確答案。 閱讀理解深度學習模型方法
1.Embeddings模塊
將單詞轉換為對應的向量表示。如何充分編碼context和question是本模塊中的關鍵任務。在目前的MRC模型中,詞 表示方法可以分為傳統的詞表示和預訓練上下文表示。為了編碼更豐富的語義信息,MRC系統在原來的詞級別表示的 基礎上,還會融合字向量、POS、NER、詞頻、問題類別等信息。
1.1 傳統的詞嵌入(Conventional Word Representation)
1.1.1 One-Hot One-Hot:向量長度為詞表大小,只有單 詞的位置為1,其它全0。 One-Hot 詞向量表示方法最大的問題在于這種稀疏向量無法體現任何單詞之間的語義相似度信息。
1.1.2 分布式詞向 量表示(Distributed Word Representation) 高維映射的詞嵌入方法可以有效解決上述One-Hot方法帶來的問題, 語義相似的單詞可以在幾何空間中被編碼成距離相近的向量。 詞向量能夠基于單詞的分布式假設,從大規模無標簽的文本語料庫中學習獲得。在機器閱讀理解任務中,使用最多的 是 Word2Vec、GloVe 以及 Fasttext 這 3 種單詞級別的嵌入模型。 Word2Vec 詞向量:該模型具體可以分為連續詞袋模型(continuous bag-of-word,簡稱 CBoW)以及跳躍元語法 模型(skip-gram)兩種:前者是從上下文對目標單詞的預測中學習詞向量;后者則相反,是從目標單詞對其上下文 的預測中學習詞向量。 GloVe 詞向量:GloVe 學習的是詞向量的共現概率比值,而不是詞本身的出現概率。 Fasttext 詞向量:Fasttext 詞向量本質上是 Fasttext 快速文本分類算法的副產物,該模型的提出,旨在解決 Word2Vec 和 GloVe 模型忽略單詞內部結構,從而導致詞的形態學特征缺失的問題。
1.2 基于上下文的預訓練詞嵌入(Pre-Trained Contextualized Word Representation)
盡管分布式詞表示可以在編碼低維空間中編碼單詞,并且反映了不同單詞 之間的相關性,但是它們不能有效地挖掘上下文信息。 具體來說,就是分布式詞表示在不同上下文中都是一個常量。為了解決這個問題,研究學者提出了上下文的詞表示, 在大規模數據集預訓練,直接當做傳統的詞表示來使用或者在特定任務 Fine-tuning。 將詞的表征擴展到上下文級別,將每個單詞表示為整個輸入句子的函數映射,即根據當前的句子來體現一個詞在特定 上下文的語境里面該詞的語義表示,使其動態地蘊含句子中上下文單詞的特征,從而提高模型的性能。 目前較為流行的用于上下文級別嵌入的模型有 CoVe、ELMo 、GPT、BERT等預訓練模型。 CoVe:一個單詞除了和與之有著語義相似性的單詞在向量空間中距離較近以外,還和出現這個單詞的句子中的上下 文單詞也有著一定的關聯。一個句子中的每一個單詞應該共享其上下文中其他單詞的表征能力,這樣可以進一步提升 模型性能。實驗表明:將上下文向量與詞向量拼接得到新的詞嵌入表征,即 w~=[GloVe(w);CoVe(w)] 作為模型的輸 入,能進一步提高模型性能。 ELMo:一個好的詞嵌入應該包括兩個部分:一是包含諸如語法和語義等復雜特征;二 是能夠識別這個單詞在不同上下文中的不同使用意義,即一詞多義的區分;此外詞表征應該結合模型的所有內部狀 態。實驗表明:高層次的 LSTM 傾向于捕捉上下文相關的信息,而低層次的 LSTM 傾向于捕捉語法相關的信息。 ELMo 采用了耦合雙向 LSTM 語言模型(biLM)來生成預訓練的上下文詞向量。 GPT:采用單向的Transformer在大 規模語料上預訓練; BERT:ELMo 存在的兩個潛在問題:一是 biLM 模型并不是完全雙向的,即句子從左到右和從 右到左的 LSTM 過程并不是同時進行的;二是傳統語言模型的數學原理決定了它的單向性,對于完全雙向的 Bi-LSTM 來說,只要層數增加,就會存在預測單詞“自己看見自己”的問題。BERT 預訓練模型通過建立雙向 Transformer 架 構,加以采用遮蔽語言模型以及連續句子預測來解決上述問題該模型進一步增強了詞向量模型的泛化能力,充分描述 了字符級別、單詞級別和句子級別的關系特征。
1.3 字符嵌入
字符嵌入用來獲取一個單詞在字符級別的向量表示, 采用 char-level 的詞向量能夠在一定程度上緩解文本中出現未登錄詞(out-of-vocabulary,簡稱 OOV)的問題。
1.4 多粒度特征嵌入
(Multiple Granularity) Word2Vec或GloVe預先訓練的詞級嵌入不能編碼豐富的句法和語言信 息,如詞性、詞綴和語法,這可能不足以進行深入的機器理解。為了將細粒度的語義信息整合到單詞表示中,一些研 究人員引入了不同粒度的上下文和問題編碼方法。 特征嵌入本質上就是將單詞在句子中的一些固有特征表示成低維度的向量,包括單詞的位置特征(position)、詞性特 征(POS)、命名實體識別特征(NER)、完全匹配特征(em)以及標準化術語頻率(NTF)等等,一般會通過拼接 的方式將其與字符嵌入、詞嵌入、上下文嵌入一起作為最后的詞表征。 Character Embeddings:與詞級表示(word-level representations)相比,它們不僅更適合于子詞形態的建模,而且 可以緩解詞匯表外(OOV)問題。 Part-of-Speech Tags:詞性(POS)是一類特殊的語法詞匯,如名詞、形容詞或動 詞。在NLP任務中標記POS標簽可以說明單詞使用的復雜特征,進而有助于消除歧義。為了將POS標簽轉換成固定長 度的向量,將POS標簽作為變量,在訓練過程中隨機初始化并更新。 Name-Entity Tags:名稱實體是信息檢索中的 一個概念,是指一個真實世界中的對象,如一個人、一個地點或一個組織,它有一個合適的名稱。當詢問這些對象 時,名稱實體可能是候選答案。因此,嵌入上下文單詞的名稱實體標記可以提高答案預測的準確性。名稱實體標簽的 編碼方法類似于上述POS標簽的編碼方法。 Binary Feature of Exact Match (EM):如果context中的一個單詞在 query中存在,那么值為1,否則為0; Query-Category:問題的類型(what,where,who,when,why,how)通常可以提 供線索來尋找答案。
2.Feature Extraction(特征提取/編碼層)
特征提取模塊通常放置在嵌入層之后,分別提取上下文和問題的特征。它進一步關注基于嵌入模塊所編碼的各種句法 和語言信息在句子層次上挖掘上下文信息。該模塊采用了RNNs、CNNs和Transformer architecture。 編碼層的目的是將已經表示為詞向量的 Tokens(詞的唯一標記單位)通過一些復合函數進一步學習其內在的特征與 關聯信息。提取特征的本質就是在對樣本進行編碼。
1. 循環神經網絡(RNN/LSTM/GRU) 循環神經網絡是神經網絡的一種,主要用來處理可變長度的序列數據。不同于前饋神經網絡,RNNs 可以利用其內部 的記憶來處理任意時序的輸入序列,這使得它更容易處理機器閱讀理解數據集中的問題和段落序列。
2 .卷積神經網絡(CNN) 使用 RNN 模型對問題 Q 和段落 C 進行編碼時,會導致模型訓練和推理的速度變得非常緩慢,這使得模型無法應用于 更大的數據集,同時無法應用于實時系統中。 利用 CNN 模型善于提取文本局部特征的優點,同時采用自注意力機制來彌補 CNN 模型無法對句子中單詞的全局交 互信息進行捕捉的劣勢。
3 .Transformer Transformer是一個強大的神經網絡模型,在各種NLP任務中顯示出了良好的性能。與基于RNN或cnn的模型相比, 該模型主要基于注意機制,既沒有遞歸,也沒有卷積。多個頭部的注意力結構不僅在對齊方面有優勢,而且可以并行 運行。 與RNNs相比,Transformer需要更少的訓練時間,同時它更關注全局依賴性。但是,如果沒有遞歸和卷積,模型就 不能利用序列的位置信息。為了整合位置信息,Transformer添加由正弦和余弦函數計算的位置編碼。位置和字嵌入 的總和作為輸入。
3.Context-Question Interaction(交互層)
交互層是整個神經閱讀理解模型的核心部分,它的主要作用是負責段落與問題之間的逐字交互,從而獲取段落(問題) 中的單詞針對于問題(段落)中的單詞的加權狀態,進一步融合已經被編碼的段落與問題序列。 通過提取context和question之間的相關性,模型能夠找到答案預測的證據。根據模型是如何抽取相關性的方式,目 前的工作可以分為兩類,一跳交互和多跳交互。 無論哪種交互方式,在MRC模型中,attention機制在強調context哪部分信息在回答問題方面更重要發揮著關鍵作 用。 當段落和問題序列通過注意力機制后,神經閱讀理解模型就能學習到兩者之間單詞級別的權重狀態,這大大提高了最 后答案預測或生成的準確率。 在機器閱讀理解中,attention機制可以分為無向和雙向的。
1 .單向注意力機制(Unidirectional Attention) 單向的attention可以關注context中最重要的詞來回答問題,但是該方法無法關注對答案預測也至關重要的question 的詞。因此,單向的attention不足以抽取context和query之間的交互信息。
2 .雙向注意力機制(Bidirectional Attention) 同時計算 query-to-context attention 和 context-to-query attention。
3 .一跳交互(One-Hop Interaction) 單跳交互是一種淺層架構,上下文和問題之間的交互只計算一次。 雖然這種方法可以很好地處理簡單的完形填空測試,但當問題需要在上下文中對多個句子進行推理時,這種單跳交互 方法很難預測正確答案。
4 .多跳交互(Multi-Hop Interaction) Multi-Hop Interaction可以記住之前的context和question信息,能夠深度提取相關性并聚合答案預測的證據。
4.輸出層(Answer Prediction)
該模塊基于上述三個模塊累積得到的信息進行最終的答案預測。 該模塊與任務高度相關,之前我們將MRC分為四類,分別是完形填空、多項選擇、片段抽取、自由回答,那么對應的 答案預測方法也有四種,分別是word predictor,option selector,span extractor,answer generator。 輸出層主要用來實現答案的預測與生成,根據具體任務來定義需要預測的參數。
1.完形填空任務:
神經閱讀理解模型需要從若干個答案選項中選擇一項填入問句的空缺部分,因此,模型首先需要計算出段落針對問題 的注意力值,然后通過獲取選項集合中候選答案的概率預測出正確答案。
【答案輸出是原文中的一個詞或實體,一種 做法是將文中相同詞的注意力權重得分進行累加,最終選擇得分最高的詞作為答案】 多項選擇任務:神經閱讀理解 模型需要從 選項中選出正確答案,因此,模型可以先通過 BiLSTM將每一個答案進行編碼,之后相似度對比,預測出 正確的答案。【從多個候選答案中挑選出正確答案,一般是對備選答案進行打分,選擇得分最高的候選者作為答案】
2.抽取式任務:
神經閱讀理解模型需要從某一段落中找到一個子片段(span or sub-phrase)來回答對應問題,這一片段將會以在段落 中的首尾索引的形式表示,因此,模型需要通過獲取起始和結束位置的概率分布來找到對應的索引。
3.生成式任務: 由于答案的形式是自由的(free-form),可能在段落中能找到,也可能無法直接找到而需要模型生成,因此,模型的輸 出不是固定形式的,有可能依賴預測起止位置的概率(與抽取式相同),也有可能需要模型產生自由形式的答案。
【對 于自由作答任務,答案靈活度最高,不再限制于原文中,可能需要進行推理歸納,現有的方法常用抽取和生成相結合 的模式。】
4.會話類和多跳推理任務: 由于只是推理過程與抽取式不同,其輸出形式基本上與抽取式任務相同,有些數據集還會預測“是/否”、不可回答以 及“能否成為支持證據”的概率。 開放域的閱讀理解:由于模型首先需要根據給定問題,從例如 Wikipedia 上檢索多個 相關文檔(包含多個段落),再從中閱讀并給出答案。
機器閱讀理解的研究趨勢
1. 基于外部知識的機器閱讀理解 在人類閱讀理解過程中,當有些問題不能根據給定文本進行回答時,人們會利用常識或積累的背景知識進行作答,而 在機器閱讀理解任務中卻沒有很好的利用外部知識。
挑戰: (1) 相關外部知識的檢索 (2) 外部知識的融合
2. 帶有不能回答的問題的機器閱讀理解 機器閱讀理解任務有一個潛在的假設,即在給定文章中一定存在正確答案,但這與實際應用不符,有些問題機器可能 無法進行準確的回答。這就要求機器判斷問題僅根據給定文章能否進行作答,如若不能,將其標記為不能回答,并停 止作答;反之,則給出答案。
挑戰: (1) 不能回答的問題的判別 (2) 干擾答案的識別
3. 多文檔機器閱讀理解 在機器閱讀理解任務中,題目都是根據相應的文章進行設計的。而人們在進行問答時,通常先提出一個問題,再利用 相關的可用資源獲取回答問題所需的線索。不再僅僅給定一篇文章,而是要求機器根據多篇文章對問題進行作答。
挑戰: (1) 相關文檔的檢索 (2) 噪聲文檔的干擾 (3) 檢索得到的文檔中沒有答案 (4) 可能存在多個答案 (5) 需要對多條線索進行聚合
4. 對話式閱讀理解 當給定一篇文章時,提問者先提出一個問題,回答者給出答案,之后提問者再在回答的基礎上提出另一個相關的問 題,多輪問答對話可以看作是上述過程迭代進行多次。
挑戰: (1) 對話歷史信息的利用 (2) 指代消解?
----------------------------------------以上來自網上文獻------------------------------------------------------------------------但是大框架都是來自paper《Shanshan Liu et al. Neural Machine Reading Comprehension: Methods and Trends. Applied Sciences 2019》---------------------------------------------------------------‘
我自己再補充點把NLP任務當成MRC任務的paper例子:是從我ppt直接截圖吧。
一、NER->MRC
《A Unified MRC Framework for Named Entity Recognition》(2020)
?
二、RE->MRC
《Entity-relation extraction as multi-turn question answering》(2019)
?
?
?
?
?
總結
以上是生活随笔為你收集整理的阅读理解调研及NLP其它任务转化为MRC参考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lol查询服务器角色信息,游戏账号角色查
- 下一篇: SOSO地图JavaScript画出标注