CN115145551A - 一种面向机器学习应用低代码开发的智能辅助系统 - Google Patents
一种面向机器学习应用低代码开发的智能辅助系统 Download PDFInfo
- Publication number
- CN115145551A CN115145551A CN202210920482.7A CN202210920482A CN115145551A CN 115145551 A CN115145551 A CN 115145551A CN 202210920482 A CN202210920482 A CN 202210920482A CN 115145551 A CN115145551 A CN 115145551A
- Authority
- CN
- China
- Prior art keywords
- embedding
- sequence
- model
- low
- input
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明通过人工智能领域的方法,实现了一种面向机器学习应用低代码开发的智能辅助系统。包括低代码开发模板推荐方法和低代码开发组件推荐方法两部分;所述低代码开发模板推荐方法,通过神经网络计算工作流图和文本描述之间的相似度,为开发者推荐低代码开发模板;所述低代码开发组件推荐方法结合针对普通组件的TransRec模型以及针对冷启动组件的MetaRec模型,给开发者提供稳定、准确的组件推荐服务。本发明提供的智能辅助系统可以提高使用低代码方式开发机器学习应用的开发效率,降低开发门槛,让公众开发者也可以利用低代码开发平台快速开发出标准有效的机器学习应用。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种面向机器学习应用低代码开发的智能辅助系统。
背景技术
机器学习作为推动人工智能发展的重要技术,已成功应用于图像识别、机器翻译等领域。然而,开发机器学习应用系统涉及到模型设计、训练和部署等复杂过程,并且高度依赖开发者的个人经验和人工定制,难以满足各个领域对大规模人工智能应用快速构建的实际需求。因而,提高机器学习应用系统的开发效率已成为一个重要问题。
针对上述问题,工业界和学术界在领域特定语言(DSL)、自动机器学习(AutoML)和低代码开发等方向进行了大量的探索。特别是,低代码开发方法得到了广泛关注,其基本思路是将代码封装成可复用的组件,通过可视化开发界面快速实现应用开发,从而降低机器学习应用的开发难度,提高了开发效率。然而,现有低代码开发环境缺乏对推荐系统的支持,导致开发者使用低代码开发环境进行应用开发仍然面临着学习门槛高、开发效率低的问题。
目前,已经有一些研究工作尝试解决使用低代码方式开发机器学习应用所面临的的效率问题。为了提高开发效率,现有研究利用模板推荐技术来解决问题。为了进一步降低开发门槛,让公众开发者,即缺少经验的开发人员,也能快速开发机器学习应用,现有研究利用AutoML以及推荐技术来解决问题。
现有方法虽然在帮助开发者快速开发机器学习应用方面有了一定的进展。但是现有的推荐技术多针对传统的开发方式提供帮助,不适用于低代码开发方式。除此之外,在降低开发门槛方面,现有技术要么只能为特定的机器学习应用提供辅助支持,要么不适用于机器学习应用的开发,具有一定的局限性。
本发明针对现有面向机器学习应用的低代码开发环境中机器学习应用开发效率低、开发门槛高等问题,旨在提出一种面向机器学习应用低代码开发的智能辅助系统,提高使用低代码方式开发机器学习应用的开发效率,降低开发门槛。
具体来说,主要解决的问题为:为了提高开发效率,设计并实现开发模板推荐技术;为了降低开发门槛,让公众开发者也可以快速开发出标准有效的机器学习应用,设计并实现开发组件推荐技术。
发明内容
为此,本发明首先提出一种面向机器学习应用低代码开发的智能辅助系统,系统包括输入模块、输出模块和运算单元;
所述输入模块以部分完成的流程作为输入,并通过所述运算单元,以两种开发方式进行处理:一种是使用流程模板,应用低代码开发模板推荐方法;另外一种是从头开始开发新的机器学习应用流程,其对应低代码开发组件推荐方法,两种开发方式分别辅助构成完整的低代码开发系统;
所述低代码开发模板推荐方法,以两部分内容作为输入:一部分为被推荐流程模板的流程信息、工作流(workflow)图和文本信息;另一部分是新项目的文本描述,通过神经网络计算两部分输入的相似度;
所述低代码开发组件推荐方法包括两个部分,分别是针对普通组件进行推荐的基于Transformer的TransRec模型,以及针对历史交互少的组件(即冷启动组件)进行推荐的基于元学习的MetaRec模型,在大量样例中出现的组件得分由TransRec给出,仅在少数样例中出现的组件得分由MetaRec给出,两者结合得到一系列预测结果;
所述输出模块对所述预测结果根据相似度进行排序,将排序最高的5个历史项目或者5个组件推荐给开发者。
所述相似度计算通过WNN模型完成,所述WNN模型由三个部分构成,分别是用于嵌入工作流的Workflow Embedding神经网络、用于嵌入自然语言描述的Text Embedding神经网络以及用于度量相似性的Similarity模块,从历史项目中抽取出流程模板的workflow流程信息和项目对应的描述文本,形成训练集,训练WNN模型,使其能够对两流程信息和描述文本进行编码,将相似的信息编码在同一区域。在部署阶段,当新的项目创建好之后,根据任务描述从历史项目中找到和其最匹配的项目,供开发者借鉴或者是复用,部署阶段既使用到了流程的Workflow信息,也使用到了流程描述信息,两部分分别利用WNN获得向量,再通过计算二者Cosine相似度,得到最后的得分。
所述Workflow Embedding神经网络用于将低代码应用中的工作流信息转换成向量的神经网络,一个流程信息的输入为A=[T,Graph(V,E),D],其中 为流程名称与标签拼接之后的字符序列,k、k+m=n,分别为标签和名称的字符长度。标签是开发者为流程打上的关键字标签,Graph(V,E)为工作流图信息,每一个工作流图都是一个有向图,V表示节点集合,E表示边集合。每个节点v∈V拥有自己的ID属性;每条边e∈E拥有起点和终点两个属性。D为流程的自然语言描述信息。
首先利用神经网络针对每一部分进行Embedding,使用BiLSTM对T进行嵌入处理
et=Embedding(wt)
ft=σ(Wf·[ht-1,et]+bf)
it=σ(Wi·[ht-1,et]+bi)
ot=σ(Wo·[ht-1,wt]+bo)
ht=ot*tanh(Ct)
h=[h1,...,hn]=BiLSTM(T)
针对Graph(V,E)部分,由于其为格式特征信息,使用GAT网络对Graph(V,E)进行嵌入,GAT计算的公式包括信息构建阶段、领域汇聚阶段,所述信息构建阶段为每层的GAT网络构建输入表征,具体公式:
所述领域汇聚阶段则将每个领域节点要传递的信息进行汇聚,领域则表示与当前节点相邻的所有节点,邻域汇聚具体公式如下所示:
之后通过Cross Attention模块对两部分特征进行特征融合,并将得到的两部分特征进行拼接:
wij=(W[hj,fi])
o=[oh,of]
所述用于嵌入自然语言描述的Text Embedding神经网络是用于将自然语言描述信息转换成向量的神经网络,假设一个自然语言描述信息的输入为D=w1,...,wm,是一个长度为m的文字序列,使用BiLSTM对文字序列D进行特征嵌入,并使用最大池化方法maxpool对其进行维度变换,
d=maxpool(BiLSTM(D))。
所述Similarity模块将用于嵌入工作流的Workflow Embedding神经网络、用于嵌入自然语言描述的Text Embedding神经网络得到的历史项目工作流嵌入向量与从双向RNN网络中编码得到项目文本描述嵌入向量进行相似度计算,利用Cosine相似度测量两个向量之间的相似性:
其中o和d分别是工作流和文本描述的向量,||d||表示向量d的范式norm。
所述低代码开发组件推荐方法的TransRec模型包含三个部分,分别是Embe dding层、Transformer层以及预测层,Embedding层负责将原始数据嵌入成对应的向量表示,Transformer层则是负责对序列之间的相关性进行建模,在不考虑序列对之间距离的情况下,挖掘两者之间的相关性,这种建模方式在对时序数据建模时要优于基于RNN的建模方式,最后通过预测层得到最终的结果。
所述Embedding层首先需要对输入进行预处理,将行为序列<S1,S2,...,S|S|>转换成固定长度的序列S=<S1,S2,...,Sn>,其中n为模型可以处理的最大长度,如果序列的长度大于n,则取最近的n项行为作为输入,如果序列长度小于n则对序列进行前项补全,即在序列的前段添加<padding>,直到序列长度等于n,创建组件Embedding矩阵其中d为隐向量的维度,|I|为组件的数量,<padding>对应向量设置为全0向量;
使用Position Embedding将序列信息通过嵌入的方式融合进输入向量中:
所述Transformer层将堆叠在一起变成矩阵包含两个子层,一个多头自注意力子层和一个Position-wise前馈网络;所述多头自注意力机制在不考虑它们在序列中的距离的情况下,捕获表征对之间的依赖关系,首先用不同的、可学习的线性投影将Hl线性投影到子空间,然后应用Attention函数并行生成再次投影的向量表示:
所述Position-wise前馈网络对其结果进行转换,由两个仿射变换组成,使用LeakyReLU作为激活函数:
FFN(x)=LeayReLU(W1x+b1)W2+b2
Hl=Transf ormer(Hl-1)
Transformer(Hl-1)=LN(Al-1+Dropout(PFFN(Al-1)))
Al-1=LN(Hl-1+Dropout(MH(Hl-1)))
在两个子层之间使用残差连接,然后进行层layer normalization(LN),并将dropout应用于每个子层的输出,然后再次对其进行LN,以稳定和加速网络训练;
在模型训练过程中,定义O={o1,...,on}为输出序列的真实标签,S={S1,...,Sn}为行为序列的输入标签:
其中t∈[1,...,n]表示标签在序列中的位置,利用负采样技术,为每个正例准备一个负例,并采用Binary Cross Entropy作为损失函数训练网络:
所述MetaRec模型输入为{S1,...,Sn-1},输出为Sn,冷启动问题指组件只存在少量的训练样例,为模拟冷启动场景,假设在当前任务中,任意一个组件都只在K个序列中出现,K∈[1,3,5];所述MetaRec模型包括数据预处理过程,首先,定义I为所有组件的集合,按照7∶1∶2的比例划分为Itrain,Ivalid,Itest,并且两两之间不存在交集;遵循标准的元学习设置,根据一组训练任务训练MetaRec模型,任意一任务都会从Itrain中抽取N个组件作为基础,为这些组件构建Support Set和Query Set,Support Set包含K个包含相同结尾组件的序列构成,序列长度不小于3,Query Set={Q1,...,QN},Qi表示以第i个组件作为结尾的序列并且序列长度不小于3,将Qi的结尾组件作为label进行去除,这样的一对SupportSet和Query Set构成了一个任务Ti的输入;
所述MetaRec模型首先利用Sequence gncoder将输入编码为表示向量,然后使用Attention Block将Support Set中K个序列聚合以生成Support Set向量表示。最终,使用匹配网络MatchNet将融合之后的Support Set隐向量表示与Query Set隐向量表示进行匹配,得到预测结果。
所述Sequence Encoder具体为:序列编码器的任务为将每一个行为序列编码为一个单独的向量表示,即Seti={Si,1,Si,2,...,Si,l},其中Si,1,Si,2,...,Si,l为不同的组件,l为Seti的长度,该步骤对序列进行了前项padding操作,将同一个输入下的长度进行统一。序列编码器的具体公式如下:
hi=f(Seti)
ej=Wp(Wlastg(Si,l-1)+Wcurg(Si,j)+WαvgSi,avg+b)
其中,b都为可训练的网络参数,g为Embedding层,将组件转换为其对应的向量表示,然后将hi与g(Si,l)进行拼接,经过m层全连接网络得到最终的输出。为了更加易于训练,模型了添加跳跃连接。最后将与相加得到最后的向量表示
所述Attention Block具体为:注意力模块的任务为将K个行为序列对应的h进行融合,为了使最终得到的隐向量h包含更多与Query Set相关的关键特征,利用如下公式对融合:
其中WQ,WK,WV为可训练的网络参数,q为经过Sequence Encoder的Query Set的向量表示,h为Support Set经过编码之后的表示;
Score=σ(W2(ReLU(W1F+b1))+b2)
本发明所要实现的技术效果在于:
提高开发效率,设计并实现开发模板推荐技术;
降低开发门槛,让公众开发者也可以快速开发出标准有效的机器学习应用,设计并实现开发组件推荐技术
附图说明
图1总体框架图;
图2 Workflow Neural Network;
图3基于联合嵌入的低代码开发模板推荐;
图4基于元学习增强的组件推荐;
图5 TransRec模型;
图6 MetaRec模型结构;
图7实施例应用场景的机器学习应用列表;
图8项目描述信息;
图9流程信息示例;
图10推荐结果示例;
图11本申请系统组件库;
图12任务输入;
图13任务输出;
具体实施方式
以下是本发明的优选实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于此实施例。
本发明提出了一种面向机器学习应用低代码开发的智能辅助系统。
1、总体结构:
本发明针对开发模板推荐和开发组件推荐步骤提出了一种面向机器学习应用低代码开发的智能辅助系统,总体框架如图1所示。
面向机器学习应用低代码开发的智能辅助系统利用推荐技术降低机器学习应用的开发门槛,这种方式已经在学术界被广泛研究与讨论。推荐技术等辅助开发功能是至关重要。首先需要研究的推荐技术为低代码开发模板推荐。开发模板推荐方法能够根据开发者对任务的描述来匹配相似的历史任务,并将相似历史任务的开发结果作为开发模板,推荐给开发者。低代码开发模板推荐方法能够为开发者提供一个好的开发起点,让开发者可以复用历史任务的部分或者完整的开发结果,并在此基础上进行二次开发,从而提高开发效率。除了为开发者提供一个好的开发起点,在开发过程中为开发者提供建议同样是提高开发效率与质量的关键。因此,一种组件推荐方法,根据当前应用的开发上下文(即已构建的流程),向开发者推荐下一步可能的组件选择,同样是不可或缺的。
下面将对本发明提出的低代码开发模板推荐方法和低代码开发组件推荐方法进行详细的介绍。
2、基于联合嵌入的低代码开发模板推荐:
面向低代码开发方式的开发模板推荐任务,其输入为两部分,一边是被推荐流程模板的流程信息,工作流图(workflow)和文本信息(项目的标签,name等);另一边是新项目的文本描述。通过神经网络计算两者之间的相似度。本发明设计并实现了Workflow NeuralNetwork来完成相似度的计算。
图2中展示了WNN网络的整体结构,WNN模型由三个部分构成,分别是用于嵌入工作流图信息的Workflow Embedding函数、用于嵌入自然语言描述信息的Text Embedding函数以及用于评估相似度的Similarity函数。因为深度神经网络在特征工程上表现十分优异,本文使用深度神经网络实现两个Embedding函数。
综上所述,WNN模型一共包含三个模块,用于嵌入工作流的Workflow Embedding神经网络(WENN)、用于嵌入自然语言描述的Text Embedding神经网络(TENN)以及用于度量相似性的Similarity模块。
(1)WENN模块
WENN是用于将低代码应用中的工作流信息转换成向量的神经网络。工作流信息并不是简单的文本信息,它包含如组件信息、组件调用顺序、标签以及名称等。这些特征都对推荐有着直接的帮助。
假设一个流程信息的输入为A=[T,Graph(V,E),D],其中 为流程名称与标签拼接之后的字符序列,k、k+m=n,分别为标签和名称的字符长度标签是开发者为流程打上的关键字标签,如机器学习,分类任务等。Graph(V,E)为工作流图信息,每一个工作流图都是一个有向图,V表示节点集合,E表示边集合。每个节点v∈V拥有自己的ID属性;每条边e∈E拥有起点和终点两个属性。D为流程的自然语言描述信息。
D为流程的自然语言描述信息。为了将这些信息嵌入成为Embedding,WENN模块首先利用神经网络针对每一部分进行Embedding。WENN使用BiLSTM对T进行嵌入处理
et=Embedding(wt) (1)
ft=σ(Wf·[ht-1,et]+bf) (2)
it=σ(Wi·[ht-1,et]+bi) (3)
ot=σ(Wo·[ht-1,wt]+bo) (6)
ht=ot*tanh(Ct) (7)
h=[h1,...,hn]=BiLSTM(T)
同样的,针对Graph(V,E)部分,由于其为格式特征信息,这里使用经常被用来处理图数据的GAT网络对Graph(V,E)进行嵌入。
GAT计算的公式主要包括信息构建(Information Construction)、领域汇聚两个阶段。信息构建阶段主要为每层的GAT网络构建输入表征,具体公式如下:
领域汇聚阶段则是将每个领域节点要传递的信息进行汇聚,领域则表示与当前节点相邻的所有节点,邻域汇聚具体公式如下所示:
得到两种信息的表征之后,因为两种信息并不是独立存在的,在其之间存在着隐含的关系,为了从中挖掘两种特征之间关系的特征信息,通过Cross Attention模块对两部分特征进行特征融合,并将得到的两部分特征进行拼接:
wij=(W[hj,fi]) (13)
o=[oh,of] (19)
(2)TENN模块
TENN是用于将自然语言描述信息转换成向量的神经网络。假设一个自然语言描述信息的输入为D=w1,...,wm,是一个长度为m的文字序列。与WENN相似,使用BiLSTM对文字序列D进行特征嵌入,并使用最大池化方法maxpool对其进行维度变换。
d=maxpool(BiLSTM(D)) (20)
(3)Similarity模块
将上文得到的向量与从双向RNN网络中编码得到项目描述进行相似度计算。上面两个小节已经描述了将流程信息和描述映射到向量(即o和d)的转换。由于我们希望流程信息和描述的向量被联合嵌入,以至于可以利用Cosine相似度测量两个向量之间的相似性:
其中o和d分别是流程信息和文本描述的向量,||d||表示向量d的范式norm。相似度越高,两者之间的相关性就越大。总而言之,WNN将<workflow,description>对作为输入并计算它们的余弦相似度cos(o,d)。
(4)模型训练
训练阶段,从历史项目中分离出流程信息和文本描述,并利用MSE损失函数作为目标对网络进行训练。部署之后,当一个新的项目构建完成,用其任务描述信息与库中项目的流程模板计算相似度,根据相似度的高低进行推荐,从而得到与当前任务描述最相近的历史项目,供开发者参考、复用。
(5)整体流程
整体开发模板推荐流程如图3所示,从历史项目中抽取出流程模板的流程信息、工作流图(workflow)和项目对应的描述文本,形成训练集,训练Workflow Neural Network,使其能够对流程信息和描述文本进行编码,将相似的信息编码在同一区域。在部署阶段,当新的项目创建好之后,根据任务描述从历史项目中找到和其最匹配的项目,供开发者借鉴或者是复用。部署阶段既使用到了流程的工作流图信息,也使用到了流程描述信息,两部分分别利用WNN获得向量,再通过计算二者Cosine相似度,得到最后的得分。
3、基于元学习增强的组件推荐:
基于元学习的组件推荐方法总共包括两个部分,分别是针对普通组件进行推荐的基于Transformer的TransRec模型以及针对历史交互少的组件,即冷启动组件进行推荐的基于元学习的MetaRec模型,二者之间的关系如图4所示。
当推荐查询到达时,同时使用TransRec和MetaRec两个模型进行预测。由于MetaRec在冷启动场景下表现更优,而在普通场景下不如TransRec,因此预测结果中的非冷启动组件,即在大量样例中出现的组件,得分由TransRec给出,而冷启动组件,即仅在少数样例中出现的组件,得分由MetaRec给出,两者结合得到最终的预测结果。
这里首先介绍组件推荐相关的技术。在组件推荐任务中,数据集将会给出开发者的行为序列S=<S1,S2,...,Sn>,模型需要对开发者将会调用的下一个组件进行预测。在训练阶段,Transformer模型在时间步t会根据前t个组件对第t+1个组件进行预测。模型的输入为<S1,S2,...,Sn-1>,并要求输出为偏移之后的行为序列<S2,S3,...,Sn>。
基于Transformer的组件推荐模型:
TransRec模型总共包含三个部分,分别是Embedding层、Transformer层以及预测层,Embedding层负责将原始数据嵌入成对应的向量表示,Transformer层则是负责对序列之间的相关性进行建模,尤其是Attention机制,可以在不考虑序列对之间距离的情况下,挖掘两者之间的相关性,这种建模方式在对时序数据建模时要优于基于RNN的建模方式。最后通过预测层得到最终的结果,下面对这三部分进行详细介绍。
(1)Embedding层
Embedding层首先需要对输入进行预处理,将行为序列<S1,S2,...,S|S|>转换成固定长度的序列S=<S1,S2,...,Sn>,其中n为模型可以处理的最大长度。如果序列的长度大于n,则取最近的n项行为作为输入。如果序列长度小于n则对序列进行前项补全,即在序列的前段添加<padding>,直到序列长度等于n。创建组件Embedding矩阵其中d为隐向量的维度,|I|为组件的数量。<padding>对应向量设置为全0向量。
由于Transformer模型中不包含序列顺序信息,并不可以感知组件的顺序信息,因此这里使用Position Embedding将序列信息通过嵌入的方式融合进输入向量中:
其中ei∈E是维度为d的Si嵌入,pi∈P是维度为d的位置i对应的索引嵌入。g(i)为利用矩阵分解方法对组件的Bigram向量分解得来。本发明中使用可学习的位置嵌入Embedding,这样可以获得更好的性能。位置嵌入矩阵
(2)Transformer层
如图5所示,我们将Transformer模块应用于组件推荐任务中。在这里,我们将堆叠在一起变成矩阵这样有利于我们在实践中同时计算所有位置上的注意函数。Transformer模块包含两个子层,一个多头自注意力子层和一个Position-wise前馈网络。
多头自注意力机制:注意机制能够在不考虑它们在序列中的距离的情况下,捕获表征对之间的依赖关系。有研究表明,从不同角度捕捉来自不同表征子空间的信息对最后的预测是有益的。因此,本文在这里采用了多头自注意力机制,而不是执行单头的注意力机制。具体地说,首先用不同的、可学习的线性投影将Hl线性投影到子空间,然后应用Attention函数并行生成再次投影的向量表示:
Position-wise Feed-Forward网络层:得到自注意力机制的输出之后,尽管其已经可以将组件序列表示为一个单独的融合向量,但其本质上仍只是一个线性变化层。为了使模型具有非线性和不同维度之间的交互信息,Transformer网络使用Position-wiseFeed-Forward网络对其结果进行转换,它由两个仿射变换组成,并使用LeakyReLU作为激活函数:
FFN(x)=LeayReLU(W1x+b1)W2+b2 (26)
Hl=Transformer(Hl-1) (27)
Transformer(Hl-1)=LN(Al-1+Dropout(PFFN(Al-1))) (28)
Al-1=LN(Hl-1+Dropout(MH(Hl-1))) (29)
为了训练更加平滑,该发明在两个子层之间使用残差连接,然后进行层layernormalization(LN)。此外,我们还将dropout应用于每个子层的输出,然后再对其进行LN,以稳定和加速网络训练。基于实际数据情况,这里使用2层2头Transformer。
(3)预测层
经过了Transformer网络层之后,最终得到的输出向量HL已经包含了历史行为序列的所有信息,假设我们在时间步长t处屏蔽输出项ot,然后根据预测屏蔽项ot。具体地说,我们采用两层前馈网络,中间使用ReLU作为激活函数,以得到最终目标组件的概率分布:
(4)模型训练
序列推荐任务中,通常通过预测每个组件的下一项作为训练任务。因此,在训练过程中,我们定义O={o1,...,on}为输出序列的真实标签,S={S1,...,Sn}为行为序列的输入标签:
其中t∈[1,...,n]表示标签在序列中的位置。为了让模型在预测时更加准确,我们希望模型对于组件打分总是更加可能的组件的得分高于其他组件,因此本发明利用负采样技术,为每个正例准备一个负例,并采用Binary Cross Entropy作为损失函数训练网络:
其中,n为序列长度,S为输入序列,ot为正确标签,为随机选取的负例标签。在计算的过程中,模型将忽略ot=<padding>位置产生的loss,并使用Adam作为优化器。相较于SGD,Adam会为学习率设置一个随着迭代次数增多而减少的稀疏,让模型训练更加的平滑。
基于元学习增强的推荐模型:
TransRec利用深度学习提升了推荐的准确性,但也承袭了深度学习对于数据量的要求。然而,由于机器学习技术发展迭代速度很快,为满足新的开发需求,低代码组件库经常需要扩充新的算法组件。新组件相关的历史使用数据很少,导致在组件推荐模型面临冷启动问题。现在已经出现了一些解决冷启动问题的研究出现,如利用辅助信息帮助冷启动组件完成推荐。然而,由于低代码序列推荐任务没有辅助信息,只有流程中的序列信息可用,这些方法并不适用于组件推荐。元学习在很多场景下都被当成是解决冷启动问题的一种方法,与传统的基于Learning to Rank的方法不同,元学习通过子任务完成模型的更新,每个子任务都是一个推荐任务,推荐任务的候选集是从整体候选集中随机筛选得来的。本申请借鉴元学习的思想,将推荐任务转换成聚类任务,通过聚类模型对查询进行分类,最后的分类标签就是要推荐的组件。推荐模型需要从大量的历史数据中找到隐含的知识信息才能完成推荐,而聚类模型则只需要判断查询和候选集中那个类别更相近就可以给出分类结果,这种方式降低了模型对数据的依赖,能够在没有辅助信息的情况,缓解冷启动的问题。但是由于现有模型没有对查询和候选集之间的交互进行建模,导致模型不能充分利用候选集提供的信息。因此,本发明提出了一个基于元学习的冷启动顺序推荐方法(MetaRec),以缓解顺序推荐中的项目冷启动问题。同时,MetaRec可以有效地从有限的交互中提取用户偏好,并学会将目标冷启动项目与潜在用户匹配。此外,MetaRec框架可以轻松地与上文提到的TransRec集成。
(1)问题定义
为输入序列推荐下一个组件,输入为{S1,...,Sn-1},输出为Sn。冷启动问题指组件只存在少量的训练样例。因此,为模拟冷启动场景,假设在当前任务中,任意一个组件都只在K个序列中出现,K∈[1,3,5]。为了保证结果的公正性,在测试集中的组件并不会在训练集中出现。
(2)数据预处理
由于MetaRec结合了元学习技术解决冷启动问题,所以在预测方式上有所不同,同时对数据集的处理也有不同。首先,定义I为所有组件的集合,按照7∶1∶2的比例划分为Itrain,Ivalid,Itest,并且两两之间不存在交集。遵循标准的元学习设置,根据一组训练任务训练MetaRec模型,任意一任务都会从Itrain中抽取N个组件作为基础,为这些组件构建Support Set和Query Set。Support Set如表1中所示,包含K个包含相同结尾组件的序列构成,序列长度不小于3。同样的,Query Set={Q1,...,QN},Qi表示以第i个组件作为结尾的序列并且序列长度不小于3,为了保证不泄露信息,将Qi的结尾组件作为label进行去除,如表1给出的示例所示。这样的一对Support Set和Query Set构成了一个任务Ti的输入。Support Set和Query Set在任务中的作用是为分类提供信息。由于Mecos将推荐任务转化为了分类任务,候选集就是所有的组件。为了保证分类的准确性,需要从历史数据中提取信息,为组件构建画像,Support Set i就是用来构建第i个组件的画像时使用的数据。而Query Set则是用来构建查询向量时使用的数据。
表1 Support Set和Query Set示例
(3)模型构建
在本节中,本文将详细介绍MetaRec,整体结构如图6所示。MetaRec首先利用Sequence Encoder将输入编码为表示向量,然后使用Attention Block将Support Set中K个序列聚合以生成Support Set向量表示。最后,使用匹配网络MatchNet将融合之后的Support Set隐向量表示与Query Set隐向量表示进行匹配,得到预测结果。
Sequence Encoder:序列编码器的任务为将每一个行为序列编码为一个单独的向量表示,即Seti={Si,1,Si,2,...,Si,l},其中Si,1,Si,2,...,Si,l为不同的组件,l为Seti的长度,为了保证输入满足网络的要求,进行了前项padding操作,将同一个输入下的长度进行统一。具体公式如下:
hi=f(Seti) (33)
ej=Wp(Wlastg(Si,l-1)+Wcurg(Si,j)+WavgSi,avg+b) (36)
其中,b都为可训练的网络参数,g为Embedding层,将组件转换为其对应的向量表示。然后将hi与g(Si,l)进行拼接,经过m层全连接网络得到最终的输出。为了更加易于训练,模型添加了跳跃连接。最后将与相加得到最后的向量表示
Attention Block:注意力模块的任务为将K个行为序列对应的h进行融合,为了使最终得到的隐向量h包含更多与Query Set相关的关键特征,利用如下公式对融合:
Attention公式见公式(24),其中WQ,WK,WV为可训练的网络参数,q为经过SequenceEncoder的Query Set的向量表示,h为Support Set经过编码之后的表示。
Score=σ(W2(ReLU(W1F+b1))+b2) (40)
本方案实际的应用场景为面向机器学习应用的低代码开发系统,低代码开发系统如图7-9所示;开发模板推荐部分在训练时使用这些项目的描述信息和开发者开发的流程信息作为输入,输出的是两部分的相似度(一个[0,1]的概率值),训练的目标是让网络可以将同属于一个项目的描述信息和流程信息的相似度最大化,而最小化其他的混淆样例。实际应用时所涉及到的输入就是这些历史项目的描述信息和流程信息(部分1),新项目的描述信息(部分2),输出结果是部分1和部分2的相似度。相似度越高,代表新项目与该旧项目的相关性越大,就越有可能被新项目作为开发模板。最后,我们会对这些相似度进行排序,将排序最高的5个历史项目推荐给开发者。推荐结果在图10标框的地方给出。通过推荐列表,用户可以直接点击跳转到对应的历史项目并进行copy。
组件推荐指的是当开发者进行开发时,根据他已经开发完成的流程节点给他推荐下一步应该选择的节点类型的工程问题。
也就是说本申请方案是在这样的工程问题基础上设计的一个机器学习低代码开发系统,低代码的目的就是帮助开发者编写少量甚至不编写代码也可以完成应用的开发。具体的方法就是通过拖拽系统预设的组件,再通过连接组件设计逻辑完成开发,任务的输入为图12开发者开发一半的流程,系统就会从26种节点中给出最应该被选择的节点类型,并在图13的红框中给出。因此,本申请方案的系统有一个26个组件的组件库,如图11所示。
这个任务在训练的过程中同样使用的是历史项目,我们将历史项目数据集进行切分。例如原本的流程为,开始节点,缺失值填充,数据集分割,CNN,结束节点。我们会将该流程增广成如下集合:样例1:输入为[开始节点,缺失值填充,数据集分割],输出为CNN;样例2:输入为[开始节点,缺失值填充,数据集分割,CNN],输出为结束节点;样例3:输入为[开始节点,缺失值填充,数据集分割,CNN,结束节点],输出为0。所以该任务的输入为节点序列,输出为节点类型。
Claims (9)
1.一种面向机器学习应用低代码开发的智能辅助系统,其特征在于:系统包括输入模块、输出模块和运算单元;
所述输入模块以部分完成的流程作为输入,并通过所述运算单元,以两种开发方式进行处理:一种是使用流程模板,应用低代码开发模板推荐方法;另外一种是从头开始开发新的机器学习应用流程,其对应低代码开发组件推荐方法,两种开发方式分别辅助构成完整的低代码开发系统;
所述低代码开发模板推荐方法,输入两部分内容,一部分为被推荐流程模板的流程信息、工作流图和文本信息;另一部分是新项目的文本描述,通过神经网络计算两部分输入的相似度;
所述低代码开发组件推荐方法以两个部分作为输入:分别是针对普通组件进行推荐的基于Transformer的TransRec模型,以及针对历史交互少的组件进行推荐的基于元学习的MetaRec模型,在大量样例中出现的组件得分由TransRec给出,仅在少数样例中出现的组件得分由MetaRec给出,两者结合得到一系列预测结果;
所述输出模块对所述预测结果根据相似度进行排序,将排序最高的5个历史项目或者5个组件推荐给开发者。
2.如权利要求1所述的一种面向机器学习应用低代码开发的智能辅助系统,其特征在于:所述相似度计算通过WNN模型完成,所述WNN模型由三个部分构成,分别是用于嵌入工作流的Workflow Embedding神经网络、用于嵌入自然语言描述的Text Embedding神经网络以及用于度量相似性的Similarity模块,从历史项目中抽取出流程模板的工作流图流程信息和项目对应的描述文本,形成训练集,训练WNN模型,使其能够对流程信息和描述文本进行编码,将相似的信息编码在同一区域,在部署阶段,当新的项目创建好之后,根据任务描述从历史项目中找到和其最匹配的项目,供开发者借鉴或者是复用,部署阶段既使用到了流程的工作流图信息,也使用到了流程描述信息,两部分分别利用WNN获得向量,再通过计算二者Cosine相似度,得到最后的得分。
3.如权利要求2所述的一种面向机器学习应用低代码开发的智能辅助系统,其特征在于:所述Workflow Embedding神经网络用于将低代码应用中的工作流信息转换成向量的神经网络,一个流程信息的输入为A=[T,Graph(V,E),D],其中为流程名称与标签拼接之后的字符序列,k+m=n,分别为标签和名称的字符长度。标签是开发者为流程打上的关键字标签,Graph(V,E)为工作流图信息,每一个工作流图都是一个有向
图,V表示节点集合,E表示边集合,每个节点v∈V拥有自己的ID属性;每条边e∈E拥有起点和终点两个属性。D为流程的自然语言描述信息;
首先利用神经网络针对每一部分进行Embedding,使用BiLSTM对T进行嵌入处理
et=Embedding(wt)
ft=σ(Wf·[ht-1,et]+bf)
it=σ(Wi·[ht-1,et]+bi)
ot=σ(Wo·[ht-1,wt]+bo)
ht=ot*tanh(Ct)
h=[h1,...,hn]=BiLSTM(T)
针对Graph(V,E)部分,由于其为格式特征信息,使用GAT网络对Graph(V,E)进行嵌入,GAT计算的公式包括信息构建阶段、领域汇聚阶段,所述信息构建阶段为每层的GAT网络构建输入表征,具体公式:
所述领域汇聚阶段则将每个领域节点要传递的信息进行汇聚,领域则表示与当前节点相邻的所有节点,邻域汇聚具体公式如下所示:
之后通过Cross Attention模块对两部分特征进行特征融合,并将得到的两部分特征进行拼接:
wij=(W[hj,fi])
o=[oh,of]
4.如权利要求3所述的一种面向机器学习应用低代码开发的智能辅助系统,其特征在于:所述用于嵌入自然语言描述的Text Embedding神经网络用于将自然语言描述信息转换成向量的神经网络,假设一个自然语言描述信息的输入为D=w1,…,wm,是一个长度为m的文字序列,使用BiLSTM对文字序列D进行特征嵌入,并使用最大池化方法maxpool对其进行维度变换,
d=maxpool(BiLSTM(D))。
6.如权利要求5所述的一种面向机器学习应用低代码开发的智能辅助系统,其特征在于:所述低代码开发组件推荐方法的TransRec模型包含三个部分,分别是Embedding层、Transformer层以及预测层,Embedding层负责将原始数据嵌入成对应的向量表示,Transformer层则是负责对序列之间的相关性进行建模,在不考虑序列对之间距离的情况下,挖掘两者之间的相关性,这种建模方式在对时序数据建模时要优于基于RNN的建模方式,最后通过预测层得到最终的结果。
7.如权利要求6所述的一种面向机器学习应用低代码开发的智能辅助系统,其特征在于:所述Embedding层首先需要对输入进行预处理,将行为序列<S1,S2,…,S|S|>转换成固定长度的序列S=<S1,S2,…,Sn>,其中n为模型可以处理的最大长度,如果序列的长度大于n,则取最近的n项行为作为输入,如果序列长度小于n则对序列进行前项补全,即在序列的前段添加<padding>,直到序列长度等于n,创建组件Embedding矩阵其中d为隐向量的维度,|I|为组件的数量,<padding>对应向量设置为全0向量;
使用Position Embedding将序列信息通过嵌入的方式融合进输入向量中:
所述Transformer层将堆叠在一起变成矩阵包含两个子层,一个多头自注意力子层和一个Position-wise前馈网络;所述多头自注意力机制在不考虑它们在序列中的距离的情况下,捕获表征对之间的依赖关系。首先用不同的、可学习的线性投影将Hl线性投影到子空间,然后应用Attention函数并行生成再次投影的向量表示:
所述Position-wise前馈网络对其结果进行转换,由两个仿射变换组成,使用LeakyReLU作为激活函数:
FFN(x)=LeayReLU(W1x+b1)W2+b2
Hl=Transformer(Hl-1)
Transformer(Hl-1)=LN(Al-1+Dropout(PFFN(Al-1)))
Al-1=LN(Hl-1+Dropout(MH(Hl-1)))
在两个子层之间使用残差连接,然后进行层layer normalization(LN),并将Dropout应用于每个子层的输出。最后,对得到的变量再次进行LN,以稳定和加速网络训练;
在模型训练过程中,定义O={o1,...,on}为输出序列的真实标签,S={S1,...,Sn}为行为序列的输入标签:
其中t∈[1,…,n]表示标签在序列中的位置,利用负采样技术,为每个正例准备一个负例,并采用Binary Cross Entropy作为损失函数训练网络:
8.如权利要求7所述的一种面向机器学习应用低代码开发的智能辅助系统,其特征在于:所述MetaRec模型输入为{S1,…,Sn-1},输出为Sn,冷启动问题指组件只存在少量的训练样例,为模拟冷启动场景,假设在当前任务中,任意一个组件都只在K个序列中出现,K∈[1,3,5];所述MetaRec模型包括数据预处理过程。首先,定义I为所有组件的集合,按照7:1:2的比例划分为Itrain,Ivalid,Itest,并且两两之间不存在交集;遵循标准的元学习设置,根据一组训练任务训练MetaRec模型。任意一任务都会从Itrain中抽取N个组件作为基础,为这些组件构建Support Set和Query Set,Support Set包含K个包含相同结尾组件的序列构成,序列长度不小于3,Query Set={Q1,…,QN},Qi表示以第i个组件作为结尾的序列并且序列长度不小于3,将Qi的结尾组件作为label进行去除,这样的一对Support Set和Query Set构成了一个任务Ti的输入;
所述MetaRec模型首先利用Sequence Encoder将输入编码为表示向量。然后使用Attention Block将Support Set中K个序列聚合以生成Support Set向量表示;最终,使用匹配网络MatchNet将融合之后的Support Set隐向量表示与Query Set隐向量表示进行匹配,得到预测结果。
9.如权利要求8所述的一种面向机器学习应用低代码开发的智能辅助系统,其特征在于:所述Sequence Encoder具体为:序列编码器的任务为将每一个行为序列编码为一个单独的向量表示,即其中Si,1,Si,2,…,Si,l为不同的组件,l为Seti的长度,该步骤对序列进行了前项padding操作,将同一个输入下的长度进行统一。序列编码器的具体公式如下:
hi=f(Seti)
ej=Wp(Wlastg(Si,l-1)+Wcurg(Si,j)+WavgSi,avg+b)
其中,b都为可训练的网络参数,g为Embedding层,将组件转换为其对应的向量表示,然后将hi与g(Si,l)进行拼接,经过m层全连接网络得到最终的输出。为了更加易于训练,模型中添加了跳跃连接;最后将与相加得到最后的向量表示
所述Attention Block具体为:注意力模块的任务为将K个行为序列对应的h进行融合,为了使最终得到的隐向量h包含更多与Query Set相关的关键特征,利用如下公式对融合:
其中WQ,WK,WV为可训练的网络参数,q为经过Sequence Encoder的Query Set的向量表示,h为Support Set经过编码之后的表示;
Score=σ(W2(ReLU(W1F+b1))+b2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210920482.7A CN115145551A (zh) | 2022-08-02 | 2022-08-02 | 一种面向机器学习应用低代码开发的智能辅助系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210920482.7A CN115145551A (zh) | 2022-08-02 | 2022-08-02 | 一种面向机器学习应用低代码开发的智能辅助系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115145551A true CN115145551A (zh) | 2022-10-04 |
Family
ID=83413903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210920482.7A Pending CN115145551A (zh) | 2022-08-02 | 2022-08-02 | 一种面向机器学习应用低代码开发的智能辅助系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115145551A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501315A (zh) * | 2023-04-26 | 2023-07-28 | 江苏博云科技股份有限公司 | 基于DevOps域的低代码软件开发系统、方法及设备 |
CN116610311A (zh) * | 2023-07-21 | 2023-08-18 | 太极计算机股份有限公司 | 一种低代码模版自动挖掘与复用的方法及系统 |
CN116954587A (zh) * | 2023-09-19 | 2023-10-27 | 中电科大数据研究院有限公司 | 前端智能拖拽引擎、建立数据处理流程的方法 |
CN117289905A (zh) * | 2023-11-24 | 2023-12-26 | 浙江口碑网络技术有限公司 | 一种应用软件开发方法和装置、存储介质和电子设备 |
CN117331561A (zh) * | 2023-11-28 | 2024-01-02 | 之江实验室 | 一种智能低代码页面开发系统及方法 |
-
2022
- 2022-08-02 CN CN202210920482.7A patent/CN115145551A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501315A (zh) * | 2023-04-26 | 2023-07-28 | 江苏博云科技股份有限公司 | 基于DevOps域的低代码软件开发系统、方法及设备 |
CN116610311A (zh) * | 2023-07-21 | 2023-08-18 | 太极计算机股份有限公司 | 一种低代码模版自动挖掘与复用的方法及系统 |
CN116610311B (zh) * | 2023-07-21 | 2023-12-05 | 太极计算机股份有限公司 | 一种低代码模版自动挖掘与复用的方法及系统 |
CN116954587A (zh) * | 2023-09-19 | 2023-10-27 | 中电科大数据研究院有限公司 | 前端智能拖拽引擎、建立数据处理流程的方法 |
CN116954587B (zh) * | 2023-09-19 | 2023-12-19 | 中电科大数据研究院有限公司 | 前端智能拖拽引擎、建立数据处理流程的方法 |
CN117289905A (zh) * | 2023-11-24 | 2023-12-26 | 浙江口碑网络技术有限公司 | 一种应用软件开发方法和装置、存储介质和电子设备 |
CN117289905B (zh) * | 2023-11-24 | 2024-03-19 | 浙江口碑网络技术有限公司 | 一种应用软件开发方法和装置、存储介质和电子设备 |
CN117331561A (zh) * | 2023-11-28 | 2024-01-02 | 之江实验室 | 一种智能低代码页面开发系统及方法 |
CN117331561B (zh) * | 2023-11-28 | 2024-02-13 | 之江实验室 | 一种智能低代码页面开发系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918671B (zh) | 基于卷积循环神经网络的电子病历实体关系抽取方法 | |
CN110490946B (zh) | 基于跨模态相似度和生成对抗网络的文本生成图像方法 | |
CN115145551A (zh) | 一种面向机器学习应用低代码开发的智能辅助系统 | |
CN111694924A (zh) | 一种事件抽取方法和系统 | |
WO2023024412A1 (zh) | 基于深度学习模型的视觉问答方法及装置、介质、设备 | |
WO2022001333A1 (zh) | 基于双曲空间表示和标签文本互动的细粒度实体识别方法 | |
CN112597296B (zh) | 一种基于计划机制和知识图谱引导的摘要生成方法 | |
CN112733866A (zh) | 一种提高可控图像文本描述正确性的网络构建方法 | |
CN113268609A (zh) | 基于知识图谱的对话内容推荐方法、装置、设备及介质 | |
CN112417063B (zh) | 一种基于异构关系网络的相容功能项推荐方法 | |
CN114419642A (zh) | 一种文档图像中键值对信息的抽取方法、装置及系统 | |
CN110781271A (zh) | 一种基于层次注意力机制的半监督网络表示学习模型 | |
Dai et al. | A survey on dialog management: Recent advances and challenges | |
CN114168754A (zh) | 一种基于句法依赖和融合信息的关系抽取方法 | |
CN113868432A (zh) | 一种用于钢铁制造企业的知识图谱自动构建方法和系统 | |
CN114332519A (zh) | 一种基于外部三元组和抽象关系的图像描述生成方法 | |
CN114564563A (zh) | 一种基于关系分解的端到端实体关系联合抽取方法及系统 | |
CN114281982B (zh) | 一种多模态融合技术的图书宣传摘要生成方法和系统 | |
CN115796182A (zh) | 一种基于实体级跨模态交互的多模态命名实体识别方法 | |
CN116662565A (zh) | 基于对比学习预训练的异质信息网络关键词生成方法 | |
CN115687609A (zh) | 一种基于Prompt多模板融合的零样本关系抽取方法 | |
CN113051904B (zh) | 一种面向小规模知识图谱的链接预测方法 | |
CN113705222A (zh) | 槽识别模型训练方法及装置和槽填充方法及装置 | |
Jiang et al. | Hadamard product perceptron attention for image captioning | |
CN117033423A (zh) | 一种注入最优模式项和历史交互信息的sql生成方法 |
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 |