首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】挖掘全局高效用序列模式的方法、装置及计算机存储介质_哈尔滨工业大学(深圳);腾讯科技(深圳)有限公司_201910692048.6 

申请/专利权人:哈尔滨工业大学(深圳);腾讯科技(深圳)有限公司

申请日:2019-07-26

公开(公告)日:2024-06-04

公开(公告)号:CN110399406B

主分类号:G06F16/2458

分类号:G06F16/2458;G06F16/22;G06F16/901

优先权:

专利状态码:有效-授权

法律状态:2024.06.04#授权;2020.11.27#实质审查的生效;2019.11.01#公开

摘要:本公开提供了一种挖掘全局高效用序列模式的方法、装置及计算机可读存储介质。该方法包括:确定序列数据库中的第一类项,其中第一类项是全局序列权重效用值高于第一阈值的项;确定序列数据库中各个序列的效用值链表;根据所确定的第一类项,从序列数据库挖掘至少一个候选的全局高效用序列模式并确定第一集合,其中第一集合包括至少一个候选的全局高效用序列模式、包括各个候选的全局高效用序列模式的序列的标识以及各个候选的全局高效用序列模式在相应序列中的效用值;以及根据各个序列的效用值链表和第一集合,从至少一个候选的全局高效用序列模式中挖掘全局高效用序列模式。

主权项:1.一种用于挖掘全局高效用序列模式的方法,包括:确定序列数据库中的第一类项,其中第一类项是全局序列权重效用值高于第一阈值的项;确定所述序列数据库中各个序列的效用值链表;根据所确定的第一类项,从所述序列数据库挖掘至少一个候选的全局高效用序列模式并确定第一集合,其中所述第一集合包括多个子集合,每个子集合包括所述至少一个候选的全局高效用序列模式、包括各个候选的全局高效用序列模式的序列的标识以及各个候选的全局高效用序列模式在相应序列中的效用值;以及根据各个序列的效用值链表和所述第一集合,从所述至少一个候选的全局高效用序列模式中挖掘全局高效用序列模式,其中,根据各个序列的效用值链表和所述第一集合,从所述至少一个候选的全局高效用序列模式中挖掘全局高效用序列模式包括:当所述第一集合包括所述至少一个候选的全局高效用序列模式时,根据所述第一集合确定所述至少一个候选的全局高效用序列模式的效用值。

全文数据:挖掘全局高效用序列模式的方法、装置及计算机存储介质技术领域本公开涉及数据处理领域,具体地,涉及一种挖掘全局高效用序列模式的方法、装置及计算机可读存储介质。背景技术序列模式挖掘是数据挖掘领域的重要技术。序列模式挖掘是针对序列数据库的。序列数据库可以包括多条序列也可以称为事务transaction,其中每个序列可以包括至少一个项集itemset,每个项集包括至少一个项item,并且项集之间存在排序顺序。以超市的购物数据为例,某用户在第一天购买了商品a和商品b,第二天购买了商品a和商品c,第三天购买了商品b。用户在这段时间的购物数据可以抽象为一条序列:,其中a、b和c是项,[]内的项构成一个项集,多个项集按顺序排列构成了序列。高效用序列模式挖掘算法所挖掘的是效用值高于预设阈值的商品组合,即序列模式pattern。序列模式是不同项集的有序排列。在挖掘高效用模式的过程中,通过计算整个数据库的总效用值来查找高效用模式的过程需要较多的计算,高效用序列模式的挖掘更是如此。因此,高效用序列模式挖掘比传统的高效用模式挖掘和频繁序列模式挖掘更加复杂。目前的分布式且并行的模式挖掘集中在高效用模式挖掘和频繁序列模式挖掘,例如,可以在Hadoop平台上进行高效用模式挖掘和频繁序列模式挖掘。因此,还不存在分布式且并行的高效用序列模式挖掘方法。发明内容为此,本公开提供了一种挖掘全局高效用序列模式的方法、装置及计算机可读存储介质。根据本公开的一个方面,提供了一种用于挖掘全局高效用序列模式的方法,包括:确定序列数据库中的第一类项,其中第一类项是全局序列权重效用值高于第一阈值的项;确定所述序列数据库中各个序列的效用值链表;根据所确定的第一类项,从所述序列数据库挖掘至少一个候选的全局高效用序列模式并确定第一集合,其中所述第一集合包括所述至少一个候选的全局高效用序列模式、包括各个候选的全局高效用序列模式的序列的标识以及各个候选的全局高效用序列模式在相应序列中的效用值;以及根据各个序列的效用值链表和所述第一集合,从所述至少一个候选的全局高效用序列模式中挖掘全局高效用序列模式。根据本公开的一个示例,其中所述确定序列数据库中的第一类项包括:确定序列数据库中各个项的全局序列权重效用值;以及将全局序列权重效用值高于第一阈值的项确定为第一类项。根据本公开的一个示例,其中确定序列数据库中每个项的全局序列权重效用值包括:确定该项在序列数据库的各个分区的局部序列权重效用值;以及根据所确定的局部序列权重效用值确定该项的全局序列权重效用值。根据本公开的一个示例,其中该项在所述序列数据库的每个分区的局部序列权重效用值是根据该分区中包括该项的序列的效用值确定的。根据本公开的一个示例,其中确定序列数据库中每个序列的效用值链表包括:根据该序列中各个项的效用值和各个项在该序列中的位置,确定该序列的效用值链表。根据本公开的一个示例,其中根据所确定的第一类项,从所述序列数据库挖掘至少一个候选的全局高效用序列模式包括:根据所确定的第一类项,从序列数据库的各个分区挖掘局部高效用序列模式;以及根据所挖掘的局部高效用序列模式确定至少一个候选的全局高效用序列模式。根据本公开的一个示例,其中根据所确定的第一类项,从所述序列数据库的每个分区挖掘局部高效用序列模式包括:对于该分区包括的各个序列中属于第一类项的一个项,计算该项在各个序列中的效用值和剩余效用值,其中该项在一个序列中的剩余效用值是该序列中、该项之后的所有项的效用值之和;构建该项在各个序列中的效用列表;根据该项在各个序列中的效用列表确定该项的效用值链;根据该分区中各个项的效用值链,从该分区挖掘局部高效用序列模式。根据本公开的一个示例,其中根据各个序列的效用值链表和所述第一集合,从所述至少一个候选的全局高效用序列模式挖掘全局高效用序列模式包括:根据各个序列的效用值链表和所述第一集合,确定各个候选的全局高效用序列模式的局部效用值;根据各个候选的全局高效用序列模式的局部效用值,确定各个候选的全局高效用序列模式的全局效用值;以及将全局效用值大于第一阈值的序列模式确定为全局高效用序列模式。根据本公开的一个示例,上述方法还包括:根据负载均衡算法将所述序列数据库中的序列划分为多个分区。根据本公开的另一方面,提供了一种用于挖掘全局高效用序列模式的装置,包括:第一确定单元,被配置为确定序列数据库中的第一类项,其中第一类项是全局序列权重效用值高于第一阈值的项;第二确定单元,被配置为确定所述序列数据库中各个序列的效用值链表;第一挖掘单元,被配置为根据所确定的第一类项,从所述序列数据库挖掘至少一个候选的全局高效用序列模式并确定第一集合,其中所述第一集合包括所述至少一个候选的全局高效用序列模式、包括各个候选的全局高效用序列模式的序列的标识以及各个候选的全局高效用序列模式在相应序列中的效用值;以及第二挖掘单元,被配置为根据各个序列的效用值链表和所述第一集合,从所述至少一个候选的全局高效用序列模式中挖掘全局高效用序列模式。根据本公开的一个示例,其中所述第一确定单元被配置为确定所述序列数据库中各个项的全局序列权重效用值;以及将全局序列权重效用值高于第一阈值的项确定为第一类项。根据本公开的一个示例,其中所述第二确定单元被配置为确定每个项在序列数据库的各个分区的局部序列权重效用值;以及根据所确定的局部序列权重效用值确定该项的全局序列权重效用值。根据本公开的一个示例,其中该项在序列数据库的每个分区的局部序列权重效用值是根据该分区中包括该项的序列的效用值确定的。根据本公开的一个示例,其中所述第二确定单元被配置为根据每个序列中各个项的效用值和各个项在该序列中的位置,确定该序列的效用值链表。根据本公开的一个示例,其中所述第一挖掘单元被配置为根据所确定的第一类项,从序列数据库的各个分区挖掘局部高效用序列模式;以及根据所挖掘的局部高效用序列模式确定至少一个候选的全局高效用序列模式。根据本公开的一个示例,其中所述第一挖掘单元被配置为对于序列数据库的每个分区包括的各个序列中属于第一类项的一个项,计算该项在各个序列中的效用值和剩余效用值,其中该项在一个序列中的剩余效用值是该序列中、该项之后的所有项的效用值之和;构建该项在各个序列中的效用列表;根据该项在各个序列中的效用列表确定该项的效用值链;根据该分区中各个项的效用值链,从该分区挖掘局部高效用序列模式。根据本公开的一个示例,其中所述第二挖掘单元被配置为根据各个序列的效用值链表和所述第一集合,确定各个候选的全局高效用序列模式的局部效用值;根据各个候选的全局高效用序列模式的局部效用值,确定各个候选的全局高效用序列模式的全局效用值;以及将全局效用值大于第一阈值的序列模式确定为全局高效用序列模式。根据本公开的一个示例,上述装置还包括负载分配单元,被配置为根据负载均衡算法将序列数据库中的序列划分为多个分区。根据本公开的另一方面,提供了一种用于挖掘全局高效用序列模式的装置,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行上述方法。根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有指令,所述指令在被处理器执行时,使得所述处理器执行上述方法。通过本公开提供的挖掘全局高效用序列模式的方法、装置及计算机可读存储介质,确定了序列数据库中各个序列的效用值链表和第一集合,并根据这两种数据结构来挖掘全局高效用序列模式,节省了大量时间,加快了在序列数据库中计算全局效用值的计算过程,加快了挖掘速度,降低了时间复杂度。附图说明通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。图1是根据本公开实施例的从序列数据库挖掘全局高效用序列模式的系统架构的示意图。图2是根据本公开实施例的用于挖掘全局高效用序列模式的方法的流程图。图3示出了项a在序列s1中的效用列表的示意图。图4示出了项a的效用值链的示意图。图5是根据本公开实施例的从至少一个候选的全局高效用序列模式挖掘全局高效用序列模式的方法的流程图。图6是根据本公开实施例的用于挖掘全局高效用序列模式的装置的结构示意图。图7示出了根据本公开实施例的计算机设备的架构。具体实施方式为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。在附图中,相同的参考标号自始至终表示相同的元件。应当理解:这里描述的实施例仅仅是说明性的,而不应被解释为限制本公开的范围。在本公开中,当序列模式的效用值较高时,例如,当序列模式的效用值高于预设阈值时,可以将该序列模式称为“高效用序列模式”。也就是说,“高效用序列模式”可以是效用值高于预设阈值的序列模式。这里的“预设阈值”可以是固定不变的,或者可以随着挖掘算法的应用场景的改变而改变。本公开提出了一种分布式且并行的高效用序列模式挖掘的技术方案。在本公开中,通过基于Hadoop平台的分布式计算框架来实现分布式且并行的高效用序列模式挖掘。在挖掘过程中,使用序列数据库中各个序列的效用值链表和第一集合,来保存挖掘过程中必要的信息,从而加快挖掘速度,降低时间复杂度。这里所提到的“分布式计算框架”可以是映射和归纳MapReduce框架,其中Map是把一个键值key-value对映射成一个新的键值对,Reduce是把键值对中键相同的值整合,同时映射成新的键值对。此外,执行Map操作的模块可以称为Mapper,执行Reduce操作的模块可以称为Reducer。首先,参照图1来描述根据本公开实施例的从序列数据库挖掘全局高效用序列模式Global-HighUtilitySequencePattern,G-HUSP的系统架构。图1是根据本公开实施例的从序列数据库挖掘全局高效用序列模式的系统架构的示意图。如图1所示,系统架构100可以包括三部分,分别为识别部分110、局部挖掘部分120和整合部分130。识别部分110可以包括多个Mapper和多个Reducer,例如n个Mapper和n个Reducer,其中n为正整数。识别部分110可以用于确定序列数据库中的第一类项,该第一类项是全局序列权重效用值高于第一阈值的项。第一类项是有可能构成高效用序列模式的项,因此也可以称为有希望的项promisingitem。局部挖掘部分120可以包括多个Mapper和多个Reducer,例如n个Mapper和n个Reducer,其中n为正整数。局部挖掘部分120可以用于根据第一类项,从序列数据库挖掘出局部高效用序列模式Local-HighUtilitySequencePattern,L-HUSP。该局部高效用序列模式中的一部分序列模式可能为全局高效用序列模式,另一部分序列模式可能不是全局高效用序列模式,则该另一部分序列模块可以作为候选的全局高效用序列模式。此外,局部挖掘部分120还可以用于确定第一集合可以表示为sidset,该第一集合可以包括至少一个候选的全局高效用序列模式、包括各个候选的全局高效用序列模式的序列的标识以及各个候选的全局高效用序列模式在相应序列中的效用值。此外,还可以确定序列数据库中各个序列的效用值链表。整合部分130可以包括多个Mapper和多个Reducer,例如n个Mapper和n个Reducer,其中n为正整数。整合部分130可以用于根据各个序列的效用值链表和所述第一集合,从所述至少一个候选的全局高效用序列模式中挖掘全局高效用序列模式。通过图1所示的系统架构,可以使用序列数据库中各个序列的效用值链表和第一集合,来保存挖掘过程中必要的信息,从而加快高效用序列模式的挖掘速度,降低时间复杂度。需要认识到,尽管在图1中示出了三阶段的MapReduce,但这只是示意性的。根据本公开的实施例,还可以是更少或更多个阶段的MapReduce。此外,每个阶段的MapReduce包含的Mapper和Reducer的个数可以相同,也可以不同。此外,不同阶段的MapReduce包含的Mapper和或Reducer的个数可以相同,也可以不同。此外,应该理解,在本公开中,“局部”是针对数据库的一个分区而言的,而“全局”是针对数据库整体而言的。例如,本公开中的“局部高效用序列模式”可以是从数据库的一个分区挖掘出的高效用序列模式,即对该分区而言是高效用的序列模式;而本公开中的“全局高效用序列模式”可以是从多个局部高效用序列模式中挖掘出的高效用序列模式,即对数据库整体而言是高效用的序列模式。又例如,本公开中的“局部序列权重效用值”可以是根据数据库的一个分区中的数据确定的效用值;而本公开中的“全局高效用序列模式”可以是根据数据库中的所有数据确定的效用值。下面将结合图2来具体描述根据图1所示的系统框架的挖掘全局高效用序列模式的方法的流程图。图2是根据本公开实施例的用于挖掘全局高效用序列模式的方法200的流程图。如图2所示,在步骤S201中,确定序列数据库中的第一类项,其中第一类项是全局序列权重效用值GlobalSequenceWeightUtility,GSWU高于第一阈值的项。在本公开中,序列数据库可以包括多个序列以及与各个序列对应的标识信息。在本公开中,序列可以是定量序列quantitativesequence。与每个序列对应的标识信息可以称为序列标识sequenceid,sid。可以用sl来表示第l条序列的序列标识,其中l为正整数。每个序列可以包括一个或多个项集,每个项集可以包括一个或多个项。每个项具有内部效用值和外部效用值。在交易类型的数据库中,内部效用值可以是项的交易数量。在其他场景的数据库中,内部效用值的形式可相应的调整。记录数据库中各个项的外部效用值的表格可以称为外部效用值表。在交易类型的数据库中,外部效用值表可以是利润表,即外部效用值表可以记录数据库中各项的单位利润值。在其他场景的数据库中,外部效用值表的形式可相应的调整。下面的表1示出了序列数据库的一个示例。如表1所示,序列数据库是交易类型的数据库,其包括了5个序列,分别为s1~s5。每条序列由同一顾客在不同时间的购买清单组成,每个购买清单即为项集,购买的商品即为项。例如,序列s1表示顾客先购买2个商品a和3个商品c,再购买3个商品a、1个商品b和2个商品c,然后购买4个商品a、5个商品b和4个商品d,最后购买了3个商品e。sid序列s1s2s3s4s5表1序列数据库的示例下面的表2示出了外部效用值表的一个示例。如表2所示,商品a的利润为5,商品b的利润为3,商品c的利润为4,商品d的利润为2,商品e的利润为1,以及商品f的利润为6。项abcdef利润534216表2外部效用值表的示例在步骤S201中,可以确定序列数据库中各个项的全局序列权重效用值,并将全局序列权重效用值高于第一阈值的项确定为第一类项。步骤S201可以由上面所描述的识别部分110即第一阶段MapReduce来进行。下面将描述确定序列数据库中每个项的全局序列权重效用值的过程。根据本公开的一个示例,对于序列数据库中的每个项,可以首先确定该项在序列数据库的各个分区的局部序列权重效用值LocalSequenceWeightUtility,LSWU,然后根据所确定的局部序列权重效用值确定该项的全局序列权重效用值。例如,首先可以将序列数据库划分为多个分区,并将该多个分区分配给第一阶段MapReduce中的多个Mapper。例如,可以将序列数据库划分为n个分区,并且将第1个分区分配给第一阶段MapReduce中的Mapper1,......,将第k个分区分配给第一阶段MapReduce中的Mapperk,......,将第n个分区分配给第一阶段MapReduce中的Mappern,其中1≤k≤n且为正整数。然后,对于第k个分区中的每个序列,Mapperk可以确定该序列的效用值。例如,Mapperk可以按照传统的计算序列的效用值的方法来确定该序列的效用值。例如,序列的效用值可以为组成该序列的各个项集在该序列中的效用值的加和。在本公开中,序列sl的效用值可以表示为usl。然后,对于该序列中的每个项,Mapperk可以生成键值对,并且该键值对可以由该项和该序列的效用值构成。例如,对于序列sl中的项i,Mapperk可以生成键值对i,usl。由此可见,序列的序列标识和该序列的内容可以作为一个键值对输入Mapperk,然后,Mapperk输出一个或多个新的键值对。此外,由于每个分区中的不同序列可能包含同一个项,因此,对于这些不同序列中的同一个项,Mapper可以生成多个键值对。在这种情形下,可以给每个Mapper配置一个组合模块例如可以称为combiner,以确定同一个项在每个分区的局部序列权重效用值。具体地,该项在序列数据库的每个分区的局部序列权重效用值可以是根据该分区中包括该项的序列的效用值确定的。例如,该项在序列数据库的每个分区的局部序列权重效用值可以是该分区中包括该项的序列的效用值之和。通过这种方式,可以减少下面将要描述的Reducer的工作负载,从而降低了对通信成本和运输时间的要求。例如,可以通过下面的公式1来确定项i在序列数据库的第k个分区的局部序列权重效用值:其中,i表示项,Dk表示序列数据库的第k个分区,s表示包括该项的序列,us表示序列的效用值。下面以一个具体示例来描述确定一个项在序列数据库的一个分区的局部序列权重效用值的过程。例如,在序列数据库的第k个分区包括序列s1和序列s2的示例中,Mapperk可以确定序列s1和和序列s2的效用值分别为us1和us2。然后,对于序列s1中的每个项,即项a、项b、项c、项d和项e,Mapperk可以生成键值对a,us1、b,us1、c,us1、d,us1、e,us1。对于序列s2中的每个项,即项a、项b、项c、项d和项e,Mapperk可以生成键值对a,us2、b,us2、c,us2、d,us2、e,us2。因此,对于项a,存在两个键值对,即a,us1和a,us2。项a的这两个键值对也可以表示为a,lu,其中lu是包括us1和us2的集合。然后,组合模块对集合lu中的元素求和,即us1+us2,以获得项a在第k个分区的局部序列权重效用值LSWUa-k=us1+us2。类似地,可以获得项b、项c、项d和项e在第k个分区的局部序列权重效用值。由此可见,Mapperk输出的键值对可以作为与该Mapperk对应的组合模块的输入,然后该组合模块生成新的键值对。该新的键值对可以由项和该项在第k个分区的局部序列权重效用值构成。例如,对于项i,与Mapperk对应的组合模块可以生成键值对i,LSWUi-k。在项i为项a的示例中,与Mapperk对应的组合模块可以输出键值对a,LSWUa-k。通过上面的方式,可以确定每个项在序列数据库的各个分区的局部序列权重效用值。在确定了每个项在序列数据库的各个分区的局部序列权重效用值之后,可以根据所确定的局部序列权重效用值确定该项的全局序列权重效用值。例如,可以将每个项在序列数据库的各个分区的局部序列权重效用值之和,作为该项的全局序列权重效用值。具体地,可以将多个组合模块的输出中、键值相同的键值对输入至第一阶段MapReduce中的一个Reducer中。也就是说,将多个组合模块的输出中、与同一个项对应的多个键值对,例如,与项i对应的多个键值对i,LSWUi-k,输入至一个Reducer中。该Reducer可以将这多个键值对中的局部序列权重效用值的加和,作为项i的全局序列权重效用值GSWUi。例如,可以通过下面的公式2来确定项i的全局序列权重效用值:其中,GSWUi,D表示项i在序列数据库D中的全局序列权重效用值,Dk表示序列数据库的第k个分区,LSWUi,Dk表示项i在序列数据库的第k个分区的局部序列权重效用值。至此,已经描述了确定序列数据库中每个项的全局序列权重效用值的过程。在确定了序列数据库中每个项的全局序列权重效用值之后,第一阶段MapReduce中的各个Reducer可以将全局序列权重效用值高于或等于第一阈值的项确定为第一类项,并丢弃全局序列权重效用值小于第一阈值的项。每个Reducer可以输出一个或多个新的键值对,其中每个新的键值对可以由一个第一类项和该第一类项的全局序列权重效用值构成。例如,当项i是第一类项时,某个Reducer可以输出键值对i,GSWUi。这里所描述的“第一阈值”可以是根据数据库的总效用值和阈值因子而确定的。例如,“第一阈值”可以是数据库的总效用值和阈值因子的乘积。可以根据传统的计算数据库的总效用值的方法来确定数据库的总效用值。例如,数据库的总效用值可以是数据库中各个事务的效用值的加和。数据库的总效用值可以表示为uD。阈值因子可以是预先设置的,其可以表示为δ。因此,第一阈值可以表示为δ×uD。通过步骤S201,可以识别出有希望构成高效用序列模式的项。未被识别出的项可以被丢弃,并且不再需要考虑。通过步骤S201,用于搜索高效用序列模式的空间比原始的搜索空间减小了很多,从而提高了搜索速度,加快了挖掘速度。返回图2,在步骤S202中,确定序列数据库中各个序列的效用值链表。步骤S202可以在步骤S201之前或之后执行,也可以和步骤S201同步执行。根据本公开的一个示例,对于序列数据库中的一个序列,可以根据该序列中各个项的效用值和各个项在该序列中的位置,确定该序列的效用值链表。项的效用值可以是项的内部效用值和外部效用值的乘积。各个项在序列中的位置可以包括各个项的初始位置和相邻位置,其中项的初始位置可以是项在序列中第一次出现的位置,相邻位置可以是项在序列中下一次出现的位置。此外,一个序列的效用值链表可以包括两行,其中第一行可以是关于各个项的效用值和相邻位置的信息可以简称为UtilityPositionInformation,UPinformation,第二行可以是关于序列中的非重复项的初始位置的信息可以简称为HeaderTable。第二行可以包括非重复项和各个非重复项的初始位置。下面的表3示出了表1中的序列s1的效用值链表。如表3所示,序列s1的效用值链表包括两行,第一行示出了序列s1中各个项a、b、c、d、e的效用值和相邻位置,第二行示出了序列s1中各个项a、b、c、d、e的初始位置。具体地,第一行中的元素a,10,3中的“a”表示序列s1中的第1个项,“10”表示项a在序列s1中的效用值为10,“3”表示项a在序列s1中下一次出现的位置。第一行中的元素c,8,-中的“c”表示序列s1中的第5个项,“8”表示项c在序列s1中的效用值为8,“-”表示项c在序列s1中没有下一个位置。第二行中的元素a,1中的“a”表示序列s1中的项,“1”表示项a在序列s1中的初始位置。表3序列s1的效用值链表的示例可以理解,序列的效用值链表是通过对原始数据库中的序列进行转换和扩展而形成的,其记录了关于原始数据库的信息和需要被计算的公共信息。通过序列的效用值链表,可以提高序列模式的计算速度。这是由于,目标序列模式在单个事务中可能有多个匹配项,因此,计算事务中序列模式的效用值需要查找所有匹配项,然后取最大效用值。效用值链表记录了事务中项的下一个位置,因此,不需要多次扫描事务,而只要连续搜索项的下一个位置就可以计算事务中序列模式的最大效用值。返回图2,在步骤S203中,根据所确定的第一类项,从序列数据库挖掘至少一个候选的全局高效用序列模式并确定第一集合,其中所述第一集合包括所述至少一个候选的全局高效用序列模式、包括各个候选的全局高效用序列模式的序列的标识以及各个候选的全局高效用序列模式在相应序列中的效用值。步骤S203可以由上面所描述的局部挖掘部分120即第二阶段MapReduce来进行。根据本公开的一个示例,执行步骤S203之前,可以将序列数据库中的序列分配到多个任务task中。任务的数量可以表示为m,其中m为正整数。例如,m可以为第二阶段MapReduce中的Mapper的数量的倍数。在下面的示例中,以m等于第二阶段MapReduce中的Mapper的数量为例来描述本公开。在该示例中,可以根据负载均衡算法将序列数据库中的序列划分为多个分区。例如,可以根据负载均衡算法将序列数据库中的序列分配到多个任务中。具体地,对于序列数据库中的一个序列,可以确定该序列包括的第一类项的数量Num。然后,从多个任务中选择具有最小工作负载的任务p,并将该序列分配到该任务p,同时根据该序列包括的第一类项的数量来更新该任务p的工作负载。例如,第p个任务的工作负载可以表示为WLp,当一个序列被分配给该任务后,该任务的工作负载由WLp更新为WLp+Num。此外,在该示例中,算法可以将每个任务的工作负载初始化为0。因此,在算法的第一次迭代中,由于每个任务的工作负载均为0,因此,对于序列数据库中的一个序列,可以从多个任务中随机选择一个任务,并将该序列分配到该任务。例如,可以从多个任务中选择第1个任务,并将该序列分配到第1个任务。此外,这里所描述的“任务”也可以称为任务文件taskfile。下文中,可以替换地使用任务和任务文件。通过上述负载均衡算法,可以避免划分数据库时导致节点之间的工作负载不均衡而影响挖掘算法,使得各个节点之间的工作负载均衡,从而有效地提高了挖掘计算的速度。步骤S203可以包括三个子步骤S2031~S2033。在步骤S2031中,可以根据所确定的第一类项,从序列数据库的各个分区挖掘局部高效用序列模式。然后,在步骤S2032中,可以根据所挖掘的局部高效用序列模式确定至少一个候选的全局高效用序列模式。然后,在步骤S2033中,可以确定第一集合。步骤S2033也可以和步骤S2033同时执行。在本公开中,可以根据所确定的第一类项,从各个任务挖掘局部高效用序列模式。这些局部高效用序列模式中的一部分序列模式可能为全局高效用序列模式,另一部分序列模式可能不是全局高效用序列模式。可以将该另一部分序列模式作为候选的全局高效用序列模式。下面将描述在步骤S2031中从序列数据库的每个分区挖掘局部高效用序列模式的过程。具体地,对于每个分区包括的各个序列中属于第一类项的一个项,计算该项在各个序列中的效用值和剩余效用值,构建该项在各个序列中的效用列表utilitylist,根据该项在各个序列中的效用列表确定该项的效用值链;根据该分区中各个项的效用值链utilitychain,从该分区挖掘局部高效用序列模式。在本公开中,项在一个序列中的剩余效用值可以是该序列中、该项之后的所有项的效用值之和。此外,项在一个序列中的效用列表可以包括序列的标识信息可表示为sid、项所在的各个项集的标识信息可表示为tid、该各个项集中的该项在序列中的效用值可表示为acu和剩余效用值可表示为ru、以及从一个项集指向下一个项集的指示信息例如,指针可表示为next。此外,项的效用值链可以包括项在各个序列的效用列表。下面给出项在一个序列中的效用列表的一个示例。假设一个分区包括表1所示的序列s1~s5,项a属于第一类项,则对于序列s1,可以确定序列的标识信息为1。此外,项a出现在序列s1的第1个项集,因此,确定第1个项集中的项a在序列s1中的效用值和剩余效用值,分别为10和84。由于项a还出现在序列s1的第2个项集,因此,确定第2个项集中的项a在序列s1中的效用值和剩余效用值,分别为15和57。由于项a还出现在序列s1的第3个项集,因此,确定第3个项集中的项a在序列s1中的效用值和剩余效用值,分别为20和26。因此,可以构建项a在序列s1中的效用列表。图3示出了项a在序列s1中的效用列表的示意图。如图3所示,第一组数据1,1,10,84中的第1个“1”表示序列s1,第2个“1”表示序列s1的第1个项集,“10”表示第1个项集中的项a在序列s1中的效用值,“84”表示第1个项集中的项a在序列s1中的剩余效用值。第二组数据1,2,15,57中的“1”表示序列s1,“2”表示序列s1的第2个项集,“15”表示第2个项集中的项a在序列s1中的效用值,“57”表示第2个项集中的项a在序列s1中的剩余效用值。第三组数据1,3,20,26中的“1”表示序列s1,“3”表示序列s1的第3个项集,“20”表示第3个项集中的项a在序列s1中的效用值,“26”表示第3个项集中的项a在序列s1中的剩余效用值。图3中的黑色箭头表示从一个项集指向下一个项集的指针。下面给出项的效用值链的一个示例。在上面的示例中,类似地,可以确定项a在序列s2~s5中的效用列表。然后,可以根据项a在序列s1~s5中的效用列表确定项a的效用值链。图4示出了项a的效用值链的示意图。如图4所示,项a的效用值链包括项a在序列s1中的效用列表、项a在序列s2中的效用列表、项a在序列s3中的效用列表、项a在序列s4中的效用列表、以及项a在序列s5中的效用列表。类似地,可以确定每个分区包括的各个序列中属于第一类项的各个项的效用值链。然后,可以根据该分区中各个项的效用值链,从该分区挖掘局部高效用序列模式。例如,可以将该分区中的各个项和各个项的效用值链作为传统的高效用序列模式算法例如,HUS-Span算法的输入,并通过该算法输出与该分区对应的一个或多个局部高效用序列模式。此外,通过该算法还可以输出每个局部高效用序列模式在相应序列中的效用值以及序列的标识信息。可以将该算法的输出表示为键值对pattern,{sid,utility},其中pattern表示局部高效用序列模式,sid表示包含局部高效用序列模式的序列的标识,utility表示局部高效用序列模式在相应序列中的效用值。上述关于步骤S2031的操作可以由第二阶段MapReduce中的Mapper来进行。例如,序列数据库的多个分区可以分别由第二阶段MapReduce中的多个Mapper处理,从而各个Mapper可以从与其对应的分区挖掘局部高效用序列模式。在这种情形下,上面所描述的算法输出可以是Mapper的输出。也就是说,对于序列数据库的一个分区,与该分区对应的Mapper的输出为一个或多个键值对pattern,{sid,utility},其中该一个或多个pattern是从该分区挖掘的一个或多个局部高效用序列模式。在步骤S2031之后,在步骤S2032中,可以根据所挖掘的局部高效用序列模式确定至少一个候选的全局高效用序列模式。例如,可以将多个Mapper的输出中、键值相同的键值对输入至第二阶段MapReduce中的一个Reducer中。也就是说,将多个Mapper的输出中、与同一个pattern对应的多个键值对,例如,与patternx对应的多个键值对patternx,{sid,utility},输入至一个Reducer中。该Reducer可以确定与patternx对应的多个效用值的加和,并根据该加和和第一阈值,来确定patternx是否为全局高效用序列模式。如果该加和大于或等于第一阈值,则确定patternx是全局高效用序列模式。如果该加和小于第一阈值,则确定patternx不是全局高效用序列模式,而是候选的全局高效用序列模式。此外,每个Reducer可以将输出一个或多个新的键值对,每个新的键值对可以由一个候选的全局高效用模式、与该候选的高效用序列模式对应的序列的标识、以及该候选的高效用序列模式在序列中的效用值构成。例如,该新的键值对可以表示为sid,pattern,utility,即更改了Mapper输出的键值对的形式。可以根据第二阶段MapReduce中的多个Reducer的输出来确定步骤S2032中的“至少一个候选的全局高效用序列模式”。例如,可以根据第二阶段MapReduce中的多个Reducer输出的键值对中的序列模式来确定步骤S2032中的“至少一个候选的全局高效用序列模式”。例如,多个Reducer的输出可以为s1,pattern1,utility1、s2,pattern1,utility1、s3,pattern2,utility2、s3,pattern1,utility1、s4,pattern2,utility2,则步骤S2032中的“至少一个候选的全局高效用序列模式”可以为pattern1和pattern2。此外,在步骤S2032之后,在步骤S2033中,可以确定第一集合。例如,可以根据第二阶段MapReduce中的多个Reducer的输出,确定第一集合。第一集合可以包括所述至少一个候选的全局高效用序列模式、包括各个候选的全局高效用序列模式的序列的标识以及各个候选的全局高效用序列模式在相应序列中的效用值。例如,第一集合可以包括多个子集合,每个子集合包括序列的标识、该序列包括的候选的全局高效用序列模式、以及该序列所包括的候选的全局高效用序列模式在该序列中的效用值。例如,第二阶段MapReduce中的多个Reducer的输出可以为s1,pattern1,utility1、s2,pattern1,utility1、s3,pattern2,utility2、s3,pattern1,utility1、s4,pattern2,utility2,则第一集合可以包括四个子集合,其中第1个子集合为s1,pattern1,utility1,第2个子集合为s2,pattern1,utility1,第3个子集合为S3,pattern2,utility2,pattern1,utility1,第4个子集合为s4,pattern2,utility2。可以理解,通过第一集合这种数据结构,可以加快候选的全局高效用序列模式的效用值的计算。具体地,如果,序列包括一个候选的全局高效用序列模式,则该候选的全局高效用序列模式的效用值可以直接从第一集合获得,而不需要再次计算它的效用值,因为重复计算会花费很多时间。在上面的示例中,没有为第二阶段MapReduce中的Mapper配置相应的组合模块。然而,本公开不限于此。例如,也可以为第二阶段MapReduce中的Mapper配置相应的组合模块。返回图2,在步骤S204中,根据各个序列的效用值链表和所述第一集合,从所述至少一个候选的全局高效用序列模式挖掘全局高效用序列模式。步骤S204可以由上面所描述的整合部分130即第三阶段MapReduce来进行。下面将结合图5来具体描述步骤S204。图5是根据本公开实施例的从至少一个候选的全局高效用序列模式挖掘全局高效用序列模式的方法500的流程图。如图5所示,在步骤S501中,可以根据各个序列的效用值链表和所述第一集合,确定各个候选的全局高效用序列模式的局部效用值。具体地,可以将至少一个候选的全局高效用序列模式和第一集合作为第三阶段MapReduce中的多个Mapper的输入。例如,可以将至少一个候选的全局高效用序列模式划分为多组,然后将多组分别输入多个Mapper。此外,可以将第一集合输入每个Mapper。然后,每个Mapper可以确定与其对应的多个候选的全局高效用序列模式中的每个候选的全局高效用序列模式的效用值。例如,对于与一个Mapper对应的多个候选的全局高效用序列模式中的一个候选的全局高效用序列模式,可以通过Mapper判断第一集合是否包括该候选的全局高效用序列模式。当第一集合包括该候选的全局高效用序列模式时,可以根据第一集合确定该候选的全局高效用序列模式的效用值。此外,当第一集合不包括该候选的全局高效用序列模式时,可以根据序列的效用值链表来确定该候选的全局高效用序列模式的效用值。这是由于,当已经计算出候选的全局高效用序列模式的效用值时,可以通过查询包括该候选的全局高效用序列模式的序列的sidset而直接获得该候选的全局高效用序列模式的效用值。然而,当没有计算出候选的全局高效用序列模式的效用值时,需要检查其是否在特定序列出现。如果出现这种情形,需要按照该特定序列计算候选的全局高效用序列模式的效用值。需要注意的是,该操作的计算是耗时的,因为需要扫描该特定序列,并且候选的全局高效用序列模式在该特定序列中可能存在多个匹配。因此,需要多次扫描该特定序列,以找到最大匹配作为候选的全局高效用序列模式在该特定序列中的效用值。因此,要完成挖掘任务,必须对整个序列数据库进行多次扫描。本公开提出的序列的效用值链表,是个紧凑的数据结构,适用于处理大数据问题。下面将结合具体示例来描述根据序列的效用值链表来确定候选的全局高效用序列模式的效用值的示例。例如,可以根据上述表2所示出的序列s1的效用值链表来确定候选的全局高效用序列模式的效用值。具体地,由于项a和项c处于同一项集,因此,可以根据项c的出现的位置找到所有a、c出现的位置,即第一个位置1,2且效用值为22,以及第二个位置3,5且效用值为23。对于项a、c满足的第一个位置1,2,可以找到项b满足的所有位置,即4和7,则可以计算项a、c、b合起来的效用值为22+3=25、以及22+15=37。对于项a、c满足的第二个位置3,5,可以找到项b满足的所有位置,即7,则可以计算项a、c、b合起来的效用值为23+15=38。因此,序列模式的效用值为max{25,37,38}=38。在本公开中,第三阶段MapReduce中的每个Mapper可以输出一个或多个新的键值对,其中每个新的键值对可以由一个候选的全局高效用序列模式和其效用值构成。例如,该新的键值对可以表示为pattern,utility。此外,同一个Mapper可能输出与同一个候选的全局高效用序列模式对应的多个键值对pattern,utility。例如,对于候选的全局高效用序列模式patterny,同一个Mapper可能输出两个键值对,分别为patterny,utility1和patterny,utility2。这两个键值对也可以表示为patterny,Gu,其中Gu是包括utility1和utility2的集合。此外,在这种情形下,可以给每个Mapper配置一个组合模块例如可以称为combiner,以确定同一个候选的全局高效用序列模式的局部效用值。具体地,同一个候选的全局高效用序列模式的局部效用值可以是根据与该候选的全局高效用序列模式对应的多个键值对中的效用值确定的。例如,同一个候选的全局高效用序列模式的局部效用值可以是与该候选的全局高效用序列模式对应的多个键值对中的效用值的加和。例如,对于候选的全局高效用序列模式patterny,同一个Mapper可能输出两个键值对,分别为patterny,utility1和patterny,utility2,则对于候选的全局高效用序列模式patterny的局部效用值local~utility为utility1+utility2。在本公开中,组合模块也可以输出一个或多个新的键值对,其中每个新的键值对可以由一个候选的全局高效用序列模式和其局部效用值构成。例如,该新的键值对可以表示为pattern,local-utility。在候选的全局高效用序列模式为patterny的示例中,该组合模式可以输出键值对patterny,utility1+utility2。返回图5,在步骤S502中,可以根据各个候选的全局高效用序列模式的局部效用值,确定各个候选的全局高效用序列模式的全局效用值。例如,对于每个候选的全局高效用序列模式,可以根据该候选的全局高效用序列模式的多个局部效用值,来确定该候选的全局高效用序列模式的全局效用值。例如,可以将该候选的全局高效用序列模式的多个局部效用值的加和,作为该候选的全局高效用序列模式的全局效用值。具体地,可以将多个组合模块的输出中、键值相同的键值对输入至第三阶段MapReduce中的一个Reducer中。也就是说,将多个组合模块的输出中、与同一个候选的全局高效用序列模式对应的多个键值对,例如,与候选的全局高效用序列模式patterny对应的多个键值对,输入至一个Reducer中。该Reducer可以将这多个键值对中的局部效用值的加和,作为候选的全局高效用序列模式的全局效用值global-utility。然后,在步骤S503中,可以将全局效用值大于第一阈值的序列模式确定为全局高效用序列模式。例如,第三阶段MapReduce中的各个Reducer可以将全局效用值高于或等于第一阈值的序列模式确定为全局高效用序列模式。每个Reducer可以输出一个或多个新的键值对,其中每个新的键值对可以由一个全局高效用序列模式和该全局高效用序列模式的全局效用值构成。例如,当patterny是全局高效用序列模式时,某个Reducer可以输出键值对patterny,global-utility。因此,第三阶段MapReduce中的各个Reducer输出的键值对中的序列模式均为全局高效用序列模式。通过本实施例提供的挖掘全局高效用序列模式的方法,确定了序列数据库中各个序列的效用值链表和第一集合,并根据这两种数据结构来挖掘全局高效用序列模式,节省了大量时间,加快了在序列数据库中计算全局效用值的计算过程,加快了挖掘速度,降低了时间复杂度。以下,参照图6来描述根据本公开实施例的与图2所示的方法对应的装置。图6示出了根据本公开实施例的用于挖掘全局高效用序列模式的装置600的结构示意图。由于装置600的功能与在上文中参照图2描述的方法的细节相同,因此在这里为了简单起见,省略对相同内容的详细描述。如图6所示,装置600包括:第一确定单元610,被配置为确定序列数据库中的第一类项,其中第一类项是全局序列权重效用值高于第一阈值的项;第二确定单元620,被配置为确定序列数据库中各个序列的效用值链表;第一挖掘单元630,被配置为根据所确定的第一类项,从序列数据库挖掘至少一个候选的全局高效用序列模式并确定第一集合,其中所述第一集合包括所述至少一个候选的全局高效用序列模式、包括各个候选的全局高效用序列模式的序列的标识以及各个候选的全局高效用序列模式在相应序列中的效用值;以及第二挖掘单元640,被配置为根据各个序列的效用值链表和所述第一集合,从所述至少一个候选的全局高效用序列模式中挖掘全局高效用序列模式。除了这四个单元以外,装置600还可以包括其他部件,然而,由于这些部件与本公开实施例的内容无关,因此在这里省略其图示和描述。第一确定单元610可以确定序列数据库中各个项的全局序列权重效用值,并将全局序列权重效用值高于第一阈值的项确定为第一类项。第一确定单元610可以是上面所描述的识别部分110即第一阶段MapReduce。下面将描述第一确定单元610确定序列数据库中每个项的全局序列权重效用值的过程。根据本公开的一个示例,对于序列数据库中的每个项,第一确定单元610可以首先确定该项在序列数据库的各个分区的局部序列权重效用值LocalSequenceWeightUtility,LSWU,然后根据所确定的局部序列权重效用值确定该项的全局序列权重效用值。例如,首先,第一确定单元610可以将序列数据库划分为多个分区,并将该多个分区分配给第一阶段MapReduce中的多个Mapper。例如,可以将序列数据库划分为n个分区,并且将第1个分区分配给第一阶段MapReduce中的Mapper1,......,将第k个分区分配给第一阶段MapReduce中的Mapperk,......,将第n个分区分配给第一阶段MapReduce中的Mappern,其中1≤k≤n且为正整数。然后,对于第k个分区中的每个序列,Mapperk可以确定该序列的效用值。例如,Mapperk可以按照传统的计算序列的效用值的方法来确定该序列的效用值。例如,序列的效用值可以为组成该序列的各个项集在该序列中的效用值的加和。在本公开中,序列sl的效用值可以表示为usl。然后,对于该序列中的每个项,Mapperk可以生成键值对,并且该键值对可以由该项和该序列的效用值构成。例如,对于序列sl中的项i,Mapperk可以生成键值对i,usl。由此可见,序列的序列标识和该序列的内容可以作为一个键值对输入Mapperk,然后,Mapperk输出一个或多个新的键值对。此外,由于每个分区中的不同序列可能包含同一个项,因此,对于这些不同序列中的同一个项,Mapper可以生成多个键值对。在这种情形下,可以给每个Mapper配置一个组合模块例如可以称为combiner,以确定同一个项在每个分区的局部序列权重效用值。具体地,该项在序列数据库的每个分区的局部序列权重效用值可以是根据该分区中包括该项的序列的效用值确定的。例如,该项在序列数据库的每个分区的局部序列权重效用值可以是该分区中包括该项的序列的效用值之和。由此可见,Mapperk输出的键值对可以作为与该Mapperk对应的组合模块的输入,然后该组合模块生成新的键值对。该新的键值对可以由项和该项在第k个分区的局部序列权重效用值构成。例如,对于项i,与Mapperk对应的组合模块可以生成键值对i,LSWUi-k。在项i为项a的示例中,与Mapperk对应的组合模块可以输出键值对a,LSWUa-k。通过上面的方式,第一确定单元610可以确定每个项在序列数据库的各个分区的局部序列权重效用值。在确定了每个项在序列数据库的各个分区的局部序列权重效用值之后,第一确定单元610可以根据所确定的局部序列权重效用值确定该项的全局序列权重效用值。例如,可以将每个项在序列数据库的各个分区的局部序列权重效用值之和,作为该项的全局序列权重效用值。具体地,可以将多个组合模块的输出中、键值相同的键值对输入至第一阶段MapReduce中的一个Reducer中。也就是说,将多个组合模块的输出中、与同一个项对应的多个键值对,例如,与项i对应的多个键值对i,LSWUi-k,输入至一个Reducer中。该Reducer可以将这多个键值对中的局部序列权重效用值的加和,作为项i的全局序列权重效用值GSWUi。至此,已经描述了确定序列数据库中每个项的全局序列权重效用值的过程。在确定了序列数据库中每个项的全局序列权重效用值之后,第一阶段MapReduce中的各个Reducer可以将全局序列权重效用值高于或等于第一阈值的项确定为第一类项。每个Reducer可以输出一个或多个新的键值对,其中每个新的键值对可以由一个第一类项和该第一类项的全局序列权重效用值构成。例如,当项i是第一类项时,某个Reducer可以输出键值对i,GSWUi。根据本公开的一个示例,对于序列数据库中的一个序列,第二确定单元620可以根据该序列中各个项的效用值和各个项在该序列中的位置,确定该序列的效用值链表。项的效用值可以是项的内部效用值和外部效用值的乘积。各个项在序列中的位置可以包括各个项的初始位置和相邻位置,其中项的初始位置可以是项在序列中第一次出现的位置,相邻位置可以是项在序列中下一次出现的位置。此外,一个序列的效用值链表可以包括两行,其中第一行可以是关于各个项的效用值和相邻位置的信息可以简称为UtilityPositionInformation,UPinformation,第二行可以是关于序列中的非重复项的初始位置的信息可以简称为HeaderTable。第二行可以包括非重复项和各个非重复项的初始位置。可以理解,序列的效用值链表是通过对原始数据库中的序列进行转换和扩展而形成的,其记录了关于原始数据库的信息和需要被计算的公共信息。通过序列的效用值链表,可以提高序列模式的计算速度。这是由于,目标序列模式在单个事务中可能有多个匹配项,因此,计算事务中序列模式的效用值需要查找所有匹配项,然后取最大效用值。效用值链表记录了事务中项的下一个位置,因此,不需要多次扫描事务,而只要连续搜索项的下一个位置就可以计算事务中序列模式的最大效用值。在本公开中,第一挖掘单元630可以是上面所描述的局部挖掘部分120即第二阶段MapReduce。根据本公开的一个示例,装置600还可以包括负载分配单元图中未示出,被配置为将序列数据库中的序列分配到多个任务task中。任务的数量可以表示为m,其中m为正整数。例如,m可以为第二阶段MapReduce中的Mapper的数量的倍数。在下面的示例中,以m等于第二阶段MapReduce中的Mapper的数量为例来描述本公开。在该示例中,负载分配单元可以根据负载均衡算法将序列数据库中的序列划分为多个分区。例如,可以根据负载均衡算法将序列数据库中的序列分配到多个任务中。具体地,对于序列数据库中的一个序列,可以确定该序列包括的第一类项的数量Num。然后,从多个任务中选择具有最小工作负载的任务p,并将该序列分配到该任务p,同时根据该序列包括的第一类项的数量来更新该任务p的工作负载。例如,第p个任务的工作负载可以表示为WLp,当一个序列被分配给该任务后,该任务的工作负载由WLp更新为WLp+Num。此外,在该示例中,算法可以将每个任务的工作负载初始化为0。因此,在算法的第一次迭代中,由于每个任务的工作负载均为0,因此,对于序列数据库中的一个序列,可以从多个任务中随机选择一个任务,并将该序列分配到该任务。例如,可以从多个任务中选择第1个任务,并将该序列分配到第1个任务。此外,这里所描述的“任务”也可以称为任务文件taskfile。下文中,可以替换地使用任务和任务文件。在本公开中,第一挖掘单元630可以根据所确定的第一类项,从序列数据库的各个分区挖掘局部高效用序列模式。然后,第一挖掘单元630可以根据所挖掘的局部高效用序列模式确定至少一个候选的全局高效用序列模式。然后,第一挖掘单元630可以确定第一集合。在本公开中,可以根据所确定的第一类项,从各个任务挖掘局部高效用序列模式。这些局部高效用序列模式中的一部分序列模式可能为全局高效用序列模式,另一部分序列模式可能不是全局高效用序列模式。可以将该另一部分序列模式作为候选的全局高效用序列模式。下面将描述第一挖掘单元630从序列数据库的每个分区挖掘局部高效用序列模式的过程。具体地,对于每个分区包括的各个序列中属于第一类项的一个项,计算该项在各个序列中的效用值和剩余效用值,构建该项在各个序列中的效用列表utilitylist,根据该项在各个序列中的效用列表确定该项的效用值链;根据该分区中各个项的效用值链utilitychain,从该分区挖掘局部高效用序列模式。在本公开中,项在一个序列中的剩余效用值可以是该序列中、该项之后的所有项的效用值之和。此外,项在一个序列中的效用列表可以包括序列的标识信息可表示为sid、项所在的各个项集的标识信息可表示为tid、该各个项集中的该项在序列中的效用值可表示为acu和剩余效用值可表示为ru、以及从一个项集指向下一个项集的指示信息例如,指针可表示为next。此外,项的效用值链可以包括项在各个序列的效用列表。类似地,可以确定每个分区包括的各个序列中属于第一类项的各个项的效用值链。然后,可以根据该分区中各个项的效用值链,从该分区挖掘局部高效用序列模式。例如,可以将该分区中的各个项和各个项的效用值链作为传统的高效用序列模式算法的输入,并通过该算法输出与该分区对应的一个或多个局部高效用序列模式。此外,通过该算法还可以输出每个局部高效用序列模式在相应序列中的效用值以及序列的标识信息。可以将该算法的输出表示为键值对pattern,{sid,utility},其中pattern表示局部高效用序列模式,sid表示包含局部高效用序列模式的序列的标识,utility表示局部高效用序列模式在相应序列中的效用值。上述操作可以由第二阶段MapReduce中的Mapper来进行。例如,序列数据库的多个分区可以分别由第二阶段MapReduce中的多个Mapper处理,从而各个Mapper可以从与其对应的分区挖掘局部高效用序列模式。在这种情形下,上面所描述的算法输出可以是Mapper的输出。也就是说,对于序列数据库的一个分区,与该分区对应的Mapper的输出为一个或多个键值对pattern,{sid,utility},其中该一个或多个pattern是从该分区挖掘的一个或多个局部高效用序列模式。然后,第一挖掘单元630可以根据所挖掘的局部高效用序列模式确定至少一个候选的全局高效用序列模式。例如,可以将多个Mapper的输出中、键值相同的键值对输入至第二阶段MapReduce中的一个Reducer中。也就是说,将多个Mapper的输出中、与同一个pattern对应的多个键值对,例如,与patternx对应的多个键值对patternx,{sid,utility},输入至一个Reducer中。该Reducer可以确定与patternx对应的多个效用值的加和,并根据该加和和第一阈值,来确定patternx是否为全局高效用序列模式。如果该加和大于或等于第一阈值,则确定patternx是全局高效用序列模式。如果该加和小于第一阈值,则确定patternx不是全局高效用序列模式,而是候选的全局高效用序列模式。此外,每个Reducer可以将输出一个或多个新的键值对,每个新的键值对可以由一个候选的全局高效用模式、与该候选的高效用序列模式对应的序列的标识、以及该候选的高效用序列模式在序列中的效用值构成。例如,该新的键值对可以表示为sid,pattern,utility,即更改了Mapper输出的键值对的形式。可以根据第二阶段MapReduce中的多个Reducer的输出来确定“至少一个候选的全局高效用序列模式”。例如,可以根据第二阶段MapReduce中的多个Reducer输出的键值对中的序列模式来确定步骤S2032中的“至少一个候选的全局高效用序列模式”。例如,多个Reducer的输出可以为s1,pattern1,utility1、s2,pattern1,utility1、s3,pattern2,utility2、S3,pattern1,utility1、s4,pattern2,utility2,则步骤S2032中的“至少一个候选的全局高效用序列模式”可以为pattern1和pattern2。此外,第一挖掘单元630可以确定第一集合。例如,可以根据第二阶段MapReduce中的多个Reducer的输出,确定第一集合。第一集合可以包括所述至少一个候选的全局高效用序列模式、包括各个候选的全局高效用序列模式的序列的标识以及各个候选的全局高效用序列模式在相应序列中的效用值。例如,第一集合可以包括多个子集合,每个子集合包括序列的标识、该序列包括的候选的全局高效用序列模式、以及该序列所包括的候选的全局高效用序列模式在该序列中的效用值。例如,第二阶段MapReduce中的多个Reducer的输出可以为s1,pattern1,utility1、s2,pattern1,utility1、s3,pattern2,utility2、s3,pattern1,utility1、s4,pattern2,utility2,则第一集合可以包括四个子集合,其中第1个子集合为s1,pattern1,utility1,第2个子集合为s2,pattern1,utility1,第3个子集合为s3,pattern2,utility2,pattern1,utility1,第4个子集合为s4,pattern2,utility2。在上面的示例中,没有为第二阶段MapReduce中的Mapper配置相应的组合模块。然而,本公开不限于此。例如,也可以为第二阶段MapReduce中的Mapper配置相应的组合模块。此外,在本公开中,第二挖掘单元640可以是上面所描述的整合部分130即第三阶段MapReduce。第二挖掘单元640可以根据各个序列的效用值链表和所述第一集合,确定各个候选的全局高效用序列模式的局部效用值。具体地,可以将至少一个候选的全局高效用序列模式和第一集合作为第三阶段MapReduce中的多个Mapper的输入。例如,可以将至少一个候选的全局高效用序列模式划分为多组,然后将多组分别输入多个Mapper。此外,可以将第一集合输入每个Mapper。然后,每个Mapper可以确定与其对应的多个候选的全局高效用序列模式中的每个候选的全局高效用序列模式的效用值。例如,对于与一个Mapper对应的多个候选的全局高效用序列模式中的一个候选的全局高效用序列模式,可以通过Mapper判断第一集合是否包括该候选的全局高效用序列模式。当第一集合包括该候选的全局高效用序列模式时,可以根据第一集合确定该候选的全局高效用序列模式的效用值。此外,当第一集合不包括该候选的全局高效用序列模式时,可以根据序列的效用值链表来确定该候选的全局高效用序列模式的效用值。在本公开中,第三阶段MapReduce中的每个Mapper可以输出一个或多个新的键值对,其中每个新的键值对可以由一个候选的全局高效用序列模式和其效用值构成。例如,该新的键值对可以表示为pattern,utility。此外,同一个Mapper可能输出与同一个候选的全局高效用序列模式对应的多个键值对pattern,utility。例如,对于候选的全局高效用序列模式patterny,同一个Mapper可能输出两个键值对,分别为patterny,utility1和patterny,utility2。这两个键值对也可以表示为patterny,Gu,其中Gu是包括utility1和utility2的集合。此外,在这种情形下,可以给每个Mapper配置一个组合模块例如可以称为combiner,以确定同一个候选的全局高效用序列模式的局部效用值。具体地,同一个候选的全局高效用序列模式的局部效用值可以是根据与该候选的全局高效用序列模式对应的多个键值对中的效用值确定的。例如,同一个候选的全局高效用序列模式的局部效用值可以是与该候选的全局高效用序列模式对应的多个键值对中的效用值的加和。例如,对于候选的全局高效用序列模式patterny,同一个Mapper可能输出两个键值对,分别为patterny,utility1和patterny,utility2,则对于候选的全局高效用序列模式patterny的局部效用值local-utility为utility1+utility2。在本公开中,组合模块也可以输出一个或多个新的键值对,其中每个新的键值对可以由一个候选的全局高效用序列模式和其局部效用值构成。例如,该新的键值对可以表示为pattern,local-utility。在候选的全局高效用序列模式为patterny的示例中,该组合模式可以输出键值对patterny,utility1+utility2。然后,第二挖掘单元640可以根据各个候选的全局高效用序列模式的局部效用值,确定各个候选的全局高效用序列模式的全局效用值。例如,对于每个候选的全局高效用序列模式,可以根据该候选的全局高效用序列模式的多个局部效用值,来确定该候选的全局高效用序列模式的全局效用值。例如,可以将该候选的全局高效用序列模式的多个局部效用值的加和,作为该候选的全局高效用序列模式的全局效用值。具体地,可以将多个组合模块的输出中、键值相同的键值对输入至第三阶段MapReduce中的一个Reducer中。也就是说,将多个组合模块的输出中、与同一个候选的全局高效用序列模式对应的多个键值对,例如,与候选的全局高效用序列模式patterny对应的多个键值对,输入至一个Reducer中。该Reducer可以将这多个键值对中的局部效用值的加和,作为候选的全局高效用序列模式的全局效用值global-utility。然后,第二挖掘单元640可以将全局效用值大于第一阈值的序列模式确定为全局高效用序列模式。例如,第三阶段MapReduce中的各个Reducer可以将全局效用值高于或等于第一阈值的序列模式确定为全局高效用序列模式。每个Reducer可以输出一个或多个新的键值对,其中每个新的键值对可以由一个全局高效用序列模式和该全局高效用序列模式的全局效用值构成。例如,当patterny是全局高效用序列模式时,某个Reducer可以输出键值对patterny,global-utility。因此,第三阶段MapReduce中的各个Reducer输出的键值对中的序列模式均为全局高效用序列模式。通过本实施例提供的挖掘全局高效用序列模式的装置,确定了序列数据库中各个序列的效用值链表和第一集合,并根据这两种数据结构来挖掘全局高效用序列模式,节省了大量时间,加快了在序列数据库中计算全局效用值的计算过程,加快了挖掘速度,降低了时间复杂度。此外,根据本公开实施例的装置也可以借助于图7所示的计算设备的架构来实现。图7示出了该计算设备的架构。如图7所示,计算设备700可以包括总线710、一个或多个CPU720、只读存储器ROM730、随机存取存储器RAM740、连接到网络的通信端口750、输入输出组件760、硬盘770等。计算设备700中的存储设备,例如ROM730或硬盘770可以存储计算机处理和或通信使用的各种数据或文件以及CPU所执行的程序指令。计算设备700还可以包括用户界面780。当然,图7所示的架构只是示例性的,在实现不同的设备时,根据实际需要,可以省略图7示出的计算设备中的一个或多个组件。本公开的实施例也可以被实现为计算机可读存储介质。根据本公开实施例的计算机可读存储介质上存储有计算机可读指令。当所述计算机可读指令由处理器运行时,可以执行参照以上附图描述的根据本公开实施例的方法。所述计算机可读存储介质包括但不限于例如易失性存储器和或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器RAM和或高速缓冲存储器cache等。所述非易失性存储器例如可以包括只读存储器ROM、硬盘、闪存等。本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。此外,如本公开和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和或“该”等词并非特指单数,也可包括复数。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。此外,本公开中使用了流程图用来说明根据本公开的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。除非另有定义,这里使用的所有术语包括技术和科学术语具有与本发明所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。以上对本公开进行了详细说明,但对于本领域技术人员而言,显然,本公开并非限定于本说明书中说明的实施方式。本公开在不脱离由权利要求书的记载所确定的本公开的宗旨和范围的前提下,可以作为修改和变更方式来实施。因此,本说明书的记载是以示例说明为目的,对本公开而言并非具有任何限制性的意义。

权利要求:1.一种用于挖掘全局高效用序列模式的方法,包括:确定序列数据库中的第一类项,其中第一类项是全局序列权重效用值高于第一阈值的项;确定所述序列数据库中各个序列的效用值链表;根据所确定的第一类项,从所述序列数据库挖掘至少一个候选的全局高效用序列模式并确定第一集合,其中所述第一集合包括所述至少一个候选的全局高效用序列模式、包括各个候选的全局高效用序列模式的序列的标识以及各个候选的全局高效用序列模式在相应序列中的效用值;以及根据各个序列的效用值链表和所述第一集合,从所述至少一个候选的全局高效用序列模式中挖掘全局高效用序列模式。2.如权利要求1所述的方法,其中所述确定序列数据库中的第一类项包括:确定序列数据库中各个项的全局序列权重效用值;以及将全局序列权重效用值高于第一阈值的项确定为第一类项。3.如权利要求2所述的方法,其中确定序列数据库中每个项的全局序列权重效用值包括:确定该项在序列数据库的各个分区的局部序列权重效用值;以及根据所确定的局部序列权重效用值确定该项的全局序列权重效用值。4.如权利要求3所述的方法,其中该项在所述序列数据库的每个分区的局部序列权重效用值是根据该分区中包括该项的序列的效用值确定的。5.如权利要求1至4任一项所述的方法,其中所述确定序列数据库中每个序列的效用值链表包括:根据该序列中各个项的效用值和各个项在该序列中的位置,确定该序列的效用值链表。6.如权利要求1至4任一项所述的方法,其中所述根据所确定的第一类项,从所述序列数据库挖掘至少一个候选的全局高效用序列模式包括:根据所确定的第一类项,从所述序列数据库的各个分区挖掘局部高效用序列模式;以及根据所挖掘的局部高效用序列模式确定至少一个候选的全局高效用序列模式。7.如权利要求6所述的方法,其中根据所确定的第一类项,从所述序列数据库的每个分区挖掘局部高效用序列模式包括:对于该分区包括的各个序列中属于第一类项的一个项,计算该项在各个序列中的效用值和剩余效用值,其中该项在一个序列中的剩余效用值是该序列中、该项之后的所有项的效用值之和;构建该项在各个序列中的效用列表;根据该项在各个序列中的效用列表确定该项的效用值链;根据该分区中各个项的效用值链,从该分区挖掘局部高效用序列模式。8.如权利要求1至4任一项所述的方法,其中根据各个序列的效用值链表和所述第一集合,从所述至少一个候选的全局高效用序列模式挖掘全局高效用序列模式包括:根据各个序列的效用值链表和所述第一集合,确定各个候选的全局高效用序列模式的局部效用值;根据各个候选的全局高效用序列模式的局部效用值,确定各个候选的全局高效用序列模式的全局效用值;以及将全局效用值大于第一阈值的序列模式确定为全局高效用序列模式。9.如权利要求6所述的方法,还包括:根据负载均衡算法将所述序列数据库中的序列划分为多个分区。10.一种用于挖掘全局高效用序列模式的装置,包括:第一确定单元,被配置为确定序列数据库中的第一类项,其中第一类项是全局序列权重效用值高于第一阈值的项;第二确定单元,被配置为确定所述序列数据库中各个序列的效用值链表;第一挖掘单元,被配置为根据所确定的第一类项,从所述序列数据库挖掘至少一个候选的全局高效用序列模式并确定第一集合,其中所述第一集合包括所述至少一个候选的全局高效用序列模式、包括各个候选的全局高效用序列模式的序列的标识以及各个候选的全局高效用序列模式在相应序列中的效用值;以及第二挖掘单元,被配置为根据各个序列的效用值链表和所述第一集合,从所述至少一个候选的全局高效用序列模式中挖掘全局高效用序列模式。11.如权利要求10所述的装置,其中所述第一确定单元被配置为确定所述序列数据库中各个项的全局序列权重效用值;以及将全局序列权重效用值高于第一阈值的项确定为第一类项。12.如权利要求10或11所述的装置,其中所述第二确定单元被配置为根据每个序列中各个项的效用值和各个项在该序列中的位置,确定该序列的效用值链表。13.如权利要求10或11所述的装置,其中所述第二挖掘单元被配置为根据各个序列的效用值链表和所述第一集合,确定各个候选的全局高效用序列模式的局部效用值;根据各个候选的全局高效用序列模式的局部效用值,确定各个候选的全局高效用序列模式的全局效用值;以及将全局效用值大于第一阈值的序列模式确定为全局高效用序列模式。14.一种用于挖掘全局高效用序列模式的装置,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行权利要求1-9中任一项所述的方法。15.一种计算机可读存储介质,其上存储有指令,所述指令在被处理器执行时,使得所述处理器执行如权利要求1-9中任一项所述的方法。

百度查询: 哈尔滨工业大学(深圳);腾讯科技(深圳)有限公司 挖掘全局高效用序列模式的方法、装置及计算机存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。