文章目录

  • 1 引言
  • 2 Exploitation
    • 2.1 bias
    • 2.2解决方案
  • 3 Exploration
  • 4 总结

1 引言

推荐系统的目标主要包含两个方面:Exploitation 和 Exploration

在Exploitation中最重要的是 Relevance ( 相关性 ) 的计算,其根本思想是根据用户浏览、观看和收藏的内容等用户行为数据推测该用户可能采取的行动。常见的推荐算法大多是基于针对该目标的优化而展开的。
然而用户行为数据在现实中很可能过少、不足以全面地体现用户的兴趣。这一现象在冷启动等场景中很常见。此时推荐系统还有责任挖掘用户尚未表现出的兴趣,并且避免由于现有行为数据过少而导致推送内容相似性过高的情况。这就需要引入Exploration。

2 Exploitation

排序环节中相关性探索目前主要以debias为主。

2.1 bias

引起模型bias的原因很多,主要包括:

  • selection bias

    用户普遍倾向于自己喜欢或者讨厌的item进行评价,比如豆瓣评分。

  • exposure bias(sample selection bias)

    用户只能看到曝光的item并产生交互,但数据中没交互的item不代表用户不喜欢,可能是没曝光,这一点不好区分。

    • 1)推荐系统决定了展现哪些items给用户
    • 2)用户主动找到搜索找到感兴趣的项目
    • 3)用户自身的背景。朋友、地理位置等
    • 4)热门的items更容易被用户看到
  • conformity bias

    用户行为会受到他人影响,我们观测到的并不一定是用户真实偏好。
    用户偏向于和集体喜好一致,用户看到大众统计数据之前和之后,行为分布有很大不同。

  • position bias

    用户在不同位置上的交互倾向和点击偏好不同。

    用户趋向于选择排位靠前的 items,因此实际发生交互的 item 并不一定相关性很强。

    许多场景也倾向于将盈利高而用户兴趣较低的item放在前面吸引用户点击,以提升相关item的交互行为,如某度。

2.2解决方案

  • 1)特征输入

    以position bias为例,在训练时将 position 当作一个特征进行输入,在预测时以一个默认值进行输入,即假设所有item出现在同一位置预测点击率,对比用户偏好。

  • 2)bias Tower

    单独设置一个shallow tower(Youtube Recsys19)来预测偏置,输入的特征是一些与偏置相关的特征。在最后的 sigmoid 前,将shallow tower的输出结果加到logit中,线上预估时位置偏差特征取值为missing。

  • 3)贪婪算法

    在预测时将每个item在所有位置都预测一次,再通过贪婪算法寻求最优组合(Deep Position-wise Interaction Network,SIGIR 2021)

3 Exploration

此部分通常会被归为重排序阶段,目前以解决多样性为主。

行列式点过程DPP算法(Fast Greedy MAP Inference for Determinantal Point Process to Improve Recommendation Diversity,NIPS2018)认为如果两个商品的相似性过高,用户可能点击一个之后对另一个的点击需求就会下降。

通过构建矩阵来计算每一个子集的行列式值,该值可以理解为用户对推荐列表的满意程度,受到相关性和多样性两个因素的影响。

矩阵可以表示为
LY=(LiiLijLjiLjj)L_Y = \begin{pmatrix} L_{ii} & L_{ij} \\ L_{ji} & L_{jj} \\ \end{pmatrix} LY​=(Lii​Lji​​Lij​Ljj​​)
矩阵元素构建如下:

KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{L_{ii} = q_i^2…

KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{L_{ij} = {\alp…

其中KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{q_i}为相关性指标,KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{D_{ij}}为多样性指标。

KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{q_i \approx p(…

KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{D_{ij} = dista…

KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{\alpha、\sigma}为超参,当KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{\alpha}处于0到1之间且KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{\alpha}变小时,相当于我们整个行列式值被缩小,所以多样性变好;相反,KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{\alpha}大于1且变大时,多样性变差;alpha=1时为标准高斯径向基函数。

该问题的求解明显是个NP-hard问题,因此可用贪婪算法进行求解。

同时由于KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{L_Y}是半正定矩阵,因此可以通过矩阵分解得:

KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{L_Y=VV^T}

其中KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{V}是下三角矩阵。

通过以上优化,每次逐步增加一个item,进而获得最终的推荐列表,使得整体求解复杂度从KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{O(y^3)}成功降到了KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{O(y)},但实际计算中需保证KaTeX parse error: Undefined control sequence: \ce at position 1: \̲c̲e̲{L_Y}矩阵的半正定,论文中给出的方法是若L的特征值为负值,则将该值替换为0。具体求解过程如下:

盈利场景则会综合考虑每个item的盈利信息,具体可参考转转商业化OCPC产品护航之路

4 总结

bias类型很多,但是并不是所有的bias都需要去除,例如电商场景下的流行度这种本身就会影响用户点击的bias,但是这种分析方法能够引导我们更好的进行特征挖掘和目标优化;多样性表面上看会降低推荐列表的相关性,但从实验结果上来看,反倒会对业务指标有促进作用,说明用户对多样性还是有很大的需求。

转转研发中心及业界小伙伴们的技术学习交流平台,定期分享一线的实战经验及业界前沿的技术话题。
关注公众号「转转技术」(综合性)、「大转转FE」(专注于FE)、「转转QA」(专注于QA),更多干货实践,欢迎交流分享~

转转推荐场景EE题解决思路相关推荐

  1. 亿图图示MindMaster----问题解决思路展示

  2. 并发场景下MySQL存在的问题及解决思路

    转载自 并发场景下MySQL存在的问题及解决思路 目录 1.背景 2.表锁导致的慢查询的问题 3.线上修改表结构有哪些风险? 4.一个死锁问题的分析 5.锁等待问题的分析 6.小结 一.背景 对于数据 ...

  3. MySQL 在并发场景下的问题及解决思路

    1.背景 对于数据库系统来说在多用户并发条件下提高并发性的同时又要保证数据的一致性一直是数据库系统追求的目标,既要满足大量并发访问的需求又必须保证在此条件下数据的安全,为了满足这一目标大多数数据库通过 ...

  4. 购物篮推荐场景太复杂?没有商品相关性标签?看作者运用对比学习统统解决...

    ©PaperWeekly 原创 · 作者 | Yuqi Qin 学校 | 北京邮电大学 研究方向 | 推荐系统 本文关注的是对购物篮去噪.目的是:从历史购物篮序列中挑选出真正可信赖的相关商品,来对每个 ...

  5. MySQL在并发场景下的问题及解决思路

    MySQL在并发场景下的问题及解决思路 参考文章: (1)MySQL在并发场景下的问题及解决思路 (2)https://www.cnblogs.com/leefreeman/p/8286550.htm ...

  6. 并发问题的解决思路以及Go语言调度器工作原理

    上周的文章<Go并发编程里的数据竞争以及解决之道>最后留下了一个用并发解决的思考题,期间有几位同学留言说了自己的实现思路,也有两位直接私信发代码让我看的,非常感谢几位的积极参与.今天的文章 ...

  7. 图算法在转转推荐算法召回及粗排的实践

    文章目录 一.转转推荐算法介绍 1.1 什么是推荐系统? 1.2 转转推荐主要场景及流程 二.图算法原理介绍及转转实践 2.1 经典Graph Embedding方法:DeepWalk 2.2 结构性 ...

  8. 哎呀,你对高并发与多线程的解决思路了解的还挺深!

    一.大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战.如果Web系统不做针对性的优化,会轻而易举地陷入到异常状态.我们现在 ...

  9. 分布式环境下,互斥性与幂等性问题,分析与解决思路

    欢迎关注方志朋的博客,回复"666"获面试宝典 随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高并发访问.海量数据处理的场景也越来越多.如何用较低成本实 ...

最新文章

  1. 2021年大数据Spark(十三):Spark Core的RDD创建
  2. 美国微生物科学院22年院士公布!舒跃龙、黄力、卢洪洲、赵国屏!
  3. C#:异步编程和线程的使用(.NET 4.5 ),异步方法改为同步执行
  4. Linux笔记(更改权限chmod,更改所有组chown,umask,隐藏权限chattr)
  5. VTK:使用 vtkPolyData 结构为单元格分配颜色查找表用法实战
  6. Django框架创建
  7. 研究综述 | 知识图谱划分算法研究综述
  8. python2 安装 MySQL-python
  9. Linux学习之内核模块编程
  10. 面试题:有限制条件的求和
  11. linux之chroot命令
  12. Linux系统安全保护措施
  13. 光纤跳线接口_综合布线与弱电工程:跳线、尾纤、光纤接口,一文讲明白
  14. 免费网络视频监控软件cmsclient
  15. netflix自动续费关闭_如何禁用Netflix的自动播放预览
  16. 汇编8086复习——基础知识、指令汇总、上机实验踩坑
  17. 三星android5.0 蓝牙,蓝牙5.0手机有哪些 蓝牙5.0和4.2的区别是什么【区别介绍】
  18. 如何将Windows8系统的磁盘格式(GPT格式)转换成Windows 7系统的磁盘格式(MBR格式)
  19. 八分量基于区块链技术赋能我国工业互联网建设
  20. 13行MATLAB代码实现网络爬虫 爬取NASA画廊星图

热门文章

  1. Scikit-Learn与 TensorFlow 机器学习实用指南 中文PDF 免费领取
  2. easyconnect mac版下载地址
  3. 网易青媒第11期 | 第4节课笔记(内容创作:大学生如何拍摄第一支Vlog【video blog视频博客】 )
  4. 应用代码(3)——modbus模板(RTU消息帧)
  5. PNAS:网络连接的中断预示着中风后多种行为障碍
  6. 微信 android 闪退问题怎么解决方法,微信闪退怎么办 微信多开软件闪退解决方法...
  7. The style on this component requires your app theme to be Theme解决
  8. 瑜伽健身培训报名约课小程序开发制作介绍
  9. 人生太匆匆,若不偶尔停下来看看周围,你会错过很多风景
  10. php最后一片净土,世界上最后一片净土究竟在哪里