카테고리 없음

Neural Machine Translation

seowon98 2020. 9. 2. 15:26
  • 신경망 기반 기계번역(Neural Machine Translation):
    • Input: 소스 언어(Source Language), 번역의 원천이 되는 언어 -> Output: 타겟 언어(Target Language), 번역을 하고자 하는 언어
  • 문제정의:
    • Input 문장이 주어졌을 때, 번역된 문장을 출력하기 때문에 지도학습입니다.
    • Input 문장이 주어졌을때 번역될 문장의 조건부 확률분포를 계산하게 됩니다.
    •  p(Y=(y1,,yT)X=(x1,,xT))

규칙기반 RBMT

형태소, 구문, 각각 나눈거를 영어 형태로 

rule-based) word->syntatic->semantic->interlingua

 

statistical MT) Neural Machine Translation, IBM 

 

통계 기반 SMT

소스 언어와 타겟 언어의 유니크한 단어장을 구축합니다. -> 2개의 vocabularies of unique token, one-hot-vector 형태


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


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


디코더(Decoder):
자기회귀 언어 모델링(Autoregressive Language Modeling)을 활용하고 문맥(Context)를 무한대로 보게 됩니다. 
     Recurrent Networks, Self-attention, (dilated) Convolutional network 등을 사용하게 됩니다.


문장의 의미 뿐만 아니라 문법적인 구조도 함께 봐야하기 때문에 인과관계 구조(Causal structure)를 따라야 합니다.

 

Source sentence representation (번역할 문장-원본) & Target sentence representation(지금까지 번역한 문장)


조건부 언어 모델링(Conditional language modeling)
    이전에 출력된 단어와 인코딩된 소스 문장, 두 가지를 동시에 보고 다음에 어떤 단어나 나올지 결정하게 됩니다.

 


https://www.edwith.org/deepnlp/lecture/29222/

 

[LECTURE] RNN Neural Machine Translation : edwith

학습목표 RNN을 활용한 기계번역의 과정을 공부합니다.  핵심키워드 기계번역(Machine Translation) 소스 언어(Source Language) 타겟 언어(Target ... - 커넥트재단

www.edwith.org

RNN Neural Machine Translation

 

구조 )
소스 문장의 표현(Source sentence representation) - 양방향 RNN(bidirectional RNN) 을 활용 -> -> <- <- :context depending 어떤 문장 안에서 어떻게 쓰이는지 고려!
타겟 토큰의 표현 - 단일 방향 RNN(unidirectional RNN), 지금까지 번역한 문장에 대한 represenatation vector

 

이 2개를 합치는 방법: Attention mechanism
Attention mechanism: 다음 토큰을 예측하기 전에 소스 문장에서 어느 토큰 제일 연관성이 높은가를 살펴보게 됩니다.  어떤 토큰이 다음 것을 예측할 때 활용될 수 있을까? 관련? weight func value 높으면 관련, 다음 토큰 결정 시 중요함. <EOS>토큰이 나올 때까지 반복

 

Attention mechanism

연관성을 나타내는 벡터와 인코딩된 소스 문장 벡터와 결합하여 소스 문맥 벡터(Context vector)를 도출합니다. 
다음 타겟 토큰의 예측을 위해 소스 문맥 벡터와 이전 타겟 토큰의 벡터를 함께 사용합니다.


Attention mechanism 설명
소스 토큰과 연관성이 높은 타겟 토큰을 시각화 한 그림입니다. 선의 굵기가 선명할 수록 높은 연관성이 높다고 할 수 있습니다. 예로 들면, 영어-불어 번역에서 "Economic" 과 "economique"에 굵은 선이 연결된 것을 볼 수 있습니다. 기계가 "economique" 이라는 토큰을 예측 할때, 소스 문장에서 "Economic" 토큰에 큰 가중치가 붙부여 했다는 점을 시사합니다.

 

1. 문단 represeantation

2. 문제 representation

3. 문단, 문제 비교 ->답이 되는 후보 set

4. softmax로 각 점수 변환

5. train