def softmax_loss()

in recommended-item-search/softmax_model.py [0:0]


def softmax_loss(user_embeddings, movie_embeddings, labels):
  """Calculate loss with sampled movie id."""
  user_embedding_size = user_embeddings.shape[1].value
  movie_embedding_size = movie_embeddings.shape[1].value
  if user_embedding_size != movie_embedding_size:
    raise ValueError(
        "The user embedding dimension %d should match the movie embedding "
        "dimension % d" % (user_embedding_size, movie_embedding_size))

  logits = tf.matmul(user_embeddings, movie_embeddings, transpose_b=True)
  loss = tf.losses.sparse_softmax_cross_entropy(labels, logits)
  return loss