BERTモデルとファインチューニング
1.はじめに
前回は、Transformerのモデルアーキテクチャについて述べました。
今回はそのTransformerの派生系である通称BERT(Biderectional Encoder Representations from Transformer)についてまとめていきます。
今回もTransformerによる自然言語処理で学んだことを自分なりの言葉で書いていきます。
2.BERTとは
まず初めに、BERTとは何者かについて軽く紹介します。
BERTとは、先述した通りTransformerの派生系のモデルの一種です。
その特徴は大きく以下の二点が挙げられます。
- 名前にもある通り従来のTransformerとは異なるAttention機構である双方向AttentionをAttention機構として採用している。
- Transformerのエンコーダスタックのみで構成されおり、事前学習とファインチューニングという2ステップフレームワークである。(図1参照)
図1 BERTの各ステップの内容
大枠で捉えるとこの二点の採用によって、BERTは高い精度を誇るモデルとなりました。
この二点についてより詳しく述べていきます。
3.BERTのアーキテクチャ
まず初めにBERTのモデルアーキテクチャについて述べていきます。
BERTにおいてモデルアーキテクチャは元のTransformerのエンコーダ層のみを採用しているものの、その中身自体の変更はほぼないそうです。
原論文[1]でも以下のように述べられています。
Because the use of Transformers has become common and our im- plementation is almost identical to the original, we will omit an exhaustive background descrip- tion of the model architecture and refer readers to Vaswani et al. (2017) as well as excellent guides such as “The Annotated Transformer.”
なので私もBERTのアーキテクチャについては省略します。よければ前稿をみていただければ幸いです。
4.双方向Attention
次はBERTの特徴の一つでもある双方向Attention機構について述べていきます。
文を時系列通り始めの文字から最後の文字に向けてのみAttentionするのではなく、
最後の文字から最初の文字に向けてもAttentionすることで文の意味を双方向から見ることを可能にしたAttention機構のことです。
TransformerにおけるMulti-Head Attentionであれば以下の文の意味を理解する際にデコーダスタックのマスク付きMulti-Head Attentionによってitの意味がわからなくなってしまう可能性があるが双方向Attentionは次で紹介するMLMによってこの問題を解決しました。
The cat sat on it because it was a nice rug. #本来の文
The cat sat on it [MASK] #マスクをかけた後の分
これではitが何を指すかわからない。
下図は原論文[1]でも紹介されているBERT, GPT, ELMoそれぞれにおけるAttention機構の比較図です。
図2 論文[1]より引用したAttention機構の比較
図2からも分かる通りこの中でGPT, ELMoは各層で単方向のAttentionを行っているが、
唯一、BERTのみ双方向からのAttentionを全ての層で行なっている。
5.事前学習
次は、特徴の2つ目のうちステップ1である事前学習についてまとめていきます。
BERTの事前学習として、以下の二つが紹介されています。
- MLM(マスク付き言語モデル)
-
NSP(Next Sentence Prediction)
このうちまずMLMについてまとめていきます。
< MLM(マスク付き言語モデル) >
-
マスク付き言語モデル
: ある文章において一部のトークンを特殊トークンである[MASK]に置き換えて、その[MASK]に入るトークンを予測する言語モデルのこと。
従来のTransformerでは文章の一部を文の進行方向から一括で[MASK]に置き換えていましたが、
BERTではこの[MASK]に置き換える作業を文章を構成する単語の中からランダムに置き換えるという特徴があります。
またTransformerではデコーダスタックにてマスク付きの処理を行なっていましたが、
BERTではエンコーダスタックで行っています。
これによってTransformerの抱えていたモデル訓練における限界を更新することができました。
そして、[MASK]込みの全文章を再構築して事前学習するのではなく[MASK]の部分のみを予測するという特徴もあります。
これによって文全体の事前学習モデルと[MASK]の部分の事前学習モデルの二つを得ることができるのです。しかし、BERTではファインチューニングでは[MASK]部分が適用されないため事前学習とファインチューニング部分での誤差が生じるという問題も同時に浮かびます。
この問題に対して、BERTの設計者は[MASK]をランダムに付与する際に以下のように付与することで対処しました。
- 前トークンのうち15%のトークンをランダムに[MASK]とする。
- この15%の[MASK]トークンのうち、
- 80%を[MASK]トークンに置き換える。
- 10%を他のランダムなトークンで置き換える。
- 残りの10%をマスクせずにそのまま使う。
原論文[1]では以下のように表現されている。
図3 [1]より引用したMLMの[MASK]トークンの付与方法
次はもうひとつの事前学習タスクであるNSPについてまとめていきます。
< NSP(Next Sentence Prediction) >
-
NSP
:二つの文章が与えられたとき、その二つの文章の関連性を理解することを目的としたタスクのこと。
NSPでは入力のトークン列に対して以下の二種類の特殊トークンを追加します。 - [CLS]
:二値分類トークンで、最初のトークン列に次のトークン列に続くかどうか予測させるために追加する。 - [SEP]
:各系列の終端を示す分離トークンのこと。
これらの情報を付与するためにEmbedding層において追加の情報が必要となるため、
TransformerにおけるトークンEmbedding、位置Embeddingに加えて文章の関係性を表すセグメントEmbeddingを追加してEmbedding層としています。
[1]より引用 BERTにおけるEmbedding層
この二つの事前学習によって各下流タスクに対して、対応が容易になりました。
次はステップ2であるファインチューニングについてまとめていきます。
6.ファインチューニング
-
ファインチューニング
:BERTが各種言語タスクにおいて、事前学習モデルをもとにしてそれぞれのタスクに特化したモデルを作るための工程
事前学習のモデルをパラメータの初期値として解きたいタスクに用いる転移学習の一種で、
ファインチューニングではパラメータの初期値を固定せず、学習と共に変動させるという特徴があります。
この手法のメリットとしては複数ある言語タスクに対して、
事前学習モデルのパラメータを初期値として用いることで比較的少ない学習データから各タスクに対してそれぞれのタスクに特化した高性能のモデルを得ることができるため、コストの削減につながります。
7.おわりに
今回は、現在NLPの分野において用いられているモデル(RoBETRa,DistilBERT,ALBERT etc.)の派生元となったBERTについて述べました。
実際私自身、ニューラルネットワークを使った言語モデルとして初めに触ったのがBERTというぐらいにはベースとなるモデルなので今回でより理解が深まったのは良かったです。
ここからさまざまな言語タスク特化モデルが生まれたとなると感動しますね(?)。
Discussion