1. 引言
推荐算法是信息检索和个性化推荐领域的重要研究方向,它对于帮助用户发现和获取感兴趣的内容具有重要意义。随着互联网的迅速发展和信息爆炸式增长,用户面临着海量的信息选择,如何从中快速准确地找到符合个人需求的内容成为了一个紧迫的问题。推荐算法的作用就在于通过分析和挖掘用户的行为信息、个人兴趣和社交网络等数据,提供个性化的推荐服务,为用户提供更有针对性和满意度的用户体验 [1] [2] [3] [4] 。
传统的推荐算法主要基于协同过滤和内容过滤两种思路进行研究,但随着互联网技术和数据挖掘技术的不断进步,新的推荐算法也不断涌现。比如基于机器学习的推荐算法利用用户行为数据和物品特征,通过构建模型来预测用户对未知物品的偏好,实现精准推荐。而基于深度学习的推荐算法则通过多层神经网络模型,对海量数据进行学习和表示,能够更好地挖掘用户和物品之间的复杂关系,提高推荐的准确性和效果。
尽管现有的推荐算法已经取得了一定的成果,但仍然存在着一些挑战和问题。例如,数据稀疏性、冷启动问题、可解释性等方面的难题对推荐算法的发展提出了新的要求。因此,本文旨在探讨和研究针对这些问题的创新算法和方法。通过对现有推荐算法的综述和分析,本文将提出一种基于NCF (Neural Collaborative Filtering)框架所提出的CNMF (CNN Neural Matrix Factorization)推荐算法,该算法能够克服传统算法的局限性,并在实验中验证其效果。希望通过本研究的努力,能够为信息检索和个性化推荐领域的进一步发展提供一定的理论和实践支持,并改进用户体验,推动互联网应用的智能化发展。
2. 算法描述
2.1. NCF框架
CNMF模型的整体架构是基于NCF通用框架。所以,CNMF模型与NCF保持有相同的框架结构。如图1所示,NCF框架 [5] 主要具有四层结构:
Input Layer:输入层的User (用户)信息和Item (物品)信息通过one-hot编码转化成了稀疏向量。
Embedding Layer:在这之后,把User向量和Item向量分别嵌入到一个较小维数的空间,假设为K维。嵌入层的具体实现是把输入的向量
和嵌入矩阵P相乘,得到该向量的嵌入向量
。如果一共M个用户,嵌入维数为K维,那么对于用户的嵌入矩阵的大小为M × K,其中嵌入矩阵的第i行代表第i个用户的嵌入向量。(如果一共N个物品,那么对于物品的嵌入矩阵大小为N × K)。
Neural CF Layers:这一层为神经协同过滤层。将用户的嵌入向量和物品的嵌入向量送入NCF layers后得到一个新向量。本文所提出的算法思想也是重点对这一层进行了改进。
Output Layer:通过全连接层把NCF layers输出的向量映射到最终的预测分数
,最后再通过损失函数
进行梯度下降更新参数。
2.2. CNMF模型
2.2.1. General Matrix Factorization(GMF)
广义矩阵分解用的是向量对应元素相乘,得到的是向量,而传统的矩阵分解使用的是向量内积,得到的是标量。这是二者的不同之处。
对于通过嵌入层得到的用户u嵌入向量
和物品i嵌入向量
,将他们逐元素相乘,如式(1)~(3)所示。
(1)
(2)
(3)
由于运算规则的限定,用户嵌入层和物品嵌入层的嵌入维数要相同,都为k。
在这之后通过无bias的全连接层和激活函数得到预测分数,如式(4)所示:
(4)
其中
为激活函数,h为全连接层的权重矩阵,大小为k × 1,如图2所示。
2.2.2. Convolutional Neural Network (CNN)
本文所提出的模型使用CNN作为其非线性模块的核心,用ReLU函数作为激活函数,这个模型对嵌入向量的处理与GMF模型中不同。首先,作为输入的用户u嵌入向量
和物品i嵌入向量
要先经过一层Attention layer得到加权的物品向量
,将加权向量
与用户u嵌入向量
进行拼接,如式(5)~(6)所示。
(5)
(6)
通过这一层加强其特征提取,提高其准确性。将拼接后的向量送入CNN层,如式(7)所示。
(7)
其中
是激活函数,这里选择的是ReLU函数,
和
是两个可学习的参数。最后通过无bias的全连接层和激活函数得到预测分数,如式(4)所示。整体结构如图3所示。
2.2.3. CNN Matrix Factorization (CNMF)
CNMF模型把GMF和CNN模型结合起来,使他们相互强化,以得到更好的效果。
为了增加融合模型的灵活性,本文采用了分别学习广义矩阵分解(GMF)和卷积神经网络(CNN)的嵌入层矩阵的方法。在这种方法中,分别对GMF和CNN进行训练,学习它们各自的嵌入表示。在模型的最后一层之前,将GMF和CNN的输出向量连接在一起,形成一个更大的向量。通过将这个连结后的向量传递给最后的CNMF层以预测最终的分数。
令GMF的嵌入矩阵为
和
,分别对应用户嵌入矩阵和物品嵌入矩阵,CNN的嵌入矩阵为
和
。那么对于用户u和物品i,GMF中的嵌入向量为
和
,CNN中的嵌入向量为
和
。具体公式如下:
左侧GMF部分:
(8)
右侧CNN部分:
(9)
(10)
这时候得到了两个向量
和
,将其进行连接传入最后的CNMF层,这一层的作为全连接层,把向量映射到一维空间,得到最后的预测分数:
(11)
(12)
整体结构如图4所示。
3. 实验分析
3.1. 实验数据集
本文使用数据集详细信息如表1所示。
MovieLens数据集是一个常用的电影推荐系统的数据集,是美国Minnesota大学GroupLens小组开发的Movie Lens站点所提供的数据集。该数据集包含了多个版本,其中最为常用的是MovieLens 100K、MovieLens 1M、MovieLens 10M和MovieLens 20M。
MovieLens 100K版本包含100,000个评分(从1到5)和943位用户对1682部电影的评分数据。此外,它还包含有关电影元数据(电影类型、发布年份等)和用户的个人信息(年龄、性别等)。
MovieLens 1M版本包含1,000,209个评分和6040名用户对3900部电影的评分数据。与100K版本相比,1M版本提供了更丰富的信息,例如用户的请求时间戳和更多的电影元数据。
MovieLens 10M版本是包含10,000,054个评分和69,878名用户对10,681部电影的评分数据。与之前的版本相比,它提供了更大的规模和更多的用户及电影。
MovieLens 20M版本是最大的MovieLens数据集,包含20,000,263个评分和138,493名用户对27,278部电影的评分数据。除了评分数据,它还包含与电影和用户相关的元数据。
本文主要采用MovieLens 1M、MovieLens 10M和MovieLens 20M三个数据集对模型进行评估学习,对于每个数据集,取其 80%的数据作为训练集数据,20%作为测试集。
3.2. 评价指标
Recall@K:本文的第一个评估指标是Recall@K,召回率(Recall) [6] 是评估推荐系统性能的指标之一,用于衡量在给定的测试用例中,前K个推荐项目中包含了多少个实际需求项目。召回率不考虑项目的实际排名顺序,而是关注所需项目是否被推荐。这很好地模拟了某些实际场景,在这些场景中没有突出的建议,绝对顺序也不重要。Recall在传统意义上的计算公式为:
(12)
式中:TP表示实际需求项目在前K个推荐项目中被正确地推荐出来的数量,FN表示实际需求项目在前K个推荐项目中被正确地推荐出来的数量,Recall度量有多个正例被分为正例。在推荐系统的个性化排序任务中,召回率的计算被定义为式(13)的形式。
(13)
式中:R(u)指的是为用户u推荐的N个物品的列表,T(u)指的是用户u在测试集上喜欢的物品的集合。
MRR@K:实验中使用的第二个度量是平均倒数排名(mean reciprocal rank),这是所需项目的倒数排名的平均值。如果排名大于K,则倒数排名被设为0。MRR考虑项目的排序。计算公式为:
(14)
式中:
表示用户感兴趣的项目数量,
表示用户感兴趣的项目在推荐列表中的排名。当真实值的排名大于设置的截断值时,排名的倒数设置为0。MRR更能反映在排序问题中推荐的质量,因为人们往往更关注推荐列表中的前几项,当真实值的排名十分靠后的时候,即使真实值在推荐列表中,也不能算高质量的推荐结果 [7] 。
3.3. 实验结果分析
为探究在CNMF模型的推荐性能,将CNMF模型与NeuMF (Neural Collaborative Filtering)模型和BPR (Bayesian Personalized Ranking)模型进行对比实验。
NeuMF模型 [5] ,该模型同样基于NCF框架,结合了矩阵分解和神经网络的优势。它采用了矩阵分解方法将用户和物品映射到向量空间,并使用神经网络模型对用户和物品的向量进行非线性投影和交互,以预测用户对未知物品的喜好。
BPR模型 [8] 通过最大化基于排名的个性化目标函数来进行推荐,而不是使用传统的回归或分类目标函数。BPR模型主要针对隐反馈的推荐问题,例如用户喜好或评分数据的缺失情况。它通过引入排序方法,对用户与物品之间的偏好进行建模,并通过梯度下降的方式来优化模型参数。
表2~4是CNMF模型与其对比模型在MovieLens数据集上的Recall@K和MRR@K的结果。
通过表2~4我们可以看出在不同大小的数据集上,CNMF和NeuMF的效果要优于BPR。CNMF模型使用了CNN与注意力机制,其推荐效果更优。通过数据结果还可以看出在数据量较大时,基于深度学习的推荐模型优势更加明显,效果更好。

Table 2. The results for Recall@K and MRR@K on the MovieLens-1m dataset
表2. MovieLens-1m数据集上的Recall@K和MRR@K结果

Table 3. The results for Recall@K and MRR@K on the MovieLens-10m dataset
表3. MovieLens-10m数据集上的Recall@K和MRR@K结果

Table 4. The results for Recall@K and MRR@K on the MovieLens-20m dataset
表4. MovieLens-20m数据集上的Recall@K和MRR@K结果
CNMF和NeuMF是基于深度学习的推荐模型,深度学习模型能够自动地从原始数据中学习出高层次的抽象特征,并且适用于具有海量数据的推荐场景,能够实现快速的计算和训练,并在大规模数据集上表现良好。
通过图5,图6也可以清晰的看出来CNMF相较于NeuMF有着较为明显的效果上的提升。也反映了当k值的选取越大时,效果越好。

Figure 5. Comparison of CNMF and NeuMF’s rise in recall
图5. CNMF与NeuMF在recall上提升的对比

Figure 6. Comparison of CNMF and NeuMF’s rise in MRR
图6. CNMF与NeuMF在MRR上提升的对比
4. 结束语
本文在设计CNMF模型时,基于NCF框架,引入了CNN与注意力机制,提升了原模型的推荐效果和准确度。CNN与注意力机制对于特征的提取,多层次的学习等能力要优于原模型,所以可以做到在准确度和推荐效果上一个提升。Transformer与知识图在推荐系统中已表现出巨大潜力,相比传统的 RNN、CNN模型,Transformer可以将用户的短期行为序列进行建模,通过自注意力机制计算某一时刻的项目与所有时刻项目的相关性。知识图的关联性挖掘以及其丰富的语义表示可以优化推荐算法的冷启动问题以及拓展推荐算法的多样性。下一步工作可以对Transformer的融合以及将知识图引入推荐算法做进一步的探索。
参考文献