class_docstr: NCL is a neighborhood-enriched contrastive learning paradigm for graph collaborative filtering.
  Both structural and semantic neighbors are explicitly captured as contrastive learning objects.
class_docstr_tok: ["NCL","is","a","neighborhood-enriched","contrastive","learning","paradigm","for","graph","collaborative","filtering",".","Both","structural","and","semantic","neighbors","are","explicitly","captured","as","contrastive","learning","objects","."]
code: def predict(self, interaction):
      user = interaction[self.USER_ID]
      item = interaction[self.ITEM_ID]
  
      (
          user_all_embeddings,
          item_all_embeddings,
          embeddings_list,
      ) = self.forward()
  
      u_embeddings = user_all_embeddings[user]
      i_embeddings = item_all_embeddings[item]
      scores = torch.mul(u_embeddings, i_embeddings).sum(dim=1)
      return scores
  
imports: import numpy
  import scipy.sparse
  import torch
  import torch.nn.functional
  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
label_desc: Use image node_id 10 for calling the NCL obj's underlying member method code with example usage: obj.predict(interaction) and returns: scores