class_docstr: NGCF is a model that incorporate GNN for recommendation.
  We implement the model following the original author with a pairwise training mode.
class_docstr_tok: ["NGCF","is","a","model","that","incorporate","GNN","for","recommendation",".","We","implement","the","model","following","the","original","author","with","a","pairwise","training","mode","."]
docstr: Get the embedding of users and items and combine to an embedding matrix.
  
  Returns:
      Tensor of the embedding matrix. Shape of (n_items+n_users, embedding_dim)
docstr_tok: ["Get","the","embedding","of","users","and","items","and","combine","to","an","embedding","matrix",".","Returns",":","Tensor","of","the","embedding","matrix",".","Shape","of","(","n_items+n_users",",","embedding_dim",")"]
code: def get_ego_embeddings(self):
      r"""Get the embedding of users and items and combine to an embedding matrix.
  
      Returns:
          Tensor of the embedding matrix. Shape of (n_items+n_users, embedding_dim)
      """
      user_embeddings = self.user_embedding.weight
      item_embeddings = self.item_embedding.weight
      ego_embeddings = torch.cat(
          [user_embeddings, item_embeddings], dim=0
      )
      return ego_embeddings
  
file_path: RecBole/recbole/model/general_recommender/ngcf.py
imports: import numpy
  import scipy.sparse
  import torch
  import torch.nn
  import torch.nn.functional
  from recbole.model.abstract_recommender import GeneralRecommender
  from recbole.model.init import xavier_normal_initialization
  from recbole.model.layers import BiGNNLayer, SparseDropout
  from recbole.model.loss import BPRLoss, EmbLoss
  from recbole.utils import InputType
label_desc: Use image node_id 4 for calling the NGCF obj's underlying member method code with example usage: obj.get_ego_embeddings() and returns: ego_embeddings