94년 제안된 바이트 페어 인코딩 ( Byte Pair Encoding )

말뭉치에서 가장 많이 등장한 문자열을 병합해 문자열을 압축하는 것이다

  1. 원하는 어휘 집단 크기가 될 때까지 반복적으로 고빈도 문자열들을 병합해 어휘 집합에 추가
  2. 문자 내 각 어절에 어휘 집단에 있는 subword가 있을 때 해당 서브워드를 어절에서 분리한다.

Bert는 BPE로 학습한 어휘 집단을 쓴다.

subword segmenation 알고리즘

character 단위에서 vocabulary를 만들어 내는 ( Bottom-UP ), character → bpe(middle) →word

# dictionary
l o w : 5,  l o w e r : 2,  n e w e s t : 6,  w i d e s t : 3
  1. 모든 word를 character(혹은 unicode) 단위로 분리한다.
# vocabulary
l, o, w, e, r, n, w, s, t, i, d
  1. 가장 빈도수가 높은 유니그램의 쌍을 하나의 유니 그램으로 통합한다. ( 정해진 수 만큼 반복한다. )
(e, s) -> (es) | (es, t ) -> (est) | (l, o ) -> (lo) | .... 

# dictionary update!
low : 5,
low e r : 2,
newest : 6,
widest : 3

# vocabulary update!
l, o, w, e, r, n, w, s, t, i, d, es, est, lo, low, ne, new, newest, wi, wid, widest