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)认为如果两个商品的相似性过高,用户可能点击一个之后对另一个的点击需求就会下降。
通过构建矩阵来计算每一个子集的行列式值,该值可以理解为用户对推荐列表的满意程度,受到相关性和多样性两个因素的影响。
矩阵可以表示为
L
Y
=
(
L
i
i
L
i
j
L
j
i
L
j
j
)
L_Y = \begin{pmatrix} L_{ii} & L_{ij} \\ L_{ji} & L_{jj} \\ \end{pmatrix}
LY=(LiiLjiLijLjj)
矩阵元素构建如下:
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),更多干货实践,欢迎交流分享~