基于样本排名的评估器

class SampledRankBasedEvaluator(evaluation_factory: CoreTriplesFactory, *, additional_filter_triples: None | Tensor | list[Tensor] = None, num_negatives: int | None = None, head_negatives: Tensor | None = None, tail_negatives: Tensor | None = None, **kwargs)[来源]

基础类: RankBasedEvaluator

一个基于排名的评估器,使用采样的负样本而不是所有负样本。

另请参阅 [teru2020]

请注意,此评估器对所有实体评估的指标产生了乐观的估计,参见 https://arxiv.org/abs/2106.06935

初始化评估器。

Parameters:
  • evaluation_factory (CoreTriplesFactory) – 包含评估三元组的工厂

  • additional_filter_triples (None | MappedTriples | list[MappedTriples]) – 用于过滤的额外真实三元组;仅在未给出显式负例时相关。 参见 pykeen.evaluation.rank_based_evaluator.sample_negatives()

  • num_negatives (int | None) – 要采样的负样本数量;仅在未给出显式负样本时相关。 参见 pykeen.evaluation.rank_based_evaluator.sample_negatives()

  • head_negatives (LongTensor | None) – 形状: (num_triples, num_negatives) 每个评估三元组的头部预测的负样本的实体ID

  • tail_negatives (LongTensor | None) – 形状: (num_triples, num_negatives) 每个评估三元组的尾部预测的负样本的实体ID

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

Raises:

ValueError – 如果只给出了一侧的负值,或者负值的形状不正确

方法总结

process_scores_(hrt_batch, target, scores[, ...])

处理一批三元组及其为所有实体计算的分数。

方法文档

process_scores_(hrt_batch: Tensor, target: Literal['head', 'relation', 'tail'], scores: Tensor, true_scores: Tensor | None = None, dense_positive_mask: Tensor | None = None) None[来源]

处理一批三元组及其为所有实体计算的分数。

Parameters:
  • hrt_batch (Tensor) – 形状: (batch_size, 3)

  • target (Literal['head', 'relation', 'tail']) – 预测目标

  • scores (Tensor) – 形状: (batch_size, num_entities)

  • true_scores (Tensor | None) – 形状: (batch_size, 1)

  • dense_positive_mask (Tensor | None) – 形状: (batch_size, num_entities) 一个可选的二进制(0/1)张量,表示其他真实实体。

Return type: