《变分自动编码器在协同过滤中的使用》做推荐召回 《Variational Autoencoders for Collaborative Filtering 》

文章主要讲VAE中的隐式反馈在CF中的使用,取top K做为召回。非线性的概率模型可以大大提升模型的表征能力。

传统encode-decode框架把Input encode到一个“固定”的编码,然后再利用decode将编码复原到目标,对于未知的输入可能无法decode到有意义的输出,而VAE在encode过程得到一个隐式的分布得到均值和方差两个参数,通过两个参数确定的分布进行采样得到隐变量z,然后对z进行重构(如图c)。

模型介绍:

其中:

  u is indexes User

  I is indexes Item

  Xu clicks numbers for each item from user

《变分自动编码器在协同过滤中的使用》做推荐召回 《Variational Autoencoders for Collaborative Filtering 》_第1张图片

针对图c, Zu 是user Xu做为输入,通过Variational inference得到的一个分布Zu ,fθ 是一个多层感知器把zu 中采样的结果,通过多层感知器+softmax输出一个所有Item的一个概率,最后在π(zu) 多项式分布上采样(采样个数为用户的历史点击总数,当item数量很大时,,参考《Complementary Sum Sampling for Likelihood Approximation in Large Scale Classification 》),得到最终的Xu做为召回。整个过程我们需要知道先验的p(zu | xu ). 然后p不能直接求解,因此使用Variational inference 找到一个容易表达和求解的q来做为p的近似分布,并用KL来衡量两个分布的距离做为正则化项加入到loss function其中KL散度是一个泛函,所以这里变分指的就是它的微分?

求解模型参数:θ,φ  maximize for user u

其中第一项是重建损失第二项是正则化项可以加正则化系数来控制

其中使用reparametrization tricks使得整个函数可导

《变分自动编码器在协同过滤中的使用》做推荐召回 《Variational Autoencoders for Collaborative Filtering 》_第2张图片

为什么效果好?

VAE 是生成模型而不是encode压缩,保证的信息的完整性,Latent Factor是一个分布,而不是固定的,使得隐含空间在相似样本上的差异更加平滑,从而提高模型的拟合能力,样本细微的变化带来的波动。 

你可能感兴趣的:(推荐系统)