Skip to main content
QUICK REVIEW

[论文解读] A Retrieve-and-Edit Framework for Predicting Structured Outputs

Tatsunori Hashimoto, Kelvin Guu|arXiv (Cornell University)|Dec 4, 2018
Software Engineering Research被引用 102
一句话总结

本文提出一种 retrieve-and-edit 方法,先根据输入检索一个训练示例,然后对其进行编辑以生成结构化输出,从而在无需手工设计度量或联合检索-编辑训练的情况下实现高效学习。

ABSTRACT

For the task of generating complex outputs such as source code, editing existing outputs can be easier than generating complex outputs from scratch. With this motivation, we propose an approach that first retrieves a training example based on the input (e.g., natural language description) and then edits it to the desired output (e.g., code). Our contribution is a computationally efficient method for learning a retrieval model that embeds the input in a task-dependent way without relying on a hand-crafted metric or incurring the expense of jointly training the retriever with the editor. Our retrieve-and-edit framework can be applied on top of any base model. We show that on a new autocomplete task for GitHub Python code and the Hearthstone cards benchmark, retrieve-and-edit significantly boosts the performance of a vanilla sequence-to-sequence model on both tasks.

研究动机与目标

  • 激发从头生成复杂输出的困难及编辑现有输出的潜在容易性。
  • 提出一种检索型框架,将输入以任务相关的方式嵌入,而无需手工设计的度量。
  • 实现一种可泛化的方法,可以在任何基础模型之上用于结构化输出的泛化方法。

提出的方法

  • 检索一个基于输入描述的训练示例。
  • 编辑检索得到的示例以产生目标结构化输出。
  • 在不对检索器与编辑器进行联合训练的情况下,学习一个以任务相关方式对输入进行嵌入的检索模型。
  • 证明该框架是模型无关的,并且可以增强基础的序列到序列模型。

实验结果

研究问题

  • RQ1在结构化输出任务中,retrieve-and-edit 能否相对于常规的序列到序列模型提升性能?
  • RQ2在没有手工设计度量的情况下,学习的、任务相关的检索嵌入是否能带来实际效益?
  • RQ3该框架在不同领域和不同基础模型上是否有效?

主要发现

  • retrieve-and-edit 在 GitHub Python 代码自动完成任务上显著提升了常规序列到序列模型的性能。
  • retrieve-and-edit 也提升了 Hearthstone 卡牌基准测试的结果。
  • 该方法在无需联合检索器-编辑器训练的情况下,提供了一种计算上高效的检索集成方式。

更好的研究,从现在开始

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

无需绑定信用卡

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