JODIE阅读笔记

278 阅读3分钟

Predicting Dynamic Embedding Trajectory in Temporal Interaction Networks

目录

1、问题描述

问题:现有的动态嵌入方法仅在产生交互的时候生成embedding,没有明确地在空间中建模用户/项目的未来轨迹。

解决:增加一个投影操作,建模未来一段时间内的user表示。

2、JODIE

image.png

image.png

2.0 节点的静态表示和动态表示

节点的静态表示u,i\overline u, \overline i,一般为one-hot向量,在训练过程中保持不变;

节点的动态表示u(t),i(t)u(t), i(t),可学习,用于反映当前的状态。

2.1 update operation in t

user u和item i在时刻t有一次交互。

根据t之前的状态t-,u和i上一次交互的时间差,更新u和i在时刻t的状态:

u(t)=σ(W1uu(t)+W2ui(t)+W3ueui+W4uΔu)i(t)=σ(W5ii(t)+W6iu(t)+W7ieui+W8iΔi)u(t) = \sigma(W_1^uu(t^-) + W_2^ui(t^-) + W_3^ue_{ui} + W_4^u\Delta_u) \\[2ex] i(t) = \sigma(W_5^ii(t^-) + W_6^iu(t^-) + W_7^ie_{ui} + W_8^i\Delta_i)

2.2 projection operation in t+Δ\Delta

user u和item j在时刻 t+Δ\Delta有一次交互。( 并且u的前一次交互item是 i

根据u在t时刻的状态,两次交互的时间差,得到t+Δ\Delta时刻u的投影。

u^(t+Δ)=(1+WpΔ)u(t)\widehat u(t+\Delta) = (1 + W_p\Delta) * u(t)
问题解释
为什么要对u进行投影?以及为什么要用这样的投影函数?1)对u进行投影可以学习到一段时间间隔内的u的表示,便于后续预测t~t+Δ\Delta时间段内的其他交互2)Δ\Delta= 0,就是t时刻的表示;Δ\Delta越大,和t时刻表示的差别就越大,符合实际情况

2.3 计算j在t+Δ\Delta时刻的表示

根据投影后的u,i的表示和时间差,计算j在t+Δ\Delta时刻的表示,

j~(t+Δ)=W1u^(t+Δ)+W2u+W3i(t+Δ)+W4i+B\tilde j(t+\Delta) = W_1\widehat u(t+\Delta) + W_2\overline u + W_3i(t + \Delta^-) + W_4\overline i + B

计算生成的j的embedding和真实embedding之间的差异,计算loss并进行训练,

Loss=j~(t+Δ)[jj(t+Δ)]2+λuu(t+Δ)u(t+Δ)2+λjj(t+Δ)j(t+Δ)2Loss = || \tilde j(t+\Delta) - [\overline j || j(t+\Delta^-)] ||_2 + \lambda_u||u(t+\Delta) - u(t+\Delta^-)||_2 + \lambda_j||j(t+\Delta) - j(t+\Delta^-)||_2
问题解释
为什么预测j的embedding的时候要加入前一次交互的i?1)如果i在t~t+ Δ\Delta时间段内发生交互和变化,i的表示能够反映出当下的信息 2)i是u的前一次交互,用户两次访问的item大概率相似或相同,所以参考前一次交互的item是有意义的
为什么loss里面要加上两个正则化项?为了使两个微小时间差的embedding尽可能接近
为什么计算j的表示以及loss的时候要用到静态表示?静态表示不会变化,一般为one-hot,可以保持用户的长期兴趣;学习的是节点的动态表示,能够反映出局部的变化

2.4 模型的推理

模型训练结束后,进行推理,即预测t~t+Δ\Delta时间段内user还会和哪个item交互。(下面假设为时刻t+Δ1\Delta_1

首先可以根据时间差Δ1\Delta_1得到u的投影u^(t+Δ1)\widehat u(t+\Delta_1),然后可以根据预测j的方法计算item的表示item~(t+Δ1)\tilde {item}(t+\Delta_1),找到和item~(t+Δ1)\tilde {item}(t+\Delta_1)具有最相似表示的item k,k就是当前和u交互的item。

(计算embedding并比较相似性)

3、实验

github.com/srijankr/jo…

3.1 数据集

4个公开数据集格式都差不多:snap.stanford.edu/jodie/

image.png

3.2 baseline

RNN方法:

  • LSTM
  • Time-LSTM
  • LatentCross

动态演化模型:

  • DeepCoevolve:没有JODIE的projection部分,2次相邻交互的u的embedding一样(不做投影处理)

动态图方法:

  • CTDNE

3.3 评价指标

商品推荐任务(future interaction prediction):(后来的模型TGAT和TGN同样的数据集做的是链接预测)

  • MRR
  • recall

动态节点分类任务(user state change prediction,二分类):

  • AUC

3.4 实验结果

和baseline的对比:

商品推荐任务:

image.png

动态节点分类任务:

image.png

没有专门做projection部分的消融实验,不过文中提到DeepCoevolve和JODIE的区别是,DeepCoevolve没有projection部分,大概可以视为消融实验。