当前位置:   article > 正文

【序列推荐综述】IJCAI‘19:Sequential Recommender Systems: Challenges, Progress and Prospects

序列推荐综述

#论文题目:【序列推荐】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,主要有三点:

  1. 用户跟物品之间的互动是序列依赖的
    比如在上面的图中,Jimmy首先买了机票,然后准备订酒店,这时他定酒店的行为基本和他买机票的行为相关,会选择一个离机场不远的酒店。订完酒店以后,他租车的行为就会受到订酒店的影响,Jimmy很有可能选择一个取车地点离酒店比较近的租车行。所以,在这一系列互动中,Jimmy每一个行为都依赖于之前产生的行为。这种依赖关系在交易数据中是非常常见的。
  2. 用户的兴趣与物品的流行程度都是动态变化的
    这很容易理解,就比如笔者以前喜欢用iPhone,现在喜欢用华为;诺基亚的手机以前非常流行,现在却已经很少见了……这些动态的变化只有依靠SRS才能够有效地捕捉。
  3. 用户-物品的互动通常在特定的序列上下文环境中产生
    不同的上下文会催生出不同的用户行为。就比如说在刷抖音的时候,如果突然刷到一个很感兴趣的视频,我很有可能会给它点赞,但是如果我点赞了一些差不多的视频后,还继续给我推荐,那我很可能因为腻烦直接划走。SRS在丰富推荐结果、避免同质化的任务上比传统推荐系统更容易做到。

接下来,作者明确了序列化推荐的形式,即序列化推荐系统由最大化下面的函数得到
在这里插入图片描述
序列推荐与一般意义上的序列建模任务不同,主要是这些任务的序列结构比较简单,往往只含有原子化的元素(比如文本生成的字词),而序列推荐的结构比较复杂(生成一个元组)。

二、数据特点和挑战

在这里插入图片描述

2.1 处理长的用户商品交互序列

越长的用户-物品互动序列包含着越多的互动,也意味着越复杂的依赖关系。这一数据特点带来了两个挑战。

  1. 学习高阶序列依赖的挑战
    在长序列中,通常依赖关系是高阶的,而不是相对简单能通过马尔科夫链或因子分解机解决的,这是因为高阶关系往往也意味着更复杂的多级级联依赖关系。目前解决这一挑战的办法主要是马尔科夫链或RNN,但是都存在局限:高阶马尔科夫链的参数量随着阶数上升指数增长;RNN的强序列假设又限制了RNN在灵活顺序场景下的应用。
  2. 学习长期的序列依赖
    在长序列中,有时候两个具有依赖关系的项可能相距甚远。比如这样一个购物序列{玫瑰,鸡蛋,面包,牛奶,花瓶},其中玫瑰与花瓶虽然相距很远,但显然存在依赖关系。如果使用LSTM或GRU来捕捉长期关系,很容易生成一种错误的依赖关系,比如认为牛奶和花瓶之间存在依赖关系,因为模型可能错误地假设一个序列中相邻的项是高度依赖的。目前解决这一问题的工作主要是组合了多个子模型来利用混合模型的优势,但从整体上来看还是受限的。

2.2 以灵活的顺序处理用户商品的交互序列

在现实世界中,一些用户-商品交互序列是严格有序的,而另一些则可能不是,即并非所有相邻的交互都是顺序依赖的

例如,在购物序列S2={牛奶,黄油,面粉}中,先买牛奶还是黄油并不重要,但购买这两种商品会导致下一步购买面粉的概率更高;也就是说,牛奶和黄油之间没有严格的顺序,但面粉的顺序取决于它们的结合。因此,对于一个具有灵活顺序的序列,捕获集合顺序依赖比捕获点式依赖要好得多,因为前者是模糊的,并且在用户-商品交互上不假定严格的顺序。因此,如何在灵活顺序的假设下捕获集合序列相关性成为SRSs中处理灵活顺序序列的关键问题。

目前国内外对这一问题的研究还不多见。现有的基于Markov链、因子分解机或RNN的SRS只能处理点依赖关系,而不擅长对集合依赖进行建模和捕捉。目前有些工作试图通过利用CNN的优势来捕捉局部和全局依赖性,即一系列交互作用的嵌入矩阵。

2.3 处理带有噪音的用户商品交互

在一个用户-商品交互序列中,一些历史交互与下一个交互具有强相关性,而另一些则可能弱相关甚至不相关。

比如序列{培根,玫瑰,鸡蛋,面包}中玫瑰就是一个噪音项,与其他三项之间并没有什么依赖关系。接下来,用户很可能购买牛奶,这与玫瑰无关,但却与其他三项相关。因此,这一特点引发的挑战就是如何精确但有区别地学习序列依赖关系。目前已有的工作主要是从注意力模型、记忆模型下手。

2.4 处理具有异构关系的用户商品交互序列

在处理与异构关系相关联的用户商品交互序列时,如何有效地捕获嵌入在用户-商品交互序列中的异构关系,并使它们协同工作进行顺序推荐。

异构关系是指传递不同类型信息的不同类型的关系,应在SRSs中进行不同的建模。例如,在一个用户-商品的交互序列中,除了用户-商品交互之间普遍存在基于发生的顺序依赖关系外,**交互商品之间在其特征方面也存在基于相似性的关系。**此外,尽管两者都是顺序依赖,但长期的顺序依赖与短期的顺序依赖是完全不同的,它们不能以相同的方式建模。

  • 目前处理该关系主要还是基于混合模型进行处理。

2.5 使用层次结构处理用户商品的交互序列

作者认为,互动序列中存在两种层级结构。一是元数据(meta data)与互动之间的层级结构,即用户的人口统计学属性、物品的特征对用户行为、偏好的影响;二是子序列与互动之间的层级关系,很多时候一个长序列中会包含许多子序列。对应的挑战是如何处理这两种层级结构上的依赖关系以生成更精准的推荐。

这一领域工作的方向主要是使用用户、物品的特征增强模型;此外,还有引入层级RNN、层级注意力等结构的。

三、研究现状

在这里插入图片描述

3.1 传统序列模型

传统序列模型一共分为两块, 序列模式挖掘 & Markow链。

  1. 序列模式挖掘
    基于序列模式的推荐先挖掘序列数据的常用模式,然后利用挖掘到的模式来指导后续的推荐。虽然简单,但是却经常会产生大量的冗余的模式, 这往往会增加非常多不必要时间和空间等代价。同时此类方法经常会丢失不频繁的模式以及商品,所以对于不是非常流行的商品的推荐会受限。

  2. 马尔可夫链模型
    基于马尔可夫链的推荐系统会采用Markov链模型对用户-商品的交互转换进行建模,以预测下一次交互。根据使用的技术,基于马尔可夫链的推荐系统又可以分为基于基本Markov链的推荐系统和基于潜在Markov embedding的推荐系统方法。

前者直接根据显式观测的值计算转移概率,而后者首先将马尔可夫链嵌入欧几里德空间,然后根据其欧几里德距离计算相互作用之间的转移概率。基于Markov链的推荐系统的缺点主要有两块。一方面,由于Markov特性假设当前交互只依赖于一个或几个最近的交互,因此只能捕获短期依赖关系而忽略长期依赖关系;另一方面,它们只能捕获点式依赖,而忽略了用户商品交互的集体依赖。

3.2 序列推荐的隐式表示

隐式的表示模型先学习每个用户和商品的潜在表示,然后使用学习得到的表示预测接下来的用户商品交互。这么做就可以捕捉更多的内部关系。

  1. 分解机(Factorization Machines)=
    基于因子分解机的序列推荐通常利用矩阵分解或张量分解将观察到的用户-商品交互作用分解为用户和商品的潜在因子。和协同过滤不一样的地方在于,要分解的矩阵或张量是由交互作用组成的,而不是CF中的评分,这样的模型很容易受到观测数据稀疏性的影响,因而不能达到理想的推荐效果。

  2. 嵌入式(Embedding)
    基于Embedding的序列化推荐通过将用户-商品交互序列编码到一个潜在空间,学习每个用户和商品的潜在表示,以供后续推荐。具体而言,一些工作将学习到的潜在表征作为网络的输入,进一步计算用户和商品之间的交互得分,或后续用户的行为,而其他作品则直接利用它们来计算欧几里德距离等度量作为交互得分。该模型具有简单、高效、高效的特点,近年来已显示出巨大的潜力。

3.3 用于序列化推荐的DNN模型

  • 基本的神经网络模型
  1. RNN-based SRSs
    包括基础RNN模型以及LSTM、GRU等模型,还有层级RNN等。这一类模型几乎主导了SRS领域的研究,但是仍然存在缺点:一是容易生成假依赖关系,假设过强(认为序列中每个相邻的项之间都有依赖关系);二是捕捉点对点的依赖关系,忽略集合依赖。

  2. CNN-based SRSs
    CNN就是将序列的embedding矩阵看作一个图片(跟NLP差不多)。CNN的优点是序列关系的假设不强,而且学习的是不同区域之间的模式,能够避免RNN假设过强的问题,缺点是不好捕捉长期依赖关系。

  3. GNN-based SRSs
    GNN的做法是将每个互动看作一个节点,而每一个序列则看成一条路径。GNN方法的优点是能够提供更具解释力的推荐。GNNSRS还在起步阶段。

  • 高级模型
  1. Attention models
    注意力可以用来强调相关的、重要的互动,淡化与下一次互动不相关的,广泛地与RNN等模型结合用来处理带噪的互动序列。
  2. Memory networks
    记忆网络被用来捕捉历史互动与下一个互动之间的依赖关系,依靠的是一个记忆矩阵。记忆矩阵通过存储和更新历史互动来提高模型表现,减少不相关的互动的影响。
  3. Mixture models
    指的是通过组合多种模型捕捉多种依赖关系的模型,典型的例子是组合多种编码器来分别捕捉长短期关系,进而学习精准的序列表示。这类模型也处于起步阶段。

四、未来工作

  1. Context-aware的序列化推荐系统
    用户或商品所在的当前环境会极大地影响用户对项目的选择,在进行推荐时应考虑到这一点。这在序列化推荐系统中更为必要,因为上下文可能会随着时间而变化。然而,现有的序列化推荐大多忽略了这一重要方面。因此,上下文感知的序列化推荐将是未来工作的一个重要方向;

  2. Social-aware的序列化推荐系统
    用户生活在一个社会中,并与各种人在线和离线连接。其他人的行为或意见往往会对用户的选择产生很大的影响。因此,在现有的研究中,我们往往忽略了序列化推案系统的Social影响;

  3. Interactive的序列化推荐系统
    现实世界中的大多数购物行为都是连续的,而不是孤立的事件。换句话说,用户和购物平台(例如亚马逊)之间实际上是有顺序的交互。然而,现有的序列化推荐往往忽略了这种交互作用,并且只在单个时间步骤中生成一个操作的建议。如何结合用户-卖家交互,从而产生多时间步的推荐是一个很有前途的研究方向;

  4. Cross-domain的序列化推荐
    在现实世界中,用户在一定时间段内购买的商品通常来自多个域,而不是一个域。本质上,来自不同领域的项目之间存在一些顺序依赖关系,例如在购买汽车后购买汽车保险。这种跨域顺序依赖在大多数序列化推荐中被忽略。因此,跨域SRS是另一个很有前途的研究方向,可以利用来自其他领域的信息和来自不同领域的更多不同的推荐来生成更准确的推荐。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/241309
推荐阅读
相关标签
  

闽ICP备14008679号