서브워드 토큰화 소개

jihyelee·2023년 12월 20일
0

토큰 (Token)

  • 자연어처리에서 핵심적인 개념 중 하나
  • 문장이나 문단은 일련의 시퀀스(sequence)라고 생각할 수 있는데, 이걸 의미를 가진 단위로 쪼갠 것을 토큰이라고 지칭
    • 예를 들어 "I am a model"이라는 문장이 있고 이 문장에 단어 단위의 토큰화를 진행한다면 토큰은 ["I", "am", "a", "model"]로 나타낼 수 있음
  • 자연어처리에서 토큰화는 전처리 단계, 즉 딥러닝 모델을 실제로 학습하기 전 진행
    • 좋은 토큰을 만들어야 딥러닝 모델의 학습 또한 효율적이기 때문

좋은 토큰이란

  • 충분한 의미를 내포
  • 적절한 크기의 단어사전을 만들 수 있도록 설계
  • 토큰이 너무 잘게 쪼개져 특정한 의미를 담을 수 없을 경우, 이를 기반으로 딥러닝 모델이 학습을 진행한다면 인간의 언어에 담겨진 특성을 충분히 파악할 수 없음
  • 반면 토큰이 너무 클 경우에는 단어사전의 크기가 너무 커지는 문제에 봉착

단어사전이란

  • 딥러닝 모델이 학습할 때 특정 토큰과 숫자형 데이터를 매핑시켜 놓고 참고하는 정보
  • 기계는 인간의 언어를 이해할 수 없기 때문에 텍스트를 숫자로 바꾸는 작업이 필요
  • 모든 토큰을 각기 다른 숫자형 데이터에 매핑하는 게 아니라 중복되는 동일 토큰은 동일한 숫자형 데이터로 변환
    • 예를 들어 "I love you, I hate you"라는 문장을 기반으로 단어사전을 만든다면 {"I": 1, "love": 2, "you": 3, "hate": 4}로 만들 수가 있는데, 그러면 기계는 해당 문장을 "1 2 3, 1 4 3"이라는 숫자로 바꿔서 이해할 수 있음
    • 사실 숫자형 데이터는 훨씬 복잡한 벡터로 표현해야 하는데, 이해의 편의를 위해 간단하게 작성
  • 참고해야 할 단어사전의 크기가 커진다면 딥러닝 모델은 단어사전에 존재하는 토큰들의 유의미한 특징을 파악하기 어려워진다.
  • 단어사전을 만들 때 모든 단어를 포함할 수 없기 때문에 일반적으로는 사전의 크기를 정해놓고 빈도수 기반으로 단어를 포함
    • 텍스트를 숫자로 바꾸는 과정에서 단어사전에 없는 토큰을 만날 경우, 해당 토큰은 OOV(out-of-vocabulary, 단어사전에 값이 없음)라는 특별한 토큰의 숫자값으로 변환

단어 기반 토큰화 (word-based tokenization)

  • 단어사전의 크기가 매우 커질 수 있음
    • 예: dog, dogs, dog's를 각기 다른 단어로 인식, 3개를 모두 단어사전에 포함
  • OOV(out-of-vocabulary token)의 양 증가
    • OOV는 다른 성격의 단어도 모두 하나의 카테고리로 묶는 개념이기 때문에, OOV가 많으면 딥러닝 모델의 성능이 저하됨
  • 유사한 단어들 사이의 의미관계 파악 불가
    • 예: dog, dogs, dog's가 유사한 의미를 포함하고 있음에도 각기 다른 숫자형 데이터로 변환된다면, 해당 숫자들 사이의 연관관계를 파악하기 어려움

글자 기반 토큰화 (character-based tokenization)

  • 시퀀스가 매우 길어짐
    • 예: 단어 기반 토큰화에서는 dog를 하나의 숫자로 표현할 수 있었다면, 글자 기반에서는 3개의 숫자로 표현
  • 개별 토큰의 유의미성이 떨어짐
    • 예: dog와 dollar의 의미는 전혀 다름에도, d와 o를 동일하게 포함하고 있어 글자 기반 토큰화에서는 연결고리가 생길 수도 있음

서브워드 토큰화 (subword tokenization)

  • 이러한 한계 때문에 최근에는 서브워드 토큰화가 주로 사용됨
  • 자주 사용되는 단어는 더 작은 서브워드로 나눠져서는 안 됨
    • 예를 들어, dog는 d, o, g로 나눠져선 안 됨
  • 자주 사용되지 않는 단어는 의미를 갖는 서브워드로 분해되어야 함
    • 예를 들어, dogs는 dog, s로 나눠져야 하며 tokenization은 token, ization으로 분리되어야 함
  • 서브워드는 비슷한 통사론적, 의미론적 단위로 텍스트를 식별할 수 있기 때문에 널리 사용
  • 서브워드를 만드는 과정과 관련해서는 BPE, Byte-level BPE, WordPiece, Unigram, SentencePiece 등 다양한 토큰화 알고리즘이 존재

관련 링크 (link)

profile
Graduate student at Seoul National University, majoring in Artificial Intelligence (NLP). Currently AI Researcher at LG CNS AI Lab

0개의 댓글