关谷的料理对决过去三天后,爱情公寓迎来了一位久违的住户——陆展博。
他是胡一菲的弟弟,在美国硅谷工作了好几年,这次回国休假一个月。本来计划好好放松,结果人还没倒完时差,公司的越洋电话就追过来了。
周六上午,乔卫东晨跑回来,看见一个戴着黑框眼镜、头发乱糟糟的年轻男人正坐在三楼楼梯口,抱着笔记本电脑疯狂敲代码,嘴里还念念有词。
“该死的……这个优化怎么就是不行……”
乔卫东认出这是陆展博,胡一菲给他看过照片。
“陆展博?”他停住脚步。
展博猛地抬头,眼镜滑到鼻尖:“你……你是?”
“乔卫东,新邻居。”乔卫东伸出手。
“哦哦!乔先生!一菲跟我提过你!”展博连忙合上电脑站起来握手,“她说你很厉害,什么都会!”
“过奖了。”乔卫东看了眼他的电脑,“工作很忙?”
“何止是忙……”展博苦着脸,“公司新项目,ai推荐系统优化,deadline就在下周。我都回国休假了,还被拉着远程debug……”
他看起来很疲惫,黑眼圈很重,身上的t恤皱巴巴的,一看就是熬了夜。
乔卫东想了想:“要不要来我那儿坐坐?我泡壶茶,你慢慢弄。”
“可以吗?不会打扰你吧?”展博有些犹豫。
“不会。”
五分钟后,两人坐在3603的客厅里。乔卫东泡了一壶普洱,展博重新打开电脑,屏幕上密密麻麻的代码让人眼花缭乱。
“具体是什么问题?”乔卫东给他倒了杯茶。
展博推了推眼镜:“是这样,我们在做一个电商平台的个性化推荐系统。传统的协同过滤算法准确率不够高,我们想引入深度学习,但训练成本太大,线上推理速度又跟不上……”
他说了一堆专业术语,语气越来越烦躁:“我试了三种模型架构,优化了七次参数,准确率才提升了0.3个百分点,根本达不到产品要求。老板说再搞不定就要换方案了……”
乔卫东安静地听着,偶尔点点头。等展博说完,他问:“能给我看看你们的数据特征工程吗?”
展博愣了一下:“乔先生也懂这个?”
“略懂一点。”乔卫东说,“以前投资过几家ai公司,看过一些。”
展博将信将疑,但还是调出了代码。乔卫东凑过去看,手指在屏幕上滑动,目光快速扫过一行行代码。
看了大概三分钟,他开口:“问题出在这里。”
“哪里?”
“特征交叉的方式。”乔卫东指着一段代码,“你们只用了一阶和二阶交叉,对于用户行为这种高维稀疏数据来说,信息损失太大了。”
展博眼睛一亮:“对!我也想过这个问题!但高阶交叉计算量太大……”
“可以用fm(factorization machines)。”乔卫东说,“或者更好的,deepfm,把深度神经网络和因子分解机结合起来。既保留了低阶特征交互,又能捕捉高阶非线性关系。”
展博张大了嘴巴:“deepfm……我听说过,但没实际用过……”
“现在用的人不多,但效果不错。”乔卫东拿过一张纸,开始画示意图,“你看,这里用dnn处理高阶特征,这里用fm处理低阶特征,最后融合。这样既能保证效果,又能控制模型复杂度。”
他在纸上写下几个公式和架构图。展博看得如痴如醉,眼镜后面的眼睛越来越亮。
“还有这里,”乔卫东又指向另一段代码,“负采样策略可以优化。你们现在用的是随机负采样,效果不稳定。可以试试基于流行度的负采样,或者更高级的,对抗式负采样。”
“对抗式?”展博完全没听过这个词。
“简单说,就是用一个生成器来产生‘难负例’。”乔卫东又画了个图,“这样模型能学到更有区分度的特征。”
展博彻底服了。他从硅谷回来,自以为算是技术前沿的人,但乔卫东说的这些,有些他都没听过!
“乔先生,您……您这些是从哪儿学的?”他结结巴巴地问。
“多看论文,多实践。”乔卫东轻描淡写,“ai发展很快,每天都有新东西。不过万变不离其宗,底层逻辑是一样的。”
他喝了口茶,继续说:“另外,我觉得你们的方向可以调整一下。”
“怎么调整?”
“现在大家都在做精排,就是最后那一步的排序模型。”乔卫东说,“但真正决定推荐效果的,往往是前面的召回阶段。如果召回池里没有好东西,再怎么精排也排不出花来。”
展博猛点头:“对对对!我们cto也说过这话!但召回怎么做?我们试过itemcf、usercf,效果都一般……”
“试试多通道召回。”乔卫东在纸上又画,“一条通道做协同过滤,一条通道做内容匹配,一条通道做热点补充,还有一条……做探索。最后用一个简单的模型做融合,把各通道的结果汇总到召回池里。”
他边说边写,思路清晰得像在说今天吃什么。展博赶紧打开笔记本,疯狂记录,生怕漏掉一个字。
“探索通道很重要。”乔卫东强调,“现在的推荐系统太‘功利’了,只推用户可能点击的,导致信息茧房越来越严重。得适当推一些用户可能喜欢但没接触过的内容,打破茧房。”
展博停下笔,若有所思:“这个思路……我们产品经理肯定喜欢。他一直说要增加推荐的多样性……”
“技术要为产品服务。”乔卫东说,“但也要有前瞻性。我猜,你们接下来应该会做多模态推荐吧?把图像、文本、视频都融合进来。”
展博瞪大眼睛:“您怎么知道?这是我们下一个季度的规划!”
“趋势而已。”乔卫东笑,“现在纯文本的推荐已经到瓶颈了,多模态是必然方向。不过要做好不容易,跨模态对齐是个大问题。”
“对对对!”展博激动起来,“我们就在为这个头疼!图像特征和文本特征怎么对齐?用什么损失函数?”
“可以试试clip那套思路。”乔卫东说,“用对比学习,拉近相关图像和文本的距离,推开不相关的。不过具体到推荐场景,得做一些调整……”
他又讲了十几分钟,从技术细节讲到工程实践,从算法优化讲到系统架构。展博听得如痴如醉,笔记本上记满了密密麻麻的要点。
讲完后,乔卫东问:“听懂了吗?”
展博用力点头:“听懂了!而且……我有种醍醐灌顶的感觉!乔先生,您太厉害了!这些思路,比我们公司那些资深架构师都超前!”
“只是站在巨人的肩膀上。”乔卫东谦虚地说。
“不!您就是巨人!”展博站起来,深深鞠躬,“谢谢您!真的谢谢您!这些建议,够我消化一个月了!”
“能帮上忙就好。”乔卫东看了眼时间,“快中午了,你该吃饭了。”
“我不饿!我要把这些思路整理出来,马上开始改代码!”展博抱着电脑,眼睛放光,“乔先生,我能……我能经常来请教您吗?”
“随时欢迎。”乔卫东微笑。
展博千恩万谢地走了。回到3601时,胡一菲正准备叫他吃饭。
“展博,你跑哪儿去了?一上午不见人。”
“姐!我遇到高人了!”展博激动地说,“乔先生!他太厉害了!他给我讲的推荐系统思路,比我在硅谷听的顶尖讲座都牛!”
胡一菲挑眉:“乔老师还懂这个?”