본문 바로가기

LangChain&LangGraph

neural machine translation by jointly learning to align and translate

 

https://programmerk.tistory.com/100

 

seq2seq (Sequence to Sequence Learning with Neural Networks)

https://programmerk.tistory.com/98 LSTM ( long short term memory )https://programmerk.tistory.com/97 RNNRNN : RNN의 은닉층에 과거 정보를 압축해 저장하는 역할을 하고, 이 정보가 다음 시간 단계로 다시 입력되어 순환되

programmerk.tistory.com

 

정의 :

신경망 기계 번역의 인코더 디코더 구조에서 고정된 컨텍스트를 만드는 과정에서의 병목 현상 해결위해 정렬과 번역을 동시에 학습하는 attention machanism 적용하여 성능 향상 기법

 

정렬 :

번역할 때 "어떤 입력 단어가 지금 번역 중인 단어와 연결되었는가?”를 찾는 작업

 

병목 현상 : 

훈련 데이터보다 긴 문장을 다룰 때 신경망이 이를 제대로 처리하기 어렵습니다. 즉, 엄청나게 많은 단어로 이루어진 문장을 고정된 context vector에 충분히 표현하기 어렵다는 의미이다.

또한 실제 실험에서 RNNsearch는 30단어까지 학습한 모델이 50단어까지 학습한 RNNencoder보다도 뛰어난 성능을 보였습니다.

(RNNsearch -attention 적용 모델 , RNNencoder -기존 모델 )

 

해결방안 : 

모델이 고정된 벡터 하나에 의존하지 않고, 번역 단어마다 입력 문장의 중요한 여러 부분을 동적으로 참고할 수 있도록 만든 것입니다

어떻게 ?

인코더에서 출력된 각 단어의 어노테이션 벡터(hidden state)들을 디코더가 효과적으로 활용

 

인코더 :

양방향 RNN은 문장을 정방향과 역방향 두 방향으로 처리해, 각 단어에 대해 문맥을 더 풍부하게 반영한 임베딩 벡터를 생성합니다.( BiRNN )

 

 

디코더 : 

제시하는 모델 방정식

는 이전 step의 output, 

는 이전 step의 hidden state, 

는 이전 hidden_state와 인코더에서 얻은 결과 사이에에서 alignment 점수를 계산하고 이를 softmax하여 가중치를 얻는다

 

이를 통해 이 벡터는 디코더가 현재 번역할 단어와 가장 관련 깊은 입력 단어들의 정보를 동적으로 반영하여, 매 시점마다 다른 입력의 부분에 집중할 수 있게 해줍니다.


 

이를 통해 디코더에서 생성시 인코더에서 생성한 어노테이션과 이전 문장을 참고하여 더 중요한 부분을 참고할수 있고, 고정된 컨텍스트 벡터 문제를 해결가능했다.