假名末日
這裡有一個猜想:只要你在網路上用不同名字發表過一定份量的文字,光憑文字本身就能把這些身分連結起來。之所以可能(容我這樣猜測),是因為你在寫下的每一句話裡,都留下了統計上的「指紋」。
想像有一個網站,你可以貼上一段某人剛寫好的全新文字,網站就會回傳這個作者曾用任何名字發表過的所有文字的連結。它並不完美,但已經相當準確。就我所知,這樣的網站目前還不存在——至少在公開的網路上沒有。但我懷疑這件事是可行的,而且很快就會變得很簡單。這將會為化名寫作帶來一些麻煩。
註:這篇文章大部分是在 2025 年中寫完的,之後我愚蠢地放了一年,不斷修改那些你們根本不會去看的定理陳述。1 在此期間,LLM 從文字猜測作者的能力已經變得強得多。(給 Claude 4.8 看這篇文章草稿的前 1000 字,它就知道是我寫的。)即便如此,我認為這才剛開始。我預期會看到越來越冷門的作者,被越來越短的文字片段給認出來。我預期即使人們換了語氣或寫了毫不相關的主題,這套方法依然有效。而且我預期,我曾用任何化名寫過的所有東西,很快都會被連結回我的本名。2
更強的猜想是,我們正朝向一種廣義的假名末日邁進。或許在未來,只要你透過任何高頻寬的管道與世界互動,你就會暴露自己的身分。比方說,你在公共場合戴著面具,只靠對著變聲器用喉內低語說話。沒用,你還是會透過體型、步態或化學特徵被辨識出來。比方說,你不喜歡車子到處被追蹤,所以你不再帶手機,還設法說服立法者禁止車牌。沒關係,你的車還是會透過細小的刮痕或引擎獨特的聲響被追蹤。比方說,你不喜歡在網路上被追蹤,所以你鎖定了瀏覽器指紋,只用 Monero 買東西,還透過三層 VPN 連線。沒關係,你還是會透過手指在頁面上滑動時的細微晃動被認出來。我們每個人都太獨特了,而資訊理論的極限正朝我們逼近。
起始位元
讓我們從基本原理開始。想像每個人出生時都被分配到一串隨機的二進位字串。每當你在網路上發表任何東西,你都必須用那串字串來簽名。如果字串很短,像是 0110,那麼很多人會跟你拿到同一個字串。但如果字串很長,那你的字串幾乎一定是獨一無二的,要把你所有的化名串起來就易如反掌。
轉折點在哪裡?如果你只知道作者目前還活著、住在英語世界某處,那大約是 29 個位元。因為如果有 K 位數,就有 2ᴷ 種可能的二進位字串,而當 K = 28.86 時,2ᴷ ≈ 490,000,000,正好是目前活在英語世界的人口數。如果字串少於 29 位元,就很可能有人跟你共用同一個字串;如果多於 29 位元,你的字串就很可能是獨一無二的。
我們(目前還?)不需要用政府發行的不可變字串來為寫下的東西簽名。但你的寫作方式,依然透過語氣、個性、用詞選擇等等,洩漏了大量關於你的線索。
理論上,我認為只要一個人寫得夠多,要把他的不同身分連結起來一定是可能的。再想像一次,每個人出生時都被分配到一串隨機二進位字串,但這次你不需要用它來簽署你寫的東西,而是每當你寫下一個字,就有某個機率會洩漏字串中一個隨機位元,並被當成簽名附加到訊息上。舉例來說,也許會附加一個 bit[129]=1 的簽名,表示你的字串在第 129 個位置上的值是 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 個重疊的位元,而且全部吻合。
- 不同的人在任何一個已洩漏的位元上吻合的機率是 50%。
- 同一個人在任何一個已洩漏的位元上吻合的機率是 100%。
- 總共有 490,000,000 人。
直覺上,如果 K 是 5,那麼所有位元都吻合並不能證明什麼,因為在 4.9 億人中,很多人會剛好吻合。但如果 K 是 70,就算有這麼龐大的母體,兩個不同的人剛好全部吻合的機率也極低。結果顯示,如果有 N 個其他人擁有隨機位元,而你挑了 K 個位元,存在某個人全部吻合的機率是 1 - (1-2⁻ᴷ)ᴺ。當 N 是 4.9 億時,圖表如下:
你看,29 又出現了。(數學是不是很美妙?)一般來說,轉折點就發生在讓 2ᴷ ≈ N 的那個 K,也就是 K = log₂(N)。
如果你在化名 B 底下洩漏的位元遠少於 29 個,那麼幾乎可以確定會有另一個人剛好全部吻合。但如果你洩漏的遠多於 29 個,那麼幾乎不可能有其他人能全部吻合。所以攻擊者基本上就知道 A 和 B 是同一個人。而且我要再次強調:他們不需要看到其他 4.9 億人的任何資料就能知道。
當然,我們寫作時並不是真的在洩漏不可變特徵字串的位元。但你可以把模型弄得更寫實,結論依然不變。如果你想反映文字只提供關於作者的帶雜訊資訊,你可以在洩漏前給位元加上雜訊。如果你想反映有些寫作風格比其他風格更常見,你可以讓位元字串的分布不均勻。如果你想反映某些怪癖比其他怪癖更明顯,你可以讓不同位元有不同的洩漏機率。這些都會讓數學變得更複雜,但不會改變基本結論:只要你的寫作風格包含至少 29 位元的資訊,而你寫得夠多,你就完了。
這就是我認為假名末日可能發生的論證。但我不只想主張它未來可能發生,我認為它很可能很快就會發生,而且需要的文字量並不大。要論證這點,我們得更具體:人們有哪些特徵會反映在寫作中?那些特徵包含多少位元的資訊?從文字中猜出那些位元的準確度有多高?
註:為了避免本文變成巨大的資訊理論講座,我多半會在不完全精確的意義下使用「位元」、「資訊」這類詞彙。我這麼做是因為我預期多數讀者並不是「位元定義的偏執狂」,而且過度技術化反而會模糊大局。如果你是資訊理論愛好者,或懷疑我到底懂不懂自己在說什麼,請直接跳到下面的〈給多疑的資訊理論愛好者〉一節。在那之前,就憑直覺相信我吧。
特徵空間
假設除了我上面寫的那些文字之外,你對我一無所知,然後要你猜我的年齡、宗教或職業。你可以猜,對吧?也許不完美,但肯定比完全沒看過那些文字時猜得準。因此,那些文字以某種方式包含了關於我的人口統計特徵的資訊。於是我試著列出類似的、光從文字就能比隨機猜測更準地猜出來的東西,整理如下:
- 年齡
- 教育程度
- 族裔
- 家庭狀況
- 收入
- 婚姻狀況
- 心理健康
- 母語
- 職業
- 身體健康
- 政治傾向
- 地區
- 宗教信仰
- 性別
同樣地,如果你只讀上面的文字,能猜出我有多外向或多盡責嗎?同樣不是完美的。(見過我的讀者通常會驚訝我居然能在陽光下存活。)但即便如此,我相信你還是能猜得不錯。所以,這些文字同樣包含了關於我人格的資訊。
人格有哪些特徵?HEXACO 模型列出了六個,分別是誠實-謙遜、情緒性、外向性、親和性、盡責性、經驗開放性。我懷疑只要寫作樣本夠長,這些都能以合理的準確度被猜出來。但能猜得更多嗎?對這六個因素中的每一個,HEXACO 模型又列出了四個「面向」。抽象來看,想從文字猜出 6 × 4 = 24 種不同的人格特徵聽起來很荒謬,但只要看看清單:
- 誠實-謙遜
- 真誠
- 公正
- 不貪
- 謙虛
- 情緒性
- 畏懼
- 焦慮
- 依賴
- 感性
- 外向性
- 社交自尊
- 社交大膽
- 合群性
- 活力
- 親和性
- 寬恕
- 溫和
- 彈性
- 耐心
- 盡責性
- 條理性
- 勤勉
- 完美主義
- 審慎
- 經驗開放性
- 審美感受性
- 好奇心
- 創造力
- 非傳統性
如果你想到具體的人,我想你會相信這 24 項確實代表了真實存在的特質,而且從文字猜出它們是可行的。(舉例來說,你最喜歡的那位存在焦慮加科學部落客,在「謙虛」上的分數可能就比誠實-謙遜的其他面向來得低。)不同子面向之間當然相關,但並非完全相關。
當然,從人們的寫作中你學到最多的就是他們怎麼寫。他們是否傾向無意義地分裂不定詞?他們是否使用連字號連接的詞?他們是否錯誤地擺放副詞子句的位置?
將作者歸屬追溯到寫作風格特徵的想法,至少可以追溯到 1440 年,當時 Lorenzo Valla 證明了《君士坦丁獻土》——據稱是君士坦丁大帝把羅馬帝國贈與天主教會的文件——所用的白話文來自君士坦丁死後 400 年,因此是偽造的。1851 年,Augustus De Morgan 觀察到同一作者的平均字長往往很穩定。第一個「現代」嘗試似乎出現在 1964 年,當時 Mosteller 和 Wallace 發表了《作者歸屬問題中的推論》:
本研究試圖解決《聯邦黨人文集》的作者歸屬問題;[…]
字數統計是用於區分的變數。由於寫作主題會嚴重影響某個詞的使用率,因此選詞時必須小心。像 an、of、upon 這類語言中的填充詞,更廣義來說,冠詞、介系詞和連接詞,出現頻率相當穩定,而像 war、executive、legislature 這種較有實質意義的詞則不然。
在研究了這些計數的分布後,作者基於貝氏方法進行了分析。關於作者歸屬的結論是,12 篇有爭議的文章全部是由 Madison 而非 Hamilton 所寫。
懂了嗎?想法是,你對 war 這個詞的使用頻率,主要取決於你是否剛好在談論戰爭。但你對 upon 的使用頻率,主要取決於你有多喜歡 upon 這個詞。為了證明這點,他們拿了 Hamilton 寫的 48 篇和 Madison 寫的 50 篇,做了這張關於 by、from、to 使用次數的表格:

Madison 喜歡 by。Hamilton 則是個 to 派的人。利用這類統計,他們斷定有爭議的《聯邦黨人文集》必定是 Madison 所寫。
於是我做了一些研究,尋找其他被認為在人們談論不同主題時仍保持穩定的寫作風格特徵。我發現有非常多,多到我甚至很難把它們有意義地分組:
低層次頻率:
- 詞長
- 句長
- 段落長度
- 標點符號頻率(逗號、冒號、破折號、括號)
- 功能詞頻率(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-gram(3-gram 和 4-gram)
- 詞彙 N-gram(通常是 3-gram)
詞彙特徵:
- 詞彙量大小
- 詞彙多樣性/型例比(相異詞數除以總詞數。)
- 罕用詞頻率
- 語意密度
- 話語標記的位置、組合(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,「…」(三個句點)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)
特異特徵:
- 空白字元習慣。
- 拼寫錯誤(把 lose 寫成 loose)
- 文法錯誤。(Between you and I)
- 一致的、獨特的打字錯誤
- 其他一致的錯誤(重複的詞、未封閉的括號)
這已經很多了,肯定還有更多。而且這些全都是人類用小小的腦袋想出來的「淺層」特徵。我強烈懷疑,只要在夠大的資料集上尋找統計模式,還能找到更多「深層」特徵。其中許多特徵甚至可能沒有連貫的中文描述,但它們依然存在,為有心尋找的人提供位元。
所以我們在寫作時會洩漏關於許多不同事情的資訊。但有多少資訊?有可能說出需要多少字才能唯一指紋辨識一個人嗎?
不行。以一階近似來說,答案是不行。但以二階近似來說,或許可以?在一個數量級內?我會試試看,但會很困難。
人口統計位元
文字透過年齡、性別等人口統計特徵能提供多少可識別資訊的位元數?
乍看之下,這是個危險的問題,因為這取決於你把那些東西分成多少類別。以性別為例。就假名末日而言,你對於性別該如何定義或該有多少種性別的意見是無關緊要的。更細的分類總是提供更多資訊,而我們的去匿名化攻擊者朋友如果能利用,就會利用。然而,超過兩類對性別來說差別不大,因為額外的類別很難猜中,而且即便猜中,低盛行率的類別也貢獻不了多少額外資訊。3 所以,對我們而言,兩類就是正確答案。
那年齡呢?乍看之下,把年齡轉換成一組類別似乎毫無意義。如果你以毫秒為單位編碼年齡,那麼在過去 100 年內出生的人就有 3.156 兆種類別。如果你以十年為單位,就只有 10 種。這裡要注意的是,雖然你可以從我的寫作方式猜出我出生的年代,但你絕不可能猜中毫秒。(看出我做了什麼嗎?某些年代出生的人更可能使用像 snowball’s chance in hell 這樣的說法?4)如果我們把年齡設想成有瘋狂多種類別,之後就必須打折扣來反映猜測的困難度。我的直覺是,要比大約五年更精確地猜出年齡是很難的,所以 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 位元,要到接近 90/10,資訊量才會降到 0.5 位元。5 有超過兩類時,情況也大致相同。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 人格標記法致敬。這相當於總共 24 × 2.32 = 55.68 位元,因為當 K = 2.32 時 2ᴷ ≈ 5。
接著我們需要為相關性打折扣。六個主要的 HEXACO 人格因素被設計成彼此不相關,但每個因素內的「面向」之間是相關的(相關係數通常在 0.3 到 0.6 之間)。用一個整體折扣係數 0.3 來反映因素內高度相關、因素間低度相關,似乎是合理的。這樣算起來總共是 39.0 位元。
風格位元
那寫作風格特徵呢?它們包含多少資訊?
這似乎很難。有些特徵,像字元 n-gram,本身其實就是一長串特徵。(輸入 aaa 的頻率、輸入 aab 的頻率等等。)然而,許多這類特徵包含的資訊很少,因為幾乎所有人輸入 zqx 的頻率都在 0% 左右。而且,當然,寫作風格特徵之間是相關的,因為會寫 realise 而非 realize 的人,比較不可能在破折號兩邊加空格。
在沒有更好想法的情況下,我打算為上面風格特徵清單中的每個葉節點各算一個位元。我把它想成給每個特徵兩個區間,然後假設特徵分布不均和相關性(會減少資訊)剛好被以下事實抵銷:許多特徵值得更多區間,且可能還有更多未列出的「深層」特徵(會增加資訊)。這樣得到一個可疑地整齊的數字:50.0 位元。
猜測位元
如果你相信上面的數字,那麼我們在寫作時洩漏的可識別資訊至少有 17.2 + 39.0 + 50.0 = 106.2 位元。這非常多。如果你能看到所有這些特徵,已經足以在一顆有 9300 億兆兆人口的星球上把人識別出來。
但要論證假名末日將至,光是論證那些位元存在是不夠的。我們需要論證它們能夠而且將會被從相對少量的文字中猜出來。
所以顯然我們需要談談核武。在核爆中,會產生許多不穩定的原子。這些原子會自發衰變成更穩定的原子,過程中釋放輻射。有些原子非常急於衰變,意味著它們釋放大量輻射,但在幾週內就消失了(碘-131)。有些則不情願衰變,意味著它們釋放的輻射較少,但能存在數十年(鍶-90)。還有些能存在數百萬年,但它們產生的輻射太少,不算是大問題(銫-135)。10 因此,核爆後殘留的輻射是許多不同指數曲線的總和,每種同位素各一條。
我懷疑文字中的可識別位元有點像那樣。你的正式程度和平均句長幾乎馬上就會洩漏。你對拉丁語源 vs. 日耳曼語源詞彙的偏好需要一段時間才會顯現。而你的社交大膽程度以及你住在昆士蘭而非澳洲東南部這個事實,則洩漏得非常慢,慢到實際上等於根本沒洩漏。
好的。那麼如果你一開始有 106.2 位元,在寫了一定字數後,你會洩漏其中多少?
我會透過高尚的「編造數字」方法來回答這個問題。但首先,讓我們校準一下。你剛剛讀了 4500 字由我寫的文字。你能多準確地猜出我的人口統計和人格特徵?作為健全性檢查,我把上面的文字丟給一個 LLM,請它猜。結果好得令人不安。它不總是對,但通常是對的,而且它對個別預測的信心評估做得很好。
我認為這沒有什麼神奇的解釋。事實是,如果你看個別的人格和人口統計特徵,要猜中它們根本沒那麼難。所以我相信你也能做得一樣好。而只要給你足夠時間,我很確定你在寫作風格特徵上會做得更好。
即便如此,你可能還是不太行。以 GeoGuessr 為例,人們從一張隨機照片猜測世界上的地點。隨機的人表現得還可以,但如果你挑出最有天賦的頂尖玩家並讓他們瘋狂練習,他們會變得非常厲害。我認為 LLM 也不特別擅長從文字猜特徵。它們不是為此訓練的。這只是它們通用智慧的衍生效應。資訊理論的極限肯定要高得多。
所以這是一個非常粗略的估算:在 4500 字之後,我認為有可能猜中大約:
- 60% 的人口統計特徵
- 70% 的人格特徵
- 80% 的寫作風格特徵
如果我們用各自的指數曲線來建模,並從 17.2 / 39.0 / 50.0 位元開始,那麼在寫了一定字數後仍隱藏的可識別位元總數如下圖所示:11
瞧,當你洩漏 29 位元時,化名就被攻破了,而這發生在 1071 字之後。
真的嗎?
當然不是。上面的圖建立在一座搖搖欲墜的、由各種靠不住的假設堆起的高塔上。我之所以詳細推導那條曲線,不是因為你應該相信它,而是因為我認為看過計算過程後,以下幾點就很難反駁:
- 你在寫作中洩漏的可識別資訊遠多於 29 位元。
- 其中有些位元需要很長時間才會洩漏,但有些則很快就洩漏了。
- 「快速洩漏的位元」已經多到足以讓你從「相當少」的寫作樣本中被識別出來。
我在選擇特徵、指派類別數、估計這些類別上的分布、為相關性打折扣,以及猜測能猜中多少區間方面,都做了許多可爭議的選擇。這些選擇各自都值得懷疑。但上述幾點有相當大的誤差容許空間。你可以做不同的選擇,但似乎很難避免得出以上三點是成立的結論。12
這會怎麼運作?
你可能會好奇,為什麼我用了這麼多編造的數字。畢竟,已經有整個領域專門從文字中識別作者,通常稱為「文體學」或「作者歸屬」。他們有研究論文和競賽等等。然而,據我所知,最先進的已發表成果看起來像這樣:
- 找 50 個人。
- 從每位作者取得幾百個寫作樣本,每個 1000 到 2000 字。
- 現在,從這些作者中取一個新的寫作樣本。
- 做一些標準的機器學習操作。
- 看,作者能以約 95% 的準確率被識別出來!
這聽起來還可以,但那只是在約 50 位作者的池子中識別。要讓我的主張成立,類似的準確率必須在 4.9 億人的池子中也能達到。那要多七個數量級。
問題是,那些論文使用的方法極其薄弱。上面的所有數學都假設你是在「資訊理論極限」下運作,完美地利用了所有可用資訊。如果你想接近那個極限,我們現在已經大致知道該怎麼做:套用「現代」機器學習配方:超大資料集+超大神經網路+砸在 GPU 上的天文數字。對我們而言,我猜那會需要「有史以來寫過的所有文字」+「數百億個參數」+「數千萬美元」等級的規模。我找不到任何一篇論文有稍微接近嘗試這樣做的。
所以我認為那些論文沒告訴我們太多,就像用幾本書訓練出來的三階馬可夫模型,無法告訴我們電腦寫文章能寫得多好一樣。LLM 已經證明,如果你使用上述配方,電腦就能在生成文字方面接近資訊理論極限。13 因此,我懷疑只要投入 LLM 等級的努力,同樣能在識別作者方面達到類似效果。
你可能還會想:為什麼我要把這當成某種未來的技術來談?這技術不就是 LLM 嗎?
我懷疑這項技術在如何建模人類語言方面會相當像 LLM。但目前通用的 LLM 並不是為這項任務訓練的。它們只是「碰巧」擅長這件事。所以,就像專門的西洋棋 AI 能在棋藝上輾壓 LLM 一樣,我懷疑專門的文體學方法也能在文體學上輾壓通用 LLM。只是那些專門的文體學方法似乎還不存在,或至少沒有公開。14 所以我們不該以為目前的 LLM 已經接近可能的極限,即使假設通用 LLM 的進步從今天起就停滯了。15
對策
如果這一切屬實,能做些什麼呢?
最明顯的「對策」就是習慣它。我的意思是,想像我們真的活在一個每個人都必須用獨一無二、不可變的字串來為寫的每樣東西簽名的世界。會發生什麼?我預期會混雜以下幾種反應:
- 人們變得更自在地讓「完整的自我」公開,減少區隔。
- 人們從公開管道的溝通中退縮,更依賴群組聊天之類的管道。
- 人們自我審查。
這裡有很強的歷史類比,因為在過去 20 年裡,許多政府和科技公司實際上已經規定人們必須用真名來簽署他們寫的東西。
影響似乎因當地文化和政治制度而有很大差異。整體而言,我的印象是,人們已經 гораздо更習慣同事可能會讀到自己的交友檔案或得知自己去參加 furry 聚會。我樂觀地認為,文化會繼續適應,尊重我們每個人都包含多重面向的事實。這似乎是健康的。
有些影響顯然是正面的。自我審查不一定是壞事。舉例來說,實名制邊際上肯定能阻止一些青少年從事網路霸凌。另一方面,你曾是青少年嗎?我很確定,對於任何「不一樣」的人來說,讓那些差異被廣播到全世界,會創造出大得多的「被霸凌面積」。所以影響是好壞參半的。而成年人和青少年之間的差異,並沒有我們想的那麼大。
二十年前,我可能會預測實名制會阻礙人們在網路上表達有爭議的政治觀點。表面上看,這似乎完全錯誤。至少在西方,很多人非常樂於表達少數的政治觀點,如果你不同意,那就見鬼去吧。但我也傾向認為這掩蓋了大量的自我審查,因為多數人不想投入政治上的生死鬥,所以被少數好戰的人嚇住了。而且,顯然,在某些國家人們知道批評黨是不明智的。所以,習慣它似乎充其量只是個不完美的解方。
另一種對策是不要打造這項技術,或不要讓它廣泛流通。短期內,這似乎是可行的。就我所知,多年來一個資金中等的團隊就能打造出一款能從照片中辨識出街上大多數人的手機 App。然而,幾乎沒有任何讀者能取得這樣的 App。如果通用 LLM 在文體學上持續進步,AI 公司完全有可能認為這是安全問題,進而訓練它們的 AI 拒絕這麼做。16 這可能可以奏效一陣子。
但如果這項技術是可行的,政府一定會打造並使用它。他們可能會試圖不讓一般人拿到。某些政府可能會限制自身的使用。我那些重視隱私的盟友們似乎總是很憤世嫉俗,但如果最高法院宣布 FBI 在去匿名化美國公民之前需要搜索票,我一點也不會驚訝。但當/如果這項技術變得足夠便宜,要不讓一般人和/或惡意使用者拿到,似乎會非常困難。我猜有可能做出一個幾百 GB 大小、能在大多數現代筆電上(緩慢地)執行的程式。如果那個程式被公開,就很難把精靈塞回瓶子裡了。
也有技術性的對策。最明顯的,就是把你的寫作拿去過一個「過濾器」試圖移除可識別的位元,例如請 LLM 幫你重寫。很難確定這會多有效,因為我們沒有準確估計你一開始有多少位元,或這會移除多少位元。但我猜如果小心操作,這會相當有效。原因是,你在寫作中留下的可識別位元數量,相對於識別你所需的數量來說,可能並沒有那麼大。如果你把寫作「均質化」以移除所有風格和個性,你應該就能移除大部分那些位元。理論上,你仍會洩漏一些資訊。但我想這會大幅增加你在保持化名狀態下還能寫的字數。17
但想了一想,這讓我感到難過。實際上,這種對策是透過拿走寫作並摧毀所有人性痕跡來保住化名性。這似乎對化名性的「壞」用途很有效,像是網路霸凌或協同暴力,但對「好」的用途則完全無效,例如有人喜歡用化名寫作,是因為他覺得那讓他能更誠實、更脆弱、更完整地做自己,該死的。
廣義的假名末日
也許這不只對寫作是如此。也許這只是我們宇宙的一個特徵:只要你以任何有意義的方式與世界互動,就會留下足以識別你的痕跡。
如果你在公共場合走動,那麼你可以透過臉、步態、聲音、DNA、視網膜或真正的指紋被識別。
或者說你使用網路。即使你鎖定了瀏覽器指紋並用 VPN 或 Tor 隱藏 IP,一個夠強大的對手仍可能透過分析全域封包流來識別你。
或者說你使用任何手機或電腦。你可能會透過按鍵動態或你晃動手指或滑鼠的方式被識別。
假設你在雜貨店買食物,但你用現金付款,而且不知怎地在一家沒有監視器的雜貨店購物。如果你買超過少數幾樣東西,我敢打賭光透過你買的東西的模式就足以識別你。
(順帶一提,你有沒有注意到鈔票上有序號?你知道越來越多 ATM 開始追蹤那些號碼嗎?)
或者說你不喜歡你的車被追蹤,所以你不再帶手機,還設法讓立法者禁止車牌。即便如此,你的車肯定有幾個微小的獨特刮痕,而且引擎的聲音可能跟其他同款同年份的車不完全一樣。所以只要有任何高解析度的影像或音訊,就足以追蹤你。
假設你把耳機插到機場的充電站。你的耳機在類比充電電路上有其特殊性。如果有人真的想追蹤,是可以追蹤的。
或者說你用電。給定高解析度的用電資料,能說出你家住了幾個人?以及你在用什麼裝置?大概很多吧?
或者說你使用馬桶。許多地方已經在檢測污水,並且在群體層面上知道人們在使用什麼藥物、各種疾病有多盛行。想像這被升級為在系統中的許多地方、配合來自個別住戶的流量測量,進行高時間解析度的檢測。那會很刺激。
或者說你是一個國家,你有潛艇。對手能透過分散式聲學感測來偵測它們嗎?透過衛星合成孔徑雷達呢?重力梯度儀呢?量子磁力測定呢?
據我所知,一般趨勢是,如果沒有對策,幾乎所有東西都能被識別。對策可以讓它變得更難,但代價高昂,而且整體而言,這場軍備競賽似乎有利於識別者,而非不想被識別的人。
我要強調:這不全是壞事。廣義假名末日的好壞取決於社會如何結構化。畢竟,文明的基礎是找到讓人們達成交易的方法,而可以說,較少的隱私讓這變得更容易。在我們活在一個脆弱世界、容易創造出毀滅文明的技術的程度下,或許我們很幸運地發現自己活在一個非隱私的世界中。即便如此,我確實擔心隱私長期以來提供了一種來自法律和規範的「寬鬆空間」。歷史上,這種寬鬆限制了機構執行其規則的能力。如果隱私正在消失,我們需要思考如何在機構不願意時,仍保有寬鬆,特別是在機構不想要的時候。
附錄:給多疑的資訊理論愛好者
上面,我試著估計寫作中可識別資訊的位元數。但什麼是「位元」?一般來說,如果 x 是一個離散隨機變數,那麼 x 以位元為單位的 Shannon 熵是 H(x) = ∑ₓ p(x) log₂(1/p(x)),其中總和遍及 x 可能取得的所有值。這總是介於零和 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 位元。
現在,你可能還是會懷疑。上面,我隱含地假設了類似以下的事情是成立的:
若且唯若可識別特徵與寫作之間的互資訊至少為 log₂(N) 位元,才有可能以低錯誤率在 N 個可能性中識別出一個人。
這就是我為何能論證化名性在約 29 位元時被攻破。但這真的對嗎?嚴格來說,不對。實際上,更嚴格地說,它是「連錯都稱不上」,因為它不夠精確到能判斷真假。但據我所知,基本上任何精確版本的該陳述都是錯的。然而,只要加上一些不太瘋狂的額外假設,就有可能找到成立的版本。
首先,讓我們考慮一個極其簡單的資訊洩漏模型。
定理。 假設世界由你加上 N 個其他人組成,且假設每個人都有一個二進位身分字串,從 M 位元二進位字串上的均勻分布中抽取。所有這些字串攻擊者都知道。假設你挑選某個 K 個位元的子集並洩漏它們。那麼能識別出你的機率是
(1-2⁻ᴷ)ᴺ。
此外,為了將被識別的機率保持在
(1-1/N)ᴺ ≈ exp(-1) ≈ 36.7% 以下,
必要條件是 K ≤ log₂(N)。
證明。 所有 K 個被觀察到的特徵與人群中任何隨機一人碰撞的機率是 2⁻ᴷ。因此,在檢查了 N 人的群體後沒有碰撞(意味著你是唯一符合被觀察特徵的人)的機率是 (1-2⁻ᴷ)ᴺ。 □
這很簡單。但它一點也不寫實,因為它假設人們有不可變的二進位字串並會洩漏到寫作中。我們能讓它更寫實嗎?
嗯,有一個簡單的下界。也就是說,我們一般可以說,如果互資訊顯著小於 log₂(N),那麼就無法可靠地識別某人。
定理。 假設隨機選出 N 個人,並公開他們完整的寫作風格特徵。從該群體中選出一人並產生一個寫作樣本。然後,攻擊者必須猜出是誰寫的。攻擊者的平均成功率(對隨機池、隨機選擇的作者和隨機寫作樣本取平均)至多為 (I(x;s)+1)/log₂(N)。
證明。 令 S=(s₁, s₂, s₃, …) 為 N 種風格的池,令 n 為表示哪個人被選中的隨機變數。Fano 不等式指出,最高的可能成功率受限於寫作樣本 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 為來自 ŝ,否則「拒絕」。事實上,Neyman-Pearson 引理保證這在非常強的意義上是最優策略:該比值包含了對做出該決定有用的所有資訊。
現在有件有趣的事:攻擊者與其觀察比值,不如觀察比值的對數。這沒有差別,因為它是單調的。但如果你取該比值的對數,並對人和文本取期望,你會得到什麼?嗯:
𝔼 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)¹⁻ᵗ 為在這兩個分布之間內插的分布族。為了形式化「ŝ 的資訊洩漏」不會變化太大的想法,我們假設存在某個常數 V,使得對於 0 < t < 1,log(p(x|ŝ)/p(x)) 在 qₜ 下的變異數以 V 為界。
則對於任何滿足 exp(-D) < ε < exp(-D + ½ V) 的 ε,攻擊者有可能同時達到偽陽性率 FPR ≤ ε 和偽陰性率 FNR ≤ exp( - ½ (D+ ln ε)² / V). 此偽陽性率反映了在寫作樣本 x 來自隨機選出的另一個人時的錯誤率,而偽陰性率則反映了在寫作樣本 x 實際來自具有風格 ŝ 的人時的錯誤率。
證明概要。 令 f 為 l(x) = log(p(x|ŝ)/p(x)) 相對於 p(x|ŝ) 的分布,令 g 為 l(x) 相對於 p(x) 的分布。所述的變異數假設蘊含二次上界 K(u) ≤ D u +½ V u^2 對於 -1 < u < 0,其中 K 是 f 的累積量生成函數。觀察到 g 是 f 的指數傾斜。攻擊者的策略必定是在 l 高於某個閾值 c 時「接受」x 為來自 ŝ,否則「拒絕」。使用 K 對 l 在 f 下小於 c 的機率做 Chernoff 界限,可得上界 FNR ≤ exp( - ½ (D-c)²/V)。現在,利用 g(l) = exp(-l) f(l),再次使用 K 對 l 在 g 下超過 c 的機率做 Chernoff 界限,可得上界 FPR ≤ exp( -c - ½ (D-c)²/V)。這兩個界限在 D-V < c < D 時同時有效。設定 c 使偽陽性上界等於 ε,可得 FPR ≤ ε 且 FNR ≤ exp( -½ (V - √(V² - 2V(D + ln ε)))²/V). 後者可利用 √(1-x) ≤1-x/2 對於 0 ≤ x ≤ 1 放鬆為所述結果。 □
現在,如果我們假設攻擊者想找出某個具有特定已知風格 s 的特定人。並假設攻擊者有一個 N 人的池子,並會從每人看到一個寫作樣本,但希望在看過每個人的樣本後,將偽陽性的總機率限制在 δ 以內。那麼,他們將需要
(1-ε)ᴺ ≈ exp(-εN) = (1-δ),
這在 ε ≈ δ/N 時滿足。將此代入前一個結果,表示攻擊者可以將偽陽性的總風險控制在 δ,同時達到偽陰性風險
FNR ≤ exp( - ½ (D(s) + ln δ - ln N)² / V).
這些結果使用自然對數是因為用 nat 衡量資訊時數學比較簡單。如果你用位元衡量資訊,那麼你會得到 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 的標準二元變數傳達 1 位元資訊,而一個以 49.8% / 49.8% / 0.4% 機率為 0 / 1 / 2 的變數則傳達 1.0336 位元。 ↩
某些年代出生的人想必也更可能使用 see what I did there 這種手法。 ↩
舉例來說,這裡是七種不同「偏頗硬幣」的資訊量:
正面機率 資訊量 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} |")有三個類別時,故事也大致相同。資訊量要變得相當不均勻才會大幅下降:
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} |")粗略來說,我們應該如下打折扣那些最大位元:
- 接近均勻:不打折。
- 「輕度不均」(例如兩類時 70/30)打 10% 折扣。
- 「相當不均」(例如兩類時 90/10)打 50% 折扣。
- 「極度不均」(例如兩類時 99/1)打 90% 折扣。
類別分布的 Shannon 熵是 - Σᵢ 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% 混血/其他,並實際使用熵公式。
家庭狀況:我使用兩類:有小孩/沒有小孩,邏輯是猜測小孩數量會非常困難。這些輕度不均勻,所以我降至 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%「嚴重問題」並使用熵公式。
政治傾向:我使用三類(左、中、右)。這些相當均勻,所以我使用 1.58 位元。
地區:我請 LLM 將英語世界劃分為數量合理的區域。經過一些調整,它給出 23 個區域:英格蘭東南部、英格蘭西南部、中部英格蘭、英格蘭北部、蘇格蘭、威爾斯、愛爾蘭共和國、北愛爾蘭、魁北克、安大略、加拿大西部、加拿大大西洋區、美國東北部、美國南部、美國中西部、美國西部、阿拉斯加、夏威夷、澳洲東南部、澳洲西部、昆士蘭、澳洲中南部、紐西蘭。搭配 LLM 產生的人口估計(看起來合理)並代入熵公式,得到 3.5481 位元。
# 地區 人口 (M) 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 類,接近均勻 ↩
考慮一組二元隨機變數,每個以 50% 機率為 0 或 1,但彼此之間的成對相關係數都是 ρ。有許多分布滿足此條件,但一個自然的選擇是 Ising 模型。如果有許多變數,那麼在成對相關為 ρ 的 Ising 模型中,每個變數的熵趨近於 h((1+√ρ)/2),其中 h 是二元熵函數。我們可以印出那些數字:
ρ 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-ρ 稍多一點。但 Ising 模型是樂觀的,因為它是滿足給定條件的所有分布中熵最高(資訊量最高)的分布。所以,算了,讓我們估計每個變數的熵就是 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。)此外,我用成對相關為 ρ 就打 ρ 折扣的粗略方法可能折得不夠:我用的估計是基於 Ising 模型,它是在相關限制下最大熵(最高資訊量)的分布。我還沒弄清楚在最壞情況下資訊量可能低多少。 ↩人們爭論這對「智慧」是否成立,但在位元率方面肯定成立。 ↩
此外,可以說,文體學是關於語言的。這意味著大型語言模型可能已經內建了許多需要的東西。這或許解釋了它們為何「碰巧」就很擅長。但要做到最佳化,我認為它們需要目前 LLM 通常不具備、也未經特定任務訓練而不知如何正確操弄的自我反思能力(例如給定不同脈絡下文本的機率)。 ↩
你可以猜想近乎最佳的文體學能力是某種「突現能力」。
但到目前為止的普遍教訓是,LLM 大多沒有突現能力,只是擅長它們被訓練去做的事。(編輯:我撤回這句話!) ↩(關於你——在 AI 公司工作的人——心想「或許我們該做那個」,然後翻到這個註腳看到這個後設笑話的後設笑話。) ↩
與其透過施加通用風格來「均質化」寫作,或許透過強制施加非常強烈但隨機的風格來「偽裝」會更好。 ↩
這裡要稍微小心:通常,KL 散度被理解為以 nat 為單位。但在本文中,我以位元衡量互資訊。這沒問題,但你需要轉換。例如,106.2 位元 = 73.60 nat。 ↩
隨機一篇部落格
留言
登入後參與討論