论文标题
利用因果推断进行可解释的自动程序维修
Leveraging Causal Inference for Explainable Automatic Program Repair
论文作者
论文摘要
深度学习模型在自动程序维修方面取得了重大进展。但是,这些方法的黑盒性质限制了其实际应用。为了应对这一挑战,本文基于因果推断的顺序到序列模型提供了一种可解释的程序维修方法,我们的方法称为CPR,是因果计划修复的缩写。我们的CPR可以在决策过程中生成解释,该过程由因果关系相关的输入输出令牌组成。首先,我们的方法通过查询模型的输入受到数据的影响,从而渗透了这些关系。其次,它从响应中生成图形上的图形,并解决分区问题以选择最相关的组件。对四种编程语言(Java,C,Python和JavaScript)的实验表明,CPR可以生成因果图,以进行合理的解释并提高自动程序修复中错误固定的性能。
Deep learning models have made significant progress in automatic program repair. However, the black-box nature of these methods has restricted their practical applications. To address this challenge, this paper presents an interpretable approach for program repair based on sequence-to-sequence models with causal inference and our method is called CPR, short for causal program repair. Our CPR can generate explanations in the process of decision making, which consists of groups of causally related input-output tokens. Firstly, our method infers these relations by querying the model with inputs disturbed by data augmentation. Secondly, it generates a graph over tokens from the responses and solves a partitioning problem to select the most relevant components. The experiments on four programming languages (Java, C, Python, and JavaScript) show that CPR can generate causal graphs for reasonable interpretations and boost the performance of bug fixing in automatic program repair.