APP下载

基于注意力机制的耦合协同过滤模型

2021-08-09黄敏齐海涛蒋春林

关键词:权值耦合注意力

黄敏 齐海涛 蒋春林

(1.华南理工大学 软件学院,广东 广州 510006;2.华南理工大学 图书馆,广东 广州 510006)

推荐系统在大数据时代下扮演着举足轻重的角色,在电子商务、检索服务和电子媒体等行业起着至关重要的作用[1]。一个好的推荐系统不仅能给用户带来更好的体验,也能为企业带来更大的流量和利润。在当前广泛使用的推荐系统中,协同过滤(CF)[2]是一种比较流行的推荐系统实现方式,它通过人与项目之间的用户行为来对项目进行过滤,从而达到推荐的目的。

典型的协同过滤方法有3种实现方式:基于用户的协同过滤、基于项目的协同过滤与基于模型的协同过滤。基于用户的协同过滤通常采用矩阵分解(MF)的方式[3],通过用户访问行为或用户属性的相似性来对用户可能感兴趣的资源进行推荐。基于项目的协同过滤通过用户访问行为与项目属性得到项目间的相似程度,并根据用户的历史行为对项目进行推荐,如基于项目的协同过滤方法ItemKNN[4]。上述两种协同过滤方式都是基于人与人及项目与项目之间独立同分布的假设,导致在推荐系统启动初期数据不足,使得推荐效果很差。因此,Do等[5]通过分析人与人或项目与项目之间的显式或隐式的耦合关系进行推荐,提出了耦合协同过滤模型。Zhang等[6]利用卷积神经网络可以提取出数据的局部关联特性的特点,深度提取了用户与项目之间的隐式特征,并结合显式特征组成深度学习网络,解决了用户与项目间独立同分布的缺点,实现了耦合的深度学习协同过滤模型CoupledCF,取得了更好的推荐效果。

近年来出现了许多基于模型的协同过滤模型,这些模型可深层次挖掘用户-项目的特征信息,进一步提升模型的推荐性能。Guo等[7]提出了一种强调低维与高维特征交互的端到端学习的协同过滤模型,称为DeepFM,该模型能够深度学习高维特征与低维特征间的相关性,具有更好的预测性能。He等[8]将基于MF的浅层神经网络与多层感知器神经协同过滤(NCF)相结合,提出了可学习具有隐式反馈的用户-项目交互函数的模型,称为NeuMF。Wang等[9]提出了一种新的推荐系统紧密耦合的等级制度贝叶斯模型,称为协同深度学习(CDL)。

注意力是一种神经生物学概念,是指通过观察将注意力集中在一个物体上。文献[10]利用注意力机制,将理解一个实时视频序列的问题分解为一系列计算上要求较低的视觉、音频和语言分析问题。文献[11]将注意力机制运用在文本编码层之后,提取文本的注意力,取得了很好的推荐效果。文献[12]利用注意力机制构建了基于用户行为的推荐模型DIN,显著提升了模型的推荐效果[13]。为充分挖掘用户属性的关键程度,文献[14]利用注意力机制改进DeepCF模型,实现了基于用户的协同过滤推荐模型DeepUCF+a,优化了推荐效果。

针对协同过滤模型因初期用户行为数据不足而导致的模型启动困难问题,以及未深度挖掘用户及项目属性的关键程度问题,本文将注意力机制引入到基于卷积神经网络的耦合协同过滤模型,提出了基于注意力机制的耦合协同过滤模型,以解除用户与项目间独立同分布的缺点,增强关键属性的参数学习梯度,提高模型的推荐准确率。

1 改进的耦合协同过滤模型

1.1 注意力机制

注意力机制起源于神经生物学,利用了人脑对不同信息接受程度不同这一特点,是一种从大量信息中筛选出高价值信息的有效手段。近年来,注意力机制被广泛的应用在计算机视觉和自然语言处理等领域。实现注意力机制的方式有很多,主要的实现思路是:先提取输入信息的注意力权值,然后将提取到的注意力引入到深层神经元中[12]。设输入注意力层的信息为ain,则注意力权值的计算式可以表示为

A=f(Waain+ba)

(1)

式中:A为注意力权值向量;Wa和ba分别为注意力层对应神经元的权值和偏置值;f( )为非线性激活函数,通常取为Sigmoid函数,以保证注意力权值分布在区间(0,1)内。

通常将注意力权值向量作为解码层输出的权值向量,与解码特征点积即可起到将编码层注意力传输到解码层的效果,这样可以让模型在训练学习中对注意力权值较大的特征或属性起到更大的作用。本文将注意力机制结合到编码层输出上,以便将注意力的影响传入更深层的特征学习中。

在推荐模型中,用户和项目的相关信息及属性,如用户的性别或者年龄、项目的类别等,往往能显式反映出用户和项目的关联及特征;而用户和项目的相关行为,如点赞或评分等,能隐式反映出用户和项目的关联及特征。本文综合考虑显式及隐式的因素,首先在显式反馈网络模型中引入注意力机制,以优化特征学习效果,并提出了一种新的耦合程度计算方法,以避免数值爆炸;然后集成改进的显式反馈模型与隐式反馈模型,得到最终的改进耦合协同过滤模型。

1.2 显式耦合注意力机制网络模型

为提取用户与项目的显式关联及特征,用户和项目的相关属性输入用u和i来表示,而用户对项目的评分行为将构成用户-项目矩阵R,其元素rm,n代表第m个用户对第n个项目的评分。用户与项目的相关信息能表示用户对项目的显式偏好。为了提取每个属性对用户和项目偏好的不同,本文通过引入注意力机制来提取每个属性的影响力。显式耦合注意力机制网络的结构如图1所示。用户u和项目i的注意力权值Au、Ai分别为

(2)

式中,vu、vi分别为用户u和项目i的信息向量,Wu、Wi和bu、bi分别为注意力层对应神经元的权值和偏置值。

图1 基于注意力机制的显式耦合协同过滤模型结构

然后将提取到的注意力权值与嵌入层传输的向量直接做对应元素点积相乘(见式(3)),至此可以将注意力集中在比较高的维度上。

(3)

式中,Au,out和Ai,out分别为用户信息向量和项目信息向量通过注意力层的输出。在融合层,为了计算出用户和项目的耦合关系,通过给定耦合函数gΘ(Au,out,Ai,out)将上述输出转换为耦合信息矩阵Rc,其中Θ代表函数参数,Rc中的元素为

(4)

式中,gi′,j表示对应的注意力层用户向量中第i′个元素Au,out,i′与项目向量中第j个元素Ai,out,j的耦合程度。该公式形式受电路原理中元件间耦合系数计算公式的启发,并且将耦合关系限定在(0,1)区间内,避免了元素相乘过大导致数值爆炸而抑制了对小数值元素学习的问题,同时该式也具有对称性,能保持对相同元素在矩阵对称位置的计算结果也相同,避免了计算上的歧义。

卷积是提取特征常用的手段,本文将耦合信息矩阵Rc通过卷积层提取其特征,以供更深层次的网络对耦合关系的特征进行学习:

hconv=conv(WconvRc+bconv)

(5)

式中,Wconv和bconv分别为卷积层神经元的权值和偏置值,conv为卷积操作,hconv为卷积层的输出,即所需要的耦合信息特征。用户和项目的信息数据经过嵌入层、注意力层、融合层及卷积层之后,能够很好地学习出其中的显式耦合关系及特征。

1.3 隐式反馈DeepCF模型

隐式反馈网络参考DeepCF结构[6],DeepCF通过一个多层感知机从用户的评分等行为提取隐式关系及特征,与NCF[8]相似,其结构如图2所示。其中用户评分信息用独热编码表示,通过独热编码离散信息使其向量化,可以使特征间的距离计算更加合理。由于推荐系统的评分信息类别往往很多,会导致编码后的特征空间过于庞大稀疏,使特征学习过程变得困难,因此本文利用Word2Vec[15]中的方法,将输入信息嵌入到新的特征空间中,记用户信息与项目信息编码分别为ou和oi,嵌入后的向量分别为ru∈Rk和ri∈Rk,k为嵌入空间的纬度。

为了将用户和项目的隐含相关性映射进相同的特征空间中,DeepCF利用一个逐元素乘法运算生成一个线性相关的向量r,则r的计算公式为

图2 DeepCF模型结构

r=ru⊗ri=(ru1ri1,ru2ri2,…,rukrik)

(6)

式中,⊗为逐元素相乘运算,ruk与rik分别为嵌入向量ru与ri的第k个元素。然后在多层感知机向量模型中引入非线性元素,并深度学习出用户和项目的隐含关系,其公式为

(7)

式中,Wn和bn分别为第n(n=1,2,…,L)层感知机的权值和偏置值,RELU( )为常用的激活函数,an为第n层感知机的输出。最后提取到的即为用户和项目的隐式关系及特征。

1.4 显式及隐式集成模型

多模型融合学习的方式有很多,如DS证据理论或者全连接神经网络等[16]。在显式反馈注意力机制模型与隐式反馈DeepCF模型中已经提取出用户和项目的显式特征与隐式特征。为了取得更好的推荐效果,本文将这两种模型通过全连接网络结合起来,其结构如图3所示。首先通过拼接操作,将显式特征hconv和隐式特征aL拼接成用户、项目的耦合向量c,以便输入全连接网络进行学习。然后通过全连接网络进行回归预测,得到最终结果,其过程表示为

(8)

式中,Wfc和bfc分别为全连接层神经元的权值和偏置值,ffc( )为全连接层的激活函数,通常取Sigmoid函数作为激活函数,以将输出结果映射到(0,1)区间中。

为了训练这个模型,采用梯度下降等机器学习领域常用的优化方法进行训练,其中损失函数的计算采用交叉熵损失函数。交叉熵损失函数的特点是将数据非线性地映射到(0,1)区间,并且数值越大概率越大,数值越小概率越小,符合推荐系统的回归概念。损失函数为

图3 基于注意力机制的耦合协同过滤模型结构

(9)

根据式(9)给出损失函数,结合梯度下降算法及各类神经网络优化调参方法对模型进行调优,可以达到提升模型推荐效果的目的。

2 实验结果与分析

2.1 模型评估结果对比

本文采用著名的推荐系统测试数据集——MovieLens数据集[17]进行实验。MovieLens有多个版本,为了更好地验证模型的推荐性能,本文采用MovieLens 1M数据集。MovieLens 1M数据集包含6 040 个用户和3 952部电影的信息,其中评分数据均采用5分制,而且该数据集保证每位用户至少参与20部电影的评分,以保证数据密度能够支持推荐系统的正常运行。数据集的用户信息包括性别、年龄、职业和邮编,电影信息包括电影的种类,这些作为显式模型的输入。将用户对电影的评分信息二值化:用户对项目有评分的,交互数据标记为1;用户对项目未评分的,交互数据标记为0,这些作为隐式模型的输入。

为了检验本文模型的性能,采用基于传统矩阵分解的的BPR模型[18]、基于项目的ItemKNN算法[4]、基于多层感知机的MLP[19]模型、基于深度学习的NeuMF[8]模型、采用注意力机制改进DeepCF模型的DeepUCF+a[14]模型和同样是耦合协同过滤模型的CoupledCF[6]模型进行对比实验。通过将随机抽取的99项负样本连同训练过程中保留的1项正样本构成验证集,来对模型的效果进行检验对比。评价指标采用top-K命中率(HR@K,用于计算测试项是否在topK推荐项列表中)和归一化折损累计增益(NDCG,通过将较高分数指定为顶级排名来计算命中的位置),其计算式如下:

(10)

(11)

式中,#hits为推荐结果在测试集T中的命中次数,pd为处于位置d的推荐结果的相关性,Zk为归一化系数。在实验中K取10,pd∈{0,1},若处于位置d的推荐结果在推荐的条目中,则pd取1,否则取0。

几种模型在MovieLens 1M数据集上的实验结果如表1所示。从表中可以看出:相对于传统的机器学习方法,即ItemKNN模型和BPR模型,其他基于深度学习的模型在两个评价指标上有更好的表现;与单纯学习隐式反馈信息的模型NeuMF相比,基于耦合协同过滤的模型CoupledCF和本文提出的模型显著提升了推荐效果,并且引入了注意力机制的本文模型提升的效果比CoupledCF明显。

表1 几种模型在MovieLens 1M数据集上的实验结果对比

在评价标准上,本文模型相较于传统的ItemKNN模型和BPR模型,在HR@10上提升了约30%,而在NDCG@10上提升了近50%~75%,说明基于深度学习的协同过滤模型,不仅大幅提升了推荐命中率,而且在命中的推荐顺序上更为精确。而对比隐式反馈信息模型NeuMF,本文模型在HR@10和NDCG@10上分别提升了16.39%、30.58%,无疑是因为集成了耦合显式反馈信息,说明显式信息的引入,挖掘出项目与用户之间的耦合关系,对协同过滤模型有着重要的意义。对比同样是结合了注意力机制的改进DeepCF的基于用户的协同过滤模型DeepUCF+a,本文模型在HR@10和NDCG@10上分别提升了17.13%、27.70%,虽然在HR@10上的提升超过了NeuMF,但在NDCG@10上的表现是引入了注意力机制的模型更好,说明注意力机制确实能够深度挖掘用户属性信息,提升了基于用户的协同过滤模型的推荐效果。

对比同样是集成了耦合显式反馈信息的CoupledCF,本文模型在HR@10和NDCG@10上分别提升了3.10%、7.54%,这说明注意力机制确实能帮助协同过滤模型挖掘出用户与项目中各个属性的关键程度,并且由于在NDCG@10上的提升更为明显,说明挖掘出这些关键程度对命中的推荐排序也有更明显的帮助,这样可以让模型在实际工程运用中将有高关联度的结果排在更靠前的位置,使模型更具有泛用价值。

为探寻top-K评价中K值对模型的影响,当K分别取5、10及15时,CoupledCF与本文模型的命中率和NDCG的实验结果如表2所示。从表中可以发现:当K为5和10时,引入注意力机制的本文模型在命中率上会有一些优势,但当K为15时,两个模型的命中率差距不大,甚至本文模型的命中率比CoupledCF稍逊一些,这是因为将注意力机制引入网络后,在一定程度上增加了网络的复杂程度,虽然可以提取各属性的关键程度,但当K值增大后,各属性的关键程度在召回率topK指标上并不是起到非常重要的优化作用,反而使之后的特征学习变得困难;本文模型的NDCG始终优于CoupledCF模型,这说明无论K值怎样变化,对属性关键程度的挖掘,会对推荐目标的排列位置的正确性产生积极的反馈作用,使得模型在实际工程应用中的表现对用户更加友好。

表2 top K中K值对命中率和NDCG的影响

2.2 模型消融结果对比

Book-Crossings[20]是由Cai-Nicolas Ziegler根据Bookcrossing网站的数据编写的图书评分数据集。它包含9万个用户对27万本书的110万个评分,评分值范围为1~10,还包括隐性评分。Book-Crossings数据集是最不密集的数据集之一,也是具有明确评分的最不密集的数据集。本实验采用用户的年龄、国籍和所在城市数据,同时采用图书的作者、出版年份和出版社数据。而对于隐式模型的输入,同样将用户对图书的评分信息二值化:用户对项目有评分的,交互数据标记为1;用户对项目未评分的,交互数据标记为0。此外,由于用户和图书的每类数据的不同条目过多,采用独热编码将会导致输入数据维度过大,因此,本文采用直接数值化的方法将数据输入模型中。

在Book-Crossings数据集上,为了验证注意力机制对模型的提升效果,将本文模型与1.2节中未引入注意力机制的显式反馈网络模型(explictCoupled)、1.3节中的DeepCF模型以及1.2节中引入了注意力机制的显式网络模型(attentionCoupled)进行消融实验对比,HR@10与NDCG@10结果如表3所示。

表3 几种模型在Book-Crossings数据集上的实验结果对比

从表3可以发现,相对于隐式反馈网络DeepCF模型,对于Book-Crossings这种十分稀疏的数据集,显式反馈网络模型在命中率与NDCG上分别提升了13.57%和11.58%,说明耦合协同过滤模型在稀疏数据集上的推荐效果优于传统的非耦合协同过滤模型。而引入了注意力机制的耦合协同过滤模型相对于未引入注意力机制的耦合协同过滤模型,在命中率和NDCG上的提升就没有那么明显,分别提升了2.80%和0.20%,可以忽略不计。这可能是因为引入了注意力机制后,模型对过于稀疏的数据的注意力提取较为困难,且数据中缺失信息较多,对注意力的提取可能产生一定程度上的影响。结合了基于注意力机制的耦合协同过滤模型和DeepCF模型的融合模型,在两个指标上的表现较融合前的模型有明显的提升。相对于隐式反馈DeepCF模型,融合模型在命中率和NDCG上分别提升了26.72%、18.30%。相对于基于注意力机制的耦合协同过滤模型,融合模型在命中率和NDCG上分别提升了8.54%、5.61%。这说明,融合了显式反馈信息和隐式反馈信息的耦合协同过滤模型的推荐效果优于单独的模型。对于推荐模型而言,虽然注意力机制在数据稀疏的情况下对推荐效果提升的影响不大,但融合显式反馈信息和隐式反馈信息是提升模型推荐效果的一种有效手段。

3 结论

本文将深度学习融入协同过滤模型,并结合了卷积神经网络与注意力机制,使得模型在用户和项目的显式关系提取学习上,能够解决模型对用户和项目的不同显式属性的关注程度不同的问题;提出了一种新的耦合程度计算方法,进一步提升了耦合协同过滤模型的推荐效果。实验结果表明,相较于传统的协同过滤模型,引入了卷积神经网络和注意力机制的模型显著提升了推荐效果。但本文模型没有充分考虑到注意力随时间变化而变化的特点,因此如果能将时间性因素融入注意力机制,耦合协同过滤模型在实际应用中的推荐效果会更好。

猜你喜欢

权值耦合注意力
基于增强注意力的耦合协同过滤推荐方法
一种融合时间权值和用户行为序列的电影推荐模型
让注意力“飞”回来
擎动湾区制高点,耦合前海价值圈!
复杂线束在双BCI耦合下的终端响应机理
基于5G MR实现Massive MIMO权值智能寻优的技术方案研究
一种基于互连测试的综合优化算法∗
基于磁耦合的高效水下非接触式通信方法研究
A Beautiful Way Of Looking At Things
财务风险跟踪评价方法初探