归纳节点片段

class InductiveNodePiece(*, triples_factory: ~pykeen.triples.triples_factory.CoreTriplesFactory, inference_factory: ~pykeen.triples.triples_factory.CoreTriplesFactory, num_tokens: int = 2, embedding_dim: int = 64, relation_representations_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, interaction: str | ~pykeen.nn.modules.Interaction | type[~pykeen.nn.modules.Interaction] | None = <class 'pykeen.nn.modules.DistMultInteraction'>, aggregation: str | ~typing.Callable[[~torch.Tensor, int], ~torch.Tensor] | None = None, validation_factory: ~pykeen.triples.triples_factory.CoreTriplesFactory | None = None, test_factory: ~pykeen.triples.triples_factory.CoreTriplesFactory | None = None, **kwargs)[来源]

基础类:InductiveERModel

一个包装器,它将交互函数与来自[galkin2021]的NodePiece实体表示结合起来。

该模型使用pykeen.nn.NodePieceRepresentation而不是典型的pykeen.nn.Embedding来更高效地存储表示。

初始化模型。

Parameters:
  • triples_factory (CoreTriplesFactory) – 训练三元组的工厂。必须将create_inverse_triples设置为True。

  • inference_factory (CoreTriplesFactory) – 推理三元组的工厂。必须将create_inverse_triples设置为True。

  • validation_factory (CoreTriplesFactory | None) – 验证三元组的工厂。必须将create_inverse_triples设置为True。

  • test_factory (CoreTriplesFactory | None) – 测试三元组的工厂。必须将create_inverse_triples设置为True。

  • num_tokens (int) – 用于表示每个实体的关系数量,参见 pykeen.nn.NodePieceRepresentation.

  • embedding_dim (int) – 嵌入维度。仅在未提供embedding_specification时使用。

  • relation_representations_kwargs (Mapping[str, Any] | None) – 关系表示参数

  • 交互 (Interaction) – 交互模块,或它的提示。

  • aggregation (str | Callable[[Tensor, int], Tensor] | None) –

    将多个标记表示聚合为单个实体表示。默认情况下,使用 torch.mean()。如果提供字符串,模块假设这是指顶层的 torch 函数,例如“mean”表示 torch.mean(),或“sum”表示 func:torch.sum。聚合也可以有可训练的参数,例如 MLP(mean(MLP(tokens)))(参见 [zaheer2017] 中的 DeepSets)。在这种情况下,模块必须在此组件之外创建。

    此外,我们支持提供“mlp”作为快捷方式,以使用 [galkin2021] 中的 MLP 聚合版本。

    我们还可以有导致不同形状输出的聚合,例如所有标记嵌入的串联,导致形状为 (num_tokens * d,)。在这种情况下,必须提供 shape

    聚合接受两个参数:标记表示的(批处理)张量,形状为 (*, num_tokens, *dt),以及要聚合的索引。

  • kwargs – 传递给 ERModel.__init__() 的额外基于关键字的参数

Raises:

ValueError – 如果三元组工厂没有创建反向三元组

属性摘要

hpo_default

优化模型超参数的默认策略

方法总结

create_entity_representation_for_new_triples(...)

为新三元组工厂创建NodePiece表示。

属性文档

hpo_default: ClassVar[Mapping[str, Any]] = {'embedding_dim': {'high': 256, 'low': 16, 'q': 16, 'type': <class 'int'>}}

优化模型超参数的默认策略

方法文档

create_entity_representation_for_new_triples(triples_factory: CoreTriplesFactory) NodePieceRepresentation[来源]

为新三元组工厂创建NodePiece表示。

表示被初始化,以便使用相同的关系表示,并且聚合是共享的。

Parameters:

triples_factory (CoreTriplesFactory) – 用于关系标记化的三元组工厂;必须共享相同的关系到ID的映射。

Returns:

一个新的NodePiece实体表示,具有共享关系标记化和聚合。

Raises:

ValueError – 如果三元组工厂不请求反向三元组,或者关系的数量不同。

Return type:

NodePieceRepresentation