写点什么

MSRA 开源基于注意力机制的全新推荐模型,融合用户长短期偏好

2019 年 9 月 22 日

MSRA开源基于注意力机制的全新推荐模型,融合用户长短期偏好

基于历史交互行为的用户建模是构建精准推荐系统的核心环节,如何融合用户长短期的偏好一直是推荐系统中的热点话题。本文主要探讨的两个话题是:(1)改进已有的 RNN 结构,使其能够适应复杂的上下文状态,更好地学习用户的短期偏好;(2)基于用户的历史行为,分别生成长期和短期的偏好向量,并结合即时环境因素融合用户长短期的偏好。本文是 AI 前线第 93 篇论文导读,我们将对这项研究工作进行详细解读。


介绍

在信息过载的时代,推荐系统(RS)在在线服务中是必不可少的,广泛应用于在线购物、电影、音乐和新闻阅读服务等领域。推荐系统目前最流行的两种模式:一般推荐和序列推荐。一般推荐的目的是学习用户的长期偏好,这些长期偏好通常是基于统计获得并且更新缓慢。基于因式分解的协同过滤方法是该领域最著名的技术。然而,用户行为的意图本质上是可变的,在一定的时间内,可能会受到各种因素的影响,如兴趣演变、即时需求和全球主流时尚。


近年来,序列推荐在捕获 item-to-item 的序列关系方面的优越性引起了人们的广泛关注,这种优越性满足了探索用户短期偏好的需要。受循环神经网络(RNN)在其他领域成功应用的启发,特别是自然语言处理(NLP),RNN 方法现已成为序列推荐的主流模型。


常见的 RNN 是假定一个序列中连续 item 之间的服从均匀分布模式。例如,在 NLP 应用中,一个句子中任意两个连续单词之间的间隔可以被视为相等的,整个句子被组织起来表达相同的(语义)主题。然而,用户在现实世界中的行为序列要复杂得多,本文主要研究两个关键问题:动态时间间隔和动态潜在意图。第一个问题表示用户连续行为之间的时间间隔是可变的。例如,他/她的下一个行为可能发生在第二天或下周。从直觉上看,短时间间隔内的两个行为比长时间间隔内的两个行为有着更为密切的关系,因此这种时间距离值得特殊处理。


另一方面,动态潜在意图问题表明了一种语义距离。用户意图,也被称为用户行为背后的主要目的,经常在会话之间发生变化。不相关的行为对于预测用户未来的某些行为是无用的。例如,假设一个用户的购买历史是[iPhone xs、airpods、yogurt X、cat food X],当我们想向他推荐笔记本电脑时,只有前两个购买行为,即 iPhone XS 和 AirPods,是强烈的信号来推断他/她可能对 MacBook 系列感兴趣。最近的一些研究工作仅讨论了这两个挑战的部分内容,并没有在一个统一的模型中同时解决动态时间间隔和潜在意图问题。


基于上述观察结果,我们首先提出了一种基于 LSTM 的新型序列推荐,命名为 TC-SeqRec,用于更好的短期用户建模。我们的 TC-SeqRec 模型中有两个关键机制,分别对应于时间感知控制器和内容感知控制器。具体地说,为了处理时间感知距离,我们建议使用经典的 LSTM 中的门控机制,它能够根据时间上下文来控制信息应在多大程度上传输到未来阶段。


为了处理内容感知距离,我们采用注意力机制动态过滤用户行为序列中的无关行为,因为注意力机制在多个领域(如推荐系统、问答系统、机器翻译等)中都取得了显著的效果。通过与时间感知和内容感知机制的联合训练,TC-SeqRec 对于短期用户建模更为有效而且强大。


通常,我们不仅仅只依赖 RNN 来实现序列推荐系统。尽管用户的兴趣可能是随时间变化的,但仍有一些静态因素影响着用户的行为,这反映了他们的长期偏好。这就是现有方法倾向于将短期和长期交互结合起来的原因。我们发现,这两个方面的简单和静态结合是不够的。以前的时间感知和内容感知观察也可以应用于这个组合阶段。我们提出了一种基于注意力的融合方法,在特定的情况下,例如什么时间(如果下一个行为发生在最后一个行为后不久,短期信息可能在预测中起主要作用;否则,我们应该改变对长期偏好组件的权重)以及什么场景(如果最近的一些行为具有明确的意图,那么下一个行为可能具有更高的共享相同意图的概率)。我们将结合模型命名为 SLi- Rec,它是综合短期和长期偏好推荐系统的简称。我们对公共数据集和工业数据集进行了广泛的实验,结果表明,我们提出的模型明显优于一些 state-of-art 的模型。


模型

假设 U={u1,u2,…,un}表示一组用户和 I={i1,i2,…,im}表示一组 item。用户历史行为由一个有序列表表示:B(u)={(i(u)(1),t(u)(1)),i(u)(2),t(u)(2)),…,i(u)(|B(u)|),t(u)(|B(u)|)),其中(i(u)(1),t(u)(1))表示用户 u 在时间 t(u)时与项目 i(u)交互,i<j,t(i)<t(j),|B(u)|表示用户行为序列中的行为数。我们的任务属于基于嵌入的用户建模的范畴,即给定 B(u),我们将生成一个稠密的用户向量 p(u)=<p1,p2,…,pd>,它编码用户的偏好,并可用于(与其他丰富的特征一起)预测他/她在时间 t§将要交互的 item,其中 p=B(u)+1。


为了使用户向量更具表现力,我们将引入一种方法,将长期和短期偏好结合起来。在实际的工业推荐系统中,用户的长期偏好可以在相对较长的时间范围内学习并离线计算。另一方面,可以根据相对较短的近期行为,在在线的服务中推断出用户的短期偏好,以降低计算成本。接下来,我们将详细介绍我们提出的模型,分为三个部分:短期偏好建模、长期偏好建模和自适应融合阶段。


短期偏好建模

由于 RNN 在序列用户建模方面的卓越表现,近年来在学术界和工业界都引起了极大的关注。序列更新过程非常简单,可以定义如下:



其中 g 是激活函数,x(k)是最新的用户行为,h(k−1)是最后一个隐藏状态。在所有基于 RNN 的模型中,LSTM(长短期记忆)和 GRU(门控循环单元)最常用于 RS 中。在我们自己的工业数据集上观察到,本文中 LSTM 比 GRU 稍好,但不失一般性。我们用 LSTM 建立模型,其方程如下:



其中 W*,U*为可训练参数,D 为 RNN 中输入嵌入层和隐藏层的维数(为便于记法简单,我们假定维数 k 的大小相等)。f(k)、i(k)、o(k)分别表示遗忘门、输入门和输出门。c(k)表示 cell 状态,x(k)表示第 k 个 item 的输入嵌入,而⊙表示 element-wise 的乘积。通常,σ是 sigmoid 函数,而φ是 tanh 函数。


与 NLP 中句子中的单词不同,在 NLP 领域中,item 可以被视为等间距且语义一致,而用户行为的序列要复杂得多。在这里,我们主要关注这两个挑战:


(1)时间不规则。两次连续行为之间的时间间隔是可变的。例如,用户 A 的购买历史是 B(a)={(i(a)(1),Feb 1(st)),(i(a)(2),Feb 2nd),(i(a)(3),Apr 2(nd)},从 i(a)(1)到 i(a)(2)转变的信息比从 i(a)(2)到 i(a)(3)转变的信息更合理,因为物品 i(a)(2)在购买物品 i(a)(1)后仅一天购买,而物品 i(a)(3)在上次购买后两个月购买。


(2)语义不一致性。用户行为序列中的 item 可能不会共享相同的语义主题(我们通常称之为用户意图)。例如,用户 A 的购买序列可能包包含 items {iphonexs,airpods,lawnmower,Bikini},这些 items 表征他/她的不同需求,只有前两个 item 是预测他/她购买下一个电子产品行为的强烈信号。


为了解决时间不规则问题,我们修改了 LSTM 中的门控逻辑,使其对时间变化敏感。我们介绍两个时间感知特征,即时间间隔特征δ(tk)和时间跨度特征 s(tk),如下所示:



时间跨度特征 s(tk)编码当前状态 tk 和预测状态 tp 之间的绝对时间距离,时间间隔特征δ(tk)编码两个连续状态之间的相对时间距离。我们添加了一个全连接层,将时间感知特征转换为稠密向量,然后相应地计算时间门(T(δ)和 T(s))。式(4)现在改为



式(5)更新为:



为了解决语义不规则问题,我们采用了注意力机制来压缩偏离目标方向的信息。实际上,注意力机制已被广泛用于筛选不相关的 item 或区分相关 item 的不同程度的影响分数。item 的注意力得分通过以下方式计算:



其中 e§表示要进行预测的 item 的另一个嵌入向量,我们称之为预测嵌入,与输入嵌入向量 x§不同。注意力得分 a(k)根据目标 item 决定哪些 item 应该被重点关注或忽略。我们利用这些分数来调整 cell 和隐藏状态:



不是使用最后一个隐藏状态作为用户表征,即 p(u)(short)=h(~)(k),而是我们通过所有隐藏状态的加权平均值来定义用户的短期偏好:



我们称之为短期偏好模型 TC-SeqRec,这表明该模型是一个时间和内容感知的序列推荐器。


长期偏好建模

在这一部分中,我们的目标是为用户的一般偏好建模,这些偏好是固有的、静态的,或者改变缓慢的。矩阵分解技术是学习这种长期偏好最成功的方法。我们没有为用户提供显式的参数,而是采用了注意力的“Asymmetric-SVD”范式,该范式通过用户与之交互的 item 来表征用户:



与注意力的协作过滤相似,a(l)(j)是行为 j 的加权分数。我们假设并非所有行为都有相同的贡献,因此,为相关的信息较强(信息较差)的行为分配较高(较低)的权重是有意义的。权重得分计算如下:



通常我们可以在非对称的 SVD 上加一个一般的用户向量,即 p(long)(u)=



。但是为了减少参数和防止过度拟合,我们只使用等式(18)作为用户表征。


自适应融合方法

短期和长期部分都有优点和缺点。有必要融合一下这两个部分。我们设计了一种信息融合的自适应方法,而不是使用简单的方法,例如 p(final)(u)=p(short)(u)+p(long)(u)。设计的动机是哪个组件应该扮演更重要的角色取决于具体的上下文,比如什么时候(如果在之前的行为之后很快发生下一步行为,那么短期的偏好可能更具信息量)和什么信息(移动电话等某些 item 是从长期偏好中更好地推断,而从短期信息中更好地推断某些类别,如移动配件)。因此,动态信息融合是有益的,我们提出了以下基于注意的自适应融合方法:



其中[p(short),p(long),x(context)]表征短期信息、长期信息和上下文信息的连接。注意,对于上下文信息,我们可以根据现有的特征,包含各种重要特性,例如时间间隔、时间戳、位置和 item 的类别。在我们的实验中,我们只包括 item 间隔和目标 item 的预测嵌入。我们称之为 SLi-Rec 模型,它是短期和长期偏好综合的推荐系统的简称。


衡量用户和项目交互的典型内积函数是 y^(ui)=<p(final)(u),e(i)>。一种更灵活的方法是将它们输入多层感知器(MLP)。通过这种方式,各种附加特征,例如用户画像和上下文特征,可以很容易地集成到工业推荐系统中。为了强调不同用户表征的影响,本文只将用户向量和 item 向量连接作为两层 MLP 的输入,实验部分的所有比较模型都将共享此设计模式,即 y^(ui)=MLP([p(final)(u),e(i)])。


由于我们的实际工业任务与点击率(ctr)预测有关,我们将推荐任务定义为二元分类问题,其中负对数似然函数(log loss)通常用作损失函数:



其中 n 是训练集实例的总数。y(i)=1 表示正实例(用户已与该 item 交互),y(i)=0 表示负实例。优化过程是将损失函数和正则化项最小化:



其中Θ 表示一组可训练参数。


实验

我们使用公共数据集和我们自己的工业数据集进行实验分析。数据集的基本统计(过滤之后)如表 1 所示。



数据集

Amazon 数据集 这是一个公共数据集,包含来自 Amazon 的产品评论和元数据。目前,它被广泛用于 RS 领域的基准数据集。评论可以揭示顾客的购物行为。我们选择三个子类别,即电子、电影和电视、CD 和 Vinyl,以及整个合并的 Amazon 数据集的一个子集进行实验。Item 由 item id 和类别 id 表示。考虑到用户先前的 T 个行为序列,我们希望预测他的第 T+1 次的行为。对于每个用户,他/她的最后一个行为将作为测试集显示出来。对于每个正实例,我们随机抽取一个负实例。50%的测试集用于超参数调整,其余的用于报告评估指标。


工业数据集 我们真正的应用场景是原生广告。我们在 MSN 主页上显示个性化广告,广告看起来像是页面编辑流的一部分。用户的行为序列由常规浏览记录的有序列表组成。因此,输入嵌入是从浏览记录的标题中派生出来的,而预测嵌入是从广告项中派生出来的。我们从 2018 年 11 月的连续 10 天中提取曝光日志。并对非点击日志进行下采样,使正样本与负样本的比率为 1:5。前 7 天作为训练集,后 3 天作为测试集。与 Amazon 设置类似,50%的测试集用于超参数优化,其余的用于报告评估指标。


对比方法

我们将 SLi-Rec 与以下竞争模型进行了比较:


ASVD[Koren,2008]通过用户与之交互的项目表征用户,其中 Item 贡献是均等的。我们进一步使用公式 18 来获得注意力 ASVD,简称 A(2)SVD。


DIN [Zhou et al.,2018] 根据目标 item,使用注意力机制动态激活用户行为历史中的相关 item。


LSTM 经典的 LSTM 模型用于序列预测。


NARM [Li et al., 2017]是一种基于神经网络注意力的推荐,通过将注意力机制纳入 RNN 中,来捕获用户在当前会话中的主要意图。


RRN [Wu et al., 2017]除了传统的低阶因子分解外,还利用 LSTM 动态捕获。此方法与 LSTM 基线之间最大的区别在于,在 RRN 中,用户项交互通过时间粒度进行聚合。我们尝试了每日和每周的粒度,用 RRN-day 和 RRN-week 表示。


**LSTM++ **结合 A2SVD 和 LSTM 基线来捕获长期和短期偏好。为了方便起见,我们将其定义为 LSTM++。


CA-RNN [Liu et al., 2016] 是一种上下文感知的递归神经网络,它在 RNN 框架中采用了自适应上下文特定的输入矩阵和转换矩阵。


T-LSTM [Zhu et al., 2017]  利用 LSTM 的时间门来模拟时间间隔。与我们的模型不同,它不处理时间跨度,而是依赖时间门来捕获长期和短期兴趣。


DIEN [Zhou et al., 2019] 是最新的相关工作,它用 GRU 的两层来模拟用户行为的顺序行为。其关键组成部分包括兴趣抽取层和兴趣演化层。长期偏好部分的 baseline 是 ASVD。


优化器为 Adam。item/category 的嵌入维度 18,RNN 的 hidden 层为 18。MLP 的维度为 36。我们使用网格搜索的方法,在验证集上搜索超参数。我们模型的最佳设置为:学习率为 0.001;L2 正则化为 0.001;没有 dropout;batch normalization 仅在最终用户 embedding 和 item 的 embedding 的拼接后使用;Amazon 数据集上,MLP 的激活函数使用 Dice[Zhou et al., 2018] ,Ads 数据集上使用 ReLU;用户行为的最大长度设置为 100。


评估指标 在第 3.3 节中,我们将推荐任务定义为一个二分类问题,因此我们使用 AUC 和 F1 评分作为评估指标。AUC 衡量一个正样本比随机选择的负样本排名高的概率。F1 分数是精准率和召回率的调和平均数。这些指标从不同方面总结了模型的性能。


结果

对比 baseline 表 2 和表 3 分别显示了不同模型在 AUC 和 F1 得分方面的总体表现。ASVD、A2SVD 和 DIN 是在没有序列机制情况下建模的,而其他模型则有序列组件。A2SVD 和 DIN 优于 ASVD,这表明为项目分配重要性评分是有益的。


包含短期和长期的兴趣对于推荐系统是有意义的,通过比较 LSTM++和 LSTM 可以很容易地验证这一点。NARM 最初是为捕获当前会话中用户的主要意图而设计的,这与我们的应用程序场景不同,因此它的性能在我们的案例中并不突出。在大多数情况下,CARNN、T-LSTM 和 DIEN 优于 LSTM 和 RRN,这直接验证了在序列中考虑上下文信息是有帮助的。最后,我们提出的 SLi-Rec 模型在三个评估指标中显著优于五个数据集上的所有基线。SLi-Rec 的优越性取决于三个组成部分,即短期部分、长期部分和自适应融合部分。接下来,我们将分别研究这些组件的有效性。




短期偏好部分的模型变体 为了验证我们的时间感知和内容感知控制器的设计对于短期偏好建模是否必要和有效,我们研究了几种变体。表 4 显示了结果。所有其他模型都优于 LSTM,这表明考虑复杂的用户行为模式确实有意义。T-SeqRec 是我们的短期偏好模型,只启用时间感知控制器。与 T-LSTM 相比,T-SeqRec 不仅使用时间间隔特征,而且还使用时间跨度特征。TC-SeqRec*是启用内容感知控制器的不同方法,其中 i 表示 item 的注意力分数(等式(13))应用于输入特征,而不是 cell 和隐状态,g 表示我们使用最后一个状态作为短期偏好,而不是平均所有隐状态(等式(17)通过与这些不同的变量进行比较,我们可以发现时间感知和内容感知控制器都有利于短期用户建模。



自适应融合的有效性 表 5 展示了等式(22)中α的各种选择。α=0 和α=1 分别表示仅使用长期或短期组件。α=fixed 意味着我们根据经验为每个数据集搜索一个固定的最佳值(类似于两个组件的端到端集成)。我们观察到,短期组件总是明显优于长期组件,因此有时这两个组件的简单组合甚至比短期组件更糟糕。自适应融合机制是必要并且有效的。为了直观地了解α将如何随上下文变化,我们根据用户最后一次行为的时间间隔拆分测试实例。例如,1 小时意味着我们想要预测的行为发生在用户最后一个行为之后的 1 小时内。图 1 显示了结果。有一个明显的趋势,即长期组件的重要性随着时间间隔的增加而增加,这符合我们的假设。




长期偏好部分的注意力机制 为了验证等式(18)是否能够学习不同 item 的区分重要性分数,我们在整个数据集中输出等式(20)中 item 的权重值。为了更好地说明,对于每个类别,我们最多抽样 1000 个 item,忽略少于 100 个 item 的类别。我们根据 item 的标准化重要性得分对其进行排序,并绘制图 2a。对于每个类别,我们计算该类别下所有 item 得分的平均值和方差,并绘制图 2b(得分按 1e-5 进行缩放)。我们可以观察到,item 被分配有区分性的分数,很少 item(少于 2%)被分配一个大于 0.5 的标准化的分数。



结论

在本文中,我们提出了一种新的 SLi-Rec 模型,它综合了短期和长期偏好对用户行为更好的建模。我们观察到,用户行为序列比其他应用领域(如 NLP 中的句子)中的序列更复杂、更具有挑战性,因此我们提出了时间感知和内容感知控制器,以使经典的 LSTM 更适合用户行为建模。我们还提出了一种基于注意力的推理方法,根据具体的语境,自适应地将长期偏好和短期偏好结合起来。我们对公共数据集和工业数据集进行了广泛的实验,实验表明,我们提出的模型始终优于最先进的方法。


论文地址:https://www.ijcai.org/proceedings/2019/0585.pdf


论文模型代码地址:https://github.com/zepingyu0512/sli_rec


2019 年 9 月 22 日 14:001966
用户头像

发布了 24 篇内容, 共 14.6 次阅读, 收获喜欢 50 次。

关注

评论

发布
暂无评论
发现更多内容

【架构师训练营第 1 期 13 周】 学习总结

Bear

极客大学架构师训练营

架构师训练营 2 期 Week09 总结

Calvin

增强产业链供应链自主可控能力

CECBC区块链专委会

供应链

盘点2020 | 我要为分布式数据库mongodb在国内影响力提升及推广做点事

杨亚洲(专注mongodb及高性能中间件)

数据库 mongodb 盘点2020 分布式数据库mongodb

南昌“舞动”区块链

CECBC区块链专委会

区块链 基础设施

互操作性如何助推区块链接入互联网基础设施

CECBC区块链专委会

区块链 密码学

架构师训练营 2 期 Week09 作业

Calvin

成为架构师 - 架构师训练营第 08 周

陈永龙Vincent

训练营第九周作业

大脸猫

极客大学架构师训练营

架构师训练营week13 作业

FG佳

极客大学架构师训练营

架构师训练营第 1 期 -- 第十三周作业

发酵的死神

极客大学架构师训练营

第十三周作业

orchid9

C语言学习你要的都在这里

C语言与CPP编程

c++ 学习 编程 C语言

JVM垃圾回收原理

幸福小子

JVM垃圾回收原理

架构师训练营第二期 Week 9 总结

bigxiang

极客大学架构师训练营

训练营第九周总结

大脸猫

极客大学架构师训练营

[架构师训练营第 1 期] 第 13 周命题作业

猫切切切切切

极客大学架构师训练营

架构师训练营 - 第十三周 - 作业一

行者

redis的I/O多路复用

en

redis 多路复用 epoll

架构师训练营第九周作业

李日盛

架构

【架构师训练营第 1 期 13 周】 作业

Bear

极客大学架构师训练营

成为架构师 - 架构师训练营第 07 周

陈永龙Vincent

架构师训练营第2期 第9周总结

月下独酌

极客大学架构师训练营

架构师训练营第二期 Week 9 作业

bigxiang

极客大学架构师训练营

JVM&秒杀案例

幸福小子

JVM原理

第十二周作业

TheSRE

极客大学架构师训练营

week13作业

追风

架构师一期

第十三周总结

orchid9

架构师训练营第九周笔记

李日盛

周练习 13

何毅曦

架构师训练营 week13总结

FG佳

极客大学架构师训练营

混合云之争的开端与终途

混合云之争的开端与终途

MSRA开源基于注意力机制的全新推荐模型,融合用户长短期偏好-InfoQ