CN114327483A - 图张量神经网络模型建立方法及源代码语义识别方法 - Google Patents

图张量神经网络模型建立方法及源代码语义识别方法 Download PDF

Info

Publication number
CN114327483A
CN114327483A CN202111665944.7A CN202111665944A CN114327483A CN 114327483 A CN114327483 A CN 114327483A CN 202111665944 A CN202111665944 A CN 202111665944A CN 114327483 A CN114327483 A CN 114327483A
Authority
CN
China
Prior art keywords
graph
tensor
neural network
node
source code
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
Application number
CN202111665944.7A
Other languages
English (en)
Inventor
付才
杨佳
韩兰胜
刘铭
邹德清
江帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN202111665944.7A priority Critical patent/CN114327483A/zh
Publication of CN114327483A publication Critical patent/CN114327483A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

本发明公开了一种图张量神经网络模型建立方法及源代码语义识别方法,属于软件分析检测领域,方法包括:建立图张量构建网络层,用于从源代码中提取AST、CFG、DDG和NCS的图结构并组合得到图张量空间特征;建立门控图张量神经网络层,用于利用图张量空间特征计算源代码的图结构节点的隐藏层特征;建立图张量卷积神经网络层,用于利用隐藏层特征提取图结构节点的语义特征;建立输出网络层,用于根据语义特征利用分层softmax函数预测源代码中的变量,和/或,预测源代码中缺失的变量;将训练样本输入包含各网络层的图张量神经网络模型,利用反向传播训练模型中的权重参数。该图张量神经网络模型的源代码语义识别更准确,且效率更高。

Description

图张量神经网络模型建立方法及源代码语义识别方法
技术领域
本发明属于软件分析检测领域,更具体地,涉及一种图张量神经网络模型建立方法及源代码语义识别方法。
背景技术
随着互联网的快速发展,软件系统的规模不断扩大,复杂度不断提高,而软件市场的高速发展导致开发周期不断被缩短,因此,如何快速且准确地进行源代码识别并补充未完成的源代码,对加快软件开发具有重要意义。
源代码数据包含多个指令之间的关系,如数据流、控制流、操作顺序等,直接将源代码作为自然语言来提取源代码语义特征是不够的,然而,目前对源代码进行语义识别的方案通常没有考虑到源代码的高维结构特征,导致识别结果准确度不高。此外,标准的基于自然语言技术的源代码语义学习方法只能捕获较少的结构化代码特征,并且没有利用源代码已知的语法结构,需要设计高维的数据结构来完整地表示源代码的语义信息,现有方案缺乏有效的方法来融合源代码指令序列和源代码图结构两种信息。再者,现有基于自然语言技术的源代码语义特征编码方案需要大量的训练数据来补充源代码语料库,当遇到小样本时,可能会出现过拟合问题。如何解决上述问题,对本领域技术人员而言至关重要。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种图张量神经网络模型建立方法及源代码语义识别方法,其目的在于解决直接使用代码的输入序列进行代码语义特征学习存在的不准确问题,以及解决序列神经网络训练中存在的低效性问题。
为实现上述目的,按照本发明的一个方面,提供了一种图张量神经网络模型建立方法,所述图张量神经网络模型用于识别源代码语义特征,方法包括:S1,建立图张量构建网络层,用于从源代码中分别提取AST、CFG、DDG和NCS的图结构,组合各所述图结构得到所述源代码的图张量空间特征;S2,基于门控神经网络深度学习算法和张量计算建立门控图张量神经网络层,并连接所述图张量构建网络层的输出侧,用于利用所述图张量空间特征计算所述源代码的图结构节点的隐藏层特征;S3,基于图卷积神经网络深度学习算法和张量计算建立图张量卷积神经网络层,并连接所述门控图张量神经网络层的输出侧,用于利用所述隐藏层特征提取所述图结构节点的语义特征;S4,基于注意力机制建立输出网络层,并连接所述图张量卷积神经网络层的输出侧,用于根据所述语义特征利用分层softmax函数预测所述源代码中的变量,和/或,预测所述源代码中缺失的变量;S5,将训练样本输入图张量神经网络模型,所述图张量神经网络模型包含所述S1-S4中建立的各网络层,利用反向传播训练所述图张量神经网络模型中的权重参数,得到优化后的图张量神经网络模型。
更进一步地,所述S1中图张量构建网络层组合各所述图结构包括:提取AST的图结构中的最大节点集合,分别将各所述图结构中与所述最大节点集合对应的节点构成的邻接矩阵设置为相应的切片,沿三维扩展方向组合生成的四张切片,得到所述图张量空间特征。
更进一步地,所述门控图张量神经网络层中的计算方法包括:
Figure BDA0003451839750000021
Figure BDA0003451839750000022
Figure BDA0003451839750000023
Figure BDA0003451839750000024
Figure BDA0003451839750000031
Figure BDA0003451839750000032
其中,
Figure BDA0003451839750000033
为节点v的隐藏层初始节点特征,
Figure BDA0003451839750000034
为节点v的初始特征矩阵
Figure BDA0003451839750000035
的转置矩阵,
Figure BDA0003451839750000036
为t时刻节点v的聚合图中其他节点特征以及节点v的邻接矩阵特征,
Figure BDA0003451839750000037
为图张量中包含节点v的部分张量
Figure BDA0003451839750000038
的转置张量,Wh为门控图张量神经网络层中需要训练学习的特征权重参数矩阵,
Figure BDA0003451839750000039
为t-1时刻节点1的特征矩阵,
Figure BDA00034518397500000310
为t-1时刻节点|V|的特征矩阵,|V|为图结构中节点数目,B为模型训练过程中的偏置矩阵,
Figure BDA00034518397500000311
为t时刻节点v的遗忘门,σ为第一激活函数,
Figure BDA00034518397500000312
为遗忘门信息中和
Figure BDA00034518397500000313
有关的需要训练学习的模型权重参数之一,
Figure BDA00034518397500000314
为遗忘门信息中和
Figure BDA00034518397500000315
有关的需要训练学习的模型权重参数之一,
Figure BDA00034518397500000316
为t-1时刻节点v的特征矩阵的转置矩阵,
Figure BDA00034518397500000317
为更新门,
Figure BDA00034518397500000318
为更新门信息中和
Figure BDA00034518397500000319
有关的需要训练学习的模型权重参数之一,
Figure BDA00034518397500000320
为更新门信息中和
Figure BDA00034518397500000321
有关的需要训练学习的模型权重参数之一,
Figure BDA00034518397500000322
为t时刻新产生的节点v的特征信息,f(*)为第二激活函数,Ht-1为t-1时刻所有节点的特征矩阵整合,
Figure BDA00034518397500000323
为t时刻最终产生的节点v的特征信息,⊙为Hadamard乘积。
更进一步地,所述图张量卷积神经网络层中的计算方法包括:
Figure BDA00034518397500000324
其中,
Figure BDA00034518397500000325
分别为第l+1、l层图中所有节点特征张量沿第三维的第i个切片矩阵,
Figure BDA00034518397500000326
为图张量沿第三维的第i个切片矩阵,fGCN(*)为图卷积神经网络。
更进一步地,所述输出网络层中的计算方法包括:
oi=tanh(Wo(Xi;Hi;Ui,v;HiUi,v T))
yi=hsoftmax(Wooi+bc)
其中,oi为包含了所有的候选词的信息向量,Wo(*)为需要学习的训练权重,Xi为节点i的初始特征矩阵,Hi为经过门控图张量递归网络层和图张量卷积层训练后获得的隐藏层节点i的特征矩阵,Ui,v为候选词的节点特征矩阵,h(*)为sigmoid激活函,yi为输出的概率分布,hsoftmax(*)为softmax函数,bc为训练模型的权重偏置。
更进一步地,所述S5中根据多分类交叉熵损失函数的目标函数训练所述图张量神经网络模型中的权重参数,所述多分类交叉熵损失函数的目标函数为:
Figure BDA0003451839750000041
其中,J为多分类交叉熵损失函数的目标函数,K为节点特征总数,yi为输出的概率分布,pi为训练数据的真实标签值。
按照本发明的另一个方面,提供了一种基于图张量神经网络模型的源代码语义识别方法,包括:将待识别的源代码输入如上所述的图张量神经网络模型建立方法建立的图张量神经网络模型中,得到所述源代码中的变量,和/或,得到所述源代码中缺失的变量。
按照本发明的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的图张量神经网络模型建立方法,和/或,所述程序被处理器执行时实现如上所述的源代码语义识别方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)从源代码中分别提取AST、CFG、DDG和NCS的图结构并形成图张量结构,可以表示源代码的多维数据信息,将源代码的各种代码语义图的空间信息以及代码文本的序列信息融合起来作为源代码的高维空间语义特征,利用源代码提供的已知语法结构形成的图张量进行代码语义特征识别,提高识别准确性;
(2)设置有张量计算的深度学习算法在一定程度上能够克服小样本问题和过拟合问题,由于张量具有足够好的线性特性,因此可以处理几乎所有的多线性问题;
(3)双线性形式的张量积运算提高了图张量神经网络模型的性能,相比较普通神经网络中标准点积的一次多项式之间的相互作用,张量计算中二次多项式之间的相互作用提高了图张量神经网络模型的表达能力,效率更高。
附图说明
图1为本发明实施例提供的图张量神经网络模型建立方法的流程图;
图2为本发明实施例提供的基于源代码的图结构生成图张量的过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
图1为本发明实施例提供的图张量神经网络模型建立方法的流程图。参阅图1,结合图2,对本实施例中图张量神经网络模型建立方法进行详细说明,方法包括操作S1-操作S5。
操作S1,建立图张量构建网络层,用于从源代码中分别提取AST、CFG、DDG和NCS的图结构,组合各图结构得到源代码的图张量空间特征。
图张量构建网络层用于从源代码中提取包含代码语法语义的四种图结构,实现将程序编码为图,图结构中的边表示代码节点之间的语法关系以及语义关系。语法关系例如“token before/after”;语义关系例如“variable last used/writed here”、参数的形式参数stream”等。进一步地,将这些语义明确的代码图结构构建为代码图张量,并作为机器学习模型的结构化输入,可以减少对训练数据量、模型容量和训练机制的要求,并解决超出当前技术水平的任务。
图张量构建网络层根据源代码函数的抽象语法树特征,获得代码语法图的节点集合以及抽象语法树(Abstract Syntax Tree,AST)的图结构。抽象语法树AST是程序图的主干,被表示为源代码的抽象语法结构树。每个AST节点对应于源代码的一个项,该项由代码块、声明、表达式、语句等组成。AST首先读取源代码,并根据预定的规则将它们合并为标识;同时,删除空白、注释等;最后,整个代码被分解成一个令牌列表。AST将通过词法分析把语法标记列表转换成树形。AST包含语法标记(终端,例如常量值、标识符名称等)和语法节点(非语言语法的终端,例如“if or for”语句或函数声明)。语法节点通过基于AST的子边连接。
图张量构建网络层根据源代码函数的控制流程图特征,获得代码的语义跳转图结构,即控制流图(Control Flow Graph,CFG)图结构。CFG是程序的抽象表示,是编译器中使用的抽象数据结构,表示程序将遍历的所有执行路径,即表示程序中所有基本块的可能执行流。CFG图结构中的每个节点表示一个基本块,例如没有任何条件指令的行代码块。其跳边以一个方块开始,以方块结束;方向边用于表示控制流中的跳跃。从入口街区开始,在出口街区结束。CFG可以显示过程中基本块之间的关系、动态执行状态以及每个基本块对应的语句表。此外,还有其他辅助信息,如基本块执行次数等。
图张量构建网络层根据控制流程图的变量使用情况构建代码语义的数据流依赖关系图(Data flow Dependency Graph,DDG)图结构。DDG的边表示对相同变量的后续访问与修改,其以最简单的形式表示指令之间的数据依赖关系。DDG图结构中,每个节点表示一条指令,称为“原子”节点,边表示对相同变量的后续访问或修改。一些具有简单解除依赖关系的原子节点也可以组合成具有多条指令的较大节点。数据流依赖图是面向变量的。
图张量构建网络层根据编写源代码的自然顺序提取源代码文件中自然码序列图(Natural Code Sequence,NCS)的图结构,保留源代码序列所反映的编程逻辑。由于标准AST边不表示语法节点子节点的顺序,自然码序列图在每个语法标记和该标记的后继标记之间添加边(NextToken边)。语句中操作码和操作数的顺序用NCS边表示,NCS边表示源代码的自然顺序,保留了编程逻辑。
进一步地,参阅图2,图张量构建网络层提取AST的图结构中的最大节点集合,分别将各图结构中与最大节点集合对应的节点构成的邻接矩阵设置为相应的切片,沿三维扩展方向组合生成的四张切片,得到图张量空间特征。
操作S2,基于门控神经网络深度学习算法和张量计算建立门控图张量神经网络层,并连接图张量构建网络层的输出侧,用于利用图张量空间特征计算源代码的图结构节点的隐藏层特征。
本实施例中,基于传统的门控图神经网络层,设计门控图张量神经网络层的前向传播过程,将张量模型运用到图神经网络中的张量门控图神经网络,学习各源代码文件函数节点的中间隐藏层语义特征。
根据本发明的实施例,门控图张量神经网络层中的计算方法包括:
Figure BDA0003451839750000071
Figure BDA0003451839750000072
Figure BDA0003451839750000073
Figure BDA0003451839750000074
Figure BDA0003451839750000081
Figure BDA0003451839750000082
其中,
Figure BDA0003451839750000083
为节点v的隐藏层初始节点特征,
Figure BDA0003451839750000084
为节点v的初始特征矩阵
Figure BDA0003451839750000085
的转置矩阵,
Figure BDA0003451839750000086
为t时刻节点v的聚合图中其他节点特征以及节点v的邻接矩阵特征,
Figure BDA0003451839750000087
为图张量中包含节点v的部分张量
Figure BDA0003451839750000088
的转置张量,Wh为门控图张量神经网络层中需要训练学习的特征权重参数矩阵,
Figure BDA0003451839750000089
为t-1时刻节点1的特征矩阵,
Figure BDA00034518397500000810
为t-1时刻节点|V|的特征矩阵,|V|为图结构中节点数目,B为模型训练过程中的偏置矩阵,
Figure BDA00034518397500000811
为t时刻节点v的遗忘门,σ为第一激活函数,
Figure BDA00034518397500000812
为遗忘门信息中和
Figure BDA00034518397500000813
有关的需要训练学习的模型权重参数之一,
Figure BDA00034518397500000814
为遗忘门信息中和
Figure BDA00034518397500000815
有关的需要训练学习的模型权重参数之一,
Figure BDA00034518397500000816
为t-1时刻节点v的特征矩阵的转置矩阵,
Figure BDA00034518397500000817
为更新门,
Figure BDA00034518397500000818
为更新门信息中和
Figure BDA00034518397500000819
有关的需要训练学习的模型权重参数之一,
Figure BDA00034518397500000820
为更新门信息中和
Figure BDA00034518397500000821
有关的需要训练学习的模型权重参数之一,
Figure BDA00034518397500000822
为t时刻新产生的节点v的特征信息,f(*)为第二激活函数,Ht-1为t-1时刻所有节点的特征矩阵整合,
Figure BDA00034518397500000823
为t时刻最终产生的节点v的特征信息,⊙为Hadamard乘积。
操作S3,基于图卷积神经网络深度学习算法和张量计算建立图张量卷积神经网络层,并连接门控图张量神经网络层的输出侧,用于利用隐藏层特征提取图结构节点的语义特征。
本实施例中,基于传统的图卷积神经网络层,设计图张量卷积神经网络层的前向传播过程,将经过门控图张量神经网络层学习的中间隐藏层的代码节点特征输入到图张量卷积神经网络层,进而学习各源代码文件函数节点的最终代码语义特征。
根据本发明的实施例,图张量卷积神经网络层中的计算方法包括:
Figure BDA00034518397500000824
其中,
Figure BDA00034518397500000825
分别为第l+1、l层图中所有节点特征张量沿第三维的第i个切片矩阵,
Figure BDA00034518397500000826
为图张量沿第三维的第i个切片矩阵,fGCN(*)为图卷积神经网络。其中,
Figure BDA0003451839750000091
操作S4,基于注意力机制建立输出网络层,并连接图张量卷积神经网络层的输出侧,用于根据语义特征利用分层softmax函数预测源代码中的变量,和/或,预测源代码中缺失的变量。
输出网络层根据具体的语义分类预测等任务,结合前面学习的代码节点的中间隐藏层特征以及语义特征(即代码节点的上下文信息)来学习获取待预测或者待分类任务的输出,输出例如为预测源代码中的变量及变量类型,或者,例如为预测源代码中缺失的变量,以自动补全源代码。
根据本发明的实施例,输出层使用了分层softmax来计算待预测节点的概率。使用初始节点表示特征,结合节点的隐藏层表示特征和节点的候选词表示特征。使用分层softmax函数来产生输出yi的概率分布:
oi=tanh(Wo(Xi;Hi;Ui,v;HiUi,v T))
yi=hsoftmax(Wooi+bc)
其中,oi为包含了所有的候选词的信息向量,oi为大小为m×1的矩阵,m为节点隐藏层的特征表示;Wo(*)为需要学习的训练权重,Xi为节点i的初始特征矩阵,Hi为经过门控图张量递归网络层和图张量卷积层训练后获得的隐藏层节点i的特征矩阵,Ui,v为候选词v的节点i特征矩阵,h(*)为sigmoid激活函,yi为输出的概率分布,hsoftmax(*)为softmax函数,bc为训练模型的权重偏置,‘;’表示连接操作,c表示候选词的数目。
Figure BDA0003451839750000092
操作S5,将训练样本输入图张量神经网络模型,图张量神经网络模型包含操作S1-操作S4中建立的各网络层,利用反向传播训练图张量神经网络模型中的权重参数,得到优化后的图张量神经网络模型。
将训练样本输入图张量神经网络模型,图张量神经网络模型通过迭代训练更新模型参数,直至最后模型的损失函数收敛到最小值。根据本发明的实施例,操作S5中根据多分类交叉熵损失函数的目标函数训练图张量神经网络模型中的权重参数,多分类交叉熵损失函数的目标函数为:
Figure BDA0003451839750000101
其中,J为多分类交叉熵损失函数的目标函数,K为节点特征总数,yi为输出的概率分布,pi为训练数据的真实标签值。
根据上述多分类交叉熵损失函数的目标函数,并使用反向传播模型来学习提出的图张量神经网络模型中各个网络层中的各权重参数,输入样本数据训练图张量神经网络模型学习代码语义。
利用优化训练后得到的图张量神经网络模型进行源代码语义识别的过程为:图张量构建网络层从待识别源代码中分别提取AST、CFG、DDG和NCS的图结构,组合各图结构得到待识别源代码的图张量空间特征;门控图张量神经网络层利用图张量空间特征计算待识别源代码的图结构节点的隐藏层特征;图张量卷积神经网络层利用隐藏层特征提取图结构节点的语义特征;输出网络层根据语义特征利用分层softmax函数预测待识别源代码中的变量,和/或,预测待识别源代码中缺失的变量。
本发明实施例还提供了一种基于图张量神经网络模型的源代码语义识别方法。方法包括将待识别的源代码输入如图1-图2所示的图张量神经网络模型建立方法建立的图张量神经网络模型中,图张量神经网络模型输出源代码中的变量,和/或,输出源代码中缺失的变量。本实施例中图张量神经网络模型进行源代码语义识别与图1-图2所示实施例中图张量神经网络模型的工作原理相同,本实施例未尽之细节,请参阅前述图1-图2所示图张量神经网络模型建立方法,此处不再赘述。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述实施例中图张量神经网络模型建立方法和/或源代码语义识别方法的方法流程。
当使用软件实现时,上述实施例描述的方法步骤可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种图张量神经网络模型建立方法,其特征在于,所述图张量神经网络模型用于识别源代码语义特征,方法包括:
S1,建立图张量构建网络层,用于从源代码中分别提取AST、CFG、DDG和NCS的图结构,组合各所述图结构得到所述源代码的图张量空间特征;
S2,基于门控神经网络深度学习算法和张量计算建立门控图张量神经网络层,并连接所述图张量构建网络层的输出侧,用于利用所述图张量空间特征计算所述源代码的图结构节点的隐藏层特征;
S3,基于图卷积神经网络深度学习算法和张量计算建立图张量卷积神经网络层,并连接所述门控图张量神经网络层的输出侧,用于利用所述隐藏层特征提取所述图结构节点的语义特征;
S4,基于注意力机制建立输出网络层,并连接所述图张量卷积神经网络层的输出侧,用于根据所述语义特征利用分层softmax函数预测所述源代码中的变量,和/或,预测所述源代码中缺失的变量;
S5,将训练样本输入图张量神经网络模型,所述图张量神经网络模型包含所述S1-S4中建立的各网络层,利用反向传播训练所述图张量神经网络模型中的权重参数,得到优化后的图张量神经网络模型。
2.如权利要求1所述的图张量神经网络模型建立方法,其特征在于,所述S1中图张量构建网络层组合各所述图结构包括:提取AST的图结构中的最大节点集合,分别将各所述图结构中与所述最大节点集合对应的节点构成的邻接矩阵设置为相应的切片,沿三维扩展方向组合生成的四张切片,得到所述图张量空间特征。
3.如权利要求1所述的图张量神经网络模型建立方法,其特征在于,所述门控图张量神经网络层中的计算方法包括:
Figure FDA0003451839740000021
Figure FDA0003451839740000022
Figure FDA0003451839740000023
Figure FDA0003451839740000024
Figure FDA0003451839740000025
Figure FDA0003451839740000026
其中,
Figure FDA0003451839740000027
为节点v的隐藏层初始节点特征,
Figure FDA0003451839740000028
为节点v的初始特征矩阵
Figure FDA0003451839740000029
的转置矩阵,
Figure FDA00034518397400000210
为t时刻节点v的聚合图中其他节点特征以及节点v的邻接矩阵特征,
Figure FDA00034518397400000211
为图张量中包含节点v的部分张量
Figure FDA00034518397400000212
的转置张量,Wh为门控图张量神经网络层中需要训练学习的特征权重参数矩阵,
Figure FDA00034518397400000213
为t-1时刻节点1的特征矩阵,
Figure FDA00034518397400000214
为t-1时刻节点|V|的特征矩阵,|V|为图结构中节点数目,B为模型训练过程中的偏置矩阵,
Figure FDA00034518397400000215
为t时刻节点v的遗忘门,σ为第一激活函数,
Figure FDA00034518397400000216
为遗忘门信息中和
Figure FDA00034518397400000217
有关的需要训练学习的模型权重参数之一,
Figure FDA00034518397400000218
为遗忘门信息中和
Figure FDA00034518397400000219
有关的需要训练学习的模型权重参数之一,
Figure FDA00034518397400000220
为t-1时刻节点v的特征矩阵的转置矩阵,
Figure FDA00034518397400000221
为更新门,
Figure FDA00034518397400000222
为更新门信息中和
Figure FDA00034518397400000223
有关的需要训练学习的模型权重参数之一,
Figure FDA00034518397400000224
为更新门信息中和
Figure FDA00034518397400000225
有关的需要训练学习的模型权重参数之一,
Figure FDA00034518397400000226
为t时刻新产生的节点v的特征信息,f(*)为第二激活函数,Ht-1为t-1时刻所有节点的特征矩阵整合,
Figure FDA00034518397400000227
为t时刻最终产生的节点v的特征信息,⊙为Hadamard乘积。
4.如权利要求1所述的图张量神经网络模型建立方法,其特征在于,所述图张量卷积神经网络层中的计算方法包括:
Figure FDA00034518397400000228
其中,
Figure FDA00034518397400000229
分别为第l+1、l层图中所有节点特征张量沿第三维的第i个切片矩阵,
Figure FDA00034518397400000230
为图张量沿第三维的第i个切片矩阵,fGCN(*)为图卷积神经网络。
5.如权利要求1所述的图张量神经网络模型建立方法,其特征在于,所述输出网络层中的计算方法包括:
oi=tanh(Wo(Xi;Hi;Ui,v;HiUi,v T))
yi=hsoftmax(Wooi+bc)
其中,oi为包含了所有的候选词的信息向量,Wo(*)为需要学习的训练权重,Xi为节点i的初始特征矩阵,Hi为经过门控图张量递归网络层和图张量卷积层训练后获得的隐藏层节点i的特征矩阵,Ui,v为候选词的节点特征矩阵,h(*)为sigmoid激活函,yi为输出的概率分布,hsoftmax(*)为softmax函数,bc为训练模型的权重偏置。
6.如权利要求1-5任一项所述的图张量神经网络模型建立方法,其特征在于,所述S5中根据多分类交叉熵损失函数的目标函数训练所述图张量神经网络模型中的权重参数,所述多分类交叉熵损失函数的目标函数为:
Figure FDA0003451839740000031
其中,J为多分类交叉熵损失函数的目标函数,K为节点特征总数,yi为输出的概率分布,pi为训练数据的真实标签值。
7.一种基于图张量神经网络模型的源代码语义识别方法,其特征在于,包括:将待识别的源代码输入如权利要求1-6任一项所述的图张量神经网络模型建立方法建立的图张量神经网络模型中,得到所述源代码中的变量,和/或,得到所述源代码中缺失的变量。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一项所述的图张量神经网络模型建立方法,和/或,所述程序被处理器执行时实现如权利要求7所述的源代码语义识别方法。
CN202111665944.7A 2021-12-31 2021-12-31 图张量神经网络模型建立方法及源代码语义识别方法 Pending CN114327483A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111665944.7A CN114327483A (zh) 2021-12-31 2021-12-31 图张量神经网络模型建立方法及源代码语义识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111665944.7A CN114327483A (zh) 2021-12-31 2021-12-31 图张量神经网络模型建立方法及源代码语义识别方法

Publications (1)

Publication Number Publication Date
CN114327483A true CN114327483A (zh) 2022-04-12

Family

ID=81021686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111665944.7A Pending CN114327483A (zh) 2021-12-31 2021-12-31 图张量神经网络模型建立方法及源代码语义识别方法

Country Status (1)

Country Link
CN (1) CN114327483A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115438709A (zh) * 2022-07-11 2022-12-06 云南恒于科技有限公司 基于代码属性图的代码相似性检测方法
CN115577361A (zh) * 2022-12-09 2023-01-06 四川大学 一种改进的基于图神经网络的PHP Web shell检测方法
CN115129364B (zh) * 2022-07-05 2023-04-18 四川大学 基于抽象语法树和图神经网络的指纹身份识别方法和系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115129364B (zh) * 2022-07-05 2023-04-18 四川大学 基于抽象语法树和图神经网络的指纹身份识别方法和系统
CN115438709A (zh) * 2022-07-11 2022-12-06 云南恒于科技有限公司 基于代码属性图的代码相似性检测方法
CN115577361A (zh) * 2022-12-09 2023-01-06 四川大学 一种改进的基于图神经网络的PHP Web shell检测方法
CN115577361B (zh) * 2022-12-09 2023-04-07 四川大学 一种改进的基于图神经网络的PHP Web shell检测方法

Similar Documents

Publication Publication Date Title
CN109299237B (zh) 基于行动者评论家强化学习算法的循环网络人机对话方法
US20210232376A1 (en) Vectorized representation method of software source code
CN114327483A (zh) 图张量神经网络模型建立方法及源代码语义识别方法
CN112306494A (zh) 一种基于卷积和循环神经网络的代码分类及聚类方法
JP2023522502A (ja) セマンティック認識方法
CN112667818A (zh) 融合gcn与多粒度注意力的用户评论情感分析方法及系统
CN111274790A (zh) 基于句法依存图的篇章级事件嵌入方法及装置
CN111858898A (zh) 基于人工智能的文本处理方法、装置及电子设备
CN108363685B (zh) 基于递归变分自编码模型的自媒体数据文本表示方法
CN114528898A (zh) 基于自然语言命令的场景图修改
CN113705196A (zh) 基于图神经网络的中文开放信息抽取方法和装置
Singh et al. AP: artificial programming
CN116304748A (zh) 一种文本相似度计算方法、系统、设备及介质
CN114528398A (zh) 一种基于交互双重图卷积网络的情感预测方法及系统
CN116738959A (zh) 一种基于人工智能的简历改写方法及系统
CN113065322B (zh) 一种代码段注释生成方法、系统及可读存储介质
CN113297838A (zh) 一种基于图神经网络的关系抽取方法
CN112148879B (zh) 一种自动给代码打数据结构标签的计算机可读存储介质
CN116910190A (zh) 多任务感知模型获取方法、装置、设备及可读存储介质
Wakchaure et al. A scheme of answer selection in community question answering using machine learning techniques
CN116629361A (zh) 基于本体学习和注意力机制的知识推理方法
CN115204171A (zh) 基于超图神经网络的文档级事件抽取方法及系统
CN111581339B (zh) 基于树状lstm对生物医学文献的基因事件的抽取方法
CN114398076A (zh) 一种基于深度学习的面向对象程序方法命名异味检测方法
CN116468030A (zh) 一种基于多任务神经网络的端到端方面级情感分析方法

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