次に具体的に本ケースでどうデータソースを加工していくかを解説します。
加工の手順は次の4つで進めていきます。
1:データの取得期間の決定
融資実行データ、CRMデータ、それぞれのデータ取得期間を決定します。つまりは、いつからいつまでのデータを基に、いつからいつまでの予測を立てていくか。今回は過去の預金や入出金の変動から将来借入を行うかどうかを予測することが目的です。
a. ターゲット「 X ヶ月以内の借入有無」の X の期間を決定する(今回の場合、X=3とします)
b. 現在時点から少なくとも X ヶ月より前の任意の基準年月を基準年月軸として 1 つ決定する(今回の場合、2021年12月を基準年月軸とします)
c. b.で決定した基準年月軸から将来 X ヶ月以内の貸出日をターゲットデータ ( 融資実行データ ) の取得期間とする(今回の場合、基準年月軸である2021年12月から3ヶ月の2022年1月、2月、3月となります)
d. b.で決定した基準年月軸を特徴量データ ( CRM データ ) の取得期間とする(今回の場合、基準年月軸の2021年12月となります)
つまりは3ヶ月先までを予測するためには少なくとも「現在から3ヶ月以上前」の情報を特徴量として、AIを構築する必要があると言うことです。Xヶ月以内の借入の回数、金額を分析することで「Xヶ月以内に○○万円の借入を行う可能性がある」と考えることができます。
2:融資実行データからターゲットデータを作成
次に融資実行データからターゲットデータを作成します。下記の図をご覧ください。1で決定した融資実行データの取得期間、つまりは2022年1月、2月、3月の貸出日、また今回借入を予測したい融資商品、今回はフリーローンの融資実行のデータを抽出し、データから店番、CIF番号の列のみを抽出します。
【動画スライド15から引用】*
予測の基になるデータを決定、上記では「1〜3月」をターゲットデータ取得期間と決めている
*記事の文末に解説動画をご紹介しています。
このとき、お客様によっては1ヶ月に複数借入を行っている可能性もある。つまりはデータソース上で店番、CIF番号の重複が出る可能性があるため、その場合は重複を削除します。最後に、すべての値が1のターゲット「Xヶ月以内の借入有無」の列を追加します。これでターゲットデータの作成は完了です。
【動画スライド16から引用】*
ターゲットデータの作成イメージ
*記事の文末に解説動画をご紹介しています。
① 融資実行データから、決定したデータ取得期間と、ターゲットの対象となる融資商品のデータのみ抽出
② ① で抽出したデータから、店番と CIF 番号の列のみ抽出し、店番と CIF 番号の重複がある場合は、重複を削除し、店番と CIF 番号でユニークなデータを作成
③ ② で作成したデータに、すべての値が 1 のターゲット列「 X ヶ月以内の借入有無」を追加
3:CRMデータから特徴量データを作成
次にCRMデータから特徴量データを作成します。まずは、1で決定した特徴量データの取得期間に沿ってデータを抽出します。今度は商品特性を追加していきます。今回はフリーローンなので、フリーローンの借入条件である年齢や住所、人格区分等の条件に沿ってデータを抽出します。
次に基準年月を除く店番とCIF番号、その他特徴量として有効な列を抽出し、さらによりAIの予測精度を向上させるために欠損値補完や特徴量エンジニアリングを実施します。ここの例では、出金金額 / 入金金額といった、出金金額と入金金額の列同士を割り算した列を作成しています。
これで特徴量データの作成は完了です。
【動画スライド17から引用】*
特徴量データ作成のイメージ
*記事の文末に解説動画をご紹介しています。
① CRM データから、決定したデータ取得期間と、ターゲットの対象となる融資商品の商品性 ( 年齢などの条件 )に応じてデータを抽出
② ① で抽出したデータから、店番と CIF 番号、その他特徴量として有効な列を抽出
③ ② で作成したデータをもとに、欠損値補完や特徴量エンジニアリングを実施
4:ターゲットデータと特徴量データを結合・加工して、AI構築用データを作成
最後に2、3で作成したターゲットデータと特徴量データを結合します。結合の際は、特徴量データにターゲットデータを結合する流れであれば、left outer join 、ターゲットデータに特徴量データを結合する流れであれば、right outer join など左から右への順にしておきます。
【イメージ図】
Aが特徴量データ、Bがターゲットデータである場合、「left outer join」を行うと特徴量データをベースにして、ターゲットデータを結合する。つまり、特徴量データに“ない”がターゲットデータに“ある”情報は適応されない=削除される
そして、重複や欠損の処理。このケースでは、もしターゲットデータの期間内に借入を行っていない場合は、ターゲットの「Xヶ月以内の借入有無」の列の値が空欄となってしまいますので、空欄は「0」で補完します。そして、このAI構築用データを作成するため、個人を識別するために残していた店番とCIF番号を削除してAI構築用データは完成です。
【動画スライド18から引用】*
AI構築用データ作成のイメージ
*記事の文末に解説動画をご紹介しています。
① 特徴量データを全量取得するように、ターゲットデータと店番・CIF 番号をキーに結合
② ① で結合を行うと、ターゲットデータにない店番・CIF 番号のターゲット「X ヶ月以内の借入有無」の値は欠損になってしまうため、0で補完
③ 最後にデータの粒度となる店番・CIF 番号の列を削除
そうですね。先ほども言いましたが、人が目的と情報を明確にして、指示を与えることでAIは機能しやすい。AIだけに任せるのではなく、人とAIが協力していくことをイメージしてください。
そして、まず人が行うべきことは「どんなデータを作るのか、作りたいのか」を考えること。冒頭に挙げたAI構築用データの4項目は、金融に限らずAI構築をする際に目安となるため、活用いただきたいです。
1:AI構築用データは1つのデータとして集約
2:予測したい「ターゲット」と、予測するための「特徴量」を指定
3:AI構築用データの1行あたりの粒度を定義
4:過学習を想定、予防する
この4項目を確定させれば、目的が定まります。この目的に向けて、どうデータを加工すれば実現できるのか?を考えていくことができると思います。
このデータソースを使って、今回はAutoML(=Automated Machine Learning)を利用してAIを構築していきます。AutoMLはAIを利用した分析を行う際、各種タスクが自動化できる技術です。このAutoMLに先ほどのAI構築用データを投入し、モデリングを実施していきます。
基本的にAutoMLは自動で最適な設定でモデリングを実行してくれますが、これらの項目について、設定がされているか確認しておくと良いでしょう。本ケースでは以下を確認しました。
・機械学習タスク: 二値分類
・アップロードデータ: AI 構築用データ
・ターゲット:X ヶ月以内の借入有無
・特徴量の型:各特徴量が数値・カテゴリなど、適切な型として認識されているか
・検定方法:層化抽出法による交差検定
目的は「ターゲットに対して、特徴量から予測を出していく」こと。そのためには、前段階、AI構築用データを如何に作り込むことができるかが鍵となります。そう考えれば、シンプルになっていくのではないでしょうか。
大切なことですが、AIの構築は一回では上手くいかないことがほとんどなんです。ただし、その原因の多くはAI構築用データです。だからこそ、これまで「データソース」について説明いたしました。
本ケースで利用しているAutoMLはモデルのインサイトを可視化してくれる機能が備わっていることが多いです。「上手くいっていない」と感じた際は、インサイトから予測のズレに繫がりそうな”データ”を見付けて、AI構築用データの改善をします。
予測のズレに繫がりそうなデータとは、例えばどの特徴量がどの程度AIに影響を与えているのかを示すFeature Importanceで、特定の特徴量だけが顕著に影響を与えているケースを見ることがあります。つまりは、現在の予測結果を出すために貢献度の大きい特徴量を精査していく。実は含めてはいけない特徴量であった、など気付けます。
例えば下の図のように、予測値と実測値を並べたとき、明らかに傾向が違って出てくることがあると思います。
【動画スライド20から引用】*
*記事の文末に解説動画をご紹介しています。
これはつまり「AIがうまく予測できていない」ということです。この場合は、値・レンジでデータを分割してAIを複数構築することで、AIの精度改善が期待できる場合があります。
「原因はAI構築用データにある」=だからまずはデータソースを見直してみる。反面で実測値と予測値を並べて「どこで予測にズレが出ているのか」を特定する。なるほど、鍋倉さんが「AIの構築は一回では上手くいかない」と仰るのは、動かしながら精度を高めていくものなんですね。
AIの精度検証は、実際に施策を行って検証する実務検証と過去のデータで検証する机上検証があります。 AUCは机上検証におけるAIの精度指標の1つであり、多くのAutoMLで自動的に計算をしてくれます。
【動画スライド22から引用】*
机上検証、AUC値の目安
*記事の文末に解説動画をご紹介しています。
AUCの値だけでAIの精度を測ることはできませんが、直感的に1に近ければ精度がよい、0.5に近ければ精度が悪いと判断することができます。とりあえずは0.6-0.8あたりを目指すといいでしょう。
また、実務検証においてはマーケティング経験者にはお馴染みの「ABテスト」がAIでも有効です。データ抽出を既存手法、AI利用の2つの方法で行い、結果を突合して精度を比較検証します。
【動画スライド26から引用】*
おさらいも兼ねたAIの運用フロー
*記事の文末に解説動画をご紹介しています。
実は今回お話ししているターゲティングAIにおいて、AIの運用はそこまで複雑ではありません。直近の基準年月のCRMデータを取得して、特徴量データの作成と同じようなデータ加工を施し、AIで予測します。アウトプットとして各顧客、つまり店番・CIF番号ごとに借入確率が出力されますので、借入確率の高い順から施策対象の数だけ取得し施策を実施していき、検証を行っていく。準備で手を掛けるほど、運用で行うことは減っていく、と考えてください。
ただし、AIでターゲティングリストを作成・運用するだけがAIの運用ではありません。
昨今はMachine Learning Operations、略してMLOpsと呼ばれる、AIの監視・管理が重要とされています。その中で、まず着目してもらいたいのは「データドリフト」です。
データドリフトは、AIに入ってくる予測用のデータが、AIを作ったときのデータと比較して変化していきていないかを監視するものです。極端な例ですが、運用をしている途中で「こういう情報もあれば精度が高くなるのでは?」とデータソースを追加するなど。「いままでは万円区切りだったが、千円区切りにしました」、こういった小さな変化もAIに伝えなければ精度に影響してしまいます。
このほかにも精度劣化、つまりはAIの予測と実際の結果が落ちてきていないかを監視するほか、システムが適切に連携できているのかなども確認していく必要があります。AIは日進月歩で進化しています。それと同じように、社会や市場も変化しており、適宜人の手を介して調整をする必要があります。また、適切に予測ができていたとしても、例えばインターネットの回線障害のように、システム間に障害があれば予測結果が出力されません。
「AIは難しい」、そう仰るかたには「そんなことありません!」と伝えたいと常々考えています。砂漠で落とした指輪をAIに探し出してもらおうとしてしまっていませんか?いつ落としたことに気付いたか、どのルートを歩いていたのか、可能な限り思い付く情報を書き出し、「見つけ出す」ために必要な情報だけ抽出することでAIは指輪を早く見つけ出す強力にサポートしてくれます。
是非本記事や書籍「金融AI成功パターン」から、AI活用のヒントを見つけ出して欲しいです。
金融データ活用推進協会 著
『金融AI成功パターン』
大好評 発売中!
◆金融データ活用推進協会 企画出版 書籍『金融AI成功パターン』”第二章 ターゲティングAIパターン”◆
セゾンテクノロジー公式youtubeチャンネルにて、
第二章の執筆を担当したSBIホールディングス株式会社 鍋倉由樹様の解説動画をご紹介しています。
併せてご覧ください。