code: def forward(self, nodes_output):
      batch_size = nodes_output.shape[0] // self.items_total
      id = 0
      num_nodes = self.items_total
      items_embedding = self.item_embedding(
          torch.tensor([i for i in range(self.items_total)]).to(
              nodes_output.device
          )
      )
      batch_embedding = []
      for _ in range(batch_size):
          output_node_features = nodes_output[id : id + num_nodes, :]
          embed = (1 - self.alpha) * items_embedding
  
          embed = embed + self.alpha * output_node_features
          batch_embedding.append(embed)
          id += num_nodes
      batch_embedding = torch.stack(batch_embedding)
      return batch_embedding
  
imports: import torch
  import numpy
  import torch.nn
  from typing import List
  import torch.nn.functional
  from torch_geometric.nn import GCNConv
label_desc: Use image node_id 2 for calling the GlobalGatedUpdater obj's underlying member method code with example usage: obj.forward(nodes_output) and returns: batch_embedding