Source code for deepr.examples.movielens.layers.bpr

# pylint: disable=unexpected-keyword-arg,no-value-for-parameter,invalid-name
"""BPR Loss with biases."""

import deepr


[docs]def BPRLoss(vocab_size: int): """BPR Loss with biases.""" return deepr.layers.DAG( deepr.layers.Select(inputs=("userEmbeddings", "targetPositives", "targetNegatives", "targetMask")), deepr.layers.DenseIndex( inputs=("userEmbeddings", "targetPositives"), outputs="targetPositiveLogits", units=vocab_size, kernel_name="embeddings", bias_name="biases", reuse=True, ), deepr.layers.DenseIndex( inputs=("userEmbeddings", "targetNegatives"), outputs="targetNegativeLogits", units=vocab_size, kernel_name="embeddings", bias_name="biases", reuse=True, ), deepr.layers.ToFloat(inputs="targetMask", outputs="targetWeight"), deepr.layers.ExpandDims(inputs="targetMask", outputs="targetMask"), deepr.layers.MaskedBPR( inputs=("targetPositiveLogits", "targetNegativeLogits", "targetMask", "targetWeight"), outputs="loss" ), deepr.layers.TripletPrecision( inputs=("targetPositiveLogits", "targetNegativeLogits", "targetMask", "targetWeight"), outputs="triplet_precision", ), deepr.layers.Select(inputs=("loss", "triplet_precision")), )