TransD交互
- class TransDInteraction(p: int = 2, power_norm: bool = True)[source]
基础:
NormBasedInteraction[tuple[Tensor,Tensor],tuple[Tensor,Tensor],tuple[Tensor,Tensor]]TransD交互函数。
TransD 是
TransRInteraction的扩展,与 TransR 类似, 它将实体和关系视为存在于不同向量空间中的对象。 然而,与对所有实体嵌入执行相同的关系特定投影不同, 它构建了实体-关系特定的投影矩阵 \(\mathbf{M}_{r, h}, \mathbf{M}_{t, h} \in \mathbb{R}^{k \times d}\)。为此,所有头实体、尾实体和关系分别由两个向量表示, \(\mathbf{h}_v, \mathbf{h}_p, \mathbf{t}_v, \mathbf{t}_p \in \mathbb{R}^d\) 和 \(\mathbf{r}_v, \mathbf{r}_v \in \mathbb{R}^k\)。
第一组表示用于计算实体关系特定的投影矩阵:
\[ \begin{align}\begin{aligned}\mathbf{M}_{r, h} &=& \mathbf{r}_p \mathbf{h}_p^{T} + \tilde{\mathbf{I}}\\\mathbf{M}_{r, t} &=& \mathbf{r}_p \mathbf{t}_p^{T} + \tilde{\mathbf{I}}\end{aligned}\end{align} \]其中 \(\tilde{\textbf{I}} \in \mathbb{R}^{k \times d}\) 是一个 \(k \times d\) 矩阵,对角线上的元素为1,其余元素为0。接下来,\(\mathbf{h}_v\) 和 \(\mathbf{t}_v\) 通过构建的投影矩阵投影到关系空间中,然后计算类似于
TransEInteraction的距离:\[-\|c(\mathbf{M}_{r, h} \mathbf{h}_v) + \mathbf{r}_v - c(\mathbf{M}_{r, t} \mathbf{t}_v)\|_{2}^2\]其中 \(c\) 强制执行约束 \(\|\cdot\| \leq 1\)。
注意
TransD另外强制 \(\|\mathbf{h}\|, \|\mathbf{r}\|, \|\mathbf{t}\| \leq 1\)。初始化交互模块。
另请参阅
参数
p和power_norm直接传递给NormBasedInteraction- Parameters:
p (int) – 与
torch.linalg.vector_norm()一起使用的范数。通常为1或2。power_norm (bool) – 是否使用\(L_p\)范数的p次方。它的优点是在0附近可微分,并且在数值上更稳定。
属性摘要
实体表示的符号形状
关系表示的符号形状
方法总结
forward(h, r, t)评估交互函数。
属性文档
方法文档