# BERT ## 基本情報 - date 2018/10/11 - doc https://huggingface.co/docs/transformers/model_doc/bert - arxiv https://arxiv.org/abs/1810.04805 - 引用数(2021/12/04) 30526 ## 内容 名前は**B**idirectional **E**ncoder **R**epresentations from **T**ransformersの頭文字をとったもの。 大規模な事前学習をした後に、出力層を追加してFine-tuningすることでさまざまな下流タスクに応用可能。論文中では11個のタスクでSOTAを達成。 モデルの構造は[オリジナルのTransformer Encoder-Decoder](https://arxiv.org/abs/1706.03762)のエンコーダからなる。 ![](https://i.imgur.com/Gnt2tzi.png) _<center>BERTとそれ以前の事前学習モデルの違い</center>_ ### 事前学習(Pre-training) _<center><img src="https://i.imgur.com/vq6FB3y.png" height="230rem"/><br>事前学習の図解</center>_ 事前学習は 1. MLM (Maksed Language Model) 2. NSP (Next Sentence Prediciton) からなる。 事前学習に使用したデータはBooksCorpus (800M words) と English Wikipedia (2,500M words) 全てのシーケンス入力は`[CLS]`トークンから始まる。 2文を入力する際には`[SEP]`トークンを間に挟む。 まず、入力文章中のトークンの15%をランダムに`[MASK]`トークンでマスクし、それを推測するように学習する。(**この手順を Maksed Language Modelと呼ぶ**) 続いて、入力した文A,文Bが50%の確率で連続して続いている文、残り50%はランダムに選択した文になるように入力し、その2文が連続して続いているかどうかを2値分類するように学習する。(**この手順を Next Sentence Predicitonと呼ぶ**)文同士の関係理解はQAやNLIタスクで重要である。 ### Fine-tuning ![](https://i.imgur.com/JZk1TEw.png) _<center>Fine-tuningの図解</center>_ Fine-tuningでは、全てのパラメータに対して下流タスクを学習させる。事前学習に比べ、学習時間は短い。 ![](https://i.imgur.com/DriN8EI.png) _<center>GLUE Testの結果。全ての結果において、BERT BASEがそれまでの精度を上回った。BERT BASEとOpenAI GPTは注目機構を除いて、ほぼ同じ構造。</center>_ 特に、SQuAD( The Stanford Question Answering Dataset)1.1のFine-tuning結果では、人間を上回る精度を出しています。 <center><img src="https://i.imgur.com/oWfP5lb.png" height="230rem"/></center> 11個それぞれのベンチマークの詳細については論文を見てください。 ### 事前学習の影響 逆に、事前学習で行った方法に対して、 - NSPを使用しない - MLMでなく、LTR LM(Left-to-Right Language Model:全体を見てマスクを予測するのでなく、左側の文章のみから右側の次文を生成)を使用 を実行して比較してみる。 <center><img src="https://i.imgur.com/U4PZOCI.png" height="230rem"/></center> NSPを学習しないと、 QNLI, MNLI, SQuAD 1.1.で結果が大きく下がることがわかる(と、論文中に書いてあるものの、**NSPの必要性についてはalbertなど以降のモデルで疑問視されています**)。 また、LTRモデルも全てのタスクで結果が落ちています。(と、論文中に書いてあるものの、**パラメータ数を大幅に上げたGPT-3では高精度である結果もあり**)。 ### モデルサイズの影響 <center><img src="https://i.imgur.com/P7W4Zmf.png" height="230rem"/></center> 全て5回別の乱数の値からFine-tuningを行い、その平均精度を記載。全てにおいて、より大きなパラメータは、より良い結果を残している。 新たに作成したBERT LARGEはBERT BASEに比べ、110Mパラメータ→340M パラメータに増加。 ## 豆知識 BERT関係で散見する<img src="https://www.space-i.com/wp-content/uploads/2019/11/bert-1.png" width="20px"/>は、以前のSOTAモデルELMOから来ていると思われます。学習モデルの名前の由来について調べると面白いです。個人的に好きな名前はInceptionNetです(みんな映画見て)。 ![](https://i.imgur.com/nDQkJ78.png) 出典:https://github.com/thunlp/PLMpapers ## ひとこと 読むべき2021年までのNLP論文best5に入ると思います。 `*BERT`のベースとなっているので再び読んでおいてよかったです。