(02๊ฐ•) Word Embedding

210906

3. Word Embedding : Word2Vec, GloVe

์›Œ๋“œ ์ž„๋ฒ ๋”ฉ์€ ์ž์—ฐ์–ด๊ฐ€ ๋‹จ์–ด๋“ค์„ ์ •๋ณด์˜ ๊ธฐ๋ณธ ๋‹จ์œ„๋กœ ํ•ด์„œ ๊ฐ ๋‹จ์–ด๋“ค์„ ํŠน์ • ๊ณต๊ฐ„์— ํ•œ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.

๊ณ ์–‘์ด๋ฅผ ์˜๋ฏธํ•˜๋Š” cat๊ณผ ์–ด๋ฆฐ ๊ณ ์–‘์ด๋ฅผ ์˜๋ฏธํ•˜๋Š” kitty๋Š” ์˜๋ฏธ๊ฐ€ ์œ ์‚ฌํ•˜๋ฏ€๋กœ ๊ฐ ์ ์€ ๊ฐ€๊นŒ์ด ์œ„์น˜ํ•˜๊ณ  hamburger์™€๋Š” ๋ฉ€๋ฆฌ ์œ„์น˜ํ•˜๊ฒŒ ๋œ๋‹ค.

Word2Vec

์›Œ๋“œ ์ž„๋ฒ ๋”ฉ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•. ๊ฐ™์€ ๋ฌธ์žฅ์—์„œ ๋‚˜ํƒ€๋‚œ ์ธ์ ‘ํ•œ ๋‹จ์–ด๋“ค ๊ฐ„์— ์˜๋ฏธ๊ฐ€ ๋น„์Šทํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฐ€์ •์„ ์‚ฌ์šฉํ•œ๋‹ค. "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, ๊ณ ์œ ๋ช…์‚ฌ์ธ์‹ ๋“ฑ

GloVe

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์„ ํ•™์Šตํ•œ๋‹ค.

ํ…Œ์ŠคํŠธ

Last updated

Was this helpful?