class_docstr: Collaborative Denoising Auto-Encoder (RecVAE) is a recommendation model
  for top-N recommendation with implicit feedback.
  
  We implement the model following the original author
class_docstr_tok: ["Collaborative","Denoising","Auto-Encoder","(","RecVAE",")","is","a","recommendation","model","for","top-N","recommendation","with","implicit","feedback",".","We","implement","the","model","following","the","original","author"]
code: def __init__(self, config, dataset):
      super(RecVAE, self).__init__(config, dataset)
  
      self.hidden_dim = config["hidden_dimension"]
      self.latent_dim = config["latent_dimension"]
      self.dropout_prob = config["dropout_prob"]
      self.beta = config["beta"]
      self.mixture_weights = config["mixture_weights"]
      self.gamma = config["gamma"]
  
      self.build_histroy_items(dataset)
  
      self.encoder = Encoder(
          self.hidden_dim, self.latent_dim, self.n_items
      )
      self.prior = CompositePrior(
          self.hidden_dim,
          self.latent_dim,
          self.n_items,
          self.mixture_weights,
      )
      self.decoder = nn.Linear(self.latent_dim, self.n_items)
  
      # parameters initialization
      self.apply(xavier_normal_initialization)
  
imports: import numpy
  from copy import deepcopy
  import torch
  import torch.nn
  import torch.nn.functional
  from recbole.model.abstract_recommender import GeneralRecommender, AutoEncoderMixin
  from recbole.model.init import xavier_normal_initialization
  from recbole.utils import InputType
label_desc: Use image node_id 1 to create a new RecVAE object from inherited base classes: GeneralRecommender, AutoEncoderMixin with example: obj = RecVAE(config, dataset)