2018.12.28

金融サービスにおける不正検知に機械学習の応用について

こんにちは、次世代システム研究室のT.D.Qです。

近年、機械学習は急速に発達していて、金融業界における重要なテクノロジーになっています。金融予測や顧客クラスタリングなど、様々な場面で機械学習を使用されています。今回は、金融サービスにて機械学習を使って不公正取引の検知について書きたいと思います。

金融サービスにおける不正取引検知は、クレジットカード不正検知や相場操縦行為検知などですが、目的は正常とされるパターンに一致しないパターンを見つけることです。ただし、不正取引手法は日々高度化・多様化していますので、ルールベースによる不正検知を行っているところが多いかと思いますが、やはりシナリオ変化への防御はなかなか難しいです。

機械学習は、大規模で複雑なデータから関係性を自動的に発見でき、未知のシナリオでも異常と判断できるので、ルールベースより効率的に不正取引を検知できます。日本でも、クレジットカード不正検出(JCB社)日本取引所など様々な金融サービスに応用されています。

不正取引の定義を明確にする

金融サービス業界で不正取引検出システムを構築する前に、課題設定自体を工夫する必要があります。つまり、「その取引は不正かどうか」の定義を明確にします。専門家によるドメイン知識基づいて不正な取引かどうかの判断だけではなく、未知の不正取引も検知できるようになるため、統計的な異常検知アルゴリズムを使った方が良いです。

不正取引検知のアプローチ

不正取引検知問題に対する典型的なアプローチとしては統計ベース、ルールベース、機械学習ベースの3つあると言われています。異なる目的に合わせて、同じシステムを異なるアプローチで適用することもできます。金融サービスでは専門家の知識を利用してルールベースというアプローチが多かったかと思いますが、未知の異常に合致するルールを作ることは難しいです。逆に、未知の異常にも有効なので、現在では機械学習を用いた不正取引検知アプローチが主流になっています。

  統計ベース ルールベース 機械学習ベース
仕組み ・データの母数団の形状や確率分布に仮定を置く
・データをモデルにフィッティング  
・既知の異常サンプルを集める
・それらを表す汎用的なルールを決める
分類モデルで異常ラベルまたは異常スコアを計算する
メリット データが仮定したモデルにしたがっていれば非常に高精度を達成 ・専門家が持つドメイン知識をそのまま組み込むことができる
・既知の異常によく合致するルール集合を得ることができる
・一般的にはどのような分布のデータに対しても有効
・未知の異常に対しても有効
・高次元の場合にも計算手法がある
デメリット ・一般的にデータは綺麗な分布に従っていることが少ない
・高次元になると単純な分布であってもフィッティングが困難
・背後のルールが複雑化しすぎると人間では表現できない
・未知の異常に合致するルールを作ることは困難
・精度は今得られているデータの品質が全てになる
・ドメイン知識を導入するためには変数の作り方などに工夫が必要

データ収集

機械学習は、データの準備ができていないと始めることができません。ユーザ側から金融データを収集することは難しいかもしれませんが、サービス展開側はシステムのデータベースやログから取引履歴データを収集できます。と言っても、「ゴミみたいなデータを入れても返ってくるのはゴミだけである(gabage in, gabage out)」こともあるので、場合によってはデータ量も大切ですが、やはり質の高いデータや適切なデータが重要です。

データ分析

その取引は『異常値』かどうか、を回答するため、複数の統計モデルを利用して収集したデータから得られる各種の情報量を使って不正取引を特定します。不正取引はどんな特徴量を持っているか、どのような統計モデルを仮定するか、データ間の距離をどのように定義するのかによって様々なデータ分析手法があります。トランザクションデータや顧客挙動の履歴分析に基づいて、通常とは異なるパターンや異常な取引の重要な特徴量をある程度把握できます。

データの前処理

モデルにどのようなデータを与えるかまたはデータをどう加工するのかここで行います。

インバランスデータへの対応

不正取引検知問題のなかには、ラベル0(正常な取引)が99%、ラベル1(不正取引)が1%といったデータが不均衡のケースがよく存在します。特段の工夫をせずに機械学習モデルを生成すると少数派の予測精度の低いモデルになることが知られています。不均衡データに対する対応は、アンダーサンプリング、オーバーサンプリングは一般的です。

学習データを標準化(Feature Scaling)

使うモデルによって正規化(sigmoid, tanhなどの活性化関数を用いる、NNのいくつかのモデル)や標準化(ロジスティック回帰、SVM、ニューラルネットワークなど勾配法を用いたモデル)の処理は必要です。学習前の前処理で、特徴量間のスケールを揃えると検知精度がよくなる結果をもらたします。

訓練データのラベリング 

機械学習ベースは教師有り異常検知と教師無し異常検知がある。教師有り異常検知では、ラベリングが必要です。下記は、ラベリングの2手法です。
①ルールに基づくラベリング
• 既知の不正取引特徴をルール化
• ルールで判定されたものは、そのままラベル情報に使用
②専門家によるラベリング
• 怪しい取引データだが①で判断できないものは専門家が判定

不正取引検知の機械学習アルゴリズム

ここで取引に関する膨大な特徴量を抽出して、「不正取引判別モデル」を構築します。モデルを構築するため、アルゴリズムを選定する必要があり、予測対象によって性能が大きく変わってきます。「No Free Lunch」定理の通り、全て問題に対して高性能なアルゴリズムは存在しないということで、複数のアルゴリズムを使ってうまく検知できるかどうか検証する必要があります。

アルゴリズム メリット デメリット 使い分け
ロジスティック回帰 ・2分類問題に対応した回帰モデル
・可読性が高い
・実装工数が少ない
・複雑な不正取引パターンに対応が難しい ・次元数とデータ数が多くない
・データの軸に明確な意味がある
ニューラルネットワーク ・複雑な表現を再現できる
・安定で高性能
・大量データが必要
・計算負荷が高い
・オーバーフィッティングが発生しやすい
・精度が出ても処理がブラックボックスなため結果の意味を持たせることが難しい
・データは自己相関性を持つ
・計算処理能力を持つ
・大量データを持つ
サーポトベクトルマシーン ・少ないデータ量でも優秀な結果を残す
・非線形の分類問題に対応が可能
・計算負荷が低い
・ブラックボックスなため結果の意味を持たせることが難しい ・トレーニングデータある
・次元数とデータ数が少ない
・データの軸に明確な意味がない
決定木・ランダムフォレスト ・汎化性能が高く、処理の並列性も高い
・理解しやすい
・計算負荷が低い
・インバランスデータも対応可能
・過学習が発生しやすい ・トレーニングデータある
・データの軸に明確な意味がある
・次元数とデータ数が多い
ベイジアンネットワーク ・安定性がある
・計算負荷が低い
・データと結果を理解するため、専門知識が必要 ・既に共通な不正取引パターンを知っているとき
アンサンブル学習 ・複数の弱学習器を用いて、精度を向上する手法で新しい不正取引パターンを対応できる
・幅広くどんな問題でも汎用的な性能を発揮する
・数値、カテゴリ、ノイズ、欠損値も対応出来る
・分類する上で重要なフィーチャーの重要度を出力できる
・ビックなデータセットでも処理ができる
・並列処理が不可能なため計算時間もかかりやすい
・過学習が発生しやすい
・次元数とデータ数が多い
・高次元でデータ

検知結果の出力

データからどうパターンを見つけるかどうか判断できる数字が出力されます。一般的にはスコア、「不正取引・正常取引」の2値で出力します。教師あり学習では、不正取引・正常取引データを別のクラスとして学習し、未知の取引データは不正取引か正常取引か分類を行います。教師なし学習では、正常取引データを用いて正常を表現するモデルを学習します。正常モデルから分離度を異常度(スコア)として扱います。

  • Score
    異常度合を出す。
  • ラベル
    正常な取引、不正な取引

不正取引の予測結果を評価する

どの程度信頼性があるか評価します。テストセットで過去のデータに当てはめて(バックテスト)、実際に発生した不正取引に対して予測できるかどうか、精度を測定できます。実際の取引データの中で不正取引の件数は非常に少なく、「Precision(適合率)」と「Recall(再現率)」評価指標は重要です。

指標 概要 金融サービスの不正検知
Accuracy(正確度) 不正取引や正常取引と予測したデータのうち,実際にそうであるものの割合 不正取引の件数は非常に少ないので、正確性の高いは良いですが意味が薄い。
Recall(再現率) 実際に不正取引であるもののうち,不正取引であると予測されたものの割合 高い方が良い。本当の不正取引が正常取引だと予測するとまずいので、False Negativeは小さくする必要がある。
Precision(適合率) 不正取引と予測したデータのうち,実際に不正取引であるものの割合 高い方が良い。正常な取引が不正取引だと予測すると、本当かどうか、本人確認など次の審査コストが高いため。

不正取引予測モデルの運用

不正取引予測モデルを構築した後、モデルから予測したデータはリスク指標として判断し、疑われる可能性のある取引に対して、監査チームなど知見のある人間の目で確認して、本人確認かアカウント規制か次のアクションを取ることができます 。また、継続的な改善サイクル(追加学習、オンライン特徴抽出、自動データ収集、自動ラベリングなど)を実施することで、高速・高精度な不正取引検知システムになることを期待できます。

最後に

次世代システム研究室では、アプリケーション開発や設計を行うアーキテクトを募集しています。アプリケーション開発者の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧 からご応募をお願いします。

皆さんのご応募をお待ちしています。