Part 5 · Context and Sequential Models - Why Context Matters

문맥이 있어야 단어의 의미를 이해할 수 있다

같은 단어라도 어떤 문장에 사용되느냐에 따라 의미는 달라질 수 있습니다. 사람은 앞뒤 문장을 함께 읽으며 자연스럽게 이러한 차이를 이해하지만, Word2Vec은 하나의 단어에 하나의 고정된 벡터만 사용합니다. 언어를 제대로 이해하려면 단어 자체보다 문장 전체의 흐름을 함께 살펴봐야 합니다. 이 장에서는 왜 문맥(Context)이 자연어 처리에서 가장 중요한 정보 가운데 하나인지 알아봅니다.

From Embeddings to Context

임베딩까지 만들었는데, 무엇이 더 필요할까?

앞 장까지 문장을 토큰으로 나누고, Token ID를 통해 각 토큰의 임베딩 벡터를 가져오는 과정을 살펴보았습니다.

문장 Raw Text
토큰 문장 조각
Token ID 행 번호
임베딩 기본 벡터
문맥 이해 앞뒤 관계 필요
언어 모델 RNN · Transformer
임베딩 벡터는 토큰의 기본 표현을 제공하지만, 현재 문장에서 어떤 의미로 사용되었는지까지 자동으로 결정하지는 못합니다.
What Is Context?

문맥(Context)이란?

문맥은 단어의 앞뒤에 놓인 다른 단어와 문장 전체의 흐름을 의미합니다. 사람은 단어 하나만 따로 읽기보다 주변 표현을 함께 살펴보며 의미를 판단합니다.

단어 하나만 본 경우
bank

은행인지 강둑인지 알 수 없습니다. 가능한 의미가 여러 개 남아 있습니다.

문장 속에서 본 경우
I deposited money at the bank.

deposited와 money가 함께 등장하므로 금융 기관인 은행을 뜻한다는 것을 알 수 있습니다.

쉽게 말하면 문맥은 현재 단어의 의미를 판단할 수 있게 해 주는 주변 정보입니다.
Same Token, Different Meaning

같은 단어도 문맥에 따라 의미가 달라진다

은행을 뜻하는 bank
I deposited money at the bank.
deposited · money → 금융 기관
강둑을 뜻하는 bank
The children played on the river bank.
river · played on → 강이나 하천의 둑

두 문장의 bank는 같은 토큰이므로 Embedding Table에서 Lookup한 기본 벡터도 같을 수 있습니다. 그러나 문장 안에서 실제로 나타내는 의미는 다릅니다.

같은 Token ID와 같은 초기 임베딩으로 시작하더라도, 문맥을 처리하는 모델은 주변 단어를 이용해 각 위치의 표현을 다르게 바꿔야 합니다.
Korean Examples

한국어도 문맥이 필요하다

신체의 배
배가 아프다.
아프다 → 신체 부위
교통수단인 배
배를 타고 제주도에 갔다.
타고 · 제주도 → 선박
과일인 배
달콤한 배를 먹었다.
달콤한 · 먹었다 → 과일
의미를 결정하는 주변 표현

같은 글자와 발음을 가진 단어라도, 주변 동사와 수식어에 따라 의미가 달라집니다.

Context Explorer

주변 단어가 의미를 바꾸는 과정 확인하기

아래 항목을 선택하면 같은 중심 단어가 문맥에 따라 어떻게 다른 의미로 해석되는지 확인할 수 있습니다.

bank가 은행을 뜻하는 문장

Negation

주변 단어 하나가 문장 전체 의미를 바꿀 수 있다

긍정 문장
The movie was good.
good → 긍정적인 평가
부정 문장
The movie was not good.
not + good → 부정적인 평가

모델이 good이라는 토큰만 본다면 두 번째 문장도 긍정적으로 잘못 판단할 수 있습니다. 앞에 나온 not을 함께 고려해야 문장의 실제 의미를 이해할 수 있습니다.

문맥은 단어의 사전적 의미만 결정하는 것이 아니라, 부정·강조·조건·원인 같은 문장 전체의 관계도 결정합니다.
What a Language Model Must Do

언어 모델이 해결해야 하는 질문

현재 단어는 어떤 의미인가? bank = 은행 / 강둑?
앞의 단어가 현재 의미를 바꾸는가? not + good
현재 단어는 앞의 어떤 단어와 연결되는가? she → Jane / Sarah?
지금까지의 흐름에서 다음에 무엇이 올까? The cat sat on the ...
언어 모델은 토큰을 독립적으로 처리하는 것이 아니라, 각 토큰을 주변 토큰과 연결하여 문장 전체의 관계를 계산해야 합니다.
Static and Contextual Representations

기본 임베딩과 문맥을 반영한 표현은 다르다

Embedding Lookup 직후

같은 Token ID는 같은 기본 임베딩 벡터를 가져옵니다.

bank → [0.14, -0.32, 0.71, ...]
문맥 모델을 통과한 뒤

주변 단어를 반영하면 각 문장 속 bank가 서로 다른 표현으로 바뀔 수 있습니다.

money 문맥의 bank ≠ river 문맥의 bank
초기 임베딩은 토큰의 기본 출발점입니다. 문장 안에서의 구체적인 의미는 RNN이나 Transformer가 문맥을 반영하면서 형성합니다.
Next Chapter

문맥만으로 충분할까? 순서도 중요하다

주변 단어를 함께 봐야 한다는 사실을 이해했습니다. 하지만 같은 단어가 사용되어도 순서가 바뀌면 문장의 의미가 달라질 수 있습니다.

The dog bit the man. 개가 사람을 물었습니다.
The man bit the dog. 사람이 개를 물었습니다.
다음 장에서는 단어의 종류뿐 아니라 등장 순서가 왜 중요한지, 그리고 순서를 제거하면 어떤 정보가 사라지는지 살펴봅니다.
Summary

학습 내용 정리

  • 문맥은 현재 단어 주변의 단어와 문장 전체의 흐름입니다.
  • 같은 토큰도 문맥에 따라 서로 다른 의미로 사용될 수 있습니다.
  • 기본 임베딩 벡터만으로는 현재 문장에서의 정확한 의미를 결정하기 어렵습니다.
  • 부정 표현처럼 주변 단어 하나가 문장 전체의 의미를 바꿀 수도 있습니다.
  • 언어 모델은 각 토큰을 주변 토큰과 연결하여 문맥 관계를 계산해야 합니다.
  • 문맥을 반영한 표현은 RNN이나 Transformer를 통과하면서 만들어집니다.
  • 다음 장에서는 문맥과 함께 단어의 등장 순서가 중요한 이유를 살펴봅니다.