Skip to main content
QUICK REVIEW

[论文解读] Program Language Translation Using a Grammar-Driven Tree-to-Tree Model

Mehdi Drissi, Olivia Watkins|arXiv (Cornell University)|Jul 4, 2018
Natural Language Processing Techniques参考文献 8被引用 8
一句话总结

本文提出了一种基于语法的树到树神经模型,用于程序语言翻译,通过在解码过程中利用形式化语法规则来强制保证语法正确性。通过用语法感知解码器替代标准神经解码器,该模型在合成翻译任务上实现了88.82%的准确率,优于先前的最先进树到树和树到序列模型,在准确率和训练稳定性方面均表现更优。

ABSTRACT

The task of translating between programming languages differs from the challenge of translating natural languages in that programming languages are designed with a far more rigid set of structural and grammatical rules. Previous work has used a tree-to-tree encoder/decoder model to take advantage of the inherent tree structure of programs during translation. Neural decoders, however, by default do not exploit known grammar rules of the target language. In this paper, we describe a tree decoder that leverages knowledge of a language's grammar rules to exclusively generate syntactically correct programs. We find that this grammar-based tree-to-tree model outperforms the state of the art tree-to-tree model in translating between two programming languages on a previously used synthetic task.

研究动机与目标

  • 为解决神经树到树模型生成语法无效程序的局限性,通过在解码过程中集成形式化语法规则。
  • 通过使用语法约束生成来消除结束树标记(<EOS>)的需求,从而提高训练效率并减少冗余操作。
  • 通过减少对随机初始化的敏感性,尤其与标准神经解码器相比,提升模型的稳定性和收敛性。
  • 通过确保所有生成的程序严格符合目标语言的语法规则,实现更可靠和准确的程序翻译。
  • 提供一个实用的程序翻译框架,可通过足够规模的并行训练数据和形式化语法,扩展至真实世界语言对的任务中。

提出的方法

  • 模型使用树LSTM编码器处理源程序的抽象语法树(AST),通过左子右兄弟表示法将其二叉化,以实现分层处理。
  • 语法感知解码器替代标准神经解码器,利用形式化语法规则约束子节点的生成,确保仅生成语法正确的程序。
  • 解码器采用父节点注意力机制,在将父节点的嵌入表示与注意力向量拼接后输入LSTM,以引导子节点的生成。
  • 通过语法规则确定有效的节点扩展,从而消除对<EOS>标记的需求,减少所需操作数量,提升效率。
  • 解码器仅在节点符合目标语言语法规则时才生成,子节点的生成由对编码源树的注意力机制引导。
  • 该方法集成了固定容量机制用于变量名和字面量名称的处理,未来可结合先前工作的复制机制进行扩展。

实验结果

研究问题

  • RQ1与标准神经解码器相比,基于语法的解码器是否能显著提升神经程序翻译的语法正确性和准确率?
  • RQ2在解码过程中强制执行语法规则是否能带来更快且更稳定的模型收敛?
  • RQ3在合成程序翻译基准上,语法感知树到树模型的性能与最先进树到树和树到序列模型相比如何?
  • RQ4缺乏形式化语法信息在多大程度上影响模型对罕见或复杂语法规则的泛化能力?
  • RQ5基于语法的方法能否扩展至需要大规模并行语料库和形式化语言规范的真实世界程序翻译任务?

主要发现

  • 基于语法的树到树模型在合成程序翻译任务上实现了88.82%的平均准确率,优于重新实现的树到树和树到序列基线模型。
  • 该语法模型的收敛性优于基线模型,各次运行的准确率标准差显著更低,表明对随机初始化的敏感性更低。
  • 该语法模型的最佳单次运行结果超过了两种基线模型的最佳运行结果,表明其在性能上具有持续优势。
  • 尽管努力忠实复现原始模型,但重新实现的基线模型性能仍低于Chen等人(2018年)报告的结果,表明数据集或实现差异可能影响了结果。
  • 由于去除了结束树标记,该模型所需操作更少,提升了效率并减少了解码过程中的冗余。
  • 该模型在不同程序长度下表现稳健,对数据集的简易版和困难版均取得优异结果,包括长度达到原始困难任务两倍的程序。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

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