找回密码
 立即注册
查看: 363|回复: 8

推荐系统多目标优化专题(1)——深入理解推荐系统

[复制链接]
发表于 2022-3-11 07:31 | 显示全部楼层 |阅读模式
最近有同学问我:”像抖音快手这种信息流场景,怎么判断视频的排序呢,只依赖ctr应该不够吧,是不是还要考虑时长?怎么把这些目标合在一起考虑呢“

其实对于推荐系统的建模目标,我还见过很多类似问题,比如:

  • 像今日头条这种同时有图文、视频的场景,它们如何进行比对呢,建模目标有什么差别?
  • 抖音和西瓜视频虽然都是视频平台,但是对于时长目标的重视程度是否不同,毕竟中视频时长本身就长?
  • 如果时长预估越高视频排越前面,一些十几秒的短视频是不是即使质量再高也不认可呀,那是不是应该预估播放进度?
  • 我怎么知道是点击重要、时长重要还是互动重要呀,有什么指标可以评估吗?
  • 这么多目标,融合公式怎么定呀,加法还是乘法,系数听老板拍板吗?

鉴于内容太多会分成几篇文章来依次介绍(也push一下自己的拖延症),有感兴趣的话题可关注追更(有其他想了解的主题也欢迎公众号或知乎私信留言)
注:所有算法相关的内容,均来源于已有的公开分享或论文,基于我个人的理解进行解读。任何我所知道的自家或其他家更先进的未公开解决方案由于保密性均不可能在本系列出现,比如时长建模、自动搜参等我只会摘取我能找到的公开内容,不代表这就是最优的方案)

(1)深入理解推荐系统:从宏观角度带你认识推荐算法的目的与价值
(2)融合公式的设计思路:融合公式有哪些形式,分别有什么物理意义和优劣
(3)时长预估模型:对于时长等回归类目标,有哪些常用的建模方式
(4)融合公式的自动搜参:简述在模型训练和线上推理过程中,如何进行参数的自动调优
(5)全链路优化:对于复杂的多目标优化场景,如何全链路优化提高最终的推荐效果

一、用户满意度建模  


推荐的终极优化目标是优化【用户满意度】,但这是非常体感的一件事,难以通过指标来定量分析。但根据“口嫌体正直”的道理,对于信息流这种非工具类产品,用户的整体的DAU基本可以反映用户满意度。更深入地解读一下:
(1)为什么是非工具类产品?
因为像抖音、头条这种产品你会经常刷,一般来说推荐越满意就会越经常打开。而像支付、打卡等软件主要提供服务,更应该关注解决问题的效率和便捷性。
(2)为什么不是用户消费时长?

  • 假如把线上一些生态、EE类的策略全干掉,通过AB实验看大概率用户短期内消费时长是涨的,因为用户可以疯狂消费一些自己当下满意的内容,但是拉长时间用户会发现“怎么永远都推这些内容”,就流失掉了。
  • 那有没有拉长时间看时长和满意度依然不一致的情况呢?比如某个迭代对其中部分人特别友好,而对另一部分人特别劝退,最终AB实验拉长大概率是实验组:进组用户数变少+留存率高+平均消费时长高+总消费时长高/低——>最后DAU掉了然后股价掉了(这个例子只是说明大盘视角的满意度和时长不完全一致,对于第一部分人确实更满意了,要如何找到两部分人都找到满意的各自方案就是另一个问题了)
(3)为什么要加个基本?

  • 疯狂地发push一定可以提高DAU,但是很多人压根不会消费,太过分还可能导致卸载。
  • 视频号加个小红点,DAU确实很高,但是有很多用户就是为了消除红点才点进去,连一个下滑都没有。
  • 把广告全干掉,DAU也能涨,但这种满意度跟算法没有关系,公司也不可能不投放任何广告。
  • 短期内ug拉新量提高,DAU肯定变高,但是留存很低,用户满意度也不一定更好。

    但总之,让更多的用户持续使用产品,提升用户留存是我们的首要目标,可是由于DAU难撼动且实验周期长,往往也会用消费时长来作为中间指标。在具体的排序建模过程,提升正向反馈,减少负向反馈,都是提升用户满意度的有效手段。
二、目标的内卷


在信息流推荐中,用户反馈一般分四类,都是可以建模的目标:   
1.隐式正反馈:点击、播放时长、有效播放、播放完成率、完播、复播等;
2.显示正反馈:一般是互动目标,如收藏、下载、关注、点赞,搜索,发表正向评论等;
3.隐式负反馈:如skip、卸载等;
4.显示负反馈:如dislike、负向评论、举报等

为了优化用户满意度,一般是提高正向反馈、减少负向反馈,提高用户体验。在召回、粗排、精排、重排几个环节联合优化,尤其是在排序阶段,将上述各种用户反馈的预估值融合成一个排序分,对视频排序。比如最简单的加法融合公式:




而我们平时在做AB实验时,我们会针对想优化的目标,设计合理的评估指标:比如优化点击,我们会建模ctr,评估指标是read/u;优化时长,我们会建模staytime,评估指标是staytime/u;优化点赞,我们会建模点赞率,评估指标是点赞用户渗透率+用户平均点赞数。

但是目标间可能会相互冲突,比如点击和时长往往是有兑换的。用户每天看1h抖音,可以是60个视频每个看1min,也可以是3个视频每个看20min。可以看到哪怕是两个最基本最重要的目标,都是需要仔细斟酌偏好的,比如read和staytime权重调的合理,能让用户变成看6个视频每个15min,用户在抖音花费的时间就从1h变成了1.5h。

因此各种目标的权重调整是非常重要的,我会在后面的【(4)融合公式的自动搜参】给大家介绍。

三、训练目标和线上评估的不一致


我们在训练模型时,一条样本一般包括feature和label两部分,比如用户A对于视频B的点击、时长、完播、互动等,这也是我们模型要预估的内容。
但是在做AB实验时我们观测的指标变成了用户A当天总点击量、总消费时长等,这和模型预估分是有diff的。比如时长预估分较高的一般是视频本身时长就比较长的,而这种内容并不一定能带来用户总消费时长的增加。同样,如果完播率预估分较高的一般都是短视频,这也不等于用户总点击量变多。

那么能不能直接面向线上目标建模呢?
1.由于label从单个行为变成了当日总消费,那么样本回传的延迟至少是天级,这对于大部分ODL系统而言,效果一般是会变差的。
2.用户昨天在抖音看了50min,今天改变了推荐策略后用户1h看了40个视频,如果以当日总时长为目标建模则这40个视频的label都是1h,可是这40个视频用一样的label显然不合理,如何差别归因呢?

因此大多数的公司,还是采用单条样本目标预估分来构建融合公式,以期望能间接优化线上目标。而当目标足够多的情况下,总能比单个目标更逼近我们想要的效果。

四、如何正确评估迭代的效果


其实这个问题就是如何在工作中高效率高质量的做推荐实验,具体方法则需根据迭代的内容、实验平台的基建、业务的目标来case by case谈,这里只简单介绍可能忽略的两个点
1.短期没收益,长期有收益
像EE这种探索策略,短期可能是波动甚至是负向的,但是长期来看可能会正向。所以假如实验预期是长期能拿到收益的(比如大多生态类的),便不要着急下结论,尽量拉长时间来看。
2.AB和推全不一致
很多时间AB实验的结论和推全结论是不一致的,这并不是时间原因,而是某些策略就是会有这样的现象。比如资源侧实验AB时单组承担过多压力而推全不存在;或者增加一个稀疏目标,当推全后会影响label分布等。前者就需要实验机制的优化,后者则需要留反转实验长期观测。

至于其他的一些这里由于篇幅不进行阐述,比如:如何进行显著性检验,如何消除分流不均的preaa误差,离线有收益线上无收益有哪些原因,实验效果不符合预期怎么debug,如何设计指标等

五、思考题


1.能不能举一个例子,开AB实验不管开多久实验组都是负向的,而推全后AA看却是正向的?
2.站在推荐算法工程师角度,除了优化模型和融合公式参数外,还能做哪些事情影响DAU?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2022-3-11 07:38 | 显示全部楼层
凯哥牛
发表于 2022-3-11 07:41 | 显示全部楼层
凯哥牛
发表于 2022-3-11 07:46 | 显示全部楼层
能谈谈 分流不均的preaa误差  和 反转实验吗[飙泪笑][飙泪笑], 这两个好像是一回事?
发表于 2022-3-11 07:47 | 显示全部楼层
反转是看ab和推全是否一致,以及有问题的时候可以根据时间点追溯。 preaa是ab实验的时候能不能拿到置信的结论,防止分流不均拿到错误结论
发表于 2022-3-11 07:54 | 显示全部楼层
请问做AB实验时,实验组有增益。推全量后,实验组反而不行了,这时候反转该怎么做了?
发表于 2022-3-11 08:00 | 显示全部楼层
催更催更
发表于 2022-3-11 08:03 | 显示全部楼层
得看具体是啥策略了,不同情况原因不一样
发表于 2022-3-11 08:11 | 显示全部楼层
催更!!读完有收获!
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 17:37 , Processed in 0.118733 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表