P1-11.1 통계적 언어 모델(statistical language model)과 임베딩(embedding)¶
Section ID:
P1-11.1Version:v2026.07.20
10장에서는 생성형 AI(generative AI)가 산출물을 만들 때 자연스러움, 사실성, 근거, 위험을 따로 검토해야 한다는 점을 봤습니다.
이제 질문을 한 단계 앞으로 돌립니다.
LLM은 어디에서 왔는가?
여기서는 LLM(large language model)을 바로 Transformer로 설명하지 않습니다. 먼저 LLM 이전에 언어를 다루던 두 가지 흐름을 설명합니다.
언어를 확률로 다루는 흐름 언어를 벡터로 표현하는 흐름
이 두 흐름이 합쳐지면 다음 관점이 생깁니다.
언어 모델은 단어와 토큰의 순서를 확률적으로 다루고, 임베딩은 단어와 토큰을 계산 가능한 벡터 표현으로 바꾼다.
Part 1에서 언어 모델(language model), 통계적 언어 모델(statistical language model), n-gram, 데이터 희소성(sparsity), 분산 표현(distributed representation), 임베딩(embedding), word2vec의 기본 구분은 이 절에서 잡습니다. 직접 계보(direct lineage)와 언어 모델링(language modeling)의 큰 지도는 9.3에서 먼저 잡았고, 다음 출력 생성의 직관은 10.2에서 이미 봤습니다. 여기서는 그 흐름을 LLM 이전의 언어 모델과 벡터 표현 수준에서 다시 시작합니다.
여기서는 LLM의 전체 역사를 설명하지 않습니다. RNN(recurrent neural network), LSTM(long short-term memory), Seq2Seq(sequence-to-sequence), Attention, Transformer는 11.2와 11.3에서 다룹니다.
언어 모델, n-gram, 희소성, 분산 표현, 임베딩, word2vec은 초반에 모두 비슷한 NLP 기초 용어처럼 들릴 수 있습니다. 우선 각 용어의 역할을 짧게 구분하면 다음과 같습니다.
| 용어 | 아주 짧은 뜻 | 이 절에서의 역할 |
|---|---|---|
| 언어 모델 | 다음 단어나 토큰의 가능성을 다루는 모델 | Chapter 11의 출발점 |
| n-gram | 가까운 n개 단위를 보는 짧은 문맥 모델 | 초기 통계적 접근의 대표 |
| 희소성 | 드문 조합이 많아 확률 추정이 어려운 문제 | n-gram의 핵심 한계 |
| 분산 표현 | 단어를 여러 숫자 차원에 걸쳐 표현하는 방식 | 기호 표현을 벡터로 바꾸는 관점 |
| 임베딩 | 단어·토큰을 조밀한 벡터로 놓는 표현 | 이후 LLM 계산의 입력 기반 |
| word2vec | 임베딩을 널리 각인시킨 대표 학습 방식 | 분산 표현의 실용적 사례 |
여기서 유지해야 할 최소 구분은 언어 모델은 다음 말 확률, n-gram은 짧은 문맥, 임베딩은 벡터 표현입니다.
여기서는 다음 세 가지에 집중합니다.
| 주제 | 이 절에서 볼 질문 |
|---|---|
| 언어 모델(language model) | 앞의 단어를 보고 다음 단어의 가능성을 어떻게 계산하는가? |
| n-gram 언어 모델(n-gram language model) | 짧은 문맥의 빈도로 다음 단어 확률을 어떻게 추정하는가? |
| 임베딩(embedding) | 단어와 토큰을 어떻게 벡터 공간(vector space)에 놓는가? |
이 절의 목적은 “수식을 완전히 이해하기”가 아닙니다. 언어를 확률과 벡터로 다루는 사고방식이 왜 LLM으로 이어지는지 감을 잡는 것입니다.
또한 여기서는 RNN, Attention, Transformer를 아직 설명하지 않습니다. 그 구조적 흐름은 11.2와 11.3에서 따로 다루고, 여기서는 언어를 확률적으로 다룬다와 단어를 벡터로 바꾼다는 두 출발점에만 집중합니다.
언어를 확률과 벡터로 다루는 기준¶
- 언어 모델(language model)을 다음 단어 또는 다음 토큰의 확률을 다루는 모델로 이해합니다.
- n-gram 언어 모델이 짧은 문맥과 빈도(count)를 사용한다는 점을 봅니다.
- n-gram의 한계가 데이터 희소성(sparsity), 문맥 길이, 단어 유사성 문제와 연결됨을 이해합니다.
- 분산 표현(distributed representation)과 임베딩(embedding)을 단어를 벡터로 표현하는 방법으로 이해합니다.
- 임베딩이 사전적 정의가 아니라, 데이터 안의 사용 맥락에서 학습된 표현임을 구분합니다.
- LLM을 “갑자기 나온 챗봇”이 아니라 언어 모델링과 벡터 표현의 누적 위에서 읽습니다.
세 가지 기준¶
여기서는 LLM을 바로 Transformer로 설명하지 않고, 그 전에 있었던 언어 처리 사고방식을 복구하는 데 집중합니다. 아래 세 가지 기준이 잡히면 흐름이 정리됩니다.
| 기준 | 왜 중요한가 | 이 절에서 필요한 이해 수준 |
|---|---|---|
| 언어 모델은 다음 단어 또는 토큰의 가능성을 다루는 문제라는 점 | LLM의 가장 기본적인 질문이 무엇인지 보여 줍니다. | 앞 문맥을 보고 다음 말을 얼마나 그럴듯한지 계산한다고 이해하면 됩니다. |
| n-gram은 짧은 문맥의 빈도로 언어를 다루려 했다는 점 | 초기 언어 모델의 장점과 한계를 함께 보여 줍니다. | 가까운 몇 개 단어만 보고 다음 단어를 추정했다고 알면 됩니다. |
| 임베딩은 단어를 벡터로 표현하는 방식이라는 점 | 뒤의 토큰, 표현, 벡터 검색 설명으로 이어집니다. | 단어를 사전 뜻이 아니라 계산 가능한 위치로 바꾼다고 이해하면 됩니다. |
언어 모델은 다음 말을 맞히는 문제에서 출발한다¶
언어 모델(language model)은 문장이나 단어열(word sequence)에 확률을 부여하거나, 앞의 문맥(context)을 보고 다음 단어 또는 토큰(token)의 가능성을 계산하는 모델입니다.
예를 들어 다음 문장을 봅니다.
나는 아침에 따뜻한 ___
사람은 빈칸에 커피, 차, 국, 물 같은 후보를 떠올릴 수 있습니다. 자동차나 법원도 문법적으로 완전히 불가능한 단어는 아니지만, 일반적인 말뭉치(corpus)에서는 앞 문맥과 덜 어울릴 가능성이 큽니다.
언어 모델은 이 직관을 계산 문제로 바꿉니다.
P(커피 | 나는 아침에 따뜻한 ...) P(차 | 나는 아침에 따뜻한 ...) P(자동차 | 나는 아침에 따뜻한 ...)
여기서 중요한 점은 언어 모델이 처음부터 “의미를 이해했다”고 선언하지 않는다는 것입니다. 먼저 언어 모델은 관찰된 언어 데이터에서 어떤 단어열이 더 그럴듯한지, 다음에 어떤 단어가 나올 가능성이 높은지를 계산합니다.
n-gram은 짧은 문맥으로 확률을 근사한다¶
n-gram은 연속된 n개의 단위입니다. 단위는 문자(character), 단어(word), 토큰(token)이 될 수 있습니다. 여기서는 단어 n-gram으로 생각해도 됩니다.
unigram: 나는 bigram: 나는 / 아침에 trigram: 나는 / 아침에 / 커피를
n-gram 언어 모델(n-gram language model)은 다음 단어의 확률을 전체 문맥이 아니라 짧은 이전 문맥으로 근사합니다. 예를 들어 bigram 모델은 바로 앞 단어 하나만 보고 다음 단어의 확률을 추정합니다.
전체 문맥: 나는 아침에 따뜻한 ___
bigram 근사: 따뜻한 ___
매우 작은 예시를 만들어 보겠습니다.
나는 커피를 마신다 나는 차를 마신다 나는 커피를 좋아한다
이 말뭉치에서 나는 다음에 나온 단어를 세면 다음과 같습니다.
| 앞 단어 | 다음 단어 | 횟수 |
|---|---|---|
| 나는 | 커피를 | 2 |
| 나는 | 차를 | 1 |
그러면 단순한 bigram 확률은 다음처럼 생각할 수 있습니다.
이 예시는 실제 언어 모델을 단순화한 것입니다. 하지만 핵심은 분명합니다.
문장을 규칙 목록으로만 처리하는 대신, 말뭉치에서 관찰된 빈도를 바탕으로 다음 단어의 가능성을 계산한다.
n-gram의 한계는 LLM 이전의 중요한 문제였다¶
n-gram은 직관적이고 강력한 출발점이지만 한계가 있습니다.
첫째, 문맥이 짧습니다. bigram은 바로 앞 단어 하나만 보고, trigram은 앞 두 단어만 봅니다. n을 키우면 더 긴 문맥을 볼 수 있지만, 필요한 조합 수가 빠르게 늘어납니다.
둘째, 데이터 희소성(sparsity)이 생깁니다. 현실의 문장은 매우 다양합니다. 학습 말뭉치에 한 번도 나오지 않은 단어 조합은 확률이 0처럼 보일 수 있습니다. 그래서 smoothing, backoff, interpolation 같은 방법이 필요했습니다.
셋째, 단어 사이의 유사성을 잘 일반화하지 못합니다.
고양이가 우유를 마신다 개가 우유를 마신다
사람은 고양이와 개가 동물이라는 점을 이용해 비슷한 문맥을 떠올릴 수 있습니다. 하지만 단순 n-gram은 고양이와 개가 비슷하다는 사실을 자동으로 공유하지 못합니다. 관찰된 문자열 조합을 중심으로 계산하기 때문입니다.
이 한계가 신경망 언어 모델(neural language model)과 임베딩(embedding)의 필요성으로 이어집니다.
분산 표현은 단어를 벡터로 놓는다¶
분산 표현(distributed representation)은 하나의 단어를 하나의 기호로만 보지 않고, 여러 숫자 값으로 이루어진 벡터(vector)로 표현하는 방식입니다.
가장 단순한 기호 표현은 one-hot 표현(one-hot representation)입니다.
one-hot 표현은 단어를 구분하기에는 좋습니다. 하지만 고양이와 개가 고양이와 커피보다 더 비슷하다는 정보를 직접 담지는 않습니다.
임베딩(embedding)은 단어를 더 낮은 차원의 조밀한 벡터(dense vector)로 표현합니다.
숫자 자체를 사람이 바로 해석할 필요는 없습니다. 중요한 것은 비슷한 문맥에서 쓰이는 단어들이 벡터 공간에서 가까워질 수 있다는 점입니다.
비슷한 문맥에서 쓰인다 -> 비슷한 벡터 표현을 갖도록 학습된다 -> 모델이 비슷한 단어 사이에서 일반화할 수 있다
word2vec은 임베딩을 널리 각인시킨 사례다¶
word2vec은 단어 임베딩(word embedding)을 널리 알린 중요한 사례입니다. Mikolov 등의 2013년 논문은 큰 데이터에서 연속적인 벡터 표현(continuous vector representation)을 효율적으로 학습하는 구조를 제안했습니다.
대표적인 두 방식은 다음과 같습니다.
| 방식 | 직관 |
|---|---|
| CBOW(continuous bag-of-words) | 주변 단어를 보고 가운데 단어를 예측한다. |
| Skip-gram | 현재 단어를 보고 주변 단어를 예측한다. |
예를 들어 다음 문장이 있다고 합시다.
나는 아침에 커피를 마신다
CBOW는 나는, 아침에, 마신다 같은 주변 정보를 보고 커피를을 맞히는 식으로 생각할 수 있습니다. Skip-gram은 반대로 커피를을 보고 주변에 어떤 단어가 올 가능성이 높은지 맞히는 식으로 볼 수 있습니다.
여기서 핵심은 “사전에 적힌 뜻”을 직접 입력하지 않는다는 점입니다. 모델은 단어가 어떤 문맥에서 함께 나타나는지 보고 벡터 표현을 학습합니다.
단어의 뜻을 사람이 직접 정의한다
가 아니라,
단어가 쓰이는 맥락을 보고 계산에 유용한 위치를 벡터 공간에서 학습한다
에 가깝습니다.
심볼릭과 끊어진 것이 아니라 층위(level)가 달라진다¶
여기서 기호 기반 AI(symbolic AI)와의 관계를 조심해서 봐야 합니다.
임베딩은 기호를 없애 버린 것이 아닙니다. 텍스트는 여전히 단어, 부분 단어, 토큰 같은 구분 가능한 단위로 나뉩니다. 이 단위들은 어휘(vocabulary) 안에서 식별됩니다. 다만 모델 내부에서는 그 단위를 one-hot ID 그대로만 쓰지 않고, 계산 가능한 벡터 표현으로 바꿉니다.
기호 또는 토큰: 구분 가능한 입력 단위
임베딩: 그 단위를 계산 가능한 벡터로 바꾼 표현
따라서 더 안전한 설명은 다음입니다.
LLM은 기호 기반 AI를 단순히 대체한 것이 아니다. 텍스트의 기호적 단위를 토큰으로 구분하고, 그 토큰을 벡터 표현으로 바꾸어 확률적 언어 모델링에 사용한다.
이 관점은 앞에서 다룬 기호(symbol), 라벨(label), 특징(feature), 표현(representation)과 이어집니다. 다만 임베딩은 사람이 정한 명시적 의미표가 아니라, 데이터에서 학습된 수치 표현입니다.
LLM으로 이어지는 연결¶
현대 LLM도 이 절의 두 흐름을 이어받습니다.
| 이전 흐름 | LLM에서 이어지는 관점 |
|---|---|
| 언어 모델링(language modeling) | 다음 토큰 후보의 확률 분포를 계산한다. |
| n-gram의 한계 | 더 긴 문맥과 더 나은 일반화가 필요하다. |
| 분산 표현(distributed representation) | 토큰을 벡터로 표현해 모델 내부 계산에 사용한다. |
| 임베딩(embedding) | 입력 토큰을 임베딩 공간으로 보낸 뒤 여러 층의 계산을 거친다. |
다만 현대 LLM의 임베딩은 word2vec 같은 정적 임베딩(static embedding)만으로 설명되지 않습니다. Transformer 계열 모델에서는 문맥에 따라 표현이 달라지는 문맥적 표현(contextual representation)이 중요합니다. 이 내용은 11.3과 Part 5에서 다시 다룹니다.
여기서 기억할 연결은 다음입니다.
n-gram: 짧은 문맥의 빈도로 다음 단어를 예측
신경망 언어 모델: 단어 표현과 다음 단어 확률을 함께 학습
임베딩: 단어와 토큰을 벡터 공간에 놓아 일반화 가능성을 높임
LLM: 대규모 데이터와 신경망 구조로 긴 문맥에서 다음 토큰 분포를 계산하고 출력을 생성
체크리스트¶
- 언어 모델(language model)을 다음 단어 또는 다음 토큰의 확률을 다루는 모델로 설명할 수 있다.
- n-gram이 짧은 문맥의 빈도에 기반한다는 점을 설명할 수 있다.
- n-gram의 한계를 데이터 희소성, 짧은 문맥, 단어 유사성 일반화 문제로 설명할 수 있다.
- 임베딩(embedding)을 단어와 토큰을 벡터로 표현하는 방법으로 설명할 수 있다.
- word2vec의 CBOW와 Skip-gram을 아주 간단한 직관으로 구분할 수 있다.
- 임베딩이 사전적 정의가 아니라 데이터에서 학습된 표현임을 설명할 수 있다.
- 기호와 임베딩을 대체 관계가 아니라 다른 층위(level)의 표현으로 구분할 수 있다.
다음 토큰 예측을 설명할 때 언어 모델, n-gram, 임베딩의 앞단 흐름을 함께 연결할 수 있다.다음 말의 가능성을 계산하는 문제,짧은 문맥 빈도 기반 근사,단어를 벡터 공간에 놓는 표현을 구분해 설명할 수 있다.
출처와 참고 자료¶
- Daniel Jurafsky, James H. Martin, Speech and Language Processing, Chapter 3: N-gram Language Models, draft of 2026-01-06, 확인 날짜: 2026-06-23.
- Daniel Jurafsky, James H. Martin, Speech and Language Processing, Chapter 6: Neural Networks and Neural Language Models, draft of 2026-01-06, 확인 날짜: 2026-06-23.
- Yoshua Bengio, Rejean Ducharme, Pascal Vincent, Christian Jauvin, A Neural Probabilistic Language Model, Journal of Machine Learning Research, 2003, 확인 날짜: 2026-06-23.
- Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean, Efficient Estimation of Word Representations in Vector Space, arXiv, 2013, 확인 날짜: 2026-06-23.
- Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, Jeffrey Dean, Distributed Representations of Words and Phrases and their Compositionality, arXiv, 2013, 확인 날짜: 2026-06-23.