BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding https://arxiv.org/abs/1810.04805

解説スライド BERTとTransformer

https://github.com/google-research/bert

2017年にRNNなしCNNなしで注意機構だけ構成されたTransformerが翻訳タスクで良い成績を出すことが示された

We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely. BERTはその流れの延長線にある。

  • Pre-trainingできるモデルを作った
  • Pre-trainingしたモデルに出力層を付け加えるだけで、言語理解系の12種類のタスクにおいて良い成績を出すことができた
  • Transformer

画像認識系タスクで、学習済みモデルを使って分野応用が容易にできるようになったのと同じような流れが、今後自然言語処理に起きる可能性が高い。(しかし日本語とかいうマイナーな言語はどうなるか…)(はっ、むしろ国プロでいい感じの学習済みモデルを作って無償で配布してくれたらいいのか?)(オリンピック前に間に合わせるつもりでぜひ)

BERT: Bidirectional Encoder Representations from Transformers.

proposing a new pre-training objective: the “masked language model” (MLM), inspired by the Cloze task (Taylor, 1953).

  • Cloze taskはいわゆる穴埋め問題

we also introduce a “next sentence prediction” task that jointly pre-trains text-pair representations.

Transformerの実装はオリジナルのtensor2tensorライブラリを使っていて、しかも何もいじってない

The Annotated Transformer

単語はWordPieceでhe likes play ##ingと分割されて、位置と文番号の情報が埋め込まれている ランダムに15%をマスクして、マスクされたものを予想するタスク。

  • 全てをMASKトークンにはしない

  • 15%のうちの80%をMASK、10%をランダムな単語、10%を元どおりの単語にする

  • nishio.icon一見普通の単語でも、あとで質問されるかもしれないわけだ

  • Curriculum Learningに相当することが起きているのではないか

    • MaskLMの学習が、他のタスクよりイージー

https://twitter.com/_Ryobot/status/1050925881894400000

汎用言語表現モデルBERTを日本語で動かす(PyTorch) - Qiita