Deep Learning/Natural Language Processing

[pytorch] 단어와 타입 임베딩

frances._.sb 2022. 7. 27. 12:20
728x90

1. 임베딩

 

- 임베딩 : 이산 타입과 벡터 공간의 포인트 사이에 매핑을 학습하는 것

 

 

  1.1 임베딩 이유

 

- 문장에 등장하는 카운트 값은 단어의 빈도에 상응하는데, 이 카운트 기반 표현은 중요한 내용이나 의미가 벡터의 여러 차원에 표현되어서 분산적 표현이라고도 부른다.

 분산 표현은 단어가 훨씬 낮은 차원의 밀집 벡터로 표현된다는 사실에서 이름을 따왔습니다. 단어의 의미와 다른 속성이 이 밀집 벡터의 여러 차원에 걸쳐 분산됩니다.

- 저차원으로 학습된 밀집 표현은 one-hot vector나 카운트 기반의 벡터와 다른 장점이 있는데,

 

 ① 계산이 효율적으로 수행된다.

 ② 카운트 기반은 여러 차원에 비슷한 정보를 중복해 인코딩한 고차원 벡터를 만듭니다.

 ③ 매우 고차원 입력은 머신러닝과 최적화에서 실제로 문제가 될 수 있다.

    → 차원의 저주로 불리며, 특이값 분해나 주성분 분석과 같은 차원 축소 방법을 선택한다.

 ④ 작업에 특화된 데이터에서 학습된 표현은 현재 작업에 최적입니다. 

 

 

   1.1.1 장점

 

- 원-핫 벡터처럼 입력으로 받는 linear 층의 가중치 행렬에는 원-핫 벡터의 크기와 같은 개수의 열이 있어야 한다. 그 후 행렬 곱셈을 할 때, 결과 벡터는 실제로 0이 아닌 원소가 가리키는 행을 선택해서 만든다.

 그러나, 임베딩을 이용하면 행렬 곱셈 단계를 건너 뛰고 직접 정수를 인덱스로 사용하여 선택된 행을 추출할 수 있다.

 

- 실제로 임베딩은 원-핫 벡터 또는 카운트 기반 표현보다 낮은 차원 공간에서 단어를 표현하는 데 자주 사용된다.

- 단어 임베딩 방법은 모두 단어만으로 (즉, 레이블이 없는 데이터로) 학습되지만 지도 학습 방식을 사용합니다.

 

 

 

   1.1.2 사전 훈련된 단어 임베딩

 

  • 임베딩 로드

- 원본 Word2Vec 에서 스탠퍼드의 GLoVe ( https://stanford.io/2PSIvPZ )

- 페이스북의 FastText ( https://fasttext.cc

 

fastText

Library for efficient text classification and representation learning

fasttext.cc



 

 

2. CBOW 임베딩

 

 

예제 코드 확인

728x90
반응형