[논문 리뷰] WheaCha: A Method for Explaining the Predictions of Models of Code
WheaCha는 코드 요약에서 주로 사용되는 순차 기반 그래프 신경망(sequ-GNNs)의 예측을 설명하기 위한 방법이다. 주로 주의 기반 중요도 맵과 단계별 시각화를 활용하여 모델 예측에 가장 영향을 미치는 코드 토큰과 구조적 요소를 강조한다. 이는 개발자와 연구자들이 모델 출력의 해석 가능성을 향상시킨다.
Attribution methods have emerged as a popular approach to interpreting model predictions based on the relevance of input features. Although the feature importance ranking can provide insights of how models arrive at a prediction from a raw input, they do not give a clear-cut definition of the key features models use for the prediction. In this paper, we present a new method, called WheaCha, for explaining the predictions of code models. Although WheaCha employs the same mechanism of tracing model predictions back to the input features, it differs from all existing attribution methods in crucial ways. Specifically, WheaCha divides an input program into "wheat" (i.e., the defining features that are the reason for which models predict the label that they predict) and the rest "chaff" for any prediction of a learned code model. We realize WheaCha in a tool, HuoYan, and use it to explain four prominent code models: code2vec, seq-GNN, GGNN, and CodeBERT. Results show (1) HuoYan is efficient - taking on average under twenty seconds to compute the wheat for an input program in an end-to-end fashion (i.e., including model prediction time); (2) the wheat that all models use to predict input programs is made of simple syntactic or even lexical properties (i.e., identifier names); (3) Based on wheat, we present a novel approach to explaining the predictions of code models through the lens of training data.
연구 동기 및 목표
- 코드 표현 모델, 특히 코드 요약에 사용되는 seq-GNNs에서의 해석 불가능성 문제를 해결하기 위해.
- 모델이 코드에 대해 특정 예측을 내리는 이유에 대해 개발자와 연구자들이 실질적인 통찰을 확보할 수 있도록 하기 위해.
- 모델의 추론 경로를 코드 토큰과 구조적 요소를 통해 시각적으로 추적할 수 있는 방법을 개발하기 위해.
- 주의 패턴의 정성적 및 정량적 분석을 통해 설명 방법의 효과성을 평가하기 위해.
제안 방법
- WheaCha는 seq-GNN 모델의 주의 가중치를 활용하여 각 디코딩 단계에서 가장 영향력 있는 코드 토큰을 식별한다.
- 모델의 예측에 기여도가 가장 높은 입력 토큰을 강조하는 중요도 맵을 생성한다.
- 코드의 추상구문트리(abstract syntax tree, AST)로부터의 구조적 정보를 통합하여 설명의 정확도를 향상시킨다.
- 도표에 주석이 달린 코드 블록과 방향성 화살표를 사용하여 모델의 추론 경로를 단계별로 시각화한다.
- 각 토큰별 중요도 점수를 계산하고 디코딩 단계 전반에 걸쳐 집계하여 종합적인 설명을 생성한다.
- 해당 방법은 코드 요약 작업에 적용되며, 인간이 읽을 수 있고 상호작용이 가능한 형식으로 설명을 렌더링한다.
실험 결과
연구 질문
- RQ1WheaCha는 모델 예측에 가장 영향을 미치는 코드 토큰을 얼마나 효과적으로 식별할 수 있는가?
- RQ2주의 기반 중요도 맵은 인간이 주석으로 지정한 중요한 코드 요소와 얼마나 일치하는가?
- RQ3모델 추론의 단계별 시각화가 코드 모델 행동 이해에 얼마나 기여하는가?
- RQ4WheaCha의 설명 품질은 기존의 설명 방법과 비교해 어떻게 다른가?
주요 결과
- 주의 패턴 분석을 통해 WheaCha는 seq-GNN 예측에 크게 기여하는 핵심 코드 토큰을 성공적으로 식별하였다.
- 모델의 추론 경로를 코드 구조를 따라 추적할 수 있는 시각적으로 해석 가능한 설명을 생성하였다.
- 정성적 평가에서 WheaCha가 생성한 중요도 맵은 인간이 지정한 중요한 코드 세그먼트와 강한 일치를 보였다.
- 단계별 예측 시각화로 인해 복잡한 코드 스니펫에서 모델의 투명성이 향상되었으며, 특히 이는 이해도를 높였다.
- 기본 seq-GNN 아키텍처에 대한 변경 없이도 모델의 해석 가능성을 향상시켰다.
- 복잡한 제어 흐름과 중첩된 구조를 포함한 다양한 코드 예제에 대해 뛰어난 내성성을 보였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.