張虎 王宇杰 譚紅葉 李茹
機(jī)器閱讀理解(Machine reading comprehension,MRC)是通過計(jì)算機(jī)理解文章語義并回答相關(guān)問題的一項(xiàng)重要研究任務(wù).MRC 研究對提升機(jī)器的自然語言理解能力具有重要促進(jìn)作用,已受到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注.早期的MRC 研究主要采用基于人工規(guī)則庫的方法,規(guī)則庫的建立和維護(hù)通常需要耗費(fèi)大量人力,且難以回答規(guī)則以外的問題[1].近年來,隨著機(jī)器學(xué)習(xí),特別是深度學(xué)習(xí)的快速發(fā)展[2],MRC的自動(dòng)答題效果有了明顯提升,在一些特定任務(wù)中MRC 模型的回答甚至可以媲美人類水平.
隨著BERT (Bidirectional encoder representations from transformers)[3]等預(yù)訓(xùn)練語言模型的出現(xiàn),片段抽取式MRC 任務(wù)的實(shí)驗(yàn)結(jié)果得到了較大提升,很多模型在SQuAD (Stanford question answering dataset)[4]等數(shù)據(jù)集上已經(jīng)超越了人類水平.為了進(jìn)一步檢驗(yàn)?zāi)P偷耐评砟芰?現(xiàn)有很多MRC數(shù)據(jù)集加入了觀點(diǎn)類問題,包括“是/否”和“不可回答”問題.SQuAD2.0[5]在SQuAD的基礎(chǔ)上增加了不可回答問題;CoQA (Conversational question answering)[6]是一個(gè)多輪對話MRC 數(shù)據(jù)集,它的答案形式涉及片段抽取、是/否、不可回答以及自由回答;CJRC (Chinese judicial reading comprehension)[7]是首個(gè)中文法律MRC 數(shù)據(jù)集,問題類型包括片段抽取、是/否與不可回答問題.然而,針對觀點(diǎn)類問題的MRC 任務(wù),現(xiàn)有閱讀理解模型仍然不能得到令人滿意的結(jié)果.觀點(diǎn)類問題的答案往往不在文章中直接出現(xiàn),一般需要通過多個(gè)句子推理得出.因此,對于此類問題,模型需要綜合理解閱讀材料后給出觀點(diǎn),并且如果根據(jù)材料語義無法作答,模型應(yīng)該將該問題判定為不可回答.
人類在回答閱讀理解問題時(shí),不僅可以給出問題答案,而且也可以給出支撐答案的依據(jù).然而,現(xiàn)有大多數(shù)MRC 模型僅可以給出問題的答案,無法給出支撐該答案的答案依據(jù),得到的答案通常缺乏可解釋性.為提高M(jìn)RC 模型的可解釋性,美國卡耐基梅隆大學(xué)、美國斯坦福大學(xué)等機(jī)構(gòu)聯(lián)合推出了多文檔多跳推理數(shù)據(jù)集HotpotQA[8],要求模型在多個(gè)文檔里尋找答案線索,給出答案依據(jù),并通過推理得到答案;中國“法研杯”司法人工智能挑戰(zhàn)賽(China AI Law Challenge 2020,CAIL2020)閱讀理解數(shù)據(jù)集提出了多跳推理任務(wù),要求MRC 模型在回答問題的同時(shí)給出答案依據(jù),即參與推理的句子編號.CAIL2020 閱讀理解數(shù)據(jù)集的樣例如圖1所示.
圖1 CAIL2020 閱讀理解數(shù)據(jù)集樣例Fig.1 Sample of CAIL2020 MRC dataset
為了同時(shí)實(shí)現(xiàn)觀點(diǎn)類問題作答和答案依據(jù)挖掘,本文提出了一種多任務(wù)聯(lián)合學(xué)習(xí)模型(Multitask joint learning model,MJL-model).該模型的主要思想是:首先,針對觀點(diǎn)類問題,引入多頭自注意力(Multi-head self-attention,MHSA)機(jī)制挖掘文章中觀點(diǎn)類問題的文字線索,然后利用循環(huán)卷積神經(jīng)網(wǎng)絡(luò)(Recurrent convolutional neural network,RCNN)[9]對觀點(diǎn)類問題進(jìn)行分類求解;其次,針對答案依據(jù)挖掘任務(wù),利用詞法與句法分析工具識別文章中各句子中的關(guān)鍵要素以及句法關(guān)系,利用要素間的依存句法關(guān)系以及其他關(guān)聯(lián)關(guān)系構(gòu)建關(guān)聯(lián)要素關(guān)系圖,并利用動(dòng)態(tài)融合圖網(wǎng)絡(luò)(Dynamically fused graph network,DFGN)[10]在關(guān)系圖上挖掘當(dāng)前問題的答案依據(jù),增強(qiáng)答案的可解釋性;最后,通過參數(shù)共享與聯(lián)合損失優(yōu)化,將兩個(gè)任務(wù)進(jìn)行聯(lián)合優(yōu)化學(xué)習(xí),實(shí)現(xiàn)觀點(diǎn)類問題的解答以及答案依據(jù)的挖掘.本文在CAIL2020 與HotpotQA 閱讀理解數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),分析了中英文數(shù)據(jù)集的差異,證明了該方法的有效性.
本文的主要貢獻(xiàn)有以下幾點(diǎn):
1)提出句法關(guān)系增強(qiáng)的關(guān)聯(lián)要素關(guān)系圖構(gòu)建方法,建立基于DFGN的答案依據(jù)挖掘模型;
2)針對觀點(diǎn)類問題解答和答案依據(jù)挖掘任務(wù),提出多任務(wù)聯(lián)合學(xué)習(xí)的閱讀理解模型;
3)同時(shí)在CAIL2020 與HotpotQA 閱讀理解數(shù)據(jù)集上進(jìn)行了多項(xiàng)對比實(shí)驗(yàn),驗(yàn)證了所提模型的有效性和通用性.
近幾年,學(xué)術(shù)界和工業(yè)界提出了多個(gè)大規(guī)模MRC數(shù)據(jù)集,促進(jìn)了MRC的發(fā)展.RACE (Reading comprehension dataset from examinations)[11]是美國卡耐基梅隆大學(xué)在2017 年推出的大規(guī)模MRC數(shù)據(jù)集,數(shù)據(jù)來源為中國中學(xué)生的英語考試,包含了28 000 篇文章和近10 萬個(gè)多項(xiàng)選擇題.SQuAD數(shù)據(jù)集由斯坦福大學(xué)于2016 年推出,主要來源于536 篇維基百科文章,包含了10 萬多個(gè)片段抽取式問題.2018 年推出的SQuAD2.0 進(jìn)一步加入了大量“無法回答”類問題,問題數(shù)量達(dá)到了15 萬個(gè),答題難度相比SQuAD有了明顯提升.2017 年,百度公司基于百度搜索和百度知道數(shù)據(jù)開放了中文MRC 數(shù)據(jù)集DuReader[12],該數(shù)據(jù)集共包含20 萬個(gè)問題和100 萬篇相關(guān)文檔,問題類型包括自由回答類與“是/否”類.2018 年美國卡耐基梅隆大學(xué)、美國斯坦福大學(xué)等機(jī)構(gòu)基于維基百科數(shù)據(jù)共同推出了多文檔多跳推理MRC 數(shù)據(jù)集HotpotQA,共包含11 萬個(gè)問題,要求模型答題時(shí)能夠同時(shí)給出答案和答案依據(jù).
受到大規(guī)模開放閱讀理解數(shù)據(jù)集的驅(qū)動(dòng),相關(guān)學(xué)者對閱讀理解模型開展了廣泛研究,在模型設(shè)計(jì)和訓(xùn)練方法等方面進(jìn)行了深入探索.
在BERT 等預(yù)訓(xùn)練語言模型提出之前,最優(yōu)的MRC 模型主要探索不同注意力機(jī)制的應(yīng)用.Attentive Reader[13]首次將注意力機(jī)制應(yīng)用到閱讀理解任務(wù)中,它使用雙向長短時(shí)記憶網(wǎng)絡(luò)(Bi-directional long short-term memory,BiLSTM)對文章和問題進(jìn)行編碼,計(jì)算從問題到文章的注意力.BiDAF(Bidirectional attention flow)[14]將MRC 模型劃分為編碼層、交互層和輸出層,建立了文章和問題的交互注意力機(jī)制.R-NET[15]改進(jìn)了循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural networks,RNN)在閱讀理解任務(wù)中的應(yīng)用,將注意力機(jī)制融入到RNN,并通過門控機(jī)制動(dòng)態(tài)控制信息的取舍.QANet[16]摒棄了RNN復(fù)雜的遞歸結(jié)構(gòu),只使用卷積神經(jīng)網(wǎng)絡(luò)和自注意力機(jī)制完成編碼工作,提高了模型的速度和準(zhǔn)確率.
目前,預(yù)訓(xùn)練語言模型已成為一種新的自然語言處理(Natural language processing,NLP)范式,其主要使用大規(guī)模文本語料庫進(jìn)行預(yù)訓(xùn)練,并用特定任務(wù)的小數(shù)據(jù)對模型進(jìn)行微調(diào),推動(dòng)了MRC 研究的快速發(fā)展.Google 于2018 年推出了BERT 預(yù)訓(xùn)練語言模型,該模型基于Transformer 編碼器,引入掩碼語言模型(Masked language model,MLM)和下一句預(yù)測(Next sentence prediction,NSP)任務(wù).隨后,2019 年Facebook 在BERT的基礎(chǔ)上提出了RoBERTa (Robustly optimized BERT approach)[17]模型,在預(yù)處理階段采用動(dòng)態(tài)掩碼取代了靜態(tài)掩碼,同時(shí)還去掉了NSP 任務(wù).顯然,預(yù)訓(xùn)練語言模型在提高NLP 相關(guān)任務(wù)效果的同時(shí),也增加了模型參數(shù)和訓(xùn)練時(shí)長.針對這些問題,Google 又在BERT的基礎(chǔ)上提出了ALBERT(A lite BERT)[18]模型,其使用詞向量因式分解和跨層參數(shù)共享的方法減少了模型的參數(shù)量,同時(shí)通過引入句子順序預(yù)測(Sentence order prediction,SOP)任務(wù)進(jìn)一步改進(jìn)了BERT 模型.2019 年,百度推出了中文預(yù)訓(xùn)練語言模型ERNIE (Enhanced representation through knowledge integration)[19],它通過對詞語、實(shí)體等語義單元進(jìn)行掩碼(MASK),使得模型可以學(xué)習(xí)到潛在的知識和語義依賴關(guān)系,提高了模型的泛化能力,ERNIE 在中文任務(wù)中全面超越了BERT模型.隨后,哈爾濱工業(yè)大學(xué)訊飛聯(lián)合實(shí)驗(yàn)室發(fā)布了中文RoBERTa_wwm_ext[20]模型,它將整詞掩碼(Whole word masking,WWM)應(yīng)用到中文BERT 模型中,在多個(gè)中文任務(wù)中得到了更好的實(shí)驗(yàn)結(jié)果.
多跳推理要求模型在多個(gè)文檔中尋找線索并推理出答案,已成為MRC 任務(wù)中的研究熱點(diǎn),相關(guān)研究人員針對該任務(wù)已開展了大量深入研究.CogQA(Cognitive graph question answering)[21]建立了一種認(rèn)知圖譜問答模型,它設(shè)計(jì)了兩個(gè)系統(tǒng)來維護(hù)一張認(rèn)知圖譜,系統(tǒng)1 遍歷文檔,抽取與問題相關(guān)的實(shí)體來擴(kuò)展認(rèn)知圖譜,系統(tǒng)2 利用圖注意力網(wǎng)絡(luò)(Graph attention network,GAT)在構(gòu)建的認(rèn)知圖譜上進(jìn)行推理,并回答問題.DFGN構(gòu)造了一個(gè)動(dòng)態(tài)實(shí)體圖并通過GAT 在實(shí)體圖上進(jìn)行推理.同時(shí),設(shè)計(jì)了一個(gè)融合模塊來提高實(shí)體圖和文章之間的交互性.HDE (Heterogeneous document-entity)[22]通過互注意力機(jī)制學(xué)習(xí)候選答案、問題、文檔以及實(shí)體之間的關(guān)系,同時(shí)利用這些關(guān)系構(gòu)建了一個(gè)異構(gòu)圖,并通過圖卷積神經(jīng)網(wǎng)絡(luò)(Graph convolutional network,GCN)在異構(gòu)圖上進(jìn)行推理,尋找答案證據(jù).QFE (Query focused extractor)[23]將片段抽取任務(wù)與多跳推理任務(wù)進(jìn)行聯(lián)合學(xué)習(xí),使用RNN 來依次提取答案支撐句.SAE (Select,answer and explain)[24]設(shè)計(jì)了一個(gè)篩選模塊來過濾文檔中與問題無關(guān)的句子,并將片段抽取與多跳推理兩個(gè)任務(wù)進(jìn)行聯(lián)合優(yōu)化,在多跳推理任務(wù)中利用文檔句子之間的關(guān)系構(gòu)造關(guān)系圖,進(jìn)而利用GCN在關(guān)系圖上進(jìn)行推理.
本文提出的MJL-model 模型將閱讀理解中的片段抽取問題、觀點(diǎn)類問題以及答案依據(jù)挖掘任務(wù)進(jìn)行聯(lián)合優(yōu)化學(xué)習(xí),形成了一個(gè)端到端的多任務(wù)閱讀理解模型.模型結(jié)構(gòu)如圖2 所示,主要包括編碼層、問題解答層、多跳推理層、預(yù)測層.在問題解答層,基于MHSA 及RCNN 實(shí)現(xiàn)了對觀點(diǎn)類問題的分類解答;在多跳推理層,利用詞法和句法分析工具識別文章各句子中的人名、地點(diǎn)、時(shí)間、組織機(jī)構(gòu)、名詞等關(guān)鍵要素以及要素間的依存句法關(guān)系,利用要素之間的關(guān)聯(lián)關(guān)系以及句法關(guān)系建立關(guān)聯(lián)要素關(guān)系圖,并基于關(guān)聯(lián)要素關(guān)系圖在DFGN 模型上進(jìn)行答案依據(jù)挖掘.
圖2 MJL-model 模型結(jié)構(gòu)Fig.2 Model architecture of MJL-model
編碼層將文章和問題的每個(gè)字或詞映射到一個(gè)高維的向量空間,獲得每個(gè)字或者詞的向量表示.本文使用RoBERTa_wwm_ext(l=12,d=768)模型來獲得文章P和問題O的向量化表示,l代表隱藏層數(shù),d代表隱藏層大小.具體如式(1)和式(2)所示
其中,input表示RoBERTa_wwm_ext 模型的輸入,x表示文章和問題的12 層向量表示,本文使用最后4 層作為文章和問題的向量表示u,如式(3)和式(4)所示
本文將問題類型分為片段抽取(Span)類和觀點(diǎn)類問題,其中觀點(diǎn)類問題分為是/否(Yes/No)類、不可回答(Unknown)類.Span 類問題的答案為文章中的一個(gè)片段,Yes/No 類問題的答案是yes 或no,Unknown 類問題的答案是unknown.針對各個(gè)類型的問題,本文采用了不同的處理方法.
1)Yes/No類
針對Yes/No 類問題,模型需要根據(jù)文章來回答問題的是否觀點(diǎn),它的答案不在文章中直接出現(xiàn),而需要通過多個(gè)句子推理得到.本文通過引入MHSA進(jìn)一步挖掘文章中Yes/No 類問題的文字線索,然后利用RCNN 實(shí)現(xiàn)對該類型問題的分類解答.MHSA定義為
然后通過RCNN 和全連接(Dense)層進(jìn)行二分類,得到問題答案是yes/no的概率pyes/pno,具體計(jì)算如式(9)~(13)所示
2)Unknown類
在觀點(diǎn)類問題中,有些問題僅僅根據(jù)文章是無法得到答案的.對于此類問題,模型應(yīng)該拒絕回答.針對此類問題,本文用[CLS]位置在編碼層中得到的向量c來表示當(dāng)前輸入的文章和問題,然后輸入一個(gè)Wc∈R4d×1的Dense 層,得到答案是unknown的概率punknown,具體計(jì)算如(14)和式(15)所示
3)Span類
針對Span 類問題,由于它的答案是文章中的一個(gè)片段,模型需要根據(jù)問題在文章中標(biāo)注出正確答案的開始位置和結(jié)束位置.本文通過編碼層得到問題及文章每個(gè)字符的向量化表示u,其中文章P中n個(gè)字符的編碼為 [u1,u2,···,un],ui∈R4d,然后在編碼層后添加一個(gè)Ws∈R4d×1的Dense 層,獲得分?jǐn)?shù)s,使用分?jǐn)?shù)s來表示每個(gè)位置的開始概率ps,具體計(jì)算如式(16)和式(17)所示
同理,加入另一個(gè)We∈R4d×1的Dense 層,獲得分?jǐn)?shù)e,使用分?jǐn)?shù)e來表示每個(gè)位置的結(jié)束概率pe,如式(18)和式(19)所示
本文在關(guān)聯(lián)要素關(guān)系圖上基于DFGN 模型進(jìn)行多跳推理,檢索答案依據(jù).多跳推理層結(jié)構(gòu)如圖3所示,主要包括關(guān)聯(lián)要素關(guān)系圖構(gòu)建和多跳推理兩部分.
圖3 多跳推理層結(jié)構(gòu)圖Fig.3 Model architecture of multi-hop reasoning layer
在關(guān)聯(lián)要素關(guān)系圖中,顏色相同的要素代表它們位于同一句子,左邊關(guān)系圖考慮了位于同一句子中的要素以及不同句子中的相同要素,右邊關(guān)系圖考慮了存在句法關(guān)系的要素以及相似度大于η的要素,其中η=0.90,不同類型線條表示了構(gòu)圖過程中不同關(guān)系的連邊.
1)關(guān)聯(lián)要素關(guān)系圖構(gòu)建
對于CAIL2020 中文數(shù)據(jù)集,本文使用百度開源的LAC1https://github.com/baidu/lac工具從文章中識別時(shí)間、地點(diǎn)、人名、組織、名詞、專有名詞、數(shù)量詞等關(guān)鍵要素.關(guān)聯(lián)要素關(guān)系圖利用各要素之間的關(guān)系進(jìn)行連邊,在構(gòu)造關(guān)系圖時(shí),本文采用了以下規(guī)則:a)同一句子中的所有要素進(jìn)行連邊;b)不同句子中的相同要素進(jìn)行連邊;c)為了增強(qiáng)不同句子之間的要素聯(lián)系,本文計(jì)算了不同句子中各要素之間的相似度.首先,利用BERT 得到要素對應(yīng)的詞向量,然后利用余弦相似度計(jì)算兩個(gè)要素之間的相似度,如果該相似度大于η,則對兩個(gè)要素連邊;d)若不同句子間的兩個(gè)要素存在句法關(guān)系,則連接兩個(gè)要素.首先,將文章根據(jù)句號、問號、感嘆號等標(biāo)點(diǎn)符號進(jìn)行分割得到片段,然后使用DDParser2https://github.com/baidu/DDParser得到該片段的依存句法關(guān)系,如果兩個(gè)要素之間存在句法關(guān)系,則連接兩個(gè)要素.
對于HotpotQA 數(shù)據(jù)集,本文使用了spaCy3https://github.com/explosion/spaCy從文章中識別時(shí)間、地點(diǎn)、人名、名詞等關(guān)鍵要素及要素間的依存句法關(guān)系.
2)多跳推理
本文基于已構(gòu)造的關(guān)聯(lián)要素關(guān)系圖和DFGN進(jìn)行多跳推理,具體過程如下:
步驟 1.本文在數(shù)據(jù)預(yù)處理階段構(gòu)建了要素位置矩陣M與句子位置矩陣B,M記錄了每個(gè)要素在input中的相應(yīng)位置,B記錄了每個(gè)句子在input中的相應(yīng)位置,M與B中的元素為0 或1.
其中,M為一個(gè)w×g的矩陣,w表示文章中的要素個(gè)數(shù),g表示input的長度,對于任意要素i在input中的位置為si~ei,則的值為1,Mi中的其余值為0.B為一個(gè)r×g的矩陣,r表示文章中的句子個(gè)數(shù),對于任意句子k在in-put中的位置為sk~ek,則的值為1,Bk中的其余值為0.
步驟 2.通過要素位置矩陣M得到任意要素i在input中的相應(yīng)位置si~ei,在編碼層得到了input中每個(gè)字符的字向量表示u,則要素i對應(yīng)的字符字向量為本文通過式(20)得到要素的詞向量h,初始化關(guān)聯(lián)要素關(guān)系圖中的要素特征表示.
步驟 3.通過MeanPooling 得到問題句向量然后計(jì)算關(guān)系圖中每個(gè)要素關(guān)于問題的相關(guān)度分?jǐn)?shù)m=[m1,m2,···,mw],然后通過式(23)得到各個(gè)要素關(guān)于問題的特征表示h′,使模型在推理過程中更加關(guān)注與問題相關(guān)的要素.
其中,q表示通過編碼層得到的問題字向量,E是一個(gè)線性變化矩陣.
步驟 4.基于關(guān)聯(lián)要素關(guān)系圖進(jìn)行多跳推理.首先,從問題中的某個(gè)要素開始推理,關(guān)注在關(guān)聯(lián)要素關(guān)系圖上與該要素有連邊的其他要素.然后通過計(jì)算它們之間的注意力分?jǐn)?shù),更新要素的特征表示.假設(shè)對于任意要素i,其相鄰要素為Ni,則要素i的注意力權(quán)重由式(24)和式(25)得出
最后,通過式(26)計(jì)算出要素i最終的特征表示
步驟 5.每完成一次推理,使用Bi-Directional Attention 更新問題的向量表示,然后通過步驟3計(jì)算關(guān)聯(lián)要素關(guān)系圖每個(gè)要素關(guān)于當(dāng)前問題向量的相關(guān)度分?jǐn)?shù)m,并根據(jù)m去更新關(guān)系圖的要素特征表示.
最后,不斷重復(fù)上述過程更新關(guān)聯(lián)要素關(guān)系圖各要素的特征表示.
預(yù)測層基于編碼層、問題解答層以及多跳推理層實(shí)現(xiàn)了對Span 類、觀點(diǎn)類問題以及答案依據(jù)挖掘任務(wù)的解答.
1)Span 及觀點(diǎn)類問題解答
本文在問題解答層得到了觀點(diǎn)類問題的答案概率,然后將這些答案概率作為Span 類問題中的答案開始及結(jié)束位置概率加入到Span 類問題中,與Span 類問題一起解答.如式(27)和式(28)所示,其中pstart,pend分別表示每個(gè)位置作為答案開始位置和結(jié)束位置的概率,n表示文章長度.
對于Span 類問題,由于它的答案是文章中的一個(gè)片段,答案位置需要滿足 1≤b ≤f和f≤n,其中b表示答案的開始位置,f表示答案的結(jié)束位置,本文將開始位置和結(jié)束位置的概率之和作為答案概率.在Span 類問題中,符合上述條件的答案一般有多個(gè),本文從多個(gè)答案中選擇概率最大的作為Span類問題的答案.同理,對于觀點(diǎn)類問題也需要計(jì)算答案概率.本文將觀點(diǎn)類問題的概率的2 倍作為答案概率.最后從多個(gè)答案中選擇答案概率最大的作為最終答案,具體計(jì)算如式(29)~(33)所示
2)答案依據(jù)挖掘
本文通過多跳推理得到了關(guān)聯(lián)要素關(guān)系圖中每個(gè)要素的特征表示,結(jié)合要素位置矩陣M得到了要素對應(yīng)字符的字向量表示,并進(jìn)一步通過長短期記憶網(wǎng)絡(luò)(Long short-term memory,LSTM)得到文章P的特征表示z.然后結(jié)合句子位置矩陣B,通過Mean-Max Pooling 得到文章P中r個(gè)句子的特征表示,具體計(jì)算如式(34)和式(35)所示
然后通過Dense 層得到r個(gè)句子關(guān)于問題的相關(guān)度分?jǐn)?shù)t,使用t來表示每個(gè)句子對于文章問題的支持率psup,具體如式(36)和式(37)所示
實(shí)驗(yàn)選擇psup>0.53的句子作為支撐問題答案的依據(jù).
本文分別在CAIL2020 閱讀理解數(shù)據(jù)集和HotpotQA 數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn).
CAIL2020 閱讀理解數(shù)據(jù)集包括民事、刑事和行政共3 類中文裁判文書,問題類型涉及Span 類、Yes/No 類以及Unknown 類,且每個(gè)問題都需要給出答案依據(jù).具體而言,對于每個(gè)問題,需要結(jié)合案情描述內(nèi)容給出回答,同時(shí)需要給出支撐答案的依據(jù),即所有支撐答案的句子編號.由于目前CAIL2020只公布了訓(xùn)練集,沒有公布驗(yàn)證集與測試集,在實(shí)驗(yàn)中,本文根據(jù)各問題類型在整體數(shù)據(jù)中的比例按照4 :1的比例劃分了訓(xùn)練集與測試集.
HotpotQA 數(shù)據(jù)集與CAIL2020 司法閱讀理解數(shù)據(jù)集較為相似,兩個(gè)數(shù)據(jù)集的任務(wù)形式基本一致.HotpotQA 數(shù)據(jù)集為每個(gè)問題提供了10 篇文章,問題類型包括Span 類和Yes/No 類,要求對每個(gè)問題給出答案和答案依據(jù).本文在HotpotQA Distractor 驗(yàn)證集上進(jìn)行了實(shí)驗(yàn).
實(shí)驗(yàn)所用的評價(jià)指標(biāo)包括3 個(gè)部分,分別是Span類和觀點(diǎn)類問題的F1 值(Ans_F1)、答案依據(jù)挖掘任務(wù)的F1 值(Sup_F1)以及兩部分的聯(lián)合F1 值(Joint_F1).
Ans_F1 計(jì)算過程如式(38)~(40)所示
其中,wc表示預(yù)測答案與真實(shí)答案中相同的字符數(shù),wp表示預(yù)測答案所包含的字符數(shù),wg表示真實(shí)答案所包含的字符數(shù).
Sup_F1 計(jì)算過程如式(41)~(43)所示
其中,TP表示預(yù)測答案與真實(shí)答案均為支撐句的句子數(shù);FP表示預(yù)測答案是支撐句但真實(shí)答案不是支撐句的句子數(shù);FN表示預(yù)測答案不是支撐句但真實(shí)答案是支撐句的句子數(shù).
Joint_F1的計(jì)算過程如式(44)~(46)所示
實(shí)驗(yàn)中采用5 個(gè)模型作為CAIL2020 數(shù)據(jù)集的基線模型,分別為:
1)Baseline_BERT (RoBERTa)4https://github.com/china-ai-law-challenge/CAIL2020/tree/master/ydlj:CAIL2020閱讀理解任務(wù)提供的基于BERT的閱讀理解模型;
2)Baseline_DPCNN:將MJL-model 模型中的RCNN 替換為深度金字塔卷積神經(jīng)網(wǎng)絡(luò)(Deep pyramid convolutional neural network,DPCNN)[25];
3)Cola5https://github.com/neng245547874/cail2020-mrc(Single model):CAIL2020 閱讀理解挑戰(zhàn)賽第4 名所用模型;
4)DFGN_CAIL:按照CAIL2020的數(shù)據(jù)格式,修改了DFGN的數(shù)據(jù)處理部分.
實(shí)驗(yàn)中采用4 個(gè)模型作為HotpotQA 數(shù)據(jù)集的基線模型,分別為:
1)Baseline6https://github.com/hotpotqa/hotpot:HotpotQA 閱讀理解任務(wù)提供的基于Glove (Global vectors)[26]的閱讀理解模型;
2)QFE:通過注意力機(jī)制和RNN 進(jìn)行推理,并將片段抽取與多跳推理任務(wù)進(jìn)行聯(lián)合優(yōu)化;
3)DFGN:根據(jù)實(shí)體間的關(guān)系構(gòu)造動(dòng)態(tài)實(shí)體圖,通過GAT 在實(shí)體圖上進(jìn)行多跳推理;
4)SAE:利用文檔句子間的關(guān)系構(gòu)造關(guān)系圖,通過GCN 在關(guān)系圖上進(jìn)行多跳推理.
1)CAIL2020 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
對于CAIL2020 提供的基線模型,本文分別采用了BERT_base 和RoBERTa_wwm_ext 作為模型的編碼器.各模型均采用了相同的參數(shù)設(shè)置,具體為:lr=0.00002,epoch=10,dropout=0.1,batch_size=6,seq_length=512,實(shí)驗(yàn)結(jié)果如表1所示.由表1 可以看出,Baseline_RoBERTa 模型的Ans_F1 相比Baseline_BERT 提高了1.41 個(gè)百分點(diǎn),Sup_F1 提高了5.37 個(gè)百分點(diǎn),Joint_F1提高了6.49 個(gè)百分點(diǎn).因此,本文提出的方法和采用的基線模型均采用了RoBERTa_wwm_ext 作為編碼器.不同模型的實(shí)驗(yàn)結(jié)果顯示,本文提出的MJL-model 模型在3 項(xiàng)評價(jià)指標(biāo)上都優(yōu)于所有基線模型.
表1 CAIL2020 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果(%)Table 1 Results on the CAIL2020 dataset (%)
2)HotpotQA 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
同時(shí),本文在HotpotQA Distractor 驗(yàn)證集上進(jìn)一步驗(yàn)證了提出的方法,且MJL-model 模型采用與基線模型DFGN、SAE 完全相同的BERT_base_uncase 模型作為編碼器.
由表2 可以看出,本文提出的MJL-model 模型的Ans_F1 相比Baseline 模型提高了12.64 個(gè)百分點(diǎn),Sup_F1 提高了19.30 個(gè)百分點(diǎn),Joint_F1提高了22.01 個(gè)百分點(diǎn).MJL-model 3 項(xiàng)評價(jià)指標(biāo)都優(yōu)于Baseline、QFE、DFGN,并且Sup_F1 優(yōu)于所有基線模型.不同模型的實(shí)驗(yàn)結(jié)果表明了本文提出的MJL-model 模型的有效性.
表2 HotpotQA 實(shí)驗(yàn)結(jié)果(%)Table 2 Results on the HotpotQA dataset (%)
3)實(shí)驗(yàn)數(shù)據(jù)分析
通過分析模型的實(shí)驗(yàn)結(jié)果和所用的兩個(gè)數(shù)據(jù)集,發(fā)現(xiàn)MJL-model 模型在中、英文數(shù)據(jù)集上的表現(xiàn)存在一些差異,具體原因包括以下3 個(gè)方面:
a)數(shù)據(jù)集存在差異.CAIL2020 數(shù)據(jù)集按照逗號、分號、句號等將一篇文章劃分為不同的句子,相鄰句子存在較強(qiáng)的關(guān)聯(lián)性,但句子間包括的相同詞匯較少;HotpotQA 數(shù)據(jù)集中的每條句子相對獨(dú)立,相鄰句子間關(guān)聯(lián)性較弱,且不同句子間存在較多的相同單詞.
b)構(gòu)圖上存在差異.由于CAIL2020 數(shù)據(jù)集中不同句子間的相同詞匯較少,利用句法關(guān)系來增強(qiáng)不同句子間的詞匯聯(lián)系,可以進(jìn)一步幫助模型推理出答案句.HotpotQA 數(shù)據(jù)集考慮了一般的命名實(shí)體和名詞性單詞,不同句子間相同實(shí)體及單詞出現(xiàn)的次數(shù)較多,同時(shí)由于每條句子較為獨(dú)立,因此只有少數(shù)相鄰句子間存在句法關(guān)系.
c)句法分析工具存在差異.中文句法分析工具可以分析普通詞匯、命名實(shí)體間的句法關(guān)系;英文句法分析工具SpaCy、Stanford CoreNLP 等在進(jìn)行句法分析時(shí)是以單詞粒度進(jìn)行的,不能將命名實(shí)體作為一個(gè)整體去考慮.
因此,本文提出的模型在中文數(shù)據(jù)集上能夠擴(kuò)充更多的節(jié)點(diǎn)關(guān)系,實(shí)驗(yàn)結(jié)果也比英文數(shù)據(jù)集的結(jié)果更好.
為了進(jìn)一步評估模型各個(gè)模塊的貢獻(xiàn),本文進(jìn)行了以下消融實(shí)驗(yàn):
1)Question_answering:將片段抽取和觀點(diǎn)類問題作為單任務(wù)進(jìn)行實(shí)驗(yàn);
2)Answer_evidence:將答案依據(jù)挖掘任務(wù)作為單任務(wù)進(jìn)行實(shí)驗(yàn);
3)–MHSA:去掉問題解答層中的多頭自注意力;
4)–RCNN:去掉問題解答層中的循環(huán)卷積神經(jīng)網(wǎng)絡(luò);
5)–Syntax &Similarity:在構(gòu)建要素關(guān)系圖時(shí),去掉要素之間的句法以及相似度關(guān)系.
具體消融實(shí)驗(yàn)結(jié)果如表3 所示.
表3 實(shí)驗(yàn)結(jié)果顯示,Question_answering的Ans_F1 與Answer_evidence的Sup_F1 相比MJL-model 都下降了2 個(gè)多百分點(diǎn),證明了多任務(wù)聯(lián)合優(yōu)化的有效性;針對觀點(diǎn)問題解答層,去掉MHSA后Ans_F1 下降了2.55 個(gè)百分點(diǎn),去掉RCNN后Ans_F1 下降了2.87 個(gè)百分點(diǎn),Sup_F1及Joint_F1 也都有明顯下降;針對關(guān)聯(lián)要素關(guān)系圖,去掉要素之間的句法關(guān)系以及相似度關(guān)系,Sup_F1 下降了1.12 個(gè)百分點(diǎn),Ans_F1 下降了1.22 個(gè)百分點(diǎn),Joint_F1 下降了1.92 個(gè)百分點(diǎn).通過對消融實(shí)驗(yàn)結(jié)果的分析,證明了本文所提方法的有效性.
表3 消融實(shí)驗(yàn)結(jié)果(%)Table 3 Results of ablation experiments (%)
為了進(jìn)一步驗(yàn)證MHSA 機(jī)制和句法關(guān)系對模型結(jié)果的影響,本文對兩個(gè)樣例的關(guān)鍵過程進(jìn)行了可視化展示,具體樣例如圖4~6 所示.
圖4 注意力可視化樣例Fig.4 Sample of attention visualization
1)圖4 呈現(xiàn)了實(shí)驗(yàn)數(shù)據(jù)中某問題對應(yīng)語句片段的注意力可視化樣例,其中顏色越深,代表它的注意力權(quán)重越高,對于模型正確作答越重要.圖4(a)為引入MHSA 機(jī)制的示例,圖4(b)為去掉MHSA機(jī)制的示例.
顯然,引入MHSA 機(jī)制后,模型不僅關(guān)注問題中出現(xiàn)的詞匯,而且也能捕獲帶有觀點(diǎn)類文字線索的詞匯,例如“逃匿”、“逃避”;而去掉MHSA 機(jī)制后,模型僅關(guān)注“文x1”、“支付” 等在問題中出現(xiàn)的詞匯,對觀點(diǎn)類文字線索的關(guān)注較少.因此,引入MHSA 機(jī)制可以使模型更好地回答觀點(diǎn)類問題.
2)圖5 展示出實(shí)驗(yàn)數(shù)據(jù)集中一個(gè)真實(shí)語句片段生成的關(guān)聯(lián)要素關(guān)系圖樣例,圖5(a)為融入依存句法關(guān)系和要素相似度的示例,圖5(b)為DFGN生成的句子示例.
圖5 關(guān)聯(lián)要素關(guān)系圖樣例Fig.5 Sample of related element graph
圖5(a)根據(jù)本文提出的關(guān)聯(lián)規(guī)則將各要素進(jìn)行連接,可得到“15.2”、“14.9”、“12.8”在句法上存在并列關(guān)系,“近端”、“中端”和“末端”間的相似度大于η,根據(jù)關(guān)系圖構(gòu)建規(guī)則可將這3 個(gè)要素連接.基于該圖,模型可從問題要素“保修單”出發(fā),得到“保修單-末端-12.8”線索關(guān)系.圖5(b)僅考慮了同一句子中的所有要素以及不同句子中的相同要素,缺乏能夠支撐問題與答案的線索關(guān)系.同時(shí),為了更直觀地展示推理過程中要素之間的注意力關(guān)系,進(jìn)一步輸出了上述樣例的多跳推理注意力可視化,如圖6 所示.
圖6 多跳推理注意力可視化樣例圖Fig.6 Visible sample of multi-hop reasoning attention
從圖6 可以看出,“保修單”與“近端”、“中端”、“15.2” 等要素具有較強(qiáng)的關(guān)聯(lián)性,“近端”與“15.2”、“中端”、“末端” 等要素緊密關(guān)聯(lián),“中端”與“近端”、“15.2”、“末端” 等要素有緊密聯(lián)系,“末端”與“中端”、“14.9”、“12.8” 等要素關(guān)聯(lián)性較強(qiáng).顯然,可以進(jìn)一步建立“保修單”與“末端”和“12.8”的關(guān)聯(lián)關(guān)系.因此,本文提出的關(guān)聯(lián)要素關(guān)系圖能得到更有效的實(shí)驗(yàn)結(jié)果.
本文針對閱讀理解任務(wù)中的觀點(diǎn)類問題以及答案依據(jù)挖掘展開研究,提出了一種基于MHSA 與句法關(guān)系增強(qiáng)的多任務(wù)閱讀理解模型.通過引入MHSA 和RCNN,改進(jìn)了觀點(diǎn)類問題的解答方法;利用句法關(guān)系與其他要素關(guān)系構(gòu)建關(guān)聯(lián)要素關(guān)系圖,并基于關(guān)聯(lián)要素關(guān)系圖進(jìn)行多跳推理,優(yōu)化了答案依據(jù)挖掘模型;最后將兩個(gè)任務(wù)進(jìn)行聯(lián)合優(yōu)化學(xué)習(xí),建立了基于多任務(wù)聯(lián)合學(xué)習(xí)的閱讀理解模型.在CAIL2020 閱讀理解數(shù)據(jù)集和HotpotQA 數(shù)據(jù)集上的成功應(yīng)用,驗(yàn)證了所提方法的有效性.
在觀點(diǎn)類問題中,僅通過MHSA 機(jī)制挖掘文章中觀點(diǎn)類問題的文字線索可能還不夠充分.在未來工作中,將嘗試?yán)脠D神經(jīng)網(wǎng)絡(luò)來進(jìn)一步挖掘文章中觀點(diǎn)類文字線索;答案依據(jù)挖掘?qū)τ陂喿x理解的可解釋性具有重要意義,下一步將引入一些外部知識庫[27]和其他推理方法來探索更有效的答案依據(jù)挖掘方法.