基于双线性图神经网络的web服务分类方法
技术领域
1.本发明属于互联网技术领域,具体是指基于双线性图神经网络的web服务分类方法。
背景技术:2.随着web 2.0的发展,大量基于soa(service-oriented architecture)的服务应用被创建。作为实现soa的主流技术,web服务能够有效集成数据,向互联网用户提供各种数据计算和资源共享等服务。作为一种典型的web服务,web api(application programming interface)的数量呈现倍增趋势。据近期统计,programmableweb网站上的api数量已经达到24000多个。随着web api的数量及其功能种类不断增多,用户从数量众多且功能属性难以界定的服务集合中准确地查找满足特定业务需求的服务变得愈加困难。已有研究表明,根据功能相似度对web服务进行分类,将用户的服务需求定位到相应的服务类簇中,能够有效缩小服务搜索的空间,提高服务发现质量和服务组合效率。
3.目前,针对web服务分类已有大量的研究方法。这些方法主要是将web服务表示为一个长度固定的特征向量,然后将其输入到分类或聚类模型中实现web服务分类。其中,web服务表征向量的提取对服务分类的性能有着重要的影响,大多数web服务分类方法是通过挖掘web服务的功能属性来进行特征表示。其中,一些研究人员基于wsdl(web service description language)文档来提取特征,然后利用如余弦相似度等方法计算服务之间的相似度,实现服务分类或聚类[3]。但是wsdl文档通常比较简短,描述内容较少,因此基于wsdl文档的分类方法很难取得较好的分类效果,并且这些方法通常没有考虑到web服务之间的隐含语义关联及wsdl文档中隐含的网络结构信息。虽然一些研究还将web服务的辅助信息引入到模型中,如标签信息、词聚类信息等,一定程度上有利于挖掘web服务的隐含主题信息。但是,相比于传统的lda(latent dirichlet allocation)主题模型,现有的扩展及改进主题模型在服务分类的效果上的提升并不大。
技术实现要素:[0004]
为解决上述难题,本发明提供一种以服务描述文档和服务关系网络为输入,使用基于乘法的聚合器捕捉相邻服务节点之间的交互,并结合线性聚合器对不同的交互信号进行编码,从而学习到更全面的服务节点表示,以用于更为精准的服务分类的基于有益特征交互对的api推荐方法,采用边预测组件对有益特征交互关系进行提取,并去除无益特征交互关系,从而提高推荐模型的精确度。
[0005]
为实现上述功能,本发明采取的技术方案如下:基于双线性图神经网络的web服务分类方法,包括如下步骤:
[0006]
(1)从网络上抓取服务数据集,经过预处理得到服务描述文档、tags和labels等元信息;
[0007]
(2)使用word2vec算法提取api服务描述文档中所有词汇对应的词向量,组成api
特征矩阵,利用tags信息计算服务节点之间的tags相似度,得到api邻接矩阵,并通过阈值来确定服务节点的链接,构建服务关系网络;
[0008]
(3)利用双线性聚合器来捕获邻居服务节点之间的交互信息,结合传统加权和聚合器构建双线性图神经网络模型,将api特征矩阵、邻接矩阵以及分类标签矩阵输入到该模型中,得到包含邻居服务节点交互信息的服务嵌入;
[0009]
(4)最后,使用softmax函数预测api服务的类别。
[0010]
进一步地,所述步骤1中预处理包括如下步骤:
[0011]
删除标点符号,将服务描述文档中的单词全部转换为小写,便于后续进行词干提取,同时,去除文档中的所有标点符号,便于后续进行分词;
[0012]
分词,去除文档中的停用词,对单词的词性进行标记,仅保留需要的词性;
[0013]
词干提取,词干是词的基本组成部分,词干提取的作用是去除后缀并输出词的词干。
[0014]
进一步地,所述步骤2中服务节点之间的tags相似度采用jaccard相似系数来计算,服务i和服务j的jaccard值为:
[0015][0016]
其中,ti是服务i的标签集,tj是服务j的标签集,|ti∩tj|代表两个api服务包含的相同标签的数量,|ti∪tj|代表两个api服务的标签集的并集的标签数量。
[0017]
进一步地,所述步骤3中双线性图神经网络模型包括输入层、聚合操作和输出层。
[0018]
进一步地,所述输入层包括如下步骤:
[0019]
将服务节点的原始特征矩阵定义为其中,f是使用word2vec算法提取的特征词个数,节点v的特征向量xv是一个one-hot编码向量,服务节点v的初始特征表示由原始特征矩阵x获得,即xv,表示第k层的服务节点v的表示。
[0020]
进一步地,所述聚合操作包括如下步骤:将服务节点的原始特征矩阵x和邻接矩阵a作为输入,利用基于乘法的双线性聚合器聚合邻居服务节点的交互信息,通过加权和聚合器对不同的信号进行编码,最后将它们组合起来,得到目标服务节点的表示;
[0021]
进一步地,所述基于乘法的双线性聚合器如公式为:
[0022][0023]
其中,
⊙
是元素内积,v是需要获取表示的目标节点,邻居服务i和邻居服务j被限制为不同节点,bv被定义为表示目标节点v的交互次数,它对获得的表示进行归一化,以消除节点度的偏差。
[0024]
进一步地,所述输出层包括如下步骤:
[0025]
采用简单的线性组合方案将双线性聚合器ba和加权和聚合器agg组合起来,构建
一个更具表现力的图神经网络bgnn,所用公式为:
[0026]h(k+1)
=bgnn(h
(k)
,a)
[0027]
=(1-α)
·
agg(h
(k)
,a)+α
·
ba(h
(k)
,a)
[0028]
其中,h
(k)
表示第k层的服务节点表示,α是权衡传统gnn聚合器和双线性聚合器的优势的超参数,当α设置为0时,不考虑邻居服务节点之间的交互,bgnn退化为gnn;当α设置为1时,bgnn仅使用双线性聚合器来处理邻居服务节点的信息,α的最佳设置在不同的数据集上有所不同。
[0029]
使用两层bgnn模型,其定义如公式如下:
[0030]
bgnn2(x,a)
[0031]
=(1-α)
·
gnn2(x,a)
[0032]
α[(1-β)
·
ba(x,a)+β
·
ba(x,a
(2)
)]
[0033]
其中,a
(2)
=binarize(aa)存储图的两跳连接,binarize是一种逐条目操作,它将非零条目转换为1,a
(2)
中的非零条目(v,i)意味着节点v可以在两跳内到达节点i,β是用于权衡一跳邻居和两跳邻居的双线性交互优势的超参数。
[0034]
进一步地,所述softmax函数为:
[0035][0036]
其中c是候选api服务类别的数量。
[0037]
方法的总体框架如图1所示。它包括四个部分:(1)数据预处理;(2)构造api服务邻接矩阵;(3)双线性图神经网络模型构建;(4)服务分类。
[0038]
作为优选地,所述bgnn利用标记节点上的交叉熵损失来优化,设置与gcn工作相同,通过最小化所有服务节点在真实标签和预测标签之间的交叉熵来计算损失值,公式如下:
[0039][0040]
其中,y
l
是具有标签的节点索引集,y
l
和h
l
是有标签节点的标签向量和嵌入,在有标签数据的指导下,通过反向传播优化模型,优化服务节点的嵌入表示。
[0041]
本发明采取上述结构取得有益效果如下:
[0042]
1.利用web apis的描述文档和属性信息构建服务关系网络,利用bgnn模型学习服务节点的嵌入,提高服务分类的准确性;
[0043]
2.将传统的线性聚合器与双线性聚合器结合起来,构建出更具表现力的图神经网络。利用双线性聚合器提取邻居服务节点交互信息,线性聚合器对不同的信号进行编码,将两者结合起来构成的bgnn对学习服务的嵌入有很好的效果;
[0044]
3.使用基于programmableweb收集的真实数据集对提出的方法评估与分析,结果验证本发明所提出方法的有效性,并且表明该方法具有较好的分类效果。
附图说明
[0045]
图1为本发明提供的基于双线性图神经网络的web服务分类方法的服务分类框架图;
[0046]
图2为本发明提供的基于双线性图神经网络的web服务分类方法的bgnn框架图;
[0047]
图3为本发明提供的基于双线性图神经网络的web服务分类方法的不同模型分类性能的比较图;
[0048]
图4为本发明提供的基于双线性图神经网络的web服务分类方法的超参数分析图。
具体实施方式
[0049]
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0050]
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。以下结合附图,对本发明做进一步详细说明。
[0051]
如图1所示,本发明提供的基于双线性图神经网络的web服务分类方法,包括四个部分:(1)数据预处理;(2)构造api服务邻接矩阵;(3)双线性图神经网络模型构建;(4)服务分类。
[0052]
如图2所示,双线性图神经网络模型包括输入层、聚合操作和输出层三个部分。
[0053]
具体实施例一:
[0054]
1.数据集及实验设置
[0055]
从programmableweb平台上爬取公开的服务数据作为服务分类的实验数据集,该数据集包含17782个web api,480个tag。对于每一个web api,其信息包括服务名称、所属类别、标签和描述文档。每个服务节点都由从描述文档中提取的词袋特征来表示。由于实验数据集过大,数据分布不均衡,我们在实验过程中分别选取包含api数量最多的前5、10、15、20类api服务作为实验对象,其详细数据分布如表1所示。
[0056]
表1前20类api服务的分布情况
[0057][0058]
在训练过程中,将实验数据进行随机重组,然后选择60%的数据作为训练集,20%的数据作为验证集,20%的数据作为测试集,并将训练集、验证集和测试集完全分离,以保证实验结果的准确性。学习率设置为0.01,服务相似度阈值设置为0.7。数据集划分后的详细统计信息如表2所示。
[0059]
表2数据集统计信息
[0060][0061][0062]
2.对比方法
[0063]
采用两类方法作为基准方法与本发明方法进行比较,分别是网络嵌入和gnn。我们选择两种广泛使用的网络嵌入方法,即deepwalk和node2vec。对于gnn,我们选择gcn和gat。
[0064]
deepwalk:使用随机游走的方式在服务网络中进行服务节点采样,获取足够数量的顶点序列后,将所有的顶点序列作为语料库,利用词嵌入模型进行训练,学习每个服务节点的一维特征表示。
[0065]
node2vec:node2vec是对deepwalk的一种改进方法,它定义两个参数来控制采样过程中随机游走的倾向,权衡bfs和dfs的影响。它同时反映图的同质性和结构对等性,并同时考虑到图结构的局部信息与全局信息,具有很高的适应性。
[0066]
gcn:gcn将标准化的服务节点特征和服务网络结构作为输入,gcn的核心思想是利用服务网络中边的信息对服务节点信息进行聚合从而生成新的服务节点表示,其本质目的是利用图的拉普拉斯矩阵的特征值和特征向量来提取拓扑图的空间特征。
[0067]
gat:gat在gcn的基础上引入注意力机制来对邻居节点做聚合操作,对不同的邻居服务节点自适应地分配相应的权重。它既不需要矩阵运算,也不需要事先知道图结构,是一种高效灵活的图神经网络模型。
[0068]
本发明设计两种bgnns,分别用gcn和gat来实现传统的agg聚合函数。对于每种
bgnn,我们将具有不同双线性交互作用范围的两个变体进行对比分析:1)bgcn-a和bgat-a考虑k-hop邻域内的所有节点,包括双线性交互中的目标节点。2)bgcn-t和bgat-t考虑目标节点与其k-hop邻域内邻居节点之间的交互。
[0069]
3.评价指标
[0070]
针对多分类问题采用accuracy作为评价指标对以上的方法进行性能的评定,accuracy是指被正确分类的web apis在所有测试样本中所占的比例。如公式所示,其中,tp表示模型最终的分类结果中确实属于该类别的web apis;tn表示模型最终的分类结果中确实不属于该类别的web apis;p表示所有测试样本中实际属于该类别的web apis;n表示所有测试样本中实际不属于该类别的web apis。
[0071][0072]
4.分类性能
[0073]
将上述实验过程重复若干次并取accuracy的平均值作为模型分类性能的最终结果,如表3所示。从表3和图3我们可以得出以下结论:
[0074]
整体上,基于双线性图神经网络的服务分类方法相比其他方法性能更优。特别是当服务类别数为10时,bgat-t在accuracy值上分别比对照方法提高22.63%、22.65%、19.26%和20.18%。该结果验证bgnn方法的有效性,该方法在进行特征提取时融合局部结构中服务节点之间的成对交互。
[0075]
bgnn模型具有不同的双线性交互范围,在所有情况下,bgat-t(bgcn-t)的性能优于bgat-a(bgcn-a),这表明与目标节点的双线性交互的重要性。
[0076]
在各分类情况下,bgat-t(bgcn-t)比普通gat(gcn)的性能分别高11.20%(7.25%)、38.01%(16.55%)、36.46%(10.34%)和20.77%(14.30%)。这些结果进一步说明考虑邻居服务节点之间的交互信息可以增强目标服务节点的表示,提高服务分类性能。
[0077]
基于嵌入的deepwalk和node2vec模型的性能比较接近,并且都比gcn和gat模型的性能更差,这表明gnn方法在学习服务节点表示中的有效性。因为deepwalk和node2vec模型主要是获取结构信息,根据web apis的功能网络图进行服务分类。而gnn不仅包含结构信息,还考虑服务节点的特征,并且本发明使用的bgnn方法还成功地捕捉到邻居节点之间的交互信息,显示其优越性。
[0078]
随着类别数的增加,大多数方法的实验性能呈逐渐下降的趋势。这是因为当服务类别数增加,类别中包含的内容信息和所选择的相应特征也随之增加,同时也将包含更多的服务数量少的服务类别,将使得服务分类更加困难。
[0079]
表3不同模型分类性能的比较
[0080][0081]
5.参数分析
[0082]
(1)线性聚合器与双线性聚合器的权重分析。
[0083]
ba是bgnn的核心,本发明通过改变α的值来研究其对bgnn模型性能的影响。由公式(4)可知,α越大表示ba的贡献越大,将α设置为0时,该模型就是只有线性聚合器的普通gnn,将α设置为1时,该模型完全依赖于ba。图4显示bgat-t在api数据集上的1层和2层模型的性能。从图4我们可以得出以下结论:1)在1层和2层的模型中,bgat-t的性能在70.88%到84.6%的范围内变化,这说明α的调整可以使模型达到预期的性能。2)在1层模型中,α取0.7的时候性能最好;在2层模型中,α取1的时候性能最好,说明双线性聚合器的贡献较大。并且在所有的分类情况下,bgat-t的性能优于gat,说明针对这个api数据集,双线性聚合器的节点表征能力优于传统gnn聚合器,它能够捕捉复杂的信息传播方式。
[0084]
(2)多跳邻居服务节点的双线性交互权重分析。
[0085]
本发明通过改变β的值来研究来自不同跳数的双线性聚合信息之间的权重。将β设置为0和1分别表示1跳和2跳邻居的单独建模。如图4所示,bgat-t在β被设置为0.5的时候性能最好,这说明同时包含来自1跳邻居和2跳邻居的成对交互信息可以使该模型获得更好的性能。
[0086]
以上对本发明及其实施方式进行描述,这种描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。总而言之如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。