n-gram(エヌグラム)とは
n-gramとは、文章を「連続するn個のまとまり」に区切ってとらえる、言語モデルの古典的な考え方です。「エヌグラム」と読み、前のいくつかの単語から次の単語を予測する、シンプルながら長く使われてきた手法を指します。
前の単語から次を当てる仕組み
2つ続きなら「バイグラム」、3つ続きなら「トライグラム」と呼びます。「今日は良い」の次に来やすい単語を、過去の大量の文章での出現頻度から予測する、という発想です。スマートフォンの予測変換や、検索窓のオートコンプリートの素朴な原型が、このn-gramだといえます。
ニューラルモデルへの橋渡し
手軽な一方、n-gramには弱点もありました。少し離れた単語どうしの関係をとらえにくく、組み合わせが増えすぎると扱いきれなくなるのです。やがて、より長い文脈を扱えるニューラルネットワーク型の言語モデルやTransformerへと、主役が移っていきました。それでも「前の言葉から次を予測する」という発想そのものは、いまの大規模言語モデルにも受け継がれています。
Topicシャノンが作った「意味不明な英文」
n-gramの歴史は古く、情報理論の父クロード・シャノンが1951年に論じています。初期のn-gramで英文を自動生成すると、「in no ist lat whey cratict froure…」のような、単語になりきらない意味不明の文字列が現れました。それでも、文字の並びの「英語らしさ」はちゃんと再現されていたのです。確率で言葉を組み立てるこの発想は、いまのなめらかなAI文章の、ずっと遠い祖先にあたります。
関連用語
n-gramに関するよくある質問
- n-gramはどうやって次の単語を当てるのですか?
- 過去の大量の文章での出現頻度から、「今日は良い」の次に来やすい単語を予測します。2つ続きなら「バイグラム」、3つ続きなら「トライグラム」と呼び、スマホの予測変換や検索窓のオートコンプリートの素朴な原型がこのn-gramです。
- n-gramと今の大規模言語モデルはどう関係しますか?
- n-gramは少し離れた単語どうしの関係をとらえにくく、組み合わせが増えすぎると扱いきれない弱点があり、より長い文脈を扱えるニューラルネットワークやTransformerへ主役が移りました。それでも「前の言葉から次を予測する」という発想自体は、今のLLMにも受け継がれています。
- n-gramはいつからある考え方ですか?
- 古く、情報理論の父クロード・シャノンが1951年に論じています。初期のn-gramで英文を生成すると「in no ist lat whey cratict froure...」のような意味不明の文字列が現れましたが、文字の並びの「英語らしさ」は再現されていました。確率で言葉を組み立てるこの発想は、今のなめらかなAI文章の遠い祖先です。