包 玥,李艷玲,林 民
內(nèi)蒙古師范大學 計算機科學技術(shù)學院,呼和浩特010022
機器閱讀理解(Machine Reading Comprehension,MRC)是自然語言處理(Natural Language Processing,NLP)領(lǐng)域的熱門研究方向,利用機器對數(shù)據(jù)集中的文本內(nèi)容進行理解和分析,回答提出的問題,能夠最大程度地評估機器理解語言的能力。目前,MRC任務一般分為填空式、選擇式、抽取式、生成式和多跳推理式5類[1]。在過去的數(shù)十年中,涌現(xiàn)出許多在限定領(lǐng)域的MRC應用,例如智慧城市、智能客服、智能司法系統(tǒng)以及智能教育系統(tǒng)。
抽取式機器閱讀理解是MRC任務中重要的一類,其主要利用給定的文本內(nèi)容和相關(guān)問題,通過對文本內(nèi)容的分析和理解,給出正確的答案。該任務需要預測出答案的起止位置從而選出答案片段,通常也被稱為跨距預測或者片段預測[2]。抽取式MRC任務中的問題一般由人工提出,答案可能存在長度上的差距,同時存在問題無答案的可能,更加貼合現(xiàn)實生活中的應用場景。
近年來,隨著MRC受到越來越多的關(guān)注,針對MRC的總結(jié)性文章也隨之增加。Liu等人[2]于2019年發(fā)表了一篇關(guān)于神經(jīng)機器閱讀理解方法的綜述,其重點在于歸納基于深度學習的MRC方法,對于早期基于規(guī)則的方法與機器學習方法沒有介紹,且對于數(shù)據(jù)集的介紹比較簡單,沒有深入挖掘;同年,Zhang等人[3]發(fā)表了一篇有關(guān)MRC的綜述,其中較為客觀全面地介紹了MRC數(shù)據(jù)集以及一些經(jīng)典模型,但是對于MRC的未來發(fā)展方向沒有提出任何建議;Gupta等人[4]于2020年發(fā)表了一篇關(guān)于會話機器理解(Conversational Machine Comprehension,CMC)的綜述,其重點歸納了CMC的相關(guān)數(shù)據(jù)集與模型;Dzendzik等人[5]于2021年發(fā)表了一篇關(guān)于MRC英文數(shù)據(jù)集的綜述,該文詳細介紹了數(shù)據(jù)集的數(shù)據(jù)收集以及創(chuàng)建過程,并對各個數(shù)據(jù)集從多維度進行了分析對比,但對于MRC方法沒有進行介紹。目前還沒有一篇綜述文獻針對抽取式MRC進行系統(tǒng)全面的介紹,本文聚焦于抽取式MRC的常用數(shù)據(jù)集以及相關(guān)模型方法,對常用數(shù)據(jù)集進行了系統(tǒng)介紹與分析,對相關(guān)模型方法進行了分類總結(jié),希望本文對抽取式MRC在國內(nèi)的研究起到一定的推動作用。
對于MRC的研究有著悠久的歷史,近半個世紀以來,其發(fā)展經(jīng)歷了三個階段。
第一階段:自20世紀70年代起,人們開始利用基于規(guī)則的方法構(gòu)建早期MRC系統(tǒng),最具代表性的有Lehnert等人提出的QUALM系統(tǒng)[6]和Hirschman等人提出的DEEP READ系統(tǒng)[7]?;谝?guī)則的方法采用模式匹配的方式提取特征,且匹配時使用固定大小的窗口。受限于當時的數(shù)據(jù)集規(guī)模、文本編碼能力和計算機水平,MRC進步緩慢。
第二階段:2013至2015年間,隨著機器學習的發(fā)展,學者們開始使用機器學習相關(guān)方法解決MRC任務。Richardson等人提出了MCTest數(shù)據(jù)集[8],該數(shù)據(jù)集通過眾包方法構(gòu)建,其優(yōu)點是可以保證問題的多樣性,且問題和答案更接近人類真實問答。該數(shù)據(jù)集的出現(xiàn)直接推動了基于機器學習的MRC模型的發(fā)展,這些模型大多是基于最大間隔(Max-Margin)[9],通過加入豐富的語義特征集(句法依存、共指消解、語義框架、詞嵌入等),實現(xiàn)對“文本-問題-答案”三元組的擬合。對于特征的提取主要依賴于依存解析器、語義角色標注等技術(shù),這些NLP技術(shù)是由單一領(lǐng)域數(shù)據(jù)訓練所得,應用于MCTest數(shù)據(jù)集會引起噪聲。而且該數(shù)據(jù)集規(guī)模太小,不足以訓練良好的機器學習模型。
第三階段:2015年以來,隨著深度學習的再次興起,MRC也獲得了巨大的發(fā)展,大規(guī)模MRC數(shù)據(jù)集應運而生,如CNN/Daily Mail[10]、SQuAD1.1[11]等。研究者們開始利用神經(jīng)網(wǎng)絡搭建MRC模型,相比于傳統(tǒng)的基于規(guī)則的分類器,基于深度學習的MRC模型能夠更好地識別詞匯匹配和釋義,提取更深層次的語義特征。但是基于深度學習的MRC模型仍然存在一些缺陷,如:傳統(tǒng)的詞向量無法解決一詞多義問題,注意力模塊的網(wǎng)絡結(jié)構(gòu)復雜,難以處理較長的文本等[12],因此預訓練語言模型應運而生。預訓練語言模型通過在大量文本上進行半監(jiān)督訓練以捕獲句子間深層次的語義關(guān)系,從而提升模型性能,其中最具代表性的BERT(Bidirectional Encoder Representation from Transformers)模型[13],一經(jīng)問世就刷新了NLP領(lǐng)域11項記錄。預訓練語言模型在一些數(shù)據(jù)集上的表現(xiàn)甚至超越了人類,其能力被越來越多的學者認可,對于該領(lǐng)域的研究呈現(xiàn)出加速增長的態(tài)勢。
現(xiàn)有MRC任務一般可以概括為5類:填空式MRC、選擇式MRC、抽取式MRC、生成式MRC和多跳推理MRC。
填空式MRC任務需要推測出段落中缺失的詞語,該任務存在答案內(nèi)容簡短、與現(xiàn)實生活距離較遠等特點,其數(shù)據(jù)集出現(xiàn)較早,且依賴于人工標注,存在一定的局限性。選擇式MRC任務主要從多個候選答案中為問題選擇正確答案,該任務存在答案局限、單一等特點。抽取式MRC的答案可能是一個字詞、一段話或者無答案,其更加符合人類日常需求。
抽取式MRC任務是近年來學者們研究頻率最高的MRC任務,其面臨的困難也較其他任務更大。
(1)搜索空間廣:需要從給定的大量文本中尋找答案。
(2)迷惑性大:給定段落中可能存在一些“似是而非”的答案,如何從具有迷惑性答案的段落中找出正確答案是該研究的難點。
(3)存在無答案問題:一般情況下,所提出的問題均存在對應的答案,但在一些有難度的數(shù)據(jù)集中,存在問題無對應答案的情況。如何正確理解段落內(nèi)容,并對問題的可答性作出正確判斷也是該研究的重點。
抽取式MRC任務因其更加實用而被學者廣泛研究,其更能檢驗模型的理解能力。表1給出了中文抽取式數(shù)據(jù)集CMRC2018[14]的一個示例。
給定段落中,具有許多迷惑性答案,如:廣茂鐵路加兩條支線全長421.326公里,廣三鐵路全長49公里,三茂鐵路全長357公里。這種情況要求機器理解更深層次的文本語義,從而找到正確答案,而不只是進行簡單的文本匹配。
通常情況下,假設抽取式MRC給定三元組數(shù)據(jù)(C,Q,A),其中,C即Context,表示數(shù)據(jù)集中的文本;Q即Question,表示數(shù)據(jù)集中的問題;A即Answer,表示該問題在文本中的答案。通過數(shù)據(jù)的表示學習,模型能夠擬合輸入與輸出的關(guān)系f,其表示通常如式(1)所示[9]:
表1 CMRC2018示例
式(1)中的A通常表示為(astart,aend),起始位置astart和結(jié)束位置aend之間的部分即為所要預測的最終答案。
抽取式MRC數(shù)據(jù)集具有問題復雜、答案自由、涉及領(lǐng)域多樣等特點。隨著研究者們對抽取式MRC研究與探索的不斷深入,越來越多的抽取式MRC數(shù)據(jù)集應運而生。目前,抽取式MRC數(shù)據(jù)集主要包括SQuAD1.1[11]、NewsQA[15]、TriviaQA[16]、SearchQA[17]、SQuAD2.0[18]、CMRC2018[14]等。
2.2.1 SQuAD1.1
2016年,Rajpurkar等人提出第一個真正意義上的大規(guī)模抽取式MRC數(shù)據(jù)集SQuAD1.1(Stanford Question Answering Dataset 1.1)[11]。該數(shù)據(jù)集的形式為“問題-文本-答案”三元組,其答案是文章中的某個片段,解決了現(xiàn)有數(shù)據(jù)集的兩大不足:第一,現(xiàn)有數(shù)據(jù)集規(guī)模太小;第二,足夠大的數(shù)據(jù)集往往是機器生成的,其內(nèi)容與人類語言習慣不符,無法直接測試機器的閱讀理解能力。SQuAD1.1的發(fā)布直接推動了當時抽取式MRC的發(fā)展,具有里程碑式的意義。
2.2.2 NewsQA
Trischler等人認為MRC系統(tǒng)特別適合大量、快速變化的信息源,如新聞,所以他們構(gòu)造出一個全新且具有挑戰(zhàn)性的、需要進行推理才能得到答案的大型抽取式MRC數(shù)據(jù)集:NewsQA[15]。該數(shù)據(jù)集通過眾包方法構(gòu)建,眾包方法保證了提出問題的多樣性。工作者從上萬篇CNN新聞文章中提取出十萬多個自然語言問題,相比于SQuAD1.1,該數(shù)據(jù)集包含無答案問題,難度相對較高。
2.2.3 TriviaQA
TriviaQA數(shù)據(jù)集[16]包含超過65萬個“問題-答案-證據(jù)”三元組、95 000個問答對和獨立收集的證據(jù)文檔(平均每個問題有6個),證據(jù)文檔收集于Wikipedia和Web,為答案預測提供高質(zhì)量的遠程監(jiān)督。與眾包方法相比,這種遠程監(jiān)督的構(gòu)造方法不需要大量的人力資源,造價成本低。相比于當時其他大型數(shù)據(jù)集,TriviaQA問題構(gòu)成較為復雜,其丟棄了假設條件,更接近于人類問答,需要更多的跨句推理預測答案,具有一定的挑戰(zhàn)性。隨著深度神經(jīng)網(wǎng)絡的發(fā)展,越來越多的研究人員開始關(guān)注TriviaQA這類復雜數(shù)據(jù)集。
2.2.4 SearchQA
SearchQA與TriviaQA構(gòu)造方法類似,Dunn等人也采用了遠程監(jiān)督方法構(gòu)造SearchQA數(shù)據(jù)集[17]。該數(shù)據(jù)集由超過14萬個“問題-答案”二元組組成,每對二元組平均有49.6個片段。與之前的大多數(shù)數(shù)據(jù)集不同,SearchQA通過世界上最大的搜索引擎獲取嘈雜、真實的上下文,構(gòu)造“問題-答案”二元組,其更加貼近人類生活,實用性更強。
2.2.5 SQuAD2.0
SQuAD1.1數(shù)據(jù)集只關(guān)注可回答問題,且現(xiàn)有模型對于無答案問題的識別研究關(guān)注較少。為了彌補這些不足,Rajpurkar等人[18]又提出了SQuAD2.0數(shù)據(jù)集,在SQuAD1.1的基礎(chǔ)上加入了53 775個“無答案問題”,該數(shù)據(jù)集更具挑戰(zhàn)性,在SQuAD1.1上性能最好的模型在SQuAD2.0上的F1值由85.8%變?yōu)?6.3%。難度的增加使模型在該數(shù)據(jù)集上的準確率明顯下降,該數(shù)據(jù)集也成為學者們的研究熱點。
2.2.6 CMRC2018
現(xiàn)有閱讀理解數(shù)據(jù)集大多是英文的,中文數(shù)據(jù)集屈指可數(shù)。目前,基于中文的數(shù)據(jù)集包括填空式數(shù)據(jù)集PeopleDaily/CFT[19]、生成式數(shù)據(jù)集DuReader[20],以及抽取式數(shù)據(jù)集CMRC2018[14]等。
為彌補抽取式MRC數(shù)據(jù)集在中文領(lǐng)域的空白,Cui等人提出CMRC2018數(shù)據(jù)集[14]。該數(shù)據(jù)集由近萬個真實問題組成,并新增了挑戰(zhàn)集(Challenge Set),以模擬更加復雜的真實環(huán)境。由于挑戰(zhàn)集中的問題需要機器具備一定的知識推理能力,目前還沒有特定的模型能夠獲得較好的效果。該數(shù)據(jù)集僅包含有答案問題且規(guī)模較小。
各數(shù)據(jù)集基本信息如表2所示。對于抽取式MRC的研究是從SQuAD1.1數(shù)據(jù)集的發(fā)布開始興起,目前數(shù)據(jù)集的構(gòu)造方式大致可以概括為眾包方法和遠程監(jiān)督方法兩種。眾包方法可以保證問題和答案的質(zhì)量,但是需要耗費大量人力物力;遠程監(jiān)督方法無需人工標注,節(jié)約成本,但是數(shù)據(jù)集質(zhì)量無法得到保障。抽取式任務的評估指標主流的有EM(Exact Match)值和F1值兩種。目前中文領(lǐng)域以及針對專業(yè)領(lǐng)域的數(shù)據(jù)集較少,有待研究者們的開發(fā)。從表2中可以看出,NewsQA、TriviaQA、SearchQA的人類表現(xiàn)與當前最優(yōu)(State Of The Art,SOTA)值都比較低,說明這些數(shù)據(jù)集難度較大,其通過減少單詞匹配類型、增加綜合類型答案提高數(shù)據(jù)集挑戰(zhàn)性,從而帶動模型的發(fā)展。CMRC2018挑戰(zhàn)集通過加入推理答案和設置迷惑性答案加大了數(shù)據(jù)集難度,模型在其上的表現(xiàn)較差,但是人類表現(xiàn)卻取得了不錯的成績。這表明,目前的MRC模型不能處理需要在幾個線索之間進行綜合推理的難題,機器依然無法做到像人類去閱讀、無法真正做到理解文本語義,對于MRC模型的研究仍然“任重而道遠”。
表2 數(shù)據(jù)集基本信息
對于抽取式MRC任務,需要模型對預測所得答案和真實答案進行對比。通常使用EM值和F1值對模型性能進行評價[11]。EM指的是模型的輸出答案與真實答案完全一致的百分比。F1值指的是模型的輸出答案與真實答案的覆蓋率,通過準確率和召回率計算。評價指標計算公式如下:
(1)EM值
其中,Nreal代表模型所預測答案與真實答案完全匹配的個數(shù),Nall代表真實答案的總個數(shù)。
(2)F1值
其中,Noverlap表示預測正確的單詞/字符數(shù)目,即預測答案與真實答案之間的詞匯重疊度;Nallanswer表示所預測答案的所有單詞/字符數(shù)目;Ntruthanswer表示真實答案的所有單詞/字符數(shù)目。
傳統(tǒng)的基于機器學習的MRC模型采用模式匹配的方法進行特征提取,性能提升受限。隨著深度學習的發(fā)展,基于神經(jīng)網(wǎng)絡的MRC模型得以迅速發(fā)展。循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)[21]、卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)[22]、長短時記憶網(wǎng)絡(Long Short-Term Memory,LSTM)[23]、門控循環(huán)單元(Gated Recurrent Unit,GRU)[24]和注意力機制(Attention Mechanism)[25]的出現(xiàn)大大推動了MRC的發(fā)展,它們能夠提取深層次的文章語義、語序特征信息以及長距離上下文語義信息,對于提取文本中所包含的特征信息具有一定的優(yōu)勢。
目前,大多數(shù)抽取式MRC模型的網(wǎng)絡架構(gòu)由嵌入層、編碼層、信息交互層和答案預測層組成[26]。嵌入層將文本和問題映射成包含相關(guān)文本信息的向量表示,便于計算機理解;編碼層通常利用神經(jīng)網(wǎng)絡對文本和問題編碼,得到上下文語義信息;信息交互層將文本和問題的編碼信息進行融合匹配,最終得到混合兩者語義的交互向量,信息交互層是整個模型中最重要的一層;答案預測層根據(jù)語義交互向量抽取出答案邊界,得到最終預測答案[26]。抽取式MRC模型的網(wǎng)絡架構(gòu)如圖1所示[2]。
圖1 抽取式MRC模型的網(wǎng)絡架構(gòu)圖
目前研究人員對于模型的研究主要針對上述4層進行改進,根據(jù)方法可以將抽取式MRC模型分為:基于注意力機制的MRC模型、基于遷移學習的MRC模型、加入推理機制的MRC模型以及結(jié)合外部知識的MRC模型4類。
注意力機制最早應用于計算機視覺(Computer Vision,CV)領(lǐng)域,Mnih等人[25]首次將注意力機制應用于RNN模型進行圖像分類,該方法在圖像分類任務中取得了顯著成效。隨后,Bahdanau等人[27]將注意力機制應用于神經(jīng)機器翻譯(Neural Machine Translation,NMT)任務,使翻譯和對齊同時進行,顯著提升了翻譯的準確率,這是第一個將注意力機制應用于NLP領(lǐng)域中的工作。2017年,Vaswani等人提出了自注意力機制[28],用于學習文本表示。自此,各種基于注意力機制的衍生變體相繼出現(xiàn),注意力機制被廣泛應用于各種NLP任務當中。
注意力機制在MRC模型中應用的基本思想是讀取文本時重點關(guān)注文本與問題的相關(guān)部分,降低無關(guān)內(nèi)容的權(quán)重。近年來基于注意力機制的抽取式MRC模型發(fā)展較快,隨之其面臨的挑戰(zhàn)也越來越大。
Seo等人[29]針對現(xiàn)有應用注意力機制的MRC模型存在的兩個問題:第一,只是應用于文本中的部分內(nèi)容,第二,只是單向的應用,無法充分融合利用上下文與問題之間的關(guān)聯(lián)信息,提出了雙向注意力流(Bi-Directional Attention Flow,BiDAF)網(wǎng)絡。該網(wǎng)絡在句子的不同粒度上對上下文和查詢進行編碼,以獲得不同粒度的信息表示。模型結(jié)構(gòu)如圖2所示[29]。
字嵌入層和詞嵌入層負責將每個字、詞映射到高維向量空間,{x1,x2,…,x T}和{q1,q2,…,q J}分別表示輸入上下文段落和查詢中的字詞;上下文嵌入層使用LSTM建模詞間交互信息;注意力流層將查詢與上下文信息連接、融合,獲得從上下文到查詢(Context-To-Query,C2Q)以及從查詢到上下文(Query-To-Context,Q2C)的注意力權(quán)重,權(quán)重的計算都是由共享相似矩陣S∈RT×J導出的,相似矩陣計算公式如式(6)所示[29]:
其中,S tj表示第t個上下文詞和第j個查詢詞之間的相似度;α為對兩個輸入向量之間的相似性進行編碼的可訓練標量函數(shù);H:t表示上下文H的第t列向量;U:j表示查詢U的第j列向量。
設a t∈RJ表示第t個上下文詞對查詢詞的注意力權(quán)重,對于所有t,權(quán)重和為1。注意力權(quán)重由a t=softmax(S t:)∈RJ計算,查詢向量表示為U?:t=ΣJ a tj U:J,U?為一個包含整個上下文注意力查詢向量的二維矩陣。通過b=softmax(maxcol(S))∈RT獲得上下文詞上的注意力權(quán)重,其中最大函數(shù)(maxcol)跨列執(zhí)行,上下文注意力向量為h?=Σt b t H:t∈R2d,表示與查詢相關(guān)的上下文中最重要詞的加權(quán)和。h?跨列平鋪T次,得到H?∈R2d×T。
最后,將上下文嵌入和注意力向量組合在一起以產(chǎn)生G,其中每個列向量可以被認為是每個上下文詞的查詢感知表示。定義公式如下[29]:
其中G:t為第t列向量,β為融合輸入向量的可訓練向量函數(shù),d G是β函數(shù)的輸出維度。
建模層的輸入為G,它對上下文詞的查詢感知表示進行編碼。建模層的輸出捕獲了以查詢?yōu)闂l件的上下文詞之間的交互。建模層使用雙層BiLSTM,每個方向的輸出大小為d,得到矩陣M∈R2d×T,該矩陣被傳遞到輸出層,用來預測答案。
開始索引和結(jié)束索引在文本中每個詞上的概率分布計算公式如下所示[29]:
圖2 BiDAF模型結(jié)構(gòu)圖
其中w(p1)∈R10d為可訓練的權(quán)重向量。
損失函數(shù)計算公式如下[29]:
其中,θ為模型中所有可訓練權(quán)重的集合,N為數(shù)據(jù)集中的樣本數(shù)目,yi1和yi2分別為第i個樣本的開始索引和結(jié)束索引,p k表示向量p的第k個值。
BiDAF模型在SQuAD1.1數(shù)據(jù)集上達到了73.3%的EM值和81.1%的F1值,優(yōu)于之前所有方法。
BiDAF模型是MRC發(fā)展史上十分重要的模型,后續(xù)許多學者在此基礎(chǔ)上研究MRC問題。萬靜等人認為BiDAF對多段落信息間相關(guān)性考慮不充分,提出了PRBiDAF(Passage Rank-BiDAF)模型[30]。PR-BiDAF對文本與問題的關(guān)聯(lián)匹配度進行排序以選取最有可能存在答案的段落,該模型在MRC問題中取得了較好的效果。
Wang等人[31]首次將自注意力機制應用于MRC模型,提出了門控自匹配網(wǎng)絡R-Net。利用基于門控注意力的遞歸網(wǎng)絡生成問題感知的段落表示,能夠精確定位文本的重要部分,但是這種表示方式常常會忽略窗口外的有用信息,對上下文的表示非常有限。為解決該問題,R-Net直接將問題感知的段落表示與其本身進行自匹配,動態(tài)地從整篇文章中收集段落中的單詞證據(jù),并將其與當前段落單詞的相關(guān)證據(jù)及其匹配的問題信息編碼到段落表示ht P[31]:
其中,是整個段落(v P)的集中注意力向量[31]:
在MRC模型中加入自注意力機制這一做法獲得了極大成功,后續(xù)許多學者的研究都借鑒了這種方法,并取得了不錯的效果。Tay等人[32]將自注意力機制應用于雙向注意連接器(Bidirectional Attention Connectors,BAC),BAC能夠建立整個網(wǎng)絡的鏈接,有助于信息的流動。其中,自注意力機制將與問題相關(guān)段落中的每個單詞與所有其他單詞進行建模,從而使每個單詞都可以從全局上下文中建立聯(lián)系。該方法在NewsQA數(shù)據(jù)集上達到了53.1%的EM值和66.3%的F1值,是當時性能最好的模型。姚瀾[33]在BiDAF的基礎(chǔ)上加入自注意力機制,提出了self-BiDAF,解決了現(xiàn)有模型文本編碼能力不足這一問題。自注意力機制可以增強模型對文本編碼的能力,使得模型能夠更準確地表達文本。李童俊[34]針對BiDAF模型訓練的文本內(nèi)部語義信息易丟失問題,提出了BiDAF+模型。BiDAF+利用自注意力機制實現(xiàn)對文本語義信息的更深層次建模,并彌補了使用LSTM所導致的出現(xiàn)遺忘語義信息的缺點。BiDAF+能夠更加有效地融合和提取全局信息,提升模型的計算效率。該模型訓練效果較好,在SQuAD1.1數(shù)據(jù)集上訓練的F1值比BiDAF提升了6.47%,訓練時間也大幅度減少。
層次注意力機制與基于注意力機制的RNN模型在MRC中同樣取得了不錯的成績。Wang等人提出了多粒度層次注意力融合網(wǎng)絡模型SLQA+[35],首先用細粒度的詞嵌入對問題和文本進行編碼,以更好地捕捉語義級別的相應表示;然后提出一種多粒度融合方法,以完全融合來自全局和局部的表示信息;最后,引入層次注意力網(wǎng)絡逐步找到正確答案。層次注意力網(wǎng)絡由具有淺層語義融合的協(xié)同注意力層和具有深層語義融合的自注意力層組成,協(xié)同注意力層可以粗略地找到潛在的答案域,自注意力層可以進一步定位該域中有可能成為答案的部分。該模型通過計算不同粒度水平和垂直分層上的“文本-問題”注意力,更好地捕捉文本中的特征,在TriviaQA Wikipedia上達到了66.6%的EM值和71.4%的F1值。熊宗楊[36]提出了基于層次注意力機制的機器閱讀理解模型HANet。HANet將自注意力、協(xié)同注意力以及雙向注意力流三種注意力機制分別應用于三個網(wǎng)絡層中。利用自注意力機制獲取文本和問題各自內(nèi)部序列之間的長距離依賴關(guān)系;利用協(xié)同注意力機制捕獲文本和問題之間的共現(xiàn)關(guān)系;利用雙向注意力流對文本和問題進行深層次的理解。通過三個網(wǎng)絡層獲得不同的粒度級別上的“文本-問題”注意力權(quán)重,逐步細化,最終定位到正確答案。該模型在數(shù)據(jù)集SQuAD1.1上達到了79.4%的F1值,優(yōu)于傳統(tǒng)的Match-LSTM模型與RNet模型。
基于預訓練模型的研究方法屬于遷移學習的一種,目前NLP領(lǐng)域基本采用預訓練加微調(diào)的模式。預訓練指預先訓練模型的過程,微調(diào)指將已預訓練好的模型作用于自己的數(shù)據(jù)集,并使參數(shù)適應自己數(shù)據(jù)集的過程,不是從零開始學習,可以把它看作是“站在巨人的肩膀上”。
通過在大規(guī)模文本數(shù)據(jù)上以無監(jiān)督的方式預訓練文本中的語言知識、信息,并將其應用于下游相關(guān)任務,如:文本分類、MRC等相關(guān)任務。
3.2.1 傳統(tǒng)的預訓練語言模型
預訓練語言模型可以分為兩類,分別是自回歸語言模型,如ELMO(Embedding from Language Model)[37]、GPT(Generative Pre-Training)[38];和自編碼語言模型,如BERT[13]。下面將詳細介紹這兩類模型以及它們之間的關(guān)系。
自回歸語言模型訓練方向自左向右,導致其在語言生成任務中具有先天優(yōu)勢,同時也導致其不能同時利用上下文信息,對文本的表示能力較弱。Peters等人[37]針對word2vec不能利用上下文信息解決一詞多義的問題,提出一種獨立方向的BiLSTM語言模型,其使用兩個獨立模型分別獲取上下文信息,并利用簡單的向量拼接方式將兩個模型關(guān)聯(lián)起來,在一定程度上解決了word2vec的問題。但是,其在本質(zhì)上仍然是單向自回歸語言模型,存在上下文信息特征提取不充分,訓練時間長等缺點。Radford等人[38]針對上述問題,提出了GPT模型。該模型采用Transformer架構(gòu),在無監(jiān)督條件下進行訓練,利用Transformer中的Decoder模塊捕捉更長范圍的信息,其效果優(yōu)于RNN。且由于Transformer是并行運算,可以在訓練過程中提升模型的訓練速度。
自編碼語言模型在訓練過程中將文本數(shù)據(jù)中的某個詞隨機遮蔽,并根據(jù)上下文信息預測被遮蔽的詞。自編碼語言模型的訓練過程需要利用上下文建模語境信息,并預測遮蔽詞,文本表示能力大大加強,更能夠表示文本的有效信息以及上下文信息。
Devlin等人[13]提出了BERT。BERT是一種利用雙向語言模型(Transformer中的Encoder模塊)獲取詞向量表示,利用大規(guī)模未標記訓練數(shù)據(jù)生成豐富上下文表示的自編碼語言模型。為了更好地將當前詞和上下文信息融合在一起,BERT模型通過遮蔽語言方法(Masked Language Model,MLM)和下一句預測(Next Sentence Prediction,NSP)兩個任務分別捕獲詞級和句子級表示。通過MLM任務用無監(jiān)督學習的方式預測當前詞,能夠有效地利用上下文信息;使用NSP任務預測兩個句子是否為上下句的關(guān)系,Transformer可以捕獲到輸入語句的全部特征。
針對自回歸語言模型與自編碼語言模型各自的優(yōu)劣,Yang等人[39]提出一種泛化自回歸方法XLNet。XLNet不使用傳統(tǒng)自回歸語言模型中固定的前向或后向因式分解順序,而是將序列進行因式分解,得到所有可能的排列方式,最大化所有可能排列順序的期望對數(shù)似然,由于對因式分解順序的排列操作,每個位置的語境都包含來自上下文的信息,因此,每個位置都能學習來自所有位置的語境信息,即捕捉雙向語境。作為一個泛化自回歸語言模型,XLNet不依賴殘缺數(shù)據(jù),因此,XLNet不存在BERT的“預訓練-微調(diào)”差異問題。
假設有一組包含n個詞的序列文本數(shù)據(jù)m=[x1,x2,…,x n],存在n!種詞排列順序。在訓練過程中,利用自回歸語言模型以及輸入不同排列順序的句子預測詞的概率;加入位置信息,通過雙向流自注意力機制,實現(xiàn)單個詞的上下文信息表示。
傳統(tǒng)的注意力機制將位置等信息全部編碼,而自回歸語言模型無法獲得當前預測詞的位置編碼。通過將位置編碼拆分提出雙向流自注意力機制,即內(nèi)容流自注意力機制與查詢流自注意力機制,其示意圖如圖3所示[39]。
圖3 內(nèi)容流自注意力機制與查詢流自注意力機制
內(nèi)容流:傳統(tǒng)自注意力機制,對當前詞鏡像編碼[39]:
查詢流:只看到當前位置編碼,無法獲得詞編碼[39]:
其中,Q、K、V表示查詢(query)、鍵(key)和值(value)。XLNet在訓練階段引入Transformer-XL中的分割循環(huán)機制和相對編碼范式,從而提升模型的長距離依賴捕獲能力。
XLNet模型訓練過程如圖4所示[39],將內(nèi)容隱狀態(tài)h和查詢隱狀態(tài)g分別初始化為詞嵌入e(x i)和變量w,通過掩蔽雙向流自注意力機制計算每一層輸出h(i)和g(i)。在訓練過程中將上一片段的結(jié)果引入下一片段中:
其中,τ表示上一個片段,τ+1表示下一個片段,將τ緩存,并將其直接和τ+1進行拼接,這里SG表示Stop-Gradient。引入上一片段的隱層表示僅用于key和value,query僅代表查詢詞,而key,value代表查詢詞的相關(guān)表示信息,因此只需在key,value中引入上一片段信息即可。
XLNet模型結(jié)構(gòu)龐大且復雜,但是其在長文本閱讀理解任務上效果提升明顯。目前,預訓練模型在抽取式MRC任務中獲得了大幅的性能提升,實驗表明預訓練模型可以顯著增加目標任務的預測準確度,同時縮短模型的訓練時間,預訓練語言模型有很大的發(fā)展空間。
圖4 XLNet模型框架圖
3.2.2 其他擴展模型
BERT是一個強大的自編碼語言模型,其一經(jīng)提出,就刷新了NLP領(lǐng)域的11個任務的當前最優(yōu)結(jié)果,后續(xù)許多學者在其基礎(chǔ)上進行改進。Liu等人[40]在BERT的基礎(chǔ)上做了精細化調(diào)參,改變其預訓練的方法,提出了RoBERTa模型。相比于原始的BERT模型,RoBERTa使用了更大的Batch-Size和更大規(guī)模的訓練數(shù)據(jù)(160 GB),因此也需要更長的訓練時間。RoBERTa去掉了下一句預測任務,并在遮蔽語言方法中使用動態(tài)掩碼以代替靜態(tài)掩碼。RoBERTa在各類任務中的表現(xiàn)均超越了BERT模型。
在中文領(lǐng)域,Cui等人[41]對RoBERTa模型進行了改進,得到了MacBERT。MacBERT使用同義詞,而不是[MASK]作為掩蓋詞,這樣能夠減緩預訓練和微調(diào)階段的差異,從而提高下游任務的表現(xiàn)。MacBERT在中文MRC數(shù)據(jù)集上表現(xiàn)優(yōu)異,在CMRC2018挑戰(zhàn)集中達到了60.2%的F1值。接著,Cui等人[42]提出了基于全詞遮掩(Whole Word Masking)技術(shù)的中文預訓練模型BERTwwm,原BERT模型是用[MASK]標記替換一個字,而在BERT-wwm中,如果該字被掩蓋,則同屬該詞的其他字也會被掩蓋。預訓練過程中,模型能夠?qū)W習到詞的語義信息,訓練完成后字嵌入就具有了詞的語義信息,有利于各類中文NLP任務。在CMRC2018數(shù)據(jù)集上的實驗結(jié)果表明,BERT-wwm性能優(yōu)于BERT。賈欣針對BERT模型對不同語義層捕獲能力不足的問題,提出了基于遷移學習的BERT-wwm-MLFA模型[43]。BERTwwm-MLFA將單向注意力機制和雙向注意力機制融合構(gòu)成全注意力模塊,全注意力機制可以在各個層面更好地對“問題-文檔”進行編碼與交互。在BERT-wwm預訓練模型的基礎(chǔ)上加入多層全注意力機制,并將其遷移到數(shù)據(jù)集上重新進行訓練,實驗表明該模型性能高于基準BERT模型。Cui等人[44]提出了跨語言MRC模型Dual BERT,用于解決在中文領(lǐng)域由于缺乏大規(guī)模訓練數(shù)據(jù)而導致的模型稀缺問題。Dual BERT將中文的(數(shù)據(jù)資源匱乏的目標語言)“文本-問題”對翻譯為英文(數(shù)據(jù)資源豐富的源語言),并使用英文領(lǐng)域性能較好的MRC模型生成答案,最后將生成的答案翻譯回中文。該模型在CMRC 2018數(shù)據(jù)集上達到了90.2%的F1值,取得了當時的最好成績。
人類在做閱讀理解時,需要對文章內(nèi)容進行推理,通過推理判斷,人類能夠更加準確地理解文章內(nèi)容,正確回答相關(guān)問題。機器也是如此,利用推理機制對MRC模型進行文章內(nèi)容的理解,使得機器更加準確地回答相關(guān)問題。目前,相對困難的問題由于其答案分布在不同位置,尋找問題的答案需要在文章的幾個線索中進行綜合推理。利用傳統(tǒng)模型解決此類問題準確率較低,通過加入推理機制對文章內(nèi)容進行推理分析,能夠更加準確地把握文章內(nèi)容,提升答案的準確性。
2015年,Sukhbaatar等人[45]提出記憶網(wǎng)絡模型,該模型是一種基于循環(huán)注意力機制的神經(jīng)網(wǎng)絡模型,是最早引入推理機制的模型,對后續(xù)其他推理模型產(chǎn)生了重要影響。其推理過程如下:根據(jù)原始問題表達與原始文本表達,利用f函數(shù)計算文本中詞的注意力權(quán)重;利用g函數(shù)與原始文本表達以及注意力信息計算新文本表達;利用t函數(shù),根據(jù)新文本表達以及原始文本表達推理出問題和文本最終的新表達。這樣就通過隱式的內(nèi)部更新文本表達和顯示的更新問題表達實現(xiàn)了一次推理過程,后續(xù)每層網(wǎng)絡推理過程就是多次重復這個過程。通過多層網(wǎng)絡計算完成整個推理過程,記憶網(wǎng)絡推理過程如圖5所示。
單層推理過程如圖6所示[45],推理過程如下:將給定輸入集合x1,x2,…,x i存儲于存儲器中,使用大小為d×V的嵌入矩陣A將每個x i均嵌入到連續(xù)空間中,將整個集合{x i}轉(zhuǎn)換為維度d的存儲向量{mi}。同樣,查詢Q也被嵌入以獲得內(nèi)部狀態(tài)u。在嵌入空間中,取內(nèi)積后,利用softmax函數(shù)計算u和每個存儲器m i之間的權(quán)重[45]:
圖5 記憶網(wǎng)絡推理過程圖
圖6 單層推理過程圖
c i為輸入x i的對應輸出向量,存儲器的輸出向量ο計算公式如下[45]:
計算輸出向量ο和輸入嵌入u的和,通過大小為V×d的最終權(quán)重矩陣W和softmax函數(shù)生成預測標簽[45]:
AMRNN模型(Attention-based Multi-hop Recurrent Neural Network)[46]的推理過程受記憶網(wǎng)絡影響,其基本架構(gòu)與記憶網(wǎng)絡相同,唯一的區(qū)別是:記憶網(wǎng)絡在擬合文本或問題表示時通過詞嵌入方式簡單疊加,而AMRNN則是采用雙向門控遞歸單元(Gated Recurrent Unit,GRU)網(wǎng)絡從輸入問題和文本中順序取詞,將前向GRU網(wǎng)絡的隱含層輸出和后向GRU網(wǎng)絡的隱含層輸出連接起來,形成問題和文本的向量表示。
Shen等人模仿人類推理過程,提出推理網(wǎng)絡ReasoNet[47]。人類在做閱讀推理時,會反復閱讀文本,并且每次將注意力集中在文本的不同部分,直到找到答案,ReasoNet的推理過程也是如此。此外,不同于以往模型中使用固定的迭代次數(shù),ReasoNet引入了終止狀態(tài),終止狀態(tài)可以決定ReasoNet是在消化中間結(jié)果后繼續(xù)還是終止推理過程。ReasoNet在抽取式MRC數(shù)據(jù)集SQuAD1.1上取得了卓越的成績。
張禹堯等人結(jié)合多跳結(jié)構(gòu)和注意力機制,提出了基于多重聯(lián)結(jié)機制的注意力模型MCA-Reader[48]。在最后一次編碼時將多輪迭代的全部中間計算結(jié)果聯(lián)結(jié),考慮到了所有的注意力權(quán)重,得到更多更全面的特征信息,從而提升模型性能。
在人類閱讀理解的過程中,當問題不能僅僅通過上下文得到答案時,人類還會運用常識知識。能否運用外部知識(External Knowledge)是MRC與人類閱讀理解之間產(chǎn)生巨大差距的直接原因。近年來,隨著知識圖譜(Knowledge Graph)等概念的出現(xiàn),將外部知識引入MRC模型成為學者們的研究熱點,形成了基于外部知識庫的機器閱讀理解(Knowledge-Based Machine Reading Comprehension,KBMRC)。KBMRC與MRC的主要區(qū)別在于輸入,MRC的輸入是文本和問題序列,而KBMRC的輸入除此之外還有從知識庫中提取出的額外相關(guān)知識[2]。
Chen等人認為,現(xiàn)有模型雖然獲得了很高的準確率,但是它們只關(guān)注文本表層信息,在深層語義挖掘上還有待提高,所以提出更有效的模型DrQA[49]。DrQA主要面向開放域閱讀理解,首先從維基百科中檢索出問題相關(guān)段落,然后從段落中找到對應答案,利用Wikipedia作為知識源,在數(shù)據(jù)集上進行訓練。DrQA在SQuAD1.1上的F1值比BiDAF提升了1.7%。姜文超等人[50]針對現(xiàn)有模型缺乏外部基本常識支撐這一問題,提出了結(jié)合外部知識的動態(tài)多層次語義抽取網(wǎng)絡模型。引入外部先驗知識層,縮小指針網(wǎng)絡定位答案范圍,從而對候選答案進行精準排序,從而提升模型的語義匹配度和答案提取精度。Yang等人[51]在BERT模型的基礎(chǔ)上融入了外部知識庫(Knowledge Base system,KBs),提出了KT-NET模型。KT-NET引入了一種基于注意力機制的知識網(wǎng)絡,該網(wǎng)絡利用注意力機制自適應地從知識庫中選擇所需知識,然后將所選知識與BERT融合,實現(xiàn)了基于上下文和知識的預測。該模型在SQuAD1.1數(shù)據(jù)集上取得了85.94%的EM值和92.43%的F1值。
Wang等人探索了如何將MRC神經(jīng)網(wǎng)絡模型與常識相結(jié)合,并基于常識數(shù)據(jù)的擴展,實現(xiàn)了一個端到端的知識輔助閱讀器(Knowledge Aided Reader,KAR)[52]。如圖7所示,KAR是由五層架構(gòu)組成的端到端MRC模型[52]。
詞嵌入層使用GloVe分別預訓練文本和問題詞向量,并將其送入全連接層,得到文本詞嵌入L P∈Rd×n和問題詞嵌入L Q∈Rd×m,其中n表示文本數(shù),m表示問題數(shù),d表示輸出維度數(shù)。上下文嵌入層將詞嵌入映射到參數(shù)共享的BiLSTM中,通過將前向LSTM輸出和后向LSTM輸出連接起來,得到文本上下文嵌入C P∈Rd×n和問題上下文嵌入C Q∈Rd×m。粗略內(nèi)存層使用知識輔助的互注意力機制將C Q融合到C P中,輸出表示為G?∈Rd×n,使用BiLSTM對G?的表征進行編碼得到粗略記憶G∈Rd×n。精細內(nèi)存層使用知識輔助的自注意力機制將G進行信息聚合,使用BiLSTM進行編碼,得到文本的新表征將H∈Rd×n??缇啻鸢割A測層經(jīng)上述層操作得到的信息送入全連接層,得到輸出開始位置的概率分布o s[52]:
其中,v s、W s和U s為可訓練參數(shù);h p i為每個段落單詞p i的精細化記憶;r Q為問題摘要;t i為開始位置在文本中每個位置的概率。得到輸出結(jié)束位置的概率分布o e[52]:
其中,ve、We和U e為可訓練參數(shù);[;]表示向量連接;H O S為輸出開始位置的表示向量;對兩個概率分布o s和o e乘積后選出值最大的[a s,a e]組合,作為最終的預測答案;t i為結(jié)束位置在文本中每個位置的概率。KAR在性能上可與最新的MRC模型相媲美,并且抗噪能力更佳,具有較強的魯棒性。
圖7 KAR模型框架圖
本文總結(jié)了目前抽取式MRC的四種方法,即基于注意力機制的方法、基于預訓練模型的方法、結(jié)合外部知識的方法以及加入推理機制的方法。抽取式MRC任務相較于其他MRC任務更貼合生活實際,得到越來越多研究者的青睞。
大規(guī)模數(shù)據(jù)集的建設是促進模型發(fā)展的必要前提。自2016年以來,伴隨著抽取式MRC數(shù)據(jù)集的發(fā)展,抽取式MRC模型同樣出現(xiàn)了井噴式的發(fā)展。每個新數(shù)據(jù)集都提出了新的問題,并且這些問題是當前方法無法有效解決的,新問題啟發(fā)研究人員不斷探索新模型進而促進該領(lǐng)域的發(fā)展。
本文針對當前抽取式MRC發(fā)展中存在的難點提出以下幾點未來研究方向:
(1)隨著抽取式MRC數(shù)據(jù)集的快速發(fā)展,數(shù)據(jù)集文本規(guī)模越來越大,這就要求模型從更廣泛的文本空間中尋找答案。對于需要從多個文檔中進行聯(lián)合推理才能得到答案的問題,可以考慮將圖神經(jīng)網(wǎng)絡應用于推理。通過構(gòu)建圖結(jié)構(gòu),可以將散落在不同語義粒度(段落、句子等)的信息聚合起來,有利于問題解答[53]。
(2)現(xiàn)有抽取式MRC模型應對迷惑性答案的能力還遠遠不足,盡管現(xiàn)有模型在一些簡單數(shù)據(jù)集上的表現(xiàn)超越了人類,但它們大多依然停留在簡單的文本匹配層面,沒有進行更深層次的語義推理。因此,利用深層網(wǎng)絡挖掘高層語義信息,設計更深層次、更有效的抽取式MRC模型是當前的迫切需要。同時,可以在數(shù)據(jù)集中添加高質(zhì)量對抗性問答對,在給定文本中添加分散注意力的句子,使模型不是通過簡單文本匹配就可以得到正確答案,促使研究者們增強對模型魯棒性的研究,以應對對抗環(huán)境的挑戰(zhàn)。
(3)目前訓練結(jié)果較好的模型普遍比較龐大且復雜、訓練時間久、對設備要求高、代價大,因此,如何對大型模型進行精簡且不降低模型性能是一個值得研究的問題。另外,可以運用模型蒸餾技術(shù)[54],即采用遷移學習,通過預先訓練好的復雜模型的輸出作為監(jiān)督信號去訓練另外一個簡單網(wǎng)絡。
(4)針對中文數(shù)據(jù)集的抽取式MRC模型較少,且多數(shù)中文模型是在英文模型基礎(chǔ)上進行的改進,但中英文語法結(jié)構(gòu)、語序等方面存在巨大差異,因此多數(shù)中文模型效果并不理想。構(gòu)建中文MRC模型需要考慮到一詞多義等問題,同樣的單詞或句子在不同語境下可能表達了不同的含義,所以如何構(gòu)建更加符合中文語法結(jié)構(gòu)的MRC模型是研究者們需要深入思考的問題。