class_docstr: Conditional Variational Autoencoder for Collaborative Filtering.
  
  Parameters
  ----------
  z_dim: int, optional, default: 20
      The dimension of the stochastic user factors ``z'' representing the preference information.
  
  h_dim: int, optional, default: 20
      The dimension of the stochastic user factors ``h'' representing the auxiliary data.
  
  autoencoder_structure: list, default: [20]
      The number of neurons of encoder/decoder hidden layer for CVAE.
      For example, when autoencoder_structure = [20],
      the CVAE encoder structures will be [y_dim, 20, z_dim] and [x_dim, 20, h_dim],
      the decoder structure will be [z_dim + h_dim, 20, y_dim], where y and x are respectively the preference and         auxiliary data.
  
  act_fn: str, default: 'tanh'
      Name of the activation function used between hidden layers of the auto-encoder.
      Supported functions: ['sigmoid', 'tanh', 'elu', 'relu', 'relu6']
  
  likelihood: str, default: 'mult'
      Name of the likelihood function used for modeling user preferences.
      Supported choices:
  
      mult: Multinomial likelihood
      bern: Bernoulli likelihood
      gaus: Gaussian likelihood
      pois: Poisson likelihood
  
  n_epochs: int, optional, default: 100
      The number of epochs for SGD.
  
  batch_size: int, optional, default: 128
      The batch size.
  
  learning_rate: float, optional, default: 0.001
      The learning rate for Adam.
  
  beta: float, optional, default: 1.0
      The weight of the KL term KL(q(z|y)||p(z)) as in beta-VAE.
  
  alpha_1: float, optional, default: 1.0
      The weight of the KL term KL(q(h|x)||p(h|x)).
  
  alpha_2: float, optional, default: 1.0
      The weight of the KL term KL(q(h|x)||q(h|y)).
  
  name: string, optional, default: 'CVAECF'
      The name of the recommender model.
  
  trainable: boolean, optional, default: True
      When False, the model is not trained, and Cornac assumes that the model is already         pre-trained.
  
  verbose: boolean, optional, default: False
      When True, some running logs are displayed.
  
  seed: int, optional, default: None
      Random seed for parameters initialization.
  
  use_gpu: boolean, optional, default: False
      If True and your system supports CUDA then training is performed on GPUs.
  
  user auxiliary data : See "cornac/examples/cvaecf_filmtrust.py" for an example of how to use         cornac's graph modality to load and provide the ``user network'' for CVAECF.
  
  References
  ----------
  * Lee, Wonsung, Kyungwoo Song, and Il-Chul Moon. "Augmented variational autoencoders for collaborative filtering      with auxiliary information." Proceedings of ACM CIKM. 2017.
code: def __init__(
      self,
      name="CVAECF",
      z_dim=20,
      h_dim=20,
      autoencoder_structure=[20],
      act_fn="tanh",
      likelihood="mult",
      n_epochs=100,
      batch_size=128,
      learning_rate=0.001,
      beta=1.0,
      alpha_1=1.0,
      alpha_2=1.0,
      trainable=True,
      verbose=False,
      seed=None,
      use_gpu=False,
  ):
      Recommender.__init__(
          self, name=name, trainable=trainable, verbose=verbose
      )
      self.z_dim = z_dim
      self.h_dim = h_dim
      self.autoencoder_structure = autoencoder_structure
      self.act_fn = act_fn
      self.likelihood = likelihood
      self.batch_size = batch_size
      self.n_epochs = n_epochs
      self.learning_rate = learning_rate
      self.beta = beta
      self.alpha_1 = alpha_1
      self.alpha_2 = alpha_2
      self.seed = seed
      self.use_gpu = use_gpu
  
file_path: cornac/cornac/models/cvaecf/recom_cvaecf.py
imports: import numpy
  from ..recommender import Recommender
  from ...exception import ScoreException
label_desc: Use image node_id 1 to create a new CVAECF object from inherited base classes: Recommender with example: obj = CVAECF(name, z_dim, h_dim, autoencoder_structure, act_fn, likelihood, n_epochs, batch_size, learning_rate, beta, alpha_1, alpha_2, trainable, verbose, seed, use_gpu)