class_docstr: Standard Variational Autoencoders (VAE) for Collaborative Filtering implementation.
docstr: Calculate negative ELBO (NELBO).
code: def _get_vae_loss(self, x, x_bar):
      """Calculate negative ELBO (NELBO)."""
      # Reconstruction error: logistic log likelihood
      reconst_loss = self.original_dim * binary_crossentropy(x, x_bar)
  
      # Kullback–Leibler divergence
      kl_loss = 0.5 * K.sum(
          -1
          - self.z_log_var
          + K.square(self.z_mean)
          + K.exp(self.z_log_var),
          axis=-1,
      )
  
      return reconst_loss + self.beta * kl_loss
  
imports: import numpy
  import matplotlib.pyplot
  import seaborn
  import tensorflow
  from tensorflow.keras.layers import *
  from tensorflow.keras.models import Model
  from tensorflow.keras.losses import binary_crossentropy
  from tensorflow.keras import backend
  from tensorflow.keras.callbacks import ReduceLROnPlateau, Callback
  from recommenders.evaluation.python_evaluation import ndcg_at_k
label_desc: Use image node_id 3 for calling the StandardVAE obj's underlying member method code with example usage: obj._get_vae_loss(x, x_bar) and returns: unknown