単調性制約を使ったモデリング手法について

DataRobotのデータサイエンスアソシエイトの香西です。

機械学習のプロジェクトで予測モデルを作成したものの、モデルの結果の解釈に納得感がなく説明に困る場合があります。そういった場合に単調性制約を用いてビジネス仮説やドメイン知識をモデリングに反映することで結果の解釈性が向上することがあります。そこで今回は、単調性制約を用いたモデル結果の解釈性を向上するためのモデリング手法や制約の仕組みなどをご紹介します。また通例、単調性制約を適用するモデリングではコーディングが必要になりますが、DataRobotではGUIを用いて容易に適用できるのでその設定方法についてもお伝えします。

1. 単調性制約の概要

機械学習のモデリングにおいて、一部の学習データのばらつきや多重共線性の影響などにより、ビジネス仮説や現場の感覚とモデル結果の解釈が異なる場合があります。その際に業務知識に基づき一部の特徴量とターゲット間の関係性の方向を強制してモデルを学習することで、それらの問題が解消されることがあります。このようにモデル学習時に「特徴量とターゲット間の関係性の方向を強制する制約」を単調性制約といいます。

ここでいう単調性とはデータが一定の方向で上昇または下降する性質を意味し、単調性が担保されている特徴量においては、値を増減させたときに予測結果も同じ方向に増減させることができます。例えば事業計画を立てる場合には店舗数を一定数増やした場合にどれだけの売上増加が見込めるかのシミュレーションを行うことができます。そのため、事業計画で予測モデルの活用が多い金融業界などでは単調性が担保できる線形回帰モデルが好まれていました。しかし、近年ではツリー系のモデルにおいても単調性制約を適用することができる機能が追加されており、機械学習の応用範囲はさらに広がりつつあります。

2. 単調性制約の使いどころ

単調性制約は予測モデルの精度を上昇させたい場面よりも、予測モデルにビジネス仮説やドメイン知識を反映させたい場面で用いられます。例えば、広告効果予測における広告投下量が増加すれば広告効果が高まるという仮説や解約率予測での契約期間が長くなれば解約率が低くなるという仮説をモデル学習時に強制することできます。それによりモデルの結果解釈に納得感が生まれます。

今回は金融業界のカードローンの与信リスクを予測する事例をもとにさらに具体的にご説明します。以下の図は縦軸に今回の事例のターゲットである与信リスク、横軸に特徴量の1つであるローン利用限度額に占める利用割合(以下、ローン利用割合)、黄色の線は部分依存を示しています。部分依存とは各特徴量とターゲットの関係性を図示したものであり、部分依存を見ることで各特徴量の値が増減した場合にターゲットの値に対してどのような影響を及すのかを把握することができます。部分依存についての詳細は以下のURLから過去のブログ記事をご参照ください。https://blog.datarobot.com/jp/2018/02/15/modelxray

この部分依存の図からローン利用割合が高いほど与信リスクが高くなるという右肩上がりのトレンドになっていることがわかります。ビジネス的にもローン利用割合が高くなるということはローン額が審査で定められた利用限度額に近づき利用者の支払い余力が低下するため、貸したお金が返ってこないリスク(与信リスク)が高くなります。そのため、今回のモデルにおいてはビジネス仮説の大まかなトレンドは捉えられています。

一方でローン利用割合が赤枠の箇所(5%,70%,90%付近)では部分依存が山形となっています。これは一部の区間ではローン利用割合が高いほど与信リスクが低くなる傾向を意味し、モデル結果の解釈がビジネス仮説に反しています。この事象はローン利用割合の学習データに局所的なデータのばらつきが存在することによって起こりました。以下の図は横軸がローン利用割合、縦軸が与信リスクの割合を示したものです。赤枠の付近(5%,70%,90%付近)では狭い範囲内に与信リスクの割合が高い箇所と低い箇所が混在していることがわかります。その結果、機械学習モデルが学習時に局所的に起きた双方の傾向を過学習しようとしたことでモデルが複雑化してしまい、一部の区間において単調的な増加ではなく山形の形状となりました。

そこでローン利用割合が高くなれば与信リスクが高くなるという単調増加の方向を強制し、モデル学習時に反映させる必要があります。

3. DataRobotにおける単調性制約の設定方法

DataRobotがデータの読込みを完了しターゲットの設定を行った後に以下の3つのステップで単調性制約を設定します。

  1. 事前に単調性制約を適用する数値型の特徴量のみを含む特徴量セットを作成する
  2. 「高度なオプション」の「特徴量制約」のタブを選択し、単調性の画面へ移動する
  3. 単調増加または単調減少のタブから事前に作成した数値型のみの特徴量セットを選択し、制約を適用する

DataRobotでは単調増加と単調減少の2方向に対して単調性制約を適用することができます。またその際に「単調モデルだけを含める」のボックスにチェックをいれると、単調性制約を適用することが可能なモデルのみでモデルを構築することが可能です。

4. 単調性制約を適用した結果

3章でご説明したカードローンの与信リスク予測の事例において、ローン利用割合に対して単調増加制約を実際に適用した結果が以下の図になります。

先ほど確認したローン利用割合の5%,70%,90%付近で部分依存が山形となっていた箇所がなくなり、一定して右上がりの形状となっていることがわかります。これは単調増加制約によって一部の区間の学習データのばらつきに対する過剰適合が抑えれら、ローン利用割合が高くなれば一貫して与信リスクも高くなるということを意味します。その結果、ビジネス仮説や現場の感覚に沿った結果の解釈をすることができ、納得感のあるモデルを作成することができました。

5. 単調性制約はどういう仕組み?

ここでは単調性制約(増加)がどのような仕組みになっているのかを学生の勉強期間から成績を予測する簡易な例を用いてご説明します。

以下の図はツリー系モデルを用いてテスト成績の予測を行った例になります。青丸はツリーの葉、ルートノードはツリーの一番上の葉で分岐のスタート地点、葉の中にある数式は枝が分岐する際の条件となります。学生の勉強期間が数式の条件を満たす場合は「True」の方向に分岐し、満たさない場合は「False」の方向に分岐します。

個人差を度外視した場合には勉強期間が長いほど成績がよくなるという単調増加の関係性は一般的な事実ではないでしょうか。ただ図のツリー分岐後の値を見ると、勉強期間が長かったDさんの成績が勉強期間が短かったCさんより低くなり、勉強期間の成績に対する単調性が保たれていないことがわかります。この問題はデータのばらつきやスパース性といったデータの質による原因によって起こり得ます。今回の例ではDさんと比較して勉強期間が短かったCさんの成績が高くなったという学習データのばらつきの問題により単調性が保たれなくなりました。その結果、モデルの解釈をするときに一部の区間においては勉強期間を長くした方が成績が悪化するという事実に反する形になり、納得感がない解釈となりました。そこでドメイン知識に基づいて勉強期間を長くするほど成績が高くなるという単調性制約を適用し、どのような仕組みで作用しているのかを見ていきましょう。

ツリー系のモデルでは木を分岐する際に以下のロジックで単調性制約を適用することで単調増加を維持しています。

  1. ルートノードから初めての分岐で右側の分岐後の値が左側の分岐後の値よりも上回るように分岐させる
  2. 同様に次の分岐においても右側の分岐後の値が左側の分岐後の値よりも上回るように分岐させる
  3. 右側の分岐後の値には下限値を設定し、左側に分岐後の値には上限値を設定する

以上のロジックで特に重要になるのは3つ目になります。1と2のロジックのみでは分岐が深くなるにつれて単調性が保たれない場合がありますが、3のロジックで上限値と下限値を設定することでどの分岐においても右側の分岐後の値が左側の分岐後の値を上回る状況を作っています。

ここまで説明してきた単調性制約のロジックを先ほどの成績予測の例に適用した結果が以下の図になります。

今回の場合においては単調性制約が適用された結果、分岐後のCさんの成績に85点の上限値が設定されたため、Dさんよりも成績が低くなり単調増加が保たれました。その結果、どの区間においても勉強期間が長くなれば成績が高くなるという単調性が保たれるようになりました。

このようにツリー系のモデルでは右側に分岐後の値が左側に分岐後の値を上回る仕組みを構築することで単調増加を維持しています。

6. 使用上の懸念点について

単調性制約を使用する上で2つの懸念点が挙げられます。

1つ目は単調性制約を適用することができる機械学習のモデルが限られてしまう点です。単調性制約は現在提唱されている機械学習の全てのモデルに適用できるわけではありません。適用することができる代表的なモデルはXGBoostやLightGBMといったツリー系の勾配ブースティングのモデルであり、DataRobotではリーダボードのモデル名の下に「MONO」と記載のあるモデルにおいて単調性制約を適用することができます。

2つ目は誤った方向に単調性制約を適用した場合に正しい結果の解釈ができなくなる点が挙げられます。以下の図は、先ほどのカードローンの事例のローン利用割合に対してビジネス仮説とは逆の単調減少制約を適用し、再度モデルを実行した結果になります。制約を適用した結果、部分依存が横一線の形状となり特徴量のインパクトの順番も0%の最下位となりました。これはローン利用割合と与信リスクの関係性がほとんど存在しないことを示しています。このように本来あるべき方向とは逆の方向に制約を適用した場合には誤った結果の解釈を導いてしまう可能性があるため注意が必要です。また方向が合っていたとしても、ドメイン知識以上に実際には小さい山形があることが正しいという場合にも単調性制約によって抑えられてしまうので注意が必要です。

7. まとめ

今回は金融分野のカードローンの与信リスク予測の事例をもとに単調性制約の使いどころやDataRobot上での設定方法、内部の仕組みについてご説明しました。

単調性制約はビジネス仮説やドメイン知識をモデル学習時に適切に反映することでモデル結果の解釈性や納得感を高めることができる機能です。

皆さんも是非、単調性制約を試してみてください。