class_docstr: The PointwiseGeMLPCE module minimizes the cross entropy classification loss. The logits are calculated as follows [ncf]_     (Bias term is not included).
  
  .. math::
      \alpha h^T(u_i^{ge} \odot v_j^{ge}) + (1 - \alpha)MLP([u_i^{mlp}, v_j^{mlp}])
  
  Parameters
  ----------
  user_mlp: Tensorflow tensor
      :math:`u^{mlp}` for users involved in the interactions. Shape: [number of interactions, dimensionality of         :math:`u^{mlp}`].
  user_ge: Tensorflow tensor
      :math:`u^{ge}` for users involved in the interactions. Shape: [number of interactions, dimensionality of         :math:`u^{ge}`].
  item_mlp: Tensorflow tensor
      :math:`v^{mlp}` for items involved in the interactions. Shape: [number of interactions, dimensionality of         :math:`v^{mlp}`].
  item_ge: Tensorflow tensor
      :math:`v^{ge}` for items involved in the interactions. Shape: [number of interactions, dimensionality of         :math:`v^{ge}`].
  item_bias: Tensorflow tensor
      Biases for items involved in the interactions. Shape: [number of interactions, 1].
  dims: Numpy array.
      Specify the size of the MLP (openrec.tf1.legacy.modules.extractions.MultiLayerFC).
  labels: Tensorflow tensor, required for training.
      Groundtruth labels for the interactions. Shape [number of interactions, ].
  dropout: float, optional.
      Dropout rate for MLP (intermediate layers only).
  alpha: float, optional.
      Value of :math:`\alpha`. Default to 0.5.
  l2_reg: float, optional
      Weight for L2 regularization, i.e., weight decay.
  train: bool, optionl
      An indicator for training or servining phase.
  scope: str, optional
      Scope for module variables.
  reuse: bool, optional
      Whether or not to reuse module variables.
code: def __init__(
      self,
      user_mlp,
      user_ge,
      item_mlp,
      item_ge,
      item_bias,
      dims,
      labels=None,
      dropout=None,
      alpha=0.5,
      l2_reg=None,
      train=None,
      scope=None,
      reuse=False,
  ):
      self._user_mlp = user_mlp
      self._user_ge = user_ge
      self._item_mlp = item_mlp
      self._item_ge = item_ge
      self._item_bias = item_bias
      self._dims = dims
      self._alpha = alpha
      self._train = train
      self._labels = labels
      self._dropout = dropout
  
      super(PointwiseGeMLPCE, self).__init__(
          train=train, l2_reg=l2_reg, scope=scope, reuse=reuse
      )
  
file_path: openrec/openrec/tf1/legacy/modules/interactions/pointwise_ge_mlp_ce.py
imports: from __future__ import print_function
  import tensorflow
  from termcolor import colored
  from openrec.tf1.legacy.modules.interactions import Interaction
  from openrec.tf1.legacy.modules.interactions import PointwiseGeCE
  from openrec.tf1.legacy.modules.interactions import PointwiseMLPCE
label_desc: Use image node_id 1 to create a new PointwiseGeMLPCE object from inherited base classes: Interaction with example: obj = PointwiseGeMLPCE(user_mlp, user_ge, item_mlp, item_ge, item_bias, dims, labels, dropout, alpha, l2_reg, train, scope, reuse)