
① 정의
하나의 단어를 더 작은 의미 단위인 ‘서브워드(subword)’로 나누는 전처리 기법
예: birthplace → birth + place
② 배경
자연어의 어휘는 매우 방대하여, 모든 단어를 개별 토큰으로 다루기 어려움
희귀 단어, 복합어, 파생어 처리 시 OOV(Out-Of-Vocabulary) 문제 발생
③ 목적
어휘 크기(vocabulary size) 감소
희귀 단어를 구성하는 서브워드 단위로 표현함으로써 일반화 성능 향상
메모리 및 계산 효율성 제고
④ 장점
OOV 단어 처리: 훈련 시 등장하지 않은 단어라도 기존 서브워드 조합으로 표현 가능
어휘 테이블 축소: 전체 단어장이 아닌 자주 등장하는 의미 단위(서브워드)로 어휘 구성
언어 모델 일반화: 드문 단어가 “새로운 조합”으로 등장해도 모델이 의미를 파악
⑤ 작동 방식
ⓐ 통계 기반 분리
Byte-Pair Encoding(BPE), Unigram LM 등
자주 등장하는 서브워드 쌍을 병합하는 방식
ⓑ 규칙 기반 분리
ⓒ 혼합 방식
⑥ 예시
| 원본 단어 | 분리 결과 | 설명 |
|---|---|---|
| birthplace | birth + place | 합성어를 의미 단위로 분리 |
| internationalization | internation + al + ization | 긴 단어를 서브워드별로 분할 |
| unfriendliness | un + friend + li + ness | 접두사, 어근, 접미사 단위로 분리 |
① BPE 알고리즘의 동작 방식
초기 단어 집합을 글자(unigram) 단위로 분리
코퍼스에서 가장 빈도 높은 연속 글자 쌍(pair)을 찾아 하나의 유니그램으로 병합
위 과정을 원하는 병합 횟수(예: 10회)만큼 반복
② BPE를 통한 OOV(Out-Of-Vocabulary) 문제 해결
미등록 단어(예: “lowest”)를 자주 등장하는 서브워드(“low” + “est”)로 분리
모델이 전체 단어 대신 서브워드 조합을 통해 의미 추론 가능
① BPE와의 차이점: 코퍼스 우도(Likelihood) 기반 병합
② WordPiece Tokenizer의 주요 특징과 언더바(_)의 역할
모든 단어 앞에 언더바(_)를 붙여 “단어 시작” 표시
통계적 기준으로 언더바 위치에서 서브워드로 분리
언더바는 토큰 합성 후 문장 복원을 돕는 장치
예시:
원문: Jet makers feud over seat width with big orders at stake
분리: _Jet _makers _feud _over _seat _width _with _big _orders _at _stake
③ BERT 모델 훈련에 사용
① 서브워드 손실(Loss) 계산 방식
② 단어 집합 크기 조절 과정
① 구글의 공개와 특징
② 모든 언어에 적용 가능한 범용성
① TensorFlow 기반 서브워드 토크나이저
② WordPiece Model 채택
① tokenizers 패키지의 역할
② 제공되는 주요 토크나이저 종류
BertWordPieceTokenizer: BERT에 사용된 WordPiece 구현
CharBPETokenizer: 오리지널 BPE 알고리즘 기반
ByteLevelBPETokenizer: 바이트 레벨 BPE 처리
SentencePieceBPETokenizer: SentencePiece 호환 BPE 구현
<참고 문헌>
유원준/안상준, 딥러닝을 이용한 자연어 처리 입문
https://wikidocs.net/21694
박호현 교수님, 인공지능, 중앙대학교 전자전기공학부, 2024