TransFInteraction

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

基础类: Interaction[Tensor, Tensor, Tensor]

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

它由以下给出

\[f(\mathbf{h}, \mathbf{r}, \mathbf{t}) = (\mathbf{h} + \mathbf{r})^T \mathbf{t} + \mathbf{h}^T (\mathbf{r} - \mathbf{t})\]

对于头实体、关系和尾实体的表示 \(\mathbf{h}, \mathbf{r}, \mathbf{t} \in \mathbb{R}^d\)。 交互函数可以简化为

\[\begin{split}f(\mathbf{h}, \mathbf{r}, \mathbf{t}) &=& (\mathbf{h} + \mathbf{r})^T \mathbf{t} + \mathbf{h}^T (\mathbf{t} - \mathbf{r}) \\ &=& \langle \mathbf{h}, \mathbf{t}\rangle + \langle \mathbf{r}, \mathbf{t}\rangle + \langle \mathbf{h}, \mathbf{t}\rangle - \langle \mathbf{h}, \mathbf{r}\rangle \\ &=& 2 \cdot \langle \mathbf{h}, \mathbf{t}\rangle + \langle \mathbf{r}, \mathbf{t}\rangle - \langle \mathbf{h}, \mathbf{r}\rangle\end{split}\]

注意

这是论文中的平衡变体。

待办事项

实现不平衡版本: \(f(\mathbf{h}, \mathbf{r}, \mathbf{t}) = (\mathbf{h} + \mathbf{r})^T \mathbf{t}\)

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

方法总结

forward(h, r, t)

评估交互函数。

方法文档

forward(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