임베딩이란

eenzeenee·2023년 8월 11일

TechInterview

목록 보기
1/4

임베딩이란

  • 사람이 사용하는 자연어를 기계가 이해할 수 있는 형태인 vector 표현으로 변환하는 과정
  • 단어 혹은 문장을 벡터로 변환해 임의의 벡터 공간에 위치시킨다는 의미로 임베딩이라고 표현
  • 가장 간단한 임베딩 표현으로는 단어 출현 횟수를 통해 문서의 임베딩 값을 구하는 방법이 있다.

One-hot Encoding

  • 자연어를 임베딩하는 가장 단순한 방법으로 단어의 출현 여부를 통해 문장 혹은 문서를 벡터화하는 방식이다.
  • 이를 활용할 경우 임베딩 벡터가 희소행렬로 표현되어 벡터 공간의 크기가 매우 커져 비효율적이다.
  • 단어의 등장 여부에 대해서만 판단할 수 있으며 단어가 어떠한 특징을 가지는지에 대해서는 고려할 수 없다.

LSA

  • 문서 전체의 각 단어 빈도수를 담은 행렬(전체적인 통계 정보)을 입력받아 차원을 축소시켜 잠재된 의미를 끌어내는 방법론
  • 각 단어의 유사성, 관계성 보다는 문서 전체에 단어가 등장하는 빈도를 통해 단어를 임베딩하고자 함

Word2Vec

  • 구글에서 발표한 단어 임베딩 모델
  • 문서 전체가 아닌 중심 단어를 둘러싼 주변 단어들에 집중
  • Skip-gram과 CBoW 방식 존재
    • Skip-gram : 타겟 단어를 통해 주변 문맥 단어가 무엇일지 예측하는 과정을 통해 학습
    • CBoW : 주변 문맥 단어를 통해 타겟 단어가 무엇일지 예측하는 과정을 통해 학습
  • 장점
    • 단어 간 관계 표현 가능 : 벡터 간 연산을 통해 단어의 관계를 표현할 수 있음 (ex. 한국 - 서울 + 도쿄 = 일본)
  • 단점
    • 사용자가 지정한 일정 주변 단어 개수에 대해서만 학습이 진행되어 데이터 전체에 대한 정보를 담기 어려움
    • 입력 시 one-hot encoding을 활용하기에 계산량이 매우 크다
  • Negative Sampling
    • 계산량을 줄이기 위한 방법론
    • 모든 단어에 대해 임베딩을 조정하는 것이 아니라 주변 단어와 주변단어가 아닌 단어들 중 일부를 활용하여 학습
    • 주변 단어를 positive, 주변 단어가 아닌 단어들 중 일부를 negative로 간주하여 학습

Glove

  • LSA와 Word2Vec의 단점을 보완하기 위한 단어 임베딩 방법론
  • 동시 등장 확률을 통해 단어 임베딩
    • 동시 등장 확률 : 특정 단어 i가 등장했을 때 어떤 단어 k가 등장한 횟수를 카운트하여 계산한 조건부 확률 P(k∣i)
    • 유사한 단어일수록 동시 등장 확률이 크고 그렇지 않을 경우 작음
  • 특정 중심 단어가 주어졌을 때 임베딩된 두 단어 벡터의 내적이 두 단어의 동시등장확률 사이의 비율이 되도록 임베딩 모델 학습

BERT embedding

  • 문맥을 고려한 임베딩이 가능해짐
  • Word2Vec은 단어가 나타나는 문맥과 관계 없이 각 단어가 고정된 표현을 가지나, BERT의 경우 주변 단어에 따라 동적으로 변하는 단어 임베딩을 생성함
    • 트랜스포머 모델 기반으로 각 단어를 문장 내 모든 단어들과 연결하여 문맥 이해 가능
  • 입력 임베딩
    • 토큰 임베딩 (WordPiece Embedding) : 문장 시작과 끝에 [CLS], [SEP] 토큰 추가하여 입력 데이터를 임베딩으로 변환하는 임베딩 레이어 거친 결과값 활용
    • 세그먼트 임베딩 (Segment Embedding) : 입력으로 들어온 두개의 문장을 구분하는 데에 활용되는 임베딩, 세그먼트 임베딩 레이어는 출력값으로 A문장을 나타내는 임베딩 혹은 B문장을 나타내는 임베딩 두가지 값만 가지게 됨
    • 포지션 임베딩 (Position Embedding) : 트랜스포머 기반 모델이므로 각 단어에 대해 병렬적으로 처리함. 이때 단어 순서와 같은 정보를 제공하기 위해 포지셔널 임베딩 레이어 활용하여 문장 내 단어 순서 표현 및 학습
  • 출력 임베딩
    • [CLS] : 해당 토큰은 BERT의 NSP(연속된 문장인지 아닌지 판별) 태스크에 활용되므로 입력 데이터 모두의 의미를 반영하는 임베딩 값이 됨
    • 토큰 임베딩 : 모든 토큰 벡터를 참고하여 (셀프 어텐션) 계산된 결과로, 문맥 정보를 가진 임베딩 값
profile
Steadily

0개의 댓글