Original article was published on Deep Learning on Medium
RecSys ’18: Generation Meets Recommendation: Proposing Novel Items for Groups of Users
Recommendation system paper challenge (16/50)
What problem do they solve?
They want to generate a new item to user group
What is the model they propose?
They utilized VAE model (Variational Autoencoder), which is popular in computer vision and NLP.
The basic idea is find encoder and decoder with objective function and use decoder to find out the novel item.
The following formula is their objective function (Loss function) .
They also use linear encoder and decoder to be baseline model.
Linear Encoding and Decoding
Their overall loss function:
Note: here they only consider binary target value. (Y/F) (Click / Non-Click)
So that they employ sigmoid function to transfer dot product value to [0, 1]
Their rating loss function:
Their reconstruction loss function:
It is naively to compare reconstructed feature vector and real feature vector.
In computer vision, it is comparing reconstructed pixel with original pixel.
So finally the loss function is below:
Nonlinear Encoding and Decoding with Deep Generative Modeling
There is a key difference is the VAE is derived under a probabilistic framework.
Therefore, their objective function is a little different.
However, it is hard to compute it. So they perform approximate inference by maximizing the variational or evidence lower bound (ELBO).
First term is rating loss function.
Second term is reconstructing loss function
Third represents KL divergence, which penalize the difference between p_z_i and q_phi
Generating new item (greedy)
Their goal is to find novel items that possess maximum coverage with maximum aggregate rating, but it is NP-hard problem.
Hence, they applied greedy algorithm to do the search.
They pick the candidate item that attains the maximum total rating given by uncovered users until K samples are selected.
VAE has less RMSE (outperform than LM model in prediction rating)
Besides that, the new item generated from VAE has less RMSE than real item (nearest item)
They can really generate a new item which does not exist in the database
Since I did several VAE and GAN projects before, I feel like the generated image is not clear. It is better to use 1 additional GAN module to make the generated image close to real image.
Other related blogs:
Best paper in RecSys: