王浩暢 閆凱峰 Marius Gabriel Petrescu
1(東北石油大學(xué)計算機(jī)與信息技術(shù)學(xué)院 黑龍江 大慶 163318) 2(普羅耶什蒂石油天然氣大學(xué) 普拉霍瓦 普羅耶什蒂 100680)
隨著人工智能時代的到來,自然語言處理(Natural Language Processing, NLP)成為當(dāng)前一個炙手可熱的研究課題。NLP的研究目標(biāo)就是使得機(jī)器能夠理解人類語言,而NLP的核心任務(wù)之一就是自然語言理解,因此機(jī)器閱讀理解(Machine Reading Comprehension, MRC)受到了研究人員的極大關(guān)注。
MRC現(xiàn)在被應(yīng)用在各種實(shí)際領(lǐng)域(軍事、司法、醫(yī)療等)中,如中電萊斯信息系統(tǒng)有限公司主辦的全國第二屆“軍事智能機(jī)器閱讀”挑戰(zhàn)賽,從文字情報整編業(yè)務(wù)面臨的實(shí)際痛點(diǎn)問題為切入點(diǎn),旨在由機(jī)器篩選出多篇文字情報中用戶所關(guān)心的活動時間、地點(diǎn)、性能參數(shù)等中心內(nèi)容,這充分說明MRC在實(shí)際應(yīng)用中有著重要的意義。
20世紀(jì)90年代末,MRC的早期研究與NLP很多任務(wù)一樣都是使用基于規(guī)則的方法,其中QUARC[1]就是一個比較有代表性的系統(tǒng),該系統(tǒng)使用詞匯與語義對應(yīng)關(guān)系規(guī)則在預(yù)測正確答案時達(dá)到了40%的準(zhǔn)確率;Charniak等[2]使用字符串模式匹配手動生成規(guī)則在檢索正確答案時可以達(dá)到41%的準(zhǔn)確率。
隨著統(tǒng)計機(jī)器學(xué)習(xí)在NLP領(lǐng)域的快速發(fā)展,MRC的性能也得到了進(jìn)一步的提升。MRC任務(wù)要求根據(jù)已知信息(文章、問題)生成對應(yīng)的答案。通常表示為根據(jù)已經(jīng)給定的文章P以及人類根據(jù)該文章提出問題Q,再使用MRC技術(shù)預(yù)測該問題的正確答案A,表示為
→A。
2014年Jansen等[3]通過手動提取篇章中的語義特征,使用支持向量機(jī)(Support Vector Machine,SVM)分類模型,并且在預(yù)測答案時使用答案排序的方法,最終在Yahoo問答語料庫上將準(zhǔn)確率提高了24%。
2015年Narasimhan等[4]通過提取句子語法和詞匯特征,并使用傳統(tǒng)的機(jī)器學(xué)習(xí)方法在MCTest數(shù)據(jù)集[5]MC500上將準(zhǔn)確率提升到63.75%。Sachan等[6]手動提取特征并使用改進(jìn)的SVM方法在相同的數(shù)據(jù)集上,將MRC任務(wù)的準(zhǔn)確率提升到67.8%。Wang等[7]將語法、語義、詞向量等特征作為輸入,使用機(jī)器學(xué)習(xí)分類模型,將準(zhǔn)確率提升到69.87%。
實(shí)驗(yàn)結(jié)果表明,這些傳統(tǒng)機(jī)器學(xué)習(xí)方法在很大程度上提升了閱讀理解任務(wù)的準(zhǔn)確率。但使用基于傳統(tǒng)機(jī)器學(xué)習(xí)的方法去解決MRC任務(wù),也存在一些缺陷:(1) 使用機(jī)器學(xué)習(xí)方法,需要人工去提取詞匯和語義特征,但是一些分散到文本中的語義特征很難通過手工方法提取出來;(2) 傳統(tǒng)的機(jī)器學(xué)習(xí)的方法需要大規(guī)模的數(shù)據(jù)集為模型提供更好的數(shù)據(jù)支撐,但之前提到的MCTest數(shù)據(jù)集,可用于訓(xùn)練的總數(shù)據(jù)只有1 480條。因此,受到數(shù)據(jù)規(guī)模的限制,以及手動提取特征的難度,傳統(tǒng)的機(jī)器學(xué)習(xí)方法很難再有突破性的進(jìn)展。
2015年,由Hermann等[8]構(gòu)建了大規(guī)模數(shù)據(jù)集CNN/Daily Mail,并提出將注意力機(jī)制加入長短時記憶網(wǎng)絡(luò)模型(Long Short-term Memory,LSTM),最終在CNN數(shù)據(jù)集上得到了63.8%的準(zhǔn)確率,在Daily Mail數(shù)據(jù)集上得到69.0%的準(zhǔn)確率。此后陳丹琦等[9]使用改進(jìn)后的基于注意力的神經(jīng)網(wǎng)絡(luò),在CNN和Daily Mail上分別取得了73.6%和76.6%的準(zhǔn)確率,并且通過實(shí)驗(yàn)證明CNN/Daily Mail數(shù)據(jù)集含有較大的數(shù)據(jù)噪聲。
斯坦福大學(xué)Rajpurkar等[10]在2016年構(gòu)建了一個包含107 785個問題的數(shù)據(jù)集SQuAD1.1。同年Wang等[11]針對該數(shù)據(jù)集提出Match-LSTM模型并得到了77.1%的F1值。Seo等[12]提出的BiDAF模型,在該數(shù)據(jù)集上得到77.3%的F1值。2017年,陳丹琦等[13]提出的單模型的Document Reader得到79%的F1值。2018年,Yu等[14]提出的QANET模型進(jìn)一步將F1值提升至84.6%。隨著2018年谷歌的Devlin[15]等BERT模型的提出,并在該數(shù)據(jù)集上取得93.2%的F1值,深度神經(jīng)網(wǎng)絡(luò)模型在此數(shù)據(jù)集上已經(jīng)首次超越人類的86.8%的F1值。2019年Yang等[16]提出的XLNet在該數(shù)據(jù)集上取得95.08%的F1值;同年Lan等[17]提出的ALBERT在此數(shù)據(jù)集上得到95.5%的F1值。2020年Brown等[18]提出了GPT-3模型,與之前的預(yù)訓(xùn)練模型的不同之處是該模型在預(yù)訓(xùn)練好模型之后,只需要使用少量的MRC樣例去使得模型適應(yīng)新的MRC任務(wù),而不需要像之前的預(yù)訓(xùn)練模型一樣進(jìn)行梯度更新和模型的微調(diào)。
國內(nèi)也有大量研究人員對中文機(jī)器閱讀理解(Chinese Machine Reading Comprehension, CMRC)進(jìn)行了深入研究。文獻(xiàn)[19-20]提出基于知識庫的模式匹配方法;文獻(xiàn)[21-22]在CMRC任務(wù)上也做出了一些貢獻(xiàn);2016年哈工大訊飛聯(lián)合實(shí)驗(yàn)室構(gòu)建了CMRC數(shù)據(jù)集[23];2017年百度公司構(gòu)建了大規(guī)模CMRC數(shù)據(jù)集Du-reader[24],這是迄今為止最大的CMRC數(shù)據(jù)集;在2018年“百度機(jī)器閱讀理解”大賽中,基于多任務(wù)的MRC模型[25]、分層答案選擇模型[26]、多段落MRC模型[27]、BiDMF[28]都獲得了優(yōu)異的成績。2019年,哈工大訊飛聯(lián)合實(shí)驗(yàn)室根據(jù)BERT[15]模型提出了中文全詞覆蓋BERT預(yù)訓(xùn)練模型[29],該模型改進(jìn)了BERT模型處理中文文本的能力。
大規(guī)模數(shù)據(jù)集的出現(xiàn),使得深度神經(jīng)網(wǎng)絡(luò)得以充分發(fā)揮其在MRC人物上的優(yōu)勢。與此同時,評測方法也尤為重要。本節(jié)將介紹國內(nèi)外主流的MRC數(shù)據(jù)集,以及在這些數(shù)據(jù)集上所使用的評價方法。
神經(jīng)MRC的研究必須依靠大規(guī)模的數(shù)據(jù)集作為支撐,它在一定程度上決定了MRC系統(tǒng)的性能。為了降低任務(wù)難度,較早出現(xiàn)的MRC數(shù)據(jù)集都將背景知識排除在外,因此可以通過人工構(gòu)造簡單的數(shù)據(jù)集去回答一些相對簡單的問題。MRC數(shù)據(jù)集最常見的形式包括完形填空式(Cloze Style, C)、選擇題類型(Multiple Choice, M)、段落抽取式(Span Prediction,S)及自由作答方式(Free-form Answer, F)[30]。本節(jié)將著重介紹CNN/Daily Mail[8]、SQuAD、Dureader[24]和MS MARCO[32]幾個主流MRC數(shù)據(jù)集。此外還對一些其他MRC數(shù)據(jù)集在數(shù)據(jù)規(guī)模、發(fā)布時間、數(shù)據(jù)來源等方面做了統(tǒng)計,如表1所示。其中,EN表示英文,ZH表示中文。
表1 當(dāng)前主流的MRC數(shù)據(jù)集比較
CNN/Daily Mail是2015年發(fā)布的一個完形填空數(shù)據(jù)集。CNN包含了從2007年到2015年在CNN網(wǎng)站收集的92 579篇文檔以及從中提取的387 420個問題;Daily Mail包含了從2010年到2015年在每日郵報(Daily Mail)網(wǎng)站收集的219 506篇文檔以及從中提取的997 467個問題。由于這兩個網(wǎng)站是通過要點(diǎn)(bullet points)補(bǔ)充文章,并總結(jié)文章中包含的信息,因此作者通過替換這些要點(diǎn)的方式創(chuàng)建問題。該數(shù)據(jù)集的任務(wù)目標(biāo)就是根據(jù)文章內(nèi)容推斷出問題中缺失的實(shí)體。
SQuAD1.1[10]是斯坦福大學(xué)于2016年構(gòu)建的一個段落抽取式數(shù)據(jù)集,該數(shù)據(jù)集采用眾包的方式從維基百科的536篇文章中提取了107 785個問題。它定義了一種全新的MRC任務(wù),即問題的答案是文章的一部分,而非一個實(shí)體或者一個詞;正如之前所介紹的MRC發(fā)展現(xiàn)狀,現(xiàn)在的一些深度學(xué)習(xí)模型的表現(xiàn)已經(jīng)超越了人類,為了增加任務(wù)難度,研究人員于2018年在SQuAD1.1基礎(chǔ)上加入了53 775個由人類眾包者對抗性地設(shè)計的沒有材料支持的新問題,生成了全新的SQuAD2.0數(shù)據(jù)集。該任務(wù)要求對于這些問題,在作答時不僅要盡可能給出問題的正確答案,還需對沒有材料支持的問題拒絕作答。斯坦福大學(xué)為SQuAD2.0數(shù)據(jù)集開放了一個在線評測模型的網(wǎng)站[56]供已提交的模型在該數(shù)據(jù)集上的評分及排名。
DuReader是當(dāng)前規(guī)模最大的CMRC數(shù)據(jù)集,該數(shù)據(jù)集由百度搜索與百度知道的100萬篇文檔以及從中提取的20萬個問題組成,答案是通過眾包方式生成。該數(shù)據(jù)集屬于自由作答型,即答案可能并不在給定的文檔中,比如觀點(diǎn)型、是非判斷型。百度開放了一個在線評測網(wǎng)站[57]供已提交的CMRC模型評測及排名。
MS MARCO包含了從Bing搜索引擎檢索到的8 841 823篇文章以及從中提取的1 010 916個問題,而每一個問題對應(yīng)的答案是由人工生成的。微軟開放了一個在線評測模型的網(wǎng)站[58]供提交的MRC模型在該數(shù)據(jù)集上評測及排名。
由于當(dāng)前百度公司與微軟公司開放了較全面的MRC數(shù)據(jù)集,而且
三元組的構(gòu)造方式比較接近,都屬于自由作答式數(shù)據(jù)集(如表1所示),此外國內(nèi)外大量研究人員針對這兩個數(shù)據(jù)集設(shè)計了諸多模型并在實(shí)驗(yàn)中對這二者進(jìn)行了比較,圖1對這兩個數(shù)據(jù)集的不同問題類型進(jìn)行了可視化展示??梢园l(fā)現(xiàn),Description類型問題占這兩個數(shù)據(jù)集的比例超過50%,且Entity類型問題次之,即這兩種類型占80%左右的問題類型分布。
(a) DuReader (b) MS MARCO圖1 DuReader與MS MARCO的不同問題類型分布
對于段落抽取式MRC數(shù)據(jù)集,更多使用的是評測SQuAD時所使用的精確匹配(Exact Match,EM)以及F1值。通常將BLEU和ROUGE-L作為自由作答型數(shù)據(jù)集的評價指標(biāo)。
首先介紹候選答案和參考答案構(gòu)成的混淆矩陣,這里的候選答案即預(yù)測答案,參考答案即真實(shí)答案。該混淆矩陣包括真正例(True Positive,TP)、真負(fù)例(True Negative,TN)、假正例(False Positive,FP)、假負(fù)例(False Negative,FN),可以表示為如表2所示的混淆矩陣。
表2 重疊詞構(gòu)成的混淆矩陣
那么預(yù)測答案的P和R可以表示為:
F1為P與R的調(diào)和平均數(shù),可以表示為:
EM表示預(yù)測答案與給定答案完全一致的數(shù)量占全部問題數(shù)量的比率,如式(4)所示。與F1相比,EM更加精確,也更加嚴(yán)格。一般而言,F1都比EM值大。
BLEU(Bilingual Evaluation Understudy)是從機(jī)器翻譯中引入的評價指標(biāo),是一種文本精確度的相似性度量方法。為了度量候選答案與標(biāo)準(zhǔn)答案的相似性,BLEU的計算方法如下:
(5)
式中:n表示n元語法模型,n元語法指的是n個連續(xù)的同現(xiàn)詞。定義參考答案的長度為r,候選答案長度為c。對于多個參考答案的情況,我們選擇最接近c(diǎn)的參考長度,長度懲罰因子(BP)為:
C為候選答案的i元語法模型的集合,式(7)計算整個候選答案的精確度Pi,定義Count(x)表示該詞出現(xiàn)在候選答案中的次數(shù)。
(7)
假設(shè)某個詞出現(xiàn)在參考答案中的總次數(shù)為Max_Ref_count,則有:
Countclip=min(Count,Max_Ref_Count)
(8)
ROUGE-L計算的是參考答案和候選答案最長公共子序列的精確率(PLCS)和召回率(RLCS):
式中:γ=PLCS/RLCS,如果γ過大,則只需考慮RLCS。
根據(jù)當(dāng)前MRC數(shù)據(jù)集的評測結(jié)果可以看出,神經(jīng)MRC模型是當(dāng)下解決MRC任務(wù)行之有效的方法。本章將介紹神經(jīng)MRC模型的實(shí)現(xiàn)過程,并將對每一個步驟的詳細(xì)原理進(jìn)行介紹,此外還介紹了四種解決MRC任務(wù)的極有代表性的MRC模型。神經(jīng)MRC過程總體上包括向量化、編碼、注意力機(jī)制[42]、答案預(yù)測四個步驟,其結(jié)構(gòu)如圖2所示。
圖2 神經(jīng)MRC整體架構(gòu)圖
向量化目的是讓計算機(jī)可以識別人類語言,在NLP領(lǐng)域,一般是將文字轉(zhuǎn)化為計算機(jī)可以識別的定長向量。不同的編碼方式所達(dá)到的效果也有所不同。在人類語言中語境是尤其重要的信息,因此很多研究人員一直致力于將更多的語境信息傳遞給計算機(jī)。早期自然語言轉(zhuǎn)換為詞向量通常使用One-Hot[43]編碼,該方法使用二進(jìn)制向量表示不同的單詞,其維度與文本詞典大小相同。構(gòu)造的向量只有該詞對應(yīng)的位置為1,其余位置都是0。但是由于這樣的向量比較稀疏,所以這種方法更適合文本量較小的情況,一旦文本增多,就會導(dǎo)致維度災(zāi)難。
因此,為了解決傳統(tǒng)詞向量的不足,Mikolov等[44]提出了Word2Vec詞向量,該詞向量通過語言模型訓(xùn)練而成,可以充分利用單詞之間在向量空間的距離去衡量詞之間的相似性。之后Pennington等[45]提出了Glove詞向量,它將詞匯編碼成可以反映詞匯之間的相關(guān)性的連續(xù)低維向量。但是不足之處是以上這些詞向量方法只能簡單地提取出詞匯間的關(guān)系,但不能有效挖掘上下文信息。隨著NLP技術(shù)的發(fā)展,2018年P(guān)eters等[46]通過雙向語言模型為每個詞添加了上下文信息,即實(shí)現(xiàn)了深層語境的詞匯表示,簡稱ELMo預(yù)訓(xùn)練詞向量。這種詞向量模擬了詞匯更加復(fù)雜的特征,并且分析了這些用法在不同的語境中如何變化(如一詞多義現(xiàn)象)。同年Devlin等[15]發(fā)布了BERT預(yù)訓(xùn)練詞向量,與ELMo不同的是該方法通過在所有層中聯(lián)合調(diào)節(jié)每個詞的關(guān)聯(lián)上下文來預(yù)先訓(xùn)練文本的深層雙向表示。近期ALBERT[17]預(yù)訓(xùn)練模型以其出色的性能,再一次向我們證明預(yù)訓(xùn)練詞向量在MRC任務(wù)中舉足輕重的作用。
編碼在MRC中是一個極其重要的步驟,目的是提取更多的語境信息。通常使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)、其變體LSTM與門控循環(huán)單元(Gated Recurrent Unit, GRU)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)以及Transformer架構(gòu)來對輸入的詞向量進(jìn)行編碼。
RNN是NLP領(lǐng)域應(yīng)用極其廣泛的模型,該網(wǎng)絡(luò)有很強(qiáng)的序列信息提取能力。其變體LSTM和GRU利用其門結(jié)構(gòu)更加擅長捕獲序列的長期依賴,而且這二者有利于緩解梯度爆炸和梯度消失問題。由于在理解給定的單詞時,其上下文具有相同的重要性,因此通常使用雙向RNN對MRC系統(tǒng)中的上下文及問題進(jìn)行編碼和特征提取。雖然RNNs在序列信息上表現(xiàn)很好,但是由于不能并行處理,所以使用這種網(wǎng)絡(luò)結(jié)構(gòu)非常耗時,而且極易出現(xiàn)梯度消失和梯度爆炸的問題,因此通常使用其改進(jìn)模型LSTM或者GRU。相較而言,一般認(rèn)為GRU可以節(jié)省大量的訓(xùn)練時間,其原因是GRU有更少的模型參數(shù)。
CNN是從計算機(jī)視覺中引入的一種深度學(xué)習(xí)方法。一維的CNN應(yīng)用于NLP任務(wù)時,利用滑動窗口挖掘局部上下文信息非常有效,首先在CNN中每個卷積層應(yīng)用不同比例的特征映射來提取不同窗口大小的局部特征,之后將輸出反饋到池化層降低維數(shù)的同時最大程度上保留最重要的信息。另外,在每個篩選器結(jié)果上取最大值和取平均是池化層最常用的方法。
Transformer是Vaswani等[47]在2017年提出的一種新型神經(jīng)網(wǎng)絡(luò)模型。與RNN和CNN不同的是,Transformer主要使用注意力機(jī)制,由于加入了多個方向的注意力,使得這種結(jié)構(gòu)在對齊方面表現(xiàn)突出,而且與RNN的不同之處是可以并行運(yùn)行,因此運(yùn)行時間更短。與CNN最大的區(qū)別是,它更加關(guān)注全局特征。但是如果沒有CNN與RNN,Transformer就不能更好地利用序列信息,為了整合位置信息,作者添加了正弦和余弦函數(shù)去計算位置信息。Transformer的模型輸入是詞匯的編碼以及每個詞的位置信息,通過對輸入進(jìn)行編碼提取上下文信息,最后輸出解碼后的新序列。
MRC系統(tǒng)中,注意力機(jī)制一般可以分為三種,單向注意力機(jī)制(Unidirectional Attention)、雙向注意力機(jī)制(Bidirectional Attention)和自匹配注意力機(jī)制[47](Self-Attention)。
添加單向注意力是為了突出問題與上下文文本最相關(guān)的部分,這種方法對于強(qiáng)調(diào)重要的語境詞很有效果。通常情況下,我們認(rèn)為問題與文本中詞或者句子越相似,越有可能是答案。但是,其弊端在于太強(qiáng)調(diào)語境詞從而忽略了預(yù)測答案的一個關(guān)鍵因素——問題關(guān)鍵詞。因此又有研究者提出使用雙向注意力機(jī)制來克服單向注意力機(jī)制的這一局限性。如圖3所示,在MRC中首次加入雙向注意力機(jī)制的是BiDAF[12]模型,該模型既關(guān)注了文本到問題,同時也關(guān)注了問題到文本兩個方向的信息交互。之后Wang等[48]提出自匹配注意力機(jī)制,即通過文本段落與其自身匹配來完善信息交互,并取得了很好的效果。
圖3 問題文檔的雙向注意力機(jī)制
不同的MRC數(shù)據(jù)集,預(yù)測答案的方法也不相同。整體上可以劃分為三種,第一種是從文本中提取答案,以CNN/Daily Mail為代表,它們都有一個共同的特點(diǎn),就是從給定文本中預(yù)測一個詞或者一個實(shí)體作為答案。另外一種以SQuAD數(shù)據(jù)集為代表,答案都是段落中的某句話。最后一種就是根據(jù)對應(yīng)文本生成答案,最終答案分布在多個段落中或者答案不一定在給定的文本中,主要以DuReader和MS MARCO為代表。
對于從文本中提取單個詞匯的MRC類型,受到指針網(wǎng)絡(luò)[49]的啟發(fā),Kadlec等[42]提出使用注意力機(jī)制直接從文本中尋找問題答案。對于段落抽取型數(shù)據(jù)集,答案預(yù)測的關(guān)鍵在于找到答案的開頭和結(jié)尾??紤]到可能存在多個候選答案的情況,Xiong等[50]提出了DCN迭代技術(shù)篩選最終答案。
對于自由作答式數(shù)據(jù)集,候選答案并不要求與參考答案完全一致。這類問題有一個共同之處,就是每一個候選答案分布在不同段落中。解決這類問題的思想就是,從每一個相關(guān)段落中提取候選答案的一個小片段,最后將選取出來的小片段組合作為最終的預(yù)測答案。Tan等[51]提出S-Net方法,使用基于注意力的GRUs將與答案相關(guān)的每一個片段的起止點(diǎn)找到,最后綜合這些小片段形成預(yù)測答案。
表3所呈現(xiàn)的是按照以上四個步驟對當(dāng)前主流的方法做的總結(jié)和概括,主要介紹了當(dāng)前主流的MRC方法的結(jié)構(gòu)及其實(shí)驗(yàn)針對的數(shù)據(jù)集。接下來將介紹幾種解決MRC任務(wù)中極具代表性的MRC模型。
表3 當(dāng)前解決MRC任務(wù)的主流方法
Hermann等[8]為評測完型閱讀理解型數(shù)據(jù)集CNN/Daily Mail,同時發(fā)布了兩個基線模型Attentive Reader[8]和Impatitent Reader[8]。它們都使用的雙向LSTM詞嵌入的方法,并且都加入了注意力機(jī)制,但是二者不同之處在于對給定的文本段落和問題的處理方式不同。Attentive Reader更加注重將查詢作為一個整體,與給定的文本做交互,以達(dá)到查詢答案的目的;相較而言,Impatitent Reader更加復(fù)雜,它把查詢中的每一個詞與給定文本做交互,以此達(dá)到更加全面詳盡的目的。如圖4所示,Attentive Reader模型(作者原圖)為了預(yù)測單詞x,使用雙向LSTM作為嵌入層,并在其輸出上加入注意力機(jī)制,從而使得給定文本與對應(yīng)查詢進(jìn)行交互。如圖5所示,為Impatitent Reader模型(作者原圖),不同之處是對查詢中每個詞與給定文本進(jìn)行注意力交互。
圖4 Attentive Reader模型框架
圖5 Impatitent Reader模型框架
之后的改進(jìn)大多數(shù)是以這兩個模型為基礎(chǔ)。隨著注意力機(jī)制在NLP領(lǐng)域的應(yīng)用逐漸深入,在MRC中應(yīng)用也極其廣泛。下面介紹一種在MRC任務(wù)中有著極其重要地位的BiDAF模型,如圖6所示,該模型首次提出在MRC模型中加入了雙向注意力流機(jī)制,模型共劃分為六層。
圖6 BiDAF模型
字符嵌入層(Character Embed Layer),該層是將輸入文本轉(zhuǎn)化為以字符為單位的字符向量。
詞嵌入層(Word Embed Layer),該層主要將輸入文本表示為詞向量的形式,并與上一層一起作為下一層的輸入,該層使用Glove[44]詞向量。
上下文嵌入層(Contextual Embed Layer)使用雙向LSTM對上層輸入的詞向量進(jìn)行編碼,目的是使得上下文進(jìn)行充分交互。
注意力流層(Attention Flow Layer),該層是該模型的主要改進(jìn)之處,模型通過加入雙向注意力流,也就是文本到問題的注意力流和問題到文本的注意力流兩個方向,主要目的是考慮到模型中文本與問題的交互不夠充分。
模型層(Modeling Layer),該層使用兩層雙向LSTM查找問題在文本中的詳細(xì)位置。
輸出層(Output Layer),該層預(yù)測答案的開頭與結(jié)束位置,開頭位置使用全連接層與Softmax函數(shù)進(jìn)行預(yù)測,結(jié)束位置使用LSTM與Softmax進(jìn)行預(yù)測。
隨著預(yù)訓(xùn)練模型的發(fā)展,預(yù)訓(xùn)練詞向量逐漸在MRC任務(wù)中嶄露頭角,它也正逐步取代傳統(tǒng)的詞向量,特別是在BERT預(yù)訓(xùn)練模型的發(fā)布之后,MRC任務(wù)的表現(xiàn)也得到了極大的提升。如圖7所示,BERT模型分為預(yù)訓(xùn)練和微調(diào)兩個階段,預(yù)訓(xùn)練階段使用掩碼語言模型、下一句預(yù)測任務(wù)進(jìn)行訓(xùn)練,之后在微調(diào)階段對其進(jìn)行微調(diào)。掩碼語言模型是BERT預(yù)訓(xùn)練詞向量的核心思想,它通過雙向Transformer對給定語句的15%詞匯進(jìn)行隨機(jī)掩碼的方式來達(dá)到深度訓(xùn)練的目的,它將句子長度限定為512個詞;為了深度理解句子與句內(nèi)詞匯的語義關(guān)系,它使用了下一句預(yù)測任務(wù)對BERT進(jìn)行預(yù)訓(xùn)練。由于預(yù)訓(xùn)練出的參數(shù)已經(jīng)確定,因此并不能很好地支持下游任務(wù),因此模型的微調(diào)是為了適應(yīng)下游任務(wù)而對其數(shù)據(jù)集進(jìn)行的調(diào)整參數(shù)的訓(xùn)練。
圖7 BERT模型框架
MRC技術(shù)不斷地迭代更新,推動著MRC任務(wù)的向前發(fā)展,同時也促進(jìn)了整個NLP領(lǐng)域的進(jìn)步。在某些特定情境下,MRC模型的性能已經(jīng)超越了人類的表現(xiàn)(如SQuAD1.1數(shù)據(jù)集),但仍然存在一些問題。
1) 資源耗費(fèi)巨大。正如本文之前討論過的,詞向量層是MRC模型中不可或缺的輸入層,該層的目的是將給定的文本與問題信息最大化地輸入模型中,以期問題與文本之間的最大信息交互。但是通常會遇到難以均衡資源耗費(fèi)與充分的上下文信息的問題:(1) MRC早期通常使用較為簡單的詞向量(如Word2Vec、Glove),但其不足之處在于難以有充分的上下文信息,這導(dǎo)致在數(shù)據(jù)輸入模型的過程會產(chǎn)生一定的損耗,以致文本與問題之間的信息交互不夠完全。(2) 預(yù)訓(xùn)練詞向量(如ELMo、BERT、XLNet、ALBERT、GPT3)的出現(xiàn)解決了這一難題,這些詞向量加入了更全面的上下文信息,使得文本與問題的完全交互成為了可能,但是它們的應(yīng)用又引發(fā)了新的問題,那就是資源耗費(fèi)過大。例如當(dāng)下性能最好且資源消耗相對較少的ALBERT預(yù)訓(xùn)練詞向量,它使用谷歌公司的TPU集群訓(xùn)練125 000步擁有23.3億個參數(shù)的ALBERT預(yù)訓(xùn)練模型總共花費(fèi)32小時,更有GPT-3將參數(shù)量提升至1 750億,顯然普通科研團(tuán)隊或機(jī)構(gòu)的硬件很難達(dá)到這種要求。因此如何在擁有充分的文本與問題上下文信息的同時最大限度降低MRC模型訓(xùn)練時的資源耗費(fèi),這是MRC當(dāng)前遇到的一大挑戰(zhàn)。
2) 模型缺乏推理能力。大多數(shù)現(xiàn)有的MRC系統(tǒng)主要基于上下文和問題之間的語義匹配來給出答案,這導(dǎo)致MRC模型難以推理。推理能力其實(shí)是一種更高層次抽象信息的提取能力,這要求模型按照人類的邏輯推理能力提取抽象信息。雖然預(yù)訓(xùn)練模型可以生成較全面的上下文信息,但是事實(shí)上將其應(yīng)用在MRC任務(wù)中,對于模型的推理能力仍然沒有太大的改進(jìn)。但不可否認(rèn)的是推理能力會極大地改進(jìn)模型的性能并有助于提升其他NLP子任務(wù)的表現(xiàn),因此如何使MRC模型具有推理能力仍需進(jìn)一步研究。
3) 模型通用性有待提升。如果模型是通用的,則其也可能適用于其他任務(wù),此外該機(jī)器是否真的通過利用神經(jīng)網(wǎng)絡(luò)方法“理解”了人類的語言,而不僅僅是充當(dāng)了“文檔級”語言模型。這對于其他的NLP任務(wù)也是至關(guān)重要的,即并非由給定的文檔解決MRC任務(wù),而是模型真正在“理解”人類語言的基礎(chǔ)上進(jìn)行解答。如何設(shè)計一個通用而非專門針對某一特定領(lǐng)域或特定數(shù)據(jù)集的MRC模型也須進(jìn)行深入的研究。
4) 模型缺乏健壯性?,F(xiàn)實(shí)生活中,遇到的更多閱讀理解問題與自由作答型數(shù)據(jù)集更加接近,但是現(xiàn)有模型在這解決這些問題時效果仍舊不理想。對于SQuAD2.0,通過在給定的上下文中添加了分散注意力的句子,并且這些句子與問題的語義重疊可能引起混亂,但不會與正確答案相矛盾,通過此類對抗性示例,MRC模型的性能急劇下降,這反映出機(jī)器無法真正理解自然語言,此外已有的MRC模型在DuReader與MSMARCO數(shù)據(jù)集上的表現(xiàn)相對來說也是比較差的。盡管可以通過引入答案驗(yàn)證組件在某種程度上減少合理答案的副作用,但增強(qiáng)MRC系統(tǒng)的健壯性以應(yīng)對對抗性環(huán)境仍然是一個挑戰(zhàn)。
事實(shí)上,日新月異的MRC技術(shù)也在推動NLP領(lǐng)域的飛速發(fā)展。通過整理近年來經(jīng)典的MRC模型以及參考其他在經(jīng)典模型上的改進(jìn)工作,下面將給出MRC技術(shù)的幾個可能的發(fā)展方向。
1) 改進(jìn)預(yù)訓(xùn)練模型速度與效率。預(yù)訓(xùn)練模型在改進(jìn)MRC輸入上下文信息的同時也帶來了訓(xùn)練資源耗費(fèi)巨大的問題。在未來可以通過稀疏注意力(sparse attention)[52]和塊注意力(block attention)[53]之類的方法來加快預(yù)訓(xùn)練模型的訓(xùn)練速度,以此應(yīng)對預(yù)訓(xùn)練模型資源損耗的挑戰(zhàn)。
2) 如何提升MRC模型的推理能力。其實(shí)MRC模型的推理能力一直有待提升,這就像就是像人類推理某一個問題一樣,并不依靠外部的知識,而只依據(jù)已有知識對問題進(jìn)行推理,從而得出更加正確的預(yù)測答案。Chen等[54]提出將知識圖譜這種新型的知識表示形式應(yīng)用于知識推理中,因此MRC模型的推理能力也可以借助知識圖譜去改善,當(dāng)問題復(fù)雜且知識庫不完整時,知識圖譜能夠利用現(xiàn)有的三元組推斷出更加合理的答案。通過知識圖譜中的現(xiàn)有事實(shí)中推斷出許多有效事實(shí),這是將知識圖譜用于推理的目標(biāo)之一,其目的是將實(shí)體和關(guān)系表示到低維的向量空間[55]。
3) 如何改進(jìn)MRC模型的通用性。實(shí)驗(yàn)表明,MRC模型或者只在特定的數(shù)據(jù)集上表現(xiàn)良好,但是更換多個不同的數(shù)據(jù)集后性能卻會受到影響,甚至是性能急劇下降。在很大程度上,這其實(shí)也是由于深度學(xué)習(xí)模型的可解釋性較差,模型本身是一個“黑盒”,在對其進(jìn)行研究的實(shí)驗(yàn)的過程中,難以從細(xì)節(jié)處做根本性的改進(jìn)。但是,未來可通過增廣數(shù)據(jù)的方式對已有數(shù)據(jù)進(jìn)行擴(kuò)增,龐大的數(shù)據(jù)量有助于提升模型的通用性,此外,從文中的四個模塊改進(jìn)MRC模型性能也有利于提升其通用性。
4) 如何提升MRC模型的健壯性??梢钥紤]加入新的特征(如詞性標(biāo)注、命名實(shí)體識別、依存句法分析、語義依存分析等)以改進(jìn)模型的健壯性,另外可以通過在數(shù)據(jù)中添加額外的噪聲或者像SQuAD2.0一樣增加對抗性語料,以改進(jìn)MRC模型的健壯性。
本文介紹了國內(nèi)外MRC技術(shù)的發(fā)展歷史及其現(xiàn)狀,內(nèi)容主要包含MRC數(shù)據(jù)集、MRC主要模型方法以及一些自然語言處理界通用的評價方法。由于深度學(xué)習(xí)技術(shù)的飛速發(fā)展,基于深度學(xué)習(xí)方法的應(yīng)用解決了MRC中遇到的很多難題,因此本文主要從應(yīng)對MRC任務(wù)最有效的深度學(xué)習(xí)方法的角度進(jìn)行了研究討論,首先總結(jié)了神經(jīng)MRC任務(wù)的一般步驟,緊接著闡述了每一個步驟中所涉及的開創(chuàng)性技術(shù),最后對MRC面臨的問題做了詳盡的概括,并針對性地提出了行之有效的解決方案。