赞
踩
这篇介绍以下最近大热的BERT,它在11个NLP任务中刷新了成绩,效果确实惊人。不过在介绍论文之前我还是想说这项工作不是很好复现,如果没有足够的资源就不要想了 。我觉得很可能未来的利用价值在于直接使用作者公布的预训练好的模型。
现在有很多利用预训练的语言表征来完成下游NLP任务的研究,作者把它们概括为两类feature-based和fine-tuning:
分类 | 代表 | task-specific模型 | 使用方案 |
---|---|---|---|
feature-based | ELMo | 需要 | 把表征作为feature提供给下游任务 |
fine-tuning | OpenAI GPT,(前文介绍过的) ULMFiT | 不需要 | fine tune预训练的参数 |
这两类方法的共性在于它们在预训练中都使用了一样的目标函数,也都使用了单向的语言模型。
作者对这些方法的批评在于它们没有很好的利用上下文的信息。尽管如ELMo这样的算法利用了正向和反向的语言模型,可本质上仍然是两个unidirectional模型的叠加。对于SQuAD这种阅读理解式的任务,能够同时从两个方向提取context信息至关重要,然而现存的方法有巨大的局限性。
BERT, OpenAI GPT, 和ELMo之间的区别如图示:
作为fine-tuning这一类的方法,作者提出了改进的方案:BERT(Bidirectional Encoder Representations from Transformers)
具体做法是,
在实际的预训练中,这两个任务是jointly training
论文使用了两种模型:
B E R T B A S E BERT_{BASE} BERT
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。