FinBERT: 金融领域的预训练语言模型

微信公众号:农药兑水,分享金融科技相关学术论文、开源项目、技术资讯,欢迎关注!

BERT相信大家都不陌生,自2018年横空出世以来,屠榜各大自然语言处理榜单。今天介绍一个使用金融领域语料训练的BERT模型:FinBERT,出自IJCAI 2020的论文"FinBERT: A Pre-trained Financial Language Representation Model for Financial Text Mining"

如上图所示,这篇论文,简单来说就是用了BERT的模型和ERNIE2(百度搞得BERT pro max版)的预训练任务,所以有兴趣的童鞋可以直接去看下面两篇论文:

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

ERNIE 2.0: A Continual Pre-training Framework for Language Understanding

本文到此为止,谢谢大家~

好吧,并没有真的完,还是要聊聊这篇文章里面比较有价值的东西:预训练任务和数据源。了解一些预训练任务可以帮助大家设计一些间接获取embedding的方法,数据源的话大家在未来的研究或工作中都有可能用到。

预训练任务方面,文章采用了ERNIE2中的几个任务来训练模型:

Span Replace Prediction pre-training task。这个任务来自spanBERT和T5,就是把文本中随机一段mask掉,然后用这一段的首尾词向量和mask掉的词的位置向量预测这个位置词是啥。

Capitalization Prediction pre-training task。预测单词大小写,因为一些专有名词是大写的,所以这个任务可能对命名实体识别比较有用。

Token-Passage Prediction pre-training task。预测当前句子中的这个单词是否会出现在该文档的其他句子中,这种词往往是常见词和该文档的主题词。

Sentence Deshuffling pre-training task。把句子拆成几个片段然后打乱,预测原始顺序。

Sentence Distance pre-training task。BERT 中 NSP 的推广。NSP 只预测两个句子是否连续,SDT 则分为连续、同文档但不连续、不同文档三个类别。

为了训练模型以及比较模型的性能,文章也使用了很多金融相关的数据,其中大家可以获取到的有:

FinancialWeb: 从CommonCrawl News数据集中提取到的一个金融新闻数据集。

FinSBD-2019 dataset: 一个用于金融句子边界检测任务(Financial Sentence Boundary Detection)的数据集,任务是从文本中提取出金融相关的语句。

Financial Phrasebank dataset: 一个金融情感分析数据集。

FiQA SA dataset: 这个数据集出自WWW18,包含金融新闻头条和金融微博文本,label有命名实体、情感分数以及aspect。

Financial QA dataset: 一个金融领域的问答数据集,爬取自Stack exchange投资主体的博文。

至于文章训练出的FinBERT, 作者也放在了Github上,有兴趣的可以尝试一下:https://github.com/yya518/FinBERT

你以为这篇文章到这里就要结束了吗?不,现在有了数据集和预训练任务,我们只差GPU就能自己训练一个属于自己的BERT出来了,但是训练所需的GPU动则上百块,TPU也要几十块,普通人根本搞不起啊。这里介绍一个薅Google羊毛的方法:TensorFlow Research Cloud。

不知道为什么国内知道Google有这么一个研究支持计划的人不多,这个计划只要申请通过就可以免费使用1段时间(通常是1个月)的TPU v2 和 v3,如果你有一些更有趣的idea,还可以与官方联系获取更多的支持。

最后,如果您觉得这个文章有帮助的话,请求转发和分享一波,公众号刚刚起步需要各位更多的支持。

微信公众号:农药兑水,分享金融科技相关学术论文、开源项目、技术资讯,欢迎关注!

你可能感兴趣的:(FinBERT: 金融领域的预训练语言模型)