CN106919451B - 数据处理方法和装置 - Google Patents
数据处理方法和装置 Download PDFInfo
- Publication number
- CN106919451B CN106919451B CN201510993159.2A CN201510993159A CN106919451B CN 106919451 B CN106919451 B CN 106919451B CN 201510993159 A CN201510993159 A CN 201510993159A CN 106919451 B CN106919451 B CN 106919451B
- Authority
- CN
- China
- Prior art keywords
- sub
- model
- target data
- submodel
- result
- 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.)
- Active
Links
Images
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/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法和装置。其中,该方法包括:将第一模型分解为多个子模型,其中,第一模型用于根据目标数据输出与目标数据对应的目标结果;利用多个子模型中每个子模型输出与目标数据对应的子结果,得到多个子结果,多个子模型中至少两个子模型同时运行,以输出与目标数据对应的多个子结果;根据多个子结果获取与目标数据对应的目标结果。本发明解决了现有技术中数据处理的速度慢的技术问题。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种数据处理方法和装置。
背景技术
网站将用户可能输入的关键词与自己的产品或服务对应起来,并存储关键词和自己的产品或服务的对应关系。用户在网站输入关键词来进行搜索,服务器根据用户输入的关键词展示搜索结果,搜索结果是对应于用户输入的关键词的该网站的一些产品或服务。
由于网站的产品或服务根据时间的变化而变化,需要不断更新关键词和自己的产品或服务的对应关系,以提高搜索结果的准确性。然而,发明人发现,现有技术在更新关键词和自己的产品或服务的对应关系时,例如,在更新自己的产品或服务后,利用一个算法重新计算关键词与新的产品或服务的对应关系,由于计算量比较大,且计算速度比较慢,导致计算关键词与产品或服务的对应关系的速度比较慢。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法和装置,以至少解决现有技术中数据处理的速度慢的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理方法,包括:将第一模型分解为多个子模型,其中,所述第一模型用于根据目标数据输出与所述目标数据对应的目标结果;利用所述多个子模型中每个子模型输出与所述目标数据对应的子结果,得到多个子结果,所述多个子模型中至少两个子模型同时运行,以输出与所述目标数据对应的所述多个子结果;根据所述多个子结果获取与所述目标数据对应的所述目标结果。
进一步地,将第一模型分解为多个子模型包括:将所述第一模型分解为包括至少一个第一子模型的多个子模型,其中,所述第一子模型为利用所述多个子模型中的至少一个其他子模型输出的子结果输出第一子结果的子模型;或者将所述第一模型分解为包括至少两个第二子模型的多个子模型,其中,每个所述第二子模型输出的子结果不依赖于其他所述第二子模型输出的子结果。
进一步地,将所述第一模型分解为包括至少一个第一子模型的多个子模型之后,利用所述多个子模型中每个子模型输出与所述目标数据对应的子结果,得到多个子结果包括:将第一子模型Mi输出的子结果作为第一子模型Mi+1的输入,其中,i依次取1至n-1,n为所述第一子模型的数量;根据所述多个子结果获取与所述目标数据对应的所述目标结果包括:确定第一子模型Mn输出的子结果为所述目标数据对应的所述目标结果。
进一步地,将第一模型分解为多个子模型包括:获取与所述目标数据相关联的预设模型;将所述第一模型分解为包括至少一个所述预设模型的多个子模型。
进一步地,所述目标数据包括第一目标数据和第二目标数据,所述多个子模型包括第三子模型和第四子模型,利用所述多个子模型中每个子模型输出与所述目标数据对应的子结果,得到多个子结果包括:利用所述第三子模型输出与所述第一目标数据对应的第一子结果之后,利用所述第三子模型输出与所述第二目标数据对应的第二子结果;在利用所述第三子模型输出与所述第二目标数据对应的第二子结果时,判断所述第四子模型是否处于空闲状态;若所述第四子模型处于所述空闲状态,则利用所述第四子模型输出与所述第一目标数据对应的第三子结果;若所述第四子模型处于运行状态,则等待所述第四子模型当前运行完毕之后,利用所述第四子模型输出与所述第一目标数据对应的第三子结果。
根据本发明实施例的另一方面,还提供了一种数据处理装置,包括:分解单元,用于将第一模型分解为多个子模型,其中,所述第一模型用于根据目标数据输出与所述目标数据对应的目标结果;处理单元,用于利用所述多个子模型中每个子模型输出与所述目标数据对应的子结果,得到多个子结果,所述多个子模型中至少两个子模型同时运行,以输出与所述目标数据对应的所述多个子结果;获取单元,用于根据所述多个子结果获取与所述目标数据对应的所述目标结果。
进一步地,所述分解单元包括:第一分解子单元,用于将所述第一模型分解为包括至少一个第一子模型的多个子模型,其中,所述第一子模型为利用所述多个子模型中的至少一个其他子模型输出的子结果输出第一子结果的子模型;或者第二分解子单元,用于将所述第一模型分解为包括至少两个第二子模型的多个子模型,其中,每个所述第二子模型输出的子结果不依赖于其他所述第二子模型输出的子结果。
进一步地,所述处理单元包括:第一处理子单元,用于所述第一分解子单元将所述第一模型分解为包括至少一个第一子模型的多个子模型之后,将第一子模型Mi输出的子结果作为第一子模型Mi+1的输入,其中,i依次取1至n-1,n为所述第一子模型的数量;所述获取单元包括:确定子单元,用于确定第一子模型Mn输出的子结果为所述目标数据对应的所述目标结果。
进一步地,所述分解单元还包括:获取子单元,用于获取与所述目标数据相关联的预设模型;第三分解子单元,用于将所述第一模型分解为包括至少一个所述预设模型的多个子模型。
进一步地,所述目标数据包括第一目标数据和第二目标数据,所述多个子模型包括第三子模型和第四子模型,所述处理单元包括:第二处理子单元,用于利用所述第三子模型输出与所述第一目标数据对应的第一子结果之后,利用所述第三子模型输出与所述第二目标数据对应的第二子结果;判断子单元,用于在利用所述第三子模型输出与所述第二目标数据对应的第二子结果时,判断所述第四子模型是否处于空闲状态;第三处理子单元,用于当所述判断子单元判断出所述第四子模型处于所述空闲状态时,利用所述第四子模型输出与所述第一目标数据对应的第三子结果;第四处理子单元,用于当所述判断子单元判断出所述第四子模型处于运行状态时,等待所述第四子模型当前运行完毕之后,利用所述第四子模型输出与所述第一目标数据对应的第三子结果。
在本发明实施例中,将第一模型分解为多个子模型,其中,第一模型用于根据目标数据输出与目标数据对应的目标结果;利用多个子模型中每个子模型输出与目标数据对应的子结果,得到多个子结果,多个子模型中至少两个子模型同时运行,以输出与目标数据对应的多个子结果;根据多个子结果获取与目标数据对应的目标结果。通过将原有的模型分解为多个子模型,将多个子模型同时运行,使得***处于闲置状态的计算资源减少,提高了***的计算资源的利用率,多个子模型同时运行加快了对数据进行处理的速度,达到了提高数据处理速度的技术效果,进而解决了现有技术中数据处理的速度慢的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据处理方法的流程图;以及
图2是根据本发明实施例的数据处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先对本发明实施例所涉及的技术术语作如下解释:
局部性原理:局部性原理是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序的某一部分。相应地,执行所访问的存储空间也局限于某个内存区域。局部性又表现为时间局部性和空间局部性。时间局部性是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据再次被访问。空间局部性是指一旦程序访问了某个存储单元,则不久之后,其附近的存储单元也将被访问。
流水线技术:流水线技术是一种将多条指令重叠执行的处理机实现技术。它已经成为现代处理机设计中最为关键的技术。计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程可以与其他子过程并行执行。由于这种工作方式与工厂中的生产线十分相似,因此称为流水线技术。
根据本发明实施例,提供了一种数据处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的数据处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,将第一模型分解为多个子模型,其中,第一模型用于根据目标数据输出与目标数据对应的目标结果。
步骤S104,利用多个子模型中每个子模型输出与目标数据对应的子结果,得到多个子结果,其中,多个子模型中至少两个子模型同时运行。
步骤S106,根据多个子结果获取与目标数据对应的目标结果。
目标数据为待处理的数据。第一模型为对目标数据进行处理的模型,使用第一模型对目标数据进行处理之后,得到目标结果。
在本发明实施例中,将第一模型分解为若干个子模型,这多个子模型中至少两个子模型同时处于运行状态,每个子模型运行一次之后,得到一个子结果,这个子结果与目标数据是对应的,当所有子模型运行完毕之后,得到目标结果。
通过将原有的模型分解为多个子模型,将多个子模型同时运行,使得***处于闲置状态的计算资源减少,提高了***的计算资源的利用率,多个子模型同时运行加快了对数据进行处理的速度,从而解决了现有技术中数据处理速度慢的技术问题,达到了提高数据处理速度的技术效果。
可选地,将第一模型分解为多个子模型包括:获取与目标数据相关联的预设模型;将第一模型分解为包括至少一个预设模型的多个子模型。
将第一模型分解为多个子模型有多种分解方法,以下举出两种分解方法进行具体说明。
第一种分解方法,根据整个数据处理过程的计算量对第一模型进行分解,使得分解得到的所有子模型运行一次的时间大致相等,这样分解的优势是可以使一个数据在一个子模型中处理完毕之后,立即进入下一个子模型进行处理,而不必有过多的等待时间,提高了数据处理的效率。
第二种分解方法,从服务器上查找已有的模型中是否存在某些模型对目标数据进行了处理,如果存在,这些模型即为与目标数据相关联的预设模型,此时,分解第一模型时,使得分解出的子模型中至少一个子模型为与目标数据相关联的预设模型,这样可以更好地利用已有结果,提高使用本发明实施例所提供的数据处理方法对数据进行处理的速度。
可选地,将第一模型分解为多个子模型包括:将第一模型分解为包括至少一个第一子模型的多个子模型,其中,第一子模型为利用多个子模型中的至少一个其他子模型输出的子结果输出第一子结果的子模型;或者将第一模型分解为包括至少两个第二子模型的多个子模型,其中,每个第二子模型输出的子结果不依赖于其他第二子模型输出的子结果。
一般情况下,将第一模型进行分解得到的多个子模型中,有一些子模型输出的子结果是依赖于其他子模型输出的子结果的,还有一些子模型输出的子结果是不依赖于其他子模型输出的子结果的。其中,输出的子结果依赖于其他子模型输出的子结果的子模型为第一子模型。输出的子结果相互独立、互不影响的子模型为第二子模型。
第二子模型在计算完一个元素,得到子结果后,就可以计算下一个元素,而无需等待其他子模型输出的子结果,进一步提高了整个模型的计算效率。
可选地,将第一模型分解为包括至少一个第一子模型的多个子模型之后,利用多个子模型中每个子模型输出与目标数据对应的子结果,得到多个子结果包括:将第一子模型Mi输出的子结果作为第一子模型Mi+1的输入,其中,i依次取1至n-1,n为第一子模型的数量;根据多个子结果获取与目标数据对应的目标结果包括:确定第一子模型Mn输出的子结果为目标数据对应的目标结果。
在本发明实施例中,将第一模型分解为多个子模型之后,可以将目标数据作为第一个子模型的输入,将第一个子模型输出的子结果作为第二个子模型的输入,将第二个子模型输出的子结果作为第三个子模型的输入,以此类推,将倒数第二个子模型输出的子结果作为倒数第一个子模型的输入,将倒数第一个子模型输出的子结果作为目标结果,也就是说,倒数第一个子模型输出的子结果与使用第一模型对目标数据进行处理之后得到的结果是相同的。
假设将第一模型分解为n个子模型,分别为子模型M1至子模型Mn。将目标数据作为子模型M1的输入,子模型M1输出的子结果为Z1,将子结果Z1作为子模型M2的输入,子模型M2输出的子结果为Z2,将子结果Z2作为子模型M3的输入,以此类推,将子结果Zn-1作为子模型Mn的输入,子模型Mn输出的子结果为Zn,子结果Zn为目标数据对应的目标结果。
可选地,目标数据包括第一目标数据和第二目标数据,多个子模型包括第三子模型和第四子模型,利用多个子模型中每个子模型输出与目标数据对应的子结果,得到多个子结果包括:利用第三子模型输出与第一目标数据对应的第一子结果之后,利用第三子模型输出与第二目标数据对应的第二子结果;在利用第三子模型输出与第二目标数据对应的第二子结果时,判断第四子模型是否处于空闲状态;若第四子模型处于空闲状态,则利用第四子模型输出与第一目标数据对应的第三子结果;若第四子模型处于运行状态,则等待第四子模型当前运行完毕之后,利用第四子模型输出与第一目标数据对应的第三子结果。
目标数据有多个。使用第一目标数据和第二目标数据表示两个不同的目标数据。使用第三子模型和第四子模型表示不同的子模型。第三子模型对第一目标数据进行处理,输出与第一目标数据对应的第一子结果之后,立即对第二目标数据进行处理。此时,判断需要对第一目标数据进行下一步处理的子模型(第四子模型)是处于空闲状态还是运行状态。如果判断出第四子模型处于空闲状态,则利用第四子模型对第一目标数据进行下一步处理,输出第三子结果。如果判断出第四子模型处于运行状态,则等待第四子模型当前运行完毕之后,利用第四子模型对第一目标数据进行下一步处理,输出第三子结果。
例如,将第一模型分解为子模型M1、子模型M2和子模型M3这三个子模型。其中,将目标数据作为子模型M1的输入,将子模型M1输出的子结果作为子模型M2的输入,将子模型M2输出的子结果作为子模型M3的输入,子模型M3输出的子结果即为目标结果。
假设有w个目标数据,分别为目标数据D1至目标数据Dw。将模型Mk对目标数据Dj对应的中间变量(即子结果)进行处理之后,得到的子结果记为Z(k,j),其中,k取1或2或3,1≤j≤w。
为简便起见,假设子模型M1、子模型M2和子模型M3这三个子模型运行一次所花费的时间相同。同时运行子模型M1、子模型M2和子模型M3,于是,在子模型M1对目标数据Di+1进行处理的时间段内,子模型M2对目标数据Di对应的子结果Z(1,i)进行处理,并且子模型M3对目标数据Di-1对应的子结果Z(2,i-1)进行处理。当子模型M1输出子结果Z(1,i+1)时,同时子模型M2输出子结果Z(2,i),且同时子模型M3输出子结果Z(3,i-1)。之后,子模型M1对目标数据Di+2进行处理,同时,子模型M2对目标数据Di+1对应的子结果Z(1,i+1)进行处理,并且同时子模型M3对目标数据Di对应的子结果Z(2,i)进行处理。其中,2≤i≤w-2。三个子模型对其余目标数据的处理以此类推。
由于子模型M1、子模型M2和子模型M3这三个子模型同时处于运行状态,使得***处于闲置状态的计算资源减少,因此提高了计算资源的利用率,提高了计算速度,加快了对数据进行处理的速度。也可以说,使用本发明实施例所提供的数据处理方法,能够使用更少的计算资源达到现有技术中的数据处理速度。
下面举一个详细的实施例来说明本发明的数据处理方法。
以一个旅游网站为例,当用户输入“北”时,推测出用户可能去的目的地有无限多个,从这无限多个目的地中找出最有可能是用户需求的目的地,组成一个集合S。使用s表示集合S中的元素。例如,集合S中的元素有“北京”、“北海道”、“北美小巴黎”、“北方之都”、“北爱尔兰”、“北马里亚那群岛”和“北美洲”。
上述第一模型可以为算法R。对集合S中的任一个元素s,将元素s作为算法R的自变量,得到结果rs。将映射关系<s,rs>的集合C={<s,rs>|s∈S}缓存。这样,当用户的输入为集合S中的元素时,在集合C中找到对应的映射关系<s,rs>,将rs作为结果返回,当用户的输入不是集合S中的元素时,返回无结果。
这样,当用户在该旅游网站的搜索框里输入“北”时,下拉框里出现“北京”、“北海道”、“北美小巴黎”、“北方之都”、“北爱尔兰”、“北马里亚那群岛”和“北美洲”这7个搜索结果,当用户点击下拉框里的“北爱尔兰”时,展示“北爱尔兰”对应的旅游产品。
由于该旅游网站的旅游产品经常更新,因此,搜索结果也需要经常更新,这样在不同的时间输入相同的搜索词,得到的搜索结果是与更新后的旅游产品对应的,否则就会出现时效性差的问题。
举一个时效性差的例子,例如,用户的输入为“北爱尔兰”时,搜索结果显示了与北爱尔兰相关的15个旅游产品,而实际上这15个旅游产品中有一些已经下线了,而新上线的与北爱尔兰相关的旅游产品并没有显示在搜索结果里。
因此,集合S中的元素与旅游产品的对应关系的集合C是需要不断进行更新的,并且由于用户在不同季节想要搜索的目的地并不同,因此,集合S中的元素也是根据时间变化的量。由于集合S中的元素s和旅游产品都是随时间变化的量,因此,计算集合S中的元素和旅游产品的对应关系的计算量是比较大的,并且为了保证时效性,需要每隔一段时间就重新计算一次集合S中的元素和旅游产品的对应关系。由于***的计算资源是一定的,现有技术的计算速度慢,对数据进行处理的速度慢,导致时效性较差。
使用本发明实施例所提供的数据处理方法,将算法R(即上述第一模型)分解为若干个子算法(即上述子模型),分别为子算法R1、子算法R2、……、子算法Rn。使用这n个子算法计算每个元素对应的产品,当第一子算法计算完第一元素,由第二子算法继续计算第一元素,与此同时,第一子算法计算第二元素,以此类推,直到所有的元素都完成计算。即,同一时刻n个子算法都处于运行状态,没有闲置的子算法,这样,相比于使用算法R对数据进行处理,能够提高对计算资源的利用率,加快数据处理的速度。算法R分解为若干个子算法时,应该遵循以下原则:
1)由中间结果(即上述子模型输出的子结果)生成最终结果(即上述目标结果)的算法复杂度要足够低。
2)应该尽量使得子算法产生的结果能够被其他***使用到。
3)应该能够利用其他***已经计算出的结果作为某些子算法的结果。由于这些结果是在***外部计算过的,收集的代价会很低,收集的代价与收集的数量呈线性关系,可以近似认为只有在收集过程中产生的收集代价而没有额外的计算代价。由于收集的速度大于计算的速度,因此,通过收集而非计算得到一些子算法的结果,能够提高数据处理的速度。
对于***外部已经计算出的某些子算法的结果进行收集,直接利用已有的结果,而无需重复计算;对于***外部没有计算过的子算法进行计算,将每个子算法计算得到的子结果进行整合,得到最终结果。本***子算法输出的结果也可以被其他***所收集和使用。
使用本发明实施例所提供的数据处理方法,每隔一个时间周期就重新运行一次,这样能够输出时效性高的搜索结果。时间周期的长短可以根据需要处理的数据的数量、子结果的数据的数量等因素进行选择。例如,一个时间周期可以为半个小时。
当用户输入一个字时,用户需求的目的地的可能性有无限多个,从这无限多个目的地中找出最有可能是用户需求的目的地,组成一个集合S。在找出集合S中的元素s这个过程中,可以根据前一个时间周期用户实际输入的集合、局部性原理和相似性推测计算模型来推算出下一个时间周期的集合S。相似性推测计算模型的复杂度较低,可以大致与输入集合存在线性关系。
根据本发明实施例,还提供了一种数据处理装置。该数据处理装置可以执行上述数据处理方法,上述数据处理方法也可以通过该数据处理装置实施。
图2是根据本发明实施例的数据处理装置的示意图。如图2所示,该装置包括:分解单元22、处理单元24和获取单元26。
分解单元22用于将第一模型分解为多个子模型,其中,第一模型用于根据目标数据输出与目标数据对应的目标结果。
处理单元24用于利用多个子模型中每个子模型输出与目标数据对应的子结果,得到多个子结果,多个子模型中至少两个子模型同时运行,以输出与目标数据对应的多个子结果。
获取单元26用于根据多个子结果获取与目标数据对应的目标结果。
目标数据为待处理的数据。第一模型为已有的对目标数据进行处理的模型,使用第一模型对目标数据进行处理之后,得到目标结果。
在本发明实施例中,将第一模型分解为若干个子模型,这多个子模型中至少两个子模型同时处于运行状态,每个子模型运行一次之后,得到一个子结果,这个子结果与目标数据是对应的,当所有子模型运行完毕之后,得到目标结果。
通过将原有的模型分解为多个子模型,将多个子模型同时运行,使得***处于闲置状态的计算资源减少,提高了***的计算资源的利用率,多个子模型同时运行加快了对数据进行处理的速度,从而解决了现有技术中数据处理速度慢的技术问题,达到了提高数据处理速度的技术效果。
可选地,分解单元22还包括获取子单元和第三分解子单元。获取子单元用于获取与目标数据相关联的预设模型。第三分解子单元用于将第一模型分解为包括至少一个预设模型的多个子模型。
将第一模型分解为多个子模型有多种分解方法,以下举出两种分解方法进行具体说明。
第一种分解方法,根据整个数据处理过程的计算量对第一模型进行分解,使得分解得到的所有子模型运行一次的时间大致相等,这样分解的优势是可以使一个数据在一个子模型中处理完毕之后,立即进入下一个子模型进行处理,而不必有过多的等待时间,提高了数据处理的效率。
第二种分解方法,从服务器上查找已有的模型中是否存在某些模型对目标数据进行了处理,如果存在,这些模型即为与目标数据相关联的预设模型,此时,分解第一模型时,使得分解出的子模型中至少一个子模型为与目标数据相关联的预设模型,这样可以更好地利用已有结果,提高使用本发明实施例所提供的数据处理装置对数据进行处理的速度。
可选地,分解单元22包括第一分解子单元和第二分解子单元。第一分解子单元用于将第一模型分解为包括至少一个第一子模型的多个子模型,其中,第一子模型为利用多个子模型中的至少一个其他子模型输出的子结果输出第一子结果的子模型。第二分解子单元用于将第一模型分解为包括至少两个第二子模型的多个子模型,其中,每个第二子模型输出的子结果不依赖于其他第二子模型输出的子结果。
一般情况下,将第一模型进行分解得到的多个子模型中,有一些子模型输出的子结果是依赖于其他子模型输出的子结果的,还有一些子模型输出的子结果是不依赖于其他子模型输出的子结果的。其中,输出的子结果依赖于其他子模型输出的子结果的子模型为第一子模型。输出的子结果相互独立、互不影响的子模型为第二子模型。
第二子模型在计算完一个元素,得到子结果后,就可以计算下一个元素,而无需等待其他子模型输出的子结果,进一步提高了整个模型的计算效率。
可选地,处理单元24包括第一处理子单元。第一处理子单元用于第一分解子单元将第一模型分解为包括至少一个第一子模型的多个子模型之后,将第一子模型Mi输出的子结果作为第一子模型Mi+1的输入,其中,i依次取1至n-1,n为第一子模型的数量。获取单元26包括确定子单元。确定子单元用于确定第一子模型Mn输出的子结果为目标数据对应的目标结果。
在本发明实施例中,将第一模型分解为多个子模型之后,可以将目标数据作为第一个子模型的输入,将第一个子模型输出的子结果作为第二个子模型的输入,将第二个子模型输出的子结果作为第三个子模型的输入,以此类推,将倒数第二个子模型输出的子结果作为倒数第一个子模型的输入,将倒数第一个子模型输出的子结果作为目标结果,也就是说,倒数第一个子模型输出的子结果与使用第一模型对目标数据进行处理之后得到的结果是相同的。
假设将第一模型分解为n个子模型,分别为子模型M1至子模型Mn。将目标数据作为子模型M1的输入,子模型M1输出的子结果为Z1,将子结果Z1作为子模型M2的输入,子模型M2输出的子结果为Z2,将子结果Z2作为子模型M3的输入,以此类推,将子结果Zn-1作为子模型Mn的输入,子模型Mn输出的子结果为Zn,子结果Zn为目标数据对应的目标结果。
可选地,目标数据包括第一目标数据和第二目标数据,多个子模型包括第三子模型和第四子模型,处理单元24包括第二处理子单元、判断子单元、第三处理子单元和第四处理子单元。第二处理子单元用于利用第三子模型输出与第一目标数据对应的第一子结果之后,利用第三子模型输出与第二目标数据对应的第二子结果。判断子单元用于在利用第三子模型输出与第二目标数据对应的第二子结果时,判断第四子模型是否处于空闲状态。第三处理子单元用于当判断子单元判断出第四子模型处于空闲状态时,利用第四子模型输出与第一目标数据对应的第三子结果。第四处理子单元用于当判断子单元判断出第四子模型处于运行状态时,等待第四子模型当前运行完毕之后,利用第四子模型输出与第一目标数据对应的第三子结果。
目标数据有多个。使用第一目标数据和第二目标数据表示两个不同的目标数据。使用第三子模型和第四子模型表示不同的子模型。第三子模型对第一目标数据进行处理,输出与第一目标数据对应的第一子结果之后,立即对第二目标数据进行处理。此时,判断需要对第一目标数据进行下一步处理的子模型(第四子模型)是处于空闲状态还是运行状态。如果判断出第四子模型处于空闲状态,则利用第四子模型对第一目标数据进行下一步处理,输出第三子结果。如果判断出第四子模型处于运行状态,则等待第四子模型当前运行完毕之后,利用第四子模型对第一目标数据进行下一步处理,输出第三子结果。
例如,将第一模型分解为子模型M1、子模型M2和子模型M3这三个子模型。其中,将目标数据作为子模型M1的输入,将子模型M1输出的子结果作为子模型M2的输入,将子模型M2输出的子结果作为子模型M3的输入,子模型M3输出的子结果即为目标结果。
假设有w个目标数据,分别为目标数据D1至目标数据Dw。将模型Mk对目标数据Dj对应的中间变量(即子结果)进行处理之后,得到的子结果记为Z(k,j),其中,k取1或2或3,1≤j≤w。
为简便起见,假设子模型M1、子模型M2和子模型M3这三个子模型运行一次所花费的时间相同。同时运行子模型M1、子模型M2和子模型M3,于是,在子模型M1对目标数据Di+1进行处理的时间段内,子模型M2对目标数据Di对应的子结果Z(1,i)进行处理,并且子模型M3对目标数据Di-1对应的子结果Z(2,i-1)进行处理。当子模型M1输出子结果Z(1,i+1)时,同时子模型M2输出子结果Z(2,i),且同时子模型M3输出子结果Z(3,i-1)。之后,子模型M1对目标数据Di+2进行处理,同时,子模型M2对目标数据Di+1对应的子结果Z(1,i+1)进行处理,并且同时子模型M3对目标数据Di对应的子结果Z(2,i)进行处理。其中,2≤i≤w-2。三个子模型对其余目标数据的处理以此类推。
由于子模型M1、子模型M2和子模型M3这三个子模型同时处于运行状态,使得***处于闲置状态的计算资源减少,因此提高了计算资源的利用率,提高了计算速度,加快了对数据进行处理的速度。也可以说,使用本发明实施例所提供的数据处理装置,能够使用更少的计算资源达到现有技术中的数据处理速度。
下面举一个详细的实施例来说明本发明的数据处理装置。
以一个旅游网站为例,当用户输入“北”时,推测出用户可能去的目的地有无限多个,从这无限多个目的地中找出最有可能是用户需求的目的地,组成一个集合S。使用s表示集合S中的元素。例如,集合S中的元素有“北京”、“北海道”、“北美小巴黎”、“北方之都”、“北爱尔兰”、“北马里亚那群岛”和“北美洲”。
上述第一模型可以为算法R。对集合S中的任一个元素s,将元素s作为算法R的自变量,得到结果rs。将映射关系<s,rs>的集合C={<s,rs>|s∈S}缓存。这样,当用户的输入为集合S中的元素时,在集合C中找到对应的映射关系<s,rs>,将rs作为结果返回,当用户的输入不是集合S中的元素时,返回无结果。
这样,当用户在该旅游网站的搜索框里输入“北”时,下拉框里出现“北京”、“北海道”、“北美小巴黎”、“北方之都”、“北爱尔兰”、“北马里亚那群岛”和“北美洲”这7个搜索结果,当用户点击下拉框里的“北爱尔兰”时,展示“北爱尔兰”对应的旅游产品。
由于该旅游网站的旅游产品经常更新,因此,搜索结果也需要经常更新,这样在不同的时间输入相同的搜索词,得到的搜索结果是与更新后的旅游产品对应的,否则就会出现时效性差的问题。
举一个时效性差的例子,例如,用户的输入为“北爱尔兰”时,搜索结果显示了与北爱尔兰相关的15个旅游产品,而实际上这15个旅游产品中有一些已经下线了,而新上线的与北爱尔兰相关的旅游产品并没有显示在搜索结果里。
因此,集合S中的元素与旅游产品的对应关系的集合C是需要不断进行更新的,并且由于用户在不同季节想要搜索的目的地并不同,因此,集合S中的元素也是根据时间变化的量。由于集合S中的元素s和旅游产品都是随时间变化的量,因此,计算集合S中的元素和旅游产品的对应关系的计算量是比较大的,并且为了保证时效性,需要每隔一段时间就重新计算一次集合S中的元素和旅游产品的对应关系。由于***的计算资源是一定的,现有技术的计算速度慢,对数据进行处理的速度慢,导致时效性较差。
使用本发明实施例所提供的数据处理装置,将算法R(即上述第一模型)分解为若干个子算法(即上述子模型),分别为子算法R1、子算法R2、……、子算法Rn。使用这n个子算法计算每个元素对应的产品,当第一子算法计算完第一元素,由第二子算法继续计算第一元素,与此同时,第一子算法计算第二元素,以此类推,直到所有的元素都完成计算。即,同一时刻n个子算法都处于运行状态,没有闲置的子算法,这样,相比于使用算法R对数据进行处理,能够提高对计算资源的利用率,加快数据处理的速度。算法R分解为若干个子算法时,应该遵循以下原则:
1)由中间结果(即上述子模型输出的子结果)生成最终结果(即上述目标结果)的算法复杂度要足够低。
2)应该尽量使得子算法产生的结果能够被其他***使用到。
3)应该能够利用其他***已经计算出的结果作为某些子算法的结果。由于这些结果是在***外部计算过的,收集的代价会很低,收集的代价与收集的数量呈线性关系,可以近似认为只有在收集过程中产生的收集代价而没有额外的计算代价。由于收集的速度大于计算的速度,因此,通过收集而非计算得到一些子算法的结果,能够提高数据处理的速度。
对于***外部已经计算出的某些子算法的结果进行收集,直接利用已有的结果,而无需重复计算;对于***外部没有计算过的子算法进行计算,将每个子算法计算得到的子结果进行整合,得到最终结果。本***子算法输出的结果也可以被其他***所收集和使用。
本发明实施例所提供的数据处理装置,每隔一个时间周期就重新运行一次本发明实施例所提供的数据处理方法,这样能够输出时效性高的搜索结果。时间周期的长短可以根据需要处理的数据的数量、子结果的数据的数量等因素进行选择。例如,一个时间周期可以为半个小时。
当用户输入一个字时,用户需求的目的地的可能性有无限多个,从这无限多个目的地中找出最有可能是用户需求的目的地,组成一个集合S。在找出集合S中的元素s这个过程中,可以根据前一个时间周期用户实际输入的集合、局部性原理和相似性推测计算模型来推算出下一个时间周期的集合S。相似性推测计算模型的复杂度较低,可以大致与输入集合存在线性关系。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种数据处理方法,其特征在于,包括:
将第一模型分解为多个子模型,其中,所述第一模型用于根据目标数据输出与所述目标数据对应的目标结果;
利用所述多个子模型中每个子模型输出与所述目标数据对应的子结果,得到多个子结果,所述多个子模型中至少两个子模型同时运行;
根据所述多个子结果获取与所述目标数据对应的所述目标结果;
其中,所述目标数据包括第一目标数据和第二目标数据,所述多个子模型包括第三子模型和第四子模型,利用所述多个子模型中每个子模型输出与所述目标数据对应的子结果,得到多个子结果包括:
利用所述第三子模型输出与所述第一目标数据对应的第一子结果之后,利用所述第三子模型输出与所述第二目标数据对应的第二子结果;
在利用所述第三子模型输出与所述第二目标数据对应的第二子结果时,判断所述第四子模型是否处于空闲状态;
若所述第四子模型处于所述空闲状态,则利用所述第四子模型输出与所述第一目标数据对应的第三子结果;
若所述第四子模型处于运行状态,则等待所述第四子模型当前运行完毕之后,利用所述第四子模型输出与所述第一目标数据对应的第三子结果。
2.根据权利要求1所述的方法,其特征在于,将第一模型分解为多个子模型包括:
将所述第一模型分解为包括至少一个第一子模型的多个子模型,其中,所述第一子模型为利用所述多个子模型中的至少一个其他子模型输出的子结果输出第一子结果的子模型;或者
将所述第一模型分解为包括至少两个第二子模型的多个子模型,其中,每个所述第二子模型输出的子结果不依赖于其他所述第二子模型输出的子结果。
3.根据权利要求2所述的方法,其特征在于,将所述第一模型分解为包括至少一个第一子模型的多个子模型之后,利用所述多个子模型中每个子模型输出与所述目标数据对应的子结果,得到多个子结果包括:
将第一子模型Mi输出的子结果作为第一子模型Mi+1的输入,其中,i依次取1至n-1,n为所述第一子模型的数量;
根据所述多个子结果获取与所述目标数据对应的所述目标结果包括:
确定第一子模型Mn输出的子结果为所述目标数据对应的所述目标结果。
4.根据权利要求1所述的方法,其特征在于,将第一模型分解为多个子模型包括:
获取与所述目标数据相关联的预设模型;
将所述第一模型分解为包括至少一个所述预设模型的多个子模型。
5.一种数据处理装置,其特征在于,包括:
分解单元,用于将第一模型分解为多个子模型,其中,所述第一模型用于根据目标数据输出与所述目标数据对应的目标结果;
处理单元,用于利用所述多个子模型中每个子模型输出与所述目标数据对应的子结果,得到多个子结果,所述多个子模型中至少两个子模型同时运行;
获取单元,用于根据所述多个子结果获取与所述目标数据对应的所述目标结果;
其中,所述目标数据包括第一目标数据和第二目标数据,所述多个子模型包括第三子模型和第四子模型,所述处理单元包括:
第二处理子单元,用于利用所述第三子模型输出与所述第一目标数据对应的第一子结果之后,利用所述第三子模型输出与所述第二目标数据对应的第二子结果;
判断子单元,用于在利用所述第三子模型输出与所述第二目标数据对应的第二子结果时,判断所述第四子模型是否处于空闲状态;
第三处理子单元,用于当所述判断子单元判断出所述第四子模型处于所述空闲状态时,利用所述第四子模型输出与所述第一目标数据对应的第三子结果;
第四处理子单元,用于当所述判断子单元判断出所述第四子模型处于运行状态时,等待所述第四子模型当前运行完毕之后,利用所述第四子模型输出与所述第一目标数据对应的第三子结果。
6.根据权利要求5所述的装置,其特征在于,所述分解单元包括:
第一分解子单元,用于将所述第一模型分解为包括至少一个第一子模型的多个子模型,其中,所述第一子模型为利用所述多个子模型中的至少一个其他子模型输出的子结果输出第一子结果的子模型;或者
第二分解子单元,用于将所述第一模型分解为包括至少两个第二子模型的多个子模型,其中,每个所述第二子模型输出的子结果不依赖于其他所述第二子模型输出的子结果。
7.根据权利要求6所述的装置,其特征在于,所述处理单元包括:
第一处理子单元,用于所述第一分解子单元将所述第一模型分解为包括至少一个第一子模型的多个子模型之后,将第一子模型Mi输出的子结果作为第一子模型Mi+1的输入,其中,i依次取1至n-1,n为所述第一子模型的数量;
所述获取单元包括:
确定子单元,用于确定第一子模型Mn输出的子结果为所述目标数据对应的所述目标结果。
8.根据权利要求5所述的装置,其特征在于,所述分解单元还包括:
获取子单元,用于获取与所述目标数据相关联的预设模型;
第三分解子单元,用于将所述第一模型分解为包括至少一个所述预设模型的多个子模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510993159.2A CN106919451B (zh) | 2015-12-24 | 2015-12-24 | 数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510993159.2A CN106919451B (zh) | 2015-12-24 | 2015-12-24 | 数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106919451A CN106919451A (zh) | 2017-07-04 |
CN106919451B true CN106919451B (zh) | 2020-04-21 |
Family
ID=59459734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510993159.2A Active CN106919451B (zh) | 2015-12-24 | 2015-12-24 | 数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106919451B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426701B (zh) * | 2017-08-30 | 2022-04-05 | 西门子(中国)有限公司 | 数据模型的运行方法、运行***和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402423A (zh) * | 2010-09-19 | 2012-04-04 | 百度在线网络技术(北京)有限公司 | 一种在网络设备中进行多任务处理的方法和设备 |
CN102508704A (zh) * | 2011-11-10 | 2012-06-20 | 上海市共进通信技术有限公司 | 计算机软件***中实现任务分解和并行处理控制的方法 |
CN104991821A (zh) * | 2015-06-29 | 2015-10-21 | 北京奇虎科技有限公司 | 批量处理监控任务的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9411973B2 (en) * | 2013-05-02 | 2016-08-09 | International Business Machines Corporation | Secure isolation of tenant resources in a multi-tenant storage system using a security gateway |
US20170109323A9 (en) * | 2013-05-06 | 2017-04-20 | Sas Institute Inc. | Techniques to perform data reduction for statistical tests |
-
2015
- 2015-12-24 CN CN201510993159.2A patent/CN106919451B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402423A (zh) * | 2010-09-19 | 2012-04-04 | 百度在线网络技术(北京)有限公司 | 一种在网络设备中进行多任务处理的方法和设备 |
CN102508704A (zh) * | 2011-11-10 | 2012-06-20 | 上海市共进通信技术有限公司 | 计算机软件***中实现任务分解和并行处理控制的方法 |
CN104991821A (zh) * | 2015-06-29 | 2015-10-21 | 北京奇虎科技有限公司 | 批量处理监控任务的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106919451A (zh) | 2017-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107609152B (zh) | 用于扩展查询式的方法和装置 | |
CN108108821B (zh) | 模型训练方法及装置 | |
CN105335519B (zh) | 模型生成方法及装置、推荐方法及装置 | |
CN108491529B (zh) | 信息推荐方法及装置 | |
US10162550B2 (en) | Large-scale, dynamic graph storage and processing system | |
US20230185857A1 (en) | Method and system for providing context based query suggestions | |
CN104731861B (zh) | 多媒体数据推送方法及装置 | |
US9727906B1 (en) | Generating item clusters based on aggregated search history data | |
CN109948036B (zh) | 一种分词词项权重的计算方法和装置 | |
CN105677780A (zh) | 可拓展的用户意图挖掘方法及其*** | |
CN112732870B (zh) | 基于词向量的搜索方法、装置、设备及存储介质 | |
CN105653673A (zh) | 信息搜索方法及装置 | |
CN110427574B (zh) | 路线相似度确定方法、装置、设备和介质 | |
CN110555108A (zh) | 事件脉络生成方法、装置、设备及存储介质 | |
CN106874332B (zh) | 数据库访问方法和装置 | |
CN109871419B (zh) | 一种地图显示方法及装置 | |
CN106919451B (zh) | 数据处理方法和装置 | |
WO2022103748A1 (en) | Domain generalized margin via meta-learning for deep face recognition | |
CN107341221B (zh) | 索引结构的建立、关联检索方法、装置、设备及存储介质 | |
CN111464451B (zh) | 一种数据流等值连接优化方法、***及电子设备 | |
CN109003148B (zh) | 广告推送方法、装置、服务器及可读存储介质 | |
CN110781313A (zh) | 一种图存储优化方法、装置和电子设备 | |
CN109213922B (zh) | 一种对搜索结果排序的方法和装置 | |
CN106649315A (zh) | 处理路径导航的方法和装置 | |
CN105243135A (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 |