劉 洪 陳增照 張 婧 陳 榮 魯圓圓
1(華中師范大學教育大數據應用技術國家工程實驗室 湖北 武漢 430079) 2(華中師范大學國家數字化學習工程技術研究中心 湖北 武漢 430079)
篇章關系識別(Discourse Relation Recognition)作為自然語言處理的基礎性研究,是以篇章粒度的連續(xù)句子對為分析目標,以字、詞為編碼粒度抽取句子中的語義結構,生成篇章論元表示,進而識別篇章關系,幫助機器更好地自動理解文本。該問題的解決能應用于諸多自然語言處理的下游任務,如機器翻譯[1]、自動文摘[2]和事件關系抽取[3]等。
根據篇章連接詞的有無,篇章關系可分為顯、隱式篇章關系(Explicit & Implicit Discourse Relation)。表1中的例子對顯、隱式篇章關系進行了解釋。
表1 顯、隱式篇章關系舉例
顯式篇章關系中由于存在明顯的篇章連接詞,其識別在特征工程[4-5]階段已達到較好的識別效果。而隱式篇章論元對中由于缺乏明顯篇章連接詞,故需要抽取論元對之間的深層語義特征來構建篇章邏輯關系,這一過程較為復雜,因此隱式篇章關系識別也成為篇章關系識別中的主要問題。在特征工程階段,已有工作主要通過抽取句法、詞性、詞頻和情感極性等傳統(tǒng)語言學特征[6-7]的機器學習方法進行隱式篇章關系的識別。但這種方法工作量大、過程繁瑣,難以捕獲深層的語義結構特征。而應用目前主流的深度學習方法可以很好地避免這些缺點。
在深度學習方法中,篇章關系識別任務一般通過對原始論元進行層層編碼,通過編碼來抽取論元對的語義結構,從而實現(xiàn)分類。而論元編碼中的序列特征對語義結構抽取至關重要。當前主流的編碼方式主要采用循環(huán)神經網絡[8-9]以及注意力機制[10-13]。循環(huán)神經網絡對于序列特征具有很好的表征能力,注意力機制則具有很好的全局視野且并行速度快。其中,Liu等[10]通過模擬人類閱讀的方式采用Bi-LSTM編碼論元,通過兩層外部注意力機制反復閱讀論元來重新分配論元權重。Guo等[13]則通過Bi-LSTM編碼后,采用一種交互注意力機制對論元進行交互表示,提升了論元的序列表達。在此基礎上,徐昇等[12]提出了一種三層注意力網絡架構,該網絡直接使用注意力機制進行編碼,能較好地捕獲長期的依賴和全局詞對線索。但以上網絡中均采用單一的初步論元編碼結構,或僅通過論元間交互來強化序列表示,容易忽略字、詞粒度上局部序列信息的表達。
基于上述研究,本文提出一種增強序列表示的注意力網絡架構(RC-MLAN),模型通過添加循環(huán)卷積模塊(RC-Encoder)來捕捉更為細粒度的局部序列特征,并且這種循環(huán)卷積模塊與文獻[12]的三層注意力網絡(TLA-Encoder)采用并行架構的方式。最后模型采用了文獻[10]中的外部注意力機制,把TLA-Encoder得到的全局詞對聯(lián)系作為一種外部記憶,反復地閱讀RC-Encoder抽取的重要序列表示,從而生成包含豐富序列信息的最終論元表示。
本文的主要貢獻包括:(1) 提出一種包含循環(huán)卷積模塊的四層注意力網絡架構,增強了最終論元的序列信息表示。(2) 在循環(huán)卷積模塊中采用了一種細粒度的序列特征編碼方式,并通過一種局部卷積突出了序列特征中的重要信息。(3) 使用了一種外部記憶的注意力機制,用原有三層注意力網絡提取的詞對線索重復閱讀這種更細粒度的序列表示,使最終論元表示中包含更細節(jié)的序列信息。
由于英文的語料資源較為豐富,在隱式篇章關系識別任務已有工作較多,主要分為傳統(tǒng)特征工程的方法和深度學習的方法。在傳統(tǒng)特征工程階段,主要分為兩類:(1) 將句法結構、詞匯、情感極性等淺層信息用于機器學習的方法[6];(2) 通過標注篇章連接詞,采用預測連接詞的方法來進行篇章關系分類。后期由于深度學習方法的興起,涌現(xiàn)許多解決該任務的神經網絡模型[11-15]。Nie等[15]利用依存關系分析和基于規(guī)則的方法自動挑選出顯示語料,用Bi-LSTM生成有效的句子表示來提升隱式篇章的識別效果。Guo等[13]模擬人類閱讀的方式,采用了一種交互注意力機制增強論元交互從而抽取更深層次的篇章語義信息。此外,有部分工作[16-17]通過擴展和平衡數據集的方式來進一步提升隱式篇章識別效果,這種方法對后期英文篇章方面工作和中文篇章關系研究均有所啟發(fā)。英文隱式篇章關系起步早,研究成果相對較多,但由于中英文在語言形式和表達習慣上的差異,針對英文任務的方法并不能直接應用于中文領域。
就目前中文隱式篇章識別研究工作而言,由于語料資源較為稀少,在該任務上的研究工作不多,已有的方法主要分為傳統(tǒng)特征方法和深度學習階段。在傳統(tǒng)特征方法上,Huang等[18]在自建語料上就句子長度、標點、連詞和共享詞等淺層語言學特征進行整合探究。張牧宇等[5]利用依存句法等特征提出了一種多元SVM和最大熵模型分類器,由于SVM存在對邊界的敏感性,效果優(yōu)于最大熵分類器。孫靜等[19]利用上下文特征、詞匯特征和依存樹特征提出了一種最大熵模型,在并列類識別效果較好。李國臣等[20]提出了一種漢語框架語義網,通過識別句子中的目標詞對篇章單元進行分析從而識別篇章關系。由于傳統(tǒng)方法需要人工抽取特征,過程繁瑣且特征較為淺表,難以捕獲深層的語義結構,因而深度學習的方法在近年的中文隱式篇章關系研究中逐漸興起。R?nnqvist等[8]采用了一種循環(huán)神經網絡抽取論元的序列特征,并通過Attention機制來重新計算詞序權重。田文洪等[9]構建了一種多任務架構的雙端長短時記憶網絡(Bi-LSTM),通過擴充顯示語料的訓練方式解決了訓練語料不足的問題,并取得了較好的魯棒性。徐昇等[12]通過模擬人類反復閱讀的模式提出了一種多層注意力網絡,通過共享自注意力(Self-Attention)層直接對論元進行編碼,并通過交互注意力和外部記憶的方式抽取深層語義完成篇章論元對的最終表示。
由于已有的方法中大多只采用了一種初步論元的編碼方式,基于循環(huán)神經網絡的編碼方式具有很好的序列表示,而結合注意力機制的方法則具有很好的全局視野,考慮到經過多層注意力后表示中容易忽略字符序列信息,因此本文嘗試用兩種不同的編碼方式來抽取論元特征,并通過一種局部卷積來突出重要的局部序列特征,增強論元的序列表示。此外,通過一種外部注意力將兩種編碼方式進行融合,使注意力網絡結構中生成的最終論元表示中包含豐富的局部序列信息。
本文提出的增強序列表示的多層注意力網絡架構主要包括TLA-Encoder、RC-Encoder和IEM-Attention層,其整體框架如圖1所示。
圖1 RC-MLAN網絡結構
模型通過Source Embedding層將論元對Arg1和Arg2初始化為包含詞性特征的融合向量表示E1和E2,再將E1、E2送入TLA-Encoder層和RC-Encoder層分別提取語義信息和序列信息。
在TLA-Encoder中,文本采用文獻[12]提出的三層注意力網絡,利用Self-Attention對論元直接編碼得到H1和H2,然后在Interactive Attention層對H1和H2進行交互閱讀得到交互表示H3和H4,并通過非線性變化得到初步的論元語義表示M,最后由IEM-Attention模擬人類反復閱讀的方式把M作為外部記憶引導H1和H2生成篇章語義表示MTLA。
在RC-Encoder中,首先將E1、E2送入Bi-LSTM來提取論元對的詞序信息,然后通過局部卷積對論元序列抽取重要的局部特征L,最后通過L來重新分配論元序列中的權重,得到論元序列的強化表示O。
在兩個Encoder層獲得各自的特征后,將篇章語義表示MTLA作為頂部IEM-Attention層的外部記憶,通過重復讀RC-Encoder層得到的序列表示O,從而得到包含豐富序列信息的最終論元表示R,并在softmax層中完成篇章關系的分類。
由于用低維稠密的數值向量來表征詞的方式可以提升模型處理文本數據的能力,這種通過預訓練的語言模型來生成低維稠密詞向量的方式在自然語言處理中得到廣泛應用。為了增強詞向量的表征能力,將詞的word2vec[21]編碼和詞性特征進行了拼接。
模型的輸入由論元Arg1和Arg2構成,用xi表示論元中位置為i的詞,則每個論元表示為:
Arg={x1,x2,…,xn}
(1)
在經過Source Embedding層后,論元對的編碼表示為E1∈Rm×dime,E2∈Rm×dime:
(2)
(3)
Xt={Xt,w2v?Xt,p}
(4)
式中:Xt,w2v表示word2vec訓練生成的詞向量;Xt,p表示詞性向量;t表示詞在論元中的位置。
注意力機制編碼并行速度快,且對于捕捉句子的語義信息具有較好的全局視野。在文本處理問題中,注意力機制能較好地捕捉到文本中的詞對線索。而篇章關系問題的核心在于理解篇章論元的邏輯語義,邏輯語義可以通過論元中詞對的相關性來體現(xiàn)。受文獻[12]啟發(fā),本文采用了一個三層的注意力網絡作為語義編碼模塊。首先通過兩個獨立的自注意力層[22]對論元進行初步編碼,通過該機制計算論元自身的詞對權重矩陣,從而得到初始論元的淺層語義結構。同時,為了增強論元間的序列表示,采用了文獻[12]中的交互注意力機制模擬人類閱讀,通過重新計算論元間的詞對權重矩陣來提取論元間的詞對線索。再將這兩個論元的交互表示拼接后進行非線性變換,得到論元的外部記憶表示。最后,這種外部記憶通過外部注意力機制[10]重復閱讀論元對的初步編碼,最后得到篇章的語義表示MTLA。
2.2.1自注意力(Self-Attention)
由Source Embedding層初始化論元后,使用自注意力對其進行初步編碼。公式如下:
(5)
由于兩個論元具有不同的語義結構,本文采用非共享方式對嵌入層表示E1和E2分別進行初步編碼,公式如下:
(6)
(7)
2.2.2交互注意力
考慮到自注意力是對兩個論元獨立編碼,而篇章關系本質上是兩個論元對之間的語義關聯(lián),缺乏交互的論元表示難以表達篇章語義聯(lián)系。受已有研究[10,12]啟發(fā),本文也使用了一種模仿人類閱讀的方式反復閱讀論元。通過論元間的詞對矩陣重新調整論元自身權重矩陣,使兩個論元的表示具有更廣闊的篇章語義視野。式(8)-式(9)表示論元的交互生成。
(8)
(9)
在得到論元各自交互表示H3、H4后,通過平均池化操作和非線性變換來獲得論元的外部記憶M∈Rdi,公式如下:
(10)
(11)
M=tanh(Wm·concat(P1,P2,P1-P2))
(12)
2.2.3包含外部記憶的注意力(IEM-Attention)
根據人類閱讀的習慣,通過反復閱讀[10]有助于更深層次地理解文本。這是因為在重讀閱讀的過程中,先前的閱讀記憶會幫助下一次閱讀更好地理解文本。因此,在篇章關系的識別中,本文也嘗試通過這種反復的閱讀來更深入地理解文本。公式如下:
f(C,M)=tanh(C+Me)·Wf
(13)
g(C,M)=softmax(f(C,M))
(14)
IEMAttention(C,M)=g(C,M)·C
(15)
式中:C表示論元編碼;Me表示記憶;Wf∈Rdj×dj表示變換矩陣。
在TLA-Encoder中,模型使用篇章層面的詞對線索M作為論元的外部記憶,通過M對兩個論元進行重復的閱讀,增強對論元的理解,同時重新分配原始論元的權重矩陣,從而使論元編碼具有更廣闊的全局視野。模型經外部記憶M重新理解H1得到了更深層次的語義表示H5∈Rm×dk,公式如下:
Me1=e1?M
(16)
H5=IEMAttention(H1W5,Me1We1)
(17)
式中:e1∈Rm表示全1向量,e1?M表示將外部記憶M復制m次得到Me1∈Rm×di;W5∈Rds×dk和We1∈Rdi×dk表示轉換矩陣表示轉換矩陣。同理也可以得到H6∈Rn×dk。最后,對H5、H6進行非線性變化,得到篇章的語義表示MTLA∈R(n+m)×dk。
MTLA=tanh(Wm·concat(H5,H6,H5-H6))
(18)
式中:Wm表示線性變換矩陣。
同時,本文還嘗試從不同的角度來反復地理解篇章論元。由于注意力編碼機制能很好地捕捉詞對相關,但經過多層注意力編碼之后,模型獲得豐富的詞對線索的同時會忽略對原始論元中的字符序列信息的關注。因此,本文還利用這種包含外部記憶的注意力機制,將TLA-Encoder的語義編碼作為序列表示的外部記憶,通過具有全局視野的詞對線索反復理解包含豐富局部特征的論元序列,從而使生成的最終論元表示R∈Rdj既保留了全局的詞對線索,也包含豐富的局部序列特征。其公式如下:
Me3=e3?MTLA
(19)
R=IEMAttention(OTWO,Me3We3)
(20)
式中:O是RC-Encoder生成的序列表示;e3∈Rn+m表示全1向量;WO∈Rdhid×dj,We3∈Rdk×dj表示變換矩陣。
具體而言,篇章關系表示為兩個連續(xù)句子之間的語義邏輯,其序列信息對其十分重要。由于注意力機制主要關注句子中的詞對信息,且經過多層注意力編碼之后,模型會逐漸丟失原始論元中的字符序列信息。常見的序列表示方法是通過RNN及其變種[8-10,13]對于兩個論元進行序列編碼,然后通過注意力機制重新進行論元的權重分配。Cai等[23]構建了一種循環(huán)卷積模塊來強化Transformer[22]的序列表示,在Bi-LSTM編碼下采用多次連續(xù)卷積操作來提取序列中的重要信息。本任務數據較文獻[23]的自動摘要數據長度相對更短,因此通過多次卷積后視野更大,會降低局部序列特征的抽取效果,同時大量的卷積操作也會限制模型速度的提升。因此,本文通過控制卷積次數和卷積核大小來抽取n-gram特征進一步強化序列表示,使得序列特征更容易被上層的注意力機制捕獲,從而生成序列信息更為豐富的論元表示。
2.3.1雙向長短時記憶網絡(Bi-LSTM)
雙向長短時記憶網絡(Bi-LSTM)作為循環(huán)神經網絡(RNN)的一種變形,在多種自然語言處理的任務中取得了不錯的效果。Bi-LSTM在神經元中添加門結構元,控制了信息通過的量,解決了RNN中存在的長期依賴問題。另外,Bi-LSTM通過后向計算,將正向序列特征與反向序列特征進行疊加輸出,從而得到了文本的雙向序列特征。
融合詞向量表示E1、E2在經過拼接之后送入Bi-LSTM抽取其序列特征得到其隱含序列文本表示S∈R(m+n)×dhid。其中,dhid表示BiLSTM的中間隱含層維度。
S=BiLSTM(E1?E2)
(21)
式中:m、n表示不同論元融合嵌入后長度。
2.3.2局部卷積(LocalConvolution)
本文用兩個卷積層進一步強化局部序列表示。如圖2所示,本模塊在得到序文本列表示S后,通過兩個不同的卷積核去對序列進行卷積操作。其結構如圖2所示。
圖2 局部卷積結構
通過卷積得到n-gram特征表示為Dk∈R(m+n)×dhid,其中:k表示卷積核的大?。籨hid表示卷積層輸出的維度。將兩次卷積的結果進行非線性變換,得到重要的局部特征D∈R(m+n)×2dhid。
D=concat(D1,D3)
(22)
L=σ(WdDT+bd)
(23)
式中:σ表示Sigmoid函數;bd∈Rdhid×(m+n)表示偏置矩陣。
這里設置了一個過濾機制,根據卷積操作得到的局部重要性來過濾序列文本,從而突出序列中的重要局部信息。公式如下:
O=L⊙(WsST+bs)
(24)
式中:⊙表示點積操作;Wd∈Rdhid×2dhid,Ws∈Rdhid×dhid表示變化矩陣;bs∈Rdhid×(m+n)表示偏置矩陣。
最后,式(19)-式(20)以語義編碼的結果MTLA為外部記憶再次閱讀包含豐富局部序列特征的論元表示O,引導生成論元的最終表示R。再通過一個非線性變換將這種表示送入到Softmax層完成篇章關系的識別,如式(25)-式(26)所示。
t=ReLU(WrR+br)
(25)
(26)
式中:ReLU表示激活函數;Wr∈Rdr×dj和Wt∈Rdy×dr表示權重矩陣;br∈Rdr和bt∈Rdy表示偏置矩陣。
本實驗在NVIDIA 1060上展開,內存16 GB,其中軟件環(huán)境為Python 3.6.7,Tensorflow-gpu 1.14,Keras 2.3.1,jieba 0.39,gensim 3.8.1。
實驗所采用的語料庫為HIT-CDTB語料[24]。該語料共標記了525篇文章,按有無篇章詞分為顯、隱式篇章關系;按句間語義邏輯分為時序、因果、平行、條件、比較和擴展六大類篇章關系,并在大類基礎上進行細分,共計55個小類。由于不同類別語料分布不均,本文僅選取了因果、比較、擴展和平行這四類語料展開實驗。由于顯式語料與隱式語料最大的特點是篇章連接詞的有無,其兩者在語義結構上是相似的,因此本實驗訓練時采用部分顯式語料對隱式語料進行擴充[16]。具體語料細節(jié)如表2所示。
表2 語料分布
本實驗的訓練語料由顯式語料和70%的隱式語料構成,余下30%的隱式語料作為測試集,其細節(jié)如表3所示。
表3 訓練集與測試集分布
其中,實驗詞向量設置為300維,詞性向量維度為50維。注意力變換矩陣維數為350維,Bi-LSTM的隱含層節(jié)點數為700維;局部卷積步長為1和3,采用邊界填充的方式保證卷積結果維度一致;IEM-Attention的變換矩陣維數為350維。在實驗過程中,采用交叉熵作為損失函數來優(yōu)化模型參數。用微平均(Micro-F1)和宏平均(Macro-F1)作為主要的參考指標,并對每一個小類采用了調和平均值(F1)作為評估標準。
為了驗證增強序列表示的多層注意力網絡的有效性,本文選取了Bi-LSTM[25]作為本文的基準模型,并與基于注意力機制的循環(huán)神經網絡(RNN-Attention)[8]、多任務雙端長短時記憶網絡(Multi-Task Bi-LSTM,MT Bi-LSTM)[9]和多層注意力神經網絡(TLAN)[12]進行了對比,結果如表4所示。
表4 模型試驗結果
基準模型憑借較好的雙向序列表征能力,在Micro-F1和Macro-F1上分別取得56.82%和46.31%的實驗效果。RNN+Attention機制的方法缺乏對論元的逆向序列表征能力,在整體識別效果上較基準模型欠佳,但由于Attention機制能抽取序列表示中的詞對相關性,在平行和對比語料中取得了與基準模型相當的效果。多任務學習通過共享網絡層學習顯示特征輔助分析隱式語料具有良好的魯棒性,相比于基準模型在Micro-F1提升了約0.022 1,Macro-F1提升了約0.000 4,尤其相對于基準模型在擴展和平行占比相對較高的語料上分別有0.025 4和0.016 2的提升;但該方法在對比類語料中識別效果欠佳,主要原因是多任務的方法大量地增加了訓練參數,而對比語料過少導致隱式層參數欠擬合。TLAN中的注意力編碼具有強大的詞對聯(lián)系捕獲能力,并通過交互機制來模擬雙向閱讀抽取論元的交互信息,并通過引入外部記憶的方式反復地理解論元,相比于基準模型在Micro-F1提升了約0.042 3,Macro-F1提升了約0.009 7,同時在對比、擴展和平行三種語料中均取得了較前三種方法更好的實驗效果。
增強序列表示的多層注意力網絡與其他模型相比均取得了更好的效果,較基準模型在Micro-F1提升了約0.110 6,Macro-F1提升了約0.085 7。同時,該模型在四類語料中的實驗效果均好于基準模型,尤其在語料占比較大的擴展語料中效果提升較大。這是因為不同結構的模型對于論元的特征抽取能力是不同的,多層注意力網絡對于詞對聯(lián)系這種語義特征具有較好的抽取能力,而RC-Encoder除了能抽取相關的語義特征以外,還具有較強的序列表征能力,并通過卷積操作過濾出了重要的局部序列特征和語義信息。相比于循環(huán)神經網絡和注意力機制單一的論元編碼方式,本文模型在保留了注意力機制強大的語義信息抽取能力的同時,還通過IEM-Attention機制反復地對序列表示進行重復閱讀,增強了最終論元的序列表征能力,因此能夠較好地提升分類實驗效果。
為了進一步驗證RC-Encoder對于提升模型性能的有效性,在該部分設置了三個自我對比實驗。實驗設置如下:
(1) 基準模型(Base):在基準模型中,直接將Source Embedding層的論元表示和TLA-Encoder的論元編碼作為頂層IEM-Attention的輸入。
(2) Base+Bi-LSTM:用Bi-LSTM替換RC-Encoder。
(3) Base+RC-Encoder(RC-MLAN)。
實驗結果如表5所示,通過在基準模型中添加Bi-LSTM模塊使得隱式篇章分類效果在Micro-F1和Macro-F1上分別獲得了0.026 8和0.025 1的提升;添加RC-Encoder模塊使得隱式篇章分類效果在Micro-F1和Macro-F1上分別獲得了0.067 4和0.072 4的提升。這是因為RC-Encoder中的Bi-LSTM增強了論元的雙向序列表征能力,而局部卷積操作所提取的N-gram特征有利于進一步強化這種序列特征。此外,本文還對單一類型語料的實驗結果進行了分析。通過添加Bi-LSTM模塊,實驗結果在對比、擴展、平行和因果四類語料的F1值分別獲得了0.022 1,0.011 6,0.022 6和0.032 8的提升;通過添加RC-Encoder,實驗結果在對比、擴展、平行和因果四類語料的F1值分別獲得了0.077 5,0.044 7,0.041 2和0.062 3的提升。這種具有多特征抽取的編碼機制,不僅保留了多層注意力網絡中的注意力編碼和交互編碼的語義聯(lián)系,同時,通過Bi-LSTM和局部卷積對論元序列進行有效的過濾,并通過頂層的IEM-Attention機制增強了最終論元表示的序列表達能力,從而能提升模型對于單一類別的識別效果,這也說明了這種通過增強論元序列表示的方法對于隱式篇章識別是有效。
表5 RC-MLAN變體實驗結果
將Base+Bi-LSTM模型作為該部分的基準模型,通過設置不同的卷積層來探究局部卷積操作對模型性能的影響,結果如表6所示。
表6 局部卷積層數對模型性能的影響
通過將局部的卷積層數設置為1~5,與沒有局部卷積操作的Bi-LSTM進行了對比。實驗發(fā)現(xiàn),當卷積層數等于2時,對模型性能提升最大。而當卷積層數逐漸增大時,其整體性能會逐漸下降。這是因為隨著卷積層數的增多,卷積層的視野逐漸增大,這樣對于局部序列特征的過濾能力會下降;同時增加卷積層數也會導致訓練參數增多,加大了模型訓練的負荷,在訓練數據有限的情況下會導致模型性能下降。
針對中文隱式篇章關系識別任務,本文提出一種增強序列表示的多層注意力網絡模型。本文通過RC-Encoder中的Bi-LSTM抽取序列特征并用局部卷積抽取局部特征來突出重要的序列信息。最后使用了一種包含外部記憶的注意力使得到的詞對關聯(lián)作為序列編碼的外部記憶,模擬人類閱讀的方式反復理解這種序列表示并引導最終的論元生成。實驗表示,本文提出的模型在HIT-CDTB語料上的實驗效果在Micro-F1和Macro-F1上均超過了已有模型,并通過設置自我對比實驗和討論局部卷積層數探究了RC-Encoder對于模型性能的影響,充分說明了這種增強模型的序列表征能力的方法對中文隱式篇章關系分類是有效的。