Skip to main content
QUICK REVIEW

[논문 리뷰] Deep API Learning

Xiaodong Gu, Hongyu Zhang|arXiv (Cornell University)|2016. 05. 27.
Software Engineering Research참고 문헌 42인용 수 35
한 줄 요약

DeepAPI는 자연어 쿼리에서 정확한 API 사용 시퀀스를 생성하기 위해 RNN 인코더-디코더 모델을 사용하는 딥러닝 접근법을 제안한다. 키워드 매칭을 넘어서 의미적 의미를 포착함으로써, 기존의 키워드 기반 방법에 비해 향상된 성능을 보인다. 700만 개의 GitHub 코드 스니펫에서 평가한 결과, 의미적 맥락을 고려하여 쿼리와 API 시퀀스를 모두 모델링함으로써 기존의 정보 검색 기반 방법보다 시퀀스 정확도에서 뛰어난 성능을 보였다.

ABSTRACT

Developers often wonder how to implement a certain functionality (e.g., how to parse XML files) using APIs. Obtaining an API usage sequence based on an API-related natural language query is very helpful in this regard. Given a query, existing approaches utilize information retrieval models to search for matching API sequences. These approaches treat queries and APIs as bag-of-words (i.e., keyword matching or word-to-word alignment) and lack a deep understanding of the semantics of the query. We propose DeepAPI, a deep learning based approach to generate API usage sequences for a given natural language query. Instead of a bags-of-words assumption, it learns the sequence of words in a query and the sequence of associated APIs. DeepAPI adapts a neural language model named RNN Encoder-Decoder. It encodes a word sequence (user query) into a fixed-length context vector, and generates an API sequence based on the context vector. We also augment the RNN Encoder-Decoder by considering the importance of individual APIs. We empirically evaluate our approach with more than 7 million annotated code snippets collected from GitHub. The results show that our approach generates largely accurate API sequences and outperforms the related approaches.

연구 동기 및 목표

  • 기존의 API 추천 시스템이 백오프-오브-워즈 모델에 의존하고 사용자 쿼리의 의미적 이해가 부족한 점을 해결하기 위해.
  • 자연어 쿼리와 해당 API 호출의 순차적 구조를 모델링하여 의미적으로 정확한 API 사용 시퀀스를 생성하기 위해.
  • 딥러닝을 통해 실생활 프로그래밍 환경에서 API 추천의 정밀도와 관련성을 향상시키기 위해.
  • 생성 과정에서 개별 API의 중요도를 반영하여 시퀀스 품질을 향상시키기 위해.

제안 방법

  • 자연어 쿼리를 고정 길이의 컨텍스트 벡터로 매핑하기 위해 RNN 기반의 인코더-디코더 아키텍처를 적응시킨다.
  • 반복적 인코더 네트워크를 사용하여 입력 쿼리를 단어 시퀀스로 인코딩하여 컨텍스트 벡터를 생성한다.
  • 인코딩된 표현에 대한 어텐션을 사용하여 컨텍스트 벡터에서 단계적으로 API 시퀀스를 생성하는 디코더 RNN을 사용한다.
  • 시퀀스 생성 과정에서 개별 API의 중요도를 가중치로 고려하는 메커니즘을 RNN 모델에 통합한다.
  • GitHub에서의 700만 개의 주석이 달린 코드 스니펫을 기반으로 엔드 투 엔드로 모델을 훈련시켜 쿼리에서 API로의 매핑을 학습한다.
  • 어텐션을 사용한 시퀀스-투-시퀀스 학습을 통해 쿼리 의미와 API 시퀀스 간의 정렬을 향상시킨다.

실험 결과

연구 질문

  • RQ1딥러닝 모델이 키워드 매칭 기반의 정보 검색 기반 모델보다 더 정확한 API 사용 시퀀스를 생성할 수 있는가?
  • RQ2쿼리와 API의 순차적 구조를 모델링함으로써 추천 품질은 얼마나 향상되는가?
  • RQ3생성 과정에서 API 중요도를 통합할 경우 추천 시퀀스의 관련성은 어느 정도 향상되는가?
  • RQ4모델은 다양한 프로그래밍 작업과 API 도메인에 대해 얼마나 잘 일반화되는가?

주요 결과

  • DeepAPI는 기존의 정보 검색 기반 접근법에 비해 정확한 API 사용 시퀀스 생성에서 뚜렷한 성능 향상을 보였다.
  • 키워드 매칭을 넘어서 의미적 의미를 포착함으로써, 정확도와 재현율이 높은 정확한 API 시퀀스를 추천하는 데 성공했다.
  • 생성 과정에서 API 중요도를 통합함으로써 추천 시퀀스의 품질과 관련성이 향상되었다.
  • 어 attention을 갖춘 RNN 인코더-디코더 프레임워크는 자연어 쿼리에서 API 코드로의 효과적인 시퀀스-투-시퀀스 매핑을 가능하게 했다.
  • 700만 개의 GitHub 코드 스니펫을 대상으로 한 실증적 평가를 통해 모델의 강건성과 확장성은 확인되었다.

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

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

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

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