クレジットカードの不正利用、乗っ取られた口座からの不正送金、フィッシング詐欺の被害金の移動——金融の不正検知は、機械学習の応用の中でも最も条件の厳しい問題のひとつです。

何が厳しいのか。①不正は全取引の0.1%前後しかない(極端な不均衡)、②相手は検知を回避しようと学習してくる(敵対的)、③判定は決済を止めないためにミリ秒〜秒で返す必要がある(リアルタイム制約)、④誤検知は「正当な買い物でカードが止まる」という最悪の顧客体験になる(誤りのコストが双方向に高い)。

この記事は、この分野の技術構成をエンジニア視点で整理する「業界×テック」記事です。特定サービスの内部仕様ではなく、公開されている技術要素から全体像を描きます。

全体構成 — ルールとMLのハイブリッドが現実解

「AIで不正検知」と聞くと1つの賢いモデルを想像しますが、実際のシステムはルールエンジンとMLモデルの多層構成が標準です。

役割特性
ルール層既知パターンの即時ブロック(制裁リスト照合、明白な異常)説明可能・即日追加できる・漏れなく適用
MLスコアリング層取引ごとに不正らしさのスコアを算出未知の組み合わせに強い・確率で出せる
判断層スコア×金額×顧客状況で アクション決定(通す/追加認証/保留)ビジネスルールと閾値の管理
人間の調査層高スコア案件の調査・確定最終判断・ラベルの生産

ルールが残るのは技術的な妥協ではありません。新しい詐欺手口への即応(モデルの再学習を待たずに当日ルールを足せる)と説明責任(なぜ止めたかを一文で言える)は、ルールの方が強いのです。MLはルールでは書き切れない「組み合わせの異常」を拾う担当で、両者は補完関係にあります。

不均衡との戦い — 0.1%をどう学習するか

不正率0.1%のデータをそのまま学習すると、「全部正常」と答える無意味なモデルができます。定番の対処は3系統です。

  1. クラス重み: 少数クラスの誤りに大きなペナルティを課す。最初に試すべき最も簡単な方法
  2. サンプリング: 多数派を間引く(アンダーサンプリング)、少数派を合成して増やす(SMOTE[1]など)。実装はimbalanced-learn[2]に揃っています
  3. 問題の言い換え: ラベルがほぼ無いなら、正常だけで学習する異常検知として解く

そして評価はPR-AUCと「調査キューの的中率」で行います。Accuracyが無意味であること、しきい値は調査チームの処理能力から逆算すること——モデル評価設計で書いた原則が、この分野では死活問題になります。まず感覚を掴みたい人には、不正率0.172%の実データに基づくKaggleの公開データセット[3]で素振りするのがおすすめです。

精度の源泉はモデルではなく「集約特徴量」

不正検知の精度は、モデルのアーキテクチャよりも特徴量エンジニアリングで決まります。1件の取引だけを見ても不正かどうかは分かりません。効くのは「文脈」です。

  • 速度系: 直近1時間/24時間の取引回数・合計金額(愛用カードが突然、深夜に高頻度で使われ始める)
  • 乖離系: 「この顧客の普段」からのズレ(平均取引額のzスコア、初めての国・時間帯・商品カテゴリ)
  • 新規性系: 新しいデバイス・IP・配送先が最初に使われてからの経過時間
  • 関係系: 同じデバイス・住所・連絡先を共有する口座のネットワーク(組織的な不正は「点」ではなく「面」で現れる)

エンジニアリング的な難所は、これらの集約を推論時にミリ秒で計算する基盤です。「直近24時間の取引回数」をリアルタイムに引けるようにするストリーム集計・特徴量ストアの設計こそが、この領域のMLOpsの本体だと言えます。

敵は学習する — ドリフトとラベル遅延

不正検知が他のML応用と決定的に違うのは、分布の変化が自然現象ではなく、敵の戦略だという点です。

  • コンセプトドリフト: 検知パターンが効き始めると、攻撃側は手口を変えます。モデルの鮮度が直接、検知率に効くため、高頻度の再学習が前提です
  • ラベルの遅延: 「この取引は不正だった」が確定するのは、利用者の申告やチャージバック(返金請求)が届く数週間後です。つまり最新のデータほどラベルがない。再学習の設計は、この遅延を織り込む必要があります
  • フィードバックループの罠: ブロックした取引は「その後どうなったか」が観測できません。検知した結果が学習データを歪める——この構造は運用者が自覚しておくべきバイアスです

誤検知は「コスト」ではなく「体験」

見逃し(不正の通過)は直接の金銭損失ですが、誤検知(正当利用のブロック)は顧客体験と機会損失です。海外旅行先でカードが止まる体験は、顧客を失います。

だから実務の判断は二値ではありません。スコアに応じて「そのまま通す/追加認証を求める(ワンタイムパスコード等)/保留して調査」と段階を分けます。追加認証は「疑わしいが止めない」という第三の選択肢で、誤検知のコストを「決済失敗」から「10秒の手間」に変換する仕組みです。この人間(あるいは本人)の確認を挟んで誤りを吸収する設計は、外観検査の再検査医療LLMのDraft-only原則と同じ構造で、業界を超えて再利用されている安全網パターンです。

なお、融資の審査(与信)のように個人の信用を判断する領域は、不正検知とは規制も説明責任の要求もまったく異なる話になります。本記事はあくまで不正検知の技術構成の解説であり、金融サービスの設計・法令対応は必ず専門家の関与のもとで行ってください。

まとめ

  • 不正検知は「極端な不均衡×敵対的×リアルタイム×双方向に高い誤りコスト」という最難関条件のML応用
  • 実システムはルール+ML+人間の多層構成。ルールは即応と説明、MLは未知の組み合わせ、人間は最終判断とラベル生産を担う
  • 不均衡にはクラス重み→サンプリング→異常検知への言い換え。評価はPR-AUCと調査キューの的中率
  • 精度の源泉はリアルタイム集約特徴量(速度・乖離・新規性・関係)。それを支えるストリーム集計基盤がMLOpsの本体
  • 敵は学習する。高頻度再学習・ラベル遅延・ブロックによる観測の歪みを運用設計に織り込む
  • 誤検知は追加認証という「第三の選択肢」で体験の破壊を防ぐ

不正検知は、機械学習を「賢い予測」としてではなく、敵と運用とコスト構造を含めたシステムとして設計する訓練場のような領域です。ここで使われている安全網・特徴量・運用の設計は、他業界のリスク検知にもそのまま輸出できます。

参考文献・一次情報

  1. [1]
    PAPERSMOTE: Synthetic Minority Over-sampling Technique

    Nitesh V. Chawla, Kevin W. Bowyer, 他Journal of Artificial Intelligence Research2002DOI: 10.48550/arXiv.1106.1813

    不均衡データへのオーバーサンプリング手法の古典

  2. [2]
    OFFICIALimbalanced-learn documentation

    imbalanced-learn(scikit-learn-contrib)

    不均衡データ向けサンプリング手法のPython実装の公式ドキュメント

  3. [3]
    REPORTCredit Card Fraud Detection Dataset

    Kaggle(ULB Machine Learning Group)

    不正率0.172%の実データに基づく定番公開データセット。不均衡問題を手元で体験できる