周展朝,劉茂福,胡慧君
(1.武漢科技大學計算機科學與技術學院,湖北 武漢 430065;2.智能信息處理與實時工業(yè)系統(tǒng)湖北省重點實驗室,湖北 武漢 430065)
機器閱讀理解一直是自然語言處理領域的焦點,在工業(yè)界和學術界都發(fā)揮著重要的作用。作為機器閱讀理解領域的重要研究方向,多跳閱讀理解任務中的多跳問題在文本內容上比單跳問題更加復雜,且要求解答者能夠綜合多個句子進行回答。本文發(fā)現多跳問題是由數個簡單問句融合而成的,而且簡單問句大都是對同一實體對象不同方面的描述。例1是多跳問題的實際例子:
例1
Q:世界上首架超音速教練機可以勝任什么任務?
P1:T-50是世界上首架超音速教練機,……
P2:T-50金鷹這種先進的噴氣式教練機能夠勝任高強度沖突的基本戰(zhàn)斗任務,……
Q1:世界上首架超音速教練機是什么?
Q2:[ANS] 可以勝任什么任務?
例1中的復雜多跳問題是“世界上首架超音速教練機可以勝任什么任務?”。該問題實際上相當于2個問題:首先必須找出世界上首架超音速教練機;其次回答教練機可以勝任哪些任務。
根據上述思路,本文通過問題分解的策略來簡化復雜問題,從而降低復雜問題的回答難度。比如,例1中復雜問題實際上約等于2個問題,分別是“世界上首架超音速教練機是什么?”和“[ANS] 可以勝任什么任務?”,2個問題都描述了教練機,然而第1個問題可以直接回答,而且其答案正是第2個問題的主語“[ANS]”;解答出第2個問題的答案即可回答多跳問題。
近期關于問題分解的工作多依賴于詞法分析相關的語義解析器[1],這使得很難將其推廣到各種自然語言問題。Min等人[2]提出了一種片段預測的模型來分解問題,該模型通過指針網絡抽取多跳問題中的單跳問題片段,如例1所示。這種模型僅僅利用了語法結構信息就解決了多跳問題。本文注意到多跳問題和線索段落存在相似的文本片段。如例1中的Q和P1的相似片段就是單跳問題Q1。本文將線索段落當成輔助信息來幫助模型解析復雜問題,從而獲得簡單問題。因此,本文提出了新的問題分解模型,該模型將文本抽取任務轉化成閱讀理解任務,可以同時利用到線索段落和句子結構信息。另外,缺乏相應的問題分解數據集也是問題分解的難點之一。因此,本文將復雜問題抽取出來并進行標注,生成了一個分解數據集(https://github.com/zzhzhao/test)。
斯坦福SQuAD(Stanford Question Answering Dataset)數據集[3]極大地促進了閱讀理解的發(fā)展。傳統(tǒng)的閱讀理解模型主要建立在管道方法的基礎上,包含語法分析和特征工程等步驟。管道方法會將上一個步驟的錯誤傳遞到下一個步驟中。為了解決這個問題,端到端模型開始蓬勃發(fā)展。Match-LSTM(Match-Long Short Term Memory)模型[4]利用詞嵌入的方法將問題文本和閱讀文本編碼成向量,然后輸入神經網絡獲得融合向量表示,最后利用指針網絡獲得答案。許多研究人員在該模型架構的基礎上提出了各種優(yōu)化模型。相比于Match-LSTM模型的單重注意力機制,BiDAF(Bi-Directional Attention Flow)模型[5]則采用了雙重注意力機制,加強了對問題文本和閱讀文本語義的提取。隨著閱讀理解數據集的增大,基于遞歸神經網絡的模型在訓練上花費的時間越來越多。因此,Yu等人[6]提出了QANet(Question-Answer Net)模型,該模型引入了卷積神經網絡,可以進行并行訓練,極大地縮短了訓練時間。面對含有多篇文章的閱讀理解問題,Wang等人[7]提出了一種答案校驗機制,可以對每篇文章的答案進行置信度打分,以獲得全文層次的真正答案。谷歌的BERT(Bidirectional Encoder Representations from Transformers)模型[8]一經提出,就迅速霸占了各種自然語言處理任務榜單的榜首。但是,該模型主要是針對西方語言的特點進行訓練。因此,百度提出了ERNIE(Enhanced Representation through kNowledge IntEgration)模型[9],有針對性地對中文任務進行了微調,使之更加適應中文自然語言處理任務。
和單跳問題相比,多跳問題在內容上更加復雜,需要的線索段落也更多,因此解決多跳問題需要引入推理策略。圖神經模型在多跳閱讀理解任務中占有重要地位。Ding等人[10]利用圖神經模型構建認知圖譜,利用圖譜上的節(jié)點進行多跳推理。DFGN(Dynamically Fused Graph Network)模型[11]同樣利用了圖神經模型構建知識圖譜,然后通過遷移知識圖譜的推理方法來解答多跳問題。和圖神經模型不同,PathNet模型[12]利用信息抽取的方式來構建多種推理路徑,從而選擇最佳的路徑來解答多跳問題。DecompRC(Decomposition Reading Comprehension)[2]利用分解模型來降低復雜問題的難度,從而獲取簡單問題,最后通過解決簡單問題來解決多跳問題。受到該思路的啟迪,本文也嘗試利用問題分解的思路來簡化復雜問題,但是本文對問題分解的手段進行了創(chuàng)新,將問題分解轉換為一個閱讀理解任務,而非DecompRC模型的片段抽取問題。DecompRC模型的問題分解只利用了多跳問題的信息,直接抽取了單跳問題的起始索引;而本文模型引入了額外的線索段落信息,可以抽取更加準確的單跳問題片段。
Figure 1 Framework of multi-hop reading comprehension model圖1 多跳閱讀理解模型整體框架
將一種自然語言處理問題轉換成另外一種自然語言處理問題,這種思路在研究領域也不少見。機器閱讀理解任務是一種基礎的任務形式,許多其他的自然語言理解任務都可以經過一定的變換轉化成問答形式,從而利用基礎的閱讀理解模型進行訓練。DecaNLP(Natural Language Decathlon)模型[13]正是這一思路的實現者,該模型在一定程度上可以完成眾多的自然語言處理任務。同時,不同的自然語言處理任務也可以相互促進,獲得比單一任務更好的效果。也有一些研究人員研究單一任務的轉換。關系抽取任務在形式上非常接近問答任務,因此,Levy等人[14]將需要抽取的眾多關系轉換成相應的問題,將實體作為答案進行抽取。類似地,實體抽取任務也可以轉換成閱讀理解。針對每一種實體可以生成一種相應的問題,這種方法還可以準確地抽取實體中嵌套的實體[15]。結合上述2種思路,Li等人[16]提出了一種聯合學習的方法,可以通過多輪問答的形式同時抽取文本中的實體和關系。
特別地,共指消解任務也需要抽取文本中同一實體的不同表達形式,同樣可以直接轉換成問答形式[17]。
本文提出了一種基于問題分解的多跳閱讀理解模型,如圖1所示。多跳問題是由數個簡單問句融合而成的,而且簡單問句大都是對同一實體對象不同方面的描述。問題分解模型可以降低多跳問題的求解難度,分解之后生成的簡單問題可以輸入單跳模型生成答案。本文的問題分解模型引入了閱讀理解模型,可以融合線索段落的信息,最終生成更加準確的單跳問題。本文的數據集主要包含3種問題,即組合問題、多跳問題和單跳問題。組合問題可以通過問號的數目直接區(qū)分。因此,本文首先利用深度學習模型訓練一個二值分類器;然后,將經由二值分類模型分類得到的多跳問題和單跳問題進行問題分解。組合問題分解得到的簡單問題可以直接輸入單跳模型生成答案。但是,多跳問題生成的單跳問題則相互影響,如例1中,第1個問題可直接回答,而且其答案正是第2個問題的主語,解答出第2個問題的答案即可回答多跳問題。
問題分類是基于問題分解的多跳閱讀理解模型的第1步,主要對數據集中的問題類型進行劃分,方便選擇合適的分解模型進行分解。組合問題、單跳問題和多跳問題是中文閱讀理解數據集中的主要問題類型。圖1展示了3種問題類型的具體實例。其中,單跳問題是最簡單也是最重要的問題類型;多跳問題和組合問題經過分解之后都可以變成單跳問題。單跳問題在句型上主要是簡單句,而且需要的線索往往是單個句子,可以直接在閱讀材料中獲得答案,而不需要經過推理。多跳問題是由多個單跳問題經過橋接實體融合而成的,而且其中的單跳問題往往是描述同一實體的不同方面。和多跳問題不同,組合問題則是由單跳問題直接拼湊而來的,實際上仍然是2個單跳問題。多跳問題、組合問題和單跳問題擁有的特征不同,需要采取不同的方法來求解[18,19]。ERNIE模型利用大量中文文本進行預訓練,還采用了詞掩碼機制進行優(yōu)化,對中文自然語言處理任務具有較強的適應性。因此,本文使用ERNIE模型訓練一個二值分類器,用以區(qū)分多跳問題和單跳問題。
對于問題文本序列Q={q1,q2,…,qn},將其輸入ERNIE模型得到的語義表示向量如式(1)所示:
V=ERNIE(Q)∈Rn×h
(1)
其中,h代表編碼器輸出維度。然后將向量表示輸入一個softmax函數進行歸一化處理 ,如式(2)所示:
P=softmax(pool(V)W1)∈R2
(2)
其中,pool(·)代表池化操作,W1∈Rh×2代表參數矩陣。
和多跳問題不同,組合問題實際上就是2個簡單問題。2個簡單問題相對比較獨立,可以同時對2個問題進行回答,第1個問題的答案不影響第2個問題的解答。同時,在文本形式上組合問題也比較直觀,可以通過判斷問號的數目來加以區(qū)分。因此,本文直接將組合問題中的問號作為分隔符進行分割,就可以得到2個簡單問題。例2直接展示了1個組合問題的數據樣例:
例2
Q:AK-47步槍的制造商是哪家?該槍的口徑是多少?
Q1:AK-47步槍的制造商是哪家?
Q2:AK-47步槍的口徑是多少?
例2中的組合問題實際上就是詢問了AK-47步槍的制造商和口徑。第1個單跳問題可以直接回答,但第2個問題無法視作一個完整的單跳問題。因此,本文需要首先通過詞法分析提取第1個問題的主語,然后替換第2個問題的指代詞,才能形成一個完整的單跳問題。
和單跳閱讀理解問題相比,多跳閱讀理解問題在內容上更加復雜,需要的線索段落也更多,且往往分布在閱讀材料的各個地方。單跳閱讀理解模型沒有對復雜的多跳問題進行解析,而是直接將其編碼成語義向量和線索段落的語義向量進行交互。單跳閱讀理解模型沒有深入挖掘多跳問題中的隱藏實體信息,而且無法在線索段落之間進行推理。然而,問題分解模型可以簡化復雜多跳問題,生成的單跳問題可以分別檢索相應的線索段落。2個單跳問題經過橋接實體進行融合,可以生成1個多跳問題。多跳問題實際上經過了深度融合,無法直接通過問號進行分解,而且分解之后的單跳問題也是相互關聯的,無法視作2個獨立的問題。因此,本文采用深度學習模型來分解多跳問題。但是,由于分解數據集的缺乏,本文將復雜問題抽取出來并進行人工標注,生成了一個分解數據集。
為了降低多跳問題的難度,本文將問題分解任務轉換成問答形式的閱讀理解任務。閱讀理解任務主要包括問題、答案和閱讀材料,其中問題和答案都是閱讀材料中的片段。為了將問題分解任務轉換成問答形式,本文將線索句子改寫成閱讀理解任務的問題,將多跳問題中的第1個單跳問題文本當成閱讀理解任務的答案。
本文采用ERNIE模型來解決問題分解任務。對于給定問題文本序列Q={q1,q2,…,qn}和閱讀文本序列D={d1,d2,…,dm},ERNIE模型將問題文本序列和閱讀文本序列進行拼接,提取深層語義特征向量,如式(3)所示:
U=ERNIE([Q,D])∈R(n+m)×h
(3)
其中,h代表編碼器輸出維度,[Q,D]代表對問題文本和閱讀文本進行拼接。然后將向量表示輸入一個softmax函數進行歸一化處理 ,如式(4)所示:
Y=softmax(UW2)∈R(n+m)×2
(4)
其中,W2∈Rh×2代表參數矩陣。
令P(ij=indj)=Yij表示文本中第i個詞語的標簽是j的概率。閱讀文本中的開始和結束索引標記了預測的答案文本,如式(5)所示:
(5)
經過問題分解步驟,本文使用ERNIE模型來解答生成的單跳問題。然而,本文數據集中的閱讀材料文本主要是由5篇文章構成,篇幅往往較長,而ERNIE模型對輸入長度有所限制,無法直接進行處理。因此,本文采用了先檢索后閱讀的方法[20],即先利用BM25(Best Match 25)算法檢索與問題相關的線索段落,然后利用ERNIE模型進行求解。
Figure 2 Overall fine-tuning procedure for ERNIE圖2 ERNIE微調步驟整體框架
首先,使用式(3)獲得問題文本和閱讀文本的拼接向量U。然后,經過神經網絡獲得答案的開始索引和結束索引,如式(6)所示:
(6)
其中,Pstart(j)代表文本中第j個詞是答案文本開始索引的概率,Pend(k)代表文本中第k個詞是答案文本結束索引的概率。
答案文本開始索引的概率矩陣和答案文本結束索引的概率矩陣如式(7)和式(8)所示:
Pstart=softmax(UWstart)∈Rn+m
(7)
Pend=softmax(UWend)∈Rn+m
(8)
其中,Wstart,Wend∈Rh代表參數矩陣。
本文實驗使用的英文數據集為HotpotQA[22],該數據集來源于維基百科文章,由眾包人員根據給定文章構建而成,并且保留了解答問題時需要的支撐段落,主要包含大量的英文多跳問題,總計大約10萬個英文問答對。和其他數據集相比,HotpotQA英文數據集具有以下特點:(1)回答復雜問題需要在多個段落之間尋找線索并進行推理;(2)問題的形式多樣化而且不局限于特定知識模式;(3)每個復雜問題都包含支撐段落,可以展示預測答案的推理過程。
本文實驗使用的中文數據集來自于2019年萊斯杯軍事機器閱讀理解比賽,總共包括大約2萬個問答對,每個問答對主要包括問題、答案和線索段落。特別地,多跳問題還有一個特殊的字段——橋接實體。橋接實體指的是多跳問題分解之后生成的第1個單跳問題的答案,也是第2個單跳問題的主語,起到承上啟下的作用。數據集的問題是由研究者根據軍事文本編輯而成的,其平均長度大約是16個詞語。軍事問題的提問方式比較固定,主要是詢問某種軍事實體的屬性。特別地,部分軍事問題的參考答案并非軍事文本中的片段;而且,某些復雜的軍事問題需要綜合多個答案才能回答。
組合問題、單跳問題和多跳問題是中文閱讀理解數據集中的主要問題類型。例2的組合問題可以直接看成2個簡單問題,而且這2個問題都是對同一個軍事實體進行提問。例1中多跳問題的求解過程是先找到Q1的答案,然后替換Q2中的占位符,最終求得Q2的答案。中文數據集的統(tǒng)計信息如表1所示。
Table 1 Statistical information of Chinese dataset表1 中文數據集的統(tǒng)計信息
由于缺乏標注的分解樣例來訓練問題分解模型,本文通過人工標注的方法獲得問題分解數據集。多跳問題是由多個簡單問題經過橋接實體融合而成,因此,多跳問題和分解之后的單跳問題存在公共子片段。最長公共子串LCS(Longest Common Substring)算法可以抽取文本之間的相似文本片段。因此,本文采用LCS算法來提取單跳問題。但是,LCS算法生成的單跳問題不完整,需要手工進行調整。
BLEU(BiLingual Evaluation Understudy)指標[23]和Rouge-L指標[24]是自然語言處理任務中常用的評價指標。BLEU主要用來評價生成文本和參考文本之間的相似度,具體的計算方法是統(tǒng)計兩者之間的n元詞組同時出現的頻率。Rouge-L指標同樣可以評估生成文本和參考文本之間的相似度,但是在計算方法上有所不同。Rouge-L主要是計算兩者之間的召回率和準確率。
軍事閱讀理解數據集包含復雜的多跳問題,其中部分答案不是直接從軍事文本中抽取而來。另外,相當一部分軍事問題存在多個答案,這些參考答案本質上是對不同子問題的回答。因此,本文的評價分數計算如式(9)所示:
(9)
其中,BLEU計算或者Rouge-L計算用函數eval表示;cn代表測試集中的數據樣例個數;predb代表模型的第b個預測答案文本;answerl代表第l個參考答案文本;answer_count和pred_count分別代表參考答案的個數和預測答案的個數。
本文實驗主要測試了3個模型,分別是基于ERNIE的分類模型、基于ERNIE的問題分解模型和基于ERNIE的單跳閱讀理解模型。3個模型都采用0.000 05的學習率且都只迭代訓練2輪。3個模型的其他參數設置如表2所示。表2中seq_len表示最大序列長度,ques_len表示最大問題長度,ans_len表示最大答案長度。
Table 2 Setting parameters of models表2 模型的參數設置
萊斯杯數據集包含了大量的中文多跳問題,本文在該數據集上進行了許多基于不同分解模型的實驗,結果如表3所示。表3中:
(1)ERNIE:基準模型。
(2)ERNIE+SD:分解組合問題。
(3)ERNIE+SD+SPAN-CD:分解組合問題,基于片段預測的多跳問題分解,即DecompRC的問題分解模型。
(4)ERNIE+SD+RC-CD:分解組合問題,基于閱讀理解的多跳問題分解,即本文提出的模型。
Table 3 Experimental results based on different decomposition表3 基于不同分解模型的實驗結果 %
本文模型在表3的實驗結果中分數最高。第3個模型比第4個模型分別在BLEU指標和Rouge-L指標上低了1.31%和1.26%。這2個模型的實驗結果對比說明基于閱讀理解的多跳問題分解比基于片段抽取的模型更加有效。閱讀理解模型引入了線索段落的信息,可以輔助抽取單跳問題文本。第2個模型比第3個模型在Rouge-L指標上低了0.42%,表明多跳問題分解可以降低復雜問題的難度。根據基準模型和第2個模型實驗結果的對比,發(fā)現分解組合問題能夠提高模型的求解效果。
為了比較本文提出的基于閱讀理解的問題分解模型和DecompRC模型的區(qū)別,本文在問題分解數據集上進行了實驗,同時對預測的結果進行了分析。從表4可以看出,2種問題分解模型對問題分解都是有效的。本文模型在Rouge-L和BLEU指標上的得分均高于DecompRC模型的,這說明本文模型比DecompRC模型更加有效。DecompRC模型利用指針網絡在多跳問題中直接抽取單跳問題片段,并沒有利用證據段落的信息。相反,本文的問題分解模型充分利用了證據段落和多跳問題的相似性,可以更加準確地抽取單跳問題片段。例3展示了不同問題分解模型的樣例。其中,Q1是DecompRC分解模型的結果,Q2是基于閱讀理解的問題分解模型的結果。和Q1相比,Q2沒有抽取“的原機型”這個片段。從證據段落P中可得出,抽取結果Q2更加準確。如果只利用多跳問題Q的信息,模型無法確定單跳問題片段的結束位置。
例3
Q:美國空軍現役最大戰(zhàn)略運輸機的原機型什么時候進行的首飛?
P:為了控制零件成本,日后打算給美國空軍現役最大戰(zhàn)略運輸機C-5全部換裝3D打印馬桶圈。
Q1:美國空軍現役最大戰(zhàn)略運輸機的原機型
Q2:美國空軍現役最大戰(zhàn)略運輸機
Table 4 Experimental results based on question decomposition表4 問題分解的實驗結果 %
本文為了證明實驗模型的有效性,還在中文數據集上對許多經典閱讀理解模型進行了實驗。實驗結果如表5所示。本文對問題分解手段進行了創(chuàng)新,將問題分解轉換成一個閱讀理解任務,而非DecompRC模型的片段抽取問題。DecompRC模型的問題分解只利用了多跳問題的信息,直接抽取了單跳問題的起始索引。而本文模型則是引入了額外的線索段落信息,可以抽取更加準確的單跳問題片段。從表5可知,本文模型的BLEU值和Rouge-L值分別是71.48%和79.29%,在所有對比模型中,其BLEU值和Rouge-L值最大。
HotpotQA數據集包含大量的英文多跳問題,本文在該數據集上同樣對眾多的經典閱讀理解模型進行了實驗,結果如表6所示。本文模型相比DecompRC模型BLEU值和Rouge-L值分別提高了1.35%和1.38%。該實驗結果表明,本文模型在英文數據集上是有效的。
Table 5 Experimental results based on Chinese dataset表5 基于中文數據集的實驗結果 %
Table 6 Experimental results based on English dataset表6 基于英文數據集的實驗結果 %
本文模型對多跳閱讀理解任務是有效的,但是仍然存在一些問題無法解決。下面給出了本文模型求解錯誤的多跳問題,如樣例1~樣例3所示:
樣例1
Q:首架“活魚雷”是什么時候建成的?
P1:劍魚式魚雷轟炸機是菲爾利航空器制造公司設計制造的一款飛行器,首架于1934年4月17日建成,1936年開始投入使用。
P2:劍魚常常撲擊船只,船只通常會被刺出一個大窟窿,因此人們稱它為“活魚雷”。
樣例2
Q:哪個國家可能會購買成為巴基斯坦空軍的新銳力量的戰(zhàn)機?
Q1:哪個國家可能會購買戰(zhàn)機?
Q2:成為巴基斯坦空軍的新銳力量的戰(zhàn)機
P1:緬甸空軍有可能將增購JF-17“雷電”戰(zhàn)斗機。
P2:JF-17“雷電”戰(zhàn)斗機如今已不僅是巴基斯坦空軍的新銳力量。
樣例3
Q:除洛杉磯級外,主要遠海任務承擔者的設計初期目的是為了什么?
Q1:除洛杉磯級外,主要遠海任務承擔者
Q2:設計初期目的是為了什么?
P1:其他遠海任務則主要由洛杉磯級和海狼級承擔。
P2:美國的這艘海狼級核潛艇,設計初期就是為了克制俄羅斯的現有核潛艇和預防未來俄羅斯新式的核潛艇。
樣例1中的多跳問題似乎僅僅是一個單跳問題,但是實際上需要挖掘更加深入的信息才能正確解答。多跳問題中的活魚雷正是劍魚式魚雷轟炸機的另一種稱呼。而且,閱讀材料中的線索段落則是只涉及了劍魚式魚雷轟炸機。因此,模型需要挖掘出活魚雷等同于劍魚式魚雷轟炸機這一信息。樣例2中的單跳問題出現在多跳問題的尾部,類似的數據樣例比較稀少,沒有足夠的數據對模型進行訓練。樣例3中的多跳問題包含有簡單的邏輯運算,首先要找到所有主要遠海任務的承擔者,然后獲得除洛杉磯級之外的艦艇。
本文提出了一種基于問題分解的多跳閱讀理解模型。由于多跳問題具有復雜的語義,因此,本文選擇問題分解模型來降低多跳問題的求解難度。對于分解生成的單跳問題,本文選擇單跳模型來生成相應的答案。本文將問題分解任務轉換成閱讀理解形式。閱讀理解形式可以吸收額外的線索段落信息,進而解析出單跳問題文本。另外,問題分解模型缺乏訓練數據,本文對多跳問題中的單跳問題進行標注,生成了一個問題分解數據集。實驗結果表明,本文模型對多跳機器閱讀理解是有效的。但是,一些超出本文推理策略的多跳問題仍然無法解決,因此將會繼續(xù)探索新的推理策略。