AI・機械学習
テキスト分類のための言語モデル:Bag-of-wordsからJevまで
Language models for text classification: From bag-of-words to Jev (magazine.sebastianraschka.com)
要約
この記事は、テキスト分類における言語モデルの進化を、古典的なBag-of-words手法から最新のJevモデルまで辿ります。Bag-of-wordsが単語の出現頻度を基にテキストをベクトル化し、古典的な分類器で利用される方法を解説し、その限界(単語順序の喪失など)を指摘します。その後、RNNやCNNといったディープラーニングモデル、そしてTransformerベースのモデルへと進化する過程を説明し、Jevモデルがこれらの文脈の中で、高速かつ低コストで分類タスクを実行する利点を持つことを示唆しています。
全文翻訳
テキスト分類のための言語モデル:Bag-of-wordsからJevまで
Bag-of-words、RNN、CNN、Transformer、JevライクなAPI、およびキャリブレーションのビジュアルガイド
Sebastian Raschka, PhD
2026年9月29日 4203734 シェア
最近リリースされたJev AIモデルは、過去2週間で技術コミュニティにおいてかなりの文化的現象となっています。
Jevは物事を分類することを目的としていますが、Jevを「単なる分類器」として片付けるのは簡単です。そして、Jevに対する私の見解も過去数日間で大きく進化しました。特に、私の考えは「分類器はかつて私の得意分野だった。自分で簡単に構築できる」から(後述)「わあ、これは思ったよりもうまく機能する」へと変化しました。
図1:Jev APIの概要。詳細は後述。
確かに、最新のGPTやオープンウェイトLLMは、Jevと同様の分類タスクを実行でき、さらに汎用的な意思決定も可能です。しかし、Jevの利点は、それらの分類タスクをより高速かつ低コストで処理できることです。
一方で、狭く明確に定義された問題に対しては、Jevはおそらく専用の分類器よりも、速く、安く、良く分類することはできないでしょう。しかし、そのセールスポイントは、それらのタスク固有のモデルよりもはるかに汎用的であることです。
では、Jevの背後にある方法論(教育的な推測に基づく)は何であり、何ができ、なぜそれほど人気があるのでしょうか?この記事の後半でこれらすべてに答えることを目指します。しかし、意思決定のための言語モデルの簡単な歴史から始めるのが良い方法だと考えました。そして、それは誇大広告の一部を解明し、Jevが非常にうまく機能することを示すのに役立つでしょう(「Jevは本質的にテキスト分類器ですが、『Jevは単なるテキスト分類器ではない』」)。
PS:私はJevとは一切関係ありません。また、Jevへの無料アクセスも提供されておらず、これは製品の推奨でもなく、単にテキスト分類の歴史に関する洞察を提供し、最近の誇大広告を理解するのに役立つ技術記事です。
この記事は長いため、ブラウザで読むことをお勧めします。そこでは左側にある目次メニューにアクセスできます。
1. Transformer以前の言語モデリングと分類
完全を期すために、Jevを文脈(言葉遊びではありません)に入れる前に、時系列で始めるのが最も理にかなっていると考えました。このセクションでは、Transformerベースのモデルが登場する前の、ナイーブベイズ、ロジスティック回帰、そしてより古典的な(ディープ)ニューラルネットワークによる応用テキスト分類の簡単なツアーを行いたいと思います。
1.1 Bag-of-words:ナイーブベイズ、ロジスティック回帰、およびXGBoost
昔々、私が15年前に大学院生だった頃、リカレントニューラルネットワーク(後述)はすでに存在していましたが、テキスト分類は通常、Bag-of-words表現で行われていました。なぜなら、それは簡単で、中規模のデータセットで良好な結果を得ることができたからです。
簡単に言えば、Bag-of-words表現は、さまざまな長さの自由形式のテキスト入力を、固定サイズの入力ベクトルを期待する古典的な分類器(ナイーブベイズ、ロジスティック回帰、SVM、ランダムフォレスト、XGBoostなど)と互換性のあるものにする方法と考えることができます。
一般的な実世界のアプリケーションには、ニュース記事の分類からメールのスパムフィルタリングまで、あらゆるものが含まれます。そして、そうです、Gmailの元のスパムフィルタでさえ、Bag-of-words表現を使用したナイーブベイズモデルを使用していたと言われています。
余談ですが、私はちょうど12年前にこのアプローチについて書きました。それは私がarXivで共有した最初のものの1つでした。
図2:2014年の私の古いチュートリアルで、Bag-of-wordsモデルを使用したナイーブベイズ分類器を説明しています。
(ナイーブベイズによるテキスト分類は、少なくとも1961年まで遡り、コンピュータの抄録をソートするために使用されました。Automatic Indexing: And Experimental Inquiry論文を参照してください。)
では、このBag-of-words表現とは具体的に何でしょうか?それは、さまざまな長さの自由形式のテキストを、次のようなものに変換する方法です。
トレーニング例1:「Zentropaは私が長年見た中で最も独創的な映画です。フィルムノワールに影響されたユニークなスリラーが好きなら、これは最近劇場を埋め尽くしているハリウッドの夏のブロックバスターのまさに適切な治療法です。Von TrierのBreaking the Wavesのような続編はより称賛を得ていますが、これは本当に彼の最高傑作です。」
トレーニング例2:「この映画はただひどいだけです。John Ritterがドタバタコメディを演じ、俳優の75%がキューカードから読んでいるかのようにセリフを読み上げ、編集が悪く、サウンドミキシングがひどい」
トレーニング例3:「Zentropaは、戦後ヨーロッパの瓦礫の中で設定された別のノワール風映画であるThe Third Manと多くの共通点があります。」
それを、前述の「古典的」な分類器のための固定サイズの表現に変換します。(上記の例は、人気のIMDb映画レビュー分類データセットからの抜粋です。)
図3:Bag-of-words表現のイラスト。
Bag-of-wordsモデルは、まず語彙を構築することから始まります。語彙は、トレーニングセット内のすべてのユニークな単語で構成されます(オプションで、ほとんどの文脈で意味がほとんどまたは全くない単語であるストップワード(例:「a」、「the」)を除去できます)。
Bag-of-words表現は、語彙内の各単語にベクトル内の独自の位置を割り当てることで、これらの固定サイズの入力を生成します。次に、各単語がドキュメント内でどれだけ頻繁に出現するかをカウントします。たとえば、50,000のユニークな単語の語彙がある場合、入力が10語であろうと300K語であろうと、50,000エントリの固定サイズのベクトルが生成されます。各ドキュメントは語彙のごく一部しか含んでいないため、ほとんどのエントリはゼロであることに注意してください。(生のカウントを表現する代わりに、TF-IDFのような正規化スキームもあります。)
次に、これらの単語頻度ベクトルが得られたら、スパムまたは非スパムとしてラベル付けされた電子メールのような、ラベル付きトレーニングセットで分類器をトレーニングできます。たとえば、ロジスティック回帰モデルは、特定の単語(および単語数)を特定のラベルと相関させる特徴重みを学習します。たとえば、特定の単語は予測されたスパム確率を増加させ、他の単語はそれを減少させる可能性があります。
このアプローチは計算コストが低く、特定の単語がラベルについて強力な手がかりを提供する場合にうまく機能します。スパム分類のような単純な分類タスクでは、迅速で合理的に正確な結果を得るのに十分なことがよくあります。
しかし、このアプローチの最大の欠点の1つは、Bag-of-words表現の性質上、単語の順序を失うことです。したがって、たとえば、「犬が男を噛む」と「男が犬を噛む」は、異なるイベントを説明しているにもかかわらず、同一のベクトルを生成します。
(特徴として単語のペアや、n-gramと呼ばれるより長いシーケンスを追加することで、一部のローカル順序を保持するための回避策がありますが、これは語彙サイズを増加させます。)
欠点にもかかわらず、私はBag-of-wordsがその安価さから特定の低リスクアプリケーションでその場を持っているとまだ考えています。そして、Bag-of-words表現+ロジスティック回帰は、実装が非常に簡単であるため、すべてのテキスト分類問題に対する私のベースラインとして依然として使用しています。
図4:単純なロジスティック回帰分類器の構築に興味がある方のために、ここにチュートリアルがあります。このモデルは89.9%の精度(バランスの取れたデータセットで)を達成します。
1.2 テキスト分類のためのディープニューラルネットワーク
前述のBag-of-wordsモデルは、(単純な)ディープニューラルネットワーク、例えば多層パーセプトロンでも機能します。しかし、欠点は依然として、文の構造と単語の順序を失うことです。
しかし、より洗練されたニューラルネットワークアーキテクチャは、Bag-of-wordsの回避策を回避します。それは、単語埋め込みを入力として取ることができる畳み込みニューラルネットワーク(CNN)とリカレントニューラルネットワーク(RNN)です。
1.2.1 単語埋め込み
まず、入力テキストをモデルに供給する前に、適切な表現に変換する必要があります。そのような表現の1つがBag-of-wordsです。もう1つは単語埋め込みベクトルです。違いは、Bag-of-wordsベクトルが語彙内の各単語の出現頻度をカウントすることによってテキスト全体を表すのに対し、単語埋め込みは個々の単語をベクトルとして表すことです。