๐Ÿ“๋…ผ๋ฌธ๋ฆฌ๋ทฐ - ELMo(Deep contextualized word representations)

๋ฐ•์ค€ํฌยท2024๋…„ 3์›” 3์ผ

๋…ผ๋ฌธ๋ฆฌ๋ทฐ

๋ชฉ๋ก ๋ณด๊ธฐ
1/1
post-thumbnail

ELMo(Deep contextualized word representations) review


ELMo(Embeddings from Language Model)๋Š” 2018๋…„์— ์ œ์•ˆ๋œ ์ƒˆ๋กœ์šด ์›Œ๋“œ ์ž„๋ฒ ๋”ฉ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ELMo๋ผ๋Š” ์ด๋ฆ„์€ ์„ธ์„œ๋ฏธ ์ŠคํŠธ๋ฆฌํŠธ๋ผ๋Š” ๋ฏธ๊ตญ ์ธํ˜•๊ทน์˜ ์บ๋ฆญํ„ฐ ์ด๋ฆ„์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.


Introduction

ELMo๋Š” Embeddings from Language Model์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. ํ•ด์„ํ•˜๋ฉด '์–ธ์–ด ๋ชจ๋ธ๋กœ ํ•˜๋Š” ์ž„๋ฒ ๋”ฉ'์ž…๋‹ˆ๋‹ค. ELMo์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ์‚ฌ์ „ ํ›ˆ๋ จ๋œ ์–ธ์–ด ๋ชจ๋ธ(Pre-trained language model)์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

๐Ÿ”Bank๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค. Bank Account(์€ํ–‰ ๊ณ„์ขŒ)์™€ River Bank(๊ฐ•๋‘‘)์—์„œ์˜ Bank๋Š” ์ „ํ˜€ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

๊ฐ™์€ ํ‘œ๊ธฐ์˜ ๋‹จ์–ด๋ผ๋„ ๋ฌธ๋งฅ์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅด๊ฒŒ ์›Œ๋“œ ์ž„๋ฒ ๋”ฉ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ์˜ ์„ฑ๋Šฅ์„ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์›Œ๋“œ ์ž„๋ฒ ๋”ฉ ์‹œ ๋ฌธ๋งฅ์„ ๊ณ ๋ คํ•ด์„œ ์ž„๋ฒ ๋”ฉ์„ ํ•˜๊ฒ ๋‹ค๋Š” ์•„์ด๋””์–ด๊ฐ€ ๋ฌธ๋งฅ์„ ๋ฐ˜์˜ํ•œ ์›Œ๋“œ ์ž„๋ฒ ๋”ฉ(Contextualized Word Embedding) ์ž…๋‹ˆ๋‹ค.

์ด ๋…ผ๋ฌธ์—์„œ ๋‹จ์–ด ์‚ฌ์šฉ์˜ ๋ณต์žกํ•œ ํŠน์„ฑ(์˜ˆ: ๊ตฌ๋ฌธ ๋ฐ ์˜๋ฏธ)๊ณผ ์–ธ์–ด์  ๋งฅ๋ฝ์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€(์ฆ‰, ๋‹ค์˜์„ฑ ๋ชจ๋ธ๋ง)์„ ๋ชจ๋ธ๋งํ•˜๋Š” ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ์‹ฌ์ธต์ ์ธ ๋งฅ๋ฝํ™”๋œ ๋‹จ์–ด ํ‘œํ˜„์„ ์†Œ๊ฐœํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.

ELMo์˜ ๋‹จ์–ด ๋ฒกํ„ฐ๋Š” ํฐ ํ…์ŠคํŠธ ๋ง๋ญ‰์น˜์— ๋Œ€ํ•ด ์‚ฌ์ „ ํ›ˆ๋ จ๋œ ์‹ฌ์ธต ์–‘๋ฐฉํ–ฅ ์–ธ์–ด ๋ชจ๋ธ(biLM)์˜ ๋‚ด๋ถ€ ์ƒํƒœ์— ๋Œ€ํ•œ ํ•™์Šต๋œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

๋…ผ๋ฌธ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ํ‘œํ˜„์€ ๊ธฐ์กด ๋ชจ๋ธ์— ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์งˆ๋ฌธ ๋‹ต๋ณ€, ํ…์ŠคํŠธ ์ˆ˜๋ฐ˜ ๋ฐ ๊ฐ์ • ๋ถ„์„์„ ํฌํ•จํ•œ 6๊ฐ€์ง€ ๊นŒ๋‹ค๋กœ์šด NLP ๋ฌธ์ œ์—์„œ ์ตœ์ฒจ๋‹จ ๊ธฐ์ˆ ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.


1. ELMo(Embeddings from Language Model)

๋…ผ๋ฌธ์—์„œ๋Š” ELMo์— ๋Œ€ํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ๋Œ€๋ถ€๋ถ„์˜ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋‹จ์–ด ์ž„๋ฒ ๋”ฉ๊ณผ ๋‹ฌ๋ฆฌ ELMo word representations ์€ ์ž…๋ ฅ ๋ฌธ์žฅ ์ „์ฒด์˜ ํ•จ์ˆ˜๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
  • character convolutions๋กœ ๋‚˜์˜จ biLM์˜ ์ƒ์œ„ 2๊ฐœ layer์—์„œ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์ƒํƒœ์˜ ์„ ํ˜• ํ•จ์ˆ˜๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค
  • ์ด๋Ÿฌํ•œ ์„ค์ •์œผ๋กœ ์ค€์ง€๋„ ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • biLM์€ ๋Œ€๊ทœ๋ชจ๋กœ pre-train ๋˜๋ฉฐ, ๋‹ค์–‘ํ•œ ๊ธฐ์กด์˜ ์‹ ๊ฒฝ๋ง NLP ์•„ํ‚คํ…์ฒ˜์— ์‰ฝ๊ฒŒ ํ†ตํ•ฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. biLM(Bidirectional Language Model)

ELMo๋Š” ์ˆœ๋ฐฉํ–ฅ RNN๊ณผ ์—ญ๋ฐฉํ–ฅ RNN๋ชจ๋‘ ํ™œ์šฉํ•œ biLM(Bidirectional Language Model) ์ž…๋‹ˆ๋‹ค.
biLM์€ N๊ฐœ์˜ ํ† ํฐ (t1, t2, ..., tN)๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, forward language model์€ ๊ฐ ํ† ํฐ tk์˜ ํ™•๋ฅ ์„ ๋ชจ๋ธ๋งํ•˜์—ฌ ์‹œํ€€์Šค์˜ ํ™•๋ฅ ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.(ํ† ํฐ์ด k-1๊ฐœ๊นŒ์ง€ ์ฃผ์–ด์กŒ์„ ๋•Œ k๋ฒˆ์งธ ํ† ํฐ์ด ๋‚˜์˜ฌ ํ™•๋ฅ )
default

Backward language model์€ ๋ฏธ๋ž˜ ๋ฌธ๋งฅ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ์ด์ „ ํ† ํฐ์„ ์˜ˆ์ธกํ•˜๋Š” forward language model๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์‹œํ€€์Šค๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
defaultdefault
์ด๋ฏธ์ง€ ์ถœ์ฒ˜: https://jalammar.github.io/

biLM์€ forward language model๊ณผ backward language model์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.
forward LM์€ ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋„๋ก, backward LM์€ ์ด์ „๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋„๋ก ํ•™์Šต๋ฉ๋‹ˆ๋‹ค.
์ด๋•Œ ๋‘ ๋ฐฉํ–ฅ์˜ log likelihood๋ฅผ ์ตœ๋Œ€ํ™” ์‹œํ‚ค๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํ•™์Šต ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
default ๊ฐ ๋ฐฉํ–ฅ์˜ ํ† ํฐ ํ‘œํ˜„(ฮธ_x), Softmax ๋ ˆ์ด์–ด(ฮธ_s)


3. ELMo representation

ํ•ด๋‹น ์‹œ์ (time step)์˜ BiLM์˜ ๊ฐ ์ธต์˜ ์ถœ๋ ฅ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ˆœ๋ฐฉํ–ฅ ์–ธ์–ด ๋ชจ๋ธ๊ณผ ์—ญ๋ฐฉํ–ฅ ์–ธ์–ด ๋ชจ๋ธ์˜ ๊ฐ ์ธต์˜ ์ถœ๋ ฅ๊ฐ’์„ ์—ฐ๊ฒฐ(concatenate)ํ•˜๊ณ  ์ถ”๊ฐ€ ์ž‘์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ELMo๋Š” biLM์˜ ์ค‘๊ฐ„ layer ํ‘œํ˜„์˜ task๋ณ„ ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค. ๊ฐ ํ† ํฐ tk์— ๋Œ€ํ•ด, L์ธต biLM์€ 2L+1๊ฐœ์˜ ํ‘œํ˜„์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค
default๋‹ค์šด์ŠคํŠธ๋ฆผ ๋ชจ๋ธ์— ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด, ELMo๋Š” R์˜ ๋ชจ๋“  ๋ ˆ์ด์–ด๋ฅผ ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ๋กœ ์ถ•์†Œํ•ฉ๋‹ˆ๋‹ค:๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฒฝ์šฐ์—์„œ ELMo๋Š” ์ƒ์œ„ ๋ ˆ์ด์–ด๋งŒ ์„ ํƒํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ๋ชจ๋“  ๋ ˆ์ด์–ด์— ๊ณ„์‚ฐ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
defaultฮณ๐‘ก๐‘Ž๐‘ ๐‘˜์€ ์ „์ฒด ELMo ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” scalar parameter, Stask๋Š” ์†Œํ”„ํŠธ๋งฅ์Šค ์ •๊ทœํ™”๋œ ๊ฐ€์ค‘์น˜์ด๊ณ , ์Šค์นผ๋ผ ๋งค๊ฐœ ๋ณ€์ˆ˜ ฮธtask๋Š” ์ž‘์—… ๋ชจ๋ธ์ด ์ „์ฒด ELMo ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ‘‰์ •๋ฆฌํ•˜๋ฉด ์ด๋ ‡์Šต๋‹ˆ๋‹ค.


4. supervised NLP task์— ๋Œ€ํ•œ biLM ์‚ฌ์šฉ

ELMo ํ‘œํ˜„์„ ๊ธฐ์กด์˜ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ† ํฐ (t1,...,tN)์˜ ์‹œํ€€์Šค๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, pre-train ๋œ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ๊ณผ ์„ ํƒ์ ์œผ๋กœ ๊ธฐ์กด์˜ ์ž„๋ฒ ๋”ฉ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ํ† ํฐ ์œ„์น˜์— ๋Œ€ํ•ด ์ปจํ…์ŠคํŠธ ๋…๋ฆฝ์ ์ธ ํ† ํฐ ํ‘œํ˜„ xk๋ฅผ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ชจ๋ธ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์–‘๋ฐฉํ–ฅ RNN, CNN ๋˜๋Š” feed forward network๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ๋งฅ์— ๋ฏผ๊ฐํ•œ ํ‘œํ˜„(hk)์„ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด์˜ supervised model์— ELMo๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ‘์˜ ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

1) biLM์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๊ณ ์ •
2)	ELMo ๋ฒกํ„ฐ ใ€–๐ธ๐ฟ๐‘€๐‘œใ€—๐‘˜^๐‘ก๐‘Ž๐‘ ๐‘˜์™€ ๐‘ฅ๐‘˜ ์—ฐ๊ฒฐ
3)	ELMo ํ–ฅ์ƒ๋œ ํ‘œํ˜„ [๐‘ฅ๐‘˜; ใ€–๐ธ๐ฟ๐‘€๐‘œใ€—๐‘˜^๐‘ก๐‘Ž๐‘ ๐‘˜]์„ ์ž‘์—… RNN์— ์ „๋‹ฌ

์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ ELMo๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ ELMo์— ์ ๋‹น๋Ÿ‰์˜ ๋“œ๋กญ์•„์›ƒ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์œ ์ตํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.


Evaluation

ELMo๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ baseline model์— ๋น„ํ•ด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋๊ณ , ๋ช‡๋ช‡ task์— ๋Œ€ํ•˜์—ฌ ๋‹น์‹œ์˜ SOTA ๋ชจ๋ธ๋ณด๋‹ค ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.


์œ„ ๊ทธ๋ฆผ์€ layer๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐ€์ค‘ํ•ฉ์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€์ง€์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

๋จผ์ € ๋ฐ‘๋‹จ์˜ word embedding์„ ์“ฐ๋Š” ๊ฒƒ๋ณด๋‹จ ์ตœ์ƒ๋‹จ์˜ hidden state vector์„ ์“ฐ๋Š” ๊ฒƒ ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ณด๋‹จ ๋ชจ๋“  ๊ฐ๊ฐ์˜ layer์— ๋ชจ๋‘ ๋™์ผํ•œ weight๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ๋ณด๋‹จ task์— ๋งž๊ฒŒ weight๋ฅผ ๊ฐ๊ฐ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ELMo representation์„ ์–ด๋–ค ๋‹จ๊ณ„์— Concatenateํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€๊ฐ€์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

์ผ๋‹จ ๋‹น์—ฐํžˆ ELMo๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜์„ ๋•Œ๊ฐ€ ๊ฐ€์žฅ ์ข‹์ง€ ์•Š์•˜๊ณ  ouput์— elmo๋ฅผ ๋ถ™์—ฌ downstream task๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋‹ค์Œ์œผ๋กœ ์ข‹์•˜๊ณ  ์ด๋ณด๋‹จ input์— ๋จผ์ € elmo๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ, ๊ทธ๋ฆฌ๊ณ  ์ตœ์ข…์ ์œผ๋กœ๋Š” input์™€ output ๋‘˜ ๋‹ค elmo๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.


๐Ÿ’กConclusion

Elmo๋Š” bilm์„ ํ™œ์šฉํ•˜์—ฌ ๋งฅ๋ฝ์„ ์ดํ•ดํ•˜๋Š” ํ‘œํ˜„์„ ํ•™์Šตํ•˜๋ ค ํ–ˆ๊ณ  NLP task ์—์„œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. biLM ๋ ˆ์ด์–ด๊ฐ€ ๋‹จ์–ด์˜ ๋ฌธ๋งฅ์—์„œ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฌธ๋ฒ•์  ๋ฐ ์˜๋ฏธ์  ์ •๋ณด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ธ์ฝ”๋”ฉํ•˜๊ณ , ๋ชจ๋“  ๋ ˆ์ด์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ชจ๋“  ์ž‘์—… ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋…ผ๋ฌธ ๋งํฌ : https://aclweb.org/anthology/N18-1202
์ฐธ๊ณ  ๋งํฌ : https://wikidocs.net/33930
์ฐธ๊ณ  ๋งํฌ : https://yngie-c.github.io/nlp/2020/07/03/nlp_elmo/
์ฐธ๊ณ  ๋งํฌ : https://www.youtube.com/watch?v=zV8kIUwH32M&list=PLetSlH8YjIfVzHuSXtG4jAC2zbEAErXWm&index=19

profile
๊ฒŒ์„๋ €๋˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€

0๊ฐœ์˜ ๋Œ“๊ธ€