一种基于元学习框架的小样本Web服务分类方法与流程

    专利2022-07-08  115


    本发明涉及服务计算
    技术领域
    ,具体涉及一种基于元学习框架的小样本web服务分类方法。
    背景技术
    :web服务是松散耦合的软件系统,通过网络来支持互操作的机器进行交互,它为面向服务的体系结构(service-orientedarchitecture,soa)提供了一个标准化的解决方案。web服务的数量每年都在不断增长,据统计,截止2020年1月10日,该网站上有超过483个类别的web服务。根据服务描述来对web服务进行自动分类将会大大减少人工分类所需的时间,促进后续的服务发现与服务重用。近年来,研究者提出了许多根据web服务的自然语言描述来进行自动分类的方法,这些方法有基于传统机器学习方法,也有基于深度学习方法。发现现有技术的方法,至少存在如下技术问题:web服务的类别都在明显的长尾分布,也就是说少数的服务类别即头部类别占据了绝大多数的服务样本,而剩余的服务类别即尾部类别都只对应很少的服务样本。服务样本在类别分布上的极不均衡会严重影响自动分类的准确性,因为绝大多数的类别都只存在很少的正样本,得不到充分的训练。而现有方法并未关注到这一点,对头部类别和尾部类别使用完全相同的数据处理过程与分类方法。由此可知,现有技术中的方法存在对尾部标签预测结果不够准确的技术问题。技术实现要素:有鉴于此,本发明提供了一种基于元学习框架的小样本web服务分类方法,重点关注尾部服务类别的分类。为了解决上述技术问题,本发明提供了一种基于元学习框架的小样本web服务分类方法,该方法遵循元学习在小样本学习领域的一般框架,使用基于轮次的策略来进行训练、验证以及测试,每一个轮次都会一个构造的小样本场景,该场景下仅有很少的标注样本(支持集)以及一定数量的未标注样本(查询集)。网络结构主要分为两个大的部分:表示部分以及分类部分,其中:表示部分用来构建输入的服务描述的向量表示。针对服务描述长度短、信息密度低等特点,主要使用了在训练集上词的全局分布信息以及在单个轮次上词的分布信息来计算词的局部权重,并通过lstm组合这两部分权重来获得词的最终权重。这样做能够很好的提取描述中的关键词。服务描述中的每个词在经过嵌入得到词向量之后,会与对应权重进行加权求和进而得到服务描述的向量表示。分类部分主要是在支持集的样本上训练一个分类模型,然后在查询集的样本上进行测试。需要指出的是,在训练过程中,可以通过查询集的真实类别与预测类别计算交叉熵来为整个网络提供梯度信息。具体地,我们使用岭回归技术来作为分类模型。特别地,整个网络的表示部分是贯穿所有轮次并且其中的词嵌入层、lstm等是不断被优化的,而分类部分则是每一个轮次都会在该轮次的支持集上重新构建一个岭回归模型,仅有岭回归的正则化参数是贯穿所有轮次被不断优化的。该方法具体步骤包括:步骤1:将web服务对应的自然语言服务描述进行分词处理得到web服务的自然语言服务描述词序列,构建服务类别的集合、服务类别的web服务集合,统计所有服务类别的web服务集合中各服务类别的web服务数量,根据服务类别的web服务数量以及分类阈值构建构建训练集服务类别,根据服务类别的集合、训练集服务类别构建验证集服务类别、测试集服务类别,结合训练集服务类别构建训练集,结合验证集服务类别构建验证集,结合测试集服务类别构建测试集;步骤2:遵循元学习在小样本学习问题中的一般框架,训练过程使用基于轮次的策略,每一个轮次通过挑选固定数量的类别,然后在这些类别上构造支持集以及查询集来模拟小样本场景。具体地,每一轮需要先从训练集中随机选择指定数量的类别,并从每个类别中随机选择指定数量的服务作为支持集,指定数量的服务作为查询集。步骤3:每训练一定的轮次后需要进行验证,计算验证过程中每一个词的全局权重与局部权重;步骤4:每训练一定的轮次后需要进行测试,计算测试过程中每一个词的全局权重与局部权重;步骤5:对于通过步骤2得到的训练过程的词的全局权重以及局部权重、通过步骤3得到的验证过程的词的全局权重以及局部权重、通过步骤3得到的测试过程的词的全局权重以及局部权重,使用带attention机制的双向lstm来结合词的全局权重以及局部权重得到词的最终权重;步骤6:通过fasttext方式构建词向量初始化嵌入层,将web服务的自然语言服务描述词序列通过独热编码得到独热编码后web服务的自然语言服务描述词序列,进一步输入至词向量初始化嵌入层得到web服务的自然语言服务描述词序列中词的嵌入向量,结合web服务的自然语言服务描述词序列中词归一化前的最终权重,得到web服务的自然语言服务描述词序列中对应的向量;步骤7:将每个轮次下随机选出的n个服务类别进行重新编码得到,每个轮次下重新编码后的n个web服务类别,将每个轮次下重新编码后的n个web服务类别通过独热编码得到每个轮次下n个web服务类别的独热向量,每个轮次轮次支持集上使用岭回归技术拟合每个轮次支持集对应的分类模型;步骤8:对于训练过程、验证过程、测试过程,分别使用步骤2、步骤3、步骤4中所述的支持集对应的分类模型预测查询集中各web服务属于每个类别的可能性,;步骤9:根据扩充后的支持集训练新的分类模型,使用新的分类模型再次预测查询集中服务的标签,作为最终的预测结果;步骤10:使用步骤9中对于查询集的预测结果p与步骤7.2所述的查询集的真实结果yq计算交叉熵,然后计算交叉熵对于词嵌入层、双向lstm、步骤4.2中的可学习向量v、步骤7.3中的参数λ等整体学习网络的参数所的梯度,最后使用随机梯度下降法更新这些参数;作为优选,步骤1所述web服务的自然语言服务描述词序列为:desj=(wj,1,wj,2,……,wj,nj)其中,desj为第j个web服务的自然语言服务描述词序列,j∈[1,counttotal],i∈[1,n],counttotal为web服务的数量,nj为第j个web服务的自然语言服务描述词序列中词的数量,wj,i为第j个web服务的自然语言服务描述词序列中第i个词;步骤1所述服务类别的集合为:call={c1,c2…,cp}其中,c1为第1种服务类别,p为服务类别的种类的数量;步骤1所述服务类别的web服务集合为:s1={webservice1,1,webservice1,2...,webservice1,q1}sall={s1,s2…,sp}其中,sall为所有服务类别的web服务集合,s1为第1种服务类别的web服务集合,webservicel,z为第l种服务类别的web服务集合中第z个web服务,q1为第l种服务类别的web服务集合中web服务的数量,l∈[1,p],z∈[1,q1],p为服务类别的类型的数量;步骤1所述统计所有服务类别的web服务集合中各服务类别的web服务数量:numall={num1,…,numl,…nump}其中,numl为第l种服务类别对应的web服务数量,p为服务类别的种类的数量;步骤1所述根据服务类别的web服务数量以及分类阈值构建构建训练集服务类别为:所述分类阈值为threshold;将numl>threshold的服务类别挑选出来用于构建训练集服务类别;所述训练集服务类别定义为:其中,训练集中第ai个服务类别,a为训练集中服务类别的类型的数量,步骤1所述根据服务类别的集合、训练集服务类别构建验证集服务类别、测试集服务类别为:在call-ctrain中随机划分一半的服务类别作为验证集服务类别即cvalid,另一半服务类别作为测试集服务类别即ctest;所述验证集服务类别定义为:其中,验证集中第bi个服务类别,b为验证集中服务类别的类型的数量,所述测试集服务类别定义为:其中,验证集中第ci个服务类别,c为验证集中服务类别的类型的数量,步骤1所述结合训练集服务类别构建训练集为:将numl>threshold的服务类别对应的web服务集合挑选出来,用于构建训练集;所述训练集定义为:其中,训练集中第ai个服务类别的web服务集合,a为训练集中服务类别的类型的数量;步骤1所述结合测试集服务类别构建验证集为:在call-ctrain中随机划分一半的服务类别的web服务集合作为验证集即cvalid,另一半服务类别的web服务集合作为测试集即ctest;所述验证集定义为:其中,验证集中第bi个服务类别的web服务集合,b为验证集中服务类别的类型的数量;步骤1所述结合测试集服务类别构建测试集为:所述测试集定义为:其中,测试集中第ci个服务类别的web服务集合,c为测试集中服务类别的类型的数量。作为优选,,步骤2具体包括:步骤2.1:从步骤1中所述训练集服务类别中随机选出n个服务类别:其中,ce表示第e个轮次下随机选出的n个服务类别,i∈[1,n],ei∈[1,p],p为服务类别的种类的数量;表示第e个轮次下随机选出的n个服务类别中第i个服务类别,对应步骤1中所述训练集服务类别第ei个类别;步骤2.2:从步骤1中所述第e个轮次下随机选出的n个服务类别中第i个服务类别对应的web服务集合中随机挑选出k个web服务,构建第e个轮次下支持集为:其中,表示第e个轮次下随机选出的n个服务类别中第i个服务类别对应的支持集web服务集合,表示第e个轮次下随机选出的n个服务类别中第i个服务类别对应的支持集web服务集合中第j个服务;所述第e个轮次下支持集为即:从中随机挑选出q个web服务,构建第e个轮次下查询集为:其中,表示第e个轮次下随机选出的n个服务类别中第i个服务类别对应的查询集web服务集合,表示第e个轮次下随机选出的n个服务类别中第i个服务类别对应的查询集web服务集合中第l个服务;所述查询集为即:步骤2.3:构造样本池来计算词的全局权重;第e个轮次的样本池由strain-中所有web服务组成,strain为步骤1中所述训练集。设包含个web服务,即:其中,为中的第t个web服务,它所对应的分词后的词序列为nt为这个web服务的自然语言服务描述词序列中词的数量。对中所有web服务对应的词序列进行去重后得到一个全局词汇表其中mglobal,e为vocabglobal,e中词的数量,j∈[1,mglobal,e],为vocabglobal,e中的第j个词,采用下式计算对应的全局权重:其中,为词对应的全局权重,为词在样本池中的出现频率。步骤2.4:对于任意轮次,在该轮次的支持集上计算词的局部权重。其中,为所包含的web服务数量,为中的第t个web服务,它所对应的分词后的词序列为nt为这个web服务的自然语言服务描述词序列中词的数量。对中所有web服务对应的词序列进行去重后得到一个局部词汇表其中mlocal,e为vocablooal,e中词的数量,j∈[1,mlocal,e],为vocablooal,e中的第j个词,采用下式计算对应的局部权重:其中,为词对应的局部权重,n为支持集中包含的服务类别的数目,为在支持集包含的web服务对应的描述中出现过词出现出现过的服务对应的类别数目;作为优选,步骤3具体包括:步骤3.1:从步骤1中所述验证集服务类别中根据步骤2.1随机选出n个验证过程中服务类别;步骤3.2:从步骤1中所述验证集中根据步骤2.2构建验证过程中支持集与验证过程中查询集;步骤3.3:根据步骤2.3,构造验证过程中样本池来计算验证过程中词的全局权重,验证过程中的样本池始终为strain;步骤3.4:在验证过程中支持集上根据步骤2.4计算验证过程中词的局部权重。作为优选,步骤4具体包括:步骤4.1:从步骤1中所述测试集服务类别中根据步骤2.1随机选出n个测试过程中服务类别;步骤4.2:从步骤1中所述测试集中根据步骤2.2构建测试过程中支持集与测试过程中查询集;步骤4.3:根据步骤2.3,构造测试过程中样本池来计算测试过程中词的全局权重,测试过程中的样本池始终为strain;步骤4.4:在测试过程中支持集上根据步骤2.4计算测试过程中词的局部权重。作为优选,步骤5具体包括:步骤5.1:根据步骤1中所述的第j条服务描述分词后的词序列即desj=(wj,1,wj,2,……,wj,nj);对于第j条服务描述分词后的词序列中第i个词即wj,i:通过步骤2.3计算第j条服务描述分词后的词序列中第i个词的全局权重通过步骤2.4计算第j条服务描述分词后的词序列中第i个词的局部权重将与拼接成第j条服务描述分词后的词序列中第i个词的二维向量即将输入到待训练的双向lstm中,计算第j条服务描述分词后的词序列中第i个词的的输出向量为:其中,输出向量的维度hiddensize为预先定义从超参数;步骤5.2:将第j条服务描述分词后的词序列中第i个词的的输出向量与可学习向量进行内积得到归一化前的最终权重;所述归一化前的最终权重通过下式进行计算:scorej,i=vthj,i其中,scorej,i表示第j个web服务的自然语言服务描述词序列中的第i个词归一化前的最终权重,hj,i表示第j条服务描述分词后的词序列中第i个词的的输出向量,vt表示可学习向量;步骤5.3:将归一化前的最终权重通过softmax函数进行概率归一化得到词的最终权重;第j个web服务的自然语言服务描述词序列中的第i个词归一化后的最终权重为:其中,fwj,i表示第j个web服务的自然语言服务描述词序列中的第i个词归一化后的最终权重,scorej,i表示表示第j个web服务的自然语言服务描述词序列中的第i个词归一化前的最终权重,e为自然对数的底数,nj为第j条服务描述分词后的词序列中词的数量;作为优选,步骤6所述结合web服务的自然语言服务描述词序列中词归一化前的最终权重,得到web服务的自然语言服务描述词序列中对应的向量为:其中,vector(desj)为第j个web服务的自然语言服务描述词序列中对应的向量表示,ebd(wj,i)为第j个web服务的自然语言服务描述词序列中的第i个词的向量,fwj,i表示第j个web服务的自然语言服务描述词序列中的第i个词归一化后的最终权重,nj为第j个web服务的自然语言服务描述词序列中包含的词的数量。作为优选,所述步骤7具体包括以下步骤:步骤7.1:将每个轮次下随机选出的n个web服务类别进行重新编码,对于第e个轮次下随机选出的n个服务类别即步骤2.2中所描述的其原始类别编号为:其中,|call|表示call中包含的类别总数,重新编码的目的是为了将类别的编号限定至0~n-1;先将原始类别编号按从小到大的顺序排列成然后依次与0~n-1相对应;步骤7.2:将每个轮次下重新编码后的n个web服务类别通过独热编码得到每个轮次下n个服务类别的独热向量。具体地,对于重编码后的任意类别cnew∈[0,n-1],将其表示为一个n维向量cnew_onehot,cnew_onehot的第cnew维度为1,其余维度均为。则第e轮次的支持集包含的web服务的经过此步骤得到的独热标签组成矩阵第e轮次的查询集包含的web服务的经过此步骤得到的独热标签组成矩阵步骤7.3:在第e个轮次支持集即上使用岭回归技术拟合第e个轮次支持集对应的分类模型,具体岭回归通过最小化下式来得到用于分类的模型:其中,l(we)为模型需要最小化的函数,为模型的参数矩阵,为第e个轮次支持集即中包含的服务通过步骤6得到的向量化表示,为第e个轮次支持集即中包含的服务的原始标签通过步骤7.1重编码后得到的类别的独热表示,e为词向量维度,n为支持集种的类别数。模型的参数矩阵即we的任意一列e维向量we,·j(j∈[1,n])用于拟合xs与对应的标签列ys·j;最后,λ是正则化参数,是可学习参数,用于降低过拟合;作为优选,所述步骤8具体包括以下步骤:步骤8.1:对于训练过程、验证过程、测试过程,分别使用步骤2、步骤3、步骤4中所述的每个轮次支持集对应的分类模型预测查询集中各web服务属于每个类别的可能性,具体使用如下公式:其中,为第e个轮次支持集即中包含的服务通过步骤6得到的向量化表示,we为步骤7.3所得到的第e个轮次的岭回归参数矩阵,为第e个轮次查询集中的服务通过步骤7.3所得到岭回归模型预测的属于该轮次中n个类别的概率;使用softmax函数对的各行进行概率归一化得到最终的概率矩阵p,p中任意元素通过下式计算得到:其中,为矩阵第i行j列的值,e为自然对数底数,pij为查询集中第i个服务属于该轮次n个类别中第j个的概率,i∈[1,n*k],j∈[1,n]。步骤8.2:通过步骤8.1计算出的查询集中各个服务属于每个类别的概率来得到查询集中各web服务预测结果的置信度,具体地,通过下式计算查询集中第i个服务的置信度:confi=maxj∈[0,n)pij其中,confi为查询集中第i个服务的置信度;步骤8.3:通过步骤8.1计算出的查询集中各个服务属于每个类别的概率来得到查询集中各web服务的伪标签,具体地,通过下式计算查询集中第i个服务的伪标签:pseudolabeli=argmaxj∈[0,n)pij其中pseudolabeli为查询集中第i个服务的伪标签。;步骤8.4:挑选查询集中置信度高于预设定阈值的web服务组成设包含个web服务,即:其中,为中的第t个web服务步骤8.5:将步骤8.4挑选出来的查询集中的高置信度web服务与该轮次的支持集组合形成扩充后的支持集作为优选,所述步骤9具体包括:步骤9.1:在扩充后的支持集上按照步骤7.2所述使用岭回归技术重新训练新的分类模型;步骤9.2:利用新的分类模型按照步骤8.1所述方式得到查询集中各个服务属于该轮次n个类别的概率p。作为优选,步骤10所述计算交叉熵为:步骤9根据步骤8预测的查询集属于各个类别的概率,通过与其真实类别进行对比计算交叉熵,具体计算公式为:其中ce(yq,p)为该轮次的交叉熵,yq为步骤7.2所述的查询集的真实结果,为yq第i行第j列的值,即查询集中第i个样本属于第j类的概率,p为模型预测的查询集属于各个类别的真实概率,pij为p第i行第j列的值,即查询集中第i个样本属于第j类的预测概率。本发明公开了一种基于元学习框架的小样本web服务分类方法,首先根据web服务数据集中各类别的对应的服务数构建训练集、验证集以及测试集;然后在样本池上计算服务描述中单词的全局权重,在每个轮次上面计算词的局部权重,使用带注意力机制的双向lstm对两个权重进行组合得到词的最终权重;接着使用词的权重对服务描述内的所有词的嵌入向量进行加权求和得到服务的向量表示;然后使用岭回归方法在每个轮次的支持集上训练分类模型,使用该模型预测查询集中服务的标签并挑选高置信度的服务对支持集进行扩充,使用模型预测的标签作为其伪标签;再在扩充的支持集上重新使用岭回归方法训练分类模型并对查询集中的服务再次进行预测;对训练和测试阶段而言,前面几个步骤都是相同的,两个阶段差异体现在最后一步,即在训练阶段,可以根据对查询集中的服务的预测标签以及其真实标签计算交叉熵更新模型参数;在预测阶段,可以据对查询集中的服务的预测标签以及其真实标签计算模型的准确率。通过本发明的方法,可以基于元学习框架构建一个分类模型,用于对应样本量很少的服务类别的分类。通过基于轮次的训练策略,模型能够学习到头部类别的知识并将其迁移到尾部类别的分类中去,同时伪标签策略的运用,能够大大缓解尾部标签样本量不足给分类准确率带来的负面影响。附图说明图1:是本发明基于元学习框架的小样本web服务分类方法的总体框架示意图;图2:使用本专利所述方法、cnn、双向lstm构建服务向量时训练及验证的准确率曲线。具体实施方式下面结合图1至图2介绍本发明的具体实施方式为一种基于元学习框架的小样本web服务分类方法,包括以下步骤:步骤1:将web服务对应的自然语言服务描述进行分词处理得到web服务的自然语言服务描述词序列,构建服务类别的集合、服务类别的web服务集合,统计所有服务类别的web服务集合中各服务类别的web服务数量,根据服务类别的web服务数量以及分类阈值构建构建训练集服务类别,根据服务类别的集合、训练集服务类别构建验证集服务类别、测试集服务类别,结合训练集服务类别构建训练集,结合验证集服务类别构建验证集,结合测试集服务类别构建测试集;步骤1所述web服务的自然语言服务描述词序列为:desj=(wj,1,wj,2,……,wj,nj)其中,desj为第j个web服务的自然语言服务描述词序列,j∈[1,counttotal],i∈[1,n],counttotal=9748为web服务的数量,nj为第j个web服务的自然语言服务描述词序列中词的数量,wj,i为第j个web服务的自然语言服务描述词序列中第i个词;步骤1所述服务类别的集合为:call={c1,c2…,cp}其中,c1第1种服务类别,p=265为服务类别的种类的数量;步骤1所述服务类别的web服务集合为:s1={webservicel,1,webservice1,2...,webservice1,ql}sall={s1,s2…,sp}其中,sall为所有服务类别的web服务集合,s1为第1种服务类别的web服务集合,webservice1,z为第1种服务类别的web服务集合中第z个web服务,q1为第l种服务类别的web服务集合中web服务的数量,1∈[1,p],z∈[1,q1],p=265为服务类别的类型的数量;步骤1所述统计所有服务类别的web服务集合中各服务类别的web服务数量:numall={num1,num2…,num1,…nump}其中,num1第1种服务类别对应的web服务数量,p=100为服务类别的种类的数量;步骤1所述根据服务类别的web服务数量以及分类阈值构建构建训练集服务类别为:所述分类阈值为threshold=30;将num1>threshold的服务类别挑选出来用于构建训练集服务类别;所述训练集服务类别定义为:其中,训练集中第ai个服务类别,a=146为训练集中服务类别的类型的数量,步骤1所述根据服务类别的集合、训练集服务类别构建验证集服务类别、测试集服务类别为:在call-ctrain中随机划分一半的服务类别作为验证集服务类别即cvalid,另一半服务类别作为测试集服务类别即ctest;所述验证集服务类别定义为:其中,验证集中第bi个服务类别,b=60为验证集中服务类别的类型的数量,所述测试集服务类别定义为:其中,验证集中第ci个服务类别,c=59为验证集中服务类别的类型的数量,步骤1所述结合训练集服务类别构建训练集为:将numl>threshold的服务类别对应的web服务集合挑选出来,用于构建训练集;所述训练集定义为:其中,训练集中第ai个服务类别的web服务集合,a=146为训练集中服务类别的类型的数量;步骤1所述结合测试集服务类别构建验证集为:在call-ctrain中随机划分一半的服务类别的web服务集合作为验证集即cvalid,另一半服务类别的web服务集合作为测试集即ctest;所述验证集定义为:其中,验证集中第bi个服务类别的web服务集合,b=60为验证集中服务类别的类型的数量;步骤1所述结合测试集服务类别构建测试集为:所述测试集定义为:其中,则试集中第ci个服务类别的web服务集合,c=59为测试集中服务类别的类型的数量。步骤2:遵循元学习在小样本学习问题中的一般框架,训练过程使用基于轮次的策略,每一个轮次通过挑选固定数量的类别,然后在这些类别上构造支持集以及查询集来模拟小样本场景。具体地,每一轮需要先从训练集中随机选择指定数量的类别,并从每个类别中随机选择指定数量(很少)的服务作为支持集,指定数量的服务作为查询集。对于第j条服务描述分词后的词序列desj=(wj,1,wj,2,……,wj,nj),需要计算每一个词的全局权重与局部权重;在一种实施方式中,步骤2具体包括:步骤2.1:从步骤1中所述训练集服务类别中随机选出n=5个服务类别:其中,ce表示第e个轮次下随机选出的n=5个服务类别,i∈[1,n],ei∈[1,p],p=265为服务类别的种类的数量;表示第e个轮次下随机选出的n=5个服务类别中第i个服务类别,对应步骤1中所述训练集服务类别第ei个类别;步骤2.2:从步骤1中所述第e个轮次下随机选出的n=5个服务类别中第i个服务类别对应的web服务集合中随机挑选出k=5个web服务,构建第e个轮次下支持集为:其中,表示第e个轮次下随机选出的n=5个服务类别中第i个服务类别对应的支持集web服务集合,表示第e个轮次下随机选出的n=5个服务类别中第i个服务类别对应的支持集web服务集合中第j个服务;所述第e个轮次下支持集为即:从中随机挑选出q=25个web服务,构建第e个轮次下查询集为:其中,表示第e个轮次下随机选出的n=5个服务类别中第i个服务类别对应的查询集web服务集合,表示第e个轮次下随机选出的n个服务类别中第i个服务类别对应的查询集web服务集合中第1个服务;所述查询集为即:步骤2.3:构造样本池来计算词的全局权重;第e个轮次的样本池由strain-中所有web服务组成,strain为步骤1中所述训练集。设包含个web服务,即:其中,为中的第t个web服务,它所对应的分词后的词序列为nt为这个web服务的自然语言服务描述词序列中词的数量。对中所有web服务对应的词序列进行去重后得到一个全局词汇表其中mglobal,e为vocabglobal,e中词的数量,j∈[1,mglobal,e],为vocabglobal,e中的第j个词,采用下式计算对应的全局权重:其中,为词对应的全局权重,为词在样本池中的出现频率。步骤2.4:对于任意轮次,在该轮次的支持集上计算词的局部权重。其中,为所包含的web服务数量,为中的第t个web服务,它所对应的分词后的词序列为nt为这个web服务的自然语言服务描述词序列中词的数量。对中所有web服务对应的词序列进行去重后得到一个局部词汇表其中mlocal,e为vocablocal,e中词的数量,j∈[1,mlocal,e],为vocablocal,e中的第j个词,采用下式计算对应的局部权重:其中,为词对应的局部权重,n=5为支持集中包含的服务类别的数目,为在支持集包含的web服务对应的描述中出现过词出现出现过的服务对应的类别数目;步骤3:每训练一定的轮次后需要进行验证,计算验证过程中每一个词的全局权重与局部权重;在一种实施方式中,步骤3具体包括:步骤3.1:从步骤1中所述验证集服务类别中根据步骤2.1随机选出n=5个验证过程中服务类别;步骤3.2:从步骤1中所述验证集中根据步骤2.2构建验证过程中支持集与验证过程中查询集;步骤3.3:根据步骤2.3,构造验证过程中样本池来计算验证过程中词的全局权重,验证过程中的样本池始终为strain;步骤3.4:在验证过程中支持集上根据步骤2.4计算验证过程中词的局部权重。步骤4:训练完成时需要进行测试,计算测试过程中每一个词的全局权重与局部权重;在一种实施方式中,步骤4具体包括:步骤4.1:从步骤1中所述测试集服务类别中根据步骤2.1随机选出n=5个测试过程中服务类别;步骤4.2:从步骤1中所述测试集中根据步骤2.2构建测试过程中支持集与测试过程中查询集;步骤4.3:根据步骤2.3,构造测试过程中样本池来计算测试过程中词的全局权重,测试过程中的样本池始终为strain;步骤4.4:在测试过程中支持集上根据步骤2.4计算测试过程中词的局部权重。步骤5:对于通过步骤2得到的训练过程的词的全局权重以及局部权重、通过步骤3得到的验证过程的词的全局权重以及局部权重、通过步骤3得到的测试过程的词的全局权重以及局部权重,使用带attention机制的双向lstm来结合词的全局权重以及局部权重得到词的最终权重;在一种实施方式中,步骤5具体包括:步骤5.1:根据步骤1中所述的第j条服务描述分词后的词序列即desj=(wj,1,wj,2,……,wj,nj);对于第j条服务描述分词后的词序列中第i个词即wj,i:通过步骤2.3计算第j条服务描述分词后的词序列中第i个词的全局权重通过步骤2.4计算第j条服务描述分词后的词序列中第i个词的局部权重将与拼接成第j条服务描述分词后的词序列中第i个词的二维向量即将输入到待训练的双向lstm中,计算第j条服务描述分词后的词序列中第i个词的的输出向量为:hj,i∈其中,输出向量的维度hiddensize=265为预先定义从超参数;步骤5.2:将第j条服务描述分词后的词序列中第i个词的的输出向量与可学习向量进行内积得到归一化前的最终权重;所述归一化前的最终权重通过下式进行计算:scorej,i=vthj,i其中,scorej,i表示第j个web服务的自然语言服务描述词序列中的第i个词归一化前的最终权重,hj,i表示第j条服务描述分词后的词序列中第i个词的的输出向量,vt表示可学习向量;步骤5.3:将归一化前的最终权重通过softmax函数进行概率归一化得到词的最终权重;第j个web服务的自然语言服务描述词序列中的第i个词归一化后的最终权重为:其中,fwj,i表示第j个web服务的自然语言服务描述词序列中的第i个词归一化后的最终权重,scorej,i表示表示第j个web服务的自然语言服务描述词序列中的第i个词归一化前的最终权重,e为自然对数的底数,nj为第j条服务描述分词后的词序列中词的数量;步骤6:通过fasttext方式构建词向量初始化嵌入层,将web服务的自然语言服务描述词序列通过独热编码得到独热编码后web服务的自然语言服务描述词序列,进一步输入至词向量初始化嵌入层得到web服务的自然语言服务描述词序列中词的嵌入向量,结合web服务的自然语言服务描述词序列中词归一化前的最终权重,得到web服务的自然语言服务描述词序列中对应的向量;所述结合web服务的自然语言服务描述词序列中词归一化前的最终权重,得到web服务的自然语言服务描述词序列中对应的向量为:其中,vector(desj)为第j个web服务的自然语言服务描述词序列中对应的向量表示,ebd(wj,i)为第j个web服务的自然语言服务描述词序列中的第i个词的向量,fwj,i表示第j个web服务的自然语言服务描述词序列中的第i个词归一化后的最终权重,nj为第j个web服务的自然语言服务描述词序列中包含的词的数量。步骤7:将每个轮次下随机选出的n=5个服务类别进行重新编码得到,每个轮次下重新编码后的n=5个web服务类别,将每个轮次下重新编码后的n=5个web服务类别通过独热编码得到每个轮次下n=5个web服务类别的独热向量,每个轮次轮次支持集上使用岭回归技术拟合每个轮次支持集对应的分类模型;步骤7.1:将每个轮次下随机选出的n=5个web服务类别进行重新编码,对于第e个轮次下随机选出的n个服务类别即步骤2.2中所描述的其原始类别编号为:其中,|call|表示call中包含的类别总数,重新编码的目的是为了将类别的编号限定至0~n-1;先将原始类别编号按从小到大的顺序排列成然后依次与0~n-1相对应;步骤7.2:将每个轮次下重新编码后的n=5个web服务类别通过独热编码得到每个轮次下n=5个服务类别的独热向量。具体地,对于重编码后的任意类别cnew∈[0,n-1],将其表示为一个n=5维向量cnew_onehot,cnew_onehot的第cnew维度为1,其余维度均为。则第e轮次的支持集包含的web服务的经过此步骤得到的独热标签组成矩阵第e轮次的查询集包含的web服务的经过此步骤得到的独热标签组成矩阵步骤7.3:在第e个轮次支持集即上使用岭回归技术拟合第e个轮次支持集对应的分类模型,具体岭回归通过最小化下式来得到用于分类的模型:其中,l(we)为模型需要最小化的函数,为模型的参数矩阵,为第e个轮次支持集即中包含的服务通过步骤6得到的向量化表示,为第e个轮次支持集即中包含的服务的原始标签通过步骤7.1重编码后得到的类别的独热表示,e=300为词向量维度,n=5为支持集种的类别数。模型的参数矩阵即we的任意一列e维向量we,·j(j∈[1,n])用于拟合xs与对应的标签列ys·j;最后,λ是正则化参数,是可学习参数,用于降低过拟合;步骤8:对于训练过程、验证过程、测试过程,分别使用步骤2、步骤3、步骤4中所述的支持集对应的分类模型预测查询集中各web服务属于每个类别的可能性,步骤8.1:对于训练过程、验证过程、测试过程,分别使用步骤2、步骤3、步骤4中所述的每个轮次支持集对应的分类模型预测查询集中各web服务属于每个类别的可能性,具体使用如下公式:其中,为第e个轮次支持集即中包含的服务通过步骤6得到的向量化表示,we为步骤7.3所得到的第e个轮次的岭回归参数矩阵,为第e个轮次查询集中的服务通过步骤7.3所得到岭回归模型预测的属于该轮次中n=5个类别的概率;使用softmax函数对的各行进行概率归一化得到最终的概率矩阵p=265,p中任意元素通过下式计算得到:其中,为矩阵第i行j列的值,e为自然对数底数,pij为查询集中第i个服务属于该轮次n个类别中第j个的概率,i∈[1,n*k],j∈[1,n]。步骤8.2:通过步骤8.1计算出的查询集中各个服务属于每个类别的概率来得到查询集中各web服务预测结果的置信度,具体地,通过下式计算查询集中第i个服务的置信度:confi=maxj∈[0,n)pij其中,confi为查询集中第i个服务的置信度;步骤8.3:通过步骤8.1计算出的查询集中各个服务属于每个类别的概率来得到查询集中各web服务的伪标签,具体地,通过下式计算查询集中第i个服务的伪标签:pseudolabeli=argmaxj∈[0,n)pij其中pseudolabeli为查询集中第i个服务的伪标签。;步骤8.4:挑选查询集中置信度高于预设定阈值的web服务组成设包含个web服务,即:其中,为中的第t个web服务步骤8.5:将步骤8.4挑选出来的查询集中的高置信度web服务与该轮次的支持集组合形成扩充后的支持集步骤9:根据扩充后的支持集训练新的分类模型,使用新的分类模型再次预测查询集中服务的标签,作为最终的预测结果;在一种实施方式中,步骤9具体包括:步骤9.1:在扩充后的支持集上按照步骤7.2所述使用岭回归技术重新训练新的分类模型;步骤9.2:利用新的分类模型按照步骤8.1所述方式得到查询集中各个服务属于该轮次n=5个类别的概率p。步骤10:使用步骤9中对于查询集的预测结果p与步骤7.2所述的查询集的真实结果yq计算交叉熵,然后计算交叉熵对于词嵌入层、双向lstm、步骤4.2中的可学习向量v、步骤7.3中的参数λ等整体学习网络的参数所的梯度,最后使用随机梯度下降法更新这些参数;步骤9根据步骤8预测的查询集属于各个类别的概率,通过与其真实类别进行对比计算交叉熵,具体计算公式为:其中ce(yq,p)为该轮次的交叉熵,yq为步骤7.2所述的查询集的真实结果,为yq第i行第j列的值,即查询集中第i个样本属于第j类的概率,p为模型预测的查询集属于各个类别的真实概率,pij为p第i行第j列的值,即查询集中第i个样本属于第j类的预测概率。下面是应用本发明的方法进行小样本服务分类的具体实施例,以从programmableweb网站上爬取到的web服务构建的真实数据集进行小样本服务分类为实施例,并结合附图,详细描述本发明的实施过程,其中,图1是本发明基于元学习框架的小样本web服务分类的总体框架示意图,表1是数据集中一个web服务样例。表1原始数据集中web服务示例首先,执行步骤101(对应前文的步骤1)将原始数据集划分为训练集、验证集以及测试集,表2是训练集、验证集、测试集中的类别数和服务数,及具体实施方案中所描述的a=146,b=60,c=59,strain包含的服务数量为7698,svalid包含的服务数量为7698,stest包含的服务数量为1016。表2训练集、验证集、测试集的统计信息统计量值训练集中的类别数146训练集中的服务数7698验证集中的类别数60验证集中的服务数1034测试集中的类别数59测试集中的服务数1016然后,执行步骤102(对应前文的步骤2),构造训练过程第e个轮次的支持集与查询集计算各个词的全局权重与局部权重;然后,每训练一定轮次需要执行步骤103(对应前文的步骤3)进行验证,验证过程参照步骤3构造第e个轮次的支持集与查询集计算各个词的全局权重与局部权重;然后,训练完成时需要执行步骤104(对应前文的步骤4)进行测试,测试过程参照步骤4构造第e个轮次的支持集与查询集计算各个词的全局权重与局部权重;接着,执行步骤105(对应前文的步骤5),对于第j条服务描述分词后的词序列即desj=(wj,1,wj,2,…,wj,i,…,wj,nj),将每个词对应的全局权重以及局部权重拼接成二维向量后按顺序通过带attention机制的双向lstm来得到词的最终权重,第i个词对应的全局权重为局部权重为最终权重为图1a部分展示了步骤102、103、104以及105的详细过程。接着,执行步骤106(对应前文的步骤6)将第j条服务描述分词后的词序列即desj=(wj,1,wj,2,…,wj,i,…,wj,nj)中的词先经过嵌入层得到嵌入向量,第i个词得到的嵌入向量为ebd(wj,i),然后将嵌入向量与对应权重加权求和得到服务的向量vector(desj)。图1b部分展示了步骤106的详细过程。然后,执行步骤107(对应前文的步骤7),使用岭回归技术拟合第e个轮次的支持集中服务的向量表示与对应的标签得到分类模型。具体地,首先将服务的标签表示为独热编码,则所有服务的标签编码构成一个标签矩阵y,该矩阵的每一列对应一个类别。岭回归会针对支持集中服务的向量表示以及标签矩阵中的每一列构造一个回归模型,最后组合这些回归模型得到一个的分类模型。然后,执行步骤108(对应前文的步骤8),利用步骤107中得到的分类模型预测查询集中服务的标签并且将高置信度的服务以及其预测的标签与支持集组合成第e个轮次扩充的支持集图1c部分展示了步骤107、108的详细过程。接着,执行步骤109(对应前文的步骤9),在步骤108得到的扩充的支持集上按照步骤107重新训练一个分类模型并对查询集上中的服务再次预测,得到最终的预测结果p。最后,对于训练过程,则执行步骤110(对应前文的步骤9),使用步骤109中对于查询集的预测结果与其真实结果计算交叉熵,然后根据交叉熵计算词嵌入层、双向lstm等模型参数的梯度,使用随机梯度下降法更新网络参数。图1d部分展示了步骤109、s110的详细过程。对于验证过程以及测试过程,则根据下式计算准确率:其中,acc为模型在验证集或测试集上的准确率,m为验证集或测试集的服务数量,yi为第i个服务的真实类别,pi为第i个服务的预测类别,i为指示函数,当yi和pi相等时返回1,否则返回0。使用步骤109中对于查询集的预测结果p与其真实结果yq计算准确率,多个轮次准确率的平均值作为模型最终的准确率。基于轮次的策略不断重复训练模型,每隔一定时间在验证集上查看模型表现,当模型在验证集上效果稳定或者达到设定的最大训练次数后停止训练,最后在测试集上测试模型的最终效果。表3展示了基于元学习框架的小样本web服务分类方法在programmableweb数据集上的切除实验的分类准确率以及多次测试的方差,该表每一行代表了该方法中哪些模块被使用到,以此来展示该方法中每一个模块的重要性。其中,全局权重代表使用前述步骤2所述的全局权重,局部权重代表使用签树步骤2所述的局部权重,双向lstm表示使用步骤5所述的带attention机制的lstm来组合词的全局权重以及局部权重,全连接表示使用全连接层来组合词的全局权重以及局部权重。该表每一列代表着小样本分类的一种样本数量设定,如5waylshot中的5way代表n=5,即每一个轮次都包含5个类别;1shot代表k=1,即每个类别有一个标注样本。表3切除实验分类准确率以及方差图2对比了使用本方法步骤2、3、4、5构建服务的向量表示以及使用cnn、带attention机制的双向lstm(attnbilstm)构建服务的向量表示时,训练集以及验证集上准确率随训练次数的变化曲线。从图2可以看出,使用本方法能够使得模型在验证集上表现更好,并且模型在训练集和验证集上的效果差距会更小,这说明我们的方法有效地降低了过拟合。本发明中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属
    技术领域
    的技术人员可以对所描述的具体实施例做各种的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。当前第1页1 2 3 
    技术特征:

    1.一种基于元学习框架的小样本web服务分类方法,具体步骤如下:

    步骤1:将web服务对应的自然语言服务描述进行分词处理得到web服务的自然语言服务描述词序列,构建服务类别的集合、服务类别的web服务集合,统计所有服务类别的web服务集合中各服务类别的web服务数量,根据服务类别的web服务数量以及分类阈值构建构建训练集服务类别,根据服务类别的集合、训练集服务类别构建验证集服务类别、测试集服务类别,结合训练集服务类别构建训练集,结合验证集服务类别构建验证集,结合测试集服务类别构建测试集;

    步骤2:遵循元学习在小样本学习问题中的一般框架,训练过程使用基于轮次的策略,每一个轮次通过挑选固定数量的类别,然后在这些类别上构造支持集以及查询集来模拟小样本场景;每一轮需要先从训练集中随机选择指定数量的类别,并从每个类别中随机选择指定数量的服务作为支持集,指定数量的服务作为查询集;

    步骤3:每训练一定的轮次后需要进行验证,计算验证过程中每一个词的全局权重与局部权重;

    步骤4:每训练一定的轮次后需要进行测试,计算测试过程中每一个词的全局权重与局部权重;

    步骤5:对于通过步骤2得到的训练过程的词的全局权重以及局部权重、通过步骤3得到的验证过程的词的全局权重以及局部权重、通过步骤3得到的测试过程的词的全局权重以及局部权重,使用带attention机制的双向lstm来结合词的全局权重以及局部权重得到词的最终权重;

    步骤6:通过fasttext方式构建词向量初始化嵌入层,将web服务的自然语言服务描述词序列通过独热编码得到独热编码后web服务的自然语言服务描述词序列,进一步输入至词向量初始化嵌入层得到web服务的自然语言服务描述词序列中词的嵌入向量,结合web服务的自然语言服务描述词序列中词归一化前的最终权重,得到web服务的自然语言服务描述词序列中对应的向量;

    步骤7:将每个轮次下随机选出的n个服务类别进行重新编码得到,每个轮次下重新编码后的n个web服务类别,将每个轮次下重新编码后的n个web服务类别通过独热编码得到每个轮次下n个web服务类别的独热向量,每个轮次轮次支持集上使用岭回归技术拟合每个轮次支持集对应的分类模型;

    步骤8:对于训练过程、验证过程、测试过程,分别使用步骤2、步骤3、步骤4中所述的支持集对应的分类模型预测查询集中各web服务属于每个类别的可能性,;

    步骤9:根据扩充后的支持集训练新的分类模型,使用新的分类模型再次预测查询集中服务的标签,作为最终的预测结果;

    步骤10:使用步骤9中对于查询集的预测结果p与步骤7.2所述的查询集的真实结果计算交叉熵,然后计算交叉熵对于词嵌入层、双向lstm、步骤4.2中的可学习向量、步骤7.3中的整体学习网络的参数所的梯度,最后使用随机梯度下降法更新这些参数;

    步骤2具体包括:

    步骤2.1:从步骤1中所述训练集服务类别中随机选出n个服务类别:

    其中,ce表示第e个轮次下随机选出的n个服务类别,i∈[1,n],ei∈[1,p],p为服务类别的种类的数量;表示第e个轮次下随机选出的n个服务类别中第i个服务类别,对应步骤1中所述训练集服务类别第ei个类别;

    步骤2.2:从步骤1中所述第e个轮次下随机选出的n个服务类别中第i个服务类别对应的web服务集合中随机挑选出k个web服务,构建第e个轮次下支持集为:

    其中,表示第e个轮次下随机选出的n个服务类别中第i个服务类别对应的支持集web服务集合,表示第e个轮次下随机选出的n个服务类别中第i个服务类别对应的支持集web服务集合中第j个服务;

    所述第e个轮次下支持集为即:

    中随机挑选出q个web服务,构建第e个轮次下查询集为:

    其中,表示第e个轮次下随机选出的n个服务类别中第i个服务类别对应的查询集web服务集合,表示第e个轮次下随机选出的n个服务类别中第i个服务类别对应的查询集web服务集合中第l个服务;

    所述查询集为即:

    步骤2.3:构造样本池来计算词的全局权重;

    第e个轮次的样本池中所有web服务组成,strain为步骤1中所述训练集;设包含个web服务,即:

    其中,中的第t个web服务,它所对应的分词后的词序列为nt为这个web服务的自然语言服务描述词序列中词的数量;对中所有web服务对应的词序列进行去重后得到一个全局词汇表

    其中mglobal,e为vocabglobal,e中词的数量,j∈[1,mglobal,e],为vocabglobal,e中的第j个词,采用下式计算对应的全局权重:

    其中,为词对应的全局权重,为词在样本池中的出现频率;

    步骤2.4:对于任意轮次,在该轮次的支持集上计算词的局部权重;

    其中,所包含的web服务数量,中的第t个web服务,它所对应的分词后的词序列为nt为这个web服务的自然语言服务描述词序列中词的数量;对中所有web服务对应的词序列进行去重后得到一个局部词汇表

    其中mlocal,e为vocablocal,e中词的数量,j∈[1,mlocal,e],为vocablocal,e中的第j个词,采用下式计算对应的局部权重:

    其中,为词对应的局部权重,n为支持集中包含的服务类别的数目,为在支持集包含的web服务对应的描述中出现过词出现出现过的服务对应的类别数目;

    步骤3具体包括:

    步骤3.1:从步骤1中所述验证集服务类别中根据步骤2.1随机选出n个验证过程中服务类别;

    步骤3.2:从步骤1中所述验证集中根据步骤2.2构建验证过程中支持集与验证过程中查询集;

    步骤3.3:根据步骤2.3,构造验证过程中样本池来计算验证过程中词的全局权重,验证过程中的样本池始终为strain;

    步骤3.4:在验证过程中支持集上根据步骤2.4计算验证过程中词的局部权重;

    步骤4具体包括:

    步骤4.1:从步骤1中所述测试集服务类别中根据步骤2.1随机选出n个测试过程中服务类别;

    步骤4.2:从步骤1中所述测试集中根据步骤2.2构建测试过程中支持集与测试过程中查询集;

    步骤4.3:根据步骤2.3,构造测试过程中样本池来计算测试过程中词的全局权重,测试过程中的样本池始终为strain;

    步骤4.4:在测试过程中支持集上根据步骤2.4计算测试过程中词的局部权重;

    步骤5具体包括:

    步骤5.1:根据步骤1中所述的第j条服务描述分词后的词序列即

    desj=(wj,1,wj,2,……,wj,nj);

    对于第j条服务描述分词后的词序列中第i个词即wj,i:

    通过步骤2.3计算第j条服务描述分词后的词序列中第i个词的全局权重

    通过步骤2.4计算第j条服务描述分词后的词序列中第i个词的局部权重

    拼接成第j条服务描述分词后的词序列中第i个词的二维向量即

    输入到待训练的双向lstm中,计算第j条服务描述分词后的词序列中第i个词的的输出向量为:

    其中,输出向量的维度hiddensize为预先定义从超参数;

    步骤5.2:将第j条服务描述分词后的词序列中第i个词的的输出向量与可学习向量进行内积得到归一化前的最终权重;

    所述归一化前的最终权重通过下式进行计算:

    其中,scorej,i表示第j个web服务的自然语言服务描述词序列中的第i个词归一化前的最终权重,hj,i表示第j条服务描述分词后的词序列中第i个词的的输出向量,vt表示可学习向量;

    步骤5.3:将归一化前的最终权重通过softmax函数进行概率归一化得到词的最终权重;

    第j个web服务的自然语言服务描述词序列中的第i个词归一化后的最终权重为:

    其中,表示第j个web服务的自然语言服务描述词序列中的第i个词归一化后的最终权重,scorej,i表示表示第j个web服务的自然语言服务描述词序列中的第i个词归一化前的最终权重,e为自然对数的底数,nj为第j条服务描述分词后的词序列中词的数量;

    所述步骤8具体包括以下步骤:

    步骤8.1:对于训练过程、验证过程、测试过程,分别使用步骤2、步骤3、步骤4中所述的每个轮次支持集对应的分类模型预测查询集中各web服务属于每个类别的可能性,具体使用如下公式:

    其中,为第e个轮次支持集即中包含的服务通过步骤6得到的向量化表示,we为步骤7.3所得到的第e个轮次的岭回归参数矩阵,为第e个轮次查询集中的服务通过步骤7.3所得到岭回归模型预测的属于该轮次中n个类别的概率;

    使用softmax函数对的各行进行概率归一化得到最终的概率矩阵p,p中任意元素通过下式计算得到:

    其中,为矩阵第i行j列的值,e为自然对数底数,pij为查询集中第i个服务属于该轮次n个类别中第j个的概率,i∈[1,n*k],j∈[1,n];

    步骤8.2:通过步骤8.1计算出的查询集中各个服务属于每个类别的概率来得到查询集中各web服务预测结果的置信度,具体地,通过下式计算查询集中第i个服务的置信度:

    confi=maxj∈[0,n)pij

    其中,confi为查询集中第i个服务的置信度;

    步骤8.3:通过步骤8.1计算出的查询集中各个服务属于每个类别的概率来得到查询集中各web服务的伪标签,具体地,通过下式计算查询集中第i个服务的伪标签:

    pseudolabeli=argmaxj∈[0,n)pij

    其中pseudolabeli为查询集中第i个服务的伪标签;;

    步骤8.4:挑选查询集中置信度高于预设定阈值的web服务组成包含个web服务,即:

    其中,中的第t个web服务

    步骤8.5:将步骤8.4挑选出来的查询集中的高置信度web服务与该轮次的支持集组合形成扩充后的支持集

    2.根据权利要求1所述的基于元学习框架的小样本web服务分类方法,其特征在于:

    步骤1所述web服务的自然语言服务描述词序列为:

    desj=(wj,1,wj,2,……,wj,nj)

    其中,desj为第j个web服务的自然语言服务描述词序列,j∈[1,counttotal],i∈[1,n],counttotal为web服务的数量,nj为第j个web服务的自然语言服务描述词序列中词的数量,wj,i为第j个web服务的自然语言服务描述词序列中第i个词;

    步骤1所述服务类别的集合为:

    call={c1,c2…,cp}

    其中,cl第l种服务类别,p为服务类别的种类的数量;

    步骤1所述服务类别的web服务集合为:

    s1={webservicel,1,webservicel,2...,webservicel,ql}

    sall={s1,s2…,sp}

    其中,sall为所有服务类别的web服务集合,s1为第l种服务类别的web服务集合,webservicel,z为第l种服务类别的web服务集合中第z个web服务,ql为第l种服务类别的web服务集合中web服务的数量,l∈[1,p],z∈[1,q1],p为服务类别的类型的数量;

    步骤1所述统计所有服务类别的web服务集合中各服务类别的web服务数量:

    numall={num1,num2…,nump}

    其中,numl第l种服务类别对应的web服务数量,p为服务类别的种类的数量;

    步骤1所述根据服务类别的web服务数量以及分类阈值构建构建训练集服务类别为:

    所述分类阈值为threshold;

    将numl>threshold的服务类别挑选出来用于构建训练集服务类别;

    所述训练集服务类别定义为:

    其中,训练集中第ai个服务类别,a为训练集中服务类别的类型的数量,

    步骤1所述根据服务类别的集合、训练集服务类别构建验证集服务类别、测试集服务类别为:

    在call-ctrain中随机划分一半的服务类别作为验证集服务类别即cvalid,另一半服务类别作为测试集服务类别即ctest;

    所述验证集服务类别定义为:

    其中,验证集中第bi个服务类别,b为验证集中服务类别的类型的数量,

    所述测试集服务类别定义为:

    其中,验证集中第ci个服务类别,c为验证集中服务类别的类型的数量,

    步骤1所述结合训练集服务类别构建训练集为:

    将num1>threshold的服务类别对应的web服务集合挑选出来,用于构建训练集;

    所述训练集定义为:

    其中,训练集中第ai个服务类别的web服务集合,a为训练集中服务类别的类型的数量;

    步骤1所述结合测试集服务类别构建验证集为:

    在call-ctrain中随机划分一半的服务类别的web服务集合作为验证集即cvalid,另一半服务类别的web服务集合作为测试集即ctest;

    所述验证集定义为:

    其中,验证集中第bi个服务类别的web服务集合,b为验证集中服务类别的类型的数量;

    步骤1所述结合测试集服务类别构建测试集为:

    所述测试集定义为:

    其中,测试集中第ci个服务类别的web服务集合,c为测试集中服务类别的类型的数量。

    3.根据权利要求1所述的基于元学习框架的小样本web服务分类方法,其特征在于:

    步骤6所述结合web服务的自然语言服务描述词序列中词归一化前的最终权重,得到web服务的自然语言服务描述词序列中对应的向量为:

    其中,vector(desj)为第j个web服务的自然语言服务描述词序列中对应的向量表示,ebd(wj,i)为第j个web服务的自然语言服务描述词序列中的第i个词的向量,表示第j个web服务的自然语言服务描述词序列中的第i个词归一化后的最终权重,nj为第j个web服务的自然语言服务描述词序列中包含的词的数量。

    4.根据权利要求1所述的基于元学习框架的小样本web服务分类方法,其特征在于:

    所述步骤7具体包括以下步骤:

    步骤7.1:将每个轮次下随机选出的n个web服务类别进行重新编码,对于第e个轮次下随机选出的n个服务类别即步骤2.2中所描述的其原始类别编号为:

    其中,|call|表示call中包含的类别总数,重新编码的目的是为了将类别的编号限定至0~n-1;

    先将原始类别编号按从小到大的顺序排列成

    然后依次与0~n-1相对应;

    步骤7.2:将每个轮次下重新编码后的n个web服务类别通过独热编码得到每个轮次下n个服务类别的独热向量;具体地,对于重编码后的任意类别cnew∈[0,n-1],将其表示为一个n维向量cnew_onehot,cnew_onehot的第cnew维度为1,其余维度均为;则第e轮次的支持集包含的web服务的经过此步骤得到的独热标签组成矩阵第e轮次的查询集包含的web服务的经过此步骤得到的独热标签组成矩阵

    步骤7.3:在第e个轮次支持集即上使用岭回归技术拟合第e个轮次支持集对应的分类模型,具体岭回归通过最小化下式来得到用于分类的模型:

    其中,l(we)为模型需要最小化的函数,为模型的参数矩阵,为第e个轮次支持集即中包含的服务通过步骤6得到的向量化表示,为第e个轮次支持集即中包含的服务的原始标签通过步骤7.1重编码后得到的类别的独热表示,e为词向量维度,n为支持集种的类别数;模型的参数矩阵即we的任意一列e维向量we,·j(j∈[1,n])用于拟合xs与对应的标签列ys·j;

    最后,λ是正则化参数,是可学习参数,用于降低过拟合。

    5.根据权利要求1所述的基于元学习框架的小样本web服务分类方法,其特征在于:

    所述步骤9具体包括:

    步骤9.1:在扩充后的支持集上按照步骤7.2所述使用岭回归技术重新训练新的分类模型;

    步骤9.2:利用新的分类模型按照步骤8.1所述方式得到查询集中各个服务属于该轮次n个类别的概率p。

    6.根据权利要求1所述的基于元学习框架的小样本web服务分类方法,其特征在于:

    步骤10所述计算交叉熵为:

    步骤9根据步骤8预测的查询集属于各个类别的概率,通过与其真实类别进行对比计算交叉熵,具体计算公式为:

    其中ce(yq,p)为该轮次的交叉熵,yq为步骤7.2所述的查询集的真实结果,为yq第i行第j列的值,即查询集中第i个样本属于第j类的概率,p为模型预测的查询集属于各个类别的真实概率,pij为p第i行第j列的值,即查询集中第i个样本属于第j类的预测概率。

    技术总结
    本发明涉及一种基于元学习框架的小样本Web服务分类方法。根据每个类别对应的样本数量划分训练集、验证集、测试集;使用基于轮次的策略,每个轮次随机挑选数个类别构造支持集、查询集、样本池;计算词的全局和局部权重,然后通过LSTM得到词的最终权重并与词向量加权求和得到Web服务的向量表示;使用岭回归拟合支持集得到一个分类模型并预测查询集类别,挑选高置信度预测结果作为伪标签,使用这部分数据扩充支持集后重新训练分类模型并得到查询集样本的最终概率。对预测的概率与真实类别计算交叉熵来更新整体网络。本发明重点关注样本量很少的Web类别分类,提高了它们的分类准确率;由于训练、测试类别不重合,本方法能够未训练到的新类别进行分类。

    技术研发人员:李兵;刘永强;王健
    受保护的技术使用者:武汉大学
    技术研发日:2020.11.30
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-20045.html

    最新回复(0)