πŸ“š μŠ€ν„°λ””/CS224N

[CS224N] 1. Introduction and Word Vectors

μž₯μ˜μ€€ 2023. 7. 24. 02:14

이번 λ°©ν•™ λ•Œ NLP κ΄€λ ¨ κ°œλ…μ„ ν™•μ‹€ν•˜κ²Œ 작고자 CS224N κ°•μ˜λ₯Ό μˆ˜κ°•ν•΄μ•Όκ² λ‹€κ³  μƒκ°ν–ˆλ‹€.

CS~N κ°•μ˜λŠ” μŠ€νƒ ν¬λ“œμ—μ„œ κ°€λ₯΄μΉ˜λŠ” CS κ°•μ˜ μ’…λ₯˜μΈ 것 같은데,

λŒ€ν‘œμ μœΌλ‘œλŠ” λ¨Έμ‹ /λ”₯λŸ¬λ‹ 기초 κ°•μ˜μΈ CS231N이 있고, λ‚˜λ„ λ“£λ‹€κ°€ λ§μ•˜μ—ˆλ‹€..(λ„ˆλ¬΄ κΈΈμ–΄

이 κ°•μ˜λŠ” 2년에 ν•œλ²ˆμ”© μ—…λ°μ΄νŠΈλ˜λŠ” 것 같은데, λ‚˜λŠ” 2021 Winter κ°•μ˜λ₯Ό μˆ˜κ°•ν–ˆλ‹€. [유튜브 ν”Œλ ˆμ΄λ¦¬μŠ€νŠΈ]


첫 κ°•μ˜μ˜ μ£Όμ œλŠ” μ‚¬λžŒμ˜ 언어와 단어 μ˜λ―Έμ— κ΄€ν•œ λ‚΄μš©μ΄λ‹€.

ν”νžˆ, μš°λ¦¬κ°€ μ‚¬μš©ν•˜λŠ” 단어듀을 컴퓨터가 μ§κ΄€μ μœΌλ‘œ μ•Œμ•„λ“£κΈ°λŠ” μ–΄λ ΅λ‹€.

이λ₯Ό μœ„ν•΄ 단어듀을 숫자둜 이루어진 λ²‘ν„°λ“€λ‘œ λ³€ν™˜μ‹œμΌœμ£Όμ–΄μ•Ό ν•œλ‹€.

How to represent the meaning of the word?

κ·Έλ ‡λ‹€λ©΄ λ‹¨μ–΄μ˜ 의미λ₯Ό μ–΄λ–»κ²Œ λ‚˜νƒ€λ‚Ό 수 μžˆμ„κΉŒ?


1. Wordnet

Wordnet은 λ™μ˜μ–΄, μƒν•˜κ΄€κ³„ μ–Έμ–΄μ˜ 집합이닀. λ‹€μŒ μ˜ˆμ‹œλ₯Ό μ°Έκ³ ν•˜μž.

좜처: CS224N κ°•μ˜λ‘

이와 같은 WordNet의 단점은 λ‹€μŒκ³Ό κ°™λ‹€:

  1. λ‰˜μ•™μŠ€ (λ‹¨μ–΄μ˜ μ‚¬μš© λ§₯락)λ₯Ό λ°˜μ˜ν•˜μ§€ λͺ»ν•œλ‹€.
  2. λ‹¨μ–΄λ“€μ˜ μƒˆλ‘œμš΄ 의미λ₯Ό μ•ŒκΈ° μ–΄λ ΅λ‹€ (μ΅œμ‹  정보 μœ μ§€ λΆˆκ°€)
  3. νŒλ‹¨ 기쀀이 주관적이닀.
  4. 단어 의미 κ°„μ˜ μœ μ‚¬μ„±μ„ νŒŒμ•…ν•˜κΈ° μ–΄λ ΅λ‹€.

2. One-hot vector

두 λ²ˆμ§ΈλŠ” one-hot vector ν‘œν˜„ 방식이닀.

μ΄λŠ” 데이터 뢄석에도 많이 μ“°μ΄λŠ” one-hot encoding 방식과 거의 μœ μ‚¬ν•˜λ‹€.

이 방식은 λ²”μ£Όν˜• λ²‘ν„°μ—μ„œ λͺ¨λ“  λ³€μˆ˜λ₯Ό 0κ³Ό 1의 μ—΄κ±°ν˜•μœΌλ‘œ λ§Œλ“€μ–΄ ν‘œν˜„ν•˜λŠ” 방식이닀. λ‹€μŒ μ˜ˆμ‹œλ₯Ό μ°Έκ³ ν•˜μž.

좜처: https://brunch.co.kr/@sonnykim/6

μœ„ κ·Έλ¦Όκ³Ό 같이, 단어듀이 μ—¬λŸ¬κ°œ μžˆμ„ λ•Œ, ν•œ 단어듀이 μžˆλŠ” μžλ¦¬μ— 1을, μ—†λŠ” μžλ¦¬μ— 0을 λ„£μŒμœΌλ‘œμ¨ ν‘œν˜„ν•  수 μžˆλ‹€.

 

One-hot vector ν‘œν˜„λ°©μ‹μ˜ 단점은 λ‹€μŒκ³Ό κ°™λ‹€:

  1. λ‹¨μ–΄μ˜ κ°œμˆ˜μ™€ vector의 κ°œμˆ˜κ°€ κ°™μœΌλ―€λ‘œ, 큰 차원이 ν•„μš”ν•˜λ‹€.
  2. 단어 κ΄€κ³„μ˜ νŒŒμ•…μ„ μœ„ν•΄μ„œλŠ” 제곱이 ν•„μš”ν•˜λ©°, μ–΄λ €μ›Œμ§„λ‹€.

μ΅œμ’…μ μœΌλ‘œ λ‚˜μ˜¨ 결둠은, Vector μŠ€μŠ€λ‘œκ°€ μœ μ‚¬μ„±μ„ 계산할 수 μžˆλ„λ‘ ν•˜μž !! λŠ” 것이닀.


3. Distributional semantics

κ·Έ 방식이 distributional semantics, ν•œκ΅­μ–΄λ‘œλŠ” 뢄포 의미둠 μ΄λΌκ³ λ„ ν•œλ‹€λ”λΌ.

μœ„ 두 κ°€μ§€ λ°©μ‹μ˜ λ¬Έμ œμ μ„ κ°œμ„ ν•œ λ°©λ²•μœΌλ‘œ, λ‹¨μ–΄μ˜ λ¬Έλ§₯을 κ³ λ €ν•œ 방식이닀. 

이 방식은 fixed window sizeλ₯Ό 톡해 단어λ₯Ό ν‘œν˜„ν•  λ•Œ μ£Όμœ„ contextλ₯Ό μ‚΄νŽ΄μ„œ λΉ„μŠ·ν•œ λ¬Έλ§₯μ—μ„œ λ‚˜νƒ€λ‚˜λŠ” 단어듀은 μ„œλ‘œ λΉ„μŠ·ν•œ 벑터λ₯Ό 가지도둝 ν•œλ‹€.

μš°λ¦¬λŠ” μ΄λ ‡κ²Œ μƒμ„±λœ word vectorsλ₯Ό word embeddings, word representations라고 λΆ€λ₯Έλ‹€.


Word2Vec

word2vec은 word vectorλ“€μ˜ ν•™μŠ΅μ„ μœ„ν•΄ λ§Œλ“€μ–΄μ§„ ν”„λ ˆμž„μ›Œν¬μ΄λ‹€.


1. 아이디어

word2vec ν”„λ ˆμž„μ›Œν¬μ˜ μ•„μ΄λ””μ–΄λŠ” λ‹€μŒκ³Ό κ°™λ‹€:

  1. μΆ©λΆ„ν•œ μ–‘μ˜ ν…μŠ€νŠΈ corpus (λ§λ­‰μΉ˜)κ°€ 있고, λͺ¨λ“  각각의 λ‹¨μ–΄λŠ” λ²‘ν„°λ‘œ λ‚˜νƒ€λ‚΄μ§ˆ 수 μžˆλ‹€.
  2. ν…μŠ€νŠΈμ˜ ν¬μ§€μ…˜ tλ₯Ό κ±°μΉ˜λŠ”λ°, μ—¬κΈ°μ—λŠ” 쀑심 단어 c와 μ™ΈλΆ€ 단어 oκ°€ μžˆλ‹€.
  3. c와 o의 word vector의 μœ μ‚¬μ„±μ„ μ΄μš©ν•˜μ—¬ ν™•λ₯ μ„ κ³„μ‚°ν•œλ‹€.
  4. 이 ν™•λ₯ μ„ μ΅œλŒ€ν™”μ‹œν‚€κΈ° μœ„ν•΄ word vectorλ₯Ό κ°±μ‹ μ‹œν‚¨λ‹€.

2. κ³Όμ •

이 κ°œλ…μ„ μ‹œκ°ν™”ν•΄μ„œ 과정을 보면 λ‹€μŒκ³Ό κ°™λ‹€:

좜처: CS224N κ°•μ˜λ‘

1) ν˜„μž¬ μœ„μΉ˜ t에 μžˆλŠ” 단어λ₯Ό , 주변에 μžˆλŠ” 단어λ₯Ό ,  μ΄λΌκ³  ν•  λ•Œ ,  λ₯Ό κ΅¬ν•œλ‹€.
2) , λ₯Ό μ΅œλŒ€ν™”ν•˜λŠ” vectorλ₯Ό μ°ΎλŠ”λ‹€.
3) corpus μ•ˆμ˜ λͺ¨λ“  단어에 λŒ€ν•΄ 1~2 단계λ₯Ό κ±°μΉœλ‹€.


3. λͺ©μ  ν•¨μˆ˜ (objective function) μ΅œμ ν™”

1. Likelihood

이 ν•¨μˆ˜λŠ” word vector πœ½κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, window λ‚΄μ˜ context wordκ°€ ν•΄λ‹Ή μœ„μΉ˜μ— λ‚˜νƒ€λ‚  ν™•λ₯ μ˜ 곱이닀.

식을 말둜 ν’€μ–΄ μ“°λ©΄, 각 단어λ₯Ό 쀑심 λ‹¨μ–΄λ‘œ μ‚¬μš©ν•˜λŠ” 곱을 μ·¨ν•œ ν›„, 각 λ‹¨μ–΄μ˜ κ³±κ³Ό 쀑심 λ‹¨μ–΄μ—μ„œ ν•΄λ‹Ή λ¬Έλ§₯ 단어λ₯Ό μ˜ˆμΈ‘ν•  ν™•λ₯ μ„ μ£Όλ³€μ˜ 창을 μ‚¬μš©ν•˜μ—¬ κ³„μ‚°ν•˜λŠ” 방식이 λœλ‹€.

 

2. Objective function

Objective function, λͺ©μ  ν•¨μˆ˜μ˜ 더 μ™€λ‹ΏλŠ” 이름은 loss function, cost function인 것 κ°™λ‹€.

μ•„λ¬΄νŠΌ μ—¬κΈ°μ„œμ˜ object function은 λ‹€μŒκ³Ό κ°™λ‹€:

μ—¬κΈ°μ„œ λͺ©μ  ν•¨μˆ˜λŠ” 손싀 ν•¨μˆ˜μ΄λ―€λ‘œ, λͺ©μ  ν•¨μˆ˜λ₯Ό μ΅œμ†Œν™”μ‹œν‚€λŠ” 것이 예츑 ν™•λ₯ μ„ λ†’μ΄λŠ” 것이닀.

κ·ΈλŸ¬λ‹ˆ 우리의 λͺ©ν‘œλŠ” J(𝜽)λ₯Ό μ΅œμ†Œν™”μ‹œν‚€λŠ” 것이닀.

 

3. Predict function

Q: 쀑심 단어가 μ£Όμ–΄μ§„ 경우, λ¬Έλ§₯μ—μ„œ λ‚˜νƒ€λ‚˜λŠ” λ‹¨μ–΄μ˜ ν™•λ₯ μ„ μ–΄λ–»κ²Œ 계산할 수 μžˆμ„κΉŒ ?

A: μš°λ¦¬λŠ” ν•œ 단어에 λŒ€ν•΄ 두 개의 vector을 μ‚¬μš©ν•  μ˜ˆμ •μ΄λ‹€.

ν•˜λ‚˜λŠ” ν•΄λ‹Ή 단어가 center word(쀑심 단어)일 경우 (이λ₯Ό v_w 라고 ν‘œν˜„ν•œλ‹€),

λ‹€λ₯Έ ν•˜λ‚˜λŠ” ν•΄λ‹Ή 단어가 context word(λ¬Έλ§₯ 단어)일 경우 (이λ₯Ό u_w 라고 ν‘œν˜„ν•œλ‹€)이닀.

 

이에 κΈ°λ°˜ν•˜λ©΄ λ¬Έλ§₯ 단어가 λ‚˜νƒ€λ‚  ν™•λ₯  P(o|c)λŠ” λ‹€μŒκ³Ό κ°™λ‹€:

이 ν•¨μˆ˜λ₯Ό ν•œλ²ˆ ν•΄μ„ν•΄λ³΄μž.

μš°μ„  λΆ„μž. exp(u_o T v_c)λŠ” λ‚΄μ μœΌλ‘œ o와 c의 μœ μ‚¬μ„±μ„ λΉ„κ΅ν•˜μ—¬ 내적 값이 크면 μœ μ‚¬ν•˜λ‹€λŠ” 것을 λ‚˜νƒ€λ‚Έλ‹€.

μ΄λ•Œ, expλ₯Ό μ·¨ν•΄μ£ΌλŠ” μ΄μœ λŠ” 내적값이 μŒμˆ˜κ°€ λ‚˜μ˜¬ 수 μžˆμœΌλ―€λ‘œ, μ–‘μˆ˜λ‘œ λ°”κΏ”μ£ΌκΈ° μœ„ν•¨μ΄λ‹€.

λ‹€μŒμ€ λΆ„λͺ¨. 이와 κ΄€λ ¨ν•΄μ„œλŠ” μš°μ„  softmax ν•¨μˆ˜ 식을 λ³Ό ν•„μš”κ°€ μžˆλ‹€.

softmax ν•¨μˆ˜λŠ” μ–΄λ– ν•œ κ°’ R에 λŒ€ν•΄ 이 값을 0κ³Ό 1 μ‚¬μ΄μ˜ κ°’μœΌλ‘œ λ³€ν™˜ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.

λΆ„λͺ¨μ—μ„œλŠ” ν™•λ₯  λΆ„λ°°λ₯Ό μœ„ν•΄ 전체 단어듀에 λŒ€ν•΄ normalize ν•œλ‹€.

 

4. Optimization

μ΅œμ’…μ μœΌλ‘œλŠ”, μœ„μ—μ„œ μ„€λͺ…λœ ν•¨μˆ˜λ“€μ„ μ’…ν•©ν•˜μ—¬ μ΅œμ ν™”ν•œλ‹€.

μœ„ μ‹μ—μ„œ, λͺ©μ  ν•¨μˆ˜λ₯Ό μ΅œμ†Œν™”ν•˜λŠ” 𝜽, 즉 u 와 vλ₯Ό μ°ΎλŠ”λ‹€.

이 κ³Όμ •μ—μ„œ λ―ΈλΆ„ 과정을 ν™”μ΄νŠΈλ³΄λ“œλ₯Ό 톡해 직접 μ„€λͺ…ν•΄μ£Όμ‹œλŠ”λ°, λ‚˜λŠ” μ‚¬μ§„λ§Œ μ²¨λΆ€ν•˜κ³  λ„˜μ–΄κ°€κ² λ‹€. κ·Έλƒ₯ λ―ΈλΆ„ν•˜λŠ”κ±°λ‹€.

μ΅œμ’… 결과둜 𝜽λ₯Ό 찾으면 V개의 단어가 μ‘΄μž¬ν•˜κ³ , πœ½κ°€ d-dimension vector일 λ•Œ,

word vectorλŠ” u, vλ₯Ό ν¬ν•¨ν•˜λ―€λ‘œ 2dV 차원을 κ°–λŠ”λ‹€.

 


이렇듯, 이번 λ‹¨μ›μ—μ„œλŠ” 단어λ₯Ό 기본적으둜 ν‘œν˜„ν•˜λŠ” 방식과,

word2vec ν”„λ ˆμž„μ›Œν¬μ˜ ꡬ성에 κ΄€ν•΄ μ•Œμ•„λ³΄μ•˜λ‹€.