TransR
- class TransR(*, embedding_dim: int = 50, relation_dim: int = 30, max_projection_norm: float = 1.0, scoring_fct_norm: int = 1, power_norm: bool = False, entity_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function xavier_uniform_>, entity_initializer_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, entity_constrainer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function clamp_norm>, relation_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <pykeen.utils.compose object>, relation_initializer_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, relation_constrainer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function clamp_norm>, relation_projection_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function xavier_uniform_>, relation_projection_initializer_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, **kwargs)[源代码]
基础类:
ERModel[Tensor,tuple[Tensor,Tensor],Tensor]TransR 的实现来自 [lin2015]。
该模型将实体表示为\(d\)维向量,将关系表示为\(k\)维向量。 为了将它们带入相同的向量空间,还学习了一个特定于关系的投影。 所有表示都存储在
Embedding矩阵中。然后将表示传递给
TransRInteraction函数以获得分数。应用以下约束条件:
\(\|\textbf{e}_h\|_2 \leq 1\)
\(\|\textbf{r}_r\|_2 \leq 1\)
\(\|\textbf{e}_t\|_2 \leq 1\)
以及在
TransRInteraction内部\(\|\textbf{M}_{r}\textbf{e}_h\|_2 \leq 1\)
\(\|\textbf{M}_{r}\textbf{e}_t\|_2 \leq 1\)
另请参阅
OpenKE TransR的TensorFlow实现
OpenKE PyTorch 实现的 TransR
初始化模型。
- Parameters:
embedding_dim (int) – 实体嵌入维度 \(d\)。
relation_dim (int) – 关系嵌入维度 \(k\)。
max_projection_norm (float) – 投影后要限制的最大范数。
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_initializer_kwargs (Mapping[str, Any] | None) – 调用实体初始化器时要使用的关键字参数。
entity_constrainer (str | Callable[[Tensor], Tensor] | None) – 实体约束器。默认为
pykeen.utils.clamp_norm()。relation_initializer (str | Callable[[Tensor], Tensor] | None) – 关系初始化函数。默认为
pykeen.nn.init.xavier_uniform_norm_()。relation_initializer_kwargs (Mapping[str, Any] | None) – 调用关系初始化器时要使用的关键字参数。
relation_constrainer (str | Callable[[Tensor], Tensor] | None) – 关系约束器。默认为
pykeen.utils.clamp_norm()。relation_projection_initializer (str | Callable[[Tensor], Tensor] | None) – 关系投影初始化函数。默认为
torch.nn.init.xavier_uniform_()。relation_projection_initializer_kwargs (Mapping[str, Any] | None) – 调用关系投影初始化器时要使用的关键字参数。
kwargs – 传递给
ERModel的剩余关键字参数。
属性摘要
优化模型超参数的默认策略
属性文档