シュードポカリプス
原文は Dynomight により に公開されました。 このブログを購読する
ひとつ予想がある。インターネット上にそれなりの量の文章を別々の名前で投稿すれば、その正体は文章そのものだけで紐づけられてしまう、というものだ。これが可能になるのは(と私は予想するのだが)、あなたが書くものすべてに残る統計的な“指紋”のためだ。
誰かが書いたばかりの真新しい文章を貼り付けると、その書き手があらゆる名前で過去に公開した文章へのリンクを返してくれるウェブサイトを想像してほしい。完璧ではないが、かなり精度は高い。私の知る限り、そうしたサイトは存在しない――少なくとも公開されたインターネット上には。だが、それは可能だし、すぐに容易になるだろうと私は睨んでいる。これは仮名でのブログ運営にとって、少なからぬ困難をもたらすだろう。
注記:このエッセイの大部分は2025年半ばに書いたのだが、その後私は間抜けにも1年間寝かせ、誰も読まないであろう定理の記述をちまちまと弄っていた。1 その間に、LLMは文章から書き手を推測するのがずっと上手くなった。(この投稿の草稿の最初の1000語を渡せば、Claude 4.8はそれが私だとわかる。)それでも、これはまだ始まりに過ぎないと思っている。ますます無名の書き手が、ますます短い文章片から特定されるようになるだろう。たとえ異なる文体で、まったく無関係な主題について書いていてもそうなるはずだ。そして、私がこれまでにあらゆる偽名で書いてきたものすべてが、やがて本名に紐づけられることになるだろう。2
より強い予想は、私たちはある種の汎化されたシュードポカリプスへ向かっているということだ。おそらく将来、実質的にどんな高帯域なチャネルを通じて世界と関わる場合でも、あなたは自分自身を特定してしまうことになる。たとえば公共の場でマスクを被り、喉元で呟いた声をボイスチェンジャーに通してだけ話すとする。結構だが、それでも体型や歩き方、化学的な痕跡から特定されるだろう。あるいは車で追跡されるのが嫌で、スマホを持ち歩くのをやめ、なんとか議員を説得してナンバープレートを禁止させたとする。問題ない。車は小さな傷やエンジンの独特なノイズから追跡され続ける。あるいはネット上で追跡されたくなくて、ブラウザのフィンガープリントを隠し、Moneroだけで買い物をし、3つのVPNを経由して接続したとする。それでも大丈夫。ページをスクロールする際の指の微妙な動きから特定されるだろう。私たちは皆、あまりにもユニークであり、情報理論的な限界が迫ってきているのだ。
出発点となるビット
まず第一原理から始めよう。生まれたときに全員がランダムな2進文字列を割り当てられると想像してほしい。インターネットに何かを投稿するたびに、その文字列で署名しなければならないとする。文字列が0110のようにとても短ければ、同じ文字列を持つ人は大勢いるだろう。しかし文字列が非常に長ければ、あなたのものはほぼ確実に唯一無二になり、すべての偽名を紐づけるのは容易になる。
境目はどこにあるのか。書き手が現在生きていて英語圏のどこかに住んでいるということしかわからないとすれば、それは29ビットあたりだ。桁数がKなら可能な2進文字列は2ᴷ通りあり、K = 28.86なら2ᴷ ≈ 490,000,000、つまり現在生きている英語圏人口にほぼ等しいからだ。文字列が29ビット未満なら、他の誰かが同じ文字列を持っている可能性が高い。29ビットを超えれば、あなたの文字列はおそらく唯一無二だ。
私たちは(まだ?)書くものに政府発行の不変な文字列で署名する必要はない。だが書き方そのものが、口調や性格、語の選択などを通じて、あなたについての多くの手がかりを依然として提供する。
理論的には、十分な量を書く人なら誰でもその正体を紐づけることが可能であるはずだと私は考える。再び全員が生まれたときにランダムな2進文字列を割り当てられると想像してほしい。ただし今度は、書いたものにその文字列で署名する必要はなく、単語を書くたびに、文字列の中のランダムな1ビットが明かされ、メッセージへの署名として付加されるとする。たとえばbit[129]=1という署名が付加され、あなたの文字列の129番目の位置が1であることを示すとする。
あなたの文字列を、あなたの文体上の癖のすべてを表すものだと考え、1ビットが明かされることを、好みが露わになる何かを書いたときだと考えてほしい。たとえばビット18は、ダッシュを醜いスペース付きで書くのが好きか――このように――それともスペースなしで書くのが好きか――このように――を示すのかもしれない。ダッシュを使えば、そのビットは明かされる。
だから、仮名Aで大量に書いて、ビット列全体がすでに明かされたと想像してほしい。たとえばこんな具合だ。
Pseudonym A:
110000001111001101110000100001
010100100101011110111001101000
100111110010101001101010111010次に、仮名Bで書き始めたとする。最初は、どのビットもわかっていない。
Pseudonym B:
??????????????????????????????
??????????????????????????????
??????????????????????????????しかし徐々に、少しずつビットが漏れ始める。
Pseudonym B:
?????00???1????1????????1??0??
?????01??1?????????11????01???
???1??????1???10??????????????やがて多くのビットが漏れる。
Pseudonym B:
???0?00?1?11??110??1????10?0??
?10?001?0101?11???11100?101???
???11?1??010??10?1?01??011????ここで、AとBが同一人物かどうか知りたい「攻撃者」の視点で考えてみよう。攻撃者は上記のビットだけを見ており、他の誰についても情報を持っていないと仮定する。すると攻撃者が知っていることはこうだ。
- AとBはK個の重なるビットを明かしており、それらはすべて一致している。
- 異なる人物どうしが、ある1つの明かされたビットで一致する確率は50%である。
- 同一人物なら、ある1つの明かされたビットで一致する確率は100%である。
- 世の中には490,000,000人がいる。
直感的には、Kが5なら、すべてのビットが一致したという事実はあまり証明にならない。4億9000万人もいれば、偶然それらに一致する人はたくさんいるからだ。だがKが70なら、たとえそれだけ巨大な母集団から始めても、異なる2人がすべて一致する可能性は極めて低い。N人のランダムなビットを持つ他人がいて、あなたのK個のビットを選んだとき、誰かがそれらすべてに一致する人が存在する確率は1 - (1-2⁻ᴷ)ᴺである。Nが4億9000万人のとき、それはこのようになる。
ほら、また29が出てきた。(数学とはなんと素晴らしいのだろう?)一般に、転換点は2ᴷ ≈ Nとなるビット数K、すなわちK = log₂(N)のあたりで起こる。
仮名Bで29ビットよりかなり少ないビットしか明かしていなければ、それらすべてに一致する他人が存在することはほぼ確実だ。だが29ビットよりかなり多く明かせば、それらすべてに一致する他人が存在する可能性はほぼない。つまり攻撃者は実質的にAとBが同一人物だとわかる。そして強調したいのは、他の4億9000万人の何も見る必要なく、それがわかるということだ。
もちろん、私たちは文字通り書くたびに不変の特徴文字列のビットを漏らしているわけではない。だがモデルをより現実的にしても、同じ問題は残る。文章が書き手についてノイズ混じりの情報しか与えないことを反映したければ、明かされる前にビットにノイズを加えればよい。ある文体が他より一般的であることを反映したければ、ビット列上の分布を一様でなくせばよい。ある癖が他より目立ちやすいことを反映したければ、ビットごとに明かされる確率を変えればよい。これらはすべて計算を複雑にするが、基本的な結論は変わらない。あなたの文体が少なくとも29ビットの情報を含んでおり、十分な量を書けば、終わりだ。
これがシュードポカリプスが可能であるという私の論拠だ。だが私が主張したいのは、それがいずれ可能になるということだけではない。すぐに、高い確率で起こり、明かす必要のある文章量もそれほど大きくないと考えている。その主張をするには、具体的にする必要がある。どんな特徴が人の書き方に反映されるのか。そうした特徴は何ビットの情報を含むのか。そうしたビットは文章からどれくらい正確に推測できるのか。
注記:これを巨大な情報理論の講義にするのを避けるため、「ビット」や「情報」といった言葉を、100%厳密な意味で使わないことが多い。そうするのは、この文章を読む人の大半がビットの定義にこだわる人ではないと思うし、そもそも超厳密にしても大局が見えにくくなるからだ。もしあなたが情報理論の愛好家であったり、私が何をしているのかわかっているのか懐疑的なら、後述の「懐疑的な情報理論愛好家のための節」を参照してほしい。それまでは直感を働かせて信じてほしい。
特徴空間
私が上記の文章を書いたという以外に私について何も知らないとして、私の年齢や宗教や職業を当てなければならないとしたら、推測はできるだろう? 完璧ではないが、それらの文章を読まずに当てるよりはるかにましなはずだ。つまり、何らかの形で、そうした文章は私の人口統計的特徴についての情報を含んでいる。そこで、文章から偶然よりはましな精度で推測できそうなものをリストアップしてみた。思いついたのはこれだ。
- 年齢
- 学歴
- 民族
- 家族構成
- 所得
- 婚姻状況
- 精神的健康
- 母語
- 職業
- 身体的健康
- 政治的志向
- 居住地域
- 宗教
- 性別
同じように、上記の文章だけを読んで、私がどれだけ外向的か、あるいは誠実かといったことを推測できるだろうか。やはり完璧ではない。(このブログを読んでいる人に会うと、たいてい私が直射日光の下で生きていけることに驚かれる。)だが、それでもそこそこ当たるはずだ。繰り返しになるが、これらの文章は私の性格についての情報を含んでいる。
性格の特徴にはどんなものがあるか。HEXACOモデルは6つを挙げている。すなわち正直さ・謙虚さ、情緒性、外向性、協調性、誠実性、開放性だ。これらは十分な長さの文章サンプルからそれなりの精度で推測できるだろう。だが、もっと推測できるだろうか。これら6因子それぞれについて、HEXACOモデルは4つの「側面」を挙げている。抽象的には、6×4=24個もの異なる性格特徴を文章から推測しようとするのは馬鹿げて聞こえるが、実際に見てみるとこうだ。
- 正直さ・謙虚さ
- 誠実さ
- 公平さ
- 貪欲回避
- 謙虚さ
- 情緒性
- 恐れやすさ
- 不安
- 依存性
- sentimentality(情緒的感受性)
- 外向性
- 社会的自尊心
- 社会的大胆さ
- 社交性
- 活気
- 協調性
- 寛容さ
- 穏和さ
- 柔軟性
- 忍耐強さ
- 誠実性
- 几帳面さ
- 勤勉さ
- 完全主義
- 慎重さ
- 開放性
- 美的鑑賞
- 探求心
- 創造性
- 非 conventional性(型破りさ)
具体的な人物を思い浮かべれば、これら24個が現実の何かを表しており、文章から推測するのがもっともらしいと納得できるだろう。(たとえば、あなたの大好きな実存的不安+科学ブロガーは、正直さ・謙虚さの中でも「謙虚さ」が他の側面より低いかもしれない。)異なる下位因子は確かに相関しているが、完全な相関ではない。
もちろん、人の文章から最もよくわかるのは書き方そのものだ。彼らは無意味に不定詞を分割する傾向があるか。ハイフンでつないだ語を多用するか。副詞節の位置を誤るか。
文体上の特徴を用いて書き手を帰属させるという発想は、少なくとも1440年にまで遡る。ロレンツォ・ヴァッラが、皇帝コンスタンティヌスがローマ帝国をカトリック教会に寄進したとされるコンスタンティヌスの寄進状が、コンスタンティヌスの死後400年も後の口語で書かれていることを示し、偽書であることを証明したのがそれだ。1851年にはオーガスタス・ド・モルガンが、平均語長は同じ書き手なら安定する傾向があることを観察した。最初の「現代的」試みは1964年に登場したようで、モステラーとウォレスがInference in an Authorship Problemを発表した。
本研究は、ザ・フェデラリストの著者をめぐる問題を解こうとするものである。[…]
識別のための変数として語数が用いられる。書かれた主題が語の使用頻度に大きく影響するため、語の選択には注意が必要である。anやof、uponのような言語の機能語、より一般的には冠詞、前置詞、接続詞はかなり安定した頻度を示すのに対し、warやexecutive、legislatureのようなより意味内容のある語はそうではない。
これらのカウントの分布を調査した後、著者らはベイズ的手法に基づく分析を実行する。 […] 著者問題についての結論は、論争のある12編はハミルトンではなくマディソンによって書かれたということである。
わかるだろうか。あなたがwarという語をどれだけ使うかは、たまたま戦争について話しているかどうかに大きく依存する。だがuponをどれだけ使うかは、uponという語をどれだけ好むかに大きく依存する。これを示すために、彼らはハミルトンが書いた48編とマディソンが書いた50編を取り、by、from、toをどれだけ使ったかという表を作った。

マディソンはbyを好んだ。ハミルトンはto派だった。こうした統計を用いて、彼らは論争のあるフェデラリスト論文はマディソンが書いたに違いないと結論づけた。
そこで私は、異なる主題について書くときでも安定しているとされる他の文体特徴を探してみた。たくさん見つかった。あまりに多く、意味のあるグループに整理するのにも苦労するほどだ。
低レベルの頻度:
- 語長
- 文長
- 段落長
- 句読点の頻度(コンマ、コロン、ダッシュ、括弧)
- 機能語の頻度(the、of、and、to)
- 副詞の頻度
- 強調語(very、really、quite、pretty、so)
- 証拠性を示すマーカー(apparently、evidently、obviously)
- 緩和語(somewhat、fairly、rather)
- 代名詞の使用
- 全体的な好み(I/we vs. you vs. he/she/they)
- 三人称単数の好み(he、she、he or she、they、one)
- 法助動詞(can、could、might、must、should、will、would)
- ヘッジ(perhaps、maybe、possibly、probably)
- 接続詞(and、but、yet、so)
- 安定しているとされる比率(the/a、this/that、these/those、I/me/my)
- 文字Nグラム(3グラムや4グラム)
- 語Nグラム(多くは3グラム)
語彙的特徴:
- 語彙の豊富さ
- 語彙の多様性/異なり語率(異なり語数を総語数で割ったもの)
- 稀な語の頻度
- 意味密度
- 談話標識の位置や組み合わせ(So、anyway、so anyway)
- 略語や頭字語の使用
- ラテン語系 vs. ゲルマン語系の語の好み(The majestic creature traversed the terrain vs. the mighty beast strode across the land)
統語的特徴:
- 統語的複雑さ
- 従属指数
- 平均構文木の深さ
- 受動態の使用
- 名詞化(She was shocked I ate the pizza vs. My pizza consumption shocked her)
- 動詞の時制とアスペクト(I walk vs I walked vs I was walking vs I have walked)
- 文構造の好み
- 分枝の好み(呪われた everyone had a good time when Alice taught some cool dogs I met and brought to dinner to juggle vs. 不器用だが読める I met some dogs and they were cool and I took them to dinner and Alice taught them to juggle and and everyone had a good time)
- 副詞節の位置(Suddenly I was hungry vs. I was, suddenly, hungry vs. I was hungry, suddenly)
- 文末の重さ(Your plan won’t work because of the dyslexic bears vs. Dyslexic bears mean your plan won’t work.)
- 多重接続(I like dogs, cats, and ferrets vs. I like dogs and cats and ferrets)
- 統語構造の反復/破綻
スタイル上の特徴:
- レジスター/フォーマリティ
- 文長のパターン(長/短/長/短 vs. 長/長/短/短)
- 強勢音節の間隔の好み(例:弱強格 vs. 強弱格)
規則の好みに関する特徴:
- 細かな句読点(I laughed—you cried vs. I laughed — you cried、「…」(3つのピリオド)vs.「…」実際の三点リーダー)
- 大文字化(肩書き、季節、コロンの後、誤り)
- アポストロフィ(Steve Jobs’ car vs Steve Jobs’s car、1990’s vs 1990s)
- ハイフネーション(a highly-stable feature vs a highly stable feature)
- オックスフォードコンマ
- 冠詞の省略(Local dog was petted. vs. A local dog was petted.)
- 関係代名詞の省略(the dog you petted vs. the dog that you petted)
- Who vs. whom
- 分離不定詞(To obsessively blog vs. to blog obsessively)
特異な特徴:
- 空白の入れ方の癖
- スペルミス(looseをloseの代わりに使う)
- 文法ミス(Between you and I)
- 一貫した、独特なタイプミス
- その他一貫した誤り(語の重複、閉じられていない括弧)
多いだろう。ほかにもきっとある。そしてこれらはすべて、人間が小さな脳で考え出した「浅い」特徴だ。十分に大きなデータセットで統計的パターンを探せば、もっと多くの「深い」特徴が見つかるはずだと私は強く思う。その多くは、一貫した英語の説明すら持たないかもしれない。だがそれらは依然としてそこにあり、求める者にビットを提供する。
だから私たちは書くときに、さまざまなことについての情報を漏らしている。だがどれくらいの情報なのか。誰かを一意に指紋採取するのに必要な語数はどれくらいだと言えるのか。
答えはノーだ。一次の近似では、答えはノーだ。だが二次の近似では、もしかしたら? オーダー程度なら? 試してみるが、難しいことになるだろう。
人口統計的特徴のビット
年齢や性別といった人口統計的特徴を通じて、文章はどれくらいのビット数の識別情報を提供するのか。
一見すると、これは危うい問いに思える。というのも、それらのものを何カテゴリあるとみなすかに依存するからだ。性別を例に取ろう。シュードポカリプスの観点からは、性別をどう定義すべきか、あるいは性別がいくつあると考えるかというあなたの意見は無関係だ。より細かい分類は常に多くの情報を与えるし、攻撃者は可能ならその情報を使うだろう。しかし性別について2つを超えるカテゴリを設けても大した違いはない。なぜなら追加のカテゴリは推測が難しく、たとえ推測できたとしても、出現頻度の低いカテゴリは追加の情報にあまり寄与しないからだ。3 だから私たちにとっては、2カテゴリが正しい答えなのだ。
年齢はどうだろう。一見すると、年齢をカテゴリ集合に変換するのは無意味に思える。ミリ秒単位で年齢を符号化すれば、過去100年間に生まれた人に対して3.156兆ものカテゴリができる。10年単位で符号化すれば10しかない。ここで気づくべきは、私の出生年代は書き方から推測できるかもしれないが、ミリ秒まで推測できる可能性は雪だるまが地獄で生き残る確率ほどもないということだ。(わかっただろうか? 特定の年代に生まれた人はsnowball’s chance in hellのような表現を使う可能性が高いのだ。4)もし年齢に途方もない数のカテゴリがあると仮定すれば、後で推測の難しさを反映して割り引かなければならない。私の直感では、年齢を5年より正確に推測するのは難しいので、20カテゴリが妥当だろう。
この種の論理に従い、人口統計的変数それぞれについてカテゴリ数を選び、文章から推測可能な上限あたりを狙った。(実際のカテゴリは後述する。)
| 特徴 | カテゴリ数 |
|---|---|
| 年齢 | 20 |
| 学歴 | 6 |
| 民族 | 6 |
| 家族構成 | 2 |
| 所得 | 11 |
| 婚姻状況 | 3 |
| 精神的健康 | 3 |
| 母語 | 2 |
| 職業 | 23 |
| 身体的健康 | 3 |
| 政治的志向 | 3 |
| 居住地域 | 23 |
| 宗教 | 3 |
| 性別 | 2 |
各年齢ビンが等確率なら、誰がどのビンに入るかを知ることは4.32ビットの情報を与える。K = 4.32のとき2ᴷ ≈ 20だからだ。各特徴について同じ計算をすれば、それらが含みうる最大の情報量が求まる。
| 特徴 | カテゴリ数 | 最大ビット数 |
|---|---|---|
| 年齢 | 20 | 4.32 |
| 学歴 | 6 | 2.58 |
| 民族 | 6 | 2.58 |
| 家族構成 | 2 | 1 |
| 所得 | 11 | 3.46 |
| 婚姻状況 | 3 | 1.58 |
| 精神的健康 | 3 | 1.58 |
| 母語 | 2 | 1 |
| 職業 | 23 | 4.52 |
| 身体的健康 | 3 | 1.58 |
| 政治的志向 | 3 | 1.58 |
| 居住地域 | 23 | 4.52 |
| 宗教 | 3 | 1.58 |
| 性別 | 2 | 1 |
| 合計 | 32.88 |
だが問題がある。30〜35歳の人口は90〜95歳より多い。だからたとえ年齢ビンを完璧に推測できたとしても、平均して4.32ビット未満の情報しか得られない。しかし、カテゴリがよほど偏らない限り、情報量はそれほど落ちないことがわかっている。完全に均等な50/50の分布は1ビットの情報を与えるが、60/40にしても依然として0.971ビット得られ、情報量が0.5ビットまで落ちるにはほぼ90/10まで偏る必要がある。5 カテゴリが2つより多い場合も基本的に同じだ。6
そこで私はそれらすべての特徴について、どれだけ偏っているかを評価し、それに応じてビット数を割り引いてみた。元のカテゴリが何で、どう割り引いたかの詳細は脚注に置いた。7
| 特徴 | カテゴリ数 | 最大ビット数 | 推定ビット数 |
|---|---|---|---|
| 年齢 | 20 | 4.32 | 3.9 |
| 学歴 | 6 | 2.58 | 2.1 |
| 民族 | 6 | 2.58 | 1.7 |
| 家族構成 | 2 | 1 | 0.8 |
| 所得 | 11 | 3.46 | 2.5 |
| 婚姻状況 | 3 | 1.58 | 1.2 |
| 精神的健康 | 3 | 1.58 | 0.9 |
| 母語 | 2 | 1 | 0.6 |
| 職業 | 23 | 4.52 | 4.0 |
| 身体的健康 | 3 | 1.58 | 1.3 |
| 政治的志向 | 3 | 1.58 | 1.5 |
| 居住地域 | 23 | 4.52 | 3.5 |
| 宗教 | 3 | 1.58 | 1.5 |
| 性別 | 2 | 1 | 1 |
| 合計 | 32.88 | 26.5 |
だが別の問題もある。スコットランドに住む65〜70歳のアジア系女性は、オーストラリア南東部に住む15〜20歳のラテン系の人とは{職業、家族構成、宗教}が異なる傾向がある。つまり上記の特徴は相関している。だから多くを見れば見るほど、徐々に驚きは減り、寄与する情報も少なくなる。
どれくらい少なくなるのか。これに正しく答えるには、20 × 6 × 6 × 2 × 11 × 3 × 3 × 2 × 23 × 3 × 3 × 23 × 3 × 2 = 8,144,737,920通りの同時カテゴリそれぞれに人が入る確率を推定する必要がある。難しそうだ。だが、変数のグループがすべてペアワイズに相関係数ρ>0で相関しているなら、総情報量はρの割合だけ減少するかもしれない、というのはまったく馬鹿げた近似ではない。8
では、それらの特徴はどれくらい相関しているのか。社会科学では0.5の相関はかなり高いとされる。一部の変数ペアではそれはあり得る。たとえば年齢 vs. 健康や、政治的志向 vs. 宗教だ。だがそうした相関の多くはおそらくかなり弱い。たとえば年齢 vs. 母語や、地域 vs. 性別 vs. 婚姻状況だ。9
全体として、私の推測では相関によって総情報量は少なくとも10%は減少するが、60%を超えて減少することはないだろう。だから上記の特徴に含まれる総情報量(カテゴリを完全に推測できた場合)は10.6〜23.9ビットのどこかにあることになる。平均を取って17.2ビットとしよう。
性格特性のビット
性格的特徴はどうだろう。人口統計的特徴で使ったのと同じレシピを、より速く使ってみよう。まず、24の性格特徴それぞれに5つのビンを与える。dynomight式の性格表記に敬意を表してのことだ。2ᴷ ≈ 5となるのはK = 2.32のときなので、合計は24 × 2.32 = 55.68ビットになる。
次に相関について割り引く必要がある。6つの主要なHEXACO性格因子は無相関になるように設計されているが、各因子内の異なる「側面」は相関している(通常は0.3〜0.6の係数)。因子内の強い相関と因子間の弱い相関を反映して、全体の割引係数を0.3とするのが妥当だろう。すると全体で39.0ビットになる。
文体のビット
では文体的特徴はどうだろう。どれくらいの情報を含んでいるのか。
これは難しそうだ。文字Nグラムのような特徴の中には、それ自体が長い特徴リストであるものもある。(aaaとタイプする頻度、aabとタイプする頻度、など。)しかしそうした特徴の多くは、zqxを打つ頻度がほぼ0%である人がほとんどなので、情報は少ない。そしてもちろん、文体特徴は相関している。realiseをrealizeの代わりに書く人は、ダッシュの周りにスペースを入れる可能性が低いといった具合だ。
より良いアイデアがないので、上記の文体特徴リストの末端ノードごとに1ビット与えることにする。これは各特徴に2つのビンを与え、特徴の分布の偏りや相関(情報を減らす)が、多くの特徴が1ビット以上の価値を持つことや、リストにない「深い」特徴がおそらくさらにあること(情報を増やす)と相殺されると仮定するものだ。これで疑わしいほどキリの良い50.0ビットが得られる。
ビットを推測する
上記の数字を信じるなら、私たちは書くときに手がかりを残す識別情報として少なくとも17.2 + 39.0 + 50.0 = 106.2ビットを持っていることになる。それは多い。もしそれらすべての特徴が見えるなら、9300穣の人がいる惑星でも人を特定するのに十分だ。
だがシュードポカリプスが近いと主張するには、そうしたビットが存在することを主張するだけでは足りない。それらが推測可能であり、比較的少量の文章から推測されることを主張する必要がある。
そこで当然、核兵器の話をする必要がある。核爆発では多くの不安定な原子が生成される。これらは自発的に崩壊してより安定な原子になり、その過程で放射線を放出する。ある種の原子は崩壊したがり、大量の放射線を出すが数週間で存在しなくなる(ヨウ素131)。別のものは崩壊を渋り、放射線はあまり出さないが数十年残る(ストロンチウム90)。さらに数百万年残るが、放射線があまりに少ないため大した問題にならないものもある(セシウム135)。10 したがって核爆発後の残留放射線は、爆発時に生成された同位体ごとの多くの異なる指数曲線の和である。
文章中の識別ビットも似たようなものではないかと思う。フォーマリティのレベルや平均文長はほぼ即座に明らかになる。ラテン語系とゲルマン語系の語のどちらを好むかは、現れるまでに時間がかかる。そして社会的胆力や、クイーンズランドではなくオーストラリア南東部に住んでいるという事実は、非常にゆっくりとしか明らかにならず、実質的にまったく明らかにならないほどかもしれない。
さて、106.2ビットから始めたとして、ある語数の文章を書いた後にそのうち何ビットが明かされるだろうか。
私は気高い「数字をでっち上げる」という方法でこの問いに答える。だがその前に、較正してみよう。あなたは今、私の書いた4500語を読んだばかりだ。私の人口統計的特徴や性格的特徴をどれだけ当てられるだろうか。健全性チェックとして、上記の文章をLLMに渡して推測させてみた。気味が悪いほどよく当てた。常に正しいわけではないが、たいていは正しく、個々の予測の確信度の評価もとても上手だった。
これに魔法のような説明はないと思う。事実として、個々の性格や人口統計的特徴を見れば、当てるのはそれほど難しくないのだ。だからあなたも同じくらい上手くできるはずだ。そして十分な時間があれば、文体特徴についてはさらに上手くできるはずだと私は確信している。
それでも、おそらくあなたは下手だ。GeoGuessrの例を考えてみよう。ランダムな写真から世界のどこかを推測するゲームだ。普通の人はまあまあだが、トップの天才たちを集めて執拗に練習させれば、本当に上手くなる。LLMも文章から特徴を推測するのが特に得意だとは思わない。彼らはそのために訓練されたわけではない。それは汎用的な知能の創発的な性質に過ぎない。情報理論的な限界はずっと高いはずだ。
そこで非常に大雑把な見積もりを出すと、4500語の後には次のくらいが推測可能だと思う。
- 人口統計的特徴の60%
- 性格的特徴の70%
- 文体的特徴の80%
これらをそれぞれ指数曲線でモデル化し、17.2 / 39.0 / 50.0ビットから始めると、ある語数の文章を書いた後に隠されたまま残る識別ビットの総数は次のようにプロットされる。11
Et voilà、29ビットが漏れた時点で仮名性は損なわれる。それは1071語を書いた後に起こる。
本気で言っているのか?
もちろんそうではない。上記の図は、ぐらつく tenuous な仮定の塔の上に立っている。私がその曲線の導出の詳細をわざわざ示したのは、それを信じてほしいからではなく、計算を見ることで次の点は反論しがたいとわかるからだ。
- あなたは29ビットをはるかに超える識別情報を書き込みに漏らしている。
- そうしたビットの中には明かされるのに時間がかかるものもあるが、かなり速く明かされるものもある。
- 「かなり速く漏れるビット」が十分にあるため、「かなり少量」の文章サンプルから特定されうる。
特徴の選び方、カテゴリ数の割り当て、カテゴリ間の分布の推定、相関に対する割引、推測可能なビン数の見積もりなど、多くの議論の余地のある選択をしてきた。それらの選択は個別には疑わしい。だが上記の3点は、かなり広い誤差の範囲によって支えられている。別の選択をしても、上記の3点が真であることを避けるのは非常に難しいように思える。12
それはどう機能するのか?
なぜこんなにでっち上げの数字ばかり使っているのか不思議に思うかもしれない。結局のところ、文章から書き手を特定することに特化した分野全体があり、通常「計量文体学(スタイロメトリ)」や「著者帰属」と呼ばれている。研究論文もコンペもある。だが私の知る限り、最先端の公開結果はだいたいこんな感じだ。
- 50人を集める。
- 各書き手から数百の文章サンプルを集め、それぞれ1000〜2000語とする。
- さて、それらの書き手のうちの1人から新しい文章サンプルを取る。
- 標準的な機械学習の手法をあれこれやる。
- ほら、書き手が約95%の精度で特定できた!
それなりに聞こえるが、それはたった50人のプールに対する特定だ。私の主張が正しいためには、4億9000万人に対して同様の精度が可能でなければならない。それは7桁も多い。
問題は、それらの論文が使っている手法が極めて弱いことだ。上記のすべての計算は、あなたが「情報理論的限界」で、利用可能なすべての情報を完璧に使っていることを前提としている。それに近づきたいなら、今ではどうすればよいかある程度わかっている。すなわち「現代的」な機械学習のレシピである、巨大なデータセット+巨大なニューラルネットワーク+GPUに費やされる巨額の資金を適用するのだ。私の推測では、私たちの場合、それは「これまでに書かれたすべての文章」+「数百億パラメータ」+「数千万ドル」程度が必要になるということだ。それに remotely 近づこうとした論文すら1つも見つからなかった。
だからそれらの論文はあまり参考にならないと思う。数冊の本で訓練された3次のマルコフモデルが、コンピュータが文章を書くのがどれだけ上手くなり得るかについてあまり教えてくれないのと同じ理由だ。LLMは、上記のレシピを使えば、文章生成については情報理論的限界に近いところまでコンピュータが到達できることを示した。13 だから、LLMレベルの取り組みが、書き手の特定についても同じことを達成できると私は考えている。
こうも思うかもしれない。なぜこれを将来のあり得る技術として語っているのか。それはまさにLLMそのものではないのか、と。
その技術は人間の言語をモデル化する方法においてLLMにかなり近いものになると私は考えている。だが現在の汎用LLMはこのタスクのために訓練されていない。彼らが得意なのは「偶然」だ。だから専用のチェスAIがチェスでLLMを粉砕できるように、専用の計量文体学的手法もスタイロメトリで汎用LLMを粉砕できると考えている。ただ、そうした専用の手法はまだ存在しないか、少なくとも公開されていないだけなのだ。14 だから仮に汎用LLMの進歩が今日止まったとしても、現在のLLMが可能なことの上限に anywhere 近いとは考えるべきではない。15
対策
もしこれがすべて真実なら、どんな対策があり得るだろうか。
最も明白な「対策」は、慣れることだ。つまり、もし私たちが文字通り書くものすべてに一意で不変な文字列で署名しなければならない世界に住んでいたら何が起こるか想像してみてほしい。次のようなことが混ざり合うだろうと私は予想する。
- 人々は「完全な自分」が公開されることにより慣れ、 compartmentalization(区画化)が減る。
- 人々は公的なチャネルでの発信を控え、グループチャットなどにより頼るようになる。
- 人々は自己検閲する。
ここには強い歴史的類推がある。過去20年間、多くの政府やテック企業は、事実として人々が書くものに本名で署名することを命じてきたのだから。
影響は、周囲の文化や政治体制によってかなり大きく異なるようだ。全体として、私の印象では、人々はすでに、職場の同僚が自分の出会い系プロフィールを読んだり、自分がケモナーイベントに行くことを知ったりすることに対して、はるかに寛容になっている。文化は、私たち皆が多面性を抱えているという事実を尊重する方向に適応し続けるだろうと楽観している。これは健全に思える。
ある影響は明らかにポジティブだ。自己検閲は必ずしも悪いことではない。たとえば、実名はぎりぎりのところで一部のティーンエイジャーがネットいじめをするのを止めているだろう。一方で、あなたはティーンエイジャーだったことがあるだろうか。「違う」人にとって、その違いが世界に放送されることが、いじめの対象となる表面積をずっと大きくすることは確かだ。だから影響はまちまちだ。そして大人は、私たちが思いたいほどティーンエイジャーと変わらない。
20年前なら、実名制は人々がオンラインで物議を醸す政治的意見を表明するのを思いとどまらせるだろうと私は予測したかもしれない。表面的には、それは完全に間違っているように見える。少なくとも西側では、多くの人々は少数派の政治的見解を表明することに非常に積極的で、もし少しでも同意できないなら地獄に落ちろという勢いだ。だが私はまた、これは多くの自己検閲を隠しているとも思う。大半の人々は政治的な死闘に関わりたくなく、だから好戦的な少数派に委縮しているのだ。そしてもちろん、特定の国にいる人々は、党を批判するのは賢明でないことを知っている。だから、慣れるというのはせいぜい不完全な解決策に思える。
別の対策は、この技術を作らない、あるいは広く利用可能にしないことだ。短期的には、これはもっともらしく思える。私の知る限り、写真から街中の大半の人を特定できるスマホアプリを、ささやかな資金で作ることが何年も前から可能だった。それにもかかわらず、この文章を読んでいる人のほぼ誰も、そうしたアプリにアクセスできていない。汎用LLMが計量文体学でどんどん上手くなるなら、AI企業がそれを安全性の問題と判断し、そうしたことを拒否するようAIを訓練することは十分にあり得る。16 これはしばらくは機能するかもしれない。
だがもしその技術が可能なら、政府はそれを構築し利用することは確実に思える。彼らはそれを一般人の手に渡らないようにしようとするかもしれない。特定の政府は自身の利用を制限するかもしれない。私のプライバシー志向の同志はいつも非常に厭世的に見えるが、最高裁がFBIが米国市民の仮名を剥がす前に令状が必要だと宣言しても私はまったく驚かないだろう。だが、その技術が十分に安価になれば、一般人や悪意ある者の手に渡るのを防ぐのは非常に困難になるだろう。数百ギガバイトのプログラムを作り、ほとんどの現代的なノートPCで(ゆっくりと)動かせるようにすることは可能だと私は考える。もしそのプログラムが公開されれば、精霊を瓶に戻すのは難しいだろう。
技術的な対策もある。最も明白なのは、文章を「フィルター」に通して識別ビットを除去しようとすることだ。たとえばLLMに書き直させるといった方法だ。これがどれだけうまく機能するかは確信を持って言うのは難しい。なぜなら最初に何ビットから始めているのか、そしてそれが何ビット除去するのかという正確な見積もりがないからだ。だが慎重に行えば、これはかなり効果的だろうと私は推測する。理由は、文章に残す識別ビット数は、あなたを特定するのに必要な数と比べてそれほど大きくない可能性が高いからだ。文体や性格のすべてを除去して文章を「均質化」すれば、それらのビットのほとんどを除去できるはずだ。理論的には、依然として何らかの情報は漏れるだろう。だがこれで、仮名性を保ったまま書ける量は大幅に増えるだろう。17
だが考えてみると、これは悲しくなる。事実上、この対策は文章から人間性の痕跡をすべて破壊することで仮名性を保つことになるからだ。これは仮名性の「悪い」用途、たとえばネットいじめや組織的暴力にはうまく機能するだろうが、「良い」用途にはまったく機能しない。たとえば、仮名で書くことでより正直に、より脆弱に、より完全に自分らしくいられると感じている人のような場合だ。
一般化されたシュードポカリプス
これは文章だけに当てはまることではないのかもしれない。もしかすると、世界と何らかの有意義な形で関われば、あなたを特定可能にする痕跡を残すというのは、この宇宙の特徴なのかもしれない。
公共の場を歩けば、顔、歩き方、声、DNA、網膜、あるいは文字通りの指紋から特定されうる。
あるいはインターネットを使うとする。ブラウザのフィンガープリントを隠し、VPNやTorでIPアドレスを隠しても、十分に強力な敵対者ならグローバルなパケットフローを解析することで依然としてあなたを特定できる。
あるいはどんな電話やコンピュータを使うとする。キーストロークダイナミクスや、指やマウスの微妙な動きから特定されるかもしれない。
食料品店で買い物をするとする。現金で支払い、なんとかカメラのない店で買い物をしたとしても、数個以上の商品を買えば、買ったもののパターンから依然として特定されうる。
(ところで、現金にはシリアル番号があることに気づいたことがあるだろうか。そしてますます多くのATMがそれらの番号を追跡し始めていることを知っていただろうか?)
あるいは車を追跡されたくなくて、スマホを持ち歩くのをやめ、なんとか議員にナンバープレートを違法化させたとする。それでも、車には確かにいくつかの小さな独特な傷があり、エンジンも同じ車種・年式の他の車とまったく同じ音を立てるわけではない。だから高解像度の映像や音声があれば、それだけで追跡するのに十分だ。
空港の充電ステーションにヘッドホンを繋ぐとする。ヘッドホンはアナログ充電回路に癖がある。もし本気で追跡しようとすれば、それを追跡できるだろう。
あるいは電気を使うとする。高解像度の電力使用データがあれば、あなたと同居している人数について何が言えるだろうか。そしてどんな機器を使っているかについても。おそらく多くのことがわかるだろう。
あるいはトイレを使うとする。多くの場所ですでに下水が検査され、人口レベルでどんな薬物が使われ、さまざまな病気がどれくらい蔓延しているかが知られている。これがシステム内の多くの場所で高い時間分解能で検査され、個々の家からの流量測定と相関させるようにアップグレードされたらどうなるか。エキサイティングだろう。
あるいはあなたが国であり、潜水艦を持っているとする。敵対者は分散型音響センシングでそれらを探知できるだろうか。衛星搭載の合成開口レーダーはどうだろう。重力勾配計は? 量子磁力計は?
私の知る限り、一般的な傾向として、対策なしではほぼすべてが特定可能だ。対策はそれを難しくすることはできるが、コストがかかり、全体として、いたちごっこは特定されない側ではなく、特定する側に有利に働くように見える。
強調したいのは、これはすべてが悪いわけではないということだ。一般化されたシュードポカリプスの良し悪しは、社会がどう構造化されているかに依存する。結局のところ、文明の基礎は人々が取引する方法を見つけることであり、プライバシーが少ないほどそれが容易になるとも言える。文明を破壊する技術を簡単に作れる脆弱な世界に私たちが生きているとすれば、おそらく私たちはプライバシーのない世界にいることを非常に幸運に思うべきなのかもしれない。それでも、プライバシーが長い間、法律や規範からのある種の「緩み」を提供してきたことを私は心配している。歴史的に、その緩みは制度が規則を執行する力を制限してきた。もしプライバシーがなくなりつつあるなら、特に制度がそうしたくないときに、どうやって緩みを保つかを考える必要がある。
付録:懐疑的な情報理論愛好家のための節
上で、私は文章中の識別情報のビット数を推定しようとした。だが「ビット」とは何だろうか。一般に、xが離散確率変数なら、ビット単位でのxのシャノンエントロピーはH(x) = ∑ₓ p(x) log₂(1/p(x))であり、和はxが取りうるすべての値について取る。これは常に0とxが取りうる値の数の対数の間に収まる。
それはよいが、「文体」は離散的な数のカテゴリを持つ離散変数ではない。ではどうやって文体のエントロピーを推定できるのか。短い答えは、できないということだ。私が上で実際に推定したのは、文章と文体との間の相互情報量である。
sを文体を表す確率変数としよう。これを、異なる人々の書き方の癖のすべてを表すある種の高次元連続ベクトルだと考えてほしい。そしてxをある長さの文章サンプルとしよう。これはデジタルコンピュータ上で文章を表現できるので離散的だ。すると私が上で推定したのは相互情報量I(x;s) = H(x) - H(x|s)であり、ここでH(x|s)はsが与えられたときのxの条件付きエントロピーである。これはH(x)もH(x|s)もビットで測れるので、ビットで測ることができる。だから上記の私の見積もりが本当に言っているのはI(x;s) ≈ 106.2 ビットということだ。
それでも懐疑的かもしれない。上では、次のようなことが真であることを暗に仮定してきた。
N通りの可能性の中から1人を低い誤り率で特定できるのは、識別特徴と文章との間の相互情報量が少なくともlog₂(N)ビットある場合に限られる。
これが、仮名性が29ビットあたりで損なわれることを正当化した方法だ。だがそれは本当に真だろうか。厳密に言えば、違う。実際、もっと厳密に言えば、それは「間違っているとすら言えない」。なぜなら真偽を問えるほど正確ではないからだ。だが私の知る限り、その記述の基本的にどんな正確なバージョンも偽である。しかし、いくつかのそれほど突飛でない追加の仮定を加えれば、真になるバージョンを見つけることは可能だ。
まず、情報漏洩の極めて単純なモデルを考えてみよう。
定理. 世界があなたとN人の他人からなり、各人がMビットの2進識別文字列を持ち、それがMビットの2進文字列上の分布から一様に抽出されるとする。これらすべての文字列は攻撃者に知られているとする。あなたがあるKビットの部分集合を選んで明かすとする。するとあなたが特定される確率は
(1-2⁻ᴷ)ᴺである。
さらに、特定される確率を
(1-1/N)ᴺ ≈ exp(-1) ≈ 36.7%未満に抑えるためには、K ≤ log₂(N)であることが必要である。
証明. 観測されたK個の特徴すべてが群衆の中のランダムな1人と衝突する確率は2⁻ᴷである。したがってN人の群衆をチェックした後に衝突がない(つまり観測された特徴に一致するのがあなただけである)確率は(1-2⁻ᴷ)ᴺである。□
単純だ。だが人々が文章に漏らす不変な2進文字列を持っていると仮定しているので、まったく現実的ではない。より現実的にできるだろうか。
さて、単純な下界はある。つまり、相互情報量がlog₂(N)より著しく小さいなら、誰かを確実に特定することは不可能だと言える。
定理. N人のランダムな人々が選ばれ、その完全な文体特徴が公開されるとする。そのグループから1人が選ばれて文章サンプルを生成する。すると攻撃者は誰がそれを生成したかを当てなければならない。攻撃者の平均成功率(ランダムなプール、ランダムな書き手の選択、ランダムな文章サンプルについて平均したもの)は高々(I(x;s)+1)/log₂(N)である。
証明. S=(s₁, s₂, s₃, …)をN個の文体のプール、nを誰が選ばれたかを示す確率変数とする。ファノの不等式は、達成可能な最高成功率は文章サンプルxと身元nとの間の条件付き相互情報量、すなわち文体のプールを条件としたときのもので上から抑えられることを述べる。つまり成功確率は高々
(I(x;n|S)+1)/log₂(N)である。
しかし、その条件付き相互情報量は次のように上から抑えられる。
I(x;n|S) ≤ I(x;n,S) = I(x;n,sₙ) = I(x;sₙ) = I(x;s).
最初の不等式は標準的である。第二段階では、nが与えられたとき文章xは選ばれた書き手以外のすべての文体から条件付き独立であることを用いる。第三段階では、sₙが与えられたときnはxから条件付き独立であることを用いる。最後の段階では(x,sₙ)が(x,s)と同じ分布であることを用いる。この上限を代入すれば主張が得られる。□
だから、相互情報量がlog₂(N)よりずっと小さければ、たとえ攻撃者がすべての文体ベクトルを完全に知っていても、確実な特定は不可能だ。だから、あまり多くのビットを漏らさなければ、確実に安全だ。
だが逆はどうだろうか。log₂(N)ビットより多く漏らすことは常にあなたを特定するのだろうか。一般的な答えはノーである。基本的な問題は、I(x;s)が平均的な人が平均的な文章サンプルで漏らす平均的な情報であるということだ。さらなる仮定なしには、稀な人々や文章サンプルが巨大な量の情報を含むが、ほとんどの人は通常何も漏らさないというシナリオを構築できる。それは攻撃者がある場合には非常に確信を持つが、通常は何も学ばないことを意味するだろう。
だから、実際に特定が可能であるという保証を得るには、情報漏洩率が異なる書き手間や彼らが書く異なるものの間であまり変動しないという、何らかの追加の仮定をする必要がある。
p(x,s)を文体sと文章サンプルx上の同時分布とする。攻撃者がある人物の真の文体ベクトルŝを知っているとしよう。すると彼らは、ある文章サンプルxがその人物から来たのか、ランダムに選ばれた人物から来たのかを判断しなければならない。形式的には、攻撃者の目標はxがその人物の文章分布p(x|ŝ)からサンプリングされたのか、集団の周辺分布p(x)からサンプリングされたのかを推測することだ。攻撃者の最良の戦略は比率
p(x|ŝ)/p(x),
を見て、ある閾値以上ならxをŝから来たものとして「受理」し、そうでなければ棄却することだと直感は示唆する。実際、ネイマン・ピアソンの補題は、これが非常に強い意味で最適な戦略であることを保証する。その比率は、その決定を下すのに有用なすべての情報を含んでいるのだ。
ここで興味深いことがある。攻撃者は比率を見る代わりに、その比率の対数を見ることもできる。単調なので違いはない。だがその比率の対数を取って、人と文章について期待値を取ると何が得られるだろうか。そう、
𝔼 ln (p(x|s)/p(x)) = 𝔼 ln (p(x,s)/(p(x) p(s))) = I(x;s)
それは相互情報量だ。つまり直感的には、相互情報量は攻撃者が書き手の文体について「平均的に」学ぶ量であり、その平均は書き手と文章の両方について取られたものだ。
次の定理は、特定の文体を持つ書き手についての文章中の平均情報を見る。私はこれを次のように定義する。
D(s) = KL(p(X|s) || p(X))。
直感的には、これは文体sを持つ人の文章が集団平均とどれだけ異なるかということだ。なぜなら異なる文体についてこの値の平均を取ると相互情報量になるからだ。すなわちI(x;s) = 𝔼[D(s)]である。18
定理(非形式的). 攻撃者がある文章を観察し、それが特定の既知の文体ŝを持つ書き手から来たのか、ランダムな文体を持つ誰かから来たのかを分類したいとする。攻撃者は偽陽性の小さなリスクεしか許容しないとする。D(ŝ)が-ln(ε)より著しく大きい限り、攻撃者はそれを達成でき、同時に、ランダムな文章サンプルで明かされる情報量の分散が有界である限り、偽陰性のリスクも非常に低く抑えることができる。
定理. D(ŝ) = KL(p(X|ŝ) || p(X))をターゲットの文章分布と周辺分布との間のダイバージェンスとする。また、qₜ(x) ∝ p(x|ŝ)ᵗ p(x)¹⁻ᵗをそれら2つの分布の間を補間する族とする。ŝについての「情報漏洩」があまり変動しないという考えを形式化するため、0 < t < 1に対してlog(p(x|ŝ)/p(x))のqₜの下での分散がVで上から抑えられるような定数Vが存在すると仮定する。
するとexp(-D) < ε < exp(-D + ½ V)を満たす任意のεについて、攻撃者は同時に偽陽性率FPR ≤ εと偽陰性率FNR ≤ exp( - ½ (D+ ln ε)² / V)を達成することが可能である。この偽陽性率は文章サンプルxがランダムに選ばれた他人から来た場合の誤り率を反映し、偽陰性率は文章サンプルxが実際に文体ŝを持つ人物から来た場合の誤り率を反映する。
証明概略. fをp(x|ŝ)に関するl(x) = log(p(x|ŝ)/p(x))の分布、gをp(x)に関するl(x)の分布とする。述べた分散の仮定は、fのキュムラント母関数Kに対して-1 < u < 0で二次的上界K(u) ≤ D u +½ V u^2を意味する。gはfの指数傾斜であることに注意せよ。攻撃者の戦略は、lがある閾値c以上ならxをŝから来たものとして「受理」し、そうでなければ「棄却」することでなければならない。Kをfの下でlがc未満である確率のチェルノフ限界に用いてFNR ≤ exp( - ½ (D-c)²/V)を上から抑える。次にg(l) = exp(-l) f(l)であることを用いて、再びKをgの下でlがcを超える確率のチェルノフ限界に用いてFPR ≤ exp( -c - ½ (D-c)²/V)を上から抑える。これらの限界はともにD-V < c < Dのとき同時に有効である。cを偽陽性限界がεに等しくなるように設定すればFPR ≤ εかつFNR ≤ exp( -½ (V - √(V² - 2V(D + ln ε)))²/V)が得られる。後者は0 ≤ x ≤ 1で√(1-x) ≤1-x/2であることを用いて、述べられた結果へ緩和できる。□
さて、攻撃者が特定の既知の文体sを持つ特定の人物を見つけたいとしよう。そして攻撃者がN人のプールを持ち、各人から1つの文章サンプルを見るが、各人から1サンプル見た後の偽陽性の総確率をδに抑えたいとする。すると次のことが必要になる。
(1-ε)ᴺ ≈ exp(-εN) = (1-δ),
これはε ≈ δ/Nで満たされる。これを前の結果に代入すると、攻撃者は偽陽性の総リスクをδに抑えつつ、偽陰性リスクを
FNR ≤ exp( - ½ (D(s) + ln δ - ln N)² / V)にできることがわかる。
これらの結果は数学が楽になるので自然対数を使っている。情報をビットで測ればlog₂ δとlog₂ Nになるだろう。(DとVを適切にスケールして。)
だから繰り返しになるが、ユーザsの平均情報がlog₂ Nより著しく大きい限り、攻撃者は偽陽性のリスクを最小限に抑えつつそのユーザを特定できる。
ある書き手はより多くの情報を漏らすかもしれない(より高いD(s))し、ある書き手はより少ない情報を漏らすかもしれない(より低いD(s))。だがI(x;s)=𝔼 D(s)であることを思い出してほしい。だから情報漏洩が人々の間であまり変動せず、I(x;s)がlog₂ Nよりずっと大きいと仮定すれば(そしてその分散条件を仮定すれば)、ほぼ全員が特定可能になる。
編集者注:この文が書かれた後、さらに多くの時間がさらなる間抜けな弄りに費やされた。 ↩
大丈夫だ。 ↩
50%の確率で0または1になる標準的な2値変数は1ビットの情報を伝えるが、確率49.8% / 49.8% / 0.4%で0 / 1 / 2になる変数は1.0336ビットを伝える。 ↩
特定の年代に生まれた人はsee what I did thereのような仕掛けを使う可能性もおそらく高い。 ↩
たとえば、7つの異なる「歪んだコイン」の情報量は次の通りだ。
表が出る確率 情報量 0.50(公平なコイン) 1.000 0.60 0.971 0.70 0.881 0.80 0.722 0.90 0.469 0.95 0.286 0.99 0.081 前の脚注の表をより形式的に見ると次のようになる。
p(A) p(B) 情報量 0.50 0.50 1.000 0.60 0.40 0.971 0.70 0.30 0.881 0.80 0.20 0.722 0.90 0.10 0.469 0.95 0.05 0.286 0.99 0.01 0.081 このコードで生成できる。
from scipy.stats import entropy dists = ([0.5, 0.5], [0.6, 0.4], [0.7, 0.3], [0.8, 0.2], [0.9, 0.1], [0.95, 0.05], [0.99, 0.01]) entropies = [entropy(p, base=2) for p in dists] print("| p(A) | p(B) | Entropy |") print("|------|------|---------|") for i in range(len(dists)): print(f"| {dists[i][0]:<4.3f} | {dists[i][1]:<4.3f} | {entropies[i]:<7.3f} |")3つのカテゴリでも話はほぼ同じだ。情報量が大きく落ちるにはかなり偏る必要がある。
p(A) p(B) p(C) エントロピー 0.333 0.333 0.333 1.585 0.400 0.300 0.300 1.571 0.500 0.250 0.250 1.500 0.600 0.200 0.200 1.371 0.700 0.150 0.150 1.181 0.800 0.100 0.100 0.922 0.900 0.050 0.050 0.569 0.950 0.025 0.025 0.336 0.990 0.005 0.005 0.091 このコードで生成できる。
from scipy.stats import entropy dists = ( [1/3, 1/3, 1/3], [.4, .3, .3], [.5, .25, .25], [.6, .2, .2], [.7, .15, .15], [.8, .1, .1], [.9, .05, .05], [.95, .025, .025], [.99, .005, .005] ) entropies = [entropy(p, base=2) for p in dists] print("| p(A) | p(B) | p(C) | Entropy |") print("|------|------|------|---------|") for i in range(len(dists)): print(f"| {dists[i][0]:<4.3f} | {dists[i][1]:<4.3f} | {dists[i][2]:<4.3f} | {entropies[i]:<7.3f} |")大まかに言えば、それらの最大ビット数は次のように割り引くべきだ。
- ほぼ均等:割引なし。
- 「やや偏り」(例:2カテゴリで70/30) 10%割引。
- 「かなり偏り」(例:2カテゴリで90/10) 50%割引。
- 「極端に偏り」(例:2カテゴリで99/1) 90%割引。
カテゴリ分布のシャノンエントロピーは - Σᵢ pᵢ log₂ pᵢ である。あるいはpythonでは
import math def entropy(probs): return sum(-p * math.log2(p) for p in probs)年齢:文章から年齢を5年より正確に推測できるとは想像しがたい。0〜100歳を想定すれば20カテゴリでlog2(20)=4.32ビットになる。これらはやや非一様なので3.9に減らす。
学歴:6カテゴリを想定する。高校未満、高校、一部大学、大学卒、修士、博士だ。log2(6)=2.58ビットだが、かなり偏っているので20%減らすことを反映する。
民族:62%白人、11%黒人、16%ラテン系、6%アジア系、1.5%先住民、3.5%混合/その他を想定し、実際にエントロピー式を使う。
家族構成:2カテゴリを使う。子どもあり/なしという論理で、子どもの数を推測するのは非常に難しいからだ。これらはやや非一様なので0.8ビットに落とす。成長して家を出た子どもがいるという第三のカテゴリもあり得るが、これは年齢と大きく重複する。
所得:米国国勢調査は11の所得ブラケットを与えている。これを離散化する方法としてそれなりに良いだろう。log2(11)=3.459ビットだが、これらもまた中程度に非一様なので2.5に減らす。
婚姻状況:3カテゴリ(未婚、既婚、離婚/死別/その他)を取る。最大でlog2(3)=1.58ビットだが、やはりやや非一様なので1.2に落とした。
精神的健康:3カテゴリを使う。「健康」、「慢性的な状態」、「深刻な問題」。73%健康、25%慢性的状態、2%「深刻な問題」を想定し、エントロピー式を使うと0.9ビットになる。
母語:2カテゴリを使う。すなわち「英語が母語」と「英語以外が母語」だ。これらは英語圏内ではかなり偏っているので、1ビットから0.6ビットに落とす。
職業。BLS分類は23の主要グループを与える。log2(23)=4.523ビットだが、中程度に非一様なので4ビットに減らす。
身体的健康:60%「健康」30%「慢性的状態」10%「深刻な問題」を想定し、エントロピー式を使う。
政治的志向:3カテゴリ(左、中、右)を使う。これらはかなり均等なので1.58ビットを使う。
地域:LLMに英語圏を妥当な粒度でいくつかの地域に分割するよう頼んだ。多少弄った結果、23地域が得られた。イングランド南東部、イングランド南西部、ミッドランド、イングランド北部、スコットランド、ウェールズ、アイルランド共和国、北アイルランド、ケベック、オンタリオ、カナダ西部、カナダ大西洋岸、米国北東部、米国南部、米国中西部、米国西部、アラスカ、ハワイ、オーストラリア南東部、オーストラリア西部、クイーンズランド、オーストラリア中部・南部、ニュージーランドだ。LLM生成の人口推計(妥当に見えた)を用いてエントロピー式に代入すると3.5481ビットになった。
# 地域 人口(百万) pi(人口/合計) log2(pi) pilog2(pi) 1 イングランド南東部 20.0 0.04062 -4.617 -0.1875 2 イングランド南西部 6.0 0.01219 -6.353 -0.0774 3 ミッドランド 11.0 0.02234 -5.485 -0.1225 4 イングランド北部 20.0 0.04062 -4.617 -0.1875 5 スコットランド 5.5 0.01117 -6.484 -0.0724 6 ウェールズ 3.0 0.00609 -7.359 -0.0448 7 アイルランド共和国 5.0 0.01015 -6.626 -0.0673 8 北アイルランド 2.0 0.00406 -7.949 -0.0323 9 ケベック 9.0 0.01828 -5.774 -0.1055 10 オンタリオ 16.0 0.03250 -4.943 -0.1606 11 カナダ西部 13.0 0.02640 -5.247 -0.1385 12 カナダ大西洋岸 2.5 0.00508 -7.625 -0.0387 13 米国北東部 56.0 0.11373 -3.136 -0.3568 14 米国南部 130.0 0.26401 -1.922 -0.5074 15 米国中西部 69.0 0.14013 -2.836 -0.3973 16 米国西部 80.0 0.16247 -2.624 -0.4264 17 アラスカ 0.7 0.00142 -9.467 -0.0134 18 ハワイ 1.4 0.00284 -8.790 -0.0249 19 オーストラリア南東部 16.0 0.03250 -4.943 -0.1606 20 オーストラリア西部 3.0 0.00609 -7.359 -0.0448 21 クイーンズランド 5.5 0.01117 -6.484 -0.0724 22 オーストラリア中部・南部 2.5 0.00508 -7.625 -0.0387 23 ニュージーランド 5.3 0.01076 -6.539 -0.0703 pilog2(pi)の合計 -3.5481 宗教:3カテゴリ(キリスト教、その他の宗教、無神論/不可知論)。これらは比較的均等だ。
性別:2カテゴリ、ほぼ均等 ↩
それぞれが0と1に等確率でなるが、すべてがペアワイズに相関係数ρで相関している2値確率変数の集合を考える。この条件を満たす分布は多くあるが、自然な選択はイジングモデルだ。変数が多いとき、ペアワイズ相関がρのイジングモデルにおける変数あたりのエントロピーはh((1+√ρ)/2)に近づく。ここでhは2値エントロピー関数である。これらの数値を出力してみる。
ρ h((1+√ρ)/2) 0.0000 1.00000000 0.1000 0.92661216 0.2000 0.85048963 0.3000 0.77121926 0.4000 0.68826012 0.5000 0.60087604 0.6000 0.50801160 0.7000 0.40803633 0.8000 0.29811751 0.9000 0.17212786 1.0000 0.00000000 見ての通り、変数あたりのエントロピーは常に1-ρより少し大きい。だがイジングモデルは楽観的だ。というのも、与えられた条件を満たすすべての分布の中で最もエントロピー(最も高い情報量)を持つからだ。だから、もういい、変数あたりのエントロピーを単に1-ρと見積もることにする。 ↩
もしそれが何か意味を持つなら、Kimi 2.6にいくつかの数をでっち上げさせた。[相関行列]
個人的には、これは私にはあまり意味がない… ↩
これは上で述べたより複雑だ。なぜならある原子(例:ストロンチウム90)は他のものより崩壊あたり多くのエネルギーを放出するからだ。そしてある種の放射線は他のものより人命にとって有害だ。 ↩
一般に、n=0で1から始まりn=Nで1-Xまで減衰する指数曲線f(n)が欲しければ、f(n) = exp(n × ln(1-X) / N)を選ぶべきだ。だから人口統計的特徴についてはX=0.6、N=4500を使っている。つまりf(n) = exp(-0.00020362 × n)だ。性格特徴についてはX=0.7を使っている。つまりf(n) = exp(-0.00026755 × n)であり、文体特徴についてはX=0.8を使っている。つまりf(n) = exp(-0.000357653 × n)だ。したがって隠されたまま残るビットの総数は17.2 × exp(-0.00020362 × n) + 39.0 × exp(-0.00026755 × n) + 50.0 × exp(-0.000357653 × n)である。 ↩
さて、私が間違っている最も可能性の高い理由は何だろうか。上では数学を使って特徴に含まれる情報を推定し、次に基本的に文章からその情報のどれだけが推測できるかという数字をでっち上げた。それでも、私が最も懸念しているのは前者の部分だ。相関を不十分に割り引いたことで、特徴そのものに含まれる情報量を過大評価しているのではないかと少し心配している。たとえば、特徴グループ間にも相関があるはずだ。(たとえば、完全主義が高い人はloseとlooseを混同する可能性が低く、イングランド北部に住む人はハワイに住む人より文字列
colourを使う可能性が高いといった具合だ。)また、ペアワイズ相関ρによって情報をρだけ割り引くという私の粗雑な方法では、十分に割り引けていないかもしれない。イジングモデルに基づく見積もりを使ったが、これは相関制約を与えられたときの最大エントロピー(最大情報量)分布だ。ワーストケースで情報がどれだけ低くなり得るかは、まだ解明できていない。 ↩これが「知能」について真であるかどうかは議論があるが、ビットレートに関しては間違いなく真だ。 ↩
また、厳密には、計量文体学は言語についてのものだ。これは大規模言語モデルがおそらく必要なものの多くをすでに内部に持っていることを意味する。それが彼らが「偶然」だけでそこそこ得意である理由かもしれない。だがこれを最適に行うには、自己省察(たとえば異なる文脈が与えられたときの文章の確率へのアクセス)が必要であり、現在のLLMは通常それができず、タスク特化の訓練なしにはそれを正しく操作する方法もわからないだろう。 ↩
最適に近い計量文体学的能力はある種の「創発的特性」だと推測することもできる。
だがこれまでの一般的な教訓は、LLMは創発的特性をほとんど持たず、単に訓練されたことが得意なだけだということだ。(編集:この文は撤回する!) ↩(AI企業で働くあなた――「もしかしたらやるべきか」と考え、この脚注を見に来て、このメタジョークを見る人へのメタジョーク。) ↩
文章を汎用的なスタイルを押し付けて「均質化」する代わりに、非常に強いがランダムなスタイルを強制することで「カモフラージュ」する方が良いかもしれない。 ↩
ここで少し注意が必要だ。典型的には、KLダイバージェンスはナット単位で測られると理解されている。だがこの記事では相互情報量をビット単位で測ってきた。それは構わないが、変換する必要がある。たとえば106.2ビット = 73.60ナットだ。 ↩
記事をランダムに読む
コメント
ログインしてコメントする