Variational autoencoder with side information in recommendation systems