class_docstr: xDeepFM combines a CIN (Compressed Interaction Network) with a classical DNN.
  The model is able to learn certain bounded-degree feature interactions explicitly;
  Besides, it can also learn arbitrary low- and high-order feature interactions implicitly.
class_docstr_tok: ["xDeepFM","combines","a","CIN","(","Compressed","Interaction","Network",")","with","a","classical","DNN",".","The","model","is","able","to","learn","certain","bounded-degree","feature","interactions","explicitly",";","Besides",",","it","can","also","learn","arbitrary","low-","and","high-order","feature","interactions","implicitly","."]
code: def forward(self, interaction):
      # Get the output of CIN.
      xdeepfm_input = self.concat_embed_input_fields(
          interaction
      )  # [batch_size, num_field, embed_dim]
      cin_output = self.compressed_interaction_network(xdeepfm_input)
      cin_output = self.cin_linear(cin_output)
  
      # Get the output of MLP layer.
      batch_size = xdeepfm_input.shape[0]
      dnn_output = self.mlp_layers(xdeepfm_input.view(batch_size, -1))
  
      # Get predicted score.
      y_p = (
          self.first_order_linear(interaction) + cin_output + dnn_output
      )
  
      return y_p.squeeze(1)
  
file_path: RecBole/recbole/model/context_aware_recommender/xdeepfm.py
imports: import torch
  import torch.nn
  from torch.nn.init import xavier_normal_, constant_
  from recbole.model.abstract_recommender import ContextRecommender
  from recbole.model.layers import MLPLayers, activation_layer
label_desc: Use image node_id 6 for calling the xDeepFM obj's underlying member method code with example usage: obj.forward(interaction) and returns: y_p