class_docstr: xDeepFM model
  
  :Citation:
  
      J. Lian, X. Zhou, F. Zhang, Z. Chen, X. Xie, G. Sun, "xDeepFM: Combining Explicit
      and Implicit Feature Interactions for Recommender Systems", in Proceedings of the
      24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining,
      KDD 2018, London, 2018.
docstr: Construct the factorization machine part for the model.
  This is a traditional 2-order FM module.
  
  Returns:
      object: Prediction score made by factorization machine.
code: def _build_fm(self):
      """Construct the factorization machine part for the model.
      This is a traditional 2-order FM module.
  
      Returns:
          object: Prediction score made by factorization machine.
      """
      with tf.compat.v1.variable_scope(
          "fm_part"
      ) as scope:  # noqa: F841
          x = tf.SparseTensor(
              self.iterator.fm_feat_indices,
              self.iterator.fm_feat_values,
              self.iterator.fm_feat_shape,
          )
          xx = tf.SparseTensor(
              self.iterator.fm_feat_indices,
              tf.pow(self.iterator.fm_feat_values, 2),
              self.iterator.fm_feat_shape,
          )
          fm_output = 0.5 * tf.reduce_sum(
              input_tensor=tf.pow(
                  tf.sparse.sparse_dense_matmul(x, self.embedding), 2
              )
              - tf.sparse.sparse_dense_matmul(
                  xx, tf.pow(self.embedding, 2)
              ),
              axis=1,
              keepdims=True,
          )
          return fm_output
  
file_path: recommenders/recommenders/models/deeprec/models/xDeepFM.py
imports: import numpy
  import tensorflow
  from recommenders.models.deeprec.models.base_model import BaseModel
label_desc: Use image node_id 4 for calling the XDeepFMModel obj's underlying member method code with example usage: obj._build_fm() and returns: fm_output