๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Deep Learning/[๋…ผ๋ฌธ] Paper Review

Seq2Seq

by ์ œ๋ฃฝ 2023. 7. 5.
728x90
๋ฐ˜์‘ํ˜•

 

 

 

1. Intro
1) DNNs(Deep Neural Networks)
  • ์Œ์„ฑ ์ธ์‹, ์‚ฌ๋ฌผ ์ธ์‹๊ณผ ๊ฐ™์€ ๋ฌธ์ œ์— ์•„์ฃผ ์ข‹์Œ
  • ํ•˜์ง€๋งŒ ์ด ์นœ๊ตฌ๋Š” input, output์ด ๊ณ ์ •๋œ ์ฐจ์›์˜ ๋ฒกํ„ฐ๋กœ ์ธ์ฝ”๋”ฉ ๋œ ๋ฌธ์ œ์—๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์  ๋ฐœ์ƒ
2) sequential problems
  • ์Œ์„ฑ์ธ์‹์ด๋‚˜ ๊ธฐ๊ณ„ ๋ฒˆ์—ญ ๊ฐ™์€ ๋ฌธ์ œ๋“ค์€ ๊ธธ์ด๋ฅผ ์•Œ ์ˆ˜ ์—†๋Š” ์‹œํ€€์Šค๋กœ ํ‘œํ˜„๋จ
  • ๋Œ€ํ‘œ ์˜ˆ๋กœ) question-answering ๋ฌธ์ œ๋Š” ์งˆ๋ฌธ์— ๋Œ€ํ•œ ์ •๋‹ต ์‹œํ€€์Šค๋กœ ๋งค์นญํ•ด์ค˜์•ผ ํ•จ
  • ๋”ฐ๋ผ์„œ DNN์€ ์ž…์ถœ๋ ฅ ์ฐจ์›์„ ์•Œ์•„์•ผ ํ•˜๊ณ , ๊ณ ์ •๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐ์กด์˜ ๋ฐฉ๋ฒ•์€ ํ•ด๊ฒฐํ•˜๊ธฐ์— ์–ด๋ ค์›€์ด ๋ฐœ์ƒ
  • ex) ‘๋‚˜๋Š” ๋„ˆ๋ฅผ ์ •๋ง ์‚ฌ๋ž‘ํ•ด’ ⇒ ‘ I love you so much’
  • ex) ๋ฌธ์žฅ ๋‹จ์–ด ๊ฐœ์ˆ˜์— ๋งž์ถฐ์„œ I love you very ๋ผ๋Š” ์–ด์ƒ‰ํ•œ ๋ฌธ์žฅ ์ถœ๋ ฅ
  • ๊ทธ๋ž˜์„œ ๋‚˜์˜จ๊ฒŒ LSTM์ด๋‹ค.
3) Idea with Long Short-Term Memory(LSTM)
  • RNN vs LSTM
  • RNN์˜ ๊ฒฝ์šฐ, ๋ฌธ์žฅ ๊ตฌ์„ฑ ๋‹จ์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ทธ ๋•Œ๋งˆ๋‹ค ์ถœ๋ ฅ์„ ๋‚ด๋†“์Œ
  • LSTM์˜ ๊ฒฝ์šฐ, ๋ฌธ์žฅ ํ•˜๋‚˜๋ฅผ ๋๊นŒ์ง€ ๋“ฃ๊ณ , ํ•˜๋‚˜์˜ ์™„์ „ํ•œ ๋ฌธ์žฅ ๋งŒ๋“ฌ
  • ๋ฌธ์žฅ ์ „์ฒด๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ณด๊ธฐ ๋•Œ๋ฌธ์—, input๊ณผ output(target)์˜ ํ† ํฐ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ๋„ ๋œ๋‹ค๋Š” ์žฅ์ 
2. Overall architecture

 

  • encoder + decoder๋กœ ๊ตฌ์„ฑ
  • ์ž…๋ ฅ ์‹œํ€€์Šค๋ฅผ ํ•˜๋‚˜์˜ context vector๋กœ ํ‘œํ˜„, ๋””์ฝ”๋”์—์„œ๋Š” context vector์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œํ€€์Šค ์ถœ๋ ฅ
  • encoder : ์ž…๋ ฅ๋œ sequence๋ฅผ ๋ฒกํ„ฐ์˜ ํ˜•ํƒœ๋กœ ์••์ถ•ํ•˜์—ฌ decoder๋กœ ์ „๋‹ฌ
  • decoder : ์ „๋‹ฌ ๋ฐ›์€ ๋ฒกํ„ฐ๋ฅผ ์ฒซ ์…€์˜ hidden state๋กœ ๋„ฃ์–ด์ฃผ๊ณ  ์ด ๋ฌธ์žฅ์ด ์‹œ์ž‘ํ•œ๋‹ค๋Š” start flag์™€ ํ•จ๊ป˜ ๋ชจ๋ธ ์‹œ์ž‘. ์…€์—์„œ ๋‚˜์˜จ output์„ ๋ฌธ์žฅ์˜ ์ฒซ ๋‹จ์–ด๋กœ ๋‘๊ณ  ์ด๊ฒƒ์ด ๋‹ค์‹œ ๋‘๋ฒˆ์งธ ์…€์˜ input๊ณผ ํ•จ๊ป˜ ๋“ค์–ด๊ฐ€๋Š” ๊ณผ์ • ๋ฐ˜๋ณต=> "encoder์—์„œ ๋ชจ๋“  ๋ฌธ์žฅ์„ ๋“ค์€ ํ›„" decoder์—์„œ๋Š” ํ•˜๋‚˜์˜ ์™„์ „ํ•œ ๋ฌธ์žฅ ์ถœ๋ ฅ
3. RNN VS LSTM

1) RNN

  • ์ž…๋ ฅ (x1,x2 ~ xt)
  • ์ถœ๋ ฅ(y1,y2 ~ yt)
  • output์˜ ๊ฒฝ์šฐ, ์œ„ ์‹๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐ
  • but, ์ž…์ถœ๋ ฅ ๊ธธ์ด์˜ ์—ฐ๊ด€์„ฑ (๋‚˜๋Š” ๋„ˆ๋ฅผ ๋งŽ์ด ์‚ฌ๋ž‘ํ•ด ⇒ I love you so much I // love you very)์„ ์•Œ ์ˆ˜ ์—†์„ ๋•Œ๋Š” ์ ์šฉํ•˜๊ธฐ ์–ด๋ ค์›€
  • LSTM ๊ณต์‹
4. LSTM
  1. encoder
  • ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ, 4๊ฐœ์˜ ํ† ํฐ์ด ์กด์žฌ
  • ์ฒซ๋ฒˆ์งธ ํ† ํฐ์„ ์ž„๋ฒ ๋”ฉ์— ํ†ต๊ณผ์‹œํ‚จ ์ž…๋ ฅ๊ฐ’์„ ์ดˆ๊ธฐ h0(์€๋‹‰๊ฐ’)์„ ์ธ์ฝ”๋”์— ํ†ต๊ณผ
  • ์ถœ๋ ฅ๋œ h1๊ณผ guten์„ ์ž„๋ฒ ๋”ฉ ํˆฌ์—ฌํ•œ ๊ฐ’๊ณผ ๊ฐ™์ด ์ธ์ฝ”๋”์— ํ†ต๊ณผ
  • ์ด๋Ÿฐ์‹์œผ๋กœ ๊ณ„์† ๋ฐ˜๋ณตํ•ด์„œ ๊ณ ์ •๊ธธ์ด๋ฒกํ„ฐ(context vector)์„ ์ถ”์ถœ.
  1. decoder
  • ๋””์ฝ”๋”์˜ ๊ฒฝ์šฐ, context vector๋ฅผ sos์™€ ํ•จ๊ป˜ ๋„ฃ์–ด์„œ s1 ์ถ”์ถœ.
  • s1์ด linear function์„ ๊ฑฐ์ณ์„œ ‘good’ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฒกํ„ฐ ์ถ”์ถœ
  • ์ด ์ถœ๋ ฅ๊ฐ’(y1)์„ s1๊ณผ ํ•จ๊ป˜ ๋‹ค์Œ ๋””์ฝ”๋” ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ.
  • ์ด๋Ÿฐ์‹์œผ๋กœ ๋ฐ˜๋ณต
5. Add
  • encoder์™€ decoder์€ ์„œ๋กœ ๋‹ค๋ฅธ LSTM ๊ตฌ์กฐ
  • 4๊ฐœ์˜ ์ธต LSTM ์‚ฌ์šฉ
  • ํ† ํฐ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘์—ˆ๋”๋‹ˆ ์„ฑ๋Šฅ ํ–ฅ์ƒ
  • ex) a,b,c/g,d,e ⇒ c,b,a/g,d,e ์ด๋Ÿฐ์‹์œผ๋กœ.⇒ a๋Š” g์— ๊ฐ€๊น๊ณ , b๋Š” d์— ๊ฐ€๊น๊ณ  ์ด๋Ÿฐ์‹์œผ๋กœ ํ•จ์œผ๋กœ์จ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์˜ ์‚ฌ์ด์— ํ†ต์‹ ์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ฌ (๋ฐ์ดํ„ฐ ๋ณ€ํ™˜)์ด๋ผ๋Š” ์ˆœ์„œ๋กœ ๋ฐ”๊พธ๋ฉด, ๋””์ฝ”๋”์—์„œ ์ถœ๋ ฅ๊ฐ’์„ ์ƒ์„ฑํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์กฐ๊ธˆ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์คŒ. ๊ทธ๋ž˜์„œ ์ „์ฒด ์ถœ๋ ฅ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์— ์žˆ์–ด์„œ ์กฐ๊ธˆ ๋” ์ ํ•ฉํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์คŒ.
  • ์ƒ€๋‹ค ๋”ธ๊ธฐ์žผ์„ ๋‚˜๋Š” → I ~๋กœ ๋ฐ”๋กœ ์ถœ๋ ฅ์ธต์—์„œ ๋‚˜์˜ค๊ฒŒ
  • ⇒ ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด, ๋‚˜๋Š” ๋”ธ๊ธฐ์žผ์„ ์ƒ€๋‹ค→ ์ƒ€๋‹ค ๋”ธ๊ธฐ์žผ์„ ๋‚˜๋Š”
6. Decoding- Beam Search
1. Gready Search
  • ๋””์ฝ”๋”: ์ด์ „ ๋‹จ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•จ
  • ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” FC๋ฅผ ํ†ต๊ณผํ•œ ๊ฒฐ๊ณผ์— softmax๋ฅผ ํ†ตํ•ด ๊ฐ€์žฅ ๋†’์€ ํ™•๋ฅ ์„ ๊ฐ€์ง€๋Š” ๋‹จ์–ด ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•จ
  • ํ•˜์ง€๋งŒ ํ‹€๋ฆฐ๊ฐ’์„ ๋‚ด๋†“๊ฒŒ ๋˜๋ฉด, ๊ทธ ๊ฐ’์ด ๊ทธ๋Œ€๋กœ ๋’ค๋กœ ์ „๋‹ฌํ•ด์„œ ํ•™์Šต์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๊ฒŒ ๋จ.
2. Beam Search
  • ์œ„์˜ gready search์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž, beam search๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋จ
  • ํ•˜๋‚˜์˜ ์ถœ๋ ฅ๊ฐ’๋งŒ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, beam(k)๊ฐœ์ˆ˜ ๋งŒํผ ์ถœ๋ ฅ๊ฐ’์„ ๋‚ด๋†”์„œ ์—ฌ๋Ÿฌ ํ›„๋ณด๊ตฐ์„ ์ค˜์„œ ๋ฌธ์žฅ์„ ์ถœ๋ ฅ์‹œํ‚ด ⇒ ๋งˆ์ง€๋ง‰์— ๊ฐ€์žฅ ์ข‹์€ ์ถœ๋ ฅ ๋ฌธ์žฅ์ด ๋ญ”์ง€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•จ

์žฅ์ : ๋‹ค์–‘์„ฑ์„ ์คŒ ⇒ ํ‹€๋ฆฐ ๋‹ต์„ ๋‚ด๋†”๋„ ๋‹ค๋ฅธ ํ›„๋ณด ๋ฌธ์žฅ๋“ค์—์„œ ๋” ์•Œ๋งž์€ ๋‹ต์„ ๋‚ด๋†“์•˜์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•จ ⇒ ์ตœ์ ํ™”์— ์ข€ ๋” ๊ฐ•์ธํ•ด์ง!

๋‹จ์ : ์—ฐ์‚ฐ๋Ÿ‰ ์ฆ๊ฐ€, ๋ฌธ์žฅ์ด ๊ธธ์–ด์ง€๊ฒŒ ๋˜๋ฉด ์ •ํ™•๋„ ๋–จ์–ด์งˆ์ˆ˜๋„

  1. ์ฒซ๋ฒˆ์งธ decoding ๋‹จ๊ณ„์—์„œ ์ƒ์œ„ k๊ฐœ ํ›„๋ณด ๊ณ ๋ ค(softmax ๊ธฐ์ค€ ํ™•๋ฅ  ๋†’์€ k๊ฐœ)
  1. k๊ฐœ์˜ ์ฒซ ๋‹จ์–ด์— ๋Œ€ํ•ด k๊ฐœ ๋‘๋ฒˆ์งธ ๋‹จ์–ด ์ƒ์„ฑ
  1. ์ฒซ๋ฒˆ์งธ, ๋‘๋ฒˆ์งธ ๋‹จ์–ด๋ฅผ ์กฐํ•ฉํ•ด์„œ ์ƒ์œ„ k๊ฐœ ์กฐํ•ฉ ์„ ํƒ
  1. ์ƒ์œ„ k๊ฐœ ์กฐํ•ฉ์—์„œ k๊ฐœ ์„ธ๋ฒˆ์งธ ๋‹จ์–ด ์„ ํƒ ํ›„ 3,4๋ฒˆ ๋ฐ˜๋ณต
  1. ์ข…๋ฃŒ๋˜๋ฉด ์ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋ฌธ์žฅ์„ ์„ 
7. Reference

728x90
๋ฐ˜์‘ํ˜•