NodePiece
- class NodePiece(*, triples_factory: ~pykeen.triples.triples_factory.CoreTriplesFactory, num_tokens: int | ~collections.abc.Sequence[int] = 2, tokenizers: str | ~pykeen.nn.node_piece.tokenization.Tokenizer | type[~pykeen.nn.node_piece.tokenization.Tokenizer] | None | ~collections.abc.Sequence[str | ~pykeen.nn.node_piece.tokenization.Tokenizer | type[~pykeen.nn.node_piece.tokenization.Tokenizer] | None] = None, tokenizers_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None | ~collections.abc.Sequence[~collections.abc.Mapping[str, ~typing.Any] | None] = None, embedding_dim: int = 64, 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, entity_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = None, entity_normalizer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = None, entity_constrainer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = None, entity_regularizer: str | ~pykeen.regularizers.Regularizer | None = None, relation_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = None, relation_normalizer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = None, relation_constrainer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = None, relation_regularizer: str | ~pykeen.regularizers.Regularizer | None = None, **kwargs)[源代码]
基础类:
ERModel一个包装器,它将交互函数与来自[galkin2021]的NodePiece实体表示结合起来。
该模型使用
pykeen.nn.NodePieceRepresentation而不是典型的pykeen.nn.representation.Embedding来更高效地存储表示。初始化模型。
- Parameters:
triples_factory (CoreTriplesFactory) – 三元组工厂。必须将create_inverse_triples设置为True。
num_tokens (int | Sequence[int]) – 用于表示每个实体的关系数量,参见
pykeen.nn.NodePieceRepresentation。tokenizers (str | Tokenizer | type[Tokenizer] | None | Sequence[str | Tokenizer | type[Tokenizer] | None]) – 要使用的分词器,参见 pykeen.nn.node_piece.tokenizer_resolver。
tokenizers_kwargs (Mapping[str, Any] | None | Sequence[Mapping[str, Any] | None]) – 在构建时传递给分词器的额外基于关键字的参数。
embedding_dim (int) – 嵌入维度。仅在未提供embedding_specification时使用。
interaction (str | Interaction | type[Interaction] | None) – 交互模块,或它的提示。
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),以及要聚合的索引。entity_initializer (str | Callable[[Tensor], Tensor] | None) – 用于初始化锚点嵌入的提示
entity_normalizer (str | Callable[[Tensor], Tensor] | None) – 用于标准化锚点嵌入的提示
entity_constrainer (str | Callable[[Tensor], Tensor] | None) – 用于约束锚点嵌入的提示
entity_regularizer (str | Regularizer | None) – 用于正则化锚点嵌入的提示
relation_initializer (str | Callable[[Tensor], Tensor] | None) – 用于初始化关系嵌入的提示
relation_normalizer (str | Callable[[Tensor], Tensor] | None) – 用于规范化关系嵌入的提示
relation_constrainer (str | Callable[[Tensor], Tensor] | None) – 用于约束关系嵌入的提示
relation_regularizer (str | Regularizer | None) – 用于正则化关系嵌入的提示
kwargs – 传递给
ERModel.__init__()的额外基于关键字的参数
- Raises:
ValueError – 如果三元组工厂没有创建反向三元组
属性摘要
优化模型超参数的默认策略
属性文档