MLMとは
Masked Language Model / マスク化言語モデル
入力トークンの一部をランダムにマスクし、その単語を周囲の文脈から予測させることで双方向の言語表現を学習する事前学習手法
ひとことで言うと
文中の単語を一部隠し、前後の文脈からその単語を当てさせることで言葉の理解を学習させる手法。
概要
MLM(Masked Language Model、マスク化言語モデル)とは、入力テキストの一部のトークンをランダムに特殊トークン([MASK]等)へ置き換え、モデルにその元の単語を周囲の文脈(前後双方向)から予測させることで、言語表現を学習させる事前学習タスク。 左から右へ一方向に次の単語を予測する自己回帰型の言語モデリングと異なり、MLMは文中の各単語を前後双方向の文脈を同時に参照して予測するため、文全体の意味を踏まえた表現を獲得しやすい。 BERTの事前学習タスクの1つとして採用されたことで広く知られるようになり、RoBERTa・ALBERT等、BERT系列の派生モデルの多くも同様のMLMを事前学習に用いている。
背景
従来の言語モデルの多くは、左から右へ一方向に次の単語を予測する形で学習されており、文全体の双方向の文脈を同時に考慮した表現を学習しにくいという制約があった。MLMは、一部の単語を隠しその周囲の文脈から復元させるタスクを通じて、双方向の文脈を踏まえた言語表現を教師なしで学習できるよう考案された。
歴史
MLMの着想は、文中の一部の単語を空欄にして推測させる心理言語学の「クローズ法(cloze procedure)」(Taylor, 1953)に由来する。 2018年: Googleの研究チームが、BERTの事前学習タスクの1つとしてMLMを採用した論文「BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding」を発表し、広く知られるようになった。
コード例
fill-maskパイプラインによるマスク単語予測
from transformers import pipeline
fill_mask = pipeline("fill-mask", model="bert-base-uncased")
results = fill_mask("Paris is the [MASK] of France.")
for r in results:
print(r["token_str"], r["score"])利点
- 前後双方向の文脈を同時に参照して単語を予測するため、文全体の意味を踏まえた表現を学習しやすい
- ラベル付けされたデータを必要とせず、大規模な生テキストから教師なしで学習できる
欠点
- 事前学習時にはマスクされた一部のトークンのみが予測対象となり、学習効率が自己回帰型の言語モデリングと比べて低いとされる
- マスク用の特殊トークンはファインチューニング時の入力には現れず、事前学習と本番利用の入力分布に差異が生じる
比較
関連用語
よくある質問
MLMと自己回帰型の言語モデリングは何が違う?
自己回帰型は左から右へ次の単語のみを予測するのに対し、MLMは文中のマスクされた単語を前後双方向の文脈から予測する。この違いにより、MLMは文全体の意味を踏まえた表現の獲得に向くが、テキストを1トークンずつ生成する用途には直接使いにくい。