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

WBOY
發布: 2023-06-12 11:15:56
轉載
1038 人瀏覽過

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

一、金融事件分析的主要任務

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

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

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

② 第二塊是事件語意的理解,這是技術上比較重要的一環。這裡主要涉及到事件的偵測,事件要素的抽取和事件關係的抽取。

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

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

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

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

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

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

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

以下介紹事件圖譜。

#

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

事件圖譜屬於圖,包含節點和邊。在事件圖譜中,事件節點可以是事件,也可以是事件中的實體,例如公司。邊是事件和事件的關係,也可以是事件和實體間的關係或實體和實體的關係。

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

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

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

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

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

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

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

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

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

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

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

#

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

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

透過上圖的範例可以看到事件分析在具體場景下可以如何進行分析。企業的股價波動是市場關注的重點。基於事件的股價波動也是事件分析中 NLP 和金融領域結合的一個場景,它可以實現市場資訊和股價波動變模。上圖是模型中給出兩個特徵,一類是表徵具體企業的,另一類是表徵企業與企業之間關係。我們引入事件分析可以抽取事件類型以及參與事件的不同公司。抽取的事件類型和公司可以提供的兩類信息,一個是事件的表示,它可以成為一個特徵,與企業特徵融合。企業與事件的關係可以建構企業間的關聯關係模組。再加入既有的特徵,例如針對企業的技術指標或企業關係圖譜。將兩者結合我們可以構造出具有企業資訊和關係資訊的圖譜。根據這個圖譜我們運用 Graph Attention Network 捕捉企業間的關係對企業股價波動表現的影響。將股價波動作為模型學習的目標來訓練模型,我們得到的模型網絡結構可以達到對公司從新聞產業類圖譜、企業關係圖譜這樣的特徵得到企業未來特徵的一個判斷,同時透過Attention 模型的分析,也可以知道波動主要來自於哪些模組,是事件類型的模組還是事件關係的模組。而企業之間關係的建模也可以分析這種影響在相關企業之間是如何進行傳播的。這在金融領域中也可以叫做動量溢出的效用。

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

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

它提供了幾大能力:

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

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

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

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

不是所有的場景都需要框架中的所有模組,可以根據需求將模組分割出來單獨使用。

二、金融事件分析技術

#金融事件分析技術中較重要的兩塊內容分別為事件偵測和事件抽取。

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

#

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

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

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

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

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

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

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

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

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

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

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

#

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

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

#我們根據上面提出的問題,改進了模型,提出了另一個基於觸發詞偵測增強的生成式事件抽取方法 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.)

#在這個方法中,事件偵測模組提供了事件觸發詞的訊息。在輸入中我們會標註觸發詞,並且根據事件類型資訊選擇對應的範本。這種輸入和事件模板後面組合在一起後,就可以構成事件偵測模組的表示。這種表示會給入話題模型,最後得到填滿後的模板。這個模型和上一個模型的差異是這個模型多了一個觸發詞的表示,同時也會將上下文資訊結合起來。這樣解決剛才說的第一個問題,觸發詞和觸發詞抽取元素之間的聯繫不多的問題。這個模型就可以建構兩者之間的顯示關係。同時透過觸發詞輸入,我們可以得知觸發詞的相關事件類型。這樣我們可以將不相關的事件類型過濾掉。事件偵測模組只會針對相關的事件類型進行事件抽取。最後事件偵測模組和事件抽取模組可以構成一個端到端的聯合訓練。這種模型就可以解決前文提到的另外兩個問題。

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

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

#三、總結與展望

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

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

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

四、問答環節

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

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

#

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

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

#

以上是基於預訓練模型的金融事件分析及應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板