鄭余祥, 左祥麟,2, 左萬(wàn)利,2, 梁世寧, 王 英,2
(1. 吉林大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 長(zhǎng)春 130012;2. 吉林大學(xué) 符號(hào)計(jì)算與知識(shí)工程教育部重點(diǎn)實(shí)驗(yàn)室, 長(zhǎng)春 130012)
近年來(lái), 隨著互聯(lián)網(wǎng)的飛速發(fā)展產(chǎn)生了大量的文本數(shù)據(jù), 文本中的關(guān)系抽取對(duì)于理解和得到有價(jià)值的信息至關(guān)重要[1]. 因果關(guān)系的抽取[2]在文本關(guān)系中占重要地位, 當(dāng)獲得了文本中的因果關(guān)系時(shí), 很容易判斷文本的主干內(nèi)容, 因此因果關(guān)系可應(yīng)用于許多自然語(yǔ)言處理任務(wù), 例如問(wèn)答系統(tǒng)[3]、 文本摘要、 決策支持[4]等.
理解事件是自然語(yǔ)言處理的重要組成部分, 該過(guò)程的重要步驟是確定事件之間的關(guān)系. 在事件之間可能存在的許多關(guān)系類(lèi)型中, 本文主要研究時(shí)間關(guān)系對(duì)因果關(guān)系的提取作用. 研究時(shí)間和因果關(guān)系的主要障礙是缺乏共同注釋的數(shù)據(jù), 目前, 因果關(guān)系都沒(méi)有指定標(biāo)準(zhǔn), 本文工作標(biāo)注了一個(gè)聯(lián)合注釋的數(shù)據(jù)集. 通過(guò)TimeML[5]時(shí)間標(biāo)注準(zhǔn)則, 修改CausalTimeBank數(shù)據(jù)集、 StoryLine數(shù)據(jù)集和SemEval2020_task5原始數(shù)據(jù)集, 生成的新數(shù)據(jù)集包含事件的時(shí)間關(guān)系和因果關(guān)系.
在傳統(tǒng)因果關(guān)系抽取中, 時(shí)間關(guān)系作為特征常用于機(jī)器學(xué)習(xí)方法中, Yang等[6]總結(jié)了傳統(tǒng)因果關(guān)系的研究體系, 對(duì)因果抽取方式的統(tǒng)計(jì)結(jié)果表明, 深度學(xué)習(xí)方向的因果關(guān)系抽取并未涉及到時(shí)間關(guān)系; 在時(shí)間關(guān)系中包含事件發(fā)生的順序, 這有助于對(duì)因果關(guān)系的判斷, Mirza等[7]從文本中獲取指定事件上下文關(guān)系、 詞性及時(shí)間標(biāo)簽等特征, 用分類(lèi)器對(duì)指定事件進(jìn)行判斷, 并提出了利用時(shí)間TimeML準(zhǔn)則對(duì)因果事件進(jìn)行標(biāo)注, 之后又提出了CATENA模型[8], 設(shè)定了基于時(shí)間關(guān)系的過(guò)濾規(guī)則, 證實(shí)對(duì)時(shí)間和因果進(jìn)行聯(lián)合抽取相互促進(jìn); Mostafazadeh等[9]提出了事件結(jié)構(gòu)語(yǔ)義注釋的因果和時(shí)間關(guān)系方案(CaTeRS)通過(guò)大量的故事型事件, 獲得時(shí)間關(guān)系對(duì)因果關(guān)系的判斷; Ning等[10]提出了連接結(jié)構(gòu)TCR根據(jù)指定的規(guī)則推理事件的因果關(guān)系. 但上述方法都沒(méi)有利用深度學(xué)習(xí)的優(yōu)勢(shì). 為進(jìn)一步研究深度學(xué)習(xí)利用時(shí)間關(guān)系對(duì)因果關(guān)系進(jìn)行抽取, 本文提出利用事件發(fā)展的時(shí)間關(guān)系作為特征建立抽取因果關(guān)系的Bi-LSTM+GCN模型.

圖1 Bi-LSTM+GCN模型結(jié)構(gòu)
本文使用Bi-LSTM+GCN模型結(jié)構(gòu)進(jìn)行深度學(xué)習(xí), 如圖1所示. 首先, 將輸入文本中的單詞通過(guò)word embedding轉(zhuǎn)換成300維度的詞向量并添加詞性(POS)特征, 然后輸入到雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(Bi-LSTM)獲得上下文中單詞的特征, 得到300維的特征向量, 再利用圖形卷積網(wǎng)絡(luò)(GCN)模型與單詞間的時(shí)間關(guān)系卷積得到100維特征向量, 圖卷積后緊接一個(gè)Relu激活函數(shù)和Batch歸一化, 最后輸入到分類(lèi)器中. 本文使用SoftMax函數(shù)的DENSE層作為分類(lèi)器, 將100維特征向量轉(zhuǎn)換成3維向量, 3個(gè)維度分別對(duì)應(yīng)原因、 結(jié)果和非因非果3類(lèi)標(biāo)簽.
傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)能對(duì)帶有時(shí)序關(guān)系的數(shù)據(jù)進(jìn)行處理, 本文將文本序列中的每個(gè)單詞作為時(shí)間步, 整個(gè)句子視為一個(gè)時(shí)序序列. 在處理當(dāng)前單詞時(shí), 利用模型內(nèi)部的記憶單元, 能得到過(guò)去時(shí)序中單詞的特征. 但對(duì)于時(shí)序跨度過(guò)大的單詞, RNN不能很好地獲取特征. 長(zhǎng)短期記憶網(wǎng)絡(luò)模型(LSTM)[11]是對(duì)RNN的改進(jìn), 可獲得長(zhǎng)跨度單詞的特征, LSTM的單元結(jié)構(gòu)[12]如圖2所示.

圖2 LSTM的單元結(jié)構(gòu)
LSTM利用下列3種門(mén)單元決定保留的信息[13].
1) 遺忘門(mén). 遺忘門(mén)根據(jù)當(dāng)前輸入xt與上一時(shí)刻隱藏層的輸出ht-1, 選擇保留多少上一時(shí)刻的細(xì)胞狀態(tài)Ct到當(dāng)前時(shí)刻, 計(jì)算公式為
ft=σ(Wf·[ht-1,xt]+bf),
(1)
其中bf表示偏移,Wf表示參數(shù)矩陣.
2) 輸入門(mén). 輸入門(mén)決定有多少輸入信息xt保留到Ct中, 計(jì)算公式為
2016年至今,王世君擔(dān)任雞東縣農(nóng)村公路縣鄉(xiāng)路網(wǎng)改造工程建設(shè)指揮部總工程師,負(fù)責(zé)農(nóng)村公路工程建設(shè)及質(zhì)量管理工作。農(nóng)村公路施工隊(duì)伍情況復(fù)雜,管理難度大,為了保證工程質(zhì)量,他從招標(biāo)履約開(kāi)始,對(duì)進(jìn)場(chǎng)人員從嚴(yán)管理,對(duì)進(jìn)場(chǎng)材料嚴(yán)格把關(guān),對(duì)施工步驟認(rèn)真監(jiān)控,對(duì)工程質(zhì)量做到達(dá)不到標(biāo)準(zhǔn)不驗(yàn)收、不允許進(jìn)入下道工序,在同事的支持下,克服重重困難,完美地完成了各項(xiàng)工作。
it=σ(Wi·[ht-1,xt]+bi),
(2)
其中bi表示偏移,Wi表示參數(shù)矩陣.
3) 輸出門(mén). 輸出門(mén)決定細(xì)胞狀態(tài)Ct有多少輸出到當(dāng)前時(shí)刻LSTM的輸出值ht中, 計(jì)算公式為
ot=σ(Wo·[ht-1,xt]+bo),
(3)
其中bo表示偏移,Wo表示參數(shù)矩陣.
其中bc表示偏移,Wc表示參數(shù)矩陣. 最后新細(xì)胞狀態(tài)Ct通過(guò)tanh層與ot相乘得到當(dāng)前時(shí)刻隱藏層的輸出ht, 表示為
ht=ot·tanh(Ct).
(6)
LSTM模型雖然能很好獲取過(guò)去的時(shí)序數(shù)據(jù)特征, 卻不包含之后的時(shí)序數(shù)據(jù)特征. 對(duì)于處理文本序列標(biāo)注問(wèn)題需要能獲得上下文特征, 本文選擇雙向長(zhǎng)短期記憶模型(Bi-LSTM), 輸出的特征向量由從前向后的LSTM和從后向前的LSTM輸出拼接組成, 包含時(shí)序上在前和在后的文本特征.

圖3 時(shí)間關(guān)系特征矩陣
本文將時(shí)間關(guān)系[14]轉(zhuǎn)化成時(shí)間關(guān)系矩陣, 如圖3所示, 例句為“The tsunami caused death and suffering”, 在時(shí)間關(guān)系中將“tsunami”對(duì)“death”設(shè)定為“before”, 并且由于時(shí)間關(guān)系具有相對(duì)性, 將“death”對(duì)“tsunami”的關(guān)系設(shè)定為“after”, “death”和“suffering”是相互伴隨, 同時(shí)發(fā)生的, 所以是“simultaneous”關(guān)系. 本文將時(shí)間關(guān)系矩陣結(jié)合圖卷積網(wǎng)絡(luò)模型[15], 訓(xùn)練不同時(shí)間關(guān)系的參數(shù)矩陣, 如圖4所示. 單詞的特征向量與對(duì)應(yīng)的關(guān)系參數(shù)矩陣做矩陣乘法. GCN[16]層的輸出特征向量為
其中N(v)是與v有關(guān)系單詞的集合,L(u,v)表示從u到v的時(shí)間關(guān)系,WL(u,v)表示u到v時(shí)間關(guān)系的參數(shù)矩陣,hu表示來(lái)自上一層輸出的u的特征向量.

圖4 GCN層實(shí)現(xiàn)
GCN層輸出的特征向量進(jìn)入DENSE層被轉(zhuǎn)化為3維向量, 預(yù)測(cè)單詞的因果類(lèi)型, DENSE層使用SoftMax進(jìn)行分類(lèi), 使用交叉熵?fù)p失函數(shù)計(jì)算損失, 分類(lèi)器的分類(lèi)損失E定義為

(7)
其中n=2,xi表示真實(shí)標(biāo)簽one-hot形式的第i維值,P(xi)是輸出預(yù)測(cè)向量的第i維值.
所用數(shù)據(jù)來(lái)自于CausalTimeBank數(shù)據(jù)集、 StoryLine數(shù)據(jù)集和SemEval2020_task5原始數(shù)據(jù)集, 根據(jù)需求最終標(biāo)注1 200個(gè)句子, 并且大量句子中包含超過(guò)一對(duì)的因果關(guān)系. 根據(jù)需求的數(shù)據(jù)格式和SemEval2018_task5原始數(shù)據(jù)并不包含因果時(shí)間標(biāo)簽. 因此, 本文對(duì)數(shù)據(jù)重新進(jìn)行因果和時(shí)間關(guān)系標(biāo)注, 對(duì)原始數(shù)據(jù)進(jìn)行如下修改.
1) 未標(biāo)注的因果關(guān)系: 句子中存在多因多果, 原始數(shù)據(jù)集只包含一對(duì)因果, 本文標(biāo)注的數(shù)據(jù)集包含句子中所有因果;
2) 標(biāo)注長(zhǎng)度不一致: 原始數(shù)據(jù)中包含短語(yǔ)和詞組標(biāo)注為原因或結(jié)果的, 本文統(tǒng)一選取核心單詞進(jìn)行標(biāo)注;
3) 標(biāo)注連鎖因果: 一個(gè)單詞既是原因又是結(jié)果的, 本文將該單詞標(biāo)記為結(jié)果, 只標(biāo)注最基本的原因;
4) 抽取每個(gè)句子中所有的時(shí)間關(guān)系: 時(shí)間關(guān)系標(biāo)注根據(jù)TimeML時(shí)間事件標(biāo)注標(biāo)準(zhǔn), 去除僅表示日期的單詞和帶有“導(dǎo)致、 使得、 抑制” 3種語(yǔ)義的動(dòng)詞, 如“cause”,“make”,“prevent”不參與時(shí)間關(guān)系的標(biāo)注, 選擇其他包含時(shí)間關(guān)系屬性的單詞進(jìn)行時(shí)間標(biāo)注, 本文選取5種時(shí)間關(guān)系進(jìn)行標(biāo)注, 如圖5所示.

圖5 事件時(shí)間關(guān)系
本文使用序列標(biāo)注的方法抽取因果關(guān)系, 選取O,C,E作為標(biāo)簽標(biāo)注因果關(guān)系, O表示不具有因果關(guān)系, C表示原因, E表示結(jié)果. 標(biāo)注時(shí)間關(guān)系時(shí), 選取B,A,S,I,N,O表示時(shí)間關(guān)系. B表示在之前, A表示在之后, S表示同時(shí)發(fā)生, I表示時(shí)間上包含, N表示時(shí)間上被包含, O表示不具有時(shí)間關(guān)系. 單詞的時(shí)間關(guān)系如圖5所示, 時(shí)間關(guān)系含有傳遞性、 相對(duì)性, 例如當(dāng)事件A在B之前,B在C之前時(shí), 標(biāo)注A在C之前, 并且由于時(shí)間的相對(duì)性, 則B在A(yíng)之后. 根據(jù)單詞時(shí)間屬性生成時(shí)間關(guān)系矩陣.
優(yōu)化器使用Adam; 設(shè)置詞向量維度為300, 梯度裁剪值為5.0, 學(xué)習(xí)率為0.001, 迭代次數(shù)為150. 用Bi-LSTM層作為隱藏層, 得到300維的特征向量; GCN層卷積后的特征向量為100維.
傳統(tǒng)文本序列標(biāo)注方法有LSTM模型、 Bi-LSTM模型和CRF模型, 這些方法都能獲取序列的標(biāo)注. 本文選取多種模型進(jìn)行對(duì)比, 設(shè)置1 000條時(shí)間因果語(yǔ)句作為訓(xùn)練集, 200條時(shí)間因果語(yǔ)句作為測(cè)試集, 對(duì)比模型[17-19]包括LSTM模型、 Bi-LSTM模型、 Bi-LSTM+CRF模型、 帶有wordnet語(yǔ)義屬性的Bi-LSTM模型、 帶有句法依存關(guān)系的Bi-LSTM模型和char級(jí)別的詞嵌入的Bi-LSTM標(biāo)注模型.
測(cè)試模型對(duì)比實(shí)驗(yàn)結(jié)果列于表1, 為C,E,O三種標(biāo)簽的準(zhǔn)確率(P)、 召回率(R)和F1評(píng)分. 圖6為不同模型實(shí)驗(yàn)結(jié)果的柱形圖. 由圖6可見(jiàn), LSTM模型只能單向獲取長(zhǎng)跨度文本的特征, 因果標(biāo)簽的準(zhǔn)確率和召回率都很低, 效果較差; Bi-LSTM模型效果有一定提升, 添加CRF層各項(xiàng)指標(biāo)只有小幅度的提升, 加入wordnet語(yǔ)義和依存關(guān)系后模型的C和E各項(xiàng)指標(biāo)都有很大提升, 字符級(jí)的詞嵌入對(duì)原因標(biāo)簽的召回率以及結(jié)果標(biāo)簽的三項(xiàng)指標(biāo)都有較大提升; 對(duì)比其他模型, 基于時(shí)間關(guān)系的Bi-LSTM+GCN模型, 對(duì)C和E的準(zhǔn)確率、 召回率和F1評(píng)分分別達(dá)到0.925 9,0.862 1,0.895 9,0.928 6,0.886 4,0.907 0. 添加依存關(guān)系的模型效果并不理想, 可能是由于句子中存在多對(duì)因果關(guān)系的標(biāo)注, 使得因果標(biāo)注在句子中的句法結(jié)構(gòu)變得多樣, 而且因果關(guān)系中事件語(yǔ)義復(fù)雜, wordnet語(yǔ)義并不能很好地覆蓋所有語(yǔ)義類(lèi)型, 所以效果不理想. 時(shí)間關(guān)系能明確把握事件發(fā)生的順序, 對(duì)于句子文本中含有的因果關(guān)系具有提高因果事件標(biāo)注幾率的作用, 并且有助于判斷是原因還是結(jié)果.

表1 不同模型3種標(biāo)簽的準(zhǔn)確率(P)、 召回率(R)和F1評(píng)分實(shí)驗(yàn)結(jié)果

圖6 不同模型對(duì)比實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明, 本文模型對(duì)C的F1評(píng)分達(dá)0.895 9, 對(duì)E的F1評(píng)分達(dá)0.907 0, 表明時(shí)間關(guān)系對(duì)因果關(guān)系的標(biāo)注有明顯提升.
綜上所述, 因果關(guān)系作為一項(xiàng)重要的關(guān)系類(lèi)型, 是文本挖掘的重要組成部分, 利用序列標(biāo)注的方式可獲得因果關(guān)系的實(shí)體, 并且確認(rèn)因果方向. 利用時(shí)間關(guān)系與因果關(guān)系的聯(lián)系, 本文通過(guò)將時(shí)間關(guān)系轉(zhuǎn)化成特征矩陣的方式結(jié)合了Bi-LSTM+GCN網(wǎng)絡(luò)模型, 并通過(guò)實(shí)驗(yàn)?zāi)軠?zhǔn)確獲得因果關(guān)系標(biāo)注, 得出了時(shí)間關(guān)系有利于因果關(guān)系抽取的結(jié)論, 本文提出的基于時(shí)間關(guān)系的Bi-LSTM+GCN模型能有效獲取因果關(guān)系.