Skip to main content
QUICK REVIEW

[논문 리뷰] Fine-grained Pseudo-code Generation Method via Code Feature Extraction and Transformer

Guang Yang, Yanlin Zhou|arXiv (Cornell University)|2021. 02. 12.
Software Engineering Research인용 수 5
한 줄 요약

이 논문은 소스 코드에서 세밀한 의사코드를 생성하기 위해 CNN를 통한 코드 특징 추출과 시퀀스 투 시퀀스 학습을 융합한 Transformer 기반의 DeepPseudo를 제안한다. 국소적 코드 특징과 전역적 맥락 표현을 융합하고, 적대적 훈련을 통합함으로써 DeepPseudo는 디자인 및 SPoC 데이터셋에서 최신 기술 수준의 성능을 달성하여 네 가지 평가 지표에서 일곱 개의 베이스라인을 초월한다.

ABSTRACT

Pseudo-code written by natural language is helpful for novice developers' program comprehension. However, writing such pseudo-code is time-consuming and laborious. Motivated by the research advancements of sequence-to-sequence learning and code semantic learning, we propose a novel deep pseudo-code generation method DeepPseudo via code feature extraction and Transformer. In particular, DeepPseudo utilizes a Transformer encoder to perform encoding for source code and then use a code feature extractor to learn the knowledge of local features. Finally, it uses a pseudo-code generator to perform decoding, which can generate the corresponding pseudo-code. We choose two corpora (i.e., Django and SPoC) from real-world large-scale projects as our empirical subjects. We first compare DeepPseudo with seven state-of-the-art baselines from pseudo-code generation and neural machine translation domains in terms of four performance measures. Results show the competitiveness of DeepPseudo. Moreover, we also analyze the rationality of the component settings in DeepPseudo.

연구 동기 및 목표

  • 초보 개발자를 위한 수작업 의사코드 작성의 시간 소모 문제를 해결하기 위해.
  • 소스 코드의 인간이 읽을 수 있는 자연어 기반 설명을 자동으로 생성하여 프로그램 이해도를 향상시키기 위해.
  • 국소적 코드 특징과 전역적 맥락 표현의 융합을 통해 의사코드 생성을 향상시키기 위해.
  • 실제 코드 컬렉션을 활용하여 제안된 모델의 효과성과 강인성을 검증하기 위해.
  • 재현 가능성과 향후 연구를 지원하기 위해 코드, 모델, 데이터셋을 오픈소스로 제공하기 위해.

제안 방법

  • Transformer 인코더가 소스 코드를 처리하여 전역적 맥락 표현을 학습한다.
  • CNN 기반 코드 특징 추출기가 코드의 국소적 구문적 및 구조적 특징을 캡처한다.
  • Transformer와 CNN의 인코딩 표현을 연결하여 디코더에 입력하여 의사코드를 생성한다.
  • 디코더는 빔 서치를 사용하여 고품질의 자연어 의사코드 시퀀스를 생성한다.
  • PGD를 통한 적대적 훈련을 임베딩 레이어에 적용하여 모델의 강인성 향상과 과적합 감소를 도모한다.
  • 노멀라이제이션 어텐션을 포함한 여러 어텐션 메커니즘을 평가하여 디코딩 성능 최적화를 시도한다.

실험 결과

연구 질문

  • RQ1표준 Transformer 모델에 비해 코드 특징 추출을 통합함으로써 의사코드 생성 성능이 향상되는가?
  • RQ2어떤 어텐션 메커니즘(예: 노멀라이제이션 어텐션)의 선택이 모델 성능에 영향을 미치는가?
  • RQ3모델 깊이(N), 모델 너비(d_model), 커널 크기(K)와 같은 하이퍼파라미터의 최적 설정은 무엇인가?
  • RQ4적대적 훈련은 모델의 강인성과 일반화 능력에 어떤 영향을 미치는가?

주요 결과

  • DeepPseudo는 디자인 및 SPoC 데이터셋에서 네 가지 평가 지표(BLEU, ROUGE-L, CIDER, METEOR)에서 일곱 개의 최신 기술 수준 베이스라인을 초월한다.
  • 디자인 데이터셋에서 DeepPseudo는 BLEU 점수 50.817, ROUGE-L 39.201, CIDER 77.773, METEOR 5.813을 기록했다.
  • SPoC 데이터셋에서 DeepPseudo는 BLEU 점수 46.454, ROUGE-L 40.809, CIDER 63.430, METEOR 4.113을 기록했다.
  • 제거 실험을 통해 코드 특징 추출기가 성능 향상에 크게 기여하며, 특히 노멀라이제이션 어텐션과 조합했을 때 가장 높은 성능 향상을 보였다.
  • 최적의 하이퍼파라미터는 N=3, d_model=256, kernel_size=5로, 이보다 큰 값은 훈련의 불안정성과 성능 저하를 유발했다.
  • 적대적 훈련은 모델의 강인성 향상과 과적합 감소에 기여하였으며, 특히 자원이 제한된 환경에서 두드러진 효과를 보였다.

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

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

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

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