๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
NLP ๐Ÿ—ฃ

seq2seq(sequence to sequence), attention

by Jouureee 2022. 1. 25.

seq2seq๋Š” ์ฑ—๋ด‡(chatBot), ๊ธฐ๊ณ„ ๋ฒˆ์—ญ(machine-traslation), STT(Speach-to-Text)๋“ฑ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋ธ์ด๋‹ค. 

 

seq2seq๋ฅผ ์ž์„ธํžˆ ๋ณด๋ฉด Encoder์™€ Decoder๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. 

์ธ์ฝ”๋”

๋ชจ๋“  ๋‹จ์–ด๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž…๋ ฅ ๋ฐ›์•„ ๋งˆ์ง€๋ง‰์— ๋ชจ๋“  ๋‹จ์–ด ์ •๋ณด๋“ค์„ ์••์ถ•ํ•ด context vector๋ฅผ ๋งŒ๋“ ๋‹ค.

 

๋””์ฝ”๋”

context vector๋ฅผ ์ž…๋ ฅ์œผ๋กœ ํ•˜์—ฌ ๋ฒˆ์—ญ๋œ ๋‹จ์–ด๋ฅผ ํ•œ๊ฐœ์”ฉ ์ˆœ์ฐจ์ ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

 

์œ„ ๊ทธ๋ฆผ์„ ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ๊ทธ๋ ค๋ณด๋ฉด 

 

์‚ฌ์‹ค ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”๋Š” ๋‘๊ฐœ์˜ RNN์ด๋‹ค. 

์ธ์ฝ”๋”๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด ์ž…๋ ฅ ๋ฌธ์žฅ์€ ๋‹จ์–ด ํ† ํฐํ™”๋ฅผ ํ†ตํ•ด ๋‹จ์–ด ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์ง€๊ณ  ๋‹จ์–ด ํ† ํฐ ๊ฐ๊ฐ์€ RNN ์…€ ๊ฐ ์‹œ์ ์—์„œ ์ž…๋ ฅ์ด ๋œ๋‹ค.

์ธ์ฝ”๋ฐ RNN ์…€์€ ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ์ž…๋ ฅ ๋ฐ›์€ ๋’ค ์ธ์ฝ”๋” RNN ์…€์˜ ๋งˆ์ง€๋ง‰ ์‹œ์ ์˜ ์€๋‹‰์ƒํƒœ๋ฅผ ๋””์ฝ”๋” RNN ์…€๋กœ ๋„˜๊ฒจ์ฃผ๋Š”๋ฐ ์ด๋ฅผ Context ๋ฒกํ„ฐ๋ผ๊ณ  ํ•œ๋‹ค. 

๋””์ฝ”๋”๋Š” ์ดˆ๊ธฐ ์ž…๋ ฅ์œผ๋กœ ๋ฌธ์žฅ์„ ์‹œ์ž‘ํ•˜๋Š” ์‹ฌ๋ณผ <sos>๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. <sos>๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ๋‹ค์Œ์— ๋“ฑ์žฅํ•  ํ™•๋ฅ ์ด ๋†’์€ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค. ์ด ํ–‰์œ„๋Š” ๋ฌธ์žฅ ๋์„ ์˜๋ฏธํ•˜๋Š” ์‹ฌ๋ณผ์ธ <eos> ๊ฐ€ ๋‹ค์Œ ๋‹จ์–ด๋กœ ์˜ˆ์ธก ๋ ๋Œ€๊นŒ์ง€ ๋ฐ˜๋ณต๋œ๋‹ค.

 

seq2seq๋Š” ํ›ˆ๋ จ ๊ณผ์ •๊ณผ ํ…Œ์ŠคํŠธ ๊ณผ์ •(๋˜๋Š” ์‹ค์ œ ๋ฒˆ์—ญ๊ธฐ๋ฅผ ์‚ฌ๋žŒ์ด ์“ธ ๋•Œ)์˜ ์ž‘๋™ ๋ฐฉ์‹์ด ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค. ์•ž์˜ ๋‚ด์šฉ๋“ค์€ ํ…Œ์ŠคํŠธ ๊ณผ์ •์ด๊ณ 

ํ›ˆ๋ จ ๊ณผ์ •์—์„œ๋Š” ์ธ์ฝ”๋”๊ฐ€ ๋ณด๋‚ธ ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ์™€ ์‹ค์ œ ์ •๋‹ต์ธ <sos> je suis étudiant๋ฅผ ์ž…๋ ฅ ๋ฐ›์•˜์„ ๋•Œ, je suis étudiant <eos>๊ฐ€ ๋‚˜์™€์•ผ ๋œ๋‹ค๊ณ  ์ •๋‹ต์„ ์•Œ๋ ค์ฃผ๋ฉด์„œ ํ›ˆ๋ จํ•œ๋‹ค.

๋ฐ˜๋ฉด ํ…Œ์ŠคํŠธ ๊ณผ์ •์—์„œ๋Š” ์•ž์„œ ์„ค๋ช…ํ•œ ๊ณผ์ •๊ณผ ๊ฐ™์ด ๋””์ฝ”๋”๋Š” ์˜ค์ง ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ์™€ <sos>๋งŒ์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์€ ํ›„์— ๋‹ค์Œ์— ์˜ฌ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๊ณ , ๊ทธ ๋‹จ์–ด๋ฅผ ๋‹ค์Œ ์‹œ์ ์˜ RNN ์…€์˜ ์ž…๋ ฅ์œผ๋กœ ๋„ฃ๋Š” ํ–‰์œ„๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

 

 

๋””์ฝ”๋”์—์„œ ์ถœ๋ ฅ ๋‹จ์–ด๋กœ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด๋“ค์€ ๋‹ค์–‘ํ•˜๋‹ค. seq2seq ๋ชจ๋ธ์€ ์„ ํƒ๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋‹จ์–ด๋“ค๋กœ๋ถ€ํ„ฐ ํ•˜๋‚˜์˜ ๋‹จ์–ด๋งŒ์„ ๋ฝ‘์•„๋‚ด์•ผ ํ•œ๋‹ค. ์ถœ๋ ฅ ์ธต ๋งˆ์ง€๋ง‰ ๋‹จ์— softmax ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ถœ๋ ฅ ์‹œํ€€์Šค์˜ ๋‹จ์–ด๋ณ„ ํ™•๋ฅ  ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋œ๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ RNN ๊ธฐ๋ฐ˜์˜ seq2seq ๋ชจ๋ธ์€ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค.

1. ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ context ๋ฒกํ„ฐ์— ๋ชจ๋“  ์ •๋ณด๋ฅผ ์••์ถ•ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ์ •๋ณด ์†์‹ค์ด ๋ฐœ์ƒํ•œ๋‹ค.

2. RNN์˜ ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ ์žฅ๊ธฐ์˜์กด์„ฑ ๋ฌธ์ œ

 

๊ทธ๋ž˜์„œ ๊ธฐ๊ณ„ ๋ฒˆ์—ญ ๋ถ„์•ผ์—์„œ ์ž…๋ ฅ ๋ฌธ์žฅ์ด ๊ธธ์–ด์งˆ ์ˆ˜๋ก ๋ฒˆ์—ญ ํ’ˆ์งˆ์ด ๋–จ์–ด์ง€๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด ์ž…๋ ฅ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด์ง€๋ฉด ์ถœ๋ ฅ ๋ฌธ์žฅ์˜ ์ •ํ™•๋„๋ฅผ ๋ณด์ •ํ•ด์ฃผ๊ธฐ ์œ„ํ•œ ์–ดํ…์…˜ ๊ธฐ๋ฒ•์ด ๋“ฑ์žฅํ•˜์˜€๋‹ค.

 

์–ดํ…์…˜์˜ ๊ธฐ๋ณธ ์•„์ด๋””์–ด๋Š” ๋””์ฝ”๋”์—์„œ ์ถœ๋ ฅ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋งค ์‹œ์ ๋งˆ๋‹ค ์ธ์ฝ”๋”์—์„œ์˜ ์ „์ฒด ์ž…๋ ฅ ๋ฌธ์žฅ์„ ๋‹ค์‹œ ์ฐธ๊ณ  ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.

์ž…๋ ฅ ๋ฌธ์žฅ์„ ๋™์ผํ•œ ๋น„์œจ๋กœ ์ฐธ๊ณ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์˜ˆ์ธกํ•ด์•ผ ํ•  ๋‹จ์–ด์™€ ์—ฐ๊ด€์ด ์žˆ๋Š” ์ž…๋ ฅ ๋‹จ์–ด ๋ถ€๋ถ„์„ ์กฐ๊ธˆ ๋” ์ง‘์ค‘(attention)ํ•ด์„œ ๋ณด๊ฒŒ ๋œ๋‹ค.

 

์–ดํ…์…˜ ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Attention(Q, K, V) = Attention Value

Q = Query : t ์‹œ์ ์˜ ๋””์ฝ”๋” ์…€์—์„œ์˜ ์€๋‹‰ ์ƒํƒœ
K = Keys : ๋ชจ๋“  ์‹œ์ ์˜ ์ธ์ฝ”๋” ์…€์˜ ์€๋‹‰ ์ƒํƒœ๋“ค
V = Values : ๋ชจ๋“  ์‹œ์ ์˜ ์ธ์ฝ”๋” ์…€์˜ ์€๋‹‰ ์ƒํƒœ๋“ค

 

๋‹ท-ํ”„๋กœ๋•ํŠธ ์–ดํ…์…˜(dot-product attention)

์–ดํ…์…˜์€ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ์ค‘์—์„œ ๋‹ท-ํ”„๋กœ๋•ํŠธ ์–ดํ…์…˜์„ ์‚ดํŽด ๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

์ฒซ๋ฒˆ์งธ, ๋‘๋ฒˆ์งธ ์ถœ๋ ฅ์€ ์ง€๊ธˆ ์„ค๋ช…ํ•˜๋Š” ์„ธ๋ฒˆ์งธ ์ถœ๋ ฅ๊ณผ ๊ฐ™์€ ์˜ˆ์‹œ์ด๋ฏ€๋กœ ์ด๋ฏธ ์ง„ํ–‰ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์„ธ๋ฒˆ์งธ ์˜ˆ์‹œ๋ฅผ ๋ณด๊ฒ ๋‹ค. 

๋””์ฝ”๋”์˜ ์„ธ๋ฒˆ์งธ LSTM ์…€์€ ์ถœ๋ ฅ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฝ”๋”์˜ ๋ชจ๋“  ์ž…๋ ฅ ๋‹จ์–ด๋“ค์˜ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ์ฐธ๊ณ ํ•œ๋‹ค.

์†Œํ”„ํŠธ๋งฅ์Šค ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋‚˜์˜จ ๊ฒฐ๊ณผ๊ฐ’์€ I, am, a, student ๋‹จ์–ด ๊ฐ๊ฐ์ด ์ถœ๋ ฅ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•  ๋•Œ ์–ผ๋งˆ๋‚˜ ๋„์›€์ด ๋˜๋Š”์ง€์˜ ์ •๋„๋ฅผ ์ˆ˜์น˜ํ™”ํ•œ ๊ฐ’์ด๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์—์„œ๋Š” ๋นจ๊ฐ„ ์ง์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๋กœ ์†Œํ”„ํŠธ๋งฅ์Šค ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์˜ ํฌ๊ธฐ๋ฅผ ํ‘œํ˜„ํ–ˆ๋‹ค. ์ง์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๊ฐ€ ํด ์ˆ˜๋ก ๋„์›€์ด ๋˜๋Š” ์ •๋„์˜ ํฌ๊ธฐ๊ฐ€ ํฌ๋‹ค. 

 

1. ์–ดํ…์…˜ ์Šค์ฝ”์–ด(attention score)๋ฅผ ๊ตฌํ•œ๋‹ค.

 

์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”์˜ ์€๋‹‰์ƒํƒœ๋Š” ๋ชจ๋‘ 4์ฐจ์›์œผ๋กœ ๋™์ผํ•œ ์ƒํƒœ์ด๋ฉฐ, ๊ฐ input์— ๋Œ€ํ•œ ์€๋‹‰ ์ƒํƒœ๋ฅผ h1, h2, h3, h4๋ผ ํ• ๋•Œ

๋””์ฝ”๋”์˜ ํ˜„ ์‹œ์  t์—์„œ ๋””์ฝ”๋”์˜ ์€๋‹‰ ์ƒํƒœ๋ฅผ st๋ผ๊ณ  ํ•˜์ž. ๊ทธ๋ฆฌ๊ณ  ๋””์ฝ”๋”์—์„œ t๋ฒˆ์งธ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•œ ์–ดํ…์…˜ ๊ฐ’(attention value)๋ฅผ at๋ผ๊ณ  ํ•˜์ž. at๋Š” ํ˜„ ๋””์ฝ”๋” t์‹œ์ ์—์„œ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฝ”๋”์˜ ๋ชจ๋“  ์€๋‹‰ ์ƒํƒœ ๊ฐ๊ฐ์ด ๋””์ฝ”๋”์˜ ํ˜„ ์‹œ์ ์˜ ์€๋‹‰ ์ƒํƒœ st์™€ ์–ผ๋งˆ๋‚˜ ์œ ์‚ฌํ•œ์ง€ ํŒ๋‹จํ•˜๋Š” ๊ฐ’์„ ๋งํ•œ๋‹ค. 

 

์šฐ์„  st๋ฅผ ์ „์น˜(transpose)ํ•˜๊ณ  ๊ฐ ์€๋‹‰ ์ƒํƒœ์™€ ๋‚ด์ ํ•œ๋‹ค. 

st์™€ ์ธ์ฝ”๋”์˜ ๋ชจ๋“  ์€๋‹‰ ์ƒํƒœ์˜ ์–ดํ…์…˜ ์Šค์ฝ”์–ด์˜ ๋ชจ์Œ ๊ฐ’์„ et๋ผ๊ณ  ํ• ๋•Œ ์ˆ˜์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

2. ์†Œํ”„ํŠธ๋งฅ์Šค ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์–ดํ…์…˜ ๋ถ„ํฌ๋ฅผ ๊ตฌํ•œ๋‹ค.

์–ดํ…์…˜ ์Šค์ฝ”์–ด ๊ฐ’๋“ค et๋ฅผ ์†Œํ”„ํŠธ๋งฅ์Šค ํ•จ์ˆ˜์— ๋„ฃ์–ด ํ™•๋ฅ  ๋ถ„ํฌ๋ฅผ ์–ป๋Š”๋‹ค. 

 

3. ๊ฐ ์ธ์ฝ”๋”์˜ ์–ดํ…์…˜ ๊ฐ€์ค‘์น˜์™€ ์€๋‹‰ ์ƒํƒœ๋ฅผ ๊ฐ€์ค‘ํ•ฉ ํ•˜์—ฌ ์–ดํ…์…˜ ๊ฐ’์„ ๊ตฌํ•œ๋‹ค.

์–ดํ…์…˜์˜ ์ตœ์ข… ๊ฒฐ๊ณผ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•ด์„œ ๊ฐ ์ธ์ฝ”๋”์˜ ์€๋‹‰ ์ƒํƒœ์™€ ์–ดํ…์…˜ ๊ฐ€์ค‘์น˜๊ฐ’๋“ค์„ ๊ณฑํ•˜๊ณ , ์ตœ์ข…์ ์œผ๋กœ ๋ชจ๋‘ ๋”ํ•œ๋‹ค. 

์ด at(์–ดํ…์…˜ ๊ฐ’)๋Š” ์ข…์ข… ์ธ์ฝ”๋”์˜ ๋ฌธ๋งฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ๋ผ๊ณ  ํ•œ๋‹ค. ์•ž์„œ ๋‚˜์˜จ seq2seq์˜ ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ์™€๋Š” ๋Œ€์กฐ๋œ๋‹ค.

 

4. ์–ดํ…์…˜ ๊ฐ’๊ณผ ๋””์ฝ”๋”์˜ t ์‹œ์ ์˜ ์€๋‹‰ ์ƒํƒœ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.(Concatenate)

 

 

at(์–ดํ…์…˜ ๊ฐ’)๊ณผ st๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ๋กœ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด๋กœ๋ถ€ํ„ฐ ๊ตฌํ•œ vt๋ฅผ y^ ์˜ˆ์ธก ์—ฐ์‚ฐ์˜ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ์„œ ์ธ์ฝ”๋”๋กœ๋ถ€ํ„ฐ ์–ป์€ ์ •๋ณด๋ฅผ ํ™œ์šฉํ•ด y^์„ ๋” ์ž˜ ์˜ˆ์ธกํ• ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

5. ์ถœ๋ ฅ์ธต ์—ฐ์‚ฐ์˜ ์ž…๋ ฅ์ด ๋˜๋Š” s~t๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

 

 

6. s~t๋ฅผ ์ถœ๋ ฅ์ธต์˜ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

* ๊ทธ ์™ธ์˜ ๋‹ค๋ฅธ ์–ดํ…์…˜ ํ•จ์ˆ˜๋“ค

์Šค์ฝ”์–ด ํ•จ์ˆ˜๋งŒ ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚œ๋‹ค.

 

 

์ฐธ๊ณ  ๋ฌธํ—Œ :

https://wikidocs.net/24996

https://wikidocs.net/22893

'NLP ๐Ÿ—ฃ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

one-hot encoding  (0) 2022.01.21

๋Œ“๊ธ€