1. 引言
现代信息社会已经完全进入到了大数据发展的时代,数据量呈现出指数级增长,使得人们在获取海量信息的同时也面临一个新的问题:如何从这些庞大的数据中获得自己所需的信息?这一现象的出现同时也伴随着负面影响,信息数量太过庞大从而产生了一定的信息冗余,导致信息过载 [1] 。推荐系统 [2] 通过与用户之间的交互,譬如用户浏览过系统内的信息或者点击过系统里的内容,自动获取用户的历史行为信息,通过数学建模来自主分析用户与内容的相似度,并依据此相似度对用户进行推荐。
协同过滤算法是推荐领域研究最为成功的推荐算法之一,并且已经应用到众多领域当中。近年来将深度学习应用到传统的推荐算法中是当今学者研究的重点,克服了传统模型的缺点且提高推荐准确率。主要思想是利用用户和物品相关信息,采用深度学习模型学习到二者的特征表示,为用户进行物品推荐。He 等人 [3] 使用深度学习开发了一个通用框架,神经协同过滤(Neural Collaborative Filtering, NCF),对用户和物品的身份信息进行特征表示,设计了广义矩阵分解和多层感知器分别使用线性核函数和非线性核函数模拟潜在的交互特征。
协同过滤虽然比其他推荐算法表现更好,但数据稀疏一直影响着其性能的发挥。为了应对以上问题,LARA [4] 使用了生成式对抗网络,从物品属性的多个角度生成可能对新物品感兴趣的用户。Wu等人 [5] 使用自适应图卷积神经网络来整合用户和物品的属性信息,调整图嵌入学习参数补全缺失的属性值,用于物品推荐。Liu等人 [6] 提出了一个属性感知的注意图卷积网络,利用注意机制来考虑属性信息的重要性,然后对从物品传递给目标用户的信息进行过滤。Yang等人 [7] 将从知识图中提取的物品属性作为辅助信息,通过属性层面的共同注意机制实现性能提高。虽然添加了用户或物品的属性信息等辅助信息,但这些属性信息并没有得到充分利用。因此,本文提出了一种基于多属性融合的神经协同过滤模型来缓解数据稀疏性问题。
2. 基于匹配学习的神经协同过滤模型
近年来,大量的研究将传统的协同过滤算法进行改进,并已经被众多推荐算法方向的学者作为参考。本节主要介绍基于函数匹配学习的两种协同过滤推荐算法,为本文的实验供了思路。基于函数匹配学习的协同过滤算法旨在建模用户和电影的交互关系,其中神经协同过滤采用神经网络来学习用户与物品的交互特征,NCF模型 [3] 选取用户和物品的 ID 数据,在输入层得到其初始表示。表示方法是对 ID数据进行 one-hot 编码,输出的初始表示包含了数据的所有特征,但维度过于庞大。因此嵌入层通过全连接层结构将这庞大的稀疏初始向量进行降维,输出潜在特征表示,维度的大小会影响推荐系统的性能。这时输出的用户和物品的潜在向量是相互独立的,因此需要匹配函数将两者进行融合。在交互层,学习二者的潜在交互关系。最后输出目标用户对物品的预测偏好度。上述模型最关键的部分是交互层。学者可以根据自己的任务需求定制个性化的交互层,以充分学习用户与物品之间的潜在特征,并且在最后一层的维度设置直接决定了模型的能力。
另一种函数匹配学习方法是对神经协同过滤的改进。ONCF模型 [8] 的思想是使用外积操作建模嵌入向量维数之间的成对相关性。与现有的神经协同过滤推荐模型通过一个简单的拼接或内积融合策略处理用户和物品的潜在向量相比,使用的外积运算,通过建模不同嵌入维度之间的相关性,不仅比MF编码更多的特征;而且比拼接策略更有意义。拼接虽然保留了用户和物品潜在向量的原始特征,但是没有将这两个独立的向量做任何相关性的操作。因此得到的是一个表达性更丰富和语义上更可信的二维交互矩阵,参考图像数据采用卷积神经网络进行特征提取的方法来学习嵌入维数之间的高阶相关性。
3. 基于多属性融合的神经协同过滤模型
3.1. 基本框架
基于多属性融合的神经协同过滤模型(Multiple Attribute-based Neural Collaborative Filtering, MANCF)整体框架如图1所示。
首先MANCF从数据集中提取属性信息,对其进行one-hot编码。例如将用户的人口统计信息构造成一个矩阵,如果用户U具有相应的属性,则值设为1,否则为0。此编码方式可以很容易地使用内容特征来表示用户和电影,在一定程度上也起到了扩充特征的作用。最后得到用户U、电影M以及各自属性信息的初始表示,分别用
、
、
和
表示,并在嵌入层映射为密集的潜在特征向量。由公式(1)和(2)分别计算出用户特征表示
、电影特征表示
以及各自的属性信息表示
和
。
(1)
(2)
其中,
和
分别表示用户初始表示和电影初始表示的嵌入矩阵,K、M和N分别表示嵌入向量维度、用户特征维度和电影特征维度。
为了充分利用用户和电影的属性信息,MANCF在嵌入层部分使用注意力机制来区分属性信息的重要性。该部分输入由公式(1) (2)计算得到的属性信息表示
和
,使用softmax函数计算分数作为属性信息输出的概率分布。最后通过元素乘积运算将softmax函数的输出与
和
相结合,生成注意力机制的最终输出。其中
表示用户属性表示或电影属性表示,具体计算方法如公式(3)所示:
(3)
经过上述操作输出用户和电影的属性特征表示,再将其整合到各自对应的特征表示中,以获得用户和电影完整的初级特征表示。此方法的应用避免了在用户和电影的单一特征表示中数据稀疏的情况。
MANCF在交互层结合协同过滤的思想,使用不同的网络模型学习用户与电影之间的交互关系。但前提是如何获得二者之间的高级特征表示。受计算机视觉领域多模态融合的启发,实验采用拼接和外积融合策略解决上述问题。最后每个网络模型的最终输出使用拼接策略进行融合,经过定制的全连接层输出用户对电影的预测偏好度。
一方面,本文对用户U、电影M的完整初级特征表示
和
采用拼接测策略进行融合。然而一个简单的拼接并不能充分探索用户与电影之间的潜在特征交互,所以本文在交互层使用了一个标准的多层感知器来处理这个问题。通过这种方式可以给予模型更好的灵活性和非线性建模能力。其用户和电影的完整初级特征表示如公式(4)所示。
(4)
在交互层,公式(6)采用拼接策略对用户和电影的完整初级特征表示
和
进行融合,得到二者之间的高级特征表示
,公式(7)对高级特征表示
进行非参数操作,以聚合潜在表示。
(6)
(7)
其中
,
和
分别表示多层感知器各隐藏层的权重矩阵、偏置向量和激活函数(ReLU函数),同时在输出层采取同样操作,根据推荐任务选取合适的激活函数。另一方面,本文对用户U、电影M的完整初级特征表示
和
采用外积运算进行融合。方法如公式(8)所示:
(8)
其中E为K阶交互映射矩阵。对于此矩阵来说,可以由上述非线性模型进行学习。但是考虑到两种模型处理数据的方式,多层感知器需要将二维矩阵映射到非常庞大的向量中,进而会产生大量的参数。因此,在交互层使用卷积神经网络会取得较好的效果。具体方法如公式(9)和(10)所示:
(9)
(10)
其中,s和n分别表示隐藏层映射矩阵的维度和数量,t表示卷积核,
表示第l层偏置向量。
最后将两种模型的输出向量融合,进行预测。模型的最终输出如公式(11)所示:
(11)
3.2. 模型训练
由于本实验研究的是隐式数据,其表示用户是否与项目交互,目标值为二进制0或1,而评级误差更适用于显式数据。考虑到隐式反馈的单类性质,我们可以将
的值作为用户U与电影M之间的相关性,具体来说用1表示用户U与电影M相关,0则表示不相关。这样,我们就可以将预测的分数
作为用户U与电影M相关的概率,即用户与电影匹配的概率。因此,得到公式(13)所示的目标函数:
(13)
其中,
表示正采样集,
表示负采样集,可以通过从未观察到的交互样本中抽样得到。因此,通过上述公式,最终得到了一个适合于从隐式反馈数据中学习的目标函数,即一个二进制交叉熵损失函数。通过最大化目标函数,并可以通过随机梯度下降对其进行优化。
4. 仿真实验
4.1. 实验数据集
本实验所选择的数据集是被众多学者在推荐领域广泛使用的MovieLens 1M数据集,此数据集包含了用户性别、电影类型等属性信息和部分评分信息。
4.2. 评价指标
在top-k推荐任务中,命中率(Hit Rate, HR)是一种常用的召回率重要的参考指标,表示预测结果列表中正确的样本占所有样本的比例,即用户想要的项目有没有推荐到,即强调的是预测列表准确度。评价一个推荐系统,不可能只使用一个用户的推荐结果,而应该评价整个测试集中的用户及其推荐列表结果。然后对不同用户推荐列表的进行归一化处理,即归一化折损累计增益(Normalized Discounted Cumulative Gain, NDCG),这是召回率另一个重要的参考指标。
4.3. 对比模型
为了评估本文提出模型的准确性和有效性,本节根据目前出现的先进的推荐算法模型对本文模型进行比较,并且处理的都是隐式反馈数据。选取MF、MLP、NeuMF和DeepCF模型作为基准。
4.4. 参数设置
此实验选取MovieLens1M数据集并在深度学习框架Keras下实现。首先,为了确定实验参数,随机选择了一个用户的交互数据作为验证,通过公式(3-17)进行学习并调整。然后采用L2正则化约束来防止模型在初始化参数时发生过拟合现象。最后实验参数设置包括嵌入向量的维度分别设置用户(电影)的嵌入维度为[8, 16, 32, 64],用户(电影)属性信息嵌入维度为8,推荐列表中电影的个数K设置为10,学习速率大小设置为0.001,bitch size设置为128。
4.5. 实验结果及分析
4.5.1. 不同模型实验结果对比
由图2和图3可以看出,嵌入维度的不同,各推荐模型的指标大小也不尽相同。随着嵌入维度的增大,HR和NDCG数值也随之增大,但不会无限增大,在某一维度下达到最大值,之后会保持不变或有所下降。可以看出当嵌入维度为32时,HR@10和NDCG@10取得了最好的效果。

Figure 3. Comparison of NDCG results
图3. 归一化折损累计增益结果对比
4.5.2. 消融实验
本文针对数据稀疏性问题,在神经协同过滤的基础上通过增加多个属性,使用注意力机制来区分属性信息的重要性,并将其集成到相应的用户和电影特征表示中,以获得用户和项目的完整初级特征表示。因此为了验证属性信息和注意力机制的重要性,本小结通过消融实验进行结果分析。
为了反应属性信息对推荐性能的影响,本实验通过删除属性信息和注意力机制,将模型分别命名为MANCF-att和MANCF-a并与原模型进行比较。如图4所示,MANCF相比MANCF-att和MANCF-a性能有明显的提升,在指标HR@10上提高了1.68%和1%,并且图5中在NDCG@10方面提高了4.92%和1.05%。因此属性信息的引入以及区分其重要性有效降低了数据稀疏性,提高了推荐性能。

Figure 5. Comparison of NDCG results
图5. 归一化折损累计增益结果对比
5. 结论
为了缓解数据的稀疏性,本文提出了一种基于多属性融合的神经协同过滤模型,通过添加多个属性信息来丰富用户和电影的潜在特征表示;采用两种策略对特征表示进行融合,并使用多层感知器和卷积神经网络深入挖掘用户与物品的交互关系。在公开的电影数据集上的实验表明该方法能提高推荐性能。