[论文解读] Deep API Programmer: Learning to Program with APIs
该论文提出 Dapip,一种基于深度学习的编程示例(Programming-By-Example)系统,能够使用以数据转换 API 函数为核心的领域特定语言(DSL)自动学习生成程序。该系统采用交叉相关编码器与递归-反向递归神经网络(R3NN)对输入-输出示例进行编码,并在 DSL 空间中进行搜索,在真实世界的 FlashFill 基准测试中达到 45% 的准确率,显著优于列举式基线方法。
We present DAPIP, a Programming-By-Example system that learns to program with APIs to perform data transformation tasks. We design a domain-specific language (DSL) that allows for arbitrary concatenations of API outputs and constant strings. The DSL consists of three family of APIs: regular expression-based APIs, lookup APIs, and transformation APIs. We then present a novel neural synthesis algorithm to search for programs in the DSL that are consistent with a given set of examples. The search algorithm uses recently introduced neural architectures to encode input-output examples and to model the program search in the DSL. We show that synthesis algorithm outperforms baseline methods for synthesizing programs on both synthetic and real-world benchmarks.
研究动机与目标
- 解决现有 PBE 系统依赖于表达能力有限的刚性低级 DSL 所带来的局限,这些 DSL 在语义数据转换方面表达力不足。
- 通过从数据中自动学习神经合成算法,减少程序合成中对人工启发式设计的依赖。
- 通过基于函数的 DSL 和深度神经网络,实现在复杂数据转换任务中高效且可扩展的程序合成。
- 通过将 API 视为一等构造并使用可学习的表示,提升程序合成中的泛化能力和可扩展性。
提出的方法
- 设计一种领域特定语言(DSL),其中程序由三类 API 组成:基于正则表达式的 API、查找类 API 和转换类 API,用于语法和语义转换。
- 使用基于双向 LSTM 的交叉相关编码器,生成输入-输出示例的固定维向量表示。
- 采用递归-反向递归神经网络(R3NN)建模程序的增量推导过程,并预测 DSL 中有效的扩展。
- 在数千个合成程序及其输入-输出示例上端到端训练编码器与 R3NN,以学习神经合成策略。
- 利用学习到的模型在 DSL 中执行神经程序搜索,生成与输入-输出示例一致的程序,无需人工规则工程。
- 通过利用 API 组合的表达能力与神经网络的泛化能力,实现对真实世界基准的泛化。
实验结果
研究问题
- RQ1基于神经网络的合成算法是否能有效学习在以函数 API 为中心而非低级字符串操作的 DSL 中生成程序?
- RQ2所学习的神经搜索策略在数据转换任务的程序合成中,相较于传统列举式搜索方法,能多大程度上实现性能超越?
- RQ3神经模型是否能泛化到多样化的数据清洗模式,包括语义转换如日期转月份名称或州缩写?
- RQ4使用以 API 为先的 DSL 及其组合结构,如何影响神经程序合成的可扩展性与准确性?
主要发现
- Dapip 在 238 个真实世界 FlashFill 基准测试中达到 45% 的准确率,显著优于基线列举式搜索方法。
- 神经合成方法在未见过的数据清洗任务中泛化良好,包括姓名缩写、地址解析等语义转换。
- 交叉相关编码器有效捕捉了输入-输出之间的关系,使模型能从极少示例中准确预测程序。
- R3NN 架构通过建模部分推导过程并预测有效的 API 扩展,实现了高效且增量式的程序构建。
- 该系统表明,神经组件的端到端训练可替代程序合成中的人工启发式规则,降低工程复杂度。
- 将 API 视为一等构造的 DSL 设计,相比传统 PBE DSL,能生成更简洁且更具表达力的程序,从而提升模型泛化能力。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。