|View source on GitHub|
Computes metrics for across top K candidates surfaced by a retrieval model.
tfrs.metrics.FactorizedTopK( candidates: Union[layers.factorized_top_k.TopK, tf.data.Dataset], ks: Sequence[int] = (1, 5, 10, 50, 100), name: str = 'factorized_top_k' ) -> None
Used in the notebooks
|Used in the tutorials|
The default metric is top K categorical accuracy: how often the true candidate is in the top K candidates for a given query.
||A layer for retrieving top candidates in response to a query, or a dataset of candidate embeddings from which candidates should be retrieved.|
A sequence of values of
call( inputs, *args, **kwargs )
This is where the layer's logic lives.
call() method may not create state (except in its first
invocation, wrapping the creation of variables or other resources in
tf.init_scope()). It is recommended to create state, including
tf.Variable instances and nested
__init__(), or in the
build() method that is
called automatically before
call() executes for the first time.
Input tensor, or dict/list/tuple of input tensors.
The first positional
||Additional positional arguments. May contain tensors, although this is not recommended, for the reasons above.|
Additional keyword arguments. May contain tensors, although
this is not recommended, for the reasons above.
The following optional keyword arguments are reserved:
|A tensor or list/tuple of tensors.|
reset_states() -> None
Resets the metrics.
result() -> List[tf.Tensor]
Returns a list of metric results.
update_state( query_embeddings: tf.Tensor, true_candidate_embeddings: tf.Tensor, true_candidate_ids: Optional[tf.Tensor] = None ) -> tf.Operation
Updates the metrics.
||[num_queries, embedding_dim] tensor of query embeddings.|
||[num_queries, embedding_dim] tensor of embeddings for candidates that were selected for the query.|
Ids of the true candidates. If supplied, evaluation
will be id-based: the supplied ids will be matched against the ids of
the top candidates returned from the retrieval index, which should have
been constructed with the appropriate identifiers.
If not supplied, evaluation will be score-based: the score of the true candidate will be computed and compared with the scores returned from the index for the top candidates.
Score-based evaluation is useful for when the true candidate is not in the retrieval index. Id-based evaluation is useful for when scores returned from the index are not directly comparable to scores computed by multiplying the candidate and embedding vector. For example, scores returned by ScaNN are quantized, and cannot be compared to full-precision scores.
|Update op. Only used in graph mode.|