WSDM'22「微信」在线推荐:图神经网络+元学习->长短期时序元学习

2022-09-19 11:21:54 浏览数 (2)

title:Long Short-Term Temporal Meta-learning in Online Recommendation link:https://arxiv.fenshishang.com/pdf/2105.03686.pdf from:WSDM 2022

1. 导读

本文在推荐系统中,同时考虑目标推荐任务的用户行为和其他任务的用户行为。然而,由于实时训练效率和外部行为获取的现实限制,在充分利用大规模系统中的所有历史行为的同时对实时新趋势进行快速适应是极具挑战性的。本文提出长短期时间元学习框架LSTTM,利用图结构发掘多源用户行为中的关系,并结合元学习来发掘用户的实时兴趣

2. 方法

  • 定义1:用户内部行为是目标推荐任务中,用户的一系列行为。反映用户对商品的偏好。
  • 定义2:用户外部行为是其他应用中用户的行为,可以与内部行为相关联后,对内部行为进行补充。
  • 定义3:时间元学习是将不同时间段的推荐看做不同的任务,通过元学习专注于不同时间的用户行为的快速适应,以适应短期兴趣。

2.1 总体框架

如图所示为LSTTM的总体框架图。

  • 内部短期图以目标推荐任务中的用户和商品为节点,交互为边,通过具有时间邻居采样的异质GAT对节点进行聚合,提取用户短期兴趣。
  • 全局长期图包含了所有内部和外部的行为,从全局多源行为上发掘用户的长期兴趣。
  • 通过Gating fusion模块将两个GAT中得到的表征进行融合。
  • 结合元学习,异步优化长期兴趣和短期兴趣。

image.png

2.2 内部短期图

用户集合

u in U

,目标推荐任务的商品

d in D_I

,用

u_i^0

d_i^0

分别表示用户和商品的第i个特征的embedding。

对于用户

u_i

的点击序列

seq_i={d_{i,1},...,d_{i,m}}

,采用时间邻居采样,即只采样top-K个最近的商品得到

N_{u_i}={d_{i,m-K 1},...,d_{i,m}}

,以同样的方式,可以采样出和当前商品最近交互的topK个用户得到

N_{d_i}={u_{i,m'-K 1},...,u_{i,m'}}

然后通过GAT对邻域节点的embedding进行聚合,用户和商品的短期embedding提取方式一致,这里以用户embedding为例。经过k层迭代后,用户表征为下式,w为可学习权重,f为leakyReLU函数。在文中,作者采用两层GAT来提取短期兴趣,

u_i^s=u_i^2
boldsymbol{u}_{i}^{k}=sigmaleft(sum_{d_{i, j} in N_{u_{i}}} alpha_{i j}^{k} W_{d}^{k} d_{i, j}^{k-1}right)
alpha_{i j}^{k}=frac{exp left(fleft(boldsymbol{w}^{top}left[boldsymbol{W}_{u} boldsymbol{u}_{i}^{k-1} | boldsymbol{W}_{d} boldsymbol{d}_{i, j}^{k-1}right]right)right)}{sum_{d_{i, l} in N_{u_{i}}} exp left(fleft(boldsymbol{w}^{top}left[boldsymbol{W}_{u} boldsymbol{u}_{i}^{k-1} | boldsymbol{W}_{d} boldsymbol{d}_{i, l}^{k-1}right]right)right)},

2.3 全局长期图

用户任然是之前的集合U,商品是

d in D_I cup D_E

,所有应用中的交互都是图中的边,由于不同应用中,用户和商品的特征存在差异,因此这里作者直接采用用户和商品在相同空间中的ID embedding来表示他们,分别为

bar{u}_i^0

,

bar{d}_i^0

和内部短期图一样,通过两层GAT对邻域进行聚合,这里对邻居节点的选择采用随机采样或者通过重要性。最终的embedding为

bar{u}_i^l=bar{u}_i^2

,商品embedding同理。

2.4 长短期偏好融合

这个融合模块是将长期和短期的偏好表征进行融合,通过下式将长期和短期的用户表征进行融合,其中g()是gating函数,

d_j^s

表示随机初始化的商品的ID embedding

u_i=g(x_i^s)u_i^s g(x_i^l)bar{u}_i^l
left[gleft(x_{i}^{s}right), gleft(x_{i}^{l}right)right]=operatorname{Softmax}left(left[w_{g}^{s}left[u_{i}^{s} | d_{j}^{s}right], w_{g}^{l}left[bar{u}_{i}^{l} | d_{j}^{s}right]right]right)

得到用户embedding之后,可以送入下游的排序模型,其中c为上下文信息。

p(i,j)=DeepFM(u_i,d_j^s,c)

2.5 时间元学习优化

及时的模型更新在在线推荐中很重要,而在现实世界的系统中存在两个挑战。(1) 对于具有大规模图的 GNN 模型,实时进行完整的模型再训练或复杂的微调是极其困难的,尤其是在庞大的全局图中有近十亿级的交互。(2) 此外,由于一些实际的系统限制,多源行为通常是异步获取的(例如,外部行为经常被延迟)。因此,作者将内部短期图和全局长期图的训练解耦为两个异步优化目标,包括基于时间 MAML 的交叉熵损失和基于多跳邻居相似性的损失

2.5.1 时间元学习

时间元学习可以快速适应用户的短期兴趣,相比于传统的元学习,本文所用的方式是将一个时间段看成一个任务。首先,将所有训练实例划分为不同的集合(例如,1小时1个集合),将相邻两个小时内实例看做一个任务;支持集是之前时间的训练实例,查询集包含之后时间的实例;可以进一步将任务划分成更细粒度的任务,即让每一个任务中的用户都比较相似,这种细粒度的划分可以使支持集和查询集中的实例之间更加相关,从而更关注短期兴趣。

在训练过程中,对包含不同时间段训练实例的不同时间任务进行采样以形成一个batch。为了能够给不同时间段学习到更高的初始化,采样的时候,使时序任务之间尽量不同(例如,不同时间或日期的任务)。在内部更新(第6行)和外部更新(第8行)中都采用一步更新。

时间MAML框架下,采用交叉熵损失函数,如下式,Sp为正样本(点击的用户-商品),Sn为负样本(未点击的用户-商品),LT相关的时间MAML只更新融合模块和内部图部分。

L_{T}=-frac{1}{N}left(sum_{S_{p}} log p(i, j) sum_{S_{n}} log (1-p(i, j))right)

2.5.2 基于多阶邻居相似度的损失

与内部短期图不同,全局长期图

  • (1) 旨在对用户的长期行为进行建模,
  • (2) 包含更多的内部和外部行为,
  • (3) 可能具有不可控和延迟的行为获取。

为了在效率、有效性和稳健性之间做出折衷,作者设计基于多阶邻居相似性的损失,而不是在线时间MAML 令

bar{u}_i^l

bar{d}_j^l

分别表示用户和商品的长期表征,通过DeepWalk路径采样得到k阶(如10阶)邻居,从而引入更多的交互,损失函数如下,其中p是在P路径集合中长度为k的路径,qi,qj表示路径p中不同的节点,使

bar{q}_i^l=bar{u}_i^l

,

bar{q}_j^l=bar{d}_j^l

,σ为sigmoid函数。

L_{N}=-sum_{p in P} sum_{q_{i}, q_{j} in p}left(log left(sigmaleft(overline{boldsymbol{q}}_{i}^{l top} overline{boldsymbol{q}}_{j}^{l}right)right)right)

note:基于多阶邻居相似性的损失更侧重于从所有长期内部/外部行为中学习到的用户和商品表征的全局视图。一般来说,考虑到其动机和训练效率,全局长期图的训练频率远低于短期图。

2.6 整体损失函数

L=lambda_T L_T lambda_N L_N

,经验上令两个λ=1。

3. 结果

离线结果

上线结果

0 人点赞