class_docstr: FeatureInteraction helps you to intergate features between relation
      
class_docstr_tok: ["FeatureInteraction","helps","you","to","intergate","features","between","relation"]
docstr: forward for feature interaction
          
docstr_tok: ["forward","for","feature","interaction"]
code: def forward(self, feature_list):
      """forward for feature interaction"""
      if len(feature_list) == 1:
          return feature_list[0]
      elif self.interact_mode.upper() == "GATNE":
          U = paddle.stack(feature_list, axis=1)
          feature = F.tanh(self.lin1(U))
          alpha = self.lin2(feature).reshape([-1, len(feature_list)])
          alpha = F.softmax(alpha).unsqueeze([1])
          out = paddle.matmul(alpha, U).squeeze([1])
          return out
      else:
          return paddle.add_n(feature_list)
  
file_path: PGL/apps/PGLBox/src/models/auto_heter_gnn.py
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from collections import OrderedDict
  import paddle.static
  import pgl
  from .None import model_util
  from .None import layers
label_desc: Use image node_id 2 for calling the FeatureInteraction obj's underlying member method code with example usage: obj.forward(feature_list) and returns: feature_list, out, paddle