code: def call(self, inputs):
      (
          user_vec,
          p_item_vec,
          n_item_vec,
          p_item_bias,
          n_item_bias,
      ) = inputs
  
      dot_user_pos = tf.math.reduce_sum(
          user_vec * p_item_vec, axis=1, keepdims=True
      )
      dot_user_neg = tf.math.reduce_sum(
          user_vec * n_item_vec, axis=1, keepdims=True
      )
  
      if p_item_bias is not None:
          dot_user_pos += p_item_bias
  
      if n_item_bias is not None:
          dot_user_neg += n_item_bias
  
      loss = -tf.math.reduce_mean(
          tf.math.log_sigmoid(
              tf.math.maximum(dot_user_pos - dot_user_neg, -30.0)
          )
      )
  
      return loss
  
imports: import tensorflow
  from tensorflow.keras.layers import Layer
label_desc: Use image node_id 2 for calling the PairwiseLogLoss obj's underlying member method code with example usage: obj.call(inputs) and returns: loss