NSSALoss

class NSSALoss(margin: float = 9.0, adversarial_temperature: float = 1.0, reduction: str = 'mean')[source]

基础类:AdversarialLoss

[sun2019]提出的自对抗负采样损失函数。

初始化NSSA损失。

Parameters:
  • margin (float) – 损失的边界(在参考论文中也写作 gamma)

  • adversarial_temperature (float) –

    负采样温度(在参考论文中也写作 alpha)

    注意

    对抗温度是计算权重时使用的 softmax 温度的倒数! 其名称仅为了与 [sun2019] 的命名法保持一致。

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

注意

默认的超参数基于[sun2019]中针对FB15k-237的实验。

属性摘要

hpo_default

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

synonyms

这个损失的近义词

方法总结

negative_loss_term_unreduced(neg_scores[, ...])

计算负分数的损失不进行缩减。

positive_loss_term(pos_scores[, ...])

计算正分数的损失。

属性文档

hpo_default: ClassVar[Mapping[str, Any]] = {'adversarial_temperature': {'high': 1.0, 'low': 0.5, 'type': <class 'float'>}, 'margin': {'high': 30, 'low': 3, 'q': 3, 'type': <class 'int'>}}

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

synonyms: ClassVar[set[str] | None] = {'Negative Sampling Self-Adversarial Loss', 'Self-Adversarial Negative Sampling Loss'}

这个损失的近义词

方法文档

negative_loss_term_unreduced(neg_scores: Tensor, label_smoothing: float | None = None, num_entities: int | None = None) Tensor[source]

计算负分数的损失不进行缩减。

Parameters:
  • neg_scores (Tensor) – 任意形状 负分数

  • label_smoothing (float | None) – 标签平滑参数

  • num_entities (int | None) – 实体数量(用于标签平滑的必需参数)

Returns:

标量 负分数的未减少损失项

Return type:

Tensor

positive_loss_term(pos_scores: Tensor, label_smoothing: float | None = None, num_entities: int | None = None) Tensor[source]

计算正分数的损失。

Parameters:
  • pos_scores (Tensor) – 任意形状 正分数

  • label_smoothing (float | None) – 标签平滑参数

  • num_entities (int | None) – 实体数量(用于标签平滑的必需参数)

Returns:

标量 正分数的减少损失项

Return type:

Tensor