基于用户-项目交叉注意力机制的迁移推荐模型
2022-01-28单荣杰马文明祁明明
单荣杰 马文明 祁明明
(烟台大学计算机与控制工程学院 山东 烟台 264005)
0 引 言
互联网自诞生以来,便在逐步地发展成熟,尤其是随着通信技术的发展,各种移动终端设备能够更加方便地接入互联网。互联网技术的发展使得网络节点中的信息数据也在不断地增长,给用户带来了丰富的信息,用户可以便捷地获取到海量的知识数据。但信息数据的指数级增长引发了信息过载的问题,大量的冗余信息使用户难以在有限的时间内获取到有效信息。搜索引擎的出现使用户可以在数据增长的早期通过关键字、模糊查询等算法搜索,缓解了信息过载的问题。自进入大数据时代,数据引擎搜索技术越发乏力,由于各种冗余信息的存在,当用户需求不明确时,便无法满足用户的需求,信息搜寻效率下降。因此针对现存在的问题,个性化的推荐系统应运而生,成为了缓解数据过载问题的有效方法[1]。
推荐系统不需要用户提供明确的需求信息,而是通过各种推荐算法以现有的用户数据进行分析,为用户进行兴趣建模,主动推荐与用户兴趣相似的信息内容,引导用户发现兴趣点[2]。个性化的推荐需要依赖用户行为信息,当信息不充分时,算法容易存在较大误差,不能够充分分析用户的兴趣,理解用户的需求,因而产生的推荐质量不高,数据稀疏性是推荐系统面临的一大挑战。
在实际推荐系统的运用中,虽然目标域内的数据比较稀疏,但其相关联的域内数据记录比较多[3],例如,在某商城中,买图书的人是少数,其评价记录也较少,但购买电影票的记录相对较多,评分记录较为稠密。用户如果喜欢某一类的电影,也可能会喜欢同一类型的图书,因此,可以利用用户对电影的评分模式去预测用户对图书的评分,进而挖掘用户的偏好为用户推荐,属于跨领域推荐的一种典型类型。研究跨领域推荐的问题,主要目的是挖掘数据记录较为稠密的源域中的信息,为目标域的评分预测提供辅助,提高准确性。
根据目标域数据与源域数据的重叠关系,跨领域的问题可以分为用户和物品均没有重叠、用户有重叠、物品有重叠、用户以及物品均有重叠四种类型[4],源域中的数据密度高于目标域的数据密度,通过使用源域中的信息,提升推荐系统在目标域的中的推荐质量,这种推荐称为跨领域推荐。
通过使用跨领域推荐的方法,可以有效缓解数据稀疏性对评分预测的准确度的影响[5]。迁移学习方法是利用在源域内学到的权重知识应用到目标域的推荐中,共享了潜在的评分模式[6]。本文提出的基于用户-项目交叉注意力机制的迁移推荐模型(T-UIA),在目标域数据稀疏,而其相关源域数据较为稠密的条件下,利用神经网络的非线性、多输入、自学习数据等特点进行训练学习,同时结合注意力机制挖掘源域潜在的评分模式,用以初始化目标域神经网络模型,进而提高评分预测的准确度。
1 相关工作
在推荐系统的研究中,评分记录数据的稀疏、用户以及物品的冷启动一直是被关注的问题。在一些传统的推荐算法中,Lee等[7]提出了非负矩阵分解方法NMF(Nonnegative Matrix Factor),以矩阵分解在非负约束条件下寻找潜在的数据特征,预测用户对未知物品的兴趣喜好进行推荐。文献[8]使用基于概率矩阵分解的算法将评分矩阵分解为用户和物品的潜在特征矩阵,不受非负条件的约束,将两个分解后的矩阵还原为评分矩阵形式,填充空白记录。矩阵分解相关方法很大程度上受限于数据的稀疏性,过于稀疏会导致算法误差大,数据填充质量低,进而影响推荐的整体效果。因此,利用其他领域的数据作为辅助数据集,共享其中潜在的评分特征以及模式为填充目标域提供依据是解决此问题的突破点。
跨领域的推荐在一定程度上缓解了目标域数据稀疏性的问题。文献[9]利用跨领域的方法改善冷启动的问题,表明跨领域数据的利用对提升推荐质量有贡献。文献[10]在推荐中融入了多种媒体文本信息,将用户的兴趣进行跨领域的迁移,解决目标域内数据稀疏性的问题,表明对于跨领域的数据记录信息,会对目标域的推荐产生正影响作用,提高推荐质量,也会对推荐产生负影响,降低推荐的质量,因此处理源域中的数据是关键问题。
在跨领域模型推荐算法中,利用领域间潜在的结构作为连接桥梁,也可以实现迁移的效果[11]。文献[12]提出了利用密码本迁移协同过滤的经典模型CBT(CodeBook Transfer),该模型利用正交非负矩阵分解算法抽取用户对于物品的评分模式,如式(1)所示。
(1)
式中:O为最优函数;Xt为评分特征矩阵;U、V分别为分解后的用户与物品潜在特征矩阵;S为评分矩阵。
CBT模型从辅助域中学习稠密数据的聚类层次用户评分模式,该评分模式矩阵被称为“密码本”,然后将密码本迁移到目标域内进行填充,预测未有评分记录的物品的评分。
NeuMF模型由He等[13]提出,该模型解决了矩阵分解算法中因大量的潜在因子对算法的不利影响,尤其是提高了在稀疏数据下的泛化能力。该模型通过深度神经网络的方法,将GMF模型与MLP模型结合使用,从稀疏数据中学习,提高了泛化能力。
2 评分预测模型构建
2.1 交叉注意模型
基于NeuMF模型原理,本文首先提出了交叉注意模型UIA(User Item Attention),结合注意力机制学习用户、物品以及评分之间更为复杂的潜在关系[14]。注意力机制在图像处理、语音识别以及自然语言理解等深度学习方面有着广泛的应用[15]。注意力机制在全局范围内寻找重点信息,对于关键性的信息赋予较高权重,形成“注意”。例如,用户对不同类型的电影关注程度是有差别的,喜欢爱情、浪漫类别的电影对恐怖、悬疑类别的关注表现为较少关注,如果以全局评分分析赋以相同权重有不合理之处。使用注意力机制能够对不同表现进行权重合理化分配,从而提升评分预测的准确度[16]。
如图1所示,UIA模型由Interest_Factor和CoA_Factor两部分组成,其中:Interest_Factor可以处理潜在的评分特征,CoA_Factor使用注意力机制学习评分关系,可以合理地调整权重。
图1 UIA模型框架图
Interest_Factor使用点乘方式处理特征之间的交互,定义如下:
G=ui⊙vi
(2)
式中:ui及vi分别表示用户向量、物品向量;“⊙”表示矩阵点乘。
模型中Interest_Factor能够通过潜在特征因子点乘的形式学习到Emdedding向量数据的一些潜在特征,但其在处理高稀疏数据时仍存着很大的不足,将Interest_Factor与注意力神经网络结合,能够在数据稀疏时更好地学习潜在特征关系。
在机器学习中Embedding 技术有着广泛的应用,能够将实体对象表示为连续的向量,实现了输入的高维稀疏向量转换为低维稠密的表示形式,易于进行处理学习[17-18]。由于每个用户ID及物品ID都是唯一的,模型将每个用户ID及物品ID以Embedding表示,将ID映射为向量化的输入。
CoA_Factor使用了注意力机制的原理,对权重进行合理分配。将用户的ID使用Embedding方法处理,用User-Embedding表示用户的ID序号,同样可以将物品ID用Item-Embedding表示,首先将Item-Embedding形成三个相同的副本,记为q1、k1、m1,将User-Embedding同样形成三份副本,记为q2、k2、m2,然后通过将Item-Embedding与User-Embedding交叉点乘的方式得到a11、a12、a21、a22。
a11=k1⊙q1a12=k2⊙q1a21=k1⊙q2a22=k2⊙q2
(3)
式中:“⊙”表示矩阵点乘,User-Embedding与Item-Embedding的交叉点乘,使得具有相关性的向量能够获得较大的乘积,而不相关的则表现为较小乘积,突出相关联的关系。
对于Attention Net的定义如下:
M1=A11⊙m1+A12⊙m2
M2=A21⊙m1+A22⊙m2
(4)
Attention Net层使用softmax函数将a11、a12同时计算,在计算后将结果按原维度拆分得到A11、A12,以相同的方式计算得到A21、A22,将A11、A12、A21、A22与m1、m2点乘以及加和的方式得到M1、M2。
经过以上处理,可以分别计算得到Interest_Factor和CoA_Factor的处理结果。结合深度学习技术,将Interest_Factor与CoA_Factor进行拼合,输入到深度神经网络层中,进一步处理。
深度神经网络从整体上划分,可以将第一层划分为输入层,最后一层划分为输出层,中间的网络层划分为隐藏层。隐藏层可以由一到多层组成,同时每一层可设置不同的神经元个数,是最复杂的一部分。隐藏层的连接方式可以是全连接方式,也可以使用Dropout技术使得神经元之间部分连接,结合激活函数有着强大表达能力。
深度神经网络定义如下:
⋮
(5)
式中:G代表Interest_Factor部分的处理结果;N代表CoA_Factor部分的处理结果。将G与N首先进行拼合的操作,然后作为神经网络的输入层,使用梯度下降优化处理。
神经网络具有非线性学习的能力,每一层的激活函数可以选择sigmoid、tanh以及ReLU等函数[19],本文选择ReLU函数主要原因在于sigmoid函数将输出值限定在(0,1)范围内,容易出现梯度消失以及梯度爆炸的情况且计算耗时收敛速度变慢,而对于tanh激活函数,计算速度相较sigmoid函数有所提升,但是仍然没有解决梯度消失的问题。
ReLU激活函数解决一部分梯度消失问题,计算较为简单,收敛速度较快[20],适合于较为稀疏的数据,激活部分神经单元,增加了稀疏性,因此不容易出现过拟合的问题,已经被证明是非饱和的,得到了广泛的使用。定义如下:
(6)
在实验中使用了均方误差(MSE)作为损失函数,其定义如下:
(7)
实验中采用了Adam迭代更新优化算法,相比随机梯度下降算法,该算法能够自适应更新学习率参数,需要更少的超参数,学习率初始设置为0.005。
2.2 T-UIA模型的迁移
源域内数据较为稠密,目标域内的数据较为稀疏,将模型在源域内进行训练学习,并保存神经网络权重参数信息,迁移到目标领域,在目标域训练前加载,初始化目标域神经网络模型。T-UIA模型框架如图2所示。
图2 T-UIA模型框架图
迁移时需要保证目标域与源域的神经网络结构相同,将全连接层的权重参数共享。在初始化目标域的神经网络后,读取目标域的数据进行训练,与随机初始化的神经网络相比,使用迁移方式初始化的模型,梯度优化时,Loss有着更快的下降速度。迁移算法如算法1所示。
算法1模型迁移算法
输入:用户u,物品v,评分r。
输出:用户u对物品v的评分误差。
Step1使用源域数据训练神经网络模型,设置较小的迭代次数。
Step2将源域模型参数保存。
Step3加载模型参数,初始化目标域神经网络模型,将全连接层参数进行初始化。
Step4使用目标域中的训练集数据,完成在目标域内的神经网络模型训练。
Step5预测用户评分,计算误差。
Step6改变源域训练的迭代次数,重复Step 1-Step 5,得到最优训练次数。
Step7输出评分误差。
通过将源域权重迁移到目标域中,能够对目标域的预测产生影响,但过度的迁移存在着负影响,使得神经网络模型在目标域内存在较大误差,控制适度的训练是迁移的关键。
3 实 验
本实验采用的编程语言为Python3.6,深度学习框架为Keras+Tensorflows1.14,操作系统为Windows 7,主频3.20 GHz,内存8 GB。
实验所用的数据来自UCI的MovieLens数据记录[21]。该数据集中每个用户至少对20个不同的影片有评分记录,其中MovieLens100k数据集包含943名用户以及1 682部电影,共计100 000条记录。
实验中首先将数据集分为源域数据(Source)和目标域数据(Target),本实验选择用户ID小于800、电影ID小于500的范围作为源域,其余数据作为目标域,并限制源域与目标域的数据中用户和物品记录均不存在重叠,将目标域数据按比例随机选取进行实验验证。
3.1 评测指标
本文采用了常用的评分预测评价指标:均方根误差(RMSE)与平均绝对误差(MSE)。
平均绝对误差定义为:
(8)
均方根误差定义为:
(9)
3.2 基准方法
为了对比验证模型的效果,本文采用的基准方法如下:
MF:传统矩阵分解方法,将稀疏的用户评分矩阵分解为两个矩阵,以相乘的形式填充还原为原矩阵维度,以特征向量的形式学习潜在评分模式。
GMF:广义的矩阵分解,将用户和物品使用Embedding向量化表示,以点乘的方式学习内在关系,使用梯度下降迭代训练[13]。
NeuMF:结合GMF与MLP的神经网络矩阵分解模型,使用梯度下降的方式获得最优解[13]。
UIA:本文提出的未经迁移的用户-项目交叉注意模型,使用注意力机制减小预测误差。
T-NeuMF:将源域全连接层进行参数迁移的NeuMF模型,即目标域与源域参数共享。
T-UIA:本文提出的基于用户-项目交叉注意力机制的迁移推荐模型,通过将在源域数据学习到的参数迁移到目标域神经网络进行评分预测。
3.3 实验结果
实验时在目标域内随机选取不同比例的数据,每个算法模型在该比例下进行5次实验,取均值作为当前选取比例下的实验结果,目标域数据集的训练集与测试集比例为7∶3。在数据比例过小时,实验中采用的对比算法波动较大,因此实验使用了15%作为起始比例。
从表1中数据可以发现,在使用迁移的方式后,NeuMF以及UIA的迁移模型均相比于未迁移的模型在均方根误差的指标上有更好的表现。选取比例在20%以下时,由于数据记录数稀疏,非迁移模型表现出了较大误差。而迁移的模型由于使用了在源域中学习的参数,并未因目标域的数据记录的稀疏在结果上表现较大波动。
表1 不同方法在数据集上的RMSE结果
当数据选取比例在20%时,T-UIA模型相比于未迁移时均方根误差降低了10.9%。实验数据选取的比例在30%时,迁移模型误差值最小,之后随着目标域数据量的增加,迁移的效果表现有所下降,此时模型总体的表现更趋向于在目标域的训练,过度地使用源域数据训练会对模型产生负影响。
从表2中的数据可以发现,在不同的选取比例下,迁移后的NeuMF以及UIA模型在平均绝对误差的指标上要优于未进行迁移的模型。当数据选取20%时,迁移的算法模型表现更为稳定,相较于其他算法,MAE及RMSE指标值最小。
表2 不同方法在数据集上的MAE结果
结合表1和表2的结果数据可以发现,使用迁移对于目标域的评分预测有降低误差的作用,同时本文提出的T-UIA算法模型比NeuMF算法模型的迁移效果更好,能够对潜在评分模式特征更好地应用迁移,预测实际评分。
迁移后的算法模型在Loss上具有更快的下降速度,UIA算法模型在训练集相比NCF模型有更快的Loss下降表现。如图3所示,当实验设置迭代次数为20时,Loss下降不再出现较大变化。
图3 目标域Train的Loss曲线图
3.4 模型探索
实验通过改变Embedding超参数的设置以及神经网络层深度,探究了对模型性能的影响。根据图4的结果可以看出,随着Embedding超参数选择的增大,RMSE结果是表现为逐渐下降,设置超参数为40时,RMSE数值为1.076,高于40时基本趋于稳定,不再有较大幅度的下降,在1.075附近波动。
图4 Emdedding对模型的影响
全连接层深度对实验的影响结果如图5所示,深度为2层时,实验结果较好,随着深度的增加,RMSE结果有升高的趋势。
图5 模型深度的影响
通过改变全连接层神经元的个数,比较单层神经网络神经元个数对实验的影响,从图6中可以看出,当神经元个数设置为10时,模型并不能充分学习到数据的信息,结果输出存在较大误差,误差为1.119。随着神经元数目的增多,RMSE结果开始下降,最低为1.065,并趋于平稳,但过多的神经元也会对实验结果产生不利影响,当神经元数目设置为90及100时,误差呈现上升的趋势。
图6 模型神经元个数的影响
模型多个超参数的联合确定,在目标域训练集中划分20%的数据作为验证集,通过使用网格参数搜索的方法进行模型运行实验,可以得到在每个超参数设置下的表现情况。在实验中确定的超参数范围,Embedding大小参数搜索区域为[10,20,30,40,50,60,70,80,90,100],全连接层神经网络深度搜索区域为[1,2,3,4,5,6,7],单层神经元搜索区域为[10,20,30,40,50,60,70,80,90,100],使用目标域验证集运行实验,输出在验证集上的误差,得到在验证集上每组组合下的运行结果,选取均方根误差最小的组合作为最优参数。
4 结 语
本文提出了基于用户-项目交叉注意力机制的迁移推荐模型,模型通过使用交叉注意机制的方式学习源域数据中用户、物品以及评分间的潜在特征信息,将学习到的知识应用到目标域中辅助推荐,在不同的数据比例上验证了其效果,能够缓解数据稀疏的不利影响。
推荐系统的评分预测可以将物品以评分作为依据进行排序,将评分高的物品推荐给用户,预测用户的兴趣,减少用户的搜寻时间并提高了交易量。下一步的研究着重于模型的优化问题,并结合多方面属性信息逐步将模型成熟化以适应不同的数据环境,以期应用于实际工程项目中。