Abstract
93개의 다른언어를 위한 joint multilingual sentence representations를 배운다.
우리의 시스템은 모든 언어가 공유하는 BRE single BiLSTM encoder를 사용하고, 보조적인 역할을 하는 decoder가 있다. 공개되어 있는 parallel corpora로 학습한다.
이것은 영어로만 되어 있는 데이터를 가지고 resulting embedding의 top의 classifier를 배울 수 있고, 이 것을 수정없이 93개 언어로 전이 가능하다.
우리의 실험은 XNLI, ML-Doc, BUCC로 진행했고, 직접 만든 112개의 언어로 유사도를 측정했다.
1. Introduction
deep learning이 NLP에 놀라운 인상을 주었지만 여전히 데이터가 부족하고 제한된 실용성을 가지고 있다.
이러한 이슈를 해결하기 위한 첫 번째 방법은 unlabeled data에 대해 언어 표현을 배우는 것이었고, 이를 task-specific downstream에 적용하는 것이였다. 이 방법은 word embedding으로 유명하지만 최근에는 sentence-level의 표현을 원한다.
그럼에도 불구하고 각 모델들은 서로 다른 언어로 학습되어지기 때문에 서로 다른 언어에는 적용할 수 없어서 적은 자원의 언어로 충분한 성능을 내기에는 한계가 있었다.
그래서 이번에는 input과 NLP task에서 general 할 sentence의 vector representation인 전체 언어를 아우르는 sentence embedding을 다루려고 한다.
이러한 표현형에 동기는 여러 가지가 있다.
- 제한된 자원을 가진 언어로 많은 언어를 처리할 수 있다는 희망
- 한 언어에서 다른 언어로 zero-shot 하려는 욕망
- code-switching을 할 수 있다는 가능성
이전에 있던 multilingual NLP 연구에서는 제한된 몇개 언어에 대해서만 수행을 하거나, 특정 task에 대해서만 수행했다. 이번 논문에서는 93개 언어에 대해서 시도를 했으며, 이는 아마도 우리가 처음일 것 이다.
2. Related Work
생략
3. Proposed method
single BiLSTM을 보조적인 역할을 하는 decoder와 함께 사용한다.
3.1 Architecture
Schwenk가 제안한 구조를 바탕으로 구성되었다.
보이는 것과 같이 sentence embedding은 encoder의 output에 max-pooling을 통해서 얻는다.
이러한 sentence embedding은 선형변환을 통해 decoder LSTM을 초기화하는데에 사용하고, 매 step마다 그 input embedding과 결합된다. sentence embedding에 의해 발견되는 input sequence과 관련된 모든 정보를 원하기 때문에 encoder와 decoder 사이에는 다른 연결은 없다.
우리는 포함된 모든 언어가 공유하는 single encoder와 decoder를 사용한다. 이를 위해서 우리는 50k의 연산을 가지고 있고 모든 훈련 corpora의 결합을 배우기 위해 joint byte-pair encoding (BPE)를 만든다.
encoder는 input language가 무엇인지 signal을 가지고 있지 않고, 이것은 독립적인 representation을 배우도록 할 수 있다. 대조적으로 decoder는 생성해야할 언어를 특정하는 ID embedding을 가지며 이는 input과 sentence embedding이 매 step 합쳐진 것이다.
거의 100개 언어를 위해 충분한 공간이 있어야 한다. 이 논문에서 BiLSTM은 512 차원을 가지는 5개의 layer를 가진다. resulting sentence representation은 1024차원이다. (양방향으로 결합되었기 때문?)
decoder는 항상 2048차원을 가진다.
input embedding 크기는 320으로 고정되어 있고, language ID embedding은 32차원을 가진다.
3.2 Training strategy
이전 연구에서 각 input sentence는 모든 다른 언어로 번역되었다. 하지만 이 접근은 언어의 수가 많아질수록 큰 두가지 단점을 가지고 있다. 첫번째는 이 방법은 N개의 평행한 corpus를 가지고 있어야 하는데 모든 언어를 얻기 힘들다. 두번째는 지수승으로 시간이 증가하기 때문이다.
우리의 사전 실험에서 우리는 두 개의 target 언어만을 사용해서 얻는 비슷한 결과를 관찰했다.
그와 동시에 각 언어 조합을 분리 alignment를 고려함으로써 N개의 parallel corpora에 대한 요구를 완화했다.
훈련 파라미터 설명
3.3 Training data and pre-processing
3.2에서 설명했던 것처럼 훈련 과정에서 두 target 언어가 놓여진 bitext를 요구한다. 따라서 이 논문에서는 영어와 스페인어를 골랐다. 대부분의 데이터가 이러한 언어와 정렬되어 있다.
93개의 언어를 다 수집했다. 기계번역 tool을 사용해서 pre-processing을 했다.
4. Experimental evaluation
multilingual sentence embedding을 평가하는 표준 방법이 존재하지는 않다. 그래서 가장 괜찮다고 생각되는 XNLI(4.1)과 cross-lingual document classification(4.2), Bitext mining(4.3)그리고 저자가 직접 만든 평가방법(4.4)로 이 모델을 평가하고자 한다.
4.1 XNLI : cross-lingual NLI
NLI는 sentence representation를 평가하는데 가장 많이 사용되는 방법이다. 두 문장이 주어지고 이 두 문장간의 관계를 파악하는 문제다. XNLI는 영어를 다른 언어로 번역을 한 뒤에 NLI 과정을 거치는 평가방법이다. 이를 BERT와 비교해보았을 때, 영어 단일 NLI에 대해서는 성능이 좋지 못했지만 이를 다른 언어로 번역한 뒤에 성능을 평가했을 때에는 더 좋은 성능을 얻었다.
4.2 MLDoc : cross-lingual classification
4.3 BUCC : bitext mining
4.4 Tatoeba: similarity search
5. Ablation experiments
5.1 Encoder depth
encoder의 깊이가 길어질수록 성능이 더 좋아진다.
5.2 Multitask learning
생략
5.3 Number of training languages
얼마나 많은 언어를 수용할 수 있는지 알 수 있기 위해 93개 언어를 가지고 있는 모델과 18개 언어를 가지고 있는 부분 모델과 비교해보았을 때, 큰 차이가 없다.
6. Conclusions
- 이 논문에서 93개 언어에 대해 multilingual fixed-length sentence embeddings을 배우는 구조를 제안했다.
- multilingual sentence embedding을 평가하는 방법들에 대해서 좋은 성능을 보였고, 이 논문에서 만든 평가방법에서도 좋은 성능을 보였다.
- 다음 연구에서는 self-attention을 encoder 구조를 사용하는 것을 생각해보겠다.
- 혹은 monolingual data를 사용하거나 unsupervised MT와 같은 방법을 사용하는 전략도 찾아보겠다.
사견
- 약 93개의 언어를 하나의 embedding으로 만드는 것은 좋다.
- 하지만 16개의 GPU를 사용했다고 하는데, 이건 facebook이라서 할 수 있는 방법이지 않을까 생각이 든다.
- 성능으로 찍어 누른 느낌