반응형

 

 

 

1. 구문론적 구조 : Consistency와 Dependency


1) Consistency structure : context-free grammars(CFGs)

- 시작 : 단어

ex) the, cat, cuddly, by, door

- 단어가 구문으로 합쳐짐

ex) the cuddly cat, by the door

- 구문이 더 큰 구문으로 합쳐짐

ex) the cuddly cat by the door

 

 

 

2) Dependency structure

: 어떤 단어가 다른 어떤 단어에 의존하고 있는지를 보여준다.

 

 

3) 왜 문장구조가 필요한가?

모델이 언어를 정확하게 해석하기 위해서

전치사 부착(attachment)의 애매함 때문에

 

범위의 애매함 때문에

동사 구절 부착(attachment)의 애매함 때문에

 

 

2. Dependency Grammar


단어들간의 관계로 구성되어 있다.

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'AI > CS224n' 카테고리의 다른 글

Lecture 3 - Backprop and Neural Networks  (0) 2022.07.27
Lecture 2 - Neural Classifiers  (0) 2022.07.19
Lecture 1 - Intro & Word Vectors  (0) 2022.07.13
반응형

 

 

 

NER(Named Entity Recognition)


문장에서 이름들을 찾고, 분류하는 태스크이다.

예1) Paris(PER) Hilton(PER) wowed in a sequin gown.

예2) Samuel(PER) Quinn(PER) was arrested in the Hilton(LOC) Hotel(LOC) in Paris(LOC) in April(DATE) 1989(DATE).

-> Paris가 지역이 아닌 사람 이름이라는 것을 분류하기 위해서는 "context"를 고려해야 한다.

 

 

 

Simple NER


아이디어 : 주변 단어들의 문맥 안에서 각각의 단어를 분류한다.

- logistic classifier를 학습시킨다.

- 단어 벡터들을 concatenate한 것을 바탕으로 center word를 분류한다.

 

 

 

 

Gradients


n개의 input과 1개의 output이 있는 f(x) = f(x1, x2, ..., xn) 이 있을 때,

f(x)의 미분값은 각각의 input들의 편미분의 벡터이다.

 

 

 

Jacobian Matrix: Generalization of the Gradient


n개의 input과 m개의 output이 있는 f(x) = [f1(x1, x2, ..., xn), ..., fm(x1, x2, ..., xn)] 이 있을 때,

f(x)의 미분값은 편미분들의 m x n 행렬이다.

 

 

 

Question


- logistic인지? softmax인지?

 

 

 

 

 

 

 

 

반응형

'AI > CS224n' 카테고리의 다른 글

Lecture 4 - Syntactic Structure and Dependency Parsing  (0) 2022.08.03
Lecture 2 - Neural Classifiers  (0) 2022.07.19
Lecture 1 - Intro & Word Vectors  (0) 2022.07.13
반응형


Lecture 2
Word Vectors, Word Senses, and Neural Network Classifier

# Word2vec parameters and computations

### bag of words


각각의 단어 벡터를 구하고, outside 벡터와 center 벡터를 dot product한 다음, softmax로 결정한다.
이것은 bag of words 모델로, 단어의 순서를 고려하지 않는 모델이다.


### Word2vec은 비슷한 단어들을 가까이 둠으로써 목적함수를 최대화할 수 있다.


# Optimization : Gradient Descent
- 비용함수를 최소화해야 한다.
- Gradient Descent는 기울기를 변형함으로써 비용함수를 최소화할 수 있다.
- Update Equation


### 문제 : 모든 windows들에 함수를 적용하기 때문에 굉장히 비용이 크다.
- 해결책 : Stochastic gradient descent
-> 배치로 뽑아서 각각 업데이트하는 방식
- 일반적으로 row가 단어 하나의 벡터이다.


### Word2vec detail
두 가지 모델 방식
1) Skip-gram
2) Continuous Bag of words(CBOW)



Skip gram : center word가 주어지고, other words 예측
Cbow : other words가 주어지고, center word 예측

Skip gram model with Negative sampling
Object function은 center와 others를 dot product
: softmax -> logistic / sigmoid (0-1사이로 만듬)
- 실제 outside words가 나타날 확률을 늘리고
- 랜덤 words가 center word 주위에 나타날 확률을 줄인다
- Unigram 분포에 따라 샘플링한다 -> 적게 나오는 단어가 더 자주 나오게 함 -> 왜?


Co-occurrence vectors
- simple count co-occurrence vectors : 공간낭비, 고차원임 -> skip gram, cbow
- Low-dimensional vectors : 차원을 어떻게 더 줄일까? 고민

차원 줄이기(hw1)
- x = u * £ * vt
- U와 v는 가로세로 동일
- U와 v 사이즈 안 맞는 부분은 무시

Vector 차이로 의미를 인코딩하기
: Co-occurence 확률의 비율이 곧 의미가 될 수 있다

Word vector 구하기
- intrinsic : 단어 하나하나 평가, 빠르게 구함, vector간의 cosine distance로 유사도 구함, 만약 단어들간의 관계가 linear가 아니라면?
- Extrinsic : 실제 태스크에서 평가, 시간이 많이 걸릴 수 있음

성능 semantic > syntactic
Dimensional은 300 개 정도면 된다

동일 단어에 여러 뜻이 있는 경우에는
1)다른 벡터를 가지기도록 할 수 있음
2)linear algebraic하기 합쳐서 한 벡터로 표현할 수 있음


# 샘플을 왜 뽑아요?
# unigram 왜?

반응형

'AI > CS224n' 카테고리의 다른 글

Lecture 4 - Syntactic Structure and Dependency Parsing  (0) 2022.08.03
Lecture 3 - Backprop and Neural Networks  (0) 2022.07.27
Lecture 1 - Intro & Word Vectors  (0) 2022.07.13
반응형

 

 

 

 

질문을 SQL문으로 변환

 

# 단어의 뜻을 어떻게 표현할까?

- 단어, 문맥으로부터 표현

- 사람이 표현하려는 방향으로

- 예술과 글쓰기의 방식으로

 

# 컴퓨터에서는 어떻게 단어를 해석할까?

- 일반적인 NLP 솔루션 : WordNet

Wordnet은 동의어 세트로 구성되어 있음

- Wordnet의 문제

: 뉘앙스가 생략됨

: 새로운 뜻을 놓침 -> 새롭게 정의된

: 단어간의 유사성을 측정하기 힘듦

 

# 전통적인 머신러닝 기반 NLP : discrete symbols

에서는 각각의 단어를 분리적으로 생각하고 본다.

one-hot vector로 보기 때문에 단어 간 유사성을 계산할 방법이 없다.

 

 

# Context

하나의 단어가 주어질 때, 항상 context(즉, 문맥)을 고려해야 한다.

단어를 벡터로 표현할 수 있다. 비슷한 벡터는 비슷한 문맥을 가진다고 볼 수 있다.

 

 

 

 

# Word2vec 알고리즘


- 우리는 text의 corpus(신체)를 가지고 있다

- 모든 단어는 벡터로 표현될 수 있다

- 각각의 위치 t는 center word(c)와 context(o)를 가지고 있다.

- c(center)가 있는 하에서(조건부) o(outside)의 확률을 계산하기 위해 단어 벡터들 간의 유사성를 사용한다.

- 이 확률을 높이기 위해 단어 벡터를 계속해서 조정한다.

 

# 확률 계산법 : obejctive function

likelihood 는 각각의 포지션 t에 대해서, 각각의 center word에 대해서 확률을 구한다.

objective function은 likelihood에 평균 negative log를 취한 것으로,

목적 함수가 적을 수록(= 예측 정확도가 높을수록) 좋다.

 

 

 

# prediction function

1) o와 c의 유사도를 비교하기 위해 Dot product를 한다. (높은 dot product = 높은 확률)

3) 확률 분포를 구하기 위해 전체 단어로 normalize한다.   

* softmax 함수는 모든 값을 0에서 1 안에 들어오게 한다.

즉, 임의의 xi 값을 확률 분포인 pi로 매핑해준다.

- max : 가장 큰 값을 증폭시키기 때문에

- soft : 작은 값들에게도 확률값을 할당하기 때문에

 

 

# model을 학습하기 : loss를 최소화하기 위해 파라미터를 최적화

d : 몇차원인지, : 단어의 개수, V 2 : center vector와 contect vector

 

 

 

# 수식

 

https://samtoring.com/str/qstn/QST0009103

 

 

결론

 

 

# 코드로 보기

man : king = woman : queen

 

 

# 궁금한 점

- corpus란?

- 각 단어들의 벡터는 어떻게 구하는지?

 

반응형

'AI > CS224n' 카테고리의 다른 글

Lecture 4 - Syntactic Structure and Dependency Parsing  (0) 2022.08.03
Lecture 3 - Backprop and Neural Networks  (0) 2022.07.27
Lecture 2 - Neural Classifiers  (0) 2022.07.19

+ Recent posts