문서의 각 단락이 어느 리비전에서 마지막으로 수정되었는지 확인할 수 있습니다. 왼쪽의 정보 칩을 통해 작성자와 수정 시점을 파악하세요.

N-gram | |
개념 | 연속된 N개의 항목(일반적으로 단어나 문자) 시퀀스 |
주요 용도 | 자연어 처리, 통계적 언어 모델링, 정보 검색, 유전체학 |
N의 의미 | 시퀀스의 길이를 나타내는 숫자 |
상세 정보 | |
예시 (단어 기반) | Unigram(1-gram): "자연어", "처리" / Bigram(2-gram): "자연어 처리" / Trigram(3-gram): "자연어 처리 모델" |
예시 (문자 기반) | Bigram: "자", "연", "어" / Trigram: "자연", "연어" |
응용 분야 | 맞춤법 검사, 기계 번역, 음성 인식, 검색어 자동 완성, 문서 분류 |
장점 | 구현이 비교적 간단하고, 문맥 정보를 일정 수준 포착 가능 |
단점 | N이 커질수록 데이터 희소성 문제 발생, 장기 의존성 포착 한계 |
데이터 희소성 | 훈련 데이터에 나타나지 않은 N-gram은 확률을 추정하기 어려움 |
평활화 | 데이터 희소성 문제를 완화하기 위한 기법 (예: 라플라스 평활화) |
N-gram 언어 모델 | 이전 N-1개의 항목이 주어졌을 때 다음 항목의 확률을 예측하는 통계적 모델 |
관련 개념 | Bag-of-words, Markov 가정 |

N-gram은 텍스트나 시퀀스 데이터에서 연속적으로 등장하는 N개의 항목을 하나의 단위로 취급하는 개념이다. 여기서 항목은 일반적으로 단어나 문자를 의미하며, N은 시퀀스의 길이를 나타내는 숫자이다. 이 방법은 데이터의 국소적인 패턴을 통계적으로 분석하는 데 유용하며, 특히 자연어 처리와 통계적 언어 모델링의 기초를 이룬다.
주요 용도는 자연어 처리와 정보 검색, 유전체 분석 등 다양하다. 예를 들어, "자연어 처리"라는 문장에서 단어 기반 2-gram(bigram)은 ["자연어", "처리"]로 추출된다. 이렇게 생성된 N-gram은 텍스트의 빈도 분석, 언어 모델 구축, 다음 단어 예측, 문서 분류 등 여러 작업에 활용된다.
N-gram 모델은 마르코프 가정에 기반하여, 한 항목의 출현 확률이 바로 앞의 N-1개의 항목에만 의존한다고 가정한다. 이 단순한 가정 덕분에 모델 구현과 계산이 비교적 간단하며, 적은 양의 데이터로도 효율적으로 적용할 수 있다. 이러한 특징으로 인해 초기 언어 모델 및 패턴 인식 기술의 핵심 요소로 자리 잡았다.
N의 크기에 따라 unigram, bigram, trigram 등으로 불리며, N이 커질수록 더 긴 문맥을 고려할 수 있지만, 데이터 희소성 문제가 두드러진다. 이 모델은 정보 검색의 색인 생성, 맞춤법 검사, 유전체 서열 분석 등 다양한 계산 언어학 및 데이터 과학 분야에서 폭넓게 응용되고 있다.

Unigram은 N-gram의 가장 기본적인 형태로, N이 1인 경우를 가리킨다. 즉, 텍스트나 시퀀스를 구성하는 각각의 개별 항목(단어, 문자, 음절 등) 그 자체를 의미한다. 예를 들어 "자연어 처리"라는 문장을 단어 단위의 unigram으로 분리하면 ["자연어", "처리"]가 된다. 이는 시퀀스 내 항목들의 순서나 조합을 전혀 고려하지 않으며, 각 항목을 독립적인 사건으로 취급한다.
Unigram 모델은 언어 모델의 일종으로, 텍스트에서 각 단어의 출현 확률을 독립적으로 계산한다. 이 모델은 단어의 등장 빈도만을 기반으로 하기 때문에, "나는 학교에 간다"와 "학교에 나는 간다"를 확률적으로 동일한 문장으로 판단할 수 있다. 이는 마르코프 가정을 적용하지 않은 가장 단순한 형태의 통계적 모델이다.
주로 자연어 처리의 초기 단계인 텍스트 분류나 정보 검색에서 문서를 표현하는 기본적인 특징(feature)으로 활용된다. 또한, unigram 빈도 분석은 특정 문서나 말뭉치에서 가장 자주 등장하는 키워드를 추출하는 데 유용하게 쓰인다.
바이그램은 연속된 두 개의 항목으로 구성된 시퀀스이다. N-gram 모델에서 N이 2인 경우에 해당하며, 텍스트에서 인접한 두 단어의 쌍을 의미한다. 예를 들어 "자연어 처리는 재미있다"라는 문장에서 바이그램은 ["자연어 처리", "처리는", "는 재미있다"]와 같이 추출될 수 있다. 이는 단어의 등장 패턴을 단일 단어보다 더 풍부한 문맥 정보를 가지고 파악할 수 있게 해준다.
바이그램은 언어 모델링에서 매우 기본적이면서도 중요한 구성 요소로 사용된다. 단어의 등장 확률을 계산할 때, 특정 단어의 출현 확률을 바로 앞의 한 단어에만 의존하여 추정하는 마르코프 모델의 일종이다. 이는 문장의 유창함을 평가하거나 다음에 올 단어를 예측하는 데 활용된다. 또한 정보 검색 시스템에서는 검색어의 바이그램을 색인하여 문서와의 연관성을 더 정확히 측정하기도 한다.
바이그램 모델은 구현이 비교적 간단하고 계산 효율이 높다는 장점이 있다. 그러나 언어의 장기 의존성을 포착하기에는 한계가 있으며, 훈련 데이터에 등장하지 않은 바이그램 쌍에 대해서는 확률을 제대로 추정하지 못하는 희소 문제가 발생할 수 있다. 이러한 한계를 보완하기 위해 다양한 평활화 기법이 적용된다.
Trigram은 N-gram의 한 종류로, 연속된 세 개의 항목으로 구성된 시퀀스를 가리킨다. 자연어 처리에서는 주로 세 개의 연속된 단어나 문자를 의미한다. 예를 들어, "자연어 처리는 재미있다"라는 문장에서 "자연어 처리는", "처리는 재미있다"가 trigram에 해당한다. 이는 Bigram (2-gram)보다 더 긴 문맥을 고려할 수 있어, 언어 모델링에서 단어의 등장 확률을 더 정확하게 예측하는 데 도움을 준다.
Trigram 모델은 마르코프 가정을 기반으로 하며, 특정 단어의 출현 확률을 바로 앞의 두 단어에만 의존한다고 가정한다. 이는 계산 복잡성과 데이터 희소성 문제 사이에서 실용적인 균형을 찾은 모델이다. 고차원 N-gram에 비해 필요한 훈련 데이터의 양이 상대적으로 적지만, Unigram이나 Bigram보다는 훨씬 풍부한 문맥 정보를 제공한다.
Trigram은 자연어 처리의 다양한 하위 작업, 특히 언어 모델링과 텍스트 생성에서 중요한 역할을 한다. 또한 맞춤법 검사 및 오타 교정 시스템에서도 단어 시퀀스의 정상성을 판단하는 데 활용된다. 그러나 훈련 코퍼스에 존재하지 않는 trigram이 등장하는 경우 확률 추정이 어려워지는 데이터 희소성 문제는 여전히 남아 있다.
고차원 N-gram은 N이 4 이상인 경우를 가리킨다. 예를 들어 4-gram(quadgram), 5-gram(quintgram) 등이 여기에 속한다. 이러한 고차원 N-gram은 더 긴 문맥 정보를 포착할 수 있어, 앞서 언급된 단어나 문자의 패턴을 더 정교하게 모델링하는 데 사용된다.
그러나 N이 커질수록 발생하는 주요 문제는 데이터 희소성이다. 훈련 데이터에서 특정한 고차원 N-gram이 한 번도 등장하지 않을 가능성이 매우 높아지며, 이는 모델의 일반화 성능을 저하시킨다. 또한 모델이 필요로 하는 파라미터의 수와 계산 복잡도가 기하급수적으로 증가한다는 실용적인 한계도 존재한다.
이러한 한계 때문에 실제 자연어 처리나 언어 모델링에서는 3-gram이나 4-gram 수준을 넘어서는 경우가 드물다. 고차원 N-gram을 효과적으로 활용하기 위해서는 평활화 기법을 적용하거나, 백오프와 같은 추정 방법을 사용하여 희소한 데이터를 보완하는 전략이 필요하다.
고차원 N-gram은 특정 도메인, 예를 들어 유전체 분석이나 매우 정형화된 전문 텍스트에서 더 긴 시퀀스 패턴이 중요한 경우에 유용하게 적용될 수 있다.

N-gram의 생성 방법은 주어진 텍스트나 시퀀스에서 연속된 N개의 항목을 순차적으로 추출하는 과정이다. 일반적으로 단어나 문자 단위로 수행되며, 슬라이딩 윈도우 방식을 사용한다. 예를 들어, "자연어 처리 모델"이라는 문장을 단어 단위로 2-gram을 생성한다면, "자연어 처리"와 "처리 모델"이라는 두 개의 바이그램이 만들어진다. 이때 윈도우는 한 항목씩 이동하며 모든 가능한 연속된 조합을 생성한다.
생성 과정은 간단한 알고리즘으로 구현할 수 있다. 먼저, 원본 텍스트를 토큰화하여 항목의 리스트를 만든다. 이후 리스트의 시작부터 (전체 길이 - N + 1)의 인덱스까지 반복문을 실행하며, 현재 인덱스부터 N개의 항목을 하나의 N-gram으로 묶어 저장한다. 이 방법은 언어 모델을 구축하기 위한 통계적 데이터를 수집하는 기본 단계가 된다.
생성 시 고려사항으로는 N의 크기와 토큰화의 기준이 있다. N이 커질수록 생성되는 시퀀스의 수는 줄어들고 문맥 정보는 풍부해지지만, 데이터 희소성 문제가 심화될 수 있다. 또한, 단어 N-gram을 생성할 때는 공백이나 구두점을 기준으로 토큰을 나누지만, 문자 N-gram의 경우에는 공백과 구두점 자체도 하나의 문자 토큰으로 포함시킬지 여부를 결정해야 한다.
생성된 N-gram 목록은 빈도수를 계산하여 확률 모델을 만드는 데 직접 사용되거나, 정보 검색 시스템에서 문서의 특징을 표현하는 데 활용된다. 이 기본적인 생성 방법은 자연어 처리의 다양한 하위 작업에 적용되는 핵심 전처리 과정이다.

N-gram은 자연어 처리 분야에서 가장 기본적이고 널리 사용되는 언어 모델 중 하나이다. 이 모델은 텍스트 데이터에서 연속적으로 등장하는 N개의 단어 또는 문자 시퀀스를 추출하고, 그 등장 빈도를 기반으로 언어의 통계적 패턴을 학습한다. 이를 통해 단어 시퀀스의 확률을 예측하거나, 텍스트의 특징을 추출하는 데 활용된다.
자연어 처리에서 N-gram은 주로 언어 모델링에 사용된다. 예를 들어, 음성 인식 시스템은 N-gram 모델을 사용하여 여러 후보 문장 중 가장 그럴듯한 문장을 선택한다. 기계 번역에서는 번역된 문장의 자연스러움을 평가하는 데 활용되며, 자동 완성이나 맞춤법 검사 기능은 N-gram을 기반으로 다음에 올 가능성이 높은 단어를 추천하거나 오타를 교정한다.
또한, 텍스트 분류나 정보 검색에서도 N-gram은 중요한 역할을 한다. 문서를 유니그램, 바이그램, 트라이그램 등의 특징 벡터로 표현하면, 문서 간 유사도를 계산하거나 스팸 메일 필터링, 감정 분석 같은 작업을 수행할 수 있다. 이는 복잡한 의미 분석보다는 단어의 등장 패턴이라는 비교적 단순한 통계 정보에 기반하지만, 여전히 효과적인 방법으로 평가받는다.
N-gram 모델은 구현이 간단하고 계산 효율이 높아 자연어 처리의 초기 단계나 제한된 컴퓨팅 자원 환경에서 유용하게 쓰인다. 그러나 장기적인 의존성을 포착하지 못하는 한계가 있어, 최근에는 순환 신경망이나 트랜스포머 기반의 신경망 언어 모델로 대체되는 추세이다.
정보 검색 분야에서 N-gram은 검색 질의와 문서 간의 유사도를 측정하거나, 색인어를 생성하는 데 활용된다. 특히, 사용자의 검색어가 긴 문장이거나 오타가 포함된 경우, N-gram 기반 접근법은 유연한 매칭을 가능하게 한다.
예를 들어, "자연어 처리"라는 문서를 색인할 때, Bigram(2-gram) 방식으로 "자연어", "연어처", "어처리"와 같은 연속된 두 글자의 조합을 색인어로 저장할 수 있다. 이렇게 하면 사용자가 "자연 언어 처리"라고 검색하거나 "자연어처리"라고 띄어쓰기를 잘못 입력했을 때도, 공통된 N-gram 토큰을 통해 관련 문서를 찾아낼 가능성이 높아진다.
이 기법은 단순히 단어 단위 매칭에 의존하는 전통적인 검색 방식의 한계를 보완한다. 철자 오류가 있는 질의나, 복합어, 신조어 처리에 효과적이며, 문서의 핵심 어구를 추출하는 데에도 사용될 수 있다. 따라서 검색 엔진의 회수율을 향상시키는 중요한 기술 중 하나로 평가받는다.
N-gram은 유전체 분석에서도 중요한 도구로 활용된다. 특히 DNA나 RNA와 같은 생물학적 서열 데이터에서 특정 패턴이나 마커를 찾는 데 유용하다. 유전체는 A, T, G, C로 구성된 긴 문자열로 볼 수 있으며, 여기서 추출한 N-gram(예: 3-gram은 코돈에 해당)은 유전자 예측, 서열 정렬, 종 간 비교 연구 등에 활용된다.
예를 들어, 특정 길이의 오프닝 리딩 프레임을 찾거나, 반복되는 서열 마커를 식별할 때 N-gram 빈도 분석이 적용된다. 또한, 차세대 염기서열 분석 기술로 생성된 대량의 짧은 리드 서열을 조립하거나 참조 유전체에 매핑하는 과정에서도 N-gram 기반의 빠른 색인과 검색 알고리즘이 사용된다.
N-gram은 맞춤법 검사 및 오타 교정 시스템에서 핵심적인 역할을 한다. 이러한 시스템은 일반적으로 사용자가 입력한 단어나 문장을 분석하여, 사전에 정의된 올바른 단어 시퀀스와 비교한다. N-gram 모델은 특히 문맥을 고려한 교정에 유용한데, 예를 들어 "애플 주스"라는 올바른 표현이 훈련 데이터에서 자주 등장했다면, 사용자가 "에플 주스"라고 잘못 입력했을 때 이를 인식하고 수정 제안을 할 수 있다.
맞춤법 검사에서는 주로 문자 수준의 N-gram이 활용된다. 단어 내부의 문자 시퀀스를 분석하여, 특정 철자 조합이 일반적으로 얼마나 자주 나타나는지를 통계적으로 파악한다. 이를 통해 "accommodate"와 같은 단어에서 흔히 발생하는 오타("acommodate")를 잡아낼 수 있다. 문자 N-gram은 단어 사전에 없는 신조어나 고유명사의 오타를 감지하는 데도 도움을 준다.
오타 교정 시스템은 단어 수준의 N-gram 모델과 결합되어 더 정교한 작업을 수행한다. 사용자가 "나는 학교에 간다" 대신 "나는 학교에 간다"와 같이 조사에서 오타를 냈다고 가정해 보자. Bigram 또는 Trigram 모델은 "학교에"와 "간다" 사이의 결합 확률이 "학교에"와 "간다" 사이의 결합 확률보다 훨씬 높다는 것을 학습 데이터를 통해 알고 있기 때문에, 문맥상 더 적합한 후자를 제안할 수 있다.
이러한 접근법의 효과는 대규모의 정제된 텍스트 코퍼스에 기반한 N-gram 통계의 정확도에 크게 의존한다. 최근에는 신경망 언어 모델이나 Transformer 기반 모델이 더 넓은 문맥을 이해하며 성능을 크게 향상시켰지만, N-gram은 여전히 가볍고 해석이 용이한 기법으로 특정 환경에서 유용하게 쓰인다.

N-gram 모델은 구현이 단순하고 계산 효율이 높다는 장점이 있다. 모델 구조가 직관적이기 때문에 이해하기 쉽고, 비교적 적은 계산 자원으로도 빠르게 학습과 추론이 가능하다. 이는 초기 자연어 처리 연구나 제한된 자원 환경에서 큰 장점으로 작용한다.
또한 N-gram은 통계적 언어 모델의 기본이 되는 접근법으로, 충분한 양의 텍스트 데이터가 주어지면 단어 시퀀스의 출현 확률을 효과적으로 추정할 수 있다. 이를 통해 언어 모델링, 정보 검색 시스템의 질의 확장, 맞춤법 검사 및 오타 교정 등 다양한 응용 분야에 활용될 수 있다.
특히 작은 N(예: bigram, trigram)을 사용할 경우, 모델이 지역적인 문맥 의존성을 잘 포착한다. 이는 인접한 단어들 사이의 강한 연관성을 기반으로 한 예측을 가능하게 하여, 문장 내에서의 단어 선택이나 기본적인 문법 구조 모델링에 실용적이다.
마지막으로, N-gram은 단어뿐만 아니라 문자, 음절, 또는 다른 종류의 토큰 시퀀스에도 동일한 원리로 적용될 수 있는 일반성을 가진다. 이러한 유연성 덕분에 자연어 처리를 넘어 유전체 분석과 같은 생물정보학 분야에서 DNA 서열 분석에도 널리 사용된다.
N-gram 모델은 몇 가지 명확한 단점을 가지고 있다. 가장 큰 문제는 데이터 희소성 문제이다. N이 커질수록 가능한 N-gram의 종류는 기하급수적으로 증가하지만, 실제 훈련 코퍼스에서 관측되는 N-gram은 극히 일부에 불과하다. 이로 인해 훈련 데이터에 한 번도 등장하지 않은 N-gram에 대한 확률 추정이 불가능해지며, 이는 모델의 일반화 성능을 크게 저해한다.
또 다른 단점은 문맥 길이의 한계이다. N-gram 모델은 마르코프 가정에 기반하여, 특정 항목의 등장 확률을 직전 (N-1)개의 항목에만 의존한다. 이는 장기 의존성을 포착하지 못한다는 것을 의미한다. 예를 들어, 3-gram 모델은 현재 단어를 예측할 때 오직 앞의 두 단어만을 고려하므로, 문장의 시작 부분이나 문단 전체의 흐름과 같은 더 넓은 문맥 정보는 활용할 수 없다.
계산 및 저장 측면에서도 비효율적일 수 있다. 가능한 모든 N-gram의 확률을 저장하려면 N이 커짐에 따라 필요한 메모리 공간이 폭발적으로 증가한다. 이는 실용적인 모델 구축에 제약을 준다. 또한, 단순한 통계에 기반하기 때문에 단어의 의미나 문법적 구조, 동의어 관계와 같은 심층적인 언어학적 지식을 전혀 반영하지 못한다는 근본적인 한계도 있다.

N-gram 모델의 성능을 평가하는 데에는 주로 퍼플렉서티라는 지표가 사용된다. 퍼플렉서티는 언어 모델이 테스트 데이터를 얼마나 잘 예측하는지를 측정하는 지표이다. 수치가 낮을수록 모델이 테스트 데이터의 단어 시퀀스를 더 정확하게 예측하고 있다는 것을 의미하며, 이는 모델의 성능이 좋음을 나타낸다.
퍼플렉서티는 테스트 데이터에 대한 모델의 확률을 기하평균의 역수로 계산한다. 간단히 말해, 모델이 다음 단어를 예측할 때 평균적으로 몇 개의 선택지 사이에서 망설이고 있는지를 나타낸다고 볼 수 있다. 예를 들어, 퍼플렉서티가 10이라면 모델은 매 단계마다 평균 10개의 동등하게 가능한 후보 단어 중에서 선택해야 하는 상황에 놓여 있다고 해석할 수 있다.
이 평가는 주로 언어 모델의 일반화 능력을 확인하기 위해 사용된다. 즉, 모델이 학습 데이터에만 과도하게 적응(과적합)되지 않고, 처음 보는 새로운 문장에도 얼마나 잘 적용되는지를 판단하는 기준이 된다. 따라서 N-gram 모델의 차수(N)를 결정하거나, 평활화 기법의 효과를 비교할 때 중요한 척도로 활용된다.
퍼플렉서티 외에도 특정 응용 분야에서는 정확도, 재현율, F1 점수 등의 지표를 함께 사용하여 모델의 실용적 성능을 평가하기도 한다.
N-gram 모델은 훈련 데이터에 없는 시퀀스의 확률을 0으로 추정하는 희소 데이터 문제를 겪는다. 이를 해결하기 위해 평활화 기법이 사용된다. 평활화는 관찰되지 않은 N-gram에 대해 작은 확률 값을 할당하여 모델의 일반화 성능을 높이는 방법이다.
가장 기본적인 방법은 라플라스 평활화이다. 이는 모든 N-gram의 빈도에 1을 더하는 방식으로, 관찰되지 않은 사건에도 균일한 작은 확률을 부여한다. 하지만 이 방법은 실제로 가능성이 없는 시퀀스에도 확률을 할당하여 모델 성능을 저하시킬 수 있다. 이를 보완하기 위해 굿-튜링 평활화가 개발되었다. 굿-튜링 평활화는 관찰된 빈도를 기반으로 관찰되지 않은 사건의 확률을 더 정교하게 추정한다. 즉, 한 번 관찰된 사건의 빈도를 이용해 관찰되지 않은 사건의 빈도를 추정하는 방식이다.
더 발전된 방법으로는 백오프와 인터폴레이션이 있다. 백오프는 고차원 N-gram의 확률을 계산할 때 정보가 부족하면 저차원 N-gram의 확률로 되돌아가서 보완하는 전략이다. 예를 들어, 특정 트라이그램이 훈련 데이터에 없으면 해당 바이그램과 유니그램의 확률을 조합하여 추정한다. 인터폴레이션은 여러 차원의 N-gram 모델(예: 유니그램, 바이그램, 트라이그램)의 확률을 가중치를 두고 선형 결합하는 방식이다. 이때 가중치는 검증 데이터를 통해 최적화한다.
이러한 평활화 기법들은 언어 모델이 훈련 데이터의 제한을 넘어서 보다 유연하고 정확한 확률 추정을 가능하게 하며, 현대의 복잡한 신경망 언어 모델이 등장하기 전까지 통계적 언어 모델링의 핵심 기법으로 자리 잡았다.

언어 모델은 주어진 단어 시퀀스의 확률을 계산하거나, 다음에 올 단어를 예측하는 것을 목표로 하는 모델이다. 이는 기계 번역, 음성 인식, 맞춤법 검사, 검색어 자동 완성 등 다양한 자연어 처리 응용 분야의 핵심 구성 요소로 사용된다. N-gram은 이러한 언어 모델을 구현하는 가장 기본적이고 전통적인 통계적 접근법 중 하나이다.
N-gram 언어 모델은 마르코프 가정에 기반하여, 전체 문장의 확률을 계산할 때 모든 과거 단어를 고려하는 대신, 바로 앞의 N-1개의 단어만을 고려한다. 예를 들어, 빅램 모델은 각 단어의 등장 확률을 바로 앞의 한 단어에만 의존하여 계산한다. 이렇게 단순화된 가정 덕분에 모델의 복잡도와 계산 비용을 크게 낮추면서도 어느 정도의 언어적 패턴을 포착할 수 있다.
N-gram 언어 모델은 대량의 텍스트 데이터로부터 각 N-gram의 등장 빈도를 세어 확률을 추정하는 방식으로 학습된다. 그러나 이 방식은 훈련 데이터에 존재하지 않는 N-gram에 대해 확률을 0으로 추정하는 희소 문제를 야기한다. 이를 해결하기 위해 다양한 평활화 기법이 개발되어 왔다.
최근에는 순환 신경망이나 트랜스포머와 같은 신경망 언어 모델이 발전하면서, 장기적인 문맥 의존성을 더 잘 포착할 수 있게 되었다. 그러나 N-gram 모델은 여전히 계산 효율성이 높고 구현이 간단하여, 자원이 제한된 환경이나 빠른 프로토타이핑에서 유용하게 활용된다.
N-gram 모델의 이론적 배경에는 마르코프 가정이 깔려 있다. 마르코프 가정은 어떤 시점의 상태가 그 직전의 유한한 개수의 상태에만 의존한다는 가정이다. 즉, 미래는 오직 현재에 의해 결정되며, 과거의 긴 역사는 필요하지 않다는 것이다.
이를 자연어 처리의 언어 모델에 적용하면, 특정 단어의 출현 확률을 예측할 때 그 단어의 바로 앞에 등장한 N-1개의 단어만 고려하면 된다는 의미로 해석된다. 예를 들어, 트라이그램 모델은 마르코프 가정을 기반으로, 세 번째 단어의 확률을 첫 번째와 두 번째 단어가 주어진 조건에서만 계산한다. 이는 복잡한 언어 현상을 단순화하여 계산 가능하게 만드는 핵심적인 전제이다.
따라서 N-gram 모델은 본질적으로 마르코프 가정 위에 구축된 언어 모델이다. N의 크기가 커질수록 더 많은 문맥을 반영할 수 있지만, 그만큼 필요한 데이터의 양은 기하급수적으로 증가하고 희소 문제가 심화된다. 이는 마르코프 가정의 한계, 즉 너무 짧은 문맥만을 고려함으로써 발생하는 현실 언어의 장기 의존성 문제를 보여주는 예시이기도 하다.
신경망 언어 모델은 기존의 통계적 N-gram 모델의 한계를 극복하기 위해 등장한 접근법이다. N-gram 모델은 고정된 길이의 이전 단어 시퀀스에만 의존하는 반면, 신경망 언어 모델은 단어를 저차원의 연속적인 벡터(임베딩)로 표현하고, 순환 신경망(RNN)이나 트랜스포머(Transformer) 같은 구조를 사용해 가변 길이의 문맥 정보를 효과적으로 학습한다. 이를 통해 훨씬 더 긴 범위의 단어 의존성을 포착할 수 있으며, 희소 데이터 문제를 완화하는 데 도움이 된다.
초기 신경망 언어 모델은 피드포워드 신경망을 사용해 제한된 N개의 이전 단어를 입력으로 받아 다음 단어를 예측했다. 이후 등장한 순환 신경망(RNN)과 그 변형인 LSTM, GRU는 시퀀스의 순차적 정보를 처리하는 데 특화되어, 이론적으로 무한한 길이의 문맥을 고려할 수 있는 가능성을 열었다. 그러나 여전히 장기 의존성 학습에는 어려움이 있었으며, 계산 효율성도 문제로 지적되었다.
이러한 한계를 극복한 것이 트랜스포머 아키텍처 기반의 모델들이다. 어텐션 메커니즘을 핵심으로 하는 이 모델들은 입력 시퀀스의 모든 위치에 있는 단어들 간의 관계를 병렬적으로 계산하여, 장거리 의존성을 훨씬 효과적으로 포착한다. BERT나 GPT 같은 대규모 사전 학습 언어 모델은 이러한 트랜스포머 구조를 바탕으로 구축되어, 다양한 자연어 처리 과제에서 혁신적인 성능을 보여주었다.
신경망 언어 모델의 발전은 단순한 다음 단어 예측을 넘어 기계 번역, 질의응답 시스템, 텍스트 요약 등 복잡한 언어 이해 및 생성 작업의 기반이 되었다. 이는 통계적 언어 모델의 패러다임을 근본적으로 변화시켰으며, 현재 인공지능 자연어 처리 분야의 핵심을 이루고 있다.
