data-com / discussions

http://data-com.github.io
5 stars 0 forks source link

BERT #30

Open emptymalei opened 5 years ago

emptymalei commented 5 years ago

Bidirectional Encoder Representations from Transformers (BERT) 是 Google AI Language 在 2018 年发表的一个模型比较“通用”的模型。[1,2] 在很多模型中,文字是按照顺序输入给模型的,例如我们会让机器去根据已有的文字序列猜测下一个字是什么,所以这些模型是单向的。而 BERT 却去掉了这个限制,直接把整句话输入进来。

如果把整个的语句的 token 输入进来的话,如何来学习呢?[3] BERT 采用的是 Masked Language Model (MLM),假设我们有一句话

I need to get my paycheck from my boss.

MLM 的时候,我们先 mask 掉特定的词,例如

I need to get my _____ from my boss.

接下来我们就让模型预测下划线部分的原始的词是什么。[4]

BERT 是一个很暴力的 transformer,当然他们也花费了很多的计算资源来做 pre-trained model. 当然 BERT 模型本身也是比较大的。不过令人惊讶的地方在于,在没有直接采用人类的语言认知模型的情况下,这个模型竟然可以做到很多通用的语言任务。当然,怎一些特定的任务上可能就比不过很多专门训练的模型,例如数学任务[5]。在 BERT 上面添加所需要的 layer 的话,就可以实现一些特定的功能,例如分类,Q&A等等。

References:

  1. 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).
  2. BERT 的 GitHub repo: https://github.com/google-research/bert
  3. token, tokenization
  4. MLM: BERT 使用了大约 mask 了 15% 的 token.
  5. 关于 NLP 里面的数学任务:Wallace, Eric, Yizhong Wang, Sujian Li, Sameer Singh, and Matt Gardner. n.d. “Do NLP Models Know Numbers? Probing Numeracy in Embeddings.”
  6. BERT Explained: State of the art language model for NLP