ルックアヘッドマスクとは、Transformerなどの自己注意機構において、未来の単語情報をモデルが参照することを防ぐための手法です。主に言語生成タスクの学習時に用いられ、正解データ(未来の情報)を先読みしてズルをすることを防ぎ、正確な予測能力を養います。
ルックアヘッドマスクとは
一言でいうとルックアヘッドマスクとは、機械学習モデルがテキストを生成する際、未来の情報を見ないように制限するためのフィルタリング技術です。
詳しく解説
自己注意機構(Self-Attention)を採用したTransformerなどのモデルは、文中のすべての単語の関係性を同時に計算するため、本来なら未来に出現するはずの単語の情報にアクセスできてしまいます。例えば、文章の途中までを生成するタスクにおいて未来の単語が見えていると、モデルは自力で考える代わりに正解をそのままコピーしてしまい、正しい学習が行えません。これを防ぐために、アテンション行列の未来の要素に対応する部分をマスク(無効化)する仕組みがルックアヘッドマスクです。これにより、各単語はそれ以前に登場した単語にしか注意を向けられなくなります。
具体例・使われ方
例えば、「今日は良い天気ですね」という文章を左から右へ順番に生成するタスクを考えます。「今日は」を生成している時点では、「良い」「天気」といった未来の単語が存在することをモデルに知られては困ります。ルックアヘッドマスクを適用することで、「今日は」の時点ではそれ以前の文脈のみを参照させ、未来の単語を参照するアテンションの重みをゼロにマスクして学習を進めます。
似た用語との違い
パディングマスクとは、文章の長さを揃えるために追加された無効なトークン(パディング)を無視するための仕組みであるという点で異なります。これに対し、ルックアヘッドマスクは有効な単語であっても、時系列的に未来に位置するものを意図的に隠すという目的を持っています。
注意点
ルックアヘッドマスクは主に学習時にデコーダー側で使用されるものであり、すべてのモデルやタスクで常に必要なわけではありません。例えば、文章を双方向から理解するBERTのようなエンコーダー主体のモデルでは、むしろ文脈全体を把握するために未来の情報を見る必要があるため、ルックアヘッドマスクは適用されません。