DistMult
- class DistMult(*, embedding_dim: int = 50, 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>, regularizer: str | ~pykeen.regularizers.Regularizer | type[~pykeen.regularizers.Regularizer] | None = <class 'pykeen.regularizers.LpRegularizer'>, regularizer_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, entity_representations_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, relation_representations_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, **kwargs)[source]
基础类:
ERModel[Tensor,Tensor,Tensor]DistMult 的实现来自 [yang2014]。
在这项工作中,实体和关系都由存储在
Embedding矩阵中的\(d\)维向量表示。 实体表示向量进一步被约束为单位\(L_2\)范数。 对于关系表示,则使用向量\(L_2\)范数的(软)正则化项。然后将表示传递给
DistMultInteraction函数以获得分数。这个DistMult模型可以被看作是
RESCAL模型的简化版本, 其中关系矩阵被限制为对角矩阵: 由于其对对角矩阵的限制,DistMult在计算上比RESCAL更便宜,但同时也表达能力较弱。例如,它无法 建模反对称关系。另请参阅
OpenKE DistMult的实现
初始化DistMult。
- Parameters:
embedding_dim (int) – 实体嵌入维度 \(d\)。通常为 \(d \in [50, 300]\)。
entity_initializer (str | Callable[[Tensor], Tensor] | None) – 用于初始化实体嵌入的方法。默认为 Xavier/Glorot 均匀分布,参见 OpenKE
entity_constrainer (str | Callable[[Tensor], Tensor] | None) – 实体嵌入的约束器。默认为单位L2范数。
relation_initializer (str | Callable[[Tensor], Tensor] | None) – 用于初始化关系嵌入的方法。默认使用Xavier/Glorot均匀分布,然后归一化为单位L2长度。
regularizer (str | Regularizer | type[Regularizer] | None) – 关系表示的正则化器。
regularizer_kwargs (Mapping[str, Any] | None) – 额外的基于关键字的参数。默认为
DistMult.regularizer_default_kwargs用于默认的正则化器。entity_representations_kwargs (Mapping[str, Any] | None) – 传递给
pykeen.models.ERModel的entity_representations_kwargs的额外参数。 请注意,这些参数优先于此类填充的参数。relation_representations_kwargs (Mapping[str, Any] | None) – 传递给
pykeen.models.ERModel的relation_representations_kwargs的额外参数。 请注意,这些参数优先于此类填充的参数。kwargs – 剩余的关键字参数将转发到
pykeen.models.ERModel
注意
参数对
(regularizer, regularizer_kwargs)用于pykeen.regularizers.regularizer_resolver解析器的解释及其使用方法在 https://class-resolver.readthedocs.io/en/latest/中给出。
属性摘要
优化模型超参数的默认策略
用于DistMult的[yang2014]的LP设置
属性文档