class_docstr: CKE is a knowledge-based recommendation model, it can incorporate KG and other information such as corresponding
  images to enrich the representation of items for item recommendations.
  
  Note:
      In the original paper, CKE used structural knowledge, textual knowledge and visual knowledge. In our
      implementation, we only used structural knowledge. Meanwhile, the version we implemented uses a simpler
      regular way which can get almost the same result (even better) as the original regular way.
class_docstr_tok: ["CKE","is","a","knowledge-based","recommendation","model",",","it","can","incorporate","KG","and","other","information","such","as","corresponding","images","to","enrich","the","representation","of","items","for","item","recommendations",".","Note",":","In","the","original","paper",",","CKE","used","structural","knowledge",",","textual","knowledge","and","visual","knowledge",".","In","our","implementation",",","we","only","used","structural","knowledge",".","Meanwhile",",","the","version","we","implemented","uses","a","simpler","regular","way","which","can","get","almost","the","same","result","(","even","better",")","as","the","original","regular","way","."]
code: def __init__(self, config, dataset):
      super(CKE, self).__init__(config, dataset)
  
      # load parameters info
      self.embedding_size = config["embedding_size"]
      self.kg_embedding_size = config["kg_embedding_size"]
      self.reg_weights = config["reg_weights"]
  
      # define layers and loss
      self.user_embedding = nn.Embedding(
          self.n_users, self.embedding_size
      )
      self.item_embedding = nn.Embedding(
          self.n_items, self.embedding_size
      )
      self.entity_embedding = nn.Embedding(
          self.n_entities, self.embedding_size
      )
      self.relation_embedding = nn.Embedding(
          self.n_relations, self.kg_embedding_size
      )
      self.trans_w = nn.Embedding(
          self.n_relations, self.embedding_size * self.kg_embedding_size
      )
      self.rec_loss = BPRLoss()
      self.kg_loss = BPRLoss()
      self.reg_loss = EmbLoss()
  
      # parameters initialization
      self.apply(xavier_normal_initialization)
  
file_path: RecBole/recbole/model/knowledge_aware_recommender/cke.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from recbole.model.abstract_recommender import KnowledgeRecommender
  from recbole.model.init import xavier_normal_initialization
  from recbole.model.loss import BPRLoss, EmbLoss
  from recbole.utils import InputType
label_desc: Use image node_id 1 to create a new CKE object from inherited base classes: KnowledgeRecommender with example: obj = CKE(config, dataset)