본문 바로가기

AI/자연어처리(NLP)

XLM, 다언어 임베딩 및 비지도학습 기반 번역

XLM(Cross-lingual Language Model Pre-training)

code : https://github.com/facebookresearch/XLM

paper: https://arxiv.org/abs/1901.07291

정리 : https://yhdosu.tistory.com/entry/Cross-lingual-Language-Model-Pre-training

        https://yhdosu.github.io/2018/11/05/XLM.html

 

TransCoder는 XLM을 기반으로 한다. 저자인 Facebook AI Research의 Guillaume Lample는 비지도학습 기반 번역 기술의 대가이다. 다 언어간 Cross-linguality를 높이기 위해 XLM 모델을 개발하기도 했다.

트랜스포머 이후에 많은 LM기반 Pre-Training모델들이 나왔지만, 대부분 하나의 언어(특히 영어)에 포커스되었다. 그래서 최근 이러한 영어 중심으로 바이어스 된 문제를 완화하고자 여러 연구가 진행되고 있다. Multi-lingual BERT도 그중 하나이다. 방안으로 여러 언어가 하나의 임베딩 공간을 공유하고 어떤 언어로 쓰인 문장도 해당 임베딩 공간으로 인코딩 되도록 하는 유니버셜 인코더를 만들고자 하였다.

 

1. Language model pretraining

1.1. Causal Language Model (CLM)

CLM은 단일언어에 비지도학습으로 학습시칸 언어모델 방식이다. 우리나라 말로 인과관계 언어모델 학습이다.

수식은 위와 같다. 인코더-디코더 모델의 디코더 구조이다. 다음단어를 예측하기 위해 지금까지 예측했던 단어들(w1, ..wt-1)과 context vector나 이전 LSTM cell의 hidden state를 사용하는 방식이다. 소슬쓰는 AI로 유명한 GPT가 이 형태이다.

 

1.2. Masked Language Model (MLM)

MLM은 단일언어에 비지도학습으로 학습시킨 언어모델 방식으로 CLM과 약간의 차이가 있다. 단일언어를 대상으로 입력 문장 토큰의 15%를 마스킹 하고, 마스킹된 토큰을 맞추도록 학습한다. 많은 언어모델에서 기본으로 사용된다.

MLM 방식의 XLM 예시

 

1.2. Translation Language Model (TLM)

TLM 방식의 XLM 예시

TLM은 CLM, MLM과 달리 지도학습 방법이다. 병렬 데이터셋이 있을 때 소스 문장과 타깃 문장을 한 입력 데이터에 합쳐서 구성한다. 각 언어에 대한 언어 임베딩을 사용하고 언어의 시작과 끝을 나타내기 위해 Position embeddings에 언어별 순서를 0부터 n까지 입력에 추가한다. 그리고 전체 문장에 Mask를 씌워서 학습한다. 이렇게 학습할 시 병렬 데이터 간 상호 보완적으로 언어모델을 학습해서 Cross-linguality를 증가시킬 수 있다. 이 학습기법이 XLM의 핵심이다.

 

2. 결과비교

이 연구에서는 3가지 방법(CLM, MLM, MLM+TLM)으로 Pretraining을 진행하여 결과를 비교하였다.

 

2.1. XNLI

XLM의 XLNI 데이터셋 실험 결과

XNLI(Cross-lingual Natural Language Inference)는 다국어 간 교차를 통한 자연어 추론 문제로15개 언어로 구성돼있다.. 영어 NLI 학습데이터로 fine-tuning을 진행한 후 15개 언어에 대해 XNLI를 테스트하는 방식이다. 이 데이터셋에 대해 MLM 방법보다 MLM+TLM 방법이 좋은 성능을 보였다.

 

2.2. Unsupervised Machine Translation

비지도학습 기반 번역 문제는 초기 cross-lingual word embedding의 품질이 가장 중요하다. word-embedding을 룩업 테이블로 사용하지 않고 Transformer의 Encoder-Decoder를 Cross-Lingual 언어모델로 학습하였고 WMT 번역 데이터셋(En-Fr, En-Dr, En-Ro)에 대해 실험하였다.

XLM의 Unsupervised Machin Translation 실험 결과

비지도학습으로 번역을 해야 하니TML은 사용되지 않았다. Encoder와 Decoder를 각각 CLM, MLM의 조합으로 다양하게 실험한 결과 MLM으로 구성된 Encoder와 Decoder 조합이 가장 좋은 성능을 보였다. 확실히 CLM 방식은 언어를 생성하는 태스크인 NLG(Natural Language Generation)에서 좋은 성능을 보이지만 언어를 이해하는 태스크인 NLU(Natural Language Understanding)에서는 좋은 성능을 보이지 못한다.

 

2.2. Supervised Machine Translation

XLM의 지도학습 기반 번역 결과

지도학습 기반 번역 문제에서도 MLM 방식과 Back-translation을 조합한 방법이 월등히 성능이 좋았다.

 

2.3. Low-resource Language Model

러 언어를 혼합하여 학습시킨 XLM의 PPL

 

Wikipedia에는 네팔어가 100k 문장이 존재한다. 하지만 힌디어는 네팔어보다 66배 정도 많다. 두 언어는 매우 유사해서 80%정도의 BPE vocabulary를 공유한다. 아래 그림은 ‘병렬 코퍼스가 중요하다’의 네팔어와 힌디어로 아주 유사하다.

언어모델의 PPL(Perplexity)는 언어모델 학습 시loss값을 변형해서 나타낸 수치로 PPL이 낮으면 언어모델의 학습이 잘 됐다고 할 수 있다. 네팔어로만 학습했을 때의PPL은 157인 반면 다른 언어지만 비슷하고 양이 많은 힌디어를 합쳐서 XLM을 학습하면 109 PPL로 언어모델 학습이 잘된다. 이를 통해 희소 언어인 경우 유사한 다른 언어와 합쳐서 학습하면 더 좋은 성능의 언어모델을 얻을 수 있다.

두 개의 언어는 약 80% 정도의 BPE vocab을 공유(100k subword units)

이 경우, 네팔어만 가지고 LM을 한 것과, 힌디어를 함께 한 것,, 또 영어까지 함께 한 것을 가지고 비교

비교 방법은 LM에서 perplexiy 측정

 

2.4. Unsupervised cross-lingual word embedding

병렬코퍼스를 이용하여 여러 언어의 같은 의미 단어는 유사하게 맵핑하는 기술 예시

 

저자가 이전 연구에서 쓴 논문(‘Word Translation Without Parallel Data, https://arxiv.org/pdf/1710.04087.pdf)으로 병렬 데이터를 사용하여 같은 의미의 문장이나 단어라면 서로 다른 언어일 지라도 같은 공간에 맵핑하고자 하는 연구이다. 아래 그림은 얼마나 잘 임베딩 되었는가의 성능지표이다. 타 알고리즘에 비해 XLM이 탁월한 성능을 보였다.

Cross-lingual word embedding 성능비교

 

이런 연구는 아래 두 그림처럼 학습할 수 있다. Encoder를 공유하며 같은 의미의 다른 언어 문장이나 단어를 입력으로 주고 Encoder의 출력 값을 비교하여 같은 값이 Encoding 되도록 학습한다. 그럼 다국어에 대해서도 의미를 쉽게 학습할 수 있다.

Unsupervised cross-lingual word embedding 학습 방법

 

nsupervised cross-lingual sentence embedding 학습 방법

Conclusion

XLM 모델은 다양한 다국어 학습모델을 보여주고 있지만 번역 분야에서는TLM이 사용되지 않는다. XNLI에서 탁월한 성능을 보이지만 비지도학습/지도학습 기반 번역에서는 TLM의 결과 비교가 없는 거로 보아 MLM 방식이 더 낫다고 판단된다. 그리하여 TransCoder에서도 TML없이 MLM 방식만 사용된 거로 예상된다.

 

Reference

https://yhdosu.tistory.com/entry/Cross-lingual-Language-Model-Pre-training

dsba.korea.ac.kr/seminar/?mod=document&uid=1326

katie0809.github.io/2020/02/23/ai-study7/