BERT
Bidirectional Encoder Representations from Transformers
BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingによるNLPモデル
bi-directional transformerで言語モデルを事前学習することで汎用性を獲得汎用言語表現モデルBERTを日本語で動かす(PyTorch).icon
転移学習により8個のベンチマークでSOTA
画像認識における,ImageNetで事前学習したVGGやResNetのような立ち位置?
より人間に近い形で、重層的な言語認知(注意)をしているのではないか
その中には構文解析的な認知状態や、まだ人間が定義できていない新しい認知状態も含まれるかも
今後は脳(ネットワーク)にどんな教育(事前学習タスク)を施すかの方法論に重きが移っていくのではないか汎用言語表現モデルBERTを日本語で動かす(PyTorch).icon
データ学、タスク学yosider.icon
構造について
Transformerのencoderの部分重ねただけ
https://gyazo.com/d7237f6f19d458bc428bcce2ac48cca3汎用言語表現モデルBERTを日本語で動かす(PyTorch).icon
Trm: multi-head attention
Transformerのencoder部分
複数のmulti-head attentionを全結合的に接続
双方向に入力し合うことで前後の文脈を考慮できる
=bi-directional transformer
事前学習
次の単語を予測するタスクだと,bi-directionalの場合カンニングになってしまう
masked language model(Masked LM)をやってる
次の単語の予測ではなく,ランダムにマスクされた単語を周辺情報から予測する
文章(のトークン)列を一部[MASK]というトークンに置き換えて流し込んで、そのMASKが何だったのかを復元するというタスク
このタスクの特徴として、人間の手でアノテーションされた教師データが要らない
自己教師学習(Self-Supervised learning)
とにかく大量のテキストさえ持っておけば事前学習ができて便利
もうひとつ、next sentence predictionというのもあったが後の別論文で、そんな重要じゃないのが指摘された
2つの文を与え,それらが隣り合っているかをYes/Noで判定する
fine-tuning
上の事前学習で済ませた重みを、別のタスクて追い学習する
ただし、モデルの後ろには個別のタスクのためのレイヤーをちょい足しする
pooler layerとか名前がついてたりする(出典が分からんが、ソースコードにはそう書いてある
このBERT1つで、当時の複数のNLPタスクをSOTAを叩き出してすごくて、注目が集まった。
以降、BERTに関する研究が広がった
(元タイトル:BERTの簡単な説明)from BERTらへんの勉強、動向の追い方
自然言語処理の王様「BERT」の論文を徹底解説 - Qiita
日本語だとこの記事とか
汎用言語表現モデルBERTを日本語で動かす(PyTorch)汎用言語表現モデルBERTを日本語で動かす(PyTorch).icon
Trends in Natural Language Processing at NeurIPS 2019. - Speaker Deck
このスライドがよくまとまってる