728x90
반응형
Lecture 2. Word Vectors and Word Senses
참고
- https://www.youtube.com/watch?v=8wG0sJm1EaU&list=PLetSlH8YjIfVdobI2IkAQnNTb1Bt5Ji9U&index=2
- https://misconstructed.tistory.com/30
- https://data-weirdo.github.io/data/2020/10/03/data-nlp-02.Wv/
Index
- Optimization
- Word Prediction Methods
- GloVe: Global Vectors for Word Representation
- How to evaluate word vectors
- Word sense and word sense ambiguity
Optimization
- Gradient Descent Algorithm (GD)
- 로스를 최소로 하는 세타를 찾아가는 알고리즘.
- Stochastic Gradient Descent (SGD)
- GD 는 corpus 의 모든 단어를 고려하기 때문에 비교적 정확한 방향으로 이동 하지만 학습속도가 매우 느림
- 랜덤하게 샘플을 뽑아서 그라디언트를 계산 후 세타를 업데이트함. 하나의 데이터 만을 고려하기 때문에 길을 헤맬 수 있으므로 이를 해소하기 위한 배치를 사용
Word Prediction Methods
- Count Based Vs. Direct Prediction
- Count Based
- 빠른 학습 속도, 효율적으로 통계 정보 사용 가능(Co-occurence matrix)
- 주로 단어간의 유사성 여부만 포착 가능(단어간의 관계 고려 불가)
- 대출, 통장 이라는 단어 주변에 “은행" 빈도 높게 등장하여 은행-대출, 은행-통장 이라는 유사성은 포착 가능하지만, 의미론 적으로 대출, 통장 관계를 고려할 수 없음.
- 큰 빈도수에 과도하게 중요도 부여
- Direct Preiction
- 모든 단어에 대한 내적 값을 구하여 이진트리로 표현하므로 단어 간의 관계를 학습 할 수 있음.
- Corpus size 크기에 따라 성능 영향이 치명적임
- Target word 와 주변단어를 고려하여 예측 하므로 context 주변 단어만큼이 window-size 가 됨.
- 모든 단어에 대한 내적 값을 구하여 이진트리로 표현하므로 단어 간의 관계를 학습 할 수 있음.
- 따라서 “Count Based” 는 co-occurence M 를 통해 단어간 유사도는 알 수 있지만 단어간 관계를 알수 없고, “direct prediction (cbow, skipgram)” 은 단어간 관계는 알 수 있지만 window-size가 클 수록 연산 버든이 커짐.
이와같은 각각의 단점을 보완하여 통계적 유사도와 단어간 관계를 같이 계산 할 수 있는 기법으로 “GloVe” 등장.
GloVe: Global Vectors for Word Representation
- Glove Objective Function
- GloVe 의 목적함수는 임베딩된 두 단어벡터의 내적이 말뭉치 전체에서의 동시 등장확률 로그값이 되도록 정의
- f(Xij) 의 where 박스는 특정 단어가 지나치게 빈도수가 높아서 Xij 가 튀는 현상을 방지하기 위해 추가한 함수(0~1로 가두는 활성화함수로 이해해도 좋을 듯)
- GloVe 의 목적함수는 임베딩된 두 단어벡터의 내적이 말뭉치 전체에서의 동시 등장확률 로그값이 되도록 정의
- Motivation - Encoding Meaning in vector differences
- Key: 동시등장 확률의 비율(Ratio of co-occurence proba) 은 이 비율을 구성하는 단어들 간의 관계(Relationship) 를 표현하는데 사용 할 수 있다 → 단어간 유사도를 표현하는 co-occurence M 의 proba raio 를 계산하여 단어간 관계를 표현 할 수 있음.
- 벡터 매트릭스 확률을 가지고 “ice” 가 포함 된 context 에 “solid” 가 등장 할 확률을 구할 수 있음. 즉 Ratio of co-occurence proba 정보를 인코딩 하여 단어 벡터 공간 안에 표현.
- 1.36, 0.96 으로 단어 간 강한/약한 상관 관계값을 얻을 수 있었음. 그러나 이것은 space 상의 Ratio of Co-occ Proba.
- 이 ratio 를 선형(linear)의 의미적 요소(meaning components) 가 되게 하려면(저 확률값에 선형관계를 부여 하려면. (activation function 통과 시키려면 선형정의 필수.)
- word vector 들의 내적이 log(co-occ proba) 와 같아지게 정의 해야 함.(목적함수).
- 다시 말하면, wi*wj = logP(i | j) 로 정의하면 두 벡터 간의 차이를 linear 하게 표기 할 수 있음.
- x=solid, a=ice, b=steam
- solid*(ice - steam) ←두 단어의 벡터가 logP 와 같다를 설명하기 위해 두 벡터간의 차이를 linear 한 형태로 표기하고 있음.
- log 를 취해주는건 ceiling(limit) 역할과 비슷한데 the, he, she 등 매우 빈도높게 등장하는 단어를 보정 할 수 있음.
- 즉, 두 단어의 벡터를 내적하면 corpus 전체에서 두 단어가 동시에 등장하는 로그확률값이 되도록 목적 함수 설정
- (이해를 위한 추가 설명) 단어의 동반 출현 빈도를 기반으로 의미, 문법정보 학습. (ex> The king is the man. The king is the him. 2개 문장을 학습하여 man→him 으로 대체 가능 함을 학습 할 수 있고, context 에서 동반 출현 빈도가 높다는 것을 알 수 있음.)
- 벡터 공간에 투영하면 비슷한 의미 혹은 문법 정보를 지닌 단어들은 비슷한 형태의 벡터(방향,크기)를 지니게 됨. 이 벡터를 선형관계로 연결시키는 과정이 목적함수에 포함 되어 있다고 보면 됨.
- Deriving the Objective Function
- GloVe 모델의 세 가지 조건
- center word 는 context word 로 도 등장 할 수 있기 때문에 단어 벡터간 교환 법칙이 성립 해야 함
- co-occ M 은 대칭적 이여야 함.
- Homomorphism(이체동형): F(X+Y) = F(X) * F(Y)
- GloVe 모델의 세 가지 조건
How to evaluate word vectors
- Word Vectors 평가에는 Intrinsic(고유한, 본질적인), Extrinsic( (무엇에 원래 속한게 아니라) 외적인, 외부의) Evaluations 가 있음. 2강은 Intrinsic 에 집중.
- Intrinsic evaluation 은 vector space addition 이후의 cosine distance 가 얼마나 intuitive semantic(직관적인 의미) & syntactic analogy questions(구문적(통사론적) 비유 문제) 를 잘 잡아내는지를 근거로 word vector 를 평가.
- GloVe 모델을 사용하면 Linear property 를 포함하는지를 평가
- intuitive semantic 만 표현한 예시.
img
- intuitive semantic 만 표현한 예시.
728x90
반응형
'NLP-CS224N' 카테고리의 다른 글
CS224N - lecture 3 “Neural net learning: Gradients by hand (matrix calculus) and algorithmically (the backpropagation algorithm)” (0) | 2022.09.04 |
---|---|
CS224N - lecture 1 “Word Vectors” (0) | 2022.08.21 |