综合个人兴趣和平均偏好的矩阵分解推荐算法∗

时间:2023-09-18 15:30:09 来源:网友投稿

张潇艺 高 尚 邹海涛

(江苏科技大学计算机学院 镇江 212003)

当下推荐系统具有广泛的应用方向和极高的商业价值,也是各种前沿研究的重要课题。利用某种推荐算法,可以生成一个根据用户喜好程度高低排序的序列,并根据此序列向用户推荐商品、新闻等内容。常用的基于协同过滤的推荐算法包括了基于相似度的协同过滤算法[1~3]、隐因子模型[4]、图模型[5~6]、深度学习模型[7~8]等。其中,隐因子模型使用矩阵分解算法[4]计算出用户和被推荐物品的隐含因子,并利用隐含因子预测用户评价。矩阵分解具有精度高,速度快的优点,可以满足更为苛刻的客观限制条件。

卢建鹏[9]提出引入时间分段的图模型,考虑到了用户的兴趣衰减。俞骋超[10]使用循环神经网络模型处理用户的历史浏览数据,但是模型的可解释性不足,且模型复杂,训练耗时。Hao Ma,Dengyong Zhou 等[11]提出了在矩阵分解中加入社会化正则项的方法。Hao Ma,Irwin King 等[12]和杨阳等[13]在矩阵分解的基础上引入用户好友的偏好,提升预测结果。但是很多场景下用户的隐性好友关系并非容易获取。

现有的矩阵分解算法利用数据集的信息不全面,难以更好预测用户的喜好。本文尝试在矩阵分解算法中融入用户的兴趣特征影响和商品的公共偏好影响。通过使用一般的矩阵分解方法预分解测试集,得到低精度的用户兴趣特征信息。再融合低精度特征信息并结合商品的公共偏好进一步改进模型,优化矩阵分解结果。在Netflix和Movielens等公共数据集上实验,结果表明此方法可以提升算法的用户评分预测精度和推荐结果的质量。相比于原模型改进明显。

假设数据集为S,S内的每个元素为用户i,物品j,以及i对j的评分rij所组成的三元组(i,j,rij)。其中用户的总数为m,商品的总数为n,那么用户对商品的评分矩阵就为一个m×n的矩阵R。推荐系统的目的就是填补矩阵R中除训练集数据以外的缺失值。

2.1 引入用户兴趣的矩阵分解模型

隐藏因子模型的基本假设认为用户对物品的偏好以及物品本身的特质可以用若干隐藏因子组成的向量表示。矩阵分解算法使用用户对物品评分矩阵的分解向量作为用户和物品的代表向量。基本的矩阵分解方法把用户和商品都映射到一个k维的隐因子向量空间,用户和商品的关系被模型处理为空间中两个向量的内积。其中代表用户i的向量用ui∊Rk表示,代表物品j的向量用vj∊Rk表示。预测的用户i对物品j评分结果r̂ij即为

不妨直接建立随机数值的m×k用户矩阵U和n×k物品矩阵V。最小化损失函数迭代优化两个矩阵的值。

而在隐因子模型的基础上,引入用户兴趣的矩阵分解模型使用训练集SA中用户i的评价子集Si算得此用户的兴趣向量fi,并将这一向量代入到优化求解过程中。兴趣向量fi的表示如下:

为了便于计算,需要归一化兴趣向量。fi,m表示用户i对于属性m的兴趣多寡。

将用户兴趣向量与矩阵分解法结合,得到的新分解模型为

其中α表示二者的权重参数,Fi表示归一化后用户i的兴趣向量。

2.2 原有矩阵分解模型存在的问题

用户兴趣的引入,一定程度上提升了模型的精度,但是增加了算法的复杂度,导致运算耗时增加。原模型也没能很好地结合商品已有的评价信息。实际上大部分物品的评分高低更多还是由商品本身的特质决定。有理由相信,在大众层面上给出的商品评价,个体有较大概率依从或者至少相关。因此算法在速度和精度上,依然存在改进的空间。

本文尝试在计算用户兴趣向量之前,先使用传统矩阵分解算法预分解。朴素矩阵分解算法的时间复杂度低于引入用户兴趣的矩阵分解算法,那么可以在保证一定精度的情况下快速分解矩阵。利用预分解得到的U和V矩阵计算用户的兴趣向量矩阵F,表达式为

F是一个m×k的矩阵,每一行代表一位用户的兴趣特征向量。再对F的每一行归一化以便于下一步计算。此时模型的预测结果表示为

利用预分解的U和V矩阵直接计算用户的兴趣向量矩阵,可以在确保精度的情况下避免一般兴趣分解模型在梯度下降优化的过程中同步优化用户兴趣向量带来的耗时增加,还可以增益最终结果的精度。

同时本文还考虑引入待预测物品的平均偏好[14]Gj作为模型的参数之一。商品的平均偏好即某商品在不少于10 人评分的情况下所有评分的均值,这是为了防止过于稀疏的数据引入额外的误差。商品j的平均偏好Gj表示为

其中,p为商品j评论的总个数。用户的真实评分与物品的平均偏好存在一定的相关性。不妨先计算数据集中物品的平均偏好,并在梯度下降的损失函数中引入它。

再考虑到每个用户在评分时的评分偏好不同。有的用户更容易打高分,而有的用户更容易打低分。本文采用一个权重函数θ,筛选掉与平均偏好差别较大的用户,减少对模型的不利影响。在偏差小于一定阈值γ时权重θ为一个随偏差变小而增大的函数,大于这个阈值γ时则为0。在偏差δ小于一定的阈值γ时,设定权重函数为

此函数的取值范围为[0,1)。

经过改进的预测结果表示为

后文将进一步比较原模型与改进后的模型,并分析实验结果,得出初步结论。

4.1 数据集

本文选择了两个真实数据集实验。其一为Netflix 数据集,这个数据集包含了6040 位用户,3706 部电影以及536828 条用户对电影的评分结果。另一个为MovieLens 数据集,这个数据集包含了6039 位用户,3952 部电影以及1000209 条用户对电影的评分结果。用户评分的范围都为[0,5],其中0 分表示用户最不喜欢,5 分表示用户非常喜欢。每位用户至少对50 条电影作出评价。图1是两个数据集用户评分数分布的情况。

图1 用户评分分布情况图

4.2 测试指标

本文使用平均绝对误差(MAE),标准差(RMSE),归一化折损累计增益[15](nDCG)三个指标衡量算法的预测结果精度。

为了衡量对用户的推荐准确度,本文将位于每位用户评分列表中最新的前20%评分定为测试集。利用剩余较早的80%评分作为训练集,以检验推荐结果的准确性。

MAE 和RMSE是评价预测评分误差的主要指标。推荐结果中,二者的值越小说明预测的误差越小,模型越精确。设测试集为T,那么以上二者的表示为

nDCG则是排序质量的一种测试指标。折损累计增益(DCG)则增加了对荐列表中位置相对靠后增益值的惩罚之后再求和。nDCG是DCG 归一化的结果,用DCG 结果除以理想化排序下的IDCG 结果。nDCG 的值越接近于1,说明推荐的结果越好。假设根据模型预测用户i的推荐列表为r1,…,rh,根据真实评分得到的列表为R1,…,Rh,H为推荐列表的长度,rh、Rh为项目的评分。

本文实验选取的推荐列表长度为10。因为选取的用户至少有50 条评分,因此可以保证单用户测试集的长度大于等于10。

4.3 参数选取

4.3.1 应用预分解的模型参数优化

参数α影响了最终预测结果中一般的分解结果和用户兴趣向量的贡献度比例。参数α在(0,1)之间变化,参数α越大,则说明预测结果中用户兴趣向量的影响越大。在Netflix 数据集上的实验结果(图4)表明,随着当参数α从0开始增加,结果中的MAE,RMSE 逐渐变小,nDCG 逐渐变大,达到一个阈值后,MAE和RMSE开始增加,nDCG回落。在Netflix 数据集上MAE 和RMSE 的阈值为0.6,nDCG的阈值为0.7,本文出于优化排序结果的目的,以nDCG 的最优化参数为准。选择0.7 作为Netflix 数据集上的参数α。MoviesLens 数据集的实验结果如图5 所示。可见MAE,RMSE 以及nDCG 的阈值分别为0.7 和0.8,本实验选取0.8 作为MoviesLens数据集上的参数α。

图4 预分解模型在Netflix上随α 的波动

图5 预分解模型在MovieLens上随α 的波动

4.3.2 兼用应用预分解和平均偏好的混合模型参数优化

如图2 和图3 所示,经过实验验证了某一用户的评分与平均偏好之间的偏差大小,在划分的训练集和测试集中存在一定的相关性和一致性。若偏差很大说明公共偏好对于此用户不具备参考的价值。根据两个数据集上的实验可以得到如图8 和图11 的结果。在两个数据集上权重函数θ的参数γ都应选取为0.8。

图2 Netflix相同用户分别于训练集及测试集中与平均偏好偏差大小的比较

图3 MovieLens相同用户分别于训练集及测试集中与平均偏好偏差大小的比较

图8 混合模型的nDCG在Netflix上随γ 的波动

参数α和β决定不同项目的比重,并影响最终模型的预测结果。根据实验结果可知MAE、RMSE与nDCG 的最优化参数不相等。Netflix 结果如图6、图7,MovieLens 结果如图9、图11。在Netflix 数据集上选取参数α为0.3,参数β为0.2,MovieLens数据集上选取参数α为0.5,参数β为0.1。

图6 混合模型在Netflix上随α 的波动

图7 混合模型的nDCG在Netflix上随β 的波动

图9 混合模型在MovieLens上随α 的波动

图10 混合模型的nDCG在MovieLens上随β 的波动

图11 混合模型的nDCG在MovieLens上随γ 波动

4.4 应用预分解优化的结果与讨论

本文选取标准的矩阵分解算法,以及未优化过的用户兴趣特征分解模型作为对比。

结果如表1 和表2 所示,本文发现在使用了用户兴趣模型后,Netflix 数据集的评分预测精度(MAE 以及RMSE)和用户推荐的质量表现(nDCG)则明显改善。而MovieLens数据集上的结果表现优于应用预分解前,但是均不如朴素的矩阵分解。这一结果可能由数据集本身的特征造成,MovieLens数据集相比RMSE 数据集的评分数更多,单一用户和电影的评分也更密集。因此我们可以发现,同样采用朴素的矩阵分解模型,MovieLens 数据集的表现远优于Netflix 数据集。直接引入用户兴趣特征反而造成结果的损失。而加入预分解的用户兴趣分解模型后,改进模型的数值预测精度和排序质量相比引入了用户兴趣特征的矩阵分解提升显著。

表1 Netflix上预分解模型与其他算法推荐结果的比较

表2 MovieLens上预分解模型与其他算法推荐结果的比较

4.5 混合模型优化后的结果与讨论

结果如表3 和表4 所示,新模型在两个数据集上表现不一。在Netflix数据集上,新模型牺牲了一定的用户评分预测精度(MAE 和NDCG)但是提高了推荐结果的质量(nDCG)。在MovieLens 数据集上,所有指标都有所提升,但是推荐结果的提升幅度相比前一个数据集较小。

表3 在两个数据集上使用混合模型进一步优化后的推荐结果对比

一般可以认为在推荐系统中推荐结果的质量相比于用户评分的预测精度要更为重要。因为根据用户预测评分产生的秩次直接决定了最终的推荐结果和推荐效率。本文实验参数选取偏向于提升nDCG 的结果。通过本次实验可以证明本方法在提升最终推荐结果方面的有效性。

提升推荐系统的表现具有强的现实意义。市场经济下,精准把握潜在消费者的喜好可以创造巨大的商业价值,因而推荐系统会是很长一段时间内研究的重点。本文尝试从Netflix以及MovieLens两个数据集出发,以加入用户兴趣特征的矩阵分解模型为基础,探索提升推荐系统表现的改进模型。实验结果证明本文提出的新方法有效和可靠。

猜你喜欢集上向量矩阵向量的分解新高考·高一数学(2022年3期)2022-04-28聚焦“向量与三角”创新题中学生数理化(高中版.高考数学)(2021年1期)2021-03-19Cookie-Cutter集上的Gibbs测度数学年刊A辑(中文版)(2020年2期)2020-07-25链完备偏序集上广义向量均衡问题解映射的保序性数学物理学报(2019年6期)2020-01-13分形集上的Ostrowski型不等式和Ostrowski-Grüss型不等式井冈山大学学报(自然科学版)(2019年4期)2019-09-09初等行变换与初等列变换并用求逆矩阵中央民族大学学报(自然科学版)(2016年3期)2016-06-27向量垂直在解析几何中的应用高中生学习·高三版(2016年9期)2016-05-14向量五种“变身” 玩转圆锥曲线新高考·高二数学(2015年11期)2015-12-23矩阵南都周刊(2015年4期)2015-09-10矩阵南都周刊(2015年3期)2015-09-10

推荐访问:矩阵 偏好 分解