n-gram은 주어진 텍스트나 음성 표본에서 추출한 n개 항목의 연속된 시퀀스이다. 항목은 문자, 음절, 단어, 음소, 또는 게놈의 염기쌍과 같은 생물학적 서열일 수도 있다. n-gram은 텍스트 코퍼스나 음성 코퍼스에서 수집되며, 통계적 자연어 처리의 기초가 되어 모델이 순차 데이터에서 국소적 패턴과 의존성을 포착할 수 있게 한다.
이 용어는 라틴어 숫자 접두사에서 유래했다. 유니그램은 한 항목의 시퀀스, 바이그램(또는 다이그램)은 두 항목, 트라이그램은 세 항목의 시퀀스를 의미하며, 그 이상의 크기에서는 포-그램이나 파이브-그램과 같은 영어 기수 표현이 사용된다. 계산 생물학에서는 유사한 서열을 k-mer라고 부르며, 모노머, 다이머, 트라이머 같은 그리스어 접두사나 원-머, 투-머 같은 영어 형태를 사용한다. 항목이 단어인 경우 n-gram은 때때로 싱글이라고도 불린다.
역사적 발전
언어에서 n-gram 모델의 개념은 1951년 클로드 섀넌이 정보 이론의 맥락에서 논의하면서 시작되었다. 섀넌은 문자 수준 및 단어 수준 n-gram 모델이 관찰된 시퀀스의 확률 분포에서 샘플링하여 그럴듯한 영어 텍스트를 생성할 수 있음을 보여주었다. 예를 들어, 3-gram 문자 모델은 "in no ist lat whey cratict froure birs grocid pondenome"과 같은 텍스트를 생성할 수 있고, 2-gram 단어 모델은 "the head and in frontal attack on an english writer"와 같은 텍스트를 생성할 수 있다. 이러한 초기 실험은 n-gram을 언어를 통계적으로 모델링하는 실용적인 도구로 확립했다.
자연어 처리에서의 응용
자연어 처리에서 n-gram은 bag of words 모델이 그렇지 않으면 손실될 단어 순서 정보를 포착할 수 있게 한다. 전통적인 bag-of-words 표현은 문서를 순서 없는 단어 집합으로 취급하지만, n-gram 특징은 국소적 맥락을 보존한다. 이러한 능력은 언어 모델링, 맞춤법 교정, 기계 번역, 텍스트 분류와 같은 작업에 필수적이다. n-gram 언어 모델은 앞선 n-1개 단어가 주어졌을 때 특정 단어의 확률을 추정하며, 신경망의 등장 이전 많은 통계적 접근법의 기초를 형성했다.
트랜스포머 아키텍처로 구축된 현대의 대규모 언어 모델은 많은 작업에서 명시적 n-gram 모델을 대체했지만, n-gram은 저자 식별, 문체 측정, 생물정보학과 같은 영역에서 여전히 관련성이 있다. 수백만 권의 디지털화된 책에서 n-gram 빈도를 도표화하는 Google Books Ngram Viewer는 문화 및 언어 분석에서의 지속적인 유용성을 보여준다.
계산 생물학
유전체학에서 k-mer(n-gram의 생물학적 등가물)는 DNA 및 RNA 서열을 분석하는 데 사용된다. k-mer는 길이 k의 연속된 부분 서열이며, k-mer 빈도 분석은 게놈 조립, 서열 정렬, 품질 관리의 표준 기법이다. 예를 들어, DNA 시퀀싱 프로젝트의 알고리즘은 종종 k-mer 분포를 사용하여 오류를 감지하거나 게놈 크기를 추정한다. k의 선택은 민감도와 특이도에 영향을 미친다. 더 작은 k-mer는 더 풍부하지만 덜 특이적이고, 더 큰 k-mer는 더 고유한 일치를 제공하지만 시퀀싱 오류로 인해 없을 수 있다.
통계적 속성과 변형
n-gram 모델은 애드-원 스무딩이나 Kneser-Ney 스무딩과 같은 고급 기법을 포함한 스무딩을 통해 보이지 않는 시퀀스를 처리할 수 있다. 또한 Google n-gram 코퍼스에서 볼 수 있듯이 빈도로 가중치를 부여할 수 있으며, "serve as the independent"(794회 발생) 또는 "ceramics collectables fine"(130회 발생)과 같은 구문의 개수를 제공한다. 이러한 빈도 분포는 확률적 예측을 가능하게 하며, 예측 텍스트 입력에서 음성 인식에 이르는 응용 프로그램에 사용된다.
한계와 확장
n-gram의 주요 한계는 고정된 창 크기를 넘어서는 장거리 의존성을 포착하지 못한다는 점이다. n을 증가시키면 맥락이 개선되지만, 많은 가능한 시퀀스가 훈련 데이터에 나타나지 않으므로 데이터 희소성이 발생한다. 이를 해결하기 위해 연구자들은 백오프 모델, 보간법, 분산 표현을 학습하는 신경 언어 모델을 개발했다. 그럼에도 불구하고 n-gram은 단순하고 해석 가능한 기준선으로 남아 있으며, 머신 러닝 방법과 함께 하이브리드 시스템에서 자주 사용된다.
텍스트와 음성 외에도 n-gram은 음악 분석에 적용되어 음표나 코드의 시퀀스를 항목으로 취급하며, 네트워크 보안에서 패킷 시퀀스의 이상 징후를 감지하는 데 사용된다. 그 일반성은 순차 데이터를 다루는 다양한 분야에서 다재다능한 도구로 만든다.