一种信息处理方法及系统与流程

文档序号:14953162发布日期:2018-07-17 23:00阅读:139来源:国知局
本发明涉及信息处理技术,尤其涉及一种信息处理方法及系统。
背景技术
::随着互联网技术、通信技术、智能终端等领域的发展,用户的生活越来越智能化。而智能化所依托的是大数据分析、数据挖掘的精确性。比如,视频服务、社交广告服务、用户画像挖掘等需要精准推荐的服务中都离不开大数据分析、数据挖掘的精确性,目的是为了从浩瀚的数据中找出用户所关心的信息。为了更好的实现该目的,可以,通过设计机器学习平台,部署大规模的机器学习任务,以打造出一个具备机器学习型生态的系统环境,该系统环境能支持更大数量级的数据,性能更好,更低的使用门槛。在运行该系统环境时,需要用到聚类处理。然而,采用现有的聚类解决方案,随机概率性过高,导致聚类处理结果并不理想,不符合预期。对于这个问题,目前尚无有效的解决方案。技术实现要素:有鉴于此,本发明实施例提供了一种信息处理方法及系统,至少解决了现有技术存在的问题。本发明实施例的一种信息处理方法,应用于由至少一个服务器和至少一个信息处理节点构成的分布式架构,在所述至少一个服务器与所述至少一个信息处理节点间建立通信;所述方法包括:服务器将训练样本分解为i个数据块,得到第一训练数据至第i训练数据,所述i为大于1的正整数;服务器将所述第一训练数据至所述第i训练数据,分配给至少一个信息处理节点,以进行模型参数的运算;信息处理节点根据所述第一训练数据至所述第i训练数据分别进行模型参数的运算,运算得到第一模型参数至第i模型参数;信息处理节点将所述第一模型参数至所述第i模型参数更新至至少一个服务器中;信息处理节点访问所述至少一个服务器,读取到由所述第一模型参数至所述第i模型参数构成的全局数据,根据所述全局数据得到距离所述信息处理节点中自身训练数据最远的样本,并作为更新的模型参数。上述方案中,所述根据所述第一训练数据至所述第i训练数据分别进行模型参数的运算,运算得到第一模型参数至第i模型参数,将所述第一模型参数至所述第i模型参数更新至所述至少一个服务器中,包括:在所述至少一个信息处理节点间,以多轮迭代的方式进行模型参数的运算和模型参数的更新;当所述多轮迭代的次数达到预设的迭代值时,满足收敛条件,结束所述模型参数的运算和模型参数的更新。上述方案中,所述在所述至少一个信息处理节点间,以多轮迭代的方式进行模型参数的运算和模型参数的更新,包括:根据所述第一训练数据进行模型参数的运算,得到所述第一模型参数,本信息处理节点将所述第一模型参数更新至所述至少一个服务器中;触发多轮迭代,在每一轮的模型参数运算中,本信息处理节点从所述至少一个服务器中读取上一轮非本信息处理节点进行模型参数运算后更新至所述至少一个服务器中的至少一个模型参数,所述至少一个模型参数包括第二模型参数至第i模型参数;根据所述第二模型参数至第i模型参数,更新所述第一模型参数。上述方案中,当所述模型参数运算为训练数据的簇心选择时,在每一轮的模型参数运算中,本信息处理节点从所述至少一个服务器中读取上一轮非本信息处理节点所选择的第一类候选簇心;在每一轮的模型参数运算中,本信息处理节点从自身训练数据中选择第二类候选簇心;根据预设策略选择出所述第二类候选簇心中,距离所述第一类候选簇心最远的样本,将选定的所述样本作为更新的候选簇心,将更新的候选簇心发送至所述至少一个服务器中。上述方案中,根据预设策略选择出所述第二类候选簇心中,距离所述第一类候选簇心最远的样本,包括:计算所述第二类候选簇心中每个样本到所述第一类候选簇心中所有候选簇心的距离和;根据所述每个样本被选择的概率正比于所述距离和,选择出所述距离和最大的样本作为距离所述第一类候选簇心最远的样本。本发明实施例的一种信息处理系统,所述系统由至少一个服务器和至少一个信息处理节点构成分布式架构,在所述至少一个服务器与所述至少一个信息处理节点间建立通信;其中,所述服务器,用于:将训练样本分解为i个数据块,得到第一训练数据至第i训练数据,所述i为大于1的正整数;将所述第一训练数据至所述第i训练数据,分配给至少一个信息处理节点,以进行模型参数的运算;所述信息处理节点,用于:根据所述第一训练数据至所述第i训练数据分别进行模型参数的运算,运算得到第一模型参数至第i模型参数,将所述第一模型参数至所述第i模型参数更新至所述至少一个服务器中;访问所述至少一个服务器,读取到由所述第一模型参数至所述第i模型参数构成的全局数据,根据所述全局数据得到距离所述信息处理节点中自身训练数据最远的样本,并作为更新的模型参数。上述方案中,所述信息处理节点,进一步用于:以多轮迭代的方式进行模型参数的运算和模型参数的更新;当所述多轮迭代的次数达到预设的迭代值时,满足收敛条件,结束所述模型参数的运算和模型参数的更新。上述方案中,所述信息处理节点,进一步用于:根据所述第一训练数据进行模型参数的运算,得到所述第一模型参数,将所述第一模型参数更新至所述至少一个服务器中;触发多轮迭代,在每一轮的模型参数运算中,从所述至少一个服务器中读取上一轮非本信息处理节点进行模型参数运算后更新至所述至少一个服务器中的至少一个模型参数,所述至少一个模型参数包括第二模型参数至第i模型参数;根据所述第二模型参数至第i模型参数,更新所述第一模型参数。上述方案中,所述信息处理节点,进一步用于:当所述模型参数运算为训练数据的簇心选择时,在每一轮的模型参数运算中,从所述至少一个服务器中读取上一轮非本信息处理节点所选择的第一类候选簇心;在每一轮的模型参数运算中,从自身训练数据中选择第二类候选簇心;根据预设策略选择出所述第二类候选簇心中,距离所述第一类候选簇心最远的样本,将选定的所述样本作为更新的候选簇心,将更新的候选簇心发送至所述至少一个服务器中。上述方案中,所述信息处理节点,进一步用于:计算所述第二类候选簇心中每个样本到所述第一类候选簇心中所有候选簇心的距离和;根据所述每个样本被选择的概率正比于所述距离和,选择出所述距离和最大的样本作为距离所述第一类候选簇心最远的样本。本发明实施例的一种信息处理方法,所述方法包括:与分布式架构的至少一个服务器建立通信,接收所述至少一个服务器分配的第一训练数据至第i训练数据,以进行模型参数的运算,所述第一训练数据至所述第i训练数据由训练样本分解得到,所述i为大于1的正整数;根据所述第一训练数据至所述第i训练数据分别进行模型参数的运算,运算得到第一模型参数至第i模型参数,将所述第一模型参数至所述第i模型参数更新至所述至少一个服务器中;访问所述至少一个服务器,读取到由所述第一模型参数至所述第i模型参数构成的全局数据,根据所述全局数据得到距离所述至少一个信息处理节点中自身训练数据最远的样本,并作为更新的模型参数。上述方案中,所述根据所述第一训练数据至所述第i训练数据分别进行模型参数的运算,运算得到第一模型参数至第i模型参数,将所述第一模型参数至所述第i模型参数更新至所述至少一个服务器中,包括:在所述至少一个信息处理节点间,以多轮迭代的方式进行模型参数的运算和模型参数的更新;当所述多轮迭代的次数达到预设的迭代值时,满足收敛条件,结束所述模型参数的运算和模型参数的更新。上述方案中,所述在所述至少一个信息处理节点间,以多轮迭代的方式进行模型参数的运算和模型参数的更新,包括:根据所述第一训练数据进行模型参数的运算,得到所述第一模型参数,本信息处理节点将所述第一模型参数更新至所述至少一个服务器中;触发多轮迭代,在每一轮的模型参数运算中,本信息处理节点从所述至少一个服务器中读取上一轮非本信息处理节点进行模型参数运算后更新至所述至少一个服务器中的至少一个模型参数,所述至少一个模型参数包括第二模型参数至第i模型参数;根据所述第二模型参数至第i模型参数,更新所述第一模型参数。上述方案中,当所述模型参数运算为训练数据的簇心选择时,在每一轮的模型参数运算中,本信息处理节点从所述至少一个服务器中读取上一轮非本信息处理节点所选择的第一类候选簇心;在每一轮的模型参数运算中,本信息处理节点从自身训练数据中选择第二类候选簇心;根据预设策略选择出所述第二类候选簇心中,距离所述第一类候选簇心最远的样本,将选定的所述样本作为更新的候选簇心,将更新的候选簇心发送至所述至少一个服务器中。上述方案中,所述根据预设策略选择出所述第二类候选簇心中,距离所述第一类候选簇心最远的样本,包括:计算所述第二类候选簇心中每个样本到所述第一类候选簇心中所有候选簇心的距离和;根据所述每个样本被选择的概率正比于所述距离和,选择出所述距离和最大的样本作为距离所述第一类候选簇心最远的样本。本发明实施例的一种信息处理节点,包括:通信模块,用于:与分布式架构的至少一个服务器建立通信,接收所述至少一个服务器分配的第一训练数据至第i训练数据,以进行模型参数的运算,所述第一训练数据至所述第i训练数据由训练样本分解得到,所述i为大于1的正整数;运算模块,用于:根据所述第一训练数据至所述第i训练数据分别进行模型参数的运算,运算得到第一模型参数至第i模型参数,将所述第一模型参数至所述第i模型参数更新至所述至少一个服务器中;访问所述至少一个服务器,读取到由所述第一模型参数至所述第i模型参数构成的全局数据,根据所述全局数据得到距离所述至少一个信息处理节点中自身训练数据最远的样本,并作为更新的模型参数。上述方案中,所述运算模块,进一步用于:在所述至少一个信息处理节点间,以多轮迭代的方式进行模型参数的运算和模型参数的更新;当所述多轮迭代的次数达到预设的迭代值时,满足收敛条件,结束所述模型参数的运算和模型参数的更新。上述方案中,所述运算模块,进一步用于:根据所述第一训练数据进行模型参数的运算,得到所述第一模型参数,本信息处理节点将所述第一模型参数更新至所述至少一个服务器中;触发多轮迭代,在每一轮的模型参数运算中,本信息处理节点从所述至少一个服务器中读取上一轮非本信息处理节点进行模型参数运算后更新至所述至少一个服务器中的至少一个模型参数,所述至少一个模型参数包括第二模型参数至第i模型参数;根据所述第二模型参数至第i模型参数,更新所述第一模型参数。上述方案中,所述运算模块,进一步用于:当所述模型参数运算为训练数据的簇心选择时,在每一轮的模型参数运算中,本信息处理节点从所述至少一个服务器中读取上一轮非本信息处理节点所选择的第一类候选簇心;在每一轮的模型参数运算中,本信息处理节点从自身训练数据中选择第二类候选簇心;根据预设策略选择出所述第二类候选簇心中,距离所述第一类候选簇心最远的样本,将选定的所述样本作为更新的候选簇心,将更新的候选簇心发送至所述至少一个服务器中。上述方案中,所述运算模块,进一步用于:计算所述第二类候选簇心中每个样本到所述第一类候选簇心中所有候选簇心的距离和;根据所述每个样本被选择的概率正比于所述距离和,选择出所述距离和最大的样本作为距离所述第一类候选簇心最远的样本。本发明实施例的信息处理方法,应用于由至少一个服务器和至少一个信息处理节点构成的分布式架构,在所述至少一个服务器与所述至少一个信息处理节点间建立通信。所述方法包括:服务器将训练样本分解为i个数据块,得到第一训练数据至第i训练数据,所述i为大于1的正整数;服务器将所述第一训练数据至所述第i训练数据,分配给至少一个信息处理节点,以进行模型参数的运算;信息处理节点根据所述第一训练数据至所述第i训练数据分别进行模型参数的运算,运算得到第一模型参数至第i模型参数;信息处理节点将所述第一模型参数至所述第i模型参数更新至至少一个服务器中;信息处理节点访问所述至少一个服务器,读取到由所述第一模型参数至所述第i模型参数构成的全局数据,根据所述全局数据得到距离所述信息处理节点中自身训练数据最远的样本,并作为更新的模型参数。采用本发明实施例,在分布式架构的至少一个服务器与至少一个信息处理节点间建立通信,将所述第一训练数据至所述第i训练数据,分配给与所述至少一个服务器建立通信的至少一个信息处理节点,至少一个信息处理节点进行模型参数的运算后将得到的模型参数更新至所述至少一个服务器中,从而使得所述至少一个信息处理节点中的每一个信息处理节点都知道彼此所选择的模型参数。知道彼此所选择的模型参数,是一种全局数据的部署,能更精确的找出用户所关心的信息。在机器学习型生态的系统环境中,在配置系统环境时,加载更新至所述至少一个服务器中的所述第一模型参数至所述第i模型参数,根据所述第一模型参数至所述第i模型参数,实现数据的聚类处理,减少了聚类处理的随机概率性,使得聚类处理结果更为理想,符合预期。附图说明图1为本发明实施例中进行信息交互的各方硬件实体的示意图;图2为本发明实施例一方法的实现流程示意图;图3为本发明实施例一系统架构的示意图;图4为应用本发明实施例一分布式架构的示意图;图5为应用本发明实施例样本与簇心的关系示意图;图6为应用本发明实施例的另一分布式架构的示意图。具体实施方式下面结合附图对技术方案的实施作进一步的详细描述。现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明实施例的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。在下面的详细说明中,陈述了众多的具体细节,以便彻底理解本发明。不过,对于本领域的普通技术人员来说,显然可在没有这些具体细节的情况下实践本发明。在其他情况下,没有详细说明公开的公知方法、过程、组件、电路和网络,以避免不必要地使实施例的各个方面模糊不清。另外,本文中尽管多次采用术语“第一”、“第二”等来描述各种元件(或各种阈值或各种应用或各种指令或各种操作)等,不过这些元件(或阈值或应用或指令或操作)不应受这些术语的限制。这些术语只是用于区分一个元件(或阈值或应用或指令或操作)和另一个元件(或阈值或应用或指令或操作)。例如,第一操作可以被称为第二操作,第二操作也可以被称为第一操作,而不脱离本发明的范围,第一操作和第二操作都是操作,只是二者并不是相同的操作而已。本发明实施例中的步骤并不一定是按照所描述的步骤顺序进行处理,可以按照需求有选择的将步骤打乱重排,或者删除实施例中的步骤,或者增加实施例中的步骤,本发明实施例中的步骤描述只是可选的顺序组合,并不代表本发明实施例的所有步骤顺序组合,实施例中的步骤顺序不能认为是对本发明的限制。本发明实施例中的术语“和/或”指的是包括相关联的列举项目中的一个或多个的任何和全部的可能组合。还要说明的是:当用在本说明书中时,“包括/包含”指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件和/或组件和/或它们的组群的存在或添加。本发明实施例的智能终端(如移动终端)可以以各种形式来实施。例如,本发明实施例中描述的移动终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、个人数字助理(pda,personaldigitalassistant)、平板电脑(pad)、便携式多媒体播放器(pmp,portablemediaplayer)、导航装置等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。图1为本发明实施例中进行信息交互的各方硬件实体的示意图,图1中包括:信息处理节点1、服务器2、聚类处理节点31-32。信息处理节点1可以由多台机器11-13组成,通过无线或有线方式与服务器2进行信息交互。服务器2也可以由多台机器21-23组成。可以由在信息处理节点1与服务器2间建立通信,多台机器11-13与多台机器21-23构成“多对多”的关系,采用了分布式系统架构。系统中除了由信息处理节点1和服务器2构成的分布式系统架构,还可以包括聚类处理节点3,聚类处理节点3可以为一个或多个,用于从服务器2中获取信息处理节点1更新至服务器2的第一模型参数至第i模型参数,所述i为大于1的正整数。配置系统环境时,可以通过聚类处理节点3加载所述第一模型参数至所述第i模型参数,根据所述第一模型参数至所述第i模型参数,实现数据的聚类处理。本文中,由信息处理节点1和服务器2构成的分布式系统架构适用于多种应用场景,比如应用于当前的聚类处理场景中。聚类处理节点3不是必选项,其它应用场景中,可以采用其它节点来处理。一切可适用的应用场景,都可以基于本发明实施例的该分布式系统架构。如图1所示,本发明实施例的处理逻辑分为服务器所执行的处理逻辑和信息处理节点所执行的处理逻辑,将该系统架构应用于聚类处理场景中,还可以包括:聚类处理节点的处理逻辑。服务器所执行的处理逻辑10包括:s11、将训练样本和计算任务进行分块处理,比如将训练样本分解为多个数据块,将计算任务分解为多个子任务;s12、将分解训练样本得到的多个数据块存储于服务器本地,供多个信息处理节点进行读取或访问;s13、将分解训练样本得到的多个数据块和多个子任务分配给多个信息处理节点进行运算,比如,进行模型参数的运算。信息处理节点所执行的处理逻辑11包括:s21、根据分解训练样本得到的多个数据块分别执行多个子任务,比如,进行模型参数的运算;s22、将运算得到的多个模型参数更新至至少一个服务器中。上述图1的例子只是实现本发明实施例的一个系统架构实例,本发明实施例并不限于上述图1所述的系统结构,基于上述图1所述的系统架构,提出本发明方法各个实施例。本发明实施例的信息处理方法,如图2所示,所述方法包括:服务器将训练样本分解为i个数据块,得到第一训练数据至第i训练数据,所述i为大于1的正整数(101)。可以将所述第一训练数据至所述第i训练数据存储于分布式架构的至少一个服务器中。当单机性能达到瓶颈时,有两种方式可以解决性能问题,一是堆硬件,进一步提升配置;二是分布式,水平扩展分布式架构。本实施例中多个服务器采取分布式架构,分布式架构中的多个服务器除了能提高性能,还可以实现负载均衡,避免一个服务器处理太多的访问请求而宕机。本实施例中的信息交互是“多对多”,这里是“多对多”中第一个“多”,具体可以为参数服务器(ps,parameterserver)。本发明实施例的信息处理方法,还包括:服务器将所述第一训练数据至所述第i训练数据,分配给与所述至少一个服务器建立通信的至少一个信息处理节点,以进行模型参数的运算(102)。本实施例中的信息交互是“多对多”,这里是“多对多”中第二个“多”,具体可以为计算节点(worker)。本发明实施例,除了在服务器水平方向扩展分布式架构,在“多对多”的信息交互中还包括垂直方向的分布式架构。本发明实施例中垂直方向的分布式架构,指:服务器与信息处理节点的信息交互不是一个信息处理节点对应多个服务器,或者一个服务器对应多个信息处理节点,而是多个信息处理节点对应多个服务器。本发明实施中,由ps和worker构成分布式架构的一个实例。由于在一个具体场景中,该架构是用于模型参数计算(比如聚类处理中的簇心运算),因此,该分布式架构也可以称为参数服务器架构。该分布式架构中,ps用于数据存储,包括训练数据及模型参数的存储;worker用于完成模型参数的计算。在ps中包括:1)用于计算任务的训练数据;2)模型参数。该模型参数的一个实例可以为候选簇心。就候选簇心而言,是分配给worker训练数据后,从训练数据中选取的候选簇心,记为候选簇心a,选取结束后,本worker将候选簇心a更新至ps,目的是告知其它worker这一候选簇心a已经被本worker选取,其它worker尽量不要选取候选簇心a。由于每一个worker(包括:本worker和其它worker)通过该参数服务器架构中“ps/worker交互模式”能获取全局数据,而不是自身局部数据,因此,都知道彼此所选择的候选簇心,因此,能减少候选簇心选择的随机概率性,比如,本worker选择了候选簇心a,并更新到ps后,其它worker会尽量避开候选簇心a,而选择候选簇心b。就ps/worker交互模式”而言,是ps向worker提供模型参数(如候选簇心)的读取,worker将选择的模型参数(如候选簇心)更新到ps,以提醒其他worker避免该模型参数(如候选簇心)的重复选择。本发明实施例的信息处理方法,还包括:信息处理节点根据所述第一训练数据至所述第i训练数据分别进行模型参数的运算,运算得到第一模型参数至第i模型参数,将所述第一模型参数至所述第i模型参数更新至所述至少一个服务器中(103)。信息处理节点访问所述至少一个服务器,读取到由所述第一模型参数至所述第i模型参数构成的全局数据,根据所述全局数据得到距离所述信息处理节点中自身训练数据最远的样本,并作为更新的模型参数(104)。本发明实施例在配置系统环境时,还可以加载所述第一模型参数至所述第i模型参数(105)。根据所述第一模型参数至所述第i模型参数,实现数据的聚类处理(106)。步骤105-106为非必选项,当一个具体场景为聚类处理场景时,本发明实施例的信息处理方法还可以基于上述分布式架构与聚类相结合,直接使用通过分布式架构所构建得到的多个模型参数来进行聚类处理。本发明实施例中,采用分布式架构进行分布式计算,是将训练数据和计算任务分解成若干部分,分配给多台机器完成。分布式计算可以扩大计算规模,减少计算时间,提高计算效率。分布式计算的一个实例为:利用参数服务器架构。参数服务器架构是一种分布式机器学习计算架构,主要由ps和worker组成。其中,ps用于存储管理模型参数,worker用于完成模型参数计算任务。其中,ps是一或多台机器,负责存储、更新算法的模型参数。ps向worker提供参数读取、更新的服务。每个worker是一台机器,参数服务器架构中可以有一或多个worker。每个worker分配到一部分训练数据,以迭代的方式计算模型参数。每次迭代,worker从ps拉取最新的模型参数,用自己的训练数据计算出模型参数的更新值,再把更新值推送给ps。其中,训练数据是由模型参数构成的训练集。模型参数运算为簇心运算时,可以从训练集的多个训练样本点中选择出一个样本点作为簇心。本发明实施例中,在模型参数运算为簇心运算时,在簇心选择时需要计算样本点间的距离,可以采用的算法为欧氏距离算法,如公式(1)所示。欧式距离是空间中两个点的直线距离,可以用于度量两个点的相似性。距离越小,相似性越高;距离越大,相似性越低。本发明实施例中,从训练样本中选择簇心,由于基于worder节点和ps服务器的多对多交互,考虑了全局数据,因此,降低了计算簇心的随机概率性,使得大数据分析中的聚类处理更为精确。就欧氏距离算法而言,在n维欧式空间中,点(x1,x2,…,xn)和点(y1,y2,…,yn)的欧式距离为:本发明实施例中,在模型参数运算为簇心运算时,本发明实施例中采用的簇心选择,不是随机选择,而是采用兼顾全局数据基础的簇心选择策略。具体的,记每个样本为:xi,所有样本的集合为:x,被选择为簇心的样本为:ci,所有簇心集合为c,样本xi到簇心cj的距离为:d(xi,cj)2,簇心选择策略如下所示:步骤301、以平均分布的概率从所有样本x中选择出第一个簇心c1。步骤302、从其余样本中选择一个新的簇心,每个样本被选择的概率与它到所有已选择簇心的距离和∑d(xi,cj)2成正比,即它距离已选择的所有簇心越远,被选中的概率越高。步骤303、重复步骤301-302,直到选出k个簇心。步骤304、用选择出的k个簇心,按照后续的簇心算法进行后续计算。就所述簇心算法而言,是将所有样本划分为k个簇,每个簇的几何中心是这个簇的簇心,样本到簇心的距离代表样本到这个簇的距离,每个样本被划分到距离最近的簇。将每个样本看成一个可以用n维向量表示的点,kmeans算法用欧式距离度量,距离越大代表相似性越低,距离越小相似性越高。簇心算法算法的目标是将相同的样本划分到同一个簇,不同的样本划分到不同的簇,簇内距离越小越好,簇间距离越大越好。用选择出的k个簇心,以迭代的方式计算簇心,计算过程如下:步骤401、将选择出的k个样本作为初始簇心。这里,该初始簇心是本实施例采用兼顾全局数据基础的簇心选择策略得到的。步骤402、将每个样本点划分到距离最近的簇。步骤403、计算每个簇的几何中心值,作为这个簇的新簇心。步骤404、循环第步骤401-402,直到算法收敛。初始簇心的选择,对最终算法收敛结果影响巨大。为了实现同一簇内样本点距离尽可能近,不同簇间样本点距离尽可能远的目标,使初始划分结果接近于最终划分结果,初始簇心应该是相互距离尽可能远的k个点,即初始的每个簇心都离其它簇心最远。本发明实施例中,以上述参数服务器架构为例,解决了不同机器可能选择出相似簇心的问题,每台机器选择候选簇心的时候不仅考虑自己机器上样本的分布,也考虑到其他机器上样本的分布。worker每轮选择候选簇心之前会从ps拉取其余worker上一轮选择的候选簇心,选择出距离所有候选簇心最远的样本作为新的簇心,再把新选的候选簇心推送给ps,在下一轮更新给所有worker。即:worker1选择的c1、c2、c3和worker2选择的c4、c5、c6之间的距离都很远。本发明实施例中,以上述参数服务器架构为例,将簇心模型存放在多台机器组成的参数服务器上,只要增加机器就可以扩展模型的规模,解决了模型规模特别大、单机内存难以支持的问题。本发明实施例中,以上述参数服务器架构为例,参数服务器与worker通信,是多台机器与多台机器通信,解决了单台机器与多台机器通信的网络瓶颈、提高了通信效率、降低了网络通信开销。本发明实施例中,在所述至少一个信息处理节点间,以多轮迭代的方式进行模型参数的运算和模型参数的更新。当所述多轮迭代的次数达到预设的迭代值时,满足收敛条件,结束所述模型参数的运算和模型参数的更新。具体的,根据所述第一训练数据进行模型参数的运算,得到所述第一模型参数,本信息处理节点将所述第一模型参数更新至所述至少一个服务器中。触发多轮迭代后,在每一轮的模型参数运算中,本信息处理节点从所述至少一个服务器中读取上一轮非本信息处理节点进行模型参数运算后更新至所述至少一个服务器中的至少一个模型参数,所述至少一个模型参数包括第二模型参数至第i模型参数。根据所述第二模型参数至第i模型参数,对所述第一模型参数进行更新。也就是说,本信息处理节点知道其他非本信息处理节点如何选择模型参数,在本信息处理节点选择时,就可以对非本信息处理节点选择的模型参数予以规避。本发明实施例中,当所述模型参数运算为训练数据的簇心选择时,在每一轮的模型参数运算中,本信息处理节点从所述至少一个服务器中读取上一轮非本信息处理节点所选择的第一类候选簇心;比如,所述第一类候选簇心包括:由第二候选簇心至第i候选簇心构成的候选簇心集合。在每一轮的模型参数运算中,本信息处理节点从自身训练数据中选择第二类候选簇心。根据预设策略选择出所述第二类候选簇心中,距离所述第一类候选簇心最远的样本,将选定的所述样本作为更新的候选簇心,将更新的候选簇心发送至所述至少一个服务器中。其中,就预设策略而言,是通过计算所述第二类候选簇心中每个样本,到所述第一类候选簇心中所有候选簇心的距离和,以所述每个样本正比于所述距离和的概率,选择出距离所述第一类候选簇心最远的样本,从而选择出第二类候选簇心中距离第一类候选簇心最远的样本。也就是说,根据所述每个样本被选择的概率正比于所述距离和,选择出所述距离和最大的样本作为距离所述第一类候选簇心最远的样本。本发明实施例的一种信息处理系统,如图3所示,包括信息处理节点41-43、服务器51-53。在信息处理节点与服务器间构成“多对多”的关系,采用了分布式系统架构。系统中除了由信息处理节点和服务器构成的分布式系统架构,还可以包括聚类处理节点,聚类处理节点可以为一个或多个,用于从服务器中获取信息处理节点更新至服务器的第一模型参数至第i模型参数,所述i为大于1的正整数。配置系统环境时,可以通过聚类处理节点加载所述第一模型参数至所述第i模型参数,根据所述第一模型参数至所述第i模型参数,实现数据的聚类处理。本发明实施例中,所述系统由至少一个服务器和至少一个信息处理节点构成分布式架构,并不限于图3中的信息处理节点和服务器指代的个数。在所述至少一个服务器与所述至少一个信息处理节点间建立通信;其中,所述服务器,用于:将训练样本分解为i个数据块,得到第一训练数据至第i训练数据,所述i为大于1的正整数,可以将所述第一训练数据至所述第i训练数据存储于分布式架构的至少一个服务器中。将所述第一训练数据至所述第i训练数据分配给与所述至少一个服务器建立通信的至少一个信息处理节点,以进行模型参数的运算。所述信息处理节点,用于:根据所述第一训练数据至所述第i训练数据分别进行模型参数的运算,运算得到第一模型参数至第i模型参数,将所述第一模型参数至所述第i模型参数更新至所述至少一个服务器中。以及,信息处理节点还用于访问所述至少一个服务器,读取到由所述第一模型参数至所述第i模型参数构成的全局数据,根据所述全局数据得到距离所述信息处理节点中自身训练数据最远的样本,并作为更新的模型参数。本发明实施例中,还可以包括聚类处理节点,聚类处理节点用于:配置系统环境时,加载所述第一模型参数至所述第i模型参数。根据所述第一模型参数至所述第i模型参数,实现数据的聚类处理。本发明实施例中,所述信息处理节点,进一步用于:以多轮迭代的方式进行模型参数的运算和模型参数的更新。当所述多轮迭代的次数达到预设的迭代值时,满足收敛条件,结束所述模型参数的运算和模型参数的更新。具体的,根据所述第一训练数据进行模型参数的运算,得到所述第一模型参数,将所述第一模型参数更新至所述至少一个服务器中。触发多轮迭代,在每一轮的模型参数运算中,从所述至少一个服务器中读取上一轮非本信息处理节点进行模型参数运算后更新至所述至少一个服务器中的至少一个模型参数,所述至少一个模型参数包括第二模型参数至第i模型参数。根据所述第二模型参数至第i模型参数,对所述第一模型参数进行更新。本发明实施例中,所述信息处理节点,进一步用于:当所述模型参数运算为训练数据的簇心选择时,在每一轮的模型参数运算中,从所述至少一个服务器中读取上一轮非本信息处理节点所选择的第一类候选簇心。在每一轮的模型参数运算中,从自身训练数据中选择第二类候选簇心。根据预设策略选择出所述第二类候选簇心中,距离所述第一类候选簇心最远的样本,将选定的所述样本作为更新的候选簇心,将更新的候选簇心发送至所述至少一个服务器中。本发明实施例中,所述信息处理节点,进一步用于:计算所述第二类候选簇心中每个样本,到所述第一类候选簇心中所有候选簇心的距离和。以所述每个样本正比于所述距离和的概率,选择出距离所述第一类候选簇心最远的样本。也就是说,根据所述每个样本被选择的概率正比于所述距离和,选择出所述距离和最大的样本作为距离所述第一类候选簇心最远的样本。本发明实施例中的信息处理节点包括:通信模块,用于:与分布式架构的至少一个服务器建立通信,接收所述至少一个服务器分配的第一训练数据至第i训练数据,以进行模型参数的运算,所述第一训练数据至所述第i训练数据由训练样本分解得到,所述i为大于1的正整数;运算模块,用于:根据所述第一训练数据至所述第i训练数据分别进行模型参数的运算,运算得到第一模型参数至第i模型参数,将所述第一模型参数至所述第i模型参数更新至所述至少一个服务器中;访问所述至少一个服务器,读取到由所述第一模型参数至所述第i模型参数构成的全局数据,根据所述全局数据得到距离所述至少一个信息处理节点中自身训练数据最远的样本,并作为更新的模型参数。上述方案中,所述运算模块,进一步用于:在所述至少一个信息处理节点间,以多轮迭代的方式进行模型参数的运算和模型参数的更新;当所述多轮迭代的次数达到预设的迭代值时,满足收敛条件,结束所述模型参数的运算和模型参数的更新。上述方案中,所述运算模块,进一步用于:根据所述第一训练数据进行模型参数的运算,得到所述第一模型参数,本信息处理节点将所述第一模型参数更新至所述至少一个服务器中;触发多轮迭代,在每一轮的模型参数运算中,本信息处理节点从所述至少一个服务器中读取上一轮非本信息处理节点进行模型参数运算后更新至所述至少一个服务器中的至少一个模型参数,所述至少一个模型参数包括第二模型参数至第i模型参数;根据所述第二模型参数至第i模型参数,更新所述第一模型参数。上述方案中,所述运算模块,进一步用于:当所述模型参数运算为训练数据的簇心选择时,在每一轮的模型参数运算中,本信息处理节点从所述至少一个服务器中读取上一轮非本信息处理节点所选择的第一类候选簇心;在每一轮的模型参数运算中,本信息处理节点从自身训练数据中选择第二类候选簇心;根据预设策略选择出所述第二类候选簇心中,距离所述第一类候选簇心最远的样本,将选定的所述样本作为更新的候选簇心,将更新的候选簇心发送至所述至少一个服务器中。上述方案中,所述运算模块,进一步用于:计算所述第二类候选簇心中每个样本到所述第一类候选簇心中所有候选簇心的距离和;根据所述每个样本被选择的概率正比于所述距离和,选择出所述距离和最大的样本作为距离所述第一类候选簇心最远的样本。以一个现实应用场景为例对本发明实施例阐述如下:采用本发明实施例的一个参数服务器架构,是分布式架构的一个示例,应用于分布式机器学习的运算。可以由ps和worker组成,参数服务器架构如图4所示。其中:ps存储管理模型参数,worker完成模型参数计算任务。ps作为参数服务器,可以是一或多台机器,负责存储、更新算法的模型参数。ps向worker提供参数读取、更新的服务。worker作为计算节点,每个worker是一台机器,参数服务器架构中可以有一或多个worker。每个worker分配到一部分训练数据,以迭代的方式计算模型参数。每次迭代,worker从ps拉取最新的参数,用自己的训练数据计算出模型参数的更新值,再把更新值推送给ps。模型参数为簇心的场景中,如图5所示为训练样本与簇心的关系示意图。图5中,以a1-a4标识的多个训练样本,聚类为以a1-a4标识的多个簇。以a1所标识的簇为本簇,选取本簇的簇中心点为称簇心。一种模型参数为簇心的运算中,是运行在map-reduce架构分布式系统上的kmeans初始簇心选择的算法,以下简称为kmeansspark,算法流程包括:1、每台机器用kmeans++算法从自己的训练数据中选择m个样本作为候选初始簇心;2、汇总所有机器的候选簇心,总共有m×stepsize个样本。stepsize为轮询次数。用kmeans++算法从这些候选簇心中选择出k个样本作为初始簇心。3、按照标准的kmeans算法计算。该簇心的运算中,能解决在分布式系统上选择初始簇心的问题,但是,仍然存在问题。比如,每台机器选择候选簇心的时候没有考虑其他机器上样本的分布情况,不同机器可能选择出相似的样本点。比如第一台机器选择出初始簇心:c1、c2、c3,第二台机器选择出:c4、c5、c6;c1、c2、c3相互距离很远,c4、c5、c6相互距离很远;但是,c1和c4、c2和c5、c3和c6的距离可能很近。又如,所有机器选择的候选簇心汇总保存在单台机器上,限制了模型的规模。在很多应用中样本数据维度高达千万、亿级别,候选簇心需要的存储空间极大,单台机器难以满足。再如,存储簇心的单台机器,需要从其它所有机器汇总候选簇心,并把初始簇心传播给所有机器,网络开销很大。一台机器对多台机器通信,网络效率很低。本发明实施例在参数服务器架构下实现簇心的运算中,为基于kmeans算法的初始簇心选择的算法,可以称为kmeansps算法。在分布式机器学习框架中,每个节点只能计算局部训练数据的样本,很难选择到全局最优的初始簇心。而该kmeansps算法利用了上述参数服务器架构,打破了只能在每个机器选择局部最优初始簇心的限制,实现全局最优初始簇心的选择。除此之外,kmeansps算法可以支持单机无法支持的模型规模,并且解决了传统的分布式计算架构中单点通信的瓶颈,扩大模型规模,提高通信效率。该kmeansps算法利用新的算法和参数服务器架构至少解决了以下三个问题:1.利用参数服务器架构,解决了不同机器可能选择出相似簇心的问题,每台机器选择候选簇心的时候不仅考虑自己机器上样本的分布,也考虑到其他机器上样本的分布。worker每轮选择候选簇心之前会从ps拉取其余worker上一轮选择的候选簇心,选择出距离所有候选簇心最远的样本作为新的簇心,再把新选的候选簇心推送给ps,在下一轮更新给所有worker。即:worker1选择的c1、c2、c3和worker2选择的c4、c5、c6之间的距离都很远。2.将簇心模型存放在多台机器组成的ps上,只要增加机器就可以扩展模型的规模,解决了模型规模特别大、单机内存难以支持的问题。3.ps与worker通信,是多台机器与多台机器通信,解决了单台机器与多台机器通信的网络瓶颈、提高了通信效率、降低了网络通信开销。将该kmeansps算法,应用于聚类处理中,比如,将其运用于机器学习平台angel中,在angel算法库的kmeans算法中实现。用户配置angel运行的系统环境,运行angel提供的kmeans算法就可以实现各种数据的聚类。本发明实施例中,该kmeansps算法所基于的参数服务器架构如图6所示,ps用于存储模型参数,模型参数切分成多块分配给多台机器。worker为计算节点,用于根据分配到的训练数据计算模型更新值(如簇心更新值)。ps向worker提供模型参数读取、访问的功能,模型参数在worker和ps之间传输。不同ps之间、不同worker之间没有数据交换和网络通信。在计算的过程中,ps存储候选簇心;每个worker分配到一部分样本数据,worker从自己的样本数据中选择出候选簇心,并且从参数服务器获得其他worker选择的候选簇心,每个簇心的选择都考虑到整体样本的分布。参数服务器架构中还可以包括控制节点(master),master通过心跳、网络、资源等控制整个系统正常运行。在参数服务器架构下实现簇心的运算中,首先,一个worker随机选择出一个样本作为第一个候选簇心,更新给ps,然后进行多伦选择。每轮开始每个worker从ps获取到上一轮其它worker选择的候选簇心;从自己分配的样本中选择出m个样本作为新的候选簇心,每个样本被选择的概率正比于它到所有候选簇心的距离和,即样本离所有候选簇心的距离和越大,被选择的概率越大;worker把新的候选簇心更新到参数服务器。n轮结束后,总共有m×n个候选簇心,再从这些候选簇心中选择出k个簇心作为初始簇心,进行kmeans计算。kmeansps算法的主要逻辑包括:1.随机选择一个worker,从它分配的样本中随机选择一个作为候选簇心,更新到参数服务器。2.worker轮循地选择候选簇心a)worker从ps上拉取上一轮其它worker选择的候选簇心集合c=∑ci,保存在本地。b)计算每个样本到所有候选簇心的距离和:∑d(xi,cj)2。c)以正比于到候选簇心距离和的概率选择出m个样本,作为新的候选簇心推送给ps。3.步骤2重复n次,总共得到m×n个候选簇心。4.用kmean++算法从这m×n个候选簇心中选择出k个点,作为初始簇心。模型参数为簇心的运算中,涉及欧氏距离算法。欧式距离是空间中两个点的直线距离,可以用于度量两个点的相似性。距离越小,相似性越高;距离越大,相似性越低。在n维欧式空间中,点(x1,x2,…,xn)和点(y1,y2,…,yn)的欧式距离为:模型参数为簇心的运算中,涉及kmeans算法:将所有样本划分为k个簇,每个簇的几何中心是这个簇的簇心,样本到簇心的距离代表样本到这个簇的距离,每个样本被划分到距离最近的簇。我们将每个样本看成一个可以用n维向量表示的点,kmeans算法用欧式距离度量,距离越大代表相似性越低,距离越小相似性越高。kmeans算法的目标是将相同的样本划分到同一个簇,不同的样本划分到不同的簇,簇内距离越小越好,簇间距离越大越好。kmeans算法以迭代的方式计算,计算过程包括:1.随机选择k个样本作为初始簇心。2.将每个样本点划分到距离最近的簇。3.计算每个簇的几何中心值,作为这个簇的新簇心。4.循环第2、3步,直到算法收敛。kmeans算法中初始簇心的选择对最终算法收敛结果影响巨大。为了实现同一簇内样本点距离尽可能近,不同簇间样本点距离尽可能远的目标,使初始划分结果接近于最终划分结果,初始簇心应该是相互距离尽可能远的k个点,即初始的每个簇心都离其它簇心最远。kmeans++算法作为kmeans算法的演进算法,是运行在单机模式下kmeans算法选择初始簇心的算法,记每个样本为:xi,所有样本的集合为:x,被选择为簇心的样本为:ci,所有簇心集合为c,样本xi到簇心cj的距离为:d(xi,cj)2,kmeans++算法的计算过程包括:1a.以平均分布的概率从所有样本x中选择出第一个簇心c1。1b.从其余样本中选择一个新的簇心,每个样本被选择的概率与它到所有已选择簇心的距离和∑d(xi,cj)2成正比,即它距离已选择的所有簇心越远,被选中的概率越高。1c.重复第1a、1b步骤,直到选出k个簇心。2用选择出的k个簇心,按照标准的kmeans算法进行后续计算。4、技术方案所产生的有益效果本发明实施例在参数服务器架构下实现簇心的运算中,通过上述kmeansps算法在实际应用中可以取得如下有益效果:1.选择簇心时候不仅考虑了单机样本的分布,还考虑到全局样本的分布。因此,选择的簇心更接近理想位置,使得后续的kmeans计算收敛速度更快,且可以收敛到更低的损失值。2.用多台机器作为参数服务器存储候选簇心及模型参数,可以计算单台机器无法存储的模型,支持更高维度的数据、更大规模的模型。3.参数服务器和计算节点worker之间,多台机器对多台机器通信,解决了传统的分布式系统架构中,单台机器对多台机器网络通信的单点瓶颈,降低网络通信开销,提高网络通信效率。在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本发明上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1