APP下载

基于双重最相关注意力网络的协同过滤推荐算法

2020-12-31张文龙钱付兰张燕平

计算机应用 2020年12期
关键词:集上向量注意力

张文龙,钱付兰*,陈 洁,赵 姝,张燕平

(1.安徽大学计算机科学与技术学院,合肥 230601;2.计算智能与信号处理教育部重点实验室(安徽大学),合肥 230601)

(∗通信作者电子邮箱qianfulan@hotmail.com)

0 引言

互联网和移动技术的出现使人们可以随时随地获取信息。随着社交媒体、电子商务和各种生活服务应用等网络服务的普及,人们的生活方式发生了深刻的变化。为了能够在海量数据中快速有效地获取对用户最有价值的数据,推荐系统应运而生[1]。个性化推荐的目标是从历史的用户-项目交互(例如评分和浏览等)中了解用户偏好,并根据这些用户-项目交互推荐相关的项目,这种方法被称为协同过滤(Collaborative Filtering,CF)[2-3]。

在基于协同过滤的方法中,最成功的就是通过矩阵分解(Matrix Factorization,MF)[4]的方法,将用户和项目映射到同一个潜在空间中,使用潜在特征向量来表示用户或项目。然后,将用户对项目的交互建模为其潜在向量的内积。然而,实际中的评分矩阵往往是非常稀疏的,这导致基于协同过滤的方法在学习合适的潜在表示时性能显著下降。最近,学习有效表征的强大方法之一便是深度学习(Deep Learning,DL)。因此,随着大规模评分和丰富的附加信息,将深度学习与协同过滤算法相结合,来学习用户和项目的潜在表示,可以充分挖掘数据的有效信息。由此,一些研究已经开始在传统协同过滤方法的基础上利用深度学习来进行推荐任务。Wang 等[5]提出协同深度学习(Collaborative Deep Learning,CDL)算法结合用户交互数据与项目内容辅助信息来学习隐式表示,缓解了协同过滤类方法学习用户与项目的交互往往过于稀疏导致推荐效果不好的问题。He等[6]用神经网络来代替内积形式来学习用户和项目之间的交互,从而实现了矩阵分解类方法的扩展。Barkan 等[7]使用表示学习的方法,将每个项目表示为一个固定维度的向量,从而隐式地得到项目间的相互关系,使得在计算项目相似性方面更加高效,进而提升了模型的泛化能力。Zheng等[8]引入光谱图理论结合在用户-项目二分图上进行光谱卷积操作来提升协同过滤算法的推荐效果。

尽管上述方法在推荐的准确性上取得了良好的性能,但它忽略了用户不同历史交互项目的重要性,并且缺乏对历史项目与目标项目之间交互关联度的区分,导致无法实现用户偏好的细粒度建模。直观地说,对于每个用户,他对所交互的一组历史项目中不同项目的偏好应该是不同的。例如,用户分别购买了衣服、手机和相机三种产品,并不意味着用户对这三种产品有着相同的偏好。同样,假定用户交互过的所有历史项目对目标项目的预测都有同等的贡献也是不现实的。通常,用户以前与几个项目交互过,这将直接影响用户对某个项目的决策。例如,当用户决定是否购买手机套时,影响最大的应该是先前购买的手机,而不是相机或服装产品。于是,引入深度学习中的注意力机制[9]。注意力机制已在众多领域中取得了成功的应用,其核心思想便是从原始信息中捕获与当前任务最相关的部分并进行强化。因此,通过注意力机制可以为较重要的项目和项目交互关系分配更大的权重来解决上述提到的两个问题,进而提升模型的推荐效果。

本文为了解决协同过滤类算法将所有项目看作同等重要的限制,利用注意力机制可有效区分不同项目重要性的特性,将项目因子相似模型(Factored Item Similarity Model,FISM)[10]与注意力网络进行深度融合,提出了一种基于双重最相关注意力网络的协同过滤(Dual Most Relevant Attention Collaborative Filtering,DMRACF)算法。该算法利用深度神经网络来自动学习项目之间的复杂交互函数,并设计一个由项目级注意力和项目交互级注意力组成的双重最相关注意力网络,为较重要的项目和项目交互关系分配更大的权重,进而捕获用户更细粒度下的偏好,实现对用户偏好的细粒度建模,这有利于推荐效果的提升。

1 相关工作

基于项目的协同过滤以其优异的性能在推荐系统的构建中得到了广泛的应用。早期的模型,如基于项目的K 近邻(Item-based K-Nearest Neighbors,ItemKNN)[2]只是简单地使用统计方法来估计项目之间的相似度,如余弦相似度和皮尔逊相关系数。但是,这些方法需要针对特定数据集进行手动调优,导致算法可扩展性方面受限。为了弥补这些方法的不足,出现了一些基于机器学习的方法,通过构造目标函数来自动学习项目之间的相似关系。在这些基于机器学习的方法中,最具代表性的模型是稀疏线性方法(Sparse LInear Method,SLIM)[11]和FISM。具体来说,SLIM 构造了一个基于回归的目标函数,并对其进行优化以学习项目相似度矩阵;但其训练成本较高,不可能挖掘项目之间的传递关系。与SLIM不同,FISM 将两个项目之间的相似性表示为它们的低维向量的内积。尽管FISM 实现了最先进的推荐性能,但它有一个限制,即假设与用户交互的所有历史项目在建模用户对目标项目的偏好时有同等的贡献。

随着深度学习技术在计算机视觉和自然语言处理方面取得了巨大的成功[12],人们正在努力将深度学习技术引入到推荐系统中。通常,深度学习被应用于特征提取和预测。Xue等[13]利用深度神经网络来捕获项目间的高阶交互关系,提出了一个基于深度学习的项目协同过滤(Deep Item-based Collaborative Filtering,DeepICF)算法。邓凯等[14]将物品相似性因子模型与深度神经网络相结合,提出了一个基于物品的同一协同过滤(Item-based Unified Collaborative Filtering,UICF)推荐模型。最近深度学习中的注意机制的有效性在机器翻译中被证明是非常有效的[15],它的成功主要是基于一个合理的假设,即人类的识别并不倾向于一次性处理整个信号,相反,人们只关注整个感知空间中有选择性的部分。事实上,这一假设不仅适用于计算机视觉和自然语言处理领域,在许多现实世界的情况下都是合理的。于是基于注意力机制的推荐模型近年来得到了发展,并且取得了突出的表现。He等[16]提出了一个神经注意力项目相似性(Neural Attentive Item Similarity,NAIS)模型,该模型在学习项目-项目之间的相似性方面使用注意力机制进行建模。Chen 等[17]将隐因子模型与组件级注意力机制相结合对多媒体推荐中的隐式反馈建模,效果良好。Zhuang 等[18]提出了一个注意力驱动的推荐算法,使用注意力机制来估计用户对不同项目特征的注意力分布,提高了模型的可解释性。

2 基于双重最相关注意力网络算法

首先,本文提出的基于双重最相关注意力网络的协同过滤算法框架如图1 所示。整个模型包括输入层、嵌入层、对交互层、池化层、深度交互层、输出层,以及由项目级注意力和项目交互级注意力组成的双重最相关注意力网络。

在输入层中,目标项目i的表示是使用ID 特征的one-hot编码xitem_input=[0,0,1,…,0,0]m,用户u的表示是对u的交互项目集的ID 特征进行multi-hot 编码xuser_input=[1,0,1,…,0,1]m。其中,m表示编码的维数,其大小为项目的总个数。由于此编码方式产生的特征空间非常大,容易造成维度过大。因此,在输入层之上引入一个嵌入层,它是一个全连接神经网络,用于将输入层稀疏的特征向量转换成稠密的特征向量,有效地降低了特征空间的维数。通过式(1)将目标项i映射到一个嵌入向量pi∈Ak上来表示目标项目,其中k≪m为嵌入向量的维数。对于用户u与之交互的每个历史项j∈,将其映射到一个嵌入向量qj∈Ak。最后,根据嵌入层的输出,可以得到一组向量,一个向量pi分别表示用户u和目标项i。

其中:xitem_input、xuser_input分别表示项目和用户的one-hot 编码输入;embedded表示全连接神经网络。

图1 DMRACF算法框架Fig.1 Framework of DMRACF algorithm

在得到一组表示用户u的向量Qu之后,为了获得用户对历史交互项目的偏好,使用一维注意力机制来为不同的历史交互项目分配不同的权重,计算方法如下:

其中:W和b分别是将输入映射到隐层的权值矩阵和偏置向量;hT是将隐层映射到输出注意力权值的映射向量;αj可抽象地看作是用户u对其交互过的历史项目j的偏好。

为了捕获任意一个历史项目和目标项目之间的特征交互,通过对用户u的历史交互项与目标项i之间的嵌入向量进行简单的元素乘积运算来获取项目对交互向量集Vui=,获取用户u的历史交互项目与目标项目i的二阶特征交互关系。

直观地说,不同的历史项目对目标项目的预测有不同的贡献。因此,将这组两两交互的向量输入到一个注意力网络中。通过学习,对较重要的项目对给予较大的交互权重,以感知历史项目与目标项目交互关系的不同重要性,计算方法如下:

其中,hT为将隐层映射到输出注意权值的映射向量。由于不同用户的历史交互项目数量变化很大,使用一个超参数β用于平滑softmax 函数中的分母项,其取值范围在[0,1],从而平衡了一些活跃用户交互的历史项目数过多导致注意力权值过小的问题,同时使得注意力权值能在一个比较小的方差内。αij为历史项目j对目标项目i的注意力权值,可视为用户u对项目i兴趣的抽象表示。

由于用户的历史交互项目的数量(用户的历史评分项的数量)变化很大,对特征交互层的输出是一个可变大小的向量集。为了便于后续处理,使用池化层对可变大小的向量进行操作,生成一个固定大小的向量。这里,为了表示不同的池化方式,使用了一个超参数来控制,计算方法如下:

其中:γ是一个控制池化方式的超参数,其取值范围为[0,1]。当γ设置为0 时,就变成标准的和值池化;当γ设置为1 时,就变成了标准的平均池化。

前一个池化层的输出是一个k维的向量=fpooling(Vui)),其中包含历史项目和目标项目之间的二阶交互。为了对历史项目和目标项目之间的高阶特征交互进行建模,在其上叠加了一个多层感知器(MultiLayer Perceptron,MLP),实现了高阶建模,获得了更深层次的复杂交互信息,计算方法如下:

其中:WL、bL、eL分别表示第L层的权重矩阵、偏置向量、激活函数和输出向量。使用ReLU 作为激活函数,当网络变深时,更能抵抗饱和问题[19],并在本文的实验中显示出良好的性能。

作为深度交互层的输出,所得到的深度交互向量eL包含了项目从二阶到高阶之间的特征交互信息,然后用简单的线性回归模型预测最终结果:

其中hT和b分别表示权值矩阵和偏置向量。

为了学习推荐模型,指定了一个目标函数进行优化。当前主要存在的两种方法,分别是平方损失和对数损失,我们认为平方损失可能与隐式反馈数据不太吻合。这是因为对于隐式反馈数据,目标值yui是一个二值化的1 或0,表示u是否与i交互。可以将yui的值看作一个标签1 表示项目i与u相关,0表示项目i与u不相关。预测分数表示i与u相关的可能性有多大。要赋予这样的概率解释,需要将输出限制在[0,1],这可以很容易通过概率函数来实现。

通过以上的说明可知,当处理问题是二值数据1或0的隐式反馈时,学习推荐模型可以看作是一个二分类任务,因此使用式(12)所示的对数损失作为目标函数。通过最小化目标函数学习模型参数:

其中:N表示整个训练集的总数,包括正样本R+和负样本R-;σ表示sigmoid 函数,它将预测值约束在[0,1];为预测结果,其值表示用户u与项目i交互的可能性;λ为防止过拟合的正则化参数;Θ为整个模型的可训练参数。

综上所述,得到算法1所示的DMRACF算法。

由式(5)、(6)计算用户u对项目i的注意力权值αij;

算法中,R表示项目集,U表示项目级注意力和项目交互级注意力的参数集。

3 实验与结果分析

3.1 数据集描述与评价指标

为了验证本文所提方法的性能,在两个真实数据集上进行了评估。MovieLens 是一个被广泛用于研究协同过滤算法性能的电影评分数据集[20]。在本文实验中,选择的是MovieLens-1M,包含100万个评分,其中每个用户至少有20个评分。Pinterest 是一个用于图像推荐的数据集,其中包含9 916名用户对55 187张图像的评分。数据集详细信息如表1所示。

表1 实验数据集的描述Tab.1 Description of datasets used in experiments

本文中使用一种被广泛使用的leave-one-out 评价方法来研究项目推荐的性能[21]。首先,根据每个用户的时间戳对用户-项目交互进行排序。然后,将最新的交互作为每个用户的测试数据,并利用与用户对应的其余交互进行训练。对每个测试项目(正样本)随机抽取99 个没有被相应用户交互的项目(负样本)进行抽样,以便在这100 个项目构成的集合进行模型的评估。因此,可以减轻在评估期间为每个用户对所有项目进行排序的耗时问题。

在评价指标方面,采用命中率(Hit Ratio@k,HR@k)和归一化折损累积增益(Normalized Discounted Cumulative Gain@k,NDCG@k)来评估本文的模型生成的排名列表的性能[22]。在实验部分,设置两个指标的k=10。如果测试项目出现在排名前10 的列表中,那么HR@10 的度量就能够直观地进行度量,并且NDCG@10 说明了排名的质量,即为命中位置靠前的分配更高的分数。两个指标越高,推荐性能越好。

3.2 对比算法

为了评估本文所提出算法的有效性,研究对比了以下几种协同过滤类方法的性能。

1)ItemPop(Item Popularity)。该算法是一个非个性化的推荐算法,因为它根据商品的受欢迎程度(通过交互次数的数量来衡量)来对商品进行排名。

2)ItemKNN。该方法是最基本的基于项目的协同过滤,通过历史项目与目标项目之间的相似性来给出推荐,在实验中采用余弦相似度来计算项目之间的相似性。

3)BPR(Bayesian Personalized Ranking)[23]。该方法利用贝叶斯个性化排序损失来优化MF 模型,从而实现了对MF 模型的优化。

4)eALS(element-wise Alternating Least Square)[20]。该方法也学习了一个MF 模型,但优化了一个不同的点态回归损失,该损失将所有缺失的数据视为具有较小权重的负反馈。

5)MLP[6]。该方法利用深度神经网络代替简单的内积,从数据中学习用户与项目之间的非线性交互。

6)FISM。该方法是当前最先进的基于项目的协同过滤算法,其为每个项目都生成两个向量表示,分别用来表示历史交互项目和目标项目。

7)NAIS。该方法利用注意力机制来学习物品相似度,进而对FISM进行扩展。

8)DeepICF。该方法使用深度神经网络来同时捕获项目间二阶和高阶交互关系,是一种基于深度学习的项目协同过滤方法。

3.3 参数设置

用高斯分布随机初始化模型参数,其中均值和标准差分别为0和0.01。对于嵌入大小k,在实验中对(8,16,32,64)的值进行了评估。注意力因子尺寸与每次的嵌入尺寸相同。超参数β和γ的取值范围在[0,1],在实验中β和γ的取值分别为0.5 和0。防止模型过拟合的L2 正则化系数λ在(1E−5,1E−4,1E−3,0)进行调整。使用优化器Adagrad对目标函数进行优化,从而完成对整个模型参数的训练。学习率设置为0.01,迭代次数为80。整个模型的实现是基于TensorFlow,所有的实验都是在NVIDIA的Tesla GPU上进行。

3.4 结果分析

由于嵌入尺寸控制基于嵌入的方法的建模能力,为基于嵌入的方法(BPR、eALS、MLP、FISM)设置了相同的嵌入尺寸16进行实验结果的比较。表2展示了不同推荐算法在两个数据集上的准确性。

表2 不同方法在嵌入尺寸为16时的推荐准确度Tab.2 Recommendation accuracy of different methods at embedding size 16

观察表2 可以发现,与其他方法相比,DMRACF 在两个数据集上都取得了最好的性能。NAIS 和DMRACF 均在模型中使用了注意力机制,MovieLens 数据集上NAIS 的两种评价指标相较于当前最先进的算法FISM 分别提高了4.8 个百分点、6.2个百分点,而本文提出的DMRACF提升的结果则是6个百分点和8.7 个百分点。这表明引入注意机制可以帮助模型进一步提取数据中更为复杂的特征信息,进而提升模型的表达性和准确率。其中,DMRACF的准确率最高,说明设计的双重最相关注意力网络可以有效地捕捉到更细粒度的用户偏好,使得本文的模型具有更强大的表示能力。两种基于项目的协同过滤方法FISM 和ItemKNN 使用相同的预测模型,但FISM的预测结果远远超过了ItemKNN,在MovieLens 上的HR 和NDCG 分别提高了6.7 个百分点和10.1 个百分点。两种方法的关键区别在于项目相似度的估计方法不同,导致FISM 方法的结果优于ItemKNN 方法。基于用户的协同过滤模型(BPR、eALS和MLP)与基于项目的协同过滤模型(FISM)在不同数据集上具有不同的表现。具体来说,基于用户的协同过滤模型在MovieLens 数据集上的性能优于FISM,而FISM 在Pinterest数据集上的性能优于基于用户的协同过滤模型。观察表1 可知,Pinterest 数据集具有较高的稀疏性(相较于MovieLens 数据集),本文认为基于项目的协同过滤方法在高度稀疏的数据集上相较基于用户的协同过滤方法表现得更好。

双重最相关注意力网络的设计是本文模型的核心部分,为了验证不同层级注意力模块对本文模型的影响,将DMRACF 与它的两个变体进行比较,即DMRACF_IT(只具有项目级注意力)和DMRACF_II(只具有项目交互级注意力),结果如表3 所示。从表3 可以看出,与DMRACF_IT 相比,DMRACF_II 具有更优的性能。据统计,DMRACF_II 相较于DMRACF_IT 在MovieLens 上的HR 和NDCG 分别提高了1.4个百分点和3.5 个百分点。这表明项目交互级的注意力比项目级的注意力对本文的模型贡献更大。另外,DMRACF 借助双重最相关注意力网络,最终取得了最优的效果(与DMRACF_IT、DMRACF_II 相比)。这进一步验证了注意力机制的引入和双重最相关注意力网络的设计对模型的有效性。

表3 DMRACF和它两个变体的实验结果比较Tab.3 Comparison of experimental results of DMRACF and its two variants

图2和图3给出了在两个数据集上HR和NDCG对于不同嵌入尺寸的性能表现。

图2 MovieLens数据集上基于嵌入的方法在不同嵌入尺寸上的性能比较Fig.2 Performance comparison of embedding-based methods at different embedding sizes on MovieLens dataset

图3 Pinterest数据集上基于嵌入的方法在不同嵌入尺寸上的性能比较Fig.3 Performance comparison of embedding-based methods at different embedding sizes on Pinterest dataset

从图2 和图3 中可以看出,一般情况下,嵌入尺寸为8、32和64的推荐性能趋势与嵌入尺寸为16的推荐性能趋势相似。本文所提的DMRACF 算法在大多数情况下都取得了最优的表现,除了嵌入尺寸为8 时,MLP 在MovieLens 上的性能优于DMRACF。在MovieLens 这个相对密集的数据集上(与Pinterest 相比),基于用户的非线性方法(在本例中为MLP)能够在较小的嵌入尺寸下取得更强的表示能力。

4 结语

本文提出了一种新的基于双重最相关注意力网络的协同过滤(DMRACF)算法,用于Top-N推荐。DMRACF 通过设计一个双重最相关注意力网络,不仅强化了与用户最相关的历史项目,而且还挑选出了对预测最重要的历史项与目标项之间的交互关系,进而解决了协同过滤类算法将所有历史项目看作同等重要的限制,提高了推荐的准确性。实验结果表明,DMRACF 的性能优于其他协同过滤类方法。接下来,我们计划将DMRACF 从以下方向进行扩展。首先,这项工作的重点是纯协同过滤系统,只使用了用户和项目的ID 属性进行建模,但实际上存在许多用户和项目的其他可用属性(如类别、职业)。未来将研究DMRACF 在使用这些可用辅助信息时的有效性。

猜你喜欢

集上向量注意力
基于双空间模糊邻域相似关系的多标记特征选择
向量的分解
让注意力“飞”回来
关于短文本匹配的泛化性和迁移性的研究分析
聚焦“向量与三角”创新题
A Beautiful Way Of Looking At Things
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
师如明灯,清凉温润
几道导数题引发的解题思考