基于图挖掘的服务推荐算法

来源:互联网 发布:java软件程序员工资 编辑:程序博客网 时间:2024/06/07 16:27
研究假设: 1、领域专家的经验隐含在组合Web服务的结构及其执行日志中
               2、以前被一起组合过或执行过的一堆Web服务很可能以类似的方式被重用
               3、经常被使用的Web服务,其可靠性和鲁棒性更好

三阶段

第一阶段  数据准备阶段

1、对Web服务进行聚类, 采用k-中心聚类方法,利用参考文章30修改版, 考虑了WSDL types、WSDL message、WSDL ports和Web Service name, 没有考虑WSDLcontents, 计算Web Service name相似度时,没有采用NGD,采用Lin measure of WordNet similarity,主要不是因为效果好,而是目前搜索引擎不允许太多次数的搜索

聚类得到的Web服务 WS = (WS-ID,In,Out, QoS, Cluster-ID)

2、根据服务日志得到服务组合图 有向标签图G=(V,E, LV, lV, LR,R)
V顶点集合、E边的集合、LV顶点类标签、lV顶点集合和类标签集合的映射函数
LR 关系标签集合,B表示分支关系、P表示并行关系
R顶点集合和关系标签集合上的二元关系,对于V中每个出度大于1的顶点,都会根据情况添加关系标签

从日志库里提取所有执行过的组合Web服务,然后转化为类标签形式

第二阶段  数据处理阶段

挖掘出频繁子图, 不考虑类标签,设立最小支持度。找出组合服务图数据集中的频繁图的完整集合
使用gSpan改进版:
1、将服务组合图从有向标签转化为对应的无向标签, 进行深度优先搜索构造DFS树,根据顶点发现的时间记录线性序列,得到DFS编码,例如((V0,V1),(V1,V2),(V2,V3),(V3,V0),(V3,V4),(V3,V5),(V5,V0)),最右路径wie(V0,V1,V2,V3,V5)
2、将每条边替换为7元组(i,j,d,li,lj,lri,lrj)
li,lj为顶点vi和vj的类标签,lri和lrj为关系标签,d表示方向,由于一个图不止一个DFS编码,取最小的那个
先比较每条边的线性序,即下标,接着考虑顶点列标签li,lj

第三阶段 服务推荐阶段
根据用户组合了一半的Web服务,构造有向标签图G0,枚举G0所有子图,找到那些也在图挖掘结果集FS中的子图构成S0

对S0中的每个图,枚举所有后代,找到也同时在FS中的后代,找到g的后代集合为Des(g)
为了找出Des(g)中最有可能扩展得到的图,计算Score =  得到分数最高的那一个
得出推荐集合CFS,CFS根据Score、扩展边数、最小DFS编码排序,根据用户需要返回前K个
将这k个和G0组合

利用skyline代入每一类中QoS最好的那几个,可以提高效率 (QoS只考虑分支结构和并行结构)
给出QoS最好的几个


实验阶段, 拟合得到α的合适值


展望:1 考虑更一般的组合服务图,有还,顶点关系标签多于1的情况
2 既有分支又有并行关系, QoS计算
3 未考虑QoS随时间变化的情况,Web服务随着时间变化不可用,考虑实时计算每个类的skyline服务, 提高算法效率
0 0
原创粉丝点击