NL-047, Zero-Shot Paraphrase Generation with Multilingual Language Models (2019-Arxiv)
공유 링크 만들기
Facebook
X
Pinterest
이메일
기타 앱
0. Abstract
고품질의 paraphrase corpus가 제한이 있기 때문에 (데이터양이) Leveraging mulitlingual parallel text으로 자동으로 만드는 것은 많은 관심을 받았다.
Round-trip 번역 방법 a.k.a pivoting 방법은 전통적인 방법이다.
한 → 영 → 한
그러나 이 방법은 multiple 번역 모델이 있어야 하고 two-step을 거치기 때문에 이 과정에서 semantic이 변할 수가 있다.
이 논문에서는 Transformer-based LM에서 영감을 받아서 simple하고 unified한 paraphrasing model을 제안한다.
이 모델은 multi-lingual parallel data으로 학습하고 one-step zero-shot paraphrase 생성을 한다.
pivoting 접근법과 비교해서 이 논문의 모델이 semantic을 더 잘 담아낸다.
또한 GPT-1 모델을 많은 unparallel corpus로 pre-train을 함으로써 fluency을 향상시켰다고 한다. (아마 가져다가 썼을 듯)
추가적으로 DAE (denoising auto-encoder)이 diversitiy와 robustness을 향상시켜준다고 한다.
실험은 pivoting 방법에 비해 relevance, diversity, fluency, efficiency에서 좋다고 한다.
1. Introduction
Paraphrasing은 같은 의미를 가지는 다른 표현을 생성하는 것
다음와 같은 곳에서 중요한 역할을 한다.
response diversification in dialogue system
query reformulation in information retrieval
data augmentation in MT(machine translation)
최근 모델들은 seq2seq 학습을 기반으로 하여 SoTA을 달성한다.
Prakash et al.,
2016
Ziqiang Cao, 2017
Ankush Gupta, 2018
Zichao Li, 2018, 2019
paraphrase corpus을 기반으로 하여 생성 (pari 문장들)
그러나 high-quality의 paraphrase는 실제로 얻기 힘들다.
(abstract에서 말한 이유 때문인 듯?) 그래서 이 논문에서는 zero-shot paraphrase generation 접근법을 제안한다.
이 방법은 paraphrase corpus가 필요가 없다.
여기서 필요가 없다는게 학습할 때 필요가 없다기보다는 test time에서 말하는 것인 듯
일반적인 선택은 leverage the bilingual or multilingual parallel data으로 MT에 사용하는 것으로 이는 좋은 quantity와 quality을 가진다.
기본적인 가정은 두 개의 다른 언어를 가지는 문장이 번역을 위해 있다는 것이다.
그래서 paraphrasing을 위한 하나의 전통적인 방법은 1개의 언어를 다른 언어로 pivot 시키는 것이다. (번역)
특별히 이러한 방법을 round-trip translation이라고 한다.
즉 영어 → 프랑스 로 보낸다음 다시 프랑스 → 영어로 back-translated 하는 것
이 방법들은 다음의 그림과 같이 있고 두 개의 번역기가 필요하다.
Pivoting approach 연구가 일반적이기는 하나 몇 가지 단점이 있다.
round-trip은 paraphrasing을 위한 모든 path들을 탐구하는 식이다.
왜냐하면 결과가 번역 시스템의 유한한 중간 출력에 의해 pivot가 되는 식이기 때문이다.
(식으로 보면 좀 더 이해가 되는데...)
X: 주어진 문장
Z: X의 representation
Y: 생성해야할 paraphrasing 문장
다음과 같은 식을 따라야 한다.
즉 가능성있는 모든 Z에서 Y가 생성될 수 있는 것이다.
하지만 roun-trip 방법에서는 주어진 P(Z|X), 즉 한 개의 조건에 대해서만 고려하는 것이다.
이것은 부정확한 예측을 이끌 수 있고 이러한 경향의 문제는 sampling variance때문이고 semantic drift라고 부른다.
다시 한번 쉽게 말하면, 문장 X를 encoding후 Y로 decoing할 때, 중간의 representation인 Z가 실제로 여러 개를 가질 수 있는데 한 개에 대해서만 inference 한다는 것이다.
즉 영→한→영 에서 한글로 될 수 있는 문장이 많으니까 semantic dift가 일어난다고 보면 될 것 같다.
이미 존재하는 번역 시스템에의해 결과가 결정되고, 번역 시스템을 end-to-end로 학습시키기 어렵다.
이유는 안 써있는데 아마도 back-translation 학습이 쉽지는 않기 때문인 듯
마지막으로 이 방법은 효율적이지 않다.
왜냐하면 두 개의 round을 (번역을) 통과해야하기 때문이다.
이러한 issue들을 해결하기 위해 single-step zero-shot paraphrase 생성모델을 제안한다.
end-to-end fashion으로 MT을 학습한다.
이전의 방법들과 달리 제안한 모델은 multiple languages사이의 정확한 번역을 하지 않는다.
대신에 directly P(Z|X)와 P(Y|Z)로부터 P(Y|X)학습을 한다. (?)
모델은 Transformer + 언language indicators 을 사용하였다.
inference할 때는 주어진 언어의 문장과 same langugae로 가이드를 줘서 문장을 생성하는 식이다.
우리의 모델은 simple & compact한 장점이 있고 semantic drift의 위험을 줄일 수 있다.
모델은 monolingual data에서 GPT의 pre-training을 하였고 이는 low-resource langugae에서 생성하는 장점이 있다.
마지막므로 DAE을 이용하여 robustness을 강화하였다.
그 결과 pivoting 접근법보다 automatic 과 human evaluation에서 모두 더 좋은 결과를 보여준다.
반면 pivot-based보다 training과 inference cost는 매우 줄었다.
2. Methodology
2.1 Transformer-based Language Model
Transformer-based language model을 TLM이라 부르고 이는 다음의 likelihood을 최대화 하는 방향으로 학습한다.
X = [x1,...,xn]는 문장이고 각 Transformer은 multi-head self-attention으로 구성되어 있고 다음과 같이 decoding을 하게 된다.
일반적인 auto-regressive Transformer decoder와 같음
xi는 token embedding, pi는 positional embedding, hi는 output states of the i-th token이고 We, Wo는 각각 input, output embedding matrics이다.
TLM은 monolingual sequences에 보통 사용되었으나 multiple lanugages에 사용하지 말란 법은 없고 실제로 Lample and Conneau(2019)에서 이것을 사용했다고 함.
그래서 다음과 같은 방법으로 Objective function Loss을 설정하였음
bilinugal language model은 decoder-only 모델로 이전의 방식인 encoder-decoder과는 다르다.
이것이 monoliungual text-to-text (summarization과 같은) 생성에 효과적인 연구가 이전에 있었다.
이 구조의 장점은 다음과 같이 있다.
model parameters
easier optimization
potential better performance for longer sequences
language models pre-tranining on monolingual corpus을 결합할 수 있다.
special tokens은 다음의 것들이 있다.
<bos>: beginning of sentence
<eos>: end of sentence
<delim>: between the sentence
Language identifier
<en>: English
<fr>: French
Inference stage에서는 다음과 같이 conventional auto-regressive model처럼 토큰을 예측한다.
2.2 Zero-shot Paraphrase Generation
English↔French 혹은 German↔Chinese와 같이 한번 LM을 학습하고나면, zeros-hot paraphrase generation을 수행할 수 있다.
이것은 language identifier 때문인데 그림 2을 보면, <en>과 <fr>이 이 역할을 하는 것이다.
즉 생성할 때, 입력과 같은 identifier을 넣어주면 된다.
학습 과정에서는 입력 문장에 대해 번역할 언어에 대해서 학습을 한다.
이떄는 teacher-forcing을 하고 식 (3)을 참고하면 됨
Decoding stage에서는 위에서 말했듯이 영어 입력에 대해 생성할 문장도 <en>으로 guide을 주면 된다.
모델이 기본적으로 번역 corpus에 대해서 학습하였기 때문에 semantic meaning을 유지하려고 학습을 했다.
따라서 입력과 출력문장은 같은 의미를 담는다고 함.
이러한 우리 모델은 parallel paraphrase data에 대해 학습하였고 어떠한 수정이 없었다.
하지만 evaluation할 떄는 zero-shot learning setting을 한 것
이전의 연구들도 zero-shot paraphrawsing을 할 수 있는데 모델이 일정하게 수행되지 않고 가끔은 같은 langugage에 있는 단어를 생성하는데 실패한다.
즉 영어 문장을 생성하라는데 프랑스어 단어가 생성된다는지...
이러한 문제를 degeneracy 문제라고 부른다.
zero-shot paraphrase 생성에서 이러한 문제를 해결하기 위해 몇 가지 techniques을 넣어서 quality와 diversity을 향상시키도록 하였다.(뒤에 나옴)
2.2.1 Language Embeddings
language identifier prior가 항상 생성할 언어에 대해 보장을 해주지 않는다.
언어의 일관성을 유지하기 위해 language embeddings을 제안한다.
이는 언어에 해당하는 specific vector representation이라고 한다.
ai가 문장에서 i-th token의 language embedding 이라고 한다.
정확히 어떻게 구하는지는 안나와있음... language identifier vector + position embedding 으로 하는건가?
each token의 예측은 다음과 같이 한다.
ai을 concat하여서 예측한다.
실험적으로 language embedding을 추가하는것으로 model이 생성해야할 언어에 대한 guide가 효과적임을 보여준다.
이 방법은 단순히 vocab의 space을 제한하는 것은 아니고 output distribution을 배우게 하는 방법이기 때문에 coding switching에 유연하다고 한다.
즉 영어에서 프랑스어로 번역할 때, 프랑스어에 영어 단어가 나올 수 있는 상황에 대해서 대처 가능하다.
즉, 말하고자하는 것은 단순히 embedding matrix을 언어에 따라 두 개를 만들어서 학습하게 하면
I do flex --> 나는 flex 했어.
이렇게 번역을 할 수 없다. 이런 느낌.
따라서 이 논문에서는 vocab space을 줄이는 대신, guide을 좀 더 확실히 주자 이런 개념
2.2.2 Pre-Training on Monolingual Corpora
LM의 pre-training은 MT, text summarization, generative QA에 효과적임을 이전의 연구에서 알 수 있다.
특별히 low/zero-resource task에 효과적이다.
즉 데이터가 적은 상황에서 large-scale monolinugal corpus으로부터 지식을 배우고(pre-training) downstream task에 fine-tunning하는 것
이 논문의 모델은 LM과 똑같은 구조를 가지고 있기 때문에 방대한 monolingual data로부터 pre-train을 할 수 있다.
Pre-training은 monolingual data에서 parallel data을 학습하는 것과 똑같이 진행이 된다.
<bos>, <eos>와 language identifier을 포함한 문장 한개로 학습하는 것
즉 <delim>만 없애고 하는 것?
language embeddings또한 적용된다.
식 (1)과 같게 objective으로 pre-train한다.
여기서 모델을 monolingual corpora을 다양한 언어에 대해 각각 pre-train을 한다
그리고 나서 parallel corpora에 대해 fine-tune한다.
자세한 과정은 안써있지만, 한 모델에 대해 Eng, Fre의 한 샘플을 번갈아 가면서 LM에 대해 학습하면 될 듯하다.
그러면 special token으로 인해 제대로 학습이 될 거 같음.
2.2.3 Denoising Auto-Encoder
DAE는 생성에서 많이 쓰이는 기법인데 여기서도 적용한다.
DAE는 입력에 변형을 줘서 representation을 강인하게 학습하는 것에 목적이 있다.
입력: , 변형:
즉 에서 을 재구성하도록 학습하는 것
DAE는 text generation(Freitag and Roy, 2018)과 MT(Yunsu Kim, 2018)에서 효과적임을 알 수 있다.
즉 입력 noise에 강인하고 보지못한 샘플을 일반화하는 representation을 학습 가능하다.
Yunsu Kim에서 영감을 받아 입력에 변형을 3가지 방향으로 넣었다고 한다.
근데 보면 BERT와 비슷한 듯. 즉 DAE에서 변형시키는 방법은 다들 고만고만 하지 않을까 생각
Deletion: We randomly delete 1% tokens from
source sentences, for example, “cat sat on the mat
7→ cat on the mat.”
Insertion: We insert a random token into source
sentences in 1% random positions, for example,
“cat sat on the mat 7→ cat sat on red the mat.”
Reordering: We randomly swap 1% tokens in
source sentences, and keep the distance between
tokens being swapped within 5. “cat sat on the mat
7→ mat sat on the cat.”
따라서 training objective with DAE는 다음과 같다.
학습후, inference할 때는 다음과 같다.
3. Experiments
3.1 Datasets
MultiUN
463,406 오피셜 문서
6개 언어
각 언어에 300M 단어
OpenSubtitles
Movie and TV 자막
60개의 언어에서 2.6B 문장
공통된 4개언어를 뽑아서 학습하였다.
영어, 스페인어, 러시안어, 중국어
특징
BERT의 wordpiece로 tokenizer
50K 토큰의 multilingual vocab
랜덤으로 validation과 testin으로 10000개 선택, 나머지는 학습으로 사용
monolingual으로 pre-training하기 위해 English Wikipedia corpus(2,500M 단어들)으로 학습
3.2 Experimental Settings
Tensorflow 사용
BERT-base와 모델이 똑같음
12 layers of Transformer blocks
token embedding, position embedding, hidden state: 768
position-wise feed-forward net: 3072
Attention head: 12개
Adam optimization: lr: 1e-4, beta1: 0.9, beta2: 0.999
L2 weight decay: 0.01
top-k truncated random sampling 전략을 사용
inference때 말하는 것으로 beam-search 개념인 듯?
Bilinugal model과 Multilingual model 두 가지를 제시
bilinugal model은 English↔Chinese이고 Multilingual model은 4가지 언어를 다룸
Round-trip baseline 모델은 Transformer-based neural translation model을 기반으로 함.
3.3 Automatic Evaluation
입력과 생성된 문장사이의 관계와 diversity을 계산하였다.
관계성을 구하기 위해 cosine similarity을 계산하엿음.
Glove-840B e mbeddings을 사용함
Generation diversity을 위해서 Distinct-2와 inverse Self-BELU라는 것을 계산함
자세한 건 reference을 봐야할 듯
각 모델에서의 결과는 다음의 그림과 같음.
각 데이터 포인트는 specific sampling temperature에서 구함
모델은 똑같은데 temperature을 통해서 다른 결과를 도출했다는 것 같음
이에 따라 cosine similarity와 distinct-2, inverse self-BLEU값이 달라진 듯
3.3.1 Comparison with Baseline
논문의 모델은 baseline보다 입력과 의미론적으로 더욱 비슷한 문장을 생성한다.
생성된 패러프레이징은 Distinct-2가 0.3보다 높은 레벨일 때, 더 좋은 관계성을 보여준다.
즉 이말은 Distinct-2 diversity가 증가함으로써 bilingual 모델이 의미론적으로 baseline 모델보다 더 빠르게 drifting이 된다.
Round-trip은 two-round supervised 번역이지만 zero-shot 패러프레이징은 single-round unsupervised 이다.
논문은 unsupervised 패러프레이징이 좀 더 decoding 전략에 민감하다고 생각한다.
이것은 language-agnostic(언어에 상관없는) representatino이 bilingual에서 잘 학습이 되지 않는 것이다.
반면에 multilingual 모델은 이러한 불충분한점을 감소시키고 이를 분석을 통해 보여준다.
3.3.2 Multilingual Models
Bilingual 모델은 잘 학습된 language-agnostic semantic representation의 부족으로 불안정하다.
일반적인 방법은 multilingual corpus을 이용한 학습이다.
multilingual corpus는 모델이 language type과 semantic representation을 분리할 수 있도록 해준다.
실험적인 결과로 multilingual model이 bilingual model 보다 의미있게 좋은 결과를 보여준다.
3.3.3 Denosing Auto-Encoder
DAE에서 Deletion과 Reordering이 잘 작동하는 비율은 0.01으로 찾아냈다.
Bilingual과 multilingual 모델에서 성능이 좋음을 실험 그림 3에서 보여준다.
multilingual 모델에서는 큰 효과가 없지만, bilingual에서는 성능이 의미있게 좋아짐을 알 수 있다.
이것은 DAE가 모델이 robust representaion을 잘 배우게 도와줌을 알 수 있다고 한다.
multilingual은 이미 representation을 잘 학습했다고 논문에서는 주장하기 때문에 비교적 학습이 덜 된 bilingual에서 더 큰 효과가 있다고 말하는 것
Deletion은 모델이 word-level meaning 보다는 sentence-level semantics 학습에 집중을 하게 함.
Reordering은 모델이 position에 대한 기억보다는 meaning 학습에 징중을 하게 함.
이것이 모델이 단순히 shortcuts(e.g. copy words)을 학습하는 것보다 어려운 것
다른말로 DAE가 extracting deep semantic representation에 대한 모델 능력을 향상시켜준다.
이 효과는 multilingual corpus으로 학습하는 것과 비슷하다.
3.3.4 Monolingual Pre-Training
그림 3에서 보면 pre-training은 큰 효과가 없다.
하지만 fluency에서는 큰효과가 있다.
fluency을 평가하기 위해 14k public domain books에 대해 n-grams LM을 학습하여 평가를 해보았다.
fluency 평가 결과를 보면 pre-training을 이용하는 것이 더 좋음을 알 수 있다.
하지만 이것이 큰 차이인가는 사실 의문임
3.4 Human Evaluation
Zichao Li, 2018에서 말한대로 따라서 human evaluation을 진행하되 스코어를 [1, 5]에서 [1, 4]로 압축시켜서 했다. (왜인지는 안써있음)
다섯 사람을 고영해서 진행하였고 semantic relevance와 fluency에 대해 평가를 하였다.
(입력문장, baseline 생성문장, 논문모델 생성문장)을 샘플마다 순서를 섞어서 평가를 하게 하였고 한 샘플당 2명의 annotators가 평가를 하였다.
결과를 보면 논문 모델이 더 좋았고 fluency는 살짝 좋으나 relevance는 큰 차이로 좋음을 보여준다.
실제 샘플들을 보면, round-trip은 노이즈가 많이 낀 것을 알 수 가 있다.
3.5 Case Studies
Round-trip은 의미론적으로 심각하게 drift가 된 것을 확인할 수 있다.
논문의 모델은 relevance가 더욱 좋음을 보여주고 두 번째 case에서는 guide 라는 명사는 바뀌지 않고 source 문장은 바뀌고 reordering 되지만, 의미는 그대로 담아내는 것을 볼 수가 있다.
이것은 DAE에 대한 feature가 robusteness하고 diversity 함을 보여준다.
4. Related Work
Paraphrasing corpora의 high-quality을 가지는 quality와 diversity을 향상시키기 위한 연구
Prakash et al. (2016)
stacked residual LSTM으로 시작
Ziqiang Cao (2017)
word constraint model 제안
quality와 diversity을 둘다 향상시킴
Ankush Gupta (2018)
VAE을 적용하여 diversity을 향상 시킴
Zichao Li (2018)
reinforcement learning과 adversarial training을 통하여 generation quality을 향상 시킴
Zichao Li (2019)
패러프레이징 생서을 phrase-level과 sentence-level로 구분함.
Monolingual non-parallel 혹은 translation corpora 데이터로 연구가 있다.
Lilin Zhang (2016)
Markov Network을 사용하여 monolingual corpus로부터 패러프레이징
Quirk (2004) / Wubben (2010) / Wubben (2014)
paraphrase corpus을 만들었다.
parallel translation corpora을 통하여 pivoting 방법으로 (=round-trip 와 back-translation) 연구하였다.
그러나 우리가 아는한 single-round end-to-end model과 같이 parallel translation corpora으로부터 직접 학습하는 방법은 없었다.
5. Conclusions
off-the-shelf (상용) 번역 코퍼스의 방대한 양을 leverage을 함으로써 zero-shot paraphrase generation을 하였다.
pre-training을 통하여 fluency을 향상시켰다.
automatic과 human evaluation을 실험적으로 이전의 pivoting 접근법들보다 좋음을 보여준다. (diversity, fluency, efficiency)
앞으로 더 해볼 연구로는 generation diversity은 향상시키되 relevance은 해치지 않는 latent semantic represenation을 얻는 방법이다.
댓글
댓글 쓰기