View source on GitHub |
Computes metrics for across top K candidates surfaced by a retrieval model.
Inherits From: Factorized
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.
Methods
call
call(
inputs, *args, **kwargs
)
This is where the layer's logic lives.
The 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 Layer
instances,
in __init__()
, or in the build()
method that is
called automatically before call()
executes for the first time.
Args | |
---|---|
inputs
|
Input tensor, or dict/list/tuple of input tensors.
The first positional inputs argument is subject to special rules:
|
*args
|
Additional positional arguments. May contain tensors, although this is not recommended, for the reasons above. |
**kwargs
|
Additional keyword arguments. May contain tensors, although
this is not recommended, for the reasons above.
The following optional keyword arguments are reserved:
training : Boolean scalar tensor of Python boolean indicating
whether the call is meant for training or inference.mask : Boolean input mask. If the layer's call() method takes a
mask argument, its default value will be set to the mask
generated for inputs by the previous layer (if input did come
from a layer that generated a corresponding mask, i.e. if it came
from a Keras layer with masking support).
|
Returns | |
---|---|
A tensor or list/tuple of tensors. |
reset_states
reset_states() -> None
Resets the metrics.
result
result() -> List[tf.Tensor]
Returns a list of metric results.
update_state
update_state(
query_embeddings: tf.Tensor,
true_candidate_embeddings: tf.Tensor,
true_candidate_ids: Optional[tf.Tensor] = None,
sample_weight: Optional[tf.Tensor] = None
) -> tf.Operation
Updates the metrics.
Args | |
---|---|
query_embeddings
|
[num_queries, embedding_dim] tensor of query embeddings. |
true_candidate_embeddings
|
[num_queries, embedding_dim] tensor of embeddings for candidates that were selected for the query. |
true_candidate_ids
|
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. |
sample_weight
|
Optional weighting of each example. Defaults to 1. |
Returns | |
---|---|
Update op. Only used in graph mode. |