コロナ禍による概念ドリフト(Concept Drift)が機械学習タスクに与える影響

コロナ禍による概念ドリフト(Concept Drift)が機械学習タスクに与える影響

先日、全国で緊急事態宣言が解除され、ようやくコロナ禍の波を1つ超えた感があります。
しかし、コロナ禍によって人々の行動や需要が大きく変わっているため、コロナ禍の前後のデータは業界によっては全く傾向が異なると捉えるべきでしょう。
ここで気になるのは、コロナ禍以前から運用されている機械学習系サービスへの影響です。
本記事ではこういった感染症のパンデミックによる概念ドリフト(Concept Drift)が機械学習タスクにどう影響を与えているのかについてまとめます。

そもそも概念ドリフトとは

概念ドリフト(Concept Drift)とは、モデルが予測しようとしているターゲット変数の統計的特性が時間の経過とともに予期せず変化することを意味します。

the concept drift means that the statistical properties of the target variable, which the model is trying to predict, change over time in unforeseen ways.
出典:https://en.wikipedia.org/wiki/Concept_drift

以下の記事でも書いておりますが、インフルエンザの感染者数予測もコロナ禍による概念ドリフトの影響を受けている事例の1つと言えるでしょう。

概念ドリフトが何に影響を与えるのか?

以下、How the COVID-19 Pandemic Affects Machine Learning in Businessを参考にまとめます。

新型コロナウィルスのパンデミックによって、人々の行動や需要が激的に変化することで概念ドリフトが発生します。
例えば、通信、ホームエンターテイメント、オンライン教育、医療用品などの事業では活動が増加している一方で、国際貿易、対面サービス、B2B決済といった事業では活動が減少しています。
以下では、新型コロナウィルスのパンデミックによって起こった概念ドリフトが、具体的にどういった機械学習タスクに影響を与えるのかを説明します。

異常/不正検知

ロックダウンや外出自粛のような対策が世界の多くの国で実施されたため、オンライン決済やマイクロ決済へのシフトが急速に進んでいます。
これによって、観測されるデータのパターンや全体の数字が変化するため、異常/不正検知タスクにおいてはトランザクション監視で予期せぬ問題が発生する可能性があります。

需要予測/在庫最適化

需要予測/在庫最適化タスクは、過去データをもとにした統計的な予測がベースになっています。
統計的な予測では、過去のデータから抽出したトレンド/季節性/自己回帰などをもとに予測を行いますが、パンデミックが市場や人々の行動に影響を与えると、すぐにそのような過去データをもとにした予測は役立たなくなります。

レコメンド

特にECにおける顧客行動が大きく変化していて、感染防止のための商品に限らず、食品や家庭用品にまで及んでいるため、あらゆる商品やサービスの提供者が間接的に影響を受けています。
また、流行の各段階では過去データからは推測できない独自のパターンが存在するため、購買パターンを線形的に捉えることができません。
加えて、家計の消費行動の変化などの要因によって、購買履歴の傾向がコロナ禍前後で全く異なることが予想できます。

概念ドリフトへの対応

以下、Why your models might not work after Covid-19を参考にまとめます。

上記で説明したように、概念ドリフトは機械学習タスクに少なからず影響を与えています。
ではこのような概念ドリフトをどのようにすれば検知できるのか?
以下ではその方法を説明します。

概念ドリフトの検知方法

以下のモニタリングシステムを構築することで、今回のようなコロナ禍による概念ドリフトを検知できます。

  1. 入力データのロギング
    想定範囲外のデータがモデルの入力データになっていないかを検知します。
  2. モデル出力結果のロギング
    従来のモデルの出力結果と大きくかけ離れていないかを検知します。
  3. モデルの予測精度のロギング
    モデルの予測精度が大幅に低下していないかを検知します。
  4. 現実世界のデータのロギング
    現実世界におけるユーザの行動が変化していないかを検知します。

こういった概念ドリフトを検知できるモニタリングシステムは、品質管理の1つとして既存システムに組み込むと良いでしょう。
ちなみに、アラートの閾値としてまずは4シグマを設定するとのが良いと本記事では述べられています。
※4シグマとは、平均値±4×標準偏差のこと。約不良率0.07%であり、通常は起こり得ない値なので、今回のようなコロナ禍による概念ドリフトの検知としては妥当。

再学習

上記のモニタリングシステムによって概念ドリフトを検知できたら、モデルの再学習を行います。
モデルの再学習は以下3パターンが考えられます。

  1. 概念ドリフト(コロナ禍)以前のデータ全てを学習データから除外する
    利用可能な学習データがかなり少なくなってしまうため、今回の概念ドリフトによって激的な変化があった場合のみに有効です。
  2. 学習データの重み付けを変更する
    概念ドリフト(コロナ禍)以降のデータの重みを大きくし、概念ドリフト以前のデータの重みを小さくします。
  3. 概念ドリフトによる影響を明示的に補正するモデルを作成する
    概念ドリフト(コロナ禍)が何によって発生しているのか原因が明確に判明していて、その変数を特定できる場合に有効です。

最後に

通常、機械学習系サービスを開発する場合は、今回のコロナ禍で起きたような需要や人々の行動が急激にスパイクする期間のデータは外れ値として除外しがちです。
これから数年後にコロナ禍が完全に収束した状況での機械学習系サービスの開発を想像してみると、今回のような急激な概念ドリフトが起きた期間のデータは外れ値として除外されるのは容易に想定できます。
しかし、逆にこういった概念ドリフトに対応できるシステムを機械学習系サービスに組み込むことができていたとしたら、一気に市場で優位なポジションをとることができたかもしれません。