한국어 임베딩(1) - 서론

이현우·2022년 4월 15일
0

한국어 임베딩

목록 보기
1/3

1.1 임베딩이란

사람이 쓰는 자연어를 기계가 이해할 수 있는 숫자의 나열인 벡터로 바꾼 결과 혹은 그 일련의 과정 전체

1.2 임베딩의 역할

단어/문장 간 관련도 계산
의미적/문법적 정보 함축
전이학습

1.2.1 단어/문장 간 관련도 계산

단어를 벡터로 임베딩하는 순간 단어 벡터들 사이의 유사도를 계산하는 일이 가능함

  • 대표적 : Word2Vec
  • 희망 - 소망, 절망 - 체념, 자동차 - 승용차 ....

1.2.2 의미적/문법적 정보 함축

단어 벡터 간 덧셈/뺄셈을 통해 단어들 사이의 의미적, 문법적 관계를 도출해낼 수 있다. 구체적으로는 첫 번째 단어 벡터 - 두 번째 단어 벡터 + 세 번째 단어 벡터를 계산해보는 것

  • 아들 - 딸 + 소녀 = 소년

1.2.3 전이 학습

임베딩을 다른 딥러닝 모델의 입력값으로 쓰는 기법

  • 의미적, 문법적 정보 등이 녹아 있는 임베딩을 입력값으로 쓰는 전이 학습 모델은 수행하려는 테스크의 성능 역시 올라감

1.3 임베딩 기법의 역사와 종류

1.3.1 통계 기반에서 뉴럴 네트워크 기반으로

초기 임베딩 기법은 대부분 말뭉치의 통계량을 직접적으로 활용하는 경향이 있었음

  • 대표적인 기법
    • 잠재 의미 분석 : 단어 사용 빈도 등 말뭉치의 통계량 정보가 들어 있는 커다란 행렬에 특이값 분해 등 수학적 기법을 적용해 행렬에 속한 벡터들의 차원을 축소하는 방법
    • 희소행렬 : 행렬 대부분의 요소 값이 0인 행렬
    • 단어-문서 행렬은 말뭉치 전체의 어휘수와 같기 때문에 보통 행의 개수가 많고 행렬 대부분의 요소 값은 0이다.
    • 희소 행렬을 다른 모델의 입력값으로 사용하게 되면 계산량도 메모리 소비량도 쓸데없이 커지는 문제점 때문에 원래 행렬의 차원을 축소해 사용한다.

최근에는 뉴럴 네트워크 기반의 임베딩 기법들이 주목된다.

  • 뉴럴 네트워크 기반 모델들은 이전 단어들이 주어졌을 때 다음 단어가 뭐가 될지 예측하거나, 문장 내 일부분에 구멍을 뚫어 놓고 해당 단어가 무엇일지 맞추는 과정에서 학습된다.

1.3.2 단어 수준에서 문장 수준으로

2017년 이전의 임베딩 기법들은 대개 단어 수준 모델이었다.

  • NPLM, Word2Vec, GloVe, FastText, Swivel 등이 여기 속한다.
  • 동음이의어를 분간하기 어렵다는 단점이 있다.
    2018년 초 ELMo(Embeddings from Language Model)가 발표된 이후 문장 수준 임베딩 기법들이 주목을 받았다.
  • BERT나 GPT등이 여기 속한다.
  • 개별 단어가 아닌 단어 시퀀스 전체의 문맥적 의미를 함축하기 때문에 단어 임베딩 기법보다 전이 학습 효과가 좋은 것으로 알려져 있다.

1.3.3 룰 → 엔드투엔드 → 프리트레인/파인 튜닝

: 한국어에서 명사 앞에 관형사가 올 수 있고 조사가 명사 뒤에 오는 경향이 있으므로 이러한 규칙을 모델에 알려주는 것

엔드투엔드 모델 : 데이터를 통째로 모델에 넣고 입출력 사이의 관계를 사람의 개입 없이 모델 스스로 처음부터 끝까지 이해하도록 유도하는 것

프리트레인 : 대규모 말뭉치로 임베딩을 만드는 것

  • 임베딩에는 말뭉치의 의미적, 문법적 맥락이 포함돼 있다.

파인튜닝, 전이학습 : 임베딩을 입력으로 하는 새로운 딥러닝 모델을 만들고 우리가 풀고 싶은 구체적 문제에 맞는 소규모 데이터에 맞게 임베딩을 포함한 모델 전체를 업데이트

1.3.4 임베딩의 종류와 성능

  • 행렬 분해
  • 예측
  • 토픽 기반 방법

행렬 분해 기반 방법

  • 말뭉치 정보가 들어 있는 기존 행렬을 두 개 이상의 작은 행렬로 쪼개는 방식의 임베딩 기법
  • Glove, Swivel 등이 여기에 속함

예측 기반 방법

  • 어떤 단어 주변에 특정 단어가 나타날지 예측하거나
  • 이전 단어들이 주어 졌을 때 다음 단어가 무엇일지 예측하거나
  • 문장 내 일부 단어를 지우고 해당 단어가 무엇일지 맞추는 과정에서 학습하는 방법
  • Word2Vec, FastText, BERT, ELMo, GPT 등이 여기에 속함

토픽 기반 방법

  • 주어진 문서에 잠재된 주제를 추론하는 방식으로 임베딩을 수행하는 기법
  • 잠재 디리클레 할당이 대표적인 기법이다.

1.5 이 책이 다루는 데이터와 주요 용어

  • 말뭉치 : 임베딩에 사용할 모든 데이터
    • 임베딩 학습이라는 특정한 목적을 가지고 수집한 표본
    • ex ) 한국어 위키백과와 네이버 영화 리뷰 데이터를 임베딩에 쓴다고 가정하면 그 둘을 모두 합친 것
  • 컬렉션 : 말뭉치에 속한 각각의 집합
    • ex) 국어 위키백과와 네이버 영화 리뷰를 말뭉치로 쓴다면 이들 각각이 컬렉션이 됨
  • 문장 : 생각이나 감정을 말과 글로 표현할 때 완결된 내용을 나타내는 최소의 독립적인 형식 단위
    • 이 책이 다루는 데이터의 기본 단위
  • 문서 : 생각이나 감정, 정보를 공유하는 문장 집합
  • 토큰 : 이 책에서 다루는 가장 작은 단위
    • 단어
    • 형태소
    • 서브워드
  • 토크나이즈 : 문장을 토큰 시퀀스로 분석하는 과정
    • 실수, 인, 초월수, 는, 모두, 무리수, 이, 다, .
  • 어휘 집합 : 말뭉치에 있는 모든 문서를 문장으로 나누고 여기에 토크나이즈를 실시한 후 중복을 제거한 토큰들의 집합
  • 미등록 단어 : 어휘 집합에 없는 토큰
  • 시퀀스 데이터 : 순서(sequence)가 있는 데이터
    • 시퀀스 원소들은 특정 순서를 가지므로 독립적이지 않다.
    • 대표적으로 시계열 데이터(시간의 흐름에 따라 기록된 데이터)와 텍스트 데이터(텍스트도 쪼개어 보면 시간에 따라 문맥이 존재. 즉, 순서가 존재)

참고 서적

한국어 임베딩 - 이기창 지음

profile
GitHub - https://github.com/jenu8628

0개의 댓글