redhat9i 发表于 2022-4-22 17:12

推荐系统多目标优化专题(2)—融合公式设计思路

前文我们介绍了推荐系统的基本知识:为了建模用户的满意度,我们会对多个隐式、显式目标进行预估,如点击率、有效播放率、播放时长、点赞率、关注率等。最终用统一的融合公式将预估值合成一个排序分,对视频排序。
本文是多目标优化专题的第二章,从业界的一些分享里带大家一起看看如何设计融合公式的形式。
(1)iwtbs:推荐系统多目标优化专题(1)——深入理解推荐系统
(2)融合公式的设计思路:融合公式有哪些形式,分别有什么物理意义和优劣
(3)时长预估模型:对于时长等回归类目标,有哪些常用的建模方式
(4)融合公式的自动搜参:简述在模型训练和线上推理过程中,如何进行参数的自动调优
(5)全链路优化:对于复杂的多目标优化场景,如何全链路优化提高最终的推荐效果
注:本文内容均源于公开分享,基于我个人的理解进行解读。如果有其他公开的资料or想法欢迎讨论,但鉴于保密原则自家或其他家更优的未公开方案均不交流。
PS:正值金三银四,如果大家对出海业务感兴趣,想在全球最好的业务场景之一大展拳脚,无论是对基础模型还是直播电商等业务感兴趣,都欢迎私聊我内推到tiktok)
1.几个常见公式形式

1.1 线性加法

在多目标排序在快手短视频推荐中的实践中,提出了最常见的加法融合公式,基本形式如下


这个加法的形式应该是最容易想到的,优点是目标权重就代表了在融合公式中的重要度,我们认为哪个目标应该更重要(或者想涨哪个指标)调大就完事。
当然缺点非常明显,这个系数对于所有用户都是一样的比例。比如点赞这种稀疏目标,理论上更合理的是让预估值高的权重更重一些,预估值低的就权重低一些,但上述形式显然做不到。
1.2 指数乘法



这个公式形式是从腾讯PLE论文里截取的,和上述加法刚好优缺点互换。我们先看一下单独一个目标的曲线


其中指数3是预估值越大,单目标在融合公式的影响力也越强;(比如弹幕这种目标,理论上不应该在最后打分占特别大的权重,但是对于那些喜欢发弹幕的用户,不妨让他们的弹幕目标影响力大一些)
指数0.3则是预估值越大,单目标在融合公式的影响力进行抑制(通俗来讲就是有没有很重要,多还是超级多不关心)
此时我们不再能调大单一目标整体的影响力了。如果简单的给单一目标乘系数,其实是对所有目标都生效了(等价于融合公式整体乘系数)
要注意由于预估分可能是0、负数,这个形式可能会出现错误的结果。
1.3 带权指数加法

一矢多穿:多目标排序在爱奇艺短视频推荐中的应用 中提出了下面两种公式形式,也是我所知道的业界用的比较多的。


显然这个形式解决了上述提到了几个问题

[*]通过factor调节单目标整体的影响力
[*]通过beta基于预估分数调节单目标影响力,即融合公式对于不同用户是有一定个性化的
[*]alpfa起到一定兜底作用,同时保证factor只调大单一目标权重,而不是作用于融合公式整体
缺点是,加法形式特别容易被最大的目标主导,而稀疏目标我们一般都给了比较大的factor。比如正常点击 时长 点赞的分数应该是500,600,20,但是有些点赞狂魔用户的点赞分数是几千,相当于最终item排序全看点赞了,这显然是有问题的。
有时上线检查不严格,业务同学加目标的时候不规范,可能调调参数大盘正向就推全了,也完全不看单目标的分布,就更容易出现虽然均值不大,但是pct95以上的值巨大的情况。
1.4 带权指数乘法



爱奇艺公开分享的公式4是有问题的,因为factor依然是作用于全体目标,完全起不到提高单一目标权重的效果,正确的形式应该是 https://www.zhihu.com/equation?tex=%28%5Calpha%2Bfactor+%2A+score%29%5E%5Cbeta ,同时文章里还说
在业务的目标较少时,通过加法方式融合新增目标可以短期内快速获得收益。但随着目标逐渐增多时,加法的融合排序能力会逐渐受限。主要包括:
(1)对于新增目标,乘法融合具有一定的目标独立性,无需考虑旧目标集的值域分布;
(2)随着目标逐渐增多,加法融合会逐步弱化各子目标的重要性影响。其实是站不住脚的,因为在乘法融合公式下施加一个对数变换,就能把它等价地变回加法融合公式。对于当前乘法融合公式,整体求对数就会变成如下形式:

https://www.zhihu.com/equation?tex=log%28%28a1+%2B+f1%2Ax1%29%5E%7Bb1%7D+%2A%28a2+%2B+f2%2Ax2%29%5E%7Bb2%7D+%29+%3D+b1%2Alog%28a1+%2B+f1%2Ax1%29+%2B+b2%2Alog%28a2+%2B+f2%2Ax2%29
2. 总结与深入分析

2.1乘法和加法

那么乘法和加法到底区别在哪里呢?我们不妨将公式4 log后和公式1作比较。分析单一目标的函数图,x较小时蓝线大,x较大时蓝线小


所以对于加法,有一个目标大的就容易排在前面,点赞狂魔能看到更多点赞的内容,AB实验中会看到用户行为率上升 ;
而对于乘法,鼓励的是各个目标都不能太差,因此即使是点赞狂魔,也需要考虑到其他目标的影响,AB实验中会看到行为渗透的上升。
2.2 如何调参

首先这里我们不介绍自动调参or黑盒优化算法,只阐述不同变量的物理意义。


对于 https://www.zhihu.com/equation?tex=%281%2B%5Cbeta+x%29%5E%7B%5Calpha%7D 来说

[*] 改变整个目标的影响力,越大则的影响越强(无论是扩大还是抑制)
[*] 一定程度上起到了个性化目标影响力的作用
2.3 未来展望

首先以上四种公式都只是基础形式,当我们做业务时要结合具体场景来设计公式,比如京东的公式有三个目标,点击率是基础,avr和cvr算是点击后的后续价值,所以可以合在一起


再来个别人之前问过的思考题,可以评论区留言

IT圈老男孩1 发表于 2022-4-22 17:18

高效啊!

TheLudGamer 发表于 2022-4-22 17:23

高效啊!

DungDaj 发表于 2022-4-22 17:25

高效啊!

redhat9i 发表于 2022-4-22 17:26

3好,因为1与2有信息损失

IT圈老男孩1 发表于 2022-4-22 17:35

有没试过值和序融合一起

闲鱼技术01 发表于 2022-4-22 17:42

“理论上更合理的是让预估值高的权重更重一些,预估值低的就权重低一些“? 这个不是很理解啊,预估值高或者低与这个任务自身的正负样本比例有关吧

IT圈老男孩1 发表于 2022-4-22 17:50

和用户行为喜好也有关系,比如新用户互动行为会高点

redhat9i 发表于 2022-4-22 17:53

1.3 带权指数加法解决的问题三。“alpfa起到一定兜底作用,同时保证factor只调大单一目标权重,而不是作用于融合公式整体“ 中“不是作用于融合公式整体”怎么理解。

加法中factor不会作用于公式整体吧

RedZero9 发表于 2022-4-22 17:57

期待下一篇[赞同][赞同]
页: [1] 2
查看完整版本: 推荐系统多目标优化专题(2)—融合公式设计思路