HolE

class HolE(*, embedding_dim: int = 200, entity_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function xavier_uniform_>, entity_constrainer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function clamp_norm>, entity_constrainer_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, entity_representation_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, relation_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function xavier_uniform_>, relation_representation_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, **kwargs)[source]

基础类:ERModel[Tensor, Tensor, Tensor]

HolE的实现来自[nickel2016]

该模型将实体和关系表示为存储在Embedding矩阵中的\(d\)维向量。 然后,这些表示被传递给HolEInteraction函数以获得分数。

注意

原始论文描述了将概率建模为\(\sigma(f(h, r, t))\),然而,由于所有实验都使用了边际排序损失,因此得分函数的实现不包括\(\sigma\)

初始化模型。

Parameters:
  • embedding_dim (int) – 嵌入维度(用于实体和关系)

  • entity_initializer (str | Callable[[Tensor], Tensor] | None) – 实体表示的初始化器

  • entity_constrainer (str | Callable[[Tensor], Tensor] | None) – 实体表示的约束器

  • entity_constrainer_kwargs (Mapping[str, Any] | None) – 传递给约束器的基于关键字的参数。如果为None,则使用entity_constrainer_default_kwargs

  • entity_representation_kwargs (Mapping[str, Any] | None) – 传递给实体表示的额外基于关键字的参数

  • relation_initializer (str | Callable[[Tensor], Tensor] | None) – 关系表示的初始化器

  • relation_representation_kwargs (Mapping[str, Any] | None) – 传递给实体表示的额外基于关键字的参数

  • kwargs – 传递给 ERModel.__init__() 的额外基于关键字的参数

属性摘要

entity_constrainer_default_kwargs

实体约束器的默认设置

hpo_default

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

属性文档

entity_constrainer_default_kwargs = {'dim': -1, 'maxnorm': 1.0, 'p': 2}

实体约束器的默认设置

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

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