レコメンドシステムや需要予測のモデルを使い続けている場合、モデルの予測精度の劣化が問題になります。このような経時変化を concept drift と呼び、これに対応するために、モデルを学習するデータの期間を更新する必要があります。
ストリーミングデータにおける、学習期間の最適化のアルゴリズムを提案した論文として「Paired Learners for Concept Drift」があります。2022/05/02時点で被引用数160と十分な支持を集めているアプローチです。
今回はこの論文を要約してみたいと思います。
論文の概要
- タイトル:
Paired Learners for Concept Drift
- 著者:
SH Bach, MA Maloof
- 掲載年:
2008年
- 被引用数:
160 @2022/05/02 確認
- URL:
https://ieeexplore.ieee.org/abstract/document/4781097/
An algorithm for paired learning
この論文が提案したのは、以下の2つの学習器を組み合わせることで学習期間を最適化することです。
-
the stable learner(安定学習器) $S$:
処理中の時点 $t$ で予測に用いているモデル。 -
the reactive learner(反応学習器) $R_w$:
直近から長さ $w$ の期間のデータを学習したモデル。
このアルゴリズムの概要は、普段は $S$ を使って予測を行い、 $S$ と $R_w$ の予測誤差を比較し、 $R_w$ の予測精度が十分に良いと判断されたら、 $S$ を $R_w$ に置き換えることです。
アルゴリズムで用いる記号の説明
INPUT
このアルゴリズムの入力となる、ハイパーパラメータや学習データを以下のように定義します。
- $\vec{x}_t, y_t$ :
期間$[1, T]$までのストリーミング学習データ。 - $w$:
反応学習器$R_w$が学習するデータの、直近からの長さ。 - $\theta$:
既存の安定学習器を反応学習器に置き換える際の閾値設定。
これらのパラメータから、長さ $w$ の循環リスト $C$ を用意しておきます。循環リストは、通常のリストと異なり、リストの最後の次は先頭に戻って処理が行われます。初期状態では $C$ のすべての値は0に設定されています。
このアルゴリズムは以下のように定義されます。
このアルゴリズムが各行でどのような処理をしているのかを以下にまとめます。
-
9-10行目:
アルゴリズムの予測出力として、$S$で予測を行う。 -
22-23行目:
すべての繰り返し処理の最後には、追加された新しいインスタンスで、 $S$ と $R_w$ を学習更新する。 -
12-13行目:
時点$t$のインスタンスで、$S$が誤った予測をし、$R_w$が正しい予測をした場合、長さ$w$の循環リストの $t$ ビットを1にする。(注意:例えば、長さ5の循環リストの7ビット目にアクセスすると、実際は循環リストの7%5=2ビット目にアクセスする) -
17-20行目:
循環リスト $C$ の平均値が $\theta$ を超過しているかを確認します。超過していれば、concept drift による $S$ の精度悪化が発生したと見なし、$S$ を $R$ に置き換えます。その後、新しい $R$ を再生成します。
以上で、concept drift によるモデルの精度劣化に対処するための、学習期間の切り替え判断をおこなうアルゴリズムを紹介しました。
この記事が、なにかの参考になれば幸いです。