

ELMo(Embeddings from Language Model)๋ 2018๋ ์ ์ ์๋ ์๋ก์ด ์๋ ์๋ฒ ๋ฉ ๋ฐฉ๋ฒ๋ก ์ ๋๋ค. ELMo๋ผ๋ ์ด๋ฆ์ ์ธ์๋ฏธ ์คํธ๋ฆฌํธ๋ผ๋ ๋ฏธ๊ตญ ์ธํ๊ทน์ ์บ๋ฆญํฐ ์ด๋ฆ์ด๊ธฐ๋ ํฉ๋๋ค.
ELMo๋ Embeddings from Language Model์ ์ฝ์์ ๋๋ค. ํด์ํ๋ฉด '์ธ์ด ๋ชจ๋ธ๋ก ํ๋ ์๋ฒ ๋ฉ'์ ๋๋ค. ELMo์ ๊ฐ์ฅ ํฐ ํน์ง์ ์ฌ์ ํ๋ จ๋ ์ธ์ด ๋ชจ๋ธ(Pre-trained language model)์ ์ฌ์ฉํ๋ค๋ ์ ์ ๋๋ค.
๐Bank๋ผ๋ ๋จ์ด๋ฅผ ์๊ฐํด๋ด ์๋ค. Bank Account(์ํ ๊ณ์ข)์ River Bank(๊ฐ๋)์์์ Bank๋ ์ ํ ๋ค๋ฅธ ์๋ฏธ๋ฅผ ๊ฐ์ง๋๋ค.
๊ฐ์ ํ๊ธฐ์ ๋จ์ด๋ผ๋ ๋ฌธ๋งฅ์ ๋ฐ๋ผ์ ๋ค๋ฅด๊ฒ ์๋ ์๋ฒ ๋ฉ์ ํ ์ ์์ผ๋ฉด ์์ฐ์ด ์ฒ๋ฆฌ์ ์ฑ๋ฅ์ ์ฌ๋ฆด ์ ์์ ๊ฒ์
๋๋ค.
์๋ ์๋ฒ ๋ฉ ์ ๋ฌธ๋งฅ์ ๊ณ ๋ คํด์ ์๋ฒ ๋ฉ์ ํ๊ฒ ๋ค๋ ์์ด๋์ด๊ฐ ๋ฌธ๋งฅ์ ๋ฐ์ํ ์๋ ์๋ฒ ๋ฉ(Contextualized Word Embedding) ์
๋๋ค.
์ด ๋ ผ๋ฌธ์์ ๋จ์ด ์ฌ์ฉ์ ๋ณต์กํ ํน์ฑ(์: ๊ตฌ๋ฌธ ๋ฐ ์๋ฏธ)๊ณผ ์ธ์ด์ ๋งฅ๋ฝ์ ํตํด ์ด๋ฌํ ์ฌ์ฉ์ด ์ด๋ป๊ฒ ๋ณํ๋์ง(์ฆ, ๋ค์์ฑ ๋ชจ๋ธ๋ง)์ ๋ชจ๋ธ๋งํ๋ ์๋ก์ด ์ ํ์ ์ฌ์ธต์ ์ธ ๋งฅ๋ฝํ๋ ๋จ์ด ํํ์ ์๊ฐํ๋ ค ํฉ๋๋ค.
ELMo์ ๋จ์ด ๋ฒกํฐ๋ ํฐ ํ ์คํธ ๋ง๋ญ์น์ ๋ํด ์ฌ์ ํ๋ จ๋ ์ฌ์ธต ์๋ฐฉํฅ ์ธ์ด ๋ชจ๋ธ(biLM)์ ๋ด๋ถ ์ํ์ ๋ํ ํ์ต๋ ํจ์์ ๋๋ค.
๋ ผ๋ฌธ์์๋ ์ด๋ฌํ ํํ์ ๊ธฐ์กด ๋ชจ๋ธ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ผ๋ฉฐ ์ง๋ฌธ ๋ต๋ณ, ํ ์คํธ ์๋ฐ ๋ฐ ๊ฐ์ ๋ถ์์ ํฌํจํ 6๊ฐ์ง ๊น๋ค๋ก์ด NLP ๋ฌธ์ ์์ ์ต์ฒจ๋จ ๊ธฐ์ ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ค๊ณ ํฉ๋๋ค.
๋ ผ๋ฌธ์์๋ ELMo์ ๋ํด ์๋์ ๊ฐ์ด ๊ฐ๋จํ๊ฒ ์ค๋ช ํฉ๋๋ค.
ELMo๋ ์๋ฐฉํฅ RNN๊ณผ ์ญ๋ฐฉํฅ RNN๋ชจ๋ ํ์ฉํ biLM(Bidirectional Language Model) ์
๋๋ค.
biLM์ N๊ฐ์ ํ ํฐ (t1, t2, ..., tN)๊ฐ ์ฃผ์ด์ก์ ๋, forward language model์ ๊ฐ ํ ํฐ tk์ ํ๋ฅ ์ ๋ชจ๋ธ๋งํ์ฌ ์ํ์ค์ ํ๋ฅ ์ ๊ณ์ฐํฉ๋๋ค.(ํ ํฐ์ด k-1๊ฐ๊น์ง ์ฃผ์ด์ก์ ๋ k๋ฒ์งธ ํ ํฐ์ด ๋์ฌ ํ๋ฅ )

Backward language model์ ๋ฏธ๋ ๋ฌธ๋งฅ์ด ์ฃผ์ด์ก์ ๋ ์ด์ ํ ํฐ์ ์์ธกํ๋ forward language model๊ณผ ์ ์ฌํ์ง๋ง, ์ํ์ค๋ฅผ ์ญ๋ฐฉํฅ์ผ๋ก ์คํํฉ๋๋ค


์ด๋ฏธ์ง ์ถ์ฒ: https://jalammar.github.io/
biLM์ forward language model๊ณผ backward language model์ ๊ฒฐํฉํฉ๋๋ค.
forward LM์ ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ๋๋ก, backward LM์ ์ด์ ๋จ์ด๋ฅผ ์์ธกํ๋๋ก ํ์ต๋ฉ๋๋ค.
์ด๋ ๋ ๋ฐฉํฅ์ log likelihood๋ฅผ ์ต๋ํ ์ํค๋ ๋ฐฉํฅ์ผ๋ก ํ์ต ์งํํฉ๋๋ค.
๊ฐ ๋ฐฉํฅ์ ํ ํฐ ํํ(ฮธ_x), Softmax ๋ ์ด์ด(ฮธ_s)
ํด๋น ์์ (time step)์ BiLM์ ๊ฐ ์ธต์ ์ถ๋ ฅ๊ฐ์ ๊ฐ์ ธ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฐฉํฅ ์ธ์ด ๋ชจ๋ธ๊ณผ ์ญ๋ฐฉํฅ ์ธ์ด ๋ชจ๋ธ์ ๊ฐ ์ธต์ ์ถ๋ ฅ๊ฐ์ ์ฐ๊ฒฐ(concatenate)ํ๊ณ ์ถ๊ฐ ์์ ์ ์งํํฉ๋๋ค.
ELMo๋ biLM์ ์ค๊ฐ layer ํํ์ task๋ณ ์กฐํฉ์
๋๋ค. ๊ฐ ํ ํฐ tk์ ๋ํด, L์ธต biLM์ 2L+1๊ฐ์ ํํ์ ๊ณ์ฐํฉ๋๋ค
๋ค์ด์คํธ๋ฆผ ๋ชจ๋ธ์ ํฌํจํ๊ธฐ ์ํด, ELMo๋ R์ ๋ชจ๋ ๋ ์ด์ด๋ฅผ ํ๋์ ๋ฒกํฐ๋ก ์ถ์ํฉ๋๋ค:
๊ฐ์ฅ ๊ฐ๋จํ ๊ฒฝ์ฐ์์ ELMo๋ ์์ ๋ ์ด์ด๋ง ์ ํํ๊ธฐ๋ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก๋ ๋ชจ๋ ๋ ์ด์ด์ ๊ณ์ฐ์ ์งํํฉ๋๋ค.
ฮณ๐ก๐๐ ๐์ ์ ์ฒด ELMo ๋ฒกํฐ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ scalar parameter, Stask๋ ์ํํธ๋งฅ์ค ์ ๊ทํ๋ ๊ฐ์ค์น์ด๊ณ , ์ค์นผ๋ผ ๋งค๊ฐ ๋ณ์ ฮธtask๋ ์์
๋ชจ๋ธ์ด ์ ์ฒด ELMo ๋ฒกํฐ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์๊ฒ ํฉ๋๋ค.
๐์ ๋ฆฌํ๋ฉด ์ด๋ ์ต๋๋ค.

ELMo ํํ์ ๊ธฐ์กด์ ์๋ฒ ๋ฉ ๋ชจ๋ธ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ ํฐ (t1,...,tN)์ ์ํ์ค๊ฐ ์ฃผ์ด์ง๋ฉด, pre-train ๋ ์๋ฒ ๋ฉ ๋ชจ๋ธ๊ณผ ์ ํ์ ์ผ๋ก ๊ธฐ์กด์ ์๋ฒ ๋ฉ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๊ฐ ํ ํฐ ์์น์ ๋ํด ์ปจํ ์คํธ ๋ ๋ฆฝ์ ์ธ ํ ํฐ ํํ xk๋ฅผ ํ์ฑํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ชจ๋ธ์ ์ผ๋ฐ์ ์ผ๋ก ์๋ฐฉํฅ RNN, CNN ๋๋ feed forward network๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ๋งฅ์ ๋ฏผ๊ฐํ ํํ(hk)์ ํ์ฑํฉ๋๋ค.
๊ธฐ์กด์ supervised model์ ELMo๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด์๋ ๋ฐ์ ๊ณผ์ ์ด ํ์ํฉ๋๋ค.
1) biLM์ ๊ฐ์ค์น๋ฅผ ๊ณ ์
2) ELMo ๋ฒกํฐ ใ๐ธ๐ฟ๐๐ใ๐^๐ก๐๐ ๐์ ๐ฅ๐ ์ฐ๊ฒฐ
3) ELMo ํฅ์๋ ํํ [๐ฅ๐; ใ๐ธ๐ฟ๐๐ใ๐^๐ก๐๐ ๐]์ ์์
RNN์ ์ ๋ฌ
์ด๋ฌํ ๊ณผ์ ์ ๊ฑฐ์ณ ELMo๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
์ถ๊ฐ์ ์ผ๋ก ELMo์ ์ ๋น๋์ ๋๋กญ์์์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ ์ตํ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค๊ณ ๋งํฉ๋๋ค.
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๋ฅผ ๋ถ์ด๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์์ต๋๋ค.
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