![4d404121ae6f364711e004b509716de7.png](https://i-blog.csdnimg.cn/blog_migrate/142509ff32cbd30c6ba1c239fd6e1b52.jpeg)
1 多目标排序
1.1 定义
多目标排序就是有多个目标函数,找到一种排序方法使得多个目标都达到整体最优。
1.2 为什么需要多目标
推荐系统中的显示反馈较少,因为大多数用户反馈都不是直接评分。推荐系统大多数基于隐式反馈来推荐,比如说用户的点击、收藏、分享、观看时长、购买等,在评估用户满意度的时候会存在一些认知偏差,主要包括目标偏差、物品偏差、用户偏差:
- 目标偏差:目标不同,偏好程度不同。比如电商场景中,购买这个行为表达的偏好高于收藏;比如视频的场景中,观看时长超过20s这个行为表达的偏好高于点击。
- 物品偏差:被推荐物品需要多个衡量目标,单个目标衡量不全面。短视频推荐,如果仅以视频播放完成率为目标,就可能在视频中留下悬念,需要观看下一个,让用户多操作,用户会不满意;比如信息流推荐,如果仅以点击率为目标,就可能被标题党钻了空子;如果仅以转发分享为目标,就可能存在转发保平安之类的内容。
- 用户偏差:不同用户表达满意的方式不同。比如知乎上观看文章,有的用户喜欢点赞,有的用户喜欢收藏。
1.3 目的
通过一些方法来解决目标偏差、物品偏差和用户偏差的问题,完成多目标的优化。比如说,电商场景,希望能够在优化GMV(付款+未付款)的基础上提高点击率;信息流场景,希望在提高用户点击率的基础上提高用户关注,点赞,评论等行为。因此推荐系统做到后期,往往会向多目标学习演化,承担起更多的业务目标,以提高用户的粘性。
关于单个目标性能提升参考:
奔奔:推荐算法注意点和DeepFM工程化实现zhuanlan.zhihu.com![27ca04d0a4b686ac63f16f24d28dbe97.png](https://i-blog.csdnimg.cn/blog_migrate/ae4d8f5f548aca0b9ef3e997c6c6b7ce.jpeg)
算法原理参考:
奔奔:深入浅出DeepFMzhuanlan.zhihu.com![c3d9cb500cbb578c8ebaf45872fab0a9.png](https://i-blog.csdnimg.cn/blog_migrate/085e3ae81fc26355957cafdd2b3c6b3c.jpeg)
2 多目标排序问题的解决方案
多目标排序问题的解决方案,大概有以下四种:通过改变样本权重、多模型分数融合、排序学习(Learning To Rank,LTR)、多任务学习(Multi-Task Learning,MTL)。
2.1 通过样本权重进行多目标优化
如果主目标是点击率,分享功能是我们希望提高的功能。那么点击和分享都是正样本(分享是点击行为的延续),分享的样本可以设置更高的样本权重。模型训练在计算梯度更新参数时,梯度要乘以权重,对样本权重大的样本给予更大的权重。
因此,样本权重大的样本,如果预测错误就会带来更大的损失。通过这种方法能够在优化某个目标(点击率)的基础上,优化其他目标(分享率)。在实际AB测试的过程中会发现,通过调整样本权重的这样的方法,原始目标A会受到一定的损失以换取新增加目标B的增长,实现初级的多目标优化。
优点:模型简单,通过梯度乘以样本权重设计目标函数,不需要额外架构支持,没有增加算法时间复杂度。
缺点:没有对多目标进行建模,而是将多个目标折算成同一个目标。样本的折算权重需要根据AB测试才能确定。比如认为一次分享算两次点击;在视频中停留了2min等价于3次对视频的点击行为等,这里面的数字需要根据线上评价指最优,测试出来的。
2.2 多模型分数融合
多模型分数融合就是每个优化目标都由独立的模型来预测一个分数,最后将这些分数采用加权的方式进行融合。如下图,每个模型都有一个得分,通过模型的权重来设计一个最终的得分,完成多目标优化。
![53fd316cb8f1034b90ac11f83d2a4e57.png](https://i-blog.csdnimg.cn/blog_migrate/5cab60836c7b0431aad31bf7a2f08e9c.jpeg)
当然,融合的函数可以有很多,比如连乘或者指数相关的函数,可以根据自己面临的场景不断去探索。下面列举一个电商的例子。
2.2.1 电商场景
![f423ee7ff42e3b32229d44ef7af752ab.png](https://i-blog.csdnimg.cn/blog_migrate/1607eae8f42d23ef3412e4d55a7ad1dd.jpeg)
经典推荐系统包括召回、排序、重排序的阶段。上图展示了整个大体的流程。图中将召回的候选集,通过参数服务器和数据库中的特征一起去预测各个指标的得分(排序阶段)。在重排序阶段,将排序阶段传递来的CTR、CVR、stay等分数进行融合,最后得分计算公式如下:
根据最终的得分,推荐给用户合适的商品。
优点:模型简单
缺点:
- 线上服务需要有额外的时间开销,需要将多个模型预测的结果组合。
- 不同目标难以量化评估重要性。
- 样本部分特征稀疏,模型准确率低。
- 模型融合的超参难以学习。
那么如何更好地确定超参呢?
实际应用中,通过AB测试不断尝试,以线下和