임베딩까지 만들었는데, 무엇이 더 필요할까?
앞 장까지 문장을 토큰으로 나누고, Token ID를 통해 각 토큰의 임베딩 벡터를 가져오는 과정을 살펴보았습니다.
문맥(Context)이란?
문맥은 단어의 앞뒤에 놓인 다른 단어와 문장 전체의 흐름을 의미합니다. 사람은 단어 하나만 따로 읽기보다 주변 표현을 함께 살펴보며 의미를 판단합니다.
은행인지 강둑인지 알 수 없습니다. 가능한 의미가 여러 개 남아 있습니다.
deposited와 money가 함께 등장하므로
금융 기관인 은행을 뜻한다는 것을 알 수 있습니다.
같은 단어도 문맥에 따라 의미가 달라진다
두 문장의 bank는 같은 토큰이므로
Embedding Table에서 Lookup한 기본 벡터도 같을 수 있습니다.
그러나 문장 안에서 실제로 나타내는 의미는 다릅니다.
한국어도 문맥이 필요하다
같은 글자와 발음을 가진 단어라도, 주변 동사와 수식어에 따라 의미가 달라집니다.
주변 단어가 의미를 바꾸는 과정 확인하기
아래 항목을 선택하면 같은 중심 단어가 문맥에 따라 어떻게 다른 의미로 해석되는지 확인할 수 있습니다.
bank가 은행을 뜻하는 문장
주변 단어 하나가 문장 전체 의미를 바꿀 수 있다
모델이 good이라는 토큰만 본다면 두 번째 문장도 긍정적으로 잘못 판단할 수 있습니다.
앞에 나온 not을 함께 고려해야 문장의 실제 의미를 이해할 수 있습니다.
언어 모델이 해결해야 하는 질문
bank = 은행 / 강둑?
not + good
she → Jane / Sarah?
The cat sat on the ...
기본 임베딩과 문맥을 반영한 표현은 다르다
같은 Token ID는 같은 기본 임베딩 벡터를 가져옵니다.
주변 단어를 반영하면 각 문장 속 bank가 서로 다른 표현으로 바뀔 수 있습니다.
문맥만으로 충분할까? 순서도 중요하다
주변 단어를 함께 봐야 한다는 사실을 이해했습니다. 하지만 같은 단어가 사용되어도 순서가 바뀌면 문장의 의미가 달라질 수 있습니다.
학습 내용 정리
- 문맥은 현재 단어 주변의 단어와 문장 전체의 흐름입니다.
- 같은 토큰도 문맥에 따라 서로 다른 의미로 사용될 수 있습니다.
- 기본 임베딩 벡터만으로는 현재 문장에서의 정확한 의미를 결정하기 어렵습니다.
- 부정 표현처럼 주변 단어 하나가 문장 전체의 의미를 바꿀 수도 있습니다.
- 언어 모델은 각 토큰을 주변 토큰과 연결하여 문맥 관계를 계산해야 합니다.
- 문맥을 반영한 표현은 RNN이나 Transformer를 통과하면서 만들어집니다.
- 다음 장에서는 문맥과 함께 단어의 등장 순서가 중요한 이유를 살펴봅니다.