文献阅读(14)ACM2018-Learning dynamic embeddings from temporal interactions

本文是对《Learning dynamic embeddings from temporal interactions》一文的浅显翻译与理解,如有侵权即刻删除。

朋友们,我们在github创建了一个图学习笔记库,总结了相关文章的论文、代码和我个人的中文笔记,能够帮助大家更加便捷地找到对应论文,欢迎star~

Chinese-Reading-Notes-of-Graph-Learning

更多相关文章,请移步:文献阅读总结:网络表示学习/图学习

Title

《Learning dynamic embeddings from temporal interactions》

——ACM2018

Author: Srijan Kumar

总结

文章提出了一种耦合递归算法JODIE,借鉴卡尔曼滤波的思想,从用户与物品之间的交互学习他们的动态嵌入。算法由三个部分组成,分别是更新部分、推断部分和预测部分。更新部分用来每次对两个相互递归的递归神经网络中用户与物品的嵌入进行更新,推测部分结合节点的先前嵌入对未来任意时刻的嵌入进行推断,预测部分即常见的对未来发生的交互进行预测。此外,还提出了一种新型的批采样方法t-batch,具有通用性,可以有效提高算法的运行效率。

1 JODIE

设一次交互S_j=(u_j,i_j,f_j,t_j),分别表示用户、物品、特征向量和时间。目标输出是用户和物品的动态嵌入,下表为所用到的符号。
在这里插入图片描述
算法直接预测发生交互的用户与商品的嵌入,而非交互概率,因此只需要执行前向传播,主要操作如下图所示。
在这里插入图片描述
算法中,对任意节点嵌入,都分为两类,即静态和动态嵌入。
对静态嵌入,不随时间而变化,是节点的长期属性,使用one-hot向量来表示。
对动态嵌入,是节点的演变行为,算法提出了相互递归的递归神经网络来学习,过程分为三个主要部分,即更新、推断和预测。

更新(update)

算法利用两个递归神经网络分别学习用户和商品的嵌入。对输出,使用one-hot向量会使得模型不可行,这是由于空间复杂度的问题,该向量只能缩放到很小的规模。因此使用包含大量信息的的动态嵌入,有:
在这里插入图片描述
其中u(t-)表示用户在交互前的嵌入,Δu表示u上一次交互至今的时间。

推断(project)

估算节点在发生交互一段时间后的嵌入,设这种推断得到的嵌入为^u(t+Δu)。Δu指交互后的时间,利用线性层将其转化为时间环境向量w,并对w初始化为0权重的高斯分布,则有:
在这里插入图片描述
w本质上是一个注意力向量,将过去的节点嵌入扩展到当前状态,整体过程如下图所示。
在这里插入图片描述

预测(predict)

该部分同其他算法一样,都是为预测未来节点的交互,但有所不同的是,算法并不预测发生交互的概率值,而是直接预测交互节点的嵌入,因此仅需前向传播。预测得到的嵌入,可以使用k最近邻算法,得到与嵌入关系最为紧密的节点,即为预测的交互节点。

算法的目标在于最小化预测得到的嵌入与真实嵌入之间的差距,有损失函数如下:
在这里插入图片描述
第一部分是最小化预测嵌入差值,后两部分是正则化项,分别防止用户和商品的连续动态嵌入过大,在此并不涉及负采样,因为输出是直接预测的嵌入。
JODIE算法如下所示:
在这里插入图片描述
步骤简单解释即,给定交互时间,得到推断的节点嵌入,根据推断嵌入及静态嵌入得到预测嵌入,与真实值相比计算损失值,最终更新节点嵌入。

2 t-batch

该算法是一种采样算法,来更好地并行化处理数据。

相互递归的递归神经网络从本质上就有别于单独的递归神经网络,后者虽然可以并行化,但忽略了用户对用户的相互依赖性,因此两个递归神经网络的情况是不能独立训练的。

对采样算法,有着如下的基本规则:
(1)所有用户和商品在同一批次内最多出现一次,这是为保证并发性。
(2)用户或商品的第k和k+1次交互所分配的批次要遵照时间顺序,这样第k次的嵌入就可以用到k+1次的交互上。

原始的采样算法虽然可以满足以上条件,但其速度较慢且规模较小。
t-batch算法如下:
在这里插入图片描述
t-Batch的关键思想是将第j个交互,如用户u和i之间的交互,分配给包含u或i任意交互的最大批处理ID之后的批处理ID。

即,在包含u或i的所有批id中取最大值,新的包含u和i的交互能存放的批次id,就要在这个最大值之后。比如第2批中包含u,第6批中包含i,那么u和i的交互就要放到7以后的批次中。

对t-batch算法对上述两个条件的满足,有证明如下:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值