3์žฅ word2vec

๐Ÿ“ ์ƒ์„ธ ์ •๋ฆฌ

  • ์ด๋ฒˆ ์žฅ๋„ ๋‹จ์–ด์˜ ๋ถ„์‚ฐ ํ‘œํ˜„
  • ์•ž ์žฅ์—์„œ ํ†ต๊ณ„ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•์„ ์ด์šฉํ–ˆ๋‹ค๋ฉด, ์ด๋ฒˆ์—๋Š” ์ถ”๋ก  ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•์„ ์ด์šฉํ•˜๊ฒŸ๋‹ค.

3.1 ์ถ”๋ก  ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•๊ณผ ์‹ ๊ฒฝ๋ง

  • 3.1.1 ํ†ต๊ณ„ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•์˜ ๋ฌธ์ œ์ 
    • ๊ฒฐ๊ตญ ๋™์‹œ๋ฐœ์ƒ ํ–‰๋ ฌ์„ ๋งŒ๋“ค๊ณ  SVD๋ฅผ ์ ์šฉํ•ด์•ผํ•˜๋Š”๋ฐ, ์ด๋Š” ํฐ ๋ง๋ญ‰์น˜์—์„œ ๋„ˆ๋ฌด ์–ด๋ ต๋‹ค
    • ๋™์‹œ๋ฐœ์ƒํ–‰๋ ฌ์˜ ํฌ๊ธฐ๋Š” $O(N^2)$ SVD ์—ฐ์‚ฐ ์‹œ๊ฐ„์€ $O(N^3)$ ์ด๋ผ ์–ดํœ˜๊ฐ€ 100๋งŒ๊ฐœ ๋‹จ์œ„๋กœ ๋˜๋ฉด ํ˜„์‹ค์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•ด์ง„๋‹ค
    • ์ถ”๋ก  ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•์—์„œ๋Š” ์†Œ๋Ÿ‰(๋ฏธ๋‹ˆ๋ฐฐ์น˜)์”ฉ ํ•™์Šตํ•ด์„œ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค.
      • ์–ดํœ˜๋Ÿ‰์ด ๋งŽ์•„๋„ ๊ฐ€๋Šฅํ•˜๊ณ 
      • ์—ฌ๋Ÿฌ GPU๋ฅผ ์ด์šฉํ•œ ๋ณ‘๋ ฌ ๊ณ„์‚ฐ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค!
  • 3.1.2 ์ถ”๋ก  ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ• ๊ฐœ์š”
    • ์ถ”๋ก : ์ฃผ๋ณ€ ๋‹จ์–ด(๋งฅ๋ฝ)์ด ์ฃผ์–ด์กŒ์„๋•Œ ๋นˆ์นธ์— ๋ฌด์Šจ ๋‹จ์–ด๊ฐ€ ๋“ค์–ด๊ฐ€๋Š”์ง€๋ฅผ ์ถ”์ธกํ•˜๋Š” ์ž‘์—…
    • ์ถ”๋ก ์„ ํ†ตํ•ด ์‹ ๊ฒฝ๋ง์œผ๋กœ ๊ฐ ๋‹จ์–ด์˜ ์ถœํ˜„ ํ™•๋ฅ ์„ ๋งŒ๋“ค์ž.
  • 3.1.3. ์‹ ๊ฒฝ๋ง์—์„œ์˜ ๋‹จ์–ด ์ฒ˜๋ฆฌ
    • ์‹ ๊ฒฝ๋ง์€ ๋‹จ์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์œผ๋‹ˆ, ์›ํ•ซ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜์ž.
      • ์›ํ•ซ๋ฒกํ„ฐ: ๋ฒกํ„ฐ์˜ ์›์†Œ์ค‘ ํ•˜๋‚˜๋งŒ 1์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ 0์ธ ๋ฒกํ„ฐ

3.2 ๋‹จ์ˆœํ•œ word2vec

  • 3.2.1 CBOW๋ชจ๋ธ์˜ ์ถ”๋ก  ์ฒ˜๋ฆฌ
    • CBOW๋ชจ๋ธ์€ ๋งฅ๋ฝ์œผ๋กœ๋ถ€ํ„ฐ ํƒ€๊ฒŸ์„ ์ถ”์ธกํ•˜๋Š” ์šฉ๋„์˜ ์‹ ๊ฒฝ๋ง
      • ํƒ€๊ฒŸ์€ ์ค‘์•™ ๋‹จ์–ด, ๋งฅ๋ฝ์€ ์ฃผ๋ณ€ ๋‹จ์–ด
    • N๊ฐœ์˜ ๋‹จ์–ด๋ฅผ ๋งฅ๋ฝ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด, N๊ฐœ์˜ ์›ํ•ซ๋ฒกํ„ฐ๊ฐ€ ์ž…๋ ฅ์ธต์ด ๋œ๋‹ค.
      • ์€๋‹‰์ธต์— ๋“ค์–ด๊ฐˆ ๊ฐ’์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž…๋ ฅ์ธต์˜ ๊ฒฐ๊ณผ์˜ ํ‰๊ท ์ด๋‹ค.
      • ์ฒซ๋ฒˆ์งธ ์ž…๋ ฅ์ธต์˜ ๊ฒฐ๊ณผ๊ฐ€ $h_1$, ๋‘๋ฒˆ์งธ ์ž…๋ ฅ์ธต์˜ ๊ฒฐ๊ณผ๊ฐ€ $h_2$๋ผ๋ฉด ์€๋‹‰์ธต์˜ ๋‰ด๋Ÿฐ์€ $\frac{1}{2}(h_1 + h_2)$ ์ด ๋œ๋‹ค.
    • ์ถœ๋ ฅ์ธต์˜ ๋‰ด๋Ÿฐ ํ•˜๋‚˜ํ•˜๋‚˜๋Š” ๊ฐ๊ฐ์˜ ๋‹จ์–ด์— ๋Œ€์‘๋˜๊ณ , ํ•ด๋‹น ๋‹จ์–ด์˜ ์ ์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค.
      • ์ ์ˆ˜๋Š” ํ™•๋ฅ ๋กœ ํ•ด์„๋˜๊ธฐ ์ „์˜ ๊ฐ’์œผ๋กœ, softmaxํ•จ์ˆ˜๋กœ ํ™•๋ฅ ์„ ์–ป์–ด๋‚ธ๋‹ค.
    • ์€๋‹‰์ธต์˜ ๋‰ด๋Ÿฐ์ˆ˜๋ฅผ ์ž…๋ ฅ์ธต์˜ ๋‰ด๋Ÿฐ์ˆ˜๋ณด๋‹ค ์ ๊ฒŒ ํ•˜๋Š”๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.
      • ์ด๋ ‡๊ฒŒ ํ•ด์•ผ ์€๋‹‰์ธต์ด ๋‹จ์–ด ์˜ˆ์ธก์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋‹ด๊ฒŒ ๋˜๋ฉฐ, ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฐ€์ง‘๋ฒกํ„ฐ ํ‘œํ˜„์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
      • ๋‹จ์–ด ๋ฒกํ„ฐ๋ฅผ ์€๋‹‰์ธต์— ๋„ฃ์–ด์„œ ์‚ฌ๋žŒ์ด ์•Œ์•„๋ณด์ง€ ๋ชปํ•˜๊ฒŒ ๋˜๋Š”๊ฑธ ์ธ์ฝ”๋”ฉ, ๋ฐ˜๋Œ€๋กœ ์€๋‹‰์ธต์˜ ์ •๋ณด๋ฅผ ์‚ฌ๋žŒ์ด ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ๋กœ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ๋””์ฝ”๋”ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค.
    • CBOW๋ชจ๋ธ์€ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐ„๋‹จํ•œ ์‹ ๊ฒฝ๋ง์ด๋‹ค.
    • ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž…๋ ฅ์ธต์€ ๊ฐ™์€ ๊ฐ€์ค‘์น˜๋ฅผ ๊ณต์œ ํ•œ๋‹ค.
  • 3.2.2 CBOW ๋ชจ๋ธ์˜ ํ•™์Šต
    • ์œ„์—์„œ ๊ตฌํ•œ ์ ์ˆ˜์— softmaxํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜๋ฉด ํ™•๋ฅ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
  • 3.2.3 word2vec์˜ ๊ฐ€์ค‘์น˜์™€ ๋ถ„์‚ฐ ํ‘œํ˜„
    • $W_{in}$์˜ ๊ฐ€์ค‘์น˜์˜ ๊ฐ ํ–‰์€ ๊ฐ ๋‹จ์–ด์˜ ๋ถ„์‚ฐํ‘œํ˜„์— ํ•ด๋‹นํ•˜๊ณ , $W_{out}$์—์„œ๋Š” ๊ฐ ๋‹จ์–ด์˜ ๋ถ„์‚ฐ ํ‘œํ˜„์ด ์—ด ๋ฐฉํ–ฅ์œผ๋กœ ์ €์žฅ๋œ๋‹ค.
      • ํ–‰๋ ฌ์˜ ์ฐจ์›์ค‘ ์–ด๋””๊ฐ€ ๊ฐ ๋‹จ์–ด์— ๋Œ€์‘๋˜๋Š”์ง€ ์•Œ๋ฉด ์ง๊ด€์ ์ธ๋“ฏ

3.3 ํ•™์Šต ๋ฐ์ดํ„ฐ ์ค€๋น„

  • 3.3.1 ๋งฅ๋ฝ๊ณผ ํƒ€๊นƒ
    • ์ด์ „์— ๋งํ•œ๋Œ€๋กœ ๋งฅ๋ฝ์€ ์ฃผ๋ณ€๋‹จ์–ด, ํƒ€๊นƒ์€ ์ค‘์•™ ํ•œ๋‹จ์–ด
      • ๋งฅ๋ฝ์€ ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ๋ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ contexts๋ผ๊ณ  ๋ณต์ˆ˜ํ˜• ํ‘œํ˜„์„ ๊ถŒ์žฅ
    • ์ด์ „์— ํ–ˆ๋˜๊ฒƒ๊ณผ ๊ฐ™์ด ํ…์ŠคํŠธ๋ฅผ ๋‹จ์–ด ID๋กœ ๋ฐ”๊พธ๊ณ , ์ด๋ฅผ ๋ฐฐ์—ด๋กœ ์ €์žฅํ•œ๋‹ค.
  • 3.3.2 ์›ํ•ซ ํ‘œํ˜„์œผ๋กœ ๋ณ€ํ™˜
    • ํ•™์Šต์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฅผ ์›ํ•ซ ๋ฒกํ„ฐ๋กœ ๋ฐ”๊พผ๋‹ค.
      • 8๊ฐœ์งœ๋ฆฌ, 7์ข…๋ฅ˜ ๋‹จ์–ด์˜ ๋ฌธ์žฅ์ด์–ด์„œ (6, 2 )์˜ ๋‹จ์–ด ID ๋ฒกํ„ฐ๊ฐ€์žˆ์—ˆ๋‹ค๋ฉด ์ด๋Š” ๋‹จ์–ด ID๊ฐ€ ์›ํ•ซ ๋ฒ ๊ฒ‰๋กœ ๋ฐ”๋€Œ๋ฉฐ (6, 2, 7 )์˜ ๋ฒกํ„ฐ๊ฐ€ ๋œ๋‹ค.

3.4 CBOW ๋ชจ๋ธ ๊ตฌํ˜„

  • ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‘๊ฐœ์˜ ๋งฅ๋ฝ์„ $W_{in}$ ์„ ํ†ต๊ณผ์ผœ์„œ ํ‰๊ท ์„ ๋‚ด๊ณ , $W_{out}$์„ ๊ฑฐ์ณ์„œ softmax๋ฅผ ํ†ตํ•ด Loss๋ฅผ ์–ป์–ด๋‚ด๋Š” ๋ชจ๋ธ์„ ๊ตฌ์ƒํ•ด๋ณด์ž.
  • 3.4.1 ํ•™์Šต ์ฝ”๋“œ ๊ตฌํ˜„
    • ์ผ๋ฐ˜์ ์ธ ์‹ ๊ฒฝ๋ง ํ•™์Šต๊ณผ ์™„์ „ํžˆ ๊ฐ™๋‹ค! (1์žฅ ์ฐธ์กฐ)
    • ์ž…๋ ฅ์ธต์˜ ๊ฐ€์ค‘์น˜, ์ฆ‰ $W_{in}$์„ ๊บผ๋‚ด๋ด„์œผ๋กœ ๋‹จ์–ด ID์˜ ๋ถ„์‚ฐํ‘œํ˜„์„ ์ž˜ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ํ•˜์ง€๋งŒ ์•„์ง ํฐ ๋ง’๋ฃฝ์น˜์—์„œ๋Š” ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค.

3.5 word2vec ๋ณด์ถฉ

  • 3.5.1 CBOW ๋ชจ๋ธ๊ณผ ํ™•๋ฅ 
    • CBOW๋ชจ๋ธ์„ ํ™•๋ฅ  ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๊ธฐ์ˆ ํ•ด๋ดฆ.
    • ๋งฅ๋ฝ์ด ๋‘๊ฐœ์ธ ๊ฒฝ์šฐ, ์กฐ๊ฑด๋ถ€ ํ™•๋ฅ  ์‹์œผ๋กœ $P(w_t | w_{t-1}, w_{t+1})$ ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
      • ์ด๋ฅผ ์ด์šฉํ•ด ์†์‹คํ•จ์ˆ˜๋„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
      • $L = -\log P(w_t | w_{t-1}, w_{t+1})$
      • $L = -\frac{1}{T} \sum\limits_{t = 1}^{T}\log P(w_t | w_{t-1}, w_{t+1})$
        • ๋ง๋ญ‰์น˜ ์ „์ฒด์— ๋Œ€ํ•œ ์‹
  • 3.5.2 skip-gram ๋ชจ๋ธ
    • CBOW๋ชจ๋ธ๊ณผ ๋งฅ๋ฝ๊ณผ ํƒ€๊นƒ์„ ์—ญ์ „์‹œํ‚จ ๋ชจ๋ธ
      • ์ค‘์•™ ๋‹จ์–ด ํ•˜๋‚˜๋กœ ์ฃผ๋ณ€ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜์ž
      • $P(w_{t-1}, w_{t+1} | w_t) = P(w_{t-1}| w_t) P(w_{t+1} | w_t)$
      • $L = -(\log P(w_{t-1}| w_t) + \log P(w_{t+1} | w_t))$
      • $L = -\frac{1}{T} \sum\limits_{t = 1}^{T}(\log P(w_{t-1}| w_t) + \log P(w_{t+1} | w_t))$
    • ๋‹จ์–ด ๋ถ„์‚ฐ์˜ ์ •๋ฐ€๋„ ๋ฉด์—์„œ skip-gram ๋ชจ๋ธ์ด CBOW๋ชจ๋ธ๋ณด๋‹ค ๋” ์ข‹์„ ๋•Œ๊ฐ€ ๋งŽ๋‹ค.
      • ํ•˜์ง€๋งŒ ํ•™์Šต ๋ฉด์—์„œ๋Š” cbow ๋ชจ๋ธ์ด ๋” ๋น ๋ฅด๋‹ค.
        • ์†์‹ค์„ ๋งฅ๋ฝ์˜ ์ˆ˜๋งŒํผ ๊ตฌํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ
  • 3.5.3 ํ†ต๊ณ„ ๊ธฐ๋ฐ˜ vs ์ถ”๋ก  ๊ธฐ๋ฐ˜
    • ํ†ต๊ณ„ ๊ธฐ๋ฐ˜์€ ์ „์ฒด๋ฅผ ๋ณด๋ฉด์„œ 1ํšŒ, ์ถ”๋ก  ๊ธฐ๋ฐ˜์€ ๋ฏธ๋‹ˆ๋ฐฐ์น˜๋ฅผ ๋ณด๋ฉด์„œ ์ผ๋ถ€์”ฉ ์—ฌ๋Ÿฌ๋ฒˆ ํ•™์Šตํ–ˆ๋‹ค.
    • ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ถ”๊ฐ€ ์ƒํ™ฉ๋“ค์„ ์ƒ๊ฐํ•ด๋ณด์ž.
      • ์–ดํœ˜์— ์ถ”๊ฐ€ํ•  ์ƒˆ ๋‹จ์–ด๊ฐ€ ์ƒ๊ฒจ๋‚œ ๊ฒฝ์šฐ
        • ํ†ต๊ณ„๊ธฐ๋ฐ˜ ๋ฐฉ๋ฒ•์€ ๊ณ„์‚ฐ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ํ•ด์•ผํ•จ
        • ์ถ”๋ก ๊ธฐ๋ฐ˜ ๋ฐฉ๋ฒ•์€ ํ•™์Šต๋œ ๊ฐ€์ค‘์น˜๋ฅผ ์ดˆ๊นƒ๊ฐ’์œผ๋กœ ์ถ”๊ฐ€ ํ•™์Šต์„์ง„ํ–‰ํ•˜๋ฉด ๋จ
      • ์–ป๊ฒŒ๋˜๋Š” ๋ถ„์‚ฐํ‘œํ˜„์˜ ์„ฑ๊ฒฉ์ด๋‚˜ ์ •๋ฐ€๋„
        • ์˜์™ธ๋กœ ๋‹จ์–ด์˜ ์œ ์‚ฌ์„ฑ์„ ์ •๋Ÿ‰ํ‰๊ฐ€ํ•œ ๊ฒฐ๊ณผ, ๋‘˜ ์‚ฌ์ด์— ์šฐ์—ด์€ ์—†์—ˆ์Œ
    • skip-gram๊ณผ ๋„ค๊ฑฐํ‹ฐ๋ธŒ ์ƒ˜ํ”Œ๋ง์„ ์ด์šฉํ•œ ๋ชจ๋ธ์€ ๋™์‹œ๋ฐœ์ƒํ–‰๋ ฌ์—์„œ ํŠน์ˆ˜ํ•œ ํ–‰๋ ฌ ๋ถ„ํ•ด๋ฅผ ์ ์šฉํ•œ ๊ฒฐ๊ณผ์™€ ๊ฐ™์•˜๋‹ค!!

โ”์งˆ๋ฌธ ์‚ฌํ•ญ

๐Ÿ”— ์ฐธ๊ณ  ์ž๋ฃŒ