class_docstr: Bilateral Variational AutoEncoder for Collaborative Filtering.
  
  Parameters
  ----------
  k: int, optional, default: 10
      The dimension of the stochastic user ``theta'' and item ``beta'' factors.
  
  encoder_structure: list, default: [20]
      The number of neurons per layer of the user and item encoders for BiVAE.
      For example, encoder_structure = [20], the user (item) encoder structure will be [num_items, 20, k] ([num_users, 20, k]).
  
  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: 'pois'
      The likelihood function used for modeling the observations.
      Supported choices:
  
      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: 100
      The batch size.
  
  learning_rate: float, optional, default: 0.001
      The learning rate for Adam.
  
  beta_kl: float, optional, default: 1.0
      The weight of the KL terms as in beta-VAE.
  
  cap_priors: dict, optional, default: {"user":False, "item":False}
      When {"user":True, "item":True}, CAP priors are used (see BiVAE paper for details),        otherwise the standard Normal is used as a Prior over the user and item latent variables.
  
  name: string, optional, default: 'BiVAECF'
      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: True
      If True and your system supports CUDA then training is performed on GPUs.
  
  References
  ----------
  * Quoc-Tuan Truong, Aghiles Salah, Hady W. Lauw. " Bilateral Variational Autoencoder for Collaborative Filtering."
  ACM International Conference on Web Search and Data Mining (WSDM). 2021.
docstr: Getting a valid choice of vector measurement in ANNMixin._measures.
  
  Returns
  -------
  measure: MEASURE_DOT
      Dot product aka. inner product
docstr_tok: ["Getting","a","valid","choice","of","vector","measurement","in","ANNMixin._measures",".","Returns","--","--","--","-","measure",":","MEASURE_DOT","Dot","product","aka",".","inner","product"]
code: def get_vector_measure(self):
      """Getting a valid choice of vector measurement in ANNMixin._measures.
  
      Returns
      -------
      measure: MEASURE_DOT
          Dot product aka. inner product
      """
      return MEASURE_DOT
  
file_path: cornac/cornac/models/bivaecf/recom_bivaecf.py
imports: import numpy
  from ..recommender import Recommender
  from ..recommender import ANNMixin, MEASURE_DOT
  from ...utils.common import scale
  from ...exception import ScoreException
label_desc: Use image node_id 4 for calling the BiVAECF obj's underlying member method code with example usage: obj.get_vector_measure() and returns: MEASURE_DOT