
書記が数学やるだけ#888 BERTとその派生モデル,ELMo
自然言語処理モデルのうちBERTについて。
問題

説明
BERT (Bidirectional Encoder Representations from Transormers)は、文の前後関係を同時に考慮する双方向のTransformer Encoderを用いた言語モデルであり,2018年にGoogle AIにより発表された。

BERTの事前学習では,単語を一部マスクして予測する「Masked Language Modeling(MLM)」と、文のつながりを判断する「Next Sentence Prediction(NSP)」を行う。

BART(Bidirectional Auto-Regressive Transformer) は、BERTとGPTの特徴を組み合わせたEncoder-Decoder型のモデルである。事前学習では入力文にノイズを加えて,元の文を再構成するタスク(デノイジング)を用いる。

RoBERTa(Robustly optimized BERT approach) は,BERTの事前学習を改良し,より大規模なデータと長時間の学習で精度を向上させたモデルである。BERTとの変更点として,「マスクする単語を動的に変更」「NSPを使用しない」「バッチサイズを大きくする」「サブワードの語彙サイズを大きくする」といった点が挙げられる。

ALBERT (A Lite BERT)は,BERTの構造を見直してパラメータ数を大幅に削減した軽量モデルである。Embedding層の分解(Factorized Embedding)やTransformerの重み共有によって,モデルサイズを小さくしつつ精度を保ったまま高速化を実現した。

ELMo は,文脈に応じた単語の意味を動的に表現する双方向LSTMベースの言語モデルであり,前後の文脈を使って単語ベクトルを生成するため「同じ単語でも意味の違いを反映できる」ことが特徴である。

解答
ELMo は双方向LSTMを用いて文脈に応じた単語表現を生成するモデルで、同じ単語でも前後の文脈に応じて異なる埋め込みを与える点が特徴である。
GPT はTransformerのデコーダ構造を用いた自己回帰モデルであり、左から右への一方向的な文生成に優れる。
BERT はTransformerのエンコーダを基盤とし、マスクされた単語の予測と文の関係性学習により双方向的な文理解を可能とする。


BERTでは、単語の埋め込みベクトルとモデル内部の隠れ状態の次元(H)が同じであるため、Embedding行列はサイズが非常に大きくなる。ALBERTでは、語彙ベクトル(次元E)とモデル内の次元Hの間に中間層を挿入し、Embeddingを分解する。ここで一般にV>>Hであることから以下の近似式が成り立つ。

このembedding matrixの分解により,約27Mの削減が達成される。
BERT-Largeは,24層のTransformer Blockを持ち,それぞれが独立したパラメータを持っている。一方でALBERT-LargeではこれらのBlock間で重みをすべて共有する設計を採用しているため,1層分のパラメータのみで済む。これにより約289Mの削減が実現できる。

本記事のもくじはこちら: