具体实施方式
在现有技术中,技术人员一般倾向于采用传统的有监督学习算法训练风控模型,而有监督学习算法通常要求以海量的已标注样本为输入。但是,以套现风险的场景为例,以套现为目的的付款方和收款方通常都不会承认自己的真实意图是套现,这就需要由人工来对海量的转账业务逐一进行标注(例如,将涉嫌套现风险的转账业务标注为1,将不涉及套现风险的转账业务标注为0)。也就是说,在以套现风险为代表的诸多场景下,由于需要对海量的样本进行标注,因此导致训练风控模型所耗费的成本较高。可见,如何以较低的成本训练风控模型成为本领域丞待解决的技术问题。
而在本说明书实施例中,以已有的已标注样本为标注集,以在现有技术中需要被标注的待标注样本为待标注集。首先根据标注集中包含的有限的已标注样本,训练得到一个风控模型,然后开始迭代更新所述风控模型。在每次迭代中,根据标注集,从待标注集中取出若干待标注样本进行标注,以更新标注集,然后根据更新后的标注集,重新训练风控模型,完成一次迭代。
随着迭代次数的增多,已标注集中包含的已标注样本通常越来越多,待标注集中包含的待标注样本通常越来越少,当满足指定条件时,停止迭代,已标注集中包含的已标注样本就停止增加,待标注集中包含的待标注样本就停止减少。通常,无需对待标注集中包含的所有待标注样本都完成标注,就可以训练得到风险识别准确性满足要求的风控模型。可见,通过本说明书实施例,训练风险识别准确性满足要求的风控模型所耗费的成本更低。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。通过本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1是本说明书实施例提供的一种训练风控模型的方法流程图,包括以下步骤:
S100:根据所述标注集,训练风控模型。
本方法的执行主体可以是具有数据处理能力以便训练风控模型的设备(本文称之为处理设备),例如服务器、个人计算机、手机等。
在现有技术中,已标注样本的数量通常有限,需要对大量的待标注样本进行标注,以训练得到风险识别准确性满足要求的风控模型。例如,技术人员认为需要以100000个已标注样本为输入,才能训练得到风险识别准确性满足要求的风控模型,而已有的已标注样本的数量为1000,因此,还需要对99000个待标注样本进行标注。
在本说明书实施例中,以已有的已标注样本为标注集,以在现有技术中需要被标注的待标注样本为待标注集。在上例中,即是以1000个已标注样本为标注集,以99000个待标注样本为待标注集。
需要说明的是,由于本发明的核心思想是,通过一次次迭代训练,逐渐将所述待标注集中的待标注样本取出进行标注,以更新所述标注集,因此,在整个训练过程中,所述标注集中包含的已标注样本和所述待标注集中包含的待标注样本都会不断发生变化。沿用上例,在执行图1所示的训练风控模型的方法之前,所述标注集中包含1000个已标注样本,所述待标注集中包含99000个待标注样本。随着一次次迭代训练的推进,所述标注集中包含的已标注样本通常越来越多,所述待标注集中包含的待标注样本通常越来越少,当停止迭代训练时,所述标注集中包含的已标注样本和所述标注集中包含的待标注样本通常不再变化。
在本步骤S100中,具体可以以所述标注集中包含的已标注样本为输入,采用有监督机器学习算法(如决策树算法、随机森林算法等),训练风控模型。
S102:基于训练得到的风控模型,对所述待标注集中包含的待标注样本进行不确定性分析。
S104:根据分析结果从所述待标注集中取出若干待标注样本,以及将所述待标注集中未被取出的待标注样本作为待标注子集。
在本说明书实施例中,基于风控模型,对待标注样本进行不确定分析,实际上是分析所述风控模型可以在多大程度上确定待标注样本是否具有风险。待标注样本的不确定性越强,风控模型就越难以识别待标注样本是否具有风险。
具体地,在步骤S102中,可以基于训练得到的风控模型,计算所述待标注集中包含的每个待标注样本对应的不确定度;针对每个待标注样本,该待标注样本对应的不确定度表征训练得到的风控模型对该待标注样本进行风险识别的难易程度,不确定度越高,风险识别越困难。
在步骤S104中,可以从所述待标注集中取出不确定度大于第一指定阈值的待标注样本。其中,所述第一指定阈值可以根据需要指定。
也就是说,在步骤S104中,根据分析结果从所述待标注集中取出的待标注样本实际上是当前的风控模型所难以识别的样本,将这些样本从待标注集中取出进行标注后添加到所述标注集用于训练,有助于提升风控模型的风险识别准确性。
进一步地,计算所述待标注集中包含的每个待标注样本对应的不确定度,具体可以是:使用训练得到的风控模型对所述待标注集中包含的每个待标注样本进行识别,得到所述待标注集中包含的每个待标注样本对应的风险概率;针对每个待标注样本,将该待标注样本对应的风险概率与0.5的差的绝对值的相反数作为该待标注样本对应的不确定度。
例如,使用训练得到的风控模型对两个待标注样本(待标注样本A和待标注样本B)进行识别,得到待标注样本A对应的风险概率为0.9(可认为具有风险),待标注样本B对应的风险概率为0.4(难以确定是否具有风险),可计算得到待标注样本A对应的不确定度为-|0.9-0.5|=-0.4,待标注样本B对应的不确定度为-|0.4-0.5|=-0.1。
此外,在步骤S104中,可以针对预先确定的每个样本类型,根据该样本类型的待标注样本对应的不确定度,从所述待标注集中取出若干该样本类型的待标注样本。其中,样本类型具体可以依据样本的来源确定,也可以依据其他标准确定。
另外,在步骤S104之前,还可以计算所述待标注集中包含的各待标注样本之间的相似度。其中,各待标注样本之间的相似度可以根据各待标注样本分别对应的特征向量之间的距离计算得到。
如此,在步骤S104中,可以根据所述待标注集中包含的各待标注样本之间的相似度以及每个待标注样本对应的不确定度,计算各待标注样本分别对应的表征值;针对每个待标注样本,该待标注样本与其他待标注样本越相似,该待标注样本对应的表征值越低;该待标注样本对应的不确定度越低,该待标注样本对应的表征值越低;从所述待标注集中取出表征值大于第二指定阈值的待标注样本。其中,所述第二指定阈值可以根据需要指定。
显然,从所述待标注集中取出多个样本类型的待标注样本进行标注后用于更新所述标注集,和/或从所述待标注集中取出彼此之间不太相似的未标注样本进行标注用于更新所述标注集,可以使得重新训练风控模型时所依据的已标注样本更加多样化(每个已标注样本也就更具代表性),也就能够实现更好的训练效果。
还需要说明的是,在本文中,从待标注集中取出待标注样本的方式为无放回取出。也就是说,一旦从待标注集中取出某个待标注样本,该待标注样本就从所述待标注集中被移除。
S106:将取出的待标注样本提供给标注方进行标注,并接收标注方返回的已标注样本。
在本说明书实施例中,可以将取出的待标注样本提供给标注方进行人工标注,和/或,将取出的待标注样本提供给标注方进行标注,以使所述标注方根据预先确定的标注规则对接收到的待标注样本进行标注。
其中,可以通过以下方式预先确定标注规则:监控人工标注时所执行的人工标注操作;根据监控到的人工标注操作,确定标注规则。具体地,可以根据监控到的人工标注操作,训练决策树,将训练得到的决策树作为标注规则。
S108:将所述标注方返回的至少部分已标注样本添加到所述标注集中。
在本步骤S108中,将所述标注方返回的至少部分已标注样本添加到所述标注集中,也就实现了对所述标注集的一次更新。
在本步骤S108中,将所述标注方返回的除指定样本类型外的其他样本类型的已标注样本添加到所述标注集中;以及针对所述标注方返回的所述指定样本类型的每个已标注样本,根据每次对该已标注样本所进行的标注,判断是否确认该已标注样本;若是,则根据每次对该已标注样本所进行的标注,重新标注该已标注样本,并将该已标注样本添加到所述标注集中;否则,将该已标注样本重新作为待标注样本添加到所述待标注子集中。
需要说明的是,所述指定样本类型的样本一般是标注方容易标注错的样本。因此,指定样本类型的样本通常需要被多次标注,然后根据指定样本类型的样本的多个标注,确定该样本的唯一标注。针对每个指定样本类型的样本,在确定该样本的唯一标注之前,不会将该样本作为已标注样本添加到所述标注集。
进一步地,针对所述标注方返回的所述指定样本类型的每个已标注样本,根据每次对该已标注样本所进行的标注,判断是否确认该已标注样本,具体可以是:判断对该已标注样本所进行的标注的数量是否达到指定数量,若是,则确认该已标注样本,否则,拒绝确认该已标注样本。
若确认该已标注样本,则可以将对该已标注样本所进行的标注中数量最多的相同标注重新作为该已标注样本标注的标注。
S110:根据所述标注集中包含的已标注样本,从所述待标注子集中取出若干待标注样本进行标注,并将标注得到的已标注样本添加到所述标注集中。
在本步骤S110中,可以借鉴半监督学习的思想,根据所述标注集中包含的已标注样本,从所述待标注子集中取出若干待标注样本进行标注。
半监督学***滑假设、聚类假设、流形假设等。
以平滑假设为例。所述平滑假设是指位于稠密数据区域的两个距离很近的样本的标签相似,也就是说,当两个样本被稠密数据区域中的边连接时,它们有很大概率具有相同的标签;相反地,当两个样本被稀疏数据区域分开时,它们的标签趋于不同。基于所述平滑假设,可以根据所述标注集中包含的已标注样本,实现对所述待标注子集中的若干待标注样本的准确标注。
可见,在一次迭代训练中,通常需要对所述数据集进行两次更新。在一次迭代训练中,通过步骤S102~S108,实现对所述标注集的第一次更新,本次更新实际上是借鉴了主动学习算法的思想;通过步骤S110,实现对所述标注集的第二次更新,实际上是借鉴了半监督学习算法的思想。
S112:根据所述标注集,重新训练风控模型,直至满足指定条件。
在本说明书实施例中,在步骤S112之前,可以为所述标注集中包含的人工标注的已标注样本、根据所述标注规则标注的已标注样本和其他已标注样本分配不同的第一训练权重值。在本步骤S112中,可以根据所述标注集中包含的人工标注的已标注样本、根据所述标注规则标注的已标注样本和其他已标注样本分别对应的第一训练权重值,重新训练风控模型。例如,所述标注集中包含的人工标注的已标注样本对应的第一训练权重值可以是8,根据所述标注规则标注的已标注样本对应的第一训练权重值可以为4,其他已标注样本分别对应的第一训练权重值可以是为1。针对每个已标注样本,该已标注样本对应的第一训练权重值越大,在训练风控模型时,该已标注样本对训练结果的贡献就越大(即该已标注样本越是被重点学习的样本)。
进一步地,可以针对所述标注集中包含的每个已标注样本,根据该已标注样本对应的第一训练权重值和当前时刻到标注该已标注样本的时刻之间的时间间隔,确定该已标注样本对应的第二训练权重值;该已标注样本对应的第一训练权重值越大,该已标注样本对应的第二训练权重值越大;该已标注样本对应的时间间隔越小,该已标注样本对应的第二训练权重值越大;根据所述标注集中包含的人工标注的已标注样本、根据所述标注规则标注的已标注样本和其他已标注样本分别对应的第二训练权重值,重新训练风控模型。针对每个已标注样本,该已标注样本对应的第二训练权重值越大,在训练风控模型时,该已标注样本对训练结果的贡献就越大(即该已标注样本越是被重点学习的样本)。
在本说明书实施例中,根据两次更新后的所述标注集,重新训练风控模型之后,即完成一次迭代训练。当满足指定条件时,就不再开始下一次迭代训练,训练结束,将当前的风控模型输出,作为训练结果。
其中,所述指定条件具体可以根据需要指定,例如,所述指定条件可以是训练风控模型的次数达到指定次数。又如,所述指定条件可以是所述待标注集中包含的每个待标注样本对应的不确定度皆不大于上述第一指定阈值。
通过图1所示的训练风控模型的方法,随着迭代次数的增多,已标注集中包含的已标注样本越来越多,待标注集中包含的待标注样本越来越少,当满足指定条件时,停止迭代,已标注集中包含的已标注样本就停止增加,待标注集中包含的待标注样本就停止减少。通常,无需对待标注集中包含的所有待标注样本都完成标注,就可以训练得到风险识别准确性满足要求的风控模型。可见,通过本说明书实施例,训练风险识别准确性满足要求的风控模型所耗费的成本更低。
除此之外,本发明还能实现如下技术效果:
1、在步骤S102~S108中,可以借鉴主动学习的思想,基于当前的风控模型从所述未标注集中取出若干当前的风控模型难以识别未标注样本,将之提供给标注方进行标注,将标注方返回的已标注样本用于重新训练风控模型,可以针对风控模型的“薄弱项”进行补强,显著提升风控模型的风险识别准确性。
2、在步骤S110中,可以借鉴半监督学习的思想,基于常见的数据分析假设,根据所述标注集中包含的已标注样本,对待标注集中的若干待标注样本进行较为准确的标注,从而可以进一步向所述标注集中添加若干已标记样本。这就实现了对已有的已标注样本的充分利用。
此外,在本说明书实施例中,标注类型可以有两种,第一标注和第二标注,也即针对每个已标注样本,该已标注样本的标注不是第一标注,就是第二标注。举例来说,所述第一标注可以是“1”,标注为第一标注的已标注样本为被确认具有风险的样本,所述第二标注可以是“0”,标注为第二标注的已标注样本为未被确认具有风险的样本。
在步骤S108中,可以将所述标注方返回的标注为第一标注的已标注样本添加到所述标注集中,以及将所述标注方返回的标注为第二标注的已标注样本重新作为待标注样本添加到所述待标注子集中。
在步骤S110中,可以采用正样本和待标注样本学习(Positive and Unlabeled,PU)Learning算法,根据所述标注集中包含的标注为第一标注的已标注样本,从所述待标注子集中确定出若干可标注为第二标注的待标注样本,将确定出的待标注样本标注为第二标注;将得到的标注为第二标注的已标注样本添加到所述标注集中。其中,所述PU learning算法实际上是一种特殊的半监督学习算法。
为本领域技术人员所熟知的是,基于PU Learning算法的思想,可以采用多种方式,从所述待标注子集中确定出若干可标注为第二标注的待标注样本。例如,可以将所述标注集中包含的标注为第一标注的已标注样本加入集合P,将所述待标注子集中包含的待标注样本加入集合U。将U中的每个待标注样本标注为第二标注,使用P和U另行训练得到分类模型,例如,可以使用贝叶斯算法,使用P和U另行训练得到贝叶斯分类器,作为所述分类模型。然后,使用所述分类模型对U中的每个待标注样本进行分类,将分类结果为第二标注的待标注样本确定为可标注为第二标注的待标注样本。
另外,在结束图1所示的训练风控模型的流程之后,可以将得到的风控模型提供给模型验收方进行测试,模型验收方可以将测试过程中产生的已标注样本返回给处理设备,由处理设备将模型验收方返回的已标注样本添加到所述标注集。
基于图1所示的训练风控模型的方法,本说明书实施例还对应提供了一种训练风控模型的装置,如图2所示,标注集中包含已标注样本,待标注集中包含待标注样本,所述装置包括:
训练模块201,根据所述标注集,训练风控模型,以及根据第四处理模块206更新后的标注集,重新训练风控模型,直至满足指定条件;
分析模块202,基于训练得到的风控模型,对所述待标注集中包含的待标注样本进行不确定性分析;
第一处理模块203,根据分析结果从所述待标注集中取出若干待标注样本,以及将所述待标注集中未被取出的待标注样本作为待标注子集;
第二处理模块204,将取出的待标注样本提供给标注方进行标注,并接收标注方返回的已标注样本;
第三处理模块205,将所述标注方返回的至少部分已标注样本添加到所述标注集中;
所述第四处理模块206,根据所述标注集中包含的已标注样本,从所述待标注子集中取出若干待标注样本进行标注,并将标注得到的已标注样本添加到所述标注集中。
所述分析模块202,基于训练得到的风控模型,计算所述待标注集中包含的每个待标注样本对应的不确定度;针对每个待标注样本,该待标注样本对应的不确定度表征训练得到的风控模型对该待标注样本进行风险识别的难易程度,不确定度越高,风险识别越困难。
所述第一处理模块203,从所述待标注集中取出不确定度大于第一指定阈值的待标注样本。
所述第一处理模块203,在根据分析结果从所述待标注集中取出若干待标注样本之前,计算所述待标注集中包含的各待标注样本之间的相似度;根据所述待标注集中包含的各待标注样本之间的相似度以及每个待标注样本对应的不确定度,计算各待标注样本分别对应的表征值;针对每个待标注样本,该待标注样本与其他待标注样本越相似,该待标注样本对应的表征值越低;该待标注样本对应的不确定度越低,该待标注样本对应的表征值越低;从所述待标注集中取出表征值大于第二指定阈值的待标注样本。
所述第一处理模块203,针对预先确定的每个样本类型,根据该样本类型的待标注样本对应的不确定度,从所述待标注集中取出若干该样本类型的待标注样本。
所述第二处理模块204,将取出的待标注样本提供给标注方进行人工标注;和/或将取出的待标注样本提供给标注方,以使所述标注方根据预先确定的标注规则对接收到的待标注样本进行标注。
预先确定标注规则,具体包括:
监控人工标注时所执行的人工标注操作;
根据监控到的人工标注操作,确定标注规则。
所述第三处理模块205,将所述标注方返回的除指定样本类型外的其他样本类型的已标注样本添加到所述标注集中;以及针对所述标注方返回的所述指定样本类型的每个已标注样本,根据每次对该已标注样本所进行的标注,判断是否确认该已标注样本;若是,则根据每次对该已标注样本所进行的标注,重新标注该已标注样本,并将该已标注样本添加到所述标注集中;否则,将该已标注样本重新作为待标注样本添加到所述待标注子集中。
针对每个已标注样本,该已标注样本的标注为第一标注或第二标注;
所述第三处理模块205,将所述标注方返回的标注为第一标注的已标注样本添加到所述标注集中;在所述第四处理模块206根据所述标注集中包含的已标注样本,从所述待标注集中取出若干待标注样本进行标注之前,将所述标注方返回的标注为第二标注的已标注样本重新作为待标注样本添加到所述待标注子集中。
所述第四处理模块206,采用正样本和待标注样本学习PU Learning算法,根据所述标注集中包含的标注为第一标注的已标注样本,从所述待标注子集中确定出若干可标注为第二标注的待标注样本,将确定出的待标注样本标注为第二标注;将得到的标注为第二标注的已标注样本添加到所述标注集中。
所述第四处理模块206,在根据所述标注集,重新训练风控模型之前,为所述标注集中包含的人工标注的已标注样本、根据所述标注规则标注的已标注样本和其他已标注样本分配不同的第一训练权重值;根据所述标注集中包含的人工标注的已标注样本、根据所述标注规则标注的已标注样本和其他已标注样本分别对应的第一训练权重值,重新训练风控模型。
所述第四处理模块206,针对所述标注集中包含的每个已标注样本,根据该已标注样本对应的第一训练权重值和当前时刻到标注该已标注样本的时刻之间的时间间隔,确定该已标注样本对应的第二训练权重值;该已标注样本对应的第一训练权重值越大,该已标注样本对应的第二训练权重值越大;该已标注样本对应的时间间隔越小,该已标注样本对应的第二训练权重值越大;根据所述标注集中包含的人工标注的已标注样本、根据所述标注规则标注的已标注样本和其他已标注样本分别对应的第二训练权重值,重新训练风控模型。
所述指定条件,具体包括:训练风控模型的次数达到指定次数。
基于图1示的训练风控模型的方法,本说明书实施例还对应提供了一种训练风控模型的设备,如图3所示,标注集中包含已标注样本,待标注集中包含待标注样本,该设备包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:
根据所述标注集,训练风控模型;
基于训练得到的风控模型,对所述待标注集中包含的待标注样本进行不确定性分析;
根据分析结果从所述待标注集中取出若干待标注样本,以及将所述待标注集中未被取出的待标注样本作为待标注子集;
将取出的待标注样本提供给标注方进行标注,并接收标注方返回的已标注样本;
将所述标注方返回的至少部分已标注样本添加到所述标注集中;
根据所述标注集中包含的已标注样本,从所述待标注子集中取出若干待标注样本进行标注,并将标注得到的已标注样本添加到所述标注集中;
根据所述标注集,重新训练风控模型,直至满足指定条件。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于图3所示的设备而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、***、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书一个或多个实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书的一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。