張虎 王宇杰 譚紅葉 李茹
機器閱讀理解(Machine reading comprehension,MRC)是通過計算機理解文章語義并回答相關問題的一項重要研究任務.MRC 研究對提升機器的自然語言理解能力具有重要促進作用,已受到學術界和工業界的廣泛關注.早期的MRC 研究主要采用基于人工規則庫的方法,規則庫的建立和維護通常需要耗費大量人力,且難以回答規則以外的問題[1].近年來,隨著機器學習,特別是深度學習的快速發展[2],MRC的自動答題效果有了明顯提升,在一些特定任務中MRC 模型的回答甚至可以媲美人類水平.
隨著BERT (Bidirectional encoder representations from transformers)[3]等預訓練語言模型的出現,片段抽取式MRC 任務的實驗結果得到了較大提升,很多模型在SQuAD (Stanford question answering dataset)[4]等數據集上已經超越了人類水平.為了進一步檢驗模型的推理能力,現有很多MRC數據集加入了觀點類問題,包括“是/否”和“不可回答”問題.SQuAD2.0[5]在SQuAD的基礎上增加了不可回答問題;CoQA (Conversational question answering)[6]是一個多輪對話MRC 數據集,它的答案形式涉及片段抽取、是/否、不可回答以及自由回答;CJRC (Chinese judicial reading comprehension)[7]是首個中文法律MRC 數據集,問題類型包括片段抽取、是/否與不可回答問題.然而,針對觀點類問題的MRC 任務,現有閱讀理解模型仍然不能得到令人滿意的結果.觀點類問題的答案往往不在文章中直接出現,一般需要通過多個句子推理得出.因此,對于此類問題,模型需要綜合理解閱讀材料后給出觀點,并且如果根據材料語義無法作答,模型應該將該問題判定為不可回答.
人類在回答閱讀理解問題時,不僅可以給出問題答案,而且也可以給出支撐答案的依據.然而,現有大多數MRC 模型僅可以給出問題的答案,無法給出支撐該答案的答案依據,得到的答案通常缺乏可解釋性.為提高MRC 模型的可解釋性,美國卡耐基梅隆大學、美國斯坦福大學等機構聯合推出了多文檔多跳推理數據集HotpotQA[8],要求模型在多個文檔里尋找答案線索,給出答案依據,并通過推理得到答案;中國“法研杯”司法人工智能挑戰賽(China AI Law Challenge 2020,CAIL2020)閱讀理解數據集提出了多跳推理任務,要求MRC 模型在回答問題的同時給出答案依據,即參與推理的句子編號.CAIL2020 閱讀理解數據集的樣例如圖1所示.

圖1 CAIL2020 閱讀理解數據集樣例Fig.1 Sample of CAIL2020 MRC dataset
為了同時實現觀點類問題作答和答案依據挖掘,本文提出了一種多任務聯合學習模型(Multitask joint learning model,MJL-model).該模型的主要思想是:首先,針對觀點類問題,引入多頭自注意力(Multi-head self-attention,MHSA)機制挖掘文章中觀點類問題的文字線索,然后利用循環卷積神經網絡(Recurrent convolutional neural network,RCNN)[9]對觀點類問題進行分類求解;其次,針對答案依據挖掘任務,利用詞法與句法分析工具識別文章中各句子中的關鍵要素以及句法關系,利用要素間的依存句法關系以及其他關聯關系構建關聯要素關系圖,并利用動態融合圖網絡(Dynamically fused graph network,DFGN)[10]在關系圖上挖掘當前問題的答案依據,增強答案的可解釋性;最后,通過參數共享與聯合損失優化,將兩個任務進行聯合優化學習,實現觀點類問題的解答以及答案依據的挖掘.本文在CAIL2020 與HotpotQA 閱讀理解數據集上進行了實驗,分析了中英文數據集的差異,證明了該方法的有效性.
本文的主要貢獻有以下幾點:
1)提出句法關系增強的關聯要素關系圖構建方法,建立基于DFGN的答案依據挖掘模型;
2)針對觀點類問題解答和答案依據挖掘任務,提出多任務聯合學習的閱讀理解模型;
3)同時在CAIL2020 與HotpotQA 閱讀理解數據集上進行了多項對比實驗,驗證了所提模型的有效性和通用性.
近幾年,學術界和工業界提出了多個大規模MRC數據集,促進了MRC的發展.RACE (Reading comprehension dataset from examinations)[11]是美國卡耐基梅隆大學在2017 年推出的大規模MRC數據集,數據來源為中國中學生的英語考試,包含了28 000 篇文章和近10 萬個多項選擇題.SQuAD數據集由斯坦福大學于2016 年推出,主要來源于536 篇維基百科文章,包含了10 萬多個片段抽取式問題.2018 年推出的SQuAD2.0 進一步加入了大量“無法回答”類問題,問題數量達到了15 萬個,答題難度相比SQuAD有了明顯提升.2017 年,百度公司基于百度搜索和百度知道數據開放了中文MRC 數據集DuReader[12],該數據集共包含20 萬個問題和100 萬篇相關文檔,問題類型包括自由回答類與“是/否”類.2018 年美國卡耐基梅隆大學、美國斯坦福大學等機構基于維基百科數據共同推出了多文檔多跳推理MRC 數據集HotpotQA,共包含11 萬個問題,要求模型答題時能夠同時給出答案和答案依據.
受到大規模開放閱讀理解數據集的驅動,相關學者對閱讀理解模型開展了廣泛研究,在模型設計和訓練方法等方面進行了深入探索.
在BERT 等預訓練語言模型提出之前,最優的MRC 模型主要探索不同注意力機制的應用.Attentive Reader[13]首次將注意力機制應用到閱讀理解任務中,它使用雙向長短時記憶網絡(Bi-directional long short-term memory,BiLSTM)對文章和問題進行編碼,計算從問題到文章的注意力.BiDAF(Bidirectional attention flow)[14]將MRC 模型劃分為編碼層、交互層和輸出層,建立了文章和問題的交互注意力機制.R-NET[15]改進了循環神經網絡(Recurrent neural networks,RNN)在閱讀理解任務中的應用,將注意力機制融入到RNN,并通過門控機制動態控制信息的取舍.QANet[16]摒棄了RNN復雜的遞歸結構,只使用卷積神經網絡和自注意力機制完成編碼工作,提高了模型的速度和準確率.
目前,預訓練語言模型已成為一種新的自然語言處理(Natural language processing,NLP)范式,其主要使用大規模文本語料庫進行預訓練,并用特定任務的小數據對模型進行微調,推動了MRC 研究的快速發展.Google 于2018 年推出了BERT 預訓練語言模型,該模型基于Transformer 編碼器,引入掩碼語言模型(Masked language model,MLM)和下一句預測(Next sentence prediction,NSP)任務.隨后,2019 年Facebook 在BERT的基礎上提出了RoBERTa (Robustly optimized BERT approach)[17]模型,在預處理階段采用動態掩碼取代了靜態掩碼,同時還去掉了NSP 任務.顯然,預訓練語言模型在提高NLP 相關任務效果的同時,也增加了模型參數和訓練時長.針對這些問題,Google 又在BERT的基礎上提出了ALBERT(A lite BERT)[18]模型,其使用詞向量因式分解和跨層參數共享的方法減少了模型的參數量,同時通過引入句子順序預測(Sentence order prediction,SOP)任務進一步改進了BERT 模型.2019 年,百度推出了中文預訓練語言模型ERNIE (Enhanced representation through knowledge integration)[19],它通過對詞語、實體等語義單元進行掩碼(MASK),使得模型可以學習到潛在的知識和語義依賴關系,提高了模型的泛化能力,ERNIE 在中文任務中全面超越了BERT模型.隨后,哈爾濱工業大學訊飛聯合實驗室發布了中文RoBERTa_wwm_ext[20]模型,它將整詞掩碼(Whole word masking,WWM)應用到中文BERT 模型中,在多個中文任務中得到了更好的實驗結果.
多跳推理要求模型在多個文檔中尋找線索并推理出答案,已成為MRC 任務中的研究熱點,相關研究人員針對該任務已開展了大量深入研究.CogQA(Cognitive graph question answering)[21]建立了一種認知圖譜問答模型,它設計了兩個系統來維護一張認知圖譜,系統1 遍歷文檔,抽取與問題相關的實體來擴展認知圖譜,系統2 利用圖注意力網絡(Graph attention network,GAT)在構建的認知圖譜上進行推理,并回答問題.DFGN構造了一個動態實體圖并通過GAT 在實體圖上進行推理.同時,設計了一個融合模塊來提高實體圖和文章之間的交互性.HDE (Heterogeneous document-entity)[22]通過互注意力機制學習候選答案、問題、文檔以及實體之間的關系,同時利用這些關系構建了一個異構圖,并通過圖卷積神經網絡(Graph convolutional network,GCN)在異構圖上進行推理,尋找答案證據.QFE (Query focused extractor)[23]將片段抽取任務與多跳推理任務進行聯合學習,使用RNN 來依次提取答案支撐句.SAE (Select,answer and explain)[24]設計了一個篩選模塊來過濾文檔中與問題無關的句子,并將片段抽取與多跳推理兩個任務進行聯合優化,在多跳推理任務中利用文檔句子之間的關系構造關系圖,進而利用GCN在關系圖上進行推理.
本文提出的MJL-model 模型將閱讀理解中的片段抽取問題、觀點類問題以及答案依據挖掘任務進行聯合優化學習,形成了一個端到端的多任務閱讀理解模型.模型結構如圖2 所示,主要包括編碼層、問題解答層、多跳推理層、預測層.在問題解答層,基于MHSA 及RCNN 實現了對觀點類問題的分類解答;在多跳推理層,利用詞法和句法分析工具識別文章各句子中的人名、地點、時間、組織機構、名詞等關鍵要素以及要素間的依存句法關系,利用要素之間的關聯關系以及句法關系建立關聯要素關系圖,并基于關聯要素關系圖在DFGN 模型上進行答案依據挖掘.

圖2 MJL-model 模型結構Fig.2 Model architecture of MJL-model
編碼層將文章和問題的每個字或詞映射到一個高維的向量空間,獲得每個字或者詞的向量表示.本文使用RoBERTa_wwm_ext(l=12,d=768)模型來獲得文章P和問題O的向量化表示,l代表隱藏層數,d代表隱藏層大小.具體如式(1)和式(2)所示

其中,input表示RoBERTa_wwm_ext 模型的輸入,x表示文章和問題的12 層向量表示,本文使用最后4 層作為文章和問題的向量表示u,如式(3)和式(4)所示

本文將問題類型分為片段抽取(Span)類和觀點類問題,其中觀點類問題分為是/否(Yes/No)類、不可回答(Unknown)類.Span 類問題的答案為文章中的一個片段,Yes/No 類問題的答案是yes 或no,Unknown 類問題的答案是unknown.針對各個類型的問題,本文采用了不同的處理方法.
1)Yes/No類
針對Yes/No 類問題,模型需要根據文章來回答問題的是否觀點,它的答案不在文章中直接出現,而需要通過多個句子推理得到.本文通過引入MHSA進一步挖掘文章中Yes/No 類問題的文字線索,然后利用RCNN 實現對該類型問題的分類解答.MHSA定義為

然后通過RCNN 和全連接(Dense)層進行二分類,得到問題答案是yes/no的概率pyes/pno,具體計算如式(9)~(13)所示

2)Unknown類
在觀點類問題中,有些問題僅僅根據文章是無法得到答案的.對于此類問題,模型應該拒絕回答.針對此類問題,本文用[CLS]位置在編碼層中得到的向量c來表示當前輸入的文章和問題,然后輸入一個Wc∈R4d×1的Dense 層,得到答案是unknown的概率punknown,具體計算如(14)和式(15)所示

3)Span類
針對Span 類問題,由于它的答案是文章中的一個片段,模型需要根據問題在文章中標注出正確答案的開始位置和結束位置.本文通過編碼層得到問題及文章每個字符的向量化表示u,其中文章P中n個字符的編碼為 [u1,u2,···,un],ui∈R4d,然后在編碼層后添加一個Ws∈R4d×1的Dense 層,獲得分數s,使用分數s來表示每個位置的開始概率ps,具體計算如式(16)和式(17)所示

同理,加入另一個We∈R4d×1的Dense 層,獲得分數e,使用分數e來表示每個位置的結束概率pe,如式(18)和式(19)所示

本文在關聯要素關系圖上基于DFGN 模型進行多跳推理,檢索答案依據.多跳推理層結構如圖3所示,主要包括關聯要素關系圖構建和多跳推理兩部分.

圖3 多跳推理層結構圖Fig.3 Model architecture of multi-hop reasoning layer
在關聯要素關系圖中,顏色相同的要素代表它們位于同一句子,左邊關系圖考慮了位于同一句子中的要素以及不同句子中的相同要素,右邊關系圖考慮了存在句法關系的要素以及相似度大于η的要素,其中η=0.90,不同類型線條表示了構圖過程中不同關系的連邊.
1)關聯要素關系圖構建
對于CAIL2020 中文數據集,本文使用百度開源的LAC1https://github.com/baidu/lac工具從文章中識別時間、地點、人名、組織、名詞、專有名詞、數量詞等關鍵要素.關聯要素關系圖利用各要素之間的關系進行連邊,在構造關系圖時,本文采用了以下規則:a)同一句子中的所有要素進行連邊;b)不同句子中的相同要素進行連邊;c)為了增強不同句子之間的要素聯系,本文計算了不同句子中各要素之間的相似度.首先,利用BERT 得到要素對應的詞向量,然后利用余弦相似度計算兩個要素之間的相似度,如果該相似度大于η,則對兩個要素連邊;d)若不同句子間的兩個要素存在句法關系,則連接兩個要素.首先,將文章根據句號、問號、感嘆號等標點符號進行分割得到片段,然后使用DDParser2https://github.com/baidu/DDParser得到該片段的依存句法關系,如果兩個要素之間存在句法關系,則連接兩個要素.
對于HotpotQA 數據集,本文使用了spaCy3https://github.com/explosion/spaCy從文章中識別時間、地點、人名、名詞等關鍵要素及要素間的依存句法關系.
2)多跳推理
本文基于已構造的關聯要素關系圖和DFGN進行多跳推理,具體過程如下:
步驟 1.本文在數據預處理階段構建了要素位置矩陣M與句子位置矩陣B,M記錄了每個要素在input中的相應位置,B記錄了每個句子在input中的相應位置,M與B中的元素為0 或1.
其中,M為一個w×g的矩陣,w表示文章中的要素個數,g表示input的長度,對于任意要素i在input中的位置為si~ei,則的值為1,Mi中的其余值為0.B為一個r×g的矩陣,r表示文章中的句子個數,對于任意句子k在in-put中的位置為sk~ek,則的值為1,Bk中的其余值為0.
步驟 2.通過要素位置矩陣M得到任意要素i在input中的相應位置si~ei,在編碼層得到了input中每個字符的字向量表示u,則要素i對應的字符字向量為本文通過式(20)得到要素的詞向量h,初始化關聯要素關系圖中的要素特征表示.

步驟 3.通過MeanPooling 得到問題句向量然后計算關系圖中每個要素關于問題的相關度分數m=[m1,m2,···,mw],然后通過式(23)得到各個要素關于問題的特征表示h′,使模型在推理過程中更加關注與問題相關的要素.

其中,q表示通過編碼層得到的問題字向量,E是一個線性變化矩陣.
步驟 4.基于關聯要素關系圖進行多跳推理.首先,從問題中的某個要素開始推理,關注在關聯要素關系圖上與該要素有連邊的其他要素.然后通過計算它們之間的注意力分數,更新要素的特征表示.假設對于任意要素i,其相鄰要素為Ni,則要素i的注意力權重由式(24)和式(25)得出

最后,通過式(26)計算出要素i最終的特征表示

步驟 5.每完成一次推理,使用Bi-Directional Attention 更新問題的向量表示,然后通過步驟3計算關聯要素關系圖每個要素關于當前問題向量的相關度分數m,并根據m去更新關系圖的要素特征表示.
最后,不斷重復上述過程更新關聯要素關系圖各要素的特征表示.
預測層基于編碼層、問題解答層以及多跳推理層實現了對Span 類、觀點類問題以及答案依據挖掘任務的解答.
1)Span 及觀點類問題解答
本文在問題解答層得到了觀點類問題的答案概率,然后將這些答案概率作為Span 類問題中的答案開始及結束位置概率加入到Span 類問題中,與Span 類問題一起解答.如式(27)和式(28)所示,其中pstart,pend分別表示每個位置作為答案開始位置和結束位置的概率,n表示文章長度.

對于Span 類問題,由于它的答案是文章中的一個片段,答案位置需要滿足 1≤b ≤f和f≤n,其中b表示答案的開始位置,f表示答案的結束位置,本文將開始位置和結束位置的概率之和作為答案概率.在Span 類問題中,符合上述條件的答案一般有多個,本文從多個答案中選擇概率最大的作為Span類問題的答案.同理,對于觀點類問題也需要計算答案概率.本文將觀點類問題的概率的2 倍作為答案概率.最后從多個答案中選擇答案概率最大的作為最終答案,具體計算如式(29)~(33)所示

2)答案依據挖掘
本文通過多跳推理得到了關聯要素關系圖中每個要素的特征表示,結合要素位置矩陣M得到了要素對應字符的字向量表示,并進一步通過長短期記憶網絡(Long short-term memory,LSTM)得到文章P的特征表示z.然后結合句子位置矩陣B,通過Mean-Max Pooling 得到文章P中r個句子的特征表示,具體計算如式(34)和式(35)所示

然后通過Dense 層得到r個句子關于問題的相關度分數t,使用t來表示每個句子對于文章問題的支持率psup,具體如式(36)和式(37)所示

實驗選擇psup>0.53的句子作為支撐問題答案的依據.
本文分別在CAIL2020 閱讀理解數據集和HotpotQA 數據集上進行了實驗.
CAIL2020 閱讀理解數據集包括民事、刑事和行政共3 類中文裁判文書,問題類型涉及Span 類、Yes/No 類以及Unknown 類,且每個問題都需要給出答案依據.具體而言,對于每個問題,需要結合案情描述內容給出回答,同時需要給出支撐答案的依據,即所有支撐答案的句子編號.由于目前CAIL2020只公布了訓練集,沒有公布驗證集與測試集,在實驗中,本文根據各問題類型在整體數據中的比例按照4 :1的比例劃分了訓練集與測試集.
HotpotQA 數據集與CAIL2020 司法閱讀理解數據集較為相似,兩個數據集的任務形式基本一致.HotpotQA 數據集為每個問題提供了10 篇文章,問題類型包括Span 類和Yes/No 類,要求對每個問題給出答案和答案依據.本文在HotpotQA Distractor 驗證集上進行了實驗.
實驗所用的評價指標包括3 個部分,分別是Span類和觀點類問題的F1 值(Ans_F1)、答案依據挖掘任務的F1 值(Sup_F1)以及兩部分的聯合F1 值(Joint_F1).
Ans_F1 計算過程如式(38)~(40)所示

其中,wc表示預測答案與真實答案中相同的字符數,wp表示預測答案所包含的字符數,wg表示真實答案所包含的字符數.
Sup_F1 計算過程如式(41)~(43)所示

其中,TP表示預測答案與真實答案均為支撐句的句子數;FP表示預測答案是支撐句但真實答案不是支撐句的句子數;FN表示預測答案不是支撐句但真實答案是支撐句的句子數.
Joint_F1的計算過程如式(44)~(46)所示

實驗中采用5 個模型作為CAIL2020 數據集的基線模型,分別為:
1)Baseline_BERT (RoBERTa)4https://github.com/china-ai-law-challenge/CAIL2020/tree/master/ydlj:CAIL2020閱讀理解任務提供的基于BERT的閱讀理解模型;
2)Baseline_DPCNN:將MJL-model 模型中的RCNN 替換為深度金字塔卷積神經網絡(Deep pyramid convolutional neural network,DPCNN)[25];
3)Cola5https://github.com/neng245547874/cail2020-mrc(Single model):CAIL2020 閱讀理解挑戰賽第4 名所用模型;
4)DFGN_CAIL:按照CAIL2020的數據格式,修改了DFGN的數據處理部分.
實驗中采用4 個模型作為HotpotQA 數據集的基線模型,分別為:
1)Baseline6https://github.com/hotpotqa/hotpot:HotpotQA 閱讀理解任務提供的基于Glove (Global vectors)[26]的閱讀理解模型;
2)QFE:通過注意力機制和RNN 進行推理,并將片段抽取與多跳推理任務進行聯合優化;
3)DFGN:根據實體間的關系構造動態實體圖,通過GAT 在實體圖上進行多跳推理;
4)SAE:利用文檔句子間的關系構造關系圖,通過GCN 在關系圖上進行多跳推理.
1)CAIL2020 數據集實驗結果
對于CAIL2020 提供的基線模型,本文分別采用了BERT_base 和RoBERTa_wwm_ext 作為模型的編碼器.各模型均采用了相同的參數設置,具體為:lr=0.00002,epoch=10,dropout=0.1,batch_size=6,seq_length=512,實驗結果如表1所示.由表1 可以看出,Baseline_RoBERTa 模型的Ans_F1 相比Baseline_BERT 提高了1.41 個百分點,Sup_F1 提高了5.37 個百分點,Joint_F1提高了6.49 個百分點.因此,本文提出的方法和采用的基線模型均采用了RoBERTa_wwm_ext 作為編碼器.不同模型的實驗結果顯示,本文提出的MJL-model 模型在3 項評價指標上都優于所有基線模型.

表1 CAIL2020 數據集實驗結果(%)Table 1 Results on the CAIL2020 dataset (%)
2)HotpotQA 數據集實驗結果
同時,本文在HotpotQA Distractor 驗證集上進一步驗證了提出的方法,且MJL-model 模型采用與基線模型DFGN、SAE 完全相同的BERT_base_uncase 模型作為編碼器.
由表2 可以看出,本文提出的MJL-model 模型的Ans_F1 相比Baseline 模型提高了12.64 個百分點,Sup_F1 提高了19.30 個百分點,Joint_F1提高了22.01 個百分點.MJL-model 3 項評價指標都優于Baseline、QFE、DFGN,并且Sup_F1 優于所有基線模型.不同模型的實驗結果表明了本文提出的MJL-model 模型的有效性.

表2 HotpotQA 實驗結果(%)Table 2 Results on the HotpotQA dataset (%)
3)實驗數據分析
通過分析模型的實驗結果和所用的兩個數據集,發現MJL-model 模型在中、英文數據集上的表現存在一些差異,具體原因包括以下3 個方面:
a)數據集存在差異.CAIL2020 數據集按照逗號、分號、句號等將一篇文章劃分為不同的句子,相鄰句子存在較強的關聯性,但句子間包括的相同詞匯較少;HotpotQA 數據集中的每條句子相對獨立,相鄰句子間關聯性較弱,且不同句子間存在較多的相同單詞.
b)構圖上存在差異.由于CAIL2020 數據集中不同句子間的相同詞匯較少,利用句法關系來增強不同句子間的詞匯聯系,可以進一步幫助模型推理出答案句.HotpotQA 數據集考慮了一般的命名實體和名詞性單詞,不同句子間相同實體及單詞出現的次數較多,同時由于每條句子較為獨立,因此只有少數相鄰句子間存在句法關系.
c)句法分析工具存在差異.中文句法分析工具可以分析普通詞匯、命名實體間的句法關系;英文句法分析工具SpaCy、Stanford CoreNLP 等在進行句法分析時是以單詞粒度進行的,不能將命名實體作為一個整體去考慮.
因此,本文提出的模型在中文數據集上能夠擴充更多的節點關系,實驗結果也比英文數據集的結果更好.
為了進一步評估模型各個模塊的貢獻,本文進行了以下消融實驗:
1)Question_answering:將片段抽取和觀點類問題作為單任務進行實驗;
2)Answer_evidence:將答案依據挖掘任務作為單任務進行實驗;
3)–MHSA:去掉問題解答層中的多頭自注意力;
4)–RCNN:去掉問題解答層中的循環卷積神經網絡;
5)–Syntax &Similarity:在構建要素關系圖時,去掉要素之間的句法以及相似度關系.
具體消融實驗結果如表3 所示.
表3 實驗結果顯示,Question_answering的Ans_F1 與Answer_evidence的Sup_F1 相比MJL-model 都下降了2 個多百分點,證明了多任務聯合優化的有效性;針對觀點問題解答層,去掉MHSA后Ans_F1 下降了2.55 個百分點,去掉RCNN后Ans_F1 下降了2.87 個百分點,Sup_F1及Joint_F1 也都有明顯下降;針對關聯要素關系圖,去掉要素之間的句法關系以及相似度關系,Sup_F1 下降了1.12 個百分點,Ans_F1 下降了1.22 個百分點,Joint_F1 下降了1.92 個百分點.通過對消融實驗結果的分析,證明了本文所提方法的有效性.

表3 消融實驗結果(%)Table 3 Results of ablation experiments (%)
為了進一步驗證MHSA 機制和句法關系對模型結果的影響,本文對兩個樣例的關鍵過程進行了可視化展示,具體樣例如圖4~6 所示.

圖4 注意力可視化樣例Fig.4 Sample of attention visualization
1)圖4 呈現了實驗數據中某問題對應語句片段的注意力可視化樣例,其中顏色越深,代表它的注意力權重越高,對于模型正確作答越重要.圖4(a)為引入MHSA 機制的示例,圖4(b)為去掉MHSA機制的示例.
顯然,引入MHSA 機制后,模型不僅關注問題中出現的詞匯,而且也能捕獲帶有觀點類文字線索的詞匯,例如“逃匿”、“逃避”;而去掉MHSA 機制后,模型僅關注“文x1”、“支付” 等在問題中出現的詞匯,對觀點類文字線索的關注較少.因此,引入MHSA 機制可以使模型更好地回答觀點類問題.
2)圖5 展示出實驗數據集中一個真實語句片段生成的關聯要素關系圖樣例,圖5(a)為融入依存句法關系和要素相似度的示例,圖5(b)為DFGN生成的句子示例.

圖5 關聯要素關系圖樣例Fig.5 Sample of related element graph
圖5(a)根據本文提出的關聯規則將各要素進行連接,可得到“15.2”、“14.9”、“12.8”在句法上存在并列關系,“近端”、“中端”和“末端”間的相似度大于η,根據關系圖構建規則可將這3 個要素連接.基于該圖,模型可從問題要素“保修單”出發,得到“保修單-末端-12.8”線索關系.圖5(b)僅考慮了同一句子中的所有要素以及不同句子中的相同要素,缺乏能夠支撐問題與答案的線索關系.同時,為了更直觀地展示推理過程中要素之間的注意力關系,進一步輸出了上述樣例的多跳推理注意力可視化,如圖6 所示.

圖6 多跳推理注意力可視化樣例圖Fig.6 Visible sample of multi-hop reasoning attention
從圖6 可以看出,“保修單”與“近端”、“中端”、“15.2” 等要素具有較強的關聯性,“近端”與“15.2”、“中端”、“末端” 等要素緊密關聯,“中端”與“近端”、“15.2”、“末端” 等要素有緊密聯系,“末端”與“中端”、“14.9”、“12.8” 等要素關聯性較強.顯然,可以進一步建立“保修單”與“末端”和“12.8”的關聯關系.因此,本文提出的關聯要素關系圖能得到更有效的實驗結果.
本文針對閱讀理解任務中的觀點類問題以及答案依據挖掘展開研究,提出了一種基于MHSA 與句法關系增強的多任務閱讀理解模型.通過引入MHSA 和RCNN,改進了觀點類問題的解答方法;利用句法關系與其他要素關系構建關聯要素關系圖,并基于關聯要素關系圖進行多跳推理,優化了答案依據挖掘模型;最后將兩個任務進行聯合優化學習,建立了基于多任務聯合學習的閱讀理解模型.在CAIL2020 閱讀理解數據集和HotpotQA 數據集上的成功應用,驗證了所提方法的有效性.
在觀點類問題中,僅通過MHSA 機制挖掘文章中觀點類問題的文字線索可能還不夠充分.在未來工作中,將嘗試利用圖神經網絡來進一步挖掘文章中觀點類文字線索;答案依據挖掘對于閱讀理解的可解釋性具有重要意義,下一步將引入一些外部知識庫[27]和其他推理方法來探索更有效的答案依據挖掘方法.