aiffel 대전 1기 nlp 반 fast paper
fast paper 는 논문의 abstract, introduction 만 읽는 읽는 모임
2021년 4월 3일 토요일 1일차 오후 1시
3편 중 2편 Neural Machine Translation of Rare Words with Subword Units
원문 논문 링크 : arxiv.org/pdf/1508.07909.pdf
keyword : subword, bpe(byte pair encoding), tokenize
참고 : https://wikidocs.net/22592
1.abstract
NMT(Neural Machine Translation, 신경망 기계번역) 모델들은 고정된 vocab 을 사용함.
하지만 실제 서비스에서는 새로운 단어, 오타, 신조어 등이 등장하는 open-vocabulary 문제이다.
이전 모델들은 단어장에 없는 단어가 들어오면,
- back-off : 단어장에 단어를 추가 및 새로 모델링
- look-up : 검색해서 불러오고
이 논문에서는 새로운 방법 제안함. 간단하고 효과적인 접근법임.
즉, NMT 모델에서 open-vocab 번역이 가능하도록 하겠다.
어떻게?
- rare, unknown 단어들을 subword units 시퀀스로 인코딩
왜?
- 다양한 단어들을 분류할때, 단어보다 더 작은 단위로 쪼개서 번역/치환이 가능할 것이라는 직관에서 출발함.
- firefighter 이란 단어를 처음 봤다면, firefight -er 로 쪼개서 각 subword units 의 시퀀스를 합쳐서 의미를 만듬
경우의 수
- instance name(이름, 고유명사) : char copy/transliteration (i.g. Trump - 트럼프)
- compounds(합성어) : compositional transformation ()
- cognates(동원어) : phonological, morphological transformer (i.g. taxi - 택시)
- loanwords(외래어) : 위와 동일 (i.g. taxi - 택시)
word-segmentation 의 적절성
- simple char n-gram
- byte-pair encoding compression
WMT 15 translation task / GLEU / BLEU
2.introduction
기계번역에서 rare 단어 번역문제는 아직 해결해야함. 보통 단어는 3-5만개 정도, 이외에는 모두 rare word
기계번역 서비스는 open-vocab 문제
교착어, 합성어 등의 번역문제를 해결하기 위해서는 word-level 보다 lower-level 메카니즘을 요구함
독일어 n Abwasser|behandlungs|anlange 는 ‘sewage water treatment plant’ 폐수처리공장? 정도 되는듯
위의 경우, segmented + variable-length 표현이 unsegmented + fixed-length 처리 조합보다 좋아보임이전 모델들의 rare word의 back-off 후, look-up 방식은 잘 작동하지 않음 - source word - target word 1:1 대응이 되지 않기 때문에 + 다양한 변형 가능이름, 고유명사는 back-off, look-up 적용하면 좋긴 한데, alphabet 이 다르면 적용이 힘들다.영어-한국어 알파벳이 다르기 때문에 형태학적 변화, 음역이 자주 발생한다.
따라서 우리는 subword units 에서 잘 작동되는 모델을 개발함.목적은 NMT 모델 안에서 open-vocab 문제를 back-off 없이 해결하는 것, 그것도 단순하게.학습 시 한번도 보지 못한 단어에 대해서, word vector 를 generate 하는 것이 가능하다신경망 모델에서 subword-representation 으로 합성어, 교착어 학습이 가능하다.1)encoding words via subword units(vs big vocabs + back-off)2)byte-pair encoding(bpe) : compression algorithm, 압축 알고리즘, word segmentation - variable length char sequence 로 표현(vs fixed-length)