何垅旺,范亞鑫,褚曉敏,蔣 峰,李軍輝,李培峰
(蘇州大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院, 江蘇 蘇州 215006)
宏觀篇章結(jié)構(gòu)解析旨在通過分析篇章的結(jié)構(gòu),為篇章的結(jié)構(gòu)和語義理解奠定基礎(chǔ),并為下游任務(wù)提供有力的信息支撐(如問答系統(tǒng)[1]、機(jī)器翻譯[2-4]、自動文摘[5-7]、信息抽取[8-9]等)。篇章解析主要分為微觀和宏觀兩個層次。微觀級篇章解析主要研究句子與句子之間的組織結(jié)構(gòu)和語義關(guān)系,而宏觀級的篇章解析主要研究段落與段落之間的組織結(jié)構(gòu)和語義關(guān)系。相較于微觀篇章解析,宏觀篇章解析在文檔級篇章解析中發(fā)揮著重要作用,它從更高的層次揭示了文檔的主旨和內(nèi)容,有利于文章的深層次理解。宏觀篇章解析因基本篇章單元(Elementary Discourse Unit,EDU)為段落,顆粒度更大,所包含的語義信息更多,故篇章的全局信息變得更加復(fù)雜,為篇章結(jié)構(gòu)解析任務(wù)帶來了更大的挑戰(zhàn)。
以宏觀漢語篇章語料庫(Macro Chinese Discourse Treebank,MCDTB)[10]中的一篇文章chtb_0236為例,如圖1所示,其中葉子節(jié)點P1~P5表示該篇章中的5個EDU,即5個段落。非葉子節(jié)點則代表相鄰的節(jié)點通過篇章關(guān)系聯(lián)系起來成為一個更大的篇章單元(Discourse Unit,DU),箭頭指向核心篇章單元,即更為重要的篇章單元。篇章結(jié)構(gòu)分析就是通過逐級連接或逐級拆分篇章單元形成完整的篇章結(jié)構(gòu)樹的過程。
圖1 宏觀篇章結(jié)構(gòu)樹
在已有的結(jié)構(gòu)解析研究中,篇章結(jié)構(gòu)樹大多是分步驟逐級完成的,主流方法分為兩大類: ①自頂向下構(gòu)建法,如利用指針網(wǎng)絡(luò)進(jìn)行切分的方法[11-13]和序列標(biāo)注的方法[14]; ②自底向上構(gòu)建法,如移位規(guī)約法[15-17]、基于CRF的維特比解碼合并法[18]、基于CYK算法的構(gòu)建方法[19]等。Kobayashi等[20]使用了兩種基于動態(tài)規(guī)劃的無監(jiān)督解析方法,第一種為自頂向下進(jìn)行切分解析,第二種為自底向上進(jìn)行組合解析,并對比兩者的特點。自頂向下的方法更專注于全局的語義信息,而自底向上的方法則更關(guān)注相鄰兩個或是三個DU之間的語義聯(lián)系。然而,在結(jié)構(gòu)構(gòu)建的過程中,前序的步驟中產(chǎn)生的錯誤會對當(dāng)前步驟的結(jié)構(gòu)解析帶來負(fù)面影響,從而造成錯誤傳播(1)4.1節(jié)的實驗結(jié)果表明,錯誤傳播問題對基于指針網(wǎng)絡(luò)的自頂向下和自底向上模型分別帶來了16%和16.4%的性能損失。。所以如何最大限度地減少錯誤傳播成為結(jié)構(gòu)解析任務(wù)的突破點。
通過觀察單向模型構(gòu)建篇章結(jié)構(gòu)樹的過程,發(fā)現(xiàn)在采用單一方向構(gòu)建篇章結(jié)構(gòu)樹的過程中,切分模型在針對某些段落跨度時難以識別切分邊界,而此時組合模型卻能準(zhǔn)確找到組合位置,相反亦是如此。同時通過追蹤語料標(biāo)注者在篇章結(jié)構(gòu)標(biāo)注的過程中的實際行為,本文發(fā)現(xiàn),標(biāo)注者不僅會在一篇文章中有若干段落表達(dá)的語義存在明顯語義相關(guān)性的時候進(jìn)行篇章單元的合并,也會在文中出現(xiàn)明顯語義邊界時優(yōu)先進(jìn)行邊界點分割。受到實驗過程中的錯誤分析和標(biāo)注者的行為特點的啟發(fā),不同于以往的工作都采用單一的結(jié)構(gòu)構(gòu)建策略,本文提出了一種結(jié)合了兩類構(gòu)建方法的指針網(wǎng)絡(luò)模型,用于雙向地構(gòu)建篇章結(jié)構(gòu)樹,打破現(xiàn)有的單向結(jié)構(gòu)解析局限性。與單向構(gòu)建方法不同,該模型能在切分模塊和組合模塊中分別通過指針網(wǎng)絡(luò)同時得出單向解析結(jié)果,并對兩個結(jié)果中所包含的語義信息進(jìn)行對比,最后得出置信度更高的解析決策。這樣的篇章結(jié)構(gòu)樹構(gòu)建過程更符合人類標(biāo)注方法,減少了錯誤傳播,從而達(dá)到更優(yōu)的篇章結(jié)構(gòu)解析性能。
本文在模型訓(xùn)練時,將切分模塊和組合模塊同時進(jìn)行多任務(wù)學(xué)習(xí),在兩個模塊聯(lián)合學(xué)習(xí)的過程中,能夠互相學(xué)習(xí)到語義交界信息,加強(qiáng)了各自的篇章語義理解能力和尋找解析邊界能力,提升了兩種模塊各自的性能,進(jìn)而提升了兩種模塊結(jié)合以后整體的性能。本文的貢獻(xiàn)主要在于以下兩點:
(1) 提出了基于指針網(wǎng)絡(luò)的篇章結(jié)構(gòu)樹雙向構(gòu)建模型,能同時考慮切分和合并的決策可靠性,有效減少構(gòu)建過程中的錯誤傳播;
(2) 實驗結(jié)果中的性能分析和決策分析都表明,本文提出的模型取得了當(dāng)前的最佳性能。
近年來,篇章解析成為了自然語言處理領(lǐng)域的研究熱點,本節(jié)對涉及到宏觀篇章解析的研究工作進(jìn)行歸納。宏觀篇章解析的兩個流行的語料庫分別是: 英語的修辭結(jié)構(gòu)篇章樹庫(Rhetorical Structure Theory Discourse Treebank,RST-DT)[21]和漢語的宏觀漢語篇章樹庫(Macro Chinese Discourse Treebank,MCDTB)[10]。
修辭結(jié)構(gòu)篇章樹庫是由美國南加州加利福尼亞大學(xué)標(biāo)注完成,一共標(biāo)注了385篇文章的核心、關(guān)系和篇章結(jié)構(gòu)。近年來,在該語料庫的研究中,采用自底向上的方法有以下幾項工作: Mabona 等[22]提出了一種基于波束搜索算法的生成模型,其能夠跟蹤結(jié)構(gòu)和構(gòu)詞的行為來避免以往的RNNGs波束搜索算法所帶來的左分支偏差[23],從而自底向上地進(jìn)行篇章解析。Zhang等[24]通過融合多個信息流,根據(jù)文本的粒度對信息流進(jìn)行分級來加強(qiáng)文本跨度的表示,使用移位規(guī)約算法自底向上地構(gòu)建篇章結(jié)構(gòu)樹。而采用自頂向下的方法的有以下幾項工作: Kobayashi等[25]在三個不同的粒度級別(段落、句子和詞)上進(jìn)行了篇章解析,遞歸地對較大的文本跨度進(jìn)行拆分。Koto等[14]通過序列標(biāo)注的方法自頂向下進(jìn)行分割。Nguyen等[26]通過自頂向下的方法與預(yù)訓(xùn)練模型XLNet進(jìn)行結(jié)合,目前達(dá)到了最優(yōu)性能。
MCDTB[10]對720篇文章標(biāo)注了其段落級以上的篇章結(jié)構(gòu)(標(biāo)注內(nèi)容包括文章摘要、主題句、主次、關(guān)系、語用等)。近年來在MCDTB上進(jìn)行篇章結(jié)構(gòu)解析的工作主要通過基于轉(zhuǎn)移的算法進(jìn)行篇章結(jié)構(gòu)樹的構(gòu)建: Zhou等[15]從多視圖的角度來提取篇章語義信息,還提出了一種詞對相似機(jī)制來獲取EDU之間的交互信息,從加強(qiáng)EDU語義表示的角度提升了模型性能,采用了基于轉(zhuǎn)移的方法自底向上構(gòu)建篇章結(jié)構(gòu)樹。Fan等[11]對全局信息和局部信息進(jìn)行了融合,從加強(qiáng)DU之間語義交互的角度做出了改進(jìn),是目前MCDTB上唯一使用自頂向下的方法進(jìn)行篇章結(jié)構(gòu)解析的模型。Jiang等[16]利用了漢英篇章結(jié)構(gòu)的左分支偏向特點,提出了一種全局和局部反向閱讀的方式,以這種方式構(gòu)建篇章結(jié)構(gòu)樹,在兩種閱讀模式(全局反向閱讀和局部反向閱讀)當(dāng)中,前者從尾到頭采用移位規(guī)約算法對篇章單元進(jìn)行處理,而后者則通過改變篇章單元中的段落位置來增強(qiáng)相鄰篇章單元之間的連貫性差異。Jiang等[17]發(fā)現(xiàn)將長文本分割成若干短文本,再逐個對短文本進(jìn)行篇章解析能夠有效減少短文本之間的錯誤傳播,從而提升對長文本的識別能力。它根據(jù)主題分割將篇章結(jié)構(gòu)樹分割成若干個文本跨度,再將構(gòu)建的子樹結(jié)合,同樣采用的是自底向上的方法。
在構(gòu)建層次篇章結(jié)構(gòu)樹的過程中,無論是自頂向下進(jìn)行切分還是自底向上進(jìn)行合并,都會有不同程度的錯誤傳播。為了緩解這一問題,本文提出了一個基于指針網(wǎng)絡(luò)的雙向篇章解析器(Bidirectional Discourse Parser Based On Pointer Network,BD-PN)用以解析宏觀篇章結(jié)構(gòu),將切分和合并兩種解析方式進(jìn)行整合,由模型選擇可靠性更高的解析方式來減少解析過程中產(chǎn)生的錯誤傳播。
該模型主要分為三個部分,分別為切分模塊(Split Module)、組合模塊(Combine Module)和雙向選擇器,前兩個模塊包含相同結(jié)構(gòu)的指針網(wǎng)絡(luò)編碼層和指針網(wǎng)絡(luò)解碼層,編碼層用以捕獲DU的語義表示。切分模塊中的解碼層尋找DU序列邊界用于將DU切分成兩個新DU;而組合模塊中的解碼層則將兩個相鄰DU組合成一個新DU。模型最后在雙向選擇模塊中對前兩個模塊的輸出進(jìn)行選擇,遞歸地解析出完整的宏觀篇章結(jié)構(gòu),進(jìn)一步減少錯誤傳播。
如圖2所示,初始狀態(tài)為一個包含完整EDU序列的棧,在每一個時間步,取出當(dāng)前棧頂單元,BD-PN會輸出切分和組合兩種操作的結(jié)果。實線代表模型所保留的解析決策和結(jié)果,而虛線表示模型所拋棄的解析決策和結(jié)果。如果把切分操作的輸出作為此時的選擇,較大的篇章單元會被切分成兩個較小的篇章單元。在圖2中,在t=1時間步,DU1~7被切分成DU1~4和DU5~7,遵循深度優(yōu)先原則,將長度大于2的輸出單元入棧,因此DU1~4和DU5~7都會入棧,此時DU1~4成為新的棧頂單元,當(dāng)前時間步結(jié)束。如果選擇組合操作,DU中的兩個較小篇章單元會被合并成一個較大篇章單元。圖2中在t=4時間步,DU5和DU6被合并成一個較大篇章單元DU5~6。而長度等于2的輸出單元則直接進(jìn)行合并,遞歸地進(jìn)行以上操作直至??铡?/p>
圖2 包含7個EDU的文檔的宏觀篇章結(jié)構(gòu)樹建樹流程
自頂向下的解析策略,可以理解為按照一定的順序?qū)Τ跏糄U序列中的邊界進(jìn)行排序,并按此順序進(jìn)行相應(yīng)的切分決策;而自底向上的解析策略可以理解為按照一定的順序進(jìn)行相應(yīng)的組合決策。無論是哪種解析策略,在樹的構(gòu)建過程中,輸入的序列長度一直在發(fā)生變化,因此可以將這樣的篇章結(jié)構(gòu)解析任務(wù)等價于變長序列排序問題。而指針網(wǎng)絡(luò)[27]可以通過把注意力作為一個指向機(jī)制來適應(yīng)這樣的場景,因此本文選擇使用指針網(wǎng)絡(luò)作為模型構(gòu)建的基礎(chǔ)。篇章結(jié)構(gòu)解析的重點在于DU的語義表示和DU之間的語義交互,在指針網(wǎng)絡(luò)編碼層實現(xiàn)DU語義表示,在指針網(wǎng)絡(luò)解碼層實現(xiàn)DU之間的語義交互。
2.1.1 指針網(wǎng)絡(luò)編碼層
兩個模塊的編碼層結(jié)構(gòu)相同卻并不共用,因為兩個模塊捕獲語義信息的目標(biāo)不同,共用編碼層會導(dǎo)致邊界信息特征混亂。
在語義表示方面,Transformer框架由于輸入的最長序列長度有限導(dǎo)致超長序列丟失信息問題,而Cui等[28]提出的基于Transformer-XL框架的預(yù)訓(xùn)練模型XLNet通過引入片段循環(huán)機(jī)制能夠在長文本任務(wù)上取得更好的效果,因此本文使用XLNet(2)https://github.com/ymcui/Chinese-XLNet的輸出作為段落的語義表示。
GRU[29]相對于LSTM[30]擁有更少的模型參數(shù)和計算代價,減少了LSTM中的門控數(shù)量,同時保留了最重要的遺忘門,并且在多個基準(zhǔn)數(shù)據(jù)集上優(yōu)于標(biāo)準(zhǔn)LSTM網(wǎng)絡(luò)。為了加強(qiáng)上下文語義理解,本文使用了雙向GRU對段落表示進(jìn)行增強(qiáng)。
為了避免輸入長度超過XLNet的長度限制,本文將長度超過1 024的篇章在當(dāng)前最長段落末尾逐詞進(jìn)行截斷,直至篇章長度小于1 024。再將全文一次性輸入XLNet中,從而得到全文的初始化向量表示R={r1,r2,…,rn}。ri表示文章中第i個詞的向量(XLNet采用Sentence Piece以詞為單位進(jìn)行分詞),n為全文總長度。將R輸入到6層雙向GRU中得到編碼層的輸出E={e1,e2,…,en},具體如式(1)所示。
E,hf=fBiGRU(R,h0)
(1)
圖3 5個EDU的篇章文本表示方法
2.1.2 指針網(wǎng)絡(luò)解碼層
在指針網(wǎng)絡(luò)解碼層實現(xiàn)篇章語義交互,與編碼層一致,兩個模塊同樣不共用解碼網(wǎng)絡(luò)。組合模塊的解碼層主要根據(jù)語義相似程度對相鄰DU進(jìn)行組合;而在切分模塊的解碼層中主要根據(jù)語義相似程度對當(dāng)前DU進(jìn)行切分。
(2)
其中,er為當(dāng)前篇章單元序列Lt=(l,…,r)中最后一個EDU的編碼層輸出,dt為當(dāng)前時間步t的解碼層狀態(tài),ht-1為上一個時間步t-1中所輸出的隱層狀態(tài),解碼層中的h0為指針網(wǎng)絡(luò)編碼層輸出的最后一個隱藏狀態(tài)[式(1)中的hf]。在隱層狀態(tài)中包含前序解析信息,在切分模塊中包含了上層解析狀態(tài)信息,而在組合模塊中包含了下層解析狀態(tài)信息。最后根據(jù)dt對各邊界計算注意力分?jǐn)?shù)scoret,i,并得到當(dāng)前的概率分布,如式(3)、式(4)所示。
其中,式(3)中的σ為點積運算,eLt,i為當(dāng)前序列Lt中所有段落的編碼層輸出,其中i∈Lt=(l,…,r-1)。αt為解碼層中時間步t關(guān)于當(dāng)前序列依據(jù)相鄰DU之間語義聯(lián)系緊密程度進(jìn)行切分或組合的概率分布。依據(jù)該概率分布: ①在組合模塊中,概率值越大,說明該邊界兩側(cè)的DU之間語義聯(lián)系越緊密,則越應(yīng)該在此處進(jìn)行組合,模型將學(xué)習(xí)到“組合”動作。②在切分模塊中,概率值越大,則說明該邊界兩側(cè)的DU之間語義聯(lián)系越松散,則越應(yīng)該在此處進(jìn)行切分,模型將學(xué)習(xí)到“切分”動作。
圖4 BD-PN模型
其中,Pt為在第t步選擇的決策動作,Bt為在第t步時基于決策動作Pt所選擇的解析位置,b為邊界位置集合中的元素。雙向解析算法具體如下:
Algorithm 1 Bi-directional parsing1: S ←stack, containing one element consisting of all DUs2: While S.top() has more than 2 DUs do3: L←S.pop(S.top())4: i←start(L), j←end(L)5: b^,acti︿on ← argmax(saction(i,j,b))6: if acti︿on=Split then7: Left_child(L)←Li: b^, Right_child(L)←Lb^+1: j8: if Left_child(L)has more than 2 DUs then9: S.push(Lb^+1:j)10: if Right_child(L)has more than 2DUs then11: S.push(Li: b^)12: else13: LC←Lb^: b^+114: Left_child(LC)←Lb^, Right_child(LC)←Lb^+115: L~←Li: b^-1∪LC∪Lb^+2: j16: ifL~has more than 2DUs then17: S.push(L~)
本文對組合模塊和切分模塊進(jìn)行聯(lián)合學(xué)習(xí),使用了負(fù)對數(shù)似然函數(shù)作為損失函數(shù)。為了能夠最大化地構(gòu)建正確的樹結(jié)構(gòu),模型的損失主要為指針網(wǎng)絡(luò)的指向邊界位置損失,最終的損失LF(θF)計算過程如式(7)~式(9)所示。
其中,θC和θS分別為組合模塊和切分模塊的參數(shù)集,y 宏觀漢語篇章樹庫(MCDTB)標(biāo)注了720篇文章,為了擴(kuò)大語料規(guī)模,本文在MCDTB的基礎(chǔ)上,新標(biāo)注了480篇文章,構(gòu)成了一共1 200篇文章的MCDTB 2.0。MCDTB 2.0的樣本數(shù)量更多,更考驗?zāi)P偷姆夯芰?。為了對比兩者之間的差異,本文分別統(tǒng)計了MCDTB和MCDTB 2.0的文章長度(EDU總數(shù))分布,如表1所示。 表1 MCDTB和MCDTB 2.0的段落分布情況 MCDTB中6段以上的長文占了24.3%,而在MCDTB 2.0中則占了27.1%,由此可見MCDTB 2.0中長文的比例更大,篇章結(jié)構(gòu)解析任務(wù)的難度也更大。本文使用Jiang等[10]遵循的段落分布數(shù)據(jù)集劃分方法劃分了MCDTB 2.0,其中訓(xùn)練集為960篇,測試集為240篇。在Zhou等[15]之后,MCDTB上的工作都將非二叉樹轉(zhuǎn)換成二叉樹,本文也將遵循這一原則,為了更公平地與基線進(jìn)行對比,本文同樣使用了樹內(nèi)節(jié)點正確率(與F1值等價)作為評判標(biāo)準(zhǔn)。本文所采用的自底向上和自頂向下兩個解析器的模型參數(shù)設(shè)置相同,XLNet為24層768維,編碼層、解碼層中的BiGRU、GRU的隱藏層大小設(shè)置為64,編碼層和解碼層的dropout率都設(shè)置為0.2,批處理大小設(shè)置為2,學(xué)習(xí)率為1e-4。 本文在MCDTB 2.0上復(fù)現(xiàn)了PNGL[11]、MDParser[17]、GBLRR[16]三個基準(zhǔn)系統(tǒng),并將本文中的三個解析器與之進(jìn)行對比。三個基準(zhǔn)系統(tǒng)介紹如下: PNGL目前在MCDTB上性能最好的自頂向下的模型,PNGL使用指針網(wǎng)絡(luò)結(jié)合了全文的語義信息和EDU之間的局部信息,自頂向下地構(gòu)建篇章結(jié)構(gòu)樹。 MDParser-TSMDParser-TS在構(gòu)建篇章結(jié)構(gòu)樹之前先將文章切分成若干個主題,在各個主題跨度下使用基于轉(zhuǎn)移的方法自底向上地構(gòu)建篇章結(jié)構(gòu)樹,再將各個子樹用同樣的方法結(jié)合,進(jìn)而構(gòu)建完整的樹。 GBLRR該模型同樣是使用基于轉(zhuǎn)移的方法自底向上構(gòu)建結(jié)構(gòu)樹,不同的是該工作利用了中文文章結(jié)構(gòu)樹的左分支偏差特點,采用了從文章末尾到開頭進(jìn)行構(gòu)建的方式對EDU序列進(jìn)行處理,此種方法更易解析出左傾的樹,更符合漢語篇章特性。 此外,對本文提出的BD-PN進(jìn)行消融實驗,表2中的CB-PN(Combine Discourse Parser Based On Pointer Network)和SP-PN(Split Discourse Parser Based On Pointer Network)分別為BD-PN中只選擇合并或只選擇切分的模型。 實驗結(jié)果如表2所示。BD-PN相對于三個基準(zhǔn)系統(tǒng)以及本文的兩個單向系統(tǒng)都有明顯的性能提升。在自頂向下的模型中,SP-PN和PNGL模型都使用了指針網(wǎng)絡(luò)架構(gòu),但是由于SP-PN使用了表現(xiàn)更好的XLNet預(yù)訓(xùn)練模型,因此性能更佳。而在自底向上的模型中,GBLRR和MDParser-TS均優(yōu)越于本文的CB-PN,但是結(jié)合了自頂向下和自底向上兩種構(gòu)建方法的BD-PN性能卻相較于三個基準(zhǔn)系統(tǒng)分別有12.6%、2.6%和1.2%的明顯提升。 表2 各個系統(tǒng)在MCDTB 2.0上的性能比較 (單位: %) 本文進(jìn)行了前置Oracle實驗來把錯誤傳播對性能產(chǎn)生的影響進(jìn)行量化,前置Oracle實驗具體做法為: 在式(7)、式(8)中將y 為了對模型通過選擇解析方式減少錯誤傳播的過程進(jìn)行深入探究,本文統(tǒng)計了在測試集中的所有決策步驟。其中包含71.4%的切分決策和28.6%的組合決策,切分決策中的67.4%切分出了正確的節(jié)點,而在正確的切分決策中又有74.8%規(guī)避了錯誤的組合決策(組合出錯誤的節(jié)點)。相同的在組合決策中的64.3%組合出了正確的節(jié)點,而在正確的組合決策中的69.7%的組合規(guī)避了錯誤的切分決策,可見選擇合理的構(gòu)建方式十分有必要。 本文還對BD-PN進(jìn)行了后置Oracle實驗來測試模型的性能上限: 模型不再直接通過概率選擇解析方式(若在模型預(yù)測的切分/組合邊界位置能切分/組合出正確節(jié)點則執(zhí)行相應(yīng)的切分/組合決策,否則按照原來的概率分布選擇解析方式)。實驗?zāi)軌蜻_(dá)到73.9%的性能上限,證明了雙向建樹的有效機(jī)制。 同時本文還通過其他方式確定選擇決策Pt和解析邊界位置Bt。定義規(guī)則如式(10)~式(13)所示,這種方式希望利用指針網(wǎng)絡(luò)所輸出的關(guān)于所有邊界的概率信息來決定解析決策動作和解析邊界,通過尋找所有邊界中注意力分?jǐn)?shù)之差的最大值作為動作權(quán)重,并比較權(quán)重大小決定動作決策。但是這種方法的性能只能達(dá)到64.1%,由此可以推斷出,在指針網(wǎng)絡(luò)的輸出中其他位置的概率可靠性并不如最大概率的位置可靠性高,這個實驗也同樣解釋了為什么不能使用一個時間步中算出的概率分布直接完成結(jié)構(gòu)樹構(gòu)建。 在Jiang等[17]的工作中指出,模型通常對6段以下(含6段)的文章解析性能會更佳。如表3所示,本文將文章分為6段以下(含6段)的短文和6段以上的長文,并分別測試它們的性能。經(jīng)過實驗發(fā)現(xiàn),模型對較長的文章的解析能力普遍較差,而對較短的文章的解析能力會相對更強(qiáng)。原因是對于每個解析步驟來說,之前的錯誤決策會影響到當(dāng)前對節(jié)點的正確解析,文章越長則產(chǎn)生的錯誤傳播更為嚴(yán)重(基于錯誤的待解析序列很難解析出正確的節(jié)點)。所以比較模型之間對不同長度文章的解析能力是檢驗是否減少錯誤傳播的有效途徑。 在基準(zhǔn)系統(tǒng)以及本文的兩個單向指針網(wǎng)絡(luò)模型中,無論是長文還是短文,GBLRR的表現(xiàn)都是最好的。在短文方面,BD-PN比GBLRR低0.4%的性能,這是由于短文解析步驟更少,即選擇次數(shù)更少,雙向選擇帶來的優(yōu)勢被減弱。而在長文方面,兩個單向模型相對于基準(zhǔn)系統(tǒng)GBLRR分別有4.5%和1.7%的性能差異,顯然單向模型的長文建模能力明顯不足。而BD-PN在長文中相較于GBLRR提升了2.4%的性能,可見BD-PN在長文上所表現(xiàn)的性能提升非常明顯,BD-PN相對于GBLRR的提升也主要來源于此,這也表明了雙向構(gòu)建篇章結(jié)構(gòu)的主要優(yōu)勢在于能夠更好地減少錯誤傳播。 表3 各模型對長短文的解析能力 (單位: %) 表4展示了各模型在不同層級篇章樹上的表現(xiàn),其中底層和頂層的層數(shù)為一棵樹層數(shù)的三分之一(向下取整),其余的層數(shù)為中層。BD-PN在底層的表現(xiàn)僅次于GBLRR,而在中間層和頂層均取得性能最優(yōu)值。通過表4可以發(fā)現(xiàn)自頂向下的模型相較于自底向上的模型通常會在頂層表現(xiàn)得更好,而在底層表現(xiàn)略差。在頂層,SP-PN相較于CB-PN、GBLRR和MDParser-TS分別有10%、6.3%和2.2%的性能提升,而在底層卻分別有4%、9.9%和5.3%的性能下降。這是由于自頂向下模型更加關(guān)注全局信息并且解析起點在頂層,而在向下解析的過程中不可避免地遇到錯誤傳播問題,從而導(dǎo)致下層節(jié)點更容易出現(xiàn)解析錯誤。同理,自底向上模型會在頂層節(jié)點中表現(xiàn)欠佳。GBLRR由于反向閱讀機(jī)制能夠更好地處理漢語結(jié)構(gòu)樹左分支偏差特點,所以在底層節(jié)點中會優(yōu)于BD-PN模型。而在基于指針網(wǎng)絡(luò)的模型中,BD-PN的底層和頂層表現(xiàn)均取得最優(yōu)性能。 表4 各模型在不同層級上的表現(xiàn) (單位: %) 結(jié)果表明,各模型的中間層節(jié)點性能均低于底層和頂層節(jié)點性能,這是因為含有中間層節(jié)點的樹(三層及三層以上)更加復(fù)雜,與底層和頂層節(jié)點相比,中間層中DU之間的語義關(guān)系更加模糊,解析難度更大。而在中間層,BD-PN相對于所有模型帶來了1.8%~11.6%的絕對改進(jìn),這證明BD-PN能更適用于復(fù)雜的結(jié)構(gòu)樹,在長文中能提高中間層節(jié)點的識別能力。根據(jù)雙向解析特性,對中間層節(jié)點的識別通常在更靠后的時間步中,由于BD-PN能更好地減少級聯(lián)錯誤,這使得模型在解析流程末端也能產(chǎn)生更好的表現(xiàn)。 BD-PN的模型性能在很大程度上取決于切分模塊和組合模塊的性能,為了探究兩個模塊之間存在的性能差異來源,本文對CB-PN和SP-PN的實驗結(jié)果進(jìn)行了分析。在實驗結(jié)果中可以看出,雖然CB-PN和SP-PN使用了幾乎相同的網(wǎng)絡(luò)架構(gòu),但兩個模型之間還是出現(xiàn)了1.6%的性能差距。分析其主要原因是: 為了更加公平地與其他模型進(jìn)行比較,本文和所有的基準(zhǔn)系統(tǒng)一樣,遵循了將非二叉樹轉(zhuǎn)換成二叉樹的原則,這使得在模型的學(xué)習(xí)過程中對模型產(chǎn)生了誤導(dǎo)。如圖5所示,6個段落的文章產(chǎn)生了5個邊界可供切分或合并。在按轉(zhuǎn)換規(guī)則轉(zhuǎn)換成二叉樹之前,以原文的語義和結(jié)構(gòu)層次,CB-PN所希望學(xué)習(xí)到的組合順序是2→4→5→1,而在轉(zhuǎn)換過后CB-PN實際所學(xué)習(xí)到的組合順序為2→5→1→4,造成了CB-PN所學(xué)習(xí)到的DU之間的語義離散程度與原文實際語義有偏差,進(jìn)而導(dǎo)致CB-PN的性能受到了影響。而對于SP-PN來說,轉(zhuǎn)換前后模型所學(xué)習(xí)到的切分順序都是3→1→4,模型所學(xué)到的DU之間的語義關(guān)聯(lián)程度與原文無異,由此本文假設(shè)是轉(zhuǎn)換原則對CB-PN產(chǎn)生了負(fù)面影響。 為了驗證前述的假設(shè),本文基于兩種不同的原則進(jìn)行了實驗。實驗結(jié)果如表5所示,可以發(fā)現(xiàn)在模型的兩種學(xué)習(xí)原則中,SP-PN前后只有0.3%的微小性能差異,而對于CB-PN來說,則產(chǎn)生了1.1%的更為明顯的性能差異。在基于不轉(zhuǎn)換的原則下,本文的兩種方法性能差距則只有0.2%,可見轉(zhuǎn)換原則會對CB-PN帶來性能損失。但為了與基準(zhǔn)系統(tǒng)一致,本文的工作依然基于轉(zhuǎn)換原則。 圖5 轉(zhuǎn)換原則示例 表5 是否轉(zhuǎn)換所帶來的性能比較 (單位: %) 本文將圖1中的文章chtb_0236在SP-PN、CB-PN和BD-PN的篇章結(jié)構(gòu)構(gòu)建流程抽取出來進(jìn)行分析。如圖6所示,其中兩種帶箭頭的虛線分別代表了切分和組合操作,而在BD-PN中箭頭長度代表兩個模塊對當(dāng)前決策的置信度。在SP-PN的建樹流程中,第一次在第四段和第五段之間切分,并且切分正確,代表模型對當(dāng)前文檔(DU1~5)的語義理解正確,認(rèn)為前四段和第五段有明顯不同的語義主題。而在第二次切分時就出現(xiàn)了錯誤,并將錯誤向后傳播,代表模型已經(jīng)不能在當(dāng)前待解析文檔(DU1~4)中尋找出正確的邊界,使得兩側(cè)語義聯(lián)系最遠(yuǎn)。在CB-PN的建樹流程中同時存在這樣的問題,模型能夠正確地識別出第三段和第四段有著緊密的語義聯(lián)系,并正確地將其組合成一個DU,但在第二步中就不能識別出第一段和第二段之間的組合關(guān)系,而認(rèn)為第五段和三四兩段的語義聯(lián)系更緊密,導(dǎo)致解析錯誤。 圖6 SP-PN、CB-PN、BD-PN在同一篇文章上的解析流程 反觀BD-PN的建樹流程,在第一步時切分模塊和組合模塊的選擇都正確,但因為切分模塊對選擇的置信度更大,BD-PN將前四段和第五段切分成兩個DU。在第二步中,切分模塊認(rèn)為應(yīng)該在第一段和第二段之間進(jìn)行切分(與SP-PN中第二步的行為一致),而組合模塊認(rèn)為應(yīng)該將第三段和第四段組合起來(與CB-PN中第一步的行為一致),但此時選擇置信度更大的組合操作,成功規(guī)避了錯誤的切分決策,在第三步中同樣如此。通過對具體樣例進(jìn)行分析,更清楚地展示了雙向解析策略獨有的優(yōu)勢。 針對宏觀篇章結(jié)構(gòu)解析任務(wù),本文提出了一種基于指針網(wǎng)絡(luò)的漢語宏觀篇章結(jié)構(gòu)雙向解析方法。本文方法融合了自頂向下和自底向上兩種構(gòu)建策略的優(yōu)點,在構(gòu)建步驟中有效減少了錯誤傳播。實驗結(jié)果表明,本文中的模型性能優(yōu)于目前所有的基準(zhǔn)系統(tǒng)。后續(xù)工作中,我們會將繼續(xù)優(yōu)化單向局部模型,改進(jìn)解析選擇策略,以期提升宏觀篇章結(jié)構(gòu)解析的整體性能。3 實驗
3.1 數(shù)據(jù)集與實驗設(shè)置
3.2 實驗結(jié)果
4 實驗分析
4.1 選擇決策分析
4.2 模型對長短文的解析能力分析
4.3 模型對不同層次節(jié)點的解析能力分析
4.4 轉(zhuǎn)換原則對模型的影響
4.5 案例分析
5 總結(jié)