CN111125620B - 推荐系统中基于矩阵分解的并行随机梯度下降方法 - Google Patents

推荐系统中基于矩阵分解的并行随机梯度下降方法 Download PDF

Info

Publication number
CN111125620B
CN111125620B CN201911061727.XA CN201911061727A CN111125620B CN 111125620 B CN111125620 B CN 111125620B CN 201911061727 A CN201911061727 A CN 201911061727A CN 111125620 B CN111125620 B CN 111125620B
Authority
CN
China
Prior art keywords
parameter vector
data
parallel
user
updating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911061727.XA
Other languages
English (en)
Other versions
CN111125620A (zh
Inventor
顾宁
龚志霖
李东胜
卢暾
张鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN201911061727.XA priority Critical patent/CN111125620B/zh
Publication of CN111125620A publication Critical patent/CN111125620A/zh
Application granted granted Critical
Publication of CN111125620B publication Critical patent/CN111125620B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明属于推荐技术领域,具体为推荐系统中基于矩阵分解的并行随机梯度下降方法。本发明根据用户历史评分数据对未评分数据进行预测,采用混合交替更新的方式使其在高度并行的情况下依然保持良好的准确性;通过递归地将评分矩阵分成2×2的子矩阵,先并行处理左上角和右下角子矩阵,再并行处理右上角和左下角的子矩阵,避免了训练数据导致的参数向量依赖问题;在更新过程中固定一个参数向量求解另一个参数向量,解除了计算时的参数向量之间的依赖关系,降低了并行造成的精度损失。本发明通过引入混合交替更新的方式,解决了并行随机梯度下降算法在矩阵分解场景下参数向量更新时依赖的问题,并具有良好的准确性和扩展性。

Description

推荐系统中基于矩阵分解的并行随机梯度下降方法
技术领域
本发明属于推荐技术领域,具体涉及推荐系统中基于矩阵分解的并行随机梯度下降方法。
背景技术
随机梯度下降算法是求解机器学习模型时常用的优化算法。随机梯度下降算法在更新过程中的序列依赖问题使得该算法的并行化变得困难。矩阵分解是网络推荐系统中的一种评分预测方法,该方法将用户对物品的评分数据构造成评分矩阵,评分矩阵的行数与用户数目相等,评分矩阵的列数与物品数目相等。评分矩阵被拆分成用户参数向量和物品参数向量,用户参数向量P的行数与评分矩阵的行数相等,物品参数向量Q的列数与评分矩阵的列数相等,用户参数向量P的列数与物品参数向量Q的行数相等。通过将训练后的用户参数向量与物品参数向量相乘,使评分矩阵的缺失值得到补全。在处理矩阵分解任务时,由于用户参数向量与物品参数向量之间存在依赖关系,并行随机梯度下降算法在并行度增大时,准确性的损失也相应增大。
解决用户参数向量与物品参数向量在更新过程中的依赖关系,是提升并行随机梯度下降算法扩展性的重要因素。FPSGD算法是一种经典的并行随机梯度下降算法,该算法将评分矩阵分成T×T的数据块,T的取值大于分配的线程数目,在算法开始时每个线程处理对角线上的数据块,当有线程完成了更新任务时,通过调度器为该线程分配与正在处理的数据块行列无依赖的数据块,以此避免用户参数向量与物品参数向量的依赖。FPSGD算法是并行随机梯度下降算法中的杰出算法,但由于FPSGD算法在为数据块标记状态时需要使用全局锁,因此当数据块的数量增多时,FPSGD算法的性能将大大降低,FPSGD算法的扩展性较低。HOGWILD!算法是最先提出采用无锁方式更新的并行随机梯度下降算法,更新过程中每个线程同时处理分配到的数据,避免了全局锁带来的限制。但HOGWILD!算法没有考虑用户参数向量和物品参数向量之间的依赖问题,导致并行度的增大会降低准确性。
因此,需要一种可扩展的并行随机梯度下降算法,在不损失准确性的前提下解决参数更新的依赖问题。
发明内容
本发明的目的在于提供一种能够不依赖于用户参数向量和物品参数向量,并能依然保持良好的准确性和收敛性的推荐系统中基于矩阵分解的并行随机梯度下降方法。
本发明提供的推荐系统中基于矩阵分解的并行随机梯度下降方法,采用混合交替更新的方式,解决了更新过程中用户参数向量和物品参数向量的依赖问题,并使得在高并行度的场景下依然保持良好的准确性和收敛性;同时根据用户历史评分数据对用户未评分数据进行预测,具体步骤包括:
(1)交替更新行列不冲突的数据块
步骤一,首先将评分数据划分为训练集和测试集,训练集用于训练模型,测试集用于评估模型的性能。
步骤二,训练集数据用于构造评分矩阵,评分矩阵包含A×B个数据块,每个数据块将由一个并行单元进行模型训练。
步骤三,用随机数初始化用户参数向量P和物品参数向量Q,用户参数向量P的行数与评分矩阵的行数相等,物品参数向量Q的列数与评分矩阵的列数相等,用户参数向量P的列数与物品参数向量Q的行数相等。
步骤四,进行并行迭代计算。
在每轮迭代中,将评分矩阵递归地划分为2×2的子矩阵,每个子矩阵包含若干数据块;子矩阵交给并行单元处理,先并行地处理左上角和右下角的子矩阵,完成后再并行地处理右上角和左下角的子矩阵,直至子矩阵的大小缩小到一个数据块;将数据块分配给并行单元处理,每个并行单元处理的数据块所在行列都不依赖。这种数据块分配策略解决了训练数据导致的用户参数向量与物品参数向量依赖问题,提供了一种无锁的调度方案。
(2)交替更新用户参数向量和物品参数向量
在每轮迭代中,多个并行单元进行并行计算;当评分矩阵递归到一个数据块单元时,由并行单元使用该数据块对用户参数向量P和物品参数向量Q进行独立更新。
在更新参数向量时,将用户参数向量P和物品参数向量Q独立更新,具体步骤为:
步骤1,固定物品参数向量Q,更新用户参数向量P:
Puk=Puk+η*((Rui-Pu TQi)Qik-λPuk)
步骤2,固定用户参数向量P,更新物品参数向量Q:
Qik=Qik+η*((Rui-Pu TQi)Puk-λQik)
其中,Pu为第u行参数向量P,Qi为第i行参数向量Q,Puk为参数向量P在第u行第k列的值,Qik为参数向量在第i行第k列的值,η为学习率,λ为正则化系数,Rui表示用户u对物品i的真实评分。η、λ均为超参数,对于不同数据集调整η、λ,使均方根误差RMSE尽量小。
(3)在每轮迭代完成后,计算训练误差和测试误差。由更新后的用户参数向量P和物品参数向量Q相乘得到预测评分数据,预测评分数据与训练集数据之间的误差为训练误差,预测评分数据与测试集数据之间的误差为测试误差。使用均方根误差RMSE计算训练误差和测试误差,均方根误差RMSE定义如下:
Figure GDA0004078736220000031
其中R为评分矩阵,n为评分数量,ru,i为原始评分值,
Figure GDA0004078736220000032
为预测评分值。
本发明根据用户历史评分数据对用户未评分数据进行预测,采用混合交替更新的方式使其在高度并行的情况下依然保持良好的准确性;通过递归地将评分矩阵分成2×2的子矩阵,先并行处理左上角和右下角子矩阵,再并行处理右上角和左下角的子矩阵,避免了训练数据导致的参数向量依赖问题;计算过程借鉴交替最小二乘算法思想,在更新过程中固定一个参数向量求解另一个参数向量,解除了并行随机梯度下降算法求解矩阵分解问题时的参数向量之间的依赖关系,降低了并行造成的精度损失。本发明通过引入混合交替更新的方式,解决了并行随机梯度下降算法在矩阵分解场景下参数向量更新时依赖的问题,并具有良好的准确性和扩展性。
附图说明
图1为本发明与HogWild!算法的准确性对比图。
图2为本发明与HogWild!算法的扩展性对比图。
图3为本发明的算法详细流程图示。
图4为数据块对用户参数向量P和物品参数向量Q进行独立更新的示意图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步说明。
本发明提供的推荐系统中基于矩阵分解的并行随机梯度下降方法,其流程如图3所示,具体步骤如下:
(1)首先将评分数据划分为训练集和测试集,训练集用于训练模型,测试集用于评估模型的性能。
(2)训练集数据用于构造评分矩阵,评分矩阵包含A×B个数据块,每个数据块将由一个并行单元进行模型训练。
(3)用随机数初始化用户参数向量P和物品参数向量Q,用户参数向量P的行数与评分矩阵的行数相等,物品参数向量Q的列数与评分矩阵的列数相等,用户参数向量P的列数与物品参数向量Q的行数相等。
(4)进行并行迭代计算。
在每轮迭代中,将评分矩阵递归地划分为2×2的子矩阵,每个子矩阵包含若干数据块;先并行地处理左上角和右下角的子矩阵,完成后再并行地处理右上角和左下角的子矩阵,直至子矩阵的大小缩小到一个数据块;将数据块分配给并行单元处理,每个并行单元处理的数据块所在行列都不依赖。这种数据块分配策略解决了训练数据导致的用户参数向量与物品参数向量依赖问题,提供了一种无锁的调度方案。
并行单元处理一个数据块时,使用该数据块对用户参数向量P和物品参数向量Q进行独立更新。如图4所示,在更新参数向量过程中,用户参数向量P和物品参数向量Q的更新相互独立,解除了计算过程中用户参数向量与物品参数向量之间的依赖,更新的具体步骤为:
步骤一,固定物品参数向量Q,更新用户参数向量P:
Puk=Puk+η*((Rui-Pu TQi)Qik-λPuk)
步骤二,固定用户参数向量P,更新物品参数向量Q:
Qik=Qik+η*((Rui-Pu TQi)Puk-λQik)
其中,Pu为第u行参数向量P,Qi为第i行参数向量Q,Puk为参数向量P在第u行第k列的值,Qik为参数向量在第i行第k列的值,η为学习率,λ为正则化系数,Rui表示用户u对物品i的真实评分。η、λ均为超参数,对于不同数据集调整η、λ,使均方根误差RMSE尽量小。
在每轮迭代完成后,计算训练误差和测试误差。由更新后的用户参数向量P和物品参数向量Q相乘得到预测评分数据,预测评分数据与训练集数据之间的误差为训练误差,预测评分数据与测试集数据之间的误差为测试误差。使用均方根误差RMSE计算训练误差和测试误差,均方根误差RMSE定义如下:
Figure GDA0004078736220000041
其中,R为评分矩阵,n为评分数,ru,i为原始评分值,
Figure GDA0004078736220000042
为预测评分值。
使用MovieLens 1M数据集,将本发明提出的ALSPSGD并行随机梯度下降算法与论文“HOGWILD!:A Lock-Free Approach to Parallelizing Stochastic GradientDescent”提出的HOGWILD!算法进行准确性和扩展性方面的比较。实验使用的测试误差是均方根误差,均方根误差越小,说明算法的准确性越好。实验使用线程来改变并行度,随线程数目增加,测试均方根误差增幅越小,说明算法的扩展性越好。
图1为准确性对比,横坐标是训练时间,以秒为单位,纵坐标是测试误差。如图所示,随训练时间的变化,ALSPSGD算法比HOGWILD!算法收敛速度更快,且最终的测试误差更小。说明本发明提出的并行随机梯度下降算法ALSPSGD具有更好的准确性和收敛性。
图2为扩展性对比,横坐标为线程数目,纵坐标为测试误差。从实验结果可得,HOGWILD!算法随线程数增多,测试误差呈上升趋势,而ALSPSGD算法在并行度增大的情况下测试误差保持稳定。说明本发明提出的并行随机梯度下降算法ALSPSGD具有良好的扩展性。

Claims (2)

1.一种推荐系统中基于矩阵分解的并行随机梯度下降方法,其特征在于,采用混合交替更新的方式,解决了更新过程中用户参数向量和物品参数向量的依赖问题,并使得在高并行度的场景下依然保持良好的准确性和收敛性;同时根据用户历史评分数据对用户未评分数据进行预测,具体步骤包括:
(1)交替更新行列不冲突的数据块;
步骤一,首先将评分数据划分为训练集和测试集,训练集用于训练模型,测试集用于评估模型的性能;
步骤二,训练集数据用于构造评分矩阵,评分矩阵包含A×B个数据块,每个数据块将由一个并行单元进行模型训练;
步骤三,用随机数初始化用户参数向量P和物品参数向量Q,用户参数向量P的行数与评分矩阵的行数相等,物品参数向量Q的列数与评分矩阵的列数相等,用户参数向量P的列数与物品参数向量Q的行数相等;
步骤四,进行并行迭代计算;
在每轮迭代中,将评分矩阵递归地划分为2×2的子矩阵,每个子矩阵包含若干数据块;子矩阵交给并行单元处理,先并行地处理左上角和右下角的子矩阵,完成后再并行地处理右上角和左下角的子矩阵,直至子矩阵的大小缩小到一个数据块;
(2)交替更新用户参数向量和物品参数向量;
在每轮迭代中,多个并行单元进行并行计算;当评分矩阵递归到一个数据块单元时,由并行单元使用该数据块对用户参数向量P和物品参数向量Q进行独立更新;
(3)在每轮迭代完成后,计算训练误差和测试误差;
其中,训练误差为预测评分数据与训练集数据之间的误差,测试误差为预测评分数据与测试集数据之间的误差;预测评分数据由更新后的用户参数向量P和物品参数向量Q相乘得到;使用均方根误差RMSE计算训练误差和测试误差,均方根误差RMSE定义如下:
Figure FDA0004067274690000011
其中,R为评分矩阵,n为评分数量,ru,i为原始评分值,
Figure FDA0004067274690000012
为预测评分值。
2.根据权利要求1所述并行随机梯度下降方法,其特征在于,步骤(2)中所述对用户参数向量P和物品参数向量Q进行独立更新,具体步骤为:
步骤1,固定物品参数向量Q,更新用户参数向量P:
Puk=Puk+η*((Rui-Pu TQi)Qik-λPuk);
步骤2,固定用户参数向量P,更新物品参数向量Q:
Qik=Qik+η*((Rui-Pu TQi)Puk-λQik);
其中,Pu为第u行参数向量P,Qi为第i行参数向量Q,Puk为参数向量P在第u行第k列的值,Qik为参数向量在第i行第k列的值,η为学习率,λ为正则化系数,Rui表示用户u对物品i的真实评分。
CN201911061727.XA 2019-11-01 2019-11-01 推荐系统中基于矩阵分解的并行随机梯度下降方法 Active CN111125620B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911061727.XA CN111125620B (zh) 2019-11-01 2019-11-01 推荐系统中基于矩阵分解的并行随机梯度下降方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911061727.XA CN111125620B (zh) 2019-11-01 2019-11-01 推荐系统中基于矩阵分解的并行随机梯度下降方法

Publications (2)

Publication Number Publication Date
CN111125620A CN111125620A (zh) 2020-05-08
CN111125620B true CN111125620B (zh) 2023-04-07

Family

ID=70496116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911061727.XA Active CN111125620B (zh) 2019-11-01 2019-11-01 推荐系统中基于矩阵分解的并行随机梯度下降方法

Country Status (1)

Country Link
CN (1) CN111125620B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507225B (zh) * 2020-12-11 2021-09-28 南京大学 一种基于双层优化的推荐系统数据调试方法
CN116166890B (zh) * 2023-04-25 2023-07-18 中国科学技术大学 基于浅层自动编码器模型的推荐方法、系统、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975440A (zh) * 2016-05-05 2016-09-28 浙江理工大学 一种基于图计算模型的矩阵分解并行化方法
CN108139887A (zh) * 2015-10-22 2018-06-08 国际商业机器公司 跨硬件加速器并行化矩阵分解
CN108280217A (zh) * 2018-02-06 2018-07-13 南京理工大学 一种基于差分隐私保护的矩阵分解推荐方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160284003A1 (en) * 2015-03-26 2016-09-29 Xerox Corporation Time-sensitive collaborative filtering through adaptive matrix completion

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108139887A (zh) * 2015-10-22 2018-06-08 国际商业机器公司 跨硬件加速器并行化矩阵分解
CN105975440A (zh) * 2016-05-05 2016-09-28 浙江理工大学 一种基于图计算模型的矩阵分解并行化方法
CN108280217A (zh) * 2018-02-06 2018-07-13 南京理工大学 一种基于差分隐私保护的矩阵分解推荐方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王振军 ; 黄瑞章 ; .基于Spark的矩阵分解与最近邻融合的推荐算法.计算机系统应用.2017,(第04期),第124-129页. *

Also Published As

Publication number Publication date
CN111125620A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
CN109948029A (zh) 基于神经网络自适应的深度哈希图像搜索方法
CN104346629B (zh) 一种模型参数训练方法、装置及系统
Naumov et al. Parallel graph coloring with applications to the incomplete-lu factorization on the gpu
CN111125620B (zh) 推荐系统中基于矩阵分解的并行随机梯度下降方法
Zeng et al. A GA-based feature selection and parameter optimization for support tucker machine
CN111027732B (zh) 一种多风电场出力场景的生成方法及系统
CN112862380B (zh) 一种基于混合算法的项目型产品装配车间人员调度方法、设备及存储介质
CN111767992A (zh) 一种基于卷积神经网络的双目标增量学习方法
Kiaee et al. Alternating direction method of multipliers for sparse convolutional neural networks
CN113344174A (zh) 基于概率分布的高效神经网络结构搜索方法
CN112016253A (zh) 一种适用于cfd不确定度量化的高保真度混沌多项式修正方法
CN113850385A (zh) 一种粗细粒度联合的神经网络剪枝方法
CN111401413A (zh) 一种基于优化理论的带规模约束的并行聚类方法
US20220207374A1 (en) Mixed-granularity-based joint sparse method for neural network
CN107590538B (zh) 一种基于在线序列学习机的危险源识别方法
CN104049612A (zh) 基于分布估计的加工车间调度方法
CN112651488A (zh) 一种改善大型图卷积神经网络的训练效率的方法
CN109074348A (zh) 用于对输入数据集进行迭代聚类的设备和迭代方法
CN115600383B (zh) 一种不确定性数据驱动计算力学方法、存储介质及产品
van den Burg et al. SparseStep: Approximating the counting norm for sparse regularization
CN112396154A (zh) 一种基于卷积神经网络训练的并行方法
CN109271132B (zh) 一种基于机器学习模型的排序方法
CN113590748B (zh) 基于迭代网络组合的情感分类持续学习方法及存储介质
CN113610350B (zh) 复杂工况故障诊断方法、设备、存储介质及装置
CN112731888B (zh) 一种批量流混合流水车间调度问题的改进候鸟优化方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant