龙空技术网

关于序列推荐的全面调研!

MarcusBao 57

前言:

当前兄弟们对“序列挖掘算法的优缺点分析”大致比较着重,姐妹们都想要知道一些“序列挖掘算法的优缺点分析”的相关知识。那么小编也在网上收集了一些关于“序列挖掘算法的优缺点分析””的相关知识,希望朋友们能喜欢,各位老铁们快快来了解一下吧!

❝ 本文参考自论文《Sequential Recommender Systems: Challenges, Progress and Prospects》,是对其翻译和总结。非常适合刚入坑该领域,或者想要了解该领域的人阅读。 关于SeqRec我也分享过不少的文章,也进行过简单的总结,可以看深入探寻《Self-Attentive Sequential Recommendation》ICDM‘18. 最后,本文中,所有说的目前,都是该paper中稿截止前,以及结合博主本人一丢丢的知识,难免有不全面的地方,若有不足,非常欢迎大家指出讨论!

摘要

「本文首先介绍了Sequential Recommender Systems(SRSs)的特点,然后对该领域面临的主要挑战进行了总结和分类,接着介绍了该领域最新的、最具代表性的研究进展。最后,讨论了该领域未来可能重要的研究方向。」

关于为什么需要SRSs已经说了很多次了,这里就不在介绍了,感兴趣的同学可以直接阅读文章的introduction部分,个人觉得写的很不错。

Data Characteristics and Challenges

由于现实世界中顾客购物行为、商品特征和特定购物情境的多样性和复杂性,生成的用户-商品交互数据往往具有不同的特征。不同的数据特性本质上给SRSs带来了不同的挑战,需要不同的解决方案,如下图:

下面根据这个表格,对这五个数据特征极其存在的挑战进行详细地介绍。「(具体的文献也将会本文重新引用,方便感兴趣的读者查找和学习!)」

Handling Long User-Item Interaction Sequences

长的用户项交互序列由相对大量的用户项交互组成。因此,它有更高的机会对其内部的多个交互具有更复杂和全面的依赖性,这使得SRSs更具挑战性。在这种情境下主要存在两类挑战: 「learning higher-order sequential dependencies」 和 「learning long-term sequential dependencies」。

Learning higher-order sequential dependencies.

低阶的依赖很容易通过基于马尔科夫链的模型[1] 或者分解机FM[2,3]的模型进行建模。相比于低阶关系,高阶顺序依赖关系更为复杂,更难捕获,因为「它们是跨多个用户项交互的复杂多级级联依赖关系」。目前,解决高阶依赖关系建模的主要有两种方式:(1)基于高阶马尔科夫链方法的建模[4];(2)基于RNN的方法[5]。

「局限性」:例如,随着模型参数的数量随阶数呈指数增长,高阶马尔可夫链模型中可能涉及的历史状态非常有限,而RNN中采用的过强阶假设限制了RNN在序列中以灵活的order应用。

Learning long-term sequential dependencies

长期顺序依赖是指在一个序列中「彼此相距较远的交互之间的依赖关系」。

❝ 比如,显然 rose 和vase相隔很远,它们也是相关的。这种情况并不少见,因为用户的行为通常具有高度的不确定性,他们可能会将任何item放入购物车。

解决long-term的问题,一般是引入LSTM或GRU-based的模型比较成功。但是,RNN的模型假设过强,很容易「产生错误的依赖,因为他们高度假设相邻的item存在高度的相关性」(上面的rose和vase就是一个反例)。为了解决这一问题,可以利用混合模型的优点,将多个子模型与不同时间范围的子模型结合起来,在一个统一的模型中捕获短期和长期的依赖关系[6]。总的来说,能够解决这一挑战的工作相当有限,需要更多的努力来缓解这一问题。

Handling User-Item Interaction Sequences with a Flexible Order

在现实世界中,一些用户项交互序列是严格有序的,而另一些用户项交互序列可能不是严格有序的,也就是说,「并非所有相邻的交互都是顺序相关的」。

❝ : 先买牛奶还是黄油并不重要,但购买这两种东西会导致下一步购买面粉的概率更高,也就是说,牛奶和黄油之间没有严格的顺序,但面粉的顺序取决于两者的结合。

「因此,对于具有灵活顺序的序列,最好捕获集合顺序依赖关系(collective sequential dependencies),而不是点式point-wise ones依赖关系,因为前者是模糊的,并且不假设用户项交互的严格顺序.」

现有的基于Markov-chains, factorization machines or RNN的SRSs的模型都是解决point-wise 依赖的,并不能很好的解决collective sequential dependencies。 于是,研究者们引入CNN来试图解决这一问题[7.8],其主体思想就是将交互顺序的item embedding看成是一张“图像”,然后利用CNN来建模local和global的特征进行推荐。

Handling User-Item Interaction Sequences with Noise

由于用户购物行为的不确定性,大多数的user-item交互序列是不干净的,这意味着它们可能包含一些噪声和不相关的交互,从而对下一个交互预测产生干扰。实际上,在用户项交互序列中,一些历史交互与下一个交互强相关,而其他交互可能弱相关甚至不相关。

❝ : “rose”可能是一个噪声,因为它和别的无关。

在此数据特征下,挑战就是如何在有噪声的用户项交互序列上,仔细而有区别地学习序列相关性(learn sequential dependencies attentively and discriminatively)。

现有的方法一般是引入attention [9]或者memory networks[10]有选择地保留和利用那些与下一次交互预测真正相关的交互信息。

Handling User-Item Interaction Sequences with Heterogeneous Relations

异构关系是指传递不同类型信息的不同类型的关系,在SRSs中需要进行不同的建模。例如,在用户项交互序列中,「除了基于用户项交互的广泛发生的顺序依赖关系外,交互项之间在其特征方面也存在基于相似性的关系」。此外,尽管两者都是顺序依赖,但长期的顺序依赖与短期的顺序依赖是完全不同的,它们不能以相同的方式建模。 因此,SRSs的另一个关键挑战是「如何有效地分别捕获嵌入在用户项交互序列中的这些异构关系」,并使它们在处理与异构关系相关联的用户项交互序列时协同工作来构建SRSs。

在这方面的相关文献也比较少,目前仅仅有基于Mixture models的方法[6,11,12]。

Handling User-Item Interaction Sequences with Hierarchical Structures

一般来说,主要有两种层次结构可以与用户项交互序列相关联:

the hierarchical structure between meta data and user-item interactions.具体来说,用户的人口统计信息可以在一定程度上决定用户的偏好,并进一步影响他们与item的交互。类似地,item的特性通常会对用户是否喜欢和交互产生一些影响。the hierarchical structure between subsequences and user-item interactions. 更具体地说,在一些SRSs中,一个用户项交互序列包括多个子序列(就是session)。「在这种情况下,除了当前子序列内的交互之外,历史子序列还可以影响要在当前子序列中预测的下一用户项交互。」

因此,SRSs的另一个关键挑战是如何将嵌入这两种层次结构中的层次依赖性,将其融入到序列依赖学习中,以生成更精确的序列推荐。

虽然有不少文献试图从某些方面来应对这一挑战,但对其他方面的研究却很少。 一方面,为了考虑item特征对用户-商品交互的影响,提出了一系列特征丰富的模型[13]。相比之下,「现有的SRSs很少考虑用户的人口统计特征的影响」。

另一方面,一些层次模型,包括hierarchical embedding models[14],hierarchical RNN[15],hierarchical attention networks[16]将历史子序列合并到顺序依赖学习中,以构建更强大的SRSs。

Research Progress

本章节将总结SRSs的具体进展和一些局限性,其方法分类如下图所示:

从技术角度来看,SRSs的各种方法首先被分为11个原子类(例如,序列模式挖掘、因子分解机和递归神经网络)。所有这些原子类被进一步划分为三个分类,包括传统序列模型、潜在表示模型和深层神经网络模型。总的来说,这三类方法从简单到复杂。

Traditional Sequence Models for SRSs

传统的序列模型(包括序列模式挖掘和马尔可夫链模型)是SRSs的直观解决方案,它利用了「序列中用户项交互之间的序列依赖性建模的自然优势」。

Sequential pattern mining

基于序列模式的RSs首先对序列数据进行频繁模式(frequent patterns)挖掘,然后利用挖掘出的模式指导后续的推荐。「序列模式挖掘虽然简单明了,但通常会产生大量的冗余模式,增加不必要的时间和空间开销。」 「另一个明显的缺点是,由于频率限制,它经常会丢失那些不常见的模式和item,从而将推荐结果限制在那些流行的item上。」 代表性方法为[17]

Markov chain models

基于Markov链的SRSs采用Markov链模型对一个序列中的user-item交互过程进行建模,以预测下一个交互过程。根据所使用的具体技术,基于马尔可夫链的RSs分为基于「基本马尔可夫链的RSs」方法和「基于潜在马尔可夫嵌入的RSs方法」。前者直接基于显式观测值计算转移概率[18],后者首先将马尔可夫链嵌入欧几里德空间,然后基于欧几里德距离计算交互之间的转移概率[19]。

「局限性」:基于马尔可夫链的RSs的缺点是显而易见的,一方面,由于当前交互只依赖于一个或多个最近的交互的马尔可夫性,RSs只能捕获短期的依赖,而忽略了长期的依赖。另一方面,它们只能捕获逐点依赖,而忽略了用户-商品交互的集体依赖。

以上的局限性导致基于马尔科夫链的模型逐渐退出舞台。。。

Latent Representation Models for SRSs

潜在表示模型首先学习每个用户或item的潜在表示,然后利用所学习的表示预测随后的user-item交互。

Factorization machines

FM-based SRSs 通常利用矩阵分解或张量分解将观察到的user-item交互分解为用户和商品的潜在因子进行推荐[2,3]。与协同过滤(CF)不同的是,要分解的矩阵或张量是由交互组成的,而不是CF中的评分。「这样的模型很容易受到观测数据稀疏性的影响,因而无法得到理想的推荐效果。」

Embedding

Embedding-based SRSs 通过将序列中的所有user-item交互编码到一个潜在空间中,学习每个用户和商品的潜在表示,再进行推荐。具体地说,有些工作将学习到的潜在表征作为网络的输入,进一步计算用户和商品之间的交互分数,或连续用户的行为[20];而其他工作直接利用它们来计算一个得分,如欧几里德距离作为交互得分[21]。「该模型以其简单、高效、有效的特点,近年来显示出巨大的发展潜力。」

Deep Neural Network Models for SRSs

深层神经网络具有建模和捕捉序列中不同实体(如用户、商品、交互)之间综合关系的天然能力,因此在过去几年中几乎占据了SRSs的主导地位。一般来说,该分类法可分为两个子类:基于basic深度神经网络的SRSs和基于结合了一些先进的模型的深度神经网络的SRSs。

Basic Deep Neural Networks

由于递归神经网络(RNN)在序列建模中的固有优势,目前最常用的SRSs深度神经网络是RNN,但它们也存在缺陷。最近,卷积神经网络(CNN)和图神经网络(GNN)也被应用于SRSs中,以弥补RNN的不足。

RNN-based SRSs

给定一个历史user-item交互序列,基于RNN的SRS试图通过对给定交互序列的依赖关系建模来预测下一个可能的交互。除了基本的RNN,LSTM和GRU也被用于捕捉序列中的长期依赖性。近年来,基于RNN的SRSs得到了蓬勃发展,它们主导了基于深度学习的SRSs乃至整个SRSs的研究。除了基本的RNN结构外,有文献还提出了一些基于RNN的变体来捕获序列中更复杂的依赖关系,如层次RNN[15]。

RNN-based的方法存在「局限性」: 1. RNN过于强烈地假设序列中的任何相邻交互都是有依赖关系的,因此很容易「产生错误依赖」,而在现实世界中可能不是这种情况,因为序列中通常存在不相关或噪声交互;2. 它可能只捕获逐点(point-wise)依赖,而忽略集体(collective)依赖(例如,多个交互协同影响下一个交互)。

CNN-based SRSs

与RNN不同的是,给定一系列的user-item交互,CNN首先将这些交互的所有嵌入信息放入一个矩阵中,然后将这个矩阵作为时间和潜在空间中的“图像”来处理。最后,将序列模式作为图像的局部特征,通过CNN来建模,进行后续的推荐。由于CNN对序列中的相互作用没有很强的有序性假设,而且它们在图像中学习区域间的模式而不是交互间的关系,因此基于CNN的SRSs可以在一定程度上弥补基于RNN的SRSs的上述缺点。然而,「由于CNN中使用的卷积核的大小有限基于CNN的SRSs不能有效地捕获长期依赖关系。」 这方面的经典工作包括:[7,8].

GNN-based SRSs

GNN-based模型最近也被广泛用来捕捉user-item交互之间更复杂的转化关系。「通常,有向图首先建立在序列数据的基础上,将每个交互作为图中的一个节点,同时将每个序列映射到一条路径。然后,在图上学习用户或商品的嵌入,从而在整个图上嵌入更复杂的关系[5]。」 这种方法充分利用了GNN的优点来捕获结构化关系数据集中的复杂关系。此外,基于GNN的SRSs通过揭示推荐item与相应的序列上下文之间的复杂关系,这也为可解释性推荐提供了一个很好的角度。

Advanced Models

为了解决基于基本神经网络结构的SRSs的局限性,通常将一些先进的模型与某种基本的深层神经网络(如RNN、CNN)结合起来,构建更强大的SRSs,以应对特定的挑战。

Attention models

attention 机制真的在哪都行,SRSs中attention用来强调序列中那些真正相关和重要的交互,而淡化那些与下一次交互无关的交互。它们被广泛地整合到浅层网络[9]和RNN[16]中,以处理带有噪声的交互序列。

Memory networks

在SRSs中引入内存网络,「通过引入外部内存矩阵,直接捕获用户项交互与下一个交互之间的依赖关系。」 这样的矩阵使得能够更明确和动态地存储和更新序列中的历史交互,以提高模型的表达能力并减少那些不相关交互的干扰[10]。此外,一些工作还加入了一个key-value memory network,按顺序存储和更新交互item的相应知识库信息,以学习属性级偏好,从而增强推荐[22]。

Mixture models

基于混合模型的SRS将擅长捕获不同依赖关系的不同模型结合起来,以增强整个模型捕获各种依赖关系的能力,从而获得更好的推荐。[6] 结合不同类型的编码器来分别建模短期和长期的依赖关系,以学习更精确的序列表示。

Open Research Directions

近年来,特别是近三年来,随着深度学习尤其是递归神经网络的兴起,SRSs得到了迅速的发展。在对该领域的研究实践进行分类和总结的同时,下面简单讨论下未来可能的研究方向。

Context-aware sequential recommender systems

用户或item所处的当前上下文可能会极大地影响用户对商品的选择,在进行推荐时应予以考虑。这在SRSs中更为必要,因为「上下文可能会随着时间的推移而变化」。然而,现有的SRSs大多忽略了这一重要方面。因此,上下文感知SRSs将是今后工作的一个重要方向。

Social-aware sequential recommender systems

用户生活在一个社会中,在线上和线下都与各种各样的人联系在一起。他人的行为或观点往往会对用户的选择产生很大的影响。因此,social influence需要在SRSs中加以考虑,这在现有的研究中往往被忽视。

Interactive sequential recommender systems

现实世界中的大多数购物行为都是连续的而不是孤立的事件。换言之,用户和购物平台(如亚马逊)之间实际上存在顺序交互. 然而,现有的srs往往忽略了这些交互,而只在单个时间步生成一个推荐。如何融合用户与卖家的交互,从而产生「多时间步长(multi-time step)的推荐是一个很有前途的研究方向」。

Cross-domain sequential recommender systems

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

Reference

Personalized news recommendation with context trees.Factorizing personalized markov chains for next-basket recommendationGeneral factorization framework for context-aware recommendations.Fusing similarity models with markov chains for sparse sequential recommendation.Session-based recommendations with recurrent neural networks.Towards neural mixture recommender for long range dependent user sequencesA simple convolutional generative network for next item recommendation.Personalized top-n sequential recommendation via convolutional sequence embedding.Attentionbased transactional context embedding for next-item recommendation.Sequential recommendation with user memory networks.Recommendation through mixtures of heterogeneous item relationshipsModeling multi-purpose sessions for nextitem recommendations via mixture-channel purpose routing networks.Parallel recurrent neural network architectures for feature-rich session-based recommendationsLearning hierarchical representation model for next basket recommendation.Personalizing session-based recommendations with hierarchical recurrent neural networks.Sequential recommender system based on hierarchical attention networks.Effective next-items recommendation via personalized sequential pattern miningPersonalized news recommendation with context trees.Personalized ranking metric embedding for next new poi recommendation.Learning hierarchical representation model for next basket recommendation.Translation-based recommendation: A scalable method for modeling sequential behavior

Improving sequential recommendation with knowledge-enhanced memory networks

标签: #序列挖掘算法的优缺点分析