bag-of-wordsモデルは、自然言語処理や情報検索で用いられる単純化された表現である。このモデルでは、文や文書などのテキストは、その単語の多重集合として表現され、文法や語順は無視されるが、多重度は保持される。この名前は、テキストが単語の「袋」として見なせるという考えに由来し、構造は失われ、単語の数だけが重要となる。これは、テキスト分類、感情分析、文書検索などのタスクにおけるMachine learningやArtificial intelligenceの一般的なベースラインである。
仕組み
bag-of-words表現の構築は、トークン化、つまりテキストを個々の単語やトークンに分割するプロセスから始まる。通常、句読点は除去され、単語は小文字化されることが多い。次に、文書コーパス内に現れるすべての一意なトークンから語彙が構築される。各文書はカウントのベクトルに変換され、各次元は語彙内の単語に対応し、その値はその単語が文書内に現れる回数となる。このベクトルは疎であり、なぜならほとんどの文書は語彙のごく一部しか含まないからである。
例えば、「the cat sat on the mat」という文は、カウントを持つベクトルを生成する:「the」は2回現れ、「cat」、「sat」、「on」、「mat」はそれぞれ1回現れる。単語の順序は完全に無視されるため、「the cat sat」と「sat cat the」は同じ表現になる。この順序情報の喪失がモデルの主な限界であるが、同時に表現を単純で計算効率の良いものにしている。
応用と限界
bag-of-words表現は、Deep learningの台頭以前の古典的なMachine learningパイプラインで広く使用されていた。これらは、ロジスティック回帰、サポートベクターマシン、ナイーブベイズ分類器などのアルゴリズムの入力特徴として機能する。情報検索では、1975年にGerard Saltonとその同僚によって導入されたベクトル空間モデルが、文書とクエリをbag-of-wordsベクトルとして表現し、コサイン類似度で比較する。
このモデルにはいくつかの既知の限界がある。単語の順序を捉えることができないため、「not good」と「good not」のようなフレーズは同一に扱われる。また、意味論を無視する:「car」と「automobile」のような同義語は別々の次元として扱われる一方、「bank」のような多義語は混同される。結果として得られるベクトルは高次元で疎であり、語彙が大きい場合には過学習や汎化の低下につながる可能性がある。これらの問題を軽減するために、実務者はTF-IDF(term frequency-inverse document frequency)などの重み付けスキームを適用したり、n-gramを使用して短いシーケンスを捉えたりすることが多い。
変種と拡張
いくつかの拡張が、基本的なbag-of-wordsモデルの弱点に対処している。TF-IDFは、生のカウントを、一般的な単語を低く重み付けし、珍しい単語を強調する重みに置き換える。n-gramモデルは、袋をn個の単語の連続シーケンスを含むように拡張し、局所的な順序情報を一部保持する。ハッシュトリックは、ハッシュ関数を使用して単語を固定サイズのベクトルにマッピングし、語彙を保存する必要性を回避する。これらの手法は、特にラベル付きデータが不足している場合に、多くのアプリケーションで有用であり続けている。
もう一つの重要な拡張は、単語埋め込みの使用であり、これは単語を意味的類似性を捉える密な低次元ベクトルにマッピングする。bag-of-wordsとは異なり、埋め込みは単語間のいくつかの関係を保持する。しかし、埋め込みは通常、Neural network手法を使用して学習され、より多くのデータと計算を必要とする。bag-of-wordsモデルは強力なベースラインであり続ける:多くのテキスト分類タスクでは、bag-of-words特徴に対する線形分類器が、より複雑なモデルの性能に匹敵することができる。
現代のAIとの関係
Large language modelやTransformer (architecture)アーキテクチャの登場により、bag-of-words表現は複雑な自然言語理解タスクでは大部分が取って代わられた。2017年に導入されたtransformerアーキテクチャは、Positional Encodingを使用して単語順序情報を注入し、Multi-Head Attentionを使用してシーケンス内のすべての単語間の関係をモデル化する。これらのメカニズムにより、モデルはbag-of-words表現には見えない文脈や長距離依存関係を捉えることができる。Sequence-to-Sequence (Seq2Seq)やEncoder-Decoder Architectureなどのアーキテクチャも、カウントベースのベクトルではなく学習された埋め込みに依存している。
それでもなお、bag-of-wordsモデルは現代のAIに影響を与え続けている。これはハイブリッドシステムの特徴抽出ステップとしてよく使用され、その単純さから機械学習の概念を理解するための有用な教育的ツールとなっている。このモデルは、Generative AIアプリケーションでも、より洗練された表現を評価するためのベースラインとして登場する。Deep learningが進歩しても、bag-of-wordsモデルは自然言語処理の歴史における基本的な概念であり続けている。