ニューラル言語モデルを用いたステガノグラフィは2017年に提案された。https://aclanthology.org/P17-3017/ ステガノグラフィの手法自体は言語モデルがニューラルネットであることに依存しているわけではないが、言語モデルが生成するテキストがそれ以前とは質的に異なることが大きい。以前の n-gram 言語モデルは、局所的な単語列が自然なだけで、テキスト全体を見ると支離滅裂であり、テキスト生成モデルとしては使い物にならなかった。これに対し、ニューラル言語モデルの登場後は、内容的に一貫したテキストが生成できるようになり始めた。その後現れた大規模言語モデルの流暢さは誰もが知る通り。
言語モデルは単語列が与えられたとき、それに続く単語候補に確率分布を与える。この確率分布に基づいてランダムに単語を選択し、単語列にその単語を追加するという操作を繰り返す、つまり自己回帰型の処理を行うことでテキストが生成できる。高性能な言語モデルは、文脈に即した単語候補にだけ高い確率質量を割り振るので、雑なランダム生成で十分に自然なテキストが得られる。
言語モデルをステガノグラフィに応用するのは簡単。送信者は、適当な規則を使って単語候補に確率分布に応じたビット列を割り当て、埋め込みたい秘密データに応じて単語を選べば良い。ビット列の割り当てには、ハフマン符号や算術符号といった古典的な符号化が使える。受信者は、言語モデルとビット列割り当て規則を事前に共有しておけば、送信者とほぼ同じ手順をなぞることで秘密データが復号化できる。
言語モデルの導入によりペイロード容量が劇的に向上した。具体的な手法や設定次第だが、単語あたり2-4ビットは埋め込める。https://aclanthology.org/D19-1115/ これが意味するところを知るために、具体的に何の秘密データを埋め込むか考えてみよう。いくらペイロード容量が高いといっても、テキストに画像を埋め込むのは無謀。そうするとテキストぐらいしか候補が残らない。テキストを秘密データとするには、まずはテキストをビット列に変換しなければならない。ここで、実はステガノグラフィに使うビット割り当て規則がそのまま流用できる (というよりも、そちらが符号化の典型的な使い方であって、ステガノグラフィの方が応用)。結論として、偽装テキストに、それとほぼ同じ長さの秘密テキストが埋め込める。
これは冷静に考えると驚くべきこと。適当なテキストがあったとき、それと同じくらいの長さの、内容的には無関係の別のテキストが隠れているかもしれないのである。