[K-Data x ๋ฌ๋์คํผ์ฆ] 4-2. ์๋ฒ ๋ฉ๊ณผ Word2Vec
์๋ฒ ๋ฉ
1) Sparse Representation
: one-hot encoding
ex) ๋ฉด๋๊ธฐ = [0, 0, 0, 0, ..,1, 0, 0, ..., 0], ์ฐจ์์ ๊ฐ์๋ ์์ดํ ์ ์ฒด ๊ฐ์์ ๊ฐ๋ค..!
๋ฒกํฐ์ ์ฐจ์์ ํ์์ด ์ปค์ง๊ณ ๊ณต๊ฐ์ด ๋ญ๋น๋๋ค๋ ํน์ง
2) Dense Representation
: ์์ดํ ์ ์ฒด ๊ฐ์๋ณด๋ค ํจ์ฌ ์์ ์ฐจ์์ผ๋ก ํํ๋จ..!
์์ดํ ์ ์๋ฏธ๋ฅผ ์ฌ๋ฌ๊ฐ์ ์ฐจ์์ ๋ถ์ฐํ์ฌ ํํํ๋ค
ex) ๋ฉด๋๊ธฐ = [0.2, 1.4, -0.4, 1.2, 0.3]
์๋ ์๋ฒ ๋ฉ
- ๋จ์ด๋ฅผ ์ ํด์ง ์ฌ์ด์ฆ์ dense vector๋ก ๋ํ๋ด๋๊ฒ์ด๋ค.!!
one-hot encoding->dense representation
[0,0,1,...,0]-> 3์ฐจ์[0.2, 0.4, 0.4]
- ์๋ฒ ๋ฉ ์ํค๋ฉด ๋จ์ด๊ฐ์ ์๋ฏธ์ ์ธ ์ ์ฌ๋๋ฅผ ๊ตฌํ ์ ์์
๋น์ทํ ์๋ฏธ์ ๋จ์ด๋ผ๋ฆฌ๋ ํด๋น vector๊ฐ ๋น์ทํ ์์น์ ๋ถํฌํ๋ค..!
ex) ์์๋ค, ๊ท์ฝ๋ค, ์ ๊ต ๋ฑ์ ๋จ์ด๋ ๋น์ทํ ๋ฒกํฐ๊ฐ์ ๊ฐ์ง ๊ฒ์ผ๋ก ์์
Word2Vec
<ํน์ง>
: ๋๋์ ๋ฌธ์ ๋ฐ์ดํฐ์ ์ vector ๊ณต๊ฐ์ ํฌ์ํจ
์์ถ๋ ํํ์ ๋ง์ ์๋ฏธ๋ฅผ ๊ฐ๋ dense vector๋ก ํํ
ํจ์จ์ ์ด๊ณ ๋น ๋ฅธ ํ์ต์ด ๊ฐ๋ฅํ๋ค.
<ํ์ต๋ฐฉ๋ฒ>
- CBOW
- Skip-gram
๊ทธ๋ผ Word2Vec์ ํ์ตํ๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ ์๊ฐํด๋ณด๊ฒ ์ต๋๋ค!
โ CBOW (์จ๋ฐ์ค)
: ์ฃผ๋ณ์ ์๋ ๋จ์ด๋ฅผ ๊ฐ์ง๊ณ ์ผํฐ์ ์๋ ๋จ์ด๋ฅผ ์์ธกํ๋ ๋ฐฉ๋ฒ
๋จ์ด๋ฅผ ์์ธกํ๊ธฐ ์ํด ์๋ค๋ก ๋ช ๊ฐ(n)์ ๋จ์ด๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ์ง ์ ํด์ผ ํ๋ค..!
์์)
์์ธก ๋จ์ด : "sat"
n=2
์์ธก ๋จ์ด๋ฅผ ์์ธกํ๊ธฐ ์ํด ์ฌ์ฉํ ๋จ์ด : "fat", "cat", "on", "the"
* ๊ณ์ฐ ๋ฐฉ๋ฒ
โก Skip-gram Negative Sampling (SGNS)
* Skip-gram
: CBOW์ ์ ๋ ฅ์ธต๊ณผ ์ถ๋ ฅ์ธต์ ๋ฐ๋๋ก ๊ตฌ์ฑํ ๋ชจ๋ธ์ด๋ค!
์ผ๋ฐ์ ์ผ๋ก CBOW๋ณด๋ค ์ฑ๋ฅ์ด ์ข๋ค๊ณ ์๋ ค์ ธ์์!
* Skip-gram Negative Sampling (SGNS)
: multi classification -> binary classification
<Skip-gram>
<SGNS>
=> cat์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ฃ์์ ๋ ์์ฒญ๋๊ฒ ๋ง์ ๋จ์ด์ค์ sat์ด๋ผ๋ ๋จ์ด๋ฅผ ์์ธกํด์ผํ๋ Skip-gram๊ณผ ๋ฌ๋ฆฌ
SGNS๋ (cat,sat)์ด ์ธ์ ํด์์ ๋ 1, ๊ทธ๋ ์ง์๊ณ (cat,dog)๊ฐ์ด ๊ด๋ จ ์๋ ๋จ์ด๋ฅผ ๋ฃ์์ ๋๋ 0์ ๋ฑ๋
binary ๋ฌธ์ ๊ฐ ๋จ!
* ๊ณ์ฐ๋ฐฉ๋ฒ
1) ์ค์ฌ๋จ์ด์ ์ฃผ๋ณ๋จ์ด๊ฐ ๊ฐ๊ฐ ์๋ก๋ค๋ฅธ ์๋ฒ ๋ฉ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง๋ค.
2) ์ ๋ ฅ๋จ์ด์ ์ฃผ๋ณ๋จ์ด์์ ๋ด์ ์ ํตํด ์๊ทธ๋ชจ์ด๋ ๊ฐ์ผ๋ก ๋ ์ด๋ธ์ ํํ!
=> ์ด๋ค word์ ๋ํด์ ์ ํด์ง embedding์ด ๋์จ๋ค๋ ๊ฒ์ ์ ์ ์๋ฌ
์ด๋ฒ ํฌ์คํ ์์๋ ๋จ์ด๋ฅผ ๋ฒกํฐ๋ก ์๋ฒ ๋ฉ ์ํค๋ ๋ฒ์ ๋ํด ์์๋ณด์์ต๋๋ค!
๋ค์ ๊ธ์์๋ ์ถ์ฒ์ ํด๋นํ๋ ์์ดํ ์ ๋ฒกํฐ๋ก ๋ฐ๊ฟ์ ์ถ์ฒ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ์ด๋ณด๊ฒ ์ต๋๋ค~_~
๊ทธ๋ผ ์ค๋๋ ๋!
