MarginRankingLoss

class MarginRankingLoss(margin: float = 1.0, reduction: str = 'mean')[源代码]

基础:MarginPairwiseLoss

成对铰链损失(即边际排序损失)。

\[L(k, \bar{k}) = \max(0, f(\bar{k}) - f(k) + \lambda)\]

其中 \(k\) 是正三元组,\(\bar{k}\) 是负三元组,\(f\) 是交互函数(例如, TransE 有 \(f(h,r,t)=-||\mathbf{e}_h+\mathbf{e}_r-\mathbf{e}_t||_p\)),\(g(x)=\max(0,x)\) 是 ReLU 激活函数,\(\lambda\) 是边界。

另请参阅

MRL 与 pykeen.losses.SoftMarginRankingLoss 密切相关,唯一的区别在于此损失函数使用 ReLU 激活函数,而 pykeen.losses.SoftMarginRankingLoss 使用 softmax 激活函数。MRL 还与 pykeen.losses.PairwiseLogisticLoss 相关,因为这是 pykeen.losses.SoftMarginRankingLoss 在没有 margin 的情况下的特例。

注意

相关的 torch 模块是 torch.nn.MarginRankingLoss,但由于 PyKEEN 的损失函数中实现了扩展功能,因此不能互换使用。

初始化边距损失实例。

Parameters:
  • margin (float) – 正负分数应该分开的边距。

  • reduction (str) – 用于将批次中的单个损失值聚合为标量损失值的归约操作的名称。从 {‘mean’, ‘sum’} 中选择。

属性摘要

hpo_default

优化损失超参数的默认策略

synonyms

这个损失的近义词

属性文档

hpo_default: ClassVar[Mapping[str, Any]] = {'margin': {'high': 3, 'low': 0, 'type': <class 'float'>}}

优化损失超参数的默认策略

synonyms: ClassVar[set[str] | None] = {'Pairwise Hinge Loss'}

这个损失的近义词