부스트캠프 AI Tech 4기

(NLP 기초대회) Tokenization

쉬엄쉬엄블로그 2023. 7. 18. 11:49
728x90

이 색깔은 주석이라 무시하셔도 됩니다.

Tokenization

Tokenization

What is Tokenization?

  • 신경망의 경우 입력은 항상 ‘숫자’로 입력된다.

  • 사람의 언어를 ‘숫자’로 바꾸려면 크게 2가지 문제를 풀어야 한다.

    • 어떤 단위로 쪼갤 것인가?
    • 어떤 숫자로 바꿀 것인가?
  • Text를 숫자로 변환하려는 시도

    • Bag of Words

      https://web.stanford.edu/~jurafsky/slp3/4.pdf

      • 단어가 나타난 횟수를 세어 text를 숫자로 변환
      • 벡터의 차원수는 어휘 개수가 됨
    • TF-IDF (Term Frequency-Inverse Document Frequency)

      • 단어의 빈도와 역 문서 빈도를 사용하여 DTM내의 각 단어들마다 중요한 정도를 가중치 변환
    • Word2Vec

      https://wikidocs.net/images/page/22660/word2vec_renew_2.PNG

      • 단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화

How do we do it?

  • Text를 숫자로 바꾸는 방법에는 2가지 문제를 해결해야 한다.
    1. text를 어떤 단위(token)로 나눌 것인가? → Tokenization
      • 문장 혹은 문서들을 일정한 의미 덩어리로 쪼개는(어휘들의 조합으로 만드는) 것을 Tokenization이라고 함
    2. token을 어떤 숫자로 바꿀 것인가? → Embedding
      • 신경망 기반 AI는 크게 보면 그냥 숫자들을 곱하기, 더하기로 묶어 놓은 것
      • 특별한 숫자를 부여해주는 것을 Embedding 이라고 함

Tokenization Methods

  • 다양한 단위를 고려해볼 수 있음

    • Character-based Tokenization
    • Word-based Tokenization
    • Subword-based Tokenization
  • Examples

    https://www.dbpia.co.kr/journal/articleDetail? nodeId=NODE07434412&language=ko_KR&hasTopBanner=false

  • Character-based Tokenziation

    • Character 단위로 token화 하는 방법
    • 상대적으로 긴 length가 만들어지므로 많은 메모리 및 계산량이 필요
    • 하지만 개발자 입장에서는 깔끔하고 쉬움
  • Word-based Tokenization

    • Text를 delimeter 단위로 token화 하는 가장 흔한 방법.
      • 주로 쓰이는 delimeter는 space (띄어쓰기)
    • 언어에 따라 (특히 한국어) 띄어쓰기가 효율적이지 않은 경우도 많음
  • Subowrd-based Tokenization

    • 문장 혹은 단어를 통계적으로 의미있는 단위로 묶거나 분할해서 처리
    • tokenization이 2개의 sub 어휘([token, ization])로 나눠짐
  • Subword | BPE

    • Byte Pair Encoding(BPE)

      • 어휘를 묶어 나가는 알고리즘 중 하나

      • 출처 : https://wikidocs.net/22592

      • 여기서 OOV인 lowest가 등장한다면?

        • low와 est로 인코딩
        • 즉, 더 작은 단위로 내려가면서 문자수준으로 결국 tokenization됨
  • Tokenization Tools

    • KoNLPy(한국어)
      • 다양한 형태소 분석, 태깅 라이브러리를 가진 한국어 정보처리 파이썬 패키지 KoNLPy
    • SentencePiece(English and others)
      • Google이 공개한 Tokenization 도구
      • BPE, unigram 방식 등 다양한 subword units를 지원함
    • Huggingface - Tokenizers
      • Huggingface의 Tokenizers의 경우 기배포된 다양한 언어모델들의 tokenization방법과 어휘사전 등을 지원함

출처: 부스트캠프 AI Tech 4기(NAVER Connect Foundation)