Bert: Pre-training of deep bidirectional transformers for language understanding
1. Motivation
预训练领域的经典制作,2018年,Google出品。
NLP领域已经有一些预训练工作。预训练工作用于下游任务有两种策略:feature-based以及fine-tuning。典型的feature-based方法如ELMo[2],对于特定任务,将pre-trained的表示当成额外的feature。典型的fine-tuning方法如GPT[3]。这两种方法都是基于单向的训练方式来学习通用的语言表示(ELMo是两个单向学习的简单concat)。
因此,作者提出基于双向的Encoder表示。
使用两个策略:
(1)masked-language-model(MLM),受经典的完形填空Cloze task[4]启发。这也是绝大多数预训练模型所采用并且优化的切入点。从语料里mask掉(可以随机,也可以加入一些知识)一些字词,试图准确地预测task掉的内容。
(2) next sentence prediction,判断两个句子是否具有上下文关系。(貌似在某个地方看到,这个任务没有决定性的功能,不确定。)
也就是说,GPT只有单向学习;ELMo虽然是双向学习,但是过于简单。
BERT双向学习,并且更加复杂。
2. Bidirectional Encoder Representations from Transformers (BERT)
2.1 Pre-training BERT
2.1.1 Task #1: Masked LM
本质上是在做完形填空。在论文中,作者对每个句子随机mask了15%的单词,用模型去学习提升预测mask掉的单词的效果。与Denoising Auto-Encoder试图重建整个input相比,BERT只预测mask掉的单词。
因此测试语料里并没有mask标记,所以作者实际上设计了3种mask策略:80%随机替换为mask标记,10%随机替换为其它单词,10%保留不变。
2.1.1 Task #2: Next Sentence Prediction
对两句话加上sep标记,预测是否是真的两句连续的sentence。
2.2 Fine-tuning BERT
根据不同的下游任务,针对性调整下输入输出,再fine-tune。
3. Experiment
BERT横空出世的时候,席卷了各大NLP常见任务的榜单。
优点:
(1)使用Transformer的Encoder,采用双向的语言模型,将预训练+fine-tune做到了极致。
思考:
(1) 随机mask部分,以及Encoder后续工作做了一些优化。问题是,在非CV、NLP领域,比如推荐系统,有没有办法也能用上很好的预训练模型呢?
4. References
[1] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805, 2018.
[2] Matthew Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, and Luke Zettlemoyer. 2018a. Deep contextualized word rep- resentations. In NAACL.
[3] Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. 2018. Improving language under- standing with unsupervised learning. Technical re- port, OpenAI.
[4] Wilson L Taylor. 1953. Cloze procedure: A new tool for measuring readability. Journalism Bulletin, 30(4):415–433.