论文信息
- WWW 2018
- Dawen Liang 、Rahul G. Krishnan 、Matthew D. Hoffman 、Tony Jebara
- Netflix、MIT、GoogleAI
- https://github.com/dawenl/vae_cf
背景
协同过滤通过发现和利用用户和项目之间的相似性模式来预测用户喜欢的项目。由于其简单性和有效性,潜在因子模型在很大程度上仍主导着协同研究。 然而,这些模型本质上是线性的,这限制了它们的建模能力。之前的工作已经证明,在线性潜在因子模型中添加精心设计的非线性特征可以显着提高推荐性能。 最近,越来越多的工作涉及将神经网络应用于协同过滤设置并获得有希望的结果。
主要工作
将变分自动编码器(vaes)扩展到协同过滤以进行隐式反馈。这种非线性概率模型能够超越线性因子模型的有限建模能力。Vaes推广了线性潜在因子模型,能够在大规模推荐数据集上使用非线性概率潜变量模型。
-
引入了具有多项式似然(multinomial likelihood)的生成模型,并使用贝叶斯推断进行参数估计。
尽管在语言建模和经济学中广泛使用,但多项式似然在推荐系统文献中受到较少关注。
latent-factor collaborative fltering 中常用的两种似然函数:
- gaussian likelihoods
- logistic likelihoods
原因:
- 多项式似然非常适合于隐式反馈数据的建模,并且更接近 rank loss;
- 无论数据的稀缺性如何,采用principled Bayesian方法都更加稳健。
为目标函数引入了一个不同的正则化参数,并使用退火调整参数。
得到的模型和学习算法具有与最大熵判别和信息瓶颈原理的信息理论联系。根据经验,我们证明所提出的方法在几个真实世界的数据集上显着优于几个最先进的基线,包括最近提出的两个神经网络方法(CADE,NCF)。我们还提供了扩展实验,将多项式可能性与其他常用似然函数进行了比较,并显示了有利的结果。最后,我们确定采用原则贝叶斯推理方法的优缺点,并描述其提供最显着改进的设置。
VAE
Variational inference:变分推断近似于真实的难以处理的后验,具有更简单的变分分布q(zu)。
标准形式的自编码器的目标单纯是重构输入。从隐空间随机抽取V输入到解码器,V可能与解码器之前见过的任何一个输入都不相似,不一定能产生一张合理的图片。因此解码器可能从未被训练过在当输入为V时如何来产生合理的图片。因此,需要一种保障机制,让解码器能够对任何输入产生一个合理的输出。
因此,VAE目标:对任何输入产生一个合理的输出。
传统的AE:编码器对一个输入样本返回隐空间的一个点,该点作为解码器的输入。
VAE:
- VAE中,编码器的输出是隐空间的概率分布,是与隐空间同纬度的高斯分布,编码器产生这些高斯分布的参数。(从该隐空间抽取点,就能解码成我们想要的假样本。)
- 从概率分布中抽取点作为解码器输入,并对从该分布中抽取的任意点生成合理的输出。
N(μ, Σ) = μ + ΣN(0, Ⅰ)
协方差矩阵Σ为对角矩阵。
实际中,隐空间概率分布不一定是标准正态分布。对于不同训练样本,编码器产生各种不同分布,平均起来可近似为一个标准正态分布。(可以用KL散度来衡量编码器产生的概率分布与标准正态分布的近似程度。)
K-L散度
K-L散度是一种量化两种概率分布P和Q之间差异的方式,又叫相对熵
。在概率学和统计学上,经常使用一种`更简单的、近似的分布来替代观察数据或太复杂的分布。K-L散度能帮助我们度量使用一个分布来近似另一个分布时所损失的信息。
在Variational Inference中,我们希望能够找到一个相对简单好算的概率分布q,使它尽可能地近似我们待分析的后验概率p(z|x),其中z是隐变量,x是显变量。
VAE用在RS中需要进行两项调整:
用multinomial likelihood(比更常用的高斯和逻辑似然效果好)
调整了VAE目标函数
Model
Notations: We use to index users and to index items. "In this work, we consider learning with implicit feedback. The user-by-item interaction matrix is the click matrix . The lower case is a bag-of-words vector with the number of clicks for each item from user u. We binarize the click matrix. It is straightforward to extend it to general count data.
Generative process: For each user , the model starts by sampling a -dimensional latent representation from a standard Gaussian prior. The latent representation is transformed via a non-linear function to produce a probability distribution over items from which the click history is assumed to have been drawn:
在算法1中,我们对用户进行子采样并获取其整个点击历史记录(点击矩阵的完整行)以更新模型参数。 这消除了通常在(用户,项目)条目子采样方案中使用的负采样(以及因此用于挑选负例子的数量的超参数调整)的必要性。
Objective func
Multi-VAE
The objective of Multi-VAE^{PR} (evidence lower-bound, or ELBO) for a single user is:
where is the approximating variational distribution (inference model). is the additional annealing parameter that we control. The objective of the entire dataset is the average over all the users.
Multi-DAE
The objective for Multi-DAE for a single user is:
where is the non-linear "encoder" function.
Metric
NDCG(归一化折损累积增益)
是用来衡量排序质量的指标。同样的算法还包括MAP,MRR等。
一个推荐系统返回一些项并形成一个列表,我们想要计算这个列表有多好。每一项都有一个相关的评分值,通常这些评分值是一个非负数。这就是gain(增益)。此外,对于这些没有用户反馈的项,我们通常设置其增益为0。
现在,我们把这些分数相加,也就是Cumulative Gain(累积增益)。我们更愿意看那些位于列表前面的最相关的项,因此,在把这些分数相加之前,我们将每项除以一个递增的数(通常是该项位置的对数值),也就是折损值,并得到DCG。
在用户与用户之间,DCGs没有直接的可比性,所以我们要对它们进行归一化处理。最糟糕的情况是,当使用非负相关评分时DCG为0。为了得到最好的,我们把测试集中所有的条目置放在理想的次序下,采取的是前K项并计算它们的DCG。然后将原DCG除以理想状态下的DCG并得到NDCG@K,它是一个0到1之间的数。
Recall
Recall @ R认为在推荐列表(R个item)中排名的所有项目同样重要,但NDCG @ R使用单调增加的折扣来强调较高级别比较低级别重要。
实验
Datasets
与基线模型对比
不同似然函数对比
改进点
- 加入辅助信息
- 待补充。。。