基于預(yù)訓(xùn)練模型的金融事件分析及應(yīng)用

一、金融事件分析的主要任務(wù)

金融事件分析的主要任務(wù)可以分為三塊:
① 第一塊為非結(jié)構(gòu)化數(shù)據(jù)智能解析。金融領(lǐng)域的信息與互聯(lián)網(wǎng)信息相比有著其獨(dú)特之處。金融領(lǐng)域的信息經(jīng)常是以非結(jié)構(gòu)化的形式存在,并且有一些比較特殊的文件格式,比如 PDF,這對(duì)于從文件或數(shù)據(jù)中抽取干凈準(zhǔn)確的數(shù)據(jù)提出了比較大的挑戰(zhàn)。PDF 格式是一種排版打印的格式,并不像其他文件類型那樣段落分明。PDF 更多是為了服務(wù)排版,所以文件里只存在一些位置信息。要從非結(jié)構(gòu)化數(shù)據(jù)中解析出準(zhǔn)確的格式語義清晰的文本是比較有挑戰(zhàn)的。而且當(dāng)文檔中格式語義不清楚時(shí),對(duì)事件分析就會(huì)帶來噪音,而這些臟數(shù)據(jù)會(huì)對(duì)模型的訓(xùn)練和推理造成很多干擾。所以為了提高模型準(zhǔn)確度,應(yīng)該先做好非結(jié)構(gòu)化數(shù)據(jù)的解析。
② 第二塊是事件語義的理解,這是技術(shù)上比較重要的一部分。這里主要涉及到事件的檢測(cè),事件要素的抽取和事件關(guān)系的抽取。
③ 在對(duì)事件的理解的基礎(chǔ)之上,就引入了任務(wù)中比較重要的第三塊模塊,事件的圖譜分析,它包括事件鏈的分析和事件預(yù)測(cè)。
為了完成上述任務(wù),引入兩個(gè)比較重要的體系。首先是金融事件體系,一個(gè)金融事件體系包含了金融領(lǐng)域的相關(guān)主體,這些主體也有不太一樣的應(yīng)用場(chǎng)景。為了更好地支持這些主體和場(chǎng)景,需要建立相應(yīng)的事件體系,這里面涉及到很多領(lǐng)域知識(shí),需要領(lǐng)域?qū)<姨峁┫鄳?yīng)的知識(shí)作為輸入。從而幫助我們把這個(gè)體系構(gòu)建的更完善更科學(xué),能夠覆蓋相應(yīng)場(chǎng)景。當(dāng)然除了專家知識(shí)外,也會(huì)需要技術(shù)進(jìn)行歸納學(xué)習(xí),這樣也能夠提供完整的場(chǎng)景化的可擴(kuò)展的事件體系。
因?yàn)橐雽<抑R(shí)主要是針對(duì)場(chǎng)景中比較重要的事件。對(duì)于一些中長(zhǎng)尾的事件,主要還是基于學(xué)習(xí)的一些技術(shù)來解決。有了金融事件圖譜,我們把事件提取技術(shù)結(jié)合在一起,經(jīng)過事件抽取,事件關(guān)系的分類,學(xué)習(xí)事件的表示后,就可以構(gòu)造圖來進(jìn)行分析和預(yù)測(cè)。
通過明確任務(wù)和技術(shù)的加持,我們就可以對(duì)新聞或文檔進(jìn)行處理并歸納回答很多問題。比如,哪個(gè)公司發(fā)生了什么類型的事件,事件中涉及了哪些要素,例如通用要素時(shí)間、地點(diǎn)、人物,或者與事件類型相關(guān)的要素,比如,事件“公司股票發(fā)行”,就包含要素發(fā)行價(jià)格、發(fā)行量等等。除此之外我們還可以關(guān)注這些信息,比如民眾對(duì)這個(gè)事件的評(píng)價(jià)(情感分析)。以及發(fā)生了某類事件后,對(duì)企業(yè)未來會(huì)發(fā)生什么的預(yù)測(cè)。如果可以回答上述問題,那么對(duì)很多場(chǎng)景都是很有價(jià)值的。
下面我們來看一個(gè)具體例子。

上圖將金融事件體系分為兩級(jí),第一級(jí)有五類,主要按照具體對(duì)象作區(qū)分,比如企業(yè)類事件,股票類事件,行業(yè)和宏觀類事件,債權(quán)類事件和基金類事件。針對(duì)不同的事件對(duì)象定義了不同的事件類型。這些都是金融領(lǐng)域中最常見的對(duì)象。第二級(jí)里我們是將每種對(duì)象進(jìn)一步細(xì)分。比如一個(gè)企業(yè)里面常見的事件類型,比如股東減持等(可參考上圖)。以股東減持這類事件為例,它所包含的事件元素有減持的時(shí)間,減持的股東,減持時(shí)的交易價(jià)格等信息。定義一個(gè)完整,對(duì)場(chǎng)景有針對(duì)性的事件體系是事件分析能達(dá)成目標(biāo)的重要前提,事件體系定義的細(xì)致程度將決定最終事件分析能達(dá)到的事件信息細(xì)粒度的程度。
下面介紹事件圖譜。

事件圖譜屬于圖,包含節(jié)點(diǎn)和邊。在事件圖譜中,事件節(jié)點(diǎn)可以是事件,也可以是事件中的實(shí)體,比如公司。邊就是事件和事件的關(guān)系,也可以是事件和實(shí)體間的關(guān)系或?qū)嶓w和實(shí)體之間的關(guān)系。
我們來看一個(gè)例子。上圖是一篇介紹亞馬遜公司收購 iRobot 公司的新聞。這篇新聞報(bào)道中一共描述了四個(gè)事件,其中兩個(gè)是收購事件,分別發(fā)生在不同的時(shí)間。另兩個(gè)分別為創(chuàng)立公司的事件和合作的事件。這些事件是由其發(fā)生的時(shí)間順序連接起來的。除了事件,這篇新聞也包含其他實(shí)體和時(shí)間,這些實(shí)體和時(shí)間之間也由相應(yīng)的關(guān)系相連。
這樣看來一個(gè)非結(jié)構(gòu)化的網(wǎng)頁信息,通過解析出文檔中的文本和段落、對(duì)段落進(jìn)行語義分析,抽取事件實(shí)體和關(guān)系,我們就可以構(gòu)造事件圖譜。也就是將非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化成結(jié)構(gòu)化的信息。有了結(jié)構(gòu)化的信息,就更容易進(jìn)行對(duì)信息的理解和處理。這樣的信息可以應(yīng)用于搜索、問答等信息獲取場(chǎng)景,或者是金融領(lǐng)域的風(fēng)險(xiǎn)監(jiān)控、量化投資等業(yè)務(wù)場(chǎng)景中。

事件鏈?zhǔn)且环N特殊的事件圖譜,是事件圖譜的簡(jiǎn)化模式。它主要關(guān)注的是一個(gè)參與者發(fā)生的一系列事件和事件之間的關(guān)系。從上圖可以看出左側(cè)的事件圖譜可以簡(jiǎn)化成右邊的兩個(gè)事件鏈。事件鏈中只包含簡(jiǎn)化節(jié)點(diǎn),其他元素都可看作事件鏈的屬性信息。這種簡(jiǎn)化對(duì)事件圖譜的落地應(yīng)用是有幫助的。事件圖譜的關(guān)系和節(jié)點(diǎn)簡(jiǎn)化后,模型對(duì)圖譜的學(xué)習(xí)和處理都只針對(duì)一種節(jié)點(diǎn),和事件間的一種關(guān)系,降低了這種問題的復(fù)雜度。雖然有所簡(jiǎn)化,但事件中的主要信息還是會(huì)保留下來,比如事件類型,事件主體等信息。
下面來看一個(gè)事件鏈?zhǔn)侨绾芜M(jìn)行預(yù)測(cè)。

上圖是一個(gè)事件鏈的預(yù)測(cè)模型。它主要由三部分組成,第一部分是事件表示,這里有當(dāng)前事件,歷史事件和最終我們想預(yù)測(cè)的文本中的事件。歷史事件和要預(yù)測(cè)的事件,它們表示的觸發(fā)詞和事件元素拼接起來之后可以更好的捕捉歷史信息。將事件的上下文表示和歷史表示結(jié)合起來就進(jìn)入到第二部分,事件的序列表示,這里用到了一個(gè) LSTM 的網(wǎng)絡(luò)結(jié)構(gòu),它可以捕捉事件和事件之間的時(shí)序關(guān)系,將事件先后順序信息融入到事件表示中來。最后包含時(shí)間順序關(guān)系的事件表示會(huì)被輸入給動(dòng)態(tài)網(wǎng)絡(luò)中,這個(gè)網(wǎng)路可以用來對(duì)候選事件和給定的新聞中的事件進(jìn)行預(yù)測(cè)。比如候選事件類型有幾十種,那么我們就根據(jù)當(dāng)前新聞中已經(jīng)見到的事件類型來預(yù)測(cè)哪一個(gè)事件可能是這個(gè)主體未來會(huì)發(fā)生的比較大的事件類型。結(jié)果是給出事件類型的分布。
這里需要強(qiáng)調(diào)的一點(diǎn)是,這個(gè)模型的預(yù)測(cè)結(jié)果并不是預(yù)測(cè)這個(gè)公司未來一定會(huì)發(fā)生的事件,而是給出這樣一些輔助信息來為分析、預(yù)測(cè)、研判提供依據(jù)。
上面所講到的事件鏈和事件預(yù)測(cè),是對(duì)還沒發(fā)生的情況進(jìn)行預(yù)測(cè)和判斷。事件預(yù)測(cè)其實(shí)也能夠?qū)σ呀?jīng)發(fā)生的事件提供一些有用的幫助。
下面我們看另一個(gè)例子。這個(gè)例子是根據(jù)已經(jīng)發(fā)生的事件提供一些有用的幫助。

這種基于事件庫的事件問答,可以支持自然語言對(duì)事件的搜索。我們首先在語料庫進(jìn)行抽取,建立結(jié)構(gòu)化事件庫,每種類型事件會(huì)建立一個(gè)表,表中的各個(gè)字段表示不同的事件元素,結(jié)合 NL2SQL 的技術(shù)可以把查詢語句轉(zhuǎn)化成數(shù)據(jù)庫的查詢語句。這樣我們就可以在剛剛建立好的表格中查找到準(zhǔn)確的事件類型。這和我們目前市面上通用的搜索引擎來搜索事件的體驗(yàn)是不一樣的。搜索引擎返回的結(jié)果是這個(gè)事件類型的很多種新聞,即使找到相關(guān)新聞,看到的結(jié)果也是一篇完整報(bào)道而不是具體事件的具體信息。通過基于事件庫的事件問答,我們可以更精準(zhǔn)的針對(duì)事件進(jìn)行問答搜索。

通過上圖的例子可以看到事件分析在具體場(chǎng)景下可以如何進(jìn)行分析。企業(yè)的股價(jià)波動(dòng)是市場(chǎng)關(guān)注的重點(diǎn)。基于事件的股價(jià)波動(dòng)也是事件分析中 NLP 和金融領(lǐng)域結(jié)合的一個(gè)場(chǎng)景,它可以實(shí)現(xiàn)市場(chǎng)信息和股價(jià)波動(dòng)變模。上圖是模型中給出兩個(gè)特征,一類是表征具體企業(yè)的,另一類是表征企業(yè)與企業(yè)之間關(guān)系。我們引入事件分析可以抽取事件類型以及參與事件的不同公司。抽取出的事件類型和公司可以提供的兩類信息,一個(gè)是事件的表示,它可以成為一個(gè)特征,與企業(yè)特征融合。企業(yè)與事件的關(guān)系可以構(gòu)造企業(yè)間的關(guān)聯(lián)關(guān)系模塊。再加入既有的特征,比如針對(duì)企業(yè)的技術(shù)指標(biāo)或企業(yè)關(guān)系圖譜。將兩者結(jié)合我們可以構(gòu)造出具有企業(yè)信息和關(guān)系信息的圖譜。根據(jù)這個(gè)圖譜我們運(yùn)用 Graph Attention Network 捕捉企業(yè)之間的關(guān)系對(duì)企業(yè)股價(jià)波動(dòng)表現(xiàn)的影響。將股價(jià)波動(dòng)作為模型學(xué)習(xí)的目標(biāo)來訓(xùn)練模型,我們得到的模型網(wǎng)絡(luò)結(jié)構(gòu)可以達(dá)到對(duì)公司從新聞產(chǎn)業(yè)類圖譜、企業(yè)關(guān)系圖譜這樣的特征得到企業(yè)未來特征的一個(gè)判斷,同時(shí)通過 Attention 模型的分析,也可以知道波動(dòng)主要來自于哪些模塊,是事件類型的模塊還是事件關(guān)系的模塊。并且企業(yè)之間關(guān)系的建模也可以分析這種影響在相關(guān)企業(yè)之間是如何進(jìn)行傳播的。這在金融領(lǐng)域中也可以叫做動(dòng)量溢出的效用。
綜合前面我們介紹的各種事件分析的技術(shù)和場(chǎng)景。我們總結(jié)出了完整的事件分析框架。(如下圖)

它提供了幾大能力:
① 首先,它可以搜索某個(gè)事件或某主體的各類事件。
② 其次,它可以提供通過產(chǎn)業(yè)鏈搜索某公司同行業(yè)的相關(guān)各類事件,可以是產(chǎn)業(yè)鏈或公司鏈。
③ 這個(gè)框架還可以根據(jù)某公司的搜索結(jié)果預(yù)測(cè)未來可能發(fā)生的事件。
這個(gè)框架的優(yōu)勢(shì)是,它基于預(yù)訓(xùn)練模型,有遷移學(xué)習(xí)的能力,可以支持 zero-shot/few-shot 訓(xùn)練,冷啟動(dòng)快。并且這種體系化的方法能力比較全面,能支持豐富的場(chǎng)景。
不是所有的場(chǎng)景都需要框架中的所有模塊,可以根據(jù)需求將模塊拆分出來單獨(dú)使用。
二、金融事件分析技術(shù)
金融事件分析技術(shù)中比較重要的兩塊內(nèi)容分別為事件檢測(cè)和事件抽取。

事件檢測(cè)任務(wù)的目標(biāo)是從文本中抽取出事件并進(jìn)行分類。通常是抽取觸發(fā)詞進(jìn)行事件檢測(cè),但也有些辦法是無觸發(fā)詞抽取的事件檢測(cè)。這類問題的挑戰(zhàn)是觸發(fā)詞的標(biāo)注,或者發(fā)生語義遷移、事件拆分、事件定義變化等問題時(shí)需要我們重新標(biāo)注數(shù)據(jù)。這類問題在實(shí)際場(chǎng)景中經(jīng)常會(huì)出現(xiàn)。我們雖然有一套自己的事件檢測(cè)方案,但是應(yīng)用到不同領(lǐng)域或面對(duì)不同客戶需求時(shí),它們的事件體系都有很大差別,如何結(jié)合已有的模型和數(shù)據(jù)更好的去支持事件體系的變化是我們目前面對(duì)的最大挑戰(zhàn)。目前采用的方法是基于提示詞和預(yù)訓(xùn)練模型的事件檢測(cè)。根據(jù)事件類型的 Prompt 我們可以更好的去做數(shù)據(jù)遷移或 few-shot 場(chǎng)景的模型訓(xùn)練。

上圖展示了基于觸發(fā)詞的模型和方法。根據(jù)事件類型的 Prompt,模型的輸入可以進(jìn)行 token 級(jí)別的標(biāo)注,這樣可以抽取相應(yīng)事件的觸發(fā)詞。如果根據(jù)當(dāng)前的 Prompt 進(jìn)行觸發(fā)詞變換的話,對(duì)應(yīng)的事件類型和觸發(fā)詞可以進(jìn)行相應(yīng)的變化。通過在公開數(shù)據(jù)集上的數(shù)據(jù)對(duì)比,可以看出在全量數(shù)據(jù)中,我們的模型的表現(xiàn)比以往方法有比較大的提升,即使在 few-shot 情況下,我們的模型表現(xiàn)也要優(yōu)于其他模型。

事件抽取任務(wù)是事件檢測(cè)任務(wù)功能的擴(kuò)展。它不僅識(shí)別出事件類型和觸發(fā)詞,還可以提取出事件中的相應(yīng)元素。這對(duì)事件分析要求信息比較完整的場(chǎng)景有著較大的作用。上圖中的例子,可以抽取出更細(xì)粒度的信息。事件抽取的挑戰(zhàn)包括定義完整的事件體系中,事件元素會(huì)比較多,數(shù)據(jù)的標(biāo)注需要領(lǐng)域?qū)<襾硗瓿桑杀颈容^高,難以擴(kuò)展到很多的事件類型。我們目前的解決方案是利用預(yù)訓(xùn)練模型和 Prompt,基于生成式的方法在標(biāo)注數(shù)據(jù)更少的場(chǎng)景下也能有不錯(cuò)的模型性能,具有更高的數(shù)據(jù)利用率和靈活性,更容易擴(kuò)展到新的事件類型。

事件抽取任務(wù)是事件檢測(cè)任務(wù)功能的擴(kuò)展。它不僅識(shí)別出事件類型和觸發(fā)詞,還可以提取出事件中的相應(yīng)元素。這對(duì)事件分析要求信息比較完整的場(chǎng)景有著較大的作用。上圖中的例子,可以抽取出更細(xì)粒度的信息。事件抽取的挑戰(zhàn)包括定義完整的事件體系中,事件元素會(huì)比較多,數(shù)據(jù)的標(biāo)注需要領(lǐng)域?qū)<襾硗瓿桑杀颈容^高,難以擴(kuò)展到很多的事件類型。我們目前的解決方案是利用預(yù)訓(xùn)練模型和 Prompt,基于生成式的方法在標(biāo)注數(shù)據(jù)更少的場(chǎng)景下也能有不錯(cuò)的模型性能,具有更高的數(shù)據(jù)利用率和靈活性,更容易擴(kuò)展到新的事件類型。

上圖中是一個(gè)基于模板的生成式事件抽取方法。這個(gè)抽取方法定義了幾個(gè)重要的概念。首先在抽取前我們要預(yù)先定義模板,有了模板后,可以在訓(xùn)練時(shí)提供給模型,在定義新事件時(shí)有些元素與之前事件有關(guān)聯(lián),這些信息也可以預(yù)先提供給模型。通過這種方法,模型可以在少量數(shù)據(jù)下學(xué)習(xí)新的事件類型。

雖然上面方法可以在一定程度上解決事件抽取問題,但是也還有很多改進(jìn)的空間。比如目前方法觸發(fā)詞和事件元素的聯(lián)系較弱;推理時(shí)需要輪詢所有事件類型,計(jì)算量大推理時(shí)間長(zhǎng);事件檢測(cè)和事件要素抽取模塊采用 Pipeline 組織,存在錯(cuò)誤傳播。


我們根據(jù)上面提出的問題,改進(jìn)了模型,提出了另一個(gè)基于觸發(fā)詞檢測(cè)增強(qiáng)的生成式事件抽取方法 TDE-GTEE。
(Ge Shi, Yunyue Su, Yongliang Ma and Ming Zhou (2023). A Hybrid Detection and Generation Framework with Separate Encoders for Event Extraction. In Proceedings of the 17th Conference of the European Chapter of the Association for Computational Linguistics: Main Volume. Association for Computational Linguistics.)
在這個(gè)方法中,事件檢測(cè)模塊提供了事件觸發(fā)詞的信息。在輸入中我們會(huì)標(biāo)注觸發(fā)詞,并且根據(jù)事件類型信息選擇相應(yīng)的模板。這種輸入和事件模板后面組合在一起后,就可以構(gòu)成事件檢測(cè)模塊的表示。這種表示會(huì)給入話題模型,最終得到填充后的模板。這個(gè)模型和上一個(gè)模型的不同是這個(gè)模型多了一個(gè)觸發(fā)詞的表示,同時(shí)也會(huì)將上下文信息結(jié)合起來。這樣解決剛才說的第一種問題,觸發(fā)詞和觸發(fā)詞抽取元素之間的聯(lián)系不多的問題。這個(gè)模型就可以構(gòu)造兩者之間的顯示關(guān)系。同時(shí)通過觸發(fā)詞輸入,我們可以得知觸發(fā)詞的相關(guān)事件類型。這樣我們可以將不相關(guān)的事件類型過濾掉。事件檢測(cè)模塊只會(huì)針對(duì)相關(guān)的事件類型進(jìn)行事件抽取。最后事件檢測(cè)模塊和事件抽取模塊可以構(gòu)成一個(gè)端到端的聯(lián)合訓(xùn)練。這種模型就可以解決前文提到的另外兩個(gè)問題。
TDE-GTEE 模型在公開數(shù)據(jù)集 ACE 和 ERE 上都達(dá)到了 SOTA 水平。在實(shí)驗(yàn)中我們用了全量數(shù)據(jù)。為了驗(yàn)證此模型在少量樣本下的表現(xiàn),我們也通過對(duì)事件檢測(cè)模塊做了一些調(diào)整比如使用基于 Prompt 的方式替換原先的多分類方式。在 zero-shot/few-shot 上模型也可以達(dá)到很好的效果。我們相信這個(gè)模型可以在實(shí)際場(chǎng)景上得到廣泛的應(yīng)用。

三、總結(jié)和展望

事件分析技術(shù)在金融領(lǐng)域應(yīng)用廣泛,場(chǎng)景也很多。一個(gè)完善涵蓋事件分析體系框架將為金融領(lǐng)域的信息理解提供強(qiáng)有力的技術(shù)支持。
瀾舟科技在金融事件分析領(lǐng)域中提出的 TDE-GTEE 等方法可以達(dá)到 SOTA 水平,在少樣本和零樣本場(chǎng)景下也有很好的表現(xiàn)。我們將在金融事件分析領(lǐng)域持續(xù)推進(jìn)技術(shù)進(jìn)步和落地產(chǎn)品化。
四、問答環(huán)節(jié)
Q1:是否有專門針對(duì)事件圖譜的數(shù)據(jù)庫,傳統(tǒng)的圖數(shù)據(jù)庫如 Neo4j 是否適合存儲(chǔ)和管理事件圖譜?
A1:是有專門針對(duì)事件圖譜的數(shù)據(jù)庫,有些數(shù)據(jù)的提供商有提供這類數(shù)據(jù)庫。比如瀾舟科技,螞蟻集團(tuán)等公司,也會(huì)在其公司內(nèi)部構(gòu)建自己的數(shù)據(jù)庫。Neo4j 是可以用來進(jìn)行事件圖譜的存儲(chǔ)和管理。根據(jù)使用場(chǎng)景不同,在復(fù)雜場(chǎng)景下,Neo4j 更適合來進(jìn)行存儲(chǔ)和管理。如果簡(jiǎn)化成事件鏈,事件的表示可以更靈活,我們做的是將數(shù)據(jù)從文本中抽取出來生成事件鏈作為模型的訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練。訓(xùn)練中不涉及圖譜的運(yùn)算。
Q2:股票波動(dòng)分析的效果該如何評(píng)估?
A2:主要有兩種方式。我們?cè)诰唧w模型的構(gòu)造和評(píng)估的過程中,更多是依賴于股票市場(chǎng)的信息。可以理解為量化交易中的回測(cè),我們運(yùn)用歷史數(shù)據(jù)進(jìn)行訓(xùn)練和評(píng)估。另外一種就是在真實(shí)場(chǎng)景中,我們會(huì)用人工來判斷,比如根據(jù)企業(yè)的新聞和股票量?jī)r(jià)交易的技術(shù)指標(biāo)預(yù)測(cè)未來一個(gè)月的股價(jià)波動(dòng)。我們會(huì)具體去看這一個(gè)月是否真的會(huì)發(fā)生股價(jià)波動(dòng)。如果波動(dòng)發(fā)生,會(huì)去分析對(duì)應(yīng)的事件類型,對(duì)應(yīng)的股價(jià)的量?jī)r(jià)信息等元素來判斷是否存在強(qiáng)因果關(guān)系。
































