NCF
阅读笔记
Neural Collaborative Filtering
本文主要讨论隐式反馈协同过滤。先说明了传统MF方法的局限性,然后提出了一种通用框架NCF并提出了三种实现方法(GMF、MLP、NeuMF)。之后从三个角度对本文提出的方法进行实验
MF方法的局限性
1.假设所有隐藏因子相互独立,MF可以被看做是线性模型(在做内积时,相当于对应位置的权重都是1),仅仅是对浅层特征做处理,结果偏差较大。
2.MF的隐藏因子不好确定。对于一个复杂的user-item interaction,低维的效果不好,但是对于一个稀疏矩阵,增加隐藏因子的数量变成高维可能会造成overfit。
当时涉及到协同过滤建模的关键因素即用户和物品特征之间的交互时,主要致力于使用MF矩阵分解,并在用户和物品的潜在特征上应用了内积运算。
MF矩阵分解
1.假设所有隐藏因子相互独立,MF可以被看做是线性模型(在做内积时,相当于对应位置的权重都是1),仅仅是对浅层特征做处理,结果偏差较大。
2.MF的隐藏因子不好确定。对于一个复杂的user-item interaction,低维的效果不好,但是对于一个稀疏矩阵,增加隐藏因子的数量变成高维可能会造成overfit。作者就通过将内积运算替换为可以从数据中学习任意函数的神经体系结构,故提出了NCF通用框架
NCF通用框架
因此想要提出一种框架来解决的这一问题;
1.提出了一种基于神经网络的协同过滤神经网络体系结构,并设计了一个基于神经网络的协同过滤神经网络框架。
2.证明了MF可以被解释为NCF的一种特殊化,并且使用多层感知器(MLP)赋予NCF模型高阶的非线性。
框架如下
利用DNNs(深度神经网络)构建了NCF框架,对user-item interaction进行建模,利用多层神经网络得出预测值y^ui。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x1bC7BZb-1681010146192)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20230409102611854.png)]
NCF学习
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uvC0fPJC-1681010146197)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20230409102825107.png)]
首先提出的总体框架NCF,阐述NCF如何学习强调了隐式数据的二进制属性的概率模型。然后,我们展示了,MF能够表达为NCF 的推广***(MF矩阵分解模型是NCF的一个特例)***。我们探索DNNs在协同过滤上的应用,提出了NCF的一个实例,它采用了多层感知器(MLP)来学习用户-项目交互函数。最后,我们在NCF框架下结合了MF和MLP,提出了一种新的神经矩阵分解模型(neural matrix factorization model);它统一了在建模用户项目潜在结构方面,MF的线性建模优势和MLP的非线性优势。
GMF(广义矩阵分解)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bxV5RyNI-1681010146199)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20230409103528410.png)]
MLP(多层感知机)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B6HJyvVv-1681010146201)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20230409103556513.png)]
NeuMF
GMF和MLP的融合
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DfiAitZm-1681010146203)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20230409103642092.png)]
GMF:MF可以被解释在NCF框架下的一种特殊形式(还是一种线性结构)。如下,公式为: y^ui = aout (hT(pu⨀qi)) 令aout 为恒等函数,h向量都是1,这就是典型的MF。
MLP:NCF框架是把用户特征向量和物品特征向量结合起来,如果简单的把向量拼接起来不能说明用户和物品隐特征之间的任何交互。所以引出MLP进行提取物品和用户之间的交互信息。MLP层的Action function选取Relu(sigmoid限制到(0,1),tanh是sigmoid的拓展版本)。
初始化时,可以先利用Adam优化对GMF和MLP预训练,预训练的参数作为NeuMF的初始化,NeuMF利用SGD进行优化。
NeuMF模型结合了GMF的线性和MLP的非线性去建模user-item interaction。
预训练
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CyvxbGts-1681010146226)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20230409105359175.png)]
数据集
DatasetsDatasets。 我们尝试了两个可公开访问的数据集: MovieLens4 和 Pinterest5 两个数据集,它们的特征总结在表1中。
http://grouplens.org/datasets/movielens/1m/
[https://sites.google.com/site/xueatalphabeta/ academic-projects](https://sites.google.com/site/xueatalphabeta/ academic-projects)
1.MovieLens1.MovieLens。 这个电影评级数据集被广泛地用于评估协同过滤算法。我们使用的是包含一百万个评分的版本,每个用户至少有20个评分。 虽然这是显性反馈数据集,但我们有意选择它来挖掘(模型)从显式反馈中学习隐性信号**[21]**的表现。为此,我们将其转换为隐式数据,其中每个条目被标记为0或1表示用户是否已对该项进行评级。
2.Pinterest2.Pinterest。这个隐含的反馈数据的构建**[8]用于评估基于内容的图像推荐。原始数据非常大但是很稀疏。 例如,超过20%的用户只有一个pin*(pin类似于赞一下)***,使得难以用来评估协同过滤算法。 因此,我们使用与MovieLens数据集相同的方式过滤数据集:仅保留至少有过20个pin的用户。处理后得到了包含55,187个用户和1,580,809个项目交互的数据的子集。 每个交互都表示用户是否将图像pin在自己的主页上。
评估方案
为了评价项目推荐的性能,我们采用了leave-one-out方法评估,该方法已被广泛地应用于文献**[1,14,27]。即:对于每个用户,我们将其最近的一次交互作为测试集*(数据集一般都有时间戳),并利用余下的培训作为训练集。由于在评估过程中为每个用户排列所有项目花费的时间太多,所以遵循一般的策略[6,21],随机抽取100个不与用户进行交互的项目,将测试项目排列在这100个项目中。排名列表的性能由命中率(HR)和归一化折扣累积增益(NDCG)*[11]**来衡量。 没有特别说明的话,我们将这两个指标的排名列表截断为10。如此一来,HR直观地衡量测试项目是否存在于前10名列表中,而NDCG通过将较高分数指定为顶级排名来计算命中的位置。我们计算了每个测试用户的这两个指标,并求取了平均分。
基准线(Baselines)
我们NCF方法(GMF,MLP和NeuMF)和下列方法进行了比较:
−ItemPop−ItemPop。按项目的互动次数判断它的受欢迎程度,从而对项目进行排名。 这对基于评估推荐性能来说是一种非个性化的方法**[27]**。
−ItemKNN−ItemKNN**[31]。这是基于项目的标准协同过滤方法。我们遵循[19]**的设置来适应隐含数据。
−BPR−BPR**[27]。该方法优化了使用公式(2)**的MF模型,该模型具有成对排序损失,BPR调整它使其可以从隐式反馈中学习。它是项目推荐基准的有力竞争者。我们使用固定的学习率,改变它并报告了它最佳的性能。
−eALS−eALS**[14]。这是项目推荐的 state-of-the-art 的MF方法。 它优化了公式(5)的均方误差,将所有未观察到的交互视作消极实例,并根据项目流行度对它们进行不均匀的加权。由于 eALS 显示出优于WMF[19]**均匀加权方法的性能,我们不再进一步展示报告 WMF 的性能。
我们提出的方法旨在建模用户和项目之间的关系,我们主要比较用户-项目模型。因为性能差异可能是由个性化的用户模型引起的(因为它们是项目-项目模型),所以我们忽略了与项目-项目模型的比较,项目-项目模型有 SLIM**[25]** 和 CDAE**[44]**。
参数设置。我们基于Keras6实现了我们提出的方法。为了确定NCF方法的超参数,我们为每个用户随机抽取一个交互作为验证数据并调整其超参数。通过优化公式**(7)的对数损失(log loss)来学习所有NCF模型,其中我们对每个积极实例进行四个消极实例的采样。对于从头开始训练的NCF模型,我们采用高斯分布随机初始化模型参数(平均值为0,标准差为0.01),用小批次Adam[20]优化模型。我们分别测试了批次大小[128,256,512,1024],学习速率为[0.0001,0.0005,0.001,0.005]。 由于NCF的最后一层隐藏层决定了模型的性能,所以我们将其作为预测因子(predictive factors),并分别使用[8,16,32,64]的因素大小进行了模型评估。值得注意的是,大的因子可能导致过拟合,降低性能。 没有特别说明,我们采用了三层隐藏的MLP; 例如,如果预测因子的大小为8,则神经CF层的结构为32→16→8,嵌入大小为16。对于预训练过的NeuMF,αα 设置为0.5,允许预训练的 GMF 和 MLP 对 NeuMF 的初始化做出同样的贡献*(相同权重)***。
总结
8,则神经CF层的结构为32→16→8,嵌入大小为16。对于预训练过的NeuMF,αα 设置为0.5,允许预训练的 GMF 和 MLP 对 NeuMF 的初始化做出同样的贡献***(相同权重)***。
总结
在这项工作中,作者探索了用于协同过滤的神经网络结构。设计了一个通用框架NCF,并提出了三种实例:GMF,MLP和NeuMF,以不同的方式模拟用户-项目交互。框架简单而通用; 它不仅限于本文提出的模型,它对深入学习推荐方法的也具有指导意义。这项工作补充了主流浅层协同过滤模型,为深入学习推荐研究开辟了新途径。