林浩从建材市场出来,T恤后背已经湿透,紧贴在皮肤上。他手里拿着一卷图纸,是创新大厦五楼的装修设计图——刚和设计师吵了一架,对方坚持要做吊顶、大理石前台、玻璃隔断,说“这才象正规公司”。林浩坚持要做开放空间、水泥地、裸露管线,说“这才象创业公司”。最后各让一步:前台用水泥砌,但打磨光滑;不吊顶,但刷黑漆;办公桌用实木板,但自己钉。
省钱,但要酷。这是林浩的要求。
他拐进巷子口一家网吧。招牌是褪色的“极速网吧”,玻璃门上贴着《传奇》《奇迹》《CS》的海报,但边角卷起,被太阳晒得发白。推门进去,冷气和烟味、泡面味、汗味混杂的气浪扑面而来。
下午的网吧人不多,大半机子空着。几个少年在打游戏,大呼小叫。角落里,一个瘦得象竹杆的年轻人,背对着门,坐在最里面的位置。他没打游戏,屏幕上是黑色的终端窗口,绿色的字符快速滚动。桌上摊着一本厚厚的书,砖头一样,是《算法导论》英文原版,书页泛黄,边角卷起,密密麻麻写满了笔记。
林浩在他斜后方找了个位置坐下。开机,打开邮箱,处理装修报价单。但眼角馀光一直瞟着那个年轻人。
年轻人很专注。手指在键盘上快速敲击,但动作轻盈,几乎没有声音。。林浩能看
这是推荐算法的内核概念。在2003年,这太超前了。当时国内互联网还处在门户时代,新闻是编辑手动推荐,电商还没起步,推荐算法只是学术论文里的概念。
林浩起身,去吧台买了两瓶冰镇矿泉水。走回来,把一瓶放在年轻人桌上。
“喝点水。”
年轻人抬起头。很年轻,可能二十出头,戴一副黑框眼镜,镜片很厚,眼睛很大,但眼窝深陷,有黑眼圈。脸很瘦,颧骨凸出,嘴唇干裂。他看了一眼水,又看了一眼林浩,眼神里有警剔,也有困惑。
“谢谢,不用。”
“天热,脱水。”林浩在他旁边的空位坐下,拧开自己那瓶,喝了一口,“看你写代码,是推荐系统?”
年轻人愣了一下,警剔更深:“你懂?”
“懂一点。协同过滤,基于用户的,还是基于物品的?”
“都在试。”年轻人说,声音很轻,但清淅,“但稀疏矩阵问题解决不了。用户-物品矩阵太大,太稀疏,相似度计算不准。”
“用SVD(奇异值分解)降维。或者,加隐语义模型。”林浩说。
年轻人眼睛睁大了。他看着林浩,像看着一个突然从地里冒出来的怪物。2003年,SVD在推荐系统中的应用,还只是少数实验室在研究的课题。
“你……你是哪个实验室的?”年轻人问。
“不是实验室,是公司。”林浩说,“浩宇科技,做游戏的。但我们对推荐算法有兴趣。你在做什么项目?”
年轻人尤豫了几秒,然后说:“个性化新闻推荐。我想做一个系统,根据用户的浏览历史,自动推荐他可能感兴趣的新闻。但现在还在理论阶段,数据都没有。”
“爬虫抓新闻,用户行为仿真,先跑起来。”林浩说,“算法不验证,永远是纸上谈兵。”
“我知道。”年轻人苦笑,“但没服务器,没数据,没资源。我在深大读书,实验室的机器要排队,一次只能跑一小时。”
“深大?计算机系?”
“恩,大三。张一鸣。”
林浩的心脏重重跳了一下。张一鸣。这个名字,他上辈子在无数科技新闻里见过:今日头条创始人,字节跳动CEO,中国互联网新生代巨头。但现在,他只是个在网吧啃《算法导论》的穷学生。
“我叫林浩。”林浩伸出手。
张一鸣握手。手很瘦,但有力。
“你刚才说,浩宇科技?做游戏的?《血战天下》是你们做的?”
“你知道?”
“玩过。”张一鸣说,脸上第一次露出一点笑容,“国战系统很厉害,同步算法做得很好。我逆向分析过客户端,你们的预测矫正模型,比论文里的方案更实用。”
“你还逆向分析?”林浩笑了。
“兴趣。”张一鸣说,“我觉得,游戏里的很多技术,可以用在其他地方。比如状态同步,可以用在实时推荐上——用户每点一次,系统立刻更新推荐列表,像游戏里每动一步,画面立刻更新。”
“思路不错。”林浩说,“但实时推荐的计算量太大,服务器扛不住。”
“所以要做增量更新,做局部刷新,做客户端缓存。”张一鸣语速快起来,眼睛里有了光,“就