N-gramは、直前のn個程度の語だけを手がかりに次の語の確率を推定する古典的言語モデルです。LLMが長い文脈と巨大パラメータで生成するのに対し、N-gramは「ごく短い記憶のマルコフ近似」——本記事は平滑化の式より、「なぜ試験でLLMと混同されるのか」に焦点を当てます。
nとは何か
N-gramの n は、連続する語(または文字)の個数です(G-334)。
| 名称 | n | 例(文:私は学校へ) |
|---|---|---|
| ユニグラム | 1 | 「私」「は」「学校」…(単語の出現頻度) |
| バイグラム | 2 | 「私は」「は学校」「学校へ」 |
| トライグラム | 3 | 「私は学校」「は学校へ」 |
語順の局所パターンを数える単位——Bag of Wordsが袋の中で順序を捨てるのに対し、N-gramは隣り合った並びを保持します。
次の語を予測する
生成AIパスポートの定番定義は次の一文です(HQ-0798、HQ-0703)。
直前のn個程度の語をもとに、次の語の確率を考える言語モデル
コーパス内の出現回数から条件付き確率を推定します——「学校」の次に「へ」が来る確率は、「学校」の直前に何があったか(n-gramの文脈)で変わる、というイメージです。
- 学習 — 大規模テキストでN-gramのカウントを集める
- 推定 — カウントから次語確率を計算(平滑化でゼロ頻度を回避)
- 生成 — 確率に従って語を1つずつ選ぶ(自己回帰的だが表現は単純)
短い文脈の限界
nを大きくすれば長い依存を捉えられますが、可能なN-gramの組み合わせは爆発し、稀疏(まばら)なデータになります。だからnは2〜3程度に留めることが多く、遠い前文は見えない——古典N-gramの構造的限界です。
現代のLLMはTransformerで長い文脈を扱い、BPEで語彙を柔軟に分割——N-gramはLMの歴史の出発点として理解するのが試験向きです(HQ-0741のLMとLLMの関係)。
BoW・BPE・LLMとの違い
| 用語 | 何をするか | 試験向けの一言 |
|---|---|---|
| N-gram | 短い文脈で次語確率 | 古典言語モデル |
| BoW | 語の出現回数ベクトル | 順序をほぼ失う文書表現(G-332) |
| 単語埋め込み | 語を固定長ベクトルに | 意味の近さを表現(G-334の対比) |
| BPE | サブワードでトークン化 | LLMの前処理。LMそのものではない |
| LLM | 大規模ニューラルで生成 | 多数パラメータ。N-gramではない |
HQ-0703・HQ-0741の誤答パターン——「大規模データと多数パラメータのLLM」——はLLMの定義をN-gramにすり替えたもの。主語と説明の対応を確認すると外しやすくなります。
試験で押さえるポイント
- 定義 — 直前n語程度から次の語の確率を推定する言語モデル
- 単位 — 連続n個の語の並び(バイグラム・トライグラム等)
- 位置づけ — 古典LM。LLMではない
- 対比 — BoW=袋、埋め込み=ベクトル、BPE=トークナイザ
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| N-gram=LLM | 古典カウント型LM vs 大規模ニューラルLM |
| N-gram=BoW | 局所順序あり vs 語順ほぼなし |
| N-gram=BPE | 言語モデル vs トークン分割手法 |
| N-gram=RAG | 確率モデル vs 外部検索して渡す |
| N-gram=画像のn分割 | NLP用語 vs 画像パッチ(別文脈) |
よくある質問
N-gramは何をする言語モデルですか?
直前のn個程度の語を文脈として、次に来る語の確率を推定する言語モデルです。バイグラムなら直前1語、トライグラムなら直前2語を見て次語を予測します。大規模パラメータのニューラルLLMとは設計が異なる古典的LMです。
N-gramとLLMは同じですか?
同じではありません。N-gramは短い文脈と出現カウントに基づく古典的言語モデルです。LLMは大規模データと多数のパラメータを持つニューラルネットベースの大規模言語モデルです。生成AIパスポートではこのすり替えが頻出します。
N-gramとBag of Wordsは同じですか?
同じではありません。N-gramは連続する語の並び(局所の順序)を扱い、次語予測などに使います。Bag of Wordsは文書内の語の出現有無や回数を袋に入れた表現で、語順をほぼ失います。どちらもNLPの特徴表現ですが、順序の扱いが異なります。