Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- Transformer
- Python
- 딥러닝
- SVD
- 연립일차방정식
- 역행렬
- word embedding
- 데이터프레임
- 선형대수학
- 신경망 학습
- ReLU
- 정칙행렬
- sigmoid
- machine translation
- PPMI
- DataFrame
- NLP
- 판다스
- one-hot vector
- NMT
- pandas
- 프로그래머를 위한 선형대수
- 동시발생 행렬
- word2vec
- RNN
- Linear Algebra
- 밑바닥부터 시작하는 딥러닝
- 자연어처리
- 벡터간 유사도
- 밑바닥부터 시작하는 딥러닝2 2장
Archives
- Today
- Total
생각하는감자
Word Embedding (3) - GloVe 본문
GloVe : Global Vectors for Word Representation
GloVe는 동일한 word pair에 대해 반복적인 계산을 하지 않기 위해 만들어졌다. 모든 word들의 입력 및 출력 벡터들의 모든 조합의 내적 값들을 다 계산해놓은 co-accurrence matrix를 먼저 만들고 이 행렬이 Ground Truth 에 해당하는 행렬과 근사적으로 같아야 한다는 것이 GloVe의 아이디어이다.
수식으로 표현하면 다음과 같다.
i 는 모든 입력 단어이고 j 는 모든 출력단어이다.
이 부분부터 보자면, 해당 계산은 ground truth similarity를 의미한다. log함수의 특징 중 하나는 값이 크면 클수록 증가폭이 작아진다는 것인데, log 함수를 사용한 이유는, 값이 커진다고 해서 그게 유사도(similarity)에 곧이곧대로 반영된다기 보다는 그 값이 커질수록 증가폭이 작아지는 형태로 변환해주기 위함이다.
이 계산은 입력단어 벡터와 출력단어 벡터의 실제 내적값을 계산한것이다.
이것은 빈도수에 비례해서 가중치를 부여한다는 의미이다. 이렇게 계산하는 이유는, GloVe에서는 한번에 내적값만 도출하지만 Word2Vec에서는 내적값만큼 반복하여 학습할 수 있도록 되어 있다. 따라서, 내적값에 비례하여 가중치를 키워줘야 한다.
이때 사용되는 함수f의 형태는 다음과 같다.
GloVe 의 장점
- 학습속도가 빠르다. (Word2Vec보다 빠름)
- 짧은 문장(small corpus)에서도 잘 학습된다.
'NLP' 카테고리의 다른 글
LSTM, GRU (0) | 2023.01.07 |
---|---|
RNN의 여러가지 형태 (0) | 2023.01.06 |
Word Embedding (2) - Word2Vec (0) | 2023.01.05 |
Word Embedding (1) - Bag of Words (0) | 2023.01.04 |
NLP Pipeline (0) | 2023.01.04 |