交互

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

基础类:Module, Generic[HeadRepresentation, RelationRepresentation, TailRepresentation], ABC

交互功能的基类。

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

属性摘要

dimensions

获取所有相关的维度键。

entity_shape

实体表示的符号形状

head_indices

返回用于头部表示的实体表示索引。

head_shape

返回头部实体表示的符号形状。

is_complex

交互是否在复杂输入上定义

relation_shape

关系表示的符号形状

tail_indices

返回用于尾部表示的实体表示索引。

tail_shape

返回尾部实体表示的符号形状。

value_range

交互的值范围(适用于无限制输入)

方法总结

forward(h, r, t)

计算给定头、关系和尾的广播表示的三元组得分。

reset_parameters()

重置交互函数可能具有的参数。

score(h, r, t[, slice_size, slice_dim])

计算广播的三元组分数,可选择切片。

score_h(all_entities, r, t[, slice_size])

对所有头部实体进行评分。

score_hrt(h, r, t)

对一批三元组进行评分。

score_r(h, all_relations, t[, slice_size])

对所有关系进行评分。

score_t(h, r, all_entities[, slice_size])

对所有尾部实体进行评分。

属性文档

dimensions

获取所有相关的维度键。

这来源于 Interaction.entity_shape, 和 Interaction.relation_shape.

Returns:

一组表示维度键的字符串。

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

实体表示的符号形状

head_indices

返回用于头部表示的实体表示索引。

head_shape

返回头部实体表示的符号形状。

is_complex: ClassVar[bool] = False

交互是否在复杂输入上定义

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

关系表示的符号形状

tail_indices

返回用于尾部表示的实体表示索引。

tail_shape

返回尾部实体表示的符号形状。

value_range: ClassVar[ValueRange] = ValueRange(lower=None, lower_inclusive=False, upper=None, upper_inclusive=False)

交互的值范围(适用于无限制输入)

方法文档

abstract forward(h: HeadRepresentation, r: RelationRepresentation, t: TailRepresentation) Tensor[source]

计算给定头、关系和尾的广播表示的三元组得分。

一般来说,每个交互函数(类)对头、关系和尾表示都有一定的格式要求。这种格式由表示的数量和形状组成。

许多简单的交互函数,如TransEInteraction,操作于单一表示上,然而也有像TransDInteraction这样的交互,它需要每个槽的两个表示,或者像PairREInteraction这样的交互,它需要两个关系表示,但分别只需要一个头实体和尾实体的表示。

每个单独的表示都有一个形状。这可以是一个简单的\(d\)维向量,也可以包括矩阵,甚至是高阶张量。

此方法支持通用的批量计算,即每个表示可以有一个前面的批量维度。这些批量维度不一定需要完全相同,但它们需要是可广播的。关于广播规则的良好解释可以在NumPy的文档中找到。

另请参阅

  • Representations 提供了关于如何获取个体表示的不同方式的概述。

Parameters:
Returns:

形状: batch_dims 分数。

Return type:

Tensor

reset_parameters()[source]

重置交互函数可能具有的参数。

score(h: HeadRepresentation, r: RelationRepresentation, t: TailRepresentation, slice_size: int | None = None, slice_dim: int = 1) Tensor[源代码]

计算广播的三元组分数,可选择切片。

注意

最多一个切片大小可能不为 None。

待办事项

如果有必要,我们可以将其更改为沿多个维度切片

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

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

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

  • slice_size (int | None) – 切片大小。

  • slice_dim (int) – 沿着哪个维度进行切片。从 {0, …, len(batch_dims)} 中选择

Returns:

形状: batch_dims 分数。

Return type:

Tensor

score_h(all_entities: HeadRepresentation, r: RelationRepresentation, t: TailRepresentation, slice_size: int | None = None) Tensor[source]

对所有头部实体进行评分。

Parameters:
Returns:

形状: (batch_size, num_entities) 分数。

Return type:

Tensor

score_hrt(h: HeadRepresentation, r: RelationRepresentation, t: TailRepresentation) Tensor[来源]

对一批三元组进行评分。

Parameters:
Returns:

形状: (batch_size, 1) 分数。

Return type:

Tensor

score_r(h: HeadRepresentation, all_relations: RelationRepresentation, t: TailRepresentation, slice_size: int | None = None) Tensor[source]

对所有关系进行评分。

Parameters:
Returns:

形状: (batch_size, num_entities) 分数。

Return type:

Tensor

score_t(h: HeadRepresentation, r: RelationRepresentation, all_entities: TailRepresentation, slice_size: int | None = None) Tensor[source]

对所有尾部实体进行评分。

Parameters:
Returns:

形状: (batch_size, num_entities) 分数。

Return type:

Tensor