分布式计算系统、方法及存储介质技术方案

技术编号:19542911 阅读:29 留言:0更新日期:2018-11-24 20:28
本发明专利技术公开了一种分布式计算系统、方法及存储介质;分布式计算系统包括至少两个计算节点和至少两个参数服务节点;计算节点根据训练数据的子集包括的用户,初始化用户矩阵中对应用户的向量,得到由所初始化的向量构成的用户子矩阵;计算节点根据训练数据的子集、从参数服务节点获取的项目子矩阵迭代计算用户子矩阵以及项目子矩阵,将每次迭代计算后得到项目子矩阵传输至相应的参数服务节点;参数服务节点初始化部分项目对应的向量,得到由所初始化的向量构成的项目子矩阵;参数服务节点根据计算节点传输的项目子矩阵,更新参数服务节点所存储的项目子矩阵。实施本发明专利技术,能够以集约的方式完成计算任务。

Distributed Computing System, Method and Storage Media

The invention discloses a distributed computing system, method and storage medium; the distributed computing system comprises at least two computing nodes and at least two parameter service nodes; the computing node initializes the vector of the user in the user matrix according to the user included in the subset of training data, and obtains the initialized vector structure. The user sub-matrix is generated; the computing node iteratively calculates the user sub-matrix and the item sub-matrix according to the subset of training data and the item sub-matrix obtained from the parameter service node. After each iteration, the item sub-matrix is transferred to the corresponding parameter service node; and the direction of the initial part of the item is initialized by the parameter service node. The parameter service node updates the item sub-matrix stored by the parameter service node according to the item sub-matrix transmitted by the calculation node. By implementing the present invention, the computational task can be accomplished in an intensive manner.

【技术实现步骤摘要】
分布式计算系统、方法及存储介质
本专利技术涉及计算机技术,尤其涉及一种分布式计算系统、方法及存储介质。
技术介绍
人工智能得到快速发展,广泛应用到各种行业中。以商品推荐的应用场景为例,根据用户的行为数据,采用机器学习的方法训练出预测用户对不同商品的评分的模型,从而能够计算出用户对不同商品的评分的排序,选取评分高的商品向用户推荐,能够帮助用户迅速定位感兴趣的商品,实现精准、高效地产品营销。例如,目前的商品推荐依赖于大数据处理技术,需要对采集的海量的行为数据进行分析处理,以训练具有评分预测性能的模型,这对承担训练任务的计算系统的资源(包括内存资源、通信资源等)开销提出很高的要求。然而,相关技术提供的计算系统中单个节点的资源有限,且计算系统的升级往往具有滞后性,单个节点的资源有限的现状与模型训练的计算需要高资源开销之间的矛盾,成为难以解决的技术问题。
技术实现思路
本专利技术实施例提供一种分布式计算系统、方法及存储介质,能够以资源集约的方式完成计算任务。本专利技术实施例的技术方案是这样实现的:第一方面,本专利技术实施例提供一种分布式计算系统,包括:至少两个计算节点和至少两个参数服务节点;其中,所述计算节点,用于根据训练数据的子集包括的用户,初始化用户矩阵中对应所述用户的向量,得到由所初始化的向量构成的用户子矩阵;所述计算节点,用于根据所述训练数据的子集、从所述参数服务节点获取的项目子矩阵,迭代计算所述用户子矩阵、以及所述项目子矩阵,将每次迭代计算之后得到的项目子矩阵传输至相应的参数服务节点;所述参数服务节点,用于初始化部分项目对应的向量,得到由所初始化的向量构成的项目子矩阵,所述部分项目为所述训练数据包括的项目中的部分项目;所述参数服务节点,用于根据所述计算节点传输的项目子矩阵,更新所述参数服务节点所存储的项目子矩阵。第二方面,本专利技术实施例提供一种分布式计算方法,应用于包括至少两个计算节点和至少两个参数服务节点的分布式计算系统;包括:所述计算节点根据训练数据的子集包括的用户,初始化用户矩阵中对应所述用户的向量,得到由所初始化的向量构成的用户子矩阵;所述计算节点根据所述训练数据的子集、从所述参数服务节点获取的项目子矩阵,迭代计算所述用户子矩阵、以及所述项目子矩阵,将每次迭代计算之后得到的项目子矩阵,传输至相应的参数服务节点;所述参数服务节点初始化部分项目对应的向量,得到由所初始化的向量构成的项目子矩阵,所述部分项目为所述训练数据包括的项目中的部分项目;所述参数服务节点根据所述计算节点传输的项目子矩阵,更新所述参数服务节点所存储的项目子矩阵。第三方面,本专利技术实施例提供一种存储介质,存储有可执行程序,所述可执行程序被处理器执行时实现以下的操作:当处于计算节点模式时,根据训练数据的子集包括的用户,初始化用户矩阵中对应所述用户的向量,得到由所初始化的向量构成的用户子矩阵;当处于计算节点模式时,根据所述训练数据的子集、从所述参数服务节点获取的项目子矩阵,迭代计算所述用户子矩阵、以及所述项目子矩阵,将每次迭代计算之后得到的项目子矩阵传输至相应的参数服务节点;当处于参数服务节点模式时,初始化部分项目对应的向量,得到由所初始化的向量构成的项目子矩阵,所述部分项目为所述训练数据包括的项目中的部分项目;当处于参数服务节点模式时,根据所述计算节点传输的项目子矩阵,更新所述参数服务节点所存储的项目子矩阵。本专利技术实施例具有以下有益效果:1)将项目矩阵和用户矩阵以子矩阵的方式分布式存储,降低了对单个节点的内存空间的占用,克服了相关技术对于单节点内存需要能够存储完整的用户矩阵和项目矩阵的限制,能够在内存资源有限的分布式计算系统中实现大规模的计算;2)单个节点的通信开销被有效降低,消除了通信开销遇到网络带宽瓶颈的情况,有利于网络通信负载的均衡化,避免了因等待数据导致计算节点闲置的情况,提升了计算效率。3)多个计算节点基于训练数据的子集对存储的用户子矩阵、以及项目子矩阵进行迭代计算,一方面,因为计算复杂度降低进而降低了对单个节点的计算资源的开销,降低了单个节点的计算复杂度,另一方面,计算节点并行计算的方式有效提升了计算效率。附图说明图1是本专利技术实施例提供的根据矩阵分解模型将评分矩阵分解为用户矩阵和项目矩阵的一个可选的示意图;图2是本专利技术实施例提供的大数据平台的一个可选的结构示意图;图3是本专利技术实施例提供根据矩阵分解模型将评分矩阵分解为用户矩阵和项目矩阵的一个示意图;图4是本专利技术实施例提供的分布式计算系统200的一个可选的架构示意图;图5是本专利技术实施例提供的分布式计算系统200的一个可选的结构示意图;图6是本专利技术实施例提供的如图5所示的分布式计算系统200用于模型训练时的一个可选的处理示意图;图7是本专利技术实施例提供的如图5所示的分布式计算系统200用于模型训练时的一个可选的处理示意图;图8-1是本专利技术实施例提供的参数服务节点与计算节点之间传输项目矩阵的参数的一个可选的示意图;图8-2是本专利技术实施例提供的参数服务节点与计算节点之间传输项目矩阵的参数的一个可选的示意图;图9是本专利技术实施例提供的计算节点分批次与参数服务节点传输项目矩阵的处理示意图;图10是本专利技术实施例提供的应用于一种分布式计算方法的流程示意图;图11是本专利技术实施例提供的训练用于预测评分的模型的可选的流程示意图;图12是本专利技术实施例提供的如图2所示的大数据平台200的一个可选的应用场景示意图。具体实施方式以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。对本专利技术进行进一步详细说明之前,对本专利技术实施例中涉及的名词和术语进行说明,本专利技术实施例中涉及的名词和术语适用于如下的解释。1)行为数据,包括用户(如序列号等形式的标识信息描述),用户产生评分行为的项目(如商品、文章、应用等,可以采用序列号等方式描述)、以及用户针对项目的兴趣度(本文中也称为评分),多个用户的行为数据构成行为数据集(本文中也称为训练数据);以线上商品为例,评分行为包括:浏览商品、收藏项目、购买商品和评论商品。2)模型,即矩阵分解模型,也称为潜在语义模型(LFM,LatentFactorModel),用于初始化评分矩阵,将用于表示训练数据的评分矩阵进行分解,形成用户矩阵与项目矩阵的乘积的模型。3)矩阵分解(MF,MatrixFactorization),将训练数据使用评分矩阵Y表示,假设评分数据涉及M个用户对N个不同项目的评分,评分矩阵Y的每个行向量对应一个用户对不同项目的评分,评分矩阵Y的每个列向量对应一个项目所得到的不同用户的评分,使用矩阵分解模型初始化评分矩阵,即在评分矩阵中引入K(为预设值)个维度的特征,从而将评分矩阵Y根据矩阵分解模型初始化为:用户-特征矩阵(简称用户矩阵)U和特征-项目矩阵V(简称项目矩阵)的乘积。由于训练数据是用户的行为数据,而实际上用户不可能采集对全部项目的评分,对评分矩阵中的缺失值进行预测,也就是预测用户对未评分项目的评分,通过矩阵分解模型,将对缺失值的预测问题,转换为求解用户矩阵的参数和项目矩阵的参数的问题,也就是求解用户矩阵在K个维度的参数向量、以及项目矩阵在K个维度的参数向量的问题。举例来说,参见图1,图1是本专利技术实施例本文档来自技高网...

【技术保护点】
1.一种分布式计算系统,其特征在于,包括:至少两个计算节点和至少两个参数服务节点;其中,所述计算节点,用于根据训练数据的子集包括的用户,初始化用户矩阵中对应所述用户的向量,得到由所初始化的向量构成的用户子矩阵;所述计算节点,用于根据所述训练数据的子集、从所述参数服务节点获取的项目子矩阵,迭代计算所述用户子矩阵、以及所述项目子矩阵,将每次迭代计算之后得到的项目子矩阵传输至相应的参数服务节点;所述参数服务节点,用于初始化部分项目对应的向量,得到由所初始化的向量构成的项目子矩阵,所述部分项目为所述训练数据包括的项目中的部分项目;所述参数服务节点,用于根据所述计算节点传输的项目子矩阵,更新所述参数服务节点所存储的项目子矩阵。

【技术特征摘要】
1.一种分布式计算系统,其特征在于,包括:至少两个计算节点和至少两个参数服务节点;其中,所述计算节点,用于根据训练数据的子集包括的用户,初始化用户矩阵中对应所述用户的向量,得到由所初始化的向量构成的用户子矩阵;所述计算节点,用于根据所述训练数据的子集、从所述参数服务节点获取的项目子矩阵,迭代计算所述用户子矩阵、以及所述项目子矩阵,将每次迭代计算之后得到的项目子矩阵传输至相应的参数服务节点;所述参数服务节点,用于初始化部分项目对应的向量,得到由所初始化的向量构成的项目子矩阵,所述部分项目为所述训练数据包括的项目中的部分项目;所述参数服务节点,用于根据所述计算节点传输的项目子矩阵,更新所述参数服务节点所存储的项目子矩阵。2.如权利要求1所述的分布式计算系统,其特征在于,还包括:控制节点,用于以用户为维度,划分所述训练数据包括的针对多个所述项目的评分,得到所述训练数据的多个子集,将所述多个子集分配给所述至少两个计算节点。3.如权利要求1所述的分布式计算系统,其特征在于,还包括:控制节点,用于当所述计算节点迭代计算的中止条件满足时,组合各所述计算节点存储的用户子矩阵,得到用户矩阵;组合各所述参数服务节点存储的项目子矩阵,得到项目矩阵;所述控制节点,还用于根据所述用户矩阵中对应目标用户的向量,与所述项目矩阵中对应目标项目的向量的乘积,得到所述目标用户针对所述目标项目的评分。4.如权利要求1所述的分布式计算系统,其特征在于,所述计算节点,具体用于根据所分配到的所述子集,确定所述子集中包括的已评分项目,从所述参数服务节点存储的所述项目子矩阵中,获取所述已评分项目对应的向量;所述计算节点,具体用于迭代计算所述用户子矩阵中部分用户对应的向量、以及所述项目子矩阵中对应所述已评分项目的向量,所述部分用户为所述子集包括的用户中针对所述已评分项目产生评分行为的用户;所述计算节点,具体用于将每次迭代计算后得到的与所述已评分项目对应的向量,传输至相应的参数服务节点。5.如权利要求4所述的分布式计算系统,其特征在于,所述计算节点,具体用于从所述参数服务节点存储的所述项目子矩阵中,分批次获取所述已评分项目对应的向量;所述计算节点,具体用于迭代计算所述用户子矩阵中相应批次用户对应的向量、以及相应批次的已评分项目对应的向量,所述相应批次用户为所述部分用户中针对所述批次的已评分项目产生评分行为的用户;所述计算节点,具体用于将每次迭代计算后得到的与相应批次的已评分项目对应的向量,传输至相应的参数服务节点。6.如权利要求5所述的分布式计算系统,其特征在于,所述计算节点,还用于根据所述计算节点的内存空间,确定所述批次的数量,其中,每个所述批次的已评分项目对应的向量占用的存储空间,小于所述计算节点的内存空间。7.如权利要求4所述的分布式计算系统,其特征在于,所述参数服务节点,具体用于根据所述计算节点传输的与所述已评分项目对应的向量,更新所述参数服务节点存储的所述项目子矩阵。8.如权利要求1至7任一项所述的分布式计算系统,其特征在于,所述计算节点,具体用于将评分预测值与所述训练数据的子集中包括的评分实际值作差,得到预测差值;所述计算节点,具体用于将所述预测差值与所述项目子矩阵的乘积,与所述用户子矩阵叠加,得到更新的用户子矩阵;所述计算节点,具体用于将所述预测差值与所述更新的用户子矩阵的乘积,与所述项目子矩阵叠加,得到更新的项目子矩阵。9.一种分布式计算方法,其特征在于,应用于包括至少两个计算节点和至少两个参数服务节点的分布式计算系统;包括:所述计算节点根据训练数据的子集包括的用户,初始化用户矩阵中对应所述用户的向量,得到...

【专利技术属性】
技术研发人员:谭蕴琨余乐刘煜宏蒋杰
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1