CN117591726A - 基于多任务学习的Web服务包推荐方法、系统、介质及设备 - Google Patents
基于多任务学习的Web服务包推荐方法、系统、介质及设备 Download PDFInfo
- Publication number
- CN117591726A CN117591726A CN202311557317.0A CN202311557317A CN117591726A CN 117591726 A CN117591726 A CN 117591726A CN 202311557317 A CN202311557317 A CN 202311557317A CN 117591726 A CN117591726 A CN 117591726A
- Authority
- CN
- China
- Prior art keywords
- mashup
- service package
- service
- text
- basic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000003993 interaction Effects 0.000 claims abstract description 27
- 230000006870 function Effects 0.000 claims description 61
- 239000013598 vector Substances 0.000 claims description 57
- 238000003860 storage Methods 0.000 claims description 44
- 238000013527 convolutional neural network Methods 0.000 claims description 36
- 238000012549 training Methods 0.000 claims description 25
- 238000009826 distribution Methods 0.000 claims description 18
- 230000004927 fusion Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 230000002776 aggregation Effects 0.000 claims description 7
- 238000004220 aggregation Methods 0.000 claims description 7
- 238000007477 logistic regression Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 abstract description 10
- 238000011161 development Methods 0.000 abstract description 8
- 238000012545 processing Methods 0.000 abstract description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 91
- 238000004422 calculation algorithm Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000004931 aggregating effect Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9532—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种基于多任务学习的Web服务包推荐方法、系统、介质及设备。本发明针对多粒度的服务推荐场景,通过历史Mashup与Web API的调用记录构建可重用服务包并学习其组合语义,通过语义特征提取组件和特征交互组件将基于内容和基于历史调用的模型进行融合,并构建多任务学习框架进行服务包推荐。相比于传统的单一Web API服务推荐,本发明可增加任务处理数量,解决多个Web API服务组成的服务包语义提取问题,能提高开发人员的开发效率,能够准确且高效地提供一系列Web API服务。
Description
技术领域
本发明属于Web服务推荐领域,针对Mashup开发过程中,需要Web API服务组合调用以实现功能需求的问题,提出一种基于多任务学习的服务包推荐方法。
背景技术
Mashup开发是一种以开发人员为中心的技术,它可以将不同的Web API服务组合在一起,以创建具有更全面功能的Web应用程序。如今越来越多的互联网公司都在为开发人员提供Web API服务,使得开发变得容易和高效。
随着互联网快速的发展和用户需求的多样化,发布到互联网上的Web API服务也迅速增加。面对大量的Web API服务,既要考虑到用户的需求,又要考虑Web API服务在代码底层是否兼容等问题,兼顾多种因素才能更好地为开发人员进行推荐。传统的推荐算法主要关注单一任务,会造成效率低下、准确度低的问题。Web API服务包推荐则需要同时考虑多个相关任务,使用多任务学习,能够高效地为用户提供更全面、精准的服务。
现有的推荐算法如基于内容的推荐、协同过滤、深度学习等方法尽管能够帮助用户发现有用的服务,但它们不能解决具有重复功能的服务如何选取,并且很少考虑到服务之间的关联性。例如,在开发一个简单的天气预报的Mashup应用时,在调用天气预报WebAPI时,首先需要知道某个位置的经纬度,因此需要先调用提供定位服务的Web API。由于服务在现有的Mashup上的Web API服务的共性表明了服务之间的内部关系,根据服务之间的内部关联提供一系列试图覆盖Mashup的所有功能需求的互补服务,即服务包,能够提高开发效率,符合实际的应用需求。
传统的单一服务推荐只需要考虑服务包自身的功能语义,然而,一个服务包可以生成一个组合语义,用来描述它们的集成功能,这个过程是十分复杂的。服务包的语义不能由任意一个服务来代表其语义,也不是由其组成服务的语义的一个简单合并。学习服务包的组合语义仍未被探索。本发明经分析提出一种有效方式,将EDU与服务包之间的对应关系进行分类,对于不同类型采取不同算法策略进行处理,实现服务包组合语义分配。
此外,在文本特征的学习上,传统的建模方法是建立在词袋模型方法上的,但是该模型忽略了文本中的语序和语法,并且需要人工干预特征选择。随着深度学习技术的出现,卷积神经网络在文本特征学习得到广泛关注和研究,使得文本特征学习得到更好的学习效果,能够快速处理高维数据,并且利用单词上下文来实现更好的语义表示。
发明内容
本发明针对现有单任务Web API服务推荐的不足,提出了一种基于多任务学习的服务包推荐方法。该方法根据以往Mashup和Web API的调用记录来发现潜在的可重用服务包,并从现有的功能文本描述库中学习它们的组合语义,并将它们保存到一个存储库中。基于构建的语义服务包存储库,本发明采用了一个多任务学习框架来进行服务包的推荐,在满足Mashup开发需求的情况下,推荐出构建Mashup所需的Top-k个服务包。
为实现上述发明目的,本发明方法的具体技术方案如下:
第一方面,本发明提供了一种基于多任务学习的Web服务包推荐方法,其包括如下步骤:
S1、针对Mashup数据集,分别获取其中每个Mashup以及Mashup中每个Web API各自的功能描述文本,并将Mashup的功能描述文本划分为基本话语单元序列,生成Mashup中每个基本话语单元的第一功能语义向量和每个Web API的功能描述文本的第二功能语义向量;
S2、针对Mashup数据集中的每个Mashup,获取由其历史调用的Web API集合划分形成的服务包集合;将Mashup数据集中所有Mashup划分形成的服务包加入服务包存储库;
S3、针对Mashup数据集中的每个Mashup,基于功能语义向量,计算Mashup的每个基本话语单元与对应服务包集合中每个服务包的功能语义相似度,若一个基本话语单元与一个服务包的功能语义相似度超过第一阈值,则将这个基本话语单元分配给这个服务包,若一个基本话语单元与任意一个服务包的功能语义相似度都没有超过第一阈值,则将这个基本话语单元分配给所述服务包集合中的每一个服务包;每个Mashup完成所有基本话语单元的分配后,将每个服务包分配到的基本话语单元集合剔除不相关基本话语单元后作为这个服务包的组合语义文本;
S4、利用Mashup数据集训练Web服务包推荐模型;所述Web服务包推荐模型中,Mashup的功能描述文本经过第一CNN卷积神经网络获得Mashup文本特征UMSF,所有服务包的组合语义文本经过第二CNN卷积神经网络获得服务包文本特征VPS,服务包文本特征VPS经过展平操作后拼接至Mashup文本特征UMSF上一并输入多层感知机中,得到高阶交互特征UPSF;再将服务包存储库中所有服务包的流行度输入全连接层得到流行度特征UP,将流行度特征UP、Mashup文本特征UMSF和高阶交互特征UPSF拼接后得到融合特征UFIC;最后将Mashup文本特征UMSF和融合特征UFIC进一步拼接聚合后分别输入第一线性分类器和第二线性分类器中,由第一线性分类器输出所有服务包的推荐概率,由第二线性分类器输出Mashup的类别标签;
S5、将待构建的Mashup的功能需求描述文本输入经过训练的Web服务包推荐模型中,由第一线性分类器输出所述服务包存储库中每个服务包的推荐概率,进而执行服务包推荐。
作为上述第一方面的优选,所述S1中,针对Mashup数据集中每个Mashup,利用经过训练的逻辑回归分类器识别该Mashup的功能描述文本中的基本话语单元边界,进而将该Mashup的功能描述文本划分为一系列基本话语单元,然后再对每个基本话语单元进行LDA主题建模,获得每个基本话语单元的主题分布向量作为其第一功能语义向量;同时,对于该Mashup中每个Web API的功能描述文本也进行LDA主题建模,获得的主题分布向量作为对应Web API的第二功能语义向量。
作为上述第一方面的优选,所述S2中,针对Mashup数据集中的每个Mashup,将其历史调用的Web API集合划分为一系列服务包,进而构成该Mashup对应的服务包集合,其中每个服务包至少包含1个Web API;最终将所有Mashup对应的服务包集合汇聚后,对重复的服务包进行去重,形成服务包存储库。
作为上述第一方面的优选,所述S3中,一个基本话语单元与一个服务包的功能语义相似度计算方法为:遍历这个服务包中每个Web API,将这个基本话语单元的第一功能语义向量与每个Web API的第二功能语义向量计算相似度,然后取相似度的最大值作为这个基本话语单元与这个服务包的功能语义相似度。
作为上述第一方面的优选,所述S3中,当完成所有基本话语单元的分配后,对每个服务包赋予组合语义文本的方法为:对每个服务包上分配到的基本话语单元集合规模进行统计,若集合规模低于第二阈值,则直接将这个基本话语单元集合中的所有基本话语单元作为这个服务包的组合语义文本,若集合规模不低于第二阈值,则对这个基本话语单元集合中的所有基本话语单元进行聚类,将类簇大小低于第三阈值的类簇视为不相关语义进行剔除,而其余类簇中所有基本话语单元作为这个服务包的组合语义文本。
作为上述第一方面的优选,所述第一阈值至少为0.7,所述第二阈值为2~4,所述第三阈值为第二阈值的一半。
作为上述第一方面的优选,利用Mashup数据集训练Web服务包推荐模型时,每个Mashup需要构建两个标签,第一个标签为该Mashup与所述服务包存储库中所有服务包之间的调用情况,若一个服务包为该Mashup历史调用的Web API集合的子集,则视为该Mashup与这个服务包之间存在调用,否则视为不存在调用;第二个标签为该Mashup的类别标签;第一个标签和第二个标签分别用于监督训练第一线性分类器和第二线性分类器。
第二方面,本发明提供了一种基于多任务学习的Web服务包推荐系统,其包括:
预处理模块,用于针对Mashup数据集,分别获取其中每个Mashup以及Mashup中每个Web API各自的功能描述文本,并将Mashup的功能描述文本划分为基本话语单元序列,生成Mashup中每个基本话语单元的第一功能语义向量和每个Web API的功能描述文本的第二功能语义向量;
服务包获取模块,用于针对Mashup数据集中的每个Mashup,获取由其历史调用的Web API集合划分形成的服务包集合;将Mashup数据集中所有Mashup划分形成的服务包加入服务包存储库;
组合语义生成模块,用于针对Mashup数据集中的每个Mashup,基于功能语义向量,计算Mashup的每个基本话语单元与对应服务包集合中每个服务包的功能语义相似度,若一个基本话语单元与一个服务包的功能语义相似度超过第一阈值,则将这个基本话语单元分配给这个服务包,若一个基本话语单元与任意一个服务包的功能语义相似度都没有超过第一阈值,则将这个基本话语单元分配给所述服务包集合中的每一个服务包;每个Mashup完成所有基本话语单元的分配后,将每个服务包分配到的基本话语单元集合剔除不相关基本话语单元后作为这个服务包的组合语义文本;
推荐模型训练模块,用于利用Mashup数据集训练Web服务包推荐模型;所述Web服务包推荐模型中,Mashup的功能描述文本经过第一CNN卷积神经网络获得Mashup文本特征UMSF,所有服务包的组合语义文本经过第二CNN卷积神经网络获得服务包文本特征VPS,服务包文本特征VPS经过展平操作后拼接至Mashup文本特征UMSF上一并输入多层感知机中,得到高阶交互特征UPSF;再将服务包存储库中所有服务包的流行度输入全连接层得到流行度特征UP,将流行度特征UP、Mashup文本特征UMSF和高阶交互特征UPSF拼接后得到融合特征UFIC;最后将Mashup文本特征UMSF和融合特征UFIC进一步拼接聚合后分别输入第一线性分类器和第二线性分类器中,由第一线性分类器输出所有服务包的推荐概率,由第二线性分类器输出Mashup的类别标签;
服务包推荐模块,用于将待构建的Mashup的功能需求描述文本输入经过训练的Web服务包推荐模型中,由第一线性分类器输出所述服务包存储库中每个服务包的推荐概率,进而执行服务包推荐。
第三方面,本发明提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上述第一方面任一方案所述的基于多任务学习的Web服务包推荐。
第四方面,本发明提供了一种计算机电子设备,其包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如上述第一方面任一方案所述的基于多任务学习的Web服务包推荐。
相对于现有技术而言,本发明的有益效果如下:
本发明提出的服务包推荐方法从多粒度场景出发,单一的Web API服务推荐已经无法满足开发Mashup的需求,通过历史Mashup与Web API的调用记录构建可重用服务包并学习其组合语义,通过语义特征提取组件和特征交互组件将基于内容和基于历史调用的模型进行融合,并构建多任务学习框架进行服务包推荐方法。相比于传统的单一Web API服务推荐,本发明可增加任务处理数量,解决多个Web API服务组成的服务包语义提取问题,能提高开发人员的开发效率,能够准确且高效地提供一系列Web API服务。
附图说明
图1为基于多任务的服务包推荐框架图。
图2为组合语义学习组件结构图。
图3为组合语义服务包存储库构建算法流程图。
图4为语义特征提取组件1结构图。
图5为语义特征提取组件2结构图。
图6为特征交互学习组件结构图。
具体实施方式
为使本发明的上述步骤和技术优势更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在本发明的一个较佳实施例中,提供了一种基于多任务学习的Web服务包推荐方法,其包括如下步骤:
S1、针对Mashup数据集,分别获取其中每个Mashup以及Mashup中每个Web API各自的功能描述文本,并将Mashup的功能描述文本划分为基本话语单元(EDU)序列,生成Mashup中每个EDU的第一功能语义向量和每个Web API的功能描述文本的第二功能语义向量。
在本发明的实施例中,上述步骤S1中,针对Mashup数据集中每个Mashup,利用经过训练的逻辑回归分类器识别该Mashup的功能描述文本中的EDU边界,进而将该Mashup的功能描述文本划分为一系列EDU组成的EDU序列,然后再对EDU序列中每个EDU进行LDA主题建模,获得每个EDU的主题分布向量作为其第一功能语义向量;同时,对于该Mashup中每个WebAPI的功能描述文本也进行LDA主题建模,获得的主题分布向量作为对应Web API的第二功能语义向量。
S2、针对Mashup数据集中的每个Mashup,获取由其历史调用的Web API集合划分形成的服务包集合;将Mashup数据集中所有Mashup划分形成的服务包加入服务包存储库。
在本发明的实施例中,上述步骤S2中,针对Mashup数据集中的每个Mashup,将其历史调用的Web API集合划分为一系列服务包,进而构成该Mashup对应的服务包集合,其中每个服务包至少包含1个Web API;最终将所有Mashup对应的服务包集合汇聚后,对重复的服务包进行去重,形成服务包存储库。
S3、针对Mashup数据集中的每个Mashup,基于功能语义向量,计算Mashup的每个EDU与对应服务包集合中每个服务包的功能语义相似度,若一个EDU与一个服务包的功能语义相似度超过第一阈值,则将这个EDU分配给这个服务包,若一个EDU与任意一个服务包的功能语义相似度都没有超过第一阈值,则将这个EDU分配给所述服务包集合中的每一个服务包;每个Mashup完成所有EDU的分配后,将每个服务包分配到的EDU集合剔除不相关EDU后作为这个服务包的组合语义文本。
在本发明的实施例中,上述步骤S3中,一个EDU与一个服务包的功能语义相似度计算方法为:遍历这个服务包中每个Web API,将这个EDU第一功能语义向量与每个Web API的第二功能语义向量计算相似度,然后取相似度的最大值作为这个EDU与这个服务包的功能语义相似度。
在本发明的实施例中,上述步骤S3中,当完成所有EDU的分配后,对每个服务包赋予组合语义文本的方法为:对每个服务包上分配到的EDU集合规模进行统计,若集合规模低于第二阈值,则直接将这个EDU集合中的所有EDU作为这个服务包的组合语义文本,若集合规模不低于第二阈值,则对这个EDU集合中的所有EDU进行聚类,将类簇大小低于第三阈值的类簇视为不相关语义进行剔除,而其余类簇中所有EDU作为这个服务包的组合语义文本。
本发明的上述三个阈值均为可优化的超参数,具体取值可以根据实际的效果进行调整。在本发明的实施例中,第一阈值至少为0.7,上述第二阈值为2~4,上述第三阈值为第二阈值的一半。
S4、利用Mashup数据集训练Web服务包推荐模型;所述Web服务包推荐模型中,Mashup的功能描述文本经过第一CNN卷积神经网络获得Mashup文本特征UMSF,所有服务包的组合语义文本经过第二CNN卷积神经网络获得服务包文本特征VPS,服务包文本特征VPS经过展平操作后拼接至Mashup文本特征UMSF上一并输入多层感知机(MLP)中,得到高阶交互特征UPSF;再将服务包存储库中所有服务包的流行度输入全连接层得到流行度特征UP,将流行度特征UP、Mashup文本特征UMSF和高阶交互特征UPSF拼接后得到融合特征UFIC;最后将Mashup文本特征UMSF和融合特征UFIC进一步拼接聚合后分别输入第一线性分类器和第二线性分类器中,由第一线性分类器输出所有服务包的推荐概率,由第二线性分类器输出Mashup的类别标签。
在本发明的实施例中,上述利用Mashup数据集训练Web服务包推荐模型时,每个Mashup需要构建两个标签,第一个标签为该Mashup与所述服务包存储库中所有服务包之间的调用情况,若一个服务包为该Mashup历史调用的Web API集合的子集,则视为该Mashup与这个服务包之间存在调用,否则视为不存在调用;第二个标签为该Mashup的类别标签;第一个标签和第二个标签分别用于监督训练第一线性分类器和第二线性分类器。
S5、将待构建的Mashup的功能需求描述文本输入经过训练的Web服务包推荐模型中,由第一线性分类器输出所述服务包存储库中每个服务包的推荐概率,进而执行服务包推荐。
下面通过一个实施例来进一步展示本发明上述S1~S5所示的基于多任务学习的服务包推荐方法的具体实现。
实施例
本实施例中,基于多任务学习的服务包推荐方法具体实施方式主要分5步,步骤(1)、根据修辞结构理论将文本描述划分为EDU序列,对服务包组合语义进行学习,构建语义服务包存储库;(2)利用卷积神经网络提取语义特征;(3)根据因子分解技术,学习Mashup和服务包之间交互特征;(4)采用多任务学习的方法来训练Web服务包推荐模型,对得到的特征进行聚合并构建预测任务;(5)利用训练得到的Web服务包推荐模型进行服务包推荐。该推荐方法的框架如图1所示,可分解为四个组件:组合语义学习组件、语义特征提取组件、特征交互组件和多任务学习组件。各个组件的主要功能如下:
组合语义学习组件。由于服务包的组合语义不能单单只是其组合的Web API的功能语义的集合,因此需要对构建的可重用的服务包学习其组合语义。同时服务包是从Mashup和API的历史调用记录中划分构建出来的,其中也涉及到构建服务包的算法。
语义特征提取组件。针对构建出来的服务包存储库和Mashup存储库,由于其功能描述文本包含的信息比其他元数据更多,因此需要对其进行文本建模。通过卷积神经网络(CNN)来学习其中的语义特征。
特征交互学习组件。Mashup与API的历史调用记录中包含着丰富的信息,在服务推荐场景下,根据调用记录构建Mashup与服务包的交互记录,采用协同过滤技术来进行特征交互学习。
多任务学习组件。根据其他三个组件的结果采用多任务框架构建服务包推荐模型,其中主任务是针对Mashup的需求的可重用的服务包推荐,副任务是Mashup的标签推荐。通过对两个任务的损失函数进行聚合并施加正则化约束对模型进行训练。
为便于叙述和理解,在叙述各步骤的具体过程之前,对本实施例中描述用到参数以及概念的相关定义说明如下:
m:Mashup;
e:EDU;
p:服务包;
Sm:Mashup m所调用的API集合;
Pm:所有可构成的服务包的集合;
Dm:具有不同功能的服务包的集合;
Em:Mashup m划分的EDU集合;
L:每个服务包至少包含Sm中的一个API的最多包含个数;
用户:在服务推荐中开发者担任着用户的角色,他们会根据自己想构建的Mashup应用程序,给出一定的关键字和文本描述。
服务:在Web API的服务推荐场景中,不同的Web API可以看作是多种的服务,Mashup应用程序往往是由多个Web API组成,这些Web API相互协作满足开发者提出的功能性需求。
服务包:服务包往往也是由多个Web API组成,与Mashup不同的是,服务包通常包含的Web API数量较少,且只提供单一功能,构成服务包的Web API之间相互兼容,多个服务包可以构成Mashup,且满足Mashup多种功能性需求。
特征:在服务推荐中,特征是用于描述和表示服务和用户的重要信息。服务的特征可以包括Web API的功能文本描述、类别信息、地理位置和评价得分等,还包括了Web API流行度、兼容性等隐含特征。用户的特征可以包括开发者的偏好、Mashup的功能需求文本和历史调用记录等。
推荐算法:推荐算法则是一种根据预训练的模型来预测用户对服务的兴趣度和推荐相应服务的方法,在服务推荐中,推荐算法是用于从服务库中选择最适开发者需求的服务的一种计算方法。多种不同的推荐算法会使用不同的特征和模型来预测用户的行为和推荐服务。
推荐结果:推荐结果是指根据开发者提出的构建Mashup的功能需求描述来推荐的一组候选的服务列表。在不同粒度服务推荐场景下,推荐结果或有不同,例如,单一Web API推荐是推荐满足需求的Top-k个Web API,而多个Web API推荐则是推荐满足需求的Top-k个服务包。
基于上述定义,下面继续对本发明的具体步骤进行详细描述:
步骤(1).学习Mashup数据集中Mashup和Web API的功能描述文本,并且对服务包的组合语义进行学习,如图2所示,其过程如下:
步骤(1.1)、针对Mashup数据集,获取其中每个Mashup和Mashup中每个Web API的功能描述文本,为将Mashup的功能描述文本划分为基本话语单元EDU序列。对于Mashup和Web API来说,功能描述文本通常是一段长语句,而且概括了其主要提供的服务,特别是对于Mashup来说,则是概括了其组成的多个API的组合功能。在修辞结构理论RST中,假设话语树DT代表自然文本的话语,在DT中,叶子是连续的原子文本跨度,称为基本话语单元EDUs,这是一种连接相邻EDUs的修辞关系(例如,细化)。借助这种思想,本发明可以把功能描述文本划分为一个EDUs(e1,e2,…)的序列,其中EDU ei则表示构成整个文本描述的一个基本话语单元。带有参数θ的逻辑回归分类器能够确定一个文本的EDU边界,分类器通过公式定义如下:
P(y|w,θ)=Bernoulli(y|Sigmoid(θTx))
其中:Bernoulli表示伯努利函数,单词w是EDU的边界单词,则y=1,否则y=0,x表示从词汇化语法树中提取文本描述中单词w的词法特征向量。训练上述逻辑回归分类器的L2正则化的损失函数公式定义为:
其中:y(i)表示单词w(i)的可用变量,n表示候选服务的个数,α表示API服务,模型参数θ可在训练过程中通过基于标准RST-D语料库的有限内存BFGS拟合算法学习得到。
另外,LDA模型可以用来对文档的隐藏主题进行建模,它是一个发现一系列文档主题的统计模型。因此本实施例采用该LDA模型在划分的EDU上进行主题建模来将其表示为主题的混合,其中每个主题都是单词上的概率分布,可代表功能语义。具体而言,针对Mashup数据集中每个Mashup,利用经过训练的逻辑回归分类器识别该Mashup的功能描述文本中的EDU边界,进而将该Mashup的功能描述文本划分为一系列EDU,然后再对EDU序列中每个EDU进行LDA主题建模,获得每个EDU的主题分布向量作为其第一功能语义向量;同时,对于该Mashup中每个Web API的功能描述文本也进行LDA主题建模,获得的主题分布向量作为对应Web API的第二功能语义向量。
步骤(1.2)、服务包可以看作是Mashup的子集,相比于Mashup,它可以提供单一的功能,但是具有可重用性。因此对Mashup数据集中的每个Mashup都可以划分为可重用的服务包。在Mashup存储库中,出现频率越高的服务包,其被可重用的概率越高,且服务包中API的兼容性也越高。划分过程可以看作是一个组合优化问题,如果有n个候选服务,并且一个包的最大长度设置为L,则将有种可能的组合,该划分问题变为从Pm中找到不重复地覆盖Sm中所有元素的最终的Dm,这本质上是一个集合分区问题SPP。在本实施例中,针对Mashup数据集中的每个Mashup,可利用Gurobi工具包进行服务包集合划分,将其历史调用的Web API集合划分为一系列服务包,进而构成该Mashup对应的服务包集合,其中每个服务包最少需要包含1个Web API。最终将所有Mashup对应的服务包集合汇聚后,对重复的服务包进行去重,形成服务包存储库。服务包存储库中的所有服务包即为后续服务包推荐模型的推荐对象。
步骤(1.3)、将划分的EDU分配给服务包赋予组合语义,一个EDU和一个服务包的对应关系十分复杂,既与其组成的API的功能语义有关,也与构成的服务包的功能组合有关。经过分析发现,其对应关系可以分为两种:直接语义关系与间接语义关系。直接语义关系表示当EDU的语义与服务包中的API的语义有紧密相关时,EDU可以分配给该服务包;间接语义关系表示EDU和服务包之间不存在直接语义关系,服务包的组合语义不能由其中构成的任何一个API来提供,而是应该考虑其API组合之后的功能语义。基于以上分析,定义一个EDU与一个服务包的功能语义相似度计算方法为:遍历这个服务包中每个Web API,将这个EDU的第一功能语义向量与每个Web API的第二功能语义向量计算相似度,然后取相似度的最大值作为这个基本话语单元与这个服务包的功能语义相似度。具体而言,一个Mashup描述文本中划分的EDU(记为e)与一个服务包(记为p)之间的功能语义相似度的计算公式如下:
当EDU的语义与Web API功能语义相似度Sim(p,e)大于第一阈值γ时,则可以认为他们之间存在直接语义关系,将EDU e的语义分配给服务包p,va是服务包p中的一个WebAPI a的主题向量,ve是EDU e的主题向量。
当EDU的语义与所有服务包内的Web API功能语义相似度不大于阈值γ时,则可以认为他们之间存在间接语义关系。此时,它们之间的关系有两种可能性。一种可能性是,这个EDU与服务包完全不相关。另一种可能性是,EDU的语义可以表示所有服务的集体语义,而不是包中任何单个服务的语义。由此,如果一个Mashup的EDU e与任意一个服务包p的功能语义相似度Sim(p,e)都没有超过第一阈值γ时,需要首先将该EDU分配给这个Mashup划分出的服务包集合中所有的服务包。
由此,一个Mashup中的EDU会被逐渐划分至不同的服务包上,待每个Mashup完成所有EDU的分配后,每个服务包上都会分配到一系列代表语义的EDU,将每个服务包分配到的EDU集合通过聚类来过滤掉那些不相关的EDU,保留下来的EDU即可作为这个服务包的功能语义。下面对聚类的过程进行详细描述。
对每个服务包上分配到的EDU集合规模进行统计,若集合规模低于代表聚类样本最低数量的第二阈值,则直接将这个基本话语单元集合中的所有基本话语单元作为这个服务包的组合语义文本,若集合规模不低于第二阈值,则对这个基本话语单元集合中的所有基本话语单元进行聚类,如果类簇大小很小则视为离散语义,因此将类簇大小低于第三阈值的类簇视为不相关语义进行剔除,而其余类簇中所有基本话语单元作为这个服务包的组合语义文本。在本实施例中,第一阈值为0.8,第二阈值为2,第三阈值为第二阈值的一半。
对于给定的服务包p,每个语义EDU是一个T维的向量,k-means算法以最小化平方误差,将这些语义划分为大小k的语义集合{sc1,sc2,…sck},公式定义为:
其中是语义集群sci的平均向量,簇数k由模型训练制定,公式使用欧氏距离作为度量。
本实施例中采用k-means算法实现聚类,该算法通过两个步骤交替进行:(1)将每个语义分配给均值欧氏距离最小的簇;(2)计算新的方法作为新簇中的簇心。当赋值不再改变时,该算法就会收敛。因此,如果集群的大小达到了预定义的阈值水平,则可以视为组合语义。认为在聚类过程中,不相关的语义通常是分散的,因此会在迭代过程中被逐步删除。
经过上述流程,为每个服务包分配了组合语义,即EDU的组合,同时构建了可重用服务包存储库,包括每个服务包的自定义名称及组合语义,以便于之后的特征提取和多任务学习。组合语义服务包存储库构建算法流程如图3所示。
另外,后续Web服务包推荐模型的推荐对象是前述服务包存储库中所有服务包,即模型会对服务包存储库中每个服务包是否被推荐输出一个概率值。该Web服务包推荐模型的模型结构先概述如下:Mashup的功能描述文本经过第一CNN卷积神经网络获得Mashup文本特征UMSF,所有服务包的组合语义文本经过第二CNN卷积神经网络获得服务包文本特征VPS,服务包文本特征VPS经过展平操作后拼接至Mashup文本特征UMSF上一并输入多层感知机中,得到高阶交互特征UPSF;再将服务包存储库中所有服务包的流行度输入全连接层得到流行度特征UP,将流行度特征UP、Mashup文本特征UMSF和高阶交互特征UPSF拼接后得到融合特征UFIC;最后将Mashup文本特征UMSF和融合特征UFIC进一步拼接聚合后分别输入第一线性分类器和第二线性分类器中,由第一线性分类器输出所有服务包的推荐概率,由第二线性分类器输出Mashup的类别标签。
因此为了利用Mashup数据集训练Web服务包推荐模型,需要对每个Mashup需要构建两个标签,第一个标签为该Mashup与所述服务包存储库中所有服务包之间的调用情况,若一个服务包为该Mashup历史调用的Web API集合的子集,则视为该Mashup与这个服务包之间存在调用,否则视为不存在调用;第二个标签用于进行辅助训练,具体为该Mashup的类别标签。第一个标签和第二个标签分别用于监督训练推荐模型的两个线性分类器。
下面通过步骤(2)~(4)来详细描述该Web服务包推荐模型的具体构建以及训练方式。
步骤(2)、提取语义特征,使用卷积神经网络模型CNN对Mashup的文本单词进行文本建模,一是CNN可以自动提取特征,通过一种简单的数据增强策略带来更好的学习效果,二是CNN可以通过共享卷积核来快速处理高维数据,并且利用单词上下文来实现更好的语义表示,结构如图4所示。CNN的核心思想是从由几个单词组成的滑动窗口中捕获局部特征。对于语义组件,它可以自动组合和过滤特征,以获得不同抽象层次的语义信息,由于卷积核大小的限制,这种操作能够有效地捕捉到文本中的局部特征。Em=lookup_table(m)表示对应于Mashup m的文本的单词嵌入矩阵,其中lookup_table是嵌入的原始操作,单词向量d的维数由GloVe和Word2Vec确定,在卷积层中的一个卷积核,首先在wsj大小的单词窗口上滑动进行卷积操作,公式定义为:
gi=Relu(GiEm+bi)
其中,bi是偏置项,并使用Relu作为激活函数,经过卷积运算后,对每个卷积核得到一个特征映射gi,对所有特征映射执行最大池化操作,将已汇集的特征进行连接,公式定义为:
ej=[MaxPooling(gi);…;MaxPooling(gI)]
其中,I是卷积核的数量,其中ej对应于大小为wsj的单词窗口的结果,将e输入到一个全连接层,以实现进一步的非线性变换,公式定义为:
UMSF=sigmoid(W0e+b0)
其中W0为权值矩阵,b0为偏置项,sigmoid为激活函数;
通过组合语义学习组件,获得了可重用的服务包存储库,其中包含了服务包的元数据,如:类别信息、组合语义文本等,这些信息也可以作为模型输入来增强服务包的嵌入,因此增加了第二个语义特征提取组件作为服务包嵌入的前导层,如图5所示。组合语义学习组件分配的EDUs经过预处理后得到VPS作为模型输入,并增加一个单独的嵌入层来映射服务包的标签信息VPC,为每个服务包连接这两个向量VPSF={[VPS;VPC]|p∈P},输入模型进行训练。
步骤(3)、基于历史调用记录构建Mashup与服务包之间的调用矩阵,过程如图6所示。服务包是由一定数量的Web API构成的,因此可以基于历史调用记录来构建Mashup与服务包之间的调用矩阵。给定Mashup m的API调用集合Sm={a1,a2,…,an}与服务包p的API调用集合Sp={a1,a2,…,aL},对于Sp中的每一个API都存在于Sm中,即则认为Mashupm与服务包p之间存在一条调用记录,同时将Sm中出现过的API删除,依次迭代直到生成所有Mashup与服务包之间的调用记录。基于生成的调用记录,即可生成前述训练推荐模型所需的第一个标签,即确认该Mashup与所述服务包存储库中所有服务包之间的调用情况,并生成训练所需的硬标签。
特征交互过程在Mashup和服务包之间的调用矩阵上进行扩展,获得Mashup和服务包在同一空间中的嵌入表示,UMSF∈Rk为Mashup m的嵌入向量,V∈R|P|×k为所有服务包的嵌入向量,将Mashup和服务包的嵌入向量连接在一起,公式定义为:
UConcat=[UMSF;Flatten(VPSF)]
其中,Flatten(V)是一个将V转换为一维向量的扁平操作;
将UConcat输入一个多层感知器MLP,学习Mashup和服务包之间的特征的高阶交互,公式定义为:
UPSF=δ(Wz(…δ(W1UConcat+b1)…+bz)
其中Wz和bz表示MLP的第z层的权值和偏置向量,δ为激活函数;MLP可以在不同的抽象层次上学习交互特征。随着层数的增加,每个神经元的感域相对于前一层变大,因此可以提供全局的语义和抽象细节,这在浅层和线性操作中是很难做到的。
在单个Web API推荐场景中,API的流行度会对最终的推荐列表产生影响,调用频率高的Web API会有更大的概率被推荐。因此可以学习到服务包的流行度特征,在服务包推荐场景下,调用频率高的服务包,也会有很大的概率被推荐,服务包j的流行度特征公式定义如下:
其中,Mashup和服务包的数量分别M和N,pi,j表示Mashup i和服务包j之间是否有调用记录,当Mashup i调用服务包j,pi,j=1,否则,pi,j=0,将所有服务包的流行度计算后通过全连接层得到流行度特征向量Up;
将Up、UMSF和UMLP连接后,得到特征交互组件的最终输出,公式定义为:
UFIC=[UP;UMSF;UMLP]
考虑到表征低阶交互特征的最佳向量维数可能不同于高阶交互特征,故使用Concat操作对交互特征进行融合;
步骤(4)、采用多任务学习的方法对得到的特征进行聚合,并构建预测任务,多任务学习可以使得模型更好地学习到数据中的共享特征,从而提高模型的泛化能力。在服务包推荐场景下,本发明采用了早期融合的策略,设WTL和bTL是特定任务层的权值矩阵和偏差向量,公式定义为:
其中,UMMF=[UMSF;UFIC]。同时,为了抑制所提出的模型的过拟合,本发明采用了丢弃率的技巧。为了使本发明的模型具有多任务学习的能力,引入了两个特定的任务层。在主任务服务包推荐中,分解主任务为多个独立的二元分类问题,集合P中的每个服务包p都被看作是一个单独的标签。本发明的目标是训练一个自动标记Mashup m和最相关的P的子集的分类器。通过二进制交叉熵损失BCELoss进行训练,其公式定义为:
其中,ym[p]对应于目标值,表示第p个服务包是否匹配Mashup m,当m调用p则为ym[p]=1,否则为ym[p]=0,是ym[p]对应的预测值,根据预测相关性得分/>对所有服务包进行排序,生成满足Mashup m需求的候选服务包的推荐列表;
增加了一个类别判断任务,使本发明的框架具有多任务学习能力,考虑到类别对Mashup和服务包的重要性。在辅助任务类别判断中,也将其转化为多个独立的二进制分类问题,并采用BCELoss对模型进行优化模型参数,公式定义为:
通过对两个任务的损失函数进行聚合并施加正则化约束,得到模型的目标函数,公式定义为:
其中,θ′=θ∪{W1,b1,…,Wz,bz,V}为模型参数,用于防止模型过拟合的正则化约束L2。
当确定了上述Web服务包推荐模型的网络结构、训练数据以及损失函数后,即可使用深度神经网络的自动求导和优化框架进行Web服务包推荐模型优化,在每一层中,通过反向传播算法进行迭代计算梯度来更新模型参数,直至最终模型收敛。
步骤(5)、在实际推理或者测试任务中,将待构建的Mashup的功能需求描述文本输入经过训练的Web服务包推荐模型中,由第一线性分类器输出所述服务包存储库中每个服务包的推荐概率,进而执行服务包推荐。
为验证本发明的可行性、创新型和可实现性,采用从ProgrammableWeb网站中获取的公开的数据集,其中包括了22,642个Web API和8,484个Mashup,通过本发明提出的方法构建了服务包存储库,其中包括服务包2,189个。在评估方法中,使用多种具有代表性的推荐方法作为对比基线,模型包括:Pop、CF、NCF、BPR、LSTM、RWR和MTFM。将本发明与其他7个模型进行对比,采用四个离线和广泛使用的指标精度作为评价指标:Precision@N,Recall@N,MAP@N和NDCG@N,N代表服务包推荐的列表的长度,当N≤10结果普遍优于现有的模型。
同样的,基于同一发明构思,本发明的另一较佳实施例中还提供了与上述实施例提供的基于多任务学习的Web服务包推荐方法对应的一种基于多任务学习的Web服务包推荐系统,其包括:
预处理模块,用于针对Mashup数据集,分别获取其中每个Mashup以及Mashup中每个Web API各自的功能描述文本,并将Mashup的功能描述文本划分为基本话语单元(EDU)序列,生成Mashup中每个基本话语单元(EDU)的第一功能语义向量和每个Web API的功能描述文本的第二功能语义向量;
服务包获取模块,用于针对Mashup数据集中的每个Mashup,获取由其历史调用的Web API集合划分形成的服务包集合;将Mashup数据集中所有Mashup划分形成的服务包加入服务包存储库;
组合语义生成模块,用于针对Mashup数据集中的每个Mashup,基于功能语义向量,计算Mashup的每个基本话语单元与对应服务包集合中每个服务包的功能语义相似度,若一个基本话语单元与一个服务包的功能语义相似度超过第一阈值,则将这个基本话语单元分配给这个服务包,若一个基本话语单元与任意一个服务包的功能语义相似度都没有超过第一阈值,则将这个基本话语单元分配给所述服务包集合中的每一个服务包;每个Mashup完成所有基本话语单元的分配后,将每个服务包分配到的基本话语单元集合剔除不相关基本话语单元后作为这个服务包的组合语义文本;
推荐模型训练模块,用于利用Mashup数据集训练Web服务包推荐模型;所述Web服务包推荐模型中,Mashup的功能描述文本经过第一CNN卷积神经网络获得Mashup文本特征UMSF,所有服务包的组合语义文本经过第二CNN卷积神经网络获得服务包文本特征VPS,服务包文本特征VPS经过展平操作后拼接至Mashup文本特征UMSF上一并输入多层感知机(MLP)中,得到高阶交互特征UPSF;再将服务包存储库中所有服务包的流行度输入全连接层得到流行度特征UP,将流行度特征UP、Mashup文本特征UMSF和高阶交互特征UPSF拼接后得到融合特征UFIC;最后将Mashup文本特征UMSF和融合特征UFIC进一步拼接聚合后分别输入第一线性分类器和第二线性分类器中,由第一线性分类器输出所有服务包的推荐概率,由第二线性分类器输出Mashup的类别标签;
服务包推荐模块,用于将待构建的Mashup的功能需求描述文本输入经过训练的Web服务包推荐模型中,由第一线性分类器输出所述服务包存储库中每个服务包的推荐概率,进而执行服务包推荐。
具体而言,在上述基于多任务学习的Web服务包推荐系统中,各模块与前述的S1~S5是一一对应的,因此各模块中的具体实现方式亦可参见上述S1~S5。
同样的,基于同一发明构思,本发明的另一较佳实施例中还提供了与上述实施例提供的基于多任务学习的Web服务包推荐方法对应的一种电子设备,其包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如前所述的基于多任务学习的Web服务包推荐方法。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
由此,基于同一发明构思,本发明的另一较佳实施例中还提供了与上述实施例提供的基于多任务学习的Web服务包推荐方法对应的一种计算机可读存储介质,该所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,能实现如前所述的基于多任务学习的Web服务包推荐方法。
具体而言,在上述两个实施例的计算机可读存储介质中,存储的计算机程序被处理器执行,可执行前述S1~S5的步骤。
可以理解的是,上述存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。同时存储介质还可以是U盘、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可以理解的是,上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
另外需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的各实施例中,所述的系统和方法中对于步骤或者模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或步骤可以结合或者可以集成到一起,一个模块或者步骤亦可进行拆分。
以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (10)
1.一种基于多任务学习的Web服务包推荐方法,其特征在于,包括如下步骤:
S1、针对Mashup数据集,分别获取其中每个Mashup以及Mashup中每个Web API各自的功能描述文本,并将Mashup的功能描述文本划分为基本话语单元序列,生成Mashup中每个基本话语单元的第一功能语义向量和每个Web API的功能描述文本的第二功能语义向量;
S2、针对Mashup数据集中的每个Mashup,获取由其历史调用的Web API集合划分形成的服务包集合;将Mashup数据集中所有Mashup划分形成的服务包加入服务包存储库;
S3、针对Mashup数据集中的每个Mashup,基于功能语义向量,计算Mashup的每个基本话语单元与对应服务包集合中每个服务包的功能语义相似度,若一个基本话语单元与一个服务包的功能语义相似度超过第一阈值,则将这个基本话语单元分配给这个服务包,若一个基本话语单元与任意一个服务包的功能语义相似度都没有超过第一阈值,则将这个基本话语单元分配给所述服务包集合中的每一个服务包;每个Mashup完成所有基本话语单元的分配后,将每个服务包分配到的基本话语单元集合剔除不相关基本话语单元后作为这个服务包的组合语义文本;
S4、利用Mashup数据集训练Web服务包推荐模型;所述Web服务包推荐模型中,Mashup的功能描述文本经过第一CNN卷积神经网络获得Mashup文本特征UMSF,所有服务包的组合语义文本经过第二CNN卷积神经网络获得服务包文本特征VPS,服务包文本特征VPS经过展平操作后拼接至Mashup文本特征UMSF上一并输入多层感知机中,得到高阶交互特征UPSF;再将服务包存储库中所有服务包的流行度输入全连接层得到流行度特征UP,将流行度特征UP、Mashup文本特征UMSF和高阶交互特征UPSF拼接后得到融合特征UFIC;最后将Mashup文本特征UMSF和融合特征UFIC进一步拼接聚合后分别输入第一线性分类器和第二线性分类器中,由第一线性分类器输出所有服务包的推荐概率,由第二线性分类器输出Mashup的类别标签;
S5、将待构建的Mashup的功能需求描述文本输入经过训练的Web服务包推荐模型中,由第一线性分类器输出所述服务包存储库中每个服务包的推荐概率,进而执行服务包推荐。
2.如权利要求1所述的基于多任务学习的Web服务包推荐方法,其特征在于,所述S1中,针对Mashup数据集中每个Mashup,利用经过训练的逻辑回归分类器识别该Mashup的功能描述文本中的基本话语单元边界,进而将该Mashup的功能描述文本划分为一系列基本话语单元,然后再对每个基本话语单元进行LDA主题建模,获得每个基本话语单元的主题分布向量作为其第一功能语义向量;同时,对于该Mashup中每个Web API的功能描述文本也进行LDA主题建模,获得的主题分布向量作为对应Web API的第二功能语义向量。
3.如权利要求1所述的基于多任务学习的Web服务包推荐方法,其特征在于,所述S2中,针对Mashup数据集中的每个Mashup,将其历史调用的Web API集合划分为一系列服务包,进而构成该Mashup对应的服务包集合,其中每个服务包至少包含1个Web API;最终将所有Mashup对应的服务包集合汇聚后,对重复的服务包进行去重,形成服务包存储库。
4.如权利要求1所述的基于多任务学习的Web服务包推荐方法,其特征在于,所述S3中,一个基本话语单元与一个服务包的功能语义相似度计算方法为:遍历这个服务包中每个Web API,将这个基本话语单元的第一功能语义向量与每个Web API的第二功能语义向量计算相似度,然后取相似度的最大值作为这个基本话语单元与这个服务包的功能语义相似度。
5.如权利要求1所述的基于多任务学习的Web服务包推荐方法,其特征在于,所述S3中,当完成所有基本话语单元的分配后,对每个服务包赋予组合语义文本的方法为:对每个服务包上分配到的基本话语单元集合规模进行统计,若集合规模低于第二阈值,则直接将这个基本话语单元集合中的所有基本话语单元作为这个服务包的组合语义文本,若集合规模不低于第二阈值,则对这个基本话语单元集合中的所有基本话语单元进行聚类,将类簇大小低于第三阈值的类簇视为不相关语义进行剔除,而其余类簇中所有基本话语单元作为这个服务包的组合语义文本。
6.如权利要求1所述的基于多任务学习的Web服务包推荐方法,其特征在于,所述第一阈值至少为0.7,所述第二阈值为2~4,所述第三阈值为第二阈值的一半。
7.如权利要求1所述的基于多任务学习的Web服务包推荐方法,其特征在于,利用Mashup数据集训练Web服务包推荐模型时,每个Mashup需要构建两个标签,第一个标签为该Mashup与所述服务包存储库中所有服务包之间的调用情况,若一个服务包为该Mashup历史调用的Web API集合的子集,则视为该Mashup与这个服务包之间存在调用,否则视为不存在调用;第二个标签为该Mashup的类别标签;第一个标签和第二个标签分别用于监督训练第一线性分类器和第二线性分类器。
8.一种基于多任务学习的Web服务包推荐系统,其特征在于,包括:
预处理模块,用于针对Mashup数据集,分别获取其中每个Mashup以及Mashup中每个WebAPI各自的功能描述文本,并将Mashup的功能描述文本划分为基本话语单元序列,生成Mashup中每个基本话语单元的第一功能语义向量和每个Web API的功能描述文本的第二功能语义向量;
服务包获取模块,用于针对Mashup数据集中的每个Mashup,获取由其历史调用的WebAPI集合划分形成的服务包集合;将Mashup数据集中所有Mashup划分形成的服务包加入服务包存储库;
组合语义生成模块,用于针对Mashup数据集中的每个Mashup,基于功能语义向量,计算Mashup的每个基本话语单元与对应服务包集合中每个服务包的功能语义相似度,若一个基本话语单元与一个服务包的功能语义相似度超过第一阈值,则将这个基本话语单元分配给这个服务包,若一个基本话语单元与任意一个服务包的功能语义相似度都没有超过第一阈值,则将这个基本话语单元分配给所述服务包集合中的每一个服务包;每个Mashup完成所有基本话语单元的分配后,将每个服务包分配到的基本话语单元集合剔除不相关基本话语单元后作为这个服务包的组合语义文本;
推荐模型训练模块,用于利用Mashup数据集训练Web服务包推荐模型;所述Web服务包推荐模型中,Mashup的功能描述文本经过第一CNN卷积神经网络获得Mashup文本特征UMSF,所有服务包的组合语义文本经过第二CNN卷积神经网络获得服务包文本特征VPS,服务包文本特征VPS经过展平操作后拼接至Mashup文本特征UMSF上一并输入多层感知机中,得到高阶交互特征UPSF;再将服务包存储库中所有服务包的流行度输入全连接层得到流行度特征UP,将流行度特征UP、Mashup文本特征UMSF和高阶交互特征UPSF拼接后得到融合特征UFIC;最后将Mashup文本特征UMSF和融合特征UFIC进一步拼接聚合后分别输入第一线性分类器和第二线性分类器中,由第一线性分类器输出所有服务包的推荐概率,由第二线性分类器输出Mashup的类别标签;
服务包推荐模块,用于将待构建的Mashup的功能需求描述文本输入经过训练的Web服务包推荐模型中,由第一线性分类器输出所述服务包存储库中每个服务包的推荐概率,进而执行服务包推荐。
9.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1~7任一所述的基于多任务学习的Web服务包推荐方法。
10.一种计算机电子设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如权利要求1~7任一所述的基于多任务学习的Web服务包推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311557317.0A CN117591726A (zh) | 2023-11-21 | 2023-11-21 | 基于多任务学习的Web服务包推荐方法、系统、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311557317.0A CN117591726A (zh) | 2023-11-21 | 2023-11-21 | 基于多任务学习的Web服务包推荐方法、系统、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117591726A true CN117591726A (zh) | 2024-02-23 |
Family
ID=89914561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311557317.0A Pending CN117591726A (zh) | 2023-11-21 | 2023-11-21 | 基于多任务学习的Web服务包推荐方法、系统、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591726A (zh) |
-
2023
- 2023-11-21 CN CN202311557317.0A patent/CN117591726A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3467723B1 (en) | Machine learning based network model construction method and apparatus | |
WO2022161202A1 (zh) | 多媒体资源分类模型训练方法和多媒体资源推荐方法 | |
Najafabadi et al. | Deep learning applications and challenges in big data analytics | |
CN110728317A (zh) | 决策树模型的训练方法、系统、存储介质及预测方法 | |
US20230102337A1 (en) | Method and apparatus for training recommendation model, computer device, and storage medium | |
CN111667022A (zh) | 用户数据处理方法、装置、计算机设备和存储介质 | |
US20200285960A1 (en) | Effective user modeling with time-aware based binary hashing | |
Amro et al. | Instance reduction for avoiding overfitting in decision trees | |
EP2973038A1 (en) | Classifying resources using a deep network | |
Bagherzadeh et al. | A review of various semi-supervised learning models with a deep learning and memory approach | |
CN113609337A (zh) | 图神经网络的预训练方法、训练方法、装置、设备及介质 | |
US20220277031A1 (en) | Guided exploration for conversational business intelligence | |
CN113312480A (zh) | 基于图卷积网络的科技论文层级多标签分类方法及设备 | |
CN113656699B (zh) | 用户特征向量确定方法、相关设备及介质 | |
US10685281B2 (en) | Automated predictive modeling and framework | |
Mukunthu et al. | Practical automated machine learning on Azure: using Azure machine learning to quickly build AI solutions | |
US20230368003A1 (en) | Adaptive sparse attention pattern | |
Chaudhuri | Visual and text sentiment analysis through hierarchical deep learning networks | |
CN115858919A (zh) | 基于项目领域知识和用户评论的学习资源推荐方法及系统 | |
Hain et al. | The promises of Machine Learning and Big Data in entrepreneurship research | |
CN111709225A (zh) | 一种事件因果关系判别方法、装置和计算机可读存储介质 | |
Rama et al. | Deep learning to address candidate generation and cold start challenges in recommender systems: A research survey | |
Rezaeenour et al. | Developing a new hybrid intelligent approach for prediction online news popularity | |
CN117591726A (zh) | 基于多任务学习的Web服务包推荐方法、系统、介质及设备 | |
Gabralla et al. | Deep learning for document clustering: a survey, taxonomy and research trend |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |