본문 바로가기
Computer Science/Deep Learning Application

[딥러닝] Subword Tokenizer

by na1-4an 2024. 4. 10.

딥러닝실제와 응용 수업시간에 발표를 하기 위해 공부한 내용들을 정리하겠다!

 

Out-Of-Vocabulary(OOV)

OOV 문제는 기계가 모르는 단어, 즉 임베딩을 해본 단어가 등장했을 때 주어진 문제를 푸는 것이 어려운 상황을 말한다.

 

Subword Tokenizer

이는 하나의 단어를 더 작은 단위의 의미잇는 여러 서브 워드로 분리해서 인코딩, 임베딩을 하겠다는 것이다.

 

Byte-Pair Encoding(BPE)

BPE는 글자(char) 단위에서 점차적으로 단어 집합(vocabulary)를 만들어내는 Bottom up 방식으로 접근한다.

방법: 단어들을 모두 글자 단위로 자르고, 가장 많이 등장하는 유니그램(1-gram)을 하나의 글자 통합한다.

이때 vocabulary와 dictionary가 개념적으로 등장하는데, dictionary는 실제 주어진 문장 안의 단어들로, vocabulary는 주어진 문장에서 사용된 알파벳으로 구성된다. 예시는 아래와 같다.

# dictionary
# 훈련 데이터에 있는 단어와 등장 빈도수
low : 5, lower : 2, newest : 6, widest : 3
# vocabulary
l, o, w, e, r, n, s, t, i, d

횟수를 거듭할 수록 아래와 같이 바뀐다.

1회

# dictionary update!
l o w : 5,
l o w e r : 2,
n e w es t : 6,
w i d es t : 3
# vocabulary update!
l, o, w, e, r, n, s, t, i, d, es

2회

# dictionary update!
l o w : 5,
l o w e r : 2,
n e w est : 6,
w i d est : 3
# vocabulary update!
l, o, w, e, r, n, s, t, i, d, es, est

.

.

.

n회

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

이때, n에 대한 값은 사용자가 결정한다.

기계가 "lowest" 단어를 입력받았을때는 OOV문제가 발생했을 것이다. 하지만 BPE 방법을 사용하고 난 뒤에는 "lo"와 "est" 두 단어로 인코딩 될 것이다. 이는 vocaublary에 있는 단어이므로 OOV가 아니다.

 

WordPiece Tokenizer

이는 BPE의 변형 알고리즘이다. BERT에서 사용했다.

  • Word : Jet makers feud over seat width with big orders at stake
  • Wordpieces: _J et _makers _fe ud _over _seat _width _with _big _orders _at _stake

SentencePiece

Google에서 사용했다. 데이터에 단어 토큰화를 먼저 진행한 상태여야 하면, 이 단어 분리 알고리즘을 모든 언어에 사용하는건 쉽지 않다. 한국어만 해도 토큰화가 쉽지 않은데, 토큰화 작업 없이 전처리를 하지 않은 데이터에 바로 단어 분리 토크나이저를 할 수 있다면, 이 토크나이저는 모든 언어에 적용할 수 있을 거임.

센텐스피스가 바로 이런 점이 구현되었다.

 

 

 

 

Reference

https://wikidocs.net/86649

 

13. 서브워드 토크나이저(Subword Tokenizer)

기계에게 아무리 많은 단어를 학습시켜도, 세상의 모든 단어를 알려줄 수는 없는 노릇입니다. 만약, 기계가 모르는 단어가 등장하면 그 단어를 단어 집합에 없는 단어란 의미에서 OO…

wikidocs.net

 

'Computer Science > Deep Learning Application' 카테고리의 다른 글

[딥러닝] 4장 NLP&RNN&LSTM  (0) 2024.04.04