Bidirectional Encoder Representations from Transformers (BERT) 是 Google AI Language 在 2018 年发表的一个模型比较“通用”的模型。[1,2]
在很多模型中,文字是按照顺序输入给模型的,例如我们会让机器去根据已有的文字序列猜测下一个字是什么,所以这些模型是单向的。而 BERT 却去掉了这个限制,直接把整句话输入进来。
如果把整个的语句的 token 输入进来的话,如何来学习呢?[3] BERT 采用的是 Masked Language Model (MLM),假设我们有一句话
Devlin, Jacob, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018).
Bidirectional Encoder Representations from Transformers (BERT) 是 Google AI Language 在 2018 年发表的一个模型比较“通用”的模型。[1,2] 在很多模型中,文字是按照顺序输入给模型的,例如我们会让机器去根据已有的文字序列猜测下一个字是什么,所以这些模型是单向的。而 BERT 却去掉了这个限制,直接把整句话输入进来。
如果把整个的语句的 token 输入进来的话,如何来学习呢?[3] BERT 采用的是 Masked Language Model (MLM),假设我们有一句话
MLM 的时候,我们先 mask 掉特定的词,例如
接下来我们就让模型预测下划线部分的原始的词是什么。[4]
BERT 是一个很暴力的 transformer,当然他们也花费了很多的计算资源来做 pre-trained model. 当然 BERT 模型本身也是比较大的。不过令人惊讶的地方在于,在没有直接采用人类的语言认知模型的情况下,这个模型竟然可以做到很多通用的语言任务。当然,怎一些特定的任务上可能就比不过很多专门训练的模型,例如数学任务[5]。在 BERT 上面添加所需要的 layer 的话,就可以实现一些特定的功能,例如分类,Q&A等等。
References: