一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种探索式服务组合中挖掘服务模式的方法及推荐系统与流程

2022-03-16 00:33:08 来源:中国专利 TAG:


1.本发明涉及数据挖掘领域,具体来说,涉及频繁模式挖掘方法,更具体地说,涉及一种探索式服务组合中挖掘服务模式的方法及推荐系统。


背景技术:

2.服务系统中细粒度原子服务难以满足日益复杂的用户需求,服务组合受到科研人员的持续关注。在科研协作、远程医疗、城市应急等应用领域问题求解的过程中,服务组合逻辑往往难以预先定义完备,需要在用户参与的过程中不断调整。支持边执行边构造的探索式服务组合应运而生。在探索式服务组合过程中,产生了大量的服务组合流程,如果充分利用这些历史数据,可增强服务组合流程的可重用性,提高服务组合的效率。
3.现有技术将服务模式挖掘抽象为频繁子图挖掘,其解决方式主要采用两种算法思想,分别是apriori算法思想和fp-growth算法思想。
4.其中,应用apriori算法思想的挖掘算法有agm算法及基于agm算法的改进算法,agm算法思路简单,以递归统计为基础,可挖掘出所有频繁子图,但对于大型数据库执行效率较低。agm算法的改进算法有fsg算法与acgm算法,执行效率较agm算法均有所提高。
5.fp-growth算法思想的算法思路是将数据压缩到频繁模式树中,存储项的关联关系,然后对模式树产生频繁集,由于其无需产生候选频繁集,因此执行效率高于apriori算法。基于这一算法思想的频繁子图挖掘算法包括gspan算法、ffsm算法等。其中gspan算法的最右路径扩展与频繁剪枝策略,大幅度降低了算法运行时间;ffsm算法在计算支持度时,只对与频繁子图具有同构关系的所有图进行扫描,提高了计算速度与效率,但其无法支持有向图的挖掘。
6.但是,以上现有技术仅关注成功服务模式的挖掘,尚未有对失败服务模式挖掘的研究,相应历史数据的价值没有得到充分发挥。如果将成功服务模式的挖掘方法直接运用于失败服务模式的挖掘,会造成不必要的时间与资源的浪费,原因是在流程轨迹中,只有一部分流程片段导致最终执行的失败,而非整个轨迹都是失败的。因此,有必要对现有技术进行改进。


技术实现要素:

7.因此,本发明的目的在于克服上述现有技术的缺陷,提供一种探索式服务组合中挖掘服务模式的方法及推荐系统。或者,也可以称一种用于探索式服务组合中挖掘服务模式的方法及用于探索式服务组合的服务推荐系统。探索式服务组合是指对服务组合流程以边执行、边探索方式进行构建的应用情景。由此,以发掘一些满足需求的服务组合流程。
8.本发明的目的是通过以下技术方案实现的:
9.根据本发明的第一方面,提供一种挖掘服务模式的方法,包括:获取数据集,其包括多个失败的服务组合流程,并且每个失败的服务组合流程带有用于区分成功点、调试点和失败点的标记;基于数据集中失败的服务组合流程及其标记,专注于对调试点和/或失败
点相关的服务模式进行挖掘,得到失败服务模式。
10.在本发明的一些实施例中,基于增量式挖掘的方式专注于对调试点和/或失败点相关的服务模式进行挖掘。
11.在本发明的一些实施例中,基于增量式挖掘的方式专注于对调试点和/或失败点相关的服务模式进行挖掘包括:将失败的服务组合流程转换为以节点和边表示的图数据,并且基于其对应的标记在所述图数据中标记成功点、调试点和失败点对应的节点;对连接到调试点和/或失败点的边计算支持度并进行最右路径扩展,得到当前挖掘的中间结果,中间结果包含多个dfs编码树及dfs编码树的每个节点的支持度;在当前没有已经挖掘得到的失败服务模式的情况下,当前挖掘的中间结果为首次挖掘的中间结果,从中提取大于等于最小支持度的dfs编码树的节点作为频繁子图,去重后得到失败服务模式。
12.在本发明的一些实施例中,基于增量式挖掘的方式专注于对调试点和/或失败点相关的服务模式进行挖掘包括:将失败的服务组合流程转换为以节点和边表示的图数据,并且基于其对应的标记在所述图数据中标记成功点、调试点和失败点对应的节点;对连接到调试点和/或失败点的边计算支持度并进行最右路径扩展,得到当前挖掘的中间结果,中间结果包含多个dfs编码树及dfs编码树的每个节点的支持度;在当前存有已经挖掘得到的失败服务模式的情况下,当前挖掘的中间结果为新增挖掘的中间结果,将新增挖掘的中间结果与历史挖掘的中间结果中的dfs编码树的节点求交集且其中dfs编码树的相同节点的支持度叠加,得到增量式挖掘得到的中间结果,从中提取大于等于最小支持度的dfs编码树的节点作为频繁子图,去重后用以更新原有的失败服务模式。
13.在本发明的一些实施例中,所述数据集包括多个成功的服务组合流程,所述方法还包括:基于所述多个成功的服务组合流程进行服务模式挖掘,得到成功服务模式。
14.根据本发明的第二方面,提供一种服务推荐的方法,包括:根据用户当前构建的服务组合流程以及多个候选的服务创建候选的服务组合流程;计算用户当前构建的服务组合流程与各候选的服务的语义匹配度,确定候选的服务组合流程中所含的成功服务模式以及第一方面的方法得到的失败服务模式;根据候选的服务组合流程所含的候选的服务的语义匹配度、所含的成功服务模式的支持度以及失败服务模式的支持度,计算该候选的服务组合流程的约束强度;根据所有候选的服务组合流程的约束强度,从多个候选的服务中确定推荐的服务。
15.在本发明的一些实施例中,服务推荐的方法中,所述约束强度为候选的服务组合流程所含的候选的服务的语义匹配度、所含的成功服务模式的支持度以及失败服务模式的支持度的加权和。
16.根据本发明的第三方面,提供一种用于探索式服务组合的服务推荐系统,包括:服务库,用于管理服务、服务组合流程以及服务模式,所述服务组合流程包含成功的服务组合流程和失败的服务组合流程,所述服务模式包含成功服务模式和失败服务模式;执行引擎模块,用于执行用户创建的服务组合流程并反馈运行结果;用户交互模块,用于为用户提供交互界面,该交互界面中支持用户在探索相应的服务组合流程的过程中对成功的服务组合流程和失败的服务组合流程进行标记并存储到所述服务库,其中,用户根据对应的运行结果在失败的服务组合流程添加指示其中成功点、失败点和调试点的标记;服务模式挖掘模块,用于从服务库获取包含服务组合流程的数据集,并执行第一方面的挖掘服务模式的方
法;服务推荐模块,用于执行第二方面所述的服务推荐的方法,并将推荐的服务发送给用户交互模块。
17.根据本发明的第四方面,提供一种电子设备,包括:一个或多个处理器;以及存储器,其中存储器用于存储可执行指令;所述一个或多个处理器被配置为经由执行所述可执行指令以实现第一方面和/或第二方面所述方法的步骤。
18.与现有技术相比,本发明的优点在于:
19.本发明获取数据集,其包括多个失败的服务组合流程,并且每个失败的服务组合流程带有用于区分成功点、调试点和失败点的标记;基于数据集中失败的服务组合流程及其标记,专注于对调试点和/或失败点相关的服务模式进行挖掘,得到失败服务模式,从而利用失败的服务组合流程中的标记,聚焦于挖掘失败相关的数据部分,忽略与失败无关的数据部分,可以大幅降低需要处理的数据量,减少挖掘失败服务模式所需的时间。
附图说明
20.以下参照附图对本发明实施例作进一步说明,其中:
21.图1为根据本发明实施例的用于探索式服务组合的服务推荐系统的系统示意图;
22.图2为根据本发明实施例的用于探索式服务组合的服务推荐系统的模块连接示意图;
23.图3为根据本发明实施例的探索服务组合流程的过程示意图;
24.图4为根据本发明实施例的挖掘服务模式的方法的流程示意图;
25.图5为根据本发明实施例的挖掘服务模式的方法进行失败服务模式挖掘的原理示意图;
26.图6为根据本发明实施例的挖掘服务模式的方法进行增量式失败服务模式挖掘的原理示意图;
27.图7为本发明与现有技术的服务推荐的方法的推荐示例;
28.图8为根据本发明实施例的minsup对运行时间的影响示意图。
29.图9为根据本发明实施例的minsup=10时轨迹数量对运行时间的影响示意图。
30.图10为根据本发明实施例的minsup=10时挖掘结果个数对运行时间的影响示意图。
31.图11为根据本发明实施例的minsup=6时轨迹数量对运行时间的影响示意图。
32.图12为根据本发明实施例的minsup=6时挖掘结果个数对运行时间的影响示意图。
33.图13为根据本发明实施例的minsup=13时轨迹数量对运行时间的影响示意图。
34.图14为根据本发明实施例的minsup=13时挖掘结果个数对运行时间的影响示意图。
具体实施方式
35.为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
36.如在背景技术部分提到的,现有技术仅关注成功服务模式的挖掘,尚未有对失败服务模式挖掘的研究,相应历史数据的价值没有得到充分发挥。发明人通过对探索式服务组合形成的服务组合流程进行分析总结,发现用户选择服务具有一定的共性,某些服务常常共同出现在一个服务组合流程中,这些固定搭配的服务往往以子片段的形式出现,表现出粒度大、复用性高等特征,相关研究将这种被高频使用的服务搭配称为服务模式。由于探索式服务组合流程的执行轨迹分为两种(执行成功、执行失败),而现有技术仅关注对执行成功轨迹对应的服务组合流程(即成功的服务组合流程)进行挖掘,然后基于挖掘出的服务模式(即成功服务模式)为用户进行后续推荐。但是,实际上,对失败轨迹对应的服务组合流程(失败的服务组合流程)进行挖掘得到的服务模式仍对推荐具有意义,而目前探索式服务组合流程的推荐并未有效利用相应的信息(即失败的服务组合流程和失败服务模式,现有技术中,失败的服务组合流程是不会存储的和利用的,更不会基于此挖掘失败服务模式)。而挖掘失败服务模式时,如果将成功服务模式的挖掘方法直接运用于失败服务模式的挖掘,会造成不必要的时间与资源的浪费,原因是在失败的流程轨迹中,只有一部分流程片段导致最终执行的失败,而非整个轨迹都是失败的。因此,本发明获取数据集,其包括多个失败的服务组合流程,并且每个失败的服务组合流程带有用于区分成功点、调试点和失败点的标记;基于数据集中失败的服务组合流程及其标记,专注于对调试点和/或失败点相关的服务模式进行挖掘,得到失败服务模式,从而利用失败的服务组合流程中的标记,聚焦于挖掘失败相关的数据部分,忽略与失败无关的数据部分,可以大幅降低需要处理的数据量,减少挖掘失败服务模式所需的时间。
37.根据本发明的一个实施例,参见图1,提供一种用于探索式服务组合的服务推荐系统,包括:服务库1、执行引擎模块2、用户交互模块3、服务模式挖掘模块4、服务推荐模块5。
38.根据本发明的一个实施例,服务库1,用于管理服务、服务组合流程以及服务模式。其中,为了挖掘失败的服务模式,本发明对记录的服务组合流程进行了区分,服务组合流程既包含成功的服务组合流程,又包含失败的服务组合流程。服务是指执行相应功能的业务任务的应用。服务组合流程是将多个服务按照一定执行顺序组合成的业务流程(也可称一种服务组合或者服务方案)。例如,用户在进行探索式服务组合的过程中,标记由服务a、b、c组合成的服务组合流程a
→b→
c为成功的服务组合流程,标记由服务a、b、c组合成的服务组合流程a
→c→
b为失败的服务组合流程,将成功的服务组合流程和失败的服务组合流程分别标记存储到服务库中,以便后续挖掘相应的服务模式(即一些频繁出现的模式,又称频繁模式,可以用于发现服务规律,或者用于改善推荐服务)。服务模式包含成功服务模式和失败服务模式。用户可以按需调整服务库中存储的服务、服务组合流程或者服务模式。
39.根据本发明的一个实施例,执行引擎模块2,用于执行用户创建的服务组合流程并反馈运行结果。例如,用户创建一个服务组合流程后,通过用户交互模块3确定执行,则执行引擎模块2对该服务组合流程进行执行,并反馈运行结果(又称服务运行结果),用户可以查看运行结果(比如是否有输出、输出的结果是否理想、是否有错误等),并对该服务组合流程进行标记。执行引擎模块2还可以提供流程解析、服务调用和异常处理等功能。其中,流程解析是指根据服务组合流程描述解析得到流程结构信息,驱动流程执行;服务调用是指当执行到流程中服务节点时,调用此节点对应的服务,得到服务执行结果;异常处理用于对流程执行过程中出现的异常情况进行处理和/或报告。
40.根据本发明的一个实施例,用户交互模块3,用于为用户提供交互界面。该交互界面中支持用户在探索相应的服务组合流程的过程中对成功的服务组合流程和失败的服务组合流程进行标记并存储到所述服务库,其中,用户根据对应的运行结果在失败的服务组合流程添加用于指示其中成功点、失败点和调试点的标记。例如,用户可以标记调试点,根据流程结构查找下游节点而得到失败点,其余为成功点,即:默认当前的服务组合流程中调试点后的点为失败点,调试点前的点为成功点。又或者,另一种实施方式下,用户可以标记调试点和失败点,其余为成功点,如:服务组合流程a
→c→
b执行后,如果用户发现输出有错误,确定服务a为成功点,问题可能出在c

b,则将与成功点相邻的点c标记为调试点,点b标记为失败点。
41.根据本发明的一个实施例,服务模式挖掘模块4,用于从服务库1获取包含服务组合流程的数据集,并执行一种挖掘服务模式的方法,所述挖掘服务模式的方法用于基于成功的服务组合流程挖掘成功服务模式,以及基于失败的服务组合流程挖掘失败服务模式。
42.根据本发明的一个实施例,服务推荐模块5,用于执行一种服务推荐的方法,得到并将推荐的服务发送给用户交互模块3。由此,可以更好地为用户提供相应的服务,使用户更准确、高效地得到所需的服务组合流程。
43.根据本发明的一个实施例,参见图2,示出了基于web服务实现的一种用于探索式服务组合的服务推荐系统,包括服务库1、执行引擎模块2、用户交互模块3、服务模式挖掘模块4、服务推荐模块5、web服务模块6。web服务模块包含相应的web服务程序或者web服务接口,通过调用相应的web服务,生成服务组合流程内记载的服务组合并在执行后反馈对应的运行结果。服务库1包含服务管理单元,用于管理相应的服务;服务组合流程管理单元,用于管理服务组合流程,服务模式管理单元,用于管理服务模式。其中,服务库1、执行引擎模块2、用户交互模块3、服务模式挖掘模块4、服务推荐模块5的实施方式可以参照前述实施例,此处不再赘述。本实施例添加一些示意性的连接关系,但应当理解,实际应用时,可以根据实施者的需要调整,并非必须按照本实施例的连接关系。
44.该用于探索式服务组合的服务推荐系统搭建好后,用户可以个性化地进行服务组合的探索发现,从而快速得到所需的服务组合流程。用户交互模块支持用户构建服务组合流程,同时用户可以在运行时执行和调整流程。
45.例如,用户在用户交互模块3提供的交互界面(也可称探索式服务组合用户交互界面)中,创建好服务组合流程后,确定执行,则发送给执行引擎模块2,在执行引擎模块2,用户交互模块3向执行引擎模块2发送服务组合流程,执行引擎模块2向web服务模块6请求服务调用,web服务模块6向服务库1进行服务注册并执行服务组合流程,将运行结果执行引擎模块2反馈给用户交互模块3。用户根据运行结果,可以标记相应的服务组合流程(标记成功的或者失败的服务组合流程(成功点、调试点、失败点)),并发送给服务库1存储。此外,用户当前创建的服务组合流程的情况可以经服务库1或者经用户交互模块3发送给服务推荐模块5,如果用户标记为失败的服务组合流程,则服务推荐模块5可以根据服务组合流程的标记,将调试点所用的服务进行调整,推荐其他匹配的服务。例如,参见图3,字母n和数字的组合表示对应的服务名称,假设用户最先创建的服务组合流程对应第一条轨迹tr1,服务的组合方式为n1

n2

n3

n4,但根据运行结果,将n2标记为调试点,将n3和n4标记为失败点,对应地,n1

n2之间成功轨迹,n2

n3

n4之间为失败轨迹。用户交互模块3(接收用户指示
或者当前探索的轨迹失败时自动)基于轨迹tr1创建一条派生的轨迹tr2,轨迹tr2中复制轨迹tr1中的成功点和连接关系;服务推荐模块5从n1后开始,给推荐多个服务(比如n5、n

),用户选择n5,然后,服务推荐模块5基于n1

n5继续推荐下一个服务(比如n

、n6、n

),用户选择n6,以此类推,直至完成推荐,得到另一条预计可以实现的服务组合流程,即n1

n5

n6

n7

n8

n9,其执行后,发现仍然没有得到所需的结果,假设经分析,用户将n7标记为调试点,n8、n9标记为失败点。类似的,从轨迹tr2派生出轨迹tr3,复制tr2中标记的成功点及其连接关系,然后再从n6处依次推荐服务,最终,得到服务组合流程:n1

n5

n6

n10

n11

n12,执行后,根据运行结果,用户确认是成功的服务组合流程,停止探索。探索过程中得到的失败的服务组合流程和成功的服务组合流程,可存储到服务库1中,用于从中挖掘成功服务模式和失败服务模式。
46.为了支持本发明的失败服务模式挖掘,要对服务库中存储服务组合流程的数据结构进行调整。根据本发明的一个实施例,存储服务组合流程的数据结构被配置为包含记录服务组合流程的轨迹相关信息的数据结构、区分成功的服务组合流程与失败的服务组合流程的值以及用于区分失败的服务组合流程中的成功点、调试点和失败点的值(即用于区分成功点、调试点和失败点的标记)。用于区分失败的服务组合流程中的成功点、调试点和失败点的值可以通过不同的方式来实现,例如,设置一个二值的参数值(如后面提到的probepoint),通过0表示非调试点,通过1表示调试点,而且默认配置根据服务组合流程中的方向将调试点前的点设为成功点,调试点后的点设为失败点;又例如,参数值中通过0、1和2来区分,0表示成功点,1表示调试点,2表示失败点。优选的,为了记录用户的调试过程便于用户或者他人查看探索过程以提高工作效率,还可以在存储服务组合流程的数据结构中加入轨迹和指示轨迹的派生过程的派生关系的数据结构。作为示例,一个示意性的存储服务组合流程的数据结构包括:服务组合流程实例、轨迹、活动、派生关系对应的数据结构。各数据结构具体定义如下:存储的服务组合流程实例(一个实例是指一次探索过程,可以包括一条成功轨迹对应的服务组合流程,没有失败的服务组合流程(即一次探索就成功),或者也可以包括一条成功轨迹对应的服务组合流程和至少一条失败轨迹对应的服务组合流程(探索一次或者多次获得成功),又或者,可以包括一条或者多条失败轨迹对应的服务组合流程(始终没探索成功))可以表示为一个三元组instance=《instanceid,name,trackset》,用来描述通过服务组合流程实例实现某些目标的探索性过程。其中,instanceid表示探索式服务组合流程实例的唯一标识符;name表示探索式服务组合流程实例的名称;trackset表示实例中包含的轨迹集合。轨迹可以表示为track=《trackprofile,instanceid,status,activities,transitions,directderiv,datapocket,exploredstate》,其中,trackprofile表示轨迹基本信息,包含trackid,name,createtime等;instanceid表示轨迹所属实例;status表示轨迹的执行状态,status∈{init,running,suspend,complete,terminated};activities表示轨迹中包含的活动;transitions表示轨迹中包含的活动间的连接关系;directderiv在派生关系中定位原始轨迹,定义为directderiv=《originaltrack,probepoint》,其中originaltrack标记当前派生轨迹的父轨迹,probepoint标记派生时原始轨迹中的调试点;datapocket为轨迹执行产生的数据信息;exploredstate表示探索完成后的轨迹状态,exploredstate∈{success,failure}。活动可表示为activity=《activityid,activityname,input,output,qos,type,status》,其中,
activityid表示活动的唯一标识;activityname表示活动名称;input表示输入参数集合;output表示输出参数集合;qos表示活动质量;type表示活动类型,type∈{service,start,end,orsplit,orjoin,andsplit,andjoin};status为活动执行状态,status∈{init,running,suspend,executed}。连接关系可表示为transition=《tranid,fromact,toact,datamappingset》,其中,tranid表示连接关系的唯一标识;fromact表示连接关系源活动;toact表示连接关系目标活动;datamappingset表示源活动和目标活动之间的数据映射关系集合,其中每个数据映射可表示为datamapping=《sourcepara,targetpara,mappingexpression》。其中,sourcepara表示源节点的输入和输出参数的集合,targetpara表示目标节点的输入参数的集合,mappingexpression表示sourcepara和targetpara之间参数映射关系的表达式。添加调试点操作addprobepoint可记为addprobepoint(pt,a),其中pt为轨迹,a为活动,若pt的状态不是terminated且a的状态为executed,才允许添加调试点。该操作会生成新的轨迹pt’,其通过连接关系的datamappingset及调试点a的前继活动均从原始轨迹克隆且保持不变,调试点a及其后继活动克隆后重置初始化。派生关系可表示为一个二元单向关系dr(tr1,tr2),其中,tr1表示原始轨迹,tr2表示派生轨迹。如果两个流程片断分别表示流程轨迹tr1和tr2中从开始节点的可达流程片断,如果其满足:i.流程片断中活动的名称、输入输出参数以及参数值、类型等完全相同,且状态都是executed;ii.流程片断中连接关系的源活动、目标活动及活动之间的数据映射关系完全相同,这两个条件,则称这两个可达流程片断是相同的。如果两个轨迹共享相同的可达流程片段,则它们处于派生关系中,其中createtime较小的轨迹是原始轨迹,另一个是派生轨迹。该示例中,虽然只看到设置调试点,但是可以通过定义预定的规则,将调试点前的节点都默认表示为成功点,将调试点后的节点都默认表示为失败点,从而实现区分三种节点。另外,存储服务模式的数据结构也需要调整,以区分成功服务模式和失败服务模式。作为示例,服务模式模型可表示为sp={spid,activities,transitions,type},其中,spid表示服务模式唯一标识;activities为服务模式包含的活动;transitions为活动间存在的连接关系;type为服务模式的类型,定义为type∈{success,failure},success表示成功服务模式,failure表示失败服务模式。应当理解的是,活动是指任务,由相应的服务执行该活动(即任务),一个活动对应一个执行该活动的服务;连接关系即边,在本技术中为有向边,连接关系在一些场景中也称为变迁关系或者转接关系。
47.根据本发明的一个实施例,本发明的数据样本(服务组合流程)的来源可以多种多样。例如,一方面,服务模式挖掘模块4可以从服务库1获得用户在探索服务组合时生成的各种服务组合流程(某个时间段的数据集),分别按照本发明的一种挖掘服务模式的方法基于获得的服务组合流程进行服务模式挖掘,得到成功服务模式和失败服务模式,通过服务模式管理模块对历史挖掘的成功服务模式和失败服务模式进行更新,从而服务推荐模块5可以根据更新的成功服务模式和失败服务模式进行后续的推荐,随着挖掘的数据样本的数据量越来越多后,推荐的准确性也进一步得到提高,而且,本发明利用了其中的失败服务模式,可以为用户排除一些可能导致失败的服务组合,从而让用户更高效、准确地获得所需的服务组合流程。另一方面,参见图2的右上角处,一些情况下用户也可以从其他来源得到服务组合流程,用以丰富数据样本,则用户可以导入服务组合流程,通过用户交互模块3执行相应的操作,从而将其他来源得到的服务组合流程发送服务模式挖掘模块4用以挖掘服务
模式。
48.根据本发明的一个实施例,本发明提供一种挖掘服务模式的方法,包括:获取数据集,其包括多个失败的服务组合流程,并且每个失败的服务组合流程带有用于区分成功点、调试点和失败点的标记;基于数据集中失败的服务组合流程及其标记,专注于对调试点和/或失败点相关的服务模式进行挖掘,得到失败服务模式。主要是聚焦于以下3类边进行挖掘:1、边的源顶点为成功点,目标顶点为调试点;2、边的源顶点为调试点,目标顶点为失败点;3、边的源顶点与目标顶点均为失败点。本发明的失败的服务组合流程中,带有用于区分成功点、调试点和失败点的标记,从而挖掘失败服务模式时,可以根据标记将失败的服务组合流程中与失败无关的信息忽略,从而聚焦于挖掘失败相关的数据部分,忽略与失败无关的数据部分,可以大幅降低需要处理的数据量,减少挖掘失败服务模式所需的时间。
49.为了进一步提升失败服务模式的挖掘效率,根据本发明的一个实施例,基于增量式挖掘的方式专注于对调试点和/或失败点相关的服务模式进行挖掘。优选的,基于增量式挖掘的方式专注于对调试点和/或失败点相关的服务模式进行挖掘的过程中使用频繁模式挖掘算法按照以下方式进行挖掘:将失败的服务组合流程转换为以节点和边表示的图数据,并且基于其对应的标记在所述图数据中标记成功点、调试点和失败点对应的节点;对连接到调试点和/或失败点的边计算支持度并进行最右路径扩展,得到当前挖掘的中间结果,中间结果包含多个dfs编码树及dfs编码树的每个节点的支持度;在当前没有已经挖掘得到的失败服务模式的情况下,当前挖掘的中间结果为首次挖掘的中间结果,从中提取大于等于最小支持度的dfs编码树的节点作为频繁子图,去重后得到失败服务模式;或者,在当前存有已经挖掘得到的失败服务模式的情况下,当前挖掘的中间结果为新增挖掘的中间结果,将新增挖掘的中间结果与历史挖掘的中间结果中的dfs编码树的节点求交集且其中dfs编码树的相同节点的支持度叠加,得到增量式挖掘得到的中间结果,从中(即:从增量式挖掘得到的中间结果中)提取大于等于最小支持度的dfs编码树的节点作为频繁子图,去重后用以更新原有的失败服务模式。此处需要说明的是,此处可以采用gspan算法构建dfs编码树,编码树的每个节点都是一个图(graph,是由多个服务对应的节点和边构成的图),每个节点都有对应的支持度;在进行最右路径扩展时,从不同的边开始分别扩展形成不同的dfs编码树,即从一条边开始扩展后会得到针对这条边扩展的一个编码树,表示从此边出发的一次最右路径扩展。从以上技术方案可见,增量式挖掘是基于前期挖掘的原有中间结果与增量部分所产生的中间结果合并,然后得到增量后中间结果,基于增量后中间结果挖掘失败服务模式。例如,一个简化的流程参见图4,包括步骤s1、根据失败的服务组合流程,进行聚焦于与调试点和/或失败点相关的服务模式的挖掘,获得首次挖掘的中间结果与最终结果;以及步骤s2、将增量部分所产生的中间结果与原有中间结果合并,获得增量后中间结果与最终结果,如果后续有新增的失败的服务组合流程,则重复步骤s2。下面通过图5来形象的说明原理,图5中的a、b、c、d、e、f、g、h表示相应的服务,在一段时间后假设得到失败的服务组合流程1-8,从中提取出连接到调试点和/或失败点的边,以便专注于对调试点和/或失败点相关的服务模式进行挖掘,得到中间结果。此处基于gspan算法进行挖掘,增量式地挖掘失败服务模式过程介绍如下:将挖掘范围限定在调试点附近,对执行失败的轨迹进行挖掘;首先将输入的失败流程轨迹集t(一个时期的服务组合流程构成的数据集)抽象为图数据d(图集),基于标记对应地在图数据上添加调试点和失败点,为专注于挖掘失败相关的模
式,提高效率,也为了避免其中成功服务模式的干扰,仅提取出调试点和/或失败点相关的边,以dfs字典序对提取出的边排序,然后进行最右路径扩展挖掘,得到dfs编码树及其每个节点的支持度;将形成的dfs编码树作为挖掘的中间结果进行保存,用于后续增量式挖掘。最后,如果当前挖掘为首次挖掘,服务库中未存有失败服务模式,则根据首次挖掘的中间结果提取大于等于最小支持度的dfs编码树的节点作为频繁子图,去重后得到失败服务模式。去重例如是当前的所有dfs编码树的节点中,如果存在一个dfs编码树节点是另一个dfs编码树节点的子图,则去掉前者,仅保留后者(即另一个dfs编码树节点);换言之,如果一个子图被包含于另一个子图,则仅保留后者。如果当前服务库中已有失败服务模式,则以上步骤中的输入为增量部分,获得的中间结果为增量中间结果,需要将这一增量中间结果与原有中间结果合并。一个示意性的增量式挖掘的过程参见图6所示:时刻t=0表示首次根据t时刻的数据集t
t
挖掘失败服务模式的过程,基于首次挖掘得到的dfs编码树dct
t
提取频繁子图(比如最小支持度(用于筛选的阈值)设为10),去重得到首次挖掘出的失败服务模式;时刻t>0时,例如t 1时刻,得到下一周期的数据集,即(0,t 1]时刻采集的增量数据集

t
t 1
,基于增量数据集

t
t 1
进行挖掘,得到t 1时刻的增量部分dfs编码树

dct
t 1
(对应于新增挖掘的中间结果),基于dct
t


dct
t 1
对dfs编码树的节点求交集(即合并)并将相同dfs编码树的节点的支持度相加,得到增量式挖掘得到的中间结果,从中提取大于等于最小支持度的dfs编码树的节点作为频繁子图,去重后得到新的失败服务模式(可能是多个失败服务模式构成的集合),用以更新原有的失败服务模式。
50.根据本发明的一个实施例,所述挖掘服务模式的方法还包括:基于所述多个成功的服务组合流程进行服务模式挖掘,得到成功服务模式。对于历史采集的所有成功的服务组合流程,可采用频繁模式挖掘算法进行挖掘。例如,用gspan(graphbased substructure pattern mining)算法。或者,也可采用现有的其他频繁模式挖掘算法(如背景技术提到的apriori算法、agm算法、acgm算法等)。
51.现有技术中的传统服务推荐方法借助服务操作接口的语义匹配方法与服务组合流程实例挖掘出的服务模式(只是频繁模式,并未像本技术一样区分成功和失败)相结合的方式得到服务间二元行为约束关系(约束强度),基于这些二元行为约束关系进行推荐。即通过服务操作之间输入输出接口的语义匹配,可以计算出语义匹配度(μ),通过流程实例分析可以产生重用度(即服务模式的支持度λ)。μ和λ可最终求得约束强度(τ),最后通过模式匹配推荐约束强度(τ)高的前n(top n)个服务作为推荐的服务。然而,这种推荐方式也会先推荐出约束强度高,但所分析流程实例中存在大量错误流程实例的情况。现有技术没有记载用户探索过程的失败的服务组合流程,更没有对其中的节点类型进行区分标记以及挖掘失败服务模式,为了提高探索式服务组合的推荐准确性,进而提高用户进行各种探索的工作效率和用户体验,根据本发明的一个实施例,本发明提供一种服务推荐的方法,包括:根据用户当前构建的服务组合流程以及多个候选的服务创建候选的服务组合流程;计算用户当前构建的服务组合流程与各候选的服务的语义匹配度,确定候选的服务组合流程中所含的成功服务模式以及前述挖掘服务模式的方法得到的失败服务模式;根据候选的服务组合流程所含的候选的服务的语义匹配度、所含的成功服务模式的支持度以及失败服务模式的支持度,计算该候选的服务组合流程的约束强度;根据所有候选的服务组合流程的约束强度,从多个候选的服务中确定推荐的服务。为了便于用户调整推荐的效果,优选的,约束强
度为候选的服务组合流程所含的候选的服务的语义匹配度、所含的成功服务模式的支持度以及失败服务模式的支持度的加权和。其中,候选的服务组合流程所含的候选的服务的语义匹配度、所含的成功服务模式的支持度以及所含的失败服务模式的支持度对应的权重可自定义调整。例如,约束强度τ按照以下方式计算:
52.τ=w1
×
μ w2
×
λ-w3
×
γ;
53.其中,μ表示候选的服务组合流程所含的候选的服务的语义匹配度,λ表示候选的服务组合流程所含的成功服务模式的支持度,γ表示候选的服务组合流程所含的失败服务模式的支持度,w1表示μ的权重,w2表示λ的权重,w3表示γ的权重。其中,w1》0,w2》0,w3》0,w1 w2 w3=1。当约束强度满足τ》χ,其中χ为最小约束强度时,认为服务之间可能存在约束关系。否则,不存在约束关系。最后,按照约束强度由大到小排序后,可以通过选择满足约束关系的前n个服务来进行推荐。本发明将两种服务模式应用于探索式服务组合中,一方面可提高用户构造服务组合流程的效率,另一方面,可充分利用领域先验知识,提高服务组合流程的可重用性。
54.根据本发明的一个实施例,本发明的服务推荐的方法可以用于web服务挖掘,节点为web服务,边为web服务之间的超链接,从而探索式地发现相应的web服务的组合模式(服务组合流程)是否成功。但应当理解,本发明的挖掘服务模式的方法并非只能应用到上述用于探索式服务组合的服务推荐系统中。本领域有很多需要使用挖掘出的服务模式的具体应用场景,例如,在生物信息学流程领域,构建相应的服务组合流程,以对基因相关的数据进行处理或者操作。
55.作为示例,参见图7,使用一个生物信息学流程的例子来说明失败服务模式的使用如何提高服务推荐的准确性。图7中示出的服务(矩形框)是从myexperiment网站下载的某一个生物流中选取的部分服务,仅作为服务推荐的例子,以便说明失败服务模式是如何在服务推荐中应用的,具体的,各个附图标记的含义如下:
56.probeset_list表示探测点集合列表;
57.split_probesets表示分割探测点集合;
58.hsapiens_gene_ensembl表示现代人的基因数据库;
59.create_report表示创建报告;
60.remove_uniprot_duplicates表示移除数据库副本;
61.remove_entrez_duplicates表示移除检索系统副本;
62.remove_nulls表示移除空值;
63.remove_nulls2表示移除空值2;
64.split_for_duplicates表示分割副本;
65.concat_kegg_genes表示合并kegg数据库基因。
66.传统方法没有考虑失败服务模式,流程实例分析时无法保证所分析流程实例的正确性。如,当前已构造并执行成功的生物信息学流程为split_probesets-》probeset_list-》hsapiens_gene_ensembl,后续系统进行服务推荐,为用户选择服务提供参考。当前服务库中搜索到作为hsapiens_gene_ensembl服务的后继服务出现的服务有create_report,remove_uniprot_duplicates,remove_entrez_duplicates,remove_nulls,remove_nulls2,split_for_duplicates。使用传统服务推荐方法,仅考虑语义匹配度(μ)和成功服
务模式的支持度(λ),基于相应权值求加权和得到服务之间的约束强度(τ)后,推荐出与当前服务hsapiens_gene_ensembl约束强度最高的三个服务,分别为remove_entrez_duplicates、remove_nulls2、create_report。而该方法推荐所依据的片段hsapiens_gene_ensembl-》remove_entrez_duplicates是本发明挖掘出的失败服务模式hsapiens_gene_ensembl-》remove_entrez_duplicates-》concat_kegg_genes的子片段。虽然这两个服务之间的约束强度(τ)很高,但使用该服务可能会导致当前流程执行失败。考虑失败服务模式后,可以有效解决这个问题,综合考虑语义匹配度(μ)、成功服务模式的支持度(λ)以及失败服务模式的支持度(γ),推荐结果调整为remove_nulls2、create_report、split_for_duplicates。再次说明,上述服务,如split_probesets、probeset_list、hsapiens_gene_ensembl等均来自myexperiment研究社区的某一生物流,仅用于说明失败服务模式是如何在服务推荐的方法中应用的。
67.为了展示挖掘失败服务模式的效果,申请人在myexperiment(www.myexperiment.org)研究社区爬取1405个流程作为实验数据集,统计这些流程中最频繁的16个活动节点设为调试点(仅为了快速获得实验所需数据样本,而非实际情况,实际所有节点都是成功点)。即:由于从网站上爬取的服务组合流程均可成功执行,故通过程序模拟构造失败的服务组合流程,共构造10490个失败的服务组合流程。实验对比了未使用增量式挖掘失败服务模式的方式以及使用了增量式挖掘失败服务模式的方式以及gspan算法对所有边不加区分挖掘服务模式的挖掘效率,如表1所示。
68.表1
[0069][0070]
实验参数主要为最小支持度与轨迹数量。如图8所示,在轨迹数量固定为10000个的条件下,调整最小支持度,fspma算法与gspan算法,在挖掘结果完全相同时,前者的运行
时间明显低于后者,当minsup=10时,fspma算法相较于gspan算法效率提升最高。
[0071]
实验时,选取最小支持度为10,分析不同轨迹数量下的运行时间情况,如图9所示。当轨迹数量以1000为单位增长时,在挖掘准确度基本相同时,所述的一种用于探索式服务组合中的ifspma算法在数据量逐渐增长过程中,运行时间明显低于fspma算法与gspan方法。
[0072]
此外,挖掘结果个数也可能会影响增量式失败服务模式挖掘方法的运行时间,对minsup=10时,不同算法产生相同挖掘结果个数所用运行时间分析如图10,可见随着挖掘结果个数的增长,ifspma算法相较于gspan算法运行时间降低明显,相较于fspma算法运行时间也有所降低。
[0073]
另外,为了查看不同的最小支持度下的实验情况,申请人针对最小支持度minsup=6以及minsup=13做了相应的实验。其中,minsup=6时轨迹数量对运行时间的影响示意图参见图11,minsup=6时挖掘结果个数对运行时间的影响示意图参见12;minsup=13时轨迹数量对运行时间的影响示意图参见图13,minsup=13时挖掘结果个数对运行时间的影响示意图参见14,由于结果与minsup=10类似,此处对结果的分析可以不再赘述。
[0074]
综上,本发明的ifspma算法可有效将挖掘聚焦于失败服务模式的生成,避免gspan算法的面向整个服务组合流程的挖掘,且ifspma算法可适应不断增量的探索式服务组合环境。在不同的最小支持度与轨迹数量设置下,挖掘效率相较其他两种方法均有所提升,其中在当前数据集下最小支持度设置为10时,ifspma算法相较于gspan算法效率提升最高,随着轨迹数量的增加,ifspma算法效率相较于fspma算法增长稳定在40%左右,相较于gspan增长稳定在67%左右。
[0075]
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
[0076]
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0077]
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
[0078]
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献