推荐系统金字塔

本文同样适合没有技术背景的朋友阅读 遥想若干年前,今日头条和后来的抖音横空出世的时候,到处都可以看到关于他们推荐算法的讨论,个性化推荐对业务的重要性也被捧上了天。最近一年多,也算是亲身参与了一些推荐相关的项目,在实操之后,对这件事情也有一些自己的理解。 开门见山,我认为好的推荐系统,或者说个性化系统有三层特点,从底向上分别是: 有丰富的让用户感兴趣的物料 用户能够发现并表达兴趣 用户表达兴趣后能推荐高相关性的物料 就像一作金字塔。 1 首先是【有丰富的让用户感兴趣的物料】,这实际上是所有推荐系统的基础:物料要丰富且高质量。物料就是要推荐的东西,电商应用里是商品,内容应用里视频、图文,社区应用是达人,各不相同。如果物料不丰富,那实际上没有推荐的必要,小卖部一般没有导购,有啥东西一目了然。物料如果质量不高,那后面的工作也很难做,用户很难在这种系统中留存下来,也就会导致推荐系统的另一个重要燃料用户行为数据的不足。这块一般和算法没什么关系,但实际确是重中之重。大的生态系统治理其实更像经济学问题,解决的是供给和需求的关系。 {: .align-center style=“width:80%”} 京东平台在2015年就有两千多万件商品了,为推荐提供了舞台 {: .align-caption style=“text-align:center;font-size:smaller”} 2 接下来是【用户能够发现并表达兴趣】,这层开始跟算法有了一些关系,但更多还是通过产品和工程来解决。换比较专业的说法就是怎么做冷启动和试探。最理想的方法是把冷启动转变成热启动,例如说一个头条老用户来看抖音,好了,你在头条喜欢看啥我先给你看啥,大概率会比随机给你看点东西好。所以字节的产品矩阵在这方面就可以发挥很大的作用。但一般公司没这条件,那就只好尽量去挖可以用的先验信号,比如用户的地点、安装的app,甚至去爬其他的社交网络平台。 如果这条路走不通,那就只好试探了,产品没做好的话大概率是自身生态里什么热门就给你试探什么,这里总归是要碰点壁的。所以大部分产品上来会让你选一下你感兴趣的话题或者分类,作为用户,这时候可以直接点告诉他们,让这些系统更好地为自己服务。 {: .align-center style=“width:50%”} 常见的兴趣选择界面,让用户直接表达兴趣,顺利留存下来 {: .align-caption style=“text-align:center;font-size:smaller”} 还有些重要的用户表达兴趣的渠道,例如搜索。当一个系统的物料特别丰富,例如淘宝,什么东西都有,此时就很难试探,因为这个试探空间太大了。但好在买东西通常有目的性的,通常电商平台有50%的成交是搜索贡献的,用户会通过搜索功能来告诉平台自己想要什么。 所以一个好产品一定要打通各种用户表达兴趣的渠道,尽量避免瞎猜。 3 最后才是【用户表达兴趣后能推荐高相关性的物料】,也就是常说的推荐算法解决的问题。作为塔尖,它似乎吸引了最多的目光。举刚才搜索的例子,用户搜索“杯子”,ta已经表达了兴趣,你如果给他展示一堆碗,那肯定无法促成消费。 这方面算法很多,比较常见的比如各种协同滤波(买了杯子的人还会买啥?)以及现在流行的各种序列建模(每个月都买米这个月应该也会买米)等等。当系统往大了发展,我感觉工程的重要性又会超过算法:这么多的用户行为怎么存?这么多的训练数据怎么跑?虽然每年新结构、新网络层出不穷,但实际上常用的还是那几个经典的。以Criteo数据集为例,多年下来各种模型迭代导致的auc提升不到3个百分点(但不是说3%不重要,以大公司的体量还是很可观的)。但实际上推荐系统的发展早已不是这个数据集可以追踪的了,因为各个大公司特征、用户的规模早就不是这样了。 {: .align-center style=“width:80%”} Criteo数据集近年来的auc指标 {: .align-caption style=“text-align:center;font-size:smaller”} 前不久Tik Tok放出了他们推荐系统的论文,大量篇幅是在讲基础设施pipeline,模型部分这是个多年前的DeepFM。 小结 我感觉三个层次大致对应了【生意】-【产品】-【技术】,在这个互联网纷纷裁员的寒冬回过头看,确实这三个层次都出现了不同程度的停滞。不过一个时代过去总会有一个新的时代来临,技术应该是这三个里面停滞现象比较低的,相信在不久的将来就会有新的增长点。 以上就是我的一些想法,欢迎大家讨论。

November 16, 2022 · 1 min · Yuanhao