汪 凱,劉明童,張玉潔,陳圓夢(mèng),徐金安,陳鈺楓
(北京交通大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,北京 100044)
深度神經(jīng)網(wǎng)絡(luò)技術(shù)為自然語(yǔ)言處理發(fā)展帶來(lái)嶄新建模方式和性能上的巨大提升,成為主流的研究方法,其中語(yǔ)義表示是研究熱點(diǎn)之一。已有研究表明有效的語(yǔ)義組合計(jì)算模型,如LSTM、CNN、Tree-LSTM等神經(jīng)網(wǎng)絡(luò)模型,可以提升自然語(yǔ)言處理應(yīng)用的性能,如機(jī)器翻譯[1]、情感分析[2]、復(fù)述識(shí)別[3]、自然語(yǔ)言推理[4]等。
基于序列化結(jié)構(gòu)的語(yǔ)義組合計(jì)算方法簡(jiǎn)單有效而被廣泛采用[5],但是,這種方法沒(méi)有考慮句法結(jié)構(gòu)信息,難以捕獲詞序完全相同但句法結(jié)構(gòu)不同的句子之間的差異。比如句子“放棄美麗的女人讓人心碎?!保梢杂袃煞N句法結(jié)構(gòu),如圖1(a)所示。在圖1(a)的句法結(jié)構(gòu)中,“美麗”作為形容詞修飾“女人”,“放棄”的對(duì)象是“美麗的女人”;在圖1(b)的句法結(jié)構(gòu)中,“美麗”作為名詞,“放棄”的對(duì)象是“美麗”。由此可見(jiàn),句法結(jié)構(gòu)決定句子語(yǔ)義,句子的語(yǔ)義表示應(yīng)該考慮其句法結(jié)構(gòu)。
圖1 相同句子的不同依存句法結(jié)構(gòu)
隨后,研究人員開(kāi)始關(guān)注基于句法結(jié)構(gòu)的語(yǔ)義組合計(jì)算方法[2,4,6]。組合原則表明句子的語(yǔ)義由其構(gòu)成成分的語(yǔ)義按照一定規(guī)則組合而成,由此根據(jù)句法結(jié)構(gòu)進(jìn)行語(yǔ)義組合計(jì)算一直是一個(gè)重要的探索方向。在基于句法結(jié)構(gòu)的語(yǔ)義組合計(jì)算方法中,采用樹(shù)結(jié)構(gòu)的組合計(jì)算方法最具有代表性,其中最為著名的是Kai[2]提出的Tree-LSTM。此類方法在給定的一棵句法樹(shù)上,從葉子節(jié)點(diǎn)開(kāi)始,語(yǔ)義信息自底向上傳遞,最終在樹(shù)的根節(jié)點(diǎn)獲得句子的語(yǔ)義表示。樹(shù)結(jié)構(gòu)的語(yǔ)義組合方法雖然建模了單詞在句法結(jié)構(gòu)上的語(yǔ)義修飾關(guān)系,但和序列化方法相比,模型受句法樹(shù)規(guī)定的語(yǔ)義組合順序的限制,無(wú)法并行計(jì)算以支持批處理。另外,由于需要額外的句法分析器,模型處理繁瑣且計(jì)算效率低,難以大規(guī)模應(yīng)用到自然語(yǔ)言處理的各項(xiàng)任務(wù)中。
為了解決上述問(wèn)題,本文主要針對(duì)基于句法結(jié)構(gòu)的語(yǔ)義組合計(jì)算方法展開(kāi)研究,提出一種基于圖的依存句法分析和利用圖神經(jīng)網(wǎng)絡(luò)語(yǔ)義組合計(jì)算的聯(lián)合模型??紤]到依存結(jié)構(gòu)描述了反映單詞間語(yǔ)義修飾關(guān)系的依存關(guān)系,本文采用依存結(jié)構(gòu)信息指導(dǎo)語(yǔ)義組合計(jì)算。我們?cè)O(shè)計(jì)基于圖的依存句法分析方法,用于生成帶有概率的依存關(guān)系結(jié)構(gòu)圖,包含所有單詞對(duì)間的有向依存弧的概率。然后,我們使用依存關(guān)系概率作為圖神經(jīng)網(wǎng)絡(luò)中信息傳遞的權(quán)值,一方面使得語(yǔ)義組合計(jì)算可以按照單詞間修飾關(guān)系概率結(jié)合所有單詞的語(yǔ)義;另一方面,基于圖神經(jīng)網(wǎng)絡(luò)的語(yǔ)義組合計(jì)算可以實(shí)現(xiàn)并行處理,支持訓(xùn)練和預(yù)測(cè)階段的批處理,提升計(jì)算效率。本文模型與已有方法的對(duì)比如圖2所示。其中,圖2(a)是基于序列化結(jié)構(gòu)的組合方法,圖2(b)是基于樹(shù)結(jié)構(gòu)的語(yǔ)義組合方法,圖2(c)是本文提出的基于圖結(jié)構(gòu)的語(yǔ)義組合方法。我們以復(fù)述識(shí)別作為語(yǔ)義組合計(jì)算的目標(biāo)任務(wù),在公開(kāi)漢語(yǔ)復(fù)述識(shí)別數(shù)據(jù)集LCQMC[7]上的實(shí)驗(yàn)結(jié)果表明,本文提出的模型優(yōu)于已有序列結(jié)構(gòu)的語(yǔ)義組合計(jì)算方法,可以有效改進(jìn)復(fù)述識(shí)別性能。同時(shí),本文提出的語(yǔ)義組合方式支持批處理操作,在預(yù)測(cè)階段速度是Tree-LSTM的30倍,同時(shí)能保持較高的精度。
圖2 不同的語(yǔ)義組合計(jì)算方法對(duì)比
本文的主要貢獻(xiàn)如下:
(1) 提出一種基于圖的依存句法分析和語(yǔ)義組合計(jì)算的聯(lián)合框架;
(2) 提出一種基于圖神經(jīng)網(wǎng)絡(luò)的語(yǔ)義組合方法,可以實(shí)現(xiàn)并行處理,支持訓(xùn)練和預(yù)測(cè)階段的批處理,提升計(jì)算效率。
語(yǔ)義組合計(jì)算方法主要分為基于序列化的語(yǔ)義組合計(jì)算方法和基于句法結(jié)構(gòu)的語(yǔ)義組合計(jì)算方法。在序列化的語(yǔ)義組合計(jì)算中,如圖2(a)所示,模型從左到右依次讀入單詞,如LSTM、RNN等[5,8]。這些方法的優(yōu)點(diǎn)是可以表示任意長(zhǎng)度句子的上下文信息,其語(yǔ)義信息從左向右積累,最終將最后時(shí)刻的隱狀態(tài)向量視為整個(gè)句子的語(yǔ)義表示。Kim[9]利用卷積神經(jīng)網(wǎng)絡(luò)獲得句子的語(yǔ)義表示,具體做法是使用卷積核在輸入句上從左到右滑動(dòng),每次滑動(dòng)捕捉句子局部區(qū)域的特征,使得CNN更能捕獲n-gram特征,最后通過(guò)最大池化獲得句子的語(yǔ)義表示?;谛蛄谢姆椒榱俗非筮\(yùn)算效率,直接對(duì)句子的文本序列進(jìn)行語(yǔ)義組合計(jì)算,未對(duì)結(jié)構(gòu)信息加以利用,難以對(duì)結(jié)構(gòu)不同帶來(lái)的語(yǔ)義差異加以區(qū)分。
近年來(lái)有許多工作[2,10-11]試圖引入句法結(jié)構(gòu)進(jìn)行語(yǔ)義組合計(jì)算,并在情感分類[2]、自然語(yǔ)言推理[4,12]等任務(wù)中驗(yàn)證了比序列化模型更好的性能。Kai[2]使用了樹(shù)結(jié)構(gòu)進(jìn)行語(yǔ)義組合計(jì)算,從樹(shù)的葉子節(jié)點(diǎn)開(kāi)始將語(yǔ)義信息從底向上傳遞,最后在樹(shù)的根節(jié)點(diǎn)獲得句子表示。Chen[6]設(shè)計(jì)了增強(qiáng)樹(shù)結(jié)構(gòu)表示,利用短語(yǔ)結(jié)構(gòu)樹(shù)進(jìn)行語(yǔ)義組合計(jì)算。但是這些方法受自底向上的組合順序的限制無(wú)法實(shí)現(xiàn)并行計(jì)算,難以支持訓(xùn)練和預(yù)測(cè)階段的批處理,導(dǎo)致計(jì)算時(shí)間過(guò)長(zhǎng),難以滿足實(shí)際需求。Mou[4]提出了樹(shù)結(jié)構(gòu)的卷積操作,通過(guò)對(duì)每個(gè)節(jié)點(diǎn)的孩子節(jié)點(diǎn)進(jìn)行卷積操作獲得該節(jié)點(diǎn)的語(yǔ)義表示,最后對(duì)所有節(jié)點(diǎn)使用最大池化操作獲得句子語(yǔ)義表示,并在自然語(yǔ)言推理任務(wù)上驗(yàn)證其有效性。該方法雖然可以實(shí)現(xiàn)并行計(jì)算,但只計(jì)算了直接孩子的語(yǔ)義信息,沒(méi)有考慮子孫節(jié)點(diǎn)的語(yǔ)義。
本文提出的基于圖的依存分析模型和圖神經(jīng)網(wǎng)絡(luò)語(yǔ)義組合計(jì)算聯(lián)合框架,使用帶有概率的依存關(guān)系結(jié)構(gòu)圖進(jìn)行語(yǔ)義組合計(jì)算,一方面可以實(shí)現(xiàn)并行處理,另一方面可以考慮所有節(jié)點(diǎn)的語(yǔ)義信息。
我們采用依存句法樹(shù)作為句法結(jié)構(gòu)指導(dǎo)語(yǔ)義組合計(jì)算,提出了基于圖的依存句法分析和語(yǔ)義組合計(jì)算的聯(lián)合框架,模型架構(gòu)如圖3所示。模型接收句對(duì)P={p0,p1,…,pN}和Q={q0,q1,…,qN}。首先經(jīng)依存句法分析分別得到帶有概率的依存關(guān)系結(jié)構(gòu)圖,并從中得到依存樹(shù),然后經(jīng)語(yǔ)義組合計(jì)算利用該圖得到句子的語(yǔ)義表示,并送入復(fù)述識(shí)別分類器進(jìn)行判斷。在模型訓(xùn)練階段,我們聯(lián)合依存分析和復(fù)述識(shí)別任務(wù)的兩個(gè)目標(biāo)共同學(xué)習(xí)模型參數(shù)。
圖3 本文提出的聯(lián)合模型整體框架
本文采用基于圖的依存句法分析方法[13],該方法可以考慮全局信息進(jìn)行依存分析決策,最近研究顯示該方法在性能上超過(guò)了基于轉(zhuǎn)移的依存分析方法[14]。下面,我們以句子P={p0,p1,…,pN}為例,詳細(xì)介紹依存句法分析模塊。按照通常做法,我們?cè)诿總€(gè)句子的開(kāi)頭加入根節(jié)點(diǎn)的標(biāo)識(shí)“
首先將輸入的單詞序列轉(zhuǎn)化為數(shù)值向量表示,我們采用預(yù)訓(xùn)練詞向量、隨機(jī)初始化詞向量和詞性標(biāo)簽向量三部分構(gòu)成輸入詞向量。我們用e(pi)∈d表示預(yù)訓(xùn)練詞向量,e′(pi)∈d表示隨機(jī)初始化詞向量,e(posi)∈dpos表示詞性標(biāo)簽向量,dpos為詞性的嵌入維度,三部分的表示在訓(xùn)練中被更新。最終,每個(gè)單詞的表示由式(1)計(jì)算得出,其中“⊕”為拼接操作。
為了捕捉句子長(zhǎng)距離的上下文信息,我們采用深層雙向LSTM(BiLSTM)學(xué)習(xí)句子中的詞表示。其中,第i時(shí)刻(對(duì)應(yīng)第i個(gè)單詞)的隱藏狀態(tài)表示如式(2)所示。
本文使用圖G=(V,E)表示句子P的依存關(guān)系圖,其中V={p0,p1,…,pN}是句子中單詞節(jié)點(diǎn)集合,E是依存關(guān)系邊集合。序列P中每個(gè)詞與圖上的節(jié)點(diǎn)對(duì)應(yīng),使用pj→pi表示核心詞(head)pj與依存詞(dep)pi之間存在依存關(guān)系。由于句子中任意兩個(gè)單詞之間存在兩種依存關(guān)系pj→pi和pi→pj,需要為每個(gè)單詞計(jì)算其作為核心詞或依存詞的向量表示。為此,我們?yōu)槊總€(gè)單詞設(shè)置兩個(gè)向量表示,一個(gè)是單詞作為依存詞的表示,另一個(gè)是單詞作為核心詞的表示。對(duì)于這兩種表示的計(jì)算,我們分別采用多層感知器對(duì)BiLSTM的輸出hi進(jìn)行計(jì)算,如式(3)和式(4)所示[13]。在此基礎(chǔ)上,可以為所有單詞對(duì)中的兩種依存關(guān)系計(jì)算得分,具體的我們采用雙仿射注意力機(jī)制進(jìn)行計(jì)算,計(jì)算過(guò)程如式(5)所示。其中,sij表示pj→pi的得分,得分越大表示構(gòu)成pj→pi的可能性越大。
其中,U表示權(quán)重矩陣,u表示偏置項(xiàng)。
si=[si0,…,sij,…,siN](j∈{0,1,…,N}),sij是pj→pi依存關(guān)系的得分,其中si0用于衡量第i單詞成為根ROOT的可能性。隨后采用公式(6)進(jìn)行歸一化操作得到概率分布αi,由αi(i∈{0,1,…,N})構(gòu)成依存關(guān)系概率矩陣α。最后采用最大生成樹(shù)算法解碼獲得句子的依存結(jié)構(gòu)。在訓(xùn)練階段,我們使用交叉熵作為損失函數(shù),如式(7)所示。
我們提出一種基于圖神經(jīng)網(wǎng)絡(luò)的語(yǔ)義組合計(jì)算方法,通過(guò)利用上一節(jié)的依存分析提供的依存關(guān)系的概率矩陣α進(jìn)行語(yǔ)義組合計(jì)算,以支持批處理大幅提升計(jì)算速度。根據(jù)句法分析,αij表示單詞pj是pi核心詞的概率,我們將依存句法分析學(xué)習(xí)到的權(quán)重αij視為依存關(guān)系pj→pi的語(yǔ)義相關(guān)性權(quán)重,同時(shí)將hi視為圖上節(jié)點(diǎn)pi的語(yǔ)義表示,然后在此圖基礎(chǔ)上進(jìn)行語(yǔ)義組合計(jì)算。
本文采用圖信息傳遞機(jī)制[15-16]建模圖中每個(gè)節(jié)點(diǎn)的語(yǔ)義信息,首先節(jié)點(diǎn)pi從鄰節(jié)點(diǎn)收集語(yǔ)義信息,我們?cè)O(shè)計(jì)了兩種收集語(yǔ)義信息的方式(如圖4所示)。
圖4 基于圖神經(jīng)網(wǎng)絡(luò)使用結(jié)構(gòu)信息的兩種方式
第一種收集方式利用依存關(guān)系概率矩陣α直接作為權(quán)重結(jié)合鄰節(jié)點(diǎn)的語(yǔ)義表示,計(jì)算公式如式(8)所示,我們稱這種方式為軟結(jié)構(gòu)信息,示意圖如圖4(a)所示。第二種收集語(yǔ)義信息的方式依據(jù)依存結(jié)構(gòu)結(jié)合具有依存關(guān)系節(jié)點(diǎn)的語(yǔ)義信息[16-17],首先修改依存關(guān)系概率矩陣α,對(duì)于單詞pi設(shè)置概率最大的核心詞的概率為1,其他單詞的概率設(shè)置為0,具體修改方式如式(9)所示,然后再按式(8)進(jìn)行語(yǔ)義信息的收集,我們稱這種方式為硬結(jié)構(gòu)信息,示意圖如圖4(b)所示。得到鄰節(jié)點(diǎn)語(yǔ)義信息Mi后,根據(jù)式(10)更新當(dāng)前節(jié)點(diǎn)的語(yǔ)義表示。
其中,Mi∈d是節(jié)點(diǎn)pi從鄰節(jié)點(diǎn)獲得的語(yǔ)義信息,hi∈d表示節(jié)點(diǎn)pi原始的語(yǔ)義表示,ηpi∈是節(jié)點(diǎn)pi的語(yǔ)義更新權(quán)重,控制應(yīng)保留pi多少原來(lái)的語(yǔ)義信息,(1-ηpi)用于控制節(jié)點(diǎn)pi接收到多少鄰節(jié)點(diǎn)的語(yǔ)義信息。最后,使用平均池化獲得句子的語(yǔ)義表示。句子語(yǔ)義表示定義為:
其中,Np是句子P中單詞節(jié)點(diǎn)下標(biāo)的集合,|Np|是句子P中單詞的個(gè)數(shù)。vp即為句子P的語(yǔ)義表示。同理,對(duì)于句子Q,我們可以獲得其語(yǔ)義表示vq。
為了檢驗(yàn)本文基于圖神經(jīng)網(wǎng)絡(luò)的語(yǔ)義組合計(jì)算方法能更好地學(xué)習(xí)句子的語(yǔ)義表示,我們聯(lián)合了復(fù)述識(shí)別任務(wù)。給定句對(duì)P和Q,預(yù)測(cè)兩個(gè)句子是否具有相同的語(yǔ)義。首先基于語(yǔ)義組合計(jì)算模塊,為句對(duì)中的每個(gè)句子生成語(yǔ)義表示vp和vq。然后,使用這兩個(gè)句子的語(yǔ)義表示(vp和vq)構(gòu)造特征向量d[4],如式(12)所示。然后將此特征向量d送入復(fù)述識(shí)別分類器。
其中,“⊙”表示按元素乘積操作,“⊕”表示向量拼接操作,d∈4d是構(gòu)造的特征向量,復(fù)述識(shí)別分類器我們采用多層感知機(jī)的方式,如式(13)所示。
在訓(xùn)練階段我們使用交叉熵作為損失函數(shù),定義為:
本文提出的聯(lián)合模型涉及兩個(gè)任務(wù)——依存句法分析和語(yǔ)義組合計(jì)算,我們采用復(fù)述識(shí)別驗(yàn)證語(yǔ)義組合計(jì)算。由此,模型需要同時(shí)學(xué)習(xí)和優(yōu)化多個(gè)學(xué)習(xí)目標(biāo)。在傳統(tǒng)的聯(lián)合學(xué)習(xí)中,通常對(duì)各個(gè)任務(wù)的損失進(jìn)行線性加權(quán)求和,如式(15)所示,該方法權(quán)重較難設(shè)定。為了解決多目標(biāo)聯(lián)合學(xué)習(xí)問(wèn)題,我們采用Kendall[18]設(shè)計(jì)的自學(xué)習(xí)多目標(biāo)權(quán)重方法。該方法根據(jù)噪聲方差作為模型收斂程度的評(píng)估,進(jìn)行比重調(diào)整。其目標(biāo)函數(shù)設(shè)計(jì)如式(16)所示。
其中σ1,σ2∈為學(xué)習(xí)的參數(shù),跟隨訓(xùn)練過(guò)程被更新,Ldep為依存分析的損失函數(shù),Lpair為復(fù)述識(shí)別的損失函數(shù)。
本文使用公開(kāi)漢語(yǔ)復(fù)述識(shí)別數(shù)據(jù)集LCQMC[7]作為實(shí)驗(yàn)數(shù)據(jù)。我們采用高精度的哈工大語(yǔ)言技術(shù)平臺(tái)ltp3.4.0(1)http://ltp.ai/download.html獲取分詞、詞性和依存句法標(biāo)注[9],我們將依存句法標(biāo)注視為ground truth。表1給出了LCQMC數(shù)據(jù)集的統(tǒng)計(jì)信息。
表1 實(shí)驗(yàn)數(shù)據(jù)集的統(tǒng)計(jì)信息
實(shí)驗(yàn)中采用預(yù)訓(xùn)練的Word2Vec詞向量[20],預(yù)訓(xùn)練詞向量為200維。詞性標(biāo)簽向量設(shè)置100維,設(shè)置所有LSTM結(jié)構(gòu)的隱藏層為400維,層數(shù)為3。對(duì)與MLP(dep)和MLP(head)設(shè)置層數(shù)都為1,隱藏層維度分別為100和500,采用leakyrelu激活函數(shù),α設(shè)置為0.1。對(duì)于MLP(clf)設(shè)置層數(shù)為2,隱藏層維度分別為800和400,采用相同的激活函數(shù)。我們采用Adam[21]優(yōu)化算法,設(shè)置初始學(xué)習(xí)率大小為2e-3,β1為0.9,β2為0.9。在每一輪迭代中,學(xué)習(xí)率以0.95的頻率衰減。訓(xùn)練batch的大小為128。為了防止過(guò)擬合,我們使用了 dropout。設(shè)置詞向量輸入層的drop率為0.33,leakyrelu層輸出層的drop率為0.33。與已有工作一致,我們采用無(wú)標(biāo)記依存正確率UAS和帶標(biāo)記依存正確率LAS作為依存分析評(píng)價(jià)指標(biāo),采用Accuracy和融合Precision和Recall的綜合指標(biāo)F1值作為復(fù)述識(shí)別的評(píng)價(jià)指標(biāo)。
如果按照式(15)計(jì)算損失函數(shù),為了找到合理的ω需要多次實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示。表2顯示了不同權(quán)重ω對(duì)依存分析和復(fù)述識(shí)別任務(wù)性能的影響結(jié)果。當(dāng)ω較小時(shí),復(fù)述識(shí)別性能較好,但是依存分析精度較低;當(dāng)ω較大時(shí),依存分析精度較好但是復(fù)述識(shí)別性能較低。當(dāng)ω設(shè)置為0.9時(shí),依存分析的結(jié)果達(dá)到最好,帶標(biāo)記正確率達(dá)到94.37%,但復(fù)述識(shí)別的Accuracy只有75.37%。當(dāng)ω設(shè)置為0.5時(shí),能共同得到較好的性能,復(fù)述識(shí)別Accuracy為76.31%,依存分析LAS為93.99%。
表2 不同ω下聯(lián)合模型在開(kāi)發(fā)集中兩個(gè)任務(wù)上的性能
如果按照公式(16),采用Kendall[18]設(shè)計(jì)的多目標(biāo)損失函數(shù),復(fù)述識(shí)別Accuracy達(dá)到76.77%,依存分析LAS為92.70%。與公式(15)中ω=0.5時(shí)的最好結(jié)果相比,其復(fù)述識(shí)別的準(zhǔn)確率提高0.46個(gè)百分點(diǎn),顯示該方法優(yōu)于線性加權(quán)的損失函數(shù)。隨后實(shí)驗(yàn)中我們采用Kendall[18]設(shè)計(jì)的多目標(biāo)函數(shù)方法。
2.2節(jié)介紹了每個(gè)節(jié)點(diǎn)結(jié)合鄰近節(jié)點(diǎn)語(yǔ)義信息更新自身語(yǔ)義表示的組合計(jì)算方法,使得每個(gè)節(jié)點(diǎn)包含了直接核心詞的語(yǔ)義信息。如果在此基礎(chǔ)上再進(jìn)行一次語(yǔ)義組合計(jì)算,將使每個(gè)節(jié)點(diǎn)獲得間接核心詞的語(yǔ)義信息。為了分析語(yǔ)義組合次數(shù)的影響,我們分別進(jìn)行了基于0次、1次、2次和3次語(yǔ)義組合計(jì)算的評(píng)測(cè),實(shí)驗(yàn)結(jié)果如表 3所示。n=0表示沒(méi)有利用結(jié)構(gòu)信息,n=1,2,3表示以不同語(yǔ)義組合計(jì)算次數(shù)利用結(jié)構(gòu)信息。與n=0相比,n=1的模型在測(cè)試集上,復(fù)述識(shí)別在F1和Accuracy分別提高了1.96和1.97個(gè)百分點(diǎn),說(shuō)明句法結(jié)構(gòu)指導(dǎo)語(yǔ)義組合計(jì)算上的有效性。
表3 語(yǔ)義組合次數(shù)在不同任務(wù)上的性能,n=0表示沒(méi)有利用句法結(jié)構(gòu)信息
與n=2,3相比,n=1的模型在復(fù)述識(shí)別任務(wù)上均優(yōu)于n=2,3的模型。實(shí)驗(yàn)結(jié)果表明繼續(xù)增加組合次數(shù)并沒(méi)有提升性能。同時(shí),隨著組合次數(shù)的增加,模型的復(fù)雜度也會(huì)增加,隨后實(shí)驗(yàn)中我們選擇一次語(yǔ)義組合計(jì)算。另外,我們注意到聯(lián)合模型并未給依存分析帶來(lái)性能上的提升,一方面,由于本文的重點(diǎn)放在語(yǔ)義組合計(jì)算上,還沒(méi)有找到同時(shí)提升依存分析精度的有效聯(lián)合方法;另一方面,本文使用的依存結(jié)構(gòu)標(biāo)注并非人工標(biāo)注,我們分析由于存在一定錯(cuò)誤,因此難以給出依存分析模型的正確評(píng)測(cè)結(jié)果。
我們與基于序列化和樹(shù)結(jié)構(gòu)的5種語(yǔ)義組合計(jì)算方法進(jìn)行比較,對(duì)比模型分為以下幾類:
Baseline: 上一節(jié)中n=0的模型,即包含序列信息無(wú)結(jié)構(gòu)信息。
MeanVector: 將詞表示的平均池化作為句子的語(yǔ)義表示,其中詞表示的計(jì)算方法如式(1)所示,該方式既無(wú)序列信息,也無(wú)句法結(jié)構(gòu)信息。
CNN: 基于卷積神經(jīng)網(wǎng)絡(luò)的語(yǔ)義組合計(jì)算方法Kim[9]和Liu[7],該方式包含序列信息無(wú)結(jié)構(gòu)信息。
BiLSTM: 使用前向LSTM和后向LSTM最后時(shí)刻的隱狀態(tài)向量拼接作為句子表示[5,7],該方式包含序列信息,無(wú)結(jié)構(gòu)信息。
Tree-LSTM: 使用Kai[2]提出的Child-Sum Tree-LSTM,利用依存結(jié)構(gòu)樹(shù)進(jìn)行語(yǔ)義組合計(jì)算,將根節(jié)點(diǎn)獲得的隱狀態(tài)向量視為句子的表示,該方式包含結(jié)構(gòu)信息。
在復(fù)述識(shí)別任務(wù)上,我們的模型與5種模型在測(cè)試集上的評(píng)測(cè)結(jié)果如表4所示。
表4 在復(fù)述識(shí)別上與已有序列化和樹(shù)結(jié)構(gòu)語(yǔ)義組合方式的比較結(jié)果
從表4的結(jié)果可以看出,在無(wú)結(jié)構(gòu)信息的4種方法中,本文設(shè)計(jì)的Baseline取得了最好的結(jié)果,其F1和Accuracy達(dá)到79.88%和77.57%。分析其原因在于本文的模型中使用了圖神經(jīng)網(wǎng)絡(luò),當(dāng)處理較長(zhǎng)的句子時(shí),每個(gè)節(jié)點(diǎn)能從較遠(yuǎn)節(jié)點(diǎn)收集語(yǔ)義信息更新自身表示,能捕捉較長(zhǎng)句子的上下文信息。與未利用結(jié)構(gòu)信息的模型中最好精度的Baseline相比,本文的模型在Baseline的基礎(chǔ)上加入依存結(jié)構(gòu)優(yōu)化目標(biāo),在F1和Accuracy上分別提高了1.96和1.97個(gè)百分點(diǎn)。實(shí)驗(yàn)結(jié)果表明利用句法結(jié)構(gòu)信息進(jìn)行語(yǔ)義組合計(jì)算的有效性。與利用結(jié)構(gòu)信息的Tree-LSTM相比,本文模型在F1和Accuracy低于Tree-LSTM 0.18和0.68個(gè)百分點(diǎn)。分析其原因是Tree-LSTM直接使用了我們視為ground truth的依存標(biāo)簽,而本文模型使用的是依存標(biāo)簽訓(xùn)練之后依存句法分析模塊產(chǎn)生的依存結(jié)構(gòu),其依存分析精度沒(méi)有g(shù)round truth高。
已有的基于結(jié)構(gòu)的Tree-LSTM每次只能處理一個(gè)句對(duì),本文采用基于圖的依存分析和圖網(wǎng)絡(luò)語(yǔ)義組合方法,可以實(shí)現(xiàn)對(duì)多個(gè)句對(duì)的批處理,從而解決已有模型預(yù)測(cè)速度慢的問(wèn)題。我們?cè)诓煌L(zhǎng)度的句子上對(duì)模型的預(yù)測(cè)速度進(jìn)行評(píng)測(cè),并與Tree-LSTM進(jìn)行對(duì)比,評(píng)測(cè)結(jié)果如圖5所示。句長(zhǎng)在 1~5和6~10時(shí)我們模型的預(yù)測(cè)速度是Tree-LSTM 的30倍;在句長(zhǎng)為11~15時(shí),速度是Tree-LSTM的20倍。這些結(jié)果顯示本文提出的模型在預(yù)測(cè)速度上較Tree-LSTM有顯著優(yōu)勢(shì)。
圖 5 句長(zhǎng)對(duì)模型預(yù)測(cè)速度的影響
以上分析結(jié)果顯示,本文提出的基于依存句法分析和復(fù)述識(shí)別的聯(lián)合模型,采用基于圖神經(jīng)網(wǎng)絡(luò)的語(yǔ)義組合方法,可以有效利用句法結(jié)構(gòu)信息改進(jìn)語(yǔ)義組合計(jì)算,提高復(fù)述識(shí)別系統(tǒng)的精度和計(jì)算速度。
我們分析了模型中結(jié)構(gòu)信息對(duì)最終復(fù)述識(shí)別精度的影響,實(shí)驗(yàn)結(jié)果展示在表5中。從表5的實(shí)驗(yàn)結(jié)果可以看出,基于圖神經(jīng)網(wǎng)絡(luò)引入依存結(jié)構(gòu)信息,有效改進(jìn)了復(fù)述識(shí)別的性能。模型(1)沒(méi)有使用結(jié)構(gòu)信息,僅使用了復(fù)述識(shí)別的目標(biāo)函數(shù)進(jìn)行優(yōu)化,未考慮句子的句法結(jié)構(gòu),復(fù)述識(shí)別的Accuracy達(dá)到77.57%。模型(2)引入了句法目標(biāo)訓(xùn)練模型參數(shù),采用了本文提出的硬結(jié)構(gòu)信息,復(fù)述識(shí)別Accuracy達(dá)到79.15%,對(duì)比沒(méi)有結(jié)構(gòu)信息提高了1.58個(gè)百分點(diǎn),這表明引入句法結(jié)構(gòu)對(duì)語(yǔ)義組合的有效性。模型(3)采用了軟結(jié)構(gòu)信息,Accuracy達(dá)到79.54%,進(jìn)一步改進(jìn)了復(fù)述識(shí)別的性能,同時(shí),實(shí)驗(yàn)表明本文提出的軟結(jié)構(gòu)依存信息在性能上優(yōu)于硬結(jié)構(gòu)的方法。最終,實(shí)驗(yàn)結(jié)果表明,本文提出的基于句法結(jié)構(gòu)進(jìn)行語(yǔ)義組合計(jì)算的方法,可以有效學(xué)習(xí)句子的語(yǔ)義表示,提高了復(fù)述識(shí)別系統(tǒng)的精度。
表5 模型融入依存結(jié)構(gòu)信息有效性分析結(jié)果
我們?cè)贚CQMC的測(cè)試集中挑選了一些句對(duì)進(jìn)行進(jìn)一步分析。使用1-gram計(jì)算句子P與句子Q的Bleu值,對(duì)于復(fù)述識(shí)別來(lái)說(shuō),Bleu很高的非復(fù)述句對(duì)和Bleu很低的復(fù)述句對(duì),都是很難的任務(wù),基于淺層信息的方法很難正確識(shí)別,需要深層語(yǔ)義理解才可解決。我們特地選擇這樣的句對(duì)評(píng)測(cè)我們模型的效果,分析結(jié)果如表6所示。
表6 一些復(fù)雜的例子在本文模型和Baseline上的表現(xiàn),“T”表示是復(fù)述關(guān)系,“F”表示非復(fù)述關(guān)系。
示例A~B為Bleu較低的復(fù)述句對(duì),因此,容易識(shí)別為非復(fù)述關(guān)系。但是本文模型能夠正確識(shí)別為復(fù)述關(guān)系,而B(niǎo)aseline錯(cuò)誤地識(shí)別為非復(fù)述關(guān)系。這一對(duì)比結(jié)果表明本文利用句法結(jié)構(gòu)進(jìn)行語(yǔ)義組合計(jì)算的方法可以捕捉句對(duì)之間深層的語(yǔ)義相關(guān)性,實(shí)現(xiàn)正確判斷。
示例C~D為Bleu較高的非復(fù)述句對(duì),因此,容易識(shí)別為復(fù)述關(guān)系。但是本文模型能夠正確識(shí)別為非復(fù)述關(guān)系,而B(niǎo)aseline錯(cuò)誤地將其識(shí)別為復(fù)述關(guān)系。這一對(duì)比結(jié)果表明句法結(jié)構(gòu)更易于解決涉及結(jié)構(gòu)復(fù)雜表達(dá)的語(yǔ)義理解。
示例E~F是Baseline和本文模型都產(chǎn)生錯(cuò)誤的情況。E為Bleu較低的復(fù)述句對(duì)。我們分析預(yù)測(cè)錯(cuò)誤的原因是句子的表達(dá)比較口語(yǔ)化,利用句法分析很難進(jìn)行正確分析。F為Bleu較高的非復(fù)述句對(duì),其中含有相似的詞語(yǔ)“語(yǔ)文”和“語(yǔ)文題”,我們分析預(yù)測(cè)錯(cuò)誤的原因是詞的語(yǔ)義表示不能有效地區(qū)分二者,這使模型錯(cuò)誤地認(rèn)為它們是復(fù)述的關(guān)系。對(duì)于更復(fù)雜的情況,句子的語(yǔ)義表示依舊面臨很多的問(wèn)題,例如歧義性以及口語(yǔ)表達(dá)。模型可能需要更多的推理信息來(lái)區(qū)分這些關(guān)系并做出正確的決定,例如結(jié)合外部知識(shí)模型更好地理解詞匯和短語(yǔ)語(yǔ)義。
本文提出一種依存句法分析和語(yǔ)義組合計(jì)算的聯(lián)合框架,設(shè)計(jì)了基于圖的依存句法分析模型和基于圖神經(jīng)網(wǎng)絡(luò)語(yǔ)義組合計(jì)算模型,利用依存分析給出的帶有概率的依存關(guān)系結(jié)構(gòu)圖,實(shí)現(xiàn)軟結(jié)構(gòu)的語(yǔ)義組合計(jì)算方法。一方面,圖模型中的并行計(jì)算能夠支持訓(xùn)練和預(yù)測(cè)階段的批處理,極大地提高計(jì)算速度;另一方面,兩個(gè)任務(wù)的聯(lián)合學(xué)習(xí)可使語(yǔ)義表示同時(shí)學(xué)習(xí)句法結(jié)構(gòu)和語(yǔ)義的上下文信息,提高復(fù)述識(shí)別精度。
今后,我們考慮結(jié)合預(yù)訓(xùn)練模型,如ELMO、BERT,以改進(jìn)模型性能。同時(shí),探索聯(lián)合模型中提升依存分析精度的方法,從而進(jìn)一步提升語(yǔ)義組合計(jì)算的精度。