merlin.models.tf.losses.BPRmaxLoss

class merlin.models.tf.losses.BPRmaxLoss(reg_lambda: float = 1.0, **kwargs)[source]

Bases: merlin.models.utils.registry.RegistryMixin[LossRegistryMixin]

The BPR-max pairwise loss proposed in 1

References

1

Hidasi, Balázs, and Alexandros Karatzoglou. “Recurrent neural networks with top-k gains for session-based recommendations.” Proceedings of the 27th ACM international conference on information and knowledge management. 2018. https://arxiv.org/abs/1706.03847

__init__(reg_lambda: float = 1.0, **kwargs)[source]

[summary]

Parameters

reg_lambda (float, optional) – Regularization factor of the softmax(neg_scores) term, by default 1.0

Methods

__init__([reg_lambda])

[summary]

call(y_true, y_pred)

Loss computation.

compute(positives_scores, negatives_scores)

Computes the loss

from_config(config)

Instantiates a Loss from its config (output of get_config()).

get_config()

Returns the config dictionary for a Loss instance.

parse(class_or_str)

Attributes

registry

valid_negatives_mask

compute(positives_scores: tensorflow.python.framework.ops.Tensor, negatives_scores: tensorflow.python.framework.ops.Tensor)tensorflow.python.framework.ops.Tensor[source]

Computes the loss

Parameters
  • positives_scores (tf.Tensor) – Prediction scores for the positive items (batch size x 1)

  • negatives_scores (tf.Tensor) – Prediction scores for the positive items (batch size x number negative samples)

Returns

Loss per negative sample

Return type

tf.Tensor (batch size x number negative samples)