三通道神经协同过滤算法

2022-03-05 07:51武友新
小型微型计算机系统 2022年3期
关键词:特征向量编码器矩阵

周 超,武友新

(南昌大学 信息工程学院,南昌 330000)

1 引 言

作为一种有效应对信息过载的技术,智能推荐系统在电子商务、音乐推荐、视频推荐等领域有了广泛的应用[1].近年来,得益于深度学习在自然语言处理、图像处理、语音识别和医疗诊断等领域取得的重大进展,越来越多的深度学习技术被应用到推荐系统研究中并得到较好的效果[2,3].先驱们早期的研究工作已经探索了基于隐式反馈的深度学习模型,它们主要使用DNNs网络来建模辅助信息,例如文字描述[4]、音乐的声学特征[5]等,然后由MF与DNN相结合去学习用户和项目的潜在特征向量,此类方法相比于传统的方法能有效提升模型的命中率,但是提升效果有限.

最近的研究越来越多的将深度神经网络应用到用户与项目的交互关系上,希望以此来提高模型的性能.Guo[6]等人提出的DeepFM是一种端到端模型,可无缝集成FM和MLP,它利用深度神经网络将FM的低阶交互关系建模成具有高阶特征的用户与项目的交互关系.Deng[7]等人提出了一种DeepCF模型框架,它将特征学习与匹配函数结合在一起强化了模型的性能.He[8]等人提出了一种NCF模型,NCF模型在矩阵分解算法的基础上使用DNN网络去学习用户与项目之间复杂的交互关系.以上模型均将深度神经网络应用到对用户与项目复杂交互关系的建模上,提高了模型的学习能力,但是由于隐式反馈数据天然带有很强的噪声,所以这些模型的性能表现都受到了限制.

最近将自编码器应用到推荐系统中的研究开始流行起来.Cao[9]等人提出了一种无监督的深度学习方法,该方法使用栈式降噪自编码器从原始的稀疏用户项目交互矩阵中提取有用的低维特征,并与相似度计算算法结合以取得良好的推荐效果.Yosuke[10]等人提出了一种基于协同过滤的推荐算法,该算法利用栈式降噪自编码器来探索不同用户之间的相似性差异,这是因为栈式降噪自编码器中的不同隐含层代表了具有不同抽象等级的用户之间的关系,从而使得推荐比较新颖、多样.

受NCF模型的启发,本文提出了基于三通道的神经协同过滤算法(Three-channels neural collaborative filtering algorithm,TCNCF),它使用自编码器去挖掘用户和项目的隐表示然后结合辅助信息一起去构建用户和项目的潜在特征向量,再然后融合广义矩阵分解模型和多层感知机模型一起对用户和项目建模.它将用户和项目统计学信息的确定性与隐式反馈数据的随机性相结合,提高了模型的泛化能力.面对不易挖掘的负样本,本文将三通道协同过滤算法和负采样算法进行结合,提高了模型的鲁棒性.

2 三通道神经协同过滤算法

2.1 整体框架

三通道神经协同过滤算法融合广义矩阵分解(Generalized Matrix Factorization,GMF)模型、多层感知机(Multi-Layer Perceptron,MLP)模型和辅助信息处理(Auxiliary information processing,AIP)模型一起对用户和项目建模,其模型框架如图1所示.GMF模型将用户项目交互矩阵通过矩阵分解映射到GMF用户特征向量和GMF项目特征向量,然后将用户和项目的特征向量相乘的结果输入到激活函数Sigmoid之后再输出到向量结合层.MLP模型首先将用户和项目的交互矩阵映射到用户和项目的特征向量,然后将MLP用户特征向量和MLP项目特征向量拼接成一个新的向量作为多层感知机的输入,将多层感知机的结果输送到向量结合层.AIP模型首先利用自编码器重构用户和项目的评分向量得到用户和项目的隐表示,再将其与用户和项目的辅助信息对应的辅助信息特征向量结合输入到多层感知机中,最后的结果输入到向量结合层.向量结合层将3个模型输送过来的数据以向量拼接的方式输入到Sigmoid函数中,最后输出用户与项目交互的预测结果.

2.2 广义矩阵分解模型

传统的矩阵分解(Matrix Factorization,MF)算法将评分矩阵分解为两个低维矩阵P和Q,它们分别代表了用户和项目的特征向量矩阵,则评分矩阵R为它们乘积,即:

R=PTQ

(1)

矩阵分解算法的目的就在于求得用户与项目的特征向量矩阵,然后将其相乘得到预测评分矩阵.将用户对项目的预测评分排序,从而为用户推荐预测评分最高的N个项目.广义矩阵分解模型将传统矩阵分解模型一般化,它具有更强的学习和表达能力,其公式如下:

φGMF=aout(hT(pu·qi))

(2)

其中,pu和qi分别代表了用户和项目的特征向量,·代表向量点乘,aout和h分别表示输出层的激活函数和连接权重.如果将aout看成一个恒等函数,h的权重值为1,就得到传统的MF模型.GMF模型可以从数据中学习并且形成MF的变体,它可以表现出特征向量不同维度的重要性的不同.如果用一个非线性函数作为激活函数,将进一步推广MF到非线性空间,使得模型较传统MF模型具有更广阔的搜索空间.在本模型中,它使用Sigmoid函数作为激活函数.

2.3 多层感知机模型

在隐式反馈下,用户与项目之间的交互变得更加复杂.在这种背景下,如何将表征用户和项目之间的交互的函数扩展到非线性空间显得尤为重要.多层感知器的优点是可以从数据中学习非常复杂的非线性表示,因此非常适合用来学习用户与项目之间的交互关系.多层感知器模型,不再简单地使用向量乘积来表达用户与物品之间的复杂交互,而是将向量结合输入到多层感知器中去学习用户和项目的高级交互关系.这样做的好处就是可以利用DNNs强大的学习能力将用户和项目的建模扩展到更复杂的非线性空间.其函数表达式如下:

(3)

其中φMLP代表多层感知机模型预测结果,wi、bi和f分别代表了连接权重、偏置值和激活函数.对于MLP层的激活函数,我们选择Relu函数,使模型不至于过拟合.

2.4 辅助信息处理模型

隐式反馈数据一个很严重的问题在于用户与项目之间的交互矩阵具有很强的噪音.如果仅依靠交互矩阵来建模用户与项目之间的交互关系,可能会导致较大的偏差.众所周知,用户和项目的辅助信息包含很多重要信息,可以从中挖掘出许多反映用户和项目特征的信息.另外,用户和项目的辅助信息具有较高的可靠性,科学的辅助信息处理可以对推荐结果产生积极的影响.例如,用户的人口统计信息可以挖掘用户的偏好,不同年龄、性别和职业的人的偏好可能完全不同.出于相似的原因,项目的辅助信息也可以反映项目的特征信息.因此,我们考虑采用辅助信息处理模型通道来挖掘用户与项目辅助信息特征.

当前,自编码器广泛用于基于深度学习的推荐系统中[11,12].自动编码器具有强大的表示学习能力,可用于学习用户和项目的隐含向量.因此,本文提出了一种基于自动编码器的辅助信息处理模型.首先,我们使用自编码器重构用户和项目的评分向量(用户的评分向量对应的是交互矩阵中的列,项目的评分向量对应的是交互矩阵中的行),从而获得用户和项目的隐含向量,将其与数值化处理后的辅助信息的特征向量结合,然后输入到多层感知器中.该框架如图1所示,具体公式如下:

(4)

(5)

式中φAIP代表AIP模型的预测结果,hu、hi、Au和Ai分别表示用户的隐含向量、项目的隐含向量、用户的特征向量和项目的特征向量.hu和hi是从自编码器中获得的,就是公式(4)中的f(wiRi+b1).

2.5 多通道融合

采用多通道融合的方法对用户和项目建模已经广泛的应用在基于深度学习的推荐系统中.在本模型中,GMF用来学习用户与项目之间的低阶交互关系,MLP用来学习用户与项目之间的高阶交互关系,AIP通过辅助信息来挖掘用户与项目之间潜在的交互关系.为了更好的发挥各个模型的性能,它们之间的融合十分关键.在本模型中多通道融合仍然采用向量结合的方式,具体公式如下:

(6)

式中φGMF、φMLP和φAIP代表GMF、MLP和AIP的输出结果,它们之间的关系靠连接权重h来平衡.σ代表激活函数 Sigmoid.这里将Sigmoid函数作为最后输出结果的激活函数是因为考虑到最后的输出结果的值在0-1之间,可以看作是概率模型,使用Sigmoid函数更合理.

图1 TCNCF模型框架Fig.1 TCNCF model framework

3 优 化

3.1 损失函数

本文的损失函数定义如下:

(7)

式中y代表在交互矩阵Y中值为1的项目,就是用户交互过的项目.y-代表负样本,即用户与项目没有交互记录.我们之所以这样定义损失函数,是因为隐式反馈数据下,模型的输出更像是一个概率预测模型,使用似然函数取对数作为损失函数更合理.模型的训练通过最小化损失函数来完成,这里使用随机梯度下降进行参数训练.

3.2 负采样

隐式反馈数据与显式反馈数据不一样的地方在于,隐式反馈的数据只有用户对项目的交互记录,它并不能反映出用户对项目的真实感受,为了更好的对用户和项目建模,科学的负采样至关重要.传统隐式反馈数据负样本的采集一般采用以下两种方式:1)将所有的未观察到(用户与该项目没有交互记录)的项目视为负样本,然后随机抽样;2)根据项目的流行度来采样,该方法认为流行度越高的项目在用户记录中未观察到则其为负样本的概率越大,然而这样就忽略了用户的个性化,因为对于热门的项目来说,所有没有与之交互的用户都有很高的概率将其视为负样本,这样显然不合理.本文将三通道神经协同过滤算法与Tran[13]等人提出负样本采集方法结合,以此来缓解随机负采样对模型的影响,具体做法如下:首先,假定那些在预测评分排名中评分较低的项目有很高的概率是用户的负样本,然后利用训练好的广义矩阵分解模型得到用户对项目的预测评分,在隐式反馈中它可以看成用户与项目交互的概率,对预测评分由小到大排序,预测评分越小的项目用户与之交互的概率越小,作为用户负样本的概率就越大,其概率计算公式如下:

(8)

式中ru[i]表示项目i在用户u的预测评分排名中的位置,位置越前,为负样本的概率越大,然后按概率选取负样本即可.

4 实 验

4.1 数据集

本文使用MovieLens电影评分公开数据集作为实验数据集[14],使用的是包含百万个评分数据的ML-1M版本,每个用户至少有20个评分记录,相关信息见表1.这是显式反馈数

表1 数据集统计信息Table 1 Statistics of datasets

据集,我们需要将其转换为隐式反馈数据集,做法如下:将用户对项目有过评分的项目标签值记为1,否则记为0,由此来构建用户项目交互矩阵.用户的辅助信息包括职业、年龄和性别,项目的辅助信息为电影的类型.

4.2 评价指标

本次实验使用留一法来评估模型性能表现,将用户最近的一次交互记录作为测试集,其余全部作为训练集.我们在top-k推荐中,为每个用户随机选取100个没有交互过的项目,然后与测试项目一起进行排序去决定top-k推荐项目.本文使用HR(Hit Rate)和NDCG(Normalized Distributed Cumulative Gain,NDCG)这两个常用的排序性能指标来评价模型,HR直观地衡量测试项目是否存在于top-k列表中,而NDCG用来评价排序性能的好坏,其值越高,测试项目位置越靠前,k取值为10,具体公式如下:

(9)

(10)

(11)

其中number-of-hit@k代表测试项目在推荐项目列表前10的用户数量,|u|代表总的用户数量,idealDCG@k代表的是按照相关性等级排序得到的折扣累计增益,r(i)是处于位置i的项目的相关性等级.

4.3 基准线

我们将TCNCF模型与以下算法模型进行比较:

1)NCF,神经协同过滤模型,它将GMF与MLP结合去挖掘用户与项目之间复杂的交互函数.

2)DHA-RS[15],一种改进的神经协同过滤模型,利用自编码器对辅助信息处理,然后联合GMF或MLP对用户项目建模.

3)JRL[16],一种融合多种异构信息的神经协同过滤模型.

4.4 参数设置

本次实验对每个用户按照正负样本1∶4来构建训练集,使用负采样方法按概率选取负样本,通过优化损失函数来更新模型参数.对于一些超参数,我们根据经验设置如下:批次大小设置为[128,256,512,1024],与之对应的预测因子大小为[8,16,32,64],与之相对应的学习率设置为[0.0001,0.0005,0.001,0.005],MLP和AIP隐含层设为3层.MLP各层的结点数按最后一层为预测因子数的一半、前一层为后一层的两倍这样的关系来设置(例如,当预测因子为8时,MLP各层的结点数为32/16/8,相应的嵌入向量的维度为16).AIP自编码器隐含层的维度大小设置为预测因子大小的两倍,辅助信息特征向量维度大小8,AIP多层感知机各层的结点数按前一层为后一层的两倍的关系来设置,则当预测因子维度为8时,AIP感知机各层结点数为48/24/12.

4.5 实验结果与分析

本文将TCNCF模型与其他模型进行对比实验,通过改变预测因子的维度大小来观测模型的性能变化,从而对比不同模型之间的性能表现.图2反映的是各模型HR随着预测因子维度变化而变化的情况.HR@10反映的是各模型的测试项目是否在排名列表前10,将所有测试项目在用户排名列表前10的用户数除上总的用户数,就可以得到HR@10,所以HR@10可以从整体上评价模型的准确度.从图2中我们可以看出,随着预测因子的维度变大,各模型的命中率也跟着上升,其中TCNCF模型相对于其他模型表现更佳.相比于NCF模型,TCNCF模型在命中率上提升了3.48%.

图2 模型在HR@10的结果Fig.2 Results of the model on HR@10

图3反映的是各模型NDCG随着预测因子变化而变化的趋势.NDCG是排序上常用评价指标,它反映的是排序质量的问题.对于本文来说,NDCG反映的是测试项目在推荐列表中排名是否靠前,其值越大越靠前,说明排序质量越高.从图3中可以看出,随着预测因子的增大,各模型的NDCG都呈现上升趋势,并且TCNCF模型较其他模型在排序质量上有明显的提升.相比于NCF模型,TCNCF模型在NDCG上提升了4.56%.

图3 模型在NDCG@10上的结果Fig.3 Results of the model on NDCG@10

图4给出了推荐列表长度k的取值对模型命中率表现的影响.从图4中我们可以看出,随着k值的增大,各模型的命中率逐渐上升且趋于缓和,同时各模型的表现开始逐渐接近.一般而言,我们更关注排名列表前10的项目,即各模型在k取值为10以内的命中率表现,从图4中可以看出,TCNCF模型在k取值小于10内的命中率表现相比与其他模型具有明显的优势.

图4 模型在HR@k的结果Fig.4 Results of the model on HR@k

图5展示了推荐列表长度k的取值对模型排序质量的影响.从图中我们可以看出,随着k值的增大,各模型在NDCG上的性能表现开始趋于稳定且TCNCF模型性能表现相比于其他模型有较为明显的优势.对比图4和图5,我们可以看出,虽然各模型在命中率上表现趋于接近的状态,但是在NDCG上TCNCF模型相比与其他模型有明显的优越性,这说明TCNCF模型的测试项目在排名列表中的位置相对靠前,也就是说TCNCF模型的排序性能相比于其他模型更好.

图5 模型在NDCG@k的结果Fig.5 Results of the model on NDCG@k

表2 消融实验Table 2 Ablation experiment

为了更好的区分辅助信息处理和负采样对模型性能的影响,我们做了一组消融实验,结果如表2所示.表2中NCF+NS代表的是采用基于MF概率负采样的NCF模型,NCF+AIP代表的是融合辅助信息处理的NCF模型.NCF模型采用的是随机负采样方法,NCF+NS实验结果表明采用基于MF概率负采样的方法相比于随机负采样可以提高模型的命中率和排序效果.NCF+AIP实验结果表明融合辅助信息后可以提高模型的效果,它提升的效果比改变负采样的那组要更好,这说明在隐式反馈下,用户和项目的辅助信息可以帮助模型更好的学习用户和项目的交互关系.TCNCF模型融合三通道神经协同过滤算法以及负采样方法,在HR@10和NDCG@10取得了最佳表现.

5 结束语

针对隐式反馈数据带有天噪音不利于模型学习的问题,本文提出了TCNCF模型,该模型采用自编码器对辅助信息进行处理然后与传统的NCF模型融合,提高了模型的泛化能力.面对不易挖掘的负样本,该模型采用了一种基于矩阵分解的按概率负采样方法,以此来提高模型的鲁棒性.本文通过多组实验,验证了三通道神经协同过滤算法的有效性,与其他基准模型相比,TCNCF模型的命中率和排序性能明显提升,特别是相比于传统的NCF模型,TCNCF在HR@10和NDCG@10上分别提升了3.48%和4.56%.在今后的工作中,将考虑将时间权重融合到模型中,以此来缓解用户兴趣迁移的问题,提升推荐性能.

猜你喜欢
特征向量编码器矩阵
基于ResNet18特征编码器的水稻病虫害图像描述生成
高中数学特征值和特征向量解题策略
三个高阶微分方程的解法研究
多项式理论在矩阵求逆中的应用
基于TMS320F28335的绝对式光电编码器驱动设计
氨基酸序列特征向量提取方法的探讨
矩阵
矩阵
矩阵
矩阵方法求一类数列的通项