TransE, TransH, TransR

Bordes A., Usunier N., Garcia-Duran A., Weston J. and Yakhnenko O. Translating embeddings for modeling multi-relational data. NIPS, 2013.

Wang Z., Zhang J., Feng J. and Chen Z. Knowledge graph embedding by translating on hyperplanes. AAAI, 2014.

Lin Y., Liu Z., Sun M., Liu Y. and Zhu X. Learning entity and relation embeddings for knowledge graph completion. AAAI, 2015.

  • \(G = \{(h, r, t)\}\), 每个三元组 \((h, r, t)\) 代表 \(h \mathop{\longrightarrow} \limits^{r} t\).

  • \(\bm{h}, \bm{r}, \bm{t}\), 分别表示头实体 \(h\), 关系 \(r\), 和 尾实体 \(t\) 的 embedding.

TransE|H|R

  • 知识图谱的核心目标是预测两个实体间的关系. 具体的, 我们希望训练这样的一个打分函数 \(f\), 若 \((h, r, t)\) 是真实存在的关系, 则 \(f(h, r, t)\) 应该返回一个较高的值, 否则返回一个较低的值.

  • TransE 的做法就是用负距离来进行度量:

    \[ f(h, r, t) := -d(h, r, t) = - \| \bm{h} + \bm{r} - \bm{t} \|_2^2. \]

  • 但是这种方式在一些情况下是存在问题的, 比如:

    1. 关系 \(r\) 是双向的, 即

      \[h \mathop{\longrightarrow} \limits^{r} t \Leftrightarrow t \mathop{\longrightarrow} \limits^{r} h, \]

      此时最理想的情况:

      \[\bm{h} + \bm{r} - \bm{t} = \bm{t} + \bm{r} - \bm{h} = \bm{0} \Rightarrow \bm{h} = \bm{t}, \bm{r} = \bm{0}. \]

      这显然不合理;
    2. 此外, 倘若存在多个头实体共同对应一个尾实体, 比如

      \[h_1, h_2 \mathop{\longrightarrow} \limits^{r} t, \]

      此时, 最理想的情况是:

      \[\bm{h}_1 + \bm{r} - \bm{t} = \bm{h}_2 + \bm{r} - \bm{t} = \bm{0} \Rightarrow \bm{h}_1 = \bm{h}_2. \]

      这实际上也不合理.
  • 于是 TransH 提出了一个改进, 它的度量方式改为:

    \[d(h, r, t) = \| \bm{h}_{\perp} + \bm{r} - \bm{t}_{\perp}\|_2^2, \\ \bm{h}_{\perp} = \bm{h} - (\bm{w}_r^T \bm{h}) \bm{w}_r, \\ \bm{t}_{\perp} = \bm{t} - (\bm{w}_r^T \bm{t}) \bm{w}_r. \]

    其中 \(\|\bm{w}_r\|_2 = 1\). 故而 \(\bm{h}_{\perp}, \bm{t}_{\perp}\) 实际上是到 \(\bm{w}_r\) 上的垂线,

  • TransR 则是把 \(\bm{h}, \bm{t}\) 通过一个变换矩阵映射到关系 \(\bm{r}\) 所在的空间中:

    \[d(h, r, t) = \| \bm{h}_r + \bm{r} - \bm{t}_r \|_2^2, \\ \bm{h}_r = \mathbf{W}_r \bm{h}, \quad \bm{t}_r = \mathbf{W}_r \bm{t}. \]

    且限制:

    \[\|\bm{h}\|_2 \le 1, \|\bm{r}\|_2 \le 1, \|\bm{t}\|_2 \le 1, \|\bm{h}_r\|_2 \le 1, \|\bm{t}_r\|_2 \le 1. \]

  • 最后的损失为,

    \[\mathcal{L} = \sum_{(h, r, t)} \sum_{(h', r, t')} \max (0, d(h, r, t) + \gamma - d(h', r, t')), \]

    其中 \((h', r, t')\) 表示 incorrect triples. \(\gamma\) 表示 margin.

posted @ 2024-03-14 19:41  馒头and花卷  阅读(4)  评论(0编辑  收藏  举报