はじめに
機械学習モデルを公開した後、「入力されるデータが以前と違ってきた」と気付くことがあります。モデルを変えていないのに、利用者や商品の構成が変わるだけで、学習時とは異なるデータが届く場合があるのです。
このような入力データの分布の変化を捉える考え方が、データドリフトです。ただし、データが変わったからといって、モデルの予測精度が必ず下がるわけではありません。この記事では、変化の見つけ方と、検知した後に何を確認すべきかを具体例で整理します。
この記事で分かること
- データドリフトとモデルの精度低下の違い
- 入力データの分布変化を比較して見つける方法
- 変化を検知した後、再訓練などの対策をどう判断するか
データドリフトとは?
データドリフトとは、機械学習モデルに入力されるデータの統計的な分布が、過去の基準から変わることです。例えば、購入を予測するモデルで、利用者の年齢層や購入金額の分布が以前と違ってきた状況が該当します。
ここでいう「分布」は、ある値がどれくらい現れるかという割合や広がりを意味します。年齢層のような分類項目では各グループの割合、購入金額のような数値項目では中央値や値のばらつきなどに着目します。
比較の基準は、学習に使ったデータの場合も、過去の運用データの場合もあります。学習時と運用時の差を「学習・運用間のずれ」、運用中の時間的な変化を「ドリフト」と分けて呼ぶ仕組みもありますが、まずは何を基準に、どの期間のデータと比べているかを明確にすることが重要です。
データドリフトと精度低下は同じ?
同じではありません。 データドリフトは入力データの変化であり、精度低下は予測結果が実際の正解に合わなくなることです。入力分布が変化しても、モデルが十分対応できる範囲なら予測性能が大きく変わらない場合があります。
反対に、入力分布の変化が小さく見えても、予測に関係する条件が変われば性能が悪化することがあります。そのため「ドリフトを検知した=モデルを再訓練すべき」とは判断できません。
また、正解がまだ分からない予測では、入力データを観察するだけで正解率を計算することはできません。正解ラベルが後から得られるなら予測結果と照合し、得られない期間は入力の変化や予測値の傾向を、精度とは区別した監視情報として扱います。
データドリフトはなぜ起こる?
データ分布が変わる理由には、利用者の入れ替わり、季節の変化、商品の構成変更などがあります。例えば、学生の利用が多かったサービスが社会人にも広がれば、年齢層や利用時間帯の割合は変わり得ます。こうした変化は事業や生活環境の変化として自然に起こることもあります。
一方、データ収集方法やシステムの変更によって、数値の単位、入力形式、欠損値の割合が変わることもあります。これは利用者の変化ではなく、データの品質や処理の問題かもしれません。分布が変わった理由を調べるときは、実際の利用状況とデータ取得の仕組みを分けて確認しましょう。
データドリフトはどう検知する?
基本は、比較する期間と対象の入力項目を決め、基準となるデータと現在のデータの分布を比べることです。例として、購入予測モデルに入力する年齢層を考えます。
| 年齢層 | 学習時のデータ | 現在の運用データ |
|---|---|---|
| 29歳以下 | 20% | 10% |
| 30~49歳 | 50% | 30% |
| 50歳以上 | 30% | 60% |
| 合計 | 100% | 100% |
この例では、50歳以上の割合が30%から60%へ増えています。入力データの構成が変わったことは分かりますが、これだけでは購入予測の正解率が下がったとは言えません。年齢がモデルの判断にどう使われているか、実際の予測結果がどう変わったかは、別に確認する必要があります。
年齢層のような分類項目は割合を、連続した数値項目は中央値・分位点・分布の形を比較します。比較期間やデータ件数が違いすぎると偶然の差も大きく見えるため、観測数と集計条件も確認します。監視の仕組みでは、分布の差を数値化して通知することもできますが、一律の数値だけで異常と確定しないことが大切です。
ドリフトを検知したらどう対応する?
変化を見つけた後は、すぐにモデルを再訓練するのではなく、次の順番で確認すると判断しやすくなります。
まずデータの取得・加工に問題がないか確認する
数値の単位変更、欠損値の増加、前処理の仕様変更などがないか調べます。データの収集や加工に問題があれば、モデルの再訓練より先にその問題を修正する必要があります。
次に予測への影響を確かめる
変化した入力項目が予測にどれほど関係するかを調べ、正解ラベルが利用できる場合は以前と同じ評価指標で性能を比較します。正解がまだない場合は、性能悪化を断定せず、予測値や業務上の状況も含めて継続的に確認します。
必要な場合に対策を選ぶ
データ品質の修正だけでよい場合もあれば、最新データによる再訓練、モデルの見直し、監視基準の調整が必要な場合もあります。再訓練したモデルが必ずよくなるとは限らないため、新旧モデルを同じ条件で比較してから切り替えることが重要です。
まとめ
データドリフトは、入力データの分布が基準時点と変わる現象です。検知した段階では、モデルの精度低下まで確認できたわけではありません。まず比較元と比較先の期間や項目をそろえ、変化が実際の利用状況によるものか、データ取得・加工の問題によるものかを調べます。
そのうえで、正解データがあれば予測性能を評価し、必要に応じて再訓練などを検討します。「分布が変わった」という発見と「モデルを変えるべきか」という判断を分けることが、データドリフトへ適切に対応する基本です。