BERT・XLNet に学ぶ、言語処理における事前学習|電子テキスト紹介 #7

f:id:lib-arts:20200317005437p:plain

当ブログの内容を元に電子テキストやその印刷版を、技術書典やnoteやboothなどのプラットフォームで販売を行なっているのですが、あまり内容について紹介してこなかったのでちょっとした宣伝も兼ねてご紹介していくシリーズです。
#3では「Deep Q-Network を通して学ぶ、強化学習超入門」について、#4では「DeepLearning 関連論文の読み方手引き」の上巻について、#5では簡易Pythonコードで学ぶ、実践的自然言語処理入門」について、#6では「CRISP-DMをベースに考察するAI・機械学習・Data Scienceプロジェクトのマネジメント」についてご紹介しました。

Deep Q-Networkを通して学ぶ、強化学習超入門|電子テキスト紹介 #3 - Liberal Art’s diary

DeepLearning 関連論文の読み方手引き(上巻)|電子テキスト紹介 #4 - Liberal Art’s diary

簡易Pythonコードで学ぶ、実践的自然言語処理入門|電子テキスト紹介 #5 - Liberal Art’s diary

CRISP-DMをベースに考察するAI・機械学習・Data Scienceプロジェクトのマネジメント|電子テキスト紹介 #6 - Liberal Art’s diary
#7では、言語処理における事前学習モデルとして近年話題にあがりやすいBERTについて取り扱った、、「BERT・XLNet に学ぶ、言語処理における事前学習」についてご紹介します。

以下目次になります。
1. 作成にあたってのコンセプト
2. 簡単な内容の紹介
3. 今後のアップデート予定について
4. まとめ


1. 作成にあたってのコンセプト
こちらのテキスト作成にあたっては、BERTなどの言語処理におけるDeepLearningの導入についてなかなかまとまった情報が少ないため、研究トレンドを踏まえた上でまとめられればということで作成しました。「深層学習による自然言語処理」などはなかなか参考になる内容だったのですが、出版が2017年5月で2016年頃までの話題が中心であり、TransformerやBERT関連の情報が含まれていないため、こちらの本の次に読む内容にできればということで記述を行いました。

深層学習による自然言語処理 | 書籍情報 | 株式会社 講談社サイエンティフィク

基本的には上記の「深層学習による自然言語処理」のトピックを踏襲しながら、BERT関連の情報を一次情報である論文に可能な限り即して記載しました。
現在は第2版となっており、初版ではBERT、XLNet、RoBERTaの内容を中心に事前学習モデル(pretrained model)の理解ができるようにまとめていましたが、Transformer関連の記載があまり良くなかったので第2版でTransformer関連の情報を大幅に追加を行いました。Attentionからself attention、Transformer、BERTに至る試行錯誤の過程を参照の論文の概要を元に確認していく、そんな内容になっているかと思います。
また、Transformerの理解がさらに深まるように、2020年1月に発表されたReformerも第2章の発展項目として追加しました。いくつかの研究の視点から言語処理における事前学習を眺めることで関連分野の知見が深まる、そういった内容にすることができているのではないかと思います。


2. 簡単な内容の紹介
2節では簡単に内容についてご紹介していきます。

f:id:lib-arts:20200317011552p:plain

まず第1章では、序論として言語処理の基本的な内容や数式定義である言語モデルについて確認した上で、2013年のWord2vec、2014年のseq2seqについて取り扱っています。こちらは基本的には「深層学習による自然言語処理」の要約を中心に、追記が望ましいところは追記を行いました。

f:id:lib-arts:20200317011622p:plain

f:id:lib-arts:20200317011640p:plain

次に第2章ではTransformerについて取り扱っています。2-3節でself-attentionに関する論文[2017]、2-4節でDecomposable Attentionの論文[2016]を紹介した上で、2-5節でTransformerについて紹介しています。というのも、2-1節で取り扱う、2014年頃のAttentionの記載だけでTransformerのモジュールの概要を理解するのにはギャップがあり難しいためです。そのため、2-3節と2-4節でそれぞれ論文を紹介することで、Transformerにおけるself-attentionの、Dot Product Attentionがスムーズに理解できるようにしました。また、2-6節でReformerについて追記することで、Transformerモジュールの考察がより多面的に行えるようにしました。

f:id:lib-arts:20200317012637p:plain

続く第3章では、BERTについて取り扱っています。3-1節でまず事前学習(Pretraining)やfinetuningの意味合いを理解するにあたって、画像処理を例に出しながら説明を行っています。次に3-2節でBERTにおける事前学習について紹介し、Masked Language ModelingとNext Sentence Predictionという二つのlossについて紹介しています。また、BERTの事前学習が教師なし学習であるということについても解説を行っています。3-3節では評価指標のGLUEについて確認しています。

f:id:lib-arts:20200317013137p:plain

第4章ではBERTのTensorFlow実装の確認を行い、モデルの実装の把握を行っています。サンプルの実行からコードの読解までを行っています。論文だけだと細かいところが把握しにくいと思うので、実際にソースコードを読み進めていくにあたって参考になるようにそれぞれまとめています。

f:id:lib-arts:20200317013503p:plain

第5章ではXLNetについて取り扱っています。XLNetのテーマとしてはBERTのようなAutoEncoder系のモデルではなく、XLNetはAutoRegressiveの考え方をベースにしつつ、モデルに双方向性を付与するにあたってPermutation Language Modelingという考え方を導入しています。Permutation Language Modelingについては5-4節で取り扱っています。

f:id:lib-arts:20200317013823p:plain
第6章ではRoBERTaについて取り扱っています。RoBERTaはBERTのチューニングを行った2019年7月のモデルです。オリジナルのBERTの学習にあたっての設定はまだ改善の余地を残していたというのを実験によって示した論文になっています。また、6-4節ではSotAの更新をどのように見るべきかについて記しました。


3. 今後のアップデート予定について
今後のアップデートとしては、ALBERTやT5などのモデルについての取り扱いも考慮しましたが、なるべく体系的に記述していくにあたって一旦は別のテキストで取り扱うことにしました。

理由としては、こちらはどちらかというとBERTに関するベースの理解が深まるように記述したいというのがあります。そのため、必要以上にトレンドを追うと文量が増え、少々冗長になるのではと考えました。逆にReformerは追記を行ったのですが、理由としてはTransformer関連の記載が少なかったためです。
これらを踏まえ、今後のアップデートを行うならSuperGLUEのような追加のデータセットについての情報や、モデルの軽量化の研究が多く出てくるようなら、ALBERTを軸にしてモデルの軽量化について追記をしようと思います。


4. まとめ
#7では、言語処理における事前学習モデルとして近年話題にあがりやすいBERTについて取り扱った、、「BERT・XLNet に学ぶ、言語処理における事前学習」についてご紹介しました。
#8では、物体検出の研究トレンドについて取り扱った、「DeepLearningを用いた物体検出の研究トレンド」についてご紹介します。