姜 博, 左萬利,2, 王 英,2
(1. 吉林大學(xué) 計算機科學(xué)與技術(shù)學(xué)院, 長春 130012; 2. 吉林大學(xué) 符號計算與知識工程教育部重點實驗室, 長春 130012)
自然語言處理(natural language processing, NLP)中的關(guān)系抽取是人工智能相關(guān)領(lǐng)域中的重要研究方向. 其中, 因果關(guān)系抽取作為自然語言和人工智能領(lǐng)域中的重要問題目前已得到廣泛關(guān)注. 因果關(guān)系, 即表示“原因”與“結(jié)果”之間的對應(yīng)關(guān)系. 實際應(yīng)用中存在大量的因果關(guān)系, 如新聞報道: 截至2020年9月18日16時01分, 全球〈e1〉新冠肺炎〈/e1〉確診超3 000萬例, 導(dǎo)致943 433人〈e2〉死亡〈/e2〉. 標(biāo)簽〈e1〉和標(biāo)簽〈e2〉間的實體存在因果關(guān)系.
傳統(tǒng)因果關(guān)系抽取方法通常基于模式匹配[1]、機器學(xué)習(xí)[2]等方法, 文獻(xiàn)[3]提出了一種新型樸素Bayes模型, 可從文本中提取顯式因果關(guān)系. 傳統(tǒng)模式下因果關(guān)系抽取方法的特征選擇繁瑣復(fù)雜、抽取模式較固定, 從文本中抽取的因果關(guān)系精確度較低. 近年, 人們開始使用深度學(xué)習(xí)的方法研究因果關(guān)系抽取, 一般從以下3個角度研究: 給定實體對判斷是否包含因果關(guān)系, 給定文本判斷是否包含因果關(guān)系分類和識別并標(biāo)記包含因果關(guān)系的文本. 文獻(xiàn)[4]通過卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)識別文本中的因果關(guān)系并進(jìn)行了分類; 文獻(xiàn)[5]通過融合對抗對學(xué)習(xí)對文本中的因果關(guān)系對進(jìn)行抽??; 文獻(xiàn)[6]通過雙向長短期記憶網(wǎng)絡(luò)(bidirectional long short-term memory, BiLSTM)標(biāo)記出文本中的原因、結(jié)果, BiLSTM模型能獲取跨度較大的數(shù)據(jù)特征, 標(biāo)注數(shù)據(jù)更準(zhǔn)確. 現(xiàn)有的序列標(biāo)注方法有隱Markov模型(hidden Markov model, HMM)[7]、條件隨機場 (conditional random field, CRF)[8]等. 文獻(xiàn)[9]將BiLSTM+CRF 模型應(yīng)用到序列標(biāo)注任務(wù)中, 目前已成為序列標(biāo)注任務(wù)中的主流模型; 谷歌基于自然語言的特點, 提出了一個基于注意力機制的Transformer網(wǎng)絡(luò)框架[10]; 文獻(xiàn)[11]使用深度學(xué)習(xí)網(wǎng)絡(luò)與self-ATT機制相結(jié)合的方式進(jìn)行序列標(biāo)注, 取得了比模型BiLSTM+CRF更好的實驗效果; 谷歌基于Transformer框架, 又推出了BERT[12](bidirectional encoder representations from transformers)模型, 將BERT應(yīng)用到下游任務(wù)中, 可得到表征能力更強的預(yù)訓(xùn)練字向量, 使得同一單詞在不同的文本中可具有不同的特征表示. 通過這種方式, 可在一定程度上彌補因果關(guān)系領(lǐng)域數(shù)據(jù)數(shù)量不足的缺陷, 使模型訓(xùn)練的更充分.
本文針對因果關(guān)系抽取領(lǐng)域缺少公開數(shù)據(jù)集, 并且沒有統(tǒng)一標(biāo)注規(guī)則的問題, 從SemEval系列數(shù)據(jù)集選取5 485條一因一果關(guān)系相關(guān)數(shù)據(jù)并制定規(guī)則重新標(biāo)注; 并將BERT應(yīng)用到因果關(guān)系抽取領(lǐng)域. 本文采用BERT+BiLSTM+CRF模型, 以序列標(biāo)注的方式進(jìn)行因果關(guān)系抽取, 挖掘事件之間引起和被引起的關(guān)系, BERT的加入在一定程度上解決了因果關(guān)系數(shù)據(jù)集樣本特征信息不足和語義特征表示不充分的問題.
BERT[12]即Transformers[10]的雙向編碼表示, 其模型特點是利用大規(guī)模、無標(biāo)注的語料訓(xùn)練, 獲得包含文本豐富語義信息的表示. 本文采用BERT作為本文模型的核心部分, 挖掘因果關(guān)系特征信息.
1.1.1 Embedding表示
圖1 BERT預(yù)訓(xùn)練語言模型Fig.1 BERT pre-trained language model
由于計算機只能處理由數(shù)字0,1組成的序列, 無法直接讀懂文字, 所以需將文字轉(zhuǎn)化成數(shù)字, 這種表達(dá)方式稱為詞向量. 傳統(tǒng)的詞向量word2vec[13-14],glove[15]模型不能解決一詞多義的現(xiàn)象, 一個詞語只有一種詞向量表示方式, 如“蘋果公司于今年推出了iphone12”和“煙臺蘋果今年產(chǎn)量大增”中的“蘋果”含義不同, 前者表示公司名稱, 后者表示水果, 但由于傳統(tǒng)詞向量只能表示其中一個意思, 因此使模型準(zhǔn)確率下降. BERT[12]模型解決了該問題, 其通過使用三層Embedding表示使得一個詞語可用多個向量形式表示.
BERT結(jié)構(gòu)如圖1所示, 其中E1,E2,……,EN為模型的輸入部分, 通常為單詞. 輸入部分傳入到雙向全連接Transformer層生成詞向量. BERT的Embedding由Token Embedding,Segment Embedding,Position Embedding三部分構(gòu)成: Token Embeddings表示詞向量; Segment Embeddings對句子進(jìn)行編碼, 用于刻畫文本的全局語義信息; Position Embeddings 對位置信息進(jìn)行編碼, 記錄單詞順序這一重要特征, 實現(xiàn)對不同位置的同一個字或詞的區(qū)分. 3個向量相加為每個Token的最終向量, 如圖2所示.
圖2 BERT的Embedding表示Fig.2 Embedding representation of BERT
1.1.2 Transformer Encoder
圖3 Transformer結(jié)構(gòu)Fig.3 Structure of Transformer
Transformer是組成BERT的核心模塊, 每個Transformer單元主要由Self-attention組成, 其結(jié)構(gòu)如圖3所示. Transformer使用Self-attention代替了傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN), 將輸入句子中的每個詞和整個句子的全部詞語做Attention, 獲得詞語間的相互關(guān)系, 記錄不同詞語間的關(guān)聯(lián)程度, Attention計算方法為
(1)
其中Q表示索引,K表示鍵,V表示值.
輸入句子經(jīng)過Self-attention計算后, Transformer增加后續(xù)3次操作, 使得任意兩個單詞距離為1. 1) 殘差連接: 將模型輸入輸出相加, 其結(jié)果作為最后輸出; 2) 歸一化: 將指定層神經(jīng)網(wǎng)絡(luò)節(jié)點進(jìn)行均值為[0,1]的標(biāo)準(zhǔn)化方差; 3) 線性轉(zhuǎn)換: 將每個字的增強語義向量進(jìn)行兩次線性變換, 用于增強整個模型的表達(dá)能力. 其中, 變換后的向量和原向量長度相同, 從而解決了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的長期依賴問題.
圖4 LSTM結(jié)構(gòu)Fig.4 Structure of LSTM
在序列標(biāo)注和命名實體識別任務(wù)中, 通常使用循環(huán)神經(jīng)網(wǎng)絡(luò)解決標(biāo)注問題. 但由于神經(jīng)元之間參數(shù)共享, 因此當(dāng)序列較長時會出現(xiàn)梯度消失等情況. 而長短期記憶網(wǎng)絡(luò)(long short-time memory, LSTM)通過引入門結(jié)構(gòu)和記憶單元, 將RNN中反向傳播過程中連乘的求導(dǎo)形式轉(zhuǎn)換為求和, 最終可以捕捉到長距離的依賴信息, 并避免了梯度彌散等情況. 其整體結(jié)構(gòu)如圖4所示.
1) 在遺忘門的幫助下決定細(xì)胞狀態(tài)丟棄信息, 用公式表示為
ft=σ(Wf·[ht-1,xt]+bf);
(2)
2) 更新細(xì)胞狀態(tài)為
3) 確定輸出內(nèi)容, 輸出為
Ot=σ(Wo·[ht-1,xt]+bo),
(6)
其中:σ表示Sigmoid函數(shù), 輸出[0,1]內(nèi)的數(shù)值; ×符號表示數(shù)據(jù)間的點乘;ht-1表示上一時刻的輸出;xt表示當(dāng)前時刻的輸出;Ct-1表示上一時刻的細(xì)胞狀態(tài).
條件隨機場[8](conditional random field, CRF)是在給定一組隨機輸入變量s的條件下, 輸出一組隨機變量l的條件概率分部模型. CRF通過記錄相鄰單詞的約束關(guān)系, 對輸入數(shù)據(jù)進(jìn)行預(yù)測, 用公式表示為
(7)
(8)
通過上述過程可建立一個條件隨機場. 首先, 通過預(yù)先定義特征函數(shù)集, 每個函數(shù)的參數(shù)是整個句子s、當(dāng)前位置i、i對應(yīng)的標(biāo)簽以及i-1對應(yīng)的標(biāo)簽; 其次, 為每個函數(shù)對應(yīng)一個權(quán)重λi; 最后, 對于每個標(biāo)注序列l(wèi), 先將全部特征函數(shù)進(jìn)行加權(quán)求和, 再將其轉(zhuǎn)化為概率值, 概率值最高的標(biāo)簽確定為預(yù)測結(jié)果. 經(jīng)過上述計算, 即完成了對數(shù)據(jù)標(biāo)注因果標(biāo)簽的預(yù)測.
圖5 BERT+BiLSTM+CRF的因果關(guān)系抽取模型Fig.5 Causality extraction model of BERT+BiLSTM+CRF
本文提出的BERT+BiLSTM+CRF的因果關(guān)系抽取模型結(jié)構(gòu)如圖5所示. 由圖5可見, 模型主要由BERT預(yù)訓(xùn)練層、BiLSTM神經(jīng)網(wǎng)絡(luò)層、CRF分類層三部分構(gòu)成. 首先, 將BERT置于模型最底層, 輸入包含因果關(guān)系的句子, 轉(zhuǎn)換成單詞序列, 通過BERT將單詞轉(zhuǎn)換成動態(tài)詞向量, 達(dá)到一詞多義的效果, 提升詞向量的表示能力; 其次, 通過BiLSTM層記錄文本序列上的依賴關(guān)系; 最后, 傳遞到CRF層完成對文本中因果關(guān)系的抽取, 為句子中的每個單詞預(yù)測因果標(biāo)簽.
本文實驗數(shù)據(jù)集為SemEval 2007 Task4,SemEval 2010 Task8和SemEval 2020 Task5, 共選取了SemEval 2007和SemEval 2010中的1 368個句子, SemEval 2020中的2 485個句子, 維基百科中1 632 個句子進(jìn)行人工標(biāo)注, 最終得到5 485個一因一果的句子. 本文以5∶1∶1的比例將數(shù)據(jù)分為訓(xùn)練集、驗證集和測試集.
1) 將原因標(biāo)注為C, 結(jié)果標(biāo)注為E, 非因果詞和標(biāo)點符號標(biāo)記為O;
2) 對于由多個單詞聯(lián)合構(gòu)成的原因或結(jié)果, 只選擇一個因果核心詞進(jìn)行標(biāo)注.
以句子COVID-19 causes so many people deaths為例, 其對應(yīng)的標(biāo)注標(biāo)簽如表1所示.
表1 標(biāo)注示例
實驗優(yōu)化器選為Adam; 學(xué)習(xí)率為2×10-5; 迭代次數(shù)為100; 詞向量維度為768維.
本文用粗粒度抽取3種標(biāo)簽“原因”(C)、“結(jié)果”(E)、“其他”(O)的精確率P、召回率R和F1值評定模型性能. 以標(biāo)簽為單位, 實驗判斷單詞屬于“原因”(C)、“結(jié)果”(E)還是“其他”(O). 本文重點關(guān)注標(biāo)簽“C”(原因)和“E”(結(jié)果)的3種指標(biāo)得分.
為驗證本文BERT+BiLSTM+CRF模型抽取因果關(guān)系的性能, 選擇8個模型做對比實驗, 其中包括4個基準(zhǔn)模型: CRF,LSTM,LSTM+CRF,BiLSTM和4個主流模型: BiLSTM+CRF,BiLSTM+self-ATT,BiLSTM+CRF+self-ATT,L-BL. 將每個模型的標(biāo)簽修改為C,E,O, 與本文提出的模型標(biāo)注方式保持一致. 采用粗粒度下的P,R,F1值對模型識別3種標(biāo)簽的效果進(jìn)行評估.
粗粒度抽取“C”,“E”,“O”標(biāo)簽的P,R,F1值列于表2.
表2 不同模型3種標(biāo)簽的準(zhǔn)確率(P)、召回率(R)和F1值評分實驗結(jié)果(%)
由于本文重點關(guān)注了文本中因果關(guān)系的研究, 故分析指標(biāo)時, 重點關(guān)注C(原因)和E(結(jié)果)的各項粗粒度指標(biāo), 分析本文提出的模型對使用本文定義標(biāo)注句子中的C(原因)和E(結(jié)果)性能的影響. 由表2可見: 本文提出的模型BERT+BiLSTM+CRF在自建的因果關(guān)系領(lǐng)域數(shù)據(jù)集(Semeval-CE)上有較好的識別效果, C(原因)的粗粒度P值達(dá)89.77%,R值達(dá)89.35%,F1值達(dá)89.55%; E(結(jié)果)的粗粒度P值達(dá)92.23%,R值達(dá)89.06%,F1值達(dá)到90.61%; 在Semeval-CE數(shù)據(jù)集上, 對比實驗?zāi)P椭? BiLSTM+CRF+self-ATT-3模型粗粒度下C,E,O的指標(biāo)分別取得了最高的分?jǐn)?shù). 本文在BiLSTM+CRF模型的底層加入BERT預(yù)訓(xùn)練模型, 3項評價指標(biāo)均較主流模型(BiLSTM+CRF+self-ATT-3)有不同程度的提高, 取得了更優(yōu)的評分, 實驗結(jié)果提高0.054 1, 并且實驗結(jié)果遠(yuǎn)好于其他對比模型. 表明BERT的加入使模型有更強的表征詞語能力, 更好地學(xué)習(xí)到了文本中的因果關(guān)系特征信息, 證明BERT的加入為標(biāo)注文本中包含因果關(guān)系的實體提供了幫助, 從而有效地提高了對文本中原因和結(jié)果的標(biāo)注性能.
綜上所述, 本文針對現(xiàn)有的大規(guī)模公開數(shù)據(jù)集普遍用于研究所有類型的實體關(guān)系, 因果關(guān)系標(biāo)注數(shù)量較少且不易識別, 不能很好地研究實體間的因果關(guān)系的問題, 以SemEval數(shù)據(jù)集為基礎(chǔ), 自建了一個較大規(guī)模的因果關(guān)系數(shù)據(jù)集SemEval-CE并重新標(biāo)注. 基于BERT可以使同一單詞在不同文本中表現(xiàn)為動態(tài)變化詞向量的特點, 本文提出了BERT+BiLSTM+CRF的因果序列標(biāo)注方法, 并在SemEval-CE數(shù)據(jù)集上進(jìn)行實驗. 實驗結(jié)果表明, BERT的加入使該模型充分學(xué)習(xí)了因果的特征信息, 使得粗粒度P,R,F1值3項評價指標(biāo)均有了不同程度的提高, 實驗結(jié)果優(yōu)于主流模型, 從而可以有效抽取文本中的因果關(guān)系.