独家干货——谈谈我眼中的“推荐算法”


微信公众号:推荐广告算法小木屋
作者:小凯

推荐是要做什么事情?

很多人会有一个误区,即推荐就是CTR预估,这也是很多博客/模型/比赛给大家带来的误区,我们今天详细聊聊工业界的推荐。

用一句话来解释推荐的本质:在候选池集合中,挑选出用户最满意的一部分物料展现给用户。

虽然看起来很简单,但是实际上这句话就可以指导我们做任何事情。大家可以看到我有两个关键词加粗了,接下来我们详细来聊聊。

  1. 第一点是候选池,即要做好推荐这件事,最最根本的不是预估模型,而是你是否有足够优质的候选物料。对电商而言,是多样/高质/高性价比的商品;对抖音而言,是好玩有趣的视频;对网易云而言,是丰富的歌曲库等等。而这也是最容易忽略的部分,以网易云为例,如果没有歌曲的版权,再好的推荐算法又有什么用呢。可能有人会说,那买版权就好啊,跟推荐算法工程师有什么关系?
    当然有关系了,以抖音为例。抖音是ugc非常强的一款产品,候选池数量是否足够多,视频质量是否足够好直接影响推荐效果,所以我们要用算法来服务作者。一方面我们要在作者侧做非常多的数据分析和冷启动模型,试想如果冷启动做得不好,作者发文浏览量太低,根本就不会有兴趣发视频,即设计算法提高作品冷启的成功率->让高质内容迅速高热。另一方面,算法是否可以指导用户发文呢,比如给一位健身的人推荐了点赞量很多的‘双力臂’的短视频,用户看到后发现这个自己也能做啊,可能自己也会尝试拍一下视频并上传,即设计一个优雅的算法/策略提高用户->作者的转化。为了做好作者侧的事情,还有内容理解、作者等级划分等,每一个点都有非常多的模型和策略可以尝试。

  2. 第二点是最满意。很多公司都会把重心放在ctr预估模型auc提升上,但这其实并不正确,因为满意度其实特别的抽象,点击并不意味着满意。举一个例子,用户在西瓜视频上看到标题党+有趣的封面很大概率点进去,但是进去就发现自己被骗了,10min的视频看了1min就退了,很明显虽然用户有点击行为,但是这次行为并不满意。那么用停留时间如何呢,如果视频用户看到了最后,总能说明很满意了吧。不好意思这也不对,比如有的视频评论第一条是“我以为***,结局把我脸打烂了“,看到这个评论很多用户都会坚持看完,但是看完之后觉得这视频拍的真烂,然后点了一个举报,虽然staytime很高,但是明显用户也不满意。
    所以,我一直觉得推荐算法工程师比起模型能力,更重要的是业务sense和目标拆解能力。以快手为例,团队的终极目标不是ctr也不是staytime,而是DAU。DAU是最能体现用户满意度的指标,但是没有任何一个人可以对DAU建模,因此要拆解成多个可以量化的中期目标(比如留存)和短期目标(比如ctr)。问题的拆解需要业务sense,短期目标则依赖于模型+特征,多个目标如何加权组合又涉及搜参,可做的事情太多了。

怎么评估推荐算法的效果

这个问题非常有趣也非常核心,主要从三个方面谈谈。

  1. 用什么评估
    答案是指标,推荐其实是很虚的一件事,我们组里经常会让大家把自己加到实验组里看看推荐的效果,对我来说可能很难判定到底这次推荐的和上次比哪个好,实在太主观了。所以指标是必须的,指标主要有离线和线上两部分,可以非常明确的告诉大家,线上就是一切!无论你离线多牛逼,一切的收益都只看线上的效果,因此精细化设计的指标+完善的实验平台就非常重要。学生最大的误区可能是自己看离线auc提升了就觉得很牛逼,接着就想着发论文了。但是工作中,尤其是推荐算法,应该是离线提升->线上开实验(如何设计实验和指标博大精深)->AB(AABB)结果->反转实验等后续实验。只有一套流程仔细思考并且都有效果,才能算是一个成功的模型策略。
  2. 指标提升就结束了吗
    还差得很远,我越来越发现,一个优秀的业界推荐算法工程师,最核心的竞争力绝对不是做一个模型/策略提升指标,而是无论实验成功与否,都能够分析深层的原因,从实验中发掘人性的特点,并分析找到通用化的解决方案。而这一方面是工作中要重视,另一方面是多看别人的分析角度。这一点真的给字节点赞,我实习过5家公司,这是第一家每周都做公开launch review的公司,分析收益的真实来源、流量的去向、多出少出的区别、目标用户思考、todo分析的非常深入
  3. 指标提升就一定对吗也不一定。其实在上文中我们提到了,虽然每个产品由于其定位不同可能略有差异,但总体上我们可以认为终极目标是dau。为什么我说指标提升可能是错误的呢,我认为有两个主要原因。第一,dau是一个非常长期的目标,但是我们的实验一定是短期指标,而由于dau拆解并不一定正确,短期指标的提升并不一定带来长期dau的提升。比如标题党多了,虽然短期ctr指标上涨,但是长期来看留存一定会掉,因此我们要做比如色情识别、标题党打压等工作,虽然指标降了,但整体一定是好的。第二,为了提升产品的天花板,可能要做一些牺牲指标,但是长期来看有收益的事情。比如最早快手就主打三四线小城市,产品设计和内容非常low,但是三四线一定是有用户量天花板的,而在冲击一二线大城市的过程中,由于用户分布和喜好的不同,为了照顾一二线人群,快手商品池一定会从低俗走向有趣和高端,算法也需要改变。这样的话,短期内所有实验可能都会出现掉留存、CTR等现象,但是长期来看是牺牲以前小部分用户,换取更大的机会。

模型解决不了的,上规则不就好了?

先说结论:不行!!!
首先我们要认识到,人的逻辑是有局限和先验的,而这并不一定正确。如果数据量足够,我们要相信推荐系统一定比人推荐的准。但是实际上可能有很多的bad case,对于这种情况我们要详细的分析代码问题,入职之后主管跟我介绍过火山、西瓜近两年来一些典型的bad case是如何解决的,最终都是可以归因到代码/模型/数据上(当然有能力归因出来,都是大佬)

那策略、boost、强插之类的做法有什么问题呢?短期来看就是打补丁,但是长期来看有以下问题:

  • 通常补丁没有人维护
  • 会带来系统的复杂度,提高代码bug的几率
  • 带来未知的巨大隐患

那为什么这么多公司都要加boost、强插、规则呢。我举个例子,有一个自然人注册了多个账号在我们的平台上发文,我们当然希望可以打击这种行为,但是实际上他发的文章也许就是用户爱看的,那么推荐系统也想把它推出来,这时候从产品战略角度而言就需要我们deboost。

即总结出来就是:我们希望加入的规则,并不是自作聪明教推荐系统怎么推的准。而是像这个例子中所展示的,从内容生态、冷启动、产品业务角度给予一定的扶持/打压,这才是规则的正确使用方法。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值