Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

Zorba blog

한국어 임베딩(이기창 저. 2019) / Chapter 1. Introduction 본문

자연어처리

한국어 임베딩(이기창 저. 2019) / Chapter 1. Introduction

Zorba blog 2022. 8. 6. 11:28

1. 임베딩이란

- 사람이 쓰는 자연어를 기계가 이해할 수 있는 숫자의 나열인 벡터(Vector)로 바꾼 결과, 또는 그 일련의 과정.

- 단어나 문장 각각을 벡터로 변환하여 벡터 공간(Vector Space)으로 끼워 넣는다(embed)는 의미

 

가장 간단한 형태의 임베딩

-> 단어의 빈도를 그대로 벡터로 사용하는 것.


2. 임베딩의 역할

1) 단어-문장 간 관련도 계산

    - 단어-문서 행렬은 가장 단순한 형태의 임베딩.

    - 현업에서는 이보다 복잡한 형태의 임베딩 사용(Word2Vec, Google. 2013.)

ex. '희망'이라는 단어의 Word2Vec 임베딩

[-0.00209, -0.03918, 0.02419 ... 0.01715, -0.04975, 0.09300]

- 이처럼 단어를 수치화하면 단어 벡터들 사이의 유사도를 측정하는 것이 가능.

 

2) 의미적, 문법적 정보 함축

    - 임베딩은 벡터이므로 사칙연산이 가능.

    - 벡터들 간의 덧셈, 뺄셈을 통해 단어들 사이의 의미적, 문법적 관계를 도출해낼 수 있게 됨.

 

3) 전이 학습(Transfer Learning)

    - 임베딩을 다른 딥러닝 모델의 입력값으로 사용하는 기법.

    - 임베딩에 의미적, 문법적 정보 등이 포함되어 있으므로 성능과 학습 속도가 향상됨.


3. 임베딩 기법의 역사

1) 통계 기반 -> 신경망(Neural Network) 기반

    - 전통적 임베딩은 주로 말뭉치의 통계량을 직접적으로 활용.

    - 잠재 의미 분석(Latent Semantic Analysis) : 크기가 큰 행렬에 특이값 분해등의 기법을 적용하여 차원을 축소.

    - 이때 '크기가 큰' 행렬은 단어-문서 행렬을 비롯하여 TF-IDF, 단어-문맥 행렬, 점벌 상호 정보량 행렬 등 여러가지.

 

2) 단어 수준에서 문장 수준으로

    - 2017년 이전의 임베딩 기법들은 주로 단어 수준(NPLM, Word2Vec, Glove, FastTex, Swivel)

    - 단어 수준 임베딩은 동음이의어를 분간하기 어려움.

    - 단어의 형태가 같다면 동일한 단어로 판단하고, 모든 문맥 정보를 해당 단어 벡터에 투영하기 때문

       ex. 먹는 사과, 미안할때 사과한다는 의미의 사과 둘 다 같은 벡터를 가짐.

    - 2018년 초 ELMo 발표, BERT, GPT

    - 문장 수준 임베딩은 개별 단어가 아닌 단어 시퀀스 전체의 문맥적 의미를 함축.

    - 단어 임베딩 기법보다 전이학습 효과가 높음.

 

3) 룰 기반 -> End-to-End -> Pre-train/Fine Tuning

    - 언어학적 지식을 사용하는 룰 기반 임베딩이 1990년대의 초기 방식.

    - 2000년대 중반 이후 자연어 처리 분야에서도 딥러닝 모델이 주목받기 시작하며 입출력 사이의 관계에 사람이 전혀 개입하지 않고, 모델 스스로 이해하도록 유도하는 End-to-End 모델 등장.

    - 기계번역에서 널리 쓰였던 Seq2Seq 모델이 대표적

    - 2018년 ELMo 모델이 제안된 이후 자연어 처리 모델은 End-to-End에서 Pre-Train/Fine Tuning 방식으로 발전.

    - 먼저 대규모 말뭉치로 임베딩을 만들고(Pre-Train), 활용을 원하는 구체적 문제에 맞는 소규모 데이터로 임베딩을 포함한 모델 전체를 업데이터(Fine Tuning, Transfer Learning)


4. 임베딩 기법의 종류

1) 임베딩 기법의 종류 : 행렬 분해 factorization 기반

    - 말뭉치 정보가 들어 있는 원본 행렬을 두 개 이상의 작은 행렬로 분해.

    - 분해한 행렬을 서로 더하거나 이어 붙여 임베딩으로 활용.

    - Glove, Swivel 등이 이에 해당.

 

2) 임베딩 기법의 종류 : 예측 기반

    - 어떤 단어 주변에 특정 단어가 나타날지 예측

    - 이전 단어들이 주어졌을 때 다음 단어를 예측

    - 문장 내 일부 단어를 지우고 해당 단어가 무엇일지 예측

    - 위와 같은 예측 과정에서 학습하는 임베딩 기법으로, 신경망 기반이며 Word2Vec, FastText, BERT, ELMo, GPT 등

 

3) 임베딩 기법의 종류 : 토픽(Topic) 기반

    - 주어진 문제에 잠재된 주제(Latent Topic)를 추론(Inference)하는 방식으로 임베딩을 수행.

    - 잠재 디리클레 할당(LDA, Latent Dirichlet Allocation)이 이에 해당.

    - LDA는 학습이 완료되면 각 문서가 어떤 주제 분포를 갖는지 확률 벡터 형태로 반환.


5. 주요 용어

  • 말뭉치(Corpus) : 특정한 목적을 가지고 수집한 표본(sample)
  • 컬렉션(Collection) : 말뭉치에 속한 각각의 집합(한국어 위키백과, 네이버 영화 리뷰)
  • 문장(Sentence) : 데이터의 기본 단위(.!? 등으로 구분된 문자열을 문장으로 취급)
  • 문서(Document) : 생각이나 감정, 정보를 공유하는 문장의 집합(개행문자 \n 으로 구분된 문자열을 문서로 취급)
  • 토큰(Token) : 문장을 이루는 가장 작은 단위(단어 word, 형태소 morpheme, 서브워드 subword 라고도 함.)
  • 토크나이즈(Tokenize) : 문장을 토큰 시퀀스로 분석하는 과정
  • 어휘 집합(Vocabulary) : 말뭉치에 있는 모든 문서를 문장으로 나누고 여기에 토크나이즈를 실시한 후 중복을 제거한 토큰들의 집합.
  • 미등록 단어(Unknown Word) : 어휘 집합에 없는 토큰

 

 

Comments