[发明专利]一种基于门控注意力和交互LSTM的代码生成方法在审
申请号: | 202110487654.1 | 申请日: | 2021-04-30 |
公开(公告)号: | CN113126973A | 公开(公告)日: | 2021-07-16 |
发明(设计)人: | 吴军华;王余轩 | 申请(专利权)人: | 南京工业大学 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06N3/04;G06N3/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 211816 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 门控 注意力 交互 lstm 代码 生成 方法 | ||
1.一种基于门控注意力和交互LSTM的代码生成方法,其特征在于,所述方法包括以下步骤:
步骤1:采用双向GRU网络对输入信息进行编码,对信息进行正向和反向编码;
步骤1.1:正向和反向的编码方式和可以更完整地捕捉序列间各单元关联;
步骤1.2:将前向和后向隐状态拼接得此时刻的整体隐状态
步骤1.3:编码器长度根据输入信息长度相应改变,编码信息可表示为S=(s1,s2.....sn);
步骤2:采用门控注意力机制,该注意力包含GAT层和ATT层;
步骤2.1:GAT层通过门控GRU将编码信息S转化为改变编码信息的不变性;
步骤2.2:被输入ATT层得到此时刻上下文向量Attj;
步骤3:采用交互LSTM网络作为解码单元,将编码信息解码构建抽象语法树。
2.如权利要求1所述的基于门控注意力和交互LSTM的代码生成方法,其特征在于,所述的步骤2.1具体方法如下:
步骤2.1.1:编码信息S被输入到ATT层前将解码中前一单元状态cj-1引入GAT层,通过细化S打破这种不变性,GAT层整体计算公式如下:
步骤2.1.2:上述公式可分解为如下表示:
rjt=σ(wrccj-1+wrsst+br)
zjt=σ(wzccj-1+wzsst+bz)
其中:cj-1为解码单元状态,st为第t个编码信息,rjt为重置门和zjt为更新门,σ、tanh、w*和b*分别表示sigmod函数和双曲正切函数以及权值矩阵和偏置,*表示的是矩阵对应元素相乘。
3.如权利要求1和2所述的基于门控注意力和交互LSTM的代码生成方法,其特征在于,所述的步骤2.2具体方法如下:
步骤2.2.1:将所得输入ATT层得到j时刻上下文向量Attj,ATT层注意力与软注意力保持一致,整体公式如下:
4.如权利要求1所述的基于门控注意力和交互LSTM的代码生成方法,其特征在于,所述步骤3具体方法如下:
步骤3.1:将Python语法规则:引入到代码生成中,每一时间步即为对语法规则的预测;
步骤3.2:引入拓展LSTM即交互LSTM将原始输入attj和hj-1用初始化,根据参数i的奇偶性控制attj和进行交互计算;
步骤3.3:运用函数sofmax对交互LSTM输出进行动作预测paction,每个时间步t均触发动作ApplyRule和GetToken;
步骤3.4:抽象语法树按照从上往下,从左往右的顺序执行;
步骤3.5:随着动作ApplyRule和GetToken的执行,最终模型会扩展完成语法树;
步骤3.6:解码器相应的生成的语法树后,将AST转换为所需的代码表示。
5.如权利1-4任一所述的基于门控注意力和交互LSTM的代码生成方法,其特征在于,所述模型包含三部分,编码器-注意力-解码器;模型双向GRU编码让信息关联紧密,门控注意力打破编码信息的不变性让生成上下文向量有了区分度,交互LSTM使输入信息进入解码单元前交互计算;作为不定长输入到不定长输出的任务,通过不断的对权重进行调整来实现对神经网络的训练,使输入与输出形成多对多关系,接着生成抽象语法树表示,最终将语法树转为相应代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京工业大学,未经南京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110487654.1/1.html,转载请声明来源钻瓜专利网。