HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

  • 2019-09-22
  • 本文字数:7105 字

    阅读完需:约 23 分钟

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-09-22 14:003260
用户头像

发布了 27 篇内容, 共 19.1 次阅读, 收获喜欢 56 次。

关注

评论

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

瓴羊Quick BI报表工具助企业洞察市场趋势,让数据说话

对不起该用户已成仙‖

新利好带动 POSE 持续上扬,月内几近翻倍

大瞿科技

山东布谷科技直播平台搭建游戏开发技术分享:数据存储的重要意义

山东布谷科技

软件开发 游戏 数据存储 源码搭建 直播平台搭建

ToolLLM:能够使用 16000 种真实 API 的 LLM

Zilliz

AIGC Towhee LLM

【我和openGauss的故事】openGauss5.0在某省医保局实时数仓应用

daydayup

go-zero 是如何实现令牌桶限流的?

AlwaysBeta

Go 源码 微服务 go-zero 限流器

2023-08-10:景区里有m个项目,也就是项目数组为int[][] game,这是一个m*2的二维数组 景区的第i个项目有如下两个参数: game[i] = { Ki, Bi } Ki一定是负数,

福大大架构师每日一题

左程云 福大大架构师每日一题

2023 年最新、最全、最实用的 Java 岗面试真题,已收录 GitHub

采菊东篱下

程序员 java面试

【我和openGauss的故事】openGauss5.0特性:CM支持VIP仲裁特性

daydayup

javascript之webAPIs(1)

timerring

JavaScript

怎么快速更新Python的第三方库?教你一招,小白也能学会

程序员晚枫

Python 编程 计算机 第三方库

新利好带动 POSE 持续上扬,月内几近翻倍

BlockChain先知

C++友元函数和友元类的使用

梦笔生花

c++ 友元

新利好带动 POSE 持续上扬,月内几近翻倍

鳄鱼视界

Programming abstractions in C阅读笔记:p91-p106

codists

小程序生成App:可跨平台开发的移动应用开发框架

没有用户名丶

为MySQL新增一张performance_schema表 | StoneDB 技术分享会 #4

StoneDB

MySQL 数据库 HTAP StoneDB

【NodeJS】GLIBC_2.28 not found CentOS7不兼容Node高版本

ReturnTmp

node.js centos

SpringBoot3分库分表

Java 架构 springboot SpringBoot3

14. 练习:登录注册系统

茶桁

Python 练习 登录注册

Spring 架构

小万哥

Java spring 后端 springboot SpringCloud

作为网络报表分析工具的Quick BI,其功能如何

夜雨微澜

【Linux】云服务器自动化部署VuePress博客(Jenkins)

ReturnTmp

jenkins vuepress

新利好带动 POSE 持续上扬,月内几近翻倍

威廉META

openGauss-graph 0.2.0版本正式上线

daydayup

openGauss数据库源码解析系列文章——安全管理源码解析(四)

daydayup

新利好带动 POSE 持续上扬,月内几近翻倍

股市老人

openGauss数据库源码解析系列文章——安全管理源码解析(三)

daydayup

MSRA开源基于注意力机制的全新推荐模型,融合用户长短期偏好_语言 & 开发_吴少杰_InfoQ精选文章