何正海,線巖團(tuán)*,王 蒙,余正濤
(1.昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院,昆明 650504;2.云南省人工智能重點(diǎn)實(shí)驗(yàn)室(昆明理工大學(xué)),昆明 650504)
機(jī)器閱讀理解在人工智能領(lǐng)域是一個(gè)挑戰(zhàn)性的任務(wù),它的意義在于測(cè)試機(jī)器理解自然語(yǔ)言的能力。面向案件裁判文書(shū)的案情閱讀理解是一種抽取式閱讀理解,要求機(jī)器根據(jù)給定的案件事實(shí)描述回答相關(guān)問(wèn)題。案情閱讀理解是機(jī)器閱讀理解在司法領(lǐng)域的重要應(yīng)用,有望輔助法官、律師以及公眾以問(wèn)答的方式獲取案件信息。
近年來(lái),隨著深度學(xué)習(xí)技術(shù)的發(fā)展,出現(xiàn)了許多基于神經(jīng)網(wǎng)絡(luò)的閱讀理解方法。相對(duì)于傳統(tǒng)的基于規(guī)則的閱讀理解方法,深度學(xué)習(xí)方法自動(dòng)學(xué)習(xí)問(wèn)句與篇章的語(yǔ)義特征,大幅提升了機(jī)器閱讀理解的效果。基于深度學(xué)習(xí)的抽取式閱讀理解,普遍的模型是將問(wèn)題和篇章編碼共同輸入到模型當(dāng)中,最后輸出答案片段。研究人員通過(guò)使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[1]、長(zhǎng)短期記憶(Long Short Term Memory,LSTM)[2]、注意力機(jī)制Attention[3]或相結(jié)合的方式進(jìn)行篇章語(yǔ)義理解。BiDAF(Bi-Directional Attention Flow for machine comprehension)[4]通過(guò)共享相似度矩陣做了問(wèn)題到篇章和篇章到問(wèn)題的雙向注意力,在計(jì)算相似度矩陣時(shí)細(xì)化到篇章和問(wèn)題當(dāng)中的每一個(gè)詞的詞嵌入維度級(jí)的交互注意;FusionNet(fully-aware Fusion Network)提出了詞歷史概念,并以此為基礎(chǔ)提出了一個(gè)全意識(shí)的多層次attention機(jī)制來(lái)捕獲一個(gè)文本中的完整信息并逐層將其用于對(duì)等體[5];QANet(Question Answering Network architecture)[6]通過(guò)共享相似度矩陣把問(wèn)題融入篇章不斷地做卷積和自注意力進(jìn)行特征提取,其中自注意力采用Vaswani等[3]研究的多頭自注意力;U-Net(machine reading comprehension with Unanswerable questions)[7]采用一個(gè)通用節(jié)點(diǎn)把問(wèn)題和篇章鏈接在一起經(jīng)過(guò)三層BiLSTM且每層做一次問(wèn)題和篇章之間的相互注意力,然后把經(jīng)過(guò)注意力的問(wèn)題和篇章再通過(guò)通用節(jié)點(diǎn)拼在一起,最后把三層的注意力結(jié)果拼接在一起得到一個(gè)多級(jí)注意力;SLQA(Semantic Learning for Question Answering)[8]對(duì)問(wèn)題和篇章分別做自注意力和相互之間的注意力,然后通過(guò)一個(gè)融合層分別將問(wèn)題和篇章的自注意力和交互注意力融合在一起。
分析以上閱讀理解模型,都是通過(guò)問(wèn)題和篇章的語(yǔ)義編碼,互注意力及自注意力機(jī)制獲取篇章中與問(wèn)題相關(guān)的信息,最后通過(guò)Pointer網(wǎng)絡(luò)提取問(wèn)題的答案。對(duì)于法研杯2019案情閱讀理解問(wèn)句,例如:“原告的月收入是?”“原告的車(chē)損估價(jià)是多少?”“原告的車(chē)輛的車(chē)牌號(hào)是?”等。這些問(wèn)題在前期的注意力機(jī)制下基本都會(huì)注意到相關(guān)的信息,但在最后確定答案時(shí),受限于問(wèn)題的Sum_attention對(duì)每個(gè)詞都要不同程度地關(guān)注而不能提取到問(wèn)句的關(guān)鍵信息,就不能從前期關(guān)注到的相關(guān)信息中提取到正確的答案,造成答案不準(zhǔn)。注意到在做問(wèn)題和篇章之間的注意力時(shí)只考慮了詞級(jí)的注意力,沒(méi)有考慮字符注意力。因?yàn)閷?duì)中文而言字也包含了豐富的語(yǔ)義,若能充分挖掘字的意思就能增加語(yǔ)義信息。
針對(duì)以上問(wèn)題,在解決法研杯2019閱讀理解任務(wù)時(shí)本文在SAN(Stochastic Answer Networks for machine reading comprehension)[9]基礎(chǔ)上提出了融合句法指導(dǎo)與字符注意力機(jī)制的案情閱讀理解方法。具體方法是在SAN模型[9]的基礎(chǔ)上,在它的編碼端加入了字符注意力來(lái)增加字符級(jí)語(yǔ)義信息,在注意力層的問(wèn)題Sum_attention中加入句法指導(dǎo)的mask來(lái)明確關(guān)鍵信息。
本文的主要工作有以下三點(diǎn):
1)對(duì)問(wèn)題進(jìn)行句法分析,提出了問(wèn)題句法指導(dǎo)的mask注意力機(jī)制。
2)在表示編碼層引入問(wèn)題到篇章的字符注意力來(lái)增加字符級(jí)語(yǔ)義相似度計(jì)算,提升語(yǔ)義編碼能力。
3)結(jié)合句法指導(dǎo)的mask注意力及字符注意力在法研杯2019閱讀理解數(shù)據(jù)集上比基準(zhǔn)模型取得了更好的性能。
受益于SQuAD(Stanford Question Answering Dataset)[10]基準(zhǔn)數(shù)據(jù)集的發(fā)布,抽取式機(jī)器閱讀理解取得了快速的發(fā)展。對(duì)于給定的篇章和問(wèn)題,分別輸入到神經(jīng)網(wǎng)絡(luò)模型當(dāng)中編碼進(jìn)行語(yǔ)義理解,通過(guò)注意力機(jī)制進(jìn)行信息交互,最后用分類(lèi)器預(yù)測(cè)答案的開(kāi)始位置和結(jié)束位置。Seo等[4]是最早研究該數(shù)據(jù)集的工作之一,它引入了雙向注意力流網(wǎng)絡(luò),以不同程度的粒度捕獲問(wèn)題及篇章的信息;Yu等[6]提出了一種僅由卷積網(wǎng)絡(luò)和自注意力組成的編碼塊提高了閱讀理解的訓(xùn)練速度;DCN+(improved Dynamic Coattention Network)提出了將交叉熵?fù)p失與自我批評(píng)型策略學(xué)習(xí)相結(jié)合,從單詞重疊中獲得的獎(jiǎng)勵(lì)解決評(píng)估指標(biāo)與優(yōu)化目標(biāo)之間的不一致問(wèn)題,同時(shí)還利用深層殘余涂層濃淡編碼器改進(jìn)了動(dòng)態(tài)涂層注意網(wǎng)絡(luò)[11]。SQuAD 2.0[12]在SQuAD[10]基礎(chǔ)上增加了無(wú)答案類(lèi)問(wèn)題,以此來(lái)增加閱讀理解的難度。Liu等[9]引用了McCann等[13]經(jīng)過(guò)預(yù)訓(xùn)練的MT-LSTM(Multi-Timescale LSTM)詞向量并且提出了隨即丟棄的回答模塊的閱讀理解模型;Sun等[7]通過(guò)引入一個(gè)通用節(jié)點(diǎn)把問(wèn)題和段落連接在一起進(jìn)行詞向量編碼,并且該模型有三個(gè)重要的組成部分:答案指針,無(wú)答案指針和答案驗(yàn)證程序。Wang等[8]在編碼端融合預(yù)訓(xùn)練的字符級(jí)詞嵌入和自注意力時(shí)加入手工特征提高了模型性能。與以上工作僅做詞級(jí)注意力不同,本文在表示編碼層加入了字符注意力。
隨著句法分析的發(fā)展,句法信息也逐漸地被融入神經(jīng)網(wǎng)絡(luò)當(dāng)中來(lái)提高模型的性能。文獻(xiàn)[14]及文獻(xiàn)[15]把句法解析的結(jié)果標(biāo)簽轉(zhuǎn)換成詞向量簡(jiǎn)單地與詞嵌入進(jìn)行了拼接,Wang等[16]利用句法解析距離把距離情感目標(biāo)詞距離超過(guò)1的詞信息mask掉來(lái)做局部注意力,Zhang等[17]做閱讀理解時(shí)利用句法解析生成稀疏的方陣運(yùn)用在自注意力上。受以上文獻(xiàn)的啟發(fā),本文利用句法解析在問(wèn)題自注意力時(shí)加入句法mask來(lái)凸顯問(wèn)題中的關(guān)鍵信息。
至此,本文在SAN模型[9]的基礎(chǔ)上根據(jù)裁判文書(shū)的特點(diǎn)進(jìn)行改進(jìn)。因?yàn)閷?duì)于中文,字符編碼也包含了豐富的語(yǔ)義信息,同時(shí)在答案提取階段不能很好地凸顯問(wèn)題的重要信息而造成答案不準(zhǔn),以此對(duì)案情閱讀理解進(jìn)行了研究。
本文提出了一種融合句法指導(dǎo)與字符注意力機(jī)制的案情閱讀理解方法。核心是在詞級(jí)注意力的基礎(chǔ)上加入字符注意力,同時(shí)根據(jù)句法解析在問(wèn)題自注意時(shí)應(yīng)用句法指導(dǎo)的mask獲取關(guān)鍵信息。本文模型參考了SAN[9],并在其基礎(chǔ)上進(jìn)行了改進(jìn)。具體模型如圖1所示,處理過(guò)程為:給定篇章P={p0,p1,…,pn-1}輸 入 到 模 型 篇 章 部 分,問(wèn) 題Q={q0,q1,…,qm-1}輸入到模型問(wèn)題部分,最后輸出答案的開(kāi)始位置和結(jié)束位置。
圖1 融合句法指導(dǎo)與字符注意力機(jī)制的閱讀理解模型Fig.1 Reading comprehension model combining syntactic guidance and character attention mechanism
模型包括5個(gè)部分,分別是詞嵌入層(Embedding Layer)、表示編碼層(Representation Encode Layer)、上下文編碼層(Contextual Encode Layer)、注意力及融合層(Attention and Fusing Layer)、輸出層(Output Layer),本文在表示編碼層加了字符注意力,在注意力層的問(wèn)題Sum_attention采用了句法mask指導(dǎo)的注意力機(jī)制。本節(jié)分別對(duì)改進(jìn)部分進(jìn)行介紹。
SAN[9]基準(zhǔn)模型在篇章的編碼端由預(yù)訓(xùn)練的Glove詞嵌入、詞性、命名實(shí)體、二進(jìn)制特征、詞級(jí)注意力以及MTLSTM[13]進(jìn)行拼接編碼,而缺少字符詞嵌入。尤其對(duì)于中文來(lái)說(shuō),中文的字是帶有意思的,它的字符詞嵌入對(duì)于問(wèn)題和篇章的理解包含著豐富的語(yǔ)義。本文在基準(zhǔn)模型編碼端加入了字符詞嵌入,該字符詞嵌入與Char-CNN(Character-level Convolutional Networks for text classification)[18]句子級(jí)上的分字字符詞嵌入不同。受QANet[6]啟發(fā),本文在文本分詞的基礎(chǔ)上再對(duì)該詞進(jìn)行分字,也就是文本由一維變成了二維,然后用詞嵌入進(jìn)行編碼來(lái)獲得文本的字符詞嵌入表示。給定篇章的字符分字序列表示:P={{p11,p12,…,p1l},{p21,p22,…,p2l},…,{pi1,pi2,…,pil},…,{pn1,pn2,…,pnl}},問(wèn) 題 的 字 符 分 字 序 列 表 示:Q={{q11,q12,…,q1l},{q21,q22,…,q2l},…,{qi1,qi2,…,qil},…,{qm1,qm2,…,qml}},則它們的字符詞嵌入表示:
為了選出詞組中最能代表詞語(yǔ)意思的那個(gè)字,本文將字符級(jí)詞嵌入表示做以下處理:
問(wèn)題當(dāng)中字符與篇章當(dāng)中字符注意力得分計(jì)算如下:
其中αj表示在問(wèn)題字符級(jí)上的注意力得分。
經(jīng)過(guò)問(wèn)題注意力的篇章表示計(jì)算如下:
法研杯2019閱讀理解數(shù)據(jù)集中問(wèn)題的表述雖然具體,但其中一些詞語(yǔ)對(duì)于機(jī)器尋找答案來(lái)說(shuō)存在一定的干擾,例如“原告的車(chē)損估價(jià)為多少?”“原告的車(chē)輛的車(chē)牌號(hào)是?”,由于裁判文書(shū)中表達(dá)的嚴(yán)謹(jǐn),常常在句法分析上這一句的形容詞實(shí)際上在另一句就是主語(yǔ),造成在答案提取階段,問(wèn)題自注意力不能很好地獲取問(wèn)題中的重要信息造成主干信息模糊。
句法依賴(lài)包含著豐富的語(yǔ)義信息,它能區(qū)別開(kāi)文本當(dāng)中重要信息的依賴(lài)。為了在問(wèn)題自注意力當(dāng)中提取到關(guān)鍵信息。本文根據(jù)句法解析結(jié)果將問(wèn)題當(dāng)中的“ATT、RAD”及“LAD”位置的單詞mask掉以此來(lái)生成問(wèn)題自注意力的mask。具體一個(gè)問(wèn)題經(jīng)過(guò)句法解析顯示詞與詞之間的依賴(lài)關(guān)系結(jié)果如圖2所示。
圖2 句法解析結(jié)果Fig.2 Syntactic analysis results
這里如果把mask掉的位置表示成0,未被mask掉的位置表示成1,則這個(gè)問(wèn)題經(jīng)句法解析生成的maskM可表示成:[0,0,0,1,1,1,1]+padding mask。
對(duì)應(yīng)到問(wèn)題的Sum_attention的應(yīng)用:
本文采用法研杯2019發(fā)布的裁判文書(shū)閱讀理解數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。數(shù)據(jù)集都包含訓(xùn)練集(Train)、驗(yàn)證集(Dev)、測(cè)試集(Test)三部分,一共5萬(wàn)個(gè)問(wèn)答對(duì),涵蓋民事和刑事兩個(gè)方面的裁判案情,答案類(lèi)型有片段抽取、是否類(lèi)、無(wú)答案類(lèi)。各類(lèi)統(tǒng)計(jì)數(shù)據(jù)參見(jiàn)表1。
表1 數(shù)據(jù)統(tǒng)計(jì)Tab.1 Data statistics
本文采用閱讀理解任務(wù)中常用的一種內(nèi)部評(píng)價(jià)指標(biāo)EM(Exact Match)值和F1值對(duì)結(jié)果進(jìn)行評(píng)價(jià)。其中EM值是完全匹配值,即模型預(yù)測(cè)答案和標(biāo)準(zhǔn)答案完全一致;F1值是準(zhǔn)確率和召回率的調(diào)和平均數(shù)。F1值具體計(jì)算方法如下:
其中:Precision是準(zhǔn)確率,Recall是召回率。
本文選擇了四種主流的機(jī)器閱讀理解模型作為基準(zhǔn)模型,包括:雙向注意力流模型BiDAF[4]、結(jié)合卷積網(wǎng)絡(luò)和自注意力機(jī)制的QANet[6]模型、把問(wèn)題和篇章連接在一起進(jìn)行編碼的U-Net[7]和本文的baseline模型SAN[9]。為了驗(yàn)證本文方法的有效性,本文方法及基準(zhǔn)模型均未使用預(yù)訓(xùn)練語(yǔ)言模型。表2中BiDAF[4]的實(shí)驗(yàn)結(jié)果為法研杯2019競(jìng)賽給出的基準(zhǔn)模型結(jié)果;QANet[6]和SAN[9]的實(shí)驗(yàn)結(jié)果來(lái)源于文獻(xiàn)復(fù)現(xiàn)的代碼:https://github.com/BangLiu/QANet-PyTorch,https://github.com/kevinduh/san_m rc;U-Net[7]的 實(shí) 驗(yàn) 結(jié) 果 是 作 者 公 布 的GitHub的代碼https://github.com/FudanNLP/UNet。其中代碼中的分詞、詞性及命名實(shí)體替換成了哈爾濱工業(yè)大學(xué)LTP工具:https://github.com/HIT-SCIR/ltp。
本文采用與文獻(xiàn)[9]一樣的預(yù)處理方法,在篇章開(kāi)頭加入了“YES、NO”來(lái)對(duì)應(yīng)是否類(lèi)答案的結(jié)果,分詞采用哈工大LTP分詞工具,預(yù)訓(xùn)練詞向量采用fasttext(cc.zh.300.vec)[19]。模型采用PyTorch框架[20]實(shí)現(xiàn),并在Nvidia Tesla P100 GPU上完成模型的訓(xùn)練和測(cè)試。本文提出模型的參數(shù)設(shè)置如下:詞嵌入維度為300,字嵌入維度為64,BiLSTM隱狀態(tài)維度為128,所有LSTM的隱狀態(tài)的dropout和回答模型的輸出層的dropout都為0.4,批次大小為32,優(yōu)化器選擇Adamax,初始學(xué)習(xí)率為0.002。
表2展示各基準(zhǔn)模型在該數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果,其中最后一行為本文的模型方法。與基準(zhǔn)模型相比,本文方法在該數(shù)據(jù)集上獲得了更好的EM/F1值,表明了字符編碼、字符注意力和句法指導(dǎo)的mask的有效性。其中BiDAF[4]在測(cè)試集上的F1值來(lái)源于競(jìng)賽組織方提供的結(jié)果,QANet[6]和U-Net[7]表現(xiàn)不佳。對(duì)QANet[6]原因可能是因?yàn)榉ㄑ斜瓟?shù)據(jù)集中篇章分詞后長(zhǎng)度近1/3超過(guò)400分布在500左右,主要構(gòu)造為卷積的QANet[6]并不適合處理過(guò)長(zhǎng)的文本;對(duì)U-Net[7]原因可能是因?yàn)榉ㄑ斜?xùn)練數(shù)據(jù)量較少和數(shù)據(jù)本身的特征有關(guān);相比于這三個(gè)基準(zhǔn)模型,SAN[9]基準(zhǔn)模型性能表現(xiàn)良好,因此本文選SAN[9]作為本文方法的baseline。
表2 法研杯數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果Tab.2 Experimental results on Law Research Cup dataset
本節(jié)在默認(rèn)超參設(shè)置下,分析了在加入字符注意力、句法mask對(duì)模型性能的影響。實(shí)驗(yàn)取三次實(shí)驗(yàn)的中間值作為最終結(jié)果。
在問(wèn)題Sum_attention自注意力上,為了探索句法mask對(duì)模型性能的影響,本文在句法解析的結(jié)果上根據(jù)問(wèn)題重要信息實(shí)施了兩種策略:1)mask掉問(wèn)題當(dāng)中的“ATT、RAD”和“LAD”位置的信息,因?yàn)樵谄庐?dāng)中與“ATT”相關(guān)的信息太多,并且有些是其他問(wèn)句中的主語(yǔ);2)留下問(wèn)題句中的“SBV、HED、VOB”及“FOB”位置的信息,相當(dāng)于留下了主謂賓位置的信息,實(shí)驗(yàn)結(jié)果如表3顯示,第1)種策略要好于第2)種策略。
表3 不同策略的mask實(shí)驗(yàn)結(jié)果Tab.3 Mask experimental resultsof different strategies
本文在SAN[9]基準(zhǔn)模型上對(duì)比了字符注意力應(yīng)用在注意力層和表示編碼層對(duì)模型的影響,表4的實(shí)驗(yàn)結(jié)果表明,字符注意力應(yīng)用在表示編碼層效果有明顯的提升,可能的原因是因?yàn)榛鶞?zhǔn)模型在上下文編碼層再次拼接了額外的詞嵌入知識(shí)的原因,同時(shí)表明了字符注意力有助于問(wèn)題和篇章的交互。
表4 字符注意力應(yīng)用在不同層的實(shí)驗(yàn)結(jié)果Tab.4 Experimental resultsof character attention applying on different layers
為了評(píng)估加入字符編碼、字符注意力以及句法mask各自的貢獻(xiàn),本文做了一個(gè)消融實(shí)驗(yàn),表5顯示了本文的模型和它在法研杯數(shù)據(jù)集上的消融情況。問(wèn)題句法指導(dǎo)的mask的注意力機(jī)制對(duì)于模型性能是最關(guān)鍵的,它在兩個(gè)評(píng)價(jià)標(biāo)準(zhǔn)上的影響是最明顯的。原因可能是問(wèn)題自注意力時(shí)有效地提取到了問(wèn)題中的關(guān)鍵信息。字符編碼也顯著地影響了性能,它在評(píng)價(jià)標(biāo)準(zhǔn)上的影響次之,因?yàn)樗苋诤献旨?jí)語(yǔ)義信息。字符注意力也有比較明顯的影響,因?yàn)樗芫徑鈫?wèn)題當(dāng)中與篇章當(dāng)中字級(jí)的語(yǔ)義相似度計(jì)算。
表5 在法研杯數(shù)據(jù)集上的消融實(shí)驗(yàn)結(jié)果Tab.5 Ablation experimental results on Law Research Cup dataset
本文針對(duì)法研杯2019閱讀理解任務(wù)提出了一種融合句法指導(dǎo)和字符注意力的閱讀理解方法。該模型通過(guò)在表示編碼層引入字符注意力機(jī)制增加了模型語(yǔ)義信息編碼,并在答案提取階段利用句法指導(dǎo)的mask注意力機(jī)制提取了問(wèn)句的主干信息,提升了答案抽取的準(zhǔn)確率。