๋ฐ์ํ
1. What is Word2Vec?
Word2Vec์ ๋จ์ด๋ฅผ ๋ฒกํฐ๋ก ๋ณํํ๋๋ฐ ์ฌ์ฉ๋๋ ์ธ๊ธฐ์๋ ์๊ณ ๋ฆฌ์ฆ ์ ๋๋ค. ์ฌ๊ธฐ์ ๋จ์ด๋ ๋ณดํต 'Token' ํ ํฐ ์ ๋๋ค.
- ์ด ์๊ณ ๋ฆฌ์ฆ์ ๋จ์ด(Token)๋ค ์ฌ์ด์ ์๋ฏธ์ ๊ด๊ณ๋ฅผ Vector ๊ณต๊ฐ์ ์ ํํํ ์ ์๋ ๋ฐฉ๋ฒ์ ํ์ตํ๋ ๋น์ง๋๋ฐฉ์(Unsupervised learning)์ผ๋ก ์ค๊ณํ ์๊ณ ๋ฆฌ์ฆ ์ ๋๋ค.
- ์ฃผ๋ณ ๋จ์ด๋ค(๋ฌธ๋งฅ)์ ํตํด์ ๊ฐ ๋จ์ด๋ค์ ์์ธกํ๊ฑฐ๋, ๋ฐ๋๋ก ๊ฐ ๋จ์ด๋ค์ ํตํด ์ฃผ๋ณ์ ๋จ์ด๋ค์ ๋ณด๊ณ ์์ธกํ๋ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค.
- ๋น์ ํ์๋ฉด ์ด๋ฏธ์ง๋ฅผ ํ์ตํ๋ฏ, ๋จ์ด๋ฅผ Vector๋ก ๋ณด๊ณ ํ์ตํฉ๋๋ค.
- ์ด๋ ๊ฒ Word2Vec์ ๋จ์ด๋ค ์ฌ์ด์ ์๋ฏธ์ ์ธ ๊ด๊ณ๋ฅผ ํ์ ํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ , ์์ ๊ทธ๋ฆผ์ ์๋ ๋ฌธ์ฅ์ ์ด์ฉํด ๋ชจ๋ธ์ ํ์ต ์ํค๊ธฐ ์ํด์ ๊ฐ ๋จ์ด(Token)๋ค์ ์ฐ์ฐ์ด ๊ฐ๋ฅํ ํํ๋ก ๋ณํ, ์ฆ Vector๋ก ๋ณํํด์ ์ฐ์ฐ์ ํด์ผ ํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ, Word2Vec์ ๋ฐํ์ฌ ๊ณต๋ถํด๋ณด๋๊น, ์ฃผ๋ณ ๋จ์ด๋ค์ ์ถ๋ก ํด์ ์๋ฏธ์ ์ธ ๊ด๊ณ๋ฅผ ํ์ ํ๋ค๋ ๋ง์ด ์์ต๋๋ค.
- Word2Vec๋ ๋จ์ด์ ์๋ฏธ๋ฅผ ๊ฐ๋ฅํ ์ ํํํ๋ Vector๋ฅผ ํ์ตํ๋๊ฒ์ด ์ฃผ ๋ชฉ์ ์ด๊ธฐ ๋๋ฌธ์ '์ถ๋ก '์ด๋ผ๋ ๋ง ๋ณด๋ค๋ 'ํ๋ฉด ํ์ต'์ด๋ผ๋ ๊ฐ๋
์ ๋ ๊ฐ๊น๋ค๊ณ ํ ์ ์์ต๋๋ค.
- ๋ค๋ง, ์ถ๋ก ์ Word2Vec๋ฅผ ์ฌ์ฉํ์ฌ Vectorํ๋ฅผ ํํ ๋ฌธ์ฅ or ๋ฌธ์๋ฅผ ๋ถ๋ฅ, ์๋๋ฉด ๋จ์ด์ ์ ์ฌ์ฑ์ ๊ณ์ฐํ ๋์ ์ฌ์ฉ๋ ์ ์๋ค๊ณ ํฉ๋๋ค.
์์๋ฅผ ํ๋ฒ ๋ค์ด๋ณด๋ฉด Word2Vec ๋ฒกํฐ๋ก ๋ํ๊ธฐ ๋นผ๊ธฐ ์ฐ์ฐ์ ํ ์ ์์ต๋๋ค.
- Word2Vec๋ฅผ ์ฌ์ฉํ๋ฉด '์' - '๋จ์' + '์ฌ์' = '์ฌ์'
- ์ด๋ ๊ฒ ์ข๋ณ์ ๋ฃ์ด๋ฒ๋ฆฌ๋ฉด ์ฐ๋ณ์ ๋ต์ด ๋์ค๋๊ฒ ์ฒ๋ผ ์ด๋ ๊ฒ์ ๊ฐ๊น์ด ๋ฒกํฐ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
- ์ด๋ฐ ์ฐ์ฐ์ด ๊ฐ๋ฅํ ์ด์ ๋ ์์์ ์ค๋ช ํ์ง๋ง ๊ฐ ๋จ์ด์ Vector ๊ฐ์ ์ ์ฌ๋๋ฅผ ๋ฐ์ํ๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
2. ํฌ์ ํํ (Sparse Repesentation)
- ๊ทธ๋ฆฌ๊ณ Word2Vec์ ๋จ์ด(Token)๋ค์ One-hot Vector๋ก ํํ ํ๋ค๋ ํน์ง์ด ์์ต๋๋ค.
- ๋จ์ด๋ค์ ๋ชจ์์ง (์ฆ, ๊ณ ์ ์ฌ์ or ๋ง๋ญ์น(Corpus))๋ฅผ ๊ฐ์ง๊ณ One-hot-Vector๋ก ํํํ๋ ํน์ง์ด ์์ต๋๋ค.
- ์ด๋ ๊ฒ Vector์ ๊ฐ์ ๋๋ถ๋ถ 0์ผ๋ก ํํํ๋ ๋ฐฉ๋ฒ์ ํฌ์ ํํ(Sparse Representation)์ด๋ผ๊ณ ํฉ๋๋ค.
์์๋ฅผ ํ๋ฒ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
- ์๋ฅผ ๋ค์ด์ 'cat', 'dog', 'apple' ์ธ ๋จ์ด๊ฐ ์์ ๋, 'cat'์ [1, 0, 0], 'dog'๋ [0, 1, 0], 'apple'์ [0, 0, 1]๋ก ํํ๋ฉ๋๋ค.
- ๊ทผ๋ฐ ํฌ์ ํํ(Sparse Representation)์ ๋จ์ ์ ๊ฐ ๋จ์ด Vector๊ฐ ์ ์๋ฏธํ ์ ์ฌ์ฑ์ ํํํ ์ ์๋ค๋ ๋จ์ ์ด ์์์ต๋๋ค.
- ๊ทธ๋์ ์ด ๋จ์ ์ ๋ค์ฐจ์ ๊ณต๊ฐ์ ๋ฒกํฐํ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋๋ฐ, ์ด ํํ ๋ฐฉ๋ฒ์ ๋ถ์ฐ ํํ(Distributed Representation)์ด๋ผ๊ณ ํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ถ์ฐ ํํ(Distributed Representation)์ ์ด์ฉํ์ฌ ๋จ์ด ๊ฐ ์๋ฏธ๋ฅผ ๋ค์ฐจ์ ๊ณต๊ฐ์ Vectorํ ํ๋ ๋ฐฉ๋ฒ์ Word Embedding ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ๋ฉฐ, Word Embedding ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ ํํํ ๋ฒกํฐ๋ฅผ Embedding Vector๋ผ๊ณ ํฉ๋๋ค.
- Word Embedding์ ๋ฐํด์ ๋ค์๊ธ์์ ์ ๋๋ก ํ๊ฒ ์ต๋๋ค.
3. ๋ถ์ฐ ํํ(Distributed Representation)
๋ถ์ฐํํ(Distributed Representation)์ ๋จ์ด(Token)๋ฅผ ๊ณ ์ฐจ์์์ ๋ฒกํฐ๋ก ํํํ์ง๋ง, ๊ฐ ๋จ์ด(Token)๋ ์ฌ๋ฌ ์ฐจ์์ ๋ถ์ฐ๋์ด ํํ๋ฉ๋๋ค.
- ๋ถ์ฐ ํํ(Distributed Representation)์ ๊ฐ ์ฐจ์์ ํน์ ์๋ฏธ์ ํน์ฑ์ ํฌ์ฐฉํ๋๋ก ์ค๊ณ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ๋ํ ๋ถ์ฐ ํํ(Distributed Representation)์ ๋ถํฌ ๊ฐ์ค์ ์ด์ฉํ์ฌ Text๋ฅผ ํ์ตํ๊ณ , ๋จ์ด(Token)์ ์๋ฏธ๋ฅผ Vector์ ์ฌ๋ฌ Dimension(์ฐจ์)์ ๋ถ์ฐํ์ฌ ํํํฉ๋๋ค.
- ์ด๋ ๊ฒ Vector๋ฅผ ํํ์ ํ๋ฉด ๋ฒกํฐ์ Dimension(์ฐจ์)์ด ์ ์ฐจ์์ผ๋ก ์ค์ด๋ญ๋๋ค.
- ์ด์ ๋ ๋ถ์ฐ ํํ(Distributed Representation)์ผ๋ก ํํ๋ Vector๋ค์ One-hot Vector์ฒ๋ผ Vector์ ์ฐจ์์ด ๋จ์ด ์งํฉ์ ํฌ๊ธฐ์ผ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ด๊ธฐ๋ ํ๊ณ , ๋ค์ ์ค๋ช ํ์๋ฉด ๊ฐ Dimension(์ฐจ์)์ด ๋จ์ด์ ์๋ฏธ์ ํน์ง์ ํฌ์ฐฉํ๋๋ก ์ค๊ณ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์๋ฅผ ํ๋ฒ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
- ํ Dimension(์ฐจ์)์ '์๋ฌผ' vs '๋ฌด์๋ฌผ', ๋ค๋ฅธ Dimension(์ฐจ์)์ '๊ธ์ ์ ' vs '๋ถ์ ์ ' ๊ฐ์ ์๋ฏธ์ ํน์ฑ์ ๋ํ๋ผ ์ ์์ต๋๋ค.
- ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ ๋จ์ด๋ ์ฌ๋ฌ Dimension(์ฐจ์)์ ์ฌ๋ฌ ์ฐจ์์ ๊ฑธ์ณ ๋ถ์ฐ๋์ด์ ํํํ๊ธฐ ๋๋ฌธ์, ๋จ์ด์ ์๋ฏธ๋ฅผ ๋ ์ ํฌ์ฐฉํ ์ ์๊ฒ ํฉ๋๋ค.
- ๋ฐ๋ผ์ ๋ถ์ฐ ํํ์ ๋จ์ด(Token)์ ์๋ฏธ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก, ๋ ๋ฎ์ ์ฐจ์์์ ํํํ๊ฒ ํด์ฃผ๋ฉฐ, ์๋ฏธ์ ๊ด๊ณ๋ฅผ ํฌ์ฐฉํ๋ฉด์ ๊ณ์ฐ์ ํจ์จ์ฑ์ ๋์ด๋๋ฐ ๋์์ ์ค๋๋ค.
- ๋ํ์ ์ธ ํ์ต ๋ฐฉ์์ด ๋ฐ๋ก Word2Vec ์ ๋๋ค.
4. CBOW(Continuous Bag of Words)
CBOW ๋ชจ๋ธ์ ์ฃผ๋ณ ๋จ์ด๋ค(Context-๋ฌธ๋งฅ)์ input์ผ๋ก ์ฌ์ฉํด์ ์ค๊ฐ์ ์๋ ๋จ์ด๋ค์ ์์ธกํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- ํ๋ฒ ๋งค์ปค๋์ฆ์ ๋ณด๊ฒ ์ต๋๋ค.
- ์๋ฌธ: "The fat cat sat on the mat"
- ์ด๋ ๊ฒ ๊ฐ์ง๊ณ ์๋ ์ดํ์งํฉ(Corpus)์ ์ด๋ฐ ๋จ์ด๋ค์ด ์๋ค๊ณ ํด๋ด
์๋ค.
- ['The', 'fat', 'cat', 'on', 'the', mat'] ์์ 'sat' ๋จ์ด๋ฅผ ์์ธกํ๋๊ฑด CBOW๊ฐ ํฉ๋๋ค.
- ์ด๋ ์์ธกํด์ผ ํ๋ ๋จ์ด 'sat'์ Center Word(์ค์ฌ ๋จ์ด)๋ผ๊ณ ํ๊ณ , ์์ธก์ ์ฌ์ฉ๋๋ ๋ค์ Context Word(์ฃผ๋ณ ๋จ์ด)๋ผ๊ณ ํฉ๋๋ค.
- ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ Center Word(์ค์ฌ ๋จ์ด)์ธ 'sat' ๋จ์ด๋ฅผ ์์ธกํ๊ธฐ ์ํด์๋ ์, ๋ค๋ก ๋ช๊ฐ์ ๋จ์ด๋ฅผ ๋ณผ์ง ์์์ผ ํ๋๋ฐ, ์ด ์ ๋ค์ ๋ฒ์๋ฅผ Window(์๋์ฐ)๋ผ๊ณ ํฉ๋๋ค.
CBOW Example
"The fat cat sat on the mat" ์๋ฌธ์ ๋ณด๋ฉด์ ์ค๋ช ์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
- Window(์๋์ฐ)์ ํฌ๊ธฐ๊ฐ 2์ด๊ณ , Center Word(์ค์ฌ ๋จ์ด)๋ก 'sat' ๋จ์ด๋ฅผ ์์ธกํ๋ฌ๋ฉด, ์์ ๋๋จ์ด fat, cat ๋ค์ ๋๋จ์ด on, the๋ฅผ input์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
- Window(์๋์ฐ)์ ํฌ๊ธฐ๋ฅผ n์ด๋ผ๊ณ ํ๋ฉด, ์ค์ ์ Center Word(์ค์ฌ ๋จ์ด)๋ฅผ ์์ธกํ๊ธฐ ์ํด์ ์ฐธ๊ณ ํด์ผ ํ๋ ๋จ์ด์ ๊ฐ์๋ 2n์ ๋๋ค.
- Window(์๋์ฐ)์ ํฌ๊ธฐ๊ฐ ์ ํด์ง๋ฉด ์์ผ๋ก ์์ง์ฌ์ ์ฃผ๋ณ ๋จ์ด์ Center Word(์ค์ฌ ๋จ์ด)์ ์ ํ์ ๋ด๊พธ๋ฉด์ ํ์ต์ ์ฌ์ฉํ๊ธฐ ์ํ Dataset์ ๋ง๋๋๋ฐ ์ด๊ฑธ Sliding Window(์ฌ๋ผ์ด๋ฉ ์๋์ฐ)๋ฐฉ๋ฒ ์ด๋ผ๊ณ ํฉ๋๋ค.
- ์์ ๊ทธ๋ฆผ์ Word2Vec ์์์ input์ ๋ชจ๋ One-Hot Vector๊ฐ ๋๋๋ฐ, ๊ทธ๋ฆผ์์ ์ค๋ฅธ์ชฝ ํ๋ ์ค์ฌ & ์ฃผ๋ณ ๋จ์ด์ ์ ํ์ ๋ฐ๋ผ์ ๊ฐ๊ฐ One-Hot Vector๊ฐ ๋๋์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค. (CBOW์ ์ฌ์ฉ๋๋ ์ ์ฒด ๋ฐ์ดํฐ์ ์ ๋ณธ๋ค๋ ๋ง์ ๋๋ค)
CBOW์ ์ธ๊ณต์ ๊ฒฝ๋ง
CBOW์ ์ธ๊ณต์ ๊ฒฝ๋ง์ ๋ฐํ์ฌ ํ๋ฒ ์์๋ณด๊ฒ ์ต๋๋ค. ์๋์ ๊ทธ๋ฆผ์ CBOW์ ์ธ๊ณต์ ๊ฒฝ๋ง์ ์๊ฐํ ํ๊ฒ์ ๋๋ค.
- Input layer(์ ๋ ฅ์ธต)์ ์ ๋ ฅ๊ฐ์ ๋ฃ์ต๋๋ค. ์ ๋ ฅ๊ฐ๋ค์ ์, ๋ค๋ก ์ ํด์ ธ ์๋ Window(์๋์ฐ)์ ํฌ๊ธฐ ๋ฒ์ ์์ ์๋ ์ฃผ๋ณ ๋จ์ด๋ค์ One-Hot Vector๊ฐ ๋ค์ด๊ฐ๋๋ค.
- Output layer(์ถ๋ ฅ์ธต)์์ ์์ธกํ๊ณ ์ ํ๋ ์ค๊ฐ ๋จ์ด์ One-Hot Vector๊ฐ label๋ก ํ์ํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์์ ๊ทธ๋ฆผ์์ ์์ ์๋๊ฑด Word2Vec์ Hidden Layer(์๋์ธต)์ด 1๊ฐ์ธ Shallow Neural Network(์์ ์ ๊ฒฝ๋ง)์ด๋ผ๋ ์ ์ ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ Word2Vec์ ํน์ง์ค ํ๋๋Word2Vec์์์ Hidden Layer(์๋์ธต)๋ Activation Function(ํ์ฑํ ํจ์)๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉฐ Lookup Table(๋ฃฉ์ ํ ์ด๋ธ)์ด๋ผ๋ ์ฐ์ฐ์ ๋ด๋นํ๋ ์ธต, Projection Layer(ํฌ์ฌ์ธต)์ด๋ผ๊ณ ํฉ๋๋ค.
CBOW์ ๋์ ๋ฉ์ปค๋์ฆ
CBOW์ ๋์ ๋ฉ์ปค๋์ฆ์ ๋ฐํ์ฌ ํ๋ฒ ๋ณด๊ฒ ์ต๋๋ค.
- ์ฌ๊ธฐ์ ๋ด์ผํ๋๊ฑด ์ผ๋จ Projection Layer(ํฌ์ฌ์ธต)์ ํฌ๊ธฐ๊ฐ M์ด๋ผ๋ ์ ์ ๋๋ค.
- CBOW์์์ Projection Layer(ํฌ์ฌ์ธต)์ ํฌ๊ธฐ M์ Embedding ํ๊ณ ๋ Vector์ ์ฐจ์์ด ๋ต๋๋ค.
- ์์ ๊ทธ๋ฆผ์์์ Projection Layer(ํฌ์ฌ์ธต)์ ํฌ๊ธฐ๋ 5์ด๋ฏ๋ก CBOW๋ฅผ ํ๊ณ ์ป๋ ๊ฐ ๋จ์ด์ Embedding Vector์ ์ฐจ์์ 5์ ๋๋ค.
+ Embedding: ๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ฅผ ์์น์ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ. ์ ์ฌํ ๊ฐ์ฒด๋ค์ด Vector ๊ณต๊ฐ์ ๊ฐ๊น์ด ์์นํ๋๋ก ํ๋ ๋ฐฉ์
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ํ๋ ๋ ์ฃผ๋ชฉํด์ผ ํ ์ ๋ ์์ต๋๋ค.
- Input Layer(์ ๋ ฅ์ธต) & Projection Layer(ํฌ์ฌ์ธต) ์ฌ์ด์ Weight(๊ฐ์ค์น, ์ฌ๊ธฐ์ W)๋ V * M ํ๋ ฌ ์ ๋๋ค.
- Projection Layer(ํฌ์ฌ์ธต)์ฌ์ด์ Weight(๊ฐ์ค์น) W'์ M * V ํ๋ ฌ์
๋๋ค.
- V๋ Context(๋จ์ด) ์งํฉ์ ํฌ๊ธฐ Vector๋ฅผ ์๋ฏธํฉ๋๋ค.
- M์ ์์์ ์ค๋ช ํ์ง๋ง Projection Layer(ํฌ์ฌ์ธต)์ ํฌ๊ธฐ ์ ๋๋ค.
- ์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด One-Hot Vector์ Dimension(์ฐจ์)์ด 7์ด๊ณ , M(ํฌ์ฌ์ธต์ ํฌ๊ธฐ)๊ฐ 5์ด๋ฉด?
- ๊ฐ์ค์น ํ๋ ฌ W๋ 7 * 5 ํ๋ ฌ, W'์ 5 * 7 ํ๋ ฌ์ด ๋ฉ๋๋ค. ์ด ๋ ํ๋ ฌ์ ์๋ก ๋ค๋ฅธ ํ๋ ฌ์ ๋๋ค.
- ์ธ๊ณต ์ ๊ฒฝ๋ง์ ํ๋ จํ ๋์ ๊ฐ์ค์น ํ๋ ฌ W & W'์ Random Value๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- CBOW๋ ์ฃผ๋ณ ๋จ์ด๋ก Center Word(์ค์ฌ ๋จ์ด)๋ฅผ ์ ๋ง์ถ๊ธฐ ์ํด์ ๊ฐ์ค์น ํ๋ ฌ W & W'๋ฅผ ํ์ตํ๋ ๊ตฌ์กฐ์ ๋๋ค.
Lookup Table (๋ฃฉ์ ํ ์ด๋ธ)
Input์ผ๋ก ๋ค์ด์ค๋ ์ฃผ๋ณ ๋จ์ด์ One-Hot Vector์ ๊ฐ์ค์น Wํ๋ ฌ์ ๊ณฑ์ ์ด๋ป๊ฒ ํ๋์ง ํ๋ฒ ์์๋ณด๊ฒ ์ต๋๋ค.
- Input Vector(์ ๋ ฅ ๋ฒกํฐ)๋ ์ฃผ๋ณ ๋จ์ด๋ค์ One-Hot Vector๋ฅผ x๋ก ํํํ์ต๋๋ค.
- i๋ฒ์งธ index์ 1์ด๋ผ๋ ๊ฐ์ด ์๊ณ , ๊ทธ์ธ์ 0์ ๊ฐ์ ๊ฐ์ง๋ Input Vector(์
๋ ฅ ๋ฒกํฐ)์ Weight(๊ฐ์ค์น) ํ๋ ฌ W์ ๊ณฑ์ Wํ๋ ฌ์ i๋ฒ์งธ ํ๋ ฌ์ ๊ทธ๋๋ก ๊ฐ์ ธ์ค๋๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๋ฌด์จ๋ง์ด๋?
- ํ๋ฒ ์์๋ฅผ ๋ค์ด์ ์ค๋ช ์ ํด๋ณด๋ฉด One-Hot Vector๊ฐ [0, 0, 1, 0]์ด๊ณ , Weight(๊ฐ์ค์น) ํ๋ ฌ W๋ ๊ณฑํ๋ค๊ณ ํ๋ฉด, ์ค์ ๋ก๋ W์ ์ธ๋ฒ์งธ ํ๋ง ๊ฐ์ ธ์ต๋๋ค.
- ์ด์ ๋ Vector์ ๊ฐ ์์๋ ํ๋ ฌ์ ํด๋น ํ์ ๊ณฑํด์ง๋๋ฐ, One-Hot Vector์์์ 1 ์ด์์ ๋ชจ๋ ๊ฐ์ 0์ด๊ธฐ ๋๋ฌธ์, 0์ด ๊ณฑํด์ง ํ์ ๋ชจ๋ ์ฌ๋ผ์ง๊ณ , 1์ ๊ณฑํด์ง ํ๋ง ๋จ์ต๋๋ค.
- ์ด๋์ One-Hot Encoding๋ Vector๋ฅผ Weight(๊ฐ์ค์น) ํ๋ ฌ๊ณผ ๊ณฑํ๋๊ฒ์ ํด๋น Vector์์ 1์ ์์น์ ํด๋นํ๋ Weight(๊ฐ์ค์น) ํ๋ ฌ์ ํ์ ์ ํํ๋๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
- ์ด ์์ ์ Lookup Table(๋ฃฉ์ ํ ์ด๋ธ)์ด๋ผ๊ณ ํฉ๋๋ค. ๋ํ Lookupํ W์ ๊ฐ ํ Vector๊ฐ Word2Vec ์๊ณ ๋ฆฌ์ฆ์ ํตํด์ ํ์ตํ ํ ๊ฐ ๋จ์ด์ M ์ฐจ์์ ์๋ฒ ๋ฉ Vector๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
- ์ด๋ ๊ฒ ์ฃผ๋ณ ๋จ์ด์ One-Hot Vector์ ๋ํด์ Weight(๊ฐ์ค์น) W๊ฐ ๊ณฑํด์ ธ ์๊ฒจ์ง ๊ฒฐ๊ณผ Vector๋ค์ Projection Layer(ํฌ์ฌ์ธต)์์ Vector๋ค์ ํ๊ท ์ ๋ด์ด์ ํ๊ท Vector๋ฅผ ๊ตฌํฉ๋๋ค.
- ์์๋ฅผ ๋ค๋ฉด, ๋ง์ฝ์ ์๋์ฐ ํฌ๊ธฐ๊ฐ 2, n = 2 ์ด๋ฉด, Input Vector(์ ๋ ฅ ๋ฒกํฐ)์ ์ด ๊ฐ์๋ 2n์ด๋ฏ๋ก Center Word(์ค์ฌ ๋จ์ด)๋ฅผ ์์ธกํ๋ ค๋ฉด ์ด 4๊ฐ๊ฐ Input Vector(์ ๋ ฅ ๋ฒกํฐ)๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ๊ทธ๋ฌ๋ฉด ํ๊ท ์ ๊ตฌํ ๋ 4๊ฐ์ Vector๋ฅผ ๊ฐ์ง๊ณ ํ๊ท ์ ๊ตฌํ๊ฒ ๋ฉ๋๋ค.
- Projection Layer(ํฌ์ฌ์ธต)์์ Vector์ ํ๊ท ์ ๊ตฌํ๋ ๋ฐฉ์์ CBOW์ Skip-Gram์ด ์๋ก ๋ค๋ฆ
๋๋ค.
- ์ฐธ๊ณ ๋ก Skip-Gram์ Input์ผ๋ก ๋ค์ด์ค๋ ๊ฐ์ด Center Word(์ค์ฌ ๋จ์ด)ํ๋์ด๋ฏ๋ก, Projection Layer(ํฌ์ฌ์ธต)์์ Vector์ด ํ๊ท ์ ๊ตฌํ์ง ์์ต๋๋ค.
์ด๋ ๊ฒ ํ๊ท ๋ฒกํฐ๋ฅผ ๊ตฌํ๋ฉด ๋๋ฒ์ฉจ Weight(๊ฐ์ค์น) ํ๋ ฌ W'์ ๊ณฑํด์ง๋๋ค.
- ๊ณฑํ๋ฉด, One-Hot Vector๊ณผ Dimension(์ฐจ์)์ด ๋์ผํ V ๋ฒกํฐ๊ฐ ๋์ต๋๋ค.
- ๋ง์ฝ Input Vector(์ ๋ ฅ ๋ฒกํฐ)์ Dimension(์ฐจ์)์ด 7์ด๋ฉด Output Vector๋ 7์ด ๋์ต๋๋ค.
- CBOW ์๊ณ ๋ฆฌ์ฆ์์๋ Softmax ํจ์๋ฅผ ์ง๋๋ฉด์ Vector์ ๊ฐ ์์์ ๊ฐ์ 0๊ณผ 1์ฌ์ด์ ์ค์ํ(Float)ํํ ๋ก ๋์ค๊ณ , Vector๋ค์ ์ดํฉ์ 1๋ก ๋์ต๋๋ค. ๋ค์ค ํด๋์ค ๋ถ๋ฅ๋ฅผ ์ํ ์ผ์ข ์ Score Vector์ ๊ฐ์ ๊ฐ๋ ์ ๋๋ค.
Softmax ํจ์: ํ๋ฅ ์ ์ธ ๊ด์ ์์ ์ฌ๋ฌ ์ ํ์ง์ค ํ๋๋ฅผ ์ ํํ๋๋ฐ ์ฌ์ฉ๋จ. ์ฃผ์ด์ง ์ ๋ ฅ๊ฐ๋ค์ ๋ํด์ ๊ฐ๊ฐ์ ํ๋ฅ ๊ฐ์ ๊ณ์ฐํ๊ณ , ์ด๋ค ๊ฐ๋ค์ ์ดํฉ์ด 1๋ก ๋๊ฒ ํฉ๋๋ค. -> ์ฌ๊ธฐ์ ์ถ๋ ฅ๊ฐ์ ํ๋ฅ ๋ก ํด์ํ ์ ์์ต๋๋ค.
- Score Vector์ J๋ฒ์งธ Index๊ฐ ๊ฐ์ง 0~ 1 ์ฌ์ด์ ๊ฐ์ j๋ฒ์งธ ๋จ์ด๊ฐ ๊ทธ ๋ฒกํฐ์ Center Word(์ค์ฌ ๋จ์ด)์ผ ํ๋ฅ ์ ๋ํ๋ ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ Score Vector์ ๊ฐ์ Label์ ํด๋นํ๋ Center Word(์ค์ฌ ๋จ์ด)์ One-Hot Vector ๊ฐ์ ๊ฐ๊น์ ์ ธ์ผ ํฉ๋๋ค. ์ด๊ฒ ๋ฌด์จ ๋ง์ด๋..? ํ๋ฒ ์ค๋ช
ํด ๋ณด๊ฒ ์ต๋๋ค.
- Score Vector๋ฅผ y^ ๋ผ๊ณ ํ๊ณ , Center Word(์ค์ฌ ๋จ์ด)์ One-Hot Vector ๊ฐ์ y๋ผ๊ณ ํ์๋, ์ด ๋ vector์ ์ค์ฐจ ๊ฐ์์ค์ด๊ธฐ ์ํด์ CBOW ์๊ณ ๋ฆฌ์ฆ์์๋ loss function(์์คํจ์)๋ก Cross-entropy ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Cross-Entropy ํจ์: ๋ฅ๋ฌ๋์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ Loss Function(์์คํจ์), ์๋ณธ์ ๋ถํฌ๊ฐ, ์์ธก์ ๋ถํฌ๊ฐ ์ฌ์ด์ ์ฐจ์ด๋ฅผ ์ธก์ ํ๋ ๋ฐฉ๋ฒ. ์๋ณธ์ ๋ถํฌ๊ฐ, ์์ธก์ ๋ถํฌ๊ฐ ์ฌ์ด์ ์ฐจ์ด๊ฐ ํฌ๋ฉด Cross-Entropy์ ๊ฐ์ด ๋์์ง๊ณ , ์๋๋ฉด ์์์ง๋๋ค.
- Cross-entropy ํจ์์ Center Word(์ค์ฌ ๋จ์ด)์ธ One-Hot Vector์ Score Vector๋ฅผ Input์ผ๋ก ๋ฃ์ต๋๋ค.
- ์ด ๊ณผ์ ์ ์์ผ๋ก ํํํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค. ์๋ ์์์์ V๋ ๋จ์ด ์งํฉ์ ํฌ๊ธฐ์ ๋๋ค.
- Back Propagation(์ญ์ ํ)์ ํ๋ฉด ๊ฐ์ค์น ํ๋ ฌ W, W'์ด ํ์ต์ด ๋๋๋ฐ, ํ์ต์ด ๋ค ๋๋ฉด M ์ฐจ์์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ ๊ฐ์ค์น ํ๋ ฌ W์ ํ์ ๊ฐ ๋จ์ด์ Embedding Vector๋ก ์ฌ์ฉํ๊ฑฐ๋, W, W' ํ๋ ฌ 2๊ฐ์ง๋ฅผ ๋ชจ๋ ๊ฐ์ง๊ณ Embedding Vector๋ฅผ ์ฌ์ฉํฉ๋๋ค.
5. Skip-Gram
CBOW์์๋ ์ฃผ๋ณ๋จ์ด ๋ฅผ ํตํด์ Center Word(์ค์ฌ ๋จ์ด)๋ฅผ ์์ธกํ๋ค๋ฉด, Skip-gram์ Center Word(์ค์ฌ ๋จ์ด)์์ ์ฃผ๋ณ ๋จ์ด๋ฅผ ์์ธกํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด์ ํ๋ฒ ์ค๋ช ํด๋ณด๋ฉด, "๊ณ ์์ด๊ฐ ์ฅ๋ฅผ ์ซ๋๋ค" ๋ผ๊ณ ํ๋ฉด, "์ฅ๋ฅผ"์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ฐ์ ๊ทธ ์ฃผ๋ณ์ ๋จ์ด๋ค ("๊ณ ์์ด๊ฐ", "์ซ๋๋ค")๋ฅผ ์์ธกํ๋ ค๊ณ ํฉ๋๋ค.
- ์ด๊ฑธ ๋ณด๋ฉด Skip-Gram Model์ ๋จ์ด๋ค ์ฌ์ด์ ์ฐ๊ด์ฑ์ ํ์ตํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ฐ๊ด์ฑ์ ๋จ์ด Embedding์ด๋ผ๊ณ ํํ๋ฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ด Embedding์ ๋จ์ด์ ์๋ฏธ๋ฅผ ์์น์ Vector๋ก ํํํ์ต๋๋ค. ์ด ์์น์ Vector๋ ๋จ์ด ์ฌ์ด์ ์ ์ฌ์ฑ์ ๊ณ์ฐํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- Window(์๋์ฐ)์ ํฌ๊ธฐ๊ฐ 2์ด๋ฉด, ๋ฐ์ดํฐ์ ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋ฉ๋๋ค.
- ์ธ๊ณต์ ๊ฒฝ๋ง์ ์๊ฐํ ํด๋ณด๋ฉด ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ต๋๋ค.
- Center Word(์ค์ฌ ๋จ์ด)์์ ์ฃผ๋ณ๋จ์ด๋ฅผ ์์ธกํ๊ธฐ ๋๋ฌธ์, Projection Layer(ํฌ์ฌ์ธต)์์ Vector์ ํ๊ท ์ ๊ตฌํ์ง ์์ต๋๋ค.
- ์ด์ ๋ Skip-Gram Model์ ๊ฐ๊ฐ์ ์ฃผ๋ณ ๋จ์ด๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก Predict(์์ธก)ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- Skip-Gram Model์ Center Word(์ค์ฌ ๋จ์ด)์์ ์ฃผ๋ณ๋จ์ด๋ฅผ ์์ธกํ ๋, ๊ฐ ์ฃผ๋ณ๋จ์ด์ ๋ํ ์์ธก์ ๋ ๋ฆฝ์ ์ผ๋ก ์ด๋ฃจ์ด ์ง๋ฏ๋ก, ํ ๋จ์ด์ ์์ธก์ด ๋ค๋ฅธ ๋จ์ด์ ์์ธก์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
๋ฐ์ํ
'๐ NLP (์์ฐ์ด์ฒ๋ฆฌ) > ๐ Natural Language Processing' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[NLP] Attention - ์ดํ ์ (0) | 2024.02.17 |
---|---|
[NLP] Word Embedding - ์๋ ์๋ฒ ๋ฉ (0) | 2024.02.12 |
[NLP] GRU Model - LSTM Model์ ๊ฐ๋ณ๊ฒ ๋ง๋ ๋ชจ๋ธ (0) | 2024.01.30 |
[NLP] LSTM - Long Short Term Memory Model (0) | 2024.01.29 |
[NLP] Vanilla RNN Model, Long-Term Dependency - ์ฅ๊ธฐ ์์กด์ฑ ๋ฌธ์ (0) | 2024.01.23 |