感谢:https://www.researchgate.net/publication/337183009
名字:Sequential Recommender Systems: Challenges, Progress and Prospects
首先:在阅读这一篇文献的时候,这篇综述不仅仅像我看过的普通的文章的整理,它对于整个问题的分析,感想后,对于这个问题目前的解决的方法,对于行业目前的状况进行了把握,虽然这一篇19年的文献,本人更希望这篇文章是21年的,毕竟能给予更多的指导。
文章提出了目前序列推荐模型5个困难,对于模型进行了分类,且对于开放方向进行了整理。
本次我最明显的收益是 即序列中的短序列为会话()
哦吼 多说无益 干活!
0. 前言
啥子是序列推荐模型(SRS)咧?
大师或者小学二年级学生会这么回答
input: u,i交互 S
output:一个排名靠前的候选列表 R
过程:对复杂顺序关系建模
公式呢?
R = argmax f(S)
S = {i1, i2, …, i|S|}
ij =< u, a, v >
元素 | 解释 |
---|---|
u | 用户 |
a | 行为 |
v | 物品 |
1. 推荐模型的挑战
按作者总结,一共有5个挑战。
1.1 长序列的处理
序列的高阶依赖
长期的顺序依赖关系
挑战这一个工程非常有限,其主要的方法是对应上面的两个小问题进行分模型处理
1.2 以灵活的顺序处理用户项目交互序列
并非所有相邻的交互都在序列中顺序相关,eg 购物序列S2={牛奶、黄油、面粉}中,先买牛奶和黄油并不重要,但是面粉的顺序取决于它们的组合。
看到上面的例子,可以得到,对于灵活顺序的序列处理,做好捕捉集体的顺序依赖关系,而不是逐点依赖关系。如何在柔性顺序的假设下捕获集体序列依赖成为SRS中处理柔性顺序序列的关键挑战。
目前的工作相对较少,在深度学习领域,CNN在其体现出不同区域的之间的局部和全局依赖关系,来应对这个工作。(之前小看了这篇CNN文章 等下看)
题目:Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding
模型名字: CASER
1.3 处理噪声数据
噪声的定义:在序列中,与交互预测产生干扰,在用户项交互序列中,一些历史交互是弱相关甚至不相关。(不晓得兴趣漂移算不算噪声)
一篇自己看不懂的文章,但是完美的解决了这个问题
简单的说一下这个文章的意思吧,其通过分析一个序列中 非常重要的序列项和一些无关紧要的序列项,通过替换非常重要的 建立负样本。替换无关紧要的建议正样本。通过对比学习来实现这篇。(文章的具体内容还得看)
其难点与新颖点
序列项的分类
对比学习的使用
题目:CauseRec: Counterfactual User Sequence Synthesis for Sequential Recommendation
模型名:题目里面有
1.4 处理异构关系的用户交互
长期顺序依赖关系与短期顺序依赖关系大不相同,它们不能以相同的方式建模
混合模型是其解决问题的方式
1.5 具有层次结构的交互序列
在这里 我终于理解 会话对于推荐模型的意义
与用户项交互序列相关联的层次结构主要有两种:
元数据和用户项交互之间的层次结构。
子序列和用户项交互之间的层次结构。
SRSs的另一个关键挑战是如何将嵌入这两种层次结构中的层次依赖性合并到顺序依赖学习中,以生成更准确的顺序推荐。
2 常用模型
这里分为常用的和高级的
2.1 基础的
- RNN
在这里主要写问题
- 任何相邻的交互必须相互依赖
- 只能捕获点相关
- CNN
解决了RNN的问题 其卷积核的方式 能以相关的序列附近的关系
- 没有很强的顺序假设
- 无法捕获长期依赖
题目: A Simple Convolutional Generative Network for Next Item Recommendation
模型名字:NextitNet
- GNN
图点线结构 是最近工作的方向,相关工作目前较少
2.2 高级
- attention
应用于浅层网络,处理带有噪声的交互序列
- memory
内存网络,提高模型的表达能力
- 混合模型
解决短序列和长序列的组合
2.3 开放方向
上下文感知
外界环境对于选择的影响
整合买卖交互(买卖之间的聊天)
跨域 不好理解 给个例子
在现实世界中,用户在特定时间段内购买的物品通常来自多个域,而不是一个域。本质上,来自不同领域的项目之间存在一些顺序依赖关系,例如在购买汽车后购买汽车保险。这种跨域顺序依赖在大多数SRS中被忽略