본문 바로가기
IT 와 Social 이야기/NLP 자연어처리

[edwith] 딥러닝을 이용한 자연어 처리 : Encoder & Decoder - 조경현교수

by manga0713 2021. 3. 19.

 

 

[LECTURE] Encoder & Decoder : edwith

학습목표 기계번역의 모델구조와 과정을 살펴봅니다.  핵심키워드 기계번역(Machine Translation) 소스 언어(Source Language) 타겟 언어(Target Lan... - 커넥트재단

www.edwith.org

 

학습내용

 

  • 소스 언어와 타겟 언어의 유니크한 단어장을 구축합니다.
    • 토크나이즈(tokenize): 단어 및 쉼표, 마침표 등을 분리하고, 부호를 표준화(통일) 시킵니다.
    • 하위 단어의 세분화(subword segmentation): BPE 인코딩을 통해 하위 단어의 세분화를 진행합니다.
    • 모든 하위 단어를 통합하여 빈도수 내림차순으로 정렬한 뒤 인덱스를 부여합니다.

 

  • 인코더(Encoder):
    • 소스 문장의 토큰들을 문장을 표현하는 벡터들의 집합으로 인코딩합니다. 
    • 벡터의 집합을 크기가 고정된 하나의 벡터로 만들 필요는 없습니다.
    • 이유는 아래와 같습니다.
      • 하나의 벡터로 합치게 되면 정보 손실이 생깁니다.
      • 문장의 길이가 길어질수록 훈련하기도 힘들고 모델의 크기를 키워야하기 때문입니다.

 

  • 디코더(Decoder):
    • 자기회귀 언어 모델링(Autoregressive Language Modeling)을 활용하고 문맥(Context)를 무한대로 보게 됩니다. 
      • Recurrent Networks, Self-attention, (dilated) Convolutional network 등을 사용하게 됩니다.
    • 문장의 의미 뿐만 아니라 문법적인 구조도 함께 봐야하기 때문에 인과관계 구조(Causal structure)를 따라야 합니다.
    • 조건부 언어 모델링(Conditional language modeling)
      • 이전에 출력된 단어와 인코딩된 소스 문장, 두 가지를 동시에 보고 다음에 어떤 단어나 나올지 결정하게 됩니다.

 

- 출처: [edwith] 딥러닝을 이용한 자연어 처리 : Encoder & Decoder - 조경현교수