CPInteraction

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

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

规范张量分解交互,如[lacroix2018]所述(最初来自[hitchcock1927])。

交互函数给出如下

\[\sum_{1 \leq i \leq k, 1 \leq j \leq d} \mathbf{h}_{i, j} \cdot \mathbf{r}_{i, j} \cdot \mathbf{t}_{i, j}\]

注意

对于 \(k=1\),这种交互与 DistMultInteraction 相同。 然而,与 DistMult 不同的是,实体在头角色和尾角色中应该有不同的表示。

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

属性摘要

entity_shape

实体表示的符号形状

relation_shape

关系表示的符号形状

方法总结

forward(h, r, t)

评估交互函数。

属性文档

entity_shape: Sequence[str] = ('kd', 'kd')

实体表示的符号形状

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

关系表示的符号形状

方法文档

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

评估交互函数。

另请参阅

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

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

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

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

Returns:

形状: batch_dims 分数。

Return type:

Tensor