HolE交互

class HolEInteraction(*args, **kwargs)[source]

基础:FunctionalInteraction[Tensor, Tensor, Tensor]

无状态的HolE交互函数。

全息嵌入(HolE)利用循环相关运算符来计算实体和关系的潜在特征之间的交互:

\[f(h,r,t) = \textbf{r}^{T}(\textbf{h} \star \textbf{t})\]

其中循环相关 \(\star: \mathbb{R}^d \times \mathbb{R}^d \rightarrow \mathbb{R}^d\) 定义为:

\[[\textbf{a} \star \textbf{b}]_i = \sum_{k=0}^{d-1} \textbf{a}_{k} * \textbf{b}_{(i+k)\ mod \ d}\]

通过使用相关运算符,每个组件 \([\textbf{h} \star \textbf{t}]_i\) 表示对固定分区的成对交互进行求和。这使得模型能够将语义相似的交互放入同一分区,并通过 \(\textbf{r}\) 共享权重。同样,不相关的特征交互也可以放入同一分区,并在 \(\textbf{r}\) 中分配较小的权重。

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

方法总结

func(h, r, t)

评估交互函数。

方法文档

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

评估交互函数。

另请参阅

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

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

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

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

Returns:

形状: batch_dims 分数。

Return type:

FloatTensor