最后一帧的雪
一、春·概率
三月末的杭州,空气里已经开始有了潮意。
陈屿走出地铁口的时候,闻到了桂花残香混着某种电子元件的焦味——那是城市的数据中心散出的味道,你闻不到,但它确实在那里,像一座城市隐秘的呼吸。他在一家叫”星潮智融”的科技金融公司做概率审计师,这个职位在外人听来像算命先生的高级说法,实际上就是:让AI的决策可解释。
星潮的APP叫”秒借”,口号是”一秒响应,一分到账”。你打开它,算法在三毫秒内完成对你信誉的全息扫描——不是查你的征信报告,而是通过两千七百个行为维度构建一个动态的”数字分身”——你的朋友圈、你点外卖的频率、你刷短视频时在哪些词条停留、你走路的步态甚至你握手机的倾斜角度。算法不需要你填写任何东西,它什么都知道。
陈屿的工作是:当算法说不的时候,他要找出为什么。
今天是三月的最后一天。他刚端上咖啡,工位上的三块屏幕就同时亮了起来,其中一块跳出了一个他没见过的case。
不是普通的借款申请,而是一封工单——来自公司风控部门转发过来的投诉,投诉人是一个叫”老面馆”的账户。
“秒借”的用户ID系统会给每个新注册用户分配一个随机的昵称。“老面馆”是昵称,但工单里附带的实名认证信息显示,这是一个六十七岁的男人,叫周德清。
陈屿点开这个case,调出了算法对该用户的评分报告。报告很长,但他只看了第一页的关键数据,瞳孔就微微收缩了一下。
他的眼前——在屏幕的光之外——浮现出一层若有若无的光晕,那是他在三年前一次意外的职业暴露后获得的感知能力:他能看见数据的”概率晕”。
周德清的信誉评分是317分。
满分是850分。317分意味着:算法将这位六十七岁的老人判定为”高风险用户”,不建议放贷。评分依据的维度里,最重要的三项是:年龄衰减系数(-0.73)、社交活跃度(-0.81)、消费行为稳定性(-0.69)。
陈屿盯着这三组数字,又调出了该用户最近的借款申请记录。
三个月内,申请了四次。申请金额一次比一次小:第一次三万,第二次两万,第三次八千,第四次三千。
全部被拒绝。
陈屿揉了揉眉心,概率晕在他视野里变得更清晰了:申请金额越来越小,说明申请人越来越绝望——他需要钱,但他知道自己能借到的越来越少。申请频率越来越高,说明他越来越急迫。这是一个典型的资金链断裂前兆的债务人行为模式。
但算法的逻辑是对的。周德清六十七岁,没有固定社保缴纳记录,消费记录显示他大部分支出用于菜市场和小诊所——这说明他大概率是个做小生意的老人,没有稳定的收入来源。在风控模型里,这确实是”高风险”。
问题是:模型是怎么知道周德清”没有稳定收入来源”的?
陈屿点开了数据溯源模块,找到了答案。
模型使用了九十七个特征维度,其中一个叫”收入稳定性指数”,是通过用户的消费结构逆推出来的。这个维度的训练数据基于过去五年内”秒借”的正常还款用户——而这个群体,二十五到四十五岁、城市白领、有社保记录。
模型用这批数据训练出来后,形成了一个隐性的”标准人”形象:年轻、城市、有固定工资。小生意老人、农村用户、灵活就业者——他们在这个系统里天然就是”异常值”。
他们不是没有信誉。他们是被系统不认识的人。
陈屿把工单拖到了自己的待办队列里,然后发现自己的咖啡凉了。
窗外,杭州的春天正在以某种不易察觉的速度老去。他想起了三年前那次意外——公司服务器房的一次电磁泄漏,他在里面待了四十七分钟。醒来后他发现自己能看见一些奇怪的东西,比如每个人身边都有一层淡淡的概率光晕,像雾气一样随着他们的行为数据实时变化。他不确定这是幻觉还是某种感知增强,他从未告诉过任何人。
他只是学会了用这种能力做好自己的工作。
工单备注里还有一行字,是周德清自己写的,字符断断续续,像是在某个信号不好的地方敲出来的:
“我不要多,三千块就行。我女儿在外地医院里,我要去给她送钱。我不是骗子,我可以拿房产证抵押。”
陈屿盯着这行字看了很久。
他不知道女儿是什么病。不知道周德清的面馆开在哪里。不知道他每次被拒的时候,站在某个小屏幕前是什么表情。
但他知道,在算法的逻辑里,这些都是无关信息。
他开始写核查报告。写到一半,屏幕右下角弹出了一个提示:您的季度绩效评估将于明日提交,其中”高风险case处理效率”指标的同行排名将在今天24:00锁定。
陈屿的手指悬在键盘上方,停了三秒。
他的概率晕里浮现出一个数字:同行排名当前为第4/23。如果这个case处理超时——而超时在星潮的定义里是超过七十二小时——他的排名将掉到第17。
第17名意味着季度奖取消,还意味着他在下一次晋升评审中会被标记为”效率待提升”。
他看了看这个case的申请时间:今天早上9:17。现在是下午2:43。
还剩六十九小时。
陈屿把核查报告保存到草稿,然后打开了周德清的详细数据档案。他需要找到足够的证据来支持一次”Override”——即推翻算法的判定。这需要三个以上维度的数据异常证明,并且要通过风控部门的交叉审核。
他在心里默念:周德清,你最好有些我没看到的东西。
然后他开始一条一条地拆解那个317分。
二、春·光晕
周德清的光晕是陈屿见过的最奇怪的形状。
大多数人在他的感知里呈现为规则的椭圆形光晕,颜色从冷蓝(低风险)到暖橙(高风险)不等,光晕的边缘越清晰,说明这个人的行为数据越稳定。可预测的东西,轮廓就清晰。
但周德清的光晕是模糊的,像一块被反复揉搓过的糖纸,边缘破碎,色彩斑驳——蓝、橙、灰、淡金色全混在一起,没有任何规律。
这种光晕意味着:这个人的数据行为在算法眼里是”噪声”。
陈屿研究过这种光晕。噪声意味着数据不足,或者行为模式不符合训练集的任何一个标签。在风控模型里,噪声用户要么被直接拒绝(因为无法判断),要么被赋予一个保守的低分(因为无法判断就先往坏处想)。
周德清是后者。
但陈屿注意到了一个细节:周德清光晕里偶尔会闪过一丝金色,那是很罕见的颜色。金色意味着算法捕捉到了某种”高价值行为信号”——不是还款能力,而是某种被系统定义为”信誉正向指标”的稀有行为。
他追查了这个信号的来源,发现是三个月前的一条记录:周德清通过”秒借”的还款功能,提前五天还了一笔两千元的小额借款。
提前还款。
在算法眼里,这不是正常的——因为正常的逻辑是:能借到就借,还款日之前一分不差就行。提前五天还款意味着什么?算法无法解读这个行为,所以它把这个信号标记为”异常”,然后因为异常值往往意味着风险,所以这个金色信号反而在评分时没有被加权。
陈屿盯着这条记录,想象周德清提前五天凑齐两千元的样子。他借的是两千元——对于一个六十七岁、在菜市场买菜、用翻盖手机、在小诊所看病的人来说,这不是一笔可以随便提前凑出的钱。
他提前还款,可能是因为他想证明自己守信。
或者他只是不想要那笔利息。
或者他根本不知道提前还款不会加分。
无论哪种,这都是一个在算法里不被计入、但对人类而言真实存在的品德信号。
陈屿又花了两小时,找到了更多数据:周德清的”秒借”账户注册时间是三年前,注册设备是一部很老的三星翻盖手机——这说明他不太会用智能手机,注册账户可能是被儿女帮忙操作的。消费记录显示他每月固定去同一个菜市场两次,买新鲜的本地青菜——这意味着他在家做饭,不是在外面吃。医疗支出记录显示他每个月去同一个小诊所看病四次——频率很高,说明他或者家人生了某种慢性病。
小诊所是镇上的,不是城市的。这意味着周德清可能不住在杭州主城区。
陈屿在地图上输入了周德清的身份证号前六位——330105,西湖区转塘街道。
他在网上搜了一下”转塘 面馆”,找到了一个大众点评页面,评分4.2,点评里写着”老周家的阳春面,吃了十几年”。点评数量很少,三十七条,最早的一条是八年前。
他点开那张店铺照片。是个很小的门面,白墙,塑料桌布,门口挂着一块手写的木牌:“老周面馆”。照片模糊,但能看见灶台后面站着一个穿白背心的老人,正在拉面。
陈屿把这张图截了下来,然后继续翻。
然后他看到了一个有意思的东西。大众点评的关联信息里,有一条两年前的商业入驻申请记录——周德清曾试图把自己的面馆入驻外卖平台,申请表填了一半,没有提交。
未提交的原因不明。但那张未完成的申请表里有一栏”紧急联系人”,写的名字是:周晓月。
陈屿在”秒借”的用户数据里找到了这个名字。
周晓月,二十九岁,周德清的女儿,目前在浙江省人民医院血液科就诊,诊断信息显示为”急性淋巴细胞白血病”。
陈屿把这条信息单独列出来,然后停了很久。
他想起工单里那句话:“我女儿在外地医院里,我要去给她送钱。”
外地医院——省人民医院在杭州,在周德清的医保定点范围内,不算外地。但如果周晓月是在省人民医院住院,那么周德清需要从转塘镇赶到杭州城里,每天或者每隔几天去探望一次。而他申请的四次借款,时间间隔恰好和血液科化疗周期吻合:每二十一天一次。
陈屿的呼吸慢了下来。
他不需要再查了。他已经知道了所有他能知道的东西:一个六十七岁的老人,经营一家四十年历史的小面馆,妻子已故,独生女儿得了白血病,在省城住院。他申请借款的金额从三万变成三千,是因为他一次又一次被拒绝,只能把数字越改越小,期望算法能放行哪怕最小的一笔。
但算法没有放行。
算法不认识他。它不认识一个用翻盖手机的六十七岁老人,不认识一个在菜市场买青菜做阳春面的父亲,不认识一个愿意提前五天还两千元借款的人。
它只认识数据。而周德清的数据不够”标准”。
陈屿开始写Override申请。
他需要在申请里说明三个以上的数据异常点,每一个都要有证据。他写了:
第一,社交活跃度维度扣分过高。周德清的微信没有加任何”秒借”好友,也从未在平台上互动——但这不能证明他没有社交。数据显示他每周末都固定和一个手机号通话超过四十分钟,通话对象号码归属地是省人民医院所在的上城区。该行为模式符合”定期与住院家属通话”,属于正常的家庭支持行为,而非社交孤立。建议对该维度进行加权修正。
第二,收入稳定性指数使用了有偏训练集。模型训练数据以城市白领为主,缺乏对个体经营者、小微商户的样本覆盖,导致对此类用户的收入判断系统性低估。建议对该维度增加”职业类型交叉验证”修正项。
第三,提前还款行为被错误标记为异常。提前还款是正面信誉信号,但被标记为异常后反而成为扣分项。建议修正该行为的标签分类。
他写完检查了一遍,觉得够了。
然后他看了一眼右下角的时间:下午5:47。
距离超时还有六十三小时。
他按下了”提交”。
屏幕上弹出了一个提示:Override申请已提交,预计审核时间为48-72小时。请耐心等待。
陈屿盯着”72小时”这个数字,意识到这意味着他的case依然会计入超时统计。除非Override通过,否则他的绩效排名不会改变。
他靠在椅背上,忽然觉得眼睛很涩。
他闭上眼睛,看见了周德清的光晕。那个破碎的、斑驳的、被揉成噪声的光晕。他在那个光晕里看到的不是数据,而是一个模糊的轮廓:一个老人,站在灶台后面,拉面。
四十年的阳春面。一碗三块钱。
女儿住一次院多少钱?化疗一次多少钱?移植要多少钱?三千块够吗?
三千块连一瓶靶向药都买不了。
陈屿睁开眼睛,发现办公室已经空了大半。窗外,杭州的夜正在落下来,城市的灯光开始一盏一盏地亮,像一串永不熄灭的数据节点。
他收拾东西,站起来的时候,腰椎咔地响了一声。
三、夏·下沉
程远山是凌晨五点到的镇政府。
他从杭州开车过来用了两个小时,走的是前天晚上刚修好的一段新路,路灯是去年装上的,政府工程,招标的时候他亲自盯的。从杭州到云栖镇,以前要一个半小时,现在四十分钟——但他没有因此高兴。
因为这段新路,镇上欠着三千二百万的工程款。
程远山今年三十八岁,是云栖镇的镇长。云栖镇在杭州西南角,是个常住人口不到三万的农业小镇,以茶叶和民宿为主要产业。镇政府的办公楼是一栋九十年代建的老楼,外墙的瓷砖掉了好几块,漏出里面灰色的水泥。
他在镇政府工作了十二年,从科员做到镇长,每一步都踩在政策的节点上。精准扶贫的时候他做农业大数据看板,在省里拿了个创新奖;乡村振兴战略启动的时候他率先搞了”茶园认购”项目,把镇里的茶叶卖进了杭州的高端社区;去年,上面推行”数字政务”,他又成了全区第一个上线”云栖政务通”小程序的乡镇。
十二年,他学会了做官的第一定律:上面要什么,你就有什么。至于有没有用,那不重要。重要的是”有”。
但最近他越来越觉得这句话哪里不对。
他走进办公楼的时候,党政办的灯已经亮了。小林是党政办的科员,比程远山小十岁,是镇里为数不多会用Excel做数据可视化的年轻人。此刻他正对着一台老旧的打印机发愁,机器发出拖拉机一样的声音,吐出来的纸上全是墨杠。
“程镇长,您来得也太早了。“小林抬头说。
“睡不着。“程远山走到自己的办公室,把包放下,“昨天的数据整理得怎么样了?”
小林的表情变得微妙起来。
“整理好了,但是……”他顿了顿,“程镇长,您真的要看吗?”
“看。”
小林把一叠打印出来的表格送进来,然后站在门口不走。程远山翻了翻,眉头越皱越紧。
那是云栖镇过去三个月的经济数据。GDP增速、招商引资额、居民可支配收入、新增市场主体数、农产品线上销售额——几乎所有指标都在往下掉。
GDP增速:去年同期6.1%,本季度3.2%。
招商引资:本季度新增注册企业3家,同比下降67%。
居民可支配收入:本季度增长1.8%,低于全区平均值3.4%。
程远山把表格放下。
“说说原因。”
小林犹豫了一下:“程镇长,我实话实说,您别生气。”
“说。”
“招商引资下降,主要是因为镇上那个承诺的电商产业园没建起来。去年您跟投资方签了意向协议,说好的”五通一平”今年三月完成,结果土地审批卡在基本农田保护红线上,到现在连平整都没做。投资方撤了,去桐庐了。”
程远山的脸色沉了下去。电商产业园那个项目他跑了八个月才谈下来,结果卡在土地上——云栖镇是半山区,基本农田比例高,可开发的建设用地本来就少。他打过报告,但上面说”占补平衡”方案没通过。
“还有居民收入的问题,“小林继续说,“今年茶叶价格比去年跌了将近三成,茶农都在亏钱。去年的茶园认购项目确实让一批茶农增收了,但今年认购的人少了,因为大环境不好,城里人来乡下消费也在降级。”
程远山知道这些。他都知道。
他只是不愿意接受这些数字被打印出来,变成白纸黑字。
“还有一件事。“小林的声音更低了,“程镇长,您让我查的那个东西,我查到了。”
“什么东西?”
“您让我查的,镇上居民在’秒借’这些平台的借款数据。“小林把另一张纸递过来,“我找了个在区金融办的朋友帮忙调的,不完整,但能看出个大概。”
程远山接过纸,扫了一眼数字,瞳孔猛地收缩了一下。
云栖镇在”秒借”平台的有效用户数是1876个。其中,被判定为”高风险”、借款申请被拒绝的用户数是:1342个。
拒绝率71.6%。
整个区的高风险拒绝率平均值是41.3%。云栖镇是这个数字的将近两倍。
“而且我看了下被拒用户的画像,“小林说,“大部分是四十岁以上、从事农业或者个体经营的居民。在算法眼里,他们全是’数据噪声’。”
程远山沉默了很久。
他想起来一件事。去年镇上有个茶农老吴,找他帮忙贷款买炒茶设备。程远山写了推荐信,盖了镇政府的章,老吴拿着推荐信去银行——银行说要看流水,老吴的流水不够。又去找小额贷款公司,填了一堆资料,最后被拒了。
老吴后来怎么样?程远山不知道。他太忙了,没时间跟进每一个来找他的人。
但小林给他的这张表上,他看到了一个数字:云栖镇过去一年因为信贷被拒而放弃经营的小微商户有23家。
23家。
对于一个三万人的小镇来说,这不是一个小数字。
“小林,“程远山说,“你知道这个东西意味着什么吗?”
“意味着什么?”
“意味着镇上这些小生意人——茶农、个体户、开民宿的——他们不是没有信誉,他们是被系统不认识。“程远山站起来,走到窗边,“镇上的经济数据往下掉,不是因为他们不努力,是因为他们借不到钱。借不到钱就没法扩大生产,不扩大生产就没法增收,不增收就没法还贷款,不还贷款就更借不到钱。这是一个死循环。”
小林没说话。
程远山又沉默了一会儿,然后说:“区里下周有个’金融支持乡村振兴’的座谈会,要求各镇上报一个项目方案。我的方案你来写。”
“什么方向的?”
“方向是:如何让数字普惠金融真正惠及农村小微经营主体。“程远山转过来看着小林,“写的时候,你要想清楚一件事——我们不是要骗上面的钱,我们是真的想解决点问题。”
小林点了点头。但他看程远山的眼神里有一种说不清的东西,像是在问:您确定吗?
程远山知道小林在担心什么。他的前任就是因为”数据造假”被降职的——把招商引资的数字报高了一点,被审计查出来了。程远山在那次事件里是”知情但不参与”,所以保住了位置,但也背了一个”政治敏锐性不足”的处分。
从那以后他学会了:报喜不报忧。
但今天他看着窗外云栖镇的轮廓——那些低矮的楼房、那片绿油油的茶山、那条刚修好的但还欠着三千万工程款的路——忽然觉得报喜不报忧是一件很没意思的事。
他不想再画那些好看的数字了。
他想知道,如果他不画那些数字,他还剩什么。
四、夏·云
林栀是在五月初接到那个电话的。
电话是医院打来的,说她妈妈的血小板又降了,需要输血,但医院血库O型血紧张,让她想办法。
林栀是O型血。
她挂了电话,跟公司请了半天假,坐地铁去了省血液中心。抽血的时候她看着自己的血往袋子里流,觉得那颜色比她想象的要暗。护士说她的血液指标不错,她嗯了一声,没说她其实很怕针头。
从血液中心出来,她在医院附近的面馆吃了一碗面。十五块钱,片儿川,味道很咸。
她坐在塑料凳子上,把手机立在碗旁边,拍了张照片发给妈妈。照片里是面和窗外的马路,配文写着:“中午吃面,医院的饭太难吃。”
妈妈回了一条语音。她点开,听见那个熟悉的声音:“吃好点,别省钱。”
林栀没回。她怕一开口就哭出来。
她今年二十九岁,在杭州一家电商公司做运营分析。二十九岁,单身,税后月薪一万二,租在城西一个老小区里,六楼没电梯。她是那种在大城市的统计数据里属于”新中产”、但在现实中活得像”新贫困”的年轻人。
她的工作说起来光鲜——数据分析、用户运营、GMV增长——但说白了就是:让更多的人买更多的东西。她每天看数据报表,研究用户的点击行为和购买路径,用一套叫”千人千面”的算法逻辑,把不同的人推送到不同的商品面前。
她不相信这套逻辑。
不是因为它不管用,恰恰相反,它太管用了。她见过数据:一个用户上周在算法推荐里点击了一件毛衣,下周算法就给她推送了同款的不同颜色、不同价格段的六个选项。用户买了。
这是电商运营的教科书级别的成功案例。但林栀看着那个数据的时候,想的是:那个人买那件毛衣,真的是因为她需要?还是因为算法让她觉得自己需要?
她在公司待了三年,每年做用户画像分析,都会对”算法塑造需求”这件事更加警惕一点。但她不敢说出来,因为说出来就是”缺乏数据思维”。
她每个月最怕的是还信用卡那天。她的信用卡账单是一万三,其中八千是妈妈的医疗费——妈妈在新昌县的医院治疗,医保能报一部分,但很多进口药和检查不在医保范围内。
她没告诉任何人妈妈生的是什么病。
急性淋巴细胞白血病。化疗加靶向药,一个疗程平均费用六到八万。医保能报50%左右,剩下的自费。
她工作三年,存款是八万。这八万够妈妈做几个疗程?她算过,不够。
她没有跟任何人借过钱。她怕欠人情。更怕的是,她不知道自己什么时候能还清。
她吃完面,付了钱,走出面馆的时候,看见门口停着一辆电动车。骑车的人穿着一件洗得发白的蓝色polo衫,头发灰白,戴着一顶草帽。
他把电动车停在面馆门口,摘下头盔,露出一张很老的、沟壑纵横的脸。他走进面馆,问老板娘:“还有阳春面吗?”
老板娘说:“有,等一下。”
他就在门口等着,站得很直,双手垂在身体两侧,像是在等一个很重要的东西。
林栀看了一眼手机——她约的车还有五分钟到。她站在路边等,忽然听见面馆里传来一个苍老的声音:“老板娘,我来杭州好几次了,每次都吃你的面。我在省人民医院旁边问过好多人,都说你家的面最好吃。”
老板娘笑了:“那你肯定不是我家的老客人。我们家的面不是最好吃,是最新鲜。”
老人说:“新鲜的就好。新鲜的最养人。”
林栀听到”省人民医院”四个字,心里动了一下。
她看了看那个老人。他大概六十多岁,也许更老,但站得很直。草帽下面露出灰白的鬓角,脸上的皱纹像是被风吹出来的。
五分钟后,林栀上了车。车子开走的时候,她回头看了一眼面馆门口。那个老人还站在那里,电动车也没推进去,就那么停着,像是他随时准备走。
她不知道为什么,心里记住了那个画面。
五、秋·算法
陈屿的Override申请被驳回了。
驳回理由是:风控部门认为他提供的三个数据异常点”证据力度不足,无法证明原评分存在系统性偏差”。特别是第一条——关于”紧急联系人”的交叉验证——风控认为通话记录本身不能证明任何东西。
他看着驳回邮件,在工位上坐了整整十分钟没动。
概率晕在他视野里疯狂闪烁,全是刺眼的红色警告色——这是愤怒的情绪在生理数据上的可视化表现,他见过很多次了,但每次都觉得那颜色让人头疼。
他决定去找风控部的赵总监。
赵总监是个四十多岁的女人,永远穿一身灰色西装,说话不带任何情绪。她的桌上放着三个屏幕,陈屿进去的时候她正在看一组数据,屏幕的光打在她脸上,把她的五官照得像刀刻的。
“陈屿,我看过你的申请了。“她没抬头,“你的论据有一个根本性的问题:你用外部数据来对抗系统评分。”
“外部数据?“陈屿说,“我用的是’秒借’平台内部的数据——通话记录、消费记录、行为标签——这些不是外部数据。”
“是内部数据,但你用的方式不对。“赵总监终于抬起头,“你通过外部信息——大众点评、省人民医院的就诊信息——来反推用户在平台内的行为动机。这不是数据分析,这是定性推断。”
“但这些推断能解释为什么周德清的数据是’噪声’——”
“我不需要解释为什么他是噪声。“赵总监打断他,“我只需要知道:按照现有模型,他的风险评分是317分,这个评分是基于最优化的风控策略计算出来的。除非你能证明模型本身有缺陷——不是针对某一个case,而是针对某一类case——否则我无法批准Override。”
陈屿说:“我可以证明。我可以调出模型对50岁以上用户的评分分布——”
“不用了。“赵总监说,“陈屿,你知道Override的意义是什么吗?Override的本质是用人工判断推翻机器判断。你知道这意味着什么吗?意味着如果这个用户将来违约,承担责任的是公司,是你,是我。机器判断错了,那是模型的错。人判断错了,那就是人的错。”
“但如果机器的模型从根子上就是错的呢?”
赵总监沉默了三秒。
这三秒陈屿记得很清楚。因为在那三秒里,他看见赵总监的概率晕经历了一个微妙的变化——从冷蓝色变成了一丝暖橙色,然后又迅速压回冷蓝色。
“模型有没有可能在某些维度上有偏差?“赵总监说,“有可能。所有模型都有偏差。但你不能用’可能’来Override。你需要证明。”
“那我怎么证明?”
赵总监看着他,像是在看一个不太聪明的学生。
“你做audit三年了,你应该知道怎么证明。“她说,“调数据。跑对照实验。找到系统性偏差的证据。然后再来找我。”
陈屿走出风控部的时候,感觉自己的太阳穴在跳。
他回到工位,开始做赵总监要求他做的事。他调出了”秒借”平台过去两年内所有50岁以上用户的评分数据,总共28417条记录。
然后他把这批数据按年龄分层,做了一张对照表:
50-60岁用户:平均评分421分,借款通过率38%
61-70岁用户:平均评分287分,借款通过率11%
71岁以上用户:平均评分156分,借款通过率1.3%
他又调出了”秒借”的训练数据集构成报告。报告里写着:训练数据样本总量1200万条,其中城市白领用户(25-45岁)占比61%,个体经营者占比7%,农业户籍用户占比3%。
城市白领61%。个体经营者7%。农业户籍3%。
而根据国家统计局数据,中国25-60岁就业人口中,农业户籍占比约为42%,个体经营者占比约为25%。
也就是说,“秒借”的训练数据严重低估了非城市白领群体的代表性。模型学习的是61%城市白领的特征,然后用这个特征集合去评判所有人。
一个六十七岁的农村个体户,在模型眼里天然就是”异常值”——不是因为他的信誉有问题,而是因为模型从来没见过他这种人。
陈屿把这个分析做成了报告,一共四十七页。他附上了所有数据图表,在每一页的注释里都写清楚了计算方法和数据来源。
他把报告发给了赵总监,同时抄送给了公司的合规部和算法伦理委员会。
这是他能做的全部了。
然后他打开了一个新的工单。
周德清,第五次申请,金额:一千五百元。
申请时间:今天下午3:12。
状态:审核中。
陈屿盯着这个数字,忽然想起来:他还没吃午饭。
六、秋·棋
程远山的方案被毙了。
毙掉的是区金融办。金融办的意见是:“项目方向过于宏大,缺乏可量化的短期成效指标,不建议纳入本年度重点支持项目。”
程远山坐在办公室里,把那份回复看了三遍,然后给小林打了个电话。
“小林,过来一下。”
小林进来的时候,程远山把那张纸递给他。小林看完之后沉默了一会儿,然后说:“程镇长,他们毙掉的原因,表面上是’缺乏量化指标’,实际上是觉得您这个方案动了别人的蛋糕。”
“什么蛋糕?”
“金融办的考核指标里有一条叫’普惠金融覆盖率’,要求各镇每年新增普惠金融用户数达到一定比例。但他们考核的是’开户数’,不是’实际获贷数’。也就是说,只要农民在那些APP上注册了账号,就算’覆盖’了。至于他们能不能借到钱,不在考核范围内。”
程远山冷笑了一声。
他懂这个逻辑。他太懂这个逻辑了。上面的政策到了基层,往往会变成数字游戏——考核什么就做什么,至于政策初衷是什么,不重要。
“那我们换一个思路。“程远山说,“既然他们要量化指标,我们就给他们量化指标。但是这个指标,要我们自己定。”
小林看着他。
“我要做一个’获贷成功率’的统计。不是’注册率’,是真正的’获贷率’——镇上居民在各大平台申请贷款,最终成功拿到钱的比例。我要让这个数字变成我们镇政府的内部考核指标。”
小林想了想,说:“程镇长,这个数据我们怎么拿?”
“我来想办法。“程远山说,“你先把镇上的市场主体底数摸清楚——小商户、茶农、养殖户、民宿主,有多少家,每家的情况怎么样。我要一个完整的台账。”
“这个我能做。但是程镇长,“小林犹豫了一下,“您做这个事,得罪的不是金融办,还有那些平台公司。他们的数据不会给你的。”
程远山站起来,走到窗边。
窗外是云栖镇的茶山,秋天了,茶园还是绿的,但已经过了最旺的采茶季,茶农们开始在茶树下套种别的作物。远处的山腰上有一条新修的路,那是他上任后推动的”茶园产业路”,全长2.3公里,政府出了一部分钱,其余的是村集体和茶农自筹。
路修好了,茶农的收入却没涨。茶叶价格跌了三成。
“小林,你知道我为什么想当官吗?“程远山忽然问。
小林没说话。
“我小时候跟我爸去镇上卖菜,“程远山说,“那时候镇政府的人来收管理费,收完管理费还要收卫生费,我爸问他们卫生费是什么,他们说’你们摆摊影响市容,收点钱我们雇人打扫’。我爸说’我们自己扫不行吗’,他们说’不行,这是规定’。”
他顿了顿。
“我爸把那一车菜便宜卖了,回家了。我那时候就想,我以后要是当了官,我一定不当那种人。”
小林沉默了很久。
“程镇长,那您现在觉得自己是哪种人?”
程远山回过头,看着小林。
“我不知道。“他说,“我只知道,我得先坐稳这个位子,才能做我想做的事。“
七、冬·裂
十一月的杭州开始冷了。
陈屿收到了两件事。
第一件事:他的Override申请报告被合规部受理了。合规部认为他的数据证明了”模型在年龄维度和职业维度上存在系统性偏差”,要求算法团队在三个月内完成一轮专项优化。合规部的批复里特别提到了一句话:“感谢审计部陈屿提供的系统性分析。”
这是陈屿入职以来收到的最让他高兴的官方邮件。
第二件事:周德清第五次借款申请,还是被拒了。
但这次不一样。
这次被拒的理由不是”高风险”,而是:周德清主动撤回了申请。
陈屿调出了撤回记录,发现周德清在申请提交后两小时,又提交了一个”撤销申请”的请求,理由一栏是空的。
两小时。陈屿推测:周德清在第一次看到申请通过的时候,也许有过一瞬间的希望。但两小时后他发现了什么——也许是额度不对,也许是要交的资料太多他不会填,也许只是某个步骤卡住了——然后他放弃了。
陈屿又调出了周德清的账户状态。
账户显示:最后一次登录时间是三天前。登录设备还是那部老旧的三星手机。
之后,这个账户再也没有活动过。
陈屿忽然有一种不好的预感。
他用公司的数据系统查了一下周德清关联的手机号——他之前看到过周德清和那个上城区的固定电话有规律通话的记录。那个号码是省人民医院的。
他查到的是一条三个月前的通话记录,最近三个月,周德清和那个号码没有任何通话。
三个月不通话。女儿住院三个月没有音讯。
陈屿的手停在了键盘上。
他想起来三个月前他在数据库里看到的那个诊断:急性淋巴细胞白血病。化疗周期是每二十一天一次。三个月不做化疗——不是治愈了,就是放弃了。
他不知道周德清的女儿现在怎么样了。他没有渠道去查一个陌生人的医疗信息。
他只能想象:一个六十七岁的老人,女儿在省城住院,三个月没有钱做化疗。他每个月从转塘坐车到杭州,坐两三个小时的公交,去医院看女儿。他不知道他在那个病房里看到的是什么——是女儿一天比一天虚弱,还是已经不在了。
然后他在回家的路上,打开手机,看到自己又一次被拒绝的借款申请。
陈屿闭上眼睛。
他的概率晕里浮现出周德清的光晕——那个破碎的、斑驳的、揉成噪声的轮廓。但这一次他看得更清楚了:那个光晕正在以肉眼不可见的速度变暗。色彩的饱和度在降低,像一张正在褪色的照片。
数据活跃度下降——这是算法对”失联用户”的判定标准。但陈屿知道那意味着什么:一个六十七岁的老人,正在从数字世界消失。
他打开了一个新的文档。
不是工单,不是报告,是一封信。他写给星潮智融CEO的信。
信很短,只有两页。
第一页:数据。28417条50岁以上用户的评分分布。训练数据有偏的证明。算法对”非标准用户”的系统性低估。
第二页:周德清的case。一个具体的、活生生的人。不是数据,是人。
他不知道这封信会不会有用。他不确定CEO会不会看到这封信。他甚至不确定写这封信本身是不是一个正确的职业选择——在星潮,没有人给CEO写这种东西。没有人愿意做这种可能得罪所有人的事情。
但他写了。
写完之后,他把信存到了一个加密文档里,设定了明早9点自动发送。然后他靠在椅背上,看着窗外的杭州夜景。
城市的灯光像海。
他忽然想起来一件事:他从没见过周德清本人。他见过周德清的数据、照片、消费记录、借款申请、还款记录——但他从未见过那个在灶台后面拉面的老人。
如果他见到他,他想说什么?
他不知道。
他只知道他做了他能做的一切——至少是他以为他能做的一切。
然后他关掉电脑,回家了。
八、冬·融
十二月二十四日,平安夜,杭州下了一场雪。
很小,不是那种能积起来的雪,只是细碎的雪粒,打在窗户上发出沙沙的声音,像是有人在用指尖轻轻敲门。
程远山站在镇政府的窗前,看着那场雪。
他的方案最终还是被毙了。但方式出乎他的意料:不是被毙掉,而是被”合并”了。区金融办把他的方案和另外两个镇的方案打包成了一个区级项目,名字叫”数字普惠金融试点工程”。项目由区里统一管理,程远山被任命为”项目联络员”。
联络员的意思是:他负责提供数据,但决策权不在他手里。
这是他早就预料到的。他不意外。
但他没想到的是另一件事。
小林前天告诉他:云栖镇的”获贷成功率”在过去三个月里,从11%上升到了23%。
不是因为他做了什么事,而是因为——
“‘秒借’的平台改了。“小林说,“我也是刚发现的。它们的算法更新了,增加了’非标准用户’的权重。听说是因为合规部查了一个什么case,发现模型有偏差,强制要求整改。”
程远山问:“什么case?”
“不知道,没查到具体案例。但据说是一个审计师写的报告,直接捅到CEO那里去了。”
程远山沉默了一会儿。
他忽然觉得这个世界有一种奇怪的逻辑:一个人写了一封信,然后算法改了,然后一千多个人借到了钱。这个链条太长了,长到任何一个环节断了都不会有结果。但链条偏偏没有断。
他不知道那个审计师是谁。他可能永远也不会知道。
但他记住了这件事。就像他记住了很多年前那个在镇政府门口收费的人一样。他不想成为那种人,但他能记住那种人的存在。
窗外的雪越下越大。程远山拿出手机,拍了一张窗外的照片。
照片里是云栖镇的老街,青石板路面上落了一层薄薄的雪,两边的店铺挂起了红灯笼——圣诞装饰,实际上是元旦将至。一个老人挑着担子走过街角,担子里是新鲜的蔬菜。
他把照片发给了小林,配文写着:“今年镇上的数据可能还是不好看。但路过的那个卖菜大爷,今天跟我说他儿子从城里回来过年了。”
他想了想,又删掉了最后一句,重新写:“路过的那个卖菜大爷,今天说他儿子从城里回来过年了。”
他不习惯说那些有意义的话。有些事,存在就够了。
九、尾声·雪
陈屿是在第二年三月听到周德清的消息的。
不是从公司系统里,而是从一篇报道上。
一篇关于”数字鸿沟与老年金融排斥”的报道,登在一个叫”城市数据观察”的小众公号上。报道采访了一个叫周德清的老人——杭州转塘镇人,六十七岁,经营一家叫”老周面馆”的小面店四十三年。报道里写,周德清的女儿周晓月于去年冬天去世,病因是急性淋巴细胞白血病。
报道还写了另一件事:周德清的女儿去世后,他在料理完后事之后,做了一件事——他把自己用了三年的三星翻盖手机换成了智能手机,然后重新注册了”秒借”的账号。
这一次,他申请了一笔五百元的借款。
这一次,算法通过了。
报道没有解释为什么五百元就能通过,而三千元、三万元不能。也没有解释为什么之前被判定为”高风险”的老人,在失去女儿之后忽然变成了”可接受风险”。
陈屿看完报道,沉默了很久。
他不知道答案。他只知道那个数字——500元。算法的逻辑他依然看不懂。但有一件事他确定:周德清还在。他还在那个系统里,还在那些数据里,还在那个他用四十年阳 春面养活人的世界里。
陈屿把报道打印了出来,夹在桌上的笔记本里。他没有把这件事告诉任何人。有些事情不需要被知道,只需要被记住。
四月的一个周末,他开车去了转塘。
他没有去老周面馆。他不知道自己去了要说什么——“我是那个看了你数据三年的人”?太奇怪了。他只是在转塘的老街上走了一圈,在菜市场旁边的一家小面店吃了一碗面。
面店不叫”老周面馆”,但味道差不多。阳春面,三块钱,加一份素鸡。
他吃完面,把碗里的汤喝干净,然后付了钱走出来。
街上阳光很好。四月的杭州,桂花已经开始香了,空气里有一种温热而潮湿的气息。他站在面店门口,看着街上来来往往的人——骑电动车的、开货车的、挑担子的、推婴儿车的——每一个人身上都有概率晕,只是他现在已经不太用去看那些光晕了。
算法在变好。慢,但是真的在变。
他不知道周德清还会不会再申请借款。也不知道那个算法改过之后的模型,在面对下一个”老面馆”的时候,会不会做出不同的判断。
但有一件事他相信:只要有人在看,有些事情就不会完全烂掉。
陈屿拿出手机,在通讯录里找到了一个名字——他在合规部的一个同事,之前一起做那个系统性偏差报告的。他发了一条消息:
“下次关于那类用户的提案,记得叫上我。”
然后他收起手机,往停车的地方走去。
杭州的春天很短暂。但今年,他觉得春天比往年都长一些。
也许只是错觉。
(全文完)