賈旭楠,魏庭新,曲維光,3,顧彥慧,周俊生
(1.南京師范大學 計算機科學與技術(shù)學院,南京 210023;2.南京師范大學 國際文化教育學院,南京 210097;3.南京師范大學 文學院,南京 210097)
復句是由2 個或2 個以上的單句構(gòu)成的句子,它下接小句,上承篇章,是語言的基本單位之一。由于復句有2 套或2 套以上主語謂語,而單句只有1 套主謂體系,因此判定一個句子是否為單復句對于句法分析、依存解析、AMR 自動解析及相應(yīng)的下游任務(wù)非常重要。對于復句語義的構(gòu)成,文獻[1]指出復句除了本身的語義外,還與分句之間的邏輯語義有關(guān),復句的語義等價于該句子的邏輯語義與各分句的語義之和。由于篇章的各種邏輯語義關(guān)系在復句中都有所體現(xiàn),因此復句關(guān)系識別是篇章語義關(guān)系研究的起點和基礎(chǔ),對篇章語義解析以及機器閱讀理解、關(guān)系抽取等下游任務(wù)都有著非常重要的作用。
對于復句的研究,語言學界主要集中在復句的邏輯語義關(guān)系的分類等,在自然語言處理領(lǐng)域,研究人員的關(guān)注則集中在顯式復句的關(guān)系詞識別和隱式復句關(guān)系識別2 個方面。然而,顯式復句和隱式復句的識別主要靠人工標注,現(xiàn)有文獻中并沒有顯式復句與隱式復句的自動識別研究。在漢語中,由于標點符號還具有語氣停頓功能,含有多個形式分句的句子不一定是復句;同時由于大量緊縮句的存在,沒有標點符號的句子也不一定是單句,這些都給單復句的自動識別造成一定困難。在隱式復句關(guān)系識別方面,雖然目前研究較多,但目前最好的性能也僅有56.20%[2],還有進一步的提升空間。
本文提出復句判定及復句關(guān)系識別聯(lián)合模型,旨在同時解決復句判定和復句關(guān)系識別問題,實現(xiàn)復句的自動判定及復句關(guān)系的自動識別。在復句判定任務(wù)中通過Bi-LSTM 對句子進行編碼,采用注意力機制挖掘更深層次的語義信息后,通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)提取句子中的局部信息,最終對其進行分類。在復句關(guān)系識別任務(wù)中使用詞向量Bert增強句子的語義表示,采用Tree-LSTM 對成分標記和句子中的單詞進行聯(lián)合建模后,并對建模結(jié)果進行分類。
復句作為自然語言中重要的語法單位[3],在語言學上的理論成果較為豐富,且研究范圍也較為廣泛。對于復句的邏輯語義關(guān)系分類,代表性的研究主要有:文獻[4]提出的兩分法,依據(jù)分句之間的語義關(guān)系,將復句分為聯(lián)合復句和偏正復句兩大類;文獻[5]將聯(lián)合復句分為并列、遞進、順承、選擇、解說5 個小類,將偏正復句分為轉(zhuǎn)折、因果、假設(shè)、目的、條件5 個小類;另外一種是文獻[6]提出的三分法,復句三分法的一級分類分為廣義因果關(guān)系、廣義并列關(guān)系和廣義轉(zhuǎn)折關(guān)系三大類,因果關(guān)系分為因果、推斷、假設(shè)、條件、目的等,并列關(guān)系分為并列、連貫、遞進、選擇等,轉(zhuǎn)折關(guān)系分為轉(zhuǎn)折、讓步等。
隨著理論研究的不斷深入,復句的相關(guān)研究逐漸從理論轉(zhuǎn)向信息處理領(lǐng)域,關(guān)聯(lián)詞作為復句的重要信息。文獻[7]對語料進行分析并總結(jié)出一個復句關(guān)聯(lián)詞庫,采用基于規(guī)則的方法對關(guān)聯(lián)詞進行自動識別;文獻[8]考慮到關(guān)聯(lián)詞與語境的關(guān)系,以復句關(guān)聯(lián)詞所處的語境以及關(guān)聯(lián)詞搭配為特征進行特征提取,使用貝葉斯模型實現(xiàn)關(guān)聯(lián)詞的識別;文獻[9]充分利用句子的詞法信息、句法信息、位置信息,采用決策樹對復句進行復句關(guān)系分類,在顯式復句中取得了較好的效果;文獻[10]用極大似然估計計算關(guān)聯(lián)詞對于各類關(guān)系的指示能力,構(gòu)造關(guān)聯(lián)詞-關(guān)系類型矩陣,預測句子的復句關(guān)系類別;文獻[11]提出了一種基于句內(nèi)注意力機制的多路卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對漢語復句關(guān)系進行識別,其研究對象既包括顯式復句也包括隱式復句,F(xiàn)1 值達到85.61%,但其僅在并列、因果、轉(zhuǎn)折三類復句關(guān)系中進行識別,并沒有涵蓋自然語言中的大部分復句類別;文獻[12]采用在卷積神經(jīng)網(wǎng)絡(luò)中融合關(guān)系詞特征的FCNN 模型,對復句關(guān)系進行分類,準確率達到97%,但其研究對象僅為二句式非充盈態(tài)復句;文獻[13]利用關(guān)聯(lián)詞的詞性分布規(guī)則標注潛在關(guān)聯(lián)詞,對比關(guān)聯(lián)詞庫中的模式表,標注出其語義關(guān)系。
由于隱式復句中沒有關(guān)聯(lián)詞連接分句,因此隱式復句關(guān)系的識別較顯式而言更為困難,目前專門針對復句判定、復句關(guān)系識別的研究比較少,大部分研究都是針對篇章進行的,然而由于漢語復句與篇章之間存在天然的聯(lián)系,有關(guān)篇章的研究仍有許多值得借鑒的地方。文獻[10]實現(xiàn)了基于有指導方法的隱式關(guān)系識別模型,融入依存句法特征和句首詞匯特征,采用對數(shù)據(jù)不平衡容忍度較高的SVM 實現(xiàn)對篇章關(guān)系的識別;文獻[14]以詞匯、上下文信息及依存樹結(jié)構(gòu)信息作為特征訓練最大熵分類器,以實現(xiàn)復句關(guān)系的自動識別;文獻[2]在中文篇章樹庫(CDTB)上提出了模擬人類重復閱讀和雙向閱讀過程的注意力機制網(wǎng)絡(luò)模型,得到論元信息的交互表示。
復句判定是指對于給定句子,復句判定系統(tǒng)能夠準確地識別出是否為復句。如表1 中的例句1 即為包含關(guān)聯(lián)詞的顯式復句,例句2 為緊縮型復句,例句3 為無關(guān)聯(lián)詞的隱式復句,上述3 類統(tǒng)稱為復句,例句4 為單句。
表1 單復句示例Table 1 Examples of simple and complex sentences
本文以循環(huán)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)實現(xiàn)復句的自動判定,模型主要分為輸入模塊、編碼模塊、輸出模塊3 個部分,其模型結(jié)構(gòu)如圖1 所示。
圖1 基于循環(huán)神經(jīng)網(wǎng)絡(luò)的復句判定模型Fig.1 Model of complex sentence identification based on recurrent neural network
對復句的判定需要著眼于整個句子的內(nèi)容,句子中某一個詞的語義信息由上下文信息共同決定,因此采用Bi-LSTM 對句子中的詞語表示進行建模,以便較準確地獲得句子的語義信息,通過前向LSTM 和后向LSTM 計算得到句子向量表示,將兩者拼接得到當前狀態(tài)的向量表示。由于復句由2 個或2 個以上分句組成,與單句相比,句法結(jié)構(gòu)更加復雜,長度更長,因此一層遍歷所得到的語義信息往往是不足的,采用多層Bi-LSTM 能夠避免梯度爆炸、梯度消失等問題。本文采用了多層Bi-LSTM 來學習文本數(shù)據(jù)中的層次化信息、增加語義建模的準確性。
由于復句語義關(guān)系是由分句語義的交互作用而形成的,因此本文采用了能夠衡量內(nèi)部相關(guān)性的Self Attention[16]。計算方式如式(1)~式(3)所示:
為挖掘文本中更深層次的語義信息,引入了卷積神經(jīng)網(wǎng)絡(luò)(CNN),通過卷積核提取出相鄰單詞的特征,對卷積層輸出的結(jié)果進行池化操作,從而將最重要的特征提取出來。本文采用max-over-timepooling 操作,即將最大值作為最重要的特征。
該模型在全連接層后通過softmax 函數(shù)對給定句子進行復句的判定預測。
其中:W和b分別為權(quán)重和偏置;C為經(jīng)過模型編碼后的輸出。此外,本文所使用的損失函數(shù)為負對數(shù)似然函數(shù)。
識別復句關(guān)系對于把握句子整體語義有至關(guān)重要的作用,也是本文另一項重要任務(wù)。表2 為4 種出現(xiàn)頻率較高的復句關(guān)系類別示例。
表2 復句關(guān)系類型示例Table 2 Examples of complex sentence relation types
本文基于Tree-LSTM 的復句關(guān)系識別模型的輸入為給定句子的2 個論元,輸出為復句關(guān)系預測結(jié)果。該模型由輸入模塊、成分句法樹模塊、編碼模塊和輸出模塊構(gòu)成,模型結(jié)構(gòu)如圖2 所示,下面依次對上述4 個模塊進行展開。
圖2 基于Tree-LSTM 的復句關(guān)系識別模型Fig.2 Model of complex sentence relation recognition based on Tree-LSTM
成分句法樹能夠清晰地將句子中所包含的句法及句法單位之間存在的關(guān)系展示出來。在自然語言中,不同類型短語所對應(yīng)的語義的重要性也各不相同,在一般情況下相較于動詞短語,介詞短語對復句關(guān)系影響較小。
圖3 為復句“孟山都在歐洲遭遇滑鐵盧,肯定會開拓市場彌補損失”中2個分句的成分句法樹表示,在arg1中存在介詞短語“在歐洲”和動詞短語“遭遇滑鐵盧”,在arg2 中有動詞短語“開拓市場”“彌補損失”,通過比較2 個論元的動詞短語,容易分析出2 個論元呈現(xiàn)因果關(guān)系,如果把arg1 中的介詞短語和arg2 中的動詞短語進行比較則難以得出上述結(jié)論。由此可見,句子中的成分信息對于復句關(guān)系識別具有一定的輔助作用,故本文采用Stanford Parser 得到句子中每個論元的成分句法樹,將成分句法樹的標記嵌入到詞語的embedding中。
圖3 成分句法樹實例Fig.3 Example of constituent syntactic tree
本文通過文獻[17]提出的預訓練語言模型Bert構(gòu)造詞語的向量表示,采用隨機初始化的方式構(gòu)造成分句法樹標記向量,對于輸入的句子c={c1,c2,…,cn},其中ci={wordi,tagi},1≤i≤n,ci包含在i這個位置上所對應(yīng)的詞以及該詞在成分句法樹中所對應(yīng)的標記,對于每一個詞ci,將其詞向量和標記向量進行拼接,得到對應(yīng)的向量表示ei=[wi;ti]。
雖然鏈式的LSTM 已經(jīng)取得了較好的效果,但是句子的語義不僅僅是由單個詞的語義進行簡單的拼接而成的,句子的結(jié)構(gòu)信息也起著至關(guān)重要的作用,本文在編碼時采用了能夠捕獲句子語義信息的同時也考慮句子的結(jié)構(gòu)信息的Tree-LSTM[18]。
與LSTM 類似,Tree-LSTM 由1個輸入門、1個輸出門和多個遺忘門構(gòu)成,遺忘門的個數(shù)與樹節(jié)點數(shù)一致,即本文采用的方法有2 個遺忘門。但Tree-LSTM 的當前狀態(tài)并不取決于上一時刻的隱藏層狀態(tài),而是取決于孩子節(jié)點的隱藏層狀態(tài),其計算方式也在LSTM 的基礎(chǔ)上做出了調(diào)整,如式(5)~式(7)所示:
在通過Tree-LSTM 編碼后,在復句關(guān)系識別任務(wù)中采用前饋神經(jīng)網(wǎng)絡(luò),對Tree-LSTM 編碼后的結(jié)果進行編碼,在關(guān)聯(lián)詞的分類任務(wù)中采用了卷積神經(jīng)網(wǎng)絡(luò)對輸出結(jié)果進行編碼。
在輸出模塊中,最終將復句中2 個論元的表示送入softmax 函數(shù)得到復句關(guān)系分類的概率,計算公式如下:
其中:D為訓練時所用的數(shù)據(jù)集;R為復句關(guān)系的類型;yi(x)為訓練樣本x的標簽(x)為通過本文模型得到的樣本x被預測為屬于類型i的概率值。
在統(tǒng)計模型的基礎(chǔ)上,可將模型分為管道式模型和聯(lián)合模型兩大類。管道式模型的方式容易傳遞誤差,導致模型的性能衰減,且各環(huán)節(jié)獨立進行預測,忽略了2 個任務(wù)之間的相互影響,無法處理全局的依賴關(guān)系。聯(lián)合模型則是將各個模型通過整體的優(yōu)化目標整合起來,從整體的結(jié)構(gòu)中學習全局特征,從而使用全局性信息來優(yōu)化局部預測的性能。因此,本文采取聯(lián)合模型同時進行復句判定和復句關(guān)系識別。模型結(jié)構(gòu)如圖4 所示,主要分為輸入模塊、編碼模塊、輸出模塊3 個部分。
圖4 復句判定及復句關(guān)系識別聯(lián)合模型結(jié)構(gòu)Fig.4 Joint model structure of complex sentence identification and compelx sentence relation recognition
在自然語言處理的相關(guān)任務(wù)中,一個單詞的特征或者含義不應(yīng)該因為任務(wù)的不同而不同,統(tǒng)一的向量表示使聯(lián)合學習模型不過分地傾向于某一任務(wù),增加了模型的泛化能力,故本文在嵌入層中復句判定和復句關(guān)系識別任務(wù)的嵌入層中共享向量表示。
參數(shù)共享是聯(lián)合模型中較為常見的一種方式,可以分為硬共享和軟共享2 種。硬共享指多個模型之間的共享部分直接使用同一套參數(shù),使模型學習到可以表示多個任務(wù)的解;軟共享通常是通過計算多個模型之間的共享部分的參數(shù)之間的差異,使其差異盡可能得小,并保留任務(wù)的獨立性。為了使模型在底層的句子表示中使復句的判定和復句關(guān)系識別任務(wù)可以相互借鑒,故本文在參數(shù)共享中選擇了參數(shù)軟共享方式,使多個模型中需要共享部分的參數(shù)差異盡可能得小,這種參數(shù)共享方式能夠使模型在學習多個任務(wù)共有的表示下保留任務(wù)的獨特性,對不同的任務(wù)學習不同的句子表示。
對于復句判定任務(wù),編碼層采用Bi-LSTM 進行編碼,獲得句子的上下文表示信息,將Bi-LSTM 的結(jié)果作為CNN 的輸入,得到句子的局部特征表示。
在復句關(guān)系識別任務(wù)中,為了得到句子的結(jié)構(gòu)化信息,采用Tree-LSTM 進行編碼。此外,由于復句判定任務(wù)中學到的句子表示有助于豐富復句關(guān)系識別任務(wù)中的信息,因此本文引入了注意力機制對這部分信息進行學習。在復句判定編碼層輸出的上下文詞表示為,復句關(guān)系識別編碼器獲得的輸出記為,通過下式計算:
在得到新的向量表示后,將編碼后的結(jié)果通過softmax 函數(shù)進行進行復句判定和復句關(guān)系識別。若在聯(lián)合模型中輸入的句子被判定為單句時,該句子在進行復句關(guān)系識別后會進行后處理,將其復句關(guān)系識別的結(jié)果更正為無關(guān)系。
在聯(lián)合模型中損失函數(shù)的定義是一個十分棘手的問題,若2 個任務(wù)之間出現(xiàn)梯度不平衡的問題會導致參數(shù)的更新傾向于某個單獨的任務(wù),降低所有模型的表現(xiàn)效果。故本文計算2 個任務(wù)之間的損失采用靜態(tài)加權(quán)求和的方式,將不同任務(wù)之間的損失進行組合,計算公式如下:
其中:Wid和Lid分別為復句判定模型的權(quán)重和總損失;Wre和Lre分別為復句關(guān)系識別任務(wù)中的模型的權(quán)重和總損失;θ為模型的參數(shù);Lθ為參數(shù)軟共享所構(gòu)成的參數(shù)距離損失。
本文中 所使用 的語料是由CAMR[19](Chinese Abstract Meaning Representation)和篇章結(jié)構(gòu)樹庫[20]中抽取的復句語料。圖5 為CAMR 中復句的結(jié)構(gòu)示例。
圖5 CAMR 復句結(jié)構(gòu)示例Fig.5 Example of CAMR complex sentence structure
在CAMR 中共標記了并列、因果、條件、轉(zhuǎn)折、時序、遞進、選擇、讓步、反向選擇9 類復句關(guān)系,但由于后5 類僅占語料的4.23%,因此對這5 類進行了歸并,得到了如表3 所示的數(shù)據(jù)集,其中無關(guān)系類別為單句,共5 359 種。
表3 語料庫中復句關(guān)系統(tǒng)計Table 3 Statistics of complex sentence relations in corpus
在復句判定實驗中訓練集、測試集的比例為4∶1,由于深度學習算法容易出現(xiàn)過擬合的問題,因此在每一層的輸出中進行Dropout[21]操作,采用Adam[22]算法對模型進行優(yōu)化,實驗中所涉及的參數(shù)設(shè)置如表4 所示。
表4 復句判定模型的超參數(shù)設(shè)置Table 4 Hyperparameter settings of complex sentence identification models
表5 為復句判定任務(wù)的實驗結(jié)果,可以看到僅使用Bi-LSTM 時準確率(P)達到94.81%,但召回率(R)較低,這是因為Bi-LSTM 著眼于復句的整體語義,若復句句法結(jié)構(gòu)不夠典型則效果較差,無法識別。Attention 機制能夠捕獲分句間對揭示語義有提示作用的詞語或搭配信息,因此F1 值提升了6.07 個百分點。CNN 的加入則是突出了分句內(nèi)部對語義有提示作用的局部信息,因此性能進一步提高。這說明對于復句而言,除了整體語義外,局部語義及分句間的語義交互作用對揭示復句語義有著同樣重要的作用。
表5 復句判定實驗結(jié)果Table 5 Experimental results of complex sentence identification %
為了更好地分析模型的性能,本文對測試集中的顯式復句和隱式復句的實驗結(jié)果進行分析,其實驗結(jié)果如表6 所示。
表6 顯式及隱式復句判定實驗結(jié)果Table 6 Experimental results of explicit and implicit complex sentence identification %
從表6 可以看出,與表5 相似,無論是在顯式復句還是在隱式復句中,加入Attention 和CNN 以后的F1 值均高于其他2 種方法,這再次證明了局部信息的引入有助于提升模型對復句判定的性能。另外,通過比較顯式復句和隱式復句的判定結(jié)果可以發(fā)現(xiàn),顯式復句的F1 值比隱式復句的F1 值高2.89 個百分點,這是因為隱式復句中并沒有關(guān)聯(lián)詞這一明顯的淺層特征,在編碼時其內(nèi)部的語義信息較難挖掘,導致隱式復句判定結(jié)果較低。
在復句關(guān)系識別任務(wù)中所涉及的超參數(shù)如表7所示,復句關(guān)系識別任務(wù)的結(jié)果展示如表8 所示。
表7 復句關(guān)系識別模型的超參設(shè)置Table 7 Hyperparameter settings of complex sentence relation recognition model
表8 復句關(guān)系識別實驗結(jié)果Table 8 Experimental results of relation recognition of complex sentences %
表8 中LSTM 模型表示只考慮句子的上下文語義信息,對句子的語義進行建模,但句子的語義信息并不只是每個詞語義的疊加,與句子的結(jié)構(gòu)信息有一定的關(guān)系,Tag+Tree-LSTM 模型考慮句子的句法結(jié)構(gòu)信息,并在編碼過程中融入成分句法樹的標簽信息,這種方式相較于只考慮上下文語義信息的LSTM 而言,效果提升了0.27 個百分點;在Tag+Tree-LSTM 中采用了隨機初始化的詞向量方式,但預訓練的詞向量能夠更好地反映出詞語詞之間的關(guān)系以及句子的語義信息,故在Tag+Tree-LSTM 的基礎(chǔ)上加入了句子級的詞向量Bert,模型的性能提高了3.37 個百分點。
表9 所示為本模型與其他模型的實驗結(jié)果對比,相比于文獻[14]針對漢語篇章結(jié)構(gòu)語料庫提出的基于多層注意力的TLAN 方法,本文提出的方法采用Tree-LSTM 能夠充分利用句子的結(jié)構(gòu)信息,預訓練詞向量Bert 的引入對漢語中一詞多義現(xiàn)象有所解決,因此本文所提出的Tag+Tree-LSTM+Bert 模型F1 值達到58.17%,相較于TLAN 模型,提升了1.97 個百分點。
表9 模型實驗結(jié)果對比Table 9 Comparison of the model experimental results %
表10 所示為復句判定和復句關(guān)系識別任務(wù)構(gòu)成的管道式模型實驗結(jié)果,與前文中提出的Tag+Tree-LSTM+Bert 模型相比,pipeline 模型的實驗結(jié)果比直接進行復句關(guān)系識別任務(wù)的模型低,這是因為pipeline 需要先進行復句判定任務(wù),然后再進行復句關(guān)系識別。
表10 復句判定及復句關(guān)系識別pipeline 模型結(jié)果Table 10 Pipeline model results of complex sentence identification and complex relation recognition %
在聯(lián)合模型中,通過聯(lián)合學習利用任務(wù)之間可以相互作用的特征,表11 為復句判定及復句關(guān)系識別聯(lián)合模型的實驗結(jié)果。
表11 聯(lián)合模型實驗結(jié)果Table 11 Experimental results of joint model %
通過比較表10 和表11 可以發(fā)現(xiàn),無論是在復句判定任務(wù)還是在復句關(guān)系識別任務(wù)中,聯(lián)合模型的F1 值相比管道式模型都有所提高,表11 聯(lián)合模型中復句判定任務(wù)的F1 值較表10 中管道式模型提高了0.44 個百分點,聯(lián)合模型復句關(guān)系識別的F1 值為66.25%,與管道式模型的實驗結(jié)果62.64%相比提高了3.61 個百分點,這是因為聯(lián)合模型能夠有效地減少模型之間的誤差傳遞。
本文基于神經(jīng)網(wǎng)絡(luò)方法對復句判定及復句關(guān)系識別任務(wù)進行研究,構(gòu)造復句判定和復句關(guān)系識別聯(lián)合模型,通過減少管道式誤差傳遞以實現(xiàn)復句的自動判定和復句關(guān)系的自動識別。實驗結(jié)果驗證了本文方法的有效性。由于神經(jīng)網(wǎng)絡(luò)方法對語料規(guī)模較為依賴,因此下一步將繼續(xù)擴充語料規(guī)模,提高網(wǎng)絡(luò)模型性能。