๐Ÿ‘จโ€๐Ÿ’ป CS224n assignments 1 & 2

cs224n ์Šคํ„ฐ๋””๋ฅผ ํ•˜๋ฉด์„œ ๋‚˜์˜ค๋Š” ๊ณผ์ œ๋“ค๋„ ๊ฐ™์ด ํ•˜๊ธฐ๋กœ ํ—€๋‹ค. ๊ทธ๋ž˜์„œ 1, 2์ฃผ์ฐจ ๊ณผ์ œ๋ฅผ ๋ชฐ์•„์„œ ํ•ด๋ดค๋‹ค. ๊ณผ์ œ๋ฅผ ํ•˜๋ฉด์„œ ๋‚ด๊ฐ€ ๋‹ค์‹œ ๋ด์•ผํ•  ๋‚ด์šฉ๊ฐ™์€ ๊ฒƒ์„ ์ ์–ด๋†“์•˜๋‹ค.

1์ฃผ์ฐจ ๊ณผ์ œ

Question 1์—์„œ Word Vector๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์จ๋ณด๊ณ , Question 2์—์„œ gensim์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ analogy๋“ฑ์„ ํ•ด๋ณด๋Š” ๊ณผ์ œ์˜€๋‹ค. ์ „์ฒด์˜ ์†Œ์Šค์ฝ”๋“œ๋Š” jupyter notebook์œผ๋กœ ์ œ๊ณต๋˜์—ˆ๊ณ , ๋น„์–ด์žˆ๋Š” ์ผ๋ถ€ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ฑ„์šฐ๊ฑฐ๋‚˜, ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ  ์„ค๋ช…์„ ์จ๋‚ด๋Š” ๊ณผ์ œ์˜€๋‹ค.

Question 1

๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด, co occurance๋ฅผ ์žฐ ๋’ค truncated svd(PCA๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค)์™€ matplotlib์„ ์ด์šฉํ•˜์—ฌ ๋ช‡๋ช‡ ๋‹จ์–ด๋“ค์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

cooccurance matrix
Truncated SVD (Singular Value Decomposition)

์œ„์˜ ๋‚ด์šฉ๊ณผ ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค.

๊ฒฐ๊ตญ ๊ทธ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด์„œ plotting ํ•˜๋ฉด ์•„๋ž˜๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. ๋‚˜๋ผ ์ด๋ฆ„๋“ค์€ ์ƒ๋‹นํžˆ ๋งŽ์ด ๋ชจ์—ฌ์žˆ๋Š” ๋ชจ์Šต์ด๋‹ค.

Result of question1 in a1

Question 2

prediction-based word vectors์— ๊ด€ํ•œ ๋‚ด์šฉ์ด๋‹ค. ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋Š” ๋‚ด์šฉ์€ ์•„๋‹ˆ๊ณ  ์‚ฌ์šฉํ•ด๋ณด๋Š” ๋‚ด์šฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ํฌ๊ฒŒ ๋ณผ ๋‚ด์šฉ์€ ์—†๊ณ , ์•„๋ž˜ ๋…ผ๋ฌธ๋งŒ ์‚ดํŽด๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

  • origin paper (๋ฌด์—‡์ธ๊ฐ€ ํ–ˆ๋Š”๋ฐ negative sampling ๋…ผ๋ฌธ)

2์ฃผ์ฐจ ๊ณผ์ œ

์ด๊ฒƒ๋„ Question์ด ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ์ฒซ๋ฒˆ์งธ๋Š” word2vec์— ํ•„์š”ํ•œ ์ˆ˜์‹์„ ๊ตฌํ•ด๋ณด๋Š” ๋‹จ๊ณ„์ด๊ณ , ๋‘๋ฒˆ์งธ๋Š” ๊ทธ ์ˆ˜์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋‹จ๊ณ„์ด๋‹ค.

a2 Question 1

Question 1์€ ์ด pdf ํŒŒ์ผ์„ ๋ณด์ž. ์•Œ์•„๋‘์–ด์•ผ ํ•  ์‹์€ ์•„๋ž˜ ์ •๋„์ด๋‹ค. ์ด๊ฑด written ๊ณผ์ œ๋ผ ์—ฌ๊ธฐ์— ์ •๋ฆฌํ•ด๋†“๋Š”๋‹ค.

a

a๋Š” naive-softmax loss๊ฐ€ cross entropy loss์™€ ๊ฐ™์•„์ง€๋Š” ์ด์œ ๋ฅผ ์ ์–ด๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰, ์•„๋ž˜ ์‹์ด ์ฐธ์ธ ์ด์œ ๋ฅผ ๋งํ•˜๋ผ๊ณ  ํ•œ๋‹ค.

๋Š” ์‹ค์ œ ํ™•๋ฅ  ๋ถ„ํฌ์ด๊ณ , ๋Š” ๋ชจ๋ธ์—์„œ ๊ตฌํ•œ ํ™•๋ฅ  ๋ถ„ํฌ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ๋Š” context word ์— ํ•ด๋‹นํ•˜๋Š” element๋งŒ 1์ธ one-hot vector์ด๊ณ , ์œ„์˜ ์‹์ด ์ฐธ์ด ๋œ๋‹ค.

b, c

b๋Š” naive softmax loss์‹์„ ์— ๋Œ€ํ•ด ํŽธ๋ฏธ๋ถ„ ํ•  ๋•Œ!

๊ทผ๋ฐ ์œ„์˜ ์‹์ด ์‹ค์ œ ๋ถ„ํฌ์™€ ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ํ™•๋ฅ  ๋ถ„ํฌ์˜ ์ฐจ์ด๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ๊ฐ€ outside word ์— ๋Œ€ํ•ด์„œ๋งŒ 1์ด๋‹ˆ ๊ฒฐ๊ตญ ๊ทธ๋ƒฅ ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ์‹ค์ œ ๋ถ„ํฌ์™€ ๊ณ„์‚ฐํ•œ ํ™•๋ฅ  ๋ถ„ํฌ์˜ ์ฐจ์ด์™€ ๊ฐ™๋‹ค.

c๋Š” naive softmax loss์‹์„ ์— ๋Œ€ํ•ด ํŽธ๋ฏธ๋ถ„ ํ•  ๋•Œ! ๊ณ„์‚ฐํ•˜๋ฉด ์ธ ๊ฒฝ์šฐ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ๋‚˜์˜จ๋‹ค.

๋Š” ํ™•๋ฅ  ๋ถ„ํฌ์˜ element๋ผ๋ฆฌ ๋”ํ•˜๊ณ  ๋บ€๊ฑฐ๋‹ˆ๊นŒ ์Šค์นผ๋ผ๊ฐ’!

์ธ๊ฒฝ์šฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

๊ทผ๋ฐ, ์ด๊ฒŒ ๊ฐ€ ๋ฒˆ์งธ element๋งŒ 1์ธ one-hot vector์ด๋‹ˆ ๊ฒฐ๊ตญ ์ „์ฒด ์— ๋Œ€ํ•ด ํŽธ๋ฏธ๋ถ„ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์•„์ง„๋‹ค.

d

sigmoid ํŽธ๋ฏธ๋ถ„. ์ด๊ฑด ๋‹ค๋ฅธ ๊ณณ์—๋„ ์„ค๋ช…์ด ์›Œ๋‚™ ๋งŽ์œผ๋‹ˆโ€ฆ

e

์ด๊ฑด negative sample์— ๋Œ€ํ•œ loss์˜ ํŽธ๋ฏธ๋ถ„ ์‹์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ์ผ๋‹จ neg sample์˜ loss๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

๊ฐ€ negative samples์ด๊ณ , ๋Š” neg sample์— ์•ˆ๋“ค์–ด์žˆ๋‹ค.

์ด ๋•Œ ๊ฐ๊ฐ์˜ ๋ฏธ๋ถ„ํ•œ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

์ด ๊ฒฝ์šฐ ์‹ค์ œ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” ์—์„œ ๋ฒˆ์งธ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ „๋ถ€ -1์„ ๊ณฑํ•ด์ค€ ํ›„ ํ•ด๋‹น matrix ์ „์ฒด์— ๋Œ€ํ•ด sigmoid๋ฅผ ์—ฐ์‚ฐํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค. ๋˜ ๋ฒˆ์งธ๋งŒ ์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ธ์ ๋„ ๋ฏธ๋ฆฌ ์ „์ฒด์— ๋Œ€ํ•ด ์—ฐ์‚ฐํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค.

์ด๊ฒŒ ์œ„์˜ ์‹์ฒ˜๋Ÿผ ์ž‘์„ฑํ•œ ์ด์œ ๋Š” neg sample์— ์—ฌ๋Ÿฌ๋ฒˆ ๋“ค์–ด๊ฐˆ ๊ฒฝ์šฐ ๊ทธ ์ˆ˜๋งŒํผ ๋”ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.


์ด๊ฒŒ ๊ทผ๋ฐ ๋‹ค ๋งž๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๊ณ  ์ผ๋‹จ ํ’€์–ด๋ณธ๊ฑฐ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ–ˆ์„ ๋•Œ ์ž˜ ๋‚˜์™”์œผ๋‹ˆ ๋งž๋Š” ๊ฑฐ๊ฒ ์ง€..?

a2 Question 2

๊ตฌํ˜„!!!์€ ๊ทธ๋ ‡๊ฒŒ๊นŒ์ง€ ์–ด๋ ต์ง„ ์•Š๊ณ , ์ˆ˜ํ•™์ˆ˜์‹์„ ๊ทธ๋Œ€๋กœ ์˜ฎ๊ฒจ์•ผ ํ•˜๋Š”๋ฐ, ๊ฑฐ๊ธฐ์„œ ํ—ท๊ฐˆ๋ ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰ ๊ฒฐ๊ณผ๋ฅผ ๋ฝ‘์•„๋‚ด๊ธฐ๊นŒ์ง€์˜ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค. (numpy๋กœ ์‹ค์ œ ํ•™์Šต์„ ์‹œ์ผœ๋ณธ๋‹ค)

๊ทธ๋ ‡๊ฒŒ ์–ป์€ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์ •๋„์ด๋‹ค.

word vectors

๊ทธ๋ ‡๊ฒŒ ๊ฒฐ๊ณผ๊ฐ€ ์ž˜ ๋‚˜์˜จ๊ฒƒ๊ฐ™์ง„ ์•Š๋‹ค. ๊ทธ๋ƒฅ์ €๋ƒฅ ๋ฝ‘์•„๋ณธ ๊ฒƒ์— ๋งŒ์กฑํ•œ๋‹ค.

April 18, 2019 ์— ์ž‘์„ฑ
Tags: cs224n machine learning nlp python