AI·빅데이터 융합 경영학 Study Note

[논문리뷰] ELMo(Deep contextualized word representations) 본문

AI·ML

[논문리뷰] ELMo(Deep contextualized word representations)

SubjectOwner 2026. 4. 29. 01:11

[논문]

https://arxiv.org/abs/1802.05365

 

Deep contextualized word representations

We introduce a new type of deep contextualized word representation that models both (1) complex characteristics of word use (e.g., syntax and semantics), and (2) how these uses vary across linguistic contexts (i.e., to model polysemy). Our word vectors are

arxiv.org

 

임베딩 from 랭귀지 모델즈의 약자이다.

지피티 피셜 핵심은 이것입니다.

“단어의 뜻은 단어 하나만 보고 정하면 안 되고, 문장 속에서 어떻게 쓰였는지를 보고 정해야 한다.”

1. 기존 word embedding은 단어마다 고정된 벡터를 사용했다.
2. 그래서 동음이의어, 다의어를 잘 구분하지 못했다.
3. ELMo는 문장 전체 context를 고려해 token별 embedding을 만든다.

즉, play라는 단어라도 문장에 따라 다른 벡터를 만듭니다.

I play soccer. → play = 운동/행동의 의미
I watched a play. → play = 연극의 의미
 

이런 방식을 contextualized embedding, 즉 문맥 기반 임베딩이라고 합니다.

Language Model이란?

자료에 Language Model이라는 말이 나옵니다.

쉽게 말하면 다음 단어를 맞히는 모델입니다.

예를 들어,

나는 오늘 학교에 ___
 

빈칸에 올 가능성이 높은 단어는?

갔다
간다
가기 싫다
 

이런 식으로 앞 단어들을 보고 다음 단어를 예측하는 모델이 Language Model입니다.

 

 

6. Forward LM과 Backward LM

ELMo는 양방향을 봅니다.

Forward Language Model

왼쪽에서 오른쪽으로 봅니다.

Let's → stick → to → improvisation
 

즉, 앞 단어들을 보고 다음 단어를 예측합니다.

수식으로는 대략 이런 뜻입니다.

문장 확률 = 앞 단어들을 보고 현재 단어를 맞히는 확률들의 곱
 

자료의 수식:

p(t1, t2, ..., tN) = ∏ p(tk | t1, ..., tk-1)
 

뜻은:

tk라는 단어를 예측할 때, 그 앞에 나온 단어들을 참고한다.
 

Backward Language Model

오른쪽에서 왼쪽으로 봅니다.

skit → this → in → improvisation → to → stick
 

즉, 뒤 단어들을 보고 이전 단어를 예측합니다.

자료의 수식:

p(t1, t2, ..., tN) = ∏ p(tk | tk+1, ..., tN)
 

뜻은:

tk라는 단어를 예측할 때, 그 뒤에 나온 단어들을 참고한다.
 

7. 왜 양방향이 중요할까?

단어 뜻은 앞에 있는 말만 봐서는 부족할 때가 많습니다.

예를 들어:

I saw a bat.
 

여기까지만 보면 bat이 박쥐인지 야구방망이인지 헷갈립니다.

하지만 뒤에 이런 말이 나오면?

I saw a bat flying in the cave.
 

flying, cave를 보면 박쥐라는 걸 알 수 있습니다.

또는:

I hit the ball with a bat.
 

hit, ball을 보면 야구방망이라는 걸 알 수 있습니다.

그래서 ELMo는 앞쪽 문맥과 뒤쪽 문맥을 모두 봅니다. 이것이 bidirectional LSTM, 즉 양방향 LSTM입니다.


8. LSTM이란?

LSTM은 문장을 순서대로 읽으면서 정보를 기억하는 신경망입니다.

사람이 문장을 읽을 때 앞 내용을 기억하면서 뒤를 읽듯이, LSTM도 이전 단어들의 정보를 hidden state라는 내부 기억에 저장합니다.

예를 들어:

Let's stick to improvisation
 

LSTM은 Let's를 읽고 기억을 만들고, stick을 읽으면서 그 기억을 업데이트하고, to를 읽으면서 또 업데이트합니다.

이때 각 단계에서 만들어지는 기억을 hidden state라고 합니다.


9. ELMo의 핵심 구조

ELMo는 단어마다 여러 층의 정보를 만듭니다.

자료에 나온 것처럼:

Embedding layer
LSTM layer #1
LSTM layer #2
 

이렇게 여러 단계가 있습니다.

각 층은 서로 다른 정보를 잘 잡습니다.

대체로:

낮은 층 → 문법 정보
높은 층 → 의미 정보
 

예를 들어 낮은 층은 “이 단어가 명사인가? 동사인가?” 같은 정보를 잘 보고, 높은 층은 “이 단어가 문맥상 어떤 의미인가?”를 더 잘 봅니다.


10. ELMo는 여러 층을 합쳐서 최종 벡터를 만든다

ELMo는 한 층만 쓰지 않습니다.

단어 임베딩
+ LSTM 1층 hidden state
+ LSTM 2층 hidden state
 

이 여러 정보를 합쳐서 최종 단어 벡터를 만듭니다.

그런데 무조건 똑같이 합치지 않습니다.

task에 따라 다르게 합칩니다.

예를 들어:

품사 태깅 task → 문법 정보가 중요
질문답변 task → 의미 정보가 중요
감성분석 task → 문맥 의미가 중요
 

그래서 ELMo는 각 층에 가중치를 줍니다.

최종 ELMo 벡터 = 
가중치0 × 임베딩층
+ 가중치1 × LSTM 1층
+ 가중치2 × LSTM 2층
 

자료의 s0, s1, s2가 바로 이 가중치입니다.


11. γ task는 뭐야?

자료에 γ task가 나옵니다.

이건 전체 ELMo 벡터의 크기를 조절하는 값입니다.

비유하면:

s0, s1, s2 = 각 재료의 비율
γ = 전체 양 조절
 

김치찌개로 비유하면,

s0, s1, s2 → 김치, 고기, 물의 비율
γ → 전체 한 냄비를 얼마나 진하게/크게 만들지
 

입니다.


12. “type”이 아니라 “token”에 할당한다는 뜻

자료에 이런 말이 있습니다.

ELMo is assigned to every token instead of a type.
 

이게 중요합니다.

type은 단어 종류입니다.

play
 

라는 단어 자체가 하나의 type입니다.

token은 문장 안에 실제로 등장한 각각의 단어입니다.

I play soccer.
I watched a play.
 

여기서 play라는 type은 같지만, 실제 문장 속에 나온 두 개의 play는 서로 다른 token입니다.

ELMo는 type마다 하나의 벡터를 주는 게 아니라, 문장 안의 token마다 벡터를 새로 만듭니다.

그래서 같은 play라도 문맥에 따라 다른 벡터가 됩니다.


13. ELMo가 성능을 높인 이유

자료의 Performance 표는 ELMo를 여러 NLP 문제에 넣었더니 성능이 좋아졌다는 내용입니다.

예를 들어:

SQuAD → 질문답변
SNLI → 문장 관계 판단
SRL → 의미역 분석
Coref → 대명사/지시어 연결
NER → 개체명 인식
SST-5 → 감성분석
 

ELMo를 추가하면 기존 단어 임베딩보다 성능이 좋아졌습니다.

이유는 단순합니다.

기존 방식:

단어만 보고 뜻 판단
 

ELMo:

문장 전체를 보고 뜻 판단
 

그래서 더 정확합니다.


14. GloVe와 ELMo 비교

자료 마지막의 play 예시가 중요합니다.

GloVe는 play라는 단어를 보면 주변 단어가 보통 이런 식입니다.

playing, game, games, played, players, football
 

즉, play라는 단어의 일반적인 관련 단어를 보여줍니다.

하지만 ELMo는 문맥을 봅니다.

spectacular play on Alusik's grounder
 

여기서는 야구 플레이 의미입니다.

Broadway play
 

여기서는 연극 의미입니다.

즉, ELMo는 같은 play라도 문맥에 따라 다르게 이해합니다.


15. 한 문장으로 정리

ELMo는 문장 전체를 앞뒤 양방향으로 읽고, 여러 LSTM 층의 정보를 가중합해서, 각 단어가 문맥 속에서 어떤 의미인지 나타내는 벡터를 만드는 모델입니다.

더 쉽게 말하면:

ELMo는 단어를 외워서 이해하는 모델이 아니라,
문장 속 상황을 보고 단어 뜻을 판단하는 모델이다.
 
~~수학은 생략~~~

 

[참고 자료]

https://sonstory.tistory.com/101

 

[NLP] ELMo(Embeddings from Language Models)

Pre-trained word representation Pre-trained word respresentation은 많은 neural language understanding model에서 중요한 요소 높은 품질의 representation은 2가지를 모델링할 수 있어야 함 단어의 복잡한 특성(ex> syntax, semant

sonstory.tistory.com

https://www.youtube.com/watch?v=zV8kIUwH32M