Skip to main content
QUICK REVIEW

[논문 리뷰] CoCoSum: Contextual Code Summarization with Multi-Relational Graph Neural Network

Yanlin Wang, Ensheng Shi|arXiv (Cornell University)|2021. 07. 05.
Software Engineering Research참고 문헌 64인용 수 9
한 줄 요약

CoCoSUM은 다중관계 그래프 신경망(MRGNN)을 사용하여 반복 클래스 및 상호 클래스 전역적 맥락을 통합함으로써 코드 요약 성능을 햖थन하는 문맥 기반 코드 요약 모델을 제안한다. 클래스 이름을 활용해 의미적 임베딩을 생성하고, UML 클래스 다이어그램을 활용해 관계 임베딩을 생성하며, 시퀀스-투-시퀀스 아키텍처 내에서 이중 수준의 어텐션 메커니즘을 통해 최신 기술보다 뛰어난 성능을 보인다.

ABSTRACT

Source code summaries are short natural language descriptions of code snippets that help developers better understand and maintain source code. There has been a surge of work on automatic code summarization to reduce the burden of writing summaries manually. However, most contemporary approaches mainly leverage the information within the boundary of the method being summarized (i.e., local context), and ignore the broader context that could assist with code summarization. This paper explores two global contexts, namely intra-class and inter-class contexts, and proposes the model CoCoSUM: Contextual Code Summarization with Multi-Relational Graph Neural Networks. CoCoSUM first incorporates class names as the intra-class context to generate the class semantic embeddings. Then, relevant Unified Modeling Language (UML) class diagrams are extracted as inter-class context and are encoded into the class relational embeddings using a novel Multi-Relational Graph Neural Network (MRGNN). Class semantic embeddings and class relational embeddings, together with the outputs from code token encoder and AST encoder, are passed to a decoder armed with a two-level attention mechanism to generate high-quality, context-aware code summaries. We conduct extensive experiments to evaluate our approach and compare it with other automatic code summarization models. The experimental results show that CoCoSUM is effective and outperforms state-of-the-art methods. Our source code and experimental data are available in the supplementary materials and will be made publicly available.

연구 동기 및 목표

  • 기존 코드 요약 모델이 국소적 코드 맥락에만 의존하여 더 넓은 구조적 및 의미적 관계를 忽略하는 한계를 해결하기 위해.
  • 반복 클래스 맥락(클래스 이름 의미)과 상호 클래스 맥락(유형 다이어그램에서 유도된 클래스 간 의존성)이 코드 요약 품질에 미치는 영향을 탐색하기 위해.
  • 신경 시퀀스-투-시퀀스 프레임워크에 전역적 맥락을 효과적으로 인코딩하고 융합할 수 있는 모델을 설계하기 위해.
  • 구조적 및 의미적 전역적 맥락을 통합할 경우 더 정확하고 맥락에 부합하는 코드 요약이 생성됨을 입증하기 위해.

제안 방법

  • 모델은 클래스 이름에서 반복 클래스 맥락을 캡처하기 위해 트랜스포머 기반 인코더를 사용하여 의미적 임베딩을 생성한다.
  • UML 클래스 다이어그램을 상호 클래스 맥락으로 추출하고, 새로운 다중관계 그래프 신경망(MRGNN)을 사용하여 클래스 간 관계 임베딩을 학습한다.
  • 코드 스니펫은 코드 토큰 인코더와 추상 구문 트리(ASP) 인코더를 통해 구문적 및 구조적 특징을 캡처한다.
  • 이중 수준의 어텐션 메커니즘이 디코딩 중에 코드 표현, 클래스 의미 임베딩, 클래스 관계 임베딩을 통합한다.
  • 디코더는 국소적 코드 특징과 전역적 맥락 표현에 주의를 기울이며 자연어 요약을 생성한다.
  • 모델은 요약 작업을 위해 교차 엔트로피 손실을 사용하는 시퀀스-투-시퀀스 아키텍처를 통해 엔드 투 엔드로 훈련된다.

실험 결과

연구 질문

  • RQ1반복 클래스 맥락(클래스 이름 의미)을 통합하면 코드 요약 품질이 향상되는가?
  • RQ2UML 클래스 다이어그램에서 파생된 상호 클래스 맥락은 정확하고 의미적으로 풍부한 요약 생성 능력을 향상시키는가?
  • RQ3코드 표현에 다중관계 그래프 학습(MRGNN)을 통합하면 요약 성능에 어떤 영향을 미치는가?
  • RQ4제안된 이중 수준 어텐션 메커니즘은 국소적 및 전역적 맥락을 효과적으로 활용하여 더 나은 요약 생성에 기여하는가?

주요 결과

  • CoCoSUM은 벤치마크 데이터셋에서 최신 기술보다 뚜렷이 뛰어난 성능을 보이며, 전역적 맥락 통합의 효과를 입증한다.
  • 클래스 이름 임베딩(반복 클래스 맥락)의 포함은 특히 클래스 이름과 의미가 연결된 메서드에 대해 더 의미적으로 정확한 요약을 생성하도록 한다.
  • UML 클래스 다이어그램을 상호 클래스 맥락으로 사용할 경우, 특히 복잡한 객체 지향 설계에서 다른 클래스와의 관계 속에서 메서드 동작을 더 잘 포착할 수 있다.
  • MRGNN 기반의 관계 인코딩은 복잡한 클래스 간 의존성을 효과적으로 포착하며, 다양한 코드베이스 간 일반화 능력을 향상시킨다.
  • 이중 수준 어텐션 메커니즘이 국소적 코드 특징과 전역적 맥락을 성공적으로 균형 잡아, 더 일관되고 맥락에 민감한 요약을 생성한다.

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

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

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

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