shimopino / papers-challenge

Paper Reading List I have already read
30 stars 2 forks source link

Adversarial Validation Approach to Concept Drift Problem in Automated Machine Learning Systems #68

Open shimopino opened 4 years ago

shimopino commented 4 years ago

論文へのリンク

[arXiv:2004.03045] Adversarial Validation Approach to Concept Drift Problem in Automated Machine Learning Systems

著者・所属機関

Jing Pan, Vincent Pham, Mohan Dorairaj, Huigang Chen, Jeong-Yoon Lee

投稿日時(YYYY-MM-DD)

2020-04-07

1. どんなもの?

機械学習の運用で課題となるのは、モデルを運用する期間が長くなっていくにつれて、入力されるデータの統計量など学習時に使用したデータと乖離していくConcept Shiftという問題である。

本研究では上記の課題に対して、入力されるデータの推論を行う前にConcept Shiftを検知可能なAdversarial Validationを提案した。

2. 先行研究と比べてどこがすごいの?

機械学習モデルの運用では以下の図のように学習時に使用したデータの分布と、新たに入手したテストデータの分布が異なる場合があり、作成したモデルが十分な性能を発揮しないことがある。

image

学習データとテストデータの分布の違いによる課題に対処する方法としてはAdversarial Validationが存在する。これは学習データとテストデータを2値分類するモデルを学習させることでConcept Shiftを検知する手法である。

学習データとテストデータで分布が似ている場合にはモデルはデータのSourceがどちらなのか判断できないが、分布が異なると高い精度でデータのSourceを判定できることを利用している。

Uberで運用しているMaLTAは、特徴量選択をもとにしたAdversarial Validationを行ってConcept Shiftに対応している。

image

3. 技術や手法の"キモ"はどこにある?

考え方は学習データとテストデータを混ぜて2値分類器でデータのSourceを識別できるようにするだけである。

こうして得られたモデルの特徴量の重要度と傾向スコアを使用してConcept Shiftを検知し、またConcept Shiftを引き起こした特徴量やそのサブセットを探索することができる。

本研究では3つのAdversarial Validation手法を提案している。

3.1 Automated Feature Selection

1つ目は自動的に特徴量選択を行う手法である。もしもConcept Shiftが発生している場合、分類器は50%以上のAUCを発揮しており、モデルに対して重要な特徴量が潜在的にConcept Shiftを起こしていると考え、対象の特徴量を重要度のランクに従って削除する。

適用の流れは以下になる。

  1. 学習データとテストデータを識別するモデルを学習させる
  2. モデルのAUCが閾値よりも高い場合、トップx%の重要度をもつ特徴量や、素の特徴量の重要度が閾値よりも高い(MDI>0.1など)特徴量などを削除する
  3. Step1に戻る
  4. AUCが閾値よりも低い場合に、選択された特徴量で学習データとテストデータの両方を使って目的のモデルの学習を行う

MaLTAでは本手法を以下のように運用している。

image

この手法は特徴量の減少による情報損失と学習データサイズの減少のトレードオフを考えて利用する。

3.2 Validation Data Selection

2つ目の手法は学習データから検証データを構築する際に、検証データの分布がテストデータの分布と同じになるように切り出す手法である。

本研究ではConcept Shiftによる洗濯バイアスを避けるために傾向スコアをマッチさせる手法を採用している。

  1. 学習データとテストデータを識別するモデルを学習させ、テストデータに対する傾向スコアを取得する。
  2. 最近傍を傾向スコアのマッチ具合を測るために使用し、サンプル間の平均距離を測るSMDが閾値よりも低い(SMD<0.1など)サンプル抽出する。
  3. 選ばれたサンプルを検証データとして採用し、モデルは残りのデータで学習させる。

image

3.3 Inverse Propensity Weighting

また検証データを構築することなく、学習データに対する重み付けを使ってモデルを学習させるInverse Propensity Weight(IPW)という手法がある。

学習サンプルに対して以下を計算する。分子はテストデータである確率を示しており、分母は学習データである確率を表している。

image

こうすると学習データに得られた重みをかけることで、以下のように式変形すると重み付けた学習データでテストデータの分布を再現できることがわかる。

なお傾向スコアが1に近いと重みが増大してしまう有効サンプル数が減少するため、傾向スコアが1に近いサンプルに対しては重みをかけずにそのまま学習に使用している。

4. どうやって有効だと検証した?

7つのデータセットに対して提案している3つの手法の効果を検証した。本来のTargetに対するモデルにはLGBMを採用しており、Adversarial Validationに使用するモデルは決定木・ランダムフォレスト・LGBMを選んでいる。

4.1 AutoML3 for Lifelong Machine Learning Challenge Datasets

AutoML3の本タスクではテストに対するラベルが順に与えられていき、最終的なスコアはこれらのテストデータに対する性能の平均値で測られる。

image

以下が7つのデータセットの中身である。なお本研究では手法の有効性を調査することが目的であるため、データセットからカテゴリ特徴量と日付特徴量は削除している。

image

実際にAUCを計算してみると、ADA以外のデータセットではConcept Shiftが発生していることがわかる。

3つの手法の中では特徴量の選択を行う手法が最も高い精度を達成しており、検証データの構築や学習データの重み付けは場合によってはbaselineよりも精度が悪化している。

image

4.2 MaLTA

アジア太平洋地域の実際のUberのユーザーデータで検証を行っており、ある商品Xのユーザが2019年11月から2020年2月までに新規商品や新規サービスの利用データである。

時系列に従って4つのスナップショットデータである。特徴量は合計で307個あり、そのうち297個が数値データ、5個がカテゴリデータ、7個が日付データである。それぞれあるユーザーがUberのほかのサービスをどの程度利用しているのかを表すデータである。

なお304個の特徴量に欠損値があり、そのうち53個の特徴量はデータ全体の90%が欠損している。

このデータの場合にはLGBMでの徳亮量選択手法が最も高い精度を達成しており、AutoML3のデータセットと異なり、数多く存在する欠損値がこの結果に起因すると考えられる。

scikit-learnのDTやRFは欠損値に対してデフォルトで0埋めを行うが、LGBMでは欠損値を無視して木の分割を行っており、欠損値は最適な方向に分類する挙動になっている。

image

5. 議論はあるか?

6. 次に読むべき論文はあるか?

論文情報・リンク

shimopino commented 4 years ago

傾向スコアのマッチ(PSM)

傾向スコアでのAdversarial Validation