ステップ 2.5: モデルを選択する

この時点でデータセットを組み立て、データの主な特性についての分析情報を得ました。次に、ステップ 2 で収集した指標に基づいて、どの分類モデルを使用すべきかを検討します。次のような問いかけをします。

  • 数値入力を必要とするアルゴリズムにテキストデータを提示するにはどうすればよいですか。(これをデータの前処理とベクトル化と呼びます)。
  • どのタイプのモデルを使用すればよいですか。
  • このモデルに使用すべき構成パラメータは何ですか。

数十年にわたる研究により、膨大なデータ前処理やモデル構成のオプションを利用することができました。ただし、実行可能なオプションが非常に多いと、特定の問題の複雑さと範囲が大幅に増加する可能性があります。最適な選択肢が明白ではない可能性があるため、単純な解決策は、直感によって可能なすべての選択肢を徹底的に試し、一部の選択肢を切り詰めることです。その場合 多大な費用がかかります

このガイドでは、テキスト分類モデルの選択プロセスを大幅に簡素化することを目指します。特定のデータセットについて、トレーニングに必要な計算時間を最小限に抑えながら、最大の精度に近いアルゴリズムを見つけることが目標です。12 のデータセットを使用し、異なるデータ前処理手法と異なるモデル アーキテクチャでデータセットごとに交互に、さまざまなタイプの問題(特に感情分析とトピック分類の問題)にわたって多数のテスト(約 45 万)を実行しました。これにより、最適な選択に影響を与えるデータセット パラメータを特定できました。

以下のモデル選択アルゴリズムとフローチャートは、テストの概要です。以下のセクションでは、これらの用語について詳しく解説します。

データ準備とモデル構築のアルゴリズム

  1. サンプル数/サンプル比あたりの単語数を計算します。
  2. この比率が 1, 500 未満の場合、テキストを N グラムとしてトークン化し、シンプルな多層パーセプトロン(MLP)モデルを使用して分類します(以下のフローチャートの左のブランチ)。
    1. サンプルを単語の N-gram に分割し、N-gram をベクトルに変換します。
    2. ベクトルの重要度をスコア付けし、そのスコアを使用して上位 20,000 を選択します。
    3. MLP モデルを構築する。
  3. 比率が 1, 500 を超える場合は、テキストをシーケンスとしてトークン化し、sepCNN モデルを使用して分類します(以下のフローチャートの右分岐)。
    1. サンプルを単語に分割し、頻度に基づいて上位 20,000 の単語を選択します。
    2. サンプルを単語シーケンス ベクトルに変換する。
    3. 元のサンプル数/サンプルあたりの単語数の比率が 15, 000 未満の場合、sepCNN モデルでファインチューニングされた事前トレーニング済みエンベディングを使用すると、最適な結果が得られる可能性があります。
  4. さまざまなハイパーパラメータ値でモデルのパフォーマンスを測定し、データセットに最適なモデル構成を見つけます。

以下のフローチャートの黄色いボックスは、データとモデルの準備プロセスを示しています。グレーのボックスと緑色のボックスは、各プロセスで検討した選択肢を示します。緑色のボックスは、各プロセスで推奨される選択肢を示します。

このフローチャートは、低い計算費用で高い精度を実現できるため、最初のテストを作成する際の出発点として使用できます。その後のイテレーションで、初期モデルを継続的に改善できます。

テキスト分類のフローチャート

図 5: テキスト分類のフローチャート

このフローチャートは、次の 2 つの疑問に答えます。

  1. どの学習アルゴリズムまたはモデルを使用すればよいですか。
  2. テキストとラベルの関係を効率的に学習するには、どのようにデータを準備すればよいですか。

2 番目の質問に対する回答は、最初の質問に対する回答によって異なります。モデルにフィードするデータの前処理方法は、選択するモデルによって異なります。モデルは、大きく 2 つのカテゴリに分類できます。語順情報を使用するモデル(シーケンス モデル)と、テキストを単語の「バッグ」(N グラムモデル)として捉えるモデルです。シーケンス モデルの種類には、畳み込みニューラル ネットワーク(CNN)、再帰型ニューラル ネットワーク(RNN)、およびそのバリエーションがあります。N グラムモデルには次の種類があります。

Google のテストから、「サンプル数」(S)と「サンプルあたりの単語数」(W)の比率は、どのモデルのパフォーマンスが高いかと相関していることがわかっています。

この比率の値が小さい(1,500 未満)場合、N グラムを入力として受け取る小さな多層パーセプトロン(オプション A と呼びます)は、シーケンス モデルと同様に優れたパフォーマンスを発揮します。MLP は定義と理解が簡単で、シーケンス モデルよりも計算時間が大幅に短くなります。この比率の値が大きい(1,500 以上)場合は、シーケンス モデルを使用します(オプション B)。以下の手順では、サンプル/サンプルあたりの単語数の割合に基づいて選択したモデルタイプに関連するサブセクション(A または B というラベル)にスキップできます。

IMDb レビュー データセットの場合、サンプル数/サンプルあたりの単語数の比率は約 144 です。これは MLP モデルを作成することを意味します。