Towards a Science of Causal Interpretability in Deep Learning for Software Engineering
David N. Palacio
TL;DR
This dissertation advances causal interpretability in Deep Learning for Software Engineering (DL4SE) by defining DoCode, a four-step post hoc causal framework (SCMs, estimand, causal effects such as $ATE$, and refutation) to explain Neural Code Models beyond correlations. It grounds explanations in programming-language structure through Syntax (De)Composition and Grounded Explanations (ASTrust), and demonstrates these ideas via multi-architecture case studies on deep code generation, traceability, and information-theoretic analyses. The work also introduces COMET for software traceability, TraceXplainer for information-theoretic evaluation, and CodeQ for code-based rationales, underscoring the value of grounding model explanations in code syntax and programmer-centric concepts. Collectively, the contributions provide a formal pipeline and practical guidelines for applying causal interpretability to NCMs, aiming to improve trustworthiness, debugging, and intervention-based software engineering tasks. The research further explores interventional and counterfactual extensions, culminating in a broader vision of self-constructing software through autopoietic architectures and a consolidated research program for causal interpretability in AI for software engineering.
Abstract
This dissertation addresses achieving causal interpretability in Deep Learning for Software Engineering (DL4SE). While Neural Code Models (NCMs) show strong performance in automating software tasks, their lack of transparency in causal relationships between inputs and outputs limits full understanding of their capabilities. To build trust in NCMs, researchers and practitioners must explain code predictions. Associational interpretability, which identifies correlations, is often insufficient for tasks requiring intervention and change analysis. To address this, the dissertation introduces DoCode, a novel post hoc interpretability method for NCMs. DoCode uses causal inference to provide programming language-oriented explanations of model predictions. It follows a four-step pipeline: modeling causal problems using Structural Causal Models (SCMs), identifying the causal estimand, estimating effects with metrics like Average Treatment Effect (ATE), and refuting effect estimates. Its framework is extensible, with an example that reduces spurious correlations by grounding explanations in programming language properties. A case study on deep code generation across interpretability scenarios and various deep learning architectures demonstrates DoCode's benefits. Results show NCMs' sensitivity to code syntax changes and their ability to learn certain programming concepts while minimizing confounding bias. The dissertation also examines associational interpretability as a foundation, analyzing software information's causal nature using tools like COMET and TraceXplainer for traceability. It highlights the need to identify code confounders and offers practical guidelines for applying causal interpretability to NCMs, contributing to more trustworthy AI in software engineering.
