(02๊ฐ) Word Embedding
210906
Last updated
Was this helpful?
210906
Last updated
Was this helpful?
์๋ ์๋ฒ ๋ฉ์ ์์ฐ์ด๊ฐ ๋จ์ด๋ค์ ์ ๋ณด์ ๊ธฐ๋ณธ ๋จ์๋ก ํด์ ๊ฐ ๋จ์ด๋ค์ ํน์ ๊ณต๊ฐ์ ํ์ ์ผ๋ก ๋ํ๋ด๋ ๋ฒกํฐ๋ก ๋ณํํด์ฃผ๋ ๊ธฐ๋ฒ์ด๋ค.
๊ณ ์์ด๋ฅผ ์๋ฏธํ๋ cat๊ณผ ์ด๋ฆฐ ๊ณ ์์ด๋ฅผ ์๋ฏธํ๋ kitty๋ ์๋ฏธ๊ฐ ์ ์ฌํ๋ฏ๋ก ๊ฐ ์ ์ ๊ฐ๊น์ด ์์นํ๊ณ hamburger์๋ ๋ฉ๋ฆฌ ์์นํ๊ฒ ๋๋ค.
์๋ ์๋ฒ ๋ฉ์ ํ๋ ๋ฐฉ๋ฒ ์ค ๋ํ์ ์ธ ๋ฐฉ๋ฒ. ๊ฐ์ ๋ฌธ์ฅ์์ ๋ํ๋ ์ธ์ ํ ๋จ์ด๋ค ๊ฐ์ ์๋ฏธ๊ฐ ๋น์ทํ ๊ฒ์ด๋ผ๋ ๊ฐ์ ์ ์ฌ์ฉํ๋ค. "The cat purrs" ์ " This cat hunts mice" ๋ผ๋ ๋ฌธ์ฅ์์ cat์ด๋ผ๋ ๋จ์ด๋ The, purrs, This, hunts, mice ์ ๊ด๋ จ์ด ์๋ค.
์ด๋ ํ ๋จ์ด๊ฐ ์ฃผ๋ณ์ ๋ฑ์ฅํ๋ ๋จ์ด๋ฅผ ํตํด ๊ทธ ์๋ฏธ๋ฅผ ์ ์ ์๋ค๋ ์ฌ์ค์ ์ฐฉ์ํ๋ค. ์ฃผ์ด์ง ํ์ต ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก cat ์ฃผ๋ณ์ ๋ํ๋๋ ์ฃผ๋ณ ๋จ์ด๋ค์ ํ๋ฅ ๋ถํฌ๋ฅผ ์์ธกํ๊ฒ ๋๋ค. ๋ณด๋ค ๊ตฌ์ฒด์ ์ผ๋ก๋ cat์ ์ ๋ ฅ๋จ์ด๋ก ์ฃผ๊ณ ์ฃผ๋ณ๋จ์ด๋ฅผ ์จ๊ธด์ฑ ์์ธกํ๋๋ก ํ๋ ๋ฐฉ์์ผ๋ก Word2Vec์ ํ์ต์ด ์งํ๋๋ค.
๊ตฌ์ฒด์ ์ธ ํ์ต ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ฒ์์๋ "I study math" ๋ผ๋ ๋ฌธ์ฅ์ด ์ฃผ์ด์ง๋ค
word๋ณ๋ก tokenization์ด ์ด๋ฃจ์ด์ง๊ณ ์ ์๋ฏธํ ๋จ์ด๋ฅผ ์ ๋ณํด ์ฌ์ ์ ๊ตฌ์ถํ๋ค
์ด ํ ์ฌ์ ์ ์๋ ๋จ์ด๋ค์ ์ฌ์ ์ ์ฌ์ด์ฆ๋งํผ์ ์ฐจ์์ ๊ฐ์ง ont-hot vector๋ก ํํ๋๋ค.
์ดํ sliding window๋ผ๋ ๊ธฐ๋ฒ์ ์ ์ฉํด์ ํ ๋จ์ด๋ฅผ ์ค์ฌ์ผ๋ก ์๋ค๋ก ๋ํ๋๋ ๋จ์ด๋ค ๊ฐ๊ฐ๊ณผ์ ์ ์ถ๋ ฅ ๋จ์ด ์์ ๊ตฌ์ฑํ๊ฒ๋๋ค.
์๋ฅผ ๋ค์ด window size๊ฐ 3์ด๋ฉด ์๋ค๋ก ํ๋์ ๋จ์ด๋ง์ ๋ณด๊ฒ๋๋ค.
์ค์ฌ ๋จ์ด๊ฐ I ๋ผ๋ฉด (I, study) ๋ผ๋ ์์ ๊ตฌํ ์ ์๊ฒ ๋๋ค.
์ค์ฌ ๋จ์ด๊ฐ study ๋ผ๋ฉด (study, I) ์ (study, math) ๋ผ๋ ์์ ์ป์ ์ ์๋ค.
์ฆ, (์ค์ฌ ๋จ์ด, ์ฃผ๋ณ ๋จ์ด) ๋ผ๋ ๊ด๊ณ๋ฅผ ๊ฐ์ง ์์ window size์ ๋ฐ๋ผ ๋ง๋ค์ด ๋ผ ์ ์๊ฒ๋๋ค.
์ด๋ ๊ฒ ๋ง๋ค์ด์ง ์ ์ถ๋ ฅ ๋จ์ด ์๋ค์ ๋ํด ์์ธก Task๋ฅผ ์ํํ๋ Two layer๋ฅผ ๋ง๋ค๊ฒ ๋๋ค.
์ ๋ ฅ๊ณผ ์ถ๋ ฅ๋ ธ๋์ ๊ฐ์๋ Vocab์ ์ฌ์ด์ฆ์ ๊ฐ๋ค.
๊ฐ์ด๋ฐ์ ์๋ Hidden layer์ ๋ ธ๋ ์๋ ์ฌ์ฉ์๊ฐ ์ ํ๋ ํ์ดํผ ํ๋ผ๋ฏธํฐ์ด๋ฉฐ, ์๋์๋ฒ ๋ฉ์ ์ํํ๋ ์ฐจ์ ์์ ๋์ผํ ๊ฐ์ผ๋ก ์ฃผ๋ก ๊ฒฐ์ ํ๋ค.
๋ง์ฝ (study, math) ์์ ํ์ตํ๋ค๊ณ ํ์. ๊ทธ๋ฌ๋ฉด input๊ฐ์ผ๋ก study๋ฅผ ์๋ฏธํ๋ [0, 1, 0] ์ด ์ ๋ ฅ๋๋ค.
study : [0, 1, 0]
math : [0, 0, 1]
I : [1, 0, 0]
Input layer๋ 3์ฐจ์ Hidden layer๋ 2์ฐจ์์ด๋ฏ๋ก W๋ 3 * 2์ ํํ๋ฅผ ๊ฐ์ ธ์ผ ํ๋ฉฐ ์ค์ X์ ๊ณฑํด์ง ๋์ 2 * 3์ ๋ชจ์์ผ๋ก ๊ณฑํด์ง๋ค.
Output layer๋ 3์ฐจ์์ด๋ฏ๋ก W๋ 3 * 2์ ๋ชจ์์ผ๋ก ๊ณฑํด์ง๋ค.
์ดํ, Softmax๋ฅผ ์ ์ฉํด์ ํ๋ฅ ๋ถํฌ ๋ฒกํฐ๋ฅผ ์ป๊ฒ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ Ground Truth์์ ๊ฑฐ๋ฆฌ๊ฐ ์ ์ผ ๊ฐ๊น์์ง๊ฒ ํ๋ Softmax Loss๋ฅผ ์ ์ฉํจ์ผ๋ก์จ W1๊ณผ W2๋ฅผ ํ์ตํ๊ฒ๋๋ค.
์ฌ๊ธฐ์ W1๊ณผ X๋ฅผ ๋ด์ ํ๊ฒ ๋๋๋ฐ, X์ ํน์ฑ์ ํน์ ์ธ๋ฑ์ค๋ง 1์ด๊ณ ๋๋จธ์ง๋ ๋ค 0์ด๋ค ๋ณด๋, W1์ ํน์ ์ธ๋ฑ์ค ๊ฐ๋ง ๋ฝ์์จ๋ค๊ณ ๋ณผ ์ ์๋ค.
๊ทธ๋์ ์ฝ๋๋ก ๊ตฌํํ ๋์๋ ๋ด์ ์ ๊ตฌํํ์ง ์๊ณ X์์ 1์ด ์กด์ฌํ๋ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง๊ณ W1์์ ๊ฐ์ ธ์ค๊ฒ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก W2์ W1*X๋ฅผ ๋ด์ ํ ๋๋ Ground Truth๊ฐ์ธ Y์์ 1์ด ์กด์ฌํ๋ ์ธ๋ฑ์ค์ ํด๋นํ๋ ๊ฐ๋ง ํ์ธํ๋ฉด ๋๋ค. ๋ฐ๋ผ์ W2๋ Y์์ 1์ด ์กด์ฌํ๋ ์ธ๋ฑ์ค์์์ ๊ฐ๋ง ๋ฝ์์จ๋ค.
์์ธก๊ฐ๊ณผ ์ค์ ๊ฐ์ด ๊ฐ๊น์์ง๋ ค๋ฉด W2 * W1 * X์ ๊ฐ์ ์ ๋ต์ ํด๋นํ๋ ์ธ๋ฑ์ค์ ๊ฐ์ ๋ฌดํ๋์ ๊ฐ๊น์์ผ ํ๊ณ ๊ทธ์ธ์ ๊ฐ๋ค์ ์์ ๋ฌดํ๋์ ๊ฐ๊น์์ผ ํ๋ค.
๊ทธ๋์ผ Softmax๋ฅผ ์ ์ฉํ์ ๋ ์์ ๋ฌดํ๋์ ๋ํด์๋ง 1์ ์ป๊ณ ๋๋จธ์ง ์์น์์๋ 0์ ์ป๊ธฐ ๋๋ฌธ
์ ๋งํฌ์ ๋ค์ด๊ฐ๋ฉด ์๋ ์๋ฒ ๋ฉ์ ์๊ฐ์ ์ธ ์ํ๋ก ๋ณผ ์ ์๋ค. ์์๋ก๋ 8๊ฐ์ ๋จ์ด๋ฅผ ์ฌ์ฉํ์ผ๋ฉฐ hidden size๋ 5์ด๋ค.
๋, ๋ค์๊ณผ ๊ฐ์ด W1๊ณผ W2 ํ๋ ฌ์ ์๊ฐ์ ์ผ๋ก ํ์ธํ ์ ์๋ค.
W1์ Transpose๋ฅผ ํตํด W2์ ์ฌ์ด์ฆ๊ฐ ๊ฐ๋๋ก ๋ํ๋๋ค.
ํธ๋ฅธ์์ ์์, ๋ถ์์์ ์์์ด๋ค.
ํ์ฌ๋ Random Initialization ๋ ์ํ์ด๋ค.
๊ฐ ๋จ์ด์ ์๋ฒ ๋ฉ ๋ ์ขํํ๋ฉด๋ ๋ค์๊ณผ ๊ฐ๋ค.
W1๊ณผ W2์ ์ฐจ์์ 5๊ฐ์ง๋ง PCA๋ฅผ ํตํด์ 2-Dimension์ผ๋ก ์ฐจ์ ์ถ์๋ฅผ ํ ๋ค Scatter plot์ ํํ๋ก ๊ฐ๊ฐ์ ๋ฒกํฐ๋ค์ ์๊ฐํ ํ ๊ฒฐ๊ณผ์ด๋ค.
Trainin data๋ ๋ค์๊ณผ ๊ฐ๋ค.
์ดํ, 300๋ฒ์ ํ์ต์ ์งํํ๊ฒ ๋ ํ์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด์.
juice์ input vector๋ drink์ output vector์๋ ์ ์ฌํ ๋ฒกํฐ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด ๋ ๋จ์ด๋ฒกํฐ์ ๋ด์ ๊ฐ์ ์ปค์ง๊ฒ ๋๋ค.
๋ํ milk์ water์๋ ์ ์ฌํ๋ค.
eat๊ณผ apple๋ ์ ์ฌํ ๋ฒกํฐ๋ฅผ ๊ฐ์ง๋ค.
orange์๋ ์ ์ฌํ๋ค.
์ ๋ ฅ ๋จ์ด์ ์ถ๋ ฅ ๋จ์ด์ ๋ ๊ฐ์ ๋ฒกํฐ๋ฅผ ์ต์ข ์ ์ผ๋ก ์ป์ ์ ์๊ณ ๋ ์ค์ ์ด๋๊ฒ์ ์๋ ์๋ฒ ๋ฉ์ ์์ํ์ผ๋ก ์ฌ์ฉํด๋ ์๊ด์ด ์์ผ๋ ํต์์ ์ผ๋ก ์ ๋ ฅ ๋จ์ด์ ๋ฒกํฐ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค.
์ด๋ ๊ฒ ํ์ต๋ Word2Vec์ Words๊ฐ์ ์๋ฏธ๋ก ์ ๊ด๊ณ๋ฅผ Vector Embedding๋ก ์ ํํํ ์ ์๋ค.
๋ค์ ๊ทธ๋ฆผ์ Word2Vec์ผ๋ก ํ์ต๋ ๋จ์ด๋ค์ ์๋ฒ ๋ฉ ๋ฒกํฐ๋ฅผ ํํํ ๊ฒ์ด๋ค.
MAN์์ WOMAN์ผ๋ก์ ๋ฒกํฐ๋ KING์์ QUEEN ๋ฒกํฐ๊ฐ ๋จ์ฑ์์ ์ฌ์ฑ์ผ๋ก์ ๋ณํ๋ฅผ ์๋ฏธํ๋ ๋ฒกํฐ์ ๊ด๊ณ๊ฐ ์๋์๋ฒ ๋ฉ ๊ด๊ณ์์ ์ ํ์ต๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ ๋งํฌ์์ Word2Vec์ ํ๊ธ ๋ฐ์ดํฐ๋ฅผ ํตํด ํ์ตํ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค.
๋, ์ ๋งํฌ์์๋ ์ฌ๋ฌ ๋จ์ด๋ค์ด ์ฃผ์ด์ก์ ๋ ๋๋จธ์ง ๋จ์ด์ ๊ฐ์ฅ ์๋ฏธ๊ฐ ์์ดํ ๋จ์ด๋ฅผ ์ฐพ์๋ด๋ ์์ ์ ํ ์ ์๋ค
์๋ง, ์๋น , ํ ์๋ฒ์ง, ํ ๋จธ๋, ์ด์์ฌ์ด => ์ด์์ฌ์ด
๊ฐ ๋ฒกํฐ ์ฌ์ด์ ํ๊ท ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํด์ ํ๊ท ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ํฐ ๋จ์ด๋ฅผ ๋ฐํํ๋ค.
math, shopping, reading, science => shopping
Word2Vec์ ๋จ์ด ์์ฒด์ ์๋ฏธ๋ฅผ ํ์ ํ๋ Task ์ด์ธ์๋ ๋ค์ํ ์์ฐ์ด ์ฒ๋ฆฌ Task์์ ์์ฐ์ด๋ฅผ Word๋จ์์ ๋ฒกํฐ๋ก ๋ํ๋ด์ด Task์ ์ ๋ ฅ์ผ๋ก ์ ๊ณต๋๋ ํํ๋ก ๋ง์ด ์ฌ์ฉ๋๋ค.
๊ธฐ๊ณ ๋ฒ์ญ : ๊ฐ์ ์๋ฏธ๋ฅผ ์ง๋ ๋จ์ด๊ฐ align ๋ ์ ์๋๋ก ํ๋ค.
๊ฐ์ ๋ถ์ : ๊ฐ ๋จ์ด๋ค์ ๊ธ/๋ถ์ ์ ์๋ฏธ๋ฅผ ๋ณด๋ค ์ฉ์ดํ๊ฒ ํ์ ํ ์ ์๋๋ก ํ๋ ์๋ ์๋ฒ ๋ฉ์ ์ ๊ณตํ๋ค.
Image Captioning : ์ด๋ฏธ์ง์ ์ํฉ์ ์ ์ดํดํ๊ณ ์ด์๋ํ ์ค๋ช ๊ธ์ ์์ฐ์ด์ ํํ๋ก ์์ฑํ๋ ๊ฒ
PoS tagging, ๊ณ ์ ๋ช ์ฌ์ธ์ ๋ฑ
Word2Vec๊ณผ ๋๋ถ์ด ๋ง์ด ์ฐ์ด๋ ๋๋ค๋ฅธ ์๋ ์๋ฒ ๋ฉ ๋ฐฉ๋ฒ์ด๋ค. Word2Vec๊ณผ์ ํฐ ์ฐจ์ด์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ฐ ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ ์๋ค์ ๋ํด์ ํ์ต ๋ฐ์ดํฐ์์ ๋ ๋จ์ด๊ฐ ํ ์๋์ฐ ๋ด์์ ๋ช๋ฒ ๋ฑ์ฅํ๋์ง๋ฅผ ์ฌ์ ์ ๋ฏธ๋ฆฌ ๊ณ์ฐํ๋ค.
๋ค์ ์์์ฒ๋ผ ์ ๋ ฅ๋ฒกํฐ์ ์ถ๋ ฅ๋ฒกํฐ์ ๋ด์ ๊ฐ์์ ๋ ๋จ์ด๊ฐ ํ ์๋์ฐ ๋ด์์ ๋์์ ๋ช๋ฒ ๋ฑ์ฅํ๋์ง์ ๋ํ ๊ฐ์ log๋ฅผ ์ทจํ ๊ฐ์ ๋บ ๊ฐ์ Loss Function์ผ๋ก ์ฌ์ฉํ๋ค.
๊ทธ๋์, ๋ ๋ด์ ๊ฐ์ด P์ fit๋๋๋ก ํ๋ค.
Word2Vec์์ ์์ฃผ ๋ฑ์ฅํ๋ ๋จ์ด๋ ์์ฃผ ํ์ต๋จ์ผ๋ก์จ ์๋ ์๋ฒ ๋ฉ์ ๋ด์ ๊ฐ์ด ๊ทธ์ ๋น๋กํด์ ์ปค์ง๊ฒ ๋๋๋ฐ, GloVe์์๋ ๋จ์ด์์ด ๋์์ ๋ฑ์ฅํ๋ ํ์๋ฅผ ๋ฏธ๋ฆฌ ๊ณ์ฐํ๊ณ ์ด์ ๋ํ log๊ฐ์ Ground Truth๋ก ์ฌ์ฉํ๋ค๋ ์ ์์ ์ค๋ณต๋๋ ๊ณ์ฐ์ ์ค์ฌ์ค ์ ์๋ค๋ ์ฅ์ ์ด ์กด์ฌํ๋ค. ๊ทธ๋์ ํ์ต์ด Word2Vec๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ๋๋ฉฐ ๋ ์ ์ ๋ฐ์ดํฐ๋ก๋ ํ์ต์ด ์ ๋๋ค.
์ธ๋ถ์ ์ผ๋ก๋ ๋ ๋ง์ ์ฐจ์ด์ ์ด ์์ง๋ง ํฐ ํ์์๋ ์ด์ ๋์ ์ฐจ์ด๊ฐ ์๋ค.
๋ ๋ฐฉ๋ฒ์ ์ฃผ์ด์ง ํ์ต๋ฐ์ดํฐ์ ๊ธฐ๋ฐํด์ ์๋์๋ฒ ๋ฉ์ ํ์ตํ๋ ๋์ผํ ์๊ณ ๋ฆฌ์ฆ์ด๊ณ ์ค์ ๋ก Task์ ์ ์ฉํ์ ๋ ์ฑ๋ฅ๋ ๋น๋ฑ๋น๋ฑํ๊ฒ ๋์จ๋ค.
๋, GloVe ๋ชจ๋ธ์ ์ถ์ฒ์์คํ ์ ๋ง์ด ํ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ธ Co-occurrence matrix์ low rank matrix factorization์ Task๋ก์ ์ ํ๋์์ ๊ด์ ์์ ์ดํดํ ์ ์๋ค.
ํน์ ๊ด์ (๋๋ ๊ธฐ์ค)์์ ์ฐจ์ด๊ฐ ์๋ ๋จ์ด๋ค์ ๋ฒกํฐ๊ด๊ณ๋ฅผ ์ดํด๋ณด๋ฉด ๋น์ทํ ๊ฒ์ ์ ์ ์๋ค.
man / woman
company / ceo
๋จ์ด๋ค๊ฐ์ ์๋ฏธ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ ๊ด๊ณ ๋ฟ๋ง ์๋๋ผ ํ์ฉ์์ ์ํ๊ณผ ๋น๊ต๊ธ, ์ต์๊ธ์ ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋จ์ด๋ค ์ฌ์ด์๋ ์ด๋ฌํ ๋ฌธ๋ฒ์ ์ธ ๊ด๊ณ๊น์ง๋ GloVe๊ฐ ์ ํ์ตํ๋ค๊ณ ํ ์ ์๋ค.
GloVe๋ Open Source๋ก ์ฌ์ฉํ ์ ์๊ณ ์ํคํผ๋์ 2014๋ ๋ ๋ฒ์ + Gigaword 5๋ฅผ ํ์ตํ pretrained ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์๋ค.
60์ต๊ฐ์ ํ ํฐ(๋๋ ๋จ์ด)์ด ์๋ค.
์ค๋ณต๋ ๋จ์ด๋ฅผ ์ ๊ฑฐํ๊ณ ์ฌ์ ์ผ๋ก ๊ตฌ์ฑ๋ ๋จ์ด๋ 40๋ง๊ฐ์ด๋ค.
uncased๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์๋ค๋ผ๋ ๋ป
he์ He๋ฅผ ๊ฐ์ ๋จ์ด๋ก ์ทจ๊ธํ๋ค๋ ๋ป
50d, 100d, 200d, 300d๋ GloVe ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ๋ ๊ฒฐ์ ํ Target Dimension์ ํฌ๊ธฐ์ด๋ค.
์ ๋ ฅ ๋จ์ด์ ์ถ๋ ฅ ๋จ์ด์ ๋ฒกํฐ์ ํฌ๊ธฐ์ด๋ค.
ํ์ ํจํค์ง์ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ ์ด์ ์ค์ต๊ณผ ๋งค์ฐ ๋น์ทํ๋ฏ๋ก ์ค๋ช ์ ์๋ตํ๋ค.
CBOW
์ SkipGram
๋ ๊ฐ์ง ๋ฐฉ์์ ๋ํ ๋ฐ์ดํฐ์
์ ์ ์ํ๋ค.
CBOW : Continuous Bag of Words์ ์ฝ์ด๋ก ์ฃผ๋ณ์ ์๋ ๋จ์ด๋ค์ ๊ฐ์ง๊ณ ์ค๊ฐ ๋จ์ด๋ฅผ ์์ธก ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
SkipGram : CBOW์ ๋ฐ๋๋ก ์ค๊ฐ ๋จ์ด๋ฅผ ๊ฐ์ง๊ณ ์ฃผ๋ณ ๋จ์ด๋ฅผ ์์ธกํ๋ ๋ฐฉ๋ฒ์ด๋ค.
CBOW
์ค์ฌ ๋จ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋์ฐ ์ฌ์ด์ฆ๋งํผ์ ์ฃผ๋ณ ๋จ์ด๋ฅผ x๋ก, ์ค์ฌ ๋จ์ด๋ฅผ y๋ก ์ค์ ํ๋ค.
์ด ๋(window_size = 2 ๊ธฐ์ค) ์ฒ์ ๋ ๋จ์ด์ ๋ง์ง๋ง ๋ ๋จ์ด๋ ํ์ต ๋ฐ์ดํฐ์ ํฌํจ๋์ง ๋ชปํ๋๊ฑด๊ฐ?
SkipGram
์ฃผ๋ณ ๋จ์ด๋ฅผ y๋ก, ์ค์ฌ ๋จ์ด๋ฅผ x๋ก ์ค์ ํ๋ค. ์ด ๋ x์ ๊ฐ์๋ฅผ ์ฃผ๋ณ ๋จ์ด์ ๊ฐ์์ ํต์ผ์์ผ์ค๋ค.
CBOW
CBOW ๋ชจ๋ธ์ ์ ์ธํ๋ค. ๊ทธ๋ฆฌ๊ณ nn.Module์ ์์ฑ์ ์ฌ์ฉํ๊ธฐ ์ํด super() ๊ตฌ๋ฌธ์ ์ ์ธํ๋ค.
๋๋ ๋ชฐ๋์๋๋ฐ, ์๋ก ์๊ฒ๋์ด ๊ณต์ ํ๋ค. ๋ค์์ ๋ ๊ฒฝ์ฐ๋ ๋๊ฐ์ ์๋ฏธ๋ฅผ ์ง๋๋ฉฐ ์ ์๋ 2.x ํ์ด์ฌ ๋ฒ์ ์์ ์ฌ์ฉํ๋ ๋ฌธ๋ฒ์ด๊ณ ํ์๋ 3.x ํ์ด์ฌ ๋ฒ์ ์์ ์ฌ์ฉํ๋ ๋ฌธ๋ฒ์ด๋ค. ํธํ์ฑ์ ์ํด 2.x ๋ฌธ๋ฒ๋ ์ธ์ ํด์ฃผ๋ ๊ฒ์ด๋ผ๊ณ ํ๋ค.
super(CBOW, self).__init__(**kwargs)
super().__init__(**kwargs)
nn.Embedding(num_embeddings, embedding_dim, sparse)
num_embeddings
: dictionary์ ์ฌ์ด์ฆ๋ฅผ ์๋ฏธํ๋ค. vocab์ ๋ฑ๋ก๋ ์ด ๋จ์ด ์
embedding_dim
: ์๋ฒ ๋ฉ ๋ฒกํฐ์ ์ฐจ์
sparse
: ๋ง์ฝ True๋ผ๋ฉด 0์ด ์๋ ํ๋ ฌ์ ๋ชจ๋ ์ ๊ฑฐํ๊ณ 0์ด ์๋ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ํ๋ ฌ๋ง ๊ฐ์ง๊ณ ์๊ฒ ๋๋ค. ์ค์ ๋ก๋ 0์ธ ๋ถ๋ถ์ ์
๋ฐ์ดํธ ํ ํ์๊ฐ ์์ผ๋ฏ๋ก ์ฃผ๋ก True๋ก ์ค์ ํ๋ค. False์ธ ๊ฒฝ์ฐ์๋ 0์ ํฌํจํ ํ๋ ฌ๋ก ๊ฐ์ง๊ฒ๋๋ค.
ํฌ์ ํ๋ ฌ์ด๋ ํ๋ ฌ์ ๊ฐ์ด ๋๋ถ๋ถ 0์ธ ๊ฒฝ์ฐ๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
forward
๊ฐ๊ฐ์ ์ค์ฌ๋จ์ด์ ๋ํ ์ฃผ๋ณ๋จ์ด๊ฐ (1, 2W) ์ ๋ชจ์์ผ๋ก ์กด์ฌํ๋ค. ์๋์ฐ ์ฌ์ด์ฆ W๋งํผ ์์ชฝ์ผ๋ก ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก 2W ์ด๋ค.
์ดํ ๋ฐ์ดํฐ๋ก๋์์ ๋ฐฐ์น๋งํผ ๋์ค๋ฏ๋ก (B, 2W)์ ๋ชจ์์ผ๋ก ์กด์ฌํ๋ค. ์ดํด๋ฅผ ์ฝ๊ฒ ํ๊ธฐ ์ํด ๋ฐฐ์น ์ฌ์ด์ฆ๋ ๊ณ ๋ คํ์ง ์๊ณ ์ค๋ช ํ๋ค.
embedding
: ๊ฐ๊ฐ์ ์ฃผ๋ณ๋จ์ด๊ฐ ์๋ฒ ๋ฉ ๋ฒกํฐ๊ผด๋ก ๋ฐ๋๋ฉด์ (2W, d_w)์ ํํ๋ก ๋ฐ๋๋ค. ์ด ๊ณผ์ ์ด INPUT์์ HIDDEN์ผ๋ก ๊ฐ๋ ๊ณผ์ ์ด๋ค.
torch.sum
: embeddings์ ์์๋ฅผ ๋ชจ๋ ๋ํ๋๋ฐ ์ด ๋์ ์ถ์ด dim=1
์ด๋ค. ์ด๋ ์ ์๊ฐํด๋ณด๋ฉด ์ค์ ๋ก embeddings์ ์ฐจ์์ (B, 2W, d_w) ์ด๋ค. ๋ฐ๋ผ์ 2W๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ค ๋ํ๋ผ๋ ๋ป. ๊ฒฐ๊ตญ ์๋์ ๊ฐ์ด ๋๋ค. (๋ฌผ๋ก ์๋ฒ ๋ฉ ๋ฒกํฐ๋ ํ ๋ฆฌ์คํธ์ ํ ๊ฐ์ 1๊ฐ๋ง ์์ ์ ์๋ค)
์ดํ, Linear๋ฅผ ๊ฑฐ์ณ Hidden์์ Output์ผ๋ก ๋คํธ์ํฌ๊ฐ ๊ตฌ์ฑ๋๋ค.
CBOW์ ์ค๋ช
๊ณผ ๋์ผํ๋ค. ๋ค๋ง ์ค์ฌ๋จ์ด์์ ์ฃผ๋ณ๋จ์ด๋ก์ ๋ฐฉํฅ์ด๊ธฐ ๋๋ฌธ์ CBOW์ ๊ฐ์ torch.sum
์ ์๋ค.
์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค. vocab size๋ ๋ง๋ค์ด๋ vocab์ ๊ธธ์ด์ด๋ฉฐ ์๋ฒ ๋ฉ ๋ฒกํฐ์ ์ฐจ์์ 256์ผ๋ก ์ ํ๋ค.
ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ฅผ ์ธํ ํ๊ณ ๋ฐ์ดํฐ ๋ก๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
CBOW์ Skip Gram์ ํ์ตํ๋ค.