城市概率学家
城市概率学家
一、模型
陆征明第一次意识到整座城市可以被一个方程描述,是在他三十七岁生日那天的凌晨三点。
他坐在平安金融中心四十七楼的办公室里,面前的六个屏幕上映着密密麻麻的数据流。窗外是深圳的夜景——一座由灯光和数据构成的城市,每一栋楼都在发光,像是无数个信号灯在向宇宙报告自己的存在。他的桌上放着一块没来得及吃的蛋糕,奶油上插着一根孤零零的蜡烛,蜡油顺着蜡烛身滑下来,凝固成歪歪扭扭的形状。
他是”天算科技”的首席精算师,也是这座城市里最懂概率的人之一。
天算科技是一家金融科技公司,主营业务是信贷风险评估——用更直白的话说,他们用算法预测一个人会不会还钱。陆征明的工作就是搭建和优化这些模型。在过去五年里,他设计出了行业内精度最高的违约预测模型”命运曲线”,能够根据一个人在互联网上留下的三千多个数据维度,以97.3%的准确率预测他未来十二个月的还款行为。
97.3%。这个数字让天算科技成为了行业龙头,让陆征明成为了精算界的传奇,也让三百多家银行和消费金融公司排着队购买他们的服务。
但今天晚上,陆征明盯着屏幕上的一个数字,眉头越皱越紧。
屏幕上跑的是他最新的实验项目——不是信贷模型,而是一个更宏大的东西。他把它叫作”城市概率模型”。这个模型试图用统一的数学框架描述城市中所有人的行为模式:几点出门,走哪条路,买什么早餐,和谁说话,什么时候微笑,什么时候皱眉,什么时候突然决定做一件不在计划中的事。
这是一个疯狂的念头,起初只是他的个人兴趣。但数据越跑越多,他发现一件事让他脊背发凉的事实——模型的有效性高得不可思议。
他用了深圳市半年内五百万部手机的信令数据、两百万笔消费记录、八十万条出行轨迹,以及从各种渠道获取的社交媒体行为数据。他把这些数据扔进一个基于Transformer架构的深度学习模型里,让它学习人类行为的模式。
结果发现,95.7%的城市居民的行为可以被模型以极高的精度预测。不是大概的预测,是精确到分钟级别的预测。模型知道你明天早上7:14会出门,7:32会到达地铁站,会在7号车厢的第三个门上车,会在福田站换乘时买一杯美式咖啡,然后走进你公司的大楼。
“人不应该是这样的。“陆征明对着空荡荡的办公室说。
但数据不会说谎。
他的模型有一个核心参数叫”自由度指数”,衡量一个人的行为中有多少比例是模型无法预测的。自由度指数越高,说明这个人越”不可预测”,越”自由”。而数据告诉他,这座城市里95%以上的人,自由度指数低于0.03。
也就是说,他们的行为中只有不到3%是真正自主的。
陆征明揉了揉太阳穴。窗外,一辆无人驾驶出租车在深南大道上匀速行驶,灯光在湿润的柏油路上画出一条完美的直线。凌晨三点的城市安静得像一个被按下暂停键的程序。
他拿起蛋糕旁边的手机,打开了模型的实时监控界面。屏幕上显示着一条曲线——全城市民的实时行为吻合度。此刻,凌晨三点,吻合度是99.2%。
凌晨三点,绝大多数人在睡觉,模型当然能预测到。他安慰自己。
但他知道这不是全部的原因。他看到的数据显示,即使在白天,在人们应该”自由活动”的时间里,吻合度也从未低于93%。
人类的自由意志——如果它真的存在的话——大概只有7%的发挥空间。
他叹了口气,正准备关掉电脑回家,忽然注意到监控界面上一个跳动的红色光点。
在一片代表”已预测行为”的绿色海洋中,那个红色光点格外刺眼。它代表一个模型完全无法预测的人——一个自由度指数接近1.0的人。
陆征明眨了眨眼。在他运行这个模型的半年里,他见过一些自由度指数较高的人,最高的大约在0.3左右。那通常是一些生活极不规律的人——流浪者、精神状态不稳定的个体、或者刻意用随机行为对抗算法的人。
但0.97?这在统计学上几乎是不可能的。
他点开了那个红色光点的详细信息。数据来源是一部手机,设备ID是一串无意义的字符。位置信息显示,这个人此刻正在——
陆征明愣住了。
这个人此刻正在平安金融中心。
就在这栋楼里。
二、相遇
第二天早上,陆征明顶着两个黑眼圈走进公司大厅的咖啡店。他昨晚跟踪那个红色光点到凌晨五点,看着它在楼里移动,从四十二楼到一楼,从一楼到地下停车场,然后消失了一会儿,又重新出现在一楼。最后,信号停在一楼的一家便利店附近,不再移动。
他猜测那个人可能就在便利店过夜——也许是楼里的保安,也许是某个加班到极致的程序员,或者某个找不到住处的流浪者。
咖啡店排着长队。陆征明低头看手机,习惯性地打开了模型的实时界面。红色光点还在一楼,但位置有轻微的移动——从便利店方向移到了……
他抬起头。
就在他前面三个人位置的队伍里,有一个穿深蓝色连帽衫的年轻女人。她的头发是短的,有点乱,像是刚从什么地方钻出来。她左手拿着一部旧手机——不是新款的智能手机,而是一部至少五年前型号的旧机器。右手在口袋里翻找着什么。
陆征明看了一眼自己的手机屏幕,又看了一眼那个女人。
红色光点的位置,和那个女人的位置完全重合。
他的心跳加速了。不是因为紧张,而是因为一个精算师在面对一个概率极低的事件时本能的兴奋。在过去半年里,他的模型处理了超过一千五百万个数据点,从未遇到过如此极端的离群值。
他决定和她说话。
“你好,“他在脑子里排练了三种开场白,最终选了最直接的一种,“请问你是这栋楼里的吗?”
女人回过头来看他。她的脸上有一种奇怪的表情——不是警惕,也不是好奇,而是一种仿佛在看一道数学题的神情。
“算是吧,“她说,“我在四十二楼的一家公司做清洁。夜班。”
她的声音很平静,像是在陈述一个和她无关的事实。
“我叫陆征明,“他说,“我在四十七楼工作。”
“我知道,“女人说,“四十七楼,天算科技。你们办公室的垃圾桶永远是这栋楼里最满的。”
陆征明笑了一下。他注意到她手里那部旧手机——屏幕有一道裂痕,从左上角延伸到右下角,像是被什么东西砸过。
“你这部手机……”
“怎么了?“她低头看了一眼,“很旧了,我知道。但我用习惯了。而且——“她顿了一下,嘴角微微上扬,“它不会跟踪我。”
这句话让陆征明的心又跳了一下。
“我叫沈鹿,“她说,“梅花鹿的鹿。”
咖啡店的服务员叫到了她的号。她端起一杯最便宜的美式咖啡,朝陆征明点了点头,转身往电梯方向走去。
陆征明站在原地,看着她的背影消失在电梯门后面。他低头看手机——红色光点正在向上移动。四十二楼。
他打开模型的后台,调出了沈鹿手机的所有历史数据。数据量少得可怜——她几乎不使用手机上的任何应用程序,没有社交媒体账号,没有移动支付记录,甚至连通话记录都寥寥无几。在数据的世界里,她几乎是一个透明人。
但正是这种”透明”让她在模型中变成了一个刺眼的红色光点。因为模型的工作原理是通过数据预测行为——当一个人的数据少到几乎没有时,模型就无法做出任何有意义的预测。
陆征明想到这里,忽然觉得有些好笑。他花了五年时间打造了一个精密的预测模型,而一个几乎不用智能手机的清洁工,轻而易举地让这个模型束手无策。
不是因为她的行为多么复杂或者多么高深,而仅仅是因为——她不在数据的世界里。
在数据的视野之外,就是自由的。
但这个念头只持续了几秒钟。他的精算师大脑立刻开始运转:一个不产生数据的人,对模型来说不是”自由”的人,而是”不存在”的人。自由和不存在的区别,在算法的世界里,是没有区别的。
他端起自己的咖啡,走向电梯。
三、清洁工
在接下来的两周里,陆征明养成了一个新习惯:每天早上八点十五分在一楼咖啡店买咖啡。这不是他的模型预测的——他通常九点才到公司——但他决定给自己的行为增加一点不可预测性。
他不确定自己为什么要这么做。也许是学术好奇心,也许是别的什么。
沈鹿并不是每天都会出现在咖啡店。陆征明很快发现,她的工作时间表没有任何规律可言——有时候她周一晚上在,有时候是周三凌晨,有时候连续三天都出现,有时候消失整整一周。这正是她的自由度指数如此之高的原因:在模型看来,她的行为完全是随机的。
但陆征明渐渐意识到,那不是随机。
“你为什么选择清洁这份工作?“他在第四次遇到她时问。
那是凌晨两点,他加班到很晚,下楼时在四十二楼的走廊里遇到了正在拖地的沈鹿。走廊里的灯只开了一半,她的身影在昏暗的灯光下显得格外清晰。
“因为它简单,“她说,一边把拖把浸进水桶里,“地板脏了,你把它弄干净。第二天它又会脏,你再弄干净。没有歧义,没有PPT,没有人要求你在周报里解释为什么这块地板的清洁效率环比下降了三个百分点。”
陆征明笑了。他想起自己上周刚写了一份关于模型优化的周报,里面用三页篇幅解释了为什么某个子模块的准确率从97.3%下降到了97.1%。
“而且,“沈鹿把拖把从水桶里提起来,水滴落在地板上发出清脆的声响,“夜晚的办公室很有意思。你知不知道你们公司四十七楼的会议室里有一面白板,上面写了一个公式,已经三个月没擦了?”
陆征明想了一下。“那个推导公式?那是去年我做一个风险模型时写的草稿。”
“我知道。我每天晚上都看它。花了大约两个月的时间才看懂。”
“你看得懂?”
沈鹿停下了拖地的动作,看着他。走廊尽头的安全出口指示灯把她的脸映成淡绿色。
“陆征明,你大概以为我是一个普通的清洁工。”
“我没有——”
“你有。“她的语气没有责怪的意思,只是在陈述事实。“所有人都这样以为。一个做清洁的人,一个用旧手机的人,一个不在数据系统里的人——在你们看来,这个人就是透明的。”
她把拖把靠在墙上,从连帽衫的口袋里掏出一本皱巴巴的笔记本。封面已经磨损得看不清颜色了,但翻开的第一页上,密密麻麻地写满了数学公式。
“我是学数学的,“她说,“理论数学。本科在中科大,博士在北大。做的是概率论方向。”
陆征明接过笔记本翻了几页。纸上的公式涉及测度论、马尔可夫过程、遍历定理——而且不是教科书上的标准推导,而是带着个人思考痕迹的修改和标注。有些地方箭头指向旁边的注释:“这里不对——如果引入新的σ-代数会怎样?”
“那你为什么……”
“在做清洁?“沈鹿把笔记本拿回去,塞进口袋。“因为我厌倦了。”
“厌倦了数学?”
“厌倦了被人预测。”
她重新拿起拖把,开始拖地。水在地板上画出湿润的弧线,在灯光下闪闪发亮。
“你知道做理论数学的人最害怕什么吗?“她说,“不是证明不出来一个定理。而是你发现你所有的研究方向、你的每一个灵感、你以为是’自由意志’的每一个决定,其实都是可以被预测的。你选择的课题,你使用的方法,你发表的论文,你申请的基金——全都符合某个统计模型。你以为你在探索未知,其实你只是在一条已经画好的路上走。”
“所以你选择了离开?”
“我选择了’不存在’。“她把拖把浸入水桶,水面上泛起涟漪。“在你们的世界里,一个不产生数据的人等于不存在。所以我就成了你们看不见的人。”
陆征明沉默了很久。走廊里只有拖把摩擦地板的声音和远处电梯偶尔嗡嗡作响的声音。
“但你写这些,“他指了指她的口袋,“这些笔记也是数据。”
沈鹿笑了。这是他第一次看到她笑。那是一种带着一丝狡黠的笑容,像是老师在等学生自己发现错误。
“写在纸上的东西,你的摄像头拍不到,你的OCR软件扫不到,你的自然语言处理模型分析不到。这是人类最后的数据避难所——纸和笔。”
陆征明低下头看着地板。水迹正在慢慢蒸发,地板重新变得干燥。一切痕迹都在消失。
“你在研究什么?“他问。
“一个猜想。关于城市里所有人的行为是否真的可以被一个统一的概率模型描述。”
“你认真的?”
“非常认真。而且我有一个假说——如果存在一个人,他的行为完全无法被模型预测,那么这个人的存在本身就证明了模型的局限性。不是技术上的局限,而是根本性的、数学上的局限。”
“戈德尔不完备定理在城市概率学中的类比?”
“差不多。“沈鹿把拖好的地板检查了一遍,满意地点了点头。“你们的模型再精确,也无法处理一个基本的事实:观测者和被观测者在同一个系统中。当一个人知道自己正在被模型预测时,他有可能做出一个完全不在模型预期内的行为——不是因为他在刻意反抗模型,而是因为他是一个有自我意识的存在。这种自我意识本身就是模型无法编码的变量。”
她收拾好清洁工具,朝楼梯间走去。
“你的模型很有趣,“她在推开门之前回头说,“但你漏了一个变量。”
“什么变量?”
“爱。”
门在她身后关上了。
陆征明站在空荡荡的走廊里,闻着地板清洁剂的柠檬味,心跳得比平时快了大约15%。
四、变量
“爱?”
周五晚上的烧烤摊上,陆征明的大学同学、现任某大厂数据科学总监的韩松用竹签指着他,满脸不可思议。
“你跟我说,一个北大概率论博士、现在在做清洁工的女人,告诉你你的模型缺的变量是’爱’?”
“她不是那个意思——”
“她就是那个意思。“韩松往嘴里塞了一串羊肉,边嚼边说,“你们搞精算的人就是这样,建模建多了,遇到一个活人就以为是发现了新变量。她不是什么新变量,她就是一个对学术界失望的聪明人,选择了退出游戏。你那种95%预测准确率的模型,对她这种主动退出数据系统的人来说,当然无效。但那不是模型的错,是采样偏差。”
陆征明把一罐啤酒在桌沿磕开,喝了一大口。
“但如果她是对的呢?如果人的自我意识——或者你叫它爱、自由意志、或者别的什么——真的在数学上无法被编码呢?”
韩松放下竹签,认真地看着他。
“征明,你知道我们行业有一个基本假设吧?‘凡是可观察的,就可量化;凡是可量化的,就可预测。‘你做了五年精算,告诉我,你见过任何违反这个假设的现象吗?”
“沈鹿。”
“沈鹿不是反例。沈鹿是一个未被充分采样的数据点。如果她用的不是那部破手机,如果她每天在微信上聊天、在淘宝上购物、在抖音上刷视频,你的模型照样能把她预测得明明白白。她之所以’自由’,是因为她选择了不产生数据,而不是因为她本质上不可预测。”
陆征明沉默了。烧烤摊上的烟火气熏得他眼睛有点疼。远处传来深圳夏夜的蝉鸣,和啤酒瓶碰撞的声音混在一起。
“但你已经喜欢上她了,对吧?“韩松忽然说。
陆征明没有否认。
“所以你的问题不是数学问题,“韩松用竹签指着他,“是感情问题。你希望她是对的。你希望在你们那个冰冷的数据世界里,有某种东西是算法永远无法触及的。因为如果连爱都可以被编码和预测——”
“那我们这些人就真的只是参数了。”
韩松举起啤酒罐和他碰了一下。
“欢迎来到二十一世纪。“
五、白板
陆征明开始在白板上写一个新公式。
在那之前,会议室的白板上还保留着他去年写的那推导公式——一个关于条件概率的贝叶斯网络展开。沈鹿说她看了两个月才看懂。他突然好奇,如果他在白板上写一个新的公式,她会怎么看。
他写的是一个新的模型架构。不再是纯粹的深度学习黑箱,而是在神经网络的输出层之前加上了一个他称之为”自由意志层”的模块。这个模块的设计灵感来自于沈鹿的那句话:“当一个人知道自己正在被模型预测时,他有可能做出一个完全不在模型预期内的行为。”
这个模块的核心假设是:在被预测者和预测模型之间存在一个博弈关系。被预测者有可能根据对模型的了解,选择一个模型预期概率最低的行为。这就像是一个永远在进行的猜拳游戏——模型出石头,你就出布;模型学到了你会出布,改出剪刀;你学到了模型改出剪刀,你又出石头。
在博弈论中,这种情形的最优策略是混合策略——以一定概率随机选择。而纳什均衡意味着,双方最终都会达到一个无法再提高胜率的状态。
陆征明的思路是:如果把这个博弈过程显式地建模,那么模型的预测精度会有一个理论上限——不是技术上的上限,而是博弈论上的上限。在这个上限之外,行为本质上是不可预测的。
不是因为缺乏数据,而是因为博弈本身产生了不确定性。
他越写越兴奋,白板上的公式从左上角延伸到右下角,几乎占满了整面墙。当他写完最后一个等号后面的推导结果时,已经是凌晨两点了。
他退后几步看着自己的杰作。最终的结果很简洁:
P_max = 1 - ε
其中ε是一个取决于博弈双方理性程度的正数。在完全理性的假设下,ε趋近于1/e——自然对数的底。
也就是说,即使在最理想的情况下,模型对单次行为的预测准确率也无法超过大约63.2%。
远低于他现有的97.3%。
这个结果意味着两件事。第一,他现有的高准确率是被高估的——因为大多数人并没有在”博弈”。他们不知道自己正在被预测,也没有动力去对抗预测。他们像是一条静静流淌的河,不知道有人在下游等着测量它的流量。
第二,如果所有人都开始”博弈”——如果所有人都意识到自己的行为正在被预测,并有意做出不同的选择——那么整个精算行业的根基就会被动摇。
陆征明擦了擦额头上的汗。他拍了一张白板的照,发到了自己的工作邮箱里,然后回家睡觉。
第二天晚上他来公司,发现白板上的公式旁边多了一行字。蓝色马克笔,不是他的字迹:
“你的ε假设太乐观了。如果引入赫伯特·西蒙的有限理性理论,ε应该更大。另外,1/e这个结果很美,但它是博弈论均衡解,不是行为学预测。现实中的人不是完全理性的——他们有时会故意做对自己不利的事,仅仅因为’想这样做’。这种非理性行为不是噪声,而是信号。”
沈鹿。
陆征明看着这行字,忍不住笑了。他拿起红色马克笔,在下面写道:
“信号?如果非理性是信号,那它编码的信息是什么?”
第二天晚上,回答出现了:
“它编码的信息是:我不是一个函数。“
六、对话
他们在白板上用马克笔讨论了整整一个月。
每天晚上陆征明写一段,第二天晚上沈鹿回复,有时候附带新的公式推导,有时候只是一个反问。白板上的内容被擦掉又重写,重写又擦掉,像是一场无声的对话,一场用数学语言进行的哲学辩论。
陆征明写:“如果人的行为有哪怕一丁点的可预测性,那么在大数定律下,群体行为就是完全可预测的。个体的’自由意志’在群体层面消失了。”
沈鹿回复:“所以你的模型预测的不是’人’,而是’人群’。你以为你在理解个体,其实你只是在统计噪声中找到了模式。就像一个天文学家,他以为自己在研究一颗恒星,其实他只是在看一整个星系的平均亮度。”
陆征明写:“但这个’平均亮度’是有实际价值的。银行根据我的模型放贷,降低了坏账率。保险公司用我的模型定价,让更多人买得起保险。模型虽然不完美,但它有用。”
沈鹿回复:“有用不等于真实。一个模型可以既有用又完全错误。托勒密的地心说模型用了1400年,它’有用’——能预测行星运动,能导航——但它的基本假设是错的。你们的模型也一样。它能预测行为,但它对’人是什么’的基本假设可能是错的。”
陆征明写:“那你说,人是什么?”
这个问题的回答让等了三天。三天里白板上一直空空荡荡,沈鹿的清洁日程表上也没有四十七楼。陆征明每天晚上都来看白板,每天都是空的。
第四天,回答出现了:
“人是一个不遵守概率公理的随机变量。”
陆征明盯着这行字看了很久。这句话在数学上是一个悖论——随机变量的定义就是定义在概率空间上的可测函数,说一个随机变量不遵守概率公理,等于说它不是一个随机变量。但如果人不满足概率公理——如果人的行为不能被任何概率分布描述——那么他也就从根本上无法被任何统计模型预测。
不是技术上做不到,是数学上不可能。
这是一个存在性的声明:人的本质,就是那个让数学模型失败的”东西”。
陆征明拿起马克笔,在下面写道:
“如果这个声明是真的,那你应该是最好的证明。让我观察你。”
第二天,回答:
“你已经在观察了。但你观察到的不是我,是你在数据中对我的投影。真正的我在你的模型之外。”
“那我要怎么看到’真正的你’?”
回答隔了一天才出现:
“不是用眼睛看的。“
七、雨
七月中旬的一个晚上,深圳下了一场大雨。
陆征明在办公室加班到十一点,看着窗外的雨幕发呆。雨大得几乎看不清对面的楼,闪电不时把整个天空劈成两半,白光照亮了玻璃上密密麻麻的雨滴。
他打开手机看了看模型的实时界面。红色光点——沈鹿——不在平安金融中心。她今天的信号一直停留在南山区的一个位置。他用地图查了一下,是一个城中村——白石洲。
他犹豫了大约三十秒,然后拿起伞下了楼。
出租车在深南大道上开了四十分钟。雨太大,能见度很低,司机骂骂咧咧地说这种天气不应该出门。陆征明没有说话,他看着窗外模糊的灯光,心想自己确实是疯了。一个精算师,在凌晨十二点冒雨去城中村找一个清洁工,因为他想”看到真正的她”。
如果这件事被他的模型预测到了,那他大概也不过是又一个被算法操控的木偶。如果模型没预测到——那至少证明他还活着。
白石洲的巷子很窄,两边是握手楼,头顶上缠绕着各种电线和晾衣绳。雨水沿着屋檐流下来,在地上汇成小溪。陆征明撑着伞在巷子里走,手机上的信号显示沈鹿就在附近,但具体是哪栋楼哪一层,信号定位不够精确。
他在一个路口停下来,环顾四周。雨声几乎盖过了一切声音,但他还是听到了——从旁边一栋楼的二楼传来的钢琴声。
不是流畅的演奏,而是断断续续的,像是在练习。一首他不认识的曲子,旋律很简单,但每个音符之间都有不确定的间隔——有时候快,有时候慢,有时候停顿很久,像是在思考下一个音应该怎么弹。
他收起伞,走进那栋楼。
楼梯间没有灯,墙壁上的石灰已经剥落,露出下面的红砖。他摸黑上了二楼,推开一扇半开的门。
那是一个很小的房间,大概十五平米。一张单人床,一张桌子,一把椅子,一个简易衣柜。角落里有一架电子钢琴——不是真正的钢琴,而是一架价格不超过两千块的电子琴。沈鹿坐在琴前,手指停在琴键上,头微微侧着,像是在听什么。
她听到了他的脚步声,但没有回头。
“你怎么找到这里的?”
“你手机上的定位信号。”
沈鹿笑了一声。“所以你还是用数据找到我的。”
“是。”
“那你就没有跳出你的模型。”
“我知道。但至少我来了。”
沈鹿转过身来。她穿着一件宽大的白色T恤,头发比他上次见到时更短了,几乎贴着头皮。没有化妆,脸上有一层薄薄的汗。在这个狭小的房间里,在暴雨的背景下,她看起来不像一个数学博士,也不像一个清洁工,而像一个——
“像一个什么?“她问。
陆征明意识到自己刚才的话可能说出了声。
“像一个……不在任何模型里的人。”
“每个人都在某个模型里,“她说,“只不过有些模型你看不到而已。”
她往旁边挪了挪,给他腾出琴凳上的位置。陆征明犹豫了一下,坐了下来。电子琴的琴键在两人之间,黑白分明,像是某种古老的二进制编码。
“你弹的什么曲子?”
“没有曲子。我在即兴弹。”
“即兴?”
“就是没有乐谱,想到什么弹什么。”
陆征明低头看着琴键。“所以你弹的每一个音符都是……”
“不可预测的,“沈鹿说,“是的。连我自己都不知道下一个音符会是什么,直到我的手指按下去。”
“那你的手指是根据什么决定按哪个键的?”
“不知道。也许是心情。也许是窗外的雨声。也许是你刚才走进来的脚步声。也许什么都不是。也许只是一个纯粹的、没有任何原因的——选择。”
她的手指按下去,一个低沉的音符在小房间里回荡。
“你听到这个音了吗?“她说,“在它被弹出来之前,没有任何人能预测到我会在这个时刻弹这个音。不是因为它很复杂或者很随机,而是因为——它是我的。这个选择属于我。不是模型算出来的,不是概率分布决定的,不是神经网络的输出。是我。”
她的眼睛在昏暗的灯光下闪闪发亮。外面的雨声越来越大,像是整座城市在鼓掌。
陆征明忽然明白了她在白板上写的那些话。她在试图告诉他的,不是一个数学定理,而是一个关于人的基本事实——人的尊严不在于他能被多精确地描述,而在于他永远有超出任何描述的可能性。
那个可能性就是自由。不是哲学意义上的自由,而是一个非常具体的、可以在每一个瞬间被经验到的自由:我可以选择做这件事,也可以选择不做。我可以选择在这里,也可以选择不在这里。我可以选择让你看到我,也可以选择永远做你白板上的蓝色字迹。
“沈鹿。”
“嗯。”
“我想做一件事。但我不知道你会有什么反应。”
“这就是自由的意思——你不知道。”
他吻了她。
在那个狭小的房间里,在暴雨的夜晚,在一架廉价的电子琴旁边,一个精算师吻了一个清洁工。
沈鹿的手指还停在琴键上。她没有推开他,也没有回吻。她只是坐在那里,像是需要一点时间来处理这个不在任何模型预期内的输入。
然后她笑了。不是之前那种带距离感的笑,而是一种真正被惊讶到的笑——像是打开一个预期只有旧衣服的衣柜,却发现里面有一扇通往纳尼亚的门。
“你的模型预测到这个了吗?“她轻声问。
“没有。”
“很好。”
她把手从琴键上移开,放在他的手上。
“那就让它继续预测不到。“
八、模型之外
接下来的三个月,是陆征明生命中最不可预测的三个月。
他和沈鹿开始了一段关系——如果可以用这个平庸的词来描述一件本质无法被归类的事。他们没有搬在一起住,没有在社交媒体上发布任何信息,甚至没有告诉韩松。他们的相处方式更像是一种秘密的实验:两个人在探索模型之外的世界是什么样子。
有时候他在凌晨两点去白石洲找她,发现她在练琴、在写数学笔记、或者在对着窗外的夜空发呆。他们会聊到天亮,聊数学、聊人生、聊城市、聊算法,也聊一些和数学完全无关的事——比如她小时候在安徽农村的院子里数星星,比如他第一次来深圳时被南山区密密麻麻的楼群吓到。
有时候她会在他加班的夜晚出现在四十七楼,带着两杯便利店的咖啡。她不看他的电脑屏幕,也不问他的工作。她只是坐在会议室里,对着白板上他新写的公式思考,然后用蓝色马克笔在旁边写她的批注。
他的同事们开始注意到白板上的蓝色字迹。有人问他是谁写的,他说是”一个朋友”。没有人追问——在天算科技,所有人都有自己奇怪的加班习惯。
他的模型也有了变化。他开始把那个”自由意志层”的理论框架落实到代码中。新的模型不再试图最大化预测精度,而是在预测精度和”不确定性预留”之间寻找平衡。模型会为每个人维护一个”不可预测区间”——在这个区间内的行为,模型承认自己无法预测。
这在天算科技内部引发了争议。产品经理说:“你是在主动降低模型的准确率?“陆征明回答:“不,我是在承认模型的真实准确率。“CEO觉得他疯了,但在看了他的理论推导之后——虽然CEO根本看不懂那些公式——决定让他做一个A/B测试。
结果是出人意料的:新的模型虽然在”可预测用户”上的准确率下降了不到1%,但在”高风险用户”——也就是那些行为变化较大、传统模型容易误判的用户——上的表现反而提升了4.7%。
原因是反直觉但合理的:当模型承认自己”不确定”时,它的输出就包含了一个概率分布而不是一个点估计。对于高风险用户,这个概率分布比之前的点估计包含了更多的信息,反而帮助银行做出了更好的决策。
CEO拍着陆征明的肩膀说:“不错,包装一下,做成新产品。就叫’不确定性引擎’。”
陆征明觉得这个名字蠢透了,但他没有反驳。商业世界需要用商业语言来描述数学概念,就像需要用数据来描述人一样——虽然描述总是失真的,但失真的描述有时比没有描述更有用。
沈鹿对这个结果的反应是:在白板上画了一个微笑的表情。
然后她写道:“你把我的哲学变成了你的产品。这才是真正的资本主义。”
陆征明写道:“那你打算起诉我侵犯知识产权吗?”
沈鹿写道:“我的知识产权已经在你的数据系统里了——那些白板照片。所以严格来说,你现在欠我一份专利使用费。”
陆征明写道:“多少?”
沈鹿写道:“一顿火锅。“
九、坍缩
九月的一天,陆征明在办公室收到了一封内部邮件。邮件是法务部发的,抄送了CEO和CTO,标题是”关于数据合规审查的通知”。
邮件内容很简短:公司最近接到了一项来自”城市数据治理办公室”的例行审查要求,需要配合提供模型训练数据的来源说明、匿名化处理流程、以及用户授权记录。
这在行业里并不罕见。自从《个人信息保护法》实施以来,所有涉及大规模数据处理的公司都需要定期接受合规审查。天算科技以前也经历过几次,每次都顺利通过。
但这一次,陆征明注意到邮件附件里有一个审查清单,其中一项是:“请提供模型中所有数据来源的完整清单,包括但不限于信令数据、消费数据、出行数据、社交媒体数据、以及任何其他第三方数据。”
他看着这个清单,忽然想到了沈鹿。
他的”城市概率模型”——那个个人兴趣项目——使用的数据包含了大量未授权的个人数据。信令数据是从运营商那里灰色渠道获取的,消费数据来自合作伙伴的”数据共享协议”,出行数据来自一个没有明确告知用户数据用途的APP。
如果审查延伸到他的个人项目,他可能会面临严重的法律后果。
他打电话给韩松。
“你的个人项目在公司服务器上吗?”
“在。”
“用你的实名账号登录的?”
”……是。”
韩松沉默了三秒。“你最好赶紧删掉。”
“我不能删。那是半年的研究成果。”
“你更要赶紧删掉。不授权的数据用于个人研究,这个在现在的监管环境下是红线。轻了罚款,重了刑事责任。”
陆征明挂了电话,看着屏幕上那个还在运行的模型——红色光点还在闪烁,代表沈鹿的手机信号此刻在平安金融中心。她在上班。
他打开了模型的数据库。五百万部手机的信令数据,两百万笔消费记录,八十万条出行轨迹。每一个数据点背后都是一个活生生的人——他们不知道自己的行为被记录、被分析、被预测。他们像是在一个透明的鱼缸里游泳,以为自己是自由的。
陆征明的手指悬在键盘上。删除键。
他按了下去。
然后他打开终端,输入了一行命令,把模型的所有训练数据和权重文件全部删除。整个过程用了不到两分钟。半年的研究,上千万元的灰色数据,就这么消失了。
他靠在椅背上,长长地吐了一口气。
屏幕上空空荡荡,只剩下一个命令提示符在闪烁。
十、概率
“你删了?”
凌晨三点,沈鹿坐在他办公室的桌子上,双腿晃来晃去。她刚拖完四十二楼的地,头发上还有一点清洁剂的味道。
“全删了。”
“为什么?”
陆征明想了想。“因为你是对的。那个模型——那个试图预测所有人的模型——它建立在一个错误的基础上。它假设人的行为是可以被观测和预测的,但它没有考虑一个问题:它有没有权利去观测和预测。”
“所以你是因为伦理原因删的?”
“不完全是。我删它是因为……”他看着窗外,凌晨三点的深圳依然灯火通明,“因为它让世界变小了。你知道那个模型最让我害怕的是什么吗?不是95%的准确率,而是——当我知道所有人的行为都可以被预测时,世界就变成了一张已经写好的剧本。没有惊喜,没有意外,没有——”
“没有自由。”
“没有自由。”
沈鹿从桌子上跳下来,走到他面前。
“陆征明,我告诉你一件事。”
“什么?”
“我从来没有真的相信什么’自由意志’。”
他愣住了。“什么意思?你不是说——”
“我说的是,人的行为确实可以被预测。你的模型在技术上是正确的。95%的准确率,我相信你的计算。”
“那你之前说的那些——白板上的那些话——”
“那些话也是正确的。“她的表情很平静,像是在解释一个数学概念。“人的行为可以被预测,和人拥有自由意志,这两件事不矛盾。”
“怎么可能不矛盾?”
“因为自由意志不是’不可预测’。自由意志是’知道所有选项之后做出选择的能力’。你的模型可以预测我会选择什么,但它无法替代我做选择的过程。那个过程——那个在我脑海中快速评估所有可能性的过程——就是自由意志。你看到的是结果,但过程才是本质。”
陆征明张了张嘴,发现自己无法反驳。
“打个比方,“沈鹿继续说,“国际象棋。现在的AI可以打败所有人类棋手,它可以预测人类每一步的走法。但你不能因此说人类棋手没有在’思考’。AI预测到你会走马,和你经过深思熟虑决定走马,是两件完全不同的事。一个是结果,一个是过程。”
“所以你的意思是——”
“我的意思是,你不需要否定你的模型。你需要做的是尊重模型之外的东西——那个做选择的过程。你的模型可以告诉我,明天早上我有97%的概率会在便利店买一个包子。但当我在便利店里伸出手去拿那个包子的时候,那个动作是’我’做的。不是模型做的。模型可以预测结果,但它无法替代我的手伸出去的那一刻。”
她拿起桌上的马克笔,在白板上写了两个字:
“尊严。”
“你删掉模型不是因为它是错的。你删掉它是因为——一个不尊重人的尊严的模型,即使它是正确的,也不应该存在。”
陆征明看着那两个字。白板上还残留着他之前写的公式的痕迹,蓝色马克笔的字迹覆盖在模糊的红色粉笔灰上面,像是一层新的地质层覆盖在旧的上面。
“那我的’不确定性引擎’呢?“他问,“那个也在公司服务器上。它也用了很多未授权的数据。”
“那个不一样,“沈鹿说,“那个模型承认自己不知道。一个承认自己不知道的模型,和一个假装什么都知道的模型,是两种完全不同的东西。前者是工具,后者是——”
“神?”
“僭越。“
十一、雨夜
十月的一个夜晚,深圳又下了一场大雨。
这次陆征明不在办公室,而是在白石洲沈鹿的房间里。他坐在床上,沈鹿坐在电子琴前。房间里的灯泡有点暗,发出嗡嗡的声音,像是这栋老楼在打呼噜。
沈鹿在弹琴。仍然是即兴,但这次旋律比之前更连贯了,像是一条在石头间蜿蜒的小溪,找不到直线前进的路,但总是能找到下一个方向。
“你有没有想过,“陆征明说,“回到学术界?”
沈鹿的手指停了一下,然后继续弹。
“回去做什么?”
“继续你的研究。你那个关于概率模型局限性的猜想——如果它能被证明,这会是一个非常重要的结果。在某种意义上,它会是一个关于人的数学定理。”
沈鹿弹了一段特别低的音符,像是在沉思。
“你觉得学术界会接受一个关于’人不是函数’的定理吗?”
“如果它是正确的,为什么不能?”
“因为学术界本身也是一个模型。它有自己的假设、边界条件和适用范围。一个否定模型有效性的定理,对学术模型来说就是一个矛盾——它要求模型用自己的框架来否定自己的框架。”
“戈德尔。”
“对。戈德尔。他用算术公理证明了算术公理的不完备性。数学用数学自身证明了自己的局限。但那是数学——一个纯粹的形式系统。如果有人想在’人’的领域做类似的事,用人的语言证明人的语言之外的东西——那就不是数学了。”
“那是什么?”
“生活。”
她弹了一个和弦,让它在小房间里回荡。
“你知道我为什么喜欢弹琴吗?不是因为音乐。是因为每一次即兴演奏都是一次小小的创造——一次从无到有的过程。在我按下琴键之前,那个音符不存在。不是它隐藏在某个概率分布里等我去发现,而是它根本就不存在——直到我创造了它。”
“这和你做数学不是一样的吗?证明一个定理之前,它不存在。”
“不一样。数学定理在你证明它之前就已经存在了——它隐藏在公理体系里,等你去发现。它更像是考古。但即兴演奏的音符不是隐藏在琴键里的——是我让它存在的。”
“所以你更喜欢创造而不是发现。”
“我更喜欢活着而不是解释。”
外面的雨渐渐小了。窗外的灯光变得清晰了一些,能看到对面楼的阳台上晾着的衣服,被雨水淋得湿透,沉甸甸地挂在晾衣绳上。
陆征明站起来,走到沈鹿身边。他把手放在她的肩膀上,她没有动。
“沈鹿。”
“嗯。”
“我想让你知道一件事。”
“什么?”
“你不是不在任何模型里。你在我的模型里。”
她回过头来看他,眉毛微微皱起。
“不是那个概率模型,“他说,“是另一个模型。一个我还没有想好怎么描述的模型。一个关于’人怎么和另一个人才真正产生联系’的模型。我不知道它的参数是什么,不知道它的公式是什么,甚至不知道它有没有公式。但我知道它存在——因为你在我身边的时候,我变成了一个不同的人。一个更好的、更真实的、更……不在任何其他模型里的人。”
沈鹿看着他,眼神里有某种他从未在她眼中见过的东西——不是惊讶,不是感动,而是一种极其复杂的、像是在解一道无解之题时的专注。
“陆征明,“她说,“你知道吗,你说这段话的方式,仍然像一个精算师。”
“什么意思?”
“你在试图精确地描述一个不可描述的东西。”
他笑了。“职业病。”
沈鹿也笑了。她转过身,继续弹琴。旋律变得明亮了一些,像是雨后的天空终于露出的那一小块蓝。
“你的描述不够精确,“她说,“但没关系。不够精确就是爱情的特征。“
十二、新模型
十一月初,天算科技的合规审查结束了。结果比预想的温和——公司被罚款八十万元,并要求在三个月内完成数据来源的整改。陆征明的个人项目因为已经删除,没有被发现,或者更准确地说,没有人想到要去一个已经不存在的文件夹里找东西。
“不确定性引擎”被保留了下来,但需要使用合规的数据源重新训练。陆征明带领团队花了两个月的时间,用完全合法的、用户授权的数据重建了模型。
新模型的准确率降到了91.6%。但它通过了一个以前从未通过的测试:当被预测的用户开始”博弈”——即有意识地对抗模型预测时——新模型的性能下降幅度远小于旧模型。因为新模型从一开始就预留了”我不知道”的空间。
更重要的是,新模型产生了一个意外的副产品。由于它为每个用户维护了一个”不可预测区间”,它实际上可以帮助识别那些行为正在发生重大变化的人——一个原本规律上班的人突然开始随机出行,可能意味着他正在经历某种生活变故。这不是传统风控意义上的”风险”,但它是某种更深层的信息。
陆征明把这个功能做成了一个可选的通知服务:当模型检测到用户的”不可预测区间”急剧扩大时,它会向用户发送一条消息:“我们注意到你最近的生活可能有了一些变化。如果需要帮助,这里有……”后面附上心理咨询热线、社区服务、法律援助等信息。
产品经理觉得这个功能不赚钱。CEO觉得这是ESG(环境、社会和治理)的好素材,可以写进公司年报。CTO觉得这个技术上有意思,值得发一篇论文。
陆征明不在乎他们怎么想。他在乎的是,这个功能尊重了模型无法触及的那个空间——人的内在世界。
十三、概率密度
十二月的深圳难得地冷。白石洲的巷子里,人们裹着厚外套匆匆走过,呼出的白气在路灯下像是小小的云朵。
陆征明下了班,像往常一样坐地铁到白石洲站,然后步行到沈鹿的住处。手里提着两袋菜——他最近学会了做几道菜,虽然味道一般,但沈鹿说她不在乎味道,她只在乎”有一个人愿意在我这里花时间做饭”。
走到楼下时,他遇到了房东。一个穿着棉拖鞋的中年妇女,操着湖南口音。
“你就是沈鹿的朋友?”
“是。”
“她这个月的房租还没交。以前都是月初就交的,不知道这个月怎么了。”
陆征明心里咯噔了一下。他上楼,敲了三下门——这是他们的暗号,因为沈鹿不喜欢门铃。
门开了。
沈鹿站在门口。她看起来比上次瘦了一圈,眼窝深深陷了下去。但她的眼睛仍然很亮——也许比以前更亮了,像是某种东西在加速燃烧。
“你怎么了?”
“没什么。进来吧。”
他进了房间,把菜放在桌上。注意到电子琴上蒙了一层灰——她已经很久没弹了。床头堆着一摞新的笔记本,每一本都写满了密密麻麻的字。
“你在写什么?”
“证明。”
“什么证明?”
沈鹿坐在床边,从那一摞笔记本里抽出一本,翻开第一页。上面是一个定理的陈述:
“定理:在任何可计算的概率模型中,存在至少一个行为序列,该序列不属于模型的定义域。”
“这是——”
“这是你一直想知道的东西。一个数学上严格的证明,说明概率模型——任何概率模型——都不可能完整描述人的所有行为。不是技术限制,是数学上不可能。”
陆征明接过笔记本,快速翻阅。证明大约有四十页,使用了测度论、可计算性理论和拓扑学的方法。他虽然不是理论数学家,但基础功还在,大致能跟上思路。
证明的核心是一个构造性的论证:他构造了一个特定的行为序列——一个”对角线”序列——并证明这个序列不可能属于任何可计算的概率分布的定义域。论证的方法借鉴了康托尔的对角线法则和图灵的停机问题证明,但应用在一个全新的领域:人类行为的可预测性。
“这是你一直想做的研究。“他说。
“是。花了三年。”
“三年?你从三年前就开始——”
“从离开学术界的那一天开始。”
陆征明看着笔记本上密密麻麻的推导过程。每一页都写得很工整,但在某些关键步骤旁边,有犹豫和涂改的痕迹——那是人在思考时留下的指纹。
“这个证明是正确的,“他说,“至少从我目前的理解来看。”
“我也认为是正确的。但我没有办法验证。我不是学术圈的人了。”
“我可以帮你找——”
“不。“沈鹿的声音忽然变得很坚定。“不是为了发表。不是为了让别人验证。这个证明是给我的。它证明了一件事——一件我用了三年时间才想明白的事。”
“什么事?”
“人不是概率分布。不是函数。不是数据点。不是可以被任何模型——无论多么精密——完整描述的对象。人的本质就是那个让所有模型都失败的东西。不是因为我们很复杂,而是因为我们——”
“活着。”
沈鹿看着他,眼睛里有一种他无法命名的光。
“是。活着。”
她伸出手,握住了他的手。她的手很凉,但握得很紧。
“陆征明。”
“嗯。”
“我生病了。”
四个字落在房间里,像是电子琴上弹出的一个最高音,震得所有的空气都在颤动。
“什么?”
“血液方面的。名字很长,你不需要记。医生说六到十二个月。”
陆征明的大脑在那一瞬间停止了工作。所有的模型、公式、定理、概率——全部消失了。他面前只有沈鹿的脸,和她握着他的那只冰凉的手。
“你——什么时候知道的?”
“两个月前。”
“两个月?你两个月前就知道了,你——”
“我需要先完成证明。“她的语气平静得不像是在说自己的死亡。“在完成之前,我不能分心。”
“你——“陆征明的声音哽住了。他张了张嘴,但说不出任何有意义的句子。他是一个精算师,他的职业就是和概率打交道。他知道”六到十二个月”意味着什么——那不是一个精确的预测,而是一个概率区间。六个月的概率是多少,十二个月的概率是多少,超过十二个月的概率是多少。他可以建一个模型。
但他不要。
“你为什么不早告诉我?”
“因为如果早告诉你,你就会开始用你的方式’处理’这件事。查资料,找专家,做治疗方案对比,计算各种选择的期望收益。你会变成一个精算师面对一个问题,而不是一个人面对另一个人。”
“沈鹿——”
“让我说完。“她的手握得更紧了。“我不要你的模型。我不要你的概率。我不要你帮我’优化’我的生存时间。我只要你在这里。和你的不确定性在一起。你能做到吗?”
陆征明闭上了眼睛。他的眼角有液体流下来,温热的,咸的。
“我能做到。”
沈鹿把头靠在他的肩膀上。窗外的路灯透过帘子照进来,在天花板上画出一道细长的光。
“那就好。“
十四、不可预测区间
接下来的日子里,陆征明发现自己终于亲身体会到了他设计的那个概念——“不可预测区间”。
他不知道沈鹿明天会是什么状态。有时她精神很好,会在电子琴上弹很久的即兴曲目,说各种笑话,用马克笔在墙上画奇怪的图案。有时她很虚弱,只能躺在床上,让他读书给她听——她喜欢听他读数学论文,尽管她说”大部分论文写得像垃圾”。
有时她在半夜醒来,在笔记本上写东西。不是数学,而是——他偷看过一次——诗。不押韵的现代诗,写得很随意,但有一种奇怪的、像是从很远的地方传来的声音。
其中一首他记住了:
“我把左手放在概率密度函数上 右手放在你的手上 左手告诉你我会发生什么 右手告诉你我正在发生 左手是模型 右手是生活 你选择握哪一只”
他不知道这首诗是写给他的,还是写给世界的。
韩松终于知道了沈鹿的事。他没有说”我早就说了”,也没有说什么安慰的话。他只是约陆征明出来喝了一次酒,两个人坐在海边,看着远处香港方向的灯光。
“你知道什么最讽刺吗?“韩松说,“你造了一辈子模型,用来预测别人的行为。但真正改变你行为的,是一个你的模型完全预测不到的人。”
“也许这才是重点,“陆征明说,“模型预测的是路径,不是目的地。我不知道这条路的终点是什么,但我知道我走在一条正确的路上。”
“你什么时候变得这么文艺了?”
“被传染的。”
韩松往海里扔了一块石头。石头在水面弹了三次,沉了下去。
“你打算怎么办?”
“陪她。”
“工作呢?”
“工作?“陆征明看着远处的灯光,“工作是一个模型。沈鹿教会了我一件事——不要让模型覆盖生活。”
“说人话。”
“我请了长期病假。公司说可以保留职位。”
韩松又扔了一块石头。这次没有弹起来,直接沉了。
“征明。”
“嗯。”
“人真的不是函数。”
“是。不是。“
十五、最终定理
二月的深圳开始回暖。沈鹿的身体像是在和天气赛跑——随着气温升高,她的状况在加速恶化。
但她的精神一直很好。陆征明后来想,也许一个人知道自己快要死了的时候,反而比不知道的时候更自由——因为你不再需要为”未来”做计划,你只需要活在当下这个瞬间。而”当下”是唯一不被模型预测的东西。
一个周六的下午,阳光很好,沈鹿说想去公园走走。陆征明借了一辆轮椅,推着她去了深圳湾公园。海风很大,吹得她的短头发像草一样摇曳。
“你知道我现在在想什么吗?“她说。
“什么?”
“我在想,如果我的定理是正确的——如果人真的不是概率分布——那我此刻坐在这里、看着这片海、感受这个风,这件事在某种意义上是——”
“是什么?”
“唯一的。在整个宇宙的历史中,从来没有过、将来也不会再有完全相同的这一刻。不是一个概率意义上的稀有事件,而是一个存在意义上的唯一事件。我的眼睛看到的海,和你的眼睛看到的海,是两个完全不同的海。没有模型能捕捉这个差异。”
“因为模型看到的是数据,不是海。”
“是。模型看到的是’一个人坐在深圳湾公园看海’这个事件。但真正的海——我看到的那个——有颜色,有声音,有风的味道,有阳光的温度,有你在旁边推着轮椅的感觉。这些东西加在一起,构成了一个完全不可复制的经验。”
她闭上眼睛,深深地吸了一口气。
“这就是活着的意思,“她说,“每一个瞬间都是一个不可复制的宇宙。”
陆征明站在她身后,手放在轮椅的把手上。海风吹过来,把他的眼眶吹湿了。
“沈鹿。”
“嗯。”
“你的定理——关于人不是概率分布的定理——我帮你把它整理成论文。”
“不要发表。”
“不发表。但我帮它写下来。正式地。用LaTeX。像一篇真正的数学论文那样。”
沈鹿睁开眼睛,看着远处的海面。一艘白色的船正在地平线上缓缓移动。
“你不会用LaTeX。”
“我学。”
她笑了。“你这个人,面对死亡的第一反应是写论文。”
“你面对死亡的第一反应是证明定理。”
“好吧。我们扯平了。“
十六、分布之外
三月十七日,一个普通的工作日。陆征明坐在天算科技的办公室里,面前是一个LaTeX编辑器。他已经花了两个月的时间学习LaTeX,并把沈鹿的四十页手写证明整理成了电子版。
论文的标题是:“论可计算概率模型的定义域不完备性”。
作者:沈鹿。
通讯地址:空白。
他在摘要的最后一句话加了一个句号,然后按下了保存键。
文件保存在他的个人电脑上,不在公司的服务器上,不在任何云服务上。一份单独的、安静的、不在任何系统里的文件。
他打开手机看了看时间。下午三点。他给沈鹿发了一条消息:“论文整理完了。”
她没有立刻回复。她已经很少回复消息了——不是因为不想,而是因为有时候她没有力气拿起手机。
陆征明关掉电脑,下了楼。他打了一辆车去白石洲。
到了沈鹿的房间门口,他敲了三下门。
没有人开门。
他又敲了三下。
仍然没有人。
他掏出沈鹿给他的备用钥匙,打开了门。
房间里很安静。电子琴上仍然蒙着灰。床头的那摞笔记本还在,但最上面多了一本新的,只写了前几页。
沈鹿坐在窗边的椅子上,面朝着窗户。窗外是白石洲的巷子,阳光从两栋楼之间的缝隙里照进来,在她身上画出一道明亮的光。
她的手里握着一支笔,膝盖上放着一本翻开的笔记本。笔记本上的最后一行字是:
“每一个瞬间都是一个新的公理体系。”
她睡着了。呼吸很浅,但还在呼吸。
陆征明走过去,轻轻地从她手里拿走笔,合上笔记本。他把一条毯子盖在她身上。
她没有醒。
他在她旁边的地板上坐下来,靠着墙壁,看着窗外的光线慢慢变化。
他想到了一个他的模型永远不会预测到的事情:一个精算师坐在白石洲一间十五平米的房间里,守着一个正在睡午觉的、证明了人不是函数的数学家。
这个画面的概率是多少?
零。
不是接近零。是零。因为没有任何模型会把这两个人的两条轨迹交叉在一起。一个是四十七楼的首席精算师,一个是四十二楼的清洁工。一个生活在数据的海洋里,一个主动退出了数据系统。他们的相遇不在任何概率分布的支撑集里。
但它发生了。
这就是沈鹿的定理的真正含义。不是”模型不够好”或者”数据不够多”——而是,真正重要的事情,那些定义了一个人是谁的事情,永远发生在概率分布之外。
不是因为它很罕见。而是因为它根本就不在样本空间里。
它是另一个维度的事件。
十七、参数更新
四月。沈鹿的大部分时间都在睡觉。她的房间里多了很多东西——一束假花(陆征明带的,因为真花的花粉会影响她的呼吸)、一台加湿器(韩松送的)、一堆营养品(陆征明的母亲寄来的,虽然她不知道是给谁的)。
陆征明每天早上到公司处理必要的工作,下午三点准时离开,去白石洲陪沈鹿。他已经不再加班了。四十七楼的会议室白板上的内容已经被擦干净了,上面现在只有一些日常的工作笔记。蓝色马克笔的字迹消失了——沈鹿再也没有来过四十七楼。
但那架电子琴上方的墙壁上,多了一些东西。陆征明买了一面小白板,挂在那里。上面是沈鹿断断续续写的一些东西——有时候是一个公式,有时候是一句话,有时候只是一些看不出意义的涂鸦。
最后一条是一个公式:
P(A|B) = P(B|A) · P(A) / P(B)
贝叶斯公式。概率论的基础。
下面她写道:
“这是我的遗言:在B发生的条件下A的概率。B是你来到我生命中这件事。A是我余生幸福的概率。在B发生之前,A的先验概率很低。但B发生了,所以后验概率——
更新了。”
陆征明看着这行字,用马克笔在下面写道:
“我的参数也更新了。先验:一个人。后验:一个爱过你的人。“
十八、最后一段旋律
四月二十三日,凌晨四点。
陆征明被一个声音惊醒。他睡在沈鹿床边的地铺上——这是他最近几个月的常态。
声音来自电子琴。有人在弹琴。
他坐起来。月光透过窗帘照进来,把房间分成明暗两个区域。电子琴在亮的那一边。
沈鹿坐在琴前。她不知道什么时候从床上起来坐到了那里。她的手指在琴键上移动,弹出的旋律是他从未听过的——不是即兴的那种随意,而是有某种内在的结构,像是一条河流在乱石间找到了自己的河道。
旋律很简单。几个音符的上行,然后一个出人意料的跳跃,然后是几个下行。像一个呼吸——吸气,屏息,呼气。
她弹了一遍。然后又弹了一遍。然后停下来。
“征明。”
她的声音很轻,像是从很远的地方传来。
“我在。”
“你知道我刚才弹的是什么吗?”
“不知道。”
“是你的概率分布。”
“什么?”
“你记得你那个模型——预测人的行为的那个——输出的结果是一条概率密度曲线吗?”
“记得。”
“我刚才把你的曲线翻译成了旋律。横轴是时间,纵轴是概率,每个音符对应曲线上的一个点。”
她转过身来。月光把她的脸照得很白。
“你听出来了吗?那个跳跃——那个出人意料的音符——就是你的模型预测失败的地方。就是那个模型不知道的瞬间。就是——”
“你。”
“我们。”
她又转回去,把手放在琴键上。
“我最后弹一遍。你听好。”
她的手指按下去。音符一个一个地出现,在那个小小的房间里回荡。月光在琴键上跳动,像是在伴舞。
最后一个音符落下去的时候,她的手没有松开琴键。声音在房间里持续回响,直到电子琴的延音功能终于将它吞没。
沈鹿把手从琴键上拿开,放在膝盖上。
“这个旋律现在只存在于你的记忆里了,“她说,“没有录音,没有乐谱,没有任何数据记录。如果你想把它告诉别人,你只能用你自己的话来描述。而你的描述一定是不准确的——因为你是人,不是录音机。但这种不准确性——”
“就是它的价值。”
她笑了。
“你学到了。”
陆征明走过去,在她身边蹲下来。他把她轻轻地从琴凳上扶起来,抱在怀里。她很轻,轻得像一片——不,不要用比喻。她就是她。沈鹿。梅花鹿的鹿。一个证明了人不是函数的数学家。一个在白板上用蓝色马克笔写字的清洁工。一个在最便宜的电子琴上弹出了全世界唯一的旋律的人。
“陆征明。”
“嗯。”
“帮我一个忙。”
“什么?”
“把那篇论文交给对的人。不是现在。等过了几年,等你准备好了。找一个真正懂数学的人,让它被验证。不是为了发表,不是为了名声。而是因为——一个定理如果只有一个人知道,它就和一个秘密没有区别。定理应该是公开的,就像天空是公开的一样。”
“好。”
“还有一个。”
“什么?”
“不要为了我变成另一个人。不要因为这件事就辞职去流浪,或者写什么’我被一个清洁工改变了人生’的畅销书。你还是你。那个用数据理解世界的精算师。只是——”
“只是什么?”
“只是记得,数据不是世界。数据是世界的影子。你要学会同时看着世界和它的影子。”
“好。”
“再一个。”
“你有多少个忙要帮?”
“最后一个。我保证。”
“说。”
“替我弹一段琴。不用好听。不用准确。只要——不在任何模型里就行。”
陆征明看着面前那架电子琴。他从来不会弹琴。他甚至分不清哪个键是哪个音。
他坐下来,把手放在琴键上。白键黑键在他手下排列成不规则的图案,像是一个他无法解读的密码。
他按下去。
一个音。又一个。又一个。没有规律,没有旋律,没有节奏。只是一些音符,一个接一个地出现,然后消失。
沈鹿靠在他肩上听着。
“完美,“她轻声说,“完全不可预测。“
尾声、区间之外
五月。深圳的凤凰花开了。那种鲜红的花开满了大街小巷,像是一夜之间整座城市被点燃了。
陆征明站在天算科技四十七楼的窗户前,看着楼下的深南大道。车流像数据流一样有序地移动着,每一辆车都在自己的车道上,保持着安全距离,遵守着交通规则。
他的手机上打开了模型的实时监控界面——新的那个,“不确定性引擎”。屏幕上显示着密密麻麻的绿色光点,代表被预测到的行为。这里偶尔出现一些黄色光点,代表模型不确定的区域。还有一些稀疏的红色光点,代表完全无法预测的个体。
他数了数红色光点。一共有一百零三个。比半年前多了很多。
他不知道这是因为更多的人选择了退出数据系统,还是因为模型变得更诚实了——更愿意承认自己不知道。
他关掉手机,转身看着办公室。会议室的白板上是他上周写的一个新的模型架构——不是关于预测的,而是关于”不确定性量化”的。这是一个新的研究方向:不是试图提高预测精度,而是试图精确地描述”我们不知道什么”。
白板上没有蓝色的字迹。但在他办公桌的抽屉里,有一支蓝色马克笔。他没有用过它,也没有扔掉它。
他的电脑桌面上有一个文件夹,叫”论文”。里面只有一个文件——一篇LaTeX格式的数学论文,标题是”论可计算概率模型的定义域不完备性”。作者:沈鹿。
他没有打开过那个文件。不是不想,而是还没有准备好。沈鹿说”等几年,等准备好了”。他还在等。
在他钱包的夹层里,有一张纸条。是从沈鹿的笔记本上撕下来的,上面只有一行字:
“每一个瞬间都是一个新的公理体系。”
他有时会在等电梯的时候拿出来看一眼。然后放回去。
外面的凤凰花还在开。那种红色浓烈得不像话,像是有人在灰色的城市背景上泼了一桶颜料。每年五月它们都会开一次,每次都一样红。
但每次都不完全一样。没有人能预测今年会在哪一天达到盛花期,哪一朵花会最先开放,哪一瓣会最先落下。
不是因为他们不够精确。
是因为那些花活着。
陆征明回到办公桌前,打开电脑,开始工作。屏幕上是密密麻麻的数据,行和列排列得整整齐齐,像是城市里所有人的生活在被翻译成数字后的样子。
他看着那些数字,同时也看着数字之外的东西——窗外的那棵凤凰树,它正在风中微微摇晃,几片花瓣飘落下来,在空气中画出不可预测的轨迹。
数据是世界的影子。
他同时看着世界和它的影子。
在他身后,四十七楼的玻璃幕墙映出了整座城市。一千两百万人在里面生活、工作、吃饭、睡觉、恋爱、争吵、哭泣、大笑。他的模型能预测其中95%的人明天的行为。
但剩下的那5%——那些模型不知道他们在做什么、不知道他们在想什么、不知道他们在感受什么的人——那5%才是这座城市的心跳。
他们不在任何模型里。
他们在活着。
(全文完)