论文阅读(一)——ServeNet:基于深度神经网络的Web服务分类

都是自己的理解以及借助的翻译!!!如有不对的地方,欢迎指正!!!

原文链接:

ServeNet: A Deep Neural Network for Web Services Classification | IEEE Conference Publication | IEEE Xplore

Github链接:

GitHub - yylonly/ServeNet: Service Classification based on Service Description

论文标题:ServeNet: A Deep Neural Network for Web Services Classification

论文来自:2020 IEEE International Conference on Web Services (ICWS)

摘要:Automated service classifification plays a crucial role in service discovery, selection, and composition. Machine learning has been widely used for service classifification in recent years. However, the performance of conventional machine learning methods highly depends on the quality of manual feature engineering. In this paper, we present a novel deep neural network to automatically abstract low-level representation of both service name and service description to high-level merged features without feature engineering and the length limitation, and then predict service classifification on 50 service categories. To demonstrate the effectiveness of our approach, we conduct a comprehensive experimental study by comparing 10 machine learning methods on 10,000 real-world web services. The result shows that the proposed deep neural network can achieve higher accuracy in classifification and more robust than other machine

learning methods. Index Terms—Deep Learning; Service; Web Services; Service Classifification; Service Discovery

简单来说就是基于深度神经网络实现Web服务分类。在没有特征工程和长度的限制下,自动地将服务名称与服务描述的低级表示抽象为高级合并特征,然后预测服务类别。

  • 背景介绍

近几十年来,软件复用被认为是降低软件开发成本的一种有前途的方法。Web服务提供了一个统一的、松散耦合的集成来重用异构软件组件[1]。尽管近年来服务和云计算取得了进步,但越来越多的高质量和可靠的web服务在公共存储库中可用,这是软件重用的宝贵资源[2]。两个流行的网络服务库是标准的通用描述、发现和集成(UDDI)注册中心[3]和应用程序接口共享平台。这些公共存储库允许服务提供商发布带有其规范的服务,包括自然语言的服务描述、服务名称、URL和搜索关键字(标签或标签)。软件重用的关键是在存储库中找到所需的服务,以满足基于服务规范的需求,这是服务发现的主要关注点。

有两种搜索方法,一是基于关键字,二是基于语义网服务的语义搜索。在实践中,基于关键字的方法是大多数情况下的首选。由于基于关键词的搜索的成功高度依赖于服务关键词的质量,然而,分配的关键字并不总是可靠和充分的。因此,本文提出了一种新的端到端深度神经网络服务分类方法,可以更加提高关键字的质量,从而更好的实现Web服务的分类与搜素。

  • 相关工作

1、回顾传统的机器学习方法,然后比较最新的深度学习方法和新提出的服务分类方法。

该工作使用网络服务描述语言(WSDL)对服务进行聚类,并根据同一聚类中其他服务的标签来预测(丰富)标签。还比较了几种机器学习方法,如朴素贝叶斯,支持向量机(SVM) ,k-最近邻(kNN) 和C4.5 ,用于7个类别的服务分类。它们表明SVM比其他机器学习方法具有最好的精确度。并且采用集成方案,基于服务描述和WSDL将朴素贝叶斯、KNN和C4.5中的分类器进行组合。通过将潜在狄利克雷分配(LDA) 与SVM特征提取相结合,表明LDA-SVM模型在10个类别上可以达到大约90%的精度。然而,当预测包含多标签的web服务时,只能达到不到50%的准确率。当前的服务分类工作严重依赖于特征工程的质量。特征工程利用人类的独创性和先验知识来弥补无法从数据中提取和组织有区别的信息的弱点,这通常既困难又昂贵。

  1. 深度学习

在作者之前的工作[8]中,ServeNet将二维CNN与双向LSTM (BiLSTM)进行叠加,以实现自动特征提取。二维CNN比1D CNN不仅能提取相邻词之间的局部特征,还能提取词内部的小区域(词干)。双LSTM可以提取过去和未来的序列特征。堆叠的二维CNN和双LSTM使ServeNet在基准上获得更好的性能。简而言之,所有堆叠卷积和递归神经网络都可以在其基准上实现最佳的分类精度,因为它们不仅可以通过卷积层提取相邻单词之间的局部特征,还可以通过递归层提取句子的全局特征(长期相关性)。

新提出的ServeNet与原始的ServeNet相比:

  1. ServeNet不仅可以从服务描述中抽象出特征,还可以从服务名称中抽象出特征,然后自动合并成统一的特征,而ServeNet(Original)只使用了服务描述来提取特征。
  2. ServeNet它采用动态的上下文相关的单词嵌入,而ServeNet(Original)使用与上下文无关的嵌入,这使得服务描述的每个单词被嵌入为固定的向量,而不考虑在句子中的位置。
  3. ServeNet使用小批量填充将服务描述和名称填充到相同的长度,而ServeNet(Original)服务描述的输入长度被限制为110个字,并且当服务描述的长度在原始ServeNet中大于110时,任何服务都被从数据集中移除。
  4. ServeNet还为输入计算嵌入掩码,可以表示句子的有效信息。

 

  • ServeNet模型

ServeNet包含四个部分:a)服务描述嵌入及其特征提取,b)服务名称嵌入及其特征提取,c)特征合并,d)任务层。

 

1、服务描述嵌入与其特征提取

它是一个预先训练好的语言模型,可以根据词的上下文将描述的一个词转换成n维向量。此外,还对每个小批量集合使用动态填充来接受任意长度的输入。

使用BERT模型作为嵌入层,通过提供一个句子,BERT可以输出两种类型的嵌入:

(1)fbert pool将一个句子嵌入到一个向量中,它用于嵌入一个短句子,其中不需要进一步的特征提取;

(2)fbert seq将句子的每个单词嵌入到一个向量中,该向量输出一个嵌入矩阵。该矩阵保持每个单词的顺序和表示,如果需要,可以基于该矩阵进行进一步的特征提取。

 

2、服务名称嵌入及其特征提取

服务名称通常包含几个字,不需要进一步复杂的特征提取。

 

3、特征合并

在检索服务描述h1和服务名h2的特征向量后,我们将它们合并成一个统一的特征。在所提出的体系结构中,这些特征的长度是相同的,我们采用简单的向量加法进行特征合并。特征合并的输出是:

h = h1+ h2

4、任务层

任务层完成最终的分类任务。它包含一个全连接前馈神经网络ffc,从特征提取层输入高级表示h,输出服务分类l

l = ff c(h)

ai+1 = σ(Wi ai + bi)

l = ff c · (flstm · fcnn · fbert seq(x1) + ffull · fbert pool(x2))

超参数包括:网络超参数和训练超参数。

  • 评价

1、数据集

(1)服务收集:Web服务是从API平台收集的,清理排除了标题、描述或目录为空的服务。在这一基本清理之后,数据集保留了15340个服务和401个类别,每个服务由20个描述符指定。

(2)服务类别分析:消除了一次性、少量、小规模的分类,保留了大规模的分类,使数据集更加平衡。

 

(3)训练与测试数据选择:采用朴素贝叶斯进行实验,结果表示,精度接近。

  

(4)Mini-batch上的动态填充:对每个小批量使用动态填充来接受任意长度的输入,因为LSTM和伯特可以在一个批量中接受任意时间步长。与通过在训练和测试阶段设置BatchSize = 1来使模型接受任意长度的输入的更简单但低效的方法相比,首先根据服务描述的长度对服务进行排序,然后将每个小批量中的服务嵌入到相同长度的nLen中,nLEn是小批量集中的最大长度。此外,还在TensorFlow源代码中将ServeNet的输入形状从(maxLen,)替换为(None,)。经过这些处理后,ServeNet可以接受任意长度的输入,而不会损失训练效率。

2、评估指标

Top-N用于评估分类模型。例如,Top-1精度通常用于评估二元分类模型。多类别分类模型(类别> 10,如ImageNet)使用前5名评估指标。在提供带有名称和描述的服务时,ServeNet预测vector lpre中每个类别的概率。当前5个预测标签包含目标类别时,前5个预测是正确的。c类的前5名准确度为:

 

其中,Numtop5校正是正确预测的数量,Numcis是c类服务的数量。整个数据集的前5个精度是:

其中Numcategoriesis是数据集中类别的数量。前1名的准确性类似于前5名的准确性,除了正确的预测意味着前1名的预测与目标类别目标相同。

3、实验结果与结论

(1)CNN的准确率最低为58.46%,这意味着仅考虑相邻词之间的局部特征对于服务分类问题是无效的。新提出的ServeNet在Top5准确率91.58%和top-1准确率69.95%上都可以达到最高的测试准确率,因为它可以通过上下文相关的嵌入从服务名称和描述中自动提取特征。

如果类别在名称和描述中包含明确的主题特征,如事件,则基于LDA的SVM在这些类别上具有良好的性能。如果类别包含许多服务,如工具、金融和消息传递,射频可以在这些类别中达到最高。此外,诸如社交、企业、电话和政府等类别在描述中不包含太多的长期依赖关系,所以朴素贝叶斯工作得很好。为了更直观地比较所有类别的准确性,图2显示了一个雷达图。它为每个类别显示一条闭合的折线。所提出的服务网络位于雷达的最外侧,具有最大的面积,这意味着它具有优于所有其他服务分类方法的最佳性能。

 

(2)局限性:ServeNet在图2和表四的服务分类问题中,准确率最高,方差最低,但在数据点数量有限的类别上,仍然不能很好地工作。此外,作者发现失败的预测主要是因为那些服务名称和描述不包含关于目标类别的信息,而是包含其他类别的信息类别。一种可能的方法是发明一种更先进的模型,使神经网络能够发现这些冲突。但更有效的方法是在实践中收集更多高质量的数据。迁移学习是处理相关领域间小数据问题的另一种有前途的方法。虽然网络服务和应用程序是软件开发的不同概念。具体来说,web服务是软件开发级别的可重用的应用编程接口。应用是面向最终用户的产品。苹果和安卓等应用商店包含更多带有应用名称、描述和类别的数据点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值