Exploring Dynamic Selection of Branch Expansion Orders for Code Generation

Hui Jiang,Chulun Zhou,Fandong Meng,Biao Zhang,Jie Zhou,Degen Huang,Qingqiang Wu,Jinsong Su
DOI: https://doi.org/10.48550/arXiv.2106.00261
2021-06-01
Computation and Language
Abstract:Due to the great potential in facilitating software development, code generation has attracted increasing attention recently. Generally, dominant models are Seq2Tree models, which convert the input natural language description into a sequence of tree-construction actions corresponding to the pre-order traversal of an Abstract Syntax Tree (AST). However, such a traversal order may not be suitable for handling all multi-branch nodes. In this paper, we propose to equip the Seq2Tree model with a context-based Branch Selector, which is able to dynamically determine optimal expansion orders of branches for multi-branch nodes. Particularly, since the selection of expansion orders is a non-differentiable multi-step operation, we optimize the selector through reinforcement learning, and formulate the reward function as the difference of model losses obtained through different expansion orders. Experimental results and in-depth analysis on several commonly-used datasets demonstrate the effectiveness and generality of our approach. We have released our code at https://github.com/DeepLearnXMU/CG-RL.
What problem does this paper attempt to address?