Q: BPE란?
가장 작은 character부터 시작해서 가장 자주 등장하는 유니그램 쌍을 하나의 유니그램으로 통합하여 vocabulary를 업데이트하는 바텀업 방식의 서브워드 토크나이저
업데이트를 몇 회 반복(iteration)할 것인지는 사용자가 정한다.
단어 집합에 없는 단어 , 즉 기계가 모르는 단어가 등장하는 문제
→ 이 문제를 완화할 수 있는 방법 : 서브워드 분리(Subword segmentation)
하나의 단어를 여러 서브워드로 분리해서 단어를 인코딩 및 임베딩하겠다는 의도를 가진 전처리 작업을 하는 토크나이저
Ex) birthplace = birth + place
BPE는 대표적인 서브워드 토크나이저 중 하나
# dictionary
# 훈련 데이터에 있는 단어와 등장 빈도수
low : 5, lower : 2, newest : 6, widest : 3
훈련 데이터에 있는 단어(key)와 등장 빈도수(value)# vocabulary : 단어 집합 (중복을 배제한 단어들의 집합)
low, lower, newest, widest
중복을 배제한 단어들의 집합인 단어 집합의 경우, ‘lowest’ 라는 단어가 등장하면 OOV 문제가 발생함.# vocabulary
l, o, w, e, r, n, s, t, i, d
BPE의 초기 단어 집합(vocabulary) : 글자 단위로 분리된 상태# dictionary update!
l o w : 5,
l o w e r : 2,
n e w es t : 6,
w i d es t : 3
빈도수가 9로 가장 높은 (e, s)의 쌍을 es로 통합# dictionary update!
l o w : 5,
l o w e r : 2,
n e w est : 6,
w i d est : 3
빈도수가 9로 가장 높은 (es, t)의 쌍을 est로 통합# vocabulary update!
l, o, w, e, r, n, s, t, i, d, es, est, lo, low, ne, new, newest, wi, wid, widest
⇒ 기존에는 OOV 문제가 발생하던 ‘lowest’를 표현할 수 있다.
reference
https://wikidocs.net/22592