Predicting Dynamic Embedding Trajectory in Temporal Interaction Networks
目录
1、问题描述
问题:现有的动态嵌入方法仅在产生交互的时候生成embedding,没有明确地在空间中建模用户/项目的未来轨迹。
解决:增加一个投影操作,建模未来一段时间内的user表示。
2、JODIE
2.0 节点的静态表示和动态表示
节点的静态表示,一般为one-hot向量,在训练过程中保持不变;
节点的动态表示,可学习,用于反映当前的状态。
2.1 update operation in t
user u和item i在时刻t有一次交互。
根据t之前的状态t-,u和i上一次交互的时间差,更新u和i在时刻t的状态:
2.2 projection operation in t+
user u和item j在时刻 t+有一次交互。( 并且u的前一次交互item是 i )
根据u在t时刻的状态,两次交互的时间差,得到t+时刻u的投影。
问题 | 解释 |
---|---|
为什么要对u进行投影?以及为什么要用这样的投影函数? | 1)对u进行投影可以学习到一段时间间隔内的u的表示,便于后续预测t~t+时间段内的其他交互2)= 0,就是t时刻的表示;越大,和t时刻表示的差别就越大,符合实际情况 |
2.3 计算j在t+时刻的表示
根据投影后的u,i的表示和时间差,计算j在t+时刻的表示,
计算生成的j的embedding和真实embedding之间的差异,计算loss并进行训练,
问题 | 解释 |
---|---|
为什么预测j的embedding的时候要加入前一次交互的i? | 1)如果i在t~t+ 时间段内发生交互和变化,i的表示能够反映出当下的信息 2)i是u的前一次交互,用户两次访问的item大概率相似或相同,所以参考前一次交互的item是有意义的 |
为什么loss里面要加上两个正则化项? | 为了使两个微小时间差的embedding尽可能接近 |
为什么计算j的表示以及loss的时候要用到静态表示? | 静态表示不会变化,一般为one-hot,可以保持用户的长期兴趣;学习的是节点的动态表示,能够反映出局部的变化 |
2.4 模型的推理
模型训练结束后,进行推理,即预测t~t+时间段内user还会和哪个item交互。(下面假设为时刻t+)
首先可以根据时间差得到u的投影,然后可以根据预测j的方法计算item的表示,找到和具有最相似表示的item k,k就是当前和u交互的item。
(计算embedding并比较相似性)
3、实验
3.1 数据集
4个公开数据集格式都差不多:snap.stanford.edu/jodie/
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的对比:
商品推荐任务:
动态节点分类任务:
没有专门做projection部分的消融实验,不过文中提到DeepCoevolve和JODIE的区别是,DeepCoevolve没有projection部分,大概可以视为消融实验。