표제지
목차
국문초록 10
1. 서론 11
2. 관련 연구 14
2.1. 템플릿 기반 코드 주석 생성 14
2.2. 검색 기반 코드 주석 생성 15
2.3. 학습 기반 코드 주석 생성 15
3. 입력 형식과 신경망 모델 17
3.1. 소스 코드 정보 18
3.1.1. 코드 시퀀스 18
3.1.2. Code-Aligned Type sequence (CAT) 18
3.1.3. 미등록 어휘 문제 20
3.2. ALSI-Transformer 20
3.2.1. CNN 계층 20
3.2.2. 임베딩 결합 계층 21
3.2.3. 인코더와 디코더 22
4. 실험 23
4.1. 실험 설정 23
4.1.1. 코드 데이터셋 23
4.1.2. 성능 지표 24
4.1.3. 훈련 세부 정보 24
4.2. 실험 결과 26
4.2.1. 코드 주석 생성 26
4.2.2. 훈련 효율성 30
4.2.3. 멀티 모달 임베딩의 결합 방법 31
4.2.4. 인코더 설계 33
4.2.5. 길이가 다른 소스 코드 및 주석에 대한 성능 33
5. 유효성에 대한 위협 36
5.1. 내부 위협 36
5.2. 외부 위협 36
5.3. 구성 위협 37
6. 결론 및 향후 연구 38
참고문헌 40
ABSTRACT 46
Table 4.1. 코드, CAT, 주석 길이 통계 정보 23
Table 4.2. Hidden state 크기에 따른 성능 비교 결과 25
Table 4.3. 입력 길이에 따른 성능 비교 결과 25
Table 4.4. Dropout 설정에 따른 성능 비교 결과 26
Table 4.5. ALSI-Transformer와 6개 베이스라인 모델의 성능 비교 결과 27
Table 4.6. ALSI-Transformer와 베이스라인 모델의 코드 주석 예시 28
Table 4.7. ALSI-Transformer와 SeTransformer의 모델 파라미터 수, 훈련 시간, 모델 크기 비교 결과 31
Table 4.8. ALSI-Transformer (Gate Network)와 5가지 결합 방법의 성능 비교 결과 32
Table 4.9. ALSI-Transformer와 ALSI-Transformer (two-encoder)의 성능 비교 결과 33
Figure 3.1. ALSI-Transformer의 모델 구조 17
Figure 3.2. 코드 시퀀스, SBT, CAT의 예시 19
Figure 4.1. 5가지 결합 방법의 예시. Alternation과 Separation 방법은 코드 시퀀 스와 CAT를 활용한다. Addition, Avgerage, Concatenation 방법의 경우, CNN... 32
Figure 4.2. 코드와 주석 길이별 ALSI-Transformer, Deepcom, Hybrid-Deepcom, Se-Transformer의 성능 35