Paper总结 - SimplE: Simple embedding for link prediction in knowledge graphs

这篇文章发表于NeurIPS 2018。

感觉文章作者还是有很强的数学功底的,论文中CP分解部分不太容易理解。

总结

这篇文章是基于CP分解。文中认为CP分解中,对实体e分别用两个vector来表示,即\(h_e\)\(t_e\)。其中\(h_e\)表示 e 处于头实体时的embedding, \(t_e\)是尾实体的embedding。关系\(r\)只有一种表示。

作者认为这种方式有不足的地方,比如说:

.

假如(\(e_1\), \(r_1\), \(e_2\))是\(e_1\)爱看某个电影,(\(e_2\), \(r_2\), \(e_3\))是\(e_2\)中有\(e_3\)参演。但它们彼此之间没有联系,但直观上感觉\(e_3\)是否参演对\(e_1\)是否爱看这部电影应该是有影响的。

于是SimplE为这个边构造了一个反向边(绿色所示),这样\(e_2\)\(e_3\)的更新就会影响到(\(e_1\), \(e_2\))

\begin{equation} \langle h_e, r, t_e\rangle \doteq \sum_{j=1}^{k} h_{e}[j] * r[j] * t_{e}[j] \end{equation}
\begin{equation} \langle t_e, r^{-1}, h_e\rangle \doteq \sum_{j=1}^{k} h_{e}[j] * r^{-1}[j] * t_{e}[j] \end{equation}

目标是使所有 \(\langle h_e, r, t_e\rangle\)\(\langle t_e, r^{-1}, h_e\rangle\) 最小(或者最大化)。测试时只会使用 \(r\),而不会使用 \(r^{-1}\)

文忠认为SimplE的表达能力是全面的,能够处理 Symmetric / anti-symmetric / inverse / transitive 所有类型的关系。