実践的な考慮事項
データ生成パイプラインを再現可能にする。特徴を追加して、それがモデルの品質にどのように影響するかを確認するとします。公平なテストを行うには、この新機能を除き、データセットは同じにする必要があります。データ生成の実行が再現できない場合は、これらのデータセットを作成することはできません。
その意味で、データ生成のランダム化は決定論的に行えるようにしてください。
- 乱数ジェネレータ(RNG)をシードします。シーディングを行うと、RNG を実行するたびに同じ順序で同じ値が出力され、データセットが再作成されます。
- 不変ハッシュキーを使用します。ハッシュ化は、データを分割またはサンプリングするための一般的な方法です。各例をハッシュして、結果の整数値を使用して、サンプルを配置する分割を決定できます。ハッシュ関数の入力は、データ生成プログラムを実行するたびに変更されることはありません。ハッシュをオンデマンドで再作成する場合など、ハッシュまたは現在の時刻を乱数に使用しないでください。
上記のアプローチは、データのサンプリングと分割の両方に適用されます。
ハッシュ化に関する考慮事項
ここでも、検索クエリを収集し、ハッシュを使用してクエリを含めたり除外したりします。ハッシュキーがクエリのみを使用していた場合は、数日間のデータで、そのクエリを常に含めるか、常に除外します。クエリを常に含めるか、常に除外するのは不適切です。理由は次のとおりです。
- トレーニング セットには、あまり一般的ではないクエリセットが表示されます。
- 評価セットはトレーニング データと重複しないため、人為的に難しくなります。実際には、サービス提供時にはトレーニング データの一部にライブ トラフィックがあるため、その点を評価に反映する必要があります。
その代わりに、クエリと日付に基づいてハッシュできます。これにより、毎日異なるハッシュになります。