BPE(Byte Pair Encoding)란?

yoonene·2022년 12월 12일
0

면접대비

목록 보기
16/17

Q: BPE란?


BPE (Byte Pair Encoding)

가장 작은 character부터 시작해서 가장 자주 등장하는 유니그램 쌍을 하나의 유니그램으로 통합하여 vocabulary를 업데이트하는 바텀업 방식의 서브워드 토크나이저

업데이트를 몇 회 반복(iteration)할 것인지는 사용자가 정한다.

OOV(Out-Of-Vocabulary) 문제

단어 집합에 없는 단어 , 즉 기계가 모르는 단어가 등장하는 문제
→ 이 문제를 완화할 수 있는 방법 : 서브워드 분리(Subword segmentation)

서브워드 토크나이저란?

하나의 단어를 여러 서브워드로 분리해서 단어를 인코딩 및 임베딩하겠다는 의도를 가진 전처리 작업을 하는 토크나이저
Ex) birthplace = birth + place

BPE는 대표적인 서브워드 토크나이저 중 하나

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) : 글자 단위로 분리된 상태

  • 1회 업데이트 - ‘es’
    # 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로 통합

  • 2회 업데이트 - ‘est’
    # 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로 통합

  • 10회 반복하였을 때 결과
    # 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

profile
NLP Researcher / Information Retrieval / Search

0개의 댓글