首页> 中国专利> 融合深度学习和工作流模式的服务需求冲突检测方法

融合深度学习和工作流模式的服务需求冲突检测方法

摘要

本发明公开了融合深度学习和工作流模式的服务需求冲突检测方法,包括如下步骤:S1,分析服务需求文档提取基于工作流的过程语言规范的外层信息;S2,通过TextCNN提取基于工作流的过程语言规范的内层信息,包括如下步骤:S21,自然语言输入嵌入层,进行向量转化;S22,将向量输入卷积层,提取特征;S23,对每个特征图使用池化函数,使特征图的维度相同;S24,通过全连接层拼接池化后的结果,采用激活函数得到属于每个类的概率值,通过概率值得到其所对应的工作流模式;S3,通过内、外两层信息,将服务需求转换为基于工作流的过程语言规范,从而对信息进行建模;S4,采用检测规则进行服务需求冲突的自动化检测。

著录项

  • 公开/公告号CN112651246B

    专利类型发明专利

  • 公开/公告日2023.08.22

    原文格式PDF

  • 申请/专利权人 浙江工商大学;

    申请/专利号CN202110065804.X

  • 发明设计人 姜波;陈骏武;汪烨;宋师哲;

    申请日2021.01.19

  • 分类号G06F40/30(2020.01);G06F40/289(2020.01);G06F40/253(2020.01);G06F18/2415(2023.01);G06N3/048(2023.01);G06N3/0464(2023.01);G06N3/08(2023.01);G06Q30/06(2023.01);

  • 代理机构杭州浙科专利事务所(普通合伙) 33213;

  • 代理人杨小凡

  • 地址 310018 浙江省杭州市下沙高教园区学正街18号

  • 入库时间 2023-09-15 19:05:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-22

    授权

    发明专利权授予

说明书

技术领域

本发明涉及冲突检测技术领域,尤其是涉及融合深度学习和工作流模式的服务需求冲突检测方法。

背景技术

云计算以互联网为中心,在网站上提供快速且安全的云计算服务与数据存储,让每一个使用互联网的人都可以使用网络上的庞大计算资源与数据中心。

目前服务系统部署在云环境中。服务系统的质量在很大程度上依赖于服务需求文档的质量,但现阶段大多数服务需求都是以自然语言的形式人工记录,因此容易存在不准确、易出错以及缺乏整体结构等问题。深度学习是机器学习研究发展出来的一个新领域,其可建立模拟人脑进行分析学习的神经网络,即模仿人脑的机制来解释数据,如图像、声音以及文本,其优点是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。卷积神经网络(CNN)是深度学习的代表算法之一,其具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化特征,利用其效果稳定、对数据没有额外的特征工程要求等优点,可使基于CNN的TextCNN技术在文本分类问题上具有更加卓越的表现。

Kamalrudin、Hosking以及Grundy提出了一个使用EUC交互模式来提高服务需求文档质量的技术,并开发了一个CASE工具来支持其工作,EUC技术首先将自然语言形式的服务需求转换为半正式的需求,再从EUC中提取抽象交互以派生出EUC模型,最后将派生出的EUC模型与EUC交互模型进行比对验证,EUC技术的流程与本发明相似,但其使用的是EUC交互模式,存在使用范围不广、适用性不强等问题。在对服务需求进行验证方面,Sarmiento、Leite以及Almentero开发了一套集合正确性、一致性以及完整性的3Cs模式来自动的进行场景验证,3Cs模式使用NFR方法将与正确性、一致性以及完整性相关的非功能性需求组织起来,并作为NFRs目录,但是他们的方法只能评估场景的属性。Gacitua、Sawyer以及Gervasi提出了一种名叫关联驱动抽象识别的RAI技术,用于从自然语言文档中识别抽象领域的关键字。

发明内容

为解决现有技术的不足,实现通过挖掘需求缺陷以减少服务需求冲突,从而提高服务需求文档的质量,最终提高云环境中服务系统的质量的目的,本发明采用如下的技术方案:

融合深度学习和工作流模式的服务需求冲突检测方法,包括如下步骤:

S1,分析服务需求文档提取基于工作流的过程语言规范的外层信息;

S2,通过TextCNN提取基于工作流的过程语言规范的内层信息,通过TextCNN对自然语言进行处理,对得到的概率值,判断其对应的工作流模式,包括如下步骤:

S21,自然语言输入嵌入层,进行向量转化,目的是将不可计算、非结构化的词转化为可计算、结构化的向量,即将现时世界的词语问题转换为数学中的向量问题,以方便进行卷积处理;

S22,将向量输入卷积层,使用一维卷积提取特征,一维卷积只在序列的一个方向做卷积,卷积核的宽度固定为词向量的维度,高度是超参数,设置窗口滑动步长,对句子单词构成的每个窗口做卷积操作得到特征图;

S23,对每个特征图使用池化函数,使特征图的维度相同,由于卷积层过程中使用了不同高度的卷积核,不同尺寸的卷积核得到的特征(feature map)大小不一样,所以我们对每个feature_map[1..n]使用池化函数,使它们的维度相同;

S24,通过全连接层拼接池化后的结果,使结果保留了主要特征且降低了参数的数目,将其维数降低,采用激活函数得到属于每个类的概率值,通过概率值得到其所对应的工作流模式,从而提取得出基于工作流模式的过程语言规范所需要的内层信息;

S3,通过内、外两层信息,将服务需求转换为基于工作流的过程语言规范,从而对信息进行建模;

S4,采用检测规则进行服务需求冲突的自动化检测,用于防止服务需求文档中出现不一致、不正确以及不完整等问题。

进一步的,先进行S2,通过S2得到的内层信息,分析文档得到每个服务需求的外层信息,再执行S3。

进一步的,所述步骤S22具体包括如下步骤:

S221,一个卷积核,宽度为d,高度为h的矩阵w,w有h*d个参数需要被更新,对于一个句子,经过嵌入层后得到矩阵A,A[i:j]表示A的第i行到第j行,卷积操作用如下公式表示:

o

s表示:对输入的句子进行切词后得到s个单词,即为矩阵A的行数。

S222,设置窗口滑动步长为1,下次卷积计算则将窗口向下滑动一行,最后得到特征图feature_map[1..n];

S223,特征图叠加上偏置b,再使用激活函数f激活,得到所需提取的特征,公式如下:

c

一个卷积核得到特征c,总共s-h+1个特征;

S224,采用多个不同高度的卷积核,以得到更丰富的特征表达。

进一步的,所述步骤S23采用1-Max-pooling池化函数,从特征图feature_map[1..n]中选取最大值作为输出,以抑制网络参数误差造成估计均值偏移的现象,能够更好地提取特征信息(人为这个最大值表示的就是最重要的特征),每一个卷积核得到特征就是一个值。

进一步的,所述S24的激活函数采用sigmoid作为激活函数,其函数表达式为:

sigmoid函数连续、光滑以及严格单调,可以作为一个很好的阈值函数。

进一步的,所述步骤S3中,通过基于工作流的过程语言(WPPL)对服务需求进行建模,从而得到符合预期的服务需求文档,采用操作语言来表示服务需求的操作以及操作的对象,所述服务需求的描述分为内外两层结构,内层描述服务中的进程流,外层描述服务的关键属性。

进一步的,所述内层,每一个服务需求是一个或多个由一系列控制流连接的多个操作所组成的业务流程,所述控制流由工作流模式表示。

进一步的,所述外层描述的关系属性包括:输入、输出、前置条件以及外置条件,输入、输出数据用entities表示实体,前置、后置条件用state(entity)表示实体的状态,使用状态来表示前置、后置条件是为了后续进行基于IOPE概念的需求验证。

进一步的,所述工作流模式包括顺序模式、平行拆分模式、同步模式、排他选择模式和简单合并模式五个子服务,通过一组预定义的工作流来协同合作,映射到原子的业务操作、业务服务或者是一个组合服务;

所述顺序模式,是在一个流程实例中,各个活动按顺序挤依次执行;

所述平行拆分模式,是在一个流程实例中,存在两个或多个执行路径平行执行,平行的路径之间没有关联,平行路径的执行没有确定的测序关系;

所述同步模式,是在一个流程实例中,一个活动的执行取决于前面几个路径的执行结果;

所述排他选择模式,是在一个流程实例中,根据不同的条件,会有不同的执行路径;

所述简单合并模式,是在一个流程实例中,两个或多个执行路径在一个活动节点上合并。

进一步的,所述步骤S21中的嵌入层,采用word2vec方法进行词嵌入,构成二维矩阵,作为卷积层的输入。选取word2vec方法是因为其具有维度少、映射速度快和通用性强等优点。

本发明的优势和有益效果在于:

本发明使用的是工作流模式,能够提供一个通用的循环流程结构集合,以弥补使用EUC交互模式时不具有强适用性的问题;本发明注重于验证具有多重流程的服务需求;本发明注重于采用工作流模式从自然语言文本中获取流程信息,而不是抽象概念领域。

附图说明

图1是基于工作流模式的UML2.0活动图。

图2是本发明的方法总览图。

图3是本发明中服务需求建模过程结构总览图。

图4是本发明中TextCNN模型框架图。

图5是本发明中Word Embedding结果图。

图6是本发明中卷积计算示意图

图7是本发明中sigmoid函数图。

图8是本发明中1-Max-pooling池化函数使用结果图。

图9是本发明中softmax示意图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

本发明在云计算环境下融合了工作流模式和深度学习算法。工作流模式的核心概念为对一个实际业务处理流程进行抽象描述,其有21种常见模式类型,而本算法使用最基本的五种模式作为基本基准来提取服务之间的进程消息以及评估需求文档的品质,其分别是1)Sequence顺序模式,即在一个流程实例中,各个活动按顺序挤依次执行;2)Parallelsplit平行拆分模式,即在一个流程实例中,存在两个或多个执行路径平行执行,但这些平行的路径之间没有关联,平行路径的执行没有确定的测序关系;3)Synchronization同步模式,即在一个流程实例中,某一个活动的执行取决于前面几个路径的执行结果;4)Exclusive choice排他选择模式,即在一个流程实例中,根据不同的条件,会有不同的执行路径;5)Simple merge简单合并模式,即在一个流程实例中,两个或多个执行路径在一个活动节点上合并。如图1所示。

一、方法框架

如图2所示,为了得到一个高质量的服务需求文档,我们使用基于工作流模式的过程语言(WPPL)对服务需求进行建模。为了提高转换的效率,我们利用工作流模式和改良于卷积神经网络的TextCNN文本分类技术,从服务需求文档中半自动的提取内层过程信息。

其转换过程分为需要提取分析出内外两层信息:

1、首先外层信息由需求分析员从服务需求文档中分析得出;

2、内层信息应用TextCNN技术,通过最后得到的概率值判断其对应的工作流模式。通过以上两个步骤得到内外两层信息后就可将服务需求转换为WPPL规范从而对信息进行建模;

3、最后为了防止服务需求文档中出现不一致、不正确以及不完整等问题,采用自定义的检测规则来进行服务需求冲突的自动化检测。

用贸易订单示例来演示转换过程,如图3所示。

二、方法具体步骤

1、基于工作流的过程语言(WPPL)概述

我们使用WPPL对服务需求进行建模,从而得到符合预期的服务需求文档,WPPL即基于工作流模式的过程语言。以由工作流模式组成的业务流程形式来描述服务需求,每个服务需求都有唯一的名称,每个名称都在类似于操作语言的操作形式中定义,比如action(entity1,entity2,…),操作语言是一种实现建模操作以及效果而设计的语言。操作语言的语义基于如下假设“事情在发生改变之前保持不变”。此假设与我们在WPPL中表示的服务需求假设相同。因此,我们采用操作语言来表示服务需求的操作以及操作的对象。每个服务需求的描述分为内外两层结构,内层描述服务中的进程流,外层描述服务的输入、输出、前置条件以及外置条件等关键属性。

在外层,输入、输出数据用entities表示,前置、后置条件用state(entity)表示,其含义为实体的状态。我们使用状态来表示前置、后置条件是为了后续进行基于IOPE概念的需求验证。在内层,每一个服务需求可以被视为一个或多个由一系列控制流连接的多个操作所组成的业务流程,这些控制流由工作流模式表示。如下是WPPL的Backus-Naur范式语法:

/*外层*/

::=

::=name Action

::=input Entity+

::=output Entity+

::=precondition State+

::=postcondition State+

/*内层*/

::=process|

::=()

::=Action,Action|Action,

::=seq|par_split|sync|excl_choice|merge

贸易订单是金融交易服务系统中一种代表性服务,所以在此我们用贸易订单为例来说明本方法,其服务需求为:“The trader enters a new order to the system.Theoperator would then match the new order with existing opposite-side orders inthe order book.If the new order fails to be matched,the new order should beadded to the order book;otherwise,the printing agent will print the trade tothe public.After the trade is successfully printed,the system will notify thetrader with the new trading information,including the traded price andtrading sizes,and so on.”即“交易员向系统输入一个新的贸易订单,接着操作员把新的贸易订单与在订单簿中现有的对立面订单进行匹配,如果新订单匹配失败,那么将新订单添加到订单簿中,否则信息公开代理人将向公众公开此贸易订单。在订单成功完成打印后,系统将向交易员传送新的交易信息,包括订单价格、订单尺寸等。”,将此服务需求的名称定义为trade(order),trade(order)的前置条件是已经准备好的初始订单,将其定义为prepared(initial_order),其后置条件是订单已经被交易或者订单已经被添加到订单簿,分别定义为traded(order)与updated(order_book),并用逻辑或进行连接,表示为V。

在内层,其流程包含五个子服务,它们可以映射到原子的业务操作、业务服务或者是一个组合服务。这些子服务一组预定义的工作流来协同合作,此合作流程可表示为:

seq(enter(order),match(order));excl_choice(match(order),add(order),print(trade));seq(print(trade),notify(trader))

这意味着为了实现trade(order)的目标,此订单需要进入系统(即enter(order)),然后与订单簿中的订单进行匹配(即match(order))。如果在流程中没有发现此订单,则将新的订单添加到订单簿(即add(order)),否则输出该交易订单(即print(trade))然后通知交易员(即notify(trader))。为了避免某些服务需求发生使用同样的关键字作为模式名称,在WPPL中使用缩写来表示每一个模式,例如,seq表示sequence以及par_split表示parallel split。

2、基于TextCNN提取内外层两层信息

为了从服务需求中准确全面的提取出内层信息,我们在基于工作流模式的基础上融合了深度学习中的TextCNN算法技术来对自然语言进行处理从而提取信息。TextCNN在卷积神经网络算法的基础上进行改进,即在输入嵌入层做了变形,将文本数据作为输入,因为文本数据是一维数据,所以在卷积层也只需做一维卷积,在网络结构简单的情况下,仍然有着卓越的文本分类表现。如图4所示。

1)Embedding layer(输入嵌入层)

在此层进行word embedding,目的是将不可计算、非结构化的词转化为可计算、结构化的向量,即将现时世界的词语问题转换为数学中的向量问题。使用例句“The traderentera new order to the system”进行演示,将其分词为“The/trader/enter/a/new/order/to/the/system”,要判断词语的各个性质,就需要构建一个映射,但普通的数学模型只能接受数值型的输入,而本发明是处理自然语言,是人类的抽象总结,所以要将其转换为数值的形式,即本方法的词嵌入embedding方式选择word2vec方法,将分词结果中的每一个词映射成一个5维的词向量,将自然语言数值化以方便进行卷积处理,其结果如图5所示。

使用不同的embedding会对结果产生巨大影响,由于word2vec方法具有维度少、映射速度快和通用性强等优点,所以本方法使用word2vec以构成一个9*5的二维矩阵,作为在卷积层进行卷积计算的输入。

2)Convolution Laye(卷积层)

卷积神经网络在处理图像时应用的是二维卷积,但由于文本数据是一维的,所以TextCNN技术在做卷积时应用的是一维卷积。

把矩阵上层得到的矩阵看成是一幅图像,使用卷积神经网络去提取特征。由于句子中相邻的单词关联性总是很高的,因此可以使用一维卷积,即文本卷积与图像卷积的不同之处在于只在文本序列的一个方向(垂直)做卷积,卷积核的宽度固定为词向量的维度d,即为5。高度是超参数,本方法设置窗口滑动步长为1。对句子单词每个可能的窗口做卷积操作得到特征图feature_map[1..n]。

现在假设有一个卷积核,是一个宽度为d,高度为h的矩阵w,那么w有h*d个参数需要被更新。对于一个句子,经过嵌入层之后可以得到矩阵A。A[i:j]表示A的第i行到第j行,那么卷积操作可以用如下公式表示:

o

其中,s表示对输入的句子进行切词后得到s个单词,即为矩阵A的行数;例如分词“The/trader/enter/a”得到一个4*5的矩阵,将其与卷积核按元素相乘,再将其相加求和,即为卷积操作,如图6所示。

设置窗口滑动步长为1,下次卷积计算则将窗口向下滑动一行,最后得到的便是特征图feature_map[1..n],叠加上偏置b,再使用激活函数f激活,得到所需的特征。公式如下:

c

对一个卷积核,可以得到特征c,总共s-h+1个特征。本方法选择多个不同高度的卷积核(即高度为4,3),以得到更丰富的特征表达。由于sigmoid函数连续、光滑以及严格单调,是一个很好的阈值函数,所以本方法使用sigmoid作为激活函数,其函数表达式为:

其函数图像如图7所示。

3)Pooling(池化)

因为在卷积层过程中我们使用了不同高度的卷积核,不同尺寸的卷积核得到的特征(feature map)大小不一样,所以我们对每个feature_map[1..n]使用池化函数,使它们的维度相同。本方法选择1-Max-pooling池化函数,即从特征图feature_map[1..n]中选取最大值作为输出,以抑制网络参数误差造成估计均值偏移的现象,能够更好地提取特征信息(人为这个最大值表示的就是最重要的特征)。这样每一个卷积核得到特征就是一个值,对所有卷积核使用1-max pooling,再级联起来,可以得到最终的特征向量,结果保留了主要特征且降低了参数的数目,将其维数降低。如图8所示。

4)Fully connected layer(全连接层)

将上层用1-Max-pooling池化函数池化后的结果拼接起来,如图9所示,接着使用softmax激活函数得到属于每个类的概率。通过得到的概率值即可得到所对应的工作流模式,即概率值为1则对应顺序工作流模式,若为-1则对应同步工作流模式,从而提取得出WPPL规范所需要的内层信息。

在获得WPPL规范的内层信息后,我们通过分析文档获得出每个服务需求的外层信息,即包括其自身的输入、输出、前置条件、后置条件。最后通过结合所得到的内外两层信息,我们就可将服务需求转换为WPPL规范从而对信息进行建模,从而得到高质量的服务需求文档。

3、检测冲突

为了检测服务需求文档中的冲突,本方法提出13种检查规则来验证服务需求。如表1所示:

表1.服务需求的冲突检查规则

利用定义的检验规则进行检验,通过贸易订单的例子可以证明本方法可以有效避免在服务需求文档中出现不一致、不正确以及不完整等问题,凭借深度学习和工作流模式在工业上的广泛应用也提高了本方法的适用性,最后本方法的步骤概述如下:

1)分析服务需求文档以提取WPPL规范中的外层信息。

2)使用TextCNN来提取WPPL规范中的内层流程信息,包括他们之间的子服务和控制流。

3)通过结合前两个步骤所所得到的结果来生成WPPL规范。

4)通过与工作流模式匹配以及检查规则进行检查来验证WPPL规范。

5)将验证结果输出。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号