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]

它结合了多个用于实体和关系表示的EmbeddingBoxEInteraction函数。

注意

此实现目前仅支持由二元事实组成的单模态知识图谱,而原始的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的剩余关键字参数。

属性摘要

hpo_default

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

loss_default_kwargs

默认损失函数类的默认参数

属性文档

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

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

loss_default_kwargs: ClassVar[Mapping[str, Any] | None] = {'adversarial_temperature': 2.0, 'margin': 3, 'reduction': 'sum'}

默认损失函数类的默认参数