code: def forward(self, z_dict, edge_label_index):
      row, col = edge_label_index
      z = torch.cat([z_dict["user"][row], z_dict["movie"][col]], dim=-1)
  
      z = self.lin1(z).relu()
      z = self.lin2(z)
      return z.view(-1)
  
file_path: pytorch_geometric/examples/explain/captum_explainer_hetero_link.py
imports: import os.path
  import torch
  import torch.nn.functional
  from torch.nn import Linear
  import torch_geometric.transforms
  from torch_geometric.datasets import MovieLens
  from torch_geometric.explain import CaptumExplainer, Explainer
  from torch_geometric.nn import SAGEConv, to_hetero
label_desc: Use image node_id 2 for calling the EdgeDecoder obj's underlying member method code with example usage: obj.forward(z_dict, edge_label_index) and returns: z