張超然,裘杭萍,孫 毅,王中偉,2
1.陸軍工程大學(xué) 指揮控制工程學(xué)院,南京210007
2.中國(guó)人民解放軍73658部隊(duì)
機(jī)器閱讀理解(Machine Reading Comprehension,MRC)是一項(xiàng)測(cè)試機(jī)器理解自然語(yǔ)言的程度的任務(wù),要求機(jī)器根據(jù)給定的上下文回答問題。早期的MRC系統(tǒng)可以追溯到20 世紀(jì)70 年代,其中最著名的是Lehnert[1]提出的QUALM系統(tǒng)。但是當(dāng)時(shí)構(gòu)建的系統(tǒng)非常小,并且僅限于手工編碼的腳本,很難推廣到更廣泛的領(lǐng)域。在20世紀(jì)80年代和90年代,對(duì)MRC的研究大多被忽視。20世紀(jì)90年代末,Hirschman等人[2]提出了Deep Read系統(tǒng),并創(chuàng)建了一個(gè)閱讀理解數(shù)據(jù)集,數(shù)據(jù)集包含了120個(gè)來(lái)自三至六年級(jí)素材的故事。使用這些來(lái)構(gòu)建和評(píng)估一個(gè)基線系統(tǒng),該系統(tǒng)包括基于規(guī)則的詞袋方法以及附加的自動(dòng)化語(yǔ)言處理(詞干提取、名稱識(shí)別、語(yǔ)義類識(shí)別和代詞解析等)。這些系統(tǒng)在檢索正確句子時(shí)達(dá)到了30%~40%的準(zhǔn)確率。由于這些系統(tǒng)需要依靠大量的手工規(guī)則或特性,導(dǎo)致泛化能力弱,在包含更多類型文章的大型數(shù)據(jù)集上性能會(huì)急劇下降。
由于之前提出的數(shù)據(jù)集規(guī)模比較小,以及基于規(guī)則和基于機(jī)器的方法的局限性,早期的MRC 系統(tǒng)表現(xiàn)不佳,很難用于實(shí)際應(yīng)用。自2015年以來(lái),隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,經(jīng)過預(yù)訓(xùn)練的詞向量技術(shù)(如Word2Vec、Glove、FastText等)[3-5]也取得了一定的進(jìn)步,對(duì)詞語(yǔ)以及文章的表示有了很大的提升,另外Seq2Seq 結(jié)構(gòu)[6]的神經(jīng)網(wǎng)絡(luò)和Attention注意力機(jī)制[7]的提出使得設(shè)計(jì)更復(fù)雜的網(wǎng)絡(luò)模型成為可能。DeepMind研究人員Hermann等人[8]提出了一種新穎而代價(jià)小的解決方案,用于為學(xué)習(xí)閱讀理解模型創(chuàng)建大規(guī)模的有監(jiān)督訓(xùn)練數(shù)據(jù),構(gòu)建了CNN/Daily Mail數(shù)據(jù)集。他們還提出基于注意力的LSTM模型the attentive reader,the impatient reader,它們?cè)诤艽蟪潭壬蟽?yōu)于傳統(tǒng)自然語(yǔ)言處理(Natural Language Processing,NLP)方法。
2016 年Chen 等人[9]研究了上述的數(shù)據(jù)集并證明了一個(gè)簡(jiǎn)單、精心設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)模型能夠?qū)NN 數(shù)據(jù)集的性能提升到72.4%,Daily Mail 數(shù)據(jù)集的性能提升到75.8%。與傳統(tǒng)的基于特征的分類器相比,神經(jīng)網(wǎng)絡(luò)模型能夠更好地識(shí)別詞匯匹配和釋義。但由于數(shù)據(jù)的創(chuàng)建方法和一些其他誤差,數(shù)據(jù)集有噪聲限制了進(jìn)一步的發(fā)展。
為了解決這些限制,斯坦福大學(xué)Rajpurkar等人[10]收集了Stanford Question Answering Dataset(SQuAD)數(shù)據(jù)集。數(shù)據(jù)集包含536 篇維基百科文章的10 萬(wàn)個(gè)問答題,每個(gè)問題的答案都是對(duì)應(yīng)閱讀段落的文本。該數(shù)據(jù)集質(zhì)量高且能夠可靠地評(píng)估,成為了領(lǐng)域的中心基準(zhǔn)。推動(dòng)了一系列新的閱讀理解模式,截至2018年10月,表現(xiàn)最好的單一的BERT[11]模型系統(tǒng)實(shí)現(xiàn)了91.8%的F1值,已經(jīng)超過人類的成績(jī)91.2%。
隨著GPT[12]、BERT等預(yù)訓(xùn)練模型的出現(xiàn),以及在閱讀理解任務(wù)上的強(qiáng)大性能提升,誕生了一批優(yōu)秀的預(yù)訓(xùn)練語(yǔ)言模型。在SQuAD 數(shù)據(jù)集之后,斯坦福大學(xué)又發(fā)布了SQuAD2.0[13]數(shù)據(jù)集,相比之前增加了一些不存在答案的問題,增加了難度。微軟亞洲研究院發(fā)布了來(lái)源于真實(shí)應(yīng)用場(chǎng)景的數(shù)據(jù)集MS MARCO[14],國(guó)內(nèi)百度公司發(fā)布了基于百度搜索和百度知道的中文DuReader數(shù)據(jù)集[15]。近年來(lái)國(guó)內(nèi)也出現(xiàn)了在法律、軍事等方面的閱讀理解數(shù)據(jù)集,擴(kuò)寬了閱讀理解的應(yīng)用,也增加了一些難度。
傳統(tǒng)的閱讀理解是通過閱讀給定的文章來(lái)回答相關(guān)的問題。隨著機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的技術(shù)發(fā)展,近年來(lái)將機(jī)器閱讀理解作為一個(gè)有監(jiān)督任務(wù)來(lái)進(jìn)行學(xué)習(xí)訓(xùn)練,訓(xùn)練樣本集D 可以用三元組的形式定義如下:
具體的任務(wù)是給定一個(gè)三元組(Qi,Pi,Ai),根據(jù)問題Qi={q1,q2,…,qm}和與其對(duì)應(yīng)的文章Pi={p1,p2,…,pn}進(jìn)行自然語(yǔ)言理解,推理預(yù)測(cè)得到答案Ai。其中,qj與pj分別是問題與文章的字或者詞的表示,m 與n分別代表問題與文章的長(zhǎng)度。根據(jù)數(shù)據(jù)集及機(jī)器閱讀理解任務(wù)的不同,答案Ai的形式也有所區(qū)別,抽取型任務(wù)的答案一般出現(xiàn)在原文Pi中,而描述型任務(wù)的答案可以是整個(gè)字典中的任意字符。
在預(yù)訓(xùn)練語(yǔ)言模型出現(xiàn)之前,基于深度學(xué)習(xí)的機(jī)器閱讀理解可以分為多個(gè)模塊[16],主要包括詞嵌入層、編碼層、匹配層以及答案選擇層,機(jī)器閱讀理解的發(fā)展依靠各個(gè)模塊的結(jié)合。然而,這種方式的組合存在一定的缺點(diǎn),傳統(tǒng)的詞向量無(wú)法解析一詞多義的問題,注意力模塊的網(wǎng)絡(luò)結(jié)構(gòu)比較復(fù)雜,且對(duì)長(zhǎng)文本的處理比較吃力,即使ELMO[17]等動(dòng)態(tài)詞向量的出現(xiàn),對(duì)模型的效果提升也比較有限。
GPT、BERT 等預(yù)訓(xùn)練模型提升了機(jī)器閱讀理解的性能,在某些數(shù)據(jù)集上超越了人類的表現(xiàn)。預(yù)訓(xùn)練模型前期通過語(yǔ)言建模在大量自然語(yǔ)言上進(jìn)行半監(jiān)督訓(xùn)練,如掩碼預(yù)測(cè)、句子關(guān)系的預(yù)測(cè),以及自然語(yǔ)言的多任務(wù)訓(xùn)練等。通過在大量文本上進(jìn)行預(yù)訓(xùn)練,得到強(qiáng)健的語(yǔ)言模型,可以捕獲句子間更深層次的關(guān)聯(lián)關(guān)系。在做機(jī)器閱讀理解任務(wù)時(shí),只需要設(shè)計(jì)適合具體任務(wù)的網(wǎng)絡(luò)拼接到預(yù)訓(xùn)練模型網(wǎng)絡(luò)上進(jìn)行微調(diào)即可,基于預(yù)訓(xùn)練模型的機(jī)器閱讀理解與傳統(tǒng)結(jié)構(gòu)對(duì)比如圖1所示。
圖1 機(jī)器閱讀理解模型結(jié)構(gòu)對(duì)比
預(yù)訓(xùn)練語(yǔ)言模型屬于遷移學(xué)習(xí),遷移學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域中已經(jīng)很流行,因?yàn)樗梢越⒕_的模型,耗時(shí)更短。利用遷移學(xué)習(xí),不是從零開始學(xué)習(xí),而是從之前解決各種問題時(shí)學(xué)到的模式開始。這樣就可以利用以前的學(xué)習(xí)成果(例如VGG[18]、MobileNet[19]等圖像處理模型),避免從零開始,可以把它看作是站在巨人的肩膀上。
近年來(lái)NLP 領(lǐng)域的一些研究者也嘗試通過遷移學(xué)習(xí)的方式建立預(yù)訓(xùn)練語(yǔ)言模型,將在通用領(lǐng)域通過無(wú)監(jiān)督方法學(xué)到的知識(shí)遷移到有監(jiān)督任務(wù)上,誕生了一批優(yōu)秀的預(yù)訓(xùn)練語(yǔ)言模型。由于NLP 領(lǐng)域本身無(wú)監(jiān)督數(shù)據(jù)存在很多,具有天然優(yōu)勢(shì)。只需要設(shè)計(jì)合適的語(yǔ)言模型,在無(wú)監(jiān)督數(shù)據(jù)集上進(jìn)行大量訓(xùn)練,即可得到健壯的語(yǔ)言模型。在做具體的有監(jiān)督任務(wù)時(shí),可以將學(xué)到的語(yǔ)言知識(shí)遷移到各個(gè)NLP任務(wù)上。
常見的預(yù)訓(xùn)練語(yǔ)言模型結(jié)構(gòu)如圖2 所示[11],有編碼輸入層、網(wǎng)絡(luò)結(jié)構(gòu)層、編碼輸出層。預(yù)訓(xùn)練語(yǔ)言模型的區(qū)別主要體現(xiàn)在網(wǎng)絡(luò)結(jié)構(gòu)層以及預(yù)訓(xùn)練時(shí)對(duì)語(yǔ)言建模的任務(wù)。如ELMO使用雙向LSTM結(jié)構(gòu),BERT、GPT使用Transformer[20]結(jié)構(gòu)。與LSTM相比,Transformer中引入self-attention 結(jié)構(gòu)與多頭注意力機(jī)制,可以捕獲更多的文本信息,同時(shí)Transformer 可以做到并行化計(jì)算以及設(shè)計(jì)更深的神經(jīng)網(wǎng)絡(luò)。本文將近年來(lái)出現(xiàn)的預(yù)訓(xùn)練語(yǔ)言模型根據(jù)建模方式、模型結(jié)構(gòu)、模型介紹等進(jìn)行整理,如表1所示。
圖2 常見預(yù)訓(xùn)練語(yǔ)言模型結(jié)構(gòu)
表1 預(yù)訓(xùn)練語(yǔ)言模型對(duì)比
在ELMO以前解決閱讀理解的思路是通過Word2Vec等獲取固定的詞向量,或者隨機(jī)初始化詞向量,將字詞的表征送入神經(jīng)網(wǎng)絡(luò)。ELMO 將通過預(yù)訓(xùn)練得到的字詞表征以及網(wǎng)絡(luò)結(jié)構(gòu)信息保存,在具體的閱讀理解任務(wù)時(shí),把學(xué)到的句子特征信息也能應(yīng)用到具體的任務(wù)。GPT 引入Transformer 解碼模型,并使用單向的語(yǔ)言模型,針對(duì)NLP下游任務(wù)采用統(tǒng)一框架。BERT結(jié)合GPT與ELMO的優(yōu)勢(shì),引入Transformer編碼模型,采用雙向的語(yǔ)言模型,訓(xùn)練時(shí)增加了掩碼語(yǔ)言模型MLM[11]以及判斷句子順序的任務(wù),可以獲取更多的語(yǔ)言表征。MASS[23]改進(jìn)BERT 生成任務(wù),提出了屏蔽序列到序列的預(yù)訓(xùn)練方法,使用針對(duì)序列到序列的自然語(yǔ)言生成任務(wù)。百度公司提出的ENRIE1.0[24]和清華大學(xué)提出的ENRIE[26]模型引入外部知識(shí)到預(yù)訓(xùn)練過程,MTDNN[22]以及ENRIE2.0[25]引入多任務(wù)學(xué)習(xí)到預(yù)訓(xùn)練過程。XLNet[27]使用排列語(yǔ)言模型,加入雙注意力流機(jī)制,將Transformer改為Transformer-XL[36],可以捕獲更長(zhǎng)的句子依賴關(guān)系。RoBERTa[29]使用動(dòng)態(tài)的掩碼替換靜態(tài)掩碼,去除了上下句預(yù)測(cè)的任務(wù),使用了更大的batch,以及使用了更多的訓(xùn)練預(yù)料。BERT-WWM[30]引入全詞掩碼策略,將BERT對(duì)字的掩碼改為對(duì)詞的掩碼。TINYBERT、ALBERT以及DistilBERT等[31-33]通過對(duì)模型進(jìn)行蒸餾獲取小型化模型,方便模型的部署。NEZHA[34]通過對(duì)在模型、預(yù)訓(xùn)練任務(wù)和訓(xùn)練算法三個(gè)維度進(jìn)行了改進(jìn),K-BERT[35]加入知識(shí)圖譜,并引入了軟定位和可見矩陣來(lái)限制知識(shí)過多造成的噪聲。
經(jīng)過預(yù)訓(xùn)練得到的語(yǔ)言模型具有強(qiáng)大的語(yǔ)言表征能力,但應(yīng)用到機(jī)器閱讀理解任務(wù)上還需要進(jìn)行領(lǐng)域微調(diào)、任務(wù)微調(diào)等方法。將預(yù)訓(xùn)練語(yǔ)言模型遷移到機(jī)器閱讀理解任務(wù)上有以下幾種方法:
(1)領(lǐng)域微調(diào)
由于具體的機(jī)器閱讀理解任務(wù)與通用領(lǐng)域的數(shù)據(jù)存在差別,在具體任務(wù)之前,可以在任務(wù)數(shù)據(jù)上進(jìn)行領(lǐng)域增量學(xué)習(xí),使得最終的語(yǔ)言模型更靠近目標(biāo)任務(wù)。具體做法,可以將目標(biāo)任務(wù)的數(shù)據(jù)進(jìn)行處理,處理為預(yù)訓(xùn)練任務(wù)需要的輸入格式,然后進(jìn)行增量訓(xùn)練。
ELMO 以及GPT 系列[12,21]等采用自回歸語(yǔ)言模型的預(yù)訓(xùn)練方法,BERT 采用基于去噪自編碼器方法進(jìn)行訓(xùn)練,構(gòu)建掩碼預(yù)測(cè)與上下句預(yù)測(cè)任務(wù),MASS 需要構(gòu)建序列到序列的自然語(yǔ)言生成任務(wù),ERNIE與BERT衍生系列[24-35]進(jìn)行領(lǐng)域微調(diào)時(shí)可參考具體的預(yù)訓(xùn)練任務(wù)進(jìn)行設(shè)計(jì)。XLNet 加入了排列語(yǔ)言模型通過最大化所有可能的因式分解順序的對(duì)數(shù)似然,學(xué)習(xí)雙向語(yǔ)境信息,用自回歸本身的特點(diǎn)克服BERT 的缺點(diǎn)。設(shè)計(jì)好任務(wù)后將數(shù)據(jù)送入模型,設(shè)置好模型基本參數(shù),當(dāng)模型的損失降下來(lái)時(shí)即代表模型在目標(biāo)領(lǐng)域微調(diào)完成。通過領(lǐng)域微調(diào)可以較好地應(yīng)對(duì)目標(biāo)數(shù)據(jù)集較小的情況,在公共領(lǐng)域數(shù)據(jù)集上獲取較好的語(yǔ)言模型,然后在目標(biāo)數(shù)據(jù)集上進(jìn)行微調(diào)獲取與數(shù)據(jù)集相關(guān)的特征。
(2)解決長(zhǎng)度限制
由于機(jī)器閱讀理解任務(wù)很多篇章都會(huì)超過預(yù)訓(xùn)練模型的最大長(zhǎng)度限制,如BERT模型單條最大處理文本長(zhǎng)度為512個(gè)字符,因此絕大多數(shù)情況下需要做截?cái)嗷蛘吒鼡Q模型結(jié)構(gòu)等操作。
①篩選最相關(guān)段落
將輸入段落根據(jù)長(zhǎng)度限制進(jìn)行分段,段和段之間有重疊部分,保證不遺漏重要信息。然后設(shè)計(jì)一個(gè)段落分類網(wǎng)絡(luò),輸入問題和段落,以答案是否在這個(gè)段落里為標(biāo)簽進(jìn)行訓(xùn)練,針對(duì)數(shù)據(jù)集中篇章比較長(zhǎng)的問題有很大幫助。
②滑動(dòng)窗口
由于預(yù)訓(xùn)練模型單次能處理的最大文本長(zhǎng)度為512,當(dāng)輸入序列大于這個(gè)長(zhǎng)度時(shí),設(shè)定一個(gè)滑動(dòng)窗口,將超過512的輸入序列進(jìn)行分段,在第二段保留滑動(dòng)窗口大小的文本長(zhǎng)度以便于模型能連續(xù)處理上下文信息,不至于把段落信息完全分開。在最終答案選擇的時(shí)候,選擇在包含最大上下文的序列中輸出答案。
③使用Transformer-XL
Transformer-XL 架構(gòu)在Vanilla 提出的Transformer基礎(chǔ)上引入了兩點(diǎn)創(chuàng)新:循環(huán)機(jī)制和相對(duì)位置編碼,以克服Transformer存在難以處理長(zhǎng)文本的缺點(diǎn)。Transformer-XL的另一個(gè)優(yōu)勢(shì)是它可以用于單詞級(jí)和字符級(jí)的語(yǔ)言建模。通過Transformer-XL 可以提升模型在長(zhǎng)文本上捕捉信息的能力以及加快模型的推理速度。
(3)任務(wù)微調(diào)
根據(jù)數(shù)據(jù)集的特點(diǎn)設(shè)計(jì)不同的微調(diào)網(wǎng)絡(luò)結(jié)構(gòu),使得模型可以充分利用已訓(xùn)練好的網(wǎng)絡(luò)參數(shù),加快在有監(jiān)督任務(wù)上的訓(xùn)練速度,提高準(zhǔn)確率,基于BERT 模型的預(yù)訓(xùn)練任務(wù)和機(jī)器閱讀理解的微調(diào)結(jié)構(gòu)如圖3所示[11]。左側(cè)是預(yù)訓(xùn)練過程,經(jīng)過預(yù)訓(xùn)練得到較好的模型參數(shù)。右側(cè)是用于機(jī)器閱讀理解的微調(diào)示意圖,將問題與包含答案的上下文經(jīng)過編碼輸入神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)的參數(shù)由預(yù)訓(xùn)練得到的模型進(jìn)行初始化。
預(yù)訓(xùn)練模型中做有監(jiān)督任務(wù)微調(diào)時(shí)最低層共享一個(gè)公共架構(gòu),通過調(diào)節(jié)高層的任務(wù)架構(gòu)來(lái)實(shí)現(xiàn)不同任務(wù)的微調(diào)。ELMO 微調(diào)時(shí)考慮雙向LSTM 無(wú)監(jiān)督模型的高層任務(wù)架構(gòu)。GPT系列通過目標(biāo)任務(wù)訓(xùn)練模型后,將參數(shù)調(diào)整到監(jiān)督目標(biāo)任務(wù)中。BERT系列任務(wù)微調(diào)除了輸出層之外,在預(yù)訓(xùn)練和微調(diào)中使用了相同的體系結(jié)構(gòu),相同的預(yù)訓(xùn)練模型參數(shù)用于初始化不同下游任務(wù)的模型。百度提出的ERNIE模型預(yù)訓(xùn)練時(shí)構(gòu)建無(wú)監(jiān)督預(yù)訓(xùn)練任務(wù)和多任務(wù)學(xué)習(xí)進(jìn)行增量的更新,微調(diào)階段可以有效地利用預(yù)訓(xùn)練學(xué)習(xí)的知識(shí)。由于BERT 預(yù)訓(xùn)練過程需要掩碼一部分輸入,忽略了被掩碼位置之間的依賴關(guān)系,易出現(xiàn)預(yù)訓(xùn)練和微調(diào)效果的差異。XLNet用自回歸本身的特點(diǎn)克服BERT的缺點(diǎn),還融合了當(dāng)前最優(yōu)自回歸模型Transformer-XL。
圖3 預(yù)訓(xùn)練與機(jī)器閱讀理解任務(wù)微調(diào)
近年來(lái)發(fā)布的各種大型、真實(shí)的數(shù)據(jù)集推動(dòng)了機(jī)器閱讀理解領(lǐng)域的快速發(fā)展。大規(guī)模數(shù)據(jù)集的出現(xiàn)使得端到端神經(jīng)機(jī)器閱讀理解模型的訓(xùn)練成為可能。從單詞表示、注意力機(jī)制到預(yù)訓(xùn)練語(yǔ)言模型,神經(jīng)網(wǎng)絡(luò)模型發(fā)展迅速,甚至在某些數(shù)據(jù)集上超越了人類的表現(xiàn)。每個(gè)機(jī)器閱讀理解數(shù)據(jù)集通常由文檔和測(cè)試文檔理解能力的問題組成。問題的答案可以通過從文檔中查找或提供的候選答案里來(lái)獲得。在這里根據(jù)答案的格式,可以大致將數(shù)據(jù)集分為四種類型,即完形填空、多項(xiàng)選擇、抽取型、描述型數(shù)據(jù)集。與此同時(shí),還不斷有新的數(shù)據(jù)集出現(xiàn),其中包含了更多樣化的任務(wù),測(cè)試了更復(fù)雜的理解和推理能力。
本文將數(shù)據(jù)集根據(jù)語(yǔ)言、數(shù)量、來(lái)源等特征進(jìn)行整理,如表2 所示,并將機(jī)器閱讀理解相關(guān)數(shù)據(jù)集獲取方式進(jìn)行匯總托管于GitHub(https://github.com/crlgdx/MRCDataset)。
對(duì)于不同的MRC 任務(wù),有不同的評(píng)估指標(biāo)。要評(píng)估完形填空和多項(xiàng)選擇任務(wù),最常見的評(píng)價(jià)指標(biāo)是準(zhǔn)確率。在抽取型任務(wù)中通常使用EM(精確匹配)和F1 值進(jìn)行評(píng)價(jià),在描述型任務(wù)中,因?yàn)樽杂勺龃鸩痪窒抻谠忌舷挛模訰OUGE-L[48]和BLEU[49]被廣泛使用。
EM 算法的思想與準(zhǔn)確率類似,用于評(píng)估預(yù)測(cè)的答案是否與參考答案完全匹配。F1值計(jì)算方式是一種模糊匹配,將預(yù)測(cè)的答案短語(yǔ)切成詞后與參考答案共同計(jì)算準(zhǔn)確率與召回率,即便預(yù)測(cè)答案和參考答案不是完全匹配也可能得分。Rouge 是評(píng)估自動(dòng)文摘以及機(jī)器翻譯的一組指標(biāo)。它將通過機(jī)器自動(dòng)生成的摘要或翻譯與參考答案進(jìn)行比較計(jì)算,得出相應(yīng)的分值,以衡量自動(dòng)生成的摘要或翻譯與參考答案之間的“相似度”。BLEU最初用于評(píng)估翻譯性能。在應(yīng)用到MRC任務(wù)時(shí),BLEU評(píng)分主要衡量預(yù)測(cè)答案與標(biāo)準(zhǔn)答案之間的相似性。
表2 機(jī)器閱讀理解數(shù)據(jù)集匯總
早期的機(jī)器閱讀理解采用模塊分離的方式進(jìn)行設(shè)計(jì),通過詞嵌入層、編碼層、匹配層以及答案選擇層各個(gè)模塊共同組合進(jìn)行機(jī)器閱讀。而早期的詞向量技術(shù)和網(wǎng)絡(luò)結(jié)構(gòu)不夠成熟,限制了模型的表達(dá)與計(jì)算能力。預(yù)訓(xùn)練語(yǔ)言模型的發(fā)展使多個(gè)NLP 任務(wù)取得了明顯的進(jìn)步,增強(qiáng)了語(yǔ)言表征能力,同時(shí)也推動(dòng)了機(jī)器閱讀理解的進(jìn)步。
表3和表4將當(dāng)下預(yù)訓(xùn)練模型相關(guān)論文中提到的數(shù)據(jù)集以及性能得分進(jìn)行匯總,表3 是目前比較常見的SQuAD 1.1和SQuAD 2.0數(shù)據(jù)集。通過對(duì)比可以看出預(yù)訓(xùn)練模型優(yōu)于傳統(tǒng)模塊分離方式的性能,帶來(lái)絕對(duì)的效果提升。在XLNet 以及后續(xù)的BERT 系列的改進(jìn)版本中性能逐漸提升,說(shuō)明預(yù)訓(xùn)練模型還需要進(jìn)一步發(fā)展。表4 匯總了預(yù)訓(xùn)練模型在相關(guān)中文數(shù)據(jù)集上的表現(xiàn),由表中CMRC、DRCD、DuReader數(shù)據(jù)集的表現(xiàn)可以看出描述型任務(wù)的數(shù)據(jù)集比抽取型任務(wù)的數(shù)據(jù)集要更復(fù)雜、更困難。再通過CMRC與CJRC數(shù)據(jù)集的性能對(duì)比,可以看出專業(yè)性較強(qiáng)的任務(wù)也會(huì)更復(fù)雜。CMRC是通用領(lǐng)域的數(shù)據(jù)集,而CJRC是法律領(lǐng)域的數(shù)據(jù)集,預(yù)訓(xùn)練模型在專業(yè)知識(shí)較強(qiáng)的領(lǐng)域上還有很大的提升空間。
表3 預(yù)訓(xùn)練模型在英文數(shù)據(jù)集上的性能表現(xiàn) %
(1)模型輕量化
在預(yù)訓(xùn)練模型技術(shù)的推動(dòng)下,模型的網(wǎng)絡(luò)結(jié)構(gòu)越來(lái)越復(fù)雜,參數(shù)也越來(lái)越多。復(fù)雜的網(wǎng)絡(luò)帶來(lái)了性能提升的同時(shí),也帶來(lái)了應(yīng)用的困難。首先模型需要在大量的無(wú)監(jiān)督數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,需要大量的時(shí)間以及巨大的運(yùn)算資源。按照BERT論文里描述的參數(shù),其基礎(chǔ)版模型的設(shè)定在消費(fèi)級(jí)的顯卡Titan x 或GTX 1080ti(11 GB RAM)上,需要近幾個(gè)月的時(shí)間進(jìn)行預(yù)訓(xùn)練,同時(shí)還會(huì)面臨顯存不足的問題。其次,復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)很難做到實(shí)時(shí)的響應(yīng),而用戶的需求一般需要在秒級(jí)內(nèi)進(jìn)行響應(yīng),這對(duì)服務(wù)器的性能也提出很大的要求。
表4 預(yù)訓(xùn)練模型在中文數(shù)據(jù)集上的性能表現(xiàn)%
針對(duì)模型參數(shù)較大,網(wǎng)絡(luò)復(fù)雜的情況,研究員也提出了一些新的模型,如對(duì)網(wǎng)絡(luò)蒸餾、嵌入層因式分解、跨層網(wǎng)絡(luò)參數(shù)共享等。
ERNIE Tiny 是一個(gè)小型化ERNIE[24],通過采用淺層模型,將12層的ERNIE Base模型壓縮為3層,線性提速4 倍,但效果也會(huì)有較大幅度的下降;增加隱藏層的數(shù)量,模型變淺帶來(lái)的損失可通過隱藏層的增大來(lái)彌補(bǔ)。由于ERNIE采用的框架對(duì)于通用矩陣運(yùn)算的最后一維參數(shù)的不同取值會(huì)有深度的優(yōu)化,因此增加將隱藏層大小不會(huì)帶來(lái)速度線性的增加;縮短輸入文本長(zhǎng)度,ERNIE Tiny 是首個(gè)開源的中文詞粒度的預(yù)訓(xùn)練模型。這里的短是指通過詞粒度替換字粒度,能夠明顯地縮短輸入文本的長(zhǎng)度,而輸入文本長(zhǎng)度是和預(yù)測(cè)速度有線性相關(guān);為了進(jìn)一步提升模型的效果,ERNIE Tiny扮演學(xué)生角色,利用模型蒸餾的方式在Transformer 層和Prediction層去學(xué)習(xí)教師模型ERNIE模型對(duì)應(yīng)層的分布或輸出,這種方式能夠縮近ERNIE Tiny 和ERNIE 的效果差異。
在ALBERT[32]中通過對(duì)Embedding層進(jìn)行因式分解,縮減網(wǎng)絡(luò)參數(shù),由于在BERT 中,字詞Embedding 與Encoder輸出的Embedding維度是一樣的。但是ALBERT作者認(rèn)為,詞級(jí)別的Embedding是沒有上下文依賴的表述,而隱藏層的輸出值不僅包括了詞本身的意思還包括一些上下文信息,理論上來(lái)說(shuō)隱藏層的表述包含的信息應(yīng)該更多一些,因此應(yīng)該讓隱藏層大于嵌入層,所以ALBERT的詞向量的維度小于Encoder輸出維度。跨網(wǎng)絡(luò)層的參數(shù)共享是提高參數(shù)使用效率的另一種方法,共享參數(shù)的方法有多種,例如只跨層共享前饋網(wǎng)絡(luò)參數(shù),或只共享注意力參數(shù)。
(2)結(jié)合外部知識(shí)
像BERT 這樣的無(wú)監(jiān)督預(yù)訓(xùn)練語(yǔ)言表示模型已經(jīng)在多個(gè)NLP 任務(wù)中取得了最先進(jìn)的結(jié)果。這些模型是在大型開放域語(yǔ)料庫(kù)上預(yù)先訓(xùn)練的,以獲得一般的語(yǔ)言表示,然后在特定的下游任務(wù)中進(jìn)行微調(diào),以吸收特定領(lǐng)域的知識(shí)。然而,由于訓(xùn)練過程與微調(diào)領(lǐng)域的數(shù)據(jù)集存在差異,對(duì)于某些需要相關(guān)領(lǐng)域知識(shí)很強(qiáng)的問題,在公共領(lǐng)域訓(xùn)練的模型將會(huì)比較吃力。
針對(duì)預(yù)訓(xùn)練與微調(diào)差異較大的問題可以結(jié)合外部知識(shí)進(jìn)行輔助微調(diào),如結(jié)合專家知識(shí),結(jié)合領(lǐng)域內(nèi)已有的知識(shí)圖譜幫助模型獲取更多領(lǐng)域相關(guān)的知識(shí)。當(dāng)閱讀一個(gè)特定領(lǐng)域的文本時(shí),普通人只能根據(jù)上下文來(lái)理解單詞,而專家則可以用相關(guān)的領(lǐng)域知識(shí)進(jìn)行推理。
為了使模型充分利用外部知識(shí),清華大學(xué)Zhang等人[26]認(rèn)為知識(shí)結(jié)構(gòu)中的信息實(shí)體可以通過外部知識(shí)增強(qiáng)語(yǔ)言表征,利用大規(guī)模的文本語(yǔ)料庫(kù)和知識(shí)庫(kù)來(lái)訓(xùn)練一個(gè)增強(qiáng)的語(yǔ)言表示模型。百度公司Sun等人[24]提出的ERNIE 1.0 通過建模海量數(shù)據(jù)中的詞、實(shí)體及實(shí)體關(guān)系,學(xué)習(xí)真實(shí)世界的語(yǔ)義知識(shí),增強(qiáng)了模型語(yǔ)義表示能力。后來(lái)提出基于持續(xù)學(xué)習(xí)的語(yǔ)義理解預(yù)訓(xùn)練框架ERNIE 2.0[25],使用多任務(wù)學(xué)習(xí)增量式構(gòu)建預(yù)訓(xùn)練任務(wù)。通過新增的實(shí)體預(yù)測(cè)、句子因果關(guān)系判斷、文章句子結(jié)構(gòu)重建等語(yǔ)義任務(wù),ERNIE 2.0語(yǔ)義理解預(yù)訓(xùn)練模型從訓(xùn)練數(shù)據(jù)中獲取了詞法、句法、語(yǔ)義等多個(gè)維度的自然語(yǔ)言信息,極大地增強(qiáng)了通用語(yǔ)義表示能力。北京大學(xué)Liu等人提出了一種基于知識(shí)圖譜的語(yǔ)言表示模型K-BERT[35],該模型將三元組作為領(lǐng)域知識(shí)注入到句子中?;谥R(shí)圖譜的閱讀理解突破了回答問題所需的知識(shí)范圍僅限于給定上下文的限制。因此,借助外部世界的知識(shí),可以在一定程度上縮小機(jī)器理解與人類理解之間的差距,提高系統(tǒng)的可解釋性。
(3)任務(wù)數(shù)據(jù)多樣性
由于預(yù)訓(xùn)練時(shí)通常在有限的語(yǔ)料庫(kù)下進(jìn)行訓(xùn)練,因此,通過進(jìn)一步對(duì)其他語(yǔ)料庫(kù)進(jìn)行預(yù)訓(xùn)練,增加多樣性可以提高通用性,在微調(diào)階段使用來(lái)自不同的語(yǔ)料庫(kù)可以作為輔助任務(wù)。向MRC添加語(yǔ)言建模目標(biāo)的好處是它可以避免災(zāi)難性的遺忘,并保持從培訓(xùn)前任務(wù)中學(xué)到的最有用的功能。此外,通過合并其他NLP任務(wù)(例如自然語(yǔ)言推理和段落排名)的監(jiān)督數(shù)據(jù)集可以學(xué)習(xí)到更好的語(yǔ)言表示形式。
近年來(lái),隨著機(jī)器閱讀理解的發(fā)展,相關(guān)的中文數(shù)據(jù)集也逐漸增多。人們對(duì)各種信息的需求也日益增加,數(shù)據(jù)集逐漸擴(kuò)展到各個(gè)領(lǐng)域,出現(xiàn)了針對(duì)法律案件[47]、軍事信息等相關(guān)的數(shù)據(jù)集。數(shù)據(jù)集的多樣性可以豐富機(jī)器閱讀理解任務(wù),同時(shí)也帶來(lái)更多可能。
現(xiàn)有的模型對(duì)于存在噪聲的例子還很脆弱,這將成為在現(xiàn)實(shí)世界中部署這些模型時(shí)所面臨的一個(gè)嚴(yán)重問題。而且目前的大多數(shù)工作都是對(duì)同一個(gè)數(shù)據(jù)集分割進(jìn)行訓(xùn)練和評(píng)估,如果在一個(gè)數(shù)據(jù)集上訓(xùn)練模型,并在另一個(gè)數(shù)據(jù)集上進(jìn)行評(píng)估,由于它們的文本來(lái)源和構(gòu)造方法不同,性能將顯著下降。需要考慮如何創(chuàng)造更好的對(duì)抗訓(xùn)練示例并且將它們加入到訓(xùn)練過程中對(duì)遷移學(xué)習(xí)和多任務(wù)學(xué)習(xí)進(jìn)行更多深入的研究,建立跨數(shù)據(jù)集的高性能模型。
(4)合適的評(píng)估指標(biāo)
評(píng)估指標(biāo)是衡量機(jī)器閱讀理解水平的清晰指標(biāo),但是目前對(duì)模型性能的評(píng)價(jià)大多在比較單一的任務(wù)上。模型在某一個(gè)數(shù)據(jù)集上性能比較好時(shí),在其他數(shù)據(jù)集上效果往往會(huì)比較差。在單一任務(wù)或者單一數(shù)據(jù)集上性能的提升是否意味著模型取得了真正的進(jìn)步?如何判斷閱讀理解模型與真正的人類閱讀理解水平之間的差距是一個(gè)比較有挑戰(zhàn)的問題。
評(píng)價(jià)模型性能時(shí)可以參考人類的閱讀理解考試[50],因?yàn)檫@些問題通常是由專家學(xué)者共同策劃和設(shè)計(jì),以測(cè)試人類閱讀理解能力的不同水平。在構(gòu)建自然語(yǔ)言理解系統(tǒng)時(shí),使計(jì)算機(jī)系統(tǒng)與人類評(píng)價(jià)系統(tǒng)保持一致是一種正確的方法。在未來(lái),對(duì)模型的評(píng)價(jià)不能只在一個(gè)數(shù)據(jù)集上進(jìn)行測(cè)試,需要將許多閱讀理解數(shù)據(jù)集結(jié)合起來(lái),作為一個(gè)通用的標(biāo)準(zhǔn)進(jìn)行評(píng)估,這將有助于更好地區(qū)分哪些模型是對(duì)閱讀理解真正的進(jìn)步。
(1)輔助決策
機(jī)器閱讀理解技術(shù)作為人工智能領(lǐng)域重要的研究方向,主要是讓機(jī)器讀懂文本、理解語(yǔ)義、挖掘推理出關(guān)鍵信息,幫助人類從海量碎片信息中獲取所需知識(shí)。在數(shù)據(jù)大爆炸的時(shí)代,如何快速地獲取用戶關(guān)心的信息幫助用戶進(jìn)行決策是一個(gè)有挑戰(zhàn)的任務(wù)。尤其是面對(duì)專業(yè)性比較強(qiáng)的領(lǐng)域,如醫(yī)生的診斷記錄,金融行業(yè)的歷史數(shù)據(jù),法院的判決書等,這些都需要用戶具備較多的相關(guān)知識(shí)儲(chǔ)備,需要前期大量的準(zhǔn)備工作,消耗大量的人力物力。在知識(shí)賦能的信息化時(shí)代,通過機(jī)器閱讀理解可以快速地搜集用戶所關(guān)心的資料,幫助用戶分析問題解決問題,并給出合理的建議。因此,將機(jī)器閱讀理解引入專業(yè)性較強(qiáng)的領(lǐng)域,可以幫助用戶更好地決策,更有效地工作。
(2)社區(qū)問答
網(wǎng)絡(luò)技術(shù)的飛速發(fā)展推動(dòng)了互聯(lián)網(wǎng)中的用戶生成內(nèi)容的規(guī)模不斷增長(zhǎng),作為一種新的網(wǎng)絡(luò)信息資源,高質(zhì)量的用戶生成內(nèi)容的研究和應(yīng)用價(jià)值正逐漸顯現(xiàn)。由問題和其答案組成的問答對(duì)是用戶生成內(nèi)容的典型代表,是用戶之間以互聯(lián)網(wǎng)為媒介的知識(shí)分享行為的直接產(chǎn)物。傳統(tǒng)的社區(qū)問答主要基于檢索去匹配用戶的問題并尋找答案,這樣得到的答案往往包含大量的噪聲,而通過與機(jī)器閱讀理解相結(jié)合的方式可以從包含著大量噪聲信息的網(wǎng)絡(luò)社區(qū)內(nèi)容中自動(dòng)識(shí)別和抽取問答信息,快速精準(zhǔn)地得到用戶所關(guān)心的答案。
(3)聊天機(jī)器人
智能聊天機(jī)器人,是一種通過自然語(yǔ)言模擬人類進(jìn)行對(duì)話的程序,可以對(duì)外提供客戶服務(wù)、對(duì)內(nèi)進(jìn)行業(yè)務(wù)輔助,實(shí)現(xiàn)全方位的效能提升,降本增效。目前,特定場(chǎng)景和領(lǐng)域的聊天機(jī)器人已經(jīng)展現(xiàn)出了很高的自然語(yǔ)言理解與處理能力,例如:小度、Siri、小愛同學(xué)等。智能聊天機(jī)器人除了可以閑聊以外,還可以用在問答作為問答機(jī)器人,回答專業(yè)領(lǐng)域的問題。未來(lái),與機(jī)器閱讀理解相結(jié)合的技術(shù)將使得聊天機(jī)器人能夠更準(zhǔn)確地識(shí)別用戶的問題和意圖。