class_docstr: KGIN is a knowledge-aware recommendation model. It combines knowledge graph and the user-item interaction
  graph to a new graph called collaborative knowledge graph (CKG). This model explores intents behind a user-item
  interaction by using auxiliary item knowledge.
class_docstr_tok: ["KGIN","is","a","knowledge-aware","recommendation","model",".","It","combines","knowledge","graph","and","the","user-item","interaction","graph","to","a","new","graph","called","collaborative","knowledge","graph","(","CKG",")",".","This","model","explores","intents","behind","a","user-item","interaction","by","using","auxiliary","item","knowledge","."]
code: def forward(self):
      user_embeddings = self.user_embedding.weight
      entity_embeddings = self.entity_embedding.weight
      latent_embeddings = self.latent_embedding.weight
      # entity_gcn_emb: [n_entities, embedding_size]
      # user_gcn_emb: [n_users, embedding_size]
      # latent_gcn_emb: [n_factors, embedding_size]
      entity_gcn_emb, user_gcn_emb, cor_loss = self.gcn(
          user_embeddings, entity_embeddings, latent_embeddings
      )
  
      return user_gcn_emb, entity_gcn_emb, cor_loss
  
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  import scipy.sparse
  from recbole.model.abstract_recommender import KnowledgeRecommender
  from recbole.model.init import xavier_uniform_initialization
  from recbole.model.layers import SparseDropout
  from recbole.model.loss import BPRLoss, EmbLoss
  from recbole.utils import InputType
label_desc: Use image node_id 4 for calling the KGIN obj's underlying member method code with example usage: obj.forward() and returns: user_gcn_emb,  entity_gcn_emb,  cor_loss