最近谷歌放了个大招,开源了他们最新的自然语言模型BERT,正好手头有个文本分类的任务,打算拿来用用,特此记录一下学习过程,如果错误,还望指正。
论文地址:https://arxiv.org/abs/1810.04805
开源github地址:https://github.com/google-research/bert
摘要
BERT(怎么读随便),其实是Bidirectional Encoder Representations from Transformers的缩写,属于深度双向预训练模型,在模型的所有层的表示都依赖于左右两个方向的上下文。这样设计的结果就是在大规模预料上预训练的BERT表示再加一层额外的输出层便可以应用到很多任务中,并可以得到很好的效果,据论文说该模型在11种自然语言处理任务中都取得了目前最好的效果。(不得不佩服这种概念简单但是实际效果屌炸的设计)
背景介绍
预训练模型近几年在自然语言处理领域逐渐得到广泛关注,在很多任务中被验证非常有效。目前在应用预训练语言表示到下游任务(downstream tasks)中有两种策略:1. 基于特征,2. 基于fine-tuning;
- 基于特征,例如ELMo,将预训练好的representations作为特征输入特定任务模型,训练模型完成任务目标;
- 基于fine-tuning, Generative Pre-trained