Skip to main content
QUICK REVIEW

[논문 리뷰] Generative Code Modeling with Graphs

Marc Brockschmidt, Miltiadis Allamanis|arXiv (Cornell University)|2018. 05. 22.
Software Engineering Research참고 문헌 27인용 수 76
한 줄 요약

그래프 기반 생성 모델로 코드의 문법 주도 확장을 그래프 증강 및 신경 메시지 전달과 결합시켜 의미상 의미 있는 표현을 생성, 강력한 베이스라인을 능가합니다.

ABSTRACT

Generative models for source code are an interesting structured prediction problem, requiring to reason about both hard syntactic and semantic constraints as well as about natural, likely programs. We present a novel model for this problem that uses a graph to represent the intermediate state of the generated output. The generative procedure interleaves grammar-driven expansion steps with graph augmentation and neural message passing steps. An experimental evaluation shows that our new model can generate semantically meaningful expressions, outperforming a range of strong baselines.

연구 동기 및 목표

  • 구문 구조와 의미 제약을 모두 존중하는 생성적 코드 모델을 제시한다.
  • 속성 유사 관계를 가진 AST를 보강하고 신경 메시지 전달을 사용하는 그래프 기반 디코더를 제안한다.
  • ExprGen을 도입, 코드 맥락에 조건화된 의미적으로 복잡한 표현을 생성하는 CodeGen 작업이다.
  • 제안된 그래프 기반 접근 방식을 대형 ExprGen 데이터셋에서 강력한 기준선들과 비교 평가한다.

제안 방법

  • 코드 맥-context를 기존 인코더로 인코딩하여 맥락 및 변수별 표현을 얻는다.
  • 속성 간선(상속/합성) 및 관계 간선을 추가하여 보강된 구문 그래프를 구성한다.
  • 속성을 신경 노드로 표현하고 간선 유형별 변환을 갖는 그래프 신경망으로 h_v를 계산한다.
  • 학습된 분류기와 포인터 메커니즘을 사용하여 생산 규칙, 변수, 리터럴을 디코딩한다.
  • 최대우도에 따라 엔드투엔드로 학습하되, 필요 시 간선 메시지에 레이블이 지정된 간선 유형과 주의집중을 보강한다.
  • 정보 흐름을 개선하기 위해 주의집중 및 레이블이 지정된 간선으로 메시지 전달을 선택적으로 확장한다.

실험 결과

연구 질문

  • RQ1그래프 보강 그래마-드리븐 디코더가 맥락에 조건화된 의미적으로 유효한 코드 표현을 생성할 수 있는가?
  • RQ2속성 문법과 뉴럴 메시지 전달의 통합이 의미적 정확도(타입 일치) 및 ground-truth에 대한 정확도와 비교하여 개선되는가?
  • RQ3ExprGen 작업에서 그래프 기반 접근법이 트리 기반 및 시퀀스 기반 디코더에 비해 어떤 차이가 있으며, 특히 교차 프로젝트 이전에서의 성능은 어떤가?
  • RQ4레이블링된 간선과 향상된 생산 조건화가 생성 품질에 어떤 영향을 주는가?

주요 결과

모델테스트(Seen 프로젝트에서) perplexity테스트(Seen 프로젝트에서) well-typed테스트(Seen 프로젝트에서) Acc@1테스트(Seen 프로젝트에서) Acc@5테스트 전용(Seen 프로젝트가 아닌) perplexity테스트 전용(Seen 프로젝트가 아닌) well-typed테스트 전용(Seen 프로젝트가 아닌) Acc@1테스트 전용(Seen 프로젝트가 아닌) Acc@5
PHOG †34.8%42.9%28.0%37.3%
Seq→Seq87.4832.4%21.8%28.1%130.4623.4%10.8%16.8%
Seq→NAG6.8153.2%17.7%33.7%8.3840.4%8.4%15.8%
G→Seq93.3140.9%27.1%34.8%28.4836.3%17.2%25.6%
G→Tree4.3749.3%26.8%48.9%5.3741.2%19.9%36.8%
G→ASN2.6278.7%45.7%62.0%3.0374.7%32.4%48.1%
G→Syn2.7184.9%50.5%66.8%3.4884.5%36.0%52.7%
G→NAG2.5686.4%52.3%69.2%3.0784.5%38.8%57.0%
  • 그래프 보강 모델(NAG)은 일반적으로 베이스라인보다 의미적 지표에서 더 좋은 성능과 전달력의 강건성을 보인다.
  • 본 보이는 데이터에 대해 NAG가 다른 그래프 변형들보다 더 높은 잘 타이핑된(well-typed) 및 Acc@5 점수를 달성한다.
  • 보이지 않는 프로젝트 테스트 데이터에서 NAG는 여전히 경쟁력이 있으며, 종종 그래프가 아닌 베이스라인 대비 의미적 정확도에서 우위를 보인다.
  • PHOG 베이스라인은 좌측 맥락에만 조건화될 때 그래프 기반 디코더보다 의미 지표가 낮다.
  • 전반적으로 NAG는 perplexity, well-typedness, ground-truth 표현의 회수에서 가장 강한 성능을 보인다.
  • 결과는 속성 그래프를 통한 더 풍부한 정보 흐름이 생성 품질과 이전 가능성을 향상시킨다는 것을 시사한다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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