[Word2Vec์ ๊ดํ์ฌ] - CBOW, Skip-gram
์ง๋ CS224N ๊ฐ์๋ฅผ ์๊ฐํ๊ณ , Word2Vec์ ๊ดํด ์กฐ๊ธ ๋ ๊ฐ๋ ์ ํ๋ฆฝํ๊ณ ์ ๊ณต๋ถํ๊ฒ ๋์๋ค.
์ด๋ฒ ๋ธ๋ก๊ทธ๋ ์ํค๋ ์ค ๋ฅผ ์ฐธ๊ณ ํ์ฌ ๋ง๋ค์๋ค.
Word2Vec
word2vec์ word vector๋ค์ ํ์ต์ ์ํด ๋ง๋ค์ด์ง ํ๋ ์์ํฌ์ด๋ค.
ํด๋น ํ๋ ์์ํฌ์ ํต์ฌ์ text๋ฅผ ์ปดํจํฐ๊ฐ ์ธ์ํ ์ ์๋๋ก ์ซ์ ํํ์ vector ๋๋ ํ๋ ฌ๋ก ๋ณํํ๋ ๊ฒ์ด๋ค.
์ด๋ ๋๋ถ๋ถ ๋ํ์ ์ผ๋ก ๋ค์ ๋ ๊ฐ์ง ๊ณผ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค:
- One Hot Encoding (Sparse representation)
- Word Embedding (Dense representation)
One Hot Encoding์ ๋จ์ด ๋ฒกํฐ๊ฐ 0 ๋๋ 1์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋์ด ๊ณผ์ ์ด ๋จ์ํ๋ค๋ ์ฅ์ ์ด ์์ง๋ง,
ํฐ ์ฐจ์์ด ํ์ํ๋ค๋ ์ ๊ณผ, ๋จ์ด ๊ด๊ณ (์ ์ฌ์ฑ)์ ํ์ ํ๊ธฐ ์ด๋ ต๋ค๋ ์น๋ช ์ ์ธ ๋จ์ ์ด ์์๋ค.
์ด๋ฅผ ๋ณด์ํ๋ ๋ฐฉ๋ฒ์ผ๋ก Distributional Semantics ๊ธฐ๋ฐ์ Word Embedding์ด ๋ฑ์ฅํ๊ฒ ๋์๊ณ , ํ๋์ ๋๋ถ๋ถ์ ์์ฐ์ด ์ฒ๋ฆฌ ๊ธฐ๋ฒ๋ค์ (ex. Word2vec, GloVe, FastText…) Word Embedding ๋ฐฉ์์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ ํ์๋ค.
์ ๊ทธ๋ฆผ์ word2vec ํ๋ ์์ํฌ์ ์๋ฆฌ๋ฅผ ๊ฐ์ฅ ์ ๋ณด์ฌ์ฃผ๋ ๊ทธ๋ฆผ์ด๋ค.
์ฌ๊ธฐ์ word2vec์ ๋น์ทํ ๋จ์ด๋ค์ ๋น์ทํ ์์น์ ๊ณต๊ฐ์ ๋๋ ๋ฐฉ์์ผ๋ก objective ํจ์๋ฅผ ์ต๋ํ์ํจ๋ค. ํด๋น ์์ด๋์ด๋ฅผ ์ด์ฉํ์ฌ ์ค์ฌ ๋จ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ชฝ์ผ๋ก ์๋์ฐ ํฌ๊ธฐ๋งํผ์ ๋จ์ด๋ฅผ ๋งฅ๋ฝ ๋จ์ด๋ก ์ค์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์-ํซ ์ธ์ฝ๋ฉ์ ์ด์ฉํด ์ค์ฌ ๋จ์ด ๋ฒกํฐ์ ๋งฅ๋ฝ ๋จ์ด ๋ฒกํฐ๋ฅผ ์์ฑํ ํ, ์ด๋ฅผ ์
๋ ฅ ๋ฒกํฐ์ ์ถ๋ ฅ ๋ฒกํฐ๋ก ์ฌ์ฉํ๋ค. ๋งฅ๋ฝ ๋ฒกํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋์ฐ ๊ฐ์์ 2๋ฐฐ๋งํผ ์์ฑ๋๋ค.
์ด๋๋งฅ๋ฝ ๋ฒกํฐ๊ฐ ์
๋ ฅ, ์ค์ฌ ๋ฒกํฐ๊ฐ ์ถ๋ ฅ์ธ ๊ฒฝ์ฐ๋ฅผ CBOW ๋ฐฉ์, ๊ทธ๋ฆฌ๊ณ ์ค์ฌ ๋ฒกํฐ๊ฐ ์
๋ ฅ, ๋งฅ๋ฝ ๋ฒกํฐ๊ฐ ์ถ๋ ฅ์ธ ๊ฒฝ์ฐ๋ฅผ Skip-gram ๋ฐฉ์์ด๋ผ๊ณ ํ๋ค.
๋ ์๊ณ ๋ฆฌ์ฆ์ ์๋์ ๊ฐ์ ํ ๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ฉด ํ์ฐํ ์ฐจ์ด๋ฅผ ์ ์ ์๋ค.
1. CBOW (Continuous Bag of Word)
์์์ ์ค๋ช ํ๋ค์ํผ, ๋งฅ๋ฝ ๋ฒกํฐ๊ฐ ์ ๋ ฅ, ์ค์ฌ ๋ฒกํฐ๊ฐ ์ถ๋ ฅ์ธ ๊ฒฝ์ฐ๋ฅผ CBOW ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ๋ค.
์ด๋ ๋งฅ๋ฝ ๋จ์ด๋ค๋ก ์ค์ฌ ๋จ์ด๋ฅผ ์์ธกํ ๋ ์ฌ์ฉ๋๋๋ฐ, ๋ค์ ๋ฌธ์ฅ์ ์๋ฅผ ๋ค์ด๋ณด์.
'The fat cat sat on the mat'
CBOW๋ฅผ ์ด์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋น์นธ์ ์ด๋ค ๋จ์ด๊ฐ ๋ค์ด๊ฐ์ง ์์ธกํ๋ task๋ฅผ ์ํํ ์ ์๋ค.
'The fat cat __ on the mat'
๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ์์ธก์ด ์ด๋ฃจ์ด์ง๋ ๊ฒ์ผ๊น ?
1. one-hot encoding์ ์ฌ์ฉ
์ฐ์ , ์ค์ฌ ๋จ์ด๋ฅผ ์์ธกํ๊ธฐ ์ํด์ ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ๋ง๋งํผ์ ๋ฌธ๋งฅ ๋จ์ด๋ฅผ ์ดํด๋ณผ ๊ฒ์ธ์ง ๊ฒฐ์ ํด์ผ ํ๋ค. ์ด๋ฅผ window๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด window ํฌ๊ธฐ๊ฐ 2์ด๊ณ , ์์ธกํ๊ณ ์ ํ๋ ์ค์ฌ ๋จ์ด๊ฐ sat์ด๋ผ๊ณ ํ๋ค๋ฉด ์์ ๋ ๋จ์ด์ธ fat์ cat, ๊ทธ๋ฆฌ๊ณ ๋ค์ ๋ ๋จ์ด์ธ on, the๋ฅผ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉํ๋ค.
์๋์ฐ ํฌ๊ธฐ๊ฐ n์ด๋ผ๊ณ ํ๋ค๋ฉด, ์ค์ ์ค์ฌ ๋จ์ด๋ฅผ ์์ธกํ๊ธฐ ์ํด ์ฐธ๊ณ ํ๋ ค๊ณ ํ๋ ์ฃผ๋ณ ๋จ์ด์ ๊ฐ์๋ 2n์ด๋ค. (์์)
์ดํ, ์ฒ์ ๋ฌธ์ฅ์ ๋ฐํ์ผ๋ก one-hot encoding์ ์ํํ๋ฉด ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ๋ค:
2. CBOW์ ๊ตฌ์กฐ
๊ทธ๋ ๋ค๋ฉด CBOW์ ๊ตฌ์กฐ๋ฅผ ๋ค์ ์ดํด๋ณด์.
Input layer ์๋ ์, ๋ค๋ก ์ฌ์ฉ์๊ฐ ์ ํ ์๋์ฐ ํฌ๊ธฐ ๋ฒ์ ์์ ์๋ ์ฃผ๋ณ ๋จ์ด๋ค์ one-hot vector๊ฐ input์ผ๋ก ์ฌ์ฉ๋๊ณ , Output layer์์๋ ์์ธกํ๊ณ ์ ํ๋ ์ค๊ฐ ๋จ์ด์ one-hot vector๊ฐ ๋ ์ด๋ธ๋ก์ ํ์ํ๋ค.
์ ๊ตฌ์กฐ๋ฅผ ์กฐ๊ธ ๋ ํ๋ํด์ ๋ณด์.
์ด ๊ทธ๋ฆผ์์ ์ฃผ๋ชฉํด์ผ ํ ๊ฒ์ ๋ ๊ฐ์ง์ด๋ค.
- ํ๋๋ ํฌ์ฌ์ธต (Projection layer)์ ํฌ๊ธฐ๊ฐ M์ด๋ผ๋ ์ ์ด๋ค. CBOW์์ ํฌ์ฌ์ธต์ ํฌ๊ธฐ M์ ์๋ฒ ๋ฉํ๊ณ ๋ ๋ฒกํฐ์ ์ฐจ์์ด ๋๋ค. ์์ ๊ทธ๋ฆผ์์ ํฌ์ฌ์ธต์ ํฌ๊ธฐ๋ M=5์ด๋ฏ๋ก CBOW๋ฅผ ์ํํ๊ณ ๋์ ์ป๋ ๊ฐ ๋จ์ด์ ์๋ฒ ๋ฉ ๋ฒกํฐ์ ์ฐจ์์ 5๊ฐ ๋ ๊ฒ์ด๋ค.
- ๋ ๋ฒ์งธ๋ ์
๋ ฅ์ธต๊ณผ ํฌ์ฌ์ธต ์ฌ์ด์ ๊ฐ์ค์น W๋ V × M ํ๋ ฌ์ด๋ฉฐ, ํฌ์ฌ์ธต์์ ์ถ๋ ฅ์ธต์ฌ์ด์ ๊ฐ์ค์น W'๋ M × V ํ๋ ฌ์ด๋ผ๋ ์ ์ด๋ค.
์ฌ๊ธฐ์ V๋ ๋จ์ด ์งํฉ์ ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๋ค (๋จ์ด ์งํฉ์ ๊ธธ์ด). ์ฆ, ์์ ๊ทธ๋ฆผ์ฒ๋ผ one-hot vector์ ์ฐจ์์ด 7์ด๊ณ , M์ 5๋ผ๋ฉด ๊ฐ์ค์น W๋ 7 × 5 ํ๋ ฌ์ด๊ณ , W'๋ 5 × 7 ํ๋ ฌ์ด ๋ ๊ฒ์ด๋ค.
์ธ๊ณต ์ ๊ฒฝ๋ง์์ ํ๋ จ ์ ์ ์ด ๊ฐ์ค์น ํ๋ ฌ W์ W'๋ ๋๋ค ๊ฐ์ ๊ฐ์ง๊ฒ ๋๋ค. ์ดํ, CBOW๋ ์ฃผ๋ณ ๋จ์ด๋ก ์ค์ฌ ๋จ์ด๋ฅผ ๋ ์ ํํ ๋ง์ถ๊ธฐ ์ํด ๊ณ์ํด์ ์ด W์ W'๋ฅผ ํ์ตํด ๊ฐ๋ ๊ตฌ์กฐ์ด๋ค.
3. One-hot vector์ W์ ๊ณฑ
์์์ ๋ณด์ด๋ ํฌ์ฌ์ธต์ ๊ฒฐ๊ณผ๋ ์ด๋ป๊ฒ ์ฐ์ถ๋ ๊น?
๋ค์ ๊ทธ๋ฆผ์ ์ฐธ๊ณ ํ์.
๊ทธ๋ฆผ์ ์์ชฝ์ ๋์์๋ ๊ฒ์ฒ๋ผ ๊ณฑ ์ฐ์ฐ์ด ์ํ๋๋ค. ๊ทธ๋ฌ๋, ์ฐ๋ฆฌ๋ ๋ฒกํฐ์์ ๊ฐ์ด 0์ธ ๋ถ๋ถ๋ค์ ๊ตณ์ด ๊ณ์ฐ์ ํ์ง ์์๋ ๋๋ค๋ ์ ์ ์ฝ๊ฒ ์ ์ ์๋ค. ๊ทธ๋์ ์ฌ์ค ์ด ๊ณฑ ์ฐ์ฐ์ Wํ๋ ฌ์ i๋ฒ์งธ ํ์ ๊ทธ๋๋ก ์ฝ์ด์ค๋ ๊ฒ๊ณผ(lookup) ๋์ผํ๋ค๋ ๋ป์์ ์์ฑ๋ V๋ฅผ ๋ฃฉ์ ํ ์ด๋ธ(lookup table)์ด๋ผ๊ณ ํ๋ค.
์ด ์ฐ์ฐ์ cat ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๋จ์ด์ ๋ํด ์ํํ๊ฒ ๋๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ฒ ๋๋ค.
์ด๋ ๊ฒ ์ฃผ๋ณ ๋จ์ด์ one-hot vector์ ๋ํด์ ๊ฐ์ค์น W๊ฐ ๊ณฑํด์ ์๊ฒจ์ง ๊ฒฐ๊ณผ ๋ฒกํฐ๋ค์ ํฌ์ฌ์ธต์์ ๋ง๋ ์ด ๋ฒกํฐ๋ค์ ํ๊ท ์ธ ๋ฒกํฐ๋ฅผ ๊ตฌํ๊ฒ ๋๋ค.
์ด๋ ๊ฒ ๊ตฌํด์ง ๋ฒกํฐ v๋ W'์ ๊ณฑํด์ง๊ณ , softmax ํจ์๋ฅผ ๊ฑฐ์ณ input vector์ ๋์ผํ ์ฐจ์์ ๋ฒกํฐ๋ก ์์ฑ๋๋ค.
์ค์ฌ ๋จ์ด์ one-hot vector๋ฅผ y๋ก ์ ์ํ์ ๋, ์ด ๋ ๋ฒกํฐ๊ฐ์ ์ค์ฐจ๋ฅผ ์ค์ด๊ธฐ ์ํด CBOW๋ ์์ค ํจ์(loss function)๋ก ํฌ๋ก์ค ์ํธ๋กํผ(cross-entropy) ํจ์๋ฅผ ์ฌ์ฉํ๋ค. cross-entropy ํจ์์ ์ค์ฌ ๋จ์ด์ one-hot vector์ ์ค์ฝ์ด ๋ฒกํฐ๋ฅผ ์ ๋ ฅ๊ฐ์ผ๋ก ๋ฃ๊ณ , ์ด๋ฅผ ์์ผ๋ก ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ดํ, ์ญ์ ํ(Back Propagation)๋ฅผ ์ํํ๋ฉด W์ W'๊ฐ ํ์ต์ด ๋๋๋ฐ, ํ์ต์ด ๋ค ๋์๋ค๋ฉด M์ฐจ์์ ํฌ๊ธฐ๋ฅผ ๊ฐ๋ W์ ํ๋ ฌ์ ํ์ ๊ฐ ๋จ์ด์ ์๋ฒ ๋ฉ ๋ฒกํฐ๋ก ์ฌ์ฉํ๊ฑฐ๋ W์ W' ํ๋ ฌ ๋ ๊ฐ์ง ๋ชจ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ฒ ๋ฉ ๋ฒกํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค๊ณ ํ๋ค.
2. Skip-gram
context word๋ฅผ ํตํด center word๋ฅผ ์์ธกํ๋ CBOW๋ ๋ฐ๋๋ก,
Skip-gram์ center word๋ฅผ ํตํด context word๋ค์ ์์ธกํ๋ ๋ฐฉ์์ด๋ค.
์์ ์ฌ์ฉํ ์์๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํด ๋ณด์.
1. Dataset
Skip-gram์์๋ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ์ ์ ๋ง๋ค ์ ์๋ค.
2. Skip-gram์ ๊ตฌ์กฐ
์ธ๊ณต ์ ๊ฒฝ๋ง์ ๋์ํํ๋ฉด ์์ ๊ฐ๋ค.
์ดํ์ ๊ณ์ฐ ๊ณผ์ ์ CBOW์ ์ ์ฌํ๋ค.
Skip-gram์์๋ ์ค์ฌ ๋จ์ด์ ๋ํด์ ์ฃผ๋ณ ๋จ์ด๋ฅผ ์์ธกํ๋ฏ๋ก, ํฌ์ฌ์ธต์์ ๋ฒกํฐ๋ค์ ํ๊ท ์ ๊ตฌํ๋ ๊ณผ์ ์ ์๋ค.
์ฌ๋ฌ ๋ ผ๋ฌธ์์ ์ฑ๋ฅ ๋น๊ต๋ฅผ ์งํํ์ ๋ ์ ๋ฐ์ ์ผ๋ก Skip-gram์ด CBOW๋ณด๋ค ์ฑ๋ฅ์ด ์ข๋ค๊ณ ์๋ ค์ ธ ์๋ค.
์ค๋์ ์ด๋ ๊ฒ Word2Vec์ ์ฃผ์ ์๊ณ ๋ฆฌ์ฆ์ธ CBOW์ Skip-gram์ ๊ดํด ์์๋ณด์๋ค.