TransE交互
- class TransEInteraction(p: int, power_norm: bool = False)[source]
基础类:
NormBasedInteraction[Tensor,Tensor,Tensor]基于无状态范数的TransE交互函数。
TransE 模型将关系建模为从头实体到尾实体在 \(\textbf{e}\) 中的平移:
\[\textbf{e}_h + \textbf{e}_r \approx \textbf{e}_t\]这个方程被重新排列,并应用了\(l_p\)范数来创建TransE交互函数。
\[f(h, r, t) = - \|\textbf{e}_h + \textbf{e}_r - \textbf{e}_t\|_{p}\]虽然这种公式在计算上是高效的,但它本质上无法建模一对一、一对多和多对多的关系。对于三元组 \((h,r,t_1), (h,r,t_2) \in \mathcal{K}\) 其中 \(t_1 \neq t_2\),模型调整嵌入以确保 \(\textbf{e}_h + \textbf{e}_r \approx \textbf{e}_{t_1}\) 和 \(\textbf{e}_h + \textbf{e}_r \approx \textbf{e}_{t_2}\),这导致 \(\textbf{e}_{t_1} \approx \textbf{e}_{t_2}\)。
初始化基于范数的交互函数。
- Parameters:
p (int) – 与
torch.linalg.vector_norm()一起使用的范数。通常为1或2。power_norm (bool) – 是否使用\(L_p\)范数的p次方。它的优点是在0附近可微分,并且在数值上更稳定。
方法总结
forward(h, r, t)评估交互函数。
方法文档