DistMult交互

class DistMultInteraction(*args, **kwargs)[源代码]

基础:FunctionalInteraction[Tensor, Tensor, Tensor]

无状态的DistMult交互函数。

这种交互由以下给出

\[f(\mathbf{h}, \mathbf{r}, \mathbf{t}) = \sum \limits_{i} \mathbf{h}_i \cdot \mathbf{r}_{i} \cdot \mathbf{t}_i\]

其中 \(\mathbf{h}, \mathbf{r}, \mathbf{t} \in \mathbb{R}^{d}\) 是头实体、关系和尾实体的表示。

对于单个\(d\)维向量的三元组,计算复杂度为\(\mathcal{O}(d)\)

交互函数在实体中是对称的,即

\[f(h, r, t) = f(t, r, h)\]

初始化内部模块状态,由nn.Module和ScriptModule共享。

方法总结

func(h, r, t)

评估交互函数。

方法文档

static func(h: Tensor, r: Tensor, t: Tensor) Tensor[来源]

评估交互函数。

另请参阅

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

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

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

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

Returns:

形状: batch_dims 分数。

Return type:

Tensor