基于多维特征交叉的深度协同过滤算法

2022-11-20 13:56陆悦聪王瑞琴
计算机工程与应用 2022年22期
关键词:向量物品神经网络

陆悦聪,王瑞琴,2,金 楠

1.湖州师范学院 信息工程学院,浙江 湖州 313000

2.浙江省现代农业资源智慧管理与应用研究重点实验室,浙江 湖州 313000

大数据时代在产生海量数据的同时带来了信息过载问题。相较于搜索引擎,推荐系统(recommender system,RS)[1]的出现使得用户无需从海量数据中提取需要的信息。推荐系统根据不同的业务需求选择不同的推荐算法。推荐算法目前可以分为传统的推荐算法[2]和基于深度学习的推荐算法[3],其中传统的推荐算法存在数据稀疏[4],对用户和物品的信息处理过于简单,无法捕获特征间的非线性关系等弊端,导致推荐的准确性不高。随着深度学习的不断发展,神经网络可以自动获取特征间的高阶交互[5],大大提高了推荐的准确性。

神经网络根据输入特征建模用户与物品的交互关系,不同的特征以及交互方式对于最终的推荐精度有着明显的影响。一些学者将用户与物品的显式交互作为神经网络的输入,认为显式交互数据对于学习用户物品特征具有积极作用,并利用辅助信息丰富用户物品特征[6];也有学者通过改变特征交互方式,采用不同的网络结构等方式不断提升显式反馈数据的表达能力[7]。目前应用显式数据于推荐算法中已经非常成熟,而隐式数据通常作为约束条件使用[8]。因此,将隐式数据作为主要特征,通过神经网络学习交叉特征间的高阶交互,是一个可研究的方向。

本文提出的基于多维特征交叉的深度协同过滤算法(deep collaborative filtering algorithm based on multidimensional feature crossover,DCF),使用隐式反馈数据的同时增加ID信息以丰富特征并且缓解冷启动问题,通过单层神经网络训练得到用户物品低维嵌入向量,然后将用户物品特征向量逐元素相乘得到交互向量,最后将用户与物品的交互作为网络层的输入,使神经网络能学习到更有用的信息。

1 相关工作

1.1 基于矩阵分解的协同推荐

在推荐系统中,协同过滤(collaborative filtering,CF)[9]是应用最广泛的算法,主要分为基于内存的CF算法和基于模型的CF算法[10]。基于内存的CF算法通过对用户历史行为数据进行挖掘,为用户推荐与其历史交互物品中相似度最高的物品;基于模型的CF算法利用历史数据训练模型,然后利用该模型进行推荐。基于模型的CF算法相比基于内存的CF算法大大提高了推荐的效率。在基于模型的CF算法中,根据是否使用深度学习技术,将其分为使用常规算法的协同过滤和使用深度学习的协同过滤。其中具有代表性的模型是传统的矩阵分解模型[11]和基于神经网络的矩阵分解模型。

传统的矩阵分解模型通过分解用户对物品的评分矩阵,得到用户和物品的隐向量,通过最小化预测值与实际值之差的方式对模型进行优化,最终得到稠密的评分矩阵。但是由于用户评分标准不统一及存在随意评分的现象,导致评分矩阵中掺杂了噪声,从而影响最终推荐效果。在基于神经网络的矩阵分解模型中,He等[12]提出的神经矩阵分解(neural matrix factorization,NeuMF)模型将用户和物品的ID作为输入,消除了评分矩阵中的噪声对模型的影响。采取不同的建模方式模拟用户与物品间的交互,例如通过广义矩阵分解(generalized matrix factorization,GMF)得到用户与物品的低阶交互,使用多层感知机(multi-layer perceptron,MLP)捕获用户与物品的高阶交互,并将二者传入网络层,用神经网络代替传统的内积,可以学习到特征间的任意函数关系。

虽然NeuMF同时考虑了低阶特征和高阶特征的学习,但仅通过ID数据来建模用户与物品之间的交互,存在一定的局限性。学者们对NeuMF进行改进,有效提高了模型的性能。Wang等[13]在NeuMF的基础上,实现了在预测评分的同时考虑用户之间的信任关系,使得预测评分目标与预测用户信任关系目标相互促进;Nassar等[14]采用NeuMF的结构,提出多标准协同过滤算法,将NeuMF计算出的评分数据归一化后再次输入到MLP中,该方法突破了以往只使用一种评分标准的限制;He等[15]将嵌入层向量作外积,突破了NeuMF中用户的嵌入向量与物品的嵌入向量几乎没有关联的限制。

1.2 基于隐式反馈的协同推荐

隐式反馈包括但不限于浏览、点击及购买等行为,在现实生活中隐式反馈的数量远超过显式反馈的数量,因此对于隐式反馈数据的应用有非常广阔的前景。由于隐式反馈[16]只表明用户是否与物品进行过交互,而不考虑具体的评分情况,在一定程度上缓解了用户随意评分的问题,将隐式反馈作为输入相比评分数据更具有现实意义。在传统的推荐中,Koren[17]从Netflix数据集中获得灵感,认为评分矩阵不仅明确地表明了用户对物品的喜好程度,在一定程度上也反映出用户的偏好。通过对奇异值分解(singular value decomposition,SVD)模型进行改进,引入用户或物品的隐式反馈数据,大幅提高了预测精度。陈碧毅等[18]融合显式反馈与隐式反馈,首先通过矩阵分解算法分解隐式反馈矩阵,得到用户物品的隐式向量,再分解显式反馈矩阵,得到用户物品的显式向量,最终将隐式向量作为显式向量的补充,将用户特征向量与物品特征向量进行点积操作完成评分预测任务。

目前,将隐式反馈应用于基于神经网络的推荐中已是一个非常普遍的现象,其中大部分研究将隐式反馈作为补充特征。Zhu等[19]认为直接从隐式反馈中学习模型会有偏差,提出组合联合学习框架,旨在同时学习无偏的用户物品相关性和无偏的倾向性;Lian等[20]融合隐式反馈和显式反馈,通过深度交叉网络学习特征间的高低阶交互;薛峰等[21]将隐式反馈、ID作为神经网络的输入,采用注意力网络区分不同历史反馈对用户的重要性,得到用户的加权隐反馈信息,并将其融入用户潜在特征中,提高了用户特征的表达能力。

1.3 基于多维特征交叉的协同推荐

学者们通过增加特征、从原数据提取特征等方法扩展了特征的维度,通过特征交叉提高了特征的表达能力,进一步提升了模型的性能。Wang等[22]对内容信息进行深度表示学习,同时对评分矩阵进行协同过滤,并将二者进行双向交叉,得到更精准的推荐;Mongia等[23]将用户潜在向量视为评分与物品潜在向量的映射关系,先通过深度神经网络得到物品潜在向量,然后将用户与物品的潜在向量作内积以完成点击预测任务;Wu等[24]提出的协同去噪自动编码器(collaborative denoising auto-encoder,CDAE)利用去噪自动编码器形成用户物品反馈数据,学习用户和物品的分布式表示;Dureddy等[25]使用强化学习预测用户与物品的嵌入向量以解决冷启动问题;Qu等[26]在网络层前加入乘积层,丰富了特征的表示;Deng等[27]提出的深度协同过滤(deep collaborative filtering,DeepCF)框架将隐式反馈直接作为输入,通过多层神经网络分别得到用户物品对的低阶交互和高阶交互,最终将两者融合。受DeepCF框架启发,本文融合隐式反馈数据与ID信息,把特征交叉得到的低阶交互作为网络层的输入,再通过网络层获得高阶交互,最终完成评分预测任务。

本文算法与DeepCF的主要区别如下:(1)本文算法在DeepCF的基础上考虑了ID特征对模型的影响,在增加特征的同时缓解了冷启动问题;(2)对原始输入数据降维的方式不同,本文算法模型仅采用单层神经网络作为嵌入层,与DeepCF将多层神经网络作为嵌入层的方法相比大大减少了参数数量;(3)相较于DeepCF分别得到低阶交互与高阶交互的方式,本文算法模型首先通过特征交叉获取用户与物品的低阶交互,再通过神经网络学习高阶交互,减少了模型的复杂度。

2 基于多维特征交叉的深度协同过滤算法

为了发挥隐式反馈表示用户与物品特征的能力,本文首先通过单层神经网络得到低维稠密的用户物品特征向量,同时结合ID信息丰富特征并缓解冷启动问题,然后通过逐项相乘得到用户物品对的交互向量,最终通过网络层得到预测评分。

2.1 总体框架

DCF的基本框架如图1所示,主要分为输入层、嵌入层、特征交互层以及网络层。其中输入层分为隐式反馈和ID两部分,网络层的输入由隐式反馈和ID信息分别经过降维和交叉处理后拼接而成。

2.2 基于ID信息和隐式反馈的特征交叉

DeepCF框架仅使用隐式反馈作为输入,同时其隐式反馈代指所有点击、查看、购买等用户行为。而本文中的隐式反馈则由用户是否对物品评过分得到,认为用户对物品评过分即表示用户对物品感兴趣,即用户对物品评分是因为该物品本身携带有某种用户感兴趣的特征,正是这些特征导致用户观看该物品然后评分,评分低只能说明物品与用户的预期不符,并不是用户对物品不感兴趣。本文的隐式反馈具体如式(1)所示。

其中,u表示用户,i表示物品,ru,i表示u对i的评分。yui为1时表示u对i感兴趣;为0时表示u对i不感兴趣。u和i的隐式反馈yu、yi如图2所示,其中u的每一列即为该用户的隐式反馈,i的每一行即为该物品的隐式反馈。

虽然隐式反馈无法直观地表明用户喜欢该物品或是讨厌该物品,但隐式反馈能在一定程度上表明用户喜欢的物品类别,相比于显式评分能学习到更多的信息。本文算法首先将用户和物品的隐式反馈数据yu、yi通过单层神经网络降维,计算公式如式(2)所示。

其中,pu、qi代表用户u、物品i的潜在向量,Wu/i、bu/i分别表示用户u/物品i嵌入层神经网络的权重矩阵和偏执项。将降维后的用户物品潜在向量通过式(3)得到用户物品交互向量。

其中,表示由隐式反馈数据得到的用户与物品的潜在向量,pIDu、qIDi表示由ID数据得到的用户与物品的潜在向量,⊙代表逐项相乘,fImp、fID分别代表由隐式反馈数据和ID数据得到的用户物品交互特征向量。最终拼接两种用户物品交互向量,作为神经网络的输入x,如式(4)所示。

2.3 基于深度学习的高阶特征交互学习

DeepCF通过多层神经网络得到用户与物品的潜在向量表示,与本文研究目标不同的是,DeepCF致力于预测用户对物品的点击可能性,其将用户物品潜在向量分别通过逐元素相乘和神经网络得到低维和高维两种预测向量,最后将这两种预测向量拼接后通过Sigmoid函数得到最终用户对该物品的点击可能性。本文的研究目标是预测评分,通过将两种用户物品交互潜在向量输入神经网络的做法,使用神经网络自动学习用户与物品之间的高阶交互。通过神经网络捕获高阶交互关系可以形式化为式(5)。

其中,Wn、bn分别代表第n层神经网络的权重矩阵和偏执项,L代表神经网络的层数,x代表用户物品交互向量,σ表示激活函数,本文采用ReLU激活函数。

网络的输出层只有1个神经元,即为预测评分。预测评分公式如式(6)所示。

其中,r^为预测评分,Wout、bout分别代表输出层神经网络的权重矩阵和偏执项。

2.4 模型训练与优化

推荐系统中有两种常见的损失函数,分别是对数损失函数和均方差损失函数。对数损失函数通常用于预测点击率,均方差损失函数则用于回归问题。因为本模型的目标为预测评分,所以采用均方差损失函数,损失函数如式(7)所示。

其中,I是训练集中用户与物品的集合,u代表用户,v表示物品,ruv是u对v的实际评分,r^uv是u对v的预测评分,N为训练集中的评分数量。本文采用的优化算法为Adam(adaptive moment estimation)。在实验中采用小批量梯度下降,每次训练抓取的样本数量为256。模型的具体计算过程如算法1所示。

算法1基于多维特征交叉的深度协同过滤算法

输入:用户物品隐式反馈,用户U,物品V。

输出:预测评分。

Begin

For eachuinUdo

利用式(2)获得嵌入向量

End for

For eachvinVdo

利用式(2)获得嵌入向量

End for

利用式(3)、式(4)获得交互向量

For eachuinUdo For eachvinVdo

利用式(5)、式(6)得到预测评分

End for

End for

利用式(7)优化模型

End

2.5 本文算法与现有模型的对比

相比传统的MLP模型,本文模型在将特征输入到网络层之前对用户与物品特征进行交叉,相比传统的特征拼接包含更多的信息。相比DeepCF模型,本文模型在嵌入层中采用单层神经网络,减少模型参数的同时提升了训练效率,并且未采用传统的“双塔”结构,将低阶交互直接作为网络层的输入,降低了模型的复杂度。与其他采用隐式反馈与ID信息作为特征的深度协同过滤模型相比,本文将隐式反馈作为用户和物品的特征,而其他模型仅仅将隐式反馈作为用户或者物品的特征甚至是特征的补充,未完全利用隐式反馈数据,采用单层神经网络作为嵌入层相比查表得到嵌入向量,能在一定程度上缓解嵌入矩阵初始化对嵌入向量的影响。同时将用户与物品的隐式反馈嵌入向量、ID嵌入向量分别交叉,然后将两种交叉特征向量拼接后传入神经网络,相比未经处理直接拼接的方法,本文方法得到的特征向量更具表达能力。

3 实验结果与分析

3.1 实验数据集

本文选用经典数据集MovieLens100K(ML-100K)、MovieLens1M(ML-1M)、MovieLens-Latest-Small(ML-LS)和FilmTrust验证本文方法在RS中的性能。MovieLens100K数据集由943位用户、1 682部电影和100 007个评分组成;MovieLens1M数据集由6 040位用户、3 900部电影和1 000 209个评分组成。两个数据集评分的取值范围是1~5。MovieLens-Latest-Small数据集由610位用户、9 742部电影和100 836个评分组成,评分的取值范围是0.5~5;FilmTrust数据集由1 508位用户、2 071部电影和35 497个评分组成,评分的取值范围是0.5~4。实验中随机选取全部评分数据的80%作为训练集,20%作为测试集。4个数据集信息如表1所示。

表1 数据集统计信息Table 1 Statistics of two data sets

3.2 性能评价指标

为了验证本文方法在预测结果上的表现,采用平均绝对误差(mean absolute error,MAE)和均方根误差(root mean square error,RMSE)作为评价算法预测评分精度的标准;采用平均绝对百分比误差(mean absolute percentage error,MAPE)和对称平均绝对百分比误差(symmetric mean absolute percentage error,sMAPE)衡量模型对预测评分的偏好。上述四种指标都表示预测值与实际值的偏差,MAE通过计算目标物品的预测评分与其实际评分绝对差值的平均值来衡量算法的准确性;RMSE是预测评分与实际评分平方差均值的平方根,受异常值的影响更大;MAPE和sMAPE通过计算实际评分与预测评分的差值相比实际评分以及实际评分与预测评分的均值的偏差,可以更好地衡量模型的预测能力。指标值越小,说明推荐的精度越高。MAE、RMSE、MAPE和sMAPE的计算公式如式(8)~(11)所示:

其中,n表示评分个数,yi代表实际评分,y^i代表预测评分。

3.3 对比算法

为了验证本文算法的性能,选取如下算法作为对比算法:

(1)Item-CF:基于物品的协同过滤通过计算物品之间的相似度,向用户推荐与其历史喜欢物品相似度高的物品。

(2)SVD++:在SVD模型中引入隐式反馈,同时使用内积计算评分。

(3)MLP:采用ID作为输入,使用感知机代替矩阵分解中的内积操作,利用神经网络建模用户物品特征之间的高阶交互。

(4)DeepCF:采用隐式反馈作为输入,同样考虑了低阶交互与高阶交互,其用户和物品的低维潜在向量是通过神经网络得到的。

3.4 实验结果分析

(1)不同算法之间的性能比较

不同算法在数据集上的推荐精度如表2所示,其中64、128为嵌入层维度,对Item-CF算法而言,是与物品最相似的物品个数。从表2可以看出,Item-CF由于根据用户交互历史计算出与其交互物品最相似的物品,计算量大,相似度计算公式简单,且无法推荐新物品,在各个数据集上的效果都最差。在稠密数据集中SVD++的推荐精度比单纯的MLP高,这是由于SVD++加入了隐式反馈,能对用户和物品的隐向量进行补充,而MLP仅使用ID特征,无法很好地建模用户与物品之间的高阶交互。而在稀疏数据集中,数据的稀疏导致隐式反馈变少,从而阻碍模型学习特征间的交互,这时MLP采用ID作为特征则有利于学习特征间的交互,使得推荐精度比SVD++更高,如表2中SVD++和MLP在FilmTrust数据集上的表现,而在同样稀疏的MovieLens-LS数据集中,由于物品数量远超用户数量,SVD++仍然可以获取足够的隐式反馈,推荐精度仍会比单纯的MLP高。DeepCF使用隐式反馈作为模型的输入同样受数据稀疏的影响,但是其通过使用类似NeuMF的结构,分别从低阶和高阶两方面获得用户与物品的特征向量,能缓解因数据稀疏造成的隐式反馈不充足的弊端。而SVD++由于采用内积的方式预测评分,只能获取用户与物品的低阶交互,并且不能缓解数据稀疏问题,使得推荐精度不如DeepCF。本文模型通过融合隐式反馈数据与ID信息,并对其进行特征交叉,利用隐式反馈降低了用户主观性对特征的影响,同时利用ID信息缓解了数据稀疏对模型的影响,在小数据集上相比DeepCF模型提升较大,说明本文方法能有效利用特征并提升特征的表达能力。在大数据集上则提升较小,且推荐精度在神经元个数少时比神经元个数多时提升大,说明本文模型的推荐效果随着数据量的增大和模型的复杂而降低。这表明本文简单将特征向量逐元素相乘不能有效地体现用户与物品的交互,导致神经元个数上升时无法很好地捕捉特征间的高阶交互。

表2 不同算法在数据集上的性能对比Table 2 Comparison of performance of various algorithms on data sets

(2)隐式反馈的有效性

为了验证隐式反馈对于学习用户物品交互的有效性,分别将ID信息、隐式反馈数据和两者组合数据作为输入进行实验,结果如表3所示。从表中可以看出,基于隐式反馈数据的深度协同过滤算法相比基于ID信息的深度协同过滤算法推荐精度更高,说明在本文特征处理方法上隐式反馈数据比ID信息更能反映用户和物品的特征,并且隐式反馈数据与ID信息结合可以更充分地表达用户与物品的特征,使神经网络学习到更多的信息,提升推荐性能。但是将隐式反馈数据与ID信息结合在大数据集中的提升不明显,这是由于大数据集中隐式反馈的数量远远超过ID特征,使得神经网络将大部分的注意力放在隐式反馈上,降低了ID特征的作用。

表3 不同输入对本文模型的影响对比Table 3 Comparison of influence of different inputs on this model

在同等实验情况下,参考DeepMF,将用户物品评分矩阵作为输入,在本文模型中的实验结果如表4所示。从表中可以看出,使用评分矩阵作为本文模型的输入相比传统的ID作为输入推荐精度更高,但是与使用隐式反馈数据作为输入相比仍有差距。评分矩阵中存在用户随意评分、热门物品总体评分偏高等现象,使得数据中存在对预测评分有影响的噪声,导致推荐精度不及单纯的隐式反馈。同时也发现评分能明显表明用户的兴趣,因此如何使用隐式反馈数据和注意力机制判断用户对不同物品的喜好程度也是下一步工作的主要内容。

表4 显式反馈数据与隐式反馈数据对本文模型的影响对比Table 4 Comparison of influence of explicit feedback data and implicit feedback data on this model

(3)稀疏性测试

为了进一步验证本文算法在稀疏数据上的稳定性,将数据集按照不同的比例(30%,50%,60%,80%)划分,进行对比实验,结果如表5所示。从表中可以看出,各算法在稀疏数据上的RMSE均比在密集数据上有一定上升。本文算法在应对稀疏问题时有较好的表现,相比于仅使用ID信息的MLP与仅使用隐式反馈数据的DeepCF算法,本文算法在面对数据稀疏问题时能有效利用ID信息,防止因数据稀疏导致的隐式反馈特征减少的困境。两种特征相辅相成,能在提高推荐精度的同时缓解数据稀疏问题。

表5 在ML-100K数据集上不同数据划分对算法的影响Table 5 Influence of different data partitions on algorithms on ML-100K data set

(4)参数敏感性测试

本文通过在隐藏层后添加dropout层,防止模型过拟合。为了验证dropout值对推荐精度的影响,本文将dropout值分为0.2、0.4、0.6、0.8和1.0来验证dropout层对模型过拟合的限制,其中dropout值为1.0时即为不使用dropout层。实验结果如图3所示,从图中可以看出,dropout值为0.8时本文模型的推荐精度最高。分析原因是当dropout值为0.8时,有20%的神经元停止工作,此时对于模型来说能最大化地学习用户与物品的特征,从而最终提高推荐精度。

4 结束语

本文提出的基于多维特征交叉的深度协同过滤算法,将隐式反馈数据视为用户物品的特征,在真实数据集上验证了与传统的ID相比,神经网络可以从隐式反馈中学习到更多的信息;将用户物品潜在向量逐项相乘,相比传统的拼接也更具表达能力。在使用隐式反馈数据的基础上,结合ID信息,通过隐式反馈和ID信息得到两类不同的用户物品交互潜在向量,进一步提高了推荐精度,并缓解了数据稀疏问题。

在实验过程中,本文模型未对各个物品赋予不同的权重,在今后的工作中,将利用注意力机制区分不同物品对用户的影响,进一步提高推荐精度。

猜你喜欢
向量物品神经网络
称物品
基于递归模糊神经网络的风电平滑控制策略
向量的分解
聚焦“向量与三角”创新题
“双十一”,你抢到了想要的物品吗?
神经网络抑制无线通信干扰探究
谁动了凡·高的物品
基于神经网络的中小学生情感分析
基于Q-Learning算法和神经网络的飞艇控制
向量垂直在解析几何中的应用