Skip to main content
QUICK REVIEW

[논문 리뷰] Learning Structural Edits via Incremental Tree Transformations

Ziyu Yao, Frank F. Xu|arXiv (Cornell University)|2021. 01. 28.
Software Engineering Research참고 문헌 41인용 수 12
한 줄 요약

이 논문은 코드의 추상 구문 트리와 같은 트리 구조 데이터에 대해 반복적으로 생성하고 적용하는 트리 편집(예: 하위 트리의 추가, 삭제, 복사)을 수행하는 신경 편집기를 제안한다. 새로운 편집 인코더를 도입하고, DaggerSampling과 PostRefineSampling을 활용한 동적 암시 학습 방법을 적용하여, 한 번의 생성 모델보다도 최신 기술 성능을 달성한다.

ABSTRACT

While most neural generative models generate outputs in a single pass, the human creative process is usually one of iterative building and refinement. Recent work has proposed models of editing processes, but these mostly focus on editing sequential data and/or only model a single editing pass. In this paper, we present a generic model for incremental editing of structured data (i.e., "structural edits"). Particularly, we focus on tree-structured data, taking abstract syntax trees of computer programs as our canonical example. Our editor learns to iteratively generate tree edits (e.g., deleting or adding a subtree) and applies them to the partially edited data, thereby the entire editing process can be formulated as consecutive, incremental tree transformations. To show the unique benefits of modeling tree edits directly, we further propose a novel edit encoder for learning to represent edits, as well as an imitation learning method that allows the editor to be more robust. We evaluate our proposed editor on two source code edit datasets, where results show that, with the proposed edit encoder, our editor significantly improves accuracy over previous approaches that generate the edited program directly in one pass. Finally, we demonstrate that training our editor to imitate experts and correct its mistakes dynamically can further improve its performance.

연구 동기 및 목표

  • 프로그램의 AST와 같은 트리 구조 데이터의 반복적이고 구조적인 편집을 단계적 트리 변환의 시퀀스로 모델링하는 것.
  • 편집 과정을 모델링하지 않고 직접 편집된 출력을 생성하는 한 번의 생성 모델의 한계를 해결하는 것.
  • 추상 구문 기술 언어(ASDL)를 사용하여 일반적이고 문법적으로 유효하며 언어에 종속되지 않는 구조적 편집 프레임워크를 개발하는 것.
  • 오류 수정 기능을 갖춘 새로운 편집 인코더와 동적 암시 학습을 통해 안정성과 정확도를 향상시키는 것.
  • 실세계 코드 편집 데이터셋에서 반복적 편집의 효과성을 입증하는 것.

제안 방법

  • 편집기는 매 단계에서 하나의 편집 동작(예: 하위 트리 추가, 삭제, 복사)을 생성하고 적용함으로써 반복적인 트리 변환을 수행한다.
  • 새로운 편집 인코더는 입력-출력 쌍을 함께 압축하거나 토큰 수준의 차이를 인코딩하는 대신, 정답 편집 동작의 시퀀스를 인코딩하여 표현을 학습한다.
  • 암시 학습을 사용하여 편집기를 오류를 동적으로 수정하도록 훈련시키며, 두 가지 샘플링 전략인 DaggerSampling과 PostRefineSampling을 사용한다.
  • DaggerSampling은 혼합 계수 β를 사용하여 전문가의 지침과 자기 생성 동작을 결합하여 피드백 기반 수정을 가능하게 한다.
  • PostRefineSampling은 생성 후 동작을 정밀 조정함으로써 안정성을 향상시키고, 반복적인 추가-삭제 사이클과 같은 진동 행동을 줄인다.
  • 모델은 ASDL을 통해 문법 유효성을 보장하는 트리 구조 출력 공간을 사용하여 두 개의 코드 편집 데이터셋에서 훈련 및 평가된다.

실험 결과

연구 질문

  • RQ1반복적 트리 편집이 구조적 데이터 편집 작업에서 한 번의 생성 모델보다 우수한가?
  • RQ2편집 시퀀스를 모델링하는 학습 가능한 편집 인코더는 편집 표현과 성능을 어떻게 향상시키는가?
  • RQ3자기 수정 메커니즘을 갖춘 동적 암시 학습은 편집 과정의 안정성을 높이고 진동 행동을 줄일 수 있는가?
  • RQ4DaggerSampling에서 β의 선택은 편집 정책의 안정성과 정확도에 어떤 영향을 미치는가?
  • RQ5PostRefineSampling은 DaggerSampling에 비해 더 안정적이고 정확한 편집을 이끌 수 있는가?

주요 결과

  • 제안된 편집기와 새로운 편집 인코더는 기존의 한 번의 생성 모델보다 코드 편집 벤치마크에서 정확도를 크게 향상시킨다.
  • PostRefineSampling을 사용한 암시 학습은 반복적인 추가-삭제 사이클과 같은 불안정한 행동을 예제의 0.5% 이하로 줄였으며, β=0일 때 DaggerSampling의 23%에 비해 크게 감소시켰다.
  • DaggerSampling에서 β=0.5로 설정할 경우, β=0에 비해 진동 편집의 빈도가 감소하고 정확도가 향상되어 장기적인 수정 학습이 더 잘 이루어지는 것으로 나타났다.
  • 훈련 데이터의 20%만으로도 강력한 성능을 달성하여 샘플 효율성이 뛰어나다.
  • 편집 인코더는 토큰 수준 및 동시 인코딩 베이스라인보다 우수하여, 직접적으로 편집 시퀀스를 모델링하는 데서 유의미한 이점이 있음을 입증했다.
  • 모델은 알 수 없는 토큰과 문법 오류에 대해 뛰어난 견고성을 보이며, 나머지 오류는 대부분 모델의 탐색 공간 외부에 위치해 있다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.