-
[NLP] NLP의 시작 : Tokenization & Embedding 종류카테고리 없음 2024. 4. 3. 14:44
NLP ( Natural Language Processing )의 철학
- 우리가 일상에서 사용하는 언어(자연어)를 이해하는 능력을 기계에게 부여하는 학문 분야이다
- 기계는 숫자만을 이해할 수 있다.
- 따라서 우리는 언어를 숫자로 바꿔야만 한다.
- 언어를 숫자로 바꾸기 위해 2가지 사고의 과정을 거치게 된다
- text를 어떤 단위(token)으로 나눌 것인가 ( tokenizing )
- token을 어떤 숫자로 바꿀 것인가 ( embedding )
Tokenization 종류
Tokenization 목적 : 의미를 지닌 단위로 자연어를 분절하기 위해서 & Model 학습 시 입력 token의 개수를 맞추기 위해서
다음의 문장의 토큰화를 예시로 들겠다. ( 이 근처 미세먼지 많은지 알아봐 )
- Morpheme-based tokenization ( 형태소 기반의 토큰화 )
- 이, 근처, 미세, 먼지, 많, 은지, 알아보, 아
- Word-based tokenization
- 이, 근처, 미세먼지, 많은지, 알아봐
- 한국어는 단어가 띄어쓰기로 구분되지 않아 적합하지 않다.
- Subword-based tokenization
- #이, #근처, #미세먼지, #많은, 지, #알아봐
- 통계적으로 의미있는 단위로 묶는다.
- Vocab 에 없는 단어들에 대해서도 좋은 성능을 보인다.
- OOV, 희귀 단어, 신조어의 문제를 완화할 수 있다.
- 가장 많이 사용되는 방식이다.
- 대표적인 방식으로 Byte Pair Encoding(BPE), SentencePiece, Word Piece 방식이 있다.
Word Embedding 종류
- 단어의 출현 빈도수를 기반으로 하는 count-based word embedding
- Bag of Words, TF-IDF
- 단어 벡터간의 의미 유사성을 표현할 수 없다.
- 단어를 고정된 dense vector로 표현한 word embedding
- Word2Vec, FastText, Glove
- 분산 표현이다 : 단어의 의미를 다차원 공간에 벡터화
- 분산 표현의 가정 : 비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 갖는다.
- 주변의 문맥에 따라 단어의 vector가 바뀌는 contextualized word embedding
- GPT, ELMo, BERT