class_docstr: EulerNet is a context-based recommendation model.
  It can adaptively learn the arbitrary-order feature interactions in a complex vector space
  by conducting space mapping according to Euler's formula. Meanwhile, it can jointly capture
  the explicit and implicit feature interactions in a unified model architecture.
class_docstr_tok: ["EulerNet","is","a","context-based","recommendation","model",".","It","can","adaptively","learn","the","arbitrary-order","feature","interactions","in","a","complex","vector","space","by","conducting","space","mapping","according","to","Euler","'s","formula",".","Meanwhile",",","it","can","jointly","capture","the","explicit","and","implicit","feature","interactions","in","a","unified","model","architecture","."]
code: def forward(self, interaction):
      fm_all_embeddings = self.concat_embed_input_fields(
          interaction
      )  # [batch_size, num_field, embed_dim]
      r, p = self.mu * torch.cos(
          fm_all_embeddings
      ), self.mu * torch.sin(fm_all_embeddings)
      o_r, o_p = self.Euler_interaction_layers((r, p))
      o_r, o_p = o_r.reshape(o_r.shape[0], -1), o_p.reshape(
          o_p.shape[0], -1
      )
      re, im = self.reg(o_r), self.reg(o_p)
      logits = re + im
      return logits.squeeze(-1)
  
file_path: RecBole/recbole/model/context_aware_recommender/eulernet.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.loss import RegLoss
label_desc: Use image node_id 3 for calling the EulerNet obj's underlying member method code with example usage: obj.forward(interaction) and returns: logits