オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】BERT #アルゴリズム編

この記事の読者

深層学習・ディープラーニングの手法の1つである「BERT」について知りたい.

キーワード・知ってると理解がしやすい

Index

出典

2018年に Google から発表されたニューラル言語モデル.

BERT とは

Bidirectional Encoder Representations from Transformers の略で、「Transformerによる双方向のエンコード表現」と訳される.

特徴

BERT の特徴の一つとしては、文脈を考慮した分散表現を生成できること. (例えば、BERT から得られる分散表現は、同じ単語でも文脈が変わると、それに応じた値をとる.)

これは、Attention という手法により、離れた位置にある情報も適切に取り入れることができるという特徴があるため. この特徴により、BERT は文脈を深く考慮したような処理が可能になった.

学習

BERT には事前学習 / Pre Trainingファインチューニング / Fine Tuningと呼ばれる二つの学習過程がある.

事前学習 / Pre Training

事前学習では、大量の文章のデータを用いて汎用的な言語のパターンを学習する.

学習は、ラベルが付いているデータではなく、 文章データのみ、つまり、ラベルなしデータを利用する.

ラベルなしデータを利用するメリットとしては、比較的容易に大量のデータセットが手に入るから.



ラベルなしデータを用いて学習するために以下の二つの工夫を用いる.

  1. マスク付き言語モデル / Masked language modeling (MLM)
  2. Next Sentence Prediction

マスク付き言語モデル /
Masked language modeling (MLM)

ラベルなしといっても、学習させるにはなんらかのラベルもしくは、推測するターゲットが必要になる.
そこで、ある単語を周りの単語から予測するというタスクを用いる.

Word2Vec の CBOW のようなモデル

yhayato1320.hatenablog.com

ランダムにトークンを[MASK]という特殊トークンに置き換え、BERT の入力とする. そして、[MASK] の部分の単語を予測する.

ランダムに選ばれたトークンの80% を [MASK] トークンに、 10% をランダムなトークンに、10% をそのままにするという手法があり、 このような手法の精度の向上が報告されている.



このように、一部のトークンが [MASK] である文章から、[MASK] に入るトークンを予測する言語モデルマスク付き言語モデル とよぶ.

Next Sentence Prediction

関連する2つの文章(「文章」と「質問文」など)を利用して、2つ文章に関連性があるかどうかを予測するタスクを用いる.

データセットとしては、関連する2つの連結された文章 50% と、 ランダムに組み合わせた文章 50% が利用される.
そして、特殊トーク[CLS] に対応する出力として、関連しているかどうかを判定する.

例えば、以下の2つの文章を1つの入力として利用する場合を考える.

  • 「今日は雪だった。」
  • 「明日も寒い。」

    • このとき、入力されるトークンは、以下のようになる.
      '[CLS]', '今日', 'は', ' 雪', 'だっ', 'た', '。', '[SEP]', ' 明日', 'も', '寒い', '。', '[SEP]'

ファインチューニング / Fine Tuning

ファインチューニングでは、比較的少数のラベル付きデータを用いて、 BERT を特定のタスクに特化するように学習する.

そのために、BERT と分類器などを組み合わせることで、個別のタスクに特化したモデルを構築する. このとき、BERT には事前学習 / Pre Trainingを行ったモデルを用いて、BERT と分類器の両方の学習を行う. この学習をファインチューニング / Fine Tuningと呼ぶ.


BERT では、個別のタスクを解くために、タスク内容に応じて BERT の新しい分類器などを接続するなどして、 タスクに特化したモデルを作る. つまり、言語タスクにおいて、BERT は特徴抽出器のような働きをする.


事前学習したモデルを特徴抽出器として、簡易的に、高精度に、利用できる点も 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 から構成されている.

yhayato1320.hatenablog.com

参考