SampledRankBasedEvaluator

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)[source]

Bases: RankBasedEvaluator

A rank-based evaluator using sampled negatives instead of all negatives.

See also [teru2020].

Notice that this evaluator yields optimistic estimations of the metrics evaluated on all entities, cf. https://arxiv.org/abs/2106.06935.

Initialize the evaluator.

Parameters:
  • evaluation_factory (CoreTriplesFactory) – the factory with evaluation triples

  • additional_filter_triples (None | MappedTriples | list[MappedTriples]) – additional true triples to use for filtering; only relevant if not explicit negatives are given. cf. pykeen.evaluation.rank_based_evaluator.sample_negatives()

  • num_negatives (int | None) – the number of negatives to sample; only relevant if not explicit negatives are given. cf. pykeen.evaluation.rank_based_evaluator.sample_negatives()

  • head_negatives (LongTensor | None) – shape: (num_triples, num_negatives) the entity IDs of negative samples for head prediction for each evaluation triple

  • tail_negatives (LongTensor | None) – shape: (num_triples, num_negatives) the entity IDs of negative samples for tail prediction for each evaluation triple

  • kwargs – additional keyword-based arguments passed to pykeen.evaluation.rank_based_evaluator.RankBasedEvaluator.__init__()

Raises:

ValueError – if only a single side’s negatives are given, or the negatives are in wrong shape

Methods Summary

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

Process a batch of triples with their computed scores for all entities.

Methods Documentation

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

Process a batch of triples with their computed scores for all entities.

Parameters:
  • hrt_batch (Tensor) – shape: (batch_size, 3)

  • target (Literal['head', 'relation', 'tail']) – the prediction target

  • scores (Tensor) – shape: (batch_size, num_entities)

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

  • dense_positive_mask (Tensor | None) – shape: (batch_size, num_entities) An optional binary (0/1) tensor indicating other true entities.

Return type:

None