TripleRE交互

class TripleREInteraction(u: float | None = 1.0, p: int = 1, power_norm: bool = False)[source]

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

TripleRE交互函数来自[yu2021]

它由以下给出

\[\mathbf{h} \odot (\mathbf{r}_h + u) - \mathbf{t} \odot (\mathbf{r}_t + u) + \mathbf{r}\]

使用头实体、关系和尾实体表示 \(\mathbf{h}, \mathbf{r}, \mathbf{t} \in \mathbb{R}^d\), 关系特定的头和尾乘数 \(\mathbf{r}_h, \mathbf{r}_t \in \mathbb{R}^d\), 以及一个标量关系因子偏移 \(u \in \mathbb{R}\)

注意

这种交互等同于 LineaREInteraction,除了 \(u\) 项。 \(u\) 仅在论文中的版本 2 中不为零。

注意

为了与纸质版本等效,ht 应归一化为单位欧几里得长度,并且 ppower_norm 应保持其默认值。

初始化模块。

另请参阅

参数 ppower_norm 直接传递给 NormBasedInteraction

Parameters:
  • u (float | None) – 关系因子偏移量。可以设置为None(或0)以禁用它。

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

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

属性摘要

relation_shape

关系表示的符号形状

方法总结

forward(h, r, t)

评估交互函数。

属性文档

relation_shape: Sequence[str] = ('d', 'd', 'd')

关系表示的符号形状

方法文档

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

评估交互函数。

另请参阅

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

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

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

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

Returns:

形状: batch_dims 分数。

Return type:

Tensor