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