TransR交互

class TransRInteraction(p: int, power_norm: bool = True, max_projection_norm: float = 1.0)[source]

基础类:NormBasedInteraction[Tensor, tuple[Tensor, Tensor], Tensor]

基于无状态范数的TransR交互函数。

它由以下给出

\[-\|c(\mathbf{M}_{r}\mathbf{h}) + \mathbf{r} - c(\mathbf{M}_{r}\mathbf{t})\|_{2}^2\]

对于头和尾实体表示 \(\mathbf{h}, \mathbf{t} \in \mathbb{R}^d\), 关系表示 \(\mathbf{r} \in \mathbb{R}^k\), 以及一个关系特定的投影矩阵 \(\mathbf{M}_r \in \mathbb{R}^{k \times d}\). \(c\) 强制执行约束 \(\|\cdot\| \leq 1\), 参见 pykeen.utils.clamp_norm().

注意

pykeen.models.TransR 还强制所有嵌入的 \(\|\cdot\| \leq 1\)

初始化交互模块。

另请参阅

参数 ppower_norm 直接传递给 NormBasedInteraction

Parameters:
  • p (int) – 与 torch.linalg.vector_norm() 一起使用的范数。通常为1或2。

  • power_norm (bool) – 是否使用\(L_p\)范数的p次方。它的优点是在0附近可微分,并且在数值上更稳定。

  • max_projection_norm (float) – 投影后要限制的最大范数。

属性摘要

relation_shape

关系表示的符号形状

方法总结

forward(h, r, t)

评估交互函数。

属性文档

relation_shape: Sequence[str] = ('e', 'de')

关系表示的符号形状

方法文档

forward(h: Tensor, r: tuple[Tensor, Tensor], t: Tensor) Tensor[来源]

评估交互函数。

另请参阅

Interaction.forward 提供了关于交互函数通用批处理形式的详细描述。

Parameters:
  • h (Tensor) – 形状: (*batch_dims, d) 头部表示。

  • r (tuple[Tensor, Tensor]) – 形状: (*batch_dims, k)(*batch_dims, d, k) 关系表示。

  • t (Tensor) – 形状: (*batch_dims, d) 尾部表示。

Returns:

形状: batch_dims 分数。

Return type:

Tensor