merlin.models.tf.ItemRetrievalTask
-
class
merlin.models.tf.
ItemRetrievalTask
(*args, **kwargs)[source] Bases:
merlin.models.tf.prediction_tasks.classification.MultiClassClassificationTask
Prediction-task for item-retrieval.
- Parameters
schema (Schema) – The schema object including features to use and their properties.
loss (Optional[LossType]) – Loss function. Defaults to categorical_crossentropy.
metrics (MetricOrMetrics) – List of top-k ranking metrics. Defaults to a number of ranking metrics.
samplers (List[ItemSampler]) – List of samplers for negative sampling, by default [InBatchSampler()]
post_logits (Optional[PredictionBlock]) – Optional extra pre-call block for post-processing the logits, by default None. You can for example use post_logits = mm.PopularitySamplingBlock(item_fequency) for populariy sampling correction.
target_name (Optional[str]) – If specified, name of the target tensor to retrieve from dataloader. Defaults to None.
task_name (Optional[str]) – name of the task. Defaults to None.
task_block (Block) – The Block that applies additional layers op to inputs. Defaults to None.
logits_temperature (float) – Parameter used to reduce the model overconfidence, so that logits / T. Defaults to 1.
- Returns
The item retrieval prediction task
- Return type
-
__init__
(schema: merlin.schema.schema.Schema, loss: Optional[Union[str, keras.losses.Loss]] = 'categorical_crossentropy', metrics: Union[Sequence[Union[keras.metrics.base_metric.Metric, Type[keras.metrics.base_metric.Metric]]], keras.metrics.base_metric.Metric, Type[keras.metrics.base_metric.Metric]] = [RecallAt( (total): <tf.Variable 'total:0' shape=() dtype=float32, numpy=0.0> (count): <tf.Variable 'count:0' shape=() dtype=float32, numpy=0.0> (_fn_kwargs): Dict() ), MRRAt( (total): <tf.Variable 'total:0' shape=() dtype=float32, numpy=0.0> (count): <tf.Variable 'count:0' shape=() dtype=float32, numpy=0.0> (_fn_kwargs): Dict() ), NDCGAt( (total): <tf.Variable 'total:0' shape=() dtype=float32, numpy=0.0> (count): <tf.Variable 'count:0' shape=() dtype=float32, numpy=0.0> (_fn_kwargs): Dict() ), AvgPrecisionAt( (total): <tf.Variable 'total:0' shape=() dtype=float32, numpy=0.0> (count): <tf.Variable 'count:0' shape=() dtype=float32, numpy=0.0> (_fn_kwargs): Dict() ), PrecisionAt( (total): <tf.Variable 'total:0' shape=() dtype=float32, numpy=0.0> (count): <tf.Variable 'count:0' shape=() dtype=float32, numpy=0.0> (_fn_kwargs): Dict() )], samplers: Sequence[merlin.models.tf.blocks.sampling.base.ItemSampler] = (), target_name: Optional[str] = None, task_name: Optional[str] = None, task_block: Optional[tensorflow.python.keras.legacy_tf_layers.base.Layer] = None, post_logits: Optional[merlin.models.tf.blocks.core.base.Block] = None, logits_temperature: float = 1.0, cache_query: bool = False, store_negative_ids: bool = False, **kwargs)[source]
Methods
__init__
(schema[, loss, metrics, samplers, …])add_loss
(losses, **kwargs)Add loss tensor(s), potentially dependent on layer inputs.
add_metric
(value[, name])Adds metric tensor to the layer.
add_update
(updates)Add update op(s), potentially dependent on layer inputs.
add_variable
(*args, **kwargs)Deprecated, do NOT use! Alias for add_weight.
add_weight
([name, shape, dtype, …])Adds a new variable to the layer.
attach_metrics_calculation_to_loss
(outputs, …)build
(input_shape)Creates the variables of the layer (optional, for subclass implementers).
build_task
(input_shape, schema, body, **kwargs)calculate_metrics
(outputs[, sample_weight, …])Method to compute the metrics.
call
(inputs[, training, eval_sampling])child_name
(name)compute_loss
(predictions, targets[, …])Method to compute the loss and metrics during training/evaluation.
compute_mask
(inputs[, mask])Computes an output mask tensor.
compute_output_shape
(input_shape)Computes the output shape of the layer.
compute_output_signature
(input_signature)Compute the output tensor signature of the layer based on the inputs.
count_params
()Count the total number of scalars composing the weights.
finalize_state
()Finalizes the layers state after updating layer weights.
from_config
(config)from_schema
(schema[, feature_name, loss, …])Create from Schema.
get_config
()get_input_at
(node_index)Retrieves the input tensor(s) of a layer at a given node.
get_input_mask_at
(node_index)Retrieves the input mask tensor(s) of a layer at a given node.
get_input_shape_at
(node_index)Retrieves the input shape(s) of a layer at a given node.
get_output_at
(node_index)Retrieves the output tensor(s) of a layer at a given node.
get_output_mask_at
(node_index)Retrieves the output mask tensor(s) of a layer at a given node.
get_output_shape_at
(node_index)Retrieves the output shape(s) of a layer at a given node.
get_weights
()Returns the current weights of the layer, as NumPy arrays.
metric_result_dict
([mode])metric_results
([mode])pre_call
(inputs, **kwargs)Apply PredictionTask to inputs to get predictions scores
pre_loss
(outputs, **kwargs)Apply call_outputs method of pre block to transform predictions and targets before computing loss and metrics.
repr_add
()reset_metrics
()set_retrieval_cache_query
(value)set_weights
(weights)Sets the weights of the layer, from NumPy arrays.
with_name_scope
(method)Decorator to automatically enter the module name scope.
Attributes
activity_regularizer
Optional regularizer function for the output of this layer.
compute_dtype
The dtype of the layer’s computations.
context
dtype
The dtype of the layer weights.
dtype_policy
The dtype policy associated with this layer.
dynamic
Whether the layer is dynamic (eager-only); set in the constructor.
inbound_nodes
Return Functional API nodes upstream of this layer.
input
Retrieves the input tensor(s) of a layer.
input_mask
Retrieves the input mask tensor(s) of a layer.
input_shape
Retrieves the input shape(s) of a layer.
input_spec
InputSpec instance(s) describing the input format for this layer.
losses
List of losses added using the add_loss() API.
metrics
List of metrics added using the add_metric() API.
name
Name of the layer (string), set in the constructor.
name_scope
Returns a tf.name_scope instance for this class.
non_trainable_variables
non_trainable_weights
List of all non-trainable weights tracked by this layer.
outbound_nodes
Return Functional API nodes downstream of this layer.
output
Retrieves the output tensor(s) of a layer.
output_mask
Retrieves the output mask tensor(s) of a layer.
output_shape
Retrieves the output shape(s) of a layer.
pre_eval_topk
stateful
submodules
Sequence of all sub-modules.
supports_masking
Whether this layer supports computing a mask using compute_mask.
task_name
trainable
trainable_variables
trainable_weights
List of all trainable weights tracked by this layer.
updates
variable_dtype
Alias of Layer.dtype, the dtype of the weights.
variables
Returns the list of all layer variables/weights.
weights
Returns the list of all layer variables/weights.
-
DEFAULT_LOSS
= 'categorical_crossentropy'
-
DEFAULT_METRICS
: Union[Sequence[Union[keras.metrics.base_metric.Metric, Type[keras.metrics.base_metric.Metric]]], keras.metrics.base_metric.Metric, Type[keras.metrics.base_metric.Metric]] = [RecallAt( (total): <tf.Variable 'total:0' shape=() dtype=float32, numpy=0.0> (count): <tf.Variable 'count:0' shape=() dtype=float32, numpy=0.0> (_fn_kwargs): Dict() ), MRRAt( (total): <tf.Variable 'total:0' shape=() dtype=float32, numpy=0.0> (count): <tf.Variable 'count:0' shape=() dtype=float32, numpy=0.0> (_fn_kwargs): Dict() ), NDCGAt( (total): <tf.Variable 'total:0' shape=() dtype=float32, numpy=0.0> (count): <tf.Variable 'count:0' shape=() dtype=float32, numpy=0.0> (_fn_kwargs): Dict() ), AvgPrecisionAt( (total): <tf.Variable 'total:0' shape=() dtype=float32, numpy=0.0> (count): <tf.Variable 'count:0' shape=() dtype=float32, numpy=0.0> (_fn_kwargs): Dict() ), PrecisionAt( (total): <tf.Variable 'total:0' shape=() dtype=float32, numpy=0.0> (count): <tf.Variable 'count:0' shape=() dtype=float32, numpy=0.0> (_fn_kwargs): Dict() )]
-
property
retrieval_scorer