具体实施方式
本说明书实施例提供风险模型训练、垃圾账号检测方法、装置以及设备。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
在大多数业务平台的风控体系中,检测垃圾账号在风控安全上具有重要意义。一般地,无论账号是否涉及到欺诈,只要是非正常用途的账号均可以视为垃圾账号,比如背景技术中通过机器自动大量注册的账号等。如果一个设备注册了多个账号,理想的情况是根据这些账号之后的行为判定其是否是垃圾账号,比如,若是正常线下线上购物等行为,则可以判定为非垃圾账号,但在实际应用中,往往账号注册几个月之后才能够获得足够的判定依据,而不法分子很有可能在此期间利用该账号进行欺诈等行为,因此,设计一种能够尽量提前检测垃圾账号的方案就尤为重要。
在账号网络图中能够获取很多有用信息,比如账号注册行为或者注册后登录等行为的共性等,进而通过图计算来提高账号特征表示准确度。基于此,本说明书实施例提出了基于无监督学习的账号网络图节点的特征向量表示方案,以及进一步地基于有监督学习的风险模型训练方案,整个过程结合了无监督学习和有监督学习,可以称为半监督学习过程。账号网络图中的节点表示账号,边可以表示节点间具有指定共性。
图1为本说明书的方案在一种实际应用场景下涉及的一种整体架构示意图。该整体架构中,主要涉及无监督学习服务器和有监督学习服务器。由无监督学习服务器获取反映注册行为共性的账号网络图,通过无监督学习,确定图中节点的特征向量,再由有监督学习服务器根据部分节点的特征向量和风险标注数据,通过有监督学习,训练风险模型,用以检测垃圾账号。
账号网络图可以由无监督学习服务器或者其他设备生成,风险标注数据可以由有监督学习服务器或者其他设备生成,或者人工标注。无监督学习服务器和有监督学习服务器也可以是同一服务器。
下面基于图1中示例性的架构,对本说明书的方案进行详细说明。
图2为本说明书实施例提供的一种风险模型训练方法的流程示意图。图2中的流程可以包括以下步骤:
S202:获取账号网络图,所述账号网络图包括节点和将节点连接起来的边,所述节点表示账号,至少部分所述边表示其连接的节点表示的账号通过同一媒介注册。
在本说明书实施例中,账号网络图可以基于账号历史数据生成,账号历史数据可以包括账号注册时的数据,比如,账号是通过怎样的媒介注册的、账号注册时填写的注册信息等;账号历史数据还可以包括账号注册后的行为数据,比如,账号的交易信息、登录信息等。对于新注册的账号,可以主要采用账号注册时的数据,以便于尽量提前检测垃圾账号,以下一些实施例也主要以这种情况为例进行说明,这这种情况下,比如可以基于过去一段时间内的账号注册情况,生成账号网络图。
在本说明书实施例中,账号通过媒介注册或者实现后续行为,媒介比如是设备、IP网络、物理地址等,以下一些实施例以媒介是设备,账号通过设备注册为例进行说明,在这种情况下,上述的指定共性可以指通过同一设备注册。
在生成账号网络图时,可以先确定所要表示的各账号,将要表示的每个不同账号分别用一个节点表示。进一步地,若两个节点表示的账号通过同一设备注册,则在这两个节点间建立一条表示该注册行为共性的边,从而生成账号网络图。
在本说明书实施例中,账号网络图可以是无向图,也可以是有向图,这里不做具体限定。一般地,若只反映注册行为共性,一般采用无向图即可;而若还反映诸如交易关系等更多的关系,则也可以采用有向图,在有向图中,通过边的指向表明业务关系方向,比如,若A节点表示买家账号,B节点表示卖家账号,则表示A节点与B节点间交易关系的边可以是从A节点指定B节点,该指向也可以反映资金流动方向。
S204:通过无监督学习,确定所述账号网络图中的节点的特征向量。
在本说明书实施例中,对于获取的账号网络图中的节点,若尚未建立对应的特征向量,则可以按照设定规则,为节点建立初始化的特征向量,此时的特征向量尚不能准确地表示节点的真实特征。通过无监督学习,能够迭代地对节点当前的特征向量进行训练,从而确定出能够较为准确地表示节点的真实特征的特征向量,也即步骤S204中所述的特征向量。
在本说明书实施例中,利用图计算,通过无监督学习,可以将账号网络图中的不同节点映射至相同的向量空间下,如此便于为后续训练提供更多统一的样本。
S206:根据部分所述节点的特征向量和风险标注数据,训练风险模型,用以检测垃圾账号。
在本说明书实施例中,对于账号网络图中的各节点,某些节点可能表示垃圾账号,这些情况尚且未明确,需要通过特定手段明确其中的至少部分情况,才能够得到有训练标签的训练样本,进而才能够通过有监督学习训练风险模型。所述特定手段这里不做具体限定,比如,可以基于抽样精确追踪分析,也可以基于用户举报等手段。
通过明确的上述至少部分情况,能够预先或者实时地为部分节点标注风险标注数据,风险标注数据能够表明节点所存在的风险,比如,是否表示垃圾账号等。在实际应用中,这里的风险也可以不局限于垃圾账号相关内容,比如也可以表示正常账号存在的容易受到攻击的风险等。上述的训练标签即可以根据风险标注数据得到,一般地,风险标注数据可以直接作为训练标签。
风险标注数据的表示形式是多样的,这里不做具体限定。比如,若确定某节点并非表示垃圾账号,该节点的风险标注数据可以记作0,反之,若确定某节点表示垃圾账号,该节点的风险标注数据可以记作1;等等。
在本说明书实施例中,风险模型训练后,即可以用于分类或者回归,以预测输入数据的风险性质。
例如,输入数据可以是待检测账号对应的特征向量,通过训练后的风险模型的处理,输出相应的分类结果或者概率值,以判定待检测账号是否为垃圾账号,或者判定待检测媒介是否注册过垃圾账号等。其中,待检测账号、待检测媒介可以是账号网络图中节点所表示的,也可以是账号网络图之外的;对于前一种情况,待检测账号对应的特征向量已经确定,因此可以直接进行检测,而对于后一种情况,待检测账号对应的特征向量可能尚未确定,则可以采用本说明书的方案,先确定特征向量,再进行检测。
当然,根据风险标注数据的具体内容,风险模型除了用于检测垃圾账号以外,还可能用于预测其他方面的风险,原理都是相同的,这里不再赘述。
通过图2的方法,对于无监督学习过程,基于账号网络图,能够高效准确地通过图计算确定节点的特征向量,再结合有监督学习过程,使得即使在风险标注数据较少的情况下,也能够较为准确地训练风险模型,进而,利用训练后的风险模型,能够有效地检测垃圾账号。
基于图2的方法,本说明书实施例还提供了该方法的一些具体实施方案,以及扩展方案,下面进行说明。
在本说明书实施例中,根据上面的例子可知,对于步骤S206,所述检测垃圾账号,具体可以包括:将待检测账号对应的特征向量输入训练后的所述风险模型;根据训练后的所述风险模型的输出数据(一般是分类结果或者概率值),判定所述待检测账号是否为垃圾账号。
在本说明书实施例中,可以先根据账号注册历史数据,生成账号媒介网络图,再根据账号媒介网络图,生成账号网络图。其中,账号媒介网络图中的节点表示账号和媒介,表示媒介的节点与表示通过该媒介注册的账号的节点间具有边。
这里提供一种示例性的算法作为参考,可以利用该算法,根据账号媒介网络图,生成账号网络图。具体地:
分别针对所述账号媒介网络图中的每个媒介节点执行步骤a、b、c:
a、为该媒介节点建立一个初始为空的账号节点集合;b、确定所述账
号媒介网络图中与该媒介节点间有边的全部账号节点,并将该全部账号节
点加入该账号节点集合中;c、将该账号节点集合中的各账号节点两两连
边,步骤c完毕;
生成由全部账号节点集合共同构成的账号网络图。
进一步地,在图计算中,通常利用矩阵表示图,进而通过操作矩阵实现图计算。在这种情况下,假定将账号媒介网络图表示为第一矩阵,第一矩阵中的元素的取值表示该元素对应的账号节点与媒介节点间是否有边;将账号网络图表示为第二矩阵,第二矩阵中的元素的取值表示该元素对应的账号节点间是否有边。
相应地,对节点的操作即对相应的矩阵元素进行操作。比如,所述确定所述账号媒介网络图中与该媒介节点间有边的全部账号节点,具体可以包括:遍历所述第一矩阵中与该媒介节点相关的各元素,根据所述各元素分别的取值,确定所述账号媒介网络图中与该媒介节点间有边的全部账号节点;所述将该账号节点集合中的各账号节点两两连边,具体可以包括:为该账号节点集合中的各账号节点两两分别对应生成所述第二矩阵中的一个元素,并使该元素的取值表示其对应的两个账号节点间有边。
更直观地,以媒介是设备为例,对上述算法的一种具体实施方案进行说明。
例如,获取过去一段时间的账号注册情况,从数据库中关联到对应的设备信息。将账号和设备均作为图节点,如果某账号是从某设备注册的,那它们之间就建立一条边,如此可以构成一个账号设备网络图,将账号设备网络图记作矩阵G,G(i,j)=1表示账号i是通过设备j注册的。下面进一步地用伪代码示出根据账号设备网络图生成账号网络图(用矩阵X表示)的一种算法(用“CalcAccNet”表示对应的函数名):
需要说明的是,除了上述算法以外,利用其他算法也可能生成账号网络图。比如,可以根据账户节点的注册共性,在第一矩阵中,直接对账户节点连边,然后再剔除第一矩阵中的媒介节点,剔除后的第一矩阵也能够表示账号网络图。
在本说明书实施例中,无监督学习算法是多样的,本说明书提供了一种无监督学习算法,能够用于确定特征向量,当然,除了该无监督学习算法,采用诸如聚类算法等其他一些算法也能够实现无监督学习。下面主要对该无监督学习算法进行说明。
该无监督学习算法的原理是:认为在账号网络图中,节点(称为当前节点)与其附近节点的特征向量间的相似度应该相对高,当前节点与其附近节点以外的至少部分节点的特征向量间的相似度应该相对更低,进而以实现这两种情况中的至少一种情况为目标训练特征向量,由于附近节点往往存在多个,附近节点以外的节点往往也存在多个,这里所述的相似度可以是综合考虑(比如基于求和、求均值等运算实现)当前节点分别与其每个附近节点的两两节点间相似度而得到的,或者综合考虑当前节点分别与其附近节点以外的多个节点的两两节点间相似度而得到的。
附近节点的判定方式是多样的,可以根据需求确定。比如,对于任意一个节点,其附近节点可以指从该节点出发,不多于设定跳数能够到达的节点,其中,每跳能够从当前节点跳至该当前节点的一个邻居节点,设定跳数比如设定为5跳或者3跳等;再比如,对于任意一个节点,其附近节点可以指以该节点为圆心,设定半径的圆形区域内的其他节点;等等。下面一些实施例主要以前一种判定方式为例进行说明。
在本说明书实施例中,对于步骤S204,所述通过无监督学习,确定所述账号网络图中的节点的特征向量,具体可以包括:确定所述账号网络图中的节点的附近节点;确定该节点及其附近节点当前的特征向量,所述当前的特征向量初始时按照设定规则初始化得到;利用指定的损失函数,通过无监督学习,训练所述当前的特征向量,从而确定出该节点训练后的特征向量;其中,所述附近节点包括从该节点出发,不多于设定跳数能够到达的节点。
进一步地,所述训练所述当前的特征向量,具体可以包括:以提高所述节点及其附近节点当前的特征向量间的相似度为目标,训练所述当前的特征向量。向量间的相似度的度量方式是多样的,比如,基于向量点击度量,基于向量间空间距离度量等。
本说明书实施例还提供了一种指定的损失函数,用于训练特征向量,该损失函数用向量点击度量向量间的相似度,包括:
其中,L表示该损失函数,
表示节点w当前的特征向量,T(w)表示节点w的附近节点构成的节点集合,U(w)表示节点w的附近节点以外的至少部分节点构成的节点集合,
表示T(w)中的节点的特征向量,
表示U(w)中的节点的特征向量,σ表示激励函数,λ表示超参数,E
c'∈U(w)表示当c'符合指定概率分布的期望函数。
在进行图计算时,可以基于表示账号网络图的矩阵X来判定附近节点。比如,若X(w,c)=1,则表示节点w和c间一次跳跃可达,若X2(w,c)≥1,则表示节点w和c间二次跳跃可达(X2是X矩阵的平方),类似地,若XT(w,c)≥1,则表示节点w和c间T次跳跃可达。
当然,上例中的损失函数是示例性的,还可以对其进行调整,只要能够适应于上面的训练目标即可。
在本说明书实施例中,对于步骤S206,所述根据部分节点的特征向量和风险标注数据,训练风险模型,具体可以包括:以部分节点的特征向量作为模型输入数据,以对应的风险标注数据作为有监督学习训练标签,训练风险模型。
在本说明书实施例中,风险模型是多样的,可以根据实际需求选择。比如,对准确度要求较高时,可以选择梯度提升决策树(Gradient Boosting Decision Tree,GBDT)分类器作为风险模型,对处理速度要求较高时,可以选择Logistic回归模型作为风险模型,等等。下面以GBDT分类器作为风险模型为例,进一步地说明。
在本说明书实施例中,比如,可以将节点i的风险标注数据记作z
i,取值为1(表示垃圾账户)或者为0(表示非垃圾账户),从而构成一个二分类问题。将风险模型针对节点i的预测结果记作
其中,
给出一个广义的损失函数,首先定义可导的函数
一般地,其具体的数学表达可以是一个决策树,在实际应用中,单棵决策树效果往往不好,但是多棵决策树构成森林后,分类效果则可能大幅度提升,GBDT分类器即由多棵决策树构成,构造GBDT分类器的损失函数如下:
其中,u
i表示节点i的特征向量,f表示对多棵决策树结果综合评估时使用的运算函数,比如是平均运算函数、求最值运算函数等,Ω(f)表示正则化项用以防止过拟合,比如是L1范数或者L2范数等,g
i和h
i分别表示
的一阶导数和二阶导数,具体地:
利用部分节点的特征向量和风险标注数据,即可以训练GBDT分类器。
基于图2的方法训练的风险模型,本说明书实施例还提供了一种垃圾账号检测方法的流程示意图,如图3所示。图3中的流程可以包括以下步骤:
S302:确定待检测账号对应的特征向量。
S304:将所述待检测账号对应的特征向量输入利用上述风险模型训练方法训练后的风险模型。
S306:根据所述训练后的风险模型的输出数据,判定所述待检测账号是否为垃圾账号。
上面对本说明书实施例提供的风险模型训练、垃圾账号检测方法进行了说明,基于同样的思路,本说明书实施例还提供了对应的装置和设备,如图4~图7所示。
图4为本说明书实施例提供的对应于图2的一种风险模型训练装置的结构示意图,该装置可以位于图2中流程的执行主体,包括:
获取模块401,获取账号网络图,所述账号网络图包括节点和将节点连接起来的边,所述节点表示账号,至少部分所述边表示其连接的节点表示的账号通过同一媒介注册;
确定模块402,通过无监督学习,确定所述账号网络图中的节点的特征向量;
训练模块403,根据部分所述节点的特征向量和风险标注数据,训练风险模型,用以检测垃圾账号。
可选地,所述媒介包括设备。
可选地,所述获取模块401获取账号网络图,具体包括:
所述获取模块401根据账号注册历史数据,生成账号媒介网络图,所述账号媒介网络图中的节点表示账号和媒介,表示媒介的节点与表示通过该媒介注册的账号的节点间具有边;
根据所述账号媒介网络图,生成账号网络图。
可选地,所述获取模块401根据所述账号媒介网络图,生成账号网络图,具体包括:
所述获取模块401分别针对所述账号媒介网络图中的每个媒介节点执行步骤a、b、c:
a、为该媒介节点建立一个初始为空的账号节点集合;
b、确定所述账号媒介网络图中与该媒介节点间有边的全部账号节点,并将该全部账号节点加入该账号节点集合中;
c、将该账号节点集合中的各账号节点两两连边,步骤c完毕;生成由全部账号节点集合共同构成的账号网络图。
可选地,所述账号媒介网络图表示为第一矩阵,所述第一矩阵中的元素的取值表示该元素对应的账号节点与媒介节点间是否有边;
所述账号网络图表示为第二矩阵,所述第二矩阵中的元素的取值表示该元素对应的账号节点间是否有边;
所述获取模块401确定所述账号媒介网络图中与该媒介节点间有边的全部账号节点,具体包括:
所述获取模块401遍历所述第一矩阵中与该媒介节点相关的各元素,根据所述各元素分别的取值,确定所述账号媒介网络图中与该媒介节点间有边的全部账号节点;
所述获取模块401将该账号节点集合中的各账号节点两两连边,具体包括:
所述获取模块401为该账号节点集合中的各账号节点两两分别对应生成所述第二矩阵中的一个元素,并使该元素的取值表示其对应的两个账号节点间有边。
可选地,所述确定模块402通过无监督学习,确定所述账号网络图中的节点的特征向量,具体包括:
所述确定模块402确定所述账号网络图中的节点的附近节点;
确定该节点及其附近节点当前的特征向量,所述当前的特征向量初始时按照设定规则初始化得到;
利用指定的损失函数,通过无监督学习,训练所述当前的特征向量,从而确定出该节点训练后的特征向量;
其中,所述附近节点包括从该节点出发,不多于设定跳数能够到达的节点。
可选地,所述训练模块403训练所述当前的特征向量,具体包括:
所述训练模块403以提高所述节点及其附近节点当前的特征向量间的相似度为目标,训练所述当前的特征向量。
可选地,若基于向量点积度量向量间的相似度,则所述指定的损失函数包括:
其中,
表示节点w当前的特征向量,T(w)表示节点w的附近节点构成的节点集合,U(w)表示节点w的附近节点以外的至少部分节点构成的节点集合,
表示T(w)中的节点的特征向量,
表示U(w)中的节点的特征向量,σ表示激励函数,λ表示超参数,E
c'∈U(w)表示当c'符合指定概率分布的期望函数。
可选地,所述训练模块403根据部分节点的特征向量和风险标注数据,训练风险模型,具体包括:
所述训练模块403以部分节点的特征向量作为模型输入数据,以对应的风险标注数据作为有监督学习训练标签,训练作为风险模型的梯度提升决策树GBDT分类器。
图5为本说明书实施例提供的对应于图3的一种垃圾账号检测装置的结构示意图,该装置可以位于图3中流程的执行主体,包括:
确定模块501,确定待检测账号对应的特征向量;
输入模块502,将所述待检测账号对应的特征向量输入利用上述风险模型训练方法训练后的风险模型;
判定模块503,根据所述训练后的风险模型的输出数据,判定所述待检测账号是否为垃圾账号。
图6为本说明书实施例提供的对应于图2的一种风险模型训练设备的结构示意图,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取账号网络图,所述账号网络图包括节点和将节点连接起来的边,所述节点表示账号,至少部分所述边表示其连接的节点表示的账号通过同一媒介注册;
通过无监督学习,确定所述账号网络图中的节点的特征向量;
根据部分所述节点的特征向量和风险标注数据,训练风险模型,用以检测垃圾账号。
图7为本说明书实施例提供的对应于图3的一种垃圾账号检测设备的结构示意图,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
确定待检测账号对应的特征向量;
将所述待检测账号对应的特征向量输入利用上述风险模型训练方法训练后的风险模型;
根据所述训练后的风险模型的输出数据,判定所述待检测账号是否为垃圾账号。
基于同样的思路,本说明书实施例还提供了对应于图2的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
获取账号网络图,所述账号网络图包括节点和将节点连接起来的边,所述节点表示账号,至少部分所述边表示其连接的节点表示的账号通过同一媒介注册;
通过无监督学习,确定所述账号网络图中的节点的特征向量;
根据部分所述节点的特征向量和风险标注数据,训练风险模型,用以检测垃圾账号。
基于同样的思路,本说明书实施例还提供了对应于图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),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书实施例可提供为方法、***或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。