Embedding

임베딩

자연어를 컴퓨터가 이해할 수 있도록 실수 벡터 형태로 표현한 것으로, 단어 간 유사성 이해, 언어 모델링, 자연어 처리에 필수적인 개념이다.

One-hot Encoding

  • 모든 단어들에게 숫자 인덱스를 하나씩 부여

  • 단점

    • 코사인유사도가 항상 0

word2vec

  • 단순한 단어 임베딩

  • 분포 가설 기반

  • 맥락 기반 표현

  • 아키텍처

    • CBOW : 주변 단어들을 입력받아, 중심 단어 예측

    • Skip-Gram : 중심 단어를 입력받아, 주변단어 예측. 대규모 데이터셋에서 더 좋은 성능을 보이는 경향

  • 단점

    • 학습 데이터에 없는 단어에 대해서는 임베딩을 구하기 어려움

    • 다의어에 대한 처리가 어려움

fasttext

  • word2vec 기반

  • 단어 + 쪼갠 단어(내부단어) 임베딩

BERT

  • 문장의 일정 토큰을 없애고, 추론하는 식으로 학습

  • transformer의 encoder부분의 학습 과정을 따온 언어모델

  • 학습 방법

    • 마스크 랭귀지 모델

      • 문장 중간의 토큰을 가려서 학습하는 방식. 기존 언어모델의 sequential한 특징과 다르게 양방향의 토큰을 모두 사용하는 특징을 가지고있다.

    • 다음 문장 예측

      • 연이은 두 문장의 연속 여부 판단

  • python 코드를 통해 api 호출을 하는 방식으로 embedding 추출 가능

참고하면 좋은 자료