Predicting Dynamic Embedding Trajectory in Temporal Interaction Networks
原文链接: JODIE.
摘要
JODIE使用两个递归神经网络在每次交互时更新用户(user)和项目(item)的嵌入。至关重要的是,JODIE还可以模拟用户/项目的未来嵌入轨迹(embedding trajectory)。为此,它引入了一种新颖的投影算子,该算子可以在将来的任何时候学习估计用户的嵌入程度。这些估计的嵌入然后用于预测未来的用户-项目交互。
介绍
挑战
- 仅仅在交互时更新节点信息,如果没有交互则节点不会更新。
- 节点是有固定属性的,固定属性不会随着时间的推移而变化。
- 通过用户为所有项目打分来预测交互在时间复杂度的角度上是不切实际的。
- 现有方法通过线性训练模型,时间复杂度高。
贡献
- user和item都有两个embedding:static embedding以及dynamic embedding。
- JODIE模型包括两种组件:update operation以及projection operation。前者用于更新用户和项目的embedding信息,后者用于预测未来的embedding轨迹。
- t-Batch,作者创建了一个称为t-Batch的批处理算法,通过创建独立交互的训练批来训练JODIE,以便可以在并行处理中处理每个批中的交互。
问题定义
JODIE用于学习user以及item的embedding trajectories。
定义user-item之间的交互
S
r
=
(
u
r
,
i
r
,
t
r
,
f
r
)
S_r=(u_r,i_r,t_r,f_r)
Sr=(ur,ir,tr,fr),表示在user
u
r
∈
U
u_r \in \mathcal{U}
ur∈U和item
i
r
∈
I
i_r \in \mathcal{I}
ir∈I在时间
t
r
∈
R
+
t_r \in \mathbb{R}^+
tr∈R+发生的事件,其中
f
r
f_r
fr表示交互事件的特征。
下表为文中常用符号:
符号 | 意义 |
---|---|
u ( t ) u(t) u(t)和 i ( t ) i(t) i(t) | 用户 u u u以及项目 i i i在时间 t t t的dynamic embedding |
u ( t − ) u(t^-) u(t−)和 i ( t − ) i(t^-) i(t−) | 用户 u u u以及项目 i i i在时间 t t t之前的dynamic embedding |
u ˉ \bar{u} uˉ和 i ˉ \bar{i} iˉ | 用户 u u u以及项目 i i i在时间 t t t的static embedding |
u ^ ( t ) \widehat{u}(t) u (t) | 用户 u u u在时间 t t t的projected embedding |
j ~ ( t ) \widetilde{j}(t) j (t) | 预测项目 j j j的embedding |
方法
Embedding update operation
在update operation操作中,用户
u
u
u和项目
i
i
i之间的交互
S
=
(
u
,
i
,
t
,
f
)
S=(u,i,t,f)
S=(u,i,t,f)用于生成用户
u
(
t
)
u(t)
u(t)项目和
i
(
t
)
i(t)
i(t)在时间
t
t
t时刻的dynamic embedding。
RNN
U
\text{RNN}_U
RNNU用于通过所有用户信息更新user embedding。
u
(
t
)
=
σ
(
W
1
u
u
(
t
−
)
+
W
2
u
i
(
t
−
)
+
W
3
u
f
+
W
4
u
Δ
u
)
u(t)=\sigma(W^u_1u(t^-)+W^u_2i(t^-)+W^u_3f+W^u_4\Delta_u)
u(t)=σ(W1uu(t−)+W2ui(t−)+W3uf+W4uΔu)
RNN
I
\text{RNN}_I
RNNI用于通过所有项目信息更新item embedding。
i
(
t
)
=
σ
(
W
1
i
i
(
t
−
)
+
W
2
i
u
(
t
−
)
+
W
3
i
f
+
W
4
i
Δ
i
)
i(t)=\sigma(W^i_1i(t^-)+W^i_2u(t^-)+W^i_3f+W^i_4\Delta_i)
i(t)=σ(W1ii(t−)+W2iu(t−)+W3if+W4iΔi)其中
Δ
u
\Delta_u
Δu表示
u
u
u上一次与其他
i
i
i交互的时间,
Δ
i
\Delta_i
Δi表示
i
i
i上一次与其他
u
u
u交互的时间,
f
f
f为交互特征向量,
W
W
W为学习矩阵,
σ
\sigma
σ为sigmoid函数。
Embedding projection operation
用于生成用户未来的 embedding trajectory,该embedding可用于下游任务。
projection operation的两个输入为:
- 用户 u u u在时间 t t t的embedding u ( t ) u(t) u(t)
- 以及经过的时间 Δ \Delta Δ
对于 Δ \Delta Δ而言,通过一个全连接层生成一个向量 w ∈ R n w \in \mathbb{R}^n w∈Rn。 u ^ ( t + Δ ) = ( 1 + w ) ∗ u ( t ) \widehat{u}(t+\Delta)=(1+w)*u(t) u (t+Δ)=(1+w)∗u(t)随着 Δ \Delta Δ的增大,projection embedding的偏移量越大。
如何训练
如果
- 用户 u u u与项目 i i i在时间 t t t发生交互;
- 用户 u u u与项目 j j j在时间 t + Δ t+\Delta t+Δ发生交互。
那么,在 t + Δ t+\Delta t+Δ之前是否可以预测用户 u u u与哪一个项目交互?
我们训练JODIE模型,使用 u u u的projected embedding u ^ ( t + Δ ) \widehat{u}(t+\Delta) u (t+Δ),另一个设计的关键是,JODIE直接输出项目embedding j ~ ( t + Δ ) \widetilde{j}(t+\Delta) j (t+Δ),而非 u u u与 j j j之间的概率,以减少时间复杂度。
我们通过最小化 L 2 L_2 L2指数进行训练: ∣ ∣ j ~ ( t + Δ ) − [ j ˉ , j ( t + Δ − ) ] ∣ ∣ 2 ||\widetilde{j}(t+\Delta)-[\bar{j},j(t+\Delta^-)]||_{2} ∣∣j (t+Δ)−[jˉ,j(t+Δ−)]∣∣2 其中 j ~ ( t + Δ ) \widetilde{j}(t+\Delta) j (t+Δ)为预测的item embedding, [ j ˉ , j ( t + Δ − ) ] [\bar{j},j(t+\Delta^-)] [jˉ,j(t+Δ−)]为真实的item embedding(动态+静态embedding), [ x , y ] [x,y] [x,y]表示concat操作。
预测的item embedding
j
~
(
t
+
Δ
)
\widetilde{j}(t+\Delta)
j
(t+Δ)通过全连接层得到:
j
~
(
t
+
Δ
)
=
W
1
u
^
(
t
+
Δ
)
+
W
2
u
ˉ
+
W
3
i
(
t
+
Δ
−
)
+
W
4
i
ˉ
+
B
\widetilde{j}(t+\Delta)=W_1\widehat{u}(t+\Delta)+W_2\bar{u}+W_3i(t+\Delta^-)+W_4\bar{i}+B
j
(t+Δ)=W1u
(t+Δ)+W2uˉ+W3i(t+Δ−)+W4iˉ+B其中
u
^
(
t
+
Δ
)
\widehat{u}(t+\Delta)
u
(t+Δ)为user的projected embedding,
i
(
t
+
Δ
−
)
i(t+\Delta^-)
i(t+Δ−)为上一个和
u
u
u交互的item
i
i
i。
模型训练
Loss函数如下:
L
o
s
s
=
∑
u
,
j
,
t
,
f
∈
S
∣
∣
j
~
(
t
)
−
[
j
ˉ
,
j
(
t
−
)
]
∣
∣
2
+
λ
U
∣
∣
u
(
t
)
−
u
(
t
−
)
∣
∣
2
+
λ
I
∣
∣
j
(
t
)
−
j
(
t
−
)
∣
∣
2
Loss=\sum_{u,j,t,f \in S}||\widetilde{j}(t)-[\bar{j},j(t^-)]||_2+\lambda_U||u(t)-u(t^-)||_2+\lambda_I||j(t)-j(t^-)||_2
Loss=u,j,t,f∈S∑∣∣j
(t)−[jˉ,j(t−)]∣∣2+λU∣∣u(t)−u(t−)∣∣2+λI∣∣j(t)−j(t−)∣∣2
t-Batch
(留个坑)
实验
实验1:Future interaction prediction
预测
t
t
t时刻,预测user
u
u
u与哪一个item
i
i
i交互。
实验2:User state change prediction
其任务是预测一个交互是否会导致用户的状态变化。
实验3:Runtime experiment
运行时间比较
实验4:Robustness to the proportion of training data
通过改变训练数据的百分比和比较模型的性能来验证模具的鲁棒性
实验5:Embedding size
我们验证了embedding大小对结果的影响。