TransE
- class TransE(*, embedding_dim: int = 50, scoring_fct_norm: int = 1, power_norm: bool = False, entity_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function xavier_uniform_>, entity_constrainer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function normalize>, relation_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <pykeen.utils.compose object>, relation_constrainer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = None, regularizer: str | ~pykeen.regularizers.Regularizer | type[~pykeen.regularizers.Regularizer] | None = None, regularizer_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, **kwargs)[source]
基础类:
ERModel[Tensor,Tensor,Tensor]TransE 的一个实现 [bordes2013]。
该模型将实体和关系表示为存储在
Embedding矩阵中的\(d\)维向量。然后将这些表示传递给TransEInteraction函数以获得分数。初始化TransE。
- Parameters:
embedding_dim (int) – 实体嵌入维度 \(d\)。通常为 \(d \in [50, 300]\)。
scoring_fct_norm (int) – 与
torch.linalg.vector_norm()一起使用的范数。通常为1或2。power_norm (bool) – 是否使用\(L_p\)范数的p次方。它的优点是在0附近可微分,并且在数值上更稳定。
entity_initializer (str | Callable[[Tensor], Tensor] | None) – 实体初始化函数。默认为
pykeen.nn.init.xavier_uniform_()。entity_constrainer (str | Callable[[Tensor], Tensor] | None) – 实体约束函数。默认为
torch.nn.functional.normalize()。relation_initializer (str | Callable[[Tensor], Tensor] | None) – 关系初始化函数。默认为
pykeen.nn.init.xavier_uniform_norm_()。relation_constrainer (str | Callable[[Tensor], Tensor] | None) – 关系约束函数。默认为无。
regularizer (str | Regularizer | type[Regularizer] | None) – 一个正则化器,或其提示。用于实体和关系表示;如果需要更多灵活性,请直接使用
ERModelregularizer_kwargs (Mapping[str, Any] | None) – 正则化器的基于关键字的参数
kwargs – 剩余的关键字参数将转发给
__init__()
另请参阅
OpenKE TransE的实现
NormBasedInteractionfor a description of the parametersscoring_fct_norm和power_norm。
属性摘要
优化模型超参数的默认策略
属性文档