假名末日
这里有一个猜想:如果你在互联网上用不同的名字发布了相当数量的文本,仅凭文本本身就能把这些身份关联起来。之所以可能(我猜想),是因为你在写下的所有文字里都会留下统计学意义上的“指纹”。
设想有一个网站,你可以把某人刚写的一段全新文字粘贴进去,作为回报,它会给出这位作者曾用任何名字发表过的所有文本的链接。它并不完美,但已经相当准了。据我所知,至少在公开互联网上,还没有这样的网站。但我怀疑这完全可行,而且很快就会变得轻而易举。这会给匿名写作带来不小的麻烦。
注:这篇文章的大部分是我在2025年年中写完的,之后我傻乎乎地把它压了一年,忙着打磨那些你们谁都不会去看的定理表述。1 在此期间,大语言模型在通过文本猜测作者方面的能力已经强了很多。(把本文草稿的前1000词给Claude 4.8,它就知道是我写的。)不过,我认为这才刚刚开始。我预计,会有越来越多不知名的作者被越来越短的文本片段识别出来。我预计,即使人们换了一种语体、写的是完全不相关的话题,这一招依然有效。而且我预计,我曾用任何化名写过的所有东西,很快都会被关联到我的真名上。2
更强的猜想是,我们正走向一种广义的假名末日。也许在未来,只要你通过任何高带宽的渠道与世界互动,你就会暴露自己。比如,你戴着面具上街,只通过亚发声输入到变声器来说话。没用,你还是会通过体型、步态或化学特征被认出来。又比如,你不喜欢自己的车到处被追踪,于是不再带手机,还设法说服立法者取消车牌。也没用,你的车依然会通过细小的划痕或发动机独特的声音被追踪。又比如,你不喜欢在网上被追踪,于是把浏览器指纹封得死死的,只用门罗币买东西,还通过三层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位,那么存在某个人与这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年,当时洛伦佐·瓦拉证明《君士坦丁赠礼》——据称君士坦丁大帝将罗马帝国赠予天主教会的文件——使用的白话文来自君士坦丁死后400年,因此是伪造的。1851年,奥古斯都·德·摩根观察到,同一作者的平均词长往往是稳定的。第一次“现代”尝试似乎出现在1964年,莫斯特勒和华莱士发表了《作者身份问题中的推断》:
本研究[试图]解决《联邦党人文集》的作者归属问题;[…]
词频是用于区分的变量。由于所写主题会严重影响某个词的使用频率,因此在选词时必须谨慎。像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,“…”(三个句点)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)
- 一贯的、独特的拼写错误
- 其他一贯的错误(重复的词、未闭合的括号)
已经很多了。肯定还有更多。而且这些都只是人类用我们小小的脑袋想出来的“浅层”特征。我强烈怀疑,通过在足够大的数据集中寻找统计模式,还能找到更多“深层”特征。其中许多特征甚至可能没有一个连贯的英语描述。但它们依然存在,为有心人提供着比特。
所以我们在写作时会泄露关于很多不同方面的信息。但有多少信息呢?需要多少词才能唯一地给一个人打上指纹,这个问题能回答吗?
不能。粗略地说,答案是不能。但更精确地说,也许能?数量级上?很难,但我会试试。
人口学比特
文本通过年龄、性别等人口学特征提供了多少比特的身份识别信息?
乍一看,这似乎是个危险的问题,因为它取决于你把这些特征看作有多少个类别。以性别为例。对于假名末日的目的而言,你对性别应该如何定义或存在多少种性别的看法是无关紧要的。更细的分类总是提供更多信息,而我们的去匿名化攻击者朋友如果能利用,就会利用。但把性别分到两类以上其实差别不大,因为额外的类别很难猜中,而且即使能猜中,低 prevalence 的类别也贡献不了多少额外信息。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的相关系数就被认为是相当高的。这对某些变量对来说是可能的,例如年龄与健康状况,或政治倾向与宗教信仰。但许多相关性可能相当弱,例如年龄与母语,或地区与性别与婚姻状况。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元组,本身就是一长串特征(输入aaa的频率、输入aab的频率等等)。然而,其中许多特征包含的信息很少,因为几乎所有人输入zqx的频率都在0%左右。而且,写作风格特征当然是相关的,因为写realise而非realize的人,不太可能在破折号两边加空格。
在没有更好办法的情况下,我打算给上面风格特征清单中的每个叶节点算1比特。我把它理解为给每个特征分两个区间,然后假设特征分布不均和相关性(会减少信息)与许多特征值得分更多区间且还有更多未列出的“深层”特征(会增加信息)相互抵消。这就得到了一个可疑的整数:50.0比特。
猜测比特
如果你相信上面的数字,那么我们在写作时泄露的身份识别信息至少有17.2 + 39.0 + 50.0 = 106.2比特。这很多。如果能看到所有这些特征,即使在一个拥有9300亿亿亿人的星球上也足以识别出一个人。
但要论证假名末日将近,光论证这些比特存在是不够的。我们需要论证它们能够并且将会从相对较少的文本中被猜出来。
所以显然我们需要谈谈核武器。在核爆炸中,会产生许多不稳定的原子。它们会自发衰变为更稳定的原子,过程中释放辐射。有些原子非常急于衰变,意味着它们会释放大量辐射但在几周内就消失了(碘-131)。另一些则不愿衰变,意味着它们释放的辐射不多,但会存在数十年(锶-90)。还有一些会存在数百万年,但产生的辐射太少,不构成大问题(铯-135)。10 因此,核爆炸后产生的残余辐射是许多不同指数曲线的叠加,每条曲线对应爆炸时产生的一种同位素。
我怀疑文本中的身份识别比特有点像那样。你的正式程度和平均句长几乎会立刻暴露出来。你对拉丁源 vs. 日耳曼源词汇的偏好则需要一段时间才会显现。而你的社交果敢程度以及你住在昆士兰而非澳大利亚东南部的事实,则显现得非常缓慢,甚至可能慢到实际上根本不会显现。
好吧。那么,如果你一开始有106.2比特,在写了一定数量的词之后,你会揭露其中的多少呢?
我将通过高贵的“编数字”方法来回答这个问题。但首先,让我们校准一下。你刚刚读了我写的4500个词。你能多好地猜出我的人口学和人格特征?作为一次 sanity check,我把上面的文字丢给了一个大语言模型,让它来猜。它猜得好得让人不安。它并不总是对,但通常是对的,而且它对每个预测的置信度评估得很好。
我认为这没什么神奇的。事实是,如果你逐个看那些人格和人口学特征,猜中它们并没有那么难。所以我相信你也能做得一样好。只要给你足够的时间,我敢肯定你在写作风格特征上会做得更好。
即便如此,你可能还是不擅长。想想GeoGuessr,人们根据一张随机照片猜测世界上的某个地点。普通人猜得马马虎虎,但如果你挑出最有天赋的顶尖玩家并让他们 obsessively 地练习,他们会非常厉害。我认为大语言模型在从文本猜特征方面也不算特别擅长。它们并不是为此训练的。这只是其通用智能的一种涌现能力。信息论的极限肯定要高得多。
所以这里有一个非常粗略的估计:在4500词之后,我认为有可能猜中大约:
- 60%的人口学特征
- 70%的人格特征
- 80%的写作风格特征
如果我们用不同的指数曲线来分别建模这些,并以17.2 / 39.0 / 50.0比特为起点,那么在写了一定数量的词之后仍未泄露的身份识别比特总数如下图所示:11
瞧,当泄露29比特时,化名就被攻破了,这发生在1071个词之后。
认真的吗?
当然不是。上图建立在一座摇摇欲坠的、站不住脚的假设之塔上。我之所以详细展示推导曲线的过程,不是因为你应该相信它,而是因为我认为看到这些计算会让你难以反驳以下几点:
- 你有远不止29比特的身份识别信息会泄露到写作中。
- 其中一些比特需要很长时间才会被揭露,但另一些则揭露得相当快。
- “快速泄露的比特”已经足够多,多到可以用“相当少”的写作样本就把你识别出来。
我在选择特征、分配类别数、估计这些类别上的分布、为相关性打折扣以及猜测有多少区间能被猜中方面,做了很多有争议的选择。这些选择单独来看都值得怀疑。但上述几点却有着相当宽的容错空间。你可以做出不同的选择,但似乎很难避免得出以上三点是成立的结论。12
这会如何实现?
你可能会好奇,我为什么要用这么多编造的数字。毕竟,有一个专门从文本中识别作者的领域,通常被称为“文体学”或“作者归属”。他们有研究论文和竞赛等等。然而,据我所知,最先进的已发表结果看起来是这样的:
- 找50个人。
- 从每个作者那里获取几百个写作样本,每个样本1000-2000词长。
- 现在,从这些作者中的一位那里拿一个新的写作样本。
- 做一些标准的机器学习操作。
- 看,作者能以约95%的准确率被识别出来!
这听起来还行,但那只是在约50个作者的池子里做识别。要让我的主张成立,类似的准确率必须在4.9亿人中也能实现。那要多出七个数量级。
问题在于,那些论文使用的方法极其薄弱。上面的所有数学都假设你是在“信息论极限”下操作,完美地利用了所有可用信息。如果你想接近那个极限,我们现在已经大致知道该怎么做:应用“现代”机器学习配方——巨大的数据集 + 巨大的神经网络 + 花在GPU上的巨额财富。我猜对我们而言,那将需要“有史以来写过的所有文字” + “数百亿参数” + “数千万美元”量级的东西。我找不到一篇论文接近尝试过这个。
所以我认为那些论文没告诉我们多少东西,原因和用几本书训练出来的3阶马尔可夫模型没法告诉我们计算机在写文本方面能有多好是一样的。大语言模型已经表明,如果你使用上述配方,那么计算机在生成文本方面就能接近信息论极限。13 所以,我怀疑只要投入大语言模型级别的努力,在识别作者方面也能实现同样的效果。
你可能还会问:为什么我要把这说成是某种未来的技术?这项技术不就是大语言模型本身吗?
我怀疑这项技术在如何建模人类语言方面会非常像大语言模型。但当前通用的大语言模型并不是为这个任务训练的。它们在这方面很厉害只是“顺带的”。所以,就像专门的国际象棋AI能在棋盘上碾压大语言模型一样,我怀疑专门的文体学方法也能在文体学上碾压通用的大语言模型。只是那些专门的文体学方法似乎还不存在,至少不是公开的。14 所以我们不应该认为当前的大语言模型已经接近了可能达到的水平,即使假设通用大语言模型的进展今天就停止了。15
对策
如果这一切都是真的,能做些什么呢?
最明显的“对策”就是习惯它。我的意思是,设想我们真的生活在一个每个人都必须用唯一不可变的字符串给自己写的一切签名的世界里。会发生什么?我预计会出现以下几种情况的混合:
- 人们变得更适应让自己的“完整自我”公开,减少区隔。
- 人们从公共渠道的交流中退缩,更多地依赖群聊之类的东西。
- 人们进行自我审查。
这里有很强的历史类比,因为在过去20年里,许多政府和科技公司实际上已经规定人们必须用真名来给自己写的东西签名。
效果似乎因当地文化和政治制度的不同而差异很大。总体而言,我的印象是,人们已经 гораздо更能接受自己的同事可能会读到自己的约会资料或得知自己会去参加兽迷聚会。我乐观地认为,文化会继续适应,尊重每个人都包含多重面向的事实。这似乎是健康的。
有些效果显然是积极的。自我审查不一定是坏事。例如,在边际上,实名制肯定会阻止一些青少年参与网络霸凌。另一方面,你当过青少年吗?我很确定,对于任何“与众不同”的人来说,把这些不同之处广播给全世界会制造大得多的“被霸凌面”。所以效果是混杂的。而成年人和青少年之间的差别并没有我们愿意相信的那么大。
20年前,我可能会预测实名制会 discourag 人们在网上表达有争议的政治观点。表面上看,这似乎完全错了。至少在西方,很多人非常乐意表达少数派的政治观点,如果你有不同意见,那就见鬼去吧。但我也倾向于认为这掩盖了大量的自我审查,即大多数人不想卷入政治上的生死搏斗,因此被少数好斗的人所震慑。而且,显然,在某些国家,人们知道批评党是不明智的。所以,习惯它似乎充其量也只是一个不完美的解决方案。
另一种对策是不去构建这项技术,或不让它被广泛获取。短期内,这似乎是可行的。据我所知,多年来,一个资金适度的团队就已经可以构建一个能通过照片识别街上大多数人的手机应用了。然而,几乎没有读者能接触到这样的应用。如果通用大语言模型在文体学方面继续进步,AI公司完全有可能认为这是个安全问题,并训练它们的AI拒绝去做这件事。16 这可能会奏效一段时间。
但如果这项技术是可能的,政府肯定会构建并使用它。它们可能会试图不让普通人拿到。某些政府可能会限制自己的使用。我的那些注重隐私的盟友们似乎总是非常愤世嫉俗,但如果最高法院宣布联邦调查局在对美国公民去匿名化之前需要 warrants,我一点也不会惊讶。但当/如果这项技术变得足够便宜,要把它挡在普通人和/或不良行为者之外似乎会非常困难。我猜有可能创建一个几百GB大小、能在大多数现代笔记本电脑上(缓慢地)运行的程序。如果那个程序被公开,就很难再把精灵塞回瓶子里了。
也有技术性的对策。最明显的,就是把你的文字通过一个“过滤器”来试图去除身份识别比特,例如让大语言模型重写一遍。很难确定这会有多有效,因为我们对一开始有多少比特以及这会去除多少比特没有准确的估计。但我猜如果做得仔细,这会相当有效。原因是,你留在写作中的身份识别比特数量相对于识别你所需的数量来说,可能并没有那么大。如果你把写作“同质化”以去除所有风格和个性,你应该能去除其中的大部分。理论上,你仍会泄露一些信息。但我想这会大幅增加你在保持化名状态下还能写的字数。17
但想过之后,这让我感到难过。实际上,这种对策是通过拿走文字并摧毁其中所有人性的痕迹来保留化名性的。这似乎对化名性的“坏”用途很有效,比如网络霸凌或有组织的暴力,但对“好”的用途则完全无效,比如有人喜欢用化名写作,是因为他们觉得这能让他们更诚实、更脆弱、更完整地做自己,该死的。
广义的假名末日
也许这不仅仅适用于写作。也许这只是我们宇宙的一个特征:如果你以任何有意义的方式与世界互动,你就会留下足以被识别的痕迹。
如果你在公共场合走动,那么你很可能可以通过面孔、步态、声音、DNA、视网膜或字面意义上的指纹被识别。
或者说你使用互联网。即使你封锁了浏览器指纹并用VPN或Tor隐藏了IP地址,一个足够强大的对手仍可通过分析全局数据包流来识别你。
或者说你使用任何手机或电脑。你可能会通过按键动力学或你摆动手指或鼠标的方式被识别。
假如你在杂货店买东西,但你用现金支付,并且设法在一家没有摄像头的杂货店购物。如果你买的东西超过几件,我敢打赌,仅凭你购买物品的模式仍能把你识别出来。
(顺便问一句,你有没有注意到现金上印有序列号?你知道越来越多的ATM开始追踪这些号码吗?)
或者说你不喜欢自己的车被追踪,于是你不再带手机,并设法让立法者取缔车牌。即便如此,你的车肯定有几处细小的独特划痕,而且发动机听起来很可能与同型号同年份的其他车不完全一样。所以如果有任何高分辨率的视频或音频,就足以追踪你。
假如你把耳机插到机场的充电站。你的耳机在其模拟充电电路中有其独特性。如果有人真想追踪,是可以做到的。
或者说你用电。给定高分辨率的用电数据,能对你家住了多少人得出什么结论?以及你在用什么设备?可能很多吧?
或者说你使用厕所。许多地方已经对污水进行检测,并在群体层面上知道人们在使用什么药物以及各种疾病的流行程度。设想一下,如果将其升级为在系统的许多位置进行检测,具有高时间分辨率,并可能与来自每户人家的流量测量相关联。那会很刺激。
或者说你是一个拥有潜艇的国家。它们能被对手通过分布式声学传感探测到吗?基于卫星的合成孔径雷达呢?重力梯度仪?量子磁力测量呢?
据我所知,总体的趋势是,如果不采取对策,几乎所有东西都能被识别。对策可以让识别变得更难,但代价高昂,而且总体而言,这场军备竞赛似乎更有利于识别者,而非不想被识别的人。
我强调:这不全是坏事。广义假名末日的好坏取决于社会的结构方式。毕竟,文明的基础是找到让人达成交易的方法,而可以说,更少的隐私让这变得更容易。在我们生活在一个脆弱世界、很容易创造出毁灭文明的技术的程度上,也许我们很幸运地发现自己身处一个非私密的世界。尽管如此,我确实担心隐私长期以来提供了一种来自法律和规范的“余地”。历史上,这种余地限制了机构执行其规则的权力。如果隐私正在消失,我们需要思考如何在机构不愿意的情况下保留这种余地。
附录:写给持怀疑态度的信息论爱好者
上面,我试图估计写作中身份识别信息的比特数。但什么是“比特”?一般来说,如果x是一个离散随机变量,那么x以比特为单位的香农熵是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来自ŝ,否则“拒绝”。事实上,奈曼-皮尔逊引理保证了这在很强的意义上是最优策略:该比值包含了对做出该决策有用的所有信息。
现在有趣的是:攻击者可以不看比值,而看比值的对数。效果是一样的,因为对数是单调的。但如果你取该比值的对数,并对人和文本取期望,你会得到什么?嗯:
𝔼 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来自ŝ,否则“拒绝”。对在f下l小于c的概率使用K的Chernoff界,可得上界FNR ≤ exp( - ½ (D-c)²/V)。现在,利用g(l) = exp(-l) f(l),再次对在g下l超过c的概率使用K的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).
这些结果使用自然对数,因为如果你以纳特为单位衡量信息,数学会更简单。如果你以比特为单位衡量信息,那么你会得到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)打9折。
- “相当不均”(例如两类时90/10)打5折。
- “极度不均”(例如两类时99/1)打1折。
类别分布的香农熵是 - Σᵢ 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比特。
地区:我让一个大语言模型将英语圈划分为若干粒度合理的地区。经过一些调整,它给出了23个地区:英格兰东南部、英格兰西南部、米德兰兹、英格兰北部、苏格兰、威尔士、爱尔兰共和国、北爱尔兰、魁北克、安大略、加拿大西部、加拿大大西洋地区、美国东北部、美国南部、美国中西部、美国西部、阿拉斯加、夏威夷、澳大利亚东南部、澳大利亚西部、昆士兰、澳大利亚中南部、新西兰。加上大语言模型生成的人口估计(看起来合理)并代入熵公式,得到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的概率各为0.5,但两两之间的相关系数均为ρ。有许多分布满足这一条件,但一个自然的选择是伊辛模型。如果变量很多,那么在两两相关系数为ρ的伊辛模型中,每个变量的熵趋于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-ρ。但伊辛模型是乐观的,因为在满足给定相关性约束的所有分布中,它的熵是最高的。所以,算了,我们就把每个变量的熵估计为1-ρ。 ↩
如果这对你有意义的话,我让Kimi 2.6幻觉了一些数字:[相关矩阵]
就我个人而言,这对我来说没什么意义…… ↩
这比这更复杂,因为有些原子(例如锶-90)每次衰变释放的能量比其他原子多。而且某些类型的辐射对人类生命的危害比其他类型更大。 ↩
一般来说,如果你想要一条指数曲线f(n),使其在n=0时从1开始,并在n=N时衰减到1-X,你应该选择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。)此外,我那种因两两相关系数为ρ就将信息量打ρ折的粗糙方法可能折扣得不够:我使用的估计基于伊辛模型,它是在相关性约束下熵最大(信息量最高)的分布。我还没弄清楚在最坏情况下信息量会低多少。 ↩人们争论这对“智能”是否成立,但在比特率方面肯定成立。 ↩
另外,可以说,文体学是关于语言的。这意味着大型语言模型很可能已经内置了所需的大部分能力。这或许解释了为什么它们只是“顺带”就很擅长。但要做到最优,我认为它们需要自我反思(例如在不同语境下给定文本的概率),而当前的大语言模型通常不具备这种能力,并且如果没有针对特定任务的训练,也不知道如何正确地操纵它。 ↩
你可以猜想近乎最优的文体学能力是某种“涌现特性”。
但迄今为止的普遍教训是,大语言模型大多没有涌现特性,只擅长它们被训练去做的事情。(编辑:我收回这句话!) ↩(关于你——在AI公司工作的人——想着“也许我们该做这个”,看到这个脚注,并看到这个元笑话的元笑话。) ↩
与其通过施加通用风格来“同质化”写作,或许通过强制施加一种非常强烈但随机的风格来“伪装”会更好。 ↩
这里要稍微小心:通常,KL散度被理解为以纳特为单位度量的。但在本文中,我以比特为单位度量互信息。这没问题,但你需要换算。例如,106.2比特 = 73.60纳特。 ↩
随机一篇博客
评论
登录后参与讨论