BoxE
- class BoxE(*, embedding_dim: int = 256, tanh_map: bool = True, p: int = 2, power_norm: bool = False, entity_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <pykeen.utils.compose object>, entity_initializer_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, 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_size_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function uniform_>, relation_size_initializer_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, **kwargs)[源代码]
基础:
ERModel[tuple[Tensor,Tensor],tuple[Tensor,Tensor,Tensor,Tensor,Tensor,Tensor],tuple[Tensor,Tensor]]BoxE的实现来自[abboud2020]。
它结合了多个用于实体和关系表示的
Embedding与BoxEInteraction函数。注意
此实现目前仅支持由二元事实组成的单模态知识图谱,而原始的BoxE适用于任何元数的任意事实,即一元事实、二元事实、三元事实等。对于更高元数的知识库,请参考原始实现https://www.github.com/ralphabb/BoxE。
初始化 BoxE。
- Parameters:
embedding_dim (int) – 实体嵌入维度 \(d\)。默认为200。通常为 \(d \in [50, 300]\)。
tanh_map (bool) – 是否在BoxE计算后使用tanh映射(默认为true)。双曲正切映射将嵌入空间限制在[-1, 1]范围内,因此这种映射隐式地正则化空间,以防止通过任意增大盒子来减少损失。
p (int) – 与
torch.linalg.vector_norm()一起使用的范数。通常为1或2。power_norm (bool) – 是否使用\(L_p\)范数的p次方。它的优点是在0附近可微分,并且在数值上更稳定。
entity_initializer (str | Callable[[Tensor], Tensor] | None) – 实体初始化函数。默认为
pykeen.nn.init.uniform_norm_()entity_initializer_kwargs (Mapping[str, Any] | None) – 调用实体初始化器时要使用的关键字参数
relation_initializer (str | Callable[[Tensor], Tensor] | None) – 关系初始化函数。默认为
pykeen.nn.init.uniform_norm_()relation_initializer_kwargs (Mapping[str, Any] | None) – 调用关系初始化器时要使用的关键字参数
relation_size_initializer (str | Callable[[Tensor], Tensor] | None) – 关系初始化函数。默认为
torch.nn.init.uniform_()默认为torch.nn.init.uniform_()relation_size_initializer_kwargs (Mapping[str, Any] | None) – 调用关系矩阵初始化器时要使用的关键字参数
kwargs – 传递给
ERModel的剩余关键字参数。
属性摘要
优化模型超参数的默认策略
默认损失函数类的默认参数
属性文档