はじめに
マーケティング本部、AI・データチャプター所属、データサイエンティストの堀です。業務では、AIやデータを活用した業務高度化や改善等に取り組んでおります。
昨今、生成AIの進化が目覚ましいですが、実務においては、従来の機械学習もまだまだ現役で活用されています。特にテーブルデータにおいて、LightGBMなどの勾配ブースティング決定木(GBDT)は、その計算コストや予測精度の高さなどの強みから、実務では定番のアルゴリズムかと思います。
さて、マーケティング領域などの実務において、CVR(コンバージョン率)向上を目的としたターゲティングモデルを構築したことがある方などは、こういう瞬間があった方も多いのではないでしょうか。
- 特徴量は増やした
- ハイパーパラメータもチューニングした
- SHAPで有効な特徴量も見て対策した
⇒ それでも、CVRが思ったほど伸びない。
このとき、多くの場面では、パラメータチューニングの不足や、特徴量エンジニアリングの見直しなどを実施すると思います。しかし、疑うべきは他にもあるかもしれません。そのひとつが、データに混入するノイズです。
結論から言うと、”CVしているのにデータ上はCVしたユーザとして観測されていない” ような、マーケティング等の実務で発生しがちなノイズが学習データに混入すると、ぱっと見気が付きにくい状態で、モデルの精度劣化が起こる可能性があることがわかりました。
本記事では、実務で発生しがちなノイズを再現し、LightGBMの学習・推論を行うことで、LightGBMがどの程度データノイズに強いかを検証します。
対象読者
本記事は、以下読者を対象にしております。
- マーケティング等で、GBDTを用いてターゲティングモデル等を構築した経験のある方
- GBDTで何らかのモデルを構築した経験のあるデータサイエンティスト
先行研究
本記事を執筆するきっかけとなったのは、Robust and Interpretable Machine Learning for Network Quality Prediction with Noisy and Incomplete Data[1]です。
この論文では、光通信ネットワークのQoT(Quality of Transmission)予測を題材に、複数の機械学習モデルの頑健性を比較しています。詳細は割愛しますが、この論文の中でLightGBMは、学習データのラベルミス(ラベルノイズ)に対して比較的高い頑健性を示すことが報告されています。
ただし論文で扱われているラベルノイズは、光通信ネットワークを意識した誤ラベルです。しかしながら、マーケティング用モデルの学習データに含まれるノイズは、マーケティング特有のノイズが含まれる可能性があります。
マーケティングにおける学習データのノイズ
例えば、過去キャンペーンの反応データ(CV履歴等)から見込み顧客をターゲティングするような課題において、モデル構築に用いる学習データには、以下のようなノイズが含まれることが良くあるのではないでしょうか。
- データ抽出時点では「CVしていない」と記録されているが、実際にはCVしている人が含まれる(データ取得のタイミングや計測ラグ等が影響)
- モデルから見ると明らかに正例らしい負例が存在する(実際には正例である可能性)
つまり、負例の中に正例(もしくは如何にも正例っぽいデータ)が混ざってしまっているケースが想定されます。
そこで今回は、実務を意識したノイズを付与し、LightGBMの性能にどのような影響を与えるか、実験を行いました。
実験
実験の目的
今回の目的は、マーケティング等の実務で起こりやすいデータノイズに対して、LightGBMはどの程度頑健性を持つかを調べることです。また、そのノイズ混入度によってどのような影響が出るかを確認します。
実験概要
実験に用いるデータセットは、Hillstrom Dataset[2]を選びました。これには、顧客属性・行動履歴やメール配信有無、2週間以内のサイト訪問(visit)が含まれています。
※コンバージョン(CV)も含まれていますが、今回は、CVより件数が多いvisitを目的変数としました。
その他実験概要は、以下の通りです。

比較条件
以下3つの条件で比較を行います。Latent Positive Noise(LPN)では、負例の一部を正例に置き換えるのではなく、ラベルは負例のまま、正例のようなサンプルを多く混入させました(重複して水増し)。
これは、本当は正例かもしれない負例が学習データに多く含まれたケースを想定しています。実務でも起こりうる状況を模擬的に設定しています。
また比較用のRandom Noiseは、負例の中で一部をランダムに別の負例に置き換えています。ラベル自体を付け替えた実験は先行研究をご覧いただきたいですが、比較的頑健性が高いことが示されています。

(補足)各条件作成方法の説明

実験結果
各条件の結果は、以下の通りでした(一部抜粋)。

得られた示唆
上記結果より、以下の示唆が得られます。
- ROC-AUCは、ほぼ変わらない
LPN比率を上げても、AUCはほぼ変わらないことがわかりました。このことから、AUCだけを見ていると、他に問題が起きていても気が付けない可能性があります。 - Lift 10%の値はあまり変わらないものの、標準偏差が増加
Lift 10%の値自体はあまり変化しないものの、LPNでは標準偏差が拡大していました。これは、実行のたびに結果が振れる不安定さが生じていることを示します。 - LPNはECE(Expected Calibration Error)が悪化
ECE がノイズ注入率5%の段階で早くも0.0097(ベースライン比 +87%)に上昇し、10%で0.0124(+138%)に達します。AUCはあまり変わらないものの、実は精度劣化が起きている可能性があります。
また、各条件でのSHAP値を以下に記載します(一部抜粋)。



Baseline、Random Noise、LNP(Baseline以外はノイズ注入率20%)とも、全体的に大きな順位変動は見られませんでした。しかし、LNPでは全特徴量のSHAP値が一様に低下していることがわかりました。
これは、LPNでは正例っぽい負例が多く混ざっていることで、一見矛盾したデータ(例えば、recencyが低いのにvisit=0 など)を多く学習してしまい、個々の特徴量への確信度が全体的に低下したためと考えられます。ECEが壊れた原因も、おそらくこれが原因のひとつと考えられます。
実験結果のまとめ
負例の中に、正例っぽいデータが多く混入しても、AUCやランキング上位には大きな影響を与えないことがわかりました。
一方、キャリブレーション誤差(どの程度当たりそうか)は、ラベル品質に非常に敏感に反応することがわかりました。また、ECEは悪化し、SHAP値が軒並み低下することもわかりました。
まとめ・実務を見据えて
LightGBMは、マーケティング等の実務で発生しがちなデータノイズの混入に対して、AUCやLift 10%などのターゲティング順位に関しては、比較的高い頑健性を持つことがわかりました。ただし、一見すると気が付けない精度劣化が起こっている可能性があります。特に、キャリブレーション誤差が大きくなることから、キャリブレーションした値をもとにプロモーションする人数を決めている場合などは、注意が必要です。
加えてノイズ混入時には、ターゲティングの安定性は低下することにも注意が必要です。モデリングを実行した時のランダム性によって、たまたま結果が良くなる(もしくは悪くなる)ことが多くなる恐れがあります。
基本的なことですが、モデル構築の際は、なるべくデータノイズの混入を防ぐことや、複数の指標をウォッチすることが大切です。
また、精度劣化を検知した際は、パラメータチューニングや特徴量エンジニアリングだけでなく、そもそもデータが正しいかを疑うことも大事です。
LightGBMは、強力で扱いやすいモデルですが、基本的なことを疎かにしないことが大切であると、改めて感じました。