蘇 珂,黃瑞陽,張建朋,余詩媛,胡 楠
(1.鄭州大學(xué) 軟件學(xué)院,鄭州 450001;2.國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,鄭州 450002)
機(jī)器閱讀理解(Machine Reading Comprehension,MRC)是一項(xiàng)使機(jī)器能夠理解文本篇章段落語義內(nèi)容并回答人類相關(guān)問題的技術(shù)。MRC 可以幫助人類從海量文本中快速聚焦相關(guān)主題,顯著提升人類獲取信息的效率,因此,其在文本理解、信息抽取、對話系統(tǒng)等領(lǐng)域具有極高的應(yīng)用價值。近年來,隨著深度學(xué)習(xí)快速發(fā)展,機(jī)器智能化水平大幅提升,一些大規(guī)模MRC 數(shù)據(jù)集被陸續(xù)發(fā)布,基于深度學(xué)習(xí)的MRC 技術(shù)開始進(jìn)入人們的視野。與傳統(tǒng)MRC 模型相比,基于深度學(xué)習(xí)的MRC 模型使用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),能夠更好地挖掘文本的上下文語義信息,在文本理解和智能問答中表現(xiàn)更為出色,甚至超越了人類水平。因此,該技術(shù)受到工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注,被認(rèn)為是實(shí)現(xiàn)通用人工智能的重要支撐。
根據(jù)答案的形式,常見的MRC 任務(wù)可分為完形填空式、多項(xiàng)選擇式、片段抽取式、自由回答式等4 類[1],其中,完形填空式和多項(xiàng)選擇式是考試試題中的常見題型,數(shù)據(jù)收集相對簡單,這兩類任務(wù)通常采用淺層語義匹配或多分類模型解決。自由回答式閱讀理解形式多樣且難度大。相比而言,片段抽取式閱讀理解難度適中,且有高質(zhì)量的數(shù)據(jù)集支撐,其作為文本問答、信息抽取等領(lǐng)域的基礎(chǔ)任務(wù),具有較高的研究價值,因此也受到更多關(guān)注。然而,現(xiàn)有的抽取式閱讀理解模型和相關(guān)數(shù)據(jù)集大多限定答案僅由單個文本中單個片段組成,這在很大程度上限制了當(dāng)前MRC 模型的實(shí)際應(yīng)用[2]。
在開放域問答等復(fù)雜場景中,很多問題對應(yīng)答案的段落都不是預(yù)先確定的,需要在多個文本段落中“跳轉(zhuǎn)”,即模型需要整合來自不同來源的證據(jù)文本并推斷出答案。因此,多跳機(jī)器閱讀理解技術(shù)應(yīng)運(yùn)而生,其不是從文章中直接定位答案,而是經(jīng)過多步的跳轉(zhuǎn)推理后獲取答案,相比單跳機(jī)器閱讀理解更具挑戰(zhàn)性。如對于問題“誰是X 導(dǎo)演2018 年在洛杉磯拍攝的愛情電影的女主角”,首先要定位到X 導(dǎo)演2018 年在洛杉磯拍攝的愛情電影的實(shí)體,然后跳轉(zhuǎn)到該實(shí)體所在段落或文本,找到電影的女主角作為最終答案。可以看出,這樣的問題更加復(fù)雜,處理難度更大。首先,要從多篇文檔中檢索到與問題相關(guān)的文檔。答案監(jiān)督的多跳閱讀理解模型可能會檢索包含正確答案但與問題無關(guān)的文檔,這種噪聲會影響模型的性能表現(xiàn)。其次,可能存在不能回答問題的情況。如果模型檢索得到的文檔中沒有答案,但沒有判斷出問題不能回答,則即使答案不正確也會輸出答案,這將導(dǎo)致模型性能表現(xiàn)變差。此外,還可能存在多個答案,需要根據(jù)問題所在的上下文語境做進(jìn)一步判斷。如問題“美國總統(tǒng)是誰”,特朗普和奧巴馬都是可能的答案,但是哪一個是正確答案還需要結(jié)合語境進(jìn)行推斷。除上述挑戰(zhàn)外,還要對多條線索進(jìn)行聚合?;卮饐栴}的線索可能出現(xiàn)在多篇文檔中,需要對其進(jìn)行總結(jié)歸納或者逐步跳轉(zhuǎn)才能得出最終答案。
近年來,很多研究者致力于解決面向大型非結(jié)構(gòu)化文本語料庫的開放域問答(Open-domain Question Answering,OpenQA)任務(wù),并在多跳機(jī)器閱讀理解方面開展了許多研究與實(shí)踐。本文對多跳機(jī)器閱讀理解技術(shù)的研究進(jìn)展進(jìn)行梳理總結(jié),將現(xiàn)有方法歸為基于問題分解、基于圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)、改進(jìn)檢索、基于推理路徑等方法,分別闡述特點(diǎn)和優(yōu)劣并展示各模型在專用數(shù)據(jù)集上的性能表現(xiàn)。在此基礎(chǔ)上,分析當(dāng)前MHMRC 任務(wù)的熱點(diǎn)與難點(diǎn),并展望未來發(fā)展方向。
現(xiàn)有多跳問答的工業(yè)實(shí)踐往往依賴于大型知識庫完成,面向非結(jié)構(gòu)化文本數(shù)據(jù)的多跳閱讀理解任務(wù),現(xiàn)有方法主要包括以下3 類:
1)基于問題分解的方法,即利用化繁為簡的思想將復(fù)雜問題分解為單步即可找到答案的子問題,最后子問題答案即為復(fù)雜問題的答案。
2)基于圖神經(jīng)網(wǎng)絡(luò)(GNN)的方法,即先對文本進(jìn)行命名實(shí)體識別,抽取出實(shí)體,再以實(shí)體作為GNN中的節(jié)點(diǎn)來處理多跳問題。
3)針對開放域多跳改進(jìn)檢索和基于推理路徑的方法。改進(jìn)檢索的方法是基于信息抽取(Information Retrieval,IR)模型先對開放域語料進(jìn)行粗過濾,將問題支持文檔或段落檢索出來,再拼接支持文檔,使用單跳閱讀理解(Reading Comprehension,RC)模型從中進(jìn)行答案抽取,其使用IR 和RC 模型迭代檢索,通過每次將閱讀理解結(jié)果反饋給IR 以更好地選擇支持文檔?;谕评砺窂降姆椒▌t是為問題生成一個推理鏈,根據(jù)此推理鏈進(jìn)行跳轉(zhuǎn)即可得出答案。
基于問題分解的方法是指將復(fù)雜問題分解成若干個相對簡單的子問題,然后把這些子問題及其答案作為上下文提供給模型,以此大幅降低直接回答復(fù)雜問題的難度。
文獻(xiàn)[3]設(shè)計(jì)了DECOMPRC 系統(tǒng),將組合問題分解為若干個簡單的子問題,而這些子問題可以通過現(xiàn)成的單跳RC 模型來回答。DECOMPRC 通過3 個步驟回答問題:1)根據(jù)3 種推理類型將原始的多跳問題分解為多個單跳子問題,3 種推理類型包括橋接、交叉和比較,其中,橋接類型需要找到第1 跳與第2 跳的橋接證據(jù),交叉類型要求找到滿足2 個獨(dú)立條件的2 個實(shí)體,比較類型則需要比較2 個不同實(shí)體的屬性;2)對每一種推理類型,利用單跳RC 模型回答每個子問題,并根據(jù)推理類型組合答案;3)利用一個分解打分器來判斷哪個分解是最合適的,并將該分解的答案作為最終答案輸出。此外,DECOMPRC系統(tǒng)還采用了一種新的全局重新打分方法,即考慮每種分解來選擇最佳答案,大幅提高了整體性能,增強(qiáng)了模型的可解釋性,為答案推理提供了依據(jù)。
文獻(xiàn)[4]提出一個使用指針網(wǎng)絡(luò)框架解決問題分解的方法。指針網(wǎng)絡(luò)主要用于解決組合優(yōu)化類問題,首先使用注意力機(jī)制計(jì)算Softmax 概率值,將其作為指針指向輸入序列中的元素,然后對輸入序列進(jìn)行組合,最后使用有監(jiān)督方法對模型進(jìn)行訓(xùn)練。該方法先利用指針網(wǎng)絡(luò)分解復(fù)雜問題,并把分解后的簡單問題送入搜索引擎查找問題上下文,再利用單跳RC 模型抽取答案。具體地,先通過構(gòu)造計(jì)算樹的方法來拆分問題,再使用Web-based QA+RASOR和DocQA 這2 個RC 模型來給出答案和該答案得分,并和原來的得分進(jìn)行比較,進(jìn)而決定是否進(jìn)行分解。該文作者同時發(fā)布了Complex WebQuestion數(shù)據(jù)集,其中問題類型包括Comp(two hop)、conj(two constraint)、comparable、superlative 等4 類。
多跳問答需要模型連接分散在長上下文中的多條證據(jù)來回答問題,如HotpotQA 數(shù)據(jù)集由包含4 種不同多跳推理范式的問題組成(具體包括需要橋?qū)嶓w或者需要對比2 個實(shí)體,以及需要檢查實(shí)體多個屬性和通過橋?qū)嶓w來推斷另一實(shí)體的屬性),這使得單個神經(jīng)網(wǎng)絡(luò)模型難以處理所有情況。文獻(xiàn)[5]基于棧的思想提出一個基于控制器的模塊自組裝神經(jīng)網(wǎng)絡(luò),其中包括4個新的模塊(find,relocation,compare,no),每個模塊執(zhí)行單一類型的推理。該自組裝網(wǎng)絡(luò)首先以預(yù)訓(xùn)練BERT 詞向量作為輸入來理解多跳問題的語義,使用控制器從問題中推斷出所需的每一步推理行為并輸出子問題,同時預(yù)測所有可用模塊的軟組合,以引導(dǎo)主網(wǎng)絡(luò)遵循推理路徑。然后按照模塊軟組合依次或并行使用子模塊進(jìn)行答案推理得出最終答案,其中中間模塊可以通過橋?qū)嶓w連接2 個相距較遠(yuǎn)的證據(jù)事實(shí)。
先前的工作探索了用監(jiān)督或啟發(fā)式算法來分解問題,而文獻(xiàn)[6]提出一種在無監(jiān)督的情況下自動分解問題的算法。分解包括3 個階段:1)學(xué)習(xí)在無監(jiān)督情況下使用偽分解對多跳問題進(jìn)行分解;2)使用現(xiàn)成的單跳RC 模型回答子問題;3)使用子問題及其答案作為附加輸入來更準(zhǔn)確地回答復(fù)雜問題。該方法只依賴于最終的答案作為監(jiān)督,但與依賴于強(qiáng)監(jiān)督的方法一樣有效,即非監(jiān)督分解產(chǎn)生的子問題答案通常與HotpotQA 中標(biāo)注的證據(jù)事實(shí)一致。然而不足的是,這種無監(jiān)督分解在很大程度上是抽取式的,雖然這對于組合式的多跳問題也有效,但不能處理所有的復(fù)雜問題,后續(xù)仍然需要更多地研究無監(jiān)督分解。
基于問題分解的方法對比如表1 所示,從中可以看出,各模型基本的分解思路都是相同的,大致也都是將問題類型分為橋接、對比等幾個類型,主要差異在于分解方式的不同,有使用分解打分器、指針網(wǎng)絡(luò)等來選擇分解組合的,也有探索無監(jiān)督分解的工作。因此,針對此類方法的研究思路主要是改進(jìn)分解方式,包括探索魯棒的無監(jiān)督分解方法等。
表1 基于問題分解的MHMRC 方法對比Table 1 Comparison of MHMRC methods based on question decomposition
圖神經(jīng)網(wǎng)絡(luò)(GNN)是一種用于處理圖結(jié)構(gòu)數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)模型,在信息傳播、關(guān)系歸納偏置上展現(xiàn)了優(yōu)秀的性能。當(dāng)信息在圖的節(jié)點(diǎn)之間傳播時,GNN 中每個節(jié)點(diǎn)會學(xué)習(xí)到它的鄰居節(jié)點(diǎn)狀態(tài)表示,并以此來更新自己的節(jié)點(diǎn)表示。因此,研究者采用圖數(shù)據(jù)結(jié)構(gòu)構(gòu)建文本數(shù)據(jù)之間的關(guān)聯(lián),應(yīng)用GNN 技術(shù)在多文檔多段落數(shù)據(jù)上實(shí)現(xiàn)多跳推理問答。一方面,利用圖表示學(xué)習(xí)在節(jié)點(diǎn)和邊表示上的優(yōu)勢,可以更好地表示文本語義;另一方面,利用圖神經(jīng)網(wǎng)絡(luò)在信息傳播和推理上的優(yōu)勢,可以更有效地在多文檔多段落之間進(jìn)行跳轉(zhuǎn),提供可解釋的模型。顯然,將GNN 用于多跳推理任務(wù)時必須解決以下問題:1)確定圖中的節(jié)點(diǎn),并初始化節(jié)點(diǎn)表示;2)確定節(jié)點(diǎn)與節(jié)點(diǎn)之間的連邊關(guān)系;3)設(shè)計(jì)節(jié)點(diǎn)之間的信息傳遞算法。
文獻(xiàn)[7]提出了基于GNN 的多跳問題處理方法,分別構(gòu)建了基于圖卷積網(wǎng)絡(luò)(Graph Convolutional Network,GCN)和圖循環(huán)網(wǎng)絡(luò)(Graph Recurrent Network,GRN)的基線模型MHQA-GCN 和MHQAGRN。對于輸入,首先用BiLSTM 層編碼,然后提取段落中提及實(shí)體的表示向量(使用斯坦福CoreNLP來獲得共指解析和命名實(shí)體識別標(biāo)注結(jié)果),將段落中的實(shí)體名或者代表實(shí)體的代詞視為圖中的節(jié)點(diǎn)。在圖中考慮3 種類型的邊:1)不同文章之間或同一文章中相距較遠(yuǎn)的同一實(shí)體節(jié)點(diǎn)之間的連邊;2)在同一文章中2 個不同實(shí)體節(jié)點(diǎn)之間的連邊,這有助于在實(shí)體間傳遞有用的證據(jù);3)在同一段落固定窗口閾值內(nèi)2 次提及的不同實(shí)體節(jié)點(diǎn)之間的連邊。MHQA-GCN 與MHQA-GRN 采用相同的方法初始化提及實(shí)體的表示向量,其區(qū)別主要在于GCN 和GRN 傳遞信息時更新節(jié)點(diǎn)狀態(tài)的方式,其中GRN 采用門控機(jī)制,而GCN 采用帶Sigmoid 的線性傳輸。
文獻(xiàn)[8]也在多步推理任務(wù)中引入了GCN 算法來建模實(shí)體之間的關(guān)系,建立了Entity-GCN 模型。Entity-GCN 使用預(yù)訓(xùn)練語言模型ELMo2 來初始化節(jié)點(diǎn)表示,而節(jié)點(diǎn)關(guān)系則由以下4 個規(guī)則確定:1)同一文檔中的實(shí)體節(jié)點(diǎn)相連接;2)相同的2 個實(shí)體節(jié)點(diǎn)相連接;3)處于同一共指關(guān)系鏈中的實(shí)體節(jié)點(diǎn)相連接;4)為防止出現(xiàn)與其他實(shí)體都沒有聯(lián)系的孤立實(shí)體,任意2 個實(shí)體節(jié)點(diǎn)之間都有特殊的邊相連接。對于節(jié)點(diǎn)間的消息傳遞,Entity-GCN 在使用GCN 之外還引入了門控機(jī)制來控制每一層各個節(jié)點(diǎn)的表示被傳遞到下一層的比例。
文獻(xiàn)[9]利用對自然語言分粒度進(jìn)行建模的思想,將候選答案、文檔和文檔中的實(shí)體建模為圖中不同類型的節(jié)點(diǎn),提出一種異構(gòu)文檔-實(shí)體圖(Heterogeneous Document-Entity graph,HDE graph)。
與Entity-GCN 不同的是,HDE graph 有候選答案、文檔、實(shí)體等3 種類型的節(jié)點(diǎn),并同時使用Co-attention和Self-attention 上下文編碼方法來學(xué)習(xí)初始節(jié)點(diǎn)表示。首先使用門控循環(huán)單元(Gate Recurrent Unit,GRU)分別對問題、文檔和候選答案進(jìn)行編碼。然后進(jìn)行實(shí)體抽取,將問題和候選答案中的提及實(shí)體都抽取出來作為實(shí)體。最后計(jì)算節(jié)點(diǎn)間的聯(lián)合注意力和自注意力池化作為節(jié)點(diǎn)的初始化表示。其中節(jié)點(diǎn)之間的連邊關(guān)系具體包括:1)文檔與候選答案,候選答案出現(xiàn)在文檔中則邊存在;2)文檔與實(shí)體,若實(shí)體是從該文檔中抽取出的則邊存在;3)候選答案和實(shí)體,若候選答案提及到該實(shí)體則邊存在;4)實(shí)體與實(shí)體,若兩實(shí)體是從同一篇文章中抽取出的則邊存在,若兩實(shí)體是同一個候選答案或問題對象所提及到的,則邊也存在;5)所有候選答案互相連接;6)連接不滿足上述條件的實(shí)體。在推理鏈方面,HDE graph使用與Entity-GCN 相同的圖卷積算法。
同樣基于GCN 方法,文獻(xiàn)[10]提出了BAG 模型,采用多級特征來更好地進(jìn)行節(jié)點(diǎn)間關(guān)系表示,并引入圖與問題間的雙向注意力來生成問題感知的節(jié)點(diǎn)表示,為推理預(yù)測提供信息。如圖1 所示,BAG 模型有候選答案和提及實(shí)體2 類實(shí)體節(jié)點(diǎn)。對于節(jié)點(diǎn)表示,其使用GloVe+ELMo+NER Embedding+POS Embedding 多級特征來初始節(jié)點(diǎn)。與HDE graph 不同的是,BAG 的節(jié)點(diǎn)表示在初始化時并不與問題進(jìn)行交互,而是在圖與問題的雙向注意力層進(jìn)行交互,而對于節(jié)點(diǎn)的連邊關(guān)系,則是在同一實(shí)體在不同文本中和不同實(shí)體在同一文本中的2 種情況下的節(jié)點(diǎn)間連接邊。在消息傳遞算法上,BAG 同樣使用關(guān)系圖卷積網(wǎng)絡(luò)(R-GCN)模型與門控機(jī)制。
圖1 BAG 模型架構(gòu)Fig.1 Framework of BAG model
上述模型都是針對WIKIHOP 數(shù)據(jù)集設(shè)計(jì)的,該數(shù)據(jù)集包含候選答案,只需要根據(jù)已知內(nèi)容在候選答案中做選擇題。對于類似HotpotQA 的抽取式的閱讀理解,模型的預(yù)測目標(biāo)是文本中答案開始和結(jié)束位置的概率,并抽取出概率最大的文本片段作為答案。因此,將圖神經(jīng)網(wǎng)絡(luò)應(yīng)用于抽取式閱讀理解任務(wù)還需要進(jìn)一步解決如何從推理鏈條的最后一跳中抽取出最終答案片段的問題。
文獻(xiàn)[11]提出DFGN(Dynamically Fused Graph Network)模型,將圖網(wǎng)絡(luò)應(yīng)用于抽取式閱讀理解。該模型基于需要閱讀的文章構(gòu)建實(shí)體圖,對于所給的候選文檔集合,首先使用一個二分類模型將問題相關(guān)的段落篩選出來,并將被選出的段落列表拼接作為文本,將問題與文本拼接,經(jīng)過BERT 和雙向注意力的編碼得到問題與文本中每個單詞的向量表示。在使用預(yù)訓(xùn)練BERT 在命名實(shí)體識別的經(jīng)典數(shù)據(jù)集CoNLL 2003 上進(jìn)行微調(diào)后,對HotpotQA 的每篇文章進(jìn)行命名實(shí)體識別,得到每篇文章的實(shí)體。在此基礎(chǔ)上,使用以下3 個規(guī)則建立邊:1)對于同一個句子中同時出現(xiàn)的實(shí)體間,建立邊的連接;2)對于同樣的實(shí)體在文本中出現(xiàn)多次,則他們直接有邊的連接;3)文章標(biāo)題中出現(xiàn)的實(shí)體與其對應(yīng)正文中的所有實(shí)體都有連接。DFGN 模型架構(gòu)如圖2 所示。與Entity-GCN、HDE graph、BAG 這3 種模型不同的是,該模型使用GAT 代替GCN 作為節(jié)點(diǎn)間的消息傳遞算法,且加入了Graph2Doc 模塊,將每個實(shí)體節(jié)點(diǎn)的向量表示與實(shí)體對應(yīng)的單詞表示進(jìn)行拼接,然后送入長短期記憶(Long Short-Term Memory,LSTM),將圖結(jié)構(gòu)中實(shí)體的表示變?yōu)樾蛄斜硎緛沓槿〈鸢浮?/p>
圖2 DFGN 模型架構(gòu)Fig.2 Framework of DFGN model
文獻(xiàn)[12]提出一種層次圖網(wǎng)絡(luò)(Hierarchical Graph Network,HGN),通過具有層次結(jié)構(gòu)的多級細(xì)粒度圖實(shí)現(xiàn)答案和證據(jù)事實(shí)的聯(lián)合預(yù)測。如圖3 所示,HGN 包含以下4 個主要模塊:
圖3 HGN 模型架構(gòu)Fig.3 Framework of HGN model
1)圖構(gòu)建模塊,引入了問題、段落、句子和實(shí)體這4 種類型的圖節(jié)點(diǎn),并定義了7 種不同類型的邊,包括問題節(jié)點(diǎn)和段落節(jié)點(diǎn)之間的邊、問題節(jié)點(diǎn)與其對應(yīng)的實(shí)體節(jié)點(diǎn)之間的邊、段落節(jié)點(diǎn)與其對應(yīng)的句子節(jié)點(diǎn)之間的邊(段落中的句子)、句子節(jié)點(diǎn)與其通過超鏈接鏈接的段落節(jié)點(diǎn)之間的邊、句子節(jié)點(diǎn)及其對應(yīng)的實(shí)體節(jié)點(diǎn)(出現(xiàn)在句子中的實(shí)體)之間的邊、段落節(jié)點(diǎn)之間的邊和同一段落中出現(xiàn)的句子節(jié)點(diǎn)之間的邊。該模塊可以有效地利用所有不同粒度級別的結(jié)構(gòu)信息來學(xué)習(xí)細(xì)粒度的表示并連接來自不同來源的線索。
2)上下文編碼模塊,通過基于預(yù)訓(xùn)練RoBERTa模型獲得圖節(jié)點(diǎn)的初始表示。
3)圖推理模塊,基于預(yù)訓(xùn)練的RoBERTa 編碼器訓(xùn)練段落排序器,檢索段落標(biāo)題與問題中的短語匹配的段落,如果通過標(biāo)題匹配找到多個段落,則對其概率進(jìn)行排序并僅選擇得分最高的2個段落。推理過程使用基于圖注意力(Graph Attention Network,GAT)的消息傳遞算法來聯(lián)合更新節(jié)點(diǎn)表示形式,并使用第1 跳段落中的超鏈接來發(fā)現(xiàn)第2 跳段落。
4)多任務(wù)預(yù)測模塊,其中多個子任務(wù)是同時執(zhí)行的,包括段落選擇、證據(jù)事實(shí)預(yù)測、實(shí)體預(yù)測和答案提取。
文獻(xiàn)[13]提出文檔圖網(wǎng)絡(luò)(Document Graph Network,DGN)模型,采用預(yù)過濾步驟來限制節(jié)點(diǎn)的數(shù)量,并直接在提取的文檔圖(Document Graph,DG)上訓(xùn)練門控圖神經(jīng)網(wǎng)絡(luò)(Gated Graph Neural Network,GGNN),從而為文檔圖結(jié)構(gòu)表示的識別提供證據(jù)文本。對預(yù)過濾考慮文檔中出現(xiàn)的所有句子,其采用預(yù)訓(xùn)練的GloVe 向量來獲得每個單詞的分布式表示,并計(jì)算句子中每個單詞與問題中每個單詞之間的相似度,選擇具有TopK個相關(guān)分?jǐn)?shù)的句子獲得最終子集。在此基礎(chǔ)上,建立DG,其中包含文檔節(jié)點(diǎn)和句子節(jié)點(diǎn)2 種節(jié)點(diǎn),并添加2 種類型的邊:s2d 類型的邊表示句子屬于該文檔;d2d 類型的邊表示在該文檔中引用了另一文檔中描述的實(shí)體。DG 對文檔語料庫中表達(dá)的背景知識進(jìn)行編碼,并永久存儲在數(shù)據(jù)庫中,以便在需要時加載。給定一個問題,使用DG 作為DGN 模型的輸入,可以大幅簡化計(jì)算。
文獻(xiàn)[14]提出SAE(Select-Answer-Explain)模型。如圖4 所示,該模型首先過濾掉與答案無關(guān)的文檔,然后基于GNN 提取答案。模型從給定的N個文檔輸入中準(zhǔn)確提取支持文檔,這對于最大限度地減少傳遞給下游答案和證據(jù)句預(yù)測任務(wù)分散注意力的信息至關(guān)重要。然后給定問題和支持文檔,模型以多任務(wù)學(xué)習(xí)方式聯(lián)合訓(xùn)練答案和證據(jù)句預(yù)測任務(wù),將所有的支持文檔連接成一個文本輸入,并使用BERT 以“[CLS]+問題+[SEP]+文本+[SEP]”格式對問題和文本進(jìn)行編碼。最后在句子級表示上構(gòu)建GNN 模型,使用句子向量作為圖中節(jié)點(diǎn),并添加3 種類型的邊:1)最初來自同一文檔2 個句子節(jié)點(diǎn)之間的邊;2)來自不同文檔的在問題中都具有命名實(shí)體或名詞短語(可以不同)的2 個句子節(jié)點(diǎn)之間的邊;3)不同文檔的具有相同的命名實(shí)體或名詞短語的2 個句子節(jié)點(diǎn)之間的邊。該模型采用具有門控機(jī)制的多關(guān)系GCN 消息傳遞策略來更新圖節(jié)點(diǎn)特征,并將最終的節(jié)點(diǎn)特征輸入到多層感知器以獲取答案的類型(是、否或一段文本)以及證據(jù)事實(shí)。
圖4 SAE 模型架構(gòu)Fig.4 Framework of SAE model
文獻(xiàn)[15]基于雙過程理論構(gòu)建雙系統(tǒng)CogQA模型。如圖5 所示,該模型使用2 個系統(tǒng)來維護(hù)一張認(rèn)知圖譜(Cognitive Graph),系統(tǒng)1 在文本中抽取與問題相關(guān)的實(shí)體名稱并擴(kuò)展節(jié)點(diǎn)和匯總語義向量,系統(tǒng)2 利用圖神經(jīng)網(wǎng)絡(luò)在認(rèn)知圖上進(jìn)行推理計(jì)算。
圖5 CogQA 模型架構(gòu)Fig.5 Framework of CogQA model
在CogQA 模型中:系統(tǒng)1 采用BERT 模型,以問題本身、從前面段落中找到的“線索”以及關(guān)于某個實(shí)體的維基百科文檔為輸入,隱式地從句子中提取相關(guān)實(shí)體并對其中的信息進(jìn)行編碼,然后將它們提供給系統(tǒng)2,即每次系統(tǒng)一抽取出的“下一跳實(shí)體名稱”或“候選答案”都將在認(rèn)知圖譜中建立一個新的點(diǎn),并進(jìn)行下一步迭代;系統(tǒng)2 采用GNN 模型,將這些實(shí)體及其編碼信息構(gòu)建為一張認(rèn)知圖譜,通過圖來對這些相關(guān)信息進(jìn)行推理計(jì)算,同時指導(dǎo)系統(tǒng)1進(jìn)行實(shí)體提取。CogQA 模型通過模擬人類的認(rèn)知方式來解決機(jī)器的閱讀理解問題,不僅利用了BERT模型強(qiáng)大的隱式關(guān)系提取的能力,而且利用GNN 實(shí)現(xiàn)了對于相關(guān)信息的顯式推理,借助模型生成的認(rèn)知圖譜,顯性掌握和解釋機(jī)器的推理過程。
文獻(xiàn)[16]利用知識圖譜(Knowledge Graph,KG)中的關(guān)系事實(shí)來構(gòu)建關(guān)系實(shí)體圖,進(jìn)而提出一個知識增強(qiáng)圖神經(jīng)網(wǎng)絡(luò)(Knowledge-enhanced Graph Neural Network,KGNN),利用知識圖中的關(guān)系事實(shí)來增強(qiáng)模型的推理能力,并使用GNN 在段落之間傳播信息,該網(wǎng)絡(luò)模型架構(gòu)如圖6 所示。首先將段落中的所有實(shí)體視為多段落推理圖中的節(jié)點(diǎn),并加入2 種邊建立實(shí)體圖。如果2 個節(jié)點(diǎn)指示相同的實(shí)體,則添加邊到圖中;如果2 個實(shí)體在知識圖中有關(guān)系事實(shí),則關(guān)系邊將被添加到圖中。對于每個節(jié)點(diǎn),模型從上下文單詞表示中獲得它的初始表示,并將消息從每個節(jié)點(diǎn)傳播到它的鄰居,以幫助執(zhí)行推理。由于不同類型的邊在推理中起到不同的作用,因此模型在消息傳播中使用關(guān)系特定網(wǎng)絡(luò)。計(jì)算關(guān)系的注意力權(quán)重以測量問題與關(guān)系之間的相關(guān)性,并利用一個重置門來決定從段落表示和圖關(guān)系表示中保留多少信息。最后,應(yīng)用自注意力機(jī)制來共享從實(shí)體到整體的全局信息。
圖6 KGNN 模型架構(gòu)Fig.6 Framework of KGNN model
文獻(xiàn)[17]通過融合基于GCN 和基于路徑方法的思想,為多個文檔引入基于路徑的推理圖,構(gòu)建了Path-based GCN 模型。與傳統(tǒng)圖相比,基于路徑的推理圖包含從問題到候選答案的多條推理路徑。推理圖使用門控RGCN 來學(xué)習(xí)節(jié)點(diǎn)的表示,與普通GCN 相比,門控GCN 利用注意力和問題感知門控機(jī)制來調(diào)節(jié)跨文檔傳播信息的有用性,并在推理過程中添加問題信息,更接近人類的推理過程。如圖7所示,該模型主要由3 個部分組成,包括圖的構(gòu)建、使用門控RGCN 的推理層和輸出層。首先基于Entity-GCN 構(gòu)造一個實(shí)體圖,提取段落中所有提及實(shí)體作為圖中的節(jié)點(diǎn)。受人類推理過程啟發(fā),基于從提及實(shí)體到候選答案的推理路徑有助于跨文檔推理的想法,因此模型將路徑中的推理實(shí)體也添加到了實(shí)體圖中。該推理圖使用提及實(shí)體、推理規(guī)則和候選答案作為實(shí)體圖中的節(jié)點(diǎn),并構(gòu)建了以下6 種邊:1)出現(xiàn)在文檔的同一個句子中的2 個實(shí)體節(jié)點(diǎn)添加邊;2)同一路徑上的相鄰?fù)评砉?jié)點(diǎn)添加邊;3)在文檔的同一個句子中的推理節(jié)點(diǎn)和候選節(jié)點(diǎn)添加邊;4)提到相同的候選實(shí)體的2 個節(jié)點(diǎn)添加邊;5)出現(xiàn)在同一文檔中的2 個節(jié)點(diǎn)添加邊;6)不滿足前面任一條件的節(jié)點(diǎn)之間添加邊。初始化時使用預(yù)訓(xùn)練GloVe 詞向量表示節(jié)點(diǎn),并使用ELMo 為不同文檔中的每個節(jié)點(diǎn)編碼上下文信息,然后通過一層線性網(wǎng)絡(luò)將這兩個節(jié)點(diǎn)表示連接在一起進(jìn)行編碼。在圖初始化之后,使用門控關(guān)系圖卷積網(wǎng)絡(luò)來實(shí)現(xiàn)多跳推理。這種門控機(jī)制控制有多少最新消息傳播到下一步,可以防止覆蓋過去的信息。類似于BAG,實(shí)體圖和問題之間使用雙向注意力機(jī)制。
圖7 Gated-RGCN 模型架構(gòu)Fig.7 Framework of Gated-RGCN model
文獻(xiàn)[18]對DFGN 進(jìn)行消融實(shí)驗(yàn),旨在研究圖結(jié)構(gòu)究竟在多大程度上有助于多跳推理,并在DFGN 基礎(chǔ)上提出C2F Reader。經(jīng)實(shí)驗(yàn)驗(yàn)證,通過適當(dāng)使用預(yù)訓(xùn)練模型,圖結(jié)構(gòu)對于多跳推理并不是必需的。這個發(fā)現(xiàn)可能會讓該領(lǐng)域的研究者重新思考基于圖結(jié)構(gòu)來解決MHMRC 的后續(xù)發(fā)展。
上述方法都能較好地解決圖神經(jīng)網(wǎng)絡(luò)用于多跳推理的3 個問題,這些方法的節(jié)點(diǎn)、節(jié)點(diǎn)表示、邊類型和消息傳遞方式比較如表2 所示。
表2 基于圖神經(jīng)網(wǎng)絡(luò)的MHMRC 方法對比Table 2 Comparison of MHMRC methods based on graph neural network
開放域問答(OpenQA)是指從一個外部較大的知識源(例如維基百科)中找到問題的相關(guān)上下文和正確答案的問答任務(wù)。相比于傳統(tǒng)MRC,OpenQA在給定問題的同時,不給定單個或多個支持文檔,而是需要在文檔集合或者整個百科中尋找答案。本節(jié)所關(guān)注的問題主要是開放域多跳問題,它需要模型同時進(jìn)行有效的檢索和文本理解,并根據(jù)橋接信息多步推理去尋找最終答案,即多跳OpenQA 首先需要從大型知識源中檢索到相應(yīng)于問題的支持文檔,然后再從文檔中推斷答案,而且在推斷時需要從前一篇中推斷出所需的內(nèi)容后才能從后面的文檔中推斷另外的答案,因此解決起來更為困難。
1.3.1 改進(jìn)檢索的方法
OpenQA 的難點(diǎn)在于如何從大型知識源中獲取與問題相關(guān)的支持文檔,改進(jìn)檢索的方法主要將工作重點(diǎn)放在問題相關(guān)支持文檔或證據(jù)句的檢索上。
OpenQA 需要先根據(jù)問題檢索出支持文檔,然后聚焦到段落,再閱讀給出答案。因此,目前大多數(shù)的OpenQA 系統(tǒng)都包括文檔段落的檢索、答案抽取和驗(yàn)證這2 個過程。文獻(xiàn)[19]提出一個強(qiáng)大的維基百科問答系統(tǒng)DrQA,其正是由文檔檢索器和文檔閱讀器兩部分組成的。對于一個問題,DrQA 首先使用文檔檢索器,利用Wikipedia 自帶的全文檢索機(jī)制對問題和文檔進(jìn)行TF-IDF 的相似度計(jì)算,并獲得最相關(guān)的5 個支持文檔,然后通過文檔閱讀器理解文檔語義,并得到合適語句塊作為答案。
研究者們相繼提出了一些迭代檢索方法,與早期僅依賴原始問題進(jìn)行查詢的方法相比,這些方法在復(fù)雜問題的證據(jù)選擇質(zhì)量上表現(xiàn)更為出色。文獻(xiàn)[20]提出了一種稱為MUPPET 的迭代多跳檢索模型,旨在構(gòu)建一個迭代查詢的過程,使檢索向量隨著已經(jīng)查到的線索進(jìn)行更新。如圖8 所示,MUPPET模型主要包含以下3 個部分:
圖8 MUPPET 模型架構(gòu)Fig.8 Framework of MUPPET model
1)段落和問題編碼,負(fù)責(zé)將問題和文檔編碼為對應(yīng)的向量。
2)MIPS 檢索器,使用最大內(nèi)積搜索(MIPS)算法迭代地從文檔集中找出與問題對應(yīng)的支持文檔。首先采用TF-IDF 方法找到與問題相匹配的TopK個標(biāo)題。然后對與這些標(biāo)題相對應(yīng)的文檔進(jìn)行編碼,將文檔編碼成向量,并將查詢編碼成相同向量空間中的搜索向量。最后應(yīng)用MIPS 來尋找給定查詢的最相似文檔。
3)段落閱讀,將得到的支持文檔傳遞給段落閱讀器,使用RC 模型找到問題的答案。MUPPET 使用來自上下文的信息迭代地更新檢索向量,可以有效地模擬多步推理。
以上2 種方法都是使用TF-IDF 對文檔集進(jìn)行排序,盡管基于TF-IDF 的檢索方法對于需要開放域單跳推理的問題表現(xiàn)不錯,但是當(dāng)用于多跳推理時,其性能會顯著降低[21]。因此,文獻(xiàn)[22]提出一個段落檢索器-閱讀器-多步推理機(jī)聯(lián)合模型,使用相關(guān)性分?jǐn)?shù)代替TF-IDF 對候選段落進(jìn)行排序。該模型由以下3 個部分組成:
1)段落檢索器,為給定查詢中的每個段落計(jì)算一個相關(guān)性分?jǐn)?shù)(具體計(jì)算為段落向量和查詢向量之間的內(nèi)積),并根據(jù)該分?jǐn)?shù)進(jìn)行排序。其中段落表示的計(jì)算獨(dú)立于查詢,一經(jīng)計(jì)算就不會更新,可以緩存這些表示并離線存儲。
2)閱讀器,采用RC 模型從檢索器接收幾個排名靠前的段落,并輸出一段文本作為問題的答案。
3)多步推理機(jī),采用門控循環(huán)單元來實(shí)現(xiàn)檢索器和閱讀器之間的迭代交互,其中門控循環(huán)單元主要用于接收當(dāng)前的閱讀器狀態(tài)和當(dāng)前的查詢向量來進(jìn)行門控更新并產(chǎn)生重構(gòu)的查詢,重構(gòu)的查詢被發(fā)送回檢索器,檢索器使用它來對語料庫中的段落重新排序。由于多步推理機(jī)的門控更新取決于機(jī)器閱讀器的當(dāng)前狀態(tài),因此這種多步交互為IR(檢索器)和RC 模型(閱讀器)提供了一種相互通信的方式。
文獻(xiàn)[23]提出了GoldEn(Gold Entity)Retriever,該模型不依賴于人工介入的數(shù)據(jù)集,其在讀取上下文和檢索更多證據(jù)文檔之間進(jìn)行迭代,以回答開放域多跳問題。與單純依賴原始問題來檢索段落不同,在每一步中,該模型還使用來自先前推理跳的IR結(jié)果在每個推理步驟展開時生成新的搜索查詢,并檢索新的證據(jù)來回答原始問題。具體地,在推理的第1 跳中,首先利用原始問題生成檢索支持文檔的搜索查詢,然后對于每個后續(xù)推理步驟,它都從問題、上一跳結(jié)果和支持文檔中生成一個自然語言查詢,并采用語義重疊的方法來縮小搜索空間后再查詢支持文檔。GoldEn Retriever 訓(xùn)練時利用數(shù)據(jù)集中原有的支持文檔信息,在推理的每一跳中迭代查詢更多相關(guān)的支持文檔,這使其可以有效地用于開放域多跳推理,同時保持可解釋性。
文獻(xiàn)[24]將候選支持段落檢索問題重新定義為閱讀理解任務(wù),提出的模型包括橋梁推理機(jī)和閱讀器2 個部分:橋梁推理機(jī)將每篇文章中的錨鏈接都視為橋梁實(shí)體的候選集,即每個橋梁候選實(shí)體都是另一個段落的標(biāo)題,充當(dāng)連接支持段落的橋梁;閱讀器使用共享的雙向GRU 對問題和段落進(jìn)行編碼,然后將已編碼的問題和段落傳遞到雙向注意力層以獲取問題感知的文本狀態(tài)。狀態(tài)向量通過自注意力層得到增強(qiáng),最后送入線性層以預(yù)測答案的開始和結(jié)束位置。
基于重排序的思想,文獻(xiàn)[25]提出了Entity-Centric IR 技術(shù),其基于實(shí)體鏈接進(jìn)行多跳檢索,既不學(xué)習(xí)順序檢索推理路徑,也不學(xué)習(xí)檢索器和閱讀器之間的相互作用,而是使用排序器來選擇下一跳實(shí)體與支持文檔。具體來說,Entity-Centric IR 使用最初檢索的相關(guān)段落中存在的實(shí)體信息來找到描述該實(shí)體的文本段落(實(shí)體鏈接),并且確定該段落是否與回答多跳問題相關(guān)。Entity-Centric IR 的主要組成部分是一個重排序模型,通過將問題和描述實(shí)體的維基百科段落提供給預(yù)訓(xùn)練的BERT 模型,獲得實(shí)體的上下文表示,排序器使用初始段落表示和其中所有實(shí)體的表示來得到支持文檔。
文獻(xiàn)[26]提出QFE 模型來提取證據(jù)句。QFE是從源文檔中提取句子的機(jī)制,以使得提取的摘要涵蓋文檔中的重要信息。模型使用多任務(wù)學(xué)習(xí),問答模型用于答案選擇,QFE 模型用于事件抽取,輸入為多個句子文本和問題,輸出包括答案類型、答案和證據(jù)句。QFE 使用帶有問題注意力機(jī)制的RNN,通過考慮證據(jù)句之間的相關(guān)性和問題的覆蓋范圍依次提取證據(jù)句,并在句子集合中添加一個稱為EOE 的虛擬句子,通過將終點(diǎn)條件定義為到達(dá)EOE 句,自適應(yīng)地確定證據(jù)句的數(shù)量。QFE 模型架構(gòu)如圖9 所示(彩色效果見《計(jì)算機(jī)工程》官網(wǎng)HTML 版)。
圖9 QFE 模型架構(gòu)Fig.9 Framework of QFE model
文獻(xiàn)[27]提出了一種無監(jiān)督的策略ROCC 來選擇多跳問答中的證據(jù)句。ROCC 的具體運(yùn)作方式如下:
1)候選證據(jù)句的檢索。對于與問題相關(guān)的文本段落,該段落中的所有句子都將成為候選。
2)候選證據(jù)句子集合的生成。因?yàn)橹攸c(diǎn)是知識聚合,所以ROCC 對整個證據(jù)句子集合而不是單個句子進(jìn)行排序。在這一步中,通過從前n個句子生成n個k組句子來創(chuàng)建候選證據(jù)句子集合。
3)候選證據(jù)集的排序。首先計(jì)算每個候選證據(jù)句子集合的ROCC 分?jǐn)?shù),ROCC 分?jǐn)?shù)最大化所選句子的相關(guān)性,最小化所選事實(shí)之間的重疊以及最大化問答的覆蓋范圍(最小化所選事實(shí)之間的重疊減少了冗余,并鼓勵聚合的句子解決問題和答案的不同部分,同樣,最大化問答的覆蓋范圍會鼓勵模型去處理更多提到的有意義的內(nèi)容)。最后按照ROCC得分的降序排列它們,并選擇得分最高一組理由作為給定問題的證據(jù)輸出。
文獻(xiàn)[28]從重構(gòu)問題的角度提出了一個新的架構(gòu),稱為潛在問題重構(gòu)網(wǎng)絡(luò)(LQR-net)。LQR-net 由閱讀模塊和重構(gòu)模塊組成,閱讀模塊的目的是產(chǎn)生文檔感知的問題表示,重構(gòu)模塊從這個文檔表示中提取基本元素來計(jì)算更新檢索向量,然后將更新的檢索向量傳遞到下一跳。閱讀模塊和重構(gòu)模塊構(gòu)成一跳,并分別重復(fù)t次直至結(jié)束。具體地,模型編碼使用預(yù)訓(xùn)練BERT 表示文檔和問題,閱讀模塊由文檔-問題注意力和文檔自注意力兩層組成,根據(jù)上一跳輸入的問題來更新文檔的表示,問題重構(gòu)模塊將前一個模塊的輸出、重構(gòu)問題的表示和文檔的編碼作為輸入,并產(chǎn)生了問題的更新形式。最后問題回答模塊也由4 個部分組成,對應(yīng)用于監(jiān)督證據(jù)事實(shí)、文檔中每個單詞作為答案開始結(jié)束的概率和答案類型(是、否或一段文本)。
1.3.2 基于推理路徑的方法
考慮到HotpotQA 為每個問題的答案提供證據(jù)事實(shí),研究者們想到為每個問題生成推理鏈來解決多跳問答。與上述改進(jìn)檢索的方法返回與問題最相關(guān)的支持文檔或支持句不同,基于推理路徑的方法直接為多跳問題生成推理鏈,然后從推理鏈中提取實(shí)體或句子回答問題。
文獻(xiàn)[29]用一個兩階段模型ChainEX 來識別中間推理鏈。該模型在訓(xùn)練時從推理鏈中學(xué)習(xí),在測試時可以產(chǎn)生一個推理鏈列表,然后輸入到一個問答模型中提取最終答案。其中推理鏈提取器是一個神經(jīng)網(wǎng)絡(luò),它將輸入的文檔和問題作為輸入,將可變長度的句子序列作為輸出。鏈提取器的處理流程可以分為句子編碼和鏈預(yù)測2 個主要部分。給定一個問題和一個包含n個段落的文檔,首先將問題與每個段落聯(lián)系起來,并使用預(yù)訓(xùn)練的BERT 編碼器對它們進(jìn)行編碼。然后將所有句子感知的編碼表示視為一個包,并采用基于LSTM 的指針網(wǎng)絡(luò)提取推理鏈。再將鏈提取器預(yù)測的前k個波束中的句子視為答案預(yù)測模型的輸入。最后使用預(yù)訓(xùn)練BERT 提取最終答案。
雖然上述方法在公開數(shù)據(jù)集上測試證明能夠取得不錯的性能,但它屬于有監(jiān)督的方法,對合理的證據(jù)或推理鏈標(biāo)注過于依賴。顯然,對于開放域問答而言,缺乏大量的帶標(biāo)注證據(jù)事實(shí)的訓(xùn)練數(shù)據(jù),因此,可以采用一些半監(jiān)督學(xué)習(xí)的方式,減少對于標(biāo)注數(shù)據(jù)的依賴。文獻(xiàn)[30]提出了一個可解釋的三模塊系 統(tǒng),稱 為EPAr(Explore-Propose-Assemble reader)。首先,文檔瀏覽模塊迭代地選擇支持文檔,并以樹形結(jié)構(gòu)表示不同的推理鏈,以允許從所有鏈中吸收信息。然后,答案提取模塊從推理樹中的每一個根節(jié)點(diǎn)到葉節(jié)點(diǎn)的路徑中提出一個答案。最后,證據(jù)集成模塊從每條路徑中提取包含提出答案的關(guān)鍵句子,并將它們組合起來預(yù)測最終答案。圖10 顯示了EPAr 模型架構(gòu)。可以看出,當(dāng)面對多個長文檔時,EPAr 的3 個模塊共同優(yōu)化,根據(jù)前一級的輸出,將每一級的損耗總和降至最低,近似人類的由粗到細(xì)的閱讀理解行為。
圖10 EPAr 模型架構(gòu)Fig.10 Framework of EPAr model
基于維基百科圖和RNN,文獻(xiàn)[31]提出一個針對開放領(lǐng)域多跳問答的路徑提取器-答案抽取器模型,該模型使用一個推理路徑提取器和一個閱讀理解答案抽取器,分兩步完成多跳問答。路徑提取器需要首先構(gòu)建一個覆蓋維基百科所有段落的圖,圖中每個節(jié)點(diǎn)代表一個單獨(dú)的段落,然后使用超鏈接來構(gòu)建圖中的直接邊。該圖是離線構(gòu)建的,可在后續(xù)任何問題的訓(xùn)練和推理中重復(fù)使用。構(gòu)建圖之后,訓(xùn)練一個RNN 進(jìn)行循環(huán)路徑提取,通過BERT 微調(diào)的段落編碼來最大化在每一步選擇正確證據(jù)段落的可能性,并在圖中對推理路徑進(jìn)行評分。路徑提取器的優(yōu)點(diǎn)在于,它知道已經(jīng)提取的段落,并且可以很方便地進(jìn)行束搜索。閱讀理解器首先對所有路徑重排序,然后從最有可能的路徑中抽取答案。具體來說,閱讀器任務(wù)包括:
1)推理路徑重排序,對每條路徑,先用BERT 得到特征表示,再用Sigmoid 得到該路徑的概率,并使用概率對檢索到的推理路徑重新排序。
2)閱讀理解的多任務(wù)學(xué)習(xí),使用BERT 從概率最高的推理路徑中提取答案文本,其中輸入是問題和候選段落集中所有段落的文本的拼接。
為進(jìn)一步解決數(shù)據(jù)依賴問題,研究者提出了利用無監(jiān)督方法檢索生成多跳推理鏈的思路,文獻(xiàn)[32]構(gòu)建了一種簡單快速的無監(jiān)督迭代的證據(jù)檢索模型AIR(Alignment-based Iterative Evidence Retrieval)。模型由以下2 個部分組成:
1)無監(jiān)督的迭代部分,它迭代構(gòu)建給定查詢的證據(jù)鏈,首先使用問題和候選答案文本初始化查詢,然后AIR 重復(fù)執(zhí)行對齊檢索和動態(tài)添加這2 個步驟直到達(dá)到終止條件為止。迭代步驟具體為:在給定當(dāng)前查詢的情況下使用對齊IR 方法檢索最明顯的證據(jù)句,并調(diào)整查詢以關(guān)注于缺失的信息(當(dāng)前推理鏈沒有覆蓋的關(guān)鍵詞),即AIR 還會向查詢中動態(tài)添加新詞條,以推動多跳檢索。
2)RoBERTa 答案分類組件,給定原始問題和先前檢索到的證據(jù)事實(shí),該組件將候選答案分類為正確或不正確。此外,在OpenQA 任務(wù)中可能會出現(xiàn)存在多個產(chǎn)生正確答案的推理鏈的情況,為了利用這種特性,可以運(yùn)行n次AIR 提取N條平行的推理鏈,且確保每條推理鏈的第一個證據(jù)事實(shí)是不同的。在檢索出N條推理鏈后,將所有證據(jù)事實(shí)聯(lián)合起來進(jìn)行答案抽取。
除了上述3 種主流類型以外,也有一些MHMRC方法在公開數(shù)據(jù)集上取得了不錯的效果。
1.4.1 基于注意力的方法
文獻(xiàn)[33]提出的CFC和文獻(xiàn)[34]提出的DynSan 是典型的基于注意力的方法。CFC 應(yīng)用聯(lián)合注意力和自注意力來學(xué)習(xí)候選答案和文檔的查詢感知節(jié)點(diǎn)表示,而DynSAN 提出了一個動態(tài)的自注意力結(jié)構(gòu)來確定哪些信息對于語義表示是重要的。CFC 模型同時使用粗粒度推理和細(xì)粒度推理2 種方式:在粗粒度推理中,它在不知道哪些候選答案可用的情況下,根據(jù)查詢條件構(gòu)建支持文檔的粗略摘要,然后對每個候選候選答案進(jìn)行評分;在細(xì)粒度推理中,該模型匹配同時提及候選答案和查詢的細(xì)粒度上下文,以便衡量候選答案的相關(guān)性。2 個模塊都采用了一種層次自注意力來組合支持文檔信息。與CFC 不同,DynSAN 基于在一個長序列中重要標(biāo)記的數(shù)量遠(yuǎn)遠(yuǎn)小于序列長度的假設(shè),使用動態(tài)的自注意力來進(jìn)行答案選擇。由于DynSAN 的自注意力是在一組動態(tài)確定的token 上進(jìn)行的,因此稱之為動態(tài)自注意力。具體來說,在DynSAN 的底部,輸入文本的表示采用預(yù)訓(xùn)練的Fasttext 的300 維詞向量,并在訓(xùn)練過程中采用了2 層highway 對其進(jìn)行修正。之后,向量被送到一層DynSA 塊中,DynSA 通過token選擇機(jī)制找出最重要的token,然后只對這些選擇的token 進(jìn)行自注意力計(jì)算。
同樣是修改注意力機(jī)制,文獻(xiàn)[35]提出的Transformer-XH(Transformer eXtra Hop)模型,在Transformer 的層中引入了eXtra Hop 注意力機(jī)制。額外躍點(diǎn)注意力使每個文本片段與其他證據(jù)相關(guān)的證據(jù)更全面地表示,且額外躍點(diǎn)注意力沿著圖的邊緣傳播信息,從而使連接的文本序列之間可以共享信息。當(dāng)應(yīng)用在MHMRC 時,需要首先構(gòu)造一個證據(jù)圖,然后在圖上應(yīng)用Transformer-XH 來找到答案。
針對自注意力機(jī)制的弊端,文獻(xiàn)[36]提出可以直接處理長序列的Longformer,解除了Transformer的序列長度限制。Longformer 的注意機(jī)制是一個窗口局部情境自注意力和一個全局注意力的組合,使之最多可以處理4 096 長度的序列。以往解決像BERT 這樣的基于Transformer 模型的512 長度限制,最簡單的方法是截?cái)辔臋n,或者將文檔分成長度為512 的塊(可以是重疊的),然后分別處理每個塊。對于多跳和開放域問答任務(wù)常見的第3 種方法是使用兩階段模型,其中第一階段檢索相關(guān)文檔,然后傳遞文檔到第二階段進(jìn)行回答,但這些兩階段方法都因截?cái)嗷蚣壜?lián)錯誤而遭受信息損失。相比之下,Longformer 可以處理長序列,而不需要截?cái)嗷蚍謮K,因此,可以采用一種更簡單的方法來連接可用的上下文,并在一次處理中處理它。文獻(xiàn)[37]也發(fā)現(xiàn)了稀疏注意力與輸入序列成線性比例,而不是二次關(guān)系?;诖耍浣梃b圖稀疏化方法中,將降低自注意力矩陣的二次復(fù)雜度問題看作一個圖稀疏化問題,并開發(fā)了同樣可以處理序列長度高達(dá)Transformer 8 倍的Big Bird。
1.4.2 引入外部知識庫常識填補(bǔ)知識空白的方法
文獻(xiàn)[38]針對NarrativeQA 數(shù)據(jù)集[39]提出了一個強(qiáng)大的多跳指針生成器模型(Multi-Hop Pointer-Generator Model,MHPGM),它可以在上下文中推理、收集和合成互斥的信息用來生成答案。具體而言,MHPGM 使用多重注意力機(jī)制來執(zhí)行多跳推理,在長篇段落內(nèi)有效地讀取和推理,并合成與問題一致的答案。模型包括嵌入層、推理層和自注意力層:嵌入層使用預(yù)訓(xùn)練ELMO 模型來進(jìn)行上下文表示;推理層通過K個推理單元傳遞上下文表示,其中每個推理單元使用BiDAF 迭代更新問題的上下文表示;自注意力層利用靜態(tài)自注意力機(jī)制幫助模型處理具有長依賴的文本。此外,MHPGM 模型還引入了一種外部常識獲取算法,該算法通過逐點(diǎn)互信息(PMI)和基于詞頻的評分功能從ConceptNet 中獲得基礎(chǔ)的多跳關(guān)系常識信息。常識選擇策略包含以下2 個方面:1)通過構(gòu)造旨在選擇具有高召回率候選路徑樹的方法收集潛在相關(guān)的常識信息;2)對這些路徑進(jìn)行排序和過濾,通過三步評分策略(初始節(jié)點(diǎn)評分、累積節(jié)點(diǎn)評分和路徑選擇評分)確保添加信息的質(zhì)量和多樣性。同時還加入一個信息單元(NOIC),它可以有效連接外部知識庫來提取常識信息,并利用提取的常識信息來填充相鄰兩跳之間的推理空白,大幅提高了模型的性能。
1.4.3 使用蘊(yùn)含模型解決MHMRC 問題的方法
問答可以很自然地歸結(jié)為一個蘊(yùn)涵問題,即驗(yàn)證某些文本是否包含問題的答案。文獻(xiàn)[40]基于句子級的文本蘊(yùn)含問題可以被重用于識別依賴關(guān)系的發(fā)現(xiàn)上,提出一種通用的體系結(jié)構(gòu)Multee,可以有效地將蘊(yùn)涵模型用于多跳問答任務(wù)。Multee 通過將局部需求決策與全局需求決策相結(jié)合來匯總多跳任務(wù)的信息,它使用一個本地(句子級別)關(guān)聯(lián)模塊來幫助定位重要的句子,從而避免分散信息,并使用一個全局(文檔級別)多級融合模塊,通過有效地合并重要性權(quán)重來聚集信息。
縱觀近年來MHMRC 的發(fā)展,本節(jié)對比、總結(jié)現(xiàn)有方法,包括機(jī)制、優(yōu)勢、缺點(diǎn)、適用場景以及后續(xù)改進(jìn)方向。對比結(jié)果如表3 所示?,F(xiàn)有方法的使用場景大致可以分為在封閉數(shù)據(jù)集和開放域兩種場景。在實(shí)際工程應(yīng)用上,如果是垂直領(lǐng)域問答,則可以選用基于問題分解和基于GNN 的方法,同時若具有標(biāo)注好的問題分解訓(xùn)練數(shù)據(jù),采用問題分解方法結(jié)合現(xiàn)有單跳MRC 模型即可。若無這種數(shù)據(jù),可采用基于GNN 的端到端模型。對于開放域問答,由于需要檢索海量文檔及網(wǎng)頁,因此可以結(jié)合信息檢索的方法解決。
表3 MHMRC 方法分類總結(jié)Table 3 Classification summary of MHMRC methods
傳統(tǒng)的如SQuAD 等大規(guī)模抽取式閱讀理解數(shù)據(jù)集都是以使用單個段落或文檔來推斷答案的方式構(gòu)建的,只需要定位到所給段落中與問題相關(guān)的那個句子就能回答,這種推理被稱為單跳推理,而多跳推理則是一個需要綜合多種來源數(shù)據(jù)的任務(wù)。目前針對多跳閱讀理解的數(shù)據(jù)集大多是半結(jié)構(gòu)化的知識庫數(shù)據(jù),而MHMRC 數(shù)據(jù)集則主要是非結(jié)構(gòu)化的文本內(nèi)容。
目前MHMRC 相關(guān)數(shù)據(jù)集主要有QAngaroo[41]、TriviaQA[42]和HotpotQA[43]數(shù)據(jù)集,這3個數(shù)據(jù)集數(shù)據(jù)規(guī)模如表4 所示。
表4 數(shù)據(jù)集規(guī)模Table 4 Data scale of datasets
1)QAngaroo 數(shù)據(jù)集。該數(shù)據(jù)集包含2 個閱讀理解數(shù)據(jù)集,且它們都需要結(jié)合多個文檔中的多個推斷步驟來獲取答案。其中第1 個數(shù)據(jù)集WIKIHOP數(shù)據(jù)集是一個包含問題、多篇相關(guān)文章以及候選答案的專注于維基文章的開放域數(shù)據(jù)集,很多時候?yàn)榱嘶卮鹨粋€問題,可能需要綜合多篇文檔中的信息來得到一個最終答案,因此WIKIHOP 非常具有挑戰(zhàn)性。另一個數(shù)據(jù)集MedHop 是一個來源于醫(yī)療論文庫PubMed 的論文摘要數(shù)據(jù)集,目前針對此數(shù)據(jù)集的研究尚少。
2)TriviaQA 數(shù)據(jù)集。該數(shù)據(jù)集為了得到答案需要復(fù)雜的多級推理,其中包括95k 個問答對,并為每個問題都收集了平均6 份證據(jù),這些證據(jù)為回答問題提供了高質(zhì)量的遠(yuǎn)程監(jiān)管。該數(shù)據(jù)集中文本句法比較復(fù)雜,回答問題需要很多復(fù)合的信息,且文本語法和用詞也比較復(fù)雜,之前簡單的文本匹配方法可能會失效,因此也更具挑戰(zhàn)性。此外,數(shù)據(jù)集中的信息推理和WIKIHOP中跨文檔推理不同,其為跨句推理。
3)HotpotQA 數(shù)據(jù)集。該數(shù)據(jù)集是一個具有自然、多跳問題的問答數(shù)據(jù)集,分為Distractor 和Fullwiki 任務(wù),目前大多數(shù)模型都是針對此數(shù)據(jù)集的研究。其中問題本身不會受限于任何預(yù)設(shè)的知識圖譜,且被設(shè)計(jì)為必須進(jìn)行兩步推理才能得到答案。問題的推理類型包括:(1)需要橋?qū)嶓w或者需要對比2 個實(shí)體;(2)需要檢查多個屬性來定位答案實(shí)體;(3)需要通過橋?qū)嶓w來推斷另一個實(shí)體的屬性。此外,它除了要求模型在閱讀了多個文檔后給出問題的答案以外,還要求給出回答該問題所必需的證據(jù)事實(shí),相比于之前基于整篇文章進(jìn)行訓(xùn)練的粗粒度方式,HotpotQA 利用這些證據(jù)事實(shí)作為推理線索要求模型知其然亦知其所以然。
本節(jié)具體介紹MHMRC 相關(guān)的評測指標(biāo)。
由于WIKIHOP 與MedHop 數(shù)據(jù)集本質(zhì)為多項(xiàng)選擇題,因此采用準(zhǔn)確率來評測,計(jì)算公式如式(1)所示。
其中:r為預(yù)測正確的個數(shù);n為全部個數(shù)。
因?yàn)門riviaQA 數(shù)據(jù)集答案為文本片段,所以采用F1 作為評測標(biāo)準(zhǔn),計(jì)算方法為:首先計(jì)算預(yù)測出的答案與原始答案字符之間的重疊,根據(jù)重疊的數(shù)目c與正確答案的字符數(shù)目la計(jì)算召回率,根據(jù)重疊的數(shù)目c與預(yù)測出的所有字符數(shù)目lp計(jì)算準(zhǔn)確率,然后使用準(zhǔn)確率與召回率計(jì)算F1。具體計(jì)算公式如下:
由于HotpotQA 數(shù)據(jù)集既要求給出答案,又要求給出證據(jù)事實(shí),因此需要對答案和證據(jù)事實(shí)都進(jìn)行評測,并最終采用Joint F1 和Joint EM 對答案和證據(jù)事實(shí)進(jìn)行聯(lián)合評測。其中EM 表示精確匹配率,如果預(yù)測與答案完全匹配則e值為1,否則為0。Joint EM和Joint F1 計(jì)算分別如式(9)和式(12)所示(其中答案與證據(jù)事實(shí)的準(zhǔn)確率與召回率計(jì)算同上)。
本文從相關(guān)論文和排行榜統(tǒng)計(jì)了不同模型在上述數(shù)據(jù)集上的表現(xiàn),因?yàn)槠渲嗅槍edHop 數(shù)據(jù)集研究較少,所以本文不展示此數(shù)據(jù)集排行,而HotpotQA 又分為干擾設(shè)置和全維基設(shè)置,因此,本文對2 個不同設(shè)置上模型表現(xiàn)都做了統(tǒng)計(jì)。各模型性能表現(xiàn)如表5~表8 所示。
表5 各模型在WIKIHOP 數(shù)據(jù)集上的性能表現(xiàn)Table 5 Performance of each model on WIKIHOP dataset %
表6 各模型在TriviaQA 數(shù)據(jù)集上的性能表現(xiàn)Table 6 Performance of each model on TriviaQA dataset %
表7 各模型在HotpotQA數(shù)據(jù)集(Distractor Setting)上的性能表現(xiàn)Table 7 Performance of each model on HotpotQA dataset(Distractor Setting) %
表8 各模型在HotpotQA 數(shù)據(jù)集(Fullwiki Setting)上的性能表現(xiàn)Table 8 Performance of each model on HotpotQA dataset(Fullwiki Setting) %
機(jī)器閱讀理解是自然語言理解領(lǐng)域極具挑戰(zhàn)性的任務(wù)之一,而多跳機(jī)器閱讀理解任務(wù)的挑戰(zhàn)難度又上了一個新的臺階。針對MHMRC 問題,近年來,研究者開展了許多有益的研究,各種表現(xiàn)出色的模型被不斷地提出,共同推進(jìn)其向推理能力和泛化能力更強(qiáng)的方向發(fā)展。本文在詳細(xì)梳理和總結(jié)現(xiàn)有相關(guān)模型的基礎(chǔ)上,指出現(xiàn)有方法在MHMRC 任務(wù)上主要有以下3 個方面的提升空間:
1)引入外部常識知識。
許多問題單憑文本包含的信息是無法完成推理并回答的,往往需要引入外部知識庫中的常識信息,因此,如何巧妙地結(jié)合非結(jié)構(gòu)化文本段落與知識庫中半結(jié)構(gòu)化知識進(jìn)行聯(lián)合推理是目前需要解決的問題。
2)提高可解釋性。
可解釋性不足是深度學(xué)習(xí)黑盒模型飽受詬病的弊端之一。在多跳機(jī)器閱讀理解中,如果不能給出每一跳答案的合理解釋,則無法證明模型是否真正“理解”文本。盡管HotpotQA 數(shù)據(jù)集被設(shè)計(jì)為必須返回推理證據(jù)文本,但是這種有監(jiān)督方法訓(xùn)練出的模型并不適用于大型開放式問答的推理路徑生成,因此,如何找到好的推理路徑生成方法也是目前需要解決的問題。
3)開放域多跳閱讀理解。
當(dāng)語料不多時,面向單段閱讀理解的MRC 模型都可以直接處理,但是真正的問答系統(tǒng)勢必需要大規(guī)模語料并從中尋找答案。目前常見的權(quán)衡的方法是:先根據(jù)問題在語料(維基百科)中檢索出少量相關(guān)段落,再在這些段落中進(jìn)行NLP 處理。但是當(dāng)下檢索器-閱讀器的方式在很大程度上依賴于檢索器對文本的排序篩選,如果正確答案段落一開始就不包含在閱讀器的輸入中,則無法得到正確答案。因此,如何找到一個性能較好的文本檢索方法也是需要解決的問題。
未來的研究工作可以從以下6 個方面展開:
1)更好地融入知識庫數(shù)據(jù)。
目前機(jī)器閱讀理解和人類閱讀理解之間尚存在差距,主要體現(xiàn)在數(shù)據(jù)需求上,人類往往擁有大量的常識性知識,單從短文中就能進(jìn)行深刻的閱讀理解,而機(jī)器則需要一定規(guī)模且噪聲小的標(biāo)注數(shù)據(jù)才能進(jìn)行學(xué)習(xí)。有些學(xué)者提出將知識圖譜等知識庫集成到機(jī)器閱讀理解中,為模型配備領(lǐng)域知識,提高模型在特定領(lǐng)域任務(wù)上的性能,同時降低大規(guī)模預(yù)訓(xùn)練成本。借助知識圖譜等外部知識庫數(shù)據(jù),以幫助回答問題是當(dāng)前研究的一個熱點(diǎn)和難點(diǎn),未來研究需要考慮如何更好地融入知識庫數(shù)據(jù)來輔助推理提升效果和可解釋性。
2)利用無監(jiān)督方法選擇推理路徑和證據(jù)文本。
目前多跳任務(wù)的可解釋性主要集中在推理路徑上選擇每一跳時的證據(jù)文本,然而目前現(xiàn)有方法大都是數(shù)據(jù)驅(qū)動的,都需要在訓(xùn)練時的遠(yuǎn)程監(jiān)督。數(shù)據(jù)獲取難度和構(gòu)造成本制約著有監(jiān)督方法的發(fā)展,基于此,未來研究可以使用無監(jiān)督方法選擇推理路徑和證據(jù)文本,提升模型表現(xiàn)和可解釋性。
3)結(jié)合預(yù)訓(xùn)練模型。
預(yù)訓(xùn)練模型通常采用預(yù)訓(xùn)練+微調(diào)的模式,即先使用大規(guī)模無監(jiān)督語料對模型進(jìn)行預(yù)訓(xùn)練,再使用小規(guī)模標(biāo)注數(shù)據(jù)進(jìn)行具體下游任務(wù)上的微調(diào),使得小規(guī)模標(biāo)注數(shù)據(jù)也可以取得不錯效果??v觀數(shù)據(jù)集評測排行可見,目前仍是預(yù)訓(xùn)練模型相較其他方法表現(xiàn)更佳。同時,C2F[18]也驗(yàn)證了通過使用預(yù)訓(xùn)練模型,模型結(jié)果較之前有所提升。因此,未來研究可以考慮結(jié)合現(xiàn)有模型架構(gòu)與預(yù)訓(xùn)練模型編碼的優(yōu)勢,進(jìn)一步提升效果。
4)減少流水線中的重復(fù)編碼。
當(dāng)前針對開放域的主流做法是使用兩階段流水線方法,通常包含1 個用于返回少量相關(guān)文檔的檢索階段和1 個抽取候選答案的閱讀階段。但是,檢索階段檢索器會對文檔進(jìn)行編碼,而閱讀理解階段又會對返回文檔再進(jìn)行一次編碼,每個模塊都會對輸入文本重復(fù)編碼,這導(dǎo)致在處理海量文本時效率過低。因此,未來研究需要設(shè)計(jì)一些方法來存儲文檔編碼以達(dá)到復(fù)用的目的,減少流水線中的重復(fù)編碼,提高處理效率。
5)在訓(xùn)練中融入對抗實(shí)例,解決存在推理捷徑的問題。
在HotpotQA 數(shù)據(jù)集中,模型可以使用通過將問題與上下文中的句子進(jìn)行單詞匹配直接定位答案的推理快捷方式來直接回答,無須多跳推理就能推出答案[21],但通過此快捷方式得到的答案準(zhǔn)確率不高。如文獻(xiàn)[50]使用一個控制單元,在不同的推理跳動態(tài)地關(guān)注問題,經(jīng)過對抗訓(xùn)練后,模型明顯表現(xiàn)更好,且實(shí)驗(yàn)結(jié)果也說明將明確的組合推理與對抗訓(xùn)練結(jié)合起來的改進(jìn)能夠進(jìn)一步推動新模型的發(fā)展。因此,未來研究中需要考慮在訓(xùn)練過程中加入對抗實(shí)例以提高模型的魯棒性,避免陷入推理捷徑。
6)構(gòu)建兼具速度與性能的模型。
現(xiàn)有模型的主要研究點(diǎn)在于如何提高模型在特定數(shù)據(jù)集上的性能,傾向于付出巨額的GPU 或TPU資源來訓(xùn)練非常復(fù)雜的模型,雖然這可能在性能上有所突破,但忽視了模型的推理速度,未考慮實(shí)際應(yīng)用時的效率問題。特別是在面對海量文檔的開放域問答場景下,注重答案準(zhǔn)確的同時也要考慮響應(yīng)速度,構(gòu)建兼具速度與性能的模型。
多跳機(jī)器閱讀理解作為機(jī)器閱讀理解中非常重要但極具挑戰(zhàn)性的一項(xiàng)任務(wù),受到學(xué)術(shù)界與工業(yè)界的廣泛關(guān)注。在大數(shù)據(jù)時代背景下,面對龐大的文本信息,多跳機(jī)器閱讀理解可以幫助人們快速聚焦相關(guān)信息,在回答問題的同時給出支持文檔段落甚至是證據(jù)事實(shí),幫助人們大幅縮減從海量數(shù)據(jù)中篩選有用信息的時間。本文圍繞基于深度學(xué)習(xí)的多跳機(jī)器閱讀理解研究,分類梳理已有的研究成果,總結(jié)關(guān)鍵問題,對比不同的模型方法,并指出未來發(fā)展方向。分析結(jié)果表明,多跳機(jī)器閱讀理解仍存在一些問題需要解決,如需要引入外部常識、提高可解釋性等。后續(xù)可將多跳機(jī)器閱讀理解與預(yù)訓(xùn)練模型、知識圖譜、排序?qū)W習(xí)、Ad-hoc 檢索等熱門技術(shù)相結(jié)合,進(jìn)一步推動該項(xiàng)研究的發(fā)展。