Recommendation Systems Basic Notes

Video 1: Recommendation Systems - Shusen Wang | Youtube
Video 2: Search Engine Technology - Shusen Wang | Youtube

召回02:Swing

  • 喜欢物品\(i_1\)的用户记作集合\(W_1\)
  • 喜欢物品\(i_2\)的用户记作集合\(W_2\)
  • 定义交集\(V = W_1 \cap W_2\)
  • 两个物品的相似度:
$sim(i_1,i_2) = \sum_{u_1 \in V} \sum_{u_2 \in V} \dfrac{1}{\alpha + overlap(u_1, u_2)}$

总结

  • Swing与ItemCF唯一的区别在于物品相似度
  • ItemCF:两个物品重合的用户比例高,则判定两个物品相似
  • Swing:额外考虑冲和的用户是否来自一个小圈子
    • 同时喜欢两个物品的用户记作集合\(V\)
    • 对于V中的用户\(u_1\)\(u_2\),重合度记作overlap(\(u_1\), \(u_2\))
    • 两个用户重合度大,则可能来自一个小圈子,权重降低

召回03:基于用户的协同过滤(UserCF)

对于上图而言,预估用户对候选物品的兴趣:\(0.9 \times 0 + 0.7 \times 1 + 0.7 \times 3 + 0.4 \times 0 = 2.8\)

用户的相似度

计算用户相似度

  • 用户\(u_1\)喜欢的物品记作集合\(J_1\)
  • 用户\(u_2\)喜欢的物品记作集合\(J_2\)
  • 定义交集\(I = J_1 \cap J_2\)
  • 两个物品的相似度:
$sim(u_1,u_2) = \dfrac{|I|}{\sqrt{|J_1| \cdot |J_2|}}$

降低热门物品的权重
平等地对待热门物品和冷门物品是不对的,例如在图书推荐中,Harry Potter是非常受欢迎的,大学教授和中学生都喜欢读

$sim(u_1,u_2) = \dfrac{\sum_{l\in I} 1}{\sqrt{|J_1| \cdot |J_2|}} = \dfrac{|I|}{\sqrt{|J_1| \cdot |J_2|}}$(不论冷门、热门,物品权重都是1)

优化分子:

$sim(u_1,u_2) = \dfrac{\sum_{l\in I} \frac{1}{\log(1+n_l)}}{\sqrt{|J_1| \cdot |J_2|}}$
* 喜欢物品 $l$ 的用户数量,反映物品的热门程度

3 精排

3.1 DeepFM

LR(Logistic Regression)

FM(Factorized Machine)

https://blog.csdn.net/sysu63/article/details/102678572
https://www.youtube.com/watch?v=exVPXVFPMDk&t=220s

Wide & Deep

https://blog.csdn.net/qq_39691463/article/details/121099460

DeepFM

https://blog.csdn.net/sinat_39620217/article/details/131183377

3.2 MTL

发展背景

在推荐领域,多目标已经成为了业界的主流,各大公司的各种业务场景,基本都是基于多目标的框架来搭建推荐系统。

多目标在最近几年成为主流,和推荐越做越精细有直接关系。在互联网行业的红利期,用户在移动端的消费处于高速增长期,即使推荐系统粗糙,各种业务指标也很容易因为用户的自然增长而提升,这时候业务的效果提升,虽然离不开推荐系统的优化,但用户消费自然高速增长因素也起着非常重要的作用。在这种增量阶段,从业者对推荐系统做一些显而易见的改进,就可以带来明显的提升效果,所以对推荐系统的精细化也没有那么迫切。

随着互联网的用户自然增长红利逐渐消失,各大公司的推荐业务也相继进入到存量阶段,不再像增量阶段那样,用户的自然增长可以给业务带来持续提升,而是进入到另一种状态:各大公司都在存量的用户中吸引他们在自己的业务场景中消费。从业者发现按照增量阶段的改进方法,已经很难带来明显提升,于是开始“卷”起来了,朝着对推荐系统的精细化方向进行迭代和优化。

在推荐系统向精细化方向发展的阶段,多目标的研究和应用随之增多,和推荐系统的精细化相辅相成,可能是精细化的需要促进了多目标的研究,也可能是多目标的研究促进了推荐系统精细化,两者类似“先有蛋还是先有鸡”的问题。总之多目标的研究和应用,在业界成熟落地,从技术上促进了推荐领域的发展。

为什么需要多目标

对推荐场景来说,好的生态,需要具备准确性、多样性、新颖性、惊喜性等多方面效果。(如何衡量一个推荐系统的好坏在《什么是好的推荐,重新认识AUC》也提到过一些。)要让推荐系统同时具备上述的多种效果,单目标很难做到。

在单目标的情况下,很可能出现某一方面效果还可以,而其它方面效果很差,实际情况往往是某一方面的效果也很难做好。比如以点击率为单目标建模进行推荐,则往往容易准确性有一定保证,而多样性、新颖性等效果差,甚至准确性也难以做好,因为点击率高的内容,存在标题党或者封面党的问题,这样的内容用户很可能会点击,但点击后会很快退出,因为内容并不是用户真正感兴趣的。

推荐系统要达到推荐准确的效果,推荐用户真正感兴趣的内容,单目标也很难做到。用户不同的行为背后有不同的动机,代表了不同维度的兴趣出发点。用户点击表示有意愿消费,用户停留一定时长表示有兴趣,用户评论表示愿意和内容生产者产生联系等,一项内容如果能引发用户的正向行为越多,那用户对这项内容的兴趣也越高。但大多数用户的正向行为项数量是一两项,不会很多,因此当只使用单目标时,则很容易导致触发用户某种行为的内容占主导,而忽略了用户背后真实的兴趣,也不利于推荐的生态建设。

在具体场景中,用户的正向行为丰富多样,而一些正向行为之间存在一定的此消彼长的关系,比如当用户点关注后页面会进入到作者主页,则关注后用户则停止了对内容的时长消费,因此关注行为和时长之间存在拉扯。这时如果以其中一个为单目标进行推荐,则会对另一个目标有损,但推荐追求的是“既要又要”,只有多方面都兼顾到了,推荐系统才可能向一个好的生态方向发展,因此需要多目标来进行建模,从而尽可能地综合用户的多种兴趣维度,达到好的推荐效果。

多目标的应用,主要解决单目标的几个问题:
(1) 单目标存在无法识别用户多维度兴趣问题,有误导风险;
(2) 不同单目标之间存在“此消彼长”的关系,难以兼顾。在业务迭代过程中,多目标可以帮助推荐系统不断完善。

Shared-Bottom

MMoE
(Multi-gate MoE model)

PLE
Progressive Layered Extraction model

模型优化 — OPE (Optimized Private Expert)

DCN-M: Deep & Cross Network Model, DCN-M
MMCN: Multi-layered Multi-gate with Cross Network

优化工作

  • 每一个Task Specific Input都分配一个单独的Embedding,从而可以提供更多的增量特征,有更多的学习空间
  • 每一个Task Specific Input都由100个优选特征(相关度高的特征,按照相关度排序)组成,Shared Input由800-900个通用特征和业务特征组成,private expert和shared expert之间的特征会有重复

好处

  • 由于private expert和shared expert之间的特征会有重复,分配一个单独的Embedding,从而可以提供更多的增量特征
  • 分配一个单独的Embedding和优选特征的好处是可以萃取单任务特性,提高精度
  • 分配单独的Embedding,不会在embedding层面上进行横向迁移,从而缓解任务间的负迁移

面试问题:怎么为每个Task筛选特征?

  • 计算每个特征对每个Task的重要度,保留Top特征
  • 特征重要度根据AUC计算:
    • step 1:使用Validation Dataset在Shared bottom Model进行验证,得出AUC_A, AUC_B, …
    • step 2:依次一个一个遍历将特征对应的embedding置为0,这个操作相当于将这个特征进行删除,再次计算出AUC_A_1
    • step 3:将AUC_A - AUC_A_1得到差值,差值作为特征重要度
posted @ 2024-04-28 18:02  ForHHeart  阅读(1)  评论(0编辑  收藏  举报