方向平均交互

class DirectionAverageInteraction(base: str | Interaction[Tensor, Tensor, Tensor] | type[Interaction[Tensor, Tensor, Tensor]], base_kwargs: Mapping[str, Any] | None = None)[来源]

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

方向平均交互模块。

这可以被视为SimplE交互模块的泛化,可以使用任何其他交互模块进行参数化,而不仅仅是pykeen.nn.modules.DistMultInteraction

为每个实体\(e \in \mathcal{E}\)学习一个单独的表示,当它作为三元组的主语\(\mathbf{e}_h \in \mathbb{R}^d\)和作为三元组的宾语\(\mathbf{e}_t \in \mathbb{R}^d\)时。同样,为每个关系学习两个表示,用于正向\(\textbf{r}_{\rightarrow}\)和反向三元组\(\textbf{r}_{\leftarrow}\)

然后通过平均前向后向交互函数值来获得分数:

\[\frac{ f(\textbf{h}_{h}, \textbf{r}_{\rightarrow}, \textbf{t}_{t}) + f(\textbf{t}_{h}, \textbf{r}_{\leftarrow}, \textbf{h}_{t}) }{2}\]

其中 f 是使用的交互模型。如果使用了 pykeen.nn.modules.DistMultInteraction, 那么这将变为 pykeen.nn.modules.SimplEInteraction

待办事项

我们能否将类型注释从FloatTensor泛化到HeadRepresentation等?

初始化交互模块。

Parameters:
  • base (LookupOrType[Interaction[FloatTensor, FloatTensor, FloatTensor]]) – 基础交互。

  • base_kwargs (OptionalKwargs) – 用于实例化基础交互的关键字参数

注意

参数对 (base, base_kwargs) 用于 interaction_resolver

解析器的解释及其使用方法在 https://class-resolver.readthedocs.io/en/latest/中给出。

方法总结

forward(h, r, t)

评估交互函数。

方法文档

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

评估交互函数。

另请参阅

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

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

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

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

Returns:

形状: batch_dims 分数。

Return type:

Tensor