王體爽,李培峰,朱巧明
(蘇州大學 計算機科學與技術(shù)學院,江蘇 蘇州 215006)
近年來,自然語言處理領(lǐng)域的研究逐步從淺層次的字、詞、短語級別的語義分析延伸到了深層次篇章層級的語義理解。根據(jù)修辭結(jié)構(gòu)理論(rhetorical structure theory,RST)[1],篇章通常由一系列具有語義聯(lián)系的子句、句子或句群構(gòu)成。RST分層級將相鄰的篇章單元(discourse units,DUs)鏈接起來,構(gòu)成了一個前后銜接、語義連貫的語言整體單位。篇章分析是自然語言處理的一個核心問題,可應用于自動文摘[2]、問答系統(tǒng)[3]、情感分析[4]、信息抽取[5]等領(lǐng)域。
篇章分析包含結(jié)構(gòu)構(gòu)建、主次識別、關(guān)系分類三個子任務。其中,篇章主次關(guān)系表示了篇章內(nèi)部的主要和次要內(nèi)容之間的關(guān)系。主要內(nèi)容是指篇章中居于支配地位、起決定作用的部分,而次要內(nèi)容是指篇章中居于輔助地位、不起決定作用的部分。RST中篇章主次關(guān)系分為單核關(guān)系和多核關(guān)系。其中,單核關(guān)系包括核心(nucleus)和衛(wèi)星(statellite),核心表達主要內(nèi)容,衛(wèi)星表達次要內(nèi)容。多核關(guān)系包括兩個或兩個以上核心。所以,在篇章主次關(guān)系中有以下三種類型:核心—衛(wèi)星(NS)表示左子樹為主要部分、衛(wèi)星—核心(SN)表示右子樹為主要部分、核心—核心(NN)表示左、右子樹都為主要部分。其中NS、SN屬于單核關(guān)系,NN屬于多核關(guān)系。
下面以漢語篇章樹庫(Chinese Discourse Treebank,CDTB)[6]中的一個具體例子來說明篇章主次關(guān)系的含義。
例1隨著從今年四月開始中國對保稅區(qū)外有關(guān)特殊政策的調(diào)整,保稅區(qū)免證、免稅a,保稅政策的穩(wěn)定性優(yōu)勢顯得更為明顯b,國內(nèi)外一大批實業(yè)加工項目相繼在區(qū)內(nèi)落戶c。到去年十二月底,區(qū)內(nèi)已累計設立企業(yè)一千六百一十四家d,總投資達十二億美元e,其中外商投資企業(yè)二百六十家f,實際利用外資一點一三億美元g。另外,眾多國內(nèi)企業(yè)也通過保稅區(qū)與國際市場接軌h。
例1段落包含8個(a~h)基本篇章單元,篇章結(jié)構(gòu)樹如圖1所示。其中,葉子節(jié)點(a~h)是基本篇章單元,而非葉子節(jié)點是關(guān)系節(jié)點,表示該節(jié)點連接的兩個孩子之間的關(guān)系類型。葉子節(jié)點和關(guān)系節(jié)點統(tǒng)稱為篇章單元(discourse unit,DU)。箭頭指向篇章主次關(guān)系中的較為重要部分的核心單元,如例1中的因果關(guān)系節(jié)點左孩子a-b是右孩子c的原因,在本例中認為結(jié)果更重要,因此箭頭指向右孩子,即葉子節(jié)點c是核心,它們的關(guān)系是衛(wèi)星—核心(SN)。例1中,從圖1所示的根節(jié)點開始,每次選擇核心單元直到葉子節(jié)點,可以得到(國內(nèi)外一大批實業(yè)加工項目相繼在區(qū)內(nèi)落戶c)這個篇章基本單元,可作為整個段落的摘要。
圖1 例1的篇章結(jié)構(gòu)樹
目前,只有少數(shù)研究專注于篇章主次關(guān)系識別,面向漢語的篇章主次關(guān)系識別研究更少。大規(guī)模語料庫的缺乏、漢語表達形式多樣以及篇章構(gòu)成復雜,都給漢語篇章主次關(guān)系識別造成了一定的困難。本文首次將門控記憶網(wǎng)絡(gated memory networks,GMN)用于漢語篇章主次關(guān)系識別任務。首先,聯(lián)合雙向LSTM(Bi-LSTM)和CNN對DU進行編碼以捕獲全局信息和局部信息。然后,融合兩個DU信息獲得門控單元,用于控制兩個DU的信息流動,從而獲取相對于整體更重要的信息,而不是每一個篇章單元相對于自己的重要信息。最后,利用以上信息進行篇章主次關(guān)系識別。在CDTB語料庫上的實驗結(jié)果表明,本文的方法在宏平均F1值、微平均F1值以及各個主次關(guān)系類型上的F1值均有提升。
目前,涉及篇章主次關(guān)系的語料庫資源主要有英文修辭結(jié)構(gòu)篇章樹庫(RST Discourse Treebank,RST-DT)[8]和漢語篇章樹庫CDTB[6]。徐凡等[7]對中英文篇章分析技術(shù)的研究現(xiàn)狀進行了綜述,介紹了中英文篇章分析技術(shù)在自然語言處理中的應用,并分別從篇章理論、篇章語料庫及評測、篇章分析器的自動構(gòu)建等方面詳細闡述了中英文篇章分析技術(shù)。篇章主次關(guān)系識別研究大多數(shù)集中于英語語料庫RST-DT上,這些研究一般將篇章主次關(guān)系識別看作篇章修辭結(jié)構(gòu)分析中的一個輔助環(huán)節(jié),忽略了其在篇章結(jié)構(gòu)分析中的重要性。
在RST-DT樹庫上,大多數(shù)研究使用的方法是基于支持向量機(support vector machine,SVM)和條件隨機場(conditional random fields,CRF)模型以及它們的變體等傳統(tǒng)機器學習方法。Hernault等[9]使用兩個SVM,實現(xiàn)了一個自底向上自動構(gòu)建篇章樹的框架。Joty等[10]等根據(jù)句內(nèi)和句間的關(guān)系分布上的差異性,使用了兩個動態(tài)條件隨機場模型構(gòu)建了句內(nèi)和句間兩個層級的篇章分析器,并使用動態(tài)規(guī)劃算法對篇章樹的構(gòu)建進行優(yōu)化。Feng等[11]使用兩組線性條件隨機場模型對篇章關(guān)系區(qū)域劃分和篇章主次關(guān)系做出識別。Wang等[12]使用基于轉(zhuǎn)移的方法將篇章樹構(gòu)建轉(zhuǎn)化成shift-reduce序列,提出了先標注結(jié)構(gòu)—主次,再進行標簽標注的兩步模型。Li等[13]提出使用依存結(jié)構(gòu)來表示兩個篇章單元之間的關(guān)系。
在RST-DT樹庫上,使用神經(jīng)網(wǎng)絡方法的相關(guān)研究較少。Li等[14]使用兩層前饋神經(jīng)網(wǎng)絡來確定兩個篇章單元之間的關(guān)系,并且使用遞歸神經(jīng)網(wǎng)絡通過計算篇章單元的子樹來獲取該篇章單元的表示。Li等[15]提出了一種基于Attention的分層Bi-LSTM網(wǎng)絡以學習篇章單元的表示,并使用基于張量的變換函數(shù)來捕獲篇章單元特征之間的相互關(guān)系。
相對于RST-DT,基于CDTB語料庫的研究更少。李艷翠[16]借助上下文特征、詞匯特征、依存樹特征,采用最大熵模型進行主次關(guān)系識別。Kong等[17]使用語義相似度、上下文特征、采用最大熵模型,構(gòu)建了一個端到端的篇章結(jié)構(gòu)分析器。Xu等[18]提出了一個TMN(Text Matching Networks)模型,使用Bi-LSTM和CNN對兩個篇章單元編碼后通過三種匹配關(guān)系進行主次關(guān)系識別,他們的方法在CDTB語料庫上的性能達到了69.0(微平均F1),明顯優(yōu)于傳統(tǒng)的特征工程方法。
在CDTB語料庫上,Xu等[18]提出的TMN模型在主次關(guān)系識別任務上性能最好。TMN模型的主要思想有以下兩點: ①認為語義相似度更大的兩個篇章單元更有可能是多核關(guān)系。②認為在單核關(guān)系中和段落主題更接近的更有可能是核心?;谶@兩點思想,TMN模型引入了兩個DU的語義相似度和每個DU與段落主題的相似度。
TMN模型容易將語義相似度較高的非多核關(guān)系錯誤識別為多核關(guān)系。如例2所示,例子中“農(nóng)業(yè)”和“糧食”,“收成”和“產(chǎn)量”的相似度比較高,TMN模型誤將例2識別為多核關(guān)系。
例2農(nóng)業(yè)獲得較好收成a,全年糧食總產(chǎn)量達七十六點六億公斤b。(NS關(guān)系)
另外,當兩個篇章單元序列長度不平衡時,TMN偏向于將更長的篇章單元識別為主要部分,而較短的篇章單元識別為次要部分。如例3所示,兩個EDU的詞序列長度非常不均衡,b包含了更多的信息,當經(jīng)過匹配關(guān)系之后會得到b更加接近于段落主題的結(jié)論,而a和段落主題的關(guān)系相對于b要更疏遠,TMN模型誤將例3識別為衛(wèi)星—核心(SN)關(guān)系。
例3經(jīng)濟效益可觀a,上繳稅費實現(xiàn)二百五十八億元,實現(xiàn)利潤一百億元b。(NS關(guān)系)
為了解決以上問題,本文把門控記憶網(wǎng)絡(GMN)應用于主次關(guān)系識別任務,實現(xiàn)了一個基于GMN的漢語主次關(guān)系識別模型(GMN-Nu)。其架構(gòu)如圖2所示,包含3個部分: ①輸入和編碼; ②多層結(jié)構(gòu)的門控記憶網(wǎng)絡; ③主次關(guān)系識別。
圖2 GMN-Nu模型框架圖
首先,在輸入和編碼層部分,模型以兩個篇章單元DU1和DU2的詞和詞性為輸入,同時,我們考慮使用字代替詞來考察不同粒度輸入對漢語篇章主次關(guān)系識別的影響。使用Bi-LSTM和CNN對兩個篇章單元編碼,以獲取全局信息和局部信息。以例1為例,DU1/DU2可以是例1篇章結(jié)構(gòu)樹的任何一個關(guān)系節(jié)點的左、右孩子。其次,在多結(jié)構(gòu)的門控記憶網(wǎng)絡層部分,使用多層門控記憶網(wǎng)絡從整體信息抽取每一個DU相對于整體來說更重要的語義信息表示。該方法融合DU1和DU2的信息以獲得整體信息,通過sigmoid計算門控單元,作用于DU1和DU2以得到相對于整體的更重要的語義信息。最后,在主次關(guān)系識別層,使用softmax進行主次關(guān)系識別。
GMN-Nu模型的優(yōu)點是: ①GMN-Nu模型是用整體信息來控制每個DU的信息流動。即使兩個DU語義相似度高,經(jīng)過GMN-Nu模型抽取出的仍然是每個DU相對于整體重要語義信息表示。這樣就不會造成將語義相似度較高的非多核關(guān)系錯誤識別為多核關(guān)系。②在GMN-Nu模型中不使用段落主題,而是使用兩個DU的整體信息,同時將每個DU置于同等重要地位。這就避免了將更長的DU識別為主要內(nèi)容,對于長度不平衡的語料具有更好的識別能力。③GMN-Nu具有很好的可擴展性,可以很容易使用不同層次的門控記憶網(wǎng)絡。
首先結(jié)合Bi-LSTM和CNN對兩個篇章單元DU1和DU2進行編碼,輸入是每一個篇章單元的詞序列(t1,t2,…,tT),其中T是詞序列長度。在詞序列中拼接詞向量ei和它的詞性向量pi,當使用字作為輸入時,將每個字所在詞的詞性作為每個字的詞性,如式(1)所示。
Wi=[ei,pi]
(1)
(2)
這樣,每個輸出不僅包含詞本身的信息,還融合了上下文信息。此外,選取CNN來獲取局部信息,等同于N-gram模型。它可以有效地捕獲窗口內(nèi)詞匯的局部交互信息,這一點恰好可以彌補Bi-LSTM只能捕獲全局信息的缺點。最后,應用全局最大池化來獲取每一個卷積核得到的最有效的特征表示,從而得到每一個DU的信息表示vi∈c。
(7)
根據(jù)DU1和DU2獲得了篇章單元的語義表示v1和v2?;趘1和v2,計算得到整體信息,最終獲得每個DU的重要語義信息表示。把門控記憶網(wǎng)絡最后一層的輸出uj記作c。最后,使用一層前饋神經(jīng)網(wǎng)絡實現(xiàn)篇章主次關(guān)系識別,如式(8)所示,Wy∈c×3,by∈3是softmax層參數(shù)矩陣。
2016年1月,習近平總書記在重慶召開推動長江經(jīng)濟帶發(fā)展座談會,強調(diào)當前和今后相當長一個時期,要把修復長江生態(tài)環(huán)境擺在壓倒性位置,共抓大保護,不搞大開發(fā)。
y=softmax(Wyc+by)
(8)
在模型訓練過程中,通過最大化對數(shù)似然損失函數(shù)使用Adam優(yōu)化器來優(yōu)化網(wǎng)絡模型中的訓練參數(shù)。
在這一部分,首先介紹實驗所用到的語料庫CDTB以及詳細的實驗設置,最后報告并分析實驗結(jié)果。
針對漢語篇章結(jié)構(gòu)的一般特點,結(jié)合RST-DT和Penn Discourse Treebank(PDTB)[19]的優(yōu)點,并吸取了RST的樹形結(jié)構(gòu)和篇章單位主次思想,PDTB的連接詞處理方法,參考漢語復句和句群理論等的研究成果,李艷翠[16]基于賓州大學漢語樹庫(Penn Chinese Treebank,CTB)[20]建立了漢語篇章樹庫(Chinese Discourse Treebank,CDTB)。在CDTB語料庫中,每一個段落解析為一棵連接依存樹,稱之為篇章結(jié)構(gòu)樹。子句位于篇章結(jié)構(gòu)樹的葉子節(jié)點,連接詞位于篇章結(jié)構(gòu)樹的中間節(jié)點,連接詞本身既可以表示邏輯語義關(guān)系,其在篇章結(jié)構(gòu)樹中的層次又可以表示篇章結(jié)構(gòu)。
和RST-DT類似,CDTB中的篇章主次關(guān)系也有三種類型: 核心—衛(wèi)星(NS),衛(wèi)星—核心(SN)以及核心—核心(NN)。與RST-DT不同的是,CDTB將兩個DU主次關(guān)系類型標記在其父節(jié)點上,因此,具有N個DU的連接依存二叉樹具有N-1個主次關(guān)系。
CDTB在主次關(guān)系上有3 555(48.6%)個單核關(guān)系,3 755(51.4%)個多核關(guān)系。其中單核關(guān)系包括2 110個NS以及1 445個SN主次關(guān)系。這是因為在CDTB語料庫中并列類是篇章關(guān)系中最大的(56.8%)一類關(guān)系類型,這導致了多核關(guān)系占到了全部主次關(guān)系數(shù)量的一半以上。CDTB語料庫包括500篇新聞文檔,共2 342個段落,10 650個子句,每個子句平均漢字長度為22,每棵篇章結(jié)構(gòu)樹平均子句個數(shù)4.5。
訓練集、開發(fā)集和測試集的設置和Xu等[18]一樣,表1展示了數(shù)據(jù)集的劃分和主次關(guān)系統(tǒng)計。同樣,采取和Xu等相同的評判標準,將非二叉樹轉(zhuǎn)換成左子樹的形式,轉(zhuǎn)化后在訓練集、開發(fā)集和測試集上核心—核心(NN)主次關(guān)系類別數(shù)量分別為3 743,514和485。同時,報告每個篇章主次關(guān)系類別的查準率P、查全率R和F1值,以及宏平均F1值和微平均F1值。
表1 數(shù)據(jù)集的劃分及主次關(guān)系統(tǒng)計
參考Xu等[18]提出的TMN模型,將詞向量維度設置為300,詞性向量設置為50維。其中詞向量使用在維基百科中文語料庫上預訓練好的詞向量。除了詞向量之外的參數(shù)都隨機初始化。為了避免過擬合采用dropout策略,dropout設置為0.5。在開發(fā)集上通過網(wǎng)格化搜索來取得最佳的參數(shù),之后合并訓練集和開發(fā)集作為新的訓練集對模型進行訓練,并在測試集上評估模型。在編碼層Bi-LSTM神經(jīng)元設置為50維,根據(jù)表2得到的實驗結(jié)果,把CNN卷積核數(shù)量設置為1 024,卷積核窗口大小為2。表3 是不同GMN層次的實驗結(jié)果對比,實驗結(jié)果表明使用3層GMN的模型整體效果更好。
表2 在開發(fā)集上CNN不同參數(shù)獲得的宏平均F1值
表3 不同層次GMN性能對比
為了檢驗本文方法GMN-Nu的性能,設置了兩個基準系統(tǒng): ①最好的傳統(tǒng)模型ME[17],該模型使用語義相似度、上下文特征,采用最大熵模型; ②最好的神經(jīng)網(wǎng)絡模型TMN[18],使用Bi-LSTM和CNN對兩個篇章單元編碼后使用三種匹配關(guān)系: Cosine、 Bilinear和Single Layer Network,分別用于計算語義相似度、線性關(guān)系和非線性關(guān)系,最后用于篇章主次關(guān)系識別。表4展示了使用詞向量作為輸入的GMN-Nu模型與ME和TMN性能比較。
表4 實驗結(jié)果
表4顯示GMN-Nu明顯優(yōu)于傳統(tǒng)模型ME。對比TMN模型,GMN-Nu模型性能也有顯著提升(顯著性測試:p<0.001)。在各個篇章主次關(guān)系類別上的F1值以及宏平均F1值和微平均F1值均有提升。在核心—衛(wèi)星(NS)主次關(guān)系上F1值提升了5.5%,在衛(wèi)星—核心(SN)主次關(guān)系上F1值提升0.5%,在核心—核心(NN)主次關(guān)系上F1值提升1.3%。在宏平均F1值提升了1.5%,微平均F1值提升了2.1%。
從表4可看出,GMN-Nu在NS關(guān)系類型上的P值不如TMN,但在R值上較TMN模型提升14.5%。與此相反,在衛(wèi)星—核心(SN)和核心—核心(NN)關(guān)系類型上的R值不如TMN,但在P值上較TMN模型均有提升。這是因為TMN模型偏向于將主次關(guān)系識別為核心—核心(NN)和衛(wèi)星—核心(SN)關(guān)系,而GMN-Nu模型對于核心—衛(wèi)星(NS)關(guān)系具有更好的識別效果。這正好驗證了第2節(jié)的兩點分析: ①TMN模型容易將語義相似度高的非多核關(guān)系錯誤地預測為多核關(guān)系; ②當EDU長度非常不均衡時,TMN模型更加偏向于將更長的那個EDU識別為主要內(nèi)容。而GMN-Nu則能彌補以上的缺陷。
一般而言,一棵篇章結(jié)構(gòu)樹中越上層的關(guān)系節(jié)點,其左、右孩子的詞序列長度越不平衡。在CDTB語料庫中,關(guān)系節(jié)點的右孩子比左孩子詞序列長50以上的語料中核心—衛(wèi)星(NS)關(guān)系共有394(51.7%)個,衛(wèi)星—核心(SN)關(guān)系有197(25.9%)個,核心-核心(NN)關(guān)系有171(22.4%)個??梢钥闯?,當兩個DU詞序列長度不平衡時,較短的DU更有可能是主要內(nèi)容。這是因為在CDTB語料庫中的新聞語料的一個特點是大多采用總分結(jié)構(gòu),一般認為總結(jié)部分更有可能是主要內(nèi)容,這也是為什么篇章主次關(guān)系識別研究有助于文本摘要任務。對于關(guān)系節(jié)點的右孩子比左孩子詞序列長50以上的實例,TMN模型正確率為56.4%,GMN-Nu模型正確率為71.8%,性能得到明顯提升(+15.4%)??梢姡珿MN-Nu模型對于詞序列長度不平衡的實例具有更好的識別率。
對于主次關(guān)系識別任務,是要判斷每一個DU相對于整體來說是否重要,即從整體來判斷出主要內(nèi)容和次要內(nèi)容,而不是單獨判斷某一個DU是主要內(nèi)容還是次要內(nèi)容?;谶@一特點,GMN-Nu模型整合了兩個DU的信息,計算得到門控單元。然后使用門控單元和每個DU的特征表示計算得到每一層的記憶單元,最終獲取到相對于整體來說每個DU的重要語義信息表示,而不是簡單的捕獲單個DU相對于自身重要的信息,這樣可以從整體來考慮哪一個DU是主要內(nèi)容,哪一個DU是次要內(nèi)容。從表4也可以看出GMN-Nu模型在宏平均F1值、微平均F1以及三種關(guān)系類型的F1值均有提升。
在輸入編碼層,也考慮輸入為每一個篇章單元的字序列,實驗性能比本文采用的詞系列差。其中,核心—衛(wèi)星(NS)、衛(wèi)星—核心(SN)和核心—核心(NN)的F1值為50.0%、40.2%和79.1%,較使用詞向量作為輸入性能均有所下降,特別是前兩類。主要原因是在使用字向量作為輸入時DU的序列長度會成倍增加。另外,本文將每個詞的詞性賦予該詞的每個字,這會導致同一個字對應多個不同詞性。
表5展示了GMN-Nu模型在篇章主次關(guān)系識別任務上錯誤識別的關(guān)系類型分布,可以看出有29.0%的NS關(guān)系和40.4%的SN關(guān)系被錯誤識別為核心-核心(NN)關(guān)系,這表明單核關(guān)系容易被錯誤識別為多核關(guān)系。主要有以下兩點原因: ①在CDTB語料庫中,NN關(guān)系類型在訓練集上占到了一半以上的比例。②在測試集中有一些類似于例4的實例,這些實例的一個特征就是兩個DU中都有大量的數(shù)字說明,而這樣的實例大部分是單核關(guān)系,因為大都是一個DU是對另一個DU的補充說明。GMN-Nu模型從兩個DU捕獲的特征表示也會關(guān)注于這些數(shù)字說明,錯誤地將其識別為多核關(guān)系。
例4甘肅一九九七年全省國內(nèi)生產(chǎn)總值達七百八十一點三億元a,同比增長百分之八點三b。
表5 識別錯誤的實例所占比例(%)
本文提出了在篇章主次關(guān)系識別任務上使用全局整體信息通過門控記憶單元來獲取每一個DU相對于整體來說更加重要的特征表示。首先,使用Bi-LSTM和CNN對DU編碼;然后,融合兩個DU信息并計算得到門控單元,通過該門控單元計算每個DU的記憶單元;最終,捕獲各個DU相對于整體來說重要的特征表示,從而識別出主要內(nèi)容和次要內(nèi)容。實驗結(jié)果表明,GMN-Nu模型在宏平均F1值、微平均F1后以及三種關(guān)系類型的F1值均達到目前最好性能。在接下來的工作中,需要針對數(shù)據(jù)集的不平衡問題做出相應對策。