第55章 第六十一章

第六十一章

他们给这个项目起了一个名字,叫“守岸”。

是沈禾起的。她说,抑郁症是一条河,掉下去的人在水里喊,岸上的人听不见。要有一个东西替他们喊——不是替他们喊救命,是替他们喊“我看见你了,我听见你了,你现在很安全”。

那几个月,陈默重新变回了那个2003年在辰宇软件第一个来最后一个走的人。他每天早上六点起来,先给儿子做早饭——煮粥、煎蛋、把昨天的剩菜热一下。送完孩子上学,坐一个小时的公交车去方教授的实验室。实验室在北大六院的地下二层,没有窗户,日光灯永远亮着,白惨惨的光把所有人的脸都照得发青。空气里弥漫着空调压缩机的嗡鸣和打印机的墨粉味,墙角堆着成摞的病历资料,纸张泛黄,边缘卷着,有些还残留着消毒水的味道。

他在那里一待就是十几个小时,面前两台显示器,左边是代码编辑器,右边是数据可视化窗口。他重新捡起了Java,但发现这十年里Java已经迭代了好几个版本,很多语法他都忘了。忘了就查,查了就写,写了再调。他的手指重新适应了键盘的节奏,从一开始的生涩到后来的流畅,从噼噼啪啪的试探到行云流水的敲击。有时候写到入神,整个人会进入一种忘我的状态——不饿,不渴,不想债,不想过去,不想未来,只有眼前的代码和屏幕上一行一行跳出来的结果。那种感觉和十年前在那个雪夜修鑫源建材的系统时一模一样,像一场只有他一个人参加的大考,所有的噪音都被隔在考场外面。

赵磊负责把自然语言处理模块跑通。他用了沈禾给的思路——不只分析量表分数,更分析语言特征。那些调查问卷里的开放式回答,那些“最近一周你在想什么”的答案,几万条文本,他用词向量模型一条一条地做语义分析。他发现了一些他自己永远不想承认、但数据不会撒谎的规律——有自杀风险的人,他们的用词频率会出现特定的偏移。他们使用“一直”这个词的频率是普通人的三点七倍。“一直很累”、“一直睡不着”、“一直在想”。他们的句子更短,更破碎,主语“我”的出现频率锐减,被动语态增加,像是他们已经在潜意识里把自己从生活的主语位置上摘掉了。

韩鹏负责特征工程。他把几十万条记录里的噪声一点一点地洗掉——缺失值填补、异常值检测、特征交叉组合。他写SQL还是那么慢,但每一行都干净利落,像是用手术刀在剔骨头上的肉。杜川负责算法选型。他把能找到的论文全部读了一遍,从逻辑回归到随机森林,从支持向量机到早期深度学习模型。每试一个算法就跑一轮交叉验证,把结果画成ROC曲线打印出来贴在墙上。到后来,墙上贴了二十几条曲线,每一条都标着日期和模型名称,从最初的0.71到后来的0.83再到0.87。那个数字每往上跳一个点,他就用红笔在纸上画一颗五角星。五角星画到第七颗的时候,他把笔一扔,靠在椅背上,仰头看着天花板上那盏日光灯。

“0.87。”他说,声音很平,但眼镜片上有一层雾气,“目前全球公开发表的最高水平,0.89。”

韩鹏从屏幕后面探出头来。“我们还差0.02。”

“我知道。”

“0.02够我们追多久?”

杜川把眼镜摘下来,用袖子擦了一下,戴回去。“再追一轮。就一轮。”

追到第十三轮的时候,曲线跳到了0.88。韩鹏从椅子上弹起来,头顶差点撞到天花板上垂下来的那根日光灯管。他抓着杜川的肩膀使劲摇,唐山口音全冒出来了:“你瞅瞅!你瞅瞅!零点儿八八!”杜川被他摇得眼镜歪了,但嘴角在笑。

赵磊没有欢呼。他盯着屏幕上另一个数字——不是AUC,是另一个指标,叫敏感度,衡量模型能捕获多少真正的患者。他的目标是百分之九十以上。因为漏掉一个,就是一条命。他调参调到凌晨三点,把正则化系数从0.01一路试到100,学习率从0.1试到0.0001。最后他站起来,走到陈默旁边,把一个数字放在他面前——不是炫耀,是交卷。

“九十四点三。”他说,嗓子哑得像砂纸磨在铁皮上,“一百个有自杀风险的人,我们能抓住九十四个。剩下六个,我们再想别的办法。”

2013年春天,守岸系统在北大六院做了第一轮临床验证。方教授调了五百例历史病例,把系统筛查结果和精神科医生的诊断做比对。他在评估报告里写了一句话:“该系统的早期预警能力,在PHQ-9量表基础上提升了显著幅度,尤其在中重度抑郁的窗口期识别上,具有独立的临床参考价值。”

这句话翻译成白话就是:它能拦住人。

消息传出去之后,第一笔合作意向来自一家互联网医疗平台。他们愿意出一百二十万,购买守岸系统的API接口,嵌入他们的在线问诊流程。第二笔来自一家保险公司的健康险部门,他们需要一个精算工具来评估投保人的心理健康风险。第三笔来自一家连锁体检机构,他们想把抑郁症筛查纳入常规体检套餐,就像量血压、测血糖一样。然后是第四笔、第五笔。

< 上一章 目录 下一章 >
×
命由我作,福自己求
连载中匿名 /