面向SaaS的融合带重启随机游走算法的WebApi多样性推荐方法技术

技术编号:36342913 阅读:48 留言:0更新日期:2023-01-14 17:56
一种面向Saas的融合带重启随机游走算法的Web Api多样性推荐方法,包括以下步骤:第一步、提取MATaTo数据模型;第二步、基于MATaTo数据模型构建超图;第三步、对MATaTo数据模型构成的超图进行多级聚类;第四步、基于带重启随机游走算法对Mashup服务进行推荐,定义带重启的随机游走模型的符号,随机游走在任意时刻都有可能回到初始节点,得到的服务推荐列表将更加符合需求Mashup。本发明专利技术降低超图结构的复杂性,有效的缩小服务搜索空间,提高服务推荐的准确率,降低服务推荐的时间成本,减少大型超图给基于超图的推荐算法带来负面影响;在保证数据推荐多样性的同时得到个性化推荐列表。数据推荐多样性的同时得到个性化推荐列表。数据推荐多样性的同时得到个性化推荐列表。

【技术实现步骤摘要】
面向SaaS的融合带重启随机游走算法的Web Api多样性推荐方法


[0001]本专利技术涉及Web环境中的Api推荐场景,具体涉及一种面向Saas的融合带重启随机游走算法的Web Api多样性推荐方法。

技术介绍

[0002]SaaS全称为Software

as

a

service,意思是“软件即服务”。SaaS是一种基于互联网提供软件服务的应用模式,而Web API是SaaS的核心元素之一,能够提供特定功能的应用程序接口,可以对接类型多样的客户端。Mashup是由Web API构成的通过组合来自不同Web源的内容、表示或应用程序功能而生成的Web应用程序,其目标是结合这些资源来创建有用的新应用程序或服务。Mashup有简单、高可用和易于访问等特点,且其简单性优于功能完整性和完全可扩展性。
[0003]如何当下海量的服务仓库中寻找合适的服务已成为重要课题。国内外不少学者已经开展了对服务推荐的研究。例如,Gao等人将Mashup的描述文档转化成向量,将向量用k

means算法进行聚类,并提出一种广义流式排序算法进行API推荐。Qi等人通过图神经网络学习Mashup和API的潜在表示,并通过一个具有注意力机制的神经网络分析需求Mashup采用各个API的概率,根据概率大小返回推荐列表。
[0004]超图是近年来在国际上流行的图模型,超图中的边可以联结任意个数量的超点,每条超边是超图点集中的非空子集。相较于普通图,超图能直观地对现实世界中的数据信息建模。将超图应用于Api推荐可以将高阶信息以超边的形式融入超图,在捕捉同类型、跨类型对象之间的关系的同时,生动、直观的可视化多元关系。

技术实现思路

[0005]为了提升服务推荐准确率的同时提高服务推荐的多样性。本专利技术提出了面向Saas的融合带重启随机游走算法的Web Api多样性推荐方法。首先建立数据模型将Mashup信息建模,然后构建相应超图,并对原始图超点进行多级聚类减小搜索空间,最后,通过带重启的随机游走算法对Web API进行推荐。
[0006]本专利技术提供如下的技术方案:
[0007]一种面向Saas的融合带重启随机游走算法的Web Api多样性推荐方法,所述方法包括以下步骤:
[0008]第一步、提取MATaTo(Mashup

API

Tag

Topic)数据模型,过程如下:
[0009]步骤(1.1)从互联网网站爬取Mashup服务集合信息,进行步骤(1.2);
[0010]步骤(1.2)对爬取到的Mashup服务集合进行分析,选择有利于提升服务推荐准确性且内容丰富的元信息,进行步骤(1.3);
[0011]其中,爬取到的信息有服务描述文档、Mashup与API的调用关系、主题、标签、服务关注者、服务调用链接、更新日志信息;
[0012]步骤(1.3)定义MATaTo模型的符号,M表示Mashup集合、A表示API集合、Ta表示标签集合、To表示主题集合、R1、R2、R3、R4、R5表示分别表示五种高阶关系、n表示超点数量、m表示超边数量、WHG∈R
m
×
n
表示加权超图、v表示超点、V表示由n个超点构成的集合、e表示超边、E表示由m个超边构成的集合,R
m
×
n
表示大小为m
×
n的实数集合;进行步骤(1.4);
[0013]步骤(1.4)遍历爬取到的信息,从中提取出MATaTo数据模型;
[0014]第二步、基于MATaTo数据模型构建超图,过程如下:
[0015]步骤(2.1)使用NMF模型对Mashup和API描述文档建模,得到对应的主题向量,进行步骤(2.2);
[0016]其中,NMF模型是非负矩阵分解,是一种无监督学习算法;
[0017]步骤(2.2)根据MATaTo数据模型,针对四种类型的对象构成超图的超点;
[0018]步骤(2.3)根据五种高阶关系中建立十种类型的超边,定义十种类型的超边E
M*kTo*
、E
M*kTa*
、E
A*kTo*
、E
A*kTa*
、E
M*ToTa*
、E
A*To*Ta*
、E
M*A*To*
、E
M*A*Ta*
、和建立超图的超边集;
[0019]第三步、对MATaTo数据模型构成的超图进行多级聚类,过程如下:
[0020]步骤(3.1)粗化阶段:对原始图超点进行连续的粗化直到超图规模减小到一定程度;
[0021]步骤(3.2)聚类阶段:对粗化阶段得到的最粗超图使用不同的参数进行谱聚类,根据结果选择效果最优的聚类,进行步骤(3.3);
[0022]步骤(3.3)细化阶段:将粗化阶段中被粗化的超点映射到聚类中,结束;
[0023]第四步、基于带重启随机游走算法对Mashup服务进行推荐;
[0024]其中,随机游走是一种被广泛地用于描述自然界中许多实体的运动方式的数学统计模型,在本专利技术设计的带重启的随机游走算法中,超图中的超点在每一步的游走过程中有两种选择,以特定的概率α∈(0,1)游走到邻近的超点或者以1

α的概率返回初始超点,这种随机游走使得最终的服务推荐列表将更加符合需求Mashup。
[0025]进一步,所述步骤(1.2)中,服务描述文档是传统Web服务WSDL文档的替代品,通过直观的语言描述服务信息;
[0026]其中,服务调用链接仅代表了服务的资源地址,并无实际帮助,因此,不使用服务调用链接信息。
[0027]更进一步,所述步骤(1.4)的过程如下:
[0028]步骤(1.4.1)提取服务描述文档、Mashup与API的调用关系、主题、标签四种类型信息,进行步骤(1.4.2);
[0029]其中,四种类型信息的说明具体如下:
[0030]Mashup(M*)表示Mashup服务,是服务推荐场景中推荐的请求者,Mashup本身携带有标签、主题的信息,并且与API存在调用关系;
[0031]API(A*)表示Web API,是服务推荐场景中的推荐对象,与Mashup服务对象相同,也具有标签、主题的信息,与Mashup存在被调用的关系;
[0032]标签(Ta*)表示爬取到的标签信息,具有相同标签的Mashup和API关系更加紧密;
[0033]主题(To*)表示爬取到的主题信息,同一主题下的Mashup和API有相近的功能;
[0034]步骤(1.4.2)归纳出R1(M*

Ta*

To*)、R2(A*

Ta*

To*)、R3(M本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向Saas的融合带重启随机游走算法的Web Api多样性推荐方法,其特征在于,所述方法包括以下步骤:第一步、提取MATaTo(Mashup

API

Tag

Topic)数据模型,过程如下:步骤(1.1)从互联网网站爬取Mashup服务集合信息,进行步骤(1.2);步骤(1.2)对爬取到的Mashup服务集合进行分析,选择有利于提升服务推荐准确性且内容丰富的元信息,进行步骤(1.3);其中,爬取到的信息有服务描述文档、Mashup与API的调用关系、主题、标签、服务关注者、服务调用链接、更新日志信息;步骤(1.3)定义MATaTo模型的符号,M表示Mashup集合、A表示API集合、Ta表示标签集合、To表示主题集合、R1表示Mashup之间的关系、R2表示API之间的关系、R3表示Mashup及其属性的关系、R4表示API及其属性的关系、R5表示Mashup和API之间的关系、n表示超点数量、m表示超边数量、WHG∈R
m
×
n
表示加权超图、v表示超点、V表示由n个超点构成的集合、e表示超边、E表示由m个超边构成的集合,R
m
×
n
表示大小为m
×
n的实数集合;进行步骤(1.4);步骤(1.4)遍历爬取到的信息,从中提取出MATaTo数据模型;第二步、基于MATaTo数据模型构建超图,过程如下:步骤(2.1)使用NMF模型对Mashup和API描述文档建模,得到对应的主题向量,进行步骤(2.2);其中,NMF模型是非负矩阵分解,是一种无监督学习算法;步骤(2.2)根据MATaTo数据模型,针对四种类型的对象构成超图的超点;步骤(2.3)根据五种高阶关系中建立十种类型的超边,定义十种类型的超边E
M*ToTa*
、E
A*To*Ta*
、E
M*A*To*
、E
M*A*Ta*
、和建立超图的超边集;第三步、对MATaTo数据模型构成的超图进行多级聚类,过程如下:步骤(3.1)粗化阶段:对原始图超点进行连续的粗化直到超图规模减小到一定程度;步骤(3.2)聚类阶段:对粗化阶段得到的最粗超图使用不同的参数进行谱聚类,根据结果选择效果最优的聚类,进行步骤(3.3);步骤(3.3)细化阶段:将粗化阶段中被粗化的超点映射到聚类中,结束;第四步、基于带重启随机游走算法对Mashup服务进行推荐;超图中的超点在每一步的游走过程中有两种选择,以特定的概率α∈(0,1)游走到邻近的超点或者以1

α的概率返回初始超点,这种随机游走在任意时刻都有可能回到初始节点,使趋于稳定的概率分布和初始节点的相关性加强,因此最终的服务推荐列表将更加符合需求Mashup。2.如权利要求1所述的面向Saas的融合带重启随机游走算法的Web Api多样性推荐方法,其特征在于,所述步骤(1.2)中,服务描述文档是传统Web服务WSDL文档的替代品,通过直观的语言描述服务信息,一直以来是服务推荐研究者的研究重点;其中,Mashup与API的调用关系包含了Mashup与API之间存在的不可分割的关系,而现有的研究中往往忽略了两者的调用关系,因此,需要使用Mashup与API的调用关系,并且在调用关系的基础上,可以引申出Mashup和API流行度、Mashup与API、Mashup与Mashup、API与
API共现度信息;其中,主题能反应服务的功能性特征,对于服务的使用范围有一个大致的定性,同一主题下的服务有相似的功能,标签通常由用户人为添加,从用户的主观角度对服务进行补充描述;其中,服务调用链接仅代表了服务的资源地址,并无实际帮助,因此,不使用服务调用链接信息。3.如权利要求1或2所述的面向Saas的融合带重启随机游走算法的Web Api多样性推荐方法,其特征在于,所述步骤(1.4)的过程如下:步骤(1.4.1)提取服务描述文档、Mashup与API的调用关系、主题、标签四种类型信息,进行步骤(1.4.2);其中,四种类型信息的说明具体如下:Mashup(M*)表示Mashup服务,是服务推荐场景中推荐的请求者,Mashup本身携带有标签、主题的信息,并且与API存在调用关系;API(A*)表示Web API,是服务推荐场景中的推荐对象,与Mashup服务对象相同,也具有标签、主题的信息,与Mashup存在被调用的关系;标签(Ta*)表示爬取到的标签信息,具有相同标签的Mashup和API关系更加紧密;主题(To*)表示爬取到的主题信息,同一主题下的Mashup和API有相近的功能;步骤(1.4.2)归纳出R1(M*

Ta*

To*)、R2(A*

Ta*

To*)、R3(M*

M*)、R4(A*

A*)、R5(M*

A*)五种类型的高阶关系;其中,五种高阶关系的说明具体如下:R1(M*

Ta*

To*)表示Mashup及其属性的关系,Mashup除了自身的描述文档外,用其携带的主题、标签信息进行补充说明;R2(A*

Ta*

To*)表示API及其属性的关系,与R1相同,API用其携带的主题、标签信息进行补充说明,Mashup调用具有相同主题、标签的API;R3(M*

M*)表示Mashup之间的关系,本发明计算不同Mashup描述文档之间的相似度,来表示不同Mashup服务之间的关系;R4(A*

A*)表示API之间的关系,与R3相同,使用相似度表示API服务之间的关系,除此之外,被同时调用的两个或多个API之间能反映其共现度,一定程度上提升推荐的准确度;R5(M*

A*)表示Mashup和API之间的关系,Mashup由API组合而成,除了显式的调用关系外,API的主题或标签同样能对Mashup进行功能性描述。4.如权利要求1或2所述的面向Saas的融合带重启随机游走算法的Web Api多样性推荐方法,其特征在于,所述步骤(2.2)的过程如下:步骤(2.2.1)定义Mashup集合M={m1,m2,m3,...,m
N
},进行步骤(2.2.2);其中,N为Mashup的总数;步骤(2.2.2)定义Mashup m
i
调用的API集合为A
i
={a
i1
,a
i1
,a
i1
,...,a
ik'
},进行步骤(2.2.3);其中,i代表当前Mashup在集合M中的编号,k

为Mashup m
i
调用的API总数,则所有Mashup调用的API集合为其中,∪表示取并集;
步骤(2.2.3)定义Ta和To为所有Mashup和API携带的标签和主题信息集合,进行步骤(2.2.4);步骤(2.2.4)初始化超图的超点集为V=M∪A∪T
a
∪T
o
。5.如权利要求1或2所述的面向Saas的融合带重启随机游走算法的Web Api多样性推荐方法,其特征在于,所述步骤(2.3)中,超边定义的具体说明如下:主题能对Mashup进行功能性描述,而Mashup本身携带的主题有限,通过与其相似的Mashup扩展自身的主题,对于每个Mashup,选取top

k个相似Mashup以及它们的主题构成一条超边,该边的权重设定为与k个Mashup之间相似度的平均值,相似度的计算采用常见的余弦相似度,其中,余弦相似度的计算公式如下:其中,θ表示预先相似度的夹角,vm
x'
表示第x

个Mashup的特征向量,|vm
x'
|表示特征向量的模;标签能对Mashup进行细节性描述,而Mashup本身携带的标签有限,通过与其相似的Mashup扩展自身的标签,对于每个Mashup,选取top

k个相似Mashup以及它们的标签构成一条超边,该边的权重设定为与k个Mashup之间相似度的平均值,相似度的计算和步骤(2.3)中的余弦相似度的计算公式相同;一个API携带的标签数有限,可以通过与其他API之间的相似性扩展自身的标签,对于每个API,选取top

k个相似API以及它们的主题构成一条超边,该边的权重设定为与k个API之间相似度的平均值,相似度的计算和步骤(2.3)中的余弦相似度的计算公式相同;同上,API可以通过与其他API之间的相似性扩展自身的标签,对于每个API,选取top

k个相似API以及它们的标签构成一条超边,该边的权重设定为与k个API之间相似度的平均值,相似度的计算和步骤(2.3)中的余弦相似度的计算公式相同;E
M*To*Ta*
:一个Mashup本身携带有主题与标签信息,对于每个Mashup,选取其携带的任意数量主题与标签构成一条超边,该边的权重设定为1;E
A*To*Ta*
:一个API本身携带有主题与标签信息,对于每个API,选取其携带的任意数量主题与标签构成一条超边,该边的权重设定为1;E
M*A*To*
:一个Mashup调用一个或多个API,这些API的主题同样能补充Mashup的主题,对于每个Mashup,选取其调用的所有API以及携带的主题,该边的权重设定为1;E
M*A*Ta*
:同上,一个Mashup调用一个或多个API,这些API的标签同样能补充Mashup的标签,对于每个Mashup,选取其调用的所有API以及携带的标签,该边的权重设定为1;流行的API往往代表较高的质量,对于每个API,与其所在的主题构建一条超边,该边的权重设定为流行度大小,其中,流行度大小的公式如下:其中Call(A
r
)表示API A
r
被Mashup调用的频次,Topic(A
r
)表示与A
r
具有相同主题的所有API,MinCall(Topic(A
r
))表示与A
r
相同主题中的所有API中调用频次最低的API,MaxCall(Topic(A
r
))表示与A
r
相同主题中的所有
API中调用频次最高的API;经常一起被调用的API具有相关性,该边包含所有共现次数大于1的API,该边的权重设定为共现度大小,其中,共现度大小的公式如下:其中,|A
m'
∩...∩A
n'
|表示API A
m

,...,A
n

被相同Mashup调用的次数,|A
m'
∪...∪A
n'
|表示APIA
m

,...,A
n

被Mashup调用的总次数。6.如权利要求1或2所述的面向Saas的融合带重启随机游走算法的Web Api多样性推荐方法,其特征在于,所述步骤(3.1)的过程如下:步骤(3.1.1)定义粗化阶段所需的符号,c表示超点的权重集合、w表示超边的权重集合、G=(V,E,c,w)表示原始超图、iterTime表示迭代次数、coarse_limit表示粗化阈值、max_weight表示超点权重阈值、G'=(V',E',c',w')表示粗化后的图,V'表示粗化后未被合并的超点,E'表示粗化后的超边,c'表示粗化后超点的权重集合,w'表示粗化超边后的权重集合,进行步骤(3.1.2);步骤(3.1.2)将所有超点加入到未访问超点集合UV中,进行步骤(3.1.3);步骤(3.1.3)初始化空集合C用于记录所有被粗化的超点,进行步骤(3.1.4);步骤(3.1.4)定义变量I用于存储迭代次数,并将其初始化为0,进行步骤(3.1.4.1

3.1.4.4),对集合UV中的超点进行粗化,进行步骤(3.1.5);步骤(3.1.4.1)定义集合UVT,用于存储对本次迭代需要粗化的超点合集,将集合UV中的超点拷贝进集合UVT中,进行步骤(3.1.4.2);步骤(3.1.4.2)进行步骤(3.1.4.2.1

3.1.4.2.12),对UVT中超点进行粗化,直到迭代次数到达len(UVT),进行步骤(3.1.4.3);其中,len()表示获取集合的大小,len(UVT)表示集合UVT的大小;步骤(3.1.4.2.1)随机取集合UVT中一个超点,命名为rv,进行步骤(3.1.4.2.2);步骤(3.1.4.2.2)判断该超点rv是否属于集合UVT,是则进行步骤(3.1.4.2.3),否则直接进入下一轮循环;步骤(3.1.4.2.3)定义一个超点cv,并将超点rv拷贝给cv,定义score用于存储评分,并初始化评分为0,进行步骤(3.1.4.2.4);步骤(3.1.4.2.4)遍历与超点rv邻接的其他超点,并将该超点拷贝给iv,进行步骤(3.1.4.2.4.1

3.1.4.2.4.3),找到要与rv合并的超点iv,进行步骤(3.1.4.2.5);其中,与超点rv邻接的其他超点即与该超点在同一边中的超点;步骤(3.1.4.2.4.1)计算rv的权重与iv的权重之和;步骤(3.1.4.2.4.2)判断该权重和是否大于超点权重阈值max_weight,否则进行步骤(3.1.4.2.4.3),是则直接进入下一次循环;步骤(3.1.4.2.4.3)判断iv是不是属于集合UVT中的超点,是则直接进入下一次循环,否则直接结束循环;步骤(3.1.4.2.5)根据评分函数计算rv与iv的评分函数,定义变量cur_score,将评分存储在cur_score中,进行步骤(3.1.4.2.6);其中,评分函数为score(rv,iv)=a
·
con(rv,iv)+b
·
hNcut(rv,iv),a、b的值为经验
值,依据实验效果调参后所得,其中,其中,I*(rv)、I*(iv)分别表示包含超点rv、iv的超边集合,∩表示取交集,即取符号左右集合都存在的元素,其中c*(rv)、c*(iv)分别为超点rv、iv的权重,e1表示同时和超点rv、iv存在于同一超边的超点,w(e1)表示超边e1的权重,de(e1)表示超边e1的度,de(e1)=|e1|,|e1|表示超边e1中的超点数量;∑表示求和,其中hNcut(rv,iv)表示超点rv和iv所在超边的归一化切割,代表了rv和iv分别被看作一个簇类时这两个簇类的相关度,计算公式为其中,dv(rv)、dv(iv)表示超点rv、iv的度,即包含超点rv、iv的边的权重之和,e2表示属于集合Q
e
的边,Q
e
表示由这两个集合切割的超边集,当一条超边中的超点存在于不同簇类中时,称这条超边是被切割的超边;步骤(3.1.4.2.6)判断cur_score是否大于score,是则将超点iv拷贝到cv中、将cur_score的值赋值给score,进行步骤(3.1.4.2.7);步骤(3.1.4.2.7)将rv与cv合并,本发明使用双向链表的形式,将有合并关系的超点进行连接,然后进行步骤(3.1.4.2.8);其中,双向链表是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱,即,直接相连的两个节点之间有指向对方的指针;步骤(3.1.4.2.8)将被合并超...

【专利技术属性】
技术研发人员:陆佳炜费佳欢马超治王琪冰肖刚徐俊张元鸣郑嘉弘梅浩
申请(专利权)人:中国计量大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1