Leaping Through Time with Gradient-based Adaptation for Recommendation

文章介绍了一种名为LeapRec的新方法,它使用基于梯度轨迹的元学习来建模用户偏好随时间变化的时间动态。LeapRec通过全局时间跳跃(GTL)和有序时间跳跃(OTL)捕捉长期和短期模式。GTL学习通用模式,而OTL则关注瞬态趋势。元学习允许模型快速适应新任务,减轻冷启动问题。实验结果显示,LeapRec在与现有方法的比较中表现出色。
摘要由CSDN通过智能技术生成

《基于梯度适应的跨时间推荐》

原文链接

Introduction

Background

用户的偏好和他们对物品的看法经常会随着时间的推移而变化,这给推荐系统的设计提出了一个挑战:如何将动态的时间
temporal-dynamics整合到推荐结果中?

与流行的循环建模方法不同,本文提出一种LeapRec的新解决方案,通过使用基于梯度轨迹的元学习方法来建模时间依赖性的问题。LeapRec通过名为全局时间跳跃(GTL)和有序时间跳跃(OTL)的两个互补部分来描述时间动态信息。
GTL通过在无序时间数据中寻找最短学习路径(训练方向)来学习长期模式。同时,OTL通过考虑时间数据的顺序性质来学习短期模式。

Meta-learning

从能够快速适应新任务的元学习meta-learning中获得灵感,我们假设元学习方法可以用于建模动态的时间。
由于元学习具有以下优势:

  1. 与机器学习learn y = f ( x ) y= f(x) y=f(x) f θ ( ⋅ ) f_θ(·) fθ()不同的是,元学习要学的是寻找 f θ ( ⋅ ) f_θ(·) fθ()的能力,即学习F,靠F找到解决各个任务的f们;因此在推荐场景中可以把某个时间段上的用户*物品上的交互预测作为单独的任务,元学习方法便可以用于建模动态的时间。
  2. 适合小样本few-shot,缓解冷启动问题cold-problem。(符合人脑的先验理论)
  3. 元学习常用的MAML算法(Model-Agnostic Meta-Learning)比起"健忘"的基于RNN的模型更具有优势,利用优化过程的梯度路径来学习参数的初始化,从而可以快速适应未知的任务。

Controbution

在本文中,我们研究了元学习在推荐系统时间动态建模中的应用。

总体方法是将每个时间段的数据推荐问题视为单独的任务。这种方法意味着在优化过程中,每个时间步骤time step都被建模为一个梯度步骤序列a sequence of gradient steps(梯度路径a gradient path)。
我们提出LeapRec作为一种基于梯度轨迹的元学习的新适应推荐系统,图1展示了此方法的概述。
在LeapRec中,我们将时间动态分为两类:全局时间跳跃(GTL)有序时间跳跃(OTL)
GTL寻找所有时间段共享的通用模式——电子商务中这些模式的例子包括经典书籍、基本书籍和有史以来最畅销的书籍。另一方面,OTL从瞬间的社会趋势中捕捉到时间动态。
另外,当将LeapRec用作其他推荐系统的插件方法时,可以显著提高它们的性能。
在这里插入图片描述
贡献总结如下:

  1. 据我们所知,LeapRec是第一个将 “基于梯度轨迹的元学习方法” 引入推荐系统中的。
  2. 为了充分利用基于轨迹的方法来做推荐,我们提出了LeapRec的两个组件,命名为全局时间跳跃和有序时间跳跃。
  3. 我们的实证结果表明,与现有的方法相比,LeapRec有了明显的改进,并且实证分析解释了LeapRec的动态行为。
    在这里插入图片描述

Preliminaries

Problem setup

U = { u 1 , u 2 , . . . , u U } U = \{u_1, u_2, . . . , u_U\} U={u1,u2,...,uU}: 长度为 ∣ U ∣ |U| U的用户集合
I = { i 1 , i 2 , . . . , i I } I = \{i_1, i_2, . . . , i_I\} I={i1,i2,...,iI}: 长度为 ∣ I ∣ |I| I的物品集合
T = ( t 1 , t 2 , . . . , t T ) T = (t_1, t_2, . . . , t_T) T=(t1,t2,...,tT): 长度为 ∣ T ∣ |T| T的时间段timestamps的有限序列
D = { D t 1 , D t 2 , . . . , D t T } D = \{D_{t1}, D_{t2}, . . . , D_{tT}\} D={Dt1,Dt2,...,DtT}:用户和物品的交互集合, w h e r e t ∈ T a n d D t ∈ 2 U × I where \quad t ∈ T \quad and \quad D_t ∈ 2^{U×I} wheretTandDt2U×I

**预测任务:**建立一个学习模型,高精度地预测 t T t_T tT后新的交互。

Objective function for recommendation

定义打分函数 f θ ( u , i ) f_θ(u, i) fθ(u,i):一个用户 u u u会与物品 i i i产生交互的可能性。
通常来说,贝叶斯个性化排序(BPR) 是待优化目标函数的合适选择,其核心思想是通过对比学习原则,最大化交互的可能性。
模型 f θ ( ⋅ ) f_θ(·) fθ()被训练来区分观察到的(积极的)和未观察到的(消极的)相互作用的排名。
形式上,我们通过最小化关于参数θ的BPR损失 L ( θ ; D ) L(θ;D) L(θ;D)来学习模型 f θ ( ⋅ ) f_θ(·) fθ()
在这里插入图片描述
( u , j ) ∼ D ˜ (u,j)∼D^˜ (u,j)D˜表示(u,j)从负样本空间 D ˜ D^˜ D˜中进行了均匀采样。

Leap: Trajectory-based Meta-Learning

基于梯度的元学习旨在获得模型参数的初始化,也称为元参数 θ ¯ θ^¯ θ¯,这样它就可以通过梯度快速适应不同的学习任务。
Flennerhag等人[2019b]最近提出了一种基于轨迹的元学习方法,可以最大限度地缩短学习过程的长度
学习过程的长度由两个部分组成:
1.(i) 损失函数之间的差值 the distance between the loss landscape
2.(ii)更新参数空间中的差值 the distance in the parameter space of an update

即从 θ τ k 到 θ τ k + 1 θ^k_τ到θ^{k+1}_τ θτkθτk+1,且 θ τ 0 ← θ ¯ θ^0_τ←θ^¯ θτ0θ¯
在这里插入图片描述
τ τ τ表示从某个分布 p ( τ ) p(τ) p(τ)中采样的任务, K K K是更新的步数, L τ L_τ Lτ τ τ τ任务的损失函数,
∆ L τ k = L τ ( θ τ k + 1 ) − L τ ( θ τ k ) ,∆ θ τ k = θ τ k + 1 − θ τ k ∆L^k_τ = L_τ (θ^{k+1}_τ) − Lτ (θ^k_τ),∆θ^k_τ = θ^{k+1}_τ − θ^k_τ Lτk=Lτ(θτk+1)(θτk)θτk=θτk+1θτk 对应上文讲的"学习过程的长度"。
随后,我们通过采用简单的基于梯度的更新来定义 θ θ θ的更新,遵循MAML中: θ τ k + 1 ← θ τ k − α ∇ L τ ( θ τ k ) θ^{k+1}_τ←θ^k_τ−α∇L_τ (θ^k_τ) θτk+1θτkαLτ(θτk),其中 α α α表示学习速率。

Proposed Method

Leaping Through Time

为什么要将Leap应用到我们的推荐模型中呢,因为我们假设每个时间步骤的数据视为一个独立的任务。
而LeapRec的两个组件components,全局时间跳跃(GTL)与有序时间跳跃(OTL),是为了分别处理长期信息long-term和短期信息short-term而设计的。
我们将 γ ¯ γ^¯ γ¯ γ γ γ表示为GTL的元参数和模型参数,将 ω ¯ ω^¯ ω¯ ω ω ω表示为OTL的元参数和模型参数。

Global Time Leap (GTL)

GTL的目标是通过最短化从元参数 γ ¯ γ^¯ γ¯开始的梯度路径来找到所有时间步骤的共同模式。

定义一个任务:每个时间步骤下的推荐目标,并使用以下损失函数: L t ( γ ) = L ( γ ; D t ) L_t(γ) = L(γ; D_t) Lt(γ)=L(γ;Dt)
这就相当于在单个时间尺度下(也许是一个月),从用户和商品此时的交互 U ∗ I U*I UI矩阵中学习用户的偏好,并给出Top-N的偏好商品排序。

梯度也更新遵守MAML的设定: γ t k + 1 ← γ t k − α ∇ L t ( γ t k ) γ^{k+1}_t ← γ^k_t − α∇L_t(γ^k_t ) γtk+1γtkαLt(γtk) with γ t 0 ← γ ¯ . γ^0_t ← γ^¯. γt0γ¯.

从元 γ ¯ γ^¯ γ¯发散到单个任务的参数 γ t γ_t γt,之后每次都要恢复到 γ ¯ γ^¯ γ¯(如图1所示),这是因为 γ ¯ γ^¯ γ¯存储了跨所有时间步的信息,这种机制模仿了用户在所有时间步骤中的静态或长期偏好。(贝叶斯理论中的先验知识)

Ordered Time Leap (OTL)

为了捕获短暂时间尺度下偏好的变化,我们的做法是通过在时间序列中积累的梯度轨迹来捕获时间信息。

  1. ω t i k ω^k_{ti} ωtik表示为在梯度步长 k k k,时间步骤 t i ti ti时的参数。
  2. ω ¯ ω^¯ ω¯作为参数更新的起点 ω t 1 0 ω^0_{t1} ωt10,即 ω t 1 0 ← ω ¯ ω^0_{t1} ← ω^¯ ωt10ω¯
  3. 更新模型参数,并沿着轨迹累积梯度(4和5):
  4. 在单个时间步骤 t i t_i ti下, ω t i k ← ω t 1 0 − α ∑ k = 0 K − 1 ∇ L t i ( ω t i k ) ω^k_{ti} ← ω^0_{t1} − α \sum ^{K−1}_{k = 0} ∇L_{ti}(ω^k_{ti}) ωtikωt10αk=0K1Lti(ωtik)
  5. 然后将这个参数结果代入到下一个时间步骤 t i + 1 t_{i+1} ti+1的参数中: ω t i + 1 0 ← ω t i K ω^0_{ti+1} ← ω^K_{ti} ωti+10ωtiK ,以此类推,直到最后一个时间步骤 t T t_T tT

这样子设置的实际意义是,获得的参数 ω t T K ω^K_{tT} ωtTK与时间序列上前面的时间步骤很"接近"。由于神经网络中灾难性遗忘的影响可以通过梯度轨迹正则化来缓解[Goodfellow等人,2015;Chaudhry等人,2018],最短梯度路径有助于保留之前时间步骤中的有用信息。

Meta-optimization

LeapRec将GTL和OTL的预测分数相加起来:
在这里插入图片描述
为了训练{ γ ¯ , ω ¯ γ^¯,ω^¯ γ¯ω¯},我们使用Leap在迭代结束时同时更新{ γ , ω γ, ω γω}和更新{ γ ¯ , ω ¯ γ^¯,ω^¯ γ¯ω¯}。在推荐场景中,我们使用最新的模型参数{ γ t T K , ω t T K γ^K_{tT}, ω^K_{tT} γtTKωtTK}进行建议。

Neural Recommender

最后,为了验证本文提出的LeapRec适用于推荐系统,我们设计了一个神经推荐器,由一个图神经网络GNN和一个自注意力机制SA组成。
在这里插入图片描述
神经推荐器先学习一个embedding矩阵 E ∈ R ( U + I ) × d E ∈ R^{(U+I)×d} ER(U+I)×d,每一行代表d维度的user ( e u ∈ R d ) 和 i t e m ( e i ∈ R d ) (e_u ∈ R^d)和item(e_i ∈ R^d) (euRd)item(eiRd),而GTL和OTL在该阶段体现在embedding的维度上, d G T L 和 d O T L d^{GTL}和d^{OTL} dGTLdOTL,也就是说在学习embedding矩阵时,已经完成了对时间动态的初步建模。紧接着将矩阵输入到GNN中,异构图的形式使得GNN能够捕获用户和物品之间超越局部交互结构的相似性,有助于学习共同模式;而SA捕获物品之间的依赖关系;由此可以说LeapRec增强了上述两种机制学习时间动态的能力。

Prediction

现在我们假设 D = { D t 1 , D t 2 , . . . , D t T } D = \{D_{t1}, D_{t2}, . . . , D_{tT}\} D={Dt1,Dt2,...,DtT}已经跑完了神经推荐器,为了查询用户u与物品i的兼容性得分:

  1. 获取SA机制中最后一层的输出 x ∣ S u ∣ + 1 u x^u_{|Su|+1} xSu+1u,作为 e u e_u eu
  2. 从GNN的输出中找到 e i e_i ei
  3. u和i之间的兼容性得分 = < e u , e i > R d =<e_u, e_i>_{R^d} =<eu,ei>Rd,公式3中的 f ω O T L 和 f γ G T L f^{OTL}_ω和f^{GTL}_γ fωOTLfγGTL是通过这种点积的形式确立的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值