SIGIR-2020-Chorus

论文: Make It a Chorus: Knowledge- and Time-aware Item Modeling for Sequential Recommendation

代码:https://github.com/THUwangcy/ReChorus(pytorch)

数据集:Grocery、Cellphones、Home

指标:HR、NDCG

摘要

传统的推荐系统主要针对固有的和长期的用户偏好建模,而动态的用户需求也很重要。通常,历史消费会影响用户对其关系项的需求。例如,用户倾向于一起购买互补产品(iPhone和Airpods),而不是替代产品(Powerbeats和Airpods),尽管购买的替代品仍然符合他/她的偏好。为了更好地模拟历史序列的效果,以往的研究引入了项目关系的语义来获取用户的推荐需求。然而,我们认为,不同关系所造成的影响的时间演化是不可忽视的。在上面的例子中,用户对耳机的需求可以在很长一段时间后,当需要一个新的耳机。

为了模拟不同序列语境下物品的动态意义,提出了一种同时考虑物品关系和相应时间动态的新方法Chorus。Chorus的目的是通过知识感知和时间感知的方式来推导目标项的嵌入,每个项都得到其基本表示和关系相关的表示。然后,根据历史序列中是否存在相关项以及经过的时间,设计时序核函数来动态组合这些表示。增强的目标项嵌入可以灵活地与各种算法一起计算排名分数和生成推荐。根据在三个真实世界的数据集的广泛实验,Chorus获得了显著的改进相比最先进的基线方法。此外,与时间相关的参数具有较高的可解释性,可以加强推荐的可解释性。

1介绍

随着网络信息的过载,推荐系统在日常生活中发挥着越来越重要的作用。它不仅提供了迎合用户口味的信息,而且有助于发现用户的内在偏好[1]。传统的推荐方法主要侧重于用户偏好建模[11,13,19,33]。例如,潜在因素模型[21]将用户和商品同时嵌入到一个潜在空间中,其中用户的嵌入代表了各个方面的偏好,在不同的时间进行推荐时,这些偏好不会发生变化。

然而,虽然用户偏好大多数时候是静态的,但用户的消费需求实际上是动态的、可变化的。同一项在不同的情况下对用户具有不同的含义。实际上,连续消费行为可以看作是在不同方面满足用户需求的过程。对一种物品的消费可能会对其他相关物品产生影响,而这种不同关系的影响也彼此不同。以互补和替代关系为例,图1说明了购买不同关系项目的影响如何随时间变化。补充:假设一个用户目前购买了一部iPhone,他/她可能想在短期内购买AirPods(即iPhone的补充)。但一段时间后,这种积极的效果就会降低(用户可能已经有耳机了,推荐系统不应该一直显示AirPods)。对于替代品:如果他/她刚刚消费的是AirPods的替代品,比如Powerbeats,短期影响预计主要是负面的,因为用户不需要立即购买另一款耳机。但从中期来看,负面影响也会转化为积极影响,因为用户可能需要购买新的耳机,而新发布的AirPods可能会吸引用户。这种积极的效果也会逐渐减少,用户可能对这种耳机失去兴趣,或者通过其他方式购买了另一种耳机。

从上图中,我们可以看到,当前不同关系项的消费对目标项有不同的影响。更重要的是,每种关系的时间趋势也不同。也有研究将项目关系引入推荐系统[16,40,44,45],但没有考虑不同关系的时间动态。虽然有些工作涉及长期和短期偏好[16],但项目关系仅用于建模短期的项目转换,缺乏对不同关系影响的持续演化建模。另一项最近的研究调查了重复消费[41]的时间动态。然而,消费不仅会影响同一项本身,还会影响相关项。因此,项目关系和相应的时间动态是至关重要的捕获一个项目的动态意义在不同的上下文。

在本文中,我们提出了一种新的方法Chorus,旨在获得知识和时间敏感的目标项嵌入。据我们所知,我们是第一个明确建模不同关系随时间变化的影响,这有助于更好地捕捉每一项在不同序列上下文中的意义。特别是合唱团基于基于翻译的图嵌入方法为每个项目分配了一个基本表示和各种关系表示。然后,这些表示通过时态内核函数动态组合,这取决于自关系消费以来经过的时间,这就是它被命名为Chorus的原因。建议的时态内核函数使关系表示对最终项嵌入的贡献不同。因此,合唱团能够动态地获得知识和时间敏感的项目嵌入,这很容易被各种推荐算法利用。此外,高度可解释的时间相关参数使得解释不同时间段的推荐结果成为可能。这项工作的主要贡献总结如下:

•我们建议同时考虑项目关系和相应的时间动态。据我们所知,我们是第一个明确地为不同关系的影响的持续时间演变建立模型的人。

•我们设计了一种新颖而灵活的Chorus方法,当目标物品在序列中扮演不同的角色时,它通过动态组合不同的表示来增强目标物品的建模。最后的项目嵌入可以很容易地与各种推荐算法一起工作。

•三个真实数据集的对比实验表明了合唱的有效性,高度可解释的参数进一步有助于提高模型的可解释性。

2相关工作

2.1序列推荐

与传统的推荐方法不同,序列推荐基于Markov链,利用序列数据预测用户的下一个消费,假设下一个动作依赖于前一个动作序列[34,37]。Rendle等人[34]结合了矩阵分解[21]和因式马尔可夫链,给出了前一篮子物品的下一篮子推荐。最近,有很多研究利用递归神经网络(RNN)[36]将交互历史编码为隐藏向量[6,12,23,27,32,38]。Hidasi等[12]首先将RNN引入到序列推荐中,并获得了令人印象深刻的性能增益。Loyola等[27]和Pei等[32]均将注意机制[39]应用于RNN,以获得更有效的推荐。此外,大量后续研究的重点是扩展基于rnn的模型的能力。

尽管基于rnn的顺序推荐方法具有很强的表达性,但由于缺乏外部知识,它们仍然不能很好地模拟复杂的用户需求,并严重受到可解释性问题[26]的困扰。不同的是,我们的方法显然同时处理了项目关系和相应的时间动态,以更好地捕捉用户需求。

2.2项目关系建模

在实际应用程序中,具有具体语义的项之间通常存在多个关系。最近的一些研究主要集中在如何将项目关系引入推荐系统中[16,28,30,40,44,45],大多数推荐系统使用知识图(KG)[42]表示项目关系。CFKG[45]将用户与商品关系图作为实体引入,将购买行为视为另一种关系,然后使用TransE[3]表示异构信息网络并提出建议。Xin等人提出了一个综合推荐任务,该任务整合了多个项目之间的关系,并将关系数据集成到协同过滤(Collaborative Filtering, CF)[35]中。Ma等人提出了一个联合学习框架来整合知识图中可解释规则的归纳。

然而,所有这些方法都假设关系项消费的影响是静态的,并且独立于时间信息,在这种情况下,即使用户不需要补充,也可能在很长一段时间后持续推荐它们。

2.3时间动力学建模

考虑时间信息主要有两种工作方式。一方面,一些研究的目的是将时间信息作为上下文特征。TimeSVD++[20]将时间划分为插槽和设计与时间相关的参数。TransFM利用将时间戳作为额外的上下文特性[31]包括进来。此外,张量分解也是一种主要的方法[2,17],将时间视为用户-物品交互立方体的第三维。另一方面,一些工作侧重于模拟历史交互作用的时间衰减效应。在这一领域中,经常使用Hawkes Process (HP)[8]对用户消费序列的相互激励特性进行建模[7,22,24,41]。Du等[7]首先将Hawkes Process应用到时间敏感推荐中。SLRC[41]将霍克斯过程(Hawkes Process)和协同过滤(Collaborative Filtering)结合起来,对重复消费的时间动态进行建模。

但是,这些方法没有考虑不同关系的时间动态。因此,为了更好地模拟用户的动态需求,我们创造性地同时考虑了物品关系和相应的时间演化。

3初期

3.1任务定义

3.2KG嵌入

项目关系的信息可以看成是一个知识图,组成部分是一组三元组(i,r,j),其中i和j表示不同的项目,r表示关系类型。例如,(AirPods, is_complementary _o f,iPhone)意味着AirPods是iPhone的补充。注意,有时三元组的反义词可能不成立(例如,iPhone不是AirPods的补充),因此关系图是有方向的。

为了在推荐系统中引入关系图的结构信息,需要获得具有项目关系语义的嵌入。在各种嵌入方法中,基于翻译的模型[3,25,43]以其效率和有效性最为突出。其内在思想是将项目和关系嵌入到同一个潜在空间中,并寻找一个翻译函数来最小化评分函数

其中D(·)是度量距离的度量函数(通常为l2-norm)。Trans(i,r)是任意的平移函数,可以是简单的平移操作,也可以是专门设计的神经网络。大量的工作都集中在扩展翻译功能的容量上,如TransE[3]、TransH[43]、TransR[25]等。对于TransE[3],平移函数为Trans(i,r) = i +r,对任意三元组(i,r,j)应用l2-norm的评分函数为

为了从关系图中学习项和关系的嵌入,将基于边际的损失[45]最小化如下:

对于每个三元组,尾项被一个随机抽样项j’替换,以确保(i,r,j’)在知识图中不被观察到。类似地,标题项被i '替换,而(i ',r,j)不成立。上述目标函数的目的是训练模型区分三元体是否是损坏的,嵌入将被迫保留项目之间的关系。

 3.3推荐的基本翻译

本文提出的物品建模方法可以灵活地应用于各种推荐算法中。由于贝叶斯个性化排序(BPR)[33]是一种广泛应用的矩阵分解方法,而广义矩阵分解(GMF)[11]是一种先进的基于神经网络的方法,我们选择它们作为基础推荐模型来验证我们方法的有效性。

本文简要介绍了这两种协同过滤方法。CF方法假定类似的用户喜欢类似的项目。在BPR中,每个用户和物品都有一个k维潜在因子,其排名得分计算如下:

 b_u,b_i分别对每个用户和项目的偏好进行分析。

在GMF的情况下,通过多层神经网络得到排名分数,其表达式为:

 

其中,分别为输出层和第X神经协同过滤层的映射函数,总共有X个神经CF层。然后,根据预测得分ˆyui对候选项目进行排序。

为了学习推荐模型中的参数,可以对两两排序损失[33]进行如下优化:

其中σ表示sigmoid函数,并对每个训练实例随机抽样一个负项

4 Chorus 模型

4.1整体框架

Chorus是一个两阶段模型,它整合了项目关系和它们特定的时间效应。图2展示了整个模型结构。在第一阶段(关系建模),利用图嵌入将项目关系的结构化信息编码到嵌入中。第3.2节中描述的各种基于翻译的方法在这里可以灵活使用。关系图嵌入的结果将用于派生Chorus模型中的基本和关系表示。

在第二阶段(动态项目表示),主要有两个关键模块:(1)动态集成,(2)时序内核函数的设计。首先,每个项除了基于翻译函数的基本关系表示外,还会得到|R|关系表示,表示目标项在上下文中充当不同角色时的表示。然后,根据历史序列中是否存在相应的关系消费以及经过的时间,动态集成这些表示。为了整合每个关系的时间动态,我们提出了特定关系的时间内核函数来控制影响的极性和强度。因此,关系表示在不同的上下文中对最终项嵌入的贡献是不同的,从而导致知识感知的动态项嵌入。最后,许多算法都可以利用增强的项目嵌入来计算排名分数和提出建议。在本节的剩余部分,我们将详细阐述合唱第二阶段的主要模块。

4.2动态集成

首先,我们根据关系图的嵌入结果,为每个项目定义基本表示(记作i_b)和关系表示(记作i_r关系,而且r∈R)。基本表示对项目的固有特征进行编码,利用第一阶段学习到的项目嵌入来初始化i_b。然后利用平移函数得到关系表示:

其中,e_r是关系 r∈R的关系嵌入表示。通过这种方式,关系表示整合了每个关系对应的语义信息。

在获得基本的和关系的项表示之后,这里我们关注如何根据不同的上下文动态地组合它们,这是我们的Chorus模型的核心思想。请注意,关系表示是知识感知的,但仍然是静态的。我们的目的是为每个关系表示推导一个上下文感知系数,反映当前上下文的实际影响程度。最后提出的上下文和知识感知的项目嵌入i_{Chorus}表示如下:

它由两部分组成:基本项目表示和缩放后的关系表示,其中上下文(历史序列s_t^u、时间t和目标项目i)作为系数f_r的输入。接下来我们重点讨论如何在给定上下文的情况下获得合适的f_r

直观地说,有些关系表示在某些情况下可能没有效果,甚至有负面效果。图3给出了一些示例,说明了这些表示如何在不同的上下文中对最终嵌入作出贡献。三角形的三个角代表目标项的不同表示。当没有关系消费(上下文A)时,最终的嵌入只是基本的项表示,其他两个关系表示不起作用。当刚购买Powerbeats或iPhone(上下文B和C)时,应使用相应的关系表示分别有消极和积极的影响。而如果替代品是很久以前购买的(上下文D),替代品表征可能会对最终嵌入产生积极影响。此外,当序列中存在许多不同的关系项时,这三种表示方式都会不同程度地起作用。

为了整合不同关系的时序动态,我们创新性地为每一关系设计了时序核函数,它是消费行为之间滞后时间的连续函数。时序内核函数的目的是控制每次关系消费的影响程度。函数值的极性表示效果的极性。假设我们得到了时间核函数,以项i和关系r为索引(具体设计和相关讨论下一节),我们建议定义相关系数f_r如下:

其中I_r是关系矩阵。每一次与目标项目i相关的前一次消费行为都会对系数f_r产生加性效应,该系数由核函数k_r^i(·)控制。通过这种方式,关系系数使得不同的表达方式在不同程度上对最终嵌入产生影响,这与以往的静态项目嵌入研究不同。由于时态内核函数,关系表示可能由于时间间隔太长而几乎不起作用,甚至在某些情况下会产生负面影响。

因此,Chorus嵌入可以更好地捕获不同上下文中项目的含义,从而更好地模型用户随时间变化的需求。此外,为了简单和高效,我们可以只考虑历史序列中最新的关系项:

 其中,∆tr表示与当前项有关系r的最近的项目消费行为经历的时间。如果一个关系的历史序列中不存在相关项,则假设存在一个具有正无穷时间间隔的关系项(即∆tr= +∞)。当时序核函数随着时间趋近于零时,相应的关系嵌入将不起作用。

4.3时序核函数的设计

接下来,我们重点讨论了如何为每个关系设计时序内核函数。实际上,时间核函数的具体形式可以看作是人类对模型的一种干预。一方面,我们可以根据每个关系的特点来设计功能。例如,如图1所示,互补关系在短时间内具有积极的影响,这种影响随着时间的推移而衰减。另一方面,我们可以根据对系统的主观需求进行设计。如果我们希望替代品在短期内也出现在推荐列表中,时间核函数可以设计为具有正初值和衰减更快。在本文中,我们主要讨论了两个关系:is_complementary _of和is_substitute_of。作为实例,我们根据这两种关系的一般概念和特点设计了相应的时序核函数。

作为补充,除了整体的下降趋势,积极的影响通常会持续一段时间,然后在日常生活中开始衰减。因此,我们选择均值为零的正态分布作为其时间核函数,而不是直观的衰减过快的指数分布:

为∆t的正态分布,µ均值,σ标准差。注意,此处的参数σz(i) c与z(i)有关,z(i)表示项目i的类别。我们不估计特定项目的参数,因为类别通常是一个更适合模型一组项目的特征的级别。而且特定于项目的参数也可能受到数据稀疏性问题的影响。

对于替代品,其影响预计将由负面转变为正面,因为我们在短期内不需要另一个具有类似效用的物品,但当其生命周期耗尽[41]时,我们希望更换一个新的物品。因此,我们使用两个相反的正态分布来模拟这些特征:

这是(1)短期抑制(负)和(2)终身促进(正)的叠加。负正态分布被设计成均值为零,因为再培训效应通常在替代消费后最强。在正的情况下,参数以某种方式表示这个类别的生命周期,这意味着影响将在此时达到峰值。

这两个时序内核函数的说明如图2所示。还可以设计其他形式的时态内核函数来满足不同的需求。此外,Chorus并不限于这两种关系。可以合并许多关系,如same_brand、same_producer等。唯一要做的就是在先验知识的基础上设计相应的时序核函数,我们发现指数分布基本上适用于一般关系。

这里我们得到了最终的知识感知动态项嵌入。然后利用各种算法代替原始目标项嵌入来进行推荐。与以往的模型不同,Chorus同时集成了顺序信息、项目关系建模和相应的时间动态。最近提出的CFKG和SLRC要么只关注物品关系,要么关注消费序列中的时间动态。表1列出了相关方法和我们的合唱团模型之间的区别。关于这些基线的更多细节将在第5.1.3节中描述。

4.4参数学习

为了获得更好的鲁棒性能,我们采用两阶段的训练过程来学习模型参数:首先,我们优化\mathcal{L}_{rel}得到具有结构信息的项和关系嵌入,这些信息用于初始化第二阶段的基本项表示和关系嵌入;然后最小化\mathcal{L}_{rec},学习模型的所有参数。在第二阶段,我们不冻结之前学过的嵌入。实验结果表明,采用\mathcal{L}_{rec}优化算法能获得较好的优化效果。另一方面,也有可能在训练开始时破坏有意义的嵌入。因此,在第二阶段,我们将基本项目表示和关系嵌入的学习率降低了0.1。由于Adam[18]在很多推荐模型中都很成功,所以在每个阶段都使用它作为学习算法。

5实验

5.1实验设置

5.1.1数据集

实验在公开访问的Amazon数据集[9]上进行。除了带有时间戳的用户交互序列外,它还具有项目元数据,包括also_view、also_buy和类别信息的列表。根据以往的研究[28,29],我们将also_view作为替代关系,并将also_buy作为补充关系。不同的是,在我们的工作中,关系意味着is_complementary _of和is_substitute_of。因此,原始的also_view, also_buy关系的方向应该被颠倒。我们采用了三个具有代表性的子数据集:Grocery and Gourmet Food (Grocery), phones and Accessories (Cellphones), and Home and Kitchen (Home)。表2总结了三个数据集的统计数据。注意,在Home数据集中,与历史项目相关的测试用例的比例很低,而且关系数据相对稀疏。

5.1.2评估协议

我们采用了leave-one-out评价法,在文献[4,10,15]中被广泛使用。对于每个消费序列S_u \in \mathcal{S},我们使用每个用户最近的交互进行测试,使用第二个最近的项目进行验证,使用剩余的项目进行训练。考虑到在数据集较大的情况下,某些方法对所有条目进行排序比较耗时,我们随机抽取99个目标用户没有接触过的条目,将项目与这些负面条目进行排序。该方法也被广泛采用[11,41,44]。为了评估推荐质量,我们使用命中率(HR)和归一化折现累积增益(NDCG)[14]作为评价指标。HR@k衡量项目是否出现在top-k推荐列表中,而NDCG@k则关注在排名列表中的位置。我们用不同的随机种子重复每个实验5次,并报告平均分数。

5.1.3对比实验

我们在不同的方面将Chorus模型与7种基线方法进行了比较,包括传统的协同过滤、顺序推荐和包含项目关系或时间动态的方法:

•BPR[33]:该方法提出应用成对排序损失优化矩阵分解模型。

•GMF[11]:这是一种先进的协同过滤方法,利用多层神经网络。

•Tensor[17]:该方法将时间分解为多个箱子,并分解一个三维张量(用户-项目-时间)。

•GRU4Rec[12]:这是一个顺序推荐模型,应用GRU[5]来获得排名分数。

•NARM[27]:该模型利用GRU和注意力机制来提高顺序推荐的性能,这是一种先进的基于会话的方法。

•CFKG[45]:该方法考虑了各种商品关系,将buy视为用户与商品之间的另一种关系。然后利用TransE学习图嵌入并提出建议。

•SLRC ' [41]: SLRC结合Hawkes和CF来模拟重复消费的时间动态。考虑到Amazon数据集中已经删除了重复消费,我们将其设置扩展到关系项的效果,命名为SLRC '。但是它仍然缺乏对物品关系的语义建模。

5.2整体性能

5.3消融实验

5.4不同场景下的性能

除了整体性能的提升,我们还想知道提升的来源。在这里,我们研究了模型在不同场景中的性能。具体来说,我们根据历史序列中是否存在相应的关系消费来构造测试数据集的三个子集。正常意味着以前没有关系项。补充是指目标项是历史序列中某些项的补充。类似地,替代品是指以前的消费作为替代品的情况。当前面有两种关系项时,一个测试用例可以同时处于互补和替代组中。图5显示了不同模型(线)的NDCG@10和三个子集的手机数据集的案例数(条)。我们可以看到,尽管补体和替代组的病例较少,模型往往在这些病例中表现更好。它们可能会固有地演示一些模式,因此与正常情况相比,所有的模型都能获得更好的性能,即使对于没有明确考虑项目关系的BPR也是如此。Chorus能够结合各种方法的优点,从而达到平均最好的表现。请注意SLRC '和CFKG各有优缺点。

尽管SLRC在关系案件中表现良好,特别是在代偿组中,但在正常案件中表现甚至比BPR更差。这表明SLRC’倾向于过度拟合关系案例,从而损害了正常案例的表现。另一方面,尽管CFKG在正常组表现良好,但它在关系案例上不如SLRC“强大”,因为SLRC“明确地模拟了每个关系的时间特征。至于Chorus,它既捕捉了项目关系,也捕捉了类别特定的时间动态。值得注意的是,在一般情况下,Chorus类似于CFKG;在补充情况下,Chorus比SLRC稍微好一点,这两者都是每个场景的最佳基线。虽然Chorus在替补组中不如SLRC '强,但与CFKG相比有明显的提高。结果是,Chorus平均获得了更好的结果,这显示了集成道具关系和细粒度的时间动态的重要性。

5.5参数可解释性

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值