#论文题目:【序列推荐】Sequential Recommender Systems: Challenges, Progress and Prospects(序列推荐系统:挑战、进程和前景)
#论文地址:https://www.researchgate.net/publication/337183009_Sequential_Recommender_Systems_Challenges_Progress_and_Prospects
#论文源码开源地址:暂无
#论文所属会议:IJCAI 2019
#论文所属单位: 上海理工大学、麦考瑞大学、悉尼科技大学
序列推荐系统(sequential recommender system, SRS)与传统的推荐系统(协同过滤、基于内容的过滤)不同,传统的推荐系统,例如基于内容和协同过滤的推荐系统,以一种静态的方式建模用户和商品的交互并且只可以捕获用户广义的喜好。而相反地,SRSs则是将用户和商品的交互建模为一个动态的序列并且利用序列的依赖性来活捉当前和最近用户的喜好。
作者首先分析了SRS兴起的motivation,主要有三点:
接下来,作者明确了序列化推荐的形式,即序列化推荐系统由最大化下面的函数得到:
序列推荐与一般意义上的序列建模任务不同,主要是这些任务的序列结构比较简单,往往只含有原子化的元素(比如文本生成的字词),而序列推荐的结构比较复杂(生成一个元组)。
越长的用户-物品互动序列包含着越多的互动,也意味着越复杂的依赖关系。这一数据特点带来了两个挑战。
在现实世界中,一些用户-商品交互序列是严格有序的,而另一些则可能不是,即并非所有相邻的交互都是顺序依赖的。
例如,在购物序列S2={牛奶,黄油,面粉}中,先买牛奶还是黄油并不重要,但购买这两种商品会导致下一步购买面粉的概率更高;也就是说,牛奶和黄油之间没有严格的顺序,但面粉的顺序取决于它们的结合。因此,对于一个具有灵活顺序的序列,捕获集合顺序依赖比捕获点式依赖要好得多,因为前者是模糊的,并且在用户-商品交互上不假定严格的顺序。因此,如何在灵活顺序的假设下捕获集合序列相关性成为SRSs中处理灵活顺序序列的关键问题。
目前国内外对这一问题的研究还不多见。现有的基于Markov链、因子分解机或RNN的SRS只能处理点依赖关系,而不擅长对集合依赖进行建模和捕捉。目前有些工作试图通过利用CNN的优势来捕捉局部和全局依赖性,即一系列交互作用的嵌入矩阵。
在一个用户-商品交互序列中,一些历史交互与下一个交互具有强相关性,而另一些则可能弱相关甚至不相关。
比如序列{培根,玫瑰,鸡蛋,面包}中玫瑰就是一个噪音项,与其他三项之间并没有什么依赖关系。接下来,用户很可能购买牛奶,这与玫瑰无关,但却与其他三项相关。因此,这一特点引发的挑战就是如何精确但有区别地学习序列依赖关系。目前已有的工作主要是从注意力模型、记忆模型下手。
在处理与异构关系相关联的用户商品交互序列时,如何有效地捕获嵌入在用户-商品交互序列中的异构关系,并使它们协同工作进行顺序推荐。
异构关系是指传递不同类型信息的不同类型的关系,应在SRSs中进行不同的建模。例如,在一个用户-商品的交互序列中,除了用户-商品交互之间普遍存在基于发生的顺序依赖关系外,**交互商品之间在其特征方面也存在基于相似性的关系。**此外,尽管两者都是顺序依赖,但长期的顺序依赖与短期的顺序依赖是完全不同的,它们不能以相同的方式建模。
作者认为,互动序列中存在两种层级结构。一是元数据(meta data)与互动之间的层级结构,即用户的人口统计学属性、物品的特征对用户行为、偏好的影响;二是子序列与互动之间的层级关系,很多时候一个长序列中会包含许多子序列。对应的挑战是如何处理这两种层级结构上的依赖关系以生成更精准的推荐。
这一领域工作的方向主要是使用用户、物品的特征增强模型;此外,还有引入层级RNN、层级注意力等结构的。
传统序列模型一共分为两块, 序列模式挖掘 & Markow链。
序列模式挖掘
基于序列模式的推荐先挖掘序列数据的常用模式,然后利用挖掘到的模式来指导后续的推荐。虽然简单,但是却经常会产生大量的冗余的模式, 这往往会增加非常多不必要时间和空间等代价。同时此类方法经常会丢失不频繁的模式以及商品,所以对于不是非常流行的商品的推荐会受限。
马尔可夫链模型
基于马尔可夫链的推荐系统会采用Markov链模型对用户-商品的交互转换进行建模,以预测下一次交互。根据使用的技术,基于马尔可夫链的推荐系统又可以分为基于基本Markov链的推荐系统和基于潜在Markov embedding的推荐系统方法。
前者直接根据显式观测的值计算转移概率,而后者首先将马尔可夫链嵌入欧几里德空间,然后根据其欧几里德距离计算相互作用之间的转移概率。基于Markov链的推荐系统的缺点主要有两块。一方面,由于Markov特性假设当前交互只依赖于一个或几个最近的交互,因此只能捕获短期依赖关系而忽略长期依赖关系;另一方面,它们只能捕获点式依赖,而忽略了用户商品交互的集体依赖。
隐式的表示模型先学习每个用户和商品的潜在表示,然后使用学习得到的表示预测接下来的用户商品交互。这么做就可以捕捉更多的内部关系。
分解机(Factorization Machines)=
基于因子分解机的序列推荐通常利用矩阵分解或张量分解将观察到的用户-商品交互作用分解为用户和商品的潜在因子。和协同过滤不一样的地方在于,要分解的矩阵或张量是由交互作用组成的,而不是CF中的评分,这样的模型很容易受到观测数据稀疏性的影响,因而不能达到理想的推荐效果。
嵌入式(Embedding)
基于Embedding的序列化推荐通过将用户-商品交互序列编码到一个潜在空间,学习每个用户和商品的潜在表示,以供后续推荐。具体而言,一些工作将学习到的潜在表征作为网络的输入,进一步计算用户和商品之间的交互得分,或后续用户的行为,而其他作品则直接利用它们来计算欧几里德距离等度量作为交互得分。该模型具有简单、高效、高效的特点,近年来已显示出巨大的潜力。
RNN-based SRSs
包括基础RNN模型以及LSTM、GRU等模型,还有层级RNN等。这一类模型几乎主导了SRS领域的研究,但是仍然存在缺点:一是容易生成假依赖关系,假设过强(认为序列中每个相邻的项之间都有依赖关系);二是捕捉点对点的依赖关系,忽略集合依赖。CNN-based SRSs
CNN就是将序列的embedding矩阵看作一个图片(跟NLP差不多)。CNN的优点是序列关系的假设不强,而且学习的是不同区域之间的模式,能够避免RNN假设过强的问题,缺点是不好捕捉长期依赖关系。GNN-based SRSs
GNN的做法是将每个互动看作一个节点,而每一个序列则看成一条路径。GNN方法的优点是能够提供更具解释力的推荐。GNNSRS还在起步阶段。
- Attention models
注意力可以用来强调相关的、重要的互动,淡化与下一次互动不相关的,广泛地与RNN等模型结合用来处理带噪的互动序列。- Memory networks
记忆网络被用来捕捉历史互动与下一个互动之间的依赖关系,依靠的是一个记忆矩阵。记忆矩阵通过存储和更新历史互动来提高模型表现,减少不相关的互动的影响。- Mixture models
指的是通过组合多种模型捕捉多种依赖关系的模型,典型的例子是组合多种编码器来分别捕捉长短期关系,进而学习精准的序列表示。这类模型也处于起步阶段。
Context-aware的序列化推荐系统
用户或商品所在的当前环境会极大地影响用户对项目的选择,在进行推荐时应考虑到这一点。这在序列化推荐系统中更为必要,因为上下文可能会随着时间而变化。然而,现有的序列化推荐大多忽略了这一重要方面。因此,上下文感知的序列化推荐将是未来工作的一个重要方向;
Social-aware的序列化推荐系统
用户生活在一个社会中,并与各种人在线和离线连接。其他人的行为或意见往往会对用户的选择产生很大的影响。因此,在现有的研究中,我们往往忽略了序列化推案系统的Social影响;
Interactive的序列化推荐系统
现实世界中的大多数购物行为都是连续的,而不是孤立的事件。换句话说,用户和购物平台(例如亚马逊)之间实际上是有顺序的交互。然而,现有的序列化推荐往往忽略了这种交互作用,并且只在单个时间步骤中生成一个操作的建议。如何结合用户-卖家交互,从而产生多时间步的推荐是一个很有前途的研究方向;
Cross-domain的序列化推荐
在现实世界中,用户在一定时间段内购买的商品通常来自多个域,而不是一个域。本质上,来自不同领域的项目之间存在一些顺序依赖关系,例如在购买汽车后购买汽车保险。这种跨域顺序依赖在大多数序列化推荐中被忽略。因此,跨域SRS是另一个很有前途的研究方向,可以利用来自其他领域的信息和来自不同领域的更多不同的推荐来生成更准确的推荐。