자연어처리/개념 정리

Neural Machine Translation 간단 정리

아인슈페너먹고싶다 2022. 9. 22. 17:11

 

강의 내용을 너무 띄엄 띄엄 해서 

 

(요즘 너무 다른 일 때문에 바쁘다 ㅠㅠ)

 

정리를 다 하고 봐도 명확하지 않은 부분이 많다.

 

누군가에게 정보를 전달하는 목적도 있지만 내가 배운 내용을 정리하는 목적도 있기에

 

명확하지 않아도 정리하면서 복습한 것에 의의를 두고 시작!

 

 


 

Machine translation 은 'task of translationg a sentence in a source language to a different target language'로 

 

정의 할 수 있겠다. (이 분야는 영어로 말하는게 더 쉬운 경우가 많은 것 같다.. 어려운 문장이 아닐 땐 더더욱)

 

 

 

기존의 번역 모델 중 제일 사용도가 높았던 것은 통계기반 SMT(Statistical Machine Translation)  모델이다.

 

확률이 가장 높은 값으로 번역을 진행하였다.

 

하지만 거대한 말뭉치가 필요로 한다는 점과 처리하는데 복잡하다는 점

 

그리고 모델을 유지하는데에 많은 인간의 노력이 필요하다는 점 등 많은 단점이 있었다.

 

 

 

그래서 2015년 seq2seq와 RNN을 기반으로 NMT모델이 새로 생겨나게 된 이후로

 

기계 번역 분야에 있어 NMT 모델이 주류로 각광받기 시작했다.

 

 

 

Supervised NMT는 parallel corpus가 필요하다. 

 

하지만 parallel corpus는 구하기 매우 어려워서 

 

구하기 쉬운 monolingual corpus를 활용해보고자 만든 방법이

 

Unsupervised Neural Machine Translation이다.

 

두 가지 논문에서 제시되었는데

 

공통점은 DenoisingBacktranslation이다.

 

 

 

먼저 각 언어의 인코더를 학습시킨다.

 

input에다가 noise를 추가하고 noise를 제거하고 원래상태를 복구시킨다

 

이 task를 Denoising이라고 한다.

 

 

 

또, 문장을 번역 후 다시 역 번역을 해 기존 문장과 일치하는지 확인하는 학습 과정을

 

Backtranslation이라고 한다.

 

 

 

하지만 아쉬운 점도 여러개 존재하는데 

 

먼저 domain mismatch 문제가 있다.

 

내 dataset이 보고있는 영역을 in-domain 나머지를 out-domain 이라 할 때 

 

데이터 특성에 따라 domain이 다른 경우 그 성능 격차가 커서 커버하기 어렵다.

 

이 문제를 domain mismatch라고 한다.

 

 

또한 Early encoder-decoder NMT의 sequence length가 길어지는 경우

 

모델의 성능이 안좋아지는 문제와

 

Rare words에 대해 낮은 성능을 보이는 문제가 존재한다.

 

그리고 Alignment가 기대보다 잘 맞지 않는 문제, BEAM search가 너무 느리다는 문제도 있다.

 

 


 

 

모델의 성능을 평가하는 방법으로 이전에 BLEU(Bilingual Evaluation Understudy)에 대해 잠깐 언급했었는데

 

 

조금 더 자세히 보자면 앞쪽은 Brevity penalty로 문장 길이에 따른 과적합 경우를 방지해준다.

 

괄호 안에 위치한 1과 , 뒤에 값 중 작은 값을 반환하는 것이다.

 

 

그리고 뒤의  precision은 예측 중 맞춘 확률로

 

number of correct / length of prediction 이다.

 

 

N-grams를 통해 1~4의 precision을 구해준 후 곱해준다음 4제곱근을 취해준다.

 

 

BLEU 또한 문장의 길이가 길어질 수록 점수가 낮아지는 문제가 발생하여 

 

더 나은 평가 방법으로 조금씩 변화하고 있다.

 

 


이게바로 중구난방...?