CN108875955A - 基于参数服务器的梯度提升决策树的实现方法及相关设备 - Google Patents
基于参数服务器的梯度提升决策树的实现方法及相关设备 Download PDFInfo
- Publication number
- CN108875955A CN108875955A CN201710326930.XA CN201710326930A CN108875955A CN 108875955 A CN108875955 A CN 108875955A CN 201710326930 A CN201710326930 A CN 201710326930A CN 108875955 A CN108875955 A CN 108875955A
- Authority
- CN
- China
- Prior art keywords
- parameter server
- node
- splitting point
- best splitting
- histogram
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N99/00—Subject matter not provided for in other groups of this subclass
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于参数服务器的梯度提升决策树的实现方法,包括:通过预设的参数服务器获取最佳***点的接口,分别向P个参数服务器节点发送最佳***点获取请求;其中,参数服务器包括P个参数服务器节点,每个参数服务器节点各自存储有M/P个特征;接收P个参数服务器节点分别发送的最佳***点的信息,得到P个最佳***点的信息;其中P个最佳***点为P个参数服务器节点通过预设的GBDT优化算法从各自存储的M/P个特征中计算出的最佳***点;比较P个最佳***点的目标函数增益,并选取目标函数增益最大的***点作为全局最佳***点。本发明还公开了一种计算节点设备、参数服务器节点设备和基于参数服务器的梯度提升决策树的实现***。
Description
技术领域
本发明涉及计算机领域,尤其涉及基于参数服务器的梯度提升决策树的实现方法、计算节点设备、参数服务器节点、参数服务器以及基于参数服务器的梯度提升决策树的实现***。
背景技术
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。近年来,机器学习已经有了十分广泛的应用,例如:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测***欺诈、证券市场分析、脱氧核糖核酸(Deoxyribonucleic acid,DNA)序列测序、语音和手写识别、战略游戏和机器人运用。
在当前的大数据时代,单个机器已经远远无法满足存储和计算需求,因此分布式机器学习技术的重要性日益显现。现有的大规模数据集常常是高维数据集,每个训练数据有多达百万甚至数亿的特征,在分布式环境下处理高维数据集,带来的通信开销很大,对分布式机器学习***带来挑战。
发明内容
本发明实施例所要解决的技术问题在于,提供基于参数服务器的梯度提升决策树的实现方法、计算节点设备、参数服务器节点、参数服务器以及基于参数服务器的梯度提升决策树的实现***,解决现有技术中在处理大维度训练数据时存在的单点瓶颈问题增量融合逻辑复杂,并大大减少通信开销。
为了解决上述技术问题,本发明实施例第一方面公开了一种基于参数服务器的梯度提升决策树的实现方法,包括:
通过预设的参数服务器获取最佳***点的接口,分别向P个参数服务器节点发送最佳***点获取请求;其中,所述参数服务器包括P个参数服务器节点,每个参数服务器节点各自存储有M/P个特征,所述M为训练数据的特征数量;
接收所述P个参数服务器节点分别发送的最佳***点的信息,得到P个最佳***点的信息;其中所述P个最佳***点为所述P个参数服务器节点通过预设的梯度提升决策树GBDT优化算法从各自存储的M/P个特征中计算出的最佳***点;
根据所述P个最佳***点的信息,比较所述P个最佳***点的目标函数增益,并选取目标函数增益最大的***点作为全局最佳***点。
本发明实施例第二方面公开了一种基于参数服务器的梯度提升决策树的实现方法,包括:
参数服务器节点通过预设的参数服务器获取最佳***点的接口,接收计算节点发送的最佳***点获取请求;
所述参数服务器节点根据所述最佳***点获取请求,通过预设的梯度提升决策树GBDT优化算法从存储的M/P个特征中计算出最佳***点;所述M为训练数据的特征数量,所述P为所述参数服务器包括的参数服务器节点的数量;
所述参数服务器节点将所述最佳***点的信息发送给所述计算节点。
本发明实施例第三方面公开了一种计算节点设备,包括处理器、存储器、输入模块和输出模块,所述存储器存储多条指令,所述指令由所述处理器加载并执行:
通过预设的参数服务器获取最佳***点的接口,通过所述输出模块分别向P个参数服务器节点发送最佳***点获取请求;其中,所述参数服务器包括P个参数服务器节点,每个参数服务器节点各自存储有M/P个特征,所述M为训练数据的特征数量;
通过所述输入模块接收所述P个参数服务器节点分别发送的最佳***点的信息,得到P个最佳***点的信息;其中所述P个最佳***点为所述P个参数服务器节点通过预设的梯度提升决策树GBDT优化算法从各自存储的M/P个特征中计算出的最佳***点;
根据所述P个最佳***点的信息,比较所述P个最佳***点的目标函数增益,并选取目标函数增益最大的***点作为全局最佳***点。
本发明实施例第四方面公开了一种参数服务器节点设备,包括处理器、存储器、输入模块和输出模块,所述存储器存储多条指令,所述指令由所述处理器加载并执行:
通过预设的参数服务器获取最佳***点的接口,通过所述输入模块接收计算节点发送的最佳***点获取请求;
根据所述最佳***点获取请求,通过预设的梯度提升决策树GBDT优化算法从存储的M/P个特征中计算出最佳***点;所述M为训练数据的特征数量,所述P为所述参数服务器包括的参数服务器节点的数量;
通过所述输出模块将所述最佳***点的信息发送给所述计算节点。
本发明实施例第五方面公开了一种参数服务器,包括P个参数服务器节点设备,所述P大于1;所述参数服务器节点设备为上述的参数服务器节点设备。
本发明实施例第六方面公开了一种基于参数服务器的梯度提升决策树的实现***,包括参数服务器和至少一个计算节点设备;其中,所述参数服务器为上述的参数服务器;所述计算节点设备为上述的计算节点设备。
实施本发明实施例,计算节点在寻找最佳***点时,通过预设的参数服务器获取最佳***点的接口,分别向P个参数服务器节点发送最佳***点获取请求,在获取到每个参数服务器节点通过GBDT优化算法从各自存储的M/P个特征中计算出的最佳***点后,比较P个最佳***点的目标函数增益,并选取目标函数增益最大的***点作为全局最佳***点。每个计算节点无需获取完整的全局梯度直方图,只需要比较参数服务器节点返回的候选最佳***点的信息,大大减少了通信开销。并且通过将全局梯度直方图切分到多个参数服务器节点上存储,解决了在处理大维度训练数据时遇到的单点瓶颈问题,加速了汇总局部梯度直方图的速度。另外,可以在指定一个计算节点来选取出最佳***点后,将该最佳***点存储在参数服务器,由该参数服务器将该全局最佳***点发送给其他计算节点,能够避免其他计算节点重复计算,大大节省了计算节点的计算量。并且,本发明实施例的计算节点以及参数服务器节点的数量可以按照用户的需求进行扩展,为可扩展的PS架构,解决了现有技术中Spark和XGBoost的在处理大维度训练数据时存在的单点瓶颈,以及可扩展性受限的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于参数服务器的梯度提升决策树的实现***的架构图;
图2是本发明实施例提供的基于参数服务器的梯度提升决策树的实现方法的流程示意图;
图3a是本发明提供的基于参数服务器的梯度提升决策树的实现方法的另一实施例的流程示意图;
图3b是本发明提供的决策树的原理示意图;
图4是本发明提供的基于参数服务器的梯度提升决策树的实现方法的另一实施例的流程示意图;
图5是本发明提供的基于参数服务器的梯度提升决策树的实现方法的另一实施例的流程示意图;
图6是本发明实施例提供的参数服务器的参数存储的原理示意图;
图7是本发明提供的基于参数服务器的梯度提升决策树的实现方法的另一实施例的流程示意图;
图8是本发明实施例提供的梯度直方图的原理示意图;
图9是基于映射-归约(Map-Reduce)实现的梯度提升决策树(Gradient boostingdecision tree,GBDT)的分布式架构;
图10是基于多点接口(Multi Point Interface,MPI)的全-归约(All-Reduce)实现的GBDT的分布式架构;
图11是本发明实施例提供的基于参数服务器的梯度提升决策树的实现装置的结构示意图;
图12是本发明实施例提供的计算节点设备的结构示意图;
图13是本发明提供的基于参数服务器的梯度提升决策树的实现装置的另一实施例的结构示意图;
图14是本发明实施例提供的参数服务器节点设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
如图1示出的本发明实施例提供的基于参数服务器的梯度提升决策树的实现***的架构图,基于参数服务器的梯度提升决策树的实现***可以包括参数服务器(ParameterServer,PS)以及至少一个计算节点设备,其中PS可以包括多个参数服务器节点,PS存储一份全局模型参数;每个计算节点设备保存一份模型参数的副本,在一轮迭代中,用分配的数据子集更新参数副本,将对参数的更新发送到PS,然后从PS获取最新的全局参数开始下一轮迭代。图中以其中一个计算节点与参数服务器节点的数据传输为例,画出了参数更新和获取的传输线(图中每个计算节点与参数服务器节点的数据传输方式相同,这里没有画出全部计算节点与参数服务器节点的数据传输线),该计算节点将自身的局部参数分成P份分别发送给P个参数服务器节点,并从P个参数服务器节点中获取P个最佳***点的信息。
进一步地,本发明实施例中基于参数服务器的梯度提升决策树的实现***还可以包括一个主控节点,用于监控参数服务器和计算节点设备。需要说明的是,本发明实施例中的参数服务器节点、计算节点设备以及主控节点都可以为物理机。参数服务器节点的数量以及计算节点设备的数量可以由用户(包括研发人员等)自己来决定,本发明实施例不作限制。本发明各个实施例中的计算节点等同于计算节点设备,参数服务器节点等同于参数服务器节点设备。
通过本发明实施例的基于参数服务器的梯度提升决策树的实现***可以完成广告推荐、用户性别预测、图片分类等机器学习分类任务,以及用户年龄预测、用户消费预测等机器学习回归任务。用户只需要提交机器学习任务,最后获得处理结果,而不需要了解具体的处理流程,即整个分布式处理机制对于用户是透明的。
下面具体地,结合图2至图10示出的本发明实施例提供的基于参数服务器的梯度提升决策树的实现方法的流程示意图来详细说明本发明实施例的机器学习具体的处理流程,说明如何实现基于参数服务器的梯度提升决策树。
如图2示出的本发明实施例提供的基于参数服务器的梯度提升决策树的实现方法的流程示意图,先从计算节点侧来描述,可以包括如下步骤:
步骤S200:通过预设的参数服务器获取最佳***点的接口,分别向P个参数服务器节点发送最佳***点获取请求;
具体地,本发明实施例中的参数服务器预先设置有获取最佳***点的接口,并提供给各个计算节点。计算节点在寻找最佳***点的时候,即可以通过该获取最佳***点的接口向P个参数服务器节点发送最佳***点获取请求,其中,该参数服务器包括P个参数服务器节点,每个参数服务器节点各自存储有M/P个特征,该M为训练数据的特征数量;P可以为大于1的自然数,M也可以为大于1的自然数。
需要说明的是,本发明实施例中的最佳***点包括最佳或最优的***特征和***特征值,该最佳***点也可以命名为最优***点、最佳***结果、或最优***结果等,本发明不作限制,只要包括最佳或最优的***特征和***特征值的信息或参数即可。
步骤S202:接收所述P个参数服务器节点分别发送的最佳***点的信息,得到P个最佳***点的信息;其中所述P个最佳***点为所述P个参数服务器节点通过预设的GBDT优化算法从各自存储的M/P个特征中计算出的最佳***点;
具体地,参数服务器节点接收到计算节点发送的最佳***点获取请求后,即通过预设的GBDT优化算法从自身存储的M/P个特征中计算出最佳***点,并将最佳***点的信息返回给计算节点。由于P个参数服务器节点分别向该计算节点返回各自的最佳***点的信息,因此该计算节点得到了P个最佳***点的信息。
步骤S204:根据所述P个最佳***点的信息,比较所述P个最佳***点的目标函数增益,并选取目标函数增益最大的***点作为全局最佳***点。
具体地,计算节点通过比较P个最佳***点的目标函数增益,从而选取出目标函数增益最大的***点作为全局最佳***点,后续可以创建叶子节点,将本节点的训练数据切分到两个叶子节点上。
需要说明的是,每个计算节点在对各自的训练数据进行训练的过程中,通过本发明实施例,每个计算节点无需获取完整的全局梯度直方图,只需要比较参数服务器节点返回的候选最佳***点的信息,大大减少了通信开销。本发明实施例中该候选最佳***点即为P个参数服务器节点分别返回的P个候选的最佳***点的信息,计算节点从该P个候选的最佳***点的信息中选取其中一个最为进行***的全局最佳***点。
进一步地,结合图3a示出的本发明提供的基于参数服务器的梯度提升决策树的实现方法的另一实施例的流程示意图,再次更加详细地从计算节点侧来描述,需要说明的是,本发明实施例以一个计算节点为例进行说明(其他计算节点的处理流程也相同),可以包括如下步骤:
步骤S300:计算候选***点;
具体地,计算节点依次读取分配给自己的训练数据,对每种特征计算候选***特征值,从而得到候选***点。
需要说明的是,本发明训练数据是用来构建机器学习模型的历史数据,每个计算节点分配到的训练数据都可以不同。
步骤S302:创建决策树;
具体地,计算节点创建新的树,进行初始化的工作,包括初始化树结构、计算训练数据的一阶和二阶梯度、初始化一个待处理树节点的队列、将树的根节点加入队列等。
步骤S304:计算梯度直方图;
具体地,计算节点从待处理树节点的队列中取出待处理的树节点。对每个待处理树节点,根据自身节点的训练数据分别计算各自对应的局部梯度直方图,并将每个局部梯度直方图分成P个分块局部梯度直方图;其中,P个分块局部梯度直方图与P个参数服务器节点一一对应;然后通过预设的参数服务器更新梯度直方图的接口,将每个待处理树节点的每个分块局部梯度直方图发送给对应的参数服务器节点。
需要说明的是,本发明实施例中的局部梯度直方图可以分别包括一阶梯度直方图和二阶梯度直方图;也就是说,将每个局部梯度直方图分成P个分块包括将每个一阶梯度直方图分成P个分块,将每个二阶梯度直方图分成P个分块,然后分别发送给对应的参数服务器节点。参数服务器将全局梯度直方图(即整个梯度直方图)切分到P个参数服务器节点上,即每个参数服务器节点保存M/P种特征的一阶和二阶梯度直方图,从而解决了大维度训练数据时遇到的单点瓶颈问题,加速了汇总局部梯度直方图的速度。
步骤S306:寻找最佳***点;
具体地,计算节点通过参数服务器获取最佳***点的接口,从参数服务器获取每个参数服务器节点的最佳***点的信息,然后比较P个***点的目标函数增益,选取增益最大的***点作为全局最佳***点。具体可以参考步骤S202至步骤S204,这里不再赘述。
需要说明的是,数据通常被表示为向量,向量的每一维度叫做数据的特征,代表数据的某种性质,数据某种性质的数值叫做数据的特征值。如图3b示出的本发明提供的决策树的原理示意图,图中每一个节点都为树节点,其中起始节点“拥有房产”为根节点,“是否结婚”、“月收入”等其他节点可以为叶子节点。
进一步地,本发明实施例中最佳***点的信息可以包括***特征、***特征值以及目标函数增益;那么计算节点选取目标函数增益最大的***点作为全局最佳***点可以具体包括:将目标函数增益最大的***点的***特征和***特征值作为全局最佳***点。因此,每个计算节点不需要获取完整的全局梯度直方图,而只需要比较参数服务器节点返回的候选最佳***点,本发明实施例每个参数服务器节点可以只需要返回三个数(***特征、***特征值以及目标函数增益)给计算节点即可,大大减小了通信开销。
步骤S308:***树节点;
具体地,计算节点根据计算得到的最佳***点,创建叶子节点,将本节点的训练数据切分到两个叶子节点上。
步骤S310:判断树的高度是否达到最大限制;
具体地,当判断树的高度没有达到最大限制,则将两个叶子节点加入到待处理树节点的队列,然后跳转到步骤S304;当判断树的高度达到了最大限制,则执行步骤S312。
步骤S312:判断树的数量是否达到最大限制;
具体地,当判断树的数量没有达到最大限制,则跳转到步骤S302,再次创建新的决策树。当判断树的数量达到了最大限制,则执行步骤S314。计算节点迭代地调用步骤S302至步骤S308,直到完成所有树的建立。
步骤S314:完成训练。
具体地,计算节点训练完所有决策树,计算并输出性能指标(准确率、误差等),可以输出训练模型。
还需要说明的是,本发明实施例中最佳***点的信息还可以包括目标函数增益和标识信息,该标识信息用于指示最佳***点对应的参数服务器节点;也就是说,每个参数服务器节点在接收到计算节点发送的最佳***点获取请求后,通过预设的GBDT优化算法从各自存储的M/P个特征中计算出最佳***点的***特征、***特征值以及目标函数增益,但只将目标函数增益发送给计算节点。计算节点在比较P个最佳***点的目标函数增益,选取出最大的目标函数增益后,根据目标函数增益最大的***点的标识信息,向对应的参数服务器节点请求***特征和***特征值,然后接收该对应的参数服务器节点返回的***特征和***特征值,作为全局最佳***点。每个计算节点不需要获取完整的全局梯度直方图,而只需要比较参数服务器节点返回的候选最佳***点,本发明实施例每个参数服务器节点可以只需要返回两个数(标识信息以及目标函数增益)给计算节点即可,并在计算节点确定了最大的目标函数增益后,向对应的那个参数服务器节点获取***特征和***特征值即可,大大减小了通信开销。
下面结合图4示出的本发明提供的基于参数服务器的梯度提升决策树的实现方法的另一实施例的流程示意图,对应地从参数服务器节点侧来描述,可以包括如下步骤:
步骤S400:参数服务器节点通过预设的参数服务器获取最佳***点的接口,接收计算节点发送的最佳***点获取请求;
具体地,计算节点在寻找最佳***点的时候,即可以通过该获取最佳***点的接口向P个参数服务器节点发送最佳***点获取请求,参数服务器节点即接收到计算节点发送的该最佳***点获取请求。
步骤S402:所述参数服务器节点根据所述最佳***点获取请求,通过预设的梯度提升决策树GBDT优化算法从存储的M/P个特征中计算出最佳***点;所述M为训练数据的特征数量,所述P为所述参数服务器包括的参数服务器节点的数量;
步骤S404:所述参数服务器节点将所述最佳***点的信息发送给所述计算节点。
再具体地,结合图5示出的本发明提供的基于参数服务器的梯度提升决策树的实现方法的另一实施例的流程示意图,再次更加详细地从参数服务器节点侧来描述,可以包括如下步骤:
步骤S500:参数服务器节点通过预设的参数服务器更新梯度直方图的接口,接收计算节点发送的分块局部梯度直方图;
其中,所述分块局部梯度直方图为所述计算节点针对每个待处理树节点,根据自身节点的训练数据分别计算各自对应的局部梯度直方图,并将每个局部梯度直方图分成P个分块的局部梯度直方图;且P个分块的局部梯度直方图与P个参数服务器节点一一对应。
具体地,如图6示出的本发明实施例提供的参数服务器的参数存储的原理示意图,参数服务器通过P个参数服务器节点来存储全局梯度直方图。T是总共需要训练的决策树个数,d是每棵树的最大高度,那么一棵树中最多有(2d-1)个树节点。本发明实施例将每个树节点上一个特征的全局梯度直方图分别表示为一个长度为2K的向量,其中前K个为一阶梯度直方图,后K个为二阶梯度直方图。M为训练数据的特征数量,每个特征对应一个一阶梯度直方图和一个二阶梯度直方图。所有M个特征的梯度直方图被连接为一个长度为2KM的向量,被平均切分为P个分块,分别存储在P个参数服务器节点上,这样每个参数服务器节点上存储M/P个特征的全局梯度直方图,长度为2KM/P。由于最多有(2d-1)个树节点,因此每个参数服务器节点存储的全局梯度直方图的总大小为2KM(2d-1)/P。本发明实施例通过将全局梯度直方图切分到多个参数服务器节点上存储,解决了在处理大维度训练数据时遇到的单点瓶颈问题。
需要说明的是,为了在建立多棵决策树的过程中复用全局梯度直方图,在建立每棵决策树之前,整个全局梯度直方图会被全部重置为0。
步骤S502:参数服务器节点将所述分块局部梯度直方图累加到对应的全局梯度直方图上;
具体地,每个参数服务器节点在接收到计算节点发送的局部梯度直方图后,确定处理的树节点,将其累加到对应的全局梯度直方图上,从而更新全局梯度直方图。
步骤S504:参数服务器节点通过预设的参数服务器获取最佳***点的接口,接收计算节点发送的最佳***点获取请求;
步骤S506:参数服务器节点根据所述最佳***点获取请求,通过预设的GBDT优化算法从存储的M/P个特征中计算出最佳***点;
步骤S508:参数服务器节点将所述最佳***点的信息发送给所述计算节点。
具体地,步骤S504至步骤S508可以参考上述步骤S400至步骤S406,这里不再赘述。需要说明的是,步骤S500、S502中更新梯度直方图的动作与步骤S504至步骤S508中最佳***点的处理动作可以不分先后顺序,在计算最佳***点时,使用的是最新的全局梯度直方图,而全局梯度直方图的更新是持续性的。
需要说明的是,本发明实施例最佳***点的信息包括***特征、***特征值以及目标函数增益。最佳***点的信息也可以包括目标函数增益和标识信息,所述标识信息用于指示所述参数服务器节点;那么参数服务器节点将所述最佳***点的信息发送给该指定的计算节点之后,还可以包括:该参数服务器节点接收该计算节点用于获取***特征和***特征值的请求,并根据所述取***特征和***特征值的请求,将所述最佳***点的***特征和***特征值发送给所述计算节点。
下面结合图7示出的本发明提供的基于参数服务器的梯度提升决策树的实现方法的另一实施例的流程示意图,以一个计算节点更新一次梯度直方图以及获取一次最佳***点为例,从计算节点以及参数服务器节点两侧来描述,可以包括如下步骤:
步骤S700:计算节点使用分配的数据子集执行GBDT算法,得到本地的局部梯度直方图;
具体地,在GBDT算法中,对每棵树,要最小化下面的目标函数:
其中xi是训练数据,yi是训练数据的真实标签,ft(xi)是第t棵树对训练数据给出的预测值,是第t棵树之后训练数据的预测值,l是代价函数(给定真实标签和预测值,计算一个代价值),Ω是防止模型过拟合的正则项。
GBDT算法使用梯度直方图作为辅助信息来寻找最佳***点。对每个训练数据,求其对目标函数l的一阶梯度gi和二阶梯度hi,然后统计所有训练数据的一阶梯度和二阶梯度的分布,对训练数据的每一种特征生成一个梯度直方图。如图8示出的本发明实施例提供的梯度直方图的原理示意图,横坐标是某个特征的特征值的区间,纵坐标是特征值在此区间的训练数据的梯度之和。例如,特征值在0和0.2之间的训练数据,我们将它们的一阶梯度累加,作为图8的一阶梯度直方图的第一个箱子(bin)。
步骤S702:计算节点将该局部梯度直方图分成P个分块;
具体地,P个分块局部梯度直方图与P个参数服务器节点一一对应。
步骤S704:分别将每个分块局部梯度直方图发送给对应的参数服务器节点;
步骤S706:参数服务器节点汇总所有计算节点的局部梯度直方图,生成全局梯度直方图;
步骤S708:计算节点向每个参数服务器节点请求最佳***点;
步骤S710:每个参数服务器节点接收到请求后,向计算节点返回本节点保存的M/P中特征中最佳***点的信息;
具体地,为了在每一个树节点寻找最优***点,本发明实施例可以采用一种启发式的优化方法,根据一阶和二阶梯度直方图算出最佳***点:
(1)假设有M种特征,M为训练数据的特征数量,对每种特征,我们选取K个候选的***特征值Sm={Sm1,Sm2,...,SmK}:
for m=1to M do
generate K split candidates Sm={Sm1,Sm2,...,Smk}
end for
(2)我们依次轮询N个训练数据,求得一阶和二阶梯度直方图。我们用Gmk来代表第m种特征的一阶梯度直方图的第k个bin,用Hmk来代表第m种特征的二阶梯度直方图的第k个bin。
for m=1to M do
loop N instances to generate gradient histogram with K bins
Gmk=∑giwhere smk-1<xim<smk
Hmk=∑hiwhere smk-1<xim<smk
end for
每种特征的梯度直方图有K个bins,K个候选的***特征值就是每个bin对应的特征值区间的最大值,也就是第k个bin对应的特征值区间是[smk-1,smk]。
(3)我们从左到右依次读取一阶和二阶梯度直方图的k个bins,根据
下面的算法求出最佳的***点(***特征和***特征值):
G是一阶梯度直方图的所有bin的值之和,H是二阶梯度直方图的所有bin的值之和。GL用来累加一阶梯度直方图的已经读取的bin的值之和,HL用来累加二阶梯度直方图的已经读取的bin的值之和;GR是一阶梯度直方图的还未读取的bin的值之和,HR是二阶梯度直方图的还未读取的bin的值之和。
for m=1to M do
GL=0,HL=0
for k=1to K do
GL=GL+Gmk,HL=HL+Hmk
GR=G-GL,HR=H-HL
end for
end for
上述M为训练数据的特征数量,梯度直方图的总数是2M个,每个特征对应一个一阶梯度直方图和一个二阶梯度直方图。在寻找某个特征的最佳***点的时候,需要这个特征的一阶梯度直方图和二阶梯度直方图,根据这两个梯度直方图找到最佳***点。在上面的算法中,我们依次处理M种特征的一阶和二阶梯度直方图,对每种特征的每个候选***特征值,算出以此为***点能带来的对目标函数F(t)的增益大小在所有的MK个候选***点中,选取gain最大的特征和特征值,作为最佳***点。
步骤S712:计算节点接收到P个参数服务器分别返回的最佳***点的信息,选取其中对目标函数带来的增益gain最大的***点;
需要说明的是,如图9示出的基于映射-归约(Map-Reduce)实现的梯度提升决策树(Gradient boosting decision tree,GBDT)的分布式架构,如计算引擎Spark所使用的,每个工作节点(即计算节点)在生成局部梯度直方图之后,通过Reduce操作发送到一个节点;此节点汇总所有计算节点的梯度直方图,生成全局的梯度直方图,寻找最佳的***点,然后通过Map操作将最佳***点广播到所有的计算节点。然而,在训练数据的特征维度很大时,每个计算节点产生的局部梯度直方图也很大。在这种情况下,在Reduce操作中会遇到单点瓶颈问题,汇总局部梯度直方图的节点可能因为网络阻塞而使得整个***的处理速度变慢。如图10示出的基于多点接口(Multi Point Interface,MPI)的全-归约(All-Reduce)实现的GBDT的分布式架构,如XGBoost所使用的,所有计算节点被组织成一个二叉树结构;每个计算节点在生成局部梯度直方图之后,将其发送给父计算节点;该父计算节点汇总两个子计算节点的梯度直方图后,再发送给它的父计算节点;根计算节点得到全局的梯度直方图后,寻找最佳的***点,然后通过树形结构依次发送给所有的计算节点。然而,这种方案需要多步传输,在训练数据的特征维度很大时,多步传输带来较大的通信量。而且随着计算节点的增多,需要更多的传输步数来完成局部梯度直方图的汇总。
而通过实施本发明实施例,计算节点在寻找最佳***点时,通过预设的参数服务器获取最佳***点的接口,分别向P个参数服务器节点发送最佳***点获取请求,在获取到每个参数服务器节点通过GBDT优化算法从各自存储的M/P个特征中计算出的最佳***点后,比较P个最佳***点的目标函数增益,并选取目标函数增益最大的***点作为全局最佳***点。每个计算节点无需获取完整的全局梯度直方图,只需要比较参数服务器节点返回的候选最佳***点的信息,大大减少了通信开销。并且通过将全局梯度直方图切分到多个参数服务器节点上存储,解决了在处理大维度训练数据时遇到的单点瓶颈问题,加速了汇总局部梯度直方图的速度。并且,本发明实施例的计算节点以及参数服务器节点的数量可以按照用户的需求进行扩展,为可扩展的PS架构,解决了现有技术中Spark和XGBoost的在处理大维度训练数据时存在的单点瓶颈,以及可扩展性受限的问题。
步骤S714:计算节点根据最佳***点***当前处理的树节点。
具体地,计算节点通过迭代处理,直到完成所有树的建立。
还需要说明的是,本发明实施例中可以每个计算节点都以图3至图4的实施方式来寻找最佳***点,也可以指定其中一个计算节点来以图3至图4的实施方式执行寻找最佳***点。若指定其中一个计算节点来执行寻找最佳***点,那么该指定的计算节点在选取目标函数增益最大的***点作为全局最佳***点之后,还可以包括:将所述全局最佳***点发送给所述参数服务器,以使所述参数服务器将所述全局最佳***点发送给所有的计算节点。参数服务器可以将获取的全局最佳***点都保存在P个参数服务器节点中,也就是说,其他计算节点也可以从参数服务器节点中直接获取最佳***点的***特征和***特征值。这样能够避免其他计算节点重复计算,大大节省了计算节点的计算量。
为了便于更好地实施本发明实施例的上述方案,本发明还对应提供了一种基于参数服务器的梯度提升决策树的实现装置,下面结合附图来进行详细说明:
如图11示出的本发明实施例提供的基于参数服务器的梯度提升决策树的实现装置的结构示意图,基于参数服务器的梯度提升决策树的实现装置11可以包括:请求模块110、信息接收模块112和最佳***点选取模块114,其中,
请求模块110用于通过预设的参数服务器获取最佳***点的接口,分别向P个参数服务器节点发送最佳***点获取请求;其中,所述参数服务器包括P个参数服务器节点,每个参数服务器节点各自存储有M/P个特征,所述M为训练数据的特征数量;
信息接收模块112用于接收所述P个参数服务器节点分别发送的最佳***点的信息,得到P个最佳***点的信息;其中所述P个最佳***点为所述P个参数服务器节点通过预设的梯度提升决策树GBDT优化算法从各自存储的M/P个特征中计算出的最佳***点;
最佳***点选取模块114用于根据所述P个最佳***点的信息,比较所述P个最佳***点的目标函数增益,并选取目标函数增益最大的***点作为全局最佳***点。
具体地,基于参数服务器的梯度提升决策树的实现装置11还可以包括分块模块和发送模块,其中,
分块模块用于针对每个待处理树节点,根据自身节点的训练数据分别计算各自对应的局部梯度直方图,并将每个局部梯度直方图分成P个分块;其中,P个分块局部梯度直方图与P个参数服务器节点一一对应;
发送模块用于通过预设的参数服务器更新梯度直方图的接口,将每个待处理树节点的每个分块局部梯度直方图发送给对应的参数服务器节点。
再具体地,每个最佳***点的信息可以包括***特征、***特征值以及目标函数增益;
最佳***点选取模块114具体用于将目标函数增益最大的***点中的***特征和***特征值作为全局最佳***点。
或者,每个最佳***点的信息包括目标函数增益和标识信息,所述标识信息用于指示所述最佳***点对应的参数服务器节点;
最佳***点选取模块114具体用于根据目标函数增益最大的***点的标识信息,向对应的参数服务器节点请求***特征和***特征值;接收所述对应的参数服务器节点返回的***特征和***特征值,作为全局最佳***点。
再具体地,基于参数服务器的梯度提升决策树的实现装置11还可以包括节点发送模块,用于在最佳***点选取模块114选取目标函数增益最大的***点作为全局最佳***点之后,将所述全局最佳***点发送给所述参数服务器,以使所述参数服务器将所述全局最佳***点发送给所有的计算节点。
再进一步地,如图12示出的本发明实施例提供的计算节点设备的结构示意图,计算节点设备120可以包括:至少一个处理器1201,例如CPU,输入模块1202,输出模块1203,存储器1204,至少一个通信总线1205。其中,通信总线1205用于实现这些组件之间的连接通信。存储器1204可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器,存储器1204包括本发明实施例中的flash。存储器1204可选的还可以是至少一个位于远离前述处理器1201的存储***。如图12所示,作为一种计算机存储介质的存储器1204中可以包括操作***、网络通信模块、用户接口模块以及基于参数服务器的梯度提升决策树的实现程序。
在图12所示的计算节点设备120中,处理器1201可以用于调用存储器1204中存储的基于参数服务器的梯度提升决策树的实现程序,并执行以下操作:
通过预设的参数服务器获取最佳***点的接口,通过输出模块1203分别向P个参数服务器节点发送最佳***点获取请求;其中,所述参数服务器包括P个参数服务器节点,每个参数服务器节点各自存储有M/P个特征,所述M为训练数据的特征数量;
通过输入模块1202接收所述P个参数服务器节点分别发送的最佳***点的信息,得到P个最佳***点的信息;其中所述P个最佳***点为所述P个参数服务器节点通过预设的梯度提升决策树GBDT优化算法从各自存储的M/P个特征中计算出的最佳***点;
根据所述P个最佳***点的信息,比较所述P个最佳***点的目标函数增益,并选取目标函数增益最大的***点作为全局最佳***点。
具体地,处理器1201还执行:
针对每个待处理树节点,根据自身节点的训练数据分别计算各自对应的局部梯度直方图,并将每个局部梯度直方图分成P个分块;其中,P个分块局部梯度直方图与P个参数服务器节点一一对应;
通过预设的参数服务器更新梯度直方图的接口,通过输出模块1203将每个待处理树节点的每个分块局部梯度直方图发送给对应的参数服务器节点。
具体地,每个最佳***点的信息包括***特征、***特征值以及目标函数增益;
处理器1201选取目标函数增益最大的***点作为全局最佳***点可以包括:
将目标函数增益最大的***点中的***特征和***特征值作为全局最佳***点。
具体地,每个最佳***点的信息包括目标函数增益和标识信息,所述标识信息用于指示所述最佳***点对应的参数服务器节点;
处理器1201选取目标函数增益最大的***点作为全局最佳***点包括:
根据目标函数增益最大的***点的标识信息,通过输出模块1203向对应的参数服务器节点请求***特征和***特征值;
通过所述输入模块接收所述对应的参数服务器节点返回的***特征和***特征值,作为全局最佳***点。
具体地,处理器1201选取目标函数增益最大的***点作为全局最佳***点之后,还可以执行:
通过输出模块1203将所述全局最佳***点发送给所述参数服务器,以使所述参数服务器将所述全局最佳***点发送给所有的计算节点。
需要说明的是,本发明实施例中的基于参数服务器的梯度提升决策树的实现装置11和计算节点设备120中各模块的功能可对应参考上述各方法实施例中图3至图10任意实施例的具体实现方式,这里不再赘述。基于参数服务器的梯度提升决策树的实现装置11和计算节点设备120可以包括但不限于计算机等物理机。
本发明还对应提供了另一种基于参数服务器的梯度提升决策树的实现装置,下面结合附图来进行详细说明:
如图13示出的本发明提供的基于参数服务器的梯度提升决策树的实现装置的另一实施例的结构示意图,基于参数服务器的梯度提升决策树的实现装置13可以包括:请求接收模块130、最佳***点计算模块132和信息发送模块134,其中,
请求接收模块130用于通过预设的参数服务器获取最佳***点的接口,接收计算节点发送的最佳***点获取请求;
最佳***点计算模块132用于根据所述最佳***点获取请求,通过预设的梯度提升决策树GBDT优化算法从存储的M/P个特征中计算出最佳***点;所述M为训练数据的特征数量,所述P为所述参数服务器包括的参数服务器节点的数量;
信息发送模块134用于将所述最佳***点的信息发送给所述计算节点。
具体地,基于参数服务器的梯度提升决策树的实现装置13还可以包括:局部梯度直方图接收模块和直方图更新模块,其中,
局部梯度直方图接收模块用于通过预设的参数服务器更新梯度直方图的接口,接收计算节点发送的分块局部梯度直方图;其中,所述分块局部梯度直方图为所述计算节点针对每个待处理树节点,根据自身节点的训练数据分别计算各自对应的局部梯度直方图,并将每个局部梯度直方图分成P个分块的局部梯度直方图;且P个分块的局部梯度直方图与P个参数服务器节点一一对应;
直方图更新模块用于将所述分块局部梯度直方图累加到对应的全局梯度直方图上。
具体地,所述最佳***点的信息包括***特征、***特征值以及目标函数增益。
或者,所述最佳***点的信息包括目标函数增益和标识信息,所述标识信息用于指示所述参数服务器节点;
基于参数服务器的梯度提升决策树的实现装置13还可以包括:***点信息发送模块,用于在信息发送模块134将所述最佳***点的信息发送给所述计算节点之后,接收所述计算节点用于获取***特征和***特征值的请求,并根据所述取***特征和***特征值的请求,将所述最佳***点的***特征和***特征值发送给所述计算节点。
再进一步地,如图14示出的本发明实施例提供的参数服务器节点设备的结构示意图,参数服务器节点设备140可以包括:至少一个处理器1401,例如CPU,输入模块1402,输出模块1403,存储器1404,至少一个通信总线1405。其中,通信总线1405用于实现这些组件之间的连接通信。存储器1404可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器,存储器1404包括本发明实施例中的flash。存储器1404可选的还可以是至少一个位于远离前述处理器1401的存储***。如图14所示,作为一种计算机存储介质的存储器1404中可以包括操作***、网络通信模块、用户接口模块以及基于参数服务器的梯度提升决策树的实现程序。
在图14所示的参数服务器节点设备140中,处理器1401可以用于调用存储器1404中存储的基于参数服务器的梯度提升决策树的实现程序,并执行以下操作:
通过预设的参数服务器获取最佳***点的接口,通过输入模块1402接收计算节点发送的最佳***点获取请求;
根据所述最佳***点获取请求,通过预设的梯度提升决策树GBDT优化算法从存储的M/P个特征中计算出最佳***点;所述M为训练数据的特征数量,所述P为所述参数服务器包括的参数服务器节点的数量;
通过输出模块1403将所述最佳***点的信息发送给所述计算节点。
具体地,处理器1401还可以执行:
通过预设的参数服务器更新梯度直方图的接口,通过输入模块1402接收计算节点发送的分块局部梯度直方图;其中,所述分块局部梯度直方图为所述计算节点针对每个待处理树节点,根据自身节点的训练数据分别计算各自对应的局部梯度直方图,并将每个局部梯度直方图分成P个分块的局部梯度直方图;且P个分块的局部梯度直方图与P个参数服务器节点一一对应;
将所述分块局部梯度直方图累加到对应的全局梯度直方图上。
具体地,所述最佳***点的信息包括***特征、***特征值以及目标函数增益。
具体地,所述最佳***点的信息包括目标函数增益和标识信息,所述标识信息用于指示所述参数服务器节点;
处理器1401通过所述输出模块将所述最佳***点的信息发送给所述计算节点之后,还可以执行:
通过输入模块1402接收所述计算节点用于获取***特征和***特征值的请求,并根据所述取***特征和***特征值的请求,通过输出模块1403将所述最佳***点的***特征和***特征值发送给所述计算节点。
需要说明的是,本发明实施例中的基于参数服务器的梯度提升决策树的实现装置13和参数服务器节点设备140中各模块的功能可对应参考上述各方法实施例中图3至图10任意实施例的具体实现方式,这里不再赘述。基于参数服务器的梯度提升决策树的实现装置13和参数服务器节点设备140可以包括但不限于计算机等物理机。
另外,本发明实施例还提供了一种参数服务器,该参数服务器包括P个参数服务器节点设备,该参数服务器节点设备可以为如图14实施例中的参数服务器节点设备140。
实施本发明实施例,计算节点在寻找最佳***点时,通过预设的参数服务器获取最佳***点的接口,分别向P个参数服务器节点发送最佳***点获取请求,在获取到每个参数服务器节点通过GBDT优化算法从各自存储的M/P个特征中计算出的最佳***点后,比较P个最佳***点的目标函数增益,并选取目标函数增益最大的***点作为全局最佳***点。每个计算节点无需获取完整的全局梯度直方图,只需要比较参数服务器节点返回的候选最佳***点的信息,大大减少了通信开销。并且通过将全局梯度直方图切分到多个参数服务器节点上存储,解决了在处理大维度训练数据时遇到的单点瓶颈问题,加速了汇总局部梯度直方图的速度。另外,可以在指定一个计算节点来选取出最佳***点后,将该最佳***点存储在参数服务器,由该参数服务器将该全局最佳***点发送给其他计算节点,能够避免其他计算节点重复计算,大大节省了计算节点的计算量。并且,本发明实施例的计算节点以及参数服务器节点的数量可以按照用户的需求进行扩展,为可扩展的PS架构,解决了现有技术中Spark和XGBoost的在处理大维度训练数据时存在的单点瓶颈,以及可扩展性受限的问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (15)
1.一种基于参数服务器的梯度提升决策树的实现方法,其特征在于,包括:
通过预设的参数服务器获取最佳***点的接口,分别向P个参数服务器节点发送最佳***点获取请求;其中,所述参数服务器包括P个参数服务器节点,每个参数服务器节点各自存储有M/P个特征,所述M为训练数据的特征数量;
接收所述P个参数服务器节点分别发送的最佳***点的信息,得到P个最佳***点的信息;其中所述P个最佳***点为所述P个参数服务器节点通过预设的梯度提升决策树GBDT优化算法从各自存储的M/P个特征中计算出的最佳***点;
根据所述P个最佳***点的信息,比较所述P个最佳***点的目标函数增益,并选取目标函数增益最大的***点作为全局最佳***点。
2.如权利要求1所述的方法,其特征在于,还包括:
针对每个待处理树节点,根据自身节点的训练数据分别计算各自对应的局部梯度直方图,并将每个局部梯度直方图分成P个分块局部梯度直方图;其中,P个分块局部梯度直方图与P个参数服务器节点一一对应;
通过预设的参数服务器更新梯度直方图的接口,将每个待处理树节点的每个分块局部梯度直方图发送给对应的参数服务器节点。
3.如权利要求1所述的方法,其特征在于,每个最佳***点的信息包括***特征、***特征值以及目标函数增益;
所述选取目标函数增益最大的***点作为全局最佳***点包括:
将目标函数增益最大的***点中的***特征和***特征值作为全局最佳***点。
4.如权利要求1-3任一项所述的方法,其特征在于,所述选取目标函数增益最大的***点作为全局最佳***点之后,还包括:
将所述全局最佳***点发送给所述参数服务器,以使所述参数服务器将所述全局最佳***点发送给所有的计算节点。
5.一种基于参数服务器的梯度提升决策树的实现方法,其特征在于,包括:
参数服务器节点通过预设的参数服务器获取最佳***点的接口,接收计算节点发送的最佳***点获取请求;
所述参数服务器节点根据所述最佳***点获取请求,通过预设的梯度提升决策树GBDT优化算法从存储的M/P个特征中计算出最佳***点;所述M为训练数据的特征数量,所述P为所述参数服务器包括的参数服务器节点的数量;
所述参数服务器节点将所述最佳***点的信息发送给所述计算节点。
6.如权利要求5所述的方法,其特征在于,还包括:
所述参数服务器节点通过预设的参数服务器更新梯度直方图的接口,接收计算节点发送的分块局部梯度直方图;其中,所述分块局部梯度直方图为所述计算节点针对每个待处理树节点,根据自身节点的训练数据分别计算各自对应的局部梯度直方图,并将每个局部梯度直方图分成P个分块的局部梯度直方图;且P个分块的局部梯度直方图与P个参数服务器节点一一对应;
所述参数服务器节点将所述分块局部梯度直方图累加到对应的全局梯度直方图上。
7.一种计算节点设备,包括处理器、存储器、输入模块和输出模块,其特征在于,所述存储器存储多条指令,所述指令由所述处理器加载并执行:
通过预设的参数服务器获取最佳***点的接口,通过所述输出模块分别向P个参数服务器节点发送最佳***点获取请求;其中,所述参数服务器包括P个参数服务器节点,每个参数服务器节点各自存储有M/P个特征,所述M为训练数据的特征数量;
通过所述输入模块接收所述P个参数服务器节点分别发送的最佳***点的信息,得到P个最佳***点的信息;其中所述P个最佳***点为所述P个参数服务器节点通过预设的梯度提升决策树GBDT优化算法从各自存储的M/P个特征中计算出的最佳***点;
根据所述P个最佳***点的信息,比较所述P个最佳***点的目标函数增益,并选取目标函数增益最大的***点作为全局最佳***点。
8.如权利要求7所述的设备,其特征在于,所述处理器还执行:
针对每个待处理树节点,根据自身节点的训练数据分别计算各自对应的局部梯度直方图,并将每个局部梯度直方图分成P个分块;其中,P个分块局部梯度直方图与P个参数服务器节点一一对应;
通过预设的参数服务器更新梯度直方图的接口,通过所述输出模块将每个待处理树节点的每个分块局部梯度直方图发送给对应的参数服务器节点。
9.如权利要求7所述的设备,其特征在于,每个最佳***点的信息包括***特征、***特征值以及目标函数增益;
所述处理器选取目标函数增益最大的***点作为全局最佳***点包括:
将目标函数增益最大的***点中的***特征和***特征值作为全局最佳***点。
10.如权利要求7-9任一项所述的设备,其特征在于,所述处理器选取目标函数增益最大的***点作为全局最佳***点之后,还执行:
通过所述输出模块将所述全局最佳***点发送给所述参数服务器,以使所述参数服务器将所述全局最佳***点发送给所有的计算节点。
11.一种参数服务器节点设备,包括处理器、存储器、输入模块和输出模块,其特征在于,所述存储器存储多条指令,所述指令由所述处理器加载并执行:
通过预设的参数服务器获取最佳***点的接口,通过所述输入模块接收计算节点发送的最佳***点获取请求;
根据所述最佳***点获取请求,通过预设的梯度提升决策树GBDT优化算法从存储的M/P个特征中计算出最佳***点;所述M为训练数据的特征数量,所述P为所述参数服务器包括的参数服务器节点的数量;
通过所述输出模块将所述最佳***点的信息发送给所述计算节点。
12.如权利要求11所述的设备,其特征在于,所述处理器还执行:
通过预设的参数服务器更新梯度直方图的接口,通过所述输入模块接收计算节点发送的分块局部梯度直方图;其中,所述分块局部梯度直方图为所述计算节点针对每个待处理树节点,根据自身节点的训练数据分别计算各自对应的局部梯度直方图,并将每个局部梯度直方图分成P个分块的局部梯度直方图;且P个分块的局部梯度直方图与P个参数服务器节点一一对应;
将所述分块局部梯度直方图累加到对应的全局梯度直方图上。
13.如权利要求11或12所述的设备,其特征在于,所述最佳***点的信息包括***特征、***特征值以及目标函数增益。
14.一种参数服务器,其特征在于,包括P个参数服务器节点设备,所述P大于1;所述参数服务器节点设备为如权利要求11-13任一项所述的参数服务器节点设备。
15.一种基于参数服务器的梯度提升决策树的实现***,其特征在于,包括参数服务器和至少一个计算节点设备;
其中,所述参数服务器为如权利要求14所述的参数服务器;所述计算节点设备为如权利要求7-10任一项所述的计算节点设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710326930.XA CN108875955B (zh) | 2017-05-10 | 2017-05-10 | 基于参数服务器的梯度提升决策树的实现方法及相关设备 |
PCT/CN2018/081900 WO2018205776A1 (zh) | 2017-05-10 | 2018-04-04 | 基于参数服务器的梯度提升决策树的实现方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710326930.XA CN108875955B (zh) | 2017-05-10 | 2017-05-10 | 基于参数服务器的梯度提升决策树的实现方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108875955A true CN108875955A (zh) | 2018-11-23 |
CN108875955B CN108875955B (zh) | 2023-04-18 |
Family
ID=64104317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710326930.XA Active CN108875955B (zh) | 2017-05-10 | 2017-05-10 | 基于参数服务器的梯度提升决策树的实现方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108875955B (zh) |
WO (1) | WO2018205776A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109826626A (zh) * | 2019-01-08 | 2019-05-31 | 浙江大学 | 一种智能的采煤机切割模式识别*** |
CN110728317A (zh) * | 2019-09-30 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 决策树模型的训练方法、***、存储介质及预测方法 |
CN111680799A (zh) * | 2020-04-08 | 2020-09-18 | 北京字节跳动网络技术有限公司 | 用于处理模型参数的方法和装置 |
CN111738534A (zh) * | 2020-08-21 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 多任务预测模型的训练、事件类型的预测方法及装置 |
CN111860831A (zh) * | 2020-06-19 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种基于PyTorch框架的自动重计算方法、装置 |
CN112052954A (zh) * | 2019-06-06 | 2020-12-08 | 北京百度网讯科技有限公司 | 梯度提升树建模方法、装置以及终端 |
CN112948608A (zh) * | 2021-02-01 | 2021-06-11 | 北京百度网讯科技有限公司 | 图片查找方法、装置、电子设备及计算机可读存储介质 |
CN113497785A (zh) * | 2020-03-20 | 2021-10-12 | 深信服科技股份有限公司 | 恶意加密流量检测方法、***、存储介质和云端服务器 |
CN114118641A (zh) * | 2022-01-29 | 2022-03-01 | 华控清交信息科技(北京)有限公司 | 风电场功率预测方法、gbdt模型纵向训练方法及装置 |
CN114529108A (zh) * | 2022-04-22 | 2022-05-24 | 北京百度网讯科技有限公司 | 基于树模型的预测方法、装置、设备、介质及程序产品 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3709229A1 (en) | 2019-03-13 | 2020-09-16 | Ricoh Company, Ltd. | Learning device and learning method |
US20210133677A1 (en) * | 2019-10-31 | 2021-05-06 | Walmart Apollo, Llc | Apparatus and methods for determining delivery routes and times based on generated machine learning models |
CN111475988B (zh) * | 2020-04-03 | 2024-02-23 | 浙江工业大学之江学院 | 基于梯度提升决策树和遗传算法的印染定型机能耗优化方法 |
CN111488942A (zh) * | 2020-04-15 | 2020-08-04 | 深圳前海微众银行股份有限公司 | 数据处理方法、设备及计算机可读存储介质 |
CN113824677B (zh) * | 2020-12-28 | 2023-09-05 | 京东科技控股股份有限公司 | 联邦学习模型的训练方法、装置、电子设备和存储介质 |
CN113722739B (zh) * | 2021-09-06 | 2024-04-09 | 京东科技控股股份有限公司 | 梯度提升树模型的生成方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140351196A1 (en) * | 2013-05-21 | 2014-11-27 | Sas Institute Inc. | Methods and systems for using clustering for splitting tree nodes in classification decision trees |
CN105718493A (zh) * | 2014-12-05 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 基于决策树的搜索结果排序方法及其装置 |
CN105809176A (zh) * | 2014-12-30 | 2016-07-27 | 华为技术有限公司 | 基于区间策略的最佳***点生成方法和装置 |
CN105808582A (zh) * | 2014-12-30 | 2016-07-27 | 华为技术有限公司 | 基于分层策略的决策树并行生成方法和装置 |
US20170076198A1 (en) * | 2015-09-11 | 2017-03-16 | Facebook, Inc. | High-capacity machine learning system |
-
2017
- 2017-05-10 CN CN201710326930.XA patent/CN108875955B/zh active Active
-
2018
- 2018-04-04 WO PCT/CN2018/081900 patent/WO2018205776A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140351196A1 (en) * | 2013-05-21 | 2014-11-27 | Sas Institute Inc. | Methods and systems for using clustering for splitting tree nodes in classification decision trees |
CN105718493A (zh) * | 2014-12-05 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 基于决策树的搜索结果排序方法及其装置 |
CN105809176A (zh) * | 2014-12-30 | 2016-07-27 | 华为技术有限公司 | 基于区间策略的最佳***点生成方法和装置 |
CN105808582A (zh) * | 2014-12-30 | 2016-07-27 | 华为技术有限公司 | 基于分层策略的决策树并行生成方法和装置 |
US20170076198A1 (en) * | 2015-09-11 | 2017-03-16 | Facebook, Inc. | High-capacity machine learning system |
Non-Patent Citations (2)
Title |
---|
JERRY YE等: "《Stochastic gradient boosted distributed decision trees》", 《PROCEEDINGS OF THE 18TH ACM CONFERENCE ON INFORMATION AND KNOWLEDGE MANAGEMENT》 * |
杨梓灿: "《基于MPI的正则化贪心森林的并行化设计与实现》", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109826626A (zh) * | 2019-01-08 | 2019-05-31 | 浙江大学 | 一种智能的采煤机切割模式识别*** |
CN112052954B (zh) * | 2019-06-06 | 2024-05-31 | 北京百度网讯科技有限公司 | 梯度提升树建模方法、装置以及终端 |
CN112052954A (zh) * | 2019-06-06 | 2020-12-08 | 北京百度网讯科技有限公司 | 梯度提升树建模方法、装置以及终端 |
CN110728317A (zh) * | 2019-09-30 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 决策树模型的训练方法、***、存储介质及预测方法 |
CN113497785B (zh) * | 2020-03-20 | 2023-05-12 | 深信服科技股份有限公司 | 恶意加密流量检测方法、***、存储介质和云端服务器 |
CN113497785A (zh) * | 2020-03-20 | 2021-10-12 | 深信服科技股份有限公司 | 恶意加密流量检测方法、***、存储介质和云端服务器 |
CN111680799A (zh) * | 2020-04-08 | 2020-09-18 | 北京字节跳动网络技术有限公司 | 用于处理模型参数的方法和装置 |
CN111680799B (zh) * | 2020-04-08 | 2024-02-20 | 北京字节跳动网络技术有限公司 | 用于处理模型参数的方法和装置 |
US11809429B2 (en) | 2020-04-08 | 2023-11-07 | Beijing Bytedance Network Technology Co., Ltd. | Method for processing model parameters, and apparatus |
CN111860831A (zh) * | 2020-06-19 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种基于PyTorch框架的自动重计算方法、装置 |
CN111860831B (zh) * | 2020-06-19 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种基于PyTorch框架的自动重计算方法、装置 |
CN111738534B (zh) * | 2020-08-21 | 2020-12-04 | 支付宝(杭州)信息技术有限公司 | 多任务预测模型的训练、事件类型的预测方法及装置 |
CN111738534A (zh) * | 2020-08-21 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 多任务预测模型的训练、事件类型的预测方法及装置 |
CN112948608B (zh) * | 2021-02-01 | 2023-08-22 | 北京百度网讯科技有限公司 | 图片查找方法、装置、电子设备及计算机可读存储介质 |
CN112948608A (zh) * | 2021-02-01 | 2021-06-11 | 北京百度网讯科技有限公司 | 图片查找方法、装置、电子设备及计算机可读存储介质 |
CN114118641B (zh) * | 2022-01-29 | 2022-04-19 | 华控清交信息科技(北京)有限公司 | 风电场功率预测方法、gbdt模型纵向训练方法及装置 |
CN114118641A (zh) * | 2022-01-29 | 2022-03-01 | 华控清交信息科技(北京)有限公司 | 风电场功率预测方法、gbdt模型纵向训练方法及装置 |
CN114529108A (zh) * | 2022-04-22 | 2022-05-24 | 北京百度网讯科技有限公司 | 基于树模型的预测方法、装置、设备、介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN108875955B (zh) | 2023-04-18 |
WO2018205776A1 (zh) | 2018-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108875955A (zh) | 基于参数服务器的梯度提升决策树的实现方法及相关设备 | |
CN111382868B (zh) | 神经网络结构搜索方法和神经网络结构搜索装置 | |
US20120317142A1 (en) | Systmen and method for data management in large data networks | |
CN113098714A (zh) | 一种基于深度强化学习的低时延网络切片的方法 | |
EP3970012A1 (en) | Scheduling operations on a computation graph | |
CN114902273A (zh) | 使用gpu优化资源分配的***和方法 | |
CN115860081B (zh) | 一种芯粒算法调度方法、***、电子设备及存储介质 | |
CN111339818A (zh) | 一种人脸多属性识别*** | |
CN112685138A (zh) | 云环境下基于多种群混合智能优化的多工作流调度方法 | |
CN111966495A (zh) | 数据处理方法和装置 | |
Lin et al. | A parallel Cop-Kmeans clustering algorithm based on MapReduce framework | |
CN110175287B (zh) | 一种基于Flink的矩阵分解隐式反馈推荐方法和*** | |
CN116050235A (zh) | 一种云边环境下工作流数据布局的方法及存储介质 | |
Ho et al. | Adaptive communication for distributed deep learning on commodity GPU cluster | |
CN111813525B (zh) | 一种异构***工作流调度方法 | |
US11640531B2 (en) | Method, apparatus and device for updating convolutional neural network using GPU cluster | |
CN111027709B (zh) | 信息推荐方法、装置、服务器及存储介质 | |
CN109446408A (zh) | 检索相似数据的方法、装置、设备及计算机可读存储介质 | |
CN117194966A (zh) | 对象分类模型的训练方法和相关装置 | |
CN115112137A (zh) | 路径规划方法、装置、电子设备及可读存储介质 | |
US7870081B2 (en) | Parallelization of bayesian network structure learning | |
US11615320B1 (en) | Method, product, and apparatus for variable precision weight management for neural networks | |
US20230125509A1 (en) | Bayesian adaptable data gathering for edge node performance prediction | |
CN116167447B (zh) | 量子电路处理方法、装置及电子设备 | |
CN113033827B (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 |