モデル・技術

N-gramとは?直前n語だけで次を当てる——文脈の短い古典言語モデル

読み:エヌグラム / 英:N-gram

更新日: 読了目安:約6分

N-gramは、直前のn個程度の語だけを手がかりに次の語の確率を推定する古典的言語モデルです。LLMが長い文脈と巨大パラメータで生成するのに対し、N-gramは「ごく短い記憶のマルコフ近似」——本記事は平滑化の式より、「なぜ試験でLLMと混同されるのか」に焦点を当てます。

nとは何か

N-gramの n は、連続する語(または文字)の個数です(G-334)。

名称n例(文:私は学校へ)
ユニグラム1「私」「は」「学校」…(単語の出現頻度)
バイグラム2「私は」「は学校」「学校へ」
トライグラム3「私は学校」「は学校へ」

語順の局所パターンを数える単位——Bag of Wordsが袋の中で順序を捨てるのに対し、N-gramは隣り合った並びを保持します。

次の語を予測する

生成AIパスポートの定番定義は次の一文です(HQ-0798HQ-0703)。

直前のn個程度の語をもとに、次の語の確率を考える言語モデル

コーパス内の出現回数から条件付き確率を推定します——「学校」の次に「へ」が来る確率は、「学校」の直前に何があったか(n-gramの文脈)で変わる、というイメージです。

  • 学習 — 大規模テキストでN-gramのカウントを集める
  • 推定 — カウントから次語確率を計算(平滑化でゼロ頻度を回避)
  • 生成 — 確率に従って語を1つずつ選ぶ(自己回帰的だが表現は単純)

短い文脈の限界

nを大きくすれば長い依存を捉えられますが、可能なN-gramの組み合わせは爆発し、稀疏(まばら)なデータになります。だからnは2〜3程度に留めることが多く、遠い前文は見えない——古典N-gramの構造的限界です。

現代のLLMTransformerで長い文脈を扱い、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=トークナイザ

演習で確認する

G検定:G-334G-332

生成AIパスポート:HQ-0798HQ-0703HQ-0741

すり替えに注意

誤った説明正しい理解
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の特徴表現ですが、順序の扱いが異なります。