Skip to main content
QUICK REVIEW

[논문 리뷰] Retrieve and Refine: Exemplar-based Neural Comment Generation

Bolin Wei|arXiv (Cornell University)|2019. 10. 23.
Software Engineering Research참고 문헌 52인용 수 6
한 줄 요약

이 논문은 코드베이스에서 의미적으로 유사한 코드-주석 쌍을 검색하고, 어텐션과 유사도 게이팅을 갖춘 시퀀스 투 시퀀스 모델을 사용해 이를 정밀하게 보정함으로써 새로운 예시 기반 신경 주석 생성 모델을 제안한다. 이 방법은 최신 기술보다 뚜렷하게 뛰어난 성능을 보이며, 대규모 자바 데이터셋에서 BLEU 점수 43.78과 METEOR 점수 28.12를 기록한다.

ABSTRACT

Code comment generation is a crucial task in the field of automatic software development. Most previous neural comment generation systems used an encoder-decoder neural network and encoded only information from source code as input. Software reuse is common in software development. However, this feature has not been introduced to existing systems. Inspired by the traditional IR-based approaches, we propose to use the existing comments of similar source code as exemplars to guide the comment generation process. Based on an open source search engine, we first retrieve a similar code and treat its comment as an exemplar. Then we applied a seq2seq neural network to conduct an exemplar-based comment generation. We evaluate our approach on a large-scale Java corpus, and experimental results demonstrate that our model significantly outperforms the state-of-the-art methods.

연구 동기 및 목표

  • 기존 신경 주석 생성 모델이 짧거나 극단적으로 단순하거나 저품질의 주석을 생성하는 데에 한계가 있음을 해결하기 위해 소프트웨어 재사용 원리를 통합한다.
  • 의미적으로 유사한 코드의 주석을 예시로 활용해 주석 생성의 제어력과 품질을 향상시킨다.
  • 수동으로 설계된 템플릿에 의존하는 것을 줄이고, 실제 세계의 코드 주석을 동적 템플릿으로 사용한다.
  • 검색과 신경 보정을 결합한 방법을 개발하여 더 정확하고 맥락에 부합하는 주석을 생성한다.

제안 방법

  • 토큰 수준의 유사도를 기반으로 훈련 코퍼스에서 가장 유사한 코드 스니펫을 검색하기 위해 오픈소스 검색 엔진(Lucene)을 사용한다.
  • 검색된 코드의 주석을 생성 과정을 안내하는 예시로 간주한다.
  • 입력 코드, 유사한 코드, 예시 주석을 각각 인코딩하기 위해 LSTMs를 사용하는 세 개의 인코더를 갖춘 시퀀스 투 시퀀스 모델을 적용한다.
  • 입력 코드와 유사한 코드 사이의 유사도 점수 $ s $ 를 비선형 시그모이드 함수를 사용해 계산하여 어텐션을 조절한다.
  • 디코더의 게이팅된 초기 은닉 상태를 사용한다: $ extbf{h}^x(1-s) + extbf{h}^y s $, 여기서 $ extbf{h}^x $ 와 $ extbf{h}^y $ 는 각각 입력 코드와 예시 주석의 최종 은닉 상태이다.
  • 입력 코드와 예시 주석 토큰에서 유사도 점수 $ s $ 에 따라 가중치를 조정하는 어텐션 메커니즘을 적용한다.

실험 결과

연구 질문

  • RQ1의미적으로 유사한 코드를 검색하고, 그 주석을 예시로 사용함으로써 신경 주석 생성 품질을 향상시킬 수 있는가?
  • RQ2예시 기반 보정 방식은 종단간 시퀀스 투 시퀀스 모델 대비 더 길고 더 의미 있는 주석을 생성하는 데서 어떤 차이를 보이는가?
  • RQ3입력 코드와 유사한 코드 간의 유사도 점수가 생성된 주석의 품질에 얼마나 큰 영향을 미치는가?
  • RQ4예시 기반 생성 방식은 반복 토큰이나 매우 짧은 주석과 같은 열악한 출력을 줄일 수 있는가?

주요 결과

  • 제안된 모델은 자바 데이터셋에서 BLEU 점수 43.78과 METEOR 점수 28.12를 기록하여 모든 기준 모델보다 뚜렷이 뛰어난 성능을 보였다.
  • 기존 최신 기술인 HAD 대비 약 10%포인트 이상 BLEU 점수 향상을 기록했다.
  • 열악한 출력을 줄였다: HAD는 반복 토큰을 포함한 70개 이상의 예측을 생성했지만, 제안된 방법은 더 다양하고 일관성 있는 주석을 생성했다.
  • 기본적인 seq2seq 모델 대비 성능이 뚜렷이 향상되어, 예시가 주석 생성 품질 향상에 핵심 요소임을 확인했다.
  • 현재의 평가 지표(BLEU, METEOR)가 소프트웨어 개발 현장에서의 실제 유용성을 완전히 반영하지 못할 수 있으므로, 향후 연구에서 인간 평가를 권장한다.

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

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

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

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