言語処理における事前学習(Pre-training)とBERT|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #3

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

近年猛威を振るっているDeepLearningの言語処理への応用についてまとめていければと思います。
#1では深層学習による自然言語処理」の内容を要約、#2では対話(dialog)問題を取り扱う統合的なフレームワークのParlAIと具体的なタスクのご紹介を行いました。

#3では言語処理における事前学習(Pre-training)とBERT(Bidirectional Encoder Representations from Transformers)について取り扱います。
以下目次になります。

1. 事前学習(Pre-training)とは
2. BERTの仕組み
3. BERTのContribution
4. まとめ

 

1. 事前学習(Pre-training)とは
事前学習(Pre-training)を考えるにあたっては、画像認識で用いられる転移学習(transfer learning)と同様に考えておくと良いです。画像認識の初期の研究において、AlexNet[2012]、VGGNet[2014]、GoogLeNet[2014]、ResNet[2015]などが有名で、これらは2013~2017頃の研究で他のタスクを解くにあたって学習済みのモデルをベースにして他のタスクを解くなどで再利用されています。特にVGGNetとResNetをベースにした研究が多くあり、近年だとResNetベースが多く見受けられます。
上記の説明だけだとわかりにくいので、具体的に例を挙げると物体検出を行うモデルであるFasterRCNNやSSDにおいては、VGGNetをベースに用いた上で後ろの処理で物体検出が行えるようになっています。この辺が機能する背景としては、ニューラルネットの入力に近い部分はタスク特化というよりも、データに関して汎用的に用いることができるような抽象的な特徴量を抽出しているというのがあります。
ここでもう少し踏み込むと、事前学習とは表現学習(Representation Learning)と似た文脈で捉えることができます。入力に近い部分での畳み込み処理(フィルタ処理)のところでは画像の抽象的な表現を学習していると考えることができます。言語処理における表現学習の例としてはWord2Vecが挙げられますが、Word2Vecでは単語(離散オブジェクト)をベクトル化しており、これは表現を学習していると考えることができます。同様に系列変換モデルの一つとして翻訳の精度向上に繋がったSeq2Seqにおいても、encode部分は表現学習と考えることができます。
事前学習モデルは強力な考え方であるものの言語処理においては従来の形だとまだまだだったところに対して、BERTでは強力な事前学習された(pre-trained)表現(representation)を獲得し、事前学習されたモデルをベースにfine-tuningを行うことでState-of-the-Artを実現できました。これがBERTの主なContributionとされてます。


2. BERTの仕組み
1節では前提知識として、事前学習について整理したので、2節ではBERTの仕組みについてまとめていきます。下記のオリジナルの論文を元に話を進めていきます。

[1810.04805] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERTの仕組みについて考える際にはまず、"Bidirectional Encoder Representations from Transformers"の略だということから把握すると良いです。ここで、EncoderとRepresentationは1節で説明した通り、Transformerは別論文の参照(Attention Is All You Need; https://arxiv.org/abs/1706.03762)なので、注目はBidirectionalです。

f:id:lib-arts:20190502180508p:plain
Bidirectionalを説明しているのが上記のFigure1です。比較としてOpenAI GPTやELMoなどが挙げられています。三つを比較することで、BERTだけが唯一双方向性(Biderectional)を持つことがわかります。あくまで推測ですが、言語処理では時系列モデルと同様に左から右に(left-to-right)の構造で考える方が自然の印象のため、Biderectionalというのは直感に反しているという印象もあり、そういう意味で一方向性のモデルの方がこれまで用いられてきたのではないかと思います。
また、BERTの入力にあたって、Word2Vecのような単語単位のベクトル表現(Token Embeddings)だけではなく、Segmentation EmbeddingsやPosition Embeddingsも考慮しています。

f:id:lib-arts:20190502182114p:plain
Figure2でこちらに関する概念図がまとまっており、上記のような形でEmbeddingsの加算を行っています。

 

3. BERTのContribution
2節ではBERTの仕組みについてまとめましたので、3節ではBERTのContributionにフォーカスをあてまとめたいと思います。引き続き下記をベースにまとめていきます。

[1810.04805] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Abstractの言及では、BERTは「概念的にシンプルな11のNLPタスクでSOTAをを獲得した事前学習のモデル」とされています。

f:id:lib-arts:20190502183152p:plain
具体的には論文の4節で言及があり、上記の表はGLUEスコアを比較した表です。

f:id:lib-arts:20190502183211p:plain
また、4.2節ではSQuADについても言及されており、上記の表では結果についてまとまっています。


4. まとめ
#3では言語処理における事前学習モデルであるBERTについてまとめました。
BERT以前で言語処理における事前学習モデルで汎用的なレベルで話題になるケースはそれほどはなかった印象なので(Word2Vecは事前学習とみなせなくもないですがあくまで単語レベルであり、文のレベルではなかなかなかった印象です)、今後の動向をチェックしていくと面白そうです。

 

↓また、当記事のシリーズの内容を元に再構成と少しだけ加筆を行い電子書籍化を行いました!pdf版が欲しいなどありましたら下記をご購入いただけたら大変嬉しいです!!