CN111125621A - 一种加速分布式矩阵分解系统训练的方法及装置 - Google Patents

一种加速分布式矩阵分解系统训练的方法及装置 Download PDF

Info

Publication number
CN111125621A
CN111125621A CN201911155681.8A CN201911155681A CN111125621A CN 111125621 A CN111125621 A CN 111125621A CN 201911155681 A CN201911155681 A CN 201911155681A CN 111125621 A CN111125621 A CN 111125621A
Authority
CN
China
Prior art keywords
matrix
worker node
block
mode
sub
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
CN201911155681.8A
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.)
Tsinghua University
Original Assignee
Tsinghua 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 Tsinghua University filed Critical Tsinghua University
Priority to CN201911155681.8A priority Critical patent/CN111125621A/zh
Publication of CN111125621A publication Critical patent/CN111125621A/zh
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明实施例提供一种加速分布式矩阵分解系统训练的方法及装置,包括:将目标矩阵分解为若干个矩阵块,生成模式序列;对每一模式进行训练,对于任一模式每一矩阵块,每一矩阵块对应一个工作者节点,对于任一矩阵块,任一矩阵块对应的当前工作者节点从本地中获取第一预设子矩阵,任一矩阵块对应的当前工作者节点从环状架构中的上一工作者节点中获取第二预设子矩阵;利用随机梯度下降算法对第一预设子矩阵和第二预设子矩阵进行更新,获取第一目标子矩阵和第二目标子矩阵,第一目标子矩阵存储在本地中,第二目标子矩阵推送到环状架构中的下一工作者节点。本发明减少节点之间数据的传输,利用环状模型并行,减少节点连接数,更有利于方案的扩展性。

Description

一种加速分布式矩阵分解系统训练的方法及装置
技术领域
本发明涉及计算机领域,尤其涉及一种加速分布式矩阵分解系统训练的方法及装置。
背景技术
矩阵分解作为一种经典的机器学习算法,广泛应用于推荐系统、数据压缩、社交网络分析、Web挖掘等领域。随着数据量的增长,大规模的矩阵分解需要在多台计算节点上分布式进行。然而传统的分布式矩阵分解系统均采用基于PS架构/MapReduce架构的中心化的分布式训练,该类方案在实际部署过程中存在着如下问题:
数据通信存在数据冗余,每次训练迭代,均需要从工作者节点向参数服务器节点传输两部分矩阵参数,在大规模矩阵分解场景下会显著拖慢训练速度。
因此,亟需一种加速分布式矩阵分解系统训练的方法。
发明内容
为了解决上述问题,本发明实施例提供一种加速分布式矩阵分解系统训练的方法及装置。
第一方面,本发明实施例提供一种加速分布式矩阵分解系统训练的方法,包括:
根据分布式矩阵分解系统中工作者节点的个数,将目标矩阵分解为若干个矩阵块;
环状架构根据所述目标矩阵,生成模式序列,所述模式序列中包含若干个模式,对于任一模式,所述任一模式中包含若干个可互换的矩阵块,可互换的矩阵块表示任意两个矩阵块之间没有相同的行或者列,所述模式序列覆盖了所述目标矩阵中的所有矩阵块;
对每一模式进行训练,对于所述模式序列中的任意两个相邻的模式,具体地:对于任一模式的下一模式,若所述下一模式由所述任一模式向右或向上平移得到,对于所述任一模式中的每一矩阵块,每一矩阵块对应一个工作者节点,对于任一矩阵块,所述任一矩阵块对应的当前工作者节点从本地中获取第一预设子矩阵,所述任一矩阵块对应的当前工作者节点从所述环状架构中所述任一模式的上一模式、所述当前工作者节点的上一工作者节点中获取第二预设子矩阵,所述第一预设子矩阵为第一分解矩阵中的一个矩阵块,所述第二预设子矩阵为第二分解矩阵中的一个矩阵块,所述第一分解矩阵和所述第二分解矩阵的乘积为所述目标矩阵,所述第一预设子矩阵与所述第二预设子矩阵的乘积为所述任一矩阵块;
所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第一预设子矩阵进行更新,获取第一目标子矩阵,所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第二预设子矩阵进行更新,获取第二目标子矩阵,所述任一矩阵块对应的当前工作者节点将所述第一目标子矩阵存储在本地中,将所述第二目标子矩阵推送到所述环状架构中所述下一模式中、所述当前工作者节点的下一工作者节点。
第二方面,本发明实施例提供一种加速分布式矩阵分解系统训练的装置,包括:
分解模块,用于根据分布式矩阵分解系统中工作者节点的个数,将目标矩阵分解为若干个矩阵块;
模式模块,用于环状架构根据所述目标矩阵,生成模式序列,所述模式序列中包含若干个模式,对于任一模式,所述任一模式中包含若干个可互换的矩阵块,可互换的矩阵块表示任意两个矩阵块之间没有相同的行或者列,所述模式序列覆盖了所述目标矩阵中的所有矩阵块;
训练模块,用于对于所述模式序列中的任意两个相邻的模式,对每一模式进行训练,具体地:若下一模式由任一模式向右或向上平移得到,对于所述任一模式中的每一矩阵块,每一矩阵块对应一个工作者节点,对于任一矩阵块,所述任一矩阵块对应的当前工作者节点从本地中获取第一预设子矩阵,所述任一矩阵块对应的当前工作者节点从所述环状架构中所述任一模式的上一模式、所述当前工作者节点的上一工作者节点中获取第二预设子矩阵,所述第一预设子矩阵为第一分解矩阵中的一个矩阵块,所述第二预设子矩阵为第二分解矩阵中的一个矩阵块,所述第一分解矩阵和所述第二分解矩阵的乘积为所述目标矩阵,所述第一预设子矩阵与所述第二预设子矩阵的乘积为所述任一矩阵块;
更新模块,用于所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第一预设子矩阵进行更新,获取第一目标子矩阵,所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第二预设子矩阵进行更新,获取第二目标子矩阵,所述任一矩阵块对应的当前工作者节点将所述第一目标子矩阵存储在本地中,将所述第二目标子矩阵推送到所述环状架构中所述下一模式中、所述当前工作者节点的下一工作者节点。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现本发明第一方面加速分布式矩阵分解系统训练的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明第一方面加速分布式矩阵分解系统训练的方法的步骤。
本发明实施例提供的一种加速分布式矩阵分解系统训练的方法及装置,通过巧妙设计相邻迭代之间使用的模式,可以充分利用参数的本地化特性,从而减少节点之间数据的传输,并且改变了中心化的分布式计算方式,利用环状模型并行,可以减少节点连接数,更有利于方案的扩展性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中将3×3的目标矩阵分解为6个模式的示意图;
图2为本发明实施例中DSGD算法的运行过程示意图;
图3为本发明实施例提供的一种加速分布式矩阵分解系统训练的方法的流程图;
图4为本发明实施例中相邻两个迭代中矩阵块的更新和获取的示意图;
图5为本发明实施例中模式平移和矩阵块传输关系的示意图;
图6为本发明实施例中环形架构示意图;
图7为本发明实施例中环形架构下模式平移和矩阵块的传输示意图;
图8为FPSGD和本发明实施例在目标矩阵块内元素条目选择上的对比图;
图9为本发明实施例中切分多个矩阵块增加随机性的示意图;
图10为本发明实施例提供的一种加速分布式矩阵分解系统训练的装置的结构示意图;
图11为本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
矩阵分解问题可以形式化描述如下:对于一个m×n的目标矩阵R,需要求得两个较小矩阵P和Q,其中,P为m×k的矩阵,Q为k×n矩阵(k<<m,k<<n),在满足一定误差范围内,使得:
R≈PQ,
更具体的,
Figure BDA0002284739660000051
于是,整体的目标函数可以描述为:
Figure BDA0002284739660000052
为了描述清楚,下面对本发明实施例中用到的随机梯度下降算法进行说明:
随机梯度下降算法的迭代过程如下:
首先从目标矩阵R中选取一个非零元素rij,计算对应的近似误差:
Figure BDA0002284739660000053
然后,针对误差计算关于每个P矩阵和Q矩阵元素的梯度:
Figure BDA0002284739660000054
Figure BDA0002284739660000055
最后,根据梯度更新P矩阵和Q矩阵元素的值:
p′iu=piu+η(2eijquj-λpiu),
q′uj=quj+η(2eijpiu-λquj),
其中,η和λ为SGD算法定义的超参数,η被称为学习率(learning rate);λpiu和λquj被称为正则项(regularization items),目的是为了防止“过拟合”;循环以上更新步骤直至算法收敛到阈值条件。
相比于其他矩阵分解算法,随机梯度下降法由于算法的简便和有效,受到了更广泛的关注,且经过一系列的应用验证(如KDD Cup和Netflix推荐比赛),随机梯度下降法可以取得优越的性能效果,因此,诸多工作基于随机梯度下降进行了扩展和改进,本发明实施例提供的方案也是建立在随机梯度下降基础之上。
虽然随机梯度下降算法可以取得良好的训练效果,但是,当输入的目标矩阵R非常巨大,对于这种矩阵的分解过程非常耗时,需要足够的算力和存储资源,因此,单节点机器往往不能满足实际需求,需要可扩展性的分布式矩阵分解方案来驱动多台计算节点,共同分担计算负荷,完成一个矩阵分解任务。
其中,现有技术中DSGD是其中的一个代表性矩阵分解解决方案,可以将大型的矩阵分解任务分解交由多个计算节点完成,因此,在此处重点描述DSGD的工作流。
给定一个目标矩阵R中非零的元素条目(即rij),可以同时进行一行P矩阵元素(即pi*)和一列Q矩阵元素(即q*j)的更新,而不影响其他行和列的值。基于此,可以将目标矩阵的计算载荷互不干扰地分配到多个计算节点。因此,首先会将整个大目标矩阵R分割成w×w个矩阵块(其中w等于工作者节点的数目)。
本发明实施例中,以参数服务器架构中包括3个工作者节点为例进行说明,即w=3,图1为本发明实施例中将3×3的目标矩阵分解为6个模式的示意图,如图1所示,图中1中(a)表示第1个模式pattern0,图中1中(b)表示第2个模式pattern1,图中1中(c)表示第3个模式pattern2,图中1中(d)表示第4个模式pattern3,图中1中(e)表示第5个模式pattern4,图中1中(f)表示第6个模式pattern5
然后,从中选取w块可互换的矩阵块组成一个模式。本发明实施例中,定义两个矩阵块可互换是指它们没有任何相同的行或者列。图1给出了6个模式的示例,其中每个模式由3个可互换的矩阵块组成。
DSGD在基于参数服务器的架构下,参数服务器首先需要生成模式序列,模式序列需要覆盖目标矩阵R的所有矩阵块。
在每一次迭代过程中,参数服务器选取一个模式,并根据这个模式把不同的矩阵块分配给不同的工作者节点。然后,每个工作者节点从参数服务器上拉取对应的P矩阵的行元素和Q矩阵的列元素,并通过执行随机梯度算法进行对应行元素和列元素的更新。进而,这些参数更新被推送到参数服务器上,工作者节点等待参数服务器分配新的矩阵块,从而可以继续下一次迭代。
更具体地,图2为本发明实施例中DSGD算法的运行过程示意图,如图2所示,图中2中(a)表示目标矩阵R分解为矩阵P和矩阵Q的示意图,在该参数服务器架构下有3个工作者节点,于是目标矩阵R被分成了3×3块(分别记作R0,0~R2,2),而且3个可互换的矩阵块组成一个模式。相应地,矩阵P按行分割成3个矩阵块(分别记作
Figure BDA0002284739660000071
),矩阵Q按列分成了3个矩阵块(分别记作
Figure BDA0002284739660000072
)。
每次迭代过程中,参数服务器首先选择一个模式,并把对应的R矩阵块分配给工作者节点。然后P矩阵块和Q矩阵块被分发给各个工作者节点,图中2中(b)表示将P矩阵块和Q矩阵块分配给各个工作者节点的过程。例如,worker0被分配了R0,2,所以它将从参数服务器上拉取获得
Figure BDA0002284739660000073
Figure BDA0002284739660000074
类似地,worker1获得P1 0
Figure BDA0002284739660000075
worker2获得
Figure BDA0002284739660000076
Figure BDA0002284739660000077
然后每个工作者节点从自己的磁盘上读取对应的矩阵块的元素条目,并运行随机梯度下降算法去更新相应的P矩阵块和Q矩阵块。
当阈值条件达到时(也就是,每个工作者节点运行了一定次数迭代的随机梯度算法),这3个工作者节点把他们更新后的P矩阵块(记做
Figure BDA0002284739660000078
P1 1
Figure BDA0002284739660000079
)推送到参数服务器上,图中2中(c)表示工作者节点运行随机梯度下降算法更新P矩阵块,参数服务器将更新后的矩阵块和原有的本地矩阵块合并,从而完成了一次DSGD的迭代。
按照这种方式,参数服务器再一次选择一个另外的模式,并把对应的矩阵块分给工作者节点,以开始下一次迭代。前一次迭代中被更新的P矩阵块和Q矩阵块被重新分配给新的工作者节点,用于进一步更新,图中2中(d)表示参数服务器选择另外一个模式,开始下一次迭代。
图3为本发明实施例提供的一种加速分布式矩阵分解系统训练的方法的流程图,如图3所示,该方法包括:
S1,根据分布式矩阵分解系统中工作者节点的个数,将目标矩阵分解为若干个矩阵块;
S2,环状架构根据所述目标矩阵,生成模式序列,所述模式序列中包含若干个模式,对于任一模式,所述任一模式中包含若干个可互换的矩阵块,可互换的矩阵块表示任意两个矩阵块之间没有相同的行或者列,所述模式序列覆盖了所述目标矩阵中的所有矩阵块;
S3,对于所述模式序列中的任意两个相邻的模式,对每一模式进行训练,具体地:若下一模式由任一模式向右或向上平移得到,对于所述任一模式中的每一矩阵块,每一矩阵块对应一个工作者节点,对于任一矩阵块,所述任一矩阵块对应的当前工作者节点从本地中获取第一预设子矩阵,所述任一矩阵块对应的当前工作者节点从所述环状架构中所述任一模式的上一模式、所述当前工作者节点的上一工作者节点中获取第二预设子矩阵,所述第一预设子矩阵为第一分解矩阵中的一个矩阵块,所述第二预设子矩阵为第二分解矩阵中的一个矩阵块,所述第一分解矩阵和所述第二分解矩阵的乘积为所述目标矩阵,所述第一预设子矩阵与所述第二预设子矩阵的乘积为所述任一矩阵块;
S4,所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第一预设子矩阵进行更新,获取第一目标子矩阵,所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第二预设子矩阵进行更新,获取第二目标子矩阵,所述任一矩阵块对应的当前工作者节点将所述第一目标子矩阵存储在本地中,将所述第二目标子矩阵推送到所述环状架构中所述下一模式中、所述当前工作者节点的下一工作者节点。
举例地,如目标矩阵R是一个9x9的矩阵,可以将目标矩阵分解为9x2和2x9两个矩阵的乘积,如果有三个工作者节点,那每一矩阵块都是由3x2和2x3的小矩阵乘积构成的。
另外,也可以将整个大目标矩阵R分割成w×w个矩阵块(其中w等于工作者节点的数目)。
目标矩阵可以根据实际需求分解为多个矩阵块,本发明实施例在此不做具体的限定,为了描述方便,本发明实施例中,以分布式矩阵分解系统中包括3个工作者节点为例进行说明,即w=3。
本发明实施例中,分布式矩阵分解系统中所有工作者节点的个数为3个,将目标矩阵R分解为9个,参见图1,具体分解过程与上述DSGD算法中的分解过程相同。然后生成模式序列,其生成模式序列的方法也与DSGD算法相同。
需要说明的是,环状架构是指:工作者节点以环状形式进行连接,每个工作者节点只和前后两个工作者节点建立连接。需要说明的是,这里的连接是指逻辑连接,而非物理连接。
下面重点讲解本申请中的迭代过程:
图4为本发明实施例中相邻两个迭代中矩阵块的更新和获取的示意图,如图4所示,每个模式都可以从前一个模式经过一步的移动得到。例如,pattern1可以通过将pattern0向右移动一个矩阵块的距离得到,pattern3可以通过将pattern2向上移动一个矩阵块的距离得到,本发明实施例中将之称为“一步置换”。
对于两次连续的迭代,如果后一次迭代的模式可以经由一步置换从前一次迭代的模式得到,那么前一次迭代中的P矩阵块或者Q矩阵块就可以被保留在本地,供后一次迭代继续使用。
本发明实施例中,任一模式是指pattern0,任一模式的每一矩阵块就是pattern0中的矩阵块2、矩阵块1、矩阵块0,每一矩阵块对应一个工作者节点,是指:矩阵块0对应worker0,矩阵块1对应worker1,矩阵块2对应worker2
对于pattern0的下一模式pattern1,下一模式pattern1是由上一模式pattern0向右平或者向上移得到,那么:
任一矩阵块对应的当前工作者节点从本地获取第一预设子矩阵,任一矩阵块对应的当前工作者节点从环状架构中任一模式的上一模式、当前工作者节点的上一工作者节点中获取第二预设子矩阵,具体为,若矩阵块0为任一矩阵块,根据矩阵块0在目标矩阵R中的位置,可知矩阵块0表示目标矩阵中的R0,2元素,矩阵块0对应的当前工作者节点为worker0,第一预设子矩阵是指
Figure BDA0002284739660000101
第二预设子矩阵是指
Figure BDA0002284739660000102
Figure BDA0002284739660000103
第一分解矩阵是指P矩阵,第二分解矩阵是指Q矩阵,R≈P×Q。
然后worker0利用随机梯度下降算法对
Figure BDA0002284739660000104
Figure BDA0002284739660000105
进行更新,得到第一目标子矩阵
Figure BDA0002284739660000106
和第二目标子矩阵
Figure BDA0002284739660000107
对于pattern1模式中的矩阵块0,该矩阵块对应的工作者节点worker0,worker0的第一预设子矩阵为
Figure BDA0002284739660000108
而从前面的计算中可知,
Figure BDA0002284739660000109
是由pattern0中矩阵块0对应的当前工作者节点对第一预设子矩阵更新之后得到的第一目标子矩阵,因此,在pattern0模式中,将第一目标子矩阵直接存储在本地中,当pattern1模式中需要使用的时候,直接从本地中获取即可。这样就避免了与参数服务器进行信息交互,减少了I/O开销。
参见图4,图4中(a)表示迭代0过程(也就是对进行pattern0更新),worker0被分配到了矩阵块0,所以它在本次迭代中运用随机梯度下降更新
Figure BDA00022847396600001010
Figure BDA00022847396600001011
两个矩阵块,并且输出
Figure BDA00022847396600001012
Figure BDA00022847396600001013
不过,它不需要把
Figure BDA00022847396600001014
Figure BDA00022847396600001015
都推送到远端的参数服务器,因为在下一次迭代,它被分配到了R0,0。图4中(b)表示迭代1过程(也就是对进行pattern1更新),worker0负责更新
Figure BDA00022847396600001016
Figure BDA00022847396600001017
两个矩阵块。
Figure BDA00022847396600001018
可以直接从worker0的本地获取到,而且其他的工作者节点也不需要
Figure BDA00022847396600001019
因此,
Figure BDA00022847396600001020
可以被保存到worker0本地,当worker0完成迭代0之后,只有
Figure BDA00022847396600001021
矩阵块需要被推送到环形架构中的下一个工作者节点worker1中。
其它工作者具有相似的工作过程:worker1只需要传送
Figure BDA00022847396600001022
worker2只需要传送
Figure BDA0002284739660000111
在上述实施例的基础上,优选地,还包括:
若下一模式由任一模式向左或向下平移得到,对于所述任一模式中的每一矩阵块,每一矩阵块对应一个工作者节点,对于任一矩阵块,所述任一矩阵块对应的当前工作者节点从所述环状架构中所述任一模式的上一模式、所述当前工作者节点的上一工作者节点中获取所述第一预设子矩阵,所述任一矩阵块对应的当前工作者节点从本地中获取所述第二预设子矩阵,所述第一预设子矩阵为第一分解矩阵中的一个矩阵块,所述第二预设子矩阵为第二分解矩阵中的一个矩阵块,所述第一分解矩阵和所述第二分解矩阵的乘积为所述目标矩阵,所述第一预设子矩阵与所述第二预设子矩阵的乘积为所述任一矩阵块;
所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第一预设子矩阵进行更新,获取第一目标子矩阵,所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第二预设子矩阵进行更新,获取第二目标子矩阵,所述任一矩阵块对应的当前工作者节点将所述第一目标子矩阵推送到所述环状架构中所述下一模式中、所述当前工作者节点的下一工作者节点,将所述第二目标子矩阵存储在本地。
更一般地,如果迭代过程中模式序列设计满足一步置换性质,那么每个工作者在每次迭代完成后都可以在本地保留一块矩阵块,而只传输另一块矩阵块。例如,如果模式矩阵的设计如图1所示,那么每一次迭代,或者P矩阵块,或者Q矩阵块需要被传输,而另一块矩阵可以被保留在本地。当m≈n时,P矩阵块和Q矩阵块大小相当,因此这种本地化的保留可以帮助减少一半的传输量。
具体地,本发明实施例中,对于任一模式的下一个模式,任一模式的下一模式由任一模式向右平移或者向上平移得到,也就是本发明实施例中每两个相邻的模式可以是通过向右平移或者向上平移得到,在该种情况下,只需要传输Q矩阵块。
图5为本发明实施例中模式平移和矩阵块传输关系的示意图,如图5所示,本发明实施例中,任一模式是指pattern0,任一模式的下一模式是指pattern1,任一模式对应的当前工作者节点为worker0,worker0获得的第二目标子矩阵为
Figure BDA0002284739660000121
当前工作者节点的下一个工作者节点是指worker1
Figure BDA0002284739660000122
是worker1的第二预设子矩阵。
如果模式仅仅通过向右平移或者向上平移生成新的模式,那么在整个迭代过程中,每次计算完成后,工作者节点都只需要把自己的矩阵块传输给另一个固定的工作者节点。
如图5中(a)所示,如果模式向右平移,那么worker0只需要把P矩阵块保留在本地,把Q矩阵块传送给worker1;如图5中(b)所示,如果模式向左平移,那么worker0只需要把Q矩阵块保留在本地,把P矩阵块传送给worker1
由于每个工作者节点只需要向一个固定的其他节点传输数据,那么如果按照这种“一步置换”的特性去生成每次迭代需要的模式,那么就不需要维护参数服务器的角色。因此,本发明实施例可以消除中心化的传输瓶颈而采用环状并行模式来运行随机梯度下降。
在上述实施例的基础上,优选地,所有的工作者节点为环形架构。
图6为本发明实施例中环形架构示意图,如图6所示,基于环(Ring)的架构也是一种去中心化的架构设计,之前主要被应用于高性能计算(HPC)领域,近年来被机器学习领域的研究重点关注并得到应用。在该架构下,参数同步遵循“分散(Scatter)+收集(Gather)”的方式。
每个工作者节点只和其邻居工作者节点有数据交互,整个架构在逻辑上组成一个环形来执行数据的同步。假设在当前分布式系统中有N个工作者节点(N=3),分散操作和收集操作均可以分为N-1步。
图6中(a)表示参数分散第一步,如图6中(a)所示,在每一步分散操作中,节点将1N的参数发送至它的一个邻居节点(比如说顺时针方向的邻居节点);同时,它也会从另一个邻居工作者节点1N的参数。
然后它会将收到的参数和自己本地的一份参数进行汇聚。
图6中(b)表示参数分散第二步,如图6中(b)所示,汇聚后的参数接着会在下一步分散操作中发送给它的顺时针节点,与此同时,当前节点也会继续从它的逆时针方向节点接收一份汇聚好的参数。经过这样的N-1步,每个节点上会拥有1N的全局参数。在接下来的收集操作中,参数收发也是按照类似的方式。
图6中(c)表示参数收集第一步,图6中(d)表示参数收集第二步,如图6中(c)和图6中(d)所示,对于每一步收到的参数,节点不再进行聚合,而是直接用收到的参数替换掉本地的对应参数部分。经过N-1步之后,每个节点获取到了完整的全局参数。
基于环的架构优势在于,没有“多打一”的通信,和前两者相比,也就避免了读写操作的竞争。
将工作者节点的环形架构应用到本发明实施例中,图7为本发明实施例中环形架构下模式平移和矩阵块的传输示意图,如图7所示,三个工作者节点从逻辑上构成环形,每个工作者都有一个前驱节点和一个后继节点。
图7中(a)表示模式向右平移的情况下,只在逻辑环中传输Q矩阵块,图7中(b)表示模式向左平移的情况下,只在逻辑环中传输P矩阵块。以worker0为例,每次迭代过程中,它都会在从它的前驱节点(即worker2)接收一个P矩阵块或者一个Q矩阵块,之后也向它的后继节点(即worker1)发送一个更新后的P矩阵块或者Q矩阵块。
经过一定次数迭代迭代之后(或者阈值条件达到后),其中的w-1个工作者节点将它们的P矩阵块和Q矩阵块发送至另一个工作者节点,组成最终分解得到的矩阵。
与参数服务器架构下的DSGD方案相比,本发明实施例采用了环形同步架构,可以克服中心化的网络瓶颈,对于RDMA/RoCE的部署取得更好的扩展性。在参数服务器架构下,RDMA的扩展性受到很大制约,这是因为,在工作者节点数目的增多的同时,队列对的消耗也会加剧。
相比之下,本发明实施例可以更好地利用RDMA带来的性能提升,这主要基于两点原因:第一,本发明实施例为每个节点只建立和维护两个连接,但是参数服务器需要维护至少w个连接。第二,参数服务器同时需要预先注册更多的工作内存,消耗的内存大小是工作者节点上工作内存的w倍,与之相对,本发明实施例注册的工作内存只和P矩阵块和Q矩阵块的大小线性相关,不随工作者节点数目增加而增加。
在上述实施例的基础上,优选地,每个工作者节点在每次迭代的平移操作必须保持一致。
对一个模式的训练称为一次迭代,所有工作者节点发送第一目标子矩阵和第二目标子矩阵的方向相同。
考虑到在本发明实施例中模式的生成是有序的,因此本发明实施例中和原始的DSGD算法相比,随机性受到了一定限制。先前的工作观察到,有序的模式序列可能会损害算法的鲁棒性,从而影响其收敛性能。因此,本发明实施例设计了三种随机化策略,为方案注入更多的随机性。
(1)、方向随机性。由于在“一步置换”过程中,按着单向逻辑环进行并行训练,存在两个平移方向可以选择(也就是向右或向上,当然也可以向左或向下),因此,可以在节点完成计算后,随机选择两个方向中的一个进行数据传输。
以相邻两个模式可以通过向右平移为例进行说明,每个工作者节点选择传输Q矩阵块,但是每个工作者节点在每次迭代的平移操作必须保持一致(也就是每个工作者节点在每次迭代中都是传输Q矩阵块),这样就可以保证逻辑环的模型并行不会被打破。
在上述实施例的基础上,优选地,采用随机策略,从所述目标矩阵中选择所述任一矩阵块。
(2)、块内随机性。图8为FPSGD和本发明实施例在目标矩阵块内元素条目选择上的对比图,如图8所示,在每次迭代过程中,图8中(b)表示本发明实施例采用随机策略从目标矩阵中选取矩阵块,如图8中(b)所示,工作者节点针对本地的矩阵块采用随机梯度下降进行模型参数的更新,在从R目标矩阵矩阵块中选择元素条目(也就是矩阵块)的过程中,随机化该选择过程。
先前工作,图8中(a)表示FPSGD采用顺序采样的方法从目标矩阵中选取矩阵块,如图8中(a)所示,采用顺序选择的策略来避免内存不连续性导致的缓存未命中影响性能。但是,在分布式求解大规模矩阵分解的场景下,内存连续性带来的收益微小,因为在该问题场景下,通信开销和磁盘I/O开销占主要成分,因此本发明实施例中牺牲掉一些内存连续性的收益来换取更大的随机性。
(3)块间随机性。与其把R目标矩阵分成恰好w×w块,本发明实施例可以通过切分更多的矩阵块来增加随机性。图9为本发明实施例中切分多个矩阵块增加随机性的示意图,如图9所示,可以把R目标矩阵切分成6×6块而不是3×3块,这样每个工作者节点同时得到每个模式中的两块矩阵块。然后模式的平移就会更加多样化。
本发明实施例用图9来示例这些块间的随机性。图9中(a)为初始的模式。对于同一个工作者节点存储的两个矩阵块,可以向同一个方向移动,如图9中(b)所示,图9中(b)为模式中的矩阵块向同一个方向移动一个矩阵块的距离;或者向不同的方向移动,如图9中(c)所示,图9中(c)为模式中的矩阵块向不同方向移动一个矩阵块的距离。
此外,步长也可以多样化,模式中矩阵块可以一起向同一个方向移动两个矩阵块的距离,如图9中(d)所示,图9中(d)为模式中的矩阵块向同一个方向移动两个矩阵块的距离;或者向不同的方向移动两个矩阵块的距离,如图9中(e)所示,图9中(e)为模式中的矩阵块向不同方向移动两个矩阵块的距离。这些平移置换都不会打破原有的单向的环状模型并行。值得注意的是,更多的矩阵块可以更好地重叠计算和通信,但是同时,过多的矩阵块也会导致更多的发送/接收操作,从而导致更严重的启动开销。
在上述实施例的基础上,优选地,所述模式序列中的每一模式预加载在每一工作者节点上。
当R目标矩阵非常大时,不能完全存储在内存里,因此每次迭代,工作者节点需要从磁盘读取对应的矩阵块到内存。之前的工作中,因为每个工作者节点预先不知道参数服务器会为其分配哪一个矩阵块,因此不能提前预读取矩阵块到内存,而盲目的预取收效甚微,不能很好地改善性能。
为了获知需要预读取的矩阵块,工作者节点需要额外和参数服务器交互,由此又可能带来额外的开销。对于诸如FPSGD和MLGF-MF等方案,情况更加复杂,因为它们把R目标矩阵切分成了更多的矩阵块来缓解锁问题,不过这种切分方法也使得模式序列更加不确定O1,而且参数服务器也需要进行更复杂的调度来保证每块矩阵块被用的次数相同。
但是,在本发明实施例的方案中,模式的序列是和工作者节点的性能独立的。换句话说,模式序列可以在训练开始前被确定。在训练开始时,模式序列可以预先被加载到每个工作者节点上,这样它们就能在每次迭代开始前获知应该读取哪个矩阵块。
为了克服磁盘I/O开销,使用了预定义的模式序列,并设计了一个预加载机制来将每次迭代所需要的R矩阵块预先从磁盘读取到内存。在初始启动阶段,每个工作者节点根据内存预算,尽最大限度读取后续迭代所需的矩阵块。
然后启动一个线程不断地释放已经用过的矩阵块,并且不断读取新的矩阵块到内存。通过这种方式,可以将磁盘I/O开销和计算/通信开销很好地重叠起来。
综上,本发明针对现有技术中DSGD存在的以下三个方面的问题:
(1)、数据通信存在数据冗余,每次训练迭代,均需要从工作者节点向参数服务器传输P和Q两部分矩阵参数,在大规模矩阵分解场景下会显著拖慢训练速度。
(2)、中心化的分布式架构容易形成中心化瓶颈,特别是对于RDMA的应用部署会造成限制和风险,具体地,PS端的QP数目消耗巨大,直接制约方案的扩展性,并影响性能;“多对一”的通信模式容易引发“队头阻塞”等相关问题。
(3)、I/O开销明显,每次迭代,工作者节点只有在收到PS端的相关序列信息之后才能从磁盘读取相关的数据块,从而引入巨大的I/O开销。
本发明的目的在于设计一种加速大规模分布式矩阵分解系统训练的方法—Rima,能够显著缩短大规模矩阵分解的训练时间,减少通信开销,更有利于RDMA的应用部署,从而实现训练加速。
本发明提实施例出的方法的思路在于:分布式矩阵分解算法在迭代过程中存在一些优良特性,可以利用“环状模型并行”架构,并设计合适的变换策略,充分利用相邻迭代之间的数据本地化特点,减少通信连接数目,并重叠I/O开销,进一步提高训练速度。具体地,本发明实施例采用了以下四方面策略对于分布式矩阵分解训练过程进行加速:
(1)、“一步置换策略”,通过巧妙设计相邻迭代之间使用的模式pattern,可以充分利用参数的本地化特性,从而减少节点之间数据的传输,并且改变了中心化的分布式计算方式,利用环状模型并行,可以减少节点连接数,更有利于方案的扩展性。
(2)、“环状模型并行”:通过将工作者节点间以逻辑环进行排列,减少工作者节点的连接数量,改善对RDMA的扩展性支持。同时,由于采用“一步置换策略”,每个工作者节点只需要向另外一个固定的工作者节点传输数据即可。
(3)、“部分随机策略”,从块间随机、块内随机、块数增加三个方面增强样本的随机性和算法的鲁棒性,并通过实验验证,加入“部分随机策略”的方案和“完全随机策略“的方案收敛性相当。
(4)、“预定义Pattern策略”,对于模式Pattern序列进行预定义,并根据每台server节点的内存预算进行异步加载,从而可以很好地重叠计算/通信开销和I/O读取开销,提高训练速度。
本发明实施例对于Rima的性能进行测量,并且和传统的分布式矩阵分解方案DSGD进行对比实验。具体地,搭建了5个工作者节点的测试床,每个节点配备CX3型号的RDMA网卡,对于Rima,采用4工作者节点进行矩阵分解训练,对于DSGD,采用1PS+4Worker进行矩阵分解训练。
实验过程中我们选用了3个常用的Benchmark,分别是MovieLen-10M,Yahoo!Music和Jumbo。
对于两种方案,利用TCP和RDMA为通信协议分别进行了实验,模型训练选用相同的超参数设定,在训练迭代一定的情况下,我们统计比较两者的完成时间,并且对于相同时间下二者的收敛性(指标为RMSE)进行对比。
实验结果表明,采用TCP为通信协议,Rima相比DSGD可以缩短68.7%的训练时间(不含I/O开销);采用RDMA为通信协议,Rima相比DSGD可以缩短85.4%的训练时间(不含I/O开销)。
为了进一步验证方案的扩展性,通过增加每个工作者节点上的RDMA连接数目,实验表明,DSGD训练时间被明显延长,同时每个工作者节点不能支持超过60个QP。此外,采用NS3进行了大规模的仿真,通过对比采用P2P通信模式(DSGD)下的网卡吞吐和Ring通信模式(Rima)下的网卡吞吐,我们发现,随着节点数目的增多,前者的吞吐明显下降,后者的吞吐依然接近网卡吞吐上限,由此进一步证明了Rima方案的扩展性优势。
图10为本发明实施例提供的一种加速分布式矩阵分解系统训练的装置的结构示意图,如图10所示,该系统包括:分解模块1001、模式模块1002、训练模块1003和更新模块1004。其中:
分解模块1001用于根据分布式矩阵分解系统中工作者节点的个数,将目标矩阵分解为若干个矩阵块;
模式模块1002用于根据分布式矩阵分解系统中工作者节点的个数,将目标矩阵分解为若干个矩阵块;
训练模块1003用于对于所述模式序列中的任意两个相邻的模式,对每一模式进行训练,具体地:若下一模式由任一模式向右或向上平移得到,对于所述任一模式中的每一矩阵块,每一矩阵块对应一个工作者节点,对于任一矩阵块,所述任一矩阵块对应的当前工作者节点从本地中获取第一预设子矩阵,所述任一矩阵块对应的当前工作者节点从所述环状架构中所述任一模式的上一模式、所述当前工作者节点的上一工作者节点中获取第二预设子矩阵,所述第一预设子矩阵为第一分解矩阵中的一个矩阵块,所述第二预设子矩阵为第二分解矩阵中的一个矩阵块,所述第一分解矩阵和所述第二分解矩阵的乘积为所述目标矩阵,所述第一预设子矩阵与所述第二预设子矩阵的乘积为所述任一矩阵块;
更新模块1004用于所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第一预设子矩阵进行更新,获取第一目标子矩阵,所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第二预设子矩阵进行更新,获取第二目标子矩阵,所述任一矩阵块对应的当前工作者节点将所述第一目标子矩阵存储在本地中,将所述第二目标子矩阵推送到所述环状架构中所述下一模式中、所述当前工作者节点的下一工作者节点。
本发明实施例提供的系统实施例是为了实现上述各方法实施例的,具体流程和详细内容请参照上述方法实施例,此处不再赘述。
图11为本发明实施例提供的一种电子设备的实体结构示意图,如图11所示,该电子设备可以包括:处理器(processor)1101、通信接口(Communications Interface)1102、存储器(memory)1103和总线1104,其中,处理器1101,通信接口1102,存储器1103通过总线1104完成相互间的通信。通信接口1102可以用于电子设备的信息传输。处理器1101可以调用存储器1103中的逻辑指令,以执行包括如下的方法:
根据分布式矩阵分解系统中工作者节点的个数,将目标矩阵分解为若干个矩阵块;
环状架构根据所述目标矩阵,生成模式序列,所述模式序列中包含若干个模式,对于任一模式,所述任一模式中包含若干个可互换的矩阵块,可互换的矩阵块表示任意两个矩阵块之间没有相同的行或者列,所述模式序列覆盖了所述目标矩阵中的所有矩阵块;
对于所述模式序列中的任意两个相邻的模式,对每一模式进行训练,具体地:对于任一模式的下一模式,若所述下一模式由所述任一模式向右或向上平移得到,对于所述任一模式中的每一矩阵块,每一矩阵块对应一个工作者节点,对于任一矩阵块,所述任一矩阵块对应的当前工作者节点从本地中获取第一预设子矩阵,所述任一矩阵块对应的当前工作者节点从所述环状架构中所述任一模式的上一模式、所述当前工作者节点的上一工作者节点中获取第二预设子矩阵,所述第一预设子矩阵为第一分解矩阵中的一个矩阵块,所述第二预设子矩阵为第二分解矩阵中的一个矩阵块,所述第一分解矩阵和所述第二分解矩阵的乘积为所述目标矩阵,所述第一预设子矩阵与所述第二预设子矩阵的乘积为所述任一矩阵块;
所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第一预设子矩阵进行更新,获取第一目标子矩阵,所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第二预设子矩阵进行更新,获取第二目标子矩阵,所述任一矩阵块对应的当前工作者节点将所述第一目标子矩阵存储在本地中,将所述第二目标子矩阵推送到所述环状架构中所述下一模式中、所述当前工作者节点的下一工作者节点。
此外,上述的存储器1103中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明上述各方法实施例的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:
根据分布式矩阵分解系统中工作者节点的个数,将目标矩阵分解为若干个矩阵块;
环状架构根据所述目标矩阵,生成模式序列,所述模式序列中包含若干个模式,对于任一模式,所述任一模式中包含若干个可互换的矩阵块,可互换的矩阵块表示任意两个矩阵块之间没有相同的行或者列,所述模式序列覆盖了所述目标矩阵中的所有矩阵块;
对于所述模式序列中的任意两个相邻的模式,对每一模式进行训练,具体地:对于任一模式的下一模式,若所述下一模式由所述任一模式向右或向上平移得到,对于所述任一模式中的每一矩阵块,每一矩阵块对应一个工作者节点,对于任一矩阵块,所述任一矩阵块对应的当前工作者节点从本地中获取第一预设子矩阵,所述任一矩阵块对应的当前工作者节点从所述环状架构中所述任一模式的上一模式、所述当前工作者节点的上一工作者节点中获取第二预设子矩阵,所述第一预设子矩阵为第一分解矩阵中的一个矩阵块,所述第二预设子矩阵为第二分解矩阵中的一个矩阵块,所述第一分解矩阵和所述第二分解矩阵的乘积为所述目标矩阵,所述第一预设子矩阵与所述第二预设子矩阵的乘积为所述任一矩阵块;
所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第一预设子矩阵进行更新,获取第一目标子矩阵,所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第二预设子矩阵进行更新,获取第二目标子矩阵,所述任一矩阵块对应的当前工作者节点将所述第一目标子矩阵存储在本地中,将所述第二目标子矩阵推送到所述环状架构中所述下一模式中、所述当前工作者节点的下一工作者节点。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种加速分布式矩阵分解系统训练的方法,其特征在于,包括:
根据分布式矩阵分解系统中工作者节点的个数,将目标矩阵分解为若干个矩阵块;
环状架构根据所述目标矩阵,生成模式序列,所述模式序列中包含若干个模式,对于任一模式,所述任一模式中包含若干个可互换的矩阵块,可互换的矩阵块表示任意两个矩阵块之间没有相同的行或者列,所述模式序列覆盖了所述目标矩阵中的所有矩阵块;
对每一模式进行训练,对于所述模式序列中的任意两个相邻的模式,具体地:对于任一模式的下一模式,若所述下一模式由所述任一模式向右或向上平移得到,对于所述任一模式中的每一矩阵块,每一矩阵块对应一个工作者节点,对于任一矩阵块,所述任一矩阵块对应的当前工作者节点从本地中获取第一预设子矩阵,所述任一矩阵块对应的当前工作者节点从所述环状架构中所述任一模式的上一模式、所述当前工作者节点的上一工作者节点中获取第二预设子矩阵,所述第一预设子矩阵为第一分解矩阵中的一个矩阵块,所述第二预设子矩阵为第二分解矩阵中的一个矩阵块,所述第一分解矩阵和所述第二分解矩阵的乘积为所述目标矩阵,所述第一预设子矩阵与所述第二预设子矩阵的乘积为所述任一矩阵块;
所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第一预设子矩阵进行更新,获取第一目标子矩阵,所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第二预设子矩阵进行更新,获取第二目标子矩阵,所述任一矩阵块对应的当前工作者节点将所述第一目标子矩阵存储在本地中,将所述第二目标子矩阵推送到所述环状架构中所述下一模式中、所述当前工作者节点的下一工作者节点。
2.根据权利要求1所述加速分布式矩阵分解系统训练的方法,其特征在于,还包括:
若所述下一模式由所述任一模式向左或向下平移得到,对于所述任一模式中的每一矩阵块,每一矩阵块对应一个工作者节点,对于任一矩阵块,所述任一矩阵块对应的当前工作者节点从所述环状架构中所述任一模式的上一模式、所述当前工作者节点的上一工作者节点中获取所述第一预设子矩阵,所述任一矩阵块对应的当前工作者节点从本地中获取所述第二预设子矩阵,所述第一预设子矩阵为第一分解矩阵中的一个矩阵块,所述第二预设子矩阵为第二分解矩阵中的一个矩阵块,所述第一分解矩阵和所述第二分解矩阵的乘积为所述目标矩阵,所述第一预设子矩阵与所述第二预设子矩阵的乘积为所述任一矩阵块;
所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第一预设子矩阵进行更新,获取第一目标子矩阵,所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第二预设子矩阵进行更新,获取第二目标子矩阵,所述任一矩阵块对应的当前工作者节点将所述第一目标子矩阵推送到所述环状架构所述下一模式中、所述当前工作者节点的下一工作者节点,将所述第二目标子矩阵存储在本地。
3.根据权利要求1或2所述加速分布式矩阵分解系统训练的方法,其特征在于,所有的工作者节点为环形架构。
4.根据权利要求1或2所述加速分布式矩阵分解系统训练的方法,其特征在于,每个工作者节点在每次迭代的平移操作必须保持一致。
5.根据权利要求1所述加速分布式矩阵分解系统训练的方法,其特征在于,采用随机策略,从所述目标矩阵中选择所述任一矩阵块。
6.根据权利要求1所述加速分布式矩阵分解系统训练的方法,其特征在于,所述模式序列中的每一模式预加载在每一工作者节点上。
7.一种加速分布式矩阵分解系统训练的装置,其特征在于,包括:
分解模块,用于根据分布式矩阵分解系统中工作者节点的个数,将目标矩阵分解为若干个矩阵块;
模式模块,用于环状架构根据所述目标矩阵,生成模式序列,所述模式序列中包含若干个模式,对于任一模式,所述任一模式中包含若干个可互换的矩阵块,可互换的矩阵块表示任意两个矩阵块之间没有相同的行或者列,所述模式序列覆盖了所述目标矩阵中的所有矩阵块;
训练模块,用于对每一模式进行训练,对于所述模式序列中的任意两个相邻的模式,具体地:对于任一模式的下一模式,若所述下一模式由所述任一模式向右或向上平移得到,对于所述任一模式中的每一矩阵块,每一矩阵块对应一个工作者节点,对于任一矩阵块,所述任一矩阵块对应的当前工作者节点从本地中获取第一预设子矩阵,所述任一矩阵块对应的当前工作者节点从所述环状架构中所述任一模式的上一模式、所述当前工作者节点的上一工作者节点中获取第二预设子矩阵,所述第一预设子矩阵为第一分解矩阵中的一个矩阵块,所述第二预设子矩阵为第二分解矩阵中的一个矩阵块,所述第一分解矩阵和所述第二分解矩阵的乘积为所述目标矩阵,所述第一预设子矩阵与所述第二预设子矩阵的乘积为所述任一矩阵块;
更新模块,用于所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第一预设子矩阵进行更新,获取第一目标子矩阵,所述任一矩阵块对应的当前工作者节点利用随机梯度下降算法对所述第二预设子矩阵进行更新,获取第二目标子矩阵,所述任一矩阵块对应的当前工作者节点将所述第一目标子矩阵存储在本地中,将所述第二目标子矩阵推送到所述环状架构中所述下一模式中、所述当前工作者节点的下一工作者节点。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述加速分布式矩阵分解系统训练的方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述加速分布式矩阵分解系统训练的方法的步骤。
CN201911155681.8A 2019-11-22 2019-11-22 一种加速分布式矩阵分解系统训练的方法及装置 Pending CN111125621A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911155681.8A CN111125621A (zh) 2019-11-22 2019-11-22 一种加速分布式矩阵分解系统训练的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911155681.8A CN111125621A (zh) 2019-11-22 2019-11-22 一种加速分布式矩阵分解系统训练的方法及装置

Publications (1)

Publication Number Publication Date
CN111125621A true CN111125621A (zh) 2020-05-08

Family

ID=70496409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911155681.8A Pending CN111125621A (zh) 2019-11-22 2019-11-22 一种加速分布式矩阵分解系统训练的方法及装置

Country Status (1)

Country Link
CN (1) CN111125621A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114499885A (zh) * 2022-02-14 2022-05-13 中国农业银行股份有限公司 一种工作量证明的方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103335617A (zh) * 2013-06-19 2013-10-02 清华大学 一种基于振动信号的铁路钢轨几何形变检测方法
US20140156575A1 (en) * 2012-11-30 2014-06-05 Nuance Communications, Inc. Method and Apparatus of Processing Data Using Deep Belief Networks Employing Low-Rank Matrix Factorization
CN105975440A (zh) * 2016-05-05 2016-09-28 浙江理工大学 一种基于图计算模型的矩阵分解并行化方法
CN106156810A (zh) * 2015-04-26 2016-11-23 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点
CN106294288A (zh) * 2016-07-27 2017-01-04 中南大学 一种分布式非负矩阵分解方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140156575A1 (en) * 2012-11-30 2014-06-05 Nuance Communications, Inc. Method and Apparatus of Processing Data Using Deep Belief Networks Employing Low-Rank Matrix Factorization
CN103335617A (zh) * 2013-06-19 2013-10-02 清华大学 一种基于振动信号的铁路钢轨几何形变检测方法
CN106156810A (zh) * 2015-04-26 2016-11-23 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点
CN105975440A (zh) * 2016-05-05 2016-09-28 浙江理工大学 一种基于图计算模型的矩阵分解并行化方法
CN106294288A (zh) * 2016-07-27 2017-01-04 中南大学 一种分布式非负矩阵分解方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JINKUN GENG: "Rima: An RDMA-Accelerated Model-Parallelized Solution to Large-Scale Matrix", 《RESEARCHGATE》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114499885A (zh) * 2022-02-14 2022-05-13 中国农业银行股份有限公司 一种工作量证明的方法及系统
CN114499885B (zh) * 2022-02-14 2024-03-19 中国农业银行股份有限公司 一种工作量证明的方法及系统

Similar Documents

Publication Publication Date Title
González et al. Scatter search with path relinking for the flexible job shop scheduling problem
Weng et al. Synchronization of chaotic systems and their machine-learning models
CN113098714B (zh) 基于强化学习的低时延网络切片方法
CN108139887B (zh) 跨硬件加速器并行化矩阵分解的方法和系统
Wang Petri Nets for Dynamic Event-Driven System Modeling.
Reisizadeh et al. Latency analysis of coded computation schemes over wireless networks
CN110168578A (zh) 具有任务特定路径的多任务神经网络
JP6898778B2 (ja) 機械学習システム及び機械学習方法
Reisizadeh et al. Codedreduce: A fast and robust framework for gradient aggregation in distributed learning
JP2020123356A (ja) 深層強化学習及び転移学習を用いた製造ディスパッチングのためのシステム
Ye et al. A new approach for resource scheduling with deep reinforcement learning
Laha et al. A Hungarian penalty-based construction algorithm to minimize makespan and total flow time in no-wait flow shops
CN111125621A (zh) 一种加速分布式矩阵分解系统训练的方法及装置
CN111324630A (zh) 基于mpi的神经网络架构搜索并行化方法和设备
US20240169237A1 (en) A computer implemented method for real time quantum compiling based on artificial intelligence
Zhao et al. Dynamic regret of online markov decision processes
US20170300553A1 (en) System and methodology for propagating modifications in key-value pairs across a cluster of computers
CN113505021B (zh) 基于多主节点主从分布式架构的容错方法及系统
KR101497669B1 (ko) 일정 수 이상의 파일 조각으로 원본 파일을 복구하는 파일 관리 장치 및 방법
Ali et al. Parallel collaborative filtering for streaming data
Tomita et al. Comparison of ancilla preparation and measurement procedures for the Steane [[7, 1, 3]] code on a model ion-trap quantum computer
CN110838993B (zh) 一种子带交换路径规划方法及系统
US20150150011A1 (en) Self-splitting of workload in parallel computation
US20170220659A1 (en) System and method of key range deletions
KR20220065072A (ko) 트랜잭션 관리 방법, 시스템, 네트워크 기기 및 판독 가능 저장 매체

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200508

RJ01 Rejection of invention patent application after publication