Skip to main content
QUICK REVIEW

[论文解读] Program Synthesis with Pragmatic Communication

Yewen Pu, Kevin Ellis|arXiv (Cornell University)|Jul 9, 2020
Software Engineering Research参考文献 29被引用 5
一句话总结

本文提出了一种实用的程序合成器,通过将合成任务建模为理性沟通,利用递归推理推断用户可能意图的程序,从而解决用户提供的规格说明中的歧义。通过将规格说明视为一种语用性言语,该系统在用户研究中优于字面理解和手工设计先验的方法,终端用户与该语用模型的沟通效率更高,表明基于原则的沟通模型可在不依赖训练数据的情况下提升人机交互中的程序合成效果。

ABSTRACT

Program synthesis techniques construct or infer programs from user-provided specifications, such as input-output examples. Yet most specifications, especially those given by end-users, leave the synthesis problem radically ill-posed, because many programs may simultaneously satisfy the specification. Prior work resolves this ambiguity by using various inductive biases, such as a preference for simpler programs. This work introduces a new inductive bias derived by modeling the program synthesis task as rational communication, drawing insights from recursive reasoning models of pragmatics. Given a specification, we score a candidate program both on its consistency with the specification, and also whether a rational speaker would chose this particular specification to communicate that program. We develop efficient algorithms for such an approach when learning from input-output examples, and build a pragmatic program synthesizer over a simple grid-like layout domain. A user study finds that end-user participants communicate more effectively with the pragmatic program synthesizer over a non-pragmatic one.

研究动机与目标

  • 解决程序合成中的歧义问题,即多个程序满足同一规格说明的情况。
  • 将程序合成建模为一种受计算语言学中语用学启发的理性沟通过程。
  • 开发一种基于说话者理性的归纳偏置,而非手工设计的先验或数据驱动的学习方法。
  • 评估语用推理是否能提升终端用户与程序合成器之间的沟通效率。
  • 在受控领域中,利用版本空间代数构建可扩展的语用程序合成推理机制。

提出的方法

  • 使用字面听者(L₀)、语用说话者(S₁)和语用听者(L₁)模型,将程序合成形式化为递归的语用沟通博弈。
  • 使用说话者模型 S₁(D|prog) ∝ Pₗ₀(prog|D) 生成最可能传达给定程序的规格说明。
  • 推导出语用听者 L₁(prog|D) ∝ Pₛ₁(D|prog) 作为合成模型,将理性融入程序选择过程。
  • 采用版本空间代数,在小规模、有限的程序与规格说明空间上高效计算概率。
  • 实现一种增量推理算法,无需采样或近似即可计算精确后验概率。
  • 通过在基于网格布局领域的 Amazon Mechanical Turk 用户研究中验证该模型。

实验结果

研究问题

  • RQ1能否证明,建模语用沟通的程序合成器在用户沟通效率方面优于字面理解或基于先验的合成器?
  • RQ2当与语用听者或字面听者交互时,终端用户如何调整其规格说明策略?
  • RQ3基于理性沟通的系统性、非数据驱动的归纳偏置在多大程度上能改善合成结果?
  • RQ4语用听者模型是否与人类对听者理性的直觉假设一致?
  • RQ5版本空间代数能否在受控领域中实现语用程序合成的高效精确推理?

主要发现

  • 与字面听者(L₀)相比,人类参与者在与语用听者(L₁)沟通时使用的符号显著更少,平均差异为 8.4 个符号(p < .0001)。
  • 语用听者(L₁)的沟通效率与人类听者相当,符号使用量无显著差异(p = .3)。
  • 语用合成器(S₁-L₁)实现成功沟通的平均发言次数为 3.34 次,优于使用手工设计先验的 S₁-Lₚ 对(平均 3.8 次发言)。
  • 用户在与语用系统交互时,通过使用更少的鹅卵石来调整其规格说明策略,表明对模式大小和结构的推断能力更强。
  • 语用模型 S₁-L₁ 在效率上与人与人之间的沟通无显著差异,表明其与人类的语用预期保持一致。
  • 该系统表明,基于语用学的、基于第一性原理的归纳偏置可优于手工设计的先验,且无需真实用户交互数据。

更好的研究,从现在开始

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

无需绑定信用卡

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