class_docstr: HGN sets feature gating and instance gating to get the important feature and item for predicting the next item
code: def reg_loss(
      self, user_embedding, item_embedding, seq_item_embedding
  ):
      reg_1, reg_2 = self.reg_weight
      loss_1_part_1 = reg_1 * torch.norm(self.w1.weight, p=2)
      loss_1_part_2 = reg_1 * torch.norm(self.w2.weight, p=2)
      loss_1_part_3 = reg_1 * torch.norm(self.w3.weight, p=2)
      loss_1_part_4 = reg_1 * torch.norm(self.w4.weight, p=2)
      loss_1 = (
          loss_1_part_1 + loss_1_part_2 + loss_1_part_3 + loss_1_part_4
      )
  
      loss_2_part_1 = reg_2 * torch.norm(user_embedding, p=2)
      loss_2_part_2 = reg_2 * torch.norm(item_embedding, p=2)
      loss_2_part_3 = reg_2 * torch.norm(seq_item_embedding, p=2)
      loss_2 = loss_2_part_1 + loss_2_part_2 + loss_2_part_3
  
      return loss_1 + loss_2
  
file_path: RecBole/recbole/model/sequential_recommender/hgn.py
imports: import torch
  import torch.nn
  from torch.nn.init import xavier_uniform_, constant_, normal_
  from recbole.model.abstract_recommender import SequentialRecommender
  from recbole.model.loss import BPRLoss
label_desc: Use image node_id 2 for calling the HGN obj's underlying member method code with example usage: obj.reg_loss(user_embedding, item_embedding, seq_item_embedding) and returns: unknown