Skip to main content
QUICK REVIEW

[论文解读] Generative Code Modeling with Graphs

Marc Brockschmidt, Miltiadis Allamanis|arXiv (Cornell University)|May 22, 2018
Software Engineering Research参考文献 27被引用 76
一句话总结

直接回答摘要:提出一种基于图的代码生成模型,将语法驱动的展开与图增强和神经信息传递交错进行,以生成具有语义意义的表达,并超越强基线。

ABSTRACT

Generative models for source code are an interesting structured prediction problem, requiring to reason about both hard syntactic and semantic constraints as well as about natural, likely programs. We present a novel model for this problem that uses a graph to represent the intermediate state of the generated output. The generative procedure interleaves grammar-driven expansion steps with graph augmentation and neural message passing steps. An experimental evaluation shows that our new model can generate semantically meaningful expressions, outperforming a range of strong baselines.

研究动机与目标

  • 激励兼顾语法结构和语义约束的生成式代码模型。
  • 提出一个基于图的解码器,通过将属性型关系增强到AST并使用神经信息传递。
  • 介绍 ExprGen,一个在代码上下文条件下生成语义上复杂表达的 CodeGen 任务。
  • 在大型 ExprGen 数据集上,将所提图基方法与强基线进行比较评估。

提出的方法

  • 使用现有编码器对代码上下文进行编码,以获得上下文和逐变量的表示。
  • 通过添加属性边(继承/综合)和关系边,构建增强的语法图。
  • 将属性表示为神经节点,并通过带有边类型特定变换的图神经网络计算 h_v。
  • 通过使用学习到的分类器和指针机制,选择产生式规则、变量和字面量进行解码。
  • 端到端地用最大似然训练,可选地用带标签的边类型和注意力来增强边消息。
  • 可选地通过注意力和带标签的边扩展信息流以改善信息传递。

实验结果

研究问题

  • RQ1一个图增强、基于语法的解码器在给定上下文条件下,是否能够生成具有语义有效性的代码表达?
  • RQ2将属性语法与神经信息传递整合,是否能在语义正确性(良好类型)和与真实值的精确匹配方面优于基线?
  • RQ3在 ExprGen 任务中,图基方法与基于树的和基于序列的解码器相比,尤其在跨项目迁移下的表现如何?
  • RQ4带标签边和增强的产生式条件对生成质量有何影响?

主要发现

模型测试(来自已见项目)困惑度测试(来自已见项目)良好类型性测试(来自已见项目)Acc@1测试(来自已见项目)Acc@5仅测试(来自未见项目)困惑度仅测试(来自未见项目)良好类型性仅测试(来自未见项目)Acc@1仅测试(来自未见项目)Acc@5
PHOG †34.8%42.9%28.0%37.3%
Seq→Seq87.4832.4%21.8%28.1%130.4623.4%10.8%16.8%
Seq→NAG6.8153.2%17.7%33.7%8.3840.4%8.4%15.8%
G→Seq93.3140.9%27.1%34.8%28.4836.3%17.2%25.6%
G→Tree4.3749.3%26.8%48.9%5.3741.2%19.9%36.8%
G→ASN2.6278.7%45.7%62.0%3.0374.7%32.4%48.1%
G→Syn2.7184.9%50.5%66.8%3.4884.5%36.0%52.7%
G→NAG2.5686.4%52.3%69.2%3.0784.5%38.8%57.0%
  • 图增强模型(NAG)通常在语义指标和对迁移的鲁棒性方面优于基线。
  • 在已见项目的测试数据上,NAG 在良好类型性和 Acc@5 得分上高于其他图变体。
  • 在未见项目的测试数据上,NAG 仍具竞争力,通常在语义准确性方面超过非图基线。
  • 仅基于左侧上下文条件的 PHOG 基线在语义指标上不如基于图的解码器。
  • 总体而言,NAG 在困惑度、良好类型性和对真实表达的检索方面表现最佳。
  • 结果表明通过属性图实现的更丰富的信息流提升了生成质量和可迁移性。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。