CN105975440A - 一种基于图计算模型的矩阵分解并行化方法 - Google Patents

一种基于图计算模型的矩阵分解并行化方法 Download PDF

Info

Publication number
CN105975440A
CN105975440A CN201610291830.3A CN201610291830A CN105975440A CN 105975440 A CN105975440 A CN 105975440A CN 201610291830 A CN201610291830 A CN 201610291830A CN 105975440 A CN105975440 A CN 105975440A
Authority
CN
China
Prior art keywords
matrix
user
commodity
matrix decomposition
parallelization
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.)
Pending
Application number
CN201610291830.3A
Other languages
English (en)
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.)
Zhejiang Sci Tech University ZSTU
Original Assignee
Zhejiang Sci Tech University ZSTU
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 Zhejiang Sci Tech University ZSTU filed Critical Zhejiang Sci Tech University ZSTU
Priority to CN201610291830.3A priority Critical patent/CN105975440A/zh
Publication of CN105975440A publication Critical patent/CN105975440A/zh
Pending legal-status Critical Current

Links

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

本发明公开了一种基于图计算模型的矩阵分解并行化方法。矩阵分解可以灵活地纳入更多的用户信息。矩阵分解根据用户对物品的评分,推断出用户和物品的隐语义向量,然后根据用户和物品的隐语义向量来进行推荐。然而在实际应用场景中实现这种矩阵分解推荐算法会需要消费大量的时间,不能满足目前商业方面的需求。利用分布式计算平台将这种矩阵分解推荐算法并行化能有效解决这一问题,同时在实现这种矩阵分解推荐算法中会存在多次迭代计算问题,本发明提出了一种基于Spark的GraphX图计算框架来实现矩阵分解并行化,相比传統的MapReduce计算图模型无论是在遇到多次迭代问题上还是执行效率上都有着很明显的优势。

Description

一种基于图计算模型的矩阵分解并行化方法
技术领域
本发明涉及推荐系统技术领域,尤其是涉及一种基于图计算模型的矩阵分解并行化方法。
背景技术
近几年来,随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长。动辄达到数百TB甚至数十至数百PB规模的行业已远远超出了现有传統的计算机技术和信息系统的处理能力,因此,寻求有效的大数据处理技术、方法和手段已经成为现实世界的迫切需求。百度目前的总数据量已超过1000PB,每天需要处理的网页数据达到10PB~100PB;淘宝累计的交易数据量高达100PB;Twitter每天发布超过2亿条消息,新浪微博每天发帖量达到8000万条;中国移动一个省的电话通联记录数据每月可达0.5PB~1PB。据世界权威IT信息咨询分析公司IDC研究报告预测:全世界数据未来10年将从2009年的0.8ZB增长到2020年的35ZB,10年将增长44倍,年均增长40%。
在面对现阶段海量的信息数据,人们逐渐进入了信息过载的时代。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:对于信息消费者,从大量信息中找到自己感兴趣的信息是一件非常困难的事情;对于信息生产者,让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。因此,推荐系统随遇而生,推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
推荐系统从原理机制上来看,一般划分成三类:基于内容的推荐、协同过滤、以及混合推荐。基于内容的推荐就是根据用户过去的浏览记录来向用户推荐用户没有接触过的推荐项。协同过滤主要是通过收集和分析用户历史的行为、活动及偏好的信息来预测用户对一个项目的喜好程度。协同过滤最大的好处就是它不需要依赖对项目的内容或结构进行深度理解和分析,仅需要用户的历史行为就能进行推荐。在实现上,有直接基于相似性度量的方法,如K近邻方法等,也有基于模型的方法,如矩阵分解等。
矩阵分解是推荐系统中目前常用的一种推荐手段,经常用来做用户的偏好预测。矩阵分解的优势在于,它可以灵活地纳入更多的信息。矩阵分解根据用户对物品的评分,推断出用户和物品的隐语义向量,然后根据用户和物品的隐语义向量来进行推荐。推荐系统用到的数据可以有显式评分和隐式评分.显式评分时用户对物品的打分,显式评分矩阵通常非常稀疏.隐式评分是指用户的浏览,购买,搜索等历史记录,表示的是用户行为的有无,所以是一个密集矩阵。
在大数据时代,数据丰富多样,类型各异,可以是结构化的数据,也可以是非结构化的数据,海量数据的不断爆炸性的增长。在2004年,Google公司发表了其内部设计的大数据处理平台MapReduce、GFS和BigTable的论文,奠定了大数据框架的关键技术基础。后来,Douglas Cutting等人在开源搜索引擎Nutch上,基于MapReduce和GFS的设计思路,创立了开源计算平台Hadoop。Hadoop技术作为海量数据处理的并行计算模型,主要包含两个部分:分布式存储和分布式计算。但是由于MapReduce编程模型每次读写数据都要从磁盘中读取,效率比较低下。于是Berkeley的AMPLab大数据实验室Matei Zaharia等人提出了基于RDD的抽象编程模型实现了Spark集群计算系统,运行程序比MapReduce Hadoop要快100倍,提供了比Map和Reduce更多的操作,目前已经成为Apache最顶级的项目,成为大数据最为通用的处理平台。另外AMPLab基于Spark还提供更多其他的项目,如Spark SQL(海量数据即席查询)、Spark Streaming(流式计算)、Spark MLlib(机器学习)、Spark GraphX(图计算)和SparkR(支持R语言)。
现在生活中很多计算问题都会涉及到大规模的图。但由于MapReduce编程模型的低效,Google提出了Pregel框架。采用以顶点为中心的计算模式,遵循BSP模型中的“计算-通信-同步”原则,完成图算法的数据同步和迭代任务。这个模型虽然简洁,但也有缺陷。就是对于邻居数很多的顶点,它需要处理的消息非常庞大,而且在这个模式下,它们是无法被并发处理的。所以对于符合幂律分布的自然图,这种计算模型下很容易发生假死或者崩溃。
2010年,CMU的Select实验室提出了GraphLab框架,延续在pregel中以顶点为中心的计算抽象,并提供了许多机器学习算法的实现。在机器学习的流处理并行性能方面得到很大的提升,并引起业界的广泛关注,在2012年GraphLab升级到2.1版本,进一步优化了其并行模型,尤其对自然图的并行性能得到显著改进。GraphLab将数据抽象成Graph结构,将算法的执行过程抽象成Gather(收集)、Apply(更新)、Scatter(分散)三个步骤,简称为GAS。相对应,用户需要实现三个独立的函数gather、apply和scatter。
然而GraphLab的作者Joseph Gonzalez在Spark基础之上实现了GraphX图计算框架,一种分布式数据流的图处理框架,融合了数据并行和图并行的优势。其核心抽象是Resilient Distributed Property Graph,一种点和边都带属性的有向多重图。它扩展了Spark RDD的抽象,有Table和Graph两种视图,而只需要一份物理存储。两种视图都有自己独有的操作符,从而获得了灵活操作和执行效率,也可以更好了用于实现很多并行图算法。
发明内容
本发明的目的是提供一种基于图计算模型的矩阵分解并行化方法,将基于协同过滤的矩阵分解的两种推荐优化算法,即随机梯度下降(SGD)和交替最小二乘法(ALS),抽象成二分图的形式来表示两种推荐优化算法的优劣。
一种基于图计算模型的矩阵分解并行化方法包括以下步骤:
1)根据用户对商品的评分矩阵R={rui}设定初始的用户子矩阵X和商品子矩阵Y,使得X的行数与Y的行数相等,X的列数与R的行数相等,Y的列数与R的列数相等,rui代表用户u对商品i的评分;
2)通过两个子矩阵X和Y的乘积与R的差值建立目标损失函数:
L ( R , X , Y ) = Σ ( u , i ) ∈ I ( r u i - x u T y i ) 2 + λ ( Σ u | | x u | | 2 + Σ i | | y i | | 2 )
其中,xu表示计算过程中的用户子矩阵X,yi表示计算过程中的商品子矩阵Y,I是已知评分在矩阵R中的下标索引集合,λ为设定参数,表示正则化的程度;
3)利用ALS或SGD算法的并行化求解步骤2)中的目标损失函数;更新用户矩阵X和商品矩阵Y;所述的ALS或SGD算法的并行化利用图计算模型完成;
4)重复执行步骤2)和3),直到满足设定条件,得到最终的用户子矩阵和商品子矩阵
所述的ALS算法的并行化求解目标损失函数的具体步骤为:
步骤一:初始化商品矩阵Y,第一行内容利用商品的的打分均值填充,其他内容使用小随机数填充;
步骤二:固定商品矩阵Y的内容,通过求解目标损失函数来估算用户矩阵X的内容,
步骤三:固定用户矩阵X的内容,通过求解结构风险最小化损失函数(4)来估算商品矩阵Y的内容,
步骤四,更新用户矩阵X和商品矩阵Y。
所述的SGD算法的并行化求解目标损失函数的具体步骤为:
步骤一,对损失函数里的两个矩阵xu和yi分别求偏导数,可以得到:
∂ L ∂ x u = 2 Σ i ∈ r ( u ) [ ( r u i - x u * y i ) * ( - y i ) + λx u ] - - - ( 5 )
∂ L ∂ y i = 2 Σ u ∈ r ( i ) [ ( r u i - x u * y i ) * ( - x u ) + λy i ] - - - ( 6 )
步骤二,根据随机梯度下降法,将xu和yi沿着最速下降方向向前前进,得到如下递推公式:
x ~ u = x u - η ∂ L ∂ x u - - - ( 7 )
y ~ i = y i - η ∂ L ∂ y i - - - ( 8 )
其中,η是学习速率;为更新后的矩阵xu为更新后的矩阵yi;;
步骤三,更新用户矩阵X和商品矩阵Y。
所述步骤4)中所述的停止标准是训练集合的RMSE指标在相邻的两轮迭代过程中差值小于0.0001。
所述的利用图计算模型来完成SGD算法的并行化的具体步骤为:
(1)初始化表达X矩阵、Y矩阵和评分矩阵的图数据结构;
(2)在二分图上每个用户节点接受边上的值以及每个和这个用户评过分的物品的k维向量;
(3)每个用户节点根据自己每条边上传来的值计算边和边上的邻居造成的梯度分量,将这些梯度分量相加,得到这轮迭代的梯度值;
(4)每个用户节点将自己得到的梯度值,根据公式(7)更新自己家的k维向量,即更新X矩阵;
x ~ u = x u - η ∂ L ∂ x u - - - ( 7 )
(5)每个商品节点接受边的评分值以及每个和对于这个商品进行过评分的所有用户的k维向量;
(6)每个商品节点根据自己每条边上传来的值计算边和边上的邻居造成的梯度分量,将这些梯度分量相加,得到这轮迭代的梯度值;
(7)每个商品节点将自己得到的梯度值,根据公式(8)更新自己家的k维向量,即更新Y矩阵;
y ~ i = y i - η ∂ L ∂ y i - - - ( 8 )
(8)计算L的值,比上一次L的值小就回到步骤(1)继续迭代,否则顺序遍历图中的用户和商品节点,将每个节点的k维向量组合后输出矩阵X和矩阵Y。
附图说明
图1是用户的评分文件;
图2是用户评分文件生成的评分矩阵;
图3是根据评分矩阵生成二分图;
图4是基于图计算模型的矩阵分解并行化;
图5是SGD矩阵分解流程图;
图6是Hadoop与Spark计算平台性能对比;
图7是SGD与ALS算法迭代效果对比。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明。
根据用户对商品的评分矩阵R={rui}设定初始的用户子矩阵X和商品子矩阵Y,使得X的行数与Y的行数相等,X的列数与R的行数相等,Y的列数与R的列数相等,rui代表用户u对商品i的评分;通常情况下,评分矩阵是一个稀疏矩阵。如何根据已有的评分矩阵R来获得用户矩阵X和商品矩阵Y的内容?一般可以利用最小化X和Y拟合出的矩阵与真实的评分矩阵R之间的损失函数来推导X和Y的内容。对于单个评分来说,其损失函数可以定义如下:
L ( r , x , y ) = ( r - x u T y i ) 2 - - - ( 1 )
如果将所有已知评分的损失函数累加起来可以得到如下的经验风险最小化损失函数:
L ( R , X , Y ) = 1 n Σ ( u , i ) ∈ I L ( r u i , x u , y i ) - - - ( 2 )
其中,I是已知评分在矩阵R中的下标索引集合,n代表了所有已知的评分数量。
于是,矩阵分解方法的模型训练过程就是寻求下列公式的最优解:
(X,Y)=arg min(X,Y)L(R,X,Y) (3)
考虑到R是一个稀疏矩阵,为了避免过拟合现象,考虑在风险最小化损失函数中加入正则项L2范数,得到如下的结构风险最小化损失函数:
L ( R , X , Y ) = Σ ( u , i ) ∈ I ( r u i - x u T y i ) 2 + λ ( Σ u | | x u | | 2 + Σ i | | y i | | 2 ) - - - ( 4 )
矩阵分解方法的模型训练过程就是通过上述损失函数最小化来获得最优的矩阵X和矩阵Y的填充数值。这样,矩阵分解就变成了最优化求解问题,常用的有两种求解矩阵分解优化问题,即交替最小二乘法(ALS)和随机梯度下降法(SGD)。
交替最小二乘法是一种典型的矩阵分解方法,其步骤如下。
步骤一:初始化商品矩阵Y,第一行内容利用商品的的打分均值填充,其他内容使用小随机数填充。
步骤二:固定商品矩阵Y的内容,通过求解结构风险最小化损失函数(4)来估算用户矩阵X的内容。
步骤三:固定用户矩阵X的内容,通过求解结构风险最小化损失函数(4)来估算商品矩阵Y的内容。
步骤四:重复执行步骤二和步骤三,直到算法达到停止的标准为止。一般,停止标准是训练集合的RMSE指标在相邻的两轮迭代过程中差值小于一定的标准(一般取0.0001),即可停止。
随机梯度下降(SGD)是大规模机器算法中最常用的最优化算法,也被称为随机算法。它主要通过求参数的偏导数找到最速下降方向,然后通过迭代法不断优化参数。以下是随机梯度下降公式的推导。
根据公式(4)定义的损失函数里有两个参数xu和yi,随机梯度下降法需要首先对它们分别求偏导数,可以得到:
∂ L ∂ x u = 2 Σ i ∈ r ( u ) [ ( r u i - x u * y i ) * ( - y i ) + λx u ] - - - ( 5 )
∂ L ∂ y i = 2 Σ u ∈ r ( i ) [ ( r u i - x u * y i ) * ( - x u ) + λy i ] - - - ( 6 )
然后,根据随机梯度下降法,需要将参数沿着最速下降方向向前前进,因此可以得到如下递推公式:
x u = x u - η ∂ L ∂ x u - - - ( 7 )
y i = y i - η ∂ L ∂ y i - - - ( 8 )
其中,η是学习速率,它的选取需要通过反复实验获得。
然后矩阵分解的并行化利用图计算模型来完成,其主要思想是分别将每个用户或商品作为二分图中的顶点,评分矩阵作为二分图上的边的属性。
实施例:如图1所示为一个用户队商品的评分文件,其中UID列代表用户,IID列代表商品。Score代表相应用户对商品的评分。由评分文件可以构建一个4*3的评分矩阵,如图2所示。所得的评分矩阵可以生成二分图形式,如图3所示。图3根据评分矩阵生成二分图,二分图中每个顶点表示用户或商品,用户对商品的评分就是用户顶点和商品顶点之间边的属性。于是基于协调过滤的矩阵分解两种学习型优化算法可以通过二分图的形式来实现。
如图4所示,实线表示实际的交互,虚线表示消息的发送,从图中可以看出,位于用户和商品之间的评分首先需要计算参数梯度,如然后将这两个梯度信息发送给所需要的顶点u1和i1;在各个顶点上,将所收到的梯度信息进行梯度汇总,形成然后再进行梯度下降更新。具体的计算过程流程图如图5所示。
图5中的利用图计算模型来完成SGD算法的并行化的具体步骤为:
(1)初始化表达X矩阵、Y矩阵和评分矩阵的图数据结构;
(2)在二分图上每个用户节点接受边上的值以及每个和这个用户评过分的物品的k维向量;
(3)每个用户节点根据自己每条边上传来的值计算边和边上的邻居造成的梯度分量,将这些梯度分量相加,得到这轮迭代的梯度值;
(4)每个用户节点将自己得到的梯度值,根据公式(7)更新自己家的k维向量,即更新X矩阵;
x ~ u = x u - η ∂ L ∂ x u - - - ( 7 )
(5)每个商品节点接受边的评分值以及每个和对于这个商品进行过评分的所有用户的k维向量;
(6)每个商品节点根据自己每条边上传来的值计算边和边上的邻居造成的梯度分量,将这些梯度分量相加,得到这轮迭代的梯度值;
(7)每个商品节点将自己得到的梯度值,根据公式(8)更新自己家的k维向量,即更新Y矩阵;
y ~ i = y i - η ∂ L ∂ y i - - - ( 8 )
(8)计算L的值,比上一次L的值小就回到步骤(1)继续迭代,否则顺序遍历图中的用户和商品节点,将每个节点的k维向量组合后输出矩阵X和矩阵Y。
交替最小二乘法(ALS)并行化算法设计类似于随机梯度下降(SGD)并行化算法的设计。只不过用交替最小二乘法求解目标函数时,可以固定X矩阵,求解Y矩阵,然后在固定Y矩阵,求解X矩阵,重复交替直到算法收敛,在交替过程中,每一步都可以当作是求解最小二乘问题。
最后,采用由美国明尼苏达州大学GroupLens研究室提供了MovieLens开源的电影数据集。主要是采用了100万条用户对电影的评分数据作为本次实验的数据集,来比较两种基于协同过滤的矩阵分解推荐优化算法迭代的效果,以及与Hadoop MapReduce计算平台的性能对比。具体如下图6和图7所示。
如图1所示,可以看出Spark在计算不同类型的作业相比Hadoop MR有非常明显的性能提升,其中计算Pi的值和字数统计的作业,由于这两种类型的作业在计算时,迭代次数不是很多,Spark相比Hadoop MR的性能差别不是很大。但是,在计算ALS和SGD这两种类型的作业,Spark相比Hadoop MR的性能有巨大的差别。因为这两种类型的作业需要不断的迭代,计算时间上Hadoop MR会花费很多,因为Hadoop MR需要不断的多次重复地去访问HDFS上的数据,这样就带来了频繁的输入\输出(IO)的开销。因此可以看出,特别是在机器学习和深度学习领域内,基于内存计算的Spark相比Hadoop MR有了非常巨大的优势。主要还是因为Spark是基于内存计算的,它可以将数据缓存到内存,对于需要多次迭代操作相同数据集的机器学习算法来说,这大大提升了计算性能,减少了需要多次迭代作业完成的时间。
图2可知,随着迭代次数的不断增加,每次迭代参与计算的物品和商品点逐渐减少,计算和通信开销也在不断减小,明显看出ASL优化算法收敛性能快于SGD优化算法。因此可以看出,对于目前大规模数据来说,遇见需要多次迭代机器学习算法问题,特别是矩阵分解问题,使用基于Spark上的图计算框架GraphX比Hadoop MR来解决此类问题更有优势,收敛速度会更快,更给以用户更好的推荐效果。

Claims (5)

1.一种基于图计算模型的矩阵分解并行化方法,其特征在于,包括以下步骤:
1)根据用户对商品的评分矩阵R={rui}设定初始的用户子矩阵X和商品子矩阵Y,使得X的行数与Y的行数相等,X的列数与R的行数相等,Y的列数与R的列数相等,rui代表用户u对商品i的评分;
2)通过两个子矩阵X和Y的乘积与R的差值建立目标损失函数:
L ( R , X , Y ) = Σ ( u , i ) ∈ I ( r u i - x u T y i ) 2 + λ ( Σ u | | x u | | 2 + Σ i | | y i | | 2 )
其中,xu表示计算过程中的用户子矩阵X,yi表示计算过程中的商品子矩阵Y,I是已知评分在矩阵R中的下标索引集合,λ为设定参数,表示正则化的程度;
3)利用ALS或SGD算法的并行化求解步骤2)中的目标损失函数;更新用户矩阵X和商品矩阵Y;所述的ALS或SGD算法的并行化利用图计算模型完成;
4)重复执行步骤2)和3),直到满足设定条件,得到最终的用户子矩阵和商品子矩阵
2.根据权利要求1所述的一种基于图计算模型的矩阵分解并行化方法,其特征在于:所述的ALS算法的并行化求解目标损失函数的具体步骤为:
步骤一:初始化商品矩阵Y,第一行内容利用商品的的打分均值填充,其他内容使用小随机数填充;
步骤二:固定商品矩阵Y的内容,通过求解目标损失函数来估算用户矩阵X的内容,
步骤三:固定用户矩阵X的内容,通过求解结构风险最小化损失函数(4)来估算商品矩阵Y的内容,
步骤四,更新用户矩阵X和商品矩阵Y。
3.据权利要求1所述的一种基于图计算模型的矩阵分解并行化方法,其特征在于:所述的SGD算法的并行化求解目标损失函数的具体步骤为:
步骤一,对损失函数里的两个矩阵xu和yi分别求偏导数,可以得到:
∂ L ∂ x u = 2 Σ i ∈ r ( u ) [ ( r u i - x u * y i ) * ( - y i ) + λx u ] - - - ( 5 )
∂ L ∂ y i = 2 Σ u ∈ r ( i ) [ ( r u i - x u * y i ) * ( - x u ) + λy i ] - - - ( 6 )
步骤二,根据随机梯度下降法,将xu和yi沿着最速下降方向向前前进,得到如下递推公式:
x ~ u = x u - η ∂ L ∂ x u - - - ( 7 )
y ~ i = y i - η ∂ L ∂ y i - - - ( 8 )
其中,η是学习速率;为更新后的矩阵xu为更新后的矩阵yi
步骤三,更新用户矩阵X和商品矩阵Y。
4.根据权利要求1-3任一项所述的一种基于图计算模型的矩阵分解并行化方法,其特征在于:
所述步骤4)中所述的停止标准是训练集合的RMSE指标在相邻的两轮迭代过程中差值小于0.0001。
5.根据权利要求1所述的一种基于图计算模型的矩阵分解并行化方法,其特征在于:所述的利用图计算模型来完成SGD算法的并行化的具体步骤为:
(1)初始化表达X矩阵、Y矩阵和评分矩阵的图数据结构;
(2)在二分图上每个用户节点接受边上的值以及每个和这个用户评过分的物品的k维向量;
(3)每个用户节点根据自己每条边上传来的值计算边和边上的邻居造成的梯度分量,将这些梯度分量相加,得到这轮迭代的梯度值;
(4)每个用户节点将自己得到的梯度值,根据公式(7)更新自己家的k维向量,即更新X矩阵;
x ~ u = x u - η ∂ L ∂ x u - - - ( 7 )
(5)每个商品节点接受边的评分值以及每个和对于这个商品进行过评分的所有用户的k维向量;
(6)每个商品节点根据自己每条边上传来的值计算边和边上的邻居造成的梯度分量,将这些梯度分量相加,得到这轮迭代的梯度值;
(7)每个商品节点将自己得到的梯度值,根据公式(8)更新自己家的k维向量,即更新Y矩阵;
y ~ i = y i - η ∂ L ∂ y i - - - ( 8 )
(8)计算L的值,比上一次L的值小就回到步骤(1)继续迭代,否则顺序遍历图中的用户和商品节点,将每个节点的k维向量组合后输出矩阵X和矩阵Y。
CN201610291830.3A 2016-05-05 2016-05-05 一种基于图计算模型的矩阵分解并行化方法 Pending CN105975440A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610291830.3A CN105975440A (zh) 2016-05-05 2016-05-05 一种基于图计算模型的矩阵分解并行化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610291830.3A CN105975440A (zh) 2016-05-05 2016-05-05 一种基于图计算模型的矩阵分解并行化方法

Publications (1)

Publication Number Publication Date
CN105975440A true CN105975440A (zh) 2016-09-28

Family

ID=56994396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610291830.3A Pending CN105975440A (zh) 2016-05-05 2016-05-05 一种基于图计算模型的矩阵分解并行化方法

Country Status (1)

Country Link
CN (1) CN105975440A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106202364A (zh) * 2016-07-07 2016-12-07 华南理工大学 面向MapReduce的XML数据划分优化方法及其系统
CN106708978A (zh) * 2016-12-07 2017-05-24 北京邮电大学 一种基于二分图的服务推荐方法及装置
CN107273337A (zh) * 2017-05-24 2017-10-20 南京师范大学 一种图构建与矩阵分解联合学习的推荐方法
CN108154396A (zh) * 2017-12-26 2018-06-12 成都生命基线科技有限公司 一种生物科研实验平台中的试剂耗材智能推送方法
CN108763493A (zh) * 2018-05-30 2018-11-06 深圳市思迪信息技术股份有限公司 一种基于深度学习的推荐方法
CN109102127A (zh) * 2018-08-31 2018-12-28 杭州贝购科技有限公司 商品推荐方法及装置
CN110807153A (zh) * 2019-11-06 2020-02-18 深圳墨世科技有限公司 基于增量更新的推荐方法、装置、计算机设备及存储介质
CN111125620A (zh) * 2019-11-01 2020-05-08 复旦大学 推荐系统中基于矩阵分解的并行随机梯度下降算法
CN111125621A (zh) * 2019-11-22 2020-05-08 清华大学 一种加速分布式矩阵分解系统训练的方法及装置
CN112560087A (zh) * 2020-12-11 2021-03-26 中国人民解放军陆军工程大学 基于矩阵补全技术的敏感数据补全方法
CN113050951A (zh) * 2021-03-31 2021-06-29 上海天旦网络科技发展有限公司 基于计算图的协议描述和解码方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102324031A (zh) * 2011-09-07 2012-01-18 江西财经大学 老龄用户多生物特征身份认证中的隐式语义特征提取方法
CN103942318A (zh) * 2014-04-25 2014-07-23 湖南化工职业技术学院 一种并行ap传播的xml大数据聚类集成方法
CN104063516A (zh) * 2014-07-14 2014-09-24 福州大学 基于分布式矩阵分解特征提取的社交网络垃圾过滤方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102324031A (zh) * 2011-09-07 2012-01-18 江西财经大学 老龄用户多生物特征身份认证中的隐式语义特征提取方法
CN103942318A (zh) * 2014-04-25 2014-07-23 湖南化工职业技术学院 一种并行ap传播的xml大数据聚类集成方法
CN104063516A (zh) * 2014-07-14 2014-09-24 福州大学 基于分布式矩阵分解特征提取的社交网络垃圾过滤方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CDA 数据分析师: "矩阵分解与图计算框架", 《HTTP://WWW.CDA.CN/VIEW/2324.HTML》 *
YEHUDA KOREN ET AL.: "Matrix factorization techniques for recommender systems", 《COMPUTER》 *
于娜娜 等: "基于Spark的协同过滤算法的研究", 《系统仿真技术》 *
杨志伟: "基于Spark平台推荐系统研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
王全民 等: "基于矩阵分解的协同过滤算法的并行化研究", 《计算机技术与发展》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106202364B (zh) * 2016-07-07 2019-05-17 华南理工大学 面向MapReduce的XML数据划分优化方法及其系统
CN106202364A (zh) * 2016-07-07 2016-12-07 华南理工大学 面向MapReduce的XML数据划分优化方法及其系统
CN106708978A (zh) * 2016-12-07 2017-05-24 北京邮电大学 一种基于二分图的服务推荐方法及装置
CN106708978B (zh) * 2016-12-07 2019-09-27 北京邮电大学 一种基于二分图的服务推荐方法及装置
CN107273337A (zh) * 2017-05-24 2017-10-20 南京师范大学 一种图构建与矩阵分解联合学习的推荐方法
CN108154396A (zh) * 2017-12-26 2018-06-12 成都生命基线科技有限公司 一种生物科研实验平台中的试剂耗材智能推送方法
CN108763493A (zh) * 2018-05-30 2018-11-06 深圳市思迪信息技术股份有限公司 一种基于深度学习的推荐方法
CN108763493B (zh) * 2018-05-30 2022-06-21 深圳市思迪信息技术股份有限公司 一种基于深度学习的推荐方法
CN109102127A (zh) * 2018-08-31 2018-12-28 杭州贝购科技有限公司 商品推荐方法及装置
CN111125620A (zh) * 2019-11-01 2020-05-08 复旦大学 推荐系统中基于矩阵分解的并行随机梯度下降算法
CN111125620B (zh) * 2019-11-01 2023-04-07 复旦大学 推荐系统中基于矩阵分解的并行随机梯度下降方法
CN110807153A (zh) * 2019-11-06 2020-02-18 深圳墨世科技有限公司 基于增量更新的推荐方法、装置、计算机设备及存储介质
CN111125621A (zh) * 2019-11-22 2020-05-08 清华大学 一种加速分布式矩阵分解系统训练的方法及装置
CN112560087A (zh) * 2020-12-11 2021-03-26 中国人民解放军陆军工程大学 基于矩阵补全技术的敏感数据补全方法
CN113050951A (zh) * 2021-03-31 2021-06-29 上海天旦网络科技发展有限公司 基于计算图的协议描述和解码方法

Similar Documents

Publication Publication Date Title
CN105975440A (zh) 一种基于图计算模型的矩阵分解并行化方法
Gan et al. Research characteristics and status on social media in China: A bibliometric and co-word analysis
Kaur et al. Modeling and querying data in NoSQL databases
Venkatram et al. Review on big data & analytics–concepts, philosophy, process and applications
Phaneendra et al. Big Data-solutions for RDBMS problems-A survey
CN105139281A (zh) 一种电力营销大数据的处理方法及系统
WO2011092203A1 (en) System and method for building a cloud aware massive data analytics solution background
CN103336790A (zh) 基于Hadoop的邻域粗糙集快速属性约简方法
CN103336791A (zh) 基于Hadoop的粗糙集快速属性约简方法
Fournier-Viger et al. Mining minimal high-utility itemsets
Rani et al. A survey of tools for social network analysis
CN109635186A (zh) 一种基于Lambda架构的实时推荐方法
Thabtah et al. Mr-arm: a map-reduce association rule mining framework
Verma et al. A graph based analysis of user mobility for a smart city project
EP3771991A1 (en) Intelligent search modification guidance
CN103995878B (zh) 一种分布式个性化推荐方法及系统
Prakash et al. Issues and challenges in the era of big data mining
Smith et al. Realizing the promise of intelligent transportation systems (ITS) data archives
Hameed et al. Business intelligence: Self adapting and prioritizing database algorithm for providing big data insight in domain knowledge and processing of volume based instructions based on scheduled and contextual shifting of data
CN113157825A (zh) 用户行为数据整合方法及装置
Cui-hong Research on Web3. 0 application in the resources integration portal
Xu E-Commerce data classification in the cloud environment based on bayesian algorithm
Pascal Filho et al. A MapReduce-Based Method for Achieving Active Technological Surveillance in Big Data Environments
de Oliveira et al. Time series compression for IoT: A systematic literature review
Hashem et al. Pre-processing and modeling tools for bigdata

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160928