Archive

[λ²ˆμ—­] Word2Vec Research Paper Explained

geum 2022. 7. 4. 15:39

πŸ’¬ μ΅œλŒ€ν•œ λ§€λ„λŸ½κ²Œ ν•΄μ„ν•˜κ³ μž λ…Έλ ₯ν–ˆμ§€λ§Œ μ–΄μƒ‰ν•œ λ¬Έμž₯이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. ν”Όλ“œλ°±μ€ μ–Έμ œλ‚˜ ν™˜μ˜μž…λ‹ˆλ‹€ πŸ™‚


원본 κΈ€ μ£Όμ†Œ : https://towardsdatascience.com/word2vec-research-paper-explained-205cb7eecc30

 

Word2Vec Research Paper Explained

An Intuitive understanding and explanation of the word2vec model.

towardsdatascience.com

 

μ„œλ‘ 

 

λ§Žμ€ NLP ν™œμš© μ‚¬λ‘€μ—μ„œ, λ‹¨μ–΄λŠ” μ„œλ‘œ κ°„μ˜ 관계λ₯Ό ν¬μ°©ν•˜μ§€ μ•ŠλŠ” 원-ν•« μΈμ½”λ”©μœΌλ‘œ ν‘œν˜„λœλ‹€. 원-ν•« 인코딩을 μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” "간단함, 견고함과 λŒ€λŸ‰μ˜ λ°μ΄ν„°λ‘œ ν›ˆλ ¨λœ κ°„λ‹¨ν•œ λͺ¨λΈμ΄ μ†ŒλŸ‰μ˜ λ°μ΄ν„°λ‘œ ν›ˆλ ¨λœ λ³΅μž‘ν•œ λͺ¨λΈλ³΄λ‹€ 더 쒋은 μ„±λŠ₯을 λ³΄μΈλ‹€λŠ” κ΄€μ°° κ²°κ³Ό" λ•Œλ¬Έμ΄λ‹€.

 

κ°„λ‹¨ν•œ λͺ¨λΈμ˜ μ˜ˆμ‹œλŠ” N-gram λͺ¨λΈμ΄ 될 수 μžˆλ‹€. μ΄λŸ¬ν•œ λͺ¨λΈμ€ i번째 μœ„μΉ˜μ˜ 단어가 i-(n-1)번째 λ‹¨μ–΄μ—μ„œ (i-1)번째 λ‹¨μ–΄κΉŒμ§€μ˜ 이λ ₯에 μ˜μ‘΄ν•œλ‹€κ³  κ°€μ •ν•˜λŠ” 마λ₯΄μ½”ν”„ λͺ¨λΈμ΄λ‹€. 이 접근법은 ν•™μŠ΅ μ½”νΌμŠ€μ—μ„œ νŒŒμƒλœ λΉˆλ„ 기반 μ ‘κ·Ό 방법이닀. ν•˜μ§€λ§Œ μ΄λŸ¬ν•œ κ°„λ‹¨ν•œ λͺ¨λΈμ€ μ΄μš©ν•  수 μ—†λŠ” κ³ ν’ˆμ§ˆμ˜ 데이터λ₯Ό ν•„μš”λ‘œ ν•  λ•Œκ°€ μ’…μ’… 있으며 ν•™μŠ΅λ˜μ§€ μ•Šμ€ 데이터에 λŒ€ν•΄ μΌλ°˜ν™”κ°€ μ–΄λ ΅λ‹€.

 

ν•˜μ§€λ§Œ 기계 ν•™μŠ΅ μ˜μ—­μ˜ λ°œμ „μœΌλ‘œ λŒ€λŸ‰μ˜ 데이터셋에 λŒ€ν•΄ ν•™μŠ΅λœ λ³΅μž‘ν•œ μ•Œκ³ λ¦¬μ¦˜μ€ λ‹¨μˆœν•œ λͺ¨λΈλ³΄λ‹€ μ„±λŠ₯이 μš°μˆ˜ν•˜λ‹€.

 

Word2Vec λͺ¨λΈμ€ 단어 κ°„μ˜ ꡬ문적/의미적 μœ μ‚¬μ„±μ„ λͺ¨λ‘ ν¬μ°©ν•œλ‹€. ν•™μŠ΅λœ Word2Vec 벑터에 λŒ€ν•΄ 잘 μ•Œλ €μ§„ λŒ€μˆ˜μ μΈ μ˜ˆμ‹œ 쀑 ν•˜λ‚˜λŠ” λ‹€μŒκ³Ό κ°™λ‹€.

 

Vector("μ™•")-Vector("λ‚¨μž")=Vector("μ—¬μ™•")-Vector("μ—¬μž")

 

λ‹¨μ–΄μ˜ 벑터 ν‘œν˜„μ— λŒ€ν•œ μ΄μ „μ˜ μ ‘κ·Ό 방법듀

 

이 μ„Ήμ…˜μ€ 신경망을 μ‚¬μš©ν•˜μ—¬ 단어λ₯Ό λ²‘ν„°λ‘œ ν‘œν˜„ν•˜λŠ” μ΄μ „μ˜ μ ‘κ·Ό 방식에 μ΄ˆμ μ„ λ§žμΆ”κ³  μžˆλ‹€.

 

1. Neural Network Language Model(NNLM) [Bengio, Yoshua et al.]

단어 μž„λ² λ”©μ„ μœ„ν•œ μ„ ν˜• 투영 λ ˆμ΄μ–΄μ™€ 좜λ ₯μΈ΅ μ΄ν›„μ˜ λΉ„μ„ ν˜• μ€λ‹‰μΈ΅μœΌλ‘œ κ΅¬μ„±λœ 두 단계 μ–Έμ–΄ λͺ¨λΈμ΄λ‹€. 단어 벑터와 μ–Έμ–΄ λͺ¨λΈ λͺ¨λ‘ NNLM μ•ˆμ—μ„œ λ™μ‹œμ— ν•™μŠ΅λœλ‹€.

 

 

NNLM λͺ¨λΈμ€ μž…λ ₯μΈ΅, 투영측, 은닉측과 좜λ ₯측으둜 이루어져 μžˆλ‹€. ν•˜μ΄νΌνŒŒλΌλ―Έν„° N은 λ‹€μŒ 단어 μ˜ˆμΈ‘μ„ μœ„ν•΄ ν˜„μž¬ 단어뢀터 λͺ‡ κ°œκΉŒμ§€μ˜ 단어λ₯Ό 봐야 ν•˜λŠ”μ§€ κ²°μ •ν•œλ‹€. μž…λ ₯μΈ΅μ—μ„œ λ‹¨μ–΄λŠ” 크기 V의 원-ν•« μΈμ½”λ”©μœΌλ‘œ μΈμ½”λ”©λœλ‹€. ν–‰λ ¬ CλŠ” N×D 차원(DλŠ” μž„λ² λ”© μ‚¬μ΄μ¦ˆ)을 κ°–λŠ” shared projection matixλ‹€. 은닉측은 νˆ¬μ˜μΈ΅μ— denselyν•˜κ²Œ μ—°κ²°λœλ‹€. 

 

** Shared projection matrix의 μ˜λ―ΈλŠ” 아직 잘 λͺ¨λ₯΄κ² λ‹€.

*** β–  : 원문 the projection layer which leads to the weights matrix of N×D×H from projection to hidden layerμ—μ„œ leads to ~ 해석이 κΉ”λ”ν•˜κ²Œ μ•ˆλ¨

 

은닉 벑터λ₯Ό μƒμ„±ν•œ ν›„ 좜λ ₯측은 H×V 크기의 κ°€μ€‘μΉ˜λ₯Ό 가지며 좜λ ₯μΈ΅ μ΄ν›„μ—λŠ” μ†Œν”„νŠΈλ§₯슀 측이 μžˆλ‹€. λ”°λΌμ„œ NNLM λͺ¨λΈμ˜ 총 κ°€μ€‘μΉ˜λŠ” N×D+N×D×H+H×V이닀. H×VλŠ” μ–΄νœ˜κ°€ 이진 트리둜 ν‘œν˜„λ˜λŠ” κ³„μΈ΅ν˜• μ†Œν”„νŠΈλ§₯슀λ₯Ό μ‚¬μš©ν•˜μ—¬ H×log(V)둜 쀄일 수 μžˆλ‹€. λ³΅μž‘μ„±μ€ λŒ€λΆ€λΆ„ N×D>V일 λ•Œ N×D×H ν•­μ—μ„œ λΉ„λ‘―λœλ‹€. 이 항은 Word2Vec λͺ¨λΈ μ•ˆμ—μ„œ 은닉측을 μ‚¬μš©ν•˜μ§€ μ•ŠμŒμœΌλ‘œμ¨ νšŒν”Όλœλ‹€(λ³΅μž‘μ„±μ„ 쀄일 수 μžˆλ‹€ 이 의미인 λ“―). NNLM λͺ¨λΈμ΄ ν•™μŠ΅λ  λ•Œ 투영 행렬은 ν•™μŠ΅λœ 단어 벑터λ₯Ό μœ„ν•œ λ£©μ—…ν…Œμ΄λΈ”λ‘œ μ‚¬μš©λœλ‹€.

 

2. Recurrent Neural Net Language Model(RNNLM)

이 λͺ¨λΈμ—μ„œλŠ” NNLM λͺ¨λΈμ˜ 경우처럼 N을 지정할 ν•„μš”κ°€ μ—†λ‹€. RNN은 은닉 μƒνƒœμ˜ λͺ¨λ“  단어 기둝을 μΈμ½”λ”©ν•œλ‹€. 은닉 μƒνƒœ S(T)λŠ” ν˜„μž¬ μž…λ ₯ X(T)와 S(T-1)μ—μ„œμ˜ 은닉 λ²‘ν„°λ‘œ μ—…λ°μ΄νŠΈλœλ‹€. 

 

Simple Elman NetworkλŠ” RNNLM λͺ¨λΈμ—μ„œ RNN λͺ¨λΈλ‘œ μ‚¬μš©λœλ‹€. 였직 μ‹œκ°„ μ°¨μ›μ˜ recurrent κ°€μ€‘μΉ˜μ™€ 좜λ ₯μΈ΅ κ°€μ€‘μΉ˜μ— μˆ¨κ²¨μ§„ κ°€μ€‘μΉ˜λ§Œ 이 λ„€νŠΈμ›Œν¬μ— κ΄€μ—¬ν•˜λ©° λͺ¨λΈ μ „μ²΄μ˜ λ³΅μž‘μ„±μ€ H×H+H×V이닀. NNLM λͺ¨λΈκ³Ό 비ꡐ해보면 λͺ¨λΈ λ³΅μž‘λ„μ— N 항이 μ—†λ‹€. H×V 항은 계측적 μ†Œν”„νŠΈλ§₯슀λ₯Ό μ‚¬μš©ν•˜μ—¬ H×log(V)둜 쀄일 수 μž‡λ‹€. 이 λͺ¨λΈμ—μ„œ μ—°μ‚°μ˜ bottleneck 항은 H×H이닀.

 

 

μœ„μ˜ 두 λͺ¨λΈλ‘œλΆ€ν„°, "λΉ„μ„ ν˜• 은닉측"이 전체 λ³΅μž‘μ„±μ˜ κ°€μž₯ 큰 μ΄μœ λΌλŠ” 것이 λͺ…λ°±ν•˜λ‹€. μ΄λŠ” ν•˜λ“œμ›¨μ–΄μ˜ μ œμ•½μ„ μœ λ°œν•΄ λͺ¨λ“  ν•™μŠ΅ 데이터λ₯Ό ν™œμš©ν•˜μ§€ λͺ»ν•˜κ²Œ ν•œλ‹€. Word2Vec은 단어 λ²‘ν„°μ˜ ν’ˆμ§ˆμ„ μ†μƒμ‹œν‚€μ§€ μ•Šκ³  더 λ§Žμ€ λ°μ΄ν„°λ‘œ ν•™μŠ΅ν•  수 μžˆλŠ” 두 가지 κ°„λ‹¨ν•œ λͺ¨λΈμ„ μ œμ‹œν–ˆλ‹€.

 

 

Word2Vec λͺ¨λΈ

 

이 μ„Ήμ…˜μ—μ„œλŠ” Word2Vec ν•™μŠ΅μ— μ‚¬μš©λ˜λŠ” λͺ¨λΈμ„ μ†Œκ°œν•œλ‹€.

 

1. Continuous bag of words model(CBOW)

CBOW λͺ¨λΈμ€ μ„ ν˜• 은닉측이 μ—†λŠ” 경우λ₯Ό μ œμ™Έν•˜κ³  NNLM λͺ¨λΈμ—μ„œ νŒŒμƒλ˜μ—ˆλ‹€. CBOW λͺ¨λΈμ˜ λͺ©μ μ€ 과거의 N/2 단어와 미래의 N/2 단어가 μ£Όμ–΄μ‘Œμ„ λ•Œ κ·Έ μ€‘κ°„μ˜ 단어λ₯Ό μ˜ˆμΈ‘ν•˜λŠ” 것이닀. κ°€μž₯ 쒋은 κ²°κ³ΌλŠ” N=8일 λ•Œ 얻어진닀. νˆ¬μ˜μΈ΅μ—μ„œ N개의 context λ‹¨μ–΄μ˜ 단어 λ²‘ν„°λŠ” λ‹¨μˆœν•˜κ²Œ ν‰κ· ν™”λœλ‹€. 쀑간 λ‹¨μ–΄μ˜ 단어 벑터λ₯Ό κ²°μ •ν•  λ•Œ λ‹¨μ–΄μ˜ μœ„μΉ˜λŠ” 관련이 μ—†κΈ° λ•Œλ¬Έμ— "Bag of Words"λΌλŠ” 이름이 λΆ™λŠ”λ‹€. ContinuousλΌλŠ” ν‘œν˜„μ€ 벑터 곡간 Dλ₯Ό μ˜λ―Έν•œλ‹€.

 

평균 λ²‘ν„°λŠ” V에 λŒ€ν•œ 뢄포λ₯Ό μ–»κΈ° μœ„ν•΄ 좜λ ₯측을 거쳐 계측적 μ†Œν”„νŠΈλ§₯슀둜 μ „λ‹¬λœλ‹€. CBOWλŠ” λͺ¨λΈ 좜λ ₯의 logarithm이 λͺ¨λΈ κ°€μ€‘μΉ˜μ˜ μ„ ν˜• κ²°ν•©μœΌλ‘œ ν‘œν˜„λ  수 μžˆλŠ” κ°„λ‹¨ν•œ log-linear λͺ¨λΈμ΄λ‹€. CBOW λͺ¨λΈ ν•™μŠ΅κ³Ό κ΄€λ ¨λœ 총 κ°€μ€‘μΉ˜λŠ” N×D+D×logV 이닀.

 

2. Continuous skip-gram model

이 λͺ¨λΈμ˜ λͺ©μ μ€ CBOW λͺ¨λΈκ³Ό λ°˜λŒ€λ‹€. ν˜„μž¬ 단어가 μ£Όμ–΄μ‘Œμ„ λ•Œ, ν˜„μž¬ 단어 근처의 κ³Όκ±° 단어와 미래 단어λ₯Ό μ˜ˆμΈ‘ν•œλ‹€. μ΄λ¦„μ—μ„œ μ•Œ 수 μžˆλ“―μ΄, λͺ¨λΈμ€ ν˜„μž¬ 단어λ₯Ό μ œμ™Έν•œ N-gram 단어λ₯Ό λͺ¨λΈμ— λŒ€ν•œ μž…λ ₯으둜 μ˜ˆμΈ‘ν•˜κΈ° λ•Œλ¬Έμ— Skip-gramμ΄λΌλŠ” 이름이 λΆ™λŠ”λ‹€. N 값은 10으둜 μ„ νƒλœλ‹€. 멀리 μžˆλŠ” λ‹¨μ–΄λŠ” ν˜„μž¬ λ‹¨μ–΄μ™€μ˜ 연관성이 적기 λ•Œλ¬Έμ— 좜λ ₯ λ ˆμ΄λΈ”μ„ μƒμ„±ν•˜κΈ° μœ„ν•΄ 인근 단어보닀 적게 μƒ˜ν”Œλ§λœλ‹€. N=10일 λ•Œ μœ„μ—μ„œ μ–ΈκΈ‰ν•œ μƒ˜ν”Œλ§ λ°©λ²•μœΌλ‘œ 1~10 μ‚¬μ΄μ˜ λ‚œμˆ˜ R이 μƒμ„±λ˜κ³  R의 κ³Όκ±° 단어, 미래 단어가 Skip-gram λͺ¨λΈμ˜ μ •λ‹΅ λ ˆμ΄λΈ”λ‘œ μ‚¬μš©λœλ‹€.

 

λͺ¨λΈμ˜ 전체 λ³΅μž‘λ„λŠ” N×D+N×D×logV이닀. CBOW와 λΉ„κ΅ν–ˆμ„ λ•Œ 단일 클래슀 λΆ„λ₯˜ λ¬Έμ œκ°€ μ•„λ‹ˆλΌ N-클래슀 λΆ„λ₯˜ 문제이기 λ•Œλ¬Έμ— N은 D×logV 항에 곱해진닀. 즉 Skip-gram λͺ¨λΈμ€ CBOW보닀 더 λ³΅μž‘ν•˜λ‹€.

 

 

Results νŒŒνŠΈλŠ” κ²°κ³Ό 비ꡐ λ‚΄μš©μ΄λΌ μƒλž΅!