技术领域
[0001] 本
发明属于计算机科学与技术领域,具体涉及一种基于BERT下卷积神经网络的服务发现方法。
背景技术
[0002] 服务发现的主要任务是匹配查询
请求与候选服务之间的功能描述信息。这些信息通常以自然文本的形式表示,在相似度计算过程中,首先需要对其进行向量化处理。传统的词嵌入方法,如Word2Vec模型,其生成的词向量是静态的,每个单词都有一个固定的表示,而与单词出现的上下文无关。随着互联网的快速发展,服务资源的类型功能也日趋多样化,这种静态词嵌入方法在挖掘文本语义信息方面存在一定
缺陷,生成的词向量不能充分反映单词在特定语境下的语义。此外,常用的基于空间向量的相似度计算方法虽简单易行,但缺乏从多
角度全面的对比匹配,从而影响对目标服务的精准检索。由此,需要针对存在的不同的问题设计出对应的解决方案。
发明内容
[0003] 为了克服现有服务发现技术中所存在的不足,本发明提供一种基于BERT下卷积神经网络的服务发现方法,结合BERT词向量与卷积神经网络功能特性,在文本相似度计算的
基础上能够为用户提供最优目标服务的发现方法。
[0004] 本发明实现上述目的所采用的技术方案为:一种基于BERT下卷积神经网络的服务发现方法,包括以下步骤:
[0005] 步骤1,从客户端获取OWLS-TC4数据集查询请求及服务,并基于预训练BERT模型生成词向量表示;
[0006] 步骤2,基于步骤1所得的词向量,通过计算查询请求与服务关键词向量之间的余弦相似度来构建查询请求与服务的关键词相似度矩阵;并以此作为卷积神经网络的输入矩阵;
[0007] 步骤3,对步骤2所得的相似度矩阵进行卷积
池化操作,得到查询请求与服务的相似度匹配得分;
[0008] 步骤4,对于每一条查询请求,逐一与服务集中的候选服务进行步骤2和3操作,并根据步骤3所得相似度匹配得分对候选服务进行排序,从而找到合适的目标服务,即最高相似度匹配得分所对应的服务即为所要检索的目标结果。
[0009] 步骤1中,采用bert-as-service的客户端与服务端,将预训练BERT模型作为一个服务独立运行,在客户端以调用服务的方式使用BERT模型。
[0010] 步骤1通过以下具体步骤实现:
[0011] 步骤11,从查询请求与服务的owls文件中提取对应的自然语言功能描述信息;
[0012] 步骤12,对查询请求与服务的功能描述信息进行预处理,包括去除停用词、词干提取及分词,获取相应的关键词,完成对文本的特征提取;
[0013] 步骤13,从客户端调用BERT模型,生成每条查询请求与服务的词向量表示。
[0014] 步骤2中所述相似度矩阵中,其组成元素是查询请求与服务在词粒度上基于词向量的余弦相似度。
[0015] 步骤3中所使用的卷积神经网络由
输入层、卷积层、池化层及
输出层四部分构成,输入矩阵为步骤2所得查询请求与服务的相似度矩阵。
[0016] 步骤3中,在卷积层采用一个大小为2*2的卷积核单步长对输入矩阵进行卷积扫描,通过将卷积核与输入矩阵感受野中对应
位置的元素相乘求和实现特征的初步提取,并生成相应的特征矩阵。
[0017] 步骤3中,池化层中采用Max-Pooling方式,将卷积层特征矩阵感受野中最大的相似度元素作为池化的输出特征,对整个输入特征矩阵进行池化操作,从而构成池化输出矩阵,完成对相似度特征的深度过滤与提取。
[0018] 步骤3中,卷积和池化操作交替进行,直至相似度矩阵降为一维向量,最终所得的相似度匹配得分为所述一维向量中元素的均值。
[0019] 步骤4中,对服务集中的每条候选服务与给出的查询请求进行步骤2和步骤3操作,并根据所得的相似度匹配得分对候选服务排序,得分最高的服务即为所要检索的目标结果。
[0020] 与现有的服务发现方法相比,本发明具有如下优点:本发明应用迁移学习思想,调用预训练BERT模型简化操作流程及复杂度,并保证生成的词向量具有良好的可靠性;基于BERT模型的结构特征以及应用范围,并结合本发明所处理的数据形式,生成包含丰富上下文语义信息的词向量,可以有效地支持服务相似度计算;利用卷积神经网络的功能特点,基于查询请求与服务在词粒度上的相似度矩阵,做进一步特征提取,从而获得更精准的相似度匹配得分,以找到最准确的目标服务,实现了对目标服务的精准检索。
附图说明
[0021] 图1为基于BERT下卷积神经网络的服务发现方法结构图。
[0022] 图2为服务示例图。
[0023] 图3为BERT的预训练模型图。
[0024] 图4为卷积神经网络计算相似度的实现
流程图。
具体实施方式
[0025] 图1是本发明的整体结构图,现结合附图对本发明的技术方案作进一步说明。
[0026] BERT是一种预训练语言表示方法,通过联合调节所有层中的上下文,预先训练深度双向表示。用户可以使用预训练好的BERT模型,从文本中提取高
质量的语言特征来完成特定的任务。与传统的词嵌入模型相比,BERT模型根据单词所处的上下文来动态生成词向量表示。除了能够捕获一词多义之类的明显差异外,还能获取丰富的上下文相关信息,从而提高生成的词向量质量。此外,卷积神经网络作为一种高效的识别
算法,在
计算机视觉等领域取得了一系列突破性研究成果,同时也被广泛应用于
自然语言处理领域。通过局部接收、权值共享以及降
采样从输入数据中抽象出更本质的表达,其强大的特征学习和表示能
力为许多自然语言处理问题的研究提供了有效的方法和思路。
[0027] 基于这两种方法的优势特点,本发明考虑将其结合起来,用于服务发现过程中,快速准确地找出符合用户请求的目标服务。
[0028] 本发明提出的基于BERT下卷积神经网络的服务发现方法,包括生成BERT词向量及应用卷积神经网络计算相似度两大过程,具体步骤如下:
[0029] 步骤1:安装bert-as-service的客户端与服务端
[0030] 本发明中所采用的bert-as-service库是一个已开源的BERT服务,分为客户端和服务端。在模型调用之前需通过命令,将其安装在不同的机器上,以便用户以调用服务的方式来使用BERT模型。
[0031] 步骤2:下载预训练BERT模型并启动BERT服务
[0032] 对BERT模型的训练需要一定的设备和数据支持,耗时费力,根据自然语言处理任务的类型和规模,现有多种预训练BERT模型,可供训练选择,用户通过在客户端开启BERT服务向服务端发出请求,可直接调用所选择的预训练模型,而无需进行大规模训练。
[0033] 步骤3:生成BERT词向量
[0034] 本发明采用OWLS-TC4数据集,包含涉及教育、医疗、食品、通讯、经济、地理、旅游、武器、仿真这九个领域的1083条语义web服务和42条用户查询请求,且均以owls文件形式存储;这些原始数据不能直接参与运算,首先需要对其进行向量化处理,得到基础的BERT词向量,具体步骤如下:
[0035] 步骤3.1:图2给出了一个示例服务的owls文件信息,其中服务配置文件(profile)将服务描述为一个具有三种类型信息的功能:哪个组织提供了该服务、该服务提供了什么功能以及一组服务特征的属性,用于公布和发现服务;
进程模型(process)详细描述了服务的具体工作过程;服务基础(grounding)则提供了如何通过消息来
访问服务的细节。本发明基于查询请求与服务的功能匹配来发现目标服务,需要从服务各自owls文件中的配置文件模
块提取对应的功能描述信息来进行相似度匹配,如图2框线中所示。
[0036] 步骤3.2:将描述语句分词为单词组,获取查询请求和服务相应的关键词,完成对文本特征提取。服务及查询请求的功能描述信息以自然文本形式呈现,在文本处理过程中首先需要去除停用词并提取单词词干,减少运算复杂度。此外,本发明是基于查询请求与服务在词粒度上的相似度矩阵来应用卷积神经网络。因此,还需将描述语句分词为单词组,获取相应的关键词,完成对文本的特征提取。
[0037] 步骤3.3:采用bert-as-service将BERT模型作为一个独立的编码服务,调用所选的预训练BERT模型得到每个词在各个文本中的词向量表示。与传统数值计算不同,对于文本信息处理的关键步骤是进行向量化操作,以此来得到每个词在各个文本中的词向量表示。本发明采用bert-as-service将BERT模型作为一个独立的编码服务,用户在客户端通过API
接口即可调用所选的预训练BERT模型来获取词向量表示。BERT模型如图3所示,其中E和T分别表示输入及输出词向量,
中间层采用双向预测的Transformer模型。对于一个包含n个关键词的服务或查询请求描述,通过BERT模型可得一个大小为n×768的二维数组,所述二维数组的每一行表示对应关键词的词向量,二维数组包含768个特征值,BERT词向量由此生成。
[0038] 步骤4,通过相似度的对比匹配,找出符合用户请求的目标服务;通过计算查询请求与服务关键词向量之间的余弦相似度来构建查询请求与服务的关键词相似度矩阵;
[0039] 服务发现过程中的主要任务是计算查询请求与候选服务之间的相似度,通过相似度的对比匹配,找出符合用户请求的目标服务。本发明所采用的卷积神经网络是基于查询请求与服务在词粒度上的相似度来挖掘深层的匹配信息,从而得到精准的相似度匹配得分。假设用户查询请求描述中包含n个关键词,即Q=(q1,q2,…,qn);服务描述中包含m个关键词,即S=(s1,s2,…,sm),且步骤3中已得到每个关键词在具体上下文中的BERT词向量表示。本发明通过计算查询请求与服务关键词向量之间的余弦相似度来构建大小为n×m的相似度矩阵An×m,(对于An×m中的任意元素aij,其大小为查询请求描述中的第i个关键词与服务描述中第j个关键词基于BERT词向量的余弦相似度值),并以此作为卷积神经网络的输入矩阵。
[0040] 其中,余弦相似度用向量空间中两个向量夹角的余弦值来衡量两个个体间差异的大小;计算公式为:
[0041]
[0042] 上述余弦相似度计算方法中的 与 表示两个向量, 与 分别表示 与 的模,Ai与Bi分别表示向量 与 的第i个分量,n则表示向量中所含分量的总个数。
[0043] 步骤5,应用卷积神经网络得到相似度匹配得分。图4为应用卷积神经网络模型获取查询请求与服务最终相似度匹配得分的具体实现流程图。本发明所选用的卷积神经网络模型包含输入层、卷积层、池化层及输出层四部分。输入层由步骤4所得查询请求与服务的关键词相似度矩阵构成,并在卷积层采用一个大小为2*2的卷积核单步长对输入矩阵进行卷积扫描,通过将卷积核与输入矩阵感受野中对应位置的元素相乘求和实现特征的初步提取,并生成相应的特征矩阵。
[0044] 同样,卷积层中所得的特征矩阵将作为下一池化层的输入,对特征进行深度过滤。为了保留相似度高的特征元素以符合服务发现的方法要求,本发明在池化层中采用Max-Pooling方式,将卷积层特征矩阵感受野中最大的相似度元素作为池化的输出特征,对整个输入特征矩阵进行池化操作,从而构成池化输出矩阵,完成对相似度特征的深度过滤与提取。
[0045] 本发明在应用卷积神经网络时卷积和池化操作交替循环进行,即卷积的输出特征矩阵用于池化的输入,同时池化输出矩阵也将作为卷积层的输入用于二次卷积。由于每进行一次卷积或池化操作,矩阵的维度会相应地缩减,因此,在进行
迭代循环过程中需要确定当前的相似度特征矩阵大小以判断当前状态是否满足操作的终止条件。若经过卷积池化操作后矩阵降为一维(行或列)向量,则停止循环,并将所述一维向量中所有元素的均值作为查询请求与服务最终的相似度匹配得分,用于对服务排序;否则,继续迭代循环,直至当前状态满足终止条件,相似度计算过程结束。
[0046] 步骤6,最后基于卷积神经网络所得的相似度匹配得分对服务集中的候选服务进行排序,从而发现最满足用户查询需求的目标服务,上述步骤中所得的相似度匹配得分用于衡量查询请求与的单一具体服务的匹配程度。而在服务发现过程中,对于用户的查询请求,需要逐一与候选服务进行相似度匹配,因此,本发明将对服务集中的每条候选服务与给出的查询请求进行步骤4和步骤5操作,并根据升序排序的相似度匹配得分对服务列表顺序进行调整,则最高相似度匹配得分所对应的服务即为所要检索的目标结果。