class_docstr: SGL is a GCN-based recommender model.
  
  SGL supplements the classical supervised task of recommendation with an auxiliary
  self supervised task, which reinforces node representation learning via self-
  discrimination.Specifically,SGL generates multiple views of a node, maximizing the
  agreement between different views of the same node compared to that of other nodes.
  SGL devises three operators to generate the views — node dropout, edge dropout, and
  random walk — that change the graph structure in different manners.
  
  We implement the model following the original author with a pairwise training mode.
code: def predict(self, interaction):
      if self.restore_user_e is None or self.restore_item_e is None:
          self.restore_user_e, self.restore_item_e = self.forward(
              self.train_graph
          )
  
      user = self.restore_user_e[interaction[self.USER_ID]]
      item = self.restore_item_e[interaction[self.ITEM_ID]]
      return torch.sum(user * item, dim=1)
  
imports: import numpy
  import scipy.sparse
  import torch
  from recbole.model.abstract_recommender import GeneralRecommender
  from recbole.model.init import xavier_uniform_initialization
  from recbole.model.loss import BPRLoss, EmbLoss
  from recbole.utils import InputType
  import torch.nn.functional
label_desc: Use image node_id 10 for calling the SGL obj's underlying member method code with example usage: obj.predict(interaction) and returns: torch