モデルの劣化
ML(機械学習)モデルは、モデルや適用環境によって程度は異なりますが、時間とともにその性能が低下していきます。モデルが劣化する主な原因として、データドリフトやコンセプトドリフトの発生が挙げられます。
-
データドリフト
モデルが訓練された後、入力データの分布が変わることにより、モデルは新しいデータに対しても同じように良い性能を発揮できなくなります。 -
コンセプトドリフト
モデルが解決しようとしている問題自体(すなわち、入力と出力の関係)が時間とともに変わり、モデルの性能が劣化します。
データ品質が問題ない場合でも、これらの「ドリフト」が発生する可能性があり、それがモデルの性能に影響を与えます。
データドリフト(Data Drift)
データドリフトは、モデルの入力データの統計的な分布が時間とともに変わるという現象で、MLモデルがプロダクションで遭遇する一般的な問題の一つです。特定の特徴量の分布が変わることで、モデルの性能の劣化を引き起こします。
データドリフトの例
-
状況
オンラインニュースプラットフォームが、ユーザーの過去の閲覧履歴に基づいて記事を推薦する機械学習モデルを運用しています。 -
データドリフトの発生
当初、モデルは「政治に関する記事をよく読むユーザーには政治関連の記事を推薦する」といった挙動をしていました。しかし、大きなスポーツイベント(例えば、オリンピック)が開催された結果、多くのユーザーがスポーツ関連の記事を読むようになりました。 -
原因
この場合、ユーザーの興味(入力データの分布)が一時的に変わったことがデータドリフトの原因です。モデルが学習した「政治に関する記事をよく読むユーザーには政治関連の記事を推薦する」という関係性が、大きなスポーツイベントの影響で実状と合わなくなってしまいます。
コンセプトドリフト(Concept Drift)
コンセプトドリフトとは、MLモデルが解決しようとする問題の「コンセプト」、すなわち、入力データと出力データの関係が時間とともに変化する現象を指します。データドリフトと異なり、入力データの分布は変わらず、データの意味が変わります。この変化が発生すると、モデルの性能が低下します。
コンセプトドリフトの種類
コンセプトドリフトは主に3つの形で発生します。
-
徐々に変わる(Gradual)
このタイプのドリフトは時間とともに徐々に発生します。例えば、人々の購買行動が季節によって変わる場合など。 -
急激に変わる(Abrupt)
このタイプは突然発生します。例えば、新型ウイルスの出現や法的な変更など。 -
繰り返し発生する(Recurring)
このタイプは周期的に発生します。例えば、毎年冬に流行する風邪ウイルスに対する医療診断モデルが対応しきれない場合など。
コンセプトドリフトの例
-
状況
オンラインバンキングシステムで、不正な取引を検出するためのモデルが運用されています。 -
コンセプトドリフトの発生
当初、モデルは不正な取引を高い精度で検出していました。しかし、数ヶ月後、詐欺師たちが新しい手法を開発し、それによって不正な取引が正当なものとして認識されるようになりました。 -
原因
この場合、入力データ(取引の詳細、ユーザーの行動など)の分布は変わっていないと仮定します。ドリフトの原因は、正解ラベル(目的変数)である「詐欺取引」の概念が変わったことです。詐欺師が新しい手法を用いるようになったため、同じような取引でも以前は「詐欺」と判断されていたものが、新しい状況では「詐欺でない」と判断される可能性が高くなりました。
ドリフトへの対応策
ドリフトに対処するための一般的な方法は次のようなものがあります。
モデルの再トレーニング
新しいデータに基づいてモデルを定期的に再トレーニングします。
- 適用例: オンライン広告のクリックスルー率が変わった場合、新しいデータでモデルを更新する。
モニタリングとアラート
-データの品質とモデルの性能を継続的に監視し、閾値を超えた場合にアラートを発生させます。
- 適用例: 金融取引での不正検出モデルの性能が低下した場合、すぐに通知を受け取る。
ドメイン知識の活用
ドメインエキスパートからのフィードバックを用いて、モデルや特徴量を調整します。
- 適用例: ヘルスケアの診断モデルで、医師の専門知識を用いて特徴量を選定。
オンライン学習
新しいデータが来るたびにモデルを即座に更新します。
- 適用例: ニュース推薦システムで、ユーザーのクリック行動に基づいてモデルをリアルタイムで更新。
特徴量エンジニアリング
ドリフトを吸収できるように、新しい特徴量を設計します。
- 適用例: 季節性が影響する小売業で、季節や特定のイベントを示す特徴量を追加。
参考