天天看點

基于預訓練模型的金融事件分析及應用

導讀 基于預訓練模型的金融事件分析及應用在金融領域事件了解是非常有效的載體。如何更好地了解和分析事件,長期以來都是金融領域研究的熱點。目前預訓練模型的技術在比較通用的領域,比如翻譯、搜尋、生成上都展現了強大的能力。其實在垂直領域,比如金融領域,預訓練模型也可以達到很好的效果。本文就将介紹基于預訓練模型的金融事件分析及應用。

文章将圍繞下面三點展開:

1. 金融事件分析的主要任務

2. 金融事件分析技術

3. 總結和展望

分享嘉賓|馬永亮 瀾舟科技 技術VP,搜尋、金融NLP和大模型落地負責人

編輯整理|Yishu Morningstar Inc

出品社群|DataFun

01

金融事件分析的主要任務

基于預訓練模型的金融事件分析及應用

金融事件分析的主要任務可以分為三塊:

① 第一塊為非結構化資料智能解析。金融領域的資訊與網際網路資訊相比有着其獨特之處。金融領域的資訊經常是以非結構化的形式存在,并且有一些比較特殊的檔案格式,比如 PDF,這對于從檔案或資料中抽取幹淨準确的資料提出了比較大的挑戰。PDF 格式是一種排版列印的格式,并不像其他檔案類型那樣段落分明。PDF 更多是為了服務排版,是以檔案裡隻存在一些位置資訊。要從非結構化資料中解析出準确的格式語義清晰的文本是比較有挑戰的。而且當文檔中格式語義不清楚時,對事件分析就會帶來噪音,而這些髒資料會對模型的訓練和推理造成很多幹擾。是以為了提高模型準确度,應該先做好非結構化資料的解析。

② 第二塊是事件語義的了解,這是技術上比較重要的一部分。這裡主要涉及到事件的檢測,事件要素的抽取和事件關系的抽取。

③ 在對事件的了解的基礎之上,就引入了任務中比較重要的第三塊子產品,事件的圖譜分析,它包括事件鍊的分析和事件預測。

為了完成上述任務,引入兩個比較重要的體系。首先是金融事件體系,一個金融事件體系包含了金融領域的相關主體,這些主體也有不太一樣的應用場景。為了更好地支援這些主體和場景,需要建立相應的事件體系,這裡面涉及到很多領域知識,需要領域專家提供相應的知識作為輸入。進而幫助我們把這個體系建構的更完善更科學,能夠覆寫相應場景。當然除了專家知識外,也會需要技術進行歸納學習,這樣也能夠提供完整的場景化的可擴充的事件體系。

因為引入專家知識主要是針對場景中比較重要的事件。對于一些中長尾的事件,主要還是基于學習的一些技術來解決。有了金融事件圖譜,我們把事件提取技術結合在一起,經過事件抽取,事件關系的分類,學習事件的表示後,就可以構造圖來進行分析和預測。

通過明确任務和技術的加持,我們就可以對新聞或文檔進行處理并歸納回答很多問題。比如,哪個公司發生了什麼類型的事件,事件中涉及了哪些要素,例如通用要素時間、地點、人物,或者與事件類型相關的要素,比如,事件“公司股票發行”,就包含要素發行價格、發行量等等。除此之外我們還可以關注這些資訊,比如群眾對這個事件的評價(情感分析)。以及發生了某類事件後,對企業未來會發生什麼的預測。如果可以回答上述問題,那麼對很多場景都是很有價值的。

下面我們來看一個具體例子。

基于預訓練模型的金融事件分析及應用

上圖将金融事件體系分為兩級,第一級有五類,主要按照具體對象作區分,比如企業類事件,股票類事件,行業和宏觀類事件,債權類事件和基金類事件。針對不同的事件對象定義了不同的事件類型。這些都是金融領域中最常見的對象。第二級裡我們是将每種對象進一步細分。比如一個企業裡面常見的事件類型,比如股東減持等(可參考上圖)。以股東減持這類事件為例,它所包含的事件元素有減持的時間,減持的股東,減持時的交易價格等資訊。定義一個完整,對場景有針對性的事件體系是事件分析能達成目标的重要前提,事件體系定義的細緻程度将決定最終事件分析能達到的事件資訊細粒度的程度。

下面介紹事件圖譜。

基于預訓練模型的金融事件分析及應用

事件圖譜屬于圖,包含節點和邊。在事件圖譜中,事件節點可以是事件,也可以是事件中的實體,比如公司。邊就是事件和事件的關系,也可以是事件和實體間的關系或實體和實體之間的關系。

我們來看一個例子。上圖是一篇介紹亞馬遜公司收購 iRobot 公司的新聞。這篇新聞報道中一共描述了四個事件,其中兩個是收購事件,分别發生在不同的時間。另兩個分别為創立公司的事件和合作的事件。這些事件是由其發生的時間順序連接配接起來的。除了事件,這篇新聞也包含其他實體和時間,這些實體和時間之間也由相應的關系相連。

這樣看來一個非結構化的網頁資訊,通過解析出文檔中的文本和段落、對段落進行語義分析,抽取事件實體和關系,我們就可以構造事件圖譜。也就是将非結構化資料轉化成結構化的資訊。有了結構化的資訊,就更容易進行對資訊的了解和處理。這樣的資訊可以應用于搜尋、問答等資訊擷取場景,或者是金融領域的風險監控、量化投資等業務場景中。

基于預訓練模型的金融事件分析及應用

事件鍊是一種特殊的事件圖譜,是事件圖譜的簡化模式。它主要關注的是一個參與者發生的一系列事件和事件之間的關系。從上圖可以看出左側的事件圖譜可以簡化成右邊的兩個事件鍊。事件鍊中隻包含簡化節點,其他元素都可看作事件鍊的屬性資訊。這種簡化對事件圖譜的落地應用是有幫助的。事件圖譜的關系和節點簡化後,模型對圖譜的學習和處理都隻針對一種節點,和事件間的一種關系,降低了這種問題的複雜度。雖然有所簡化,但事件中的主要資訊還是會保留下來,比如事件類型,事件主體等資訊。

下面來看一個事件鍊是如何進行預測。

基于預訓練模型的金融事件分析及應用

上圖是一個事件鍊的預測模型。它主要由三部分組成,第一部分是事件表示,這裡有目前事件,曆史事件和最終我們想預測的文本中的事件。曆史事件和要預測的事件,它們表示的觸發詞和事件元素拼接起來之後可以更好的捕捉曆史資訊。将事件的上下文表示和曆史表示結合起來就進入到第二部分,事件的序清單示,這裡用到了一個 LSTM 的網絡結構,它可以捕捉事件和事件之間的時序關系,将事件先後順序資訊融入到事件表示中來。最後包含時間順序關系的事件表示會被輸入給動态網絡中,這個網路可以用來對候選事件和給定的新聞中的事件進行預測。比如候選事件類型有幾十種,那麼我們就根據目前新聞中已經見到的事件類型來預測哪一個事件可能是這個主體未來會發生的比較大的事件類型。結果是給出事件類型的分布。

這裡需要強調的一點是,這個模型的預測結果并不是預測這個公司未來一定會發生的事件,而是給出這樣一些輔助資訊來為分析、預測、研判提供依據。

上面所講到的事件鍊和事件預測,是對還沒發生的情況進行預測和判斷。事件預測其實也能夠對已經發生的事件提供一些有用的幫助。

下面我們看另一個例子。這個例子是根據已經發生的事件提供一些有用的幫助。

基于預訓練模型的金融事件分析及應用

這種基于事件庫的事件問答,可以支援自然語言對事件的搜尋。我們首先在語料庫進行抽取,建立結構化事件庫,每種類型事件會建立一個表,表中的各個字段表示不同的事件元素,結合 NL2SQL 的技術可以把查詢語句轉化成資料庫的查詢語句。這樣我們就可以在剛剛建立好的表格中查找到準确的事件類型。這和我們目前市面上通用的搜尋引擎來搜尋事件的體驗是不一樣的。搜尋引擎傳回的結果是這個事件類型的很多種新聞,即使找到相關新聞,看到的結果也是一篇完整報道而不是具體事件的具體資訊。通過基于事件庫的事件問答,我們可以更精準的針對事件進行問答搜尋。

基于預訓練模型的金融事件分析及應用

通過上圖的例子可以看到事件分析在具體場景下可以如何進行分析。企業的股價波動是市場關注的重點。基于事件的股價波動也是事件分析中 NLP 和金融領域結合的一個場景,它可以實作市場資訊和股價波動變模。上圖是模型中給出兩個特征,一類是表征具體企業的,另一類是表征企業與企業之間關系。我們引入事件分析可以抽取事件類型以及參與事件的不同公司。抽取出的事件類型和公司可以提供的兩類資訊,一個是事件的表示,它可以成為一個特征,與企業特征融合。企業與事件的關系可以構造企業間的關聯關系子產品。再加入既有的特征,比如針對企業的技術名額或企業關系圖譜。将兩者結合我們可以構造出具有企業資訊和關系資訊的圖譜。

根據這個圖譜我們運用 Graph Attention Network 捕捉企業之間的關系對企業股價波動表現的影響。将股價波動作為模型學習的目标來訓練模型,我們得到的模型網絡結構可以達到對公司從新聞産業類圖譜、企業關系圖譜這樣的特征得到企業未來特征的一個判斷,同時通過 Attention 模型的分析,也可以知道波動主要來自于哪些子產品,是事件類型的子產品還是事件關系的子產品。并且企業之間關系的模組化也可以分析這種影響在相關企業之間是如何進行傳播的。這在金融領域中也可以叫做動量溢出的效用。

綜合前面我們介紹的各種事件分析的技術和場景。我們總結出了完整的事件分析架構。(如下圖)

基于預訓練模型的金融事件分析及應用

它提供了幾大能力:

① 首先,它可以搜尋某個事件或某主體的各類事件;

② 其次,它可以提供通過産業鍊搜尋某公司同行業的相關各類事件,可以是産業鍊或公司鍊。

③ 這個架構還可以根據某公司的搜尋結果預測未來可能發生的事件。

這個架構的優勢是,它基于預訓練模型,有遷移學習的能力,可以支援 zero-shot/few-shot 訓練,冷啟動快。并且這種體系化的方法能力比較全面,能支援豐富的場景。

不是所有的場景都需要架構中的所有子產品,可以根據需求将子產品拆分出來單獨使用。

02

金融事件分析技術

金融事件分析技術中比較重要的兩塊内容分别為事件檢測和事件抽取。

基于預訓練模型的金融事件分析及應用

事件檢測任務的目标是從文本中抽取出事件并進行分類。通常是抽取觸發詞進行事件檢測,但也有些辦法是無觸發詞抽取的事件檢測。這類問題的挑戰是觸發詞的标注,或者發生語義遷移、事件拆分、事件定義變化等問題時需要我們重新标注資料。這類問題在實際場景中經常會出現。我們雖然有一套自己的事件檢測方案,但是應用到不同領域或面對不同客戶需求時,它們的事件體系都有很大差别,如何結合已有的模型和資料更好的去支援事件體系的變化是我們目前面對的最大挑戰。目前采用的方法是基于提示詞和預訓練模型的事件檢測。根據事件類型的 Prompt 我們可以更好的去做資料遷移或 few-shot 場景的模型訓練。

基于預訓練模型的金融事件分析及應用

上圖展示了基于觸發詞的模型和方法。根據事件類型的 Prompt,模型的輸入可以進行 token 級别的标注,這樣可以抽取相應事件的觸發詞。如果根據目前的 Prompt 進行觸發詞變換的話,對應的事件類型和觸發詞可以進行相應的變化。通過在公開資料集上的資料對比,可以看出在全量資料中,我們的模型的表現比以往方法有比較大的提升,即使在 few-shot 情況下,我們的模型表現也要優于其他模型。

基于預訓練模型的金融事件分析及應用

事件抽取任務是事件檢測任務功能的擴充。它不僅識别出事件類型和觸發詞,還可以提取出事件中的相應元素。這對事件分析要求資訊比較完整的場景有着較大的作用。上圖中的例子,可以抽取出更細粒度的資訊。事件抽取的挑戰包括定義完整的事件體系中,事件元素會比較多,資料的标注需要領域專家來完成,成本比較高,難以擴充到很多的事件類型。我們目前的解決方案是利用預訓練模型和 Prompt,基于生成式的方法在标注資料更少的場景下也能有不錯的模型性能,具有更高的資料使用率和靈活性,更容易擴充到新的事件類型。

基于預訓練模型的金融事件分析及應用

上圖中是一個基于模闆的生成式事件抽取方法。這個抽取方法定義了幾個重要的概念。首先在抽取前我們要預先定義模闆,有了模闆後,可以在訓練時提供給模型,在定義新事件時有些元素與之前事件有關聯,這些資訊也可以預先提供給模型。通過這種方法,模型可以在少量資料下學習新的事件類型。

基于預訓練模型的金融事件分析及應用

雖然上面方法可以在一定程度上解決事件抽取問題,但是也還有很多改進的空間。比如目前方法觸發詞和事件元素的聯系較弱;推理時需要輪詢所有事件類型,計算量大推理時間長;事件檢測和事件要素抽取子產品采用 Pipeline 組織,存在錯誤傳播。

基于預訓練模型的金融事件分析及應用
基于預訓練模型的金融事件分析及應用

我們根據上面提出的問題,改進了模型,提出了另一個基于觸發詞檢測增強的生成式事件抽取方法 。

(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.)

在這個方法中,事件檢測子產品提供了事件觸發詞的資訊。在輸入中我們會标注觸發詞,并且根據事件類型資訊選擇相應的模闆。這種輸入和事件模闆後面組合在一起後,就可以構成事件檢測子產品的表示。這種表示會給入話題模型,最終得到填充後的模闆。這個模型和上一個模型的不同是這個模型多了一個觸發詞的表示,同時也會将上下文資訊結合起來。這樣解決剛才說的第一種問題,觸發詞和觸發詞抽取元素之間的聯系不多的問題。這個模型就可以構造兩者之間的顯示關系。同時通過觸發詞輸入,我們可以得知觸發詞的相關事件類型。這樣我們可以将不相關的事件類型過濾掉。事件檢測子產品隻會針對相關的事件類型進行事件抽取。最後事件檢測子產品和事件抽取子產品可以構成一個端到端的聯合訓練。這種模型就可以解決前文提到的另外兩個問題。

TDE-GTEE 模型在公開資料集 ACE 和 ERE 上都達到了 SOTA 水準。在實驗中我們用了全量資料。為了驗證此模型在少量樣本下的表現,我們也通過對事件檢測子產品做了一些調整比如使用基于 Prompt 的方式替換原先的多分類方式。在 zero-shot/few-shot 上模型也可以達到很好的效果。我們相信這個模型可以在實際場景上得到廣泛的應用。

基于預訓練模型的金融事件分析及應用

03

總結和展望

基于預訓練模型的金融事件分析及應用

事件分析技術在金融領域應用廣泛,場景也很多。一個完善涵蓋事件分析體系架構将為金融領域的資訊了解提供強有力的技術支援。

瀾舟科技在金融事件分析領域中提出的 TDE-GTEE 等方法可以達到 SOTA 水準,在少樣本和零樣本場景下也有很好的表現。我們将在金融事件分析領域持續推進技術進步和落地産品化。

04

問答環節

Q1:是否有專門針對事件圖譜的資料庫,傳統的圖資料庫如 Neo4j 是否适合存儲和管理事件圖譜?

A1:是有專門針對事件圖譜的資料庫,有些資料的提供商有提供這類資料庫。比如瀾舟科技,螞蟻集團等公司,也會在其公司内部建構自己的資料庫。Neo4j 是可以用來進行事件圖譜的存儲和管理。根據使用場景不同,在複雜場景下,Neo4j 更适合來進行存儲和管理。如果簡化成事件鍊,事件的表示可以更靈活,我們做的是将資料從文本中抽取出來生成事件鍊作為模型的訓練資料進行訓練。訓練中不涉及圖譜的運算。

Q2:股票波動分析的效果該如何評估?

A2:主要有兩種方式。我們在具體模型的構造和評估的過程中,更多是依賴于股票市場的資訊。可以了解為量化交易中的回測,我們運用曆史資料進行訓練和評估。另外一種就是在真實場景中,我們會用人工來判斷,比如根據企業的新聞和股票量價交易的技術名額預測未來一個月的股價波動。我們會具體去看這一個月是否真的會發生股價波動。如果波動發生,會去分析對應的事件類型,對應的股價的量價資訊等元素來判斷是否存在強因果關系。

今天的分享就到這裡,謝謝大家。

基于預訓練模型的金融事件分析及應用

繼續閱讀