七月底的深圳,热得像一个巨大的蒸笼。下午四点,太阳还毒辣地掛在天上,晒得柏油路面浮起一层透明的、摇曳的热浪。城中村的巷子又窄又深,两侧是密密麻麻的“握手楼”,阳光只能从楼缝里漏下几道惨白的光柱,照在积著污水的坑洼路面上。

林浩从建材市场出来,t恤后背已经湿透,紧贴在皮肤上。他手里拿著一捲图纸,是创新大厦五楼的装修设计图——刚和设计师吵了一架,对方坚持要做吊顶、大理石前台、玻璃隔断,说“这才像正规公司”。林浩坚持要做开放空间、水泥地、裸露管线,说“这才像创业公司”。最后各让一步:前台用水泥砌,但打磨光滑;不吊顶,但刷黑漆;办公桌用实木板,但自己钉。

省钱,但要酷。这是林浩的要求。

他拐进巷子口一家网吧。招牌是褪色的“极速网咖”,玻璃门上贴著《传奇》《奇蹟》《cs》的海报,但边角捲起,被太阳晒得发白。推门进去,冷气和烟味、泡麵味、汗味混杂的气浪扑面而来。

下午的网吧人不多,大半机子空著。几个少年在打游戏,大呼小叫。角落里,一个瘦得像竹竿的年轻人,背对著门,坐在最里面的位置。他没打游戏,屏幕上是黑色的终端窗口,绿色的字符快速滚动。桌上摊著一本厚厚的书,砖头一样,是《算法导论》英文原版,书页泛黄,边角捲起,密密麻麻写满了笔记。

林浩在他斜后方找了个位置坐下。开机,打开邮箱,处理装修报价单。但眼角余光一直瞟著那个年轻人。

年轻人很专注。手指在键盘上快速敲击,但动作轻盈,几乎没有声音。屏幕上的代码在滚动,是c++,但风格很独特——变量名用下划线分隔,函数短小,注释精確。林浩能看到几个关键词:collaborative_filtering、user_vector、item_similarity……协同过滤,用户向量,物品相似度。

这是推荐算法的核心概念。在2003年,这太超前了。当时国內网际网路还处在门户时代,新闻是编辑手动推荐,电商还没起步,推荐算法只是学术论文里的概念。

林浩起身,去吧檯买了两瓶冰镇矿泉水。走回来,把一瓶放在年轻人桌上。

“喝点水。”

年轻人抬起头。很年轻,可能二十出头,戴一副黑框眼镜,镜片很厚,眼睛很大,但眼窝深陷,有黑眼圈。脸很瘦,颧骨凸出,嘴唇乾裂。他看了一眼水,又看了一眼林浩,眼神里有警惕,也有困惑。

“谢谢,不用。”

“天热,脱水。”林浩在他旁边的空位坐下,拧开自己那瓶,喝了一口,“看你写代码,是推荐系统?”

年轻人愣了一下,警惕更深:“你懂?”

“懂一点。协同过滤,基於用户的,还是基於物品的?”

“都在试。”年轻人说,声音很轻,但清晰,“但稀疏矩阵问题解决不了。用户-物品矩阵太大,太稀疏,相似度计算不准。”

“用svd(奇异值分解)降维。或者,加隱语义模型。”林浩说。

年轻人眼睛睁大了。他看著林浩,像看著一个突然从地里冒出来的怪物。2003年,svd在推荐系统中的应用,还只是少数实验室在研究的课题。

“你……你是哪个实验室的?”年轻人问。

“不是实验室,是公司。”林浩说,“浩宇科技,做游戏的。但我们对推荐算法有兴趣。你在做什么项目?”

年轻人犹豫了几秒,然后说:“个性化新闻推荐。我想做一个系统,根据用户的瀏览歷史,自动推荐他可能感兴趣的新闻。但现在还在理论阶段,数据都没有。”

“爬虫抓新闻,用户行为模擬,先跑起来。”林浩说,“算法不验证,永远是纸上谈兵。”

“我知道。”年轻人苦笑,“但没伺服器,没数据,没资源。我在深大读书,实验室的机器要排队,一次只能跑一小时。”

“深大?计算机系?”

“嗯,大三。张一鸣。”

林浩的心臟重重跳了一下。张一鸣。这个名字,他上辈子在无数科技新闻里见过:今日头条创始人,字节跳动ceo,中国网际网路新生代巨头。但现在,他只是个在网吧啃《算法导论》的穷学生。

“我叫林浩。”林浩伸出手。

张一鸣握手。手很瘦,但有力。

“你刚才说,浩宇科技?做游戏的?《血战天下》是你们做的?”

“你知道?”

“玩过。”张一鸣说,脸上第一次露出一点笑容,“国战系统很厉害,同步算法做得很好。我逆向分析过客户端,你们的预测矫正模型,比论文里的方案更实用。”

“你还逆向分析?”林浩笑了。

“兴趣。”张一鸣说,“我觉得,游戏里的很多技术,可以用在其他地方。比如状態同步,可以用在实时推荐上——用户每点一次,系统立刻更新推荐列表,像游戏里每动一步,画面立刻更新。”

“思路不错。”林浩说,“但实时推荐的计算量太大,伺服器扛不住。”

“所以要做增量更新,做局部刷新,做客户端缓存。”张一鸣语速快起来,眼睛里有了光,“就像游戏里,只同步视野內的玩家。推荐系统里,只更新用户可能感兴趣的几个品类。其他部分,用缓存,用异步更新。”

林浩听著,心里越来越惊。这个二十岁的年轻人,思维已经跳出了时代。他看到的不是眼前的技术局限,是技术背后共通的逻辑——状態同步、增量更新、缓存优化,这些游戏引擎里的概念,被他自然地迁移到推荐系统里。

“你做过实验吗?”林浩问。

“在实验室跑过小规模数据。”张一鸣从书包里掏出一个软盘,“里面是模擬数据,十万用户,一百万新闻,用简单的协同过滤,准確率只有30%。但如果加上时间衰减因子——用户最近的行为权重更高——能提到40%。再加社交关係——朋友喜欢的,你也可能喜欢——能到50%。但计算量指数级增长,单机跑一次要三天。”

“用分布式。”林浩说,“把数据切分,多台机器並行计算。mapreduce的思路,听过吗?”

“google那篇论文?”张一鸣眼睛更亮了,“我看过,但没实践过。实验室没那么多机器。”

“浩宇有。”林浩说,“我们刚租了一层楼,正在装修。伺服器买了二十台,下周到货。如果你有兴趣,可以来我们那儿做实验。数据,我们有——游戏里几百万玩家的行为数据,每天產生几千万条日誌。伺服器,我们也有。缺的,是人。”

张一鸣愣住了。他看著林浩,像在判断这话的真假。一个陌生人,在网吧,邀请他去公司做实验,用真实数据,用真实伺服器。这听起来像骗子,或者……像做梦。

“为什么?”他问。

玄幻魔法小说相关阅读More+

伪装魔法少女:无上力道大宗师

佚名

逆子荒年拋弃我,我通现代粮满仓

佚名

科研系统,开启无双科技!

佚名

盲眼剑圣,我杀穿了求生副本世界

佚名

灾年重生:开局拯救资本家大小姐

佚名

方人修仙传

佚名