交互
- class Interaction(*args, **kwargs)[source]
基础类:
Module,Generic[HeadRepresentation,RelationRepresentation,TailRepresentation],ABC交互功能的基类。
初始化内部模块状态,由nn.Module和ScriptModule共享。
属性摘要
获取所有相关的维度键。
实体表示的符号形状
返回用于头部表示的实体表示索引。
返回头部实体表示的符号形状。
交互是否在复杂输入上定义
关系表示的符号形状
返回用于尾部表示的实体表示索引。
返回尾部实体表示的符号形状。
交互的值范围(适用于无限制输入)
方法总结
forward(h, r, t)计算给定头、关系和尾的广播表示的三元组得分。
重置交互函数可能具有的参数。
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:
一组表示维度键的字符串。
- head_indices
返回用于头部表示的实体表示索引。
- head_shape
返回头部实体表示的符号形状。
- 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:
h (HeadRepresentation) – 形状:
(*batch_dims, *dims)头部表示。r (RelationRepresentation) – 形状:
(*batch_dims, *dims)关系表示。t (TailRepresentation) – 形状:
(*batch_dims, *dims)尾部的表示。
- Returns:
形状: batch_dims 分数。
- Return type:
- 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:
- score_h(all_entities: HeadRepresentation, r: RelationRepresentation, t: TailRepresentation, slice_size: int | None = None) Tensor[source]
对所有头部实体进行评分。
- Parameters:
all_entities (HeadRepresentation) – 形状: (num_entities, d_e) 头部表示。
r (RelationRepresentation) – 形状: (batch_size, d_r) 关系表示。
t (TailRepresentation) – 形状: (batch_size, d_e) 尾部的表示。
slice_size (int | None) – 切片大小。
- Returns:
形状: (batch_size, num_entities) 分数。
- Return type:
- score_hrt(h: HeadRepresentation, r: RelationRepresentation, t: TailRepresentation) Tensor[来源]
对一批三元组进行评分。
- Parameters:
h (HeadRepresentation) – 形状: (batch_size, d_e) 头部表示。
r (RelationRepresentation) – 形状: (batch_size, d_r) 关系表示。
t (TailRepresentation) – 形状: (batch_size, d_e) 尾部的表示。
- Returns:
形状: (batch_size, 1) 分数。
- Return type:
- score_r(h: HeadRepresentation, all_relations: RelationRepresentation, t: TailRepresentation, slice_size: int | None = None) Tensor[source]
对所有关系进行评分。
- Parameters:
h (HeadRepresentation) – 形状: (batch_size, d_e) 头部表示。
all_relations (RelationRepresentation) – 形状: (num_relations, d_r) 关系表示。
t (TailRepresentation) – 形状: (batch_size, d_e) 尾部的表示。
slice_size (int | None) – 切片大小。
- Returns:
形状: (batch_size, num_entities) 分数。
- Return type:
- score_t(h: HeadRepresentation, r: RelationRepresentation, all_entities: TailRepresentation, slice_size: int | None = None) Tensor[source]
对所有尾部实体进行评分。
- Parameters:
h (HeadRepresentation) – 形状: (batch_size, d_e) 头部表示。
r (RelationRepresentation) – 形状: (batch_size, d_r) 关系表示。
all_entities (TailRepresentation) – 形状: (num_entities, d_e) 尾部的表示。
slice_size (int | None) – 切片大小。
- Returns:
形状: (batch_size, num_entities) 分数。
- Return type: