首个金融领域的开源中文预训练语言模型FinBERT了解下
背景及下載地址
為了促進自然語言處理技術在金融科技領域的應用和發(fā)展,熵簡科技 AI Lab 近期開源了基于 BERT 架構的金融領域預訓練語言模型 FinBERT 1.0。據(jù)我們所知,這是國內首個在金融領域大規(guī)模語料上訓練的開源中文BERT預訓練模型。
相對于 Google 發(fā)布的原生中文 BERT、哈工大訊飛實驗室開源的 BERT-wwm 以及? RoBERTa-wwm-ext 等模型,本次開源的 FinBERT 1.0 預訓練模型在多個金融領域的下游任務中獲得了顯著的性能提升,在不加任何額外調整的情況下,F1-score 直接提升至少 2~5.7 個百分點。
對于深度學習時代的自然語言處理技術,我們一般認為存在兩大里程碑式的工作。第一個里程碑是在 2013 年逐漸興起,以 Word2Vec 為代表的的詞向量技術;第二個里程碑則是在 2018 年以 BERT 為代表的深度預訓練語言模型(Pre-trained Language Models)。
一方面,以 BERT 為代表的深度預訓練模型在包括文本分類、命名實體識別、問答等幾乎所有的子領域達到了新的 state of the art;另一方面,作為通用的預訓練模型,BERT 的出現(xiàn)也顯著地減輕了 NLP 算法工程師在具體應用中的繁重工作,由以往的魔改網(wǎng)絡轉變?yōu)?Fine tune BERT,即可快速獲得性能優(yōu)秀的基線模型。因此,深度預訓練模型已成為各個 AI 團隊必備的基礎技術。
但是,當前開源的各類中文領域的深度預訓練模型,多是面向通用領域的應用需求,在包括金融在內的多個垂直領域均沒有看到相關開源模型。熵簡科技希望通過本次開源,推動 NLP 技術在金融領域的應用發(fā)展,歡迎學術界和工業(yè)界各位同仁下載使用,我們也將在時機合適的時候推出性能更好的 FinBERT 2.0 & 3.0。
項目地址:
https://github.com/valuesimplex/FinBERT
模型及預訓練方式
2.1 網(wǎng)絡結構
熵簡 FinBERT 在網(wǎng)絡結構上采用與 Google 發(fā)布的原生 BERT 相同的架構,包含了 FinBERT-Base 和 FinBERT-Large 兩個版本,其中前者采用了 12 層? Transformer 結構,后者采用了 24 層 Transformer 結構。
考慮到在實際使用中的便利性和普遍性,本次發(fā)布的模型是 FinBERT-Base 版本,本文后面部分統(tǒng)一以 FinBERT 代指 FinBERT-Base。
2.2 訓練語料
FinBERT 1.0 所采用的預訓練語料主要包含三大類金融領域的語料,分別如下:
金融財經(jīng)類新聞:從公開渠道采集的最近十年的金融財經(jīng)類新聞資訊,約 100 萬篇;
研報/上市公司公告:從公開渠道收集的各類研報和公司公告,來自 500 多家境內外研究機構,涉及 9000 家上市公司,包含 150 多種不同類型的研報,共約 200 萬篇;
金融類百科詞條:從 Wiki 等渠道收集的金融類中文百科詞條,約 100 萬條。
對于上述三類語料,在金融業(yè)務專家的指導下,我們對于各類語料的重要部分進行篩選、預處理之后得到最終用于模型訓練的語料,共包含 30 億 Tokens,這一數(shù)量超過了原生中文 BERT 的訓練規(guī)模。
2.3 預訓練方式
▲ FinBERT 預訓練框架圖
如上圖所示,FinBERT 采用了兩大類預訓練任務,分別是字詞級別的預訓練和任務級別的預訓練。兩類預訓練任務的細節(jié)詳述如下:
(1)字詞級別的預訓練
字詞級別的預訓練首先包含兩類子任務,分別是 Finnacial Whole Word MASK(FWWM)、Next Sentence Prediction(NSP)。同時,在訓練中,為了節(jié)省資源,我們采用了與 Google 類似的兩階段預訓練方式,第一階段預訓練最大句子長度為 128,第二階段預訓練最大句子長度為 512。兩類任務具體形式如下:
Finnacial Whole Word MASK(FWWM)
Whole Word Masking (wwm),一般翻譯為全詞 Mask 或整詞 Mask,出是 Google 在 2019 年 5 月發(fā)布的一項升級版的 BERT 中,主要更改了原預訓練階段的訓練樣本生成策略。
簡單來說,原有基于 WordPiece 的分詞方式會把一個完整的詞切分成若干個子詞,在生成訓練樣本時,這些被分開的子詞會隨機被 mask。在全詞 Mask 中,如果一個完整的詞的部分 WordPiece 子詞被 Mask,則同屬該詞的其他部分也會被 Mask,即全詞 Mask。
在谷歌原生的中文 BERT 中,輸入是以字為粒度進行切分,沒有考慮到領域內共現(xiàn)單詞或詞組之間的關系,從而無法學習到領域內隱含的先驗知識,降低了模型的學習效果。我們將全詞 Mask 的方法應用在金融領域語料預訓練中,即對組成的同一個詞的漢字全部進行 Mask。
首先我們從金融詞典、金融類學術文章中,通過自動挖掘結合人工核驗的方式,構建出金融領域內的詞典,約有 10 萬詞。然后抽取預語料和金融詞典中共現(xiàn)的單詞或詞組進行全詞 Mask 預訓練,從而使模型學習到領域內的先驗知識,如金融學概念、金融概念之間的相關性等,從而增強模型的學習效果。
Next Sentence Prediction(NSP)
為了訓練一個理解句子間關系的模型,引入一個下一句預測任務。具體方式可參考 BERT 原始文獻,Google 的論文結果表明,這個簡單的任務對問答和自然語言推理任務十分有益,我們在預訓練過程中也發(fā)現(xiàn)去掉 NSP 任務之后對模型效果略有降低,因此我們保留了 NSP 的預訓練任務,學習率采用 Google 官方推薦的 2e-5,warmup-steps為 10000 steps。
(2)任務級別的預訓練
為了讓模型更好地學習到語義層的金融領域知識,更全面地學習到金融領域詞句的特征分布,我們同時引入了兩類有監(jiān)督學習任務,分別是研報行業(yè)分類和財經(jīng)新聞的金融實體識別任務,具體如下:
研報行業(yè)分類
對于公司點評、行業(yè)點評類的研報,天然具有很好的行業(yè)屬性,因此我們利用這類研報自動生成了大量帶有行業(yè)標簽的語料。并據(jù)此構建了行業(yè)分類的文檔級有監(jiān)督任務,各行業(yè)類別語料在 5k~20k 之間,共計約 40 萬條文檔級語料。
財經(jīng)新聞的金融實體識別
與研報行業(yè)分類任務類似,我們利用已有的企業(yè)工商信息庫以及公開可查的上市公司董監(jiān)高信息,基于金融財經(jīng)新聞構建了命名實體識別類的任務語料,共包含有 50 萬條的有監(jiān)督語料。
整體而言,為使 FinBERT 1.0 模型可以更充分學習到金融領域內的語義知識,我們在原生 BERT 模型預訓練基礎上做了如下改進:
1、訓練時間更長,訓練過程更充分。為了取得更好的模型學習效果,我們延長模型第二階段預訓練時間至與第一階段的 tokens 總量一致;
2、融合金融領域內知識。引入詞組和語義級別任務,并提取領域內的專有名詞或詞組,采用全詞 Mask 的掩蓋方式以及兩類有監(jiān)督任務進行預訓練;
3、為了更充分的利用預訓練語料,采用類似 Roberta 模型的動態(tài)掩蓋 mask 機制,將 dupe-factor 參數(shù)設置為 10;
2.4 預訓練加速
當前,對于所提供的一整套軟硬件深度學習煉丹系統(tǒng),英偉達提供了豐富的技術支持和框架優(yōu)化,其中很重要的一點就是如何在訓練中進行加速。在 FinBERT 的訓練中,我們主要采用了 Tensorflow XLA 和 Automatic Mixed Precision 這兩類技術進行預訓練加速。
Tensorflow XLA 進行訓練加速
XLA 全稱為加速線性運算,如果在 Tensorflow 中開啟了 XLA,那么編譯器會對 Tensorflow 計算圖在執(zhí)行階段進行優(yōu)化,通過生成特定的 GPU 內核序列來節(jié)省計算過程對于硬件資源的消耗。一般而言,XLA 可以提供 40% 的加速。
Automatic Mixed Precision
一般深度學習模型訓練過程采用單精度(Float 32)和雙精度(Double)數(shù)據(jù)類型,導致預訓練模型對于機器顯存具有很高的要求。為了進一步減少顯存開銷、加快 FinBERT 預訓練和推理速度, 我們實驗采用當前最新的 Tesla V100GPU 進行混合精度訓練。
混合精度訓練是指 FP32 和 FP16 混合的訓練方式,使用混合精度訓練可以加速訓練過程同時減少顯存開銷,兼顧 FP32 的穩(wěn)定性和 FP16 的速度。在保證模型準確率不下降的情況下,降低模型的顯存占用約一半,提高模型的訓練速度約 3 倍。
下游任務實驗結果
為了對比基線效果,我們從熵簡科技實際業(yè)務中抽象出了四類典型的金融領域典型數(shù)據(jù)集,包括句子級和篇章級任務。在此基礎上,我們將 FinBERT 與 Google 原生中文 BERT、哈工大訊飛實驗室開源的 BERT-wwm 和 RoBERTa-wwm-ext 這三類在中文領域應用廣泛的模型進行了下游任務的對比測試。
在實驗中,為了保持測試的公平性,我們沒有進一步優(yōu)化最佳學習率,對于四個模型均直接使用了 BERT-wwm 的最佳學習率:2e-5。
所有實驗結果均為五次實驗測試結果的平均值,括號內為五次測試結果的最大值,評價指標為 F1-score。
3.1 實驗一:金融短訊類型分類
(1)實驗任務
此任務來自于熵簡科技信息流相關的產(chǎn)品,其核心任務是對金融類短文本按照文本內容進行類型分類,打上標簽,從而方便用戶更及時、更精準地觸達感興趣的內容。我們對原任務進行了簡化,從原始的 15 個類別中抽離出難度最大的 6 個類別進行實驗。
(2)數(shù)據(jù)集
該任務的數(shù)據(jù)集共包含 3000 條樣本,其中訓練集數(shù)據(jù)約 1100 條,測試集數(shù)據(jù)約 1900 條,各類別分布情況如下:
(3)實驗結果
3.2 實驗二:金融短訊行業(yè)分類
(1)實驗任務
此任務核心任務是對金融類短文本按照文本內容進行行業(yè)分類,以中信一級行業(yè)分類作為分類基準,包括餐飲旅游、商貿零售、紡織服裝、農(nóng)林牧漁、建筑、石油石化、通信、計算機等 28 個行業(yè)類別,可以用在金融輿情監(jiān)控、研報/公告智能搜索等多個下游應用中。
(2)數(shù)據(jù)集
該任務的數(shù)據(jù)集共包含 1200 條樣本,其中訓練集數(shù)據(jù)約 400 條,測試集數(shù)據(jù)約 800條。訓練集中的各類別數(shù)目在 5~15 條之間,屬于典型的小樣本任務。
各類別分布情況如下:
(3)實驗結果
?
3.3 實驗三:金融情緒分類
(1)實驗任務
此任務來自于熵簡科技金融質控類相關產(chǎn)品,其核心任務是針對金融事件或標的的評述性文本按照文本內容進行金融情感分類,并用在后續(xù)的市場情緒觀察和個股相關性分析中。該任務共有 4 個類別,對應不同的情緒極性和強度。
(2)數(shù)據(jù)集
該任務的數(shù)據(jù)集共包含 2000 條樣本,其中訓練集數(shù)據(jù)約 1300 條,測試集數(shù)據(jù)約 700 條,各類別分布情況如下:
(3)實驗結果
3.4 實驗四:金融領域的命名實體識別
(1)實驗任務
此任務來自于熵簡科技知識圖譜相關的產(chǎn)品,其核心任務是對金融類文本中出現(xiàn)的實體(公司或人名)進行實體識別和提取,主要用在知識圖譜的實體提取和實體鏈接環(huán)節(jié)。
(2)數(shù)據(jù)集
數(shù)據(jù)集共包含 24000 條樣本,其中訓練集數(shù)據(jù)共 3000 條,測試集數(shù)據(jù)共 21000 條。
(3)結果展示
?
3.5 總結
在本次基線測試中,我們以金融場景中所遇到的四類實際業(yè)務問題和數(shù)據(jù)入手進行對比實驗,包括金融類短訊類型分類任務、金融文本行業(yè)分類、金融情緒分析任務以及金融類實體識別任務。
對比 FinBERT 和 Google 原生中文BERT、 BERT-wwm、RoBERTa-wwm-ext 這三種通用領域的預訓練模型可知,FinBERT 效果提升顯著,在 F1-score 上平均可以提升 2~5.7 個百分點。
結語
本文詳細介紹了 FinBERT 的開源背景、訓練細節(jié)和四類對比實驗結果,歡迎其他從相關領域的團隊提供更多、更豐富的對比實驗和應用案例,讓我們共同推進自然語言處理技術在金融領域的應用和發(fā)展。
接下來,熵簡 AI 團隊會從預料規(guī)模、訓練時間、預訓練方式上進行更多的創(chuàng)新和探索,以期發(fā)展出更懂金融領域的預訓練模型,并在合適時機發(fā)布 FinBERT 2.0、FinBERT 3.0,敬請期待。
任何問題,歡迎與團隊負責人聯(lián)系,郵箱:liyu@entropyreduce.com
參考文獻
[1] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2018. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. (2018). https://doi.org/arXiv:1811.03600v2 arXiv:1810.04805
[2] Jinhyuk Lee, Wonjin Yoon, Sungdong Kim, Donghyeon Kim, Sunkyu Kim, Chan Ho So, and Jaewoo Kang. 2019. BioBERT: a pre-trained biomedical language representation model for biomedical text mining. Bioinformatics
[3] Kexin Huang, Jaan Altosaar, and Rajesh Ranganath. 2019. Clinicalbert: Modeling clinical notes and predicting hospital readmission. arXiv:1904.05342.
[4] Iz Beltagy, Kyle Lo, and Arman Cohan. 2019. Scibert: Pretrained language model for scientific text. In Proceedings ofEMNLP.
[5] Yiming Cui, Wanxiang Che, Ting Liu, Bing Qin, Ziqing Yang, Shijin Wang, and Guoping Hu. Pre-training with whole word masking for chinese bert. arXiv preprint arXiv:1906.08101, 2019.
[6] Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, and Veselin Stoyanov. RoBERTa: A robustly optimized BERT pre-training approach. arXiv preprint arXiv:1907.11692, 2019.
[7] Micikevicius, Paulius, et al. “Mixed precision training.” arXiv preprint arXiv:1710.03740 (2017).
[8]?https://github.com/ymcui/Chinese-BERT-wwm/
[9 ]https://github.com/huggingface/transformers
?
?
更多閱讀
?
?
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質內容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創(chuàng)作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發(fā),請在投稿時提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認每篇文章都是首發(fā),均會添加“原創(chuàng)”標志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發(fā)送?
? 請留下即時聯(lián)系方式(微信或手機),以便我們在編輯發(fā)布時和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的首个金融领域的开源中文预训练语言模型FinBERT了解下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 炭火村烤肉的蘸料哪里买?
- 下一篇: 哪些美食吃了一次就让人难以忘怀?