この記事の読者
キーワード・知ってると理解がしやすい
Index
出典
2018年に Google から発表されたニューラル言語モデル.
BERT とは
Bidirectional Encoder Representations from Transformers の略で、「Transformerによる双方向のエンコード表現」と訳される.
特徴
BERT の特徴の一つとしては、文脈を考慮した分散表現を生成できること.
(例えば、BERT から得られる分散表現は、同じ単語でも文脈が変わると、それに応じた値をとる.)
これは、Attention という手法により、離れた位置にある情報も適切に取り入れることができるという特徴があるため. この特徴により、BERT は文脈を深く考慮したような処理が可能になった.
学習
BERT には事前学習 / Pre Trainingとファインチューニング / Fine Tuningと呼ばれる二つの学習過程がある.
事前学習 / Pre Training
事前学習では、大量の文章のデータを用いて汎用的な言語のパターンを学習する.
学習は、ラベルが付いているデータではなく、 文章データのみ、つまり、ラベルなしデータを利用する.
ラベルなしデータを用いて学習するために以下の二つの工夫を用いる.
マスク付き言語モデル /
Masked language modeling (MLM)
ラベルなしといっても、学習させるにはなんらかのラベルもしくは、推測するターゲットが必要になる.
そこで、ある単語を周りの単語から予測するというタスクを用いる.
ランダムにトークンを[MASK]という特殊トークンに置き換え、BERT の入力とする. そして、[MASK] の部分の単語を予測する.
このように、一部のトークンが [MASK] である文章から、[MASK] に入るトークンを予測する言語モデルを マスク付き言語モデル とよぶ.
Next Sentence Prediction
関連する2つの文章(「文章」と「質問文」など)を利用して、2つ文章に関連性があるかどうかを予測するタスクを用いる.
データセットとしては、関連する2つの連結された文章 50% と、
ランダムに組み合わせた文章 50% が利用される.
そして、特殊トークン [CLS] に対応する出力として、関連しているかどうかを判定する.
- 「今日は雪だった。」
- 「明日も寒い。」
このとき、入力されるトークンは、以下のようになる.
ファインチューニング / Fine Tuning
ファインチューニングでは、比較的少数のラベル付きデータを用いて、
BERT を特定のタスクに特化するように学習する.
そのために、BERT と分類器などを組み合わせることで、個別のタスクに特化したモデルを構築する. このとき、BERT には事前学習 / Pre Trainingを行ったモデルを用いて、BERT と分類器の両方の学習を行う. この学習をファインチューニング / Fine Tuningと呼ぶ.
事前学習したモデルを特徴抽出器として、簡易的に、高精度に、利用できる点も BERT の利点.
学習する際のパラメータは、BERT 部分は事前学習のパラメータを、 新たに加えられた接続部分の分類器はランダムなパラメータを、 初期値として学習を開始して、それぞれのパラメータを更新、最適化する.
構造
分散表現を取得する手法にニューラルネットを用いられてきた.
ネットワークには、Feed Forward Neural Network (FFNN) が Word2Vec などに使われ、
Recurrent Neural Network (RNN) 系の LSTM が ELMo などに用いられている.
しかし、それぞれのネットワークを言語モデルとして自然言語に適用しようとすると
様々な問題が生まれる.
ネットワーク | 利点 | 欠点 |
---|---|---|
FFNN | (NN を使用) | 単語の順番を考慮できない |
RNN | 単語の順番を考慮できる | 直近の時系列の情報が大きくなり、 離れた時系列の情報が薄くなる. 順々に処理するために、並列で計算できない. |
BERT も「文章をトークンに分割したものを入力として、それぞれのトークンに対応するベクトルを出力する」という構造は、 他ネットワークを利用した手法と同様.
RNN のようなネットワークとは異なり、BERT はあるトークンの情報を処理する際に、 他のトークンの情報も直接参照して処理を行う. このとき、それぞれのトークンの情報にどの程度の注意を払うか (Attention) も含め学習する. このような方法は Attention (注意機構) と呼ばれる.
Attention を用いることで、BERT は離れた位置にあるトークンの情報も適切に取り入れることができ、 より深く文脈を考慮した分散表現を得ることができる.
Transformer
BERT では、Transformer とうモデルで提案された、 Transformer Encoder と呼ばれる Attention を用いたニューラルネットワークを用いている.
Transformer Encoder のそれぞれの層は、主に Multi Head Attention と Feedforward Network から構成されている.