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\)
- 两个物品的相似度:
总结
- 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\)
- 两个物品的相似度:
降低热门物品的权重
平等地对待热门物品和冷门物品是不对的,例如在图书推荐中,Harry Potter是非常受欢迎的,大学教授和中学生都喜欢读
优化分子:
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
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得到差值,差值作为特征重要度