席建文
(西南民族大學(xué)電子信息學(xué)院,成都 610041)
因果事件抽取技術(shù)是信息抽取領(lǐng)域重要的研究方向。而金融領(lǐng)域中含有大量的因果事件,這些因果事件直接地反映了一個(gè)經(jīng)濟(jì)事件對另一個(gè)經(jīng)濟(jì)事件的影響程度,這對于領(lǐng)域決策和分析具有一定的指導(dǎo)作用,為知識(shí)問答、數(shù)據(jù)預(yù)測、因果推斷等應(yīng)用提供數(shù)據(jù)來源。但由于中文語言的復(fù)雜性、描述方式的多變性,真實(shí)文本中因果情況復(fù)雜難解,有大量的多因多果的情況,增加了抽取因果事件的難度。
為了解決金融領(lǐng)域因果抽取的難題,我們構(gòu)建了金融領(lǐng)域中的因果數(shù)據(jù)集,對因果事件中的組成結(jié)構(gòu)進(jìn)行定義,方便從因果句中抽取因果事件。同時(shí)研究了如何更準(zhǔn)確地抽取因果關(guān)系,并提出了基于BERT 改進(jìn)pipeline 結(jié)構(gòu)的因果事件抽取模型PUBERT。
本文相關(guān)的工作主要分為因果事件數(shù)據(jù)集的構(gòu)建和因果事件關(guān)系抽取研究。
針對因果事件標(biāo)注的數(shù)據(jù)集目前主要有兩種標(biāo)注方式,一是以詞級(jí)別的標(biāo)注,將事件標(biāo)注為詞語的形式,包括SemEval-2007 task 04[1]、SemEval-2010 task 8[2]、CaTeRS[3]和中文因果標(biāo)注數(shù)據(jù)集CEC[4]等,另一種是以長句或長文段的標(biāo)注方式,如Fincausal[5],將因果事件標(biāo)注為一個(gè)完整的句子或者段落。
事件因果關(guān)系抽取上的研究最早可追溯到20 世紀(jì)90 年代,早期研究圍繞基于規(guī)則的方法展開。Grishman 等[6]提出了PROTEUS 工具,使用語法和語義信息自動(dòng)抽取文本中的時(shí)序關(guān)系和因果關(guān)系。Kaplan等[7]將文本表示為命題的集合,每個(gè)命題包含一個(gè)謂詞(通常為動(dòng)詞)和多個(gè)論元,通過定義命題模板的方式抽取命題中的因果關(guān)系。Garcia[8]提出了COATIS 工具,該工具使用包含23 個(gè)因果性動(dòng)詞的語言學(xué)模板自動(dòng)地從法語文本中抽取因果關(guān)系。
2000 年后,因果關(guān)系抽取研究逐漸轉(zhuǎn)移到基于統(tǒng)計(jì)與機(jī)器學(xué)習(xí)的方法上來。Girju[9]提出了使用C4.5 決策樹判斷“NP1-Verb-NP2”元組是否構(gòu)成因果關(guān)系。Chang等[10]采用無監(jiān)督的方法從文本中學(xué)習(xí)短語指示因果關(guān)系的概率與詞對出現(xiàn)在因果關(guān)系中的概率,作為額外特征訓(xùn)練貝葉斯分類器,判斷因果關(guān)系是否成立。2007 年,SemEval-2007 task 04[1]中提出了常見語義關(guān)系分類任務(wù),其中包含因果關(guān)系。Girju等[11]使用SVM 在該任務(wù)上取得了當(dāng)時(shí)最佳的效果。Sil 等[12]提出了PREPOST 系統(tǒng),使用基于RBF 核的SVM 結(jié)合PMI 特征判斷因果關(guān)系是否成立。付劍鋒等[13]提出使用層疊條件隨機(jī)場的方法,在事件序列上同時(shí)標(biāo)注多個(gè)因果關(guān)系對。Silva 等[14]將CNN 應(yīng)用于因果關(guān)系抽取任務(wù)中。這一系列的研究將因果關(guān)系抽取建模為分類任務(wù),輸入是已經(jīng)抽取好的事件或?qū)嶓w及其上下文,判斷它們是否構(gòu)成因果關(guān)系,而并未關(guān)注原因、結(jié)果事件或?qū)嶓w本身的抽取工作。
隨著自然語言處理技術(shù)的發(fā)展,一些研究者開始嘗試使用序列標(biāo)注模型解決因果關(guān)系抽取問題。Dasgupta 等[15]提出將因果關(guān)系抽取建模為序列標(biāo)注任務(wù),在文本中直接標(biāo)注出原因提及與結(jié)果提及的短語。Li 等[16]提出使用帶有自注意力機(jī)制的雙向LSTM-CRF 模型,結(jié)合經(jīng)過領(lǐng)域遷移的詞向量應(yīng)用于因果抽取任務(wù)?;谛蛄袠?biāo)注模型的因果抽取方法是一種端到端的方法,可直接由文本得到因果事件和實(shí)體對,為因果關(guān)系抽取研究指明了新的方向。
本工作分為四個(gè)部分,第一部分介紹金融領(lǐng)域因果數(shù)據(jù)集的建設(shè)和數(shù)據(jù)統(tǒng)計(jì)情況;第二部分介紹實(shí)驗(yàn)方案,由事件抽取和因果關(guān)系抽取構(gòu)建的整體pipeline 結(jié)構(gòu);第三部分進(jìn)行對比實(shí)驗(yàn)設(shè)計(jì),并對結(jié)果進(jìn)行分析;第四部分為總結(jié)。
本節(jié)目的是構(gòu)建金融領(lǐng)域的因果事件數(shù)據(jù)集,包括數(shù)據(jù)來源的選擇、數(shù)據(jù)處理過程、標(biāo)注規(guī)范的定義,以及對數(shù)據(jù)集的樣本情況進(jìn)行統(tǒng)計(jì)分析。
為使得數(shù)據(jù)集盡量貼合真實(shí)情況,我們從多個(gè)信息來源中獲取數(shù)據(jù),包括騰訊新聞、搜狗新聞的金融新聞和CCKS(China Conference on Knowledge Graph and Semantic Computing)金融因果事件比賽數(shù)據(jù)。
本工作針對上述來源的文本進(jìn)行分句,收集因果觸發(fā)詞方式,構(gòu)造AC 自動(dòng)機(jī)進(jìn)行快速匹配,得到一批候選因果事件句子的數(shù)據(jù)。
例如:
“報(bào)告要點(diǎn)產(chǎn)品價(jià)格變動(dòng)分析:油價(jià)下跌,甘氨酸、醋酸續(xù)漲原油價(jià)格下跌,主要因?yàn)镺PE增產(chǎn)疊加美油產(chǎn)量持續(xù)增加”
“國際貿(mào)易保護(hù)愈演愈烈,貿(mào)易摩擦升級(jí),多國減少進(jìn)口貿(mào)易量,導(dǎo)致特鋼出口難度進(jìn)一步加大”
“近期棉花價(jià)格上漲,推動(dòng)二道絨價(jià)格上漲,并進(jìn)一步傳導(dǎo)至棉漿粕”
我們使用標(biāo)注工具label-studio,在經(jīng)過規(guī)則篩選的候選數(shù)據(jù)集合中進(jìn)行因果標(biāo)注。任務(wù)定義為:在給定句子中,標(biāo)注出事件片段、觸發(fā)詞,并標(biāo)注出兩兩成對的事件片段之間是否存在因果關(guān)系。關(guān)于標(biāo)注做出以下定義:
事件片段定義為:描述了事物發(fā)展、狀態(tài)、動(dòng)作的片段,形式可為詞語、短句、短語等,如“洪災(zāi)”“各國經(jīng)濟(jì)增長”“供需失衡”等。
因果關(guān)系定義為:在邏輯、語法結(jié)構(gòu)的表達(dá)上體現(xiàn)并能推理出來事件A 使得事件B 發(fā)生的情況,如“洪災(zāi)對CPI 的影響主要在食品項(xiàng),會(huì)導(dǎo)致糧食、蔬菜等價(jià)格階段性上漲”,其中事件“洪災(zāi)” 與事件“糧食、蔬菜等價(jià)格階段性上漲”有因果關(guān)系。
觸發(fā)詞定義為:在語句描述中為指示或說明了兩事件之間具有因果關(guān)系的詞或短語,如“導(dǎo)致”“因?yàn)椤薄坝绊憽薄皩?huì)”“由于”“隨著”等。
因果數(shù)據(jù)構(gòu)建難以快速發(fā)展的原因在于真實(shí)情況中文本的復(fù)雜性,而標(biāo)注中往往需要一定程度的語言邏輯判斷,同時(shí)難免會(huì)帶有個(gè)人的主觀性,所以我們需要對標(biāo)注因果事件的標(biāo)注邊界有一個(gè)統(tǒng)一的規(guī)范。給出以下三條標(biāo)注規(guī)范:
(1)觸發(fā)詞必存原則:一條有效的因果事件數(shù)據(jù)樣本中應(yīng)該至少包含一個(gè)觸發(fā)詞;
(2)語義完備性原則:為了使得事件具有完備的語義,片段必須體現(xiàn)實(shí)際的動(dòng)詞、名詞,指示代詞忽略掉;
(3)語言簡明性原則:對于事件,在不影響理解語義的情況下,選擇最短的片段作為邊界。
為了避免數(shù)據(jù)集的構(gòu)建出現(xiàn)漏標(biāo)錯(cuò)標(biāo)的情況,我們采用兩人交叉標(biāo)注,最后通過人工校驗(yàn)并整理,獲得金融領(lǐng)域共計(jì)4000 條帶有因果關(guān)系的數(shù)據(jù)集,對數(shù)據(jù)集做以下分析:
2.3.1 觸發(fā)詞統(tǒng)計(jì)
我們統(tǒng)計(jì)了所有觸發(fā)詞的頻次,列出具有代表性的頻次top10的觸發(fā)詞如下:
導(dǎo)致(1681)、影響(765)、由于(605)、預(yù)計(jì)(567)、使(394)、隨著(230)、有望(255)、推動(dòng)(244)、因?yàn)椋?18)、如果(66)。
2.3.2 因果事件長度統(tǒng)計(jì)
對數(shù)據(jù)集文本從樣本數(shù)量、文本平均長度、事件平均長度、觸發(fā)詞平均長度進(jìn)行了統(tǒng)計(jì),結(jié)果如表1所示。
表1 因果事件長度分布 單位:字
2.3.3 多因果事件分布統(tǒng)計(jì)
我們對單因果和多因果數(shù)據(jù)分布情況進(jìn)行統(tǒng)計(jì)說明,內(nèi)容如表2所示。
表2 因果事件分布 單位:條
其中單因果表示一條數(shù)據(jù)中只含有一對因果事件,如“市場乙二醇供應(yīng)量的增加導(dǎo)致中國乙二醇進(jìn)口量出現(xiàn)下降”。
多對因果表示一條數(shù)據(jù)中包含有多對獨(dú)立(非連鎖)因果事件,如“美國等西方國家指責(zé)伊朗進(jìn)行核活動(dòng)是為了發(fā)展核武器,但伊朗堅(jiān)稱其核活動(dòng)僅用于和平目的”。
多因多果表示一條數(shù)據(jù)中含有一因多果或多因一果事件,如:“美國頁巖氣供給的增加和美國、中國原油進(jìn)口量回落導(dǎo)致原油大幅下跌”(多因一果);“厄爾尼諾可能導(dǎo)致巴西、印度的蔗糖減產(chǎn),東南亞的橡膠及棕櫚油減產(chǎn),阿根廷大豆增產(chǎn)、印度、澳大利亞的小麥減產(chǎn)”(一因多果)。
連鎖因果表示一條數(shù)據(jù)中含有關(guān)系為:事件既為關(guān)系對中的果事件,同時(shí)也為另一個(gè)因果關(guān)系對中的因事件,如“隨著冬季國內(nèi)氣溫下降,建筑工地開工受到明顯影響,對建材需求進(jìn)一步萎縮,鋼材冬儲(chǔ)行情遲遲未能啟動(dòng),國內(nèi)鋼材貨價(jià)格出現(xiàn)下降,越來越多的鋼企提出下調(diào)焦炭價(jià)格要求”。
本工作針對因果事件關(guān)系的抽取主要采用pipeline 的結(jié)構(gòu),固而分為兩部分進(jìn)行構(gòu)建:事件抽取和關(guān)系抽取。
模型流程如圖1 所示:文本數(shù)據(jù)輸入-> 事件抽取模塊-> 關(guān)系抽取模塊->輸出抽取結(jié)果。針對給定的句子,先進(jìn)行事件抽取,得到事件實(shí)體,然后將得到的事件實(shí)體信息輸入到關(guān)系抽取模型中,最終得到正確的因果關(guān)系對。
圖1 整體抽取模型結(jié)構(gòu)
本研究的事件抽取模塊采取命名實(shí)體識(shí)別BIO 的方式,使用BERT+CRF 結(jié)構(gòu)有效地抽取事件和觸發(fā)詞。如圖2所示。
圖2 事件抽取模塊
為了更好地抽取出因果關(guān)系,同時(shí)充分利用事件抽取結(jié)果的語義信息,通過在輸入層融合實(shí)體信息(包括類型信息和邊界信息)來實(shí)現(xiàn)關(guān)系的預(yù)測。
首先在輸入層實(shí)體前后插入自定義字符“TM”“EM”,當(dāng)文本經(jīng)過BERT 模型后,我們得到每個(gè)字的上下文表示作為中間層的向量。然后,將事件A 的前后兩個(gè)字符“TM”“EM”向量相加求平均獲得新向量“E_A”,在事件B和觸發(fā)詞C 上進(jìn)行相同的操作得到新向量“E_B”和“E_C”,再將三個(gè)向量拼接,輸入到最后的liner層+softmax層后,即可得到最終的關(guān)系分類。
在訓(xùn)練過程中,我們會(huì)對除了正確組合以外的所有實(shí)體構(gòu)成負(fù)樣本進(jìn)行訓(xùn)練,來提高模型對正確關(guān)系組識(shí)別的準(zhǔn)確度。
如下圖3所示。
圖3 關(guān)系抽取模塊結(jié)構(gòu)
充分利用觸發(fā)詞的作用,將兩個(gè)事件中心位置最近的觸發(fā)詞作為一對,但觸發(fā)詞表示向量與事件表示向量之間的位置拼接受到實(shí)際位置的影響,我們認(rèn)為這里包含的語義信息將為進(jìn)一步的關(guān)系識(shí)別提供更好的抽取效果。
操作系統(tǒng)為Ubuntu16.04,使用Python 編程語言和Pytorch 深度學(xué)習(xí)框架,其中GPU 型號(hào)為GeForce GTX 2080Ti。
對模型進(jìn)行評估時(shí),采用以下指標(biāo):
其中:TP為預(yù)測中正確的關(guān)系個(gè)數(shù);TP+FP為預(yù)測的關(guān)系個(gè)數(shù);TP+FN為數(shù)據(jù)中真實(shí)的關(guān)系個(gè)數(shù)。評估pipeline 的結(jié)果時(shí),需要對整體結(jié)構(gòu)進(jìn)行評估,故而除了預(yù)測的關(guān)系類型要求正確,預(yù)測的實(shí)體類型也必須正確,才認(rèn)為預(yù)測的關(guān)系為正確。P、R、F1 公式不變,但按照更嚴(yán)格的標(biāo)準(zhǔn)進(jìn)行計(jì)算。
表3所示為實(shí)驗(yàn)結(jié)果。通過將PUBERT 和另外兩種模型進(jìn)行對比,可以看到PUBERT 有更好的表現(xiàn),在金融領(lǐng)域復(fù)雜因果事件環(huán)境中,基于就近規(guī)則的BERT+Rule 模型難以處理多因多果的情況,而引入觸發(fā)詞語義信息的PUBERT模型能夠更好地理解因果事件之間的關(guān)系,在抽取上有明顯提升。
表3 實(shí)驗(yàn)效果對比
PUBERT 以pipeline 結(jié)構(gòu)搭建了獨(dú)特的關(guān)系抽取模型,不僅充分利用了事件抽取所得到的信息,而且能夠很好地識(shí)別事件之間的因果關(guān)系,相比較于BERT+MTB 和BERT+Rule 方法,其在金融因果數(shù)據(jù)集上有更好的表現(xiàn)。當(dāng)然,受限于pipeline 結(jié)構(gòu)本身,其結(jié)果比較依賴于事件抽取的效果,容易造成誤差積累,這些不足是我們下一步研究需要解決的問題。