機械学習を用いた不正行為検出の基礎

このガイドでは、Stripe Radar と Stripe ネットワークを活用して不正使用を検出する方法についてご紹介します。

Radar
Radar

Stripe ネットワークの力で不正利用を防止します。

もっと知る 
  1. はじめに
  2. オンラインクレジットカードの不正利用についての概要
  3. Stripe Radar と Stripe ネットワーク
  4. 機械学習の基本
    1. 機械学習の仕組み
    2. フィーチャーエンジニアリング
  5. 機械学習モデルの評価
    1. 主要な用語
    2. 精度と再現率および ROC 曲線
    3. スコア分布
    4. 適合率と再現率の計算
  6. 機械学習オペレーション: モデルの安全かつ頻繁なデプロイ
  7. Stripe でできること
    1. ルールおよび手動レビューによるパフォーマンス向上
  8. 次のステップ

近年、EC の急速な普及に伴い、オンライン決済における不正利用も増加しています。世界全体で、不正利用による企業の損失は年間で推定 200 億ドルを超えています。さらに、運用コスト、ネットワーク手数料、顧客離れの増加などの要因から、不正利用による 1 ドルの損失に対して実際に企業が負担する総コストはそれをはるかに上回ります。

不正利用は多額のコストがかかるだけでなく、巧妙な手口を持つ詐欺師が常にシステムの弱点を突く新たな方法を見つけ出しているため、対策が困難になっています。そこで Stripe は、Stripe プラットフォームに完全に組み込まれた AI ベースの不正利用防止ソリューションであるStripe Radarを開発しました。Radar の機械学習では、Stripe ネットワークで毎年処理される数千億ドル規模の決済データを活用して不正利用を正確に検出し、最新の傾向に迅速に適応するため、不正利用を増加させることなくビジネスを成長させることができます。

このガイドでは、Stripe Radar と、不正利用を検出するための Stripe ネットワークの活用法を紹介し、Stripe で使用している機械学習手法の概要、および不正利用を検出するシステムの効率性とパフォーマンスに関する Stripe の考え方をご説明します。

オンラインクレジットカードの不正利用についての概要

カード保有者が支払いを承認しない場合、その支払いは不正利用であるとみなされます。たとえば、不正利用者が、まだ盗難が報告されていないクレジットカードを不正利用して購入すると、支払いが問題なく処理されることがあります。その後、カード保有者がカードの不正利用に気付いた場合、不審請求を申請することで、カード発行会社にその支払いに対する異議を申し立てます (「チャージバック」とも呼ばれます)。

ビジネスは、支払いが有効であったことを示す反証資料を提出することにより、チャージバックに異議を申し立てることができます。ただし、カード非提示の取引では、ネットワークが支払いを間違いなく不正であったとみなした場合、カード保有者の主張が認められ、ビジネスは商品の代金やその他の手数料を負担する責任を負うことになります。

従来、ビジネスは総当たりルールを使用して疑わしい不正請求を予測し、ブロックしていました。しかし、ハードコード化されたルール (たとえば、海外で使用されるすべてのクレジットカードをブロックする) では、多くの正当な取引がブロックされることになります。一方、機械学習は、さらに微妙なパターンを検出できるため、売上の最大化に役立ちます。機械学習の用語で、偽陰性は、システムが検出すべきこと (この場合は不正取引) を見逃した場合を指し、偽陽性は、たとえば、正当な顧客をブロックするなど、システムがフラグを付けるべきではないものにフラグを付けた場合を指します。機械学習の詳細を説明する前に、重要な点として、関与するトレードオフについて理解しておきましょう。

偽陰性では、多くの場合、ビジネスが元の取引額に加えてチャージバック手数料 (銀行でのカード支払いの差戻しに関する費用)、不審請求の申請に起因する高額なネットワーク手数料、支払いのレビューや不審請求の申請の対処に伴う高額な運用コストに対する責任を負います。さらに、不審請求の申請の発生件数が過剰であると、ネットワークチャージバックモニタリングプログラムの対象となり、コストが増加し、場合によってはカード決済を受け付けることができなくなります。

誤検出 (フォールスディクライン) とは、正規の顧客が購入しようとした際にブロックされてしまうことです。誤検出によって、企業は粗利益の減少と評判の低下という両方の打撃を受ける可能性があります。実際に、最近の調査では、消費者の 33% が、誤検出を経験した後はその企業で二度と買い物をしないと回答しています。

不審請求の申請を回避することと (偽陰性) 、正当な顧客のブロックを減らすこと (偽陽性) は、トレードオフの関係にあります。つまり、前者を減らしたいのであれば後者の増加を容認しなければなりません (その逆も同様です)。阻止する不正利用の数を増やそうとすると、ブロックされる正当な顧客も増加します。一方、偽陽性を減らそうとすると、多くの場合、本物の不正利用を見落とす可能性が高まります。ビジネスは、マージンや成長プロファイルといった要因に基づいて両者のバランスを取る必要があります。

マージンの小さいビジネス、たとえば、食品のオンライン販売であれば、不正取引のコストを、何百件もの商品取引によって埋め合わせることが必要になる可能性があり、個々の検出漏れは非常にコストの高いものになります。このプロフィールを持つビジネスでは、潜在的な不正利用を防ごうとした場合に、幅広い対策を取る傾向があると考えられます。一方、マージンの大きいビジネス、仮に SaaS ビジネスであれば、逆のことが言えます。正当な顧客が 1 社ブロックされることによる収入減は、不正利用の増加によるコストを上回る可能性があります。

Stripe Radar と Stripe ネットワーク

Radar は、オンラインでのクレジットカードの不正利用からビジネスを保護する Stripe の不正利用防止ソリューションです。Stripe の専門の機械学習チームによる長年のデータサイエンスとインフラ構築の成果である、適応型機械学習を活用しています。Radar のアルゴリズムにより、すべての取引の不正利用リスクが評価され、適切な対応が行われます。スコアの高い支払いはブロックされます。また Radar Plus には、他の対応を行うタイミングをユーザーが指定できるツールが用意されています。

Stripe は、毎年、数百万のビジネスからの数千億件の支払いを処理し、世界中の数千のパートナー銀行と連携しています。この規模により、小規模ネットワークよりもはるかに迅速にシグナルとパターンを確認できます。すべての Stripe 取引での不正使用に関連する集約データが決済フローを通して自動的に収集され、Stripe の不正使用検出機能の改良に活用されます。支払いが不正である可能性を予測する際には、カードが発行された国や支払いが行われた IP アドレスといったシグナルから貴重なインサイトが得られます。

Stripe ネットワーク全体から得られるカードの履歴からも、リスク評価にに適用できる相当な量のデータを得られます。Stripe ネットワークで使用されるカードの 90% は複数回確認されているため、正当に使用されているか不正に使用されているかについて評価するためのデータがさらに増えることになります。

Stripe の機械学習のもう 1 つの大きなメリットは、Radar は Stripe に直接組み込まれていて、すぐに使用できることです。一般に他の不正防止ソリューションでは、必要な初期投資と継続的な投資のどちらも多額になります。第 1 に、ビジネスは不正対策製品を導入する必要があります。そのためには、関連するイベントと支払いに関するデータを送信するためのエンジニアリング作業が必要になります。第 2 に、ビジネスは、取引が不正であったかどうかを分類する支払いラベルを決済代行業者から不正対策プロバイダーに渡すための組み込みを実施するか、手動で支払いにラベルを付ける必要がありますが、こうした作業は時間がかかり、ミスも起こりやすくなります。一方、Radar は、通常の Stripe の決済フローから直接「グラウンドトゥルース」情報を受け取り、カードネットワークとカード発行会社から直接得られたタイムリーかつ正確なデータを活用します。エンジニアリングの時間もコーディングも不要です。

次に、機械学習と Stripe における活用方法を詳しく説明します。

機械学習の基本

機械学習とは、大量のデータを取得し、それを使用して、結果 (たとえば、ある支払いから不正使用の不審請求が申請される確率) を予測するモデルを作成する一連の技法のことです。

機械学習の主な用途の 1 つは予測です。つまり、入力値が与えられた出力変数の値を予測します。Stripe の場合、支払いが不正であれば出力値は true になり、そうでない場合は false になります (このようなバイナリ値はブール値と呼ばれます)。入力値の例としては、カードが発行された国や、過去 1 日間に Stripe ネットワーク全体でカードが使用された異なる国の数などが挙げられます。過去の入力データと出力データの例に基づいて、予測を行う方法を決定します。

モデルをトレーニング (または生成) するために使用されるデータは、次の (非常に単純な) 例に示すような出力値とさまざまな入力値を持つ (多くの場合は履歴データから得られる) レコードで構成されます。

USD での金額
カードの発行国
カードが 24 時間以内に使用された国数
不正使用かどうか
$10.00 US 1 いいえ
$10.00 CA 2 いいえ
$10.00 CA 1 いいえ
$10.00 US 1 はい
$30.00 US 1 はい
$99.00 CA 1 はい

この例では入力は 3 つだけですが、実際には、機械学習モデルでは数百から数千の入力が使用されることがよくあります。機械学習アルゴリズムの出力は、次のデシジョンツリーのようなモデルとなる場合があります。

Guide decision tree - JA

新しい取引を確認する際、入力値に注目して、「二十の質問スタイル」のツリーに回答しながら 1 枚の「葉」に到達するまで進みます。それぞれの葉は、データセットのすべてのサンプル (上記の表) で構成されており、ツリーでたどった経路に沿った質問と回答のペアを満たしています。新しい取引が不正であると判断される確率は、葉の中の不正なサンプルの数を葉の中のサンプルの総数で除算した値です。言い換えると、ツリーは、「プロパティーが現在審査中の取引に似ているデータセット内の取引のうち、実際に不正である割合はどれくらいか」という質問に回答することになります。機械学習の部分は、2 つのクラスを正確に区別できる可能性を最大化するには、どの質問をどの順序で尋ねるかというツリーの構成に関係します。デシジョンツリーによって、特に視覚化と推論が容易になりますが、それぞれが独自の方法でモデル化しようとする関係を表す学習アルゴリズムは多数存在します。

現在の機械学習モデルは広く採用されていて、私たちが頻繁に使用する多くの商品を舞台裏で支えており、一般に上記の簡単なモデルよりもはるかに高度です。
Google では、機械学習を使用して 3 秒未満で数百万の言語関連パラメーターをモデル化し、検索の「もしかして」機能でスペリングの候補を正確に提示しています。
Amazon では、機械学習を使用して、履歴データがない新規ユーザーでも、プラットフォーム全体のユーザーのニーズ、好み、変化する行動に基づき、推奨システムによって購入を予測しています。

そして、この説明で最も重要なポイントは、機械学習は、どの支払いが不正であるかを予測することを目的とした Stripe Radar の基礎であるということです。

機械学習の仕組み

学問的な機械学習コースでは通常、モデリングのプロセスに重点を置きます。このプロセスは、データ (上記の表など) がモデル (デシジョンツリーなど) に変換する方法であり、入力値 (カードの発行国、カードが使用された国の数など) が出力値 (取引が不正であったかどうか) にどのようにマップされるかを示すアルゴリズムです。上記の入力データ表を取得し、「最適な」ツリーを作成するプロセスは、個別の機械学習メソッドを示す一例です。モデリングでは、多数のステップが実行され、このステップはデータの性質と使用するモデルに応じて異なります。ここでは詳細を説明しませんが、下記に概要を説明します。

最初に、トレーニングデータを取得する必要があります。不正使用の自動検出を開始する前に、そのサンプルが含まれるデータセットが必要です。それぞれのサンプルについて、出力値に関する将来の予測に役立つと想定される入力プロパティーの範囲を記録しておく (または、遡及的に計算できる) 必要があります。これらの入力プロパティーはフィーチャーと呼ばれます。あるサンプルに関する入力の集合はフィーチャーベクトルです。上記のサンプルでは、フィーチャーベクトルの長さは 3 (カードが発行された国、前日にカードが使用された国の数、USD の支払い金額) でした。

しかし、フィーチャーベクトルが数百から数千のフィーチャーで構成されることも珍しくはありません。実際、Radar では、数百のフィーチャーを使用しており、その大半は Stripe ネットワーク全体から計算された集約です。ネットワークの規模拡大に伴い、トレーニングデータには Stripe 以外のデータもすべて含まれる、フィーチャー全体のデータセットが反映されるため、各フィーチャーはさらに有益になります。出力値 (このサンプルでは、取引が不正であったかどうかを示すブール値) は、多くの場合はターゲットまたはラベルと呼ばれます。こうして、トレーニングデータは、多数のフィーチャーベクトルとそれぞれに対応する出力値で構成されます。

次に、モデルをトレーニングする必要があります。トレーニングデータを基に、予測モデルを作成するためのメソッドが必要です。一般に機械学習クラシファイアは、単にクラスのラベルを出力するだけではなく、通常は、特定のサンプルが各候補クラスに属する確率も割り当てます。たとえば、不正使用のクラシファイアの出力は、支払いに 65% の不正である可能性、35% の正当である可能性があるという評価のようになります。

モデルのトレーニングに使用できる機械学習技法は多数あります。機械学習の産業向け用途の大部分は、線形回帰、デシジョンツリー、ランダムフォレストなどの従来型のアプローチが適合します。

しかし、脳のニューロンの構造から発想を得たニューラルネットワークとディープラーニングといった高度な技法は、AlphaFold によるすべてのヒトタンパク質の 98% の予測などの分野における多くの進歩に貢献しています。ニューラルネットワークの真のメリットは、非常に大規模なデータセットでトレーニングされて初めてもたらされます。そのため、実際に実業界では十分に活用することができません。Stripe では、ネットワークの規模が大きいため、この最先端のアプローチを用いて、真の結果をユーザーにもたらすことができます。新しいモデルは Radar の機械学習のパフォーマンスを前年度比 20% も改善しており、不正使用の検出の強化と、偽陽性率の低減を両立できています。

フィーチャーエンジニアリング

産業用機械学習との関連性が最も高いものはフィーチャーエンジニアリングです。フィーチャーエンジニアリングは、以下の 2 つの部分で構成されます。
問題領域の広範な知識に基づいて予測値が設定されるフィーチャーの形成
これらのフィーチャーの値をモデルのトレーニングと「本番環境」のモデルの評価の両方に使用できるようにするためのエンジニアリング

フィーチャーを形成する際、Stripe のデータサイエンティストは、カード支払いがそのカードで通常使用されている IP アドレスから行われているかどうかを計算すると有益なフィーチャーを得られると直感したとします。たとえば、過去に確認された IP アドレス (カード保有者の自宅や職場など) から行われたカード支払いは、IP アドレスが他の州である場合に不正使用である可能性は低くなります。この場合、アイデアは直観的ですが、このような直感は一般的に数千もの不正使用の事例の調査から得られたものです。意外に思われるかもしれませんが、たとえば、ユーザーのデバイスの時刻と現在の協定世界時 (UTC) の差や、カードが正常にオーソリされた国の数の計算が不正使用の検出に役立つと分かることがあります。

フィーチャーに関するアイデアを得られたら、履歴値を計算して、フィーチャーを含む新しいモデルをトレーニングできるようにする必要があります。これは、モデルの生成に使用するデータの「表」に新しい列を追加するプロセスです。候補のフィーチャーに対してこのプロセスを実行するには、Stripe の履歴のすべての支払いについて、そのカードでこれまでに支払いが行われた頻度が最も高い 2 つの IP アドレスを計算する必要があります。これは、Hadoop ジョブで分散的に実行できますが、その場合でもジョブにあまりに多くの時間 (またはメモリー) が必要になることがあります。その場合は、省スペースの確率的データ構造を使用することで計算の最適化を試みます。一見単純に見えるフィーチャーでも、モデルトレーニング用のデータを生成するには、専用のインフラストラクチャーと確立されたワークフローが必要です。

すべてのフィーチャーがエンジニアによって手作業で用意されるわけではありません。展開前に後続のテストで計算するためにモデルに残しておくことができるものもあります。カードの発行国や取引を処理した加盟店などのカテゴリー値は、(数値のフィーチャーとは異なり) このアプローチに役立ちます。これらのフィーチャーには、幅広い値があることが多く、それらの有効な表記法を定義することは困難な場合があります。

Stripe では、取引パターンに基づいて各加盟店の埋め込みを学習するようにモデルをトレーニングしています。埋め込みは、個々の加盟店を他の加盟店と比較した座標として考えられます。類似の加盟店は、コサイン距離で測定して、類似の埋め込みを持つことが多いため、モデルでは、ある加盟店から学習したことを次の加盟店に転送できます。次の表では、Slack と比較して、Uber と Lyft は相互に類似している確率が高いと想定して、これらの埋め込みがどのようになるかを示しています。Stripe では、発行銀行、加盟店とユーザーの国、曜日など、幅広いカテゴリーフィーチャーに埋め込みを使用しています。

埋め込み座標の例

Uber
2.34 1.1 -3.5
Lyft
2.1 1.2 -2
Slack
7 -2 1

埋め込みの使用は、大規模な産業用機械学習の応用で広く普及してきています。たとえば、次のような単語の埋め込みは、単語同士の間の複雑な意味関係を把握する上で役立ち、Word2VecBERT、および GPT-3 などの自然言語処理マイルストーンに深くかかわっています。Stripe は、埋め込みを生成して、上記の単語間の類似性の把握と同じ方法を使用し、Stripe ネットワーク上のさまざまなエンティティー間の類似性の関係を捕捉しています。埋め込みは、直接的なトレーニングを行うことなく、上位概念を学習するための強力な手段です。たとえば、不正使用のパターンは多くの場合、地理的に不規則に分布しています。埋め込みを使用すると、システムがブラジルでの新しい不正使用のパターンを特定した場合に、米国で同じパターンが発生した場合に自動的に識別できるようになります。このためのトレーニングは必要ありません。このようにして、アルゴリズムの進歩により、不正使用のパターンの変化の先を進み、顧客を保護することができます。

Stripe における機械学習製品関連の業務にご興味がおありの場合は、お問い合わせください

機械学習モデルの評価

数百のフィーチャーを使用して、受領するすべての取引に対して支払いが不正使用である確率 (またはスコア) を割り当てる、不正使用に関する機械学習クラシファイアを作成した後は、そのモデルの不正使用検出の有効性を判断する必要があります。

主要な用語

機械学習システムの評価方法に関する理解を深めるために、主な用語のいくつかを定義しておくことをお勧めします。

Guide false positives - JA

まず、機械学習モデルにより取引に対して不正使用である確率として 0.7 以上が割り当てられる (P(fraud)>0.7 とします) と支払いをブロックするポリシーを作成したとします。モデルとポリシーのパフォーマンスについて推論する上で役立つ数量は、以下のとおりです。

  • 精度: ポリシーの精度は、ブロックした取引のうち実際に不正であった取引の割合です。精度が高いほど、偽陽性は少なくなります。たとえば、10 件の取引のうち、6 件が P(fraud)>0.7 であり、その 6 件のうち、4 件が実際に不正であるとします。その場合の精度は、4/6=0.66 です。

  • 再現率: 感度または真陽性率とも呼ばれる再現率は、ポリシーによって検出されたすべての不正使用の割合、言い換えると、P(fraud)>0.7 の場合の不正使用の割合です。再現率が高ければ、偽陰性が少なくなります。たとえば、10 件の取引のうち、5 件が実際に不正使用であるとします。モデルによってこれらの取引のうちの 4 件に P(fraud)>0.7 が割り当てられる場合、再現率は 4/5=0.8 です。

  • 偽陽性率: 偽陽性率は、すべての正当な支払いのうち、ポリシーによって誤ってブロックされた支払いの割合です。たとえば、10 件の取引のうち、5 件が正当であるとします。モデルによってこれらの取引のうちの 2 件に P(fraud)>0.7 が割り当てられる場合、偽陽性率は 2/5=0.4 です。

クラシファイアを評価する際に使用される数量は他にもありますが、ここでは、上記の 3 つに注目します。

精度と再現率および ROC 曲線

上記を踏まえると、次に検討すべき問題は、精度、再現率、偽陽性率に適切な値はどれであるかということです。理論上の理想の世界では、精度は 1.0 (不正使用として分類する取引の 100% が実際に不正使用である) となり、これにより偽陽性率は 0 (正当な取引のうち不正使用に分類されたものが 1 件もない) ことになり、再現率も 1.0 (不正使用として特定された不正使用が 100% である) となります。

現実は、精度と再現率の間のトレードオフがあります。ブロックの確率のしきい値を高くすると、精度は高くなり (ブロックの基準が厳格になるため)、再現率は低くなります (高度な確率基準に一致する取引が少なくなるため)。個別のモデルでは、ポリシーしきい値が多様であるため、精度と再現率の曲線によって精度と再現率の間のトレードオフが捕捉されます。

Guide precision curve - JA

Stripe ネットワーク全体からのデータが増え、不正使用の優れた予測因子となるフィーチャーが追加され、他のモデル・パラメーターの微調整が加えられトレーニングが進むと、モデルが全体的に改善され、上記の例に示すように、精度と再現率の曲線は変化します。これが Stripe でのビジネスのトレードオフを制御するため、データサイエンティストと機械学習エンジニアがモデルを変更する際は、精度と再現率の曲線に対する影響を厳密にモニターしています。

精度と再現率のグラフを検討する際、「パフォーマンス」の 2 つの概念を区別することが重要です。モデルは、それ自体としては、グラフの右上 (精度と再現率の両方が 1.0) に接近するにつれて、全体的な改善が進んでいます。しかし、モデルを運用可能にするには、通常、モデルの使用がビジネスに及ぼす具体的な影響を制御する、精度と再現率の曲線の作用点 (この例では、取引をブロックするためのポリシーしきい値) を選択する必要があります。

簡単に言うと、以下の 2 つの問題が存在します。

  • 適切なフィーチャーを追加することによって良好な機械学習モデルを生成するというデータサイエンス面での問題。精度と再現率の曲線の形状はモデルによって制御されます。

  • 潜在的な不正使用をどの程度ブロックするかを決定するポリシーの選択というビジネス面での問題。ポリシーによって運用すべき曲線上のポイントが制御されます。

機械学習モデルを評価する際に検討される曲線には、ROC 曲線もあります (ROC とは「受信者動作特性」の略語であり、もともとは信号処理の概念で用いられていた曲線に由来します)。ROC 曲線は、ポリシーしきい値のさまざまな値に関して、偽陽性率 (X 軸) と Y 軸の真陽性率 (再現率と同じです) をグラフ化したものです。

Guide roc curve - JA

理想的な ROC はグラフの左上 (再現率が 1.0、偽陽性率が 0.0) に接近するようになり、モデルの改善が進むと、ROC がさらにその方向に進みます。モデルの全体的な品質を把握する 1 つの方法として、曲線の下の面積 (AUC) を計算します。理想的なケースでは、AUC は 1.0 になります。モデルを開発する際、精度と再現率の曲線、ROC 曲線、AUC の変化に注目します。

スコア分布

0.0 から 1.0 の不正使用の確率を取引に無作為に割り当てるモデルがあるとします。実際には、このモデルは正当な取引と不正な取引を区別しないため、私たちにとってはほとんど役に立ちません。この無作為性はモデルのスコア分布によって取り込まれ、取引の一部のそれぞれに想定スコアが付けられます。完全に無作為なケースでは、スコア分布は均一に近くなります。

Guide uni dist - JA

たとえば、不正使用をリモート側でも予測するフィーチャーがモデルにない場合、モデルのスコア分布は上図のように一様になります。予測フィーチャーの追加や、さらなるデータでのトレーニングなどによってモデルが改善されると、不正使用クラスと正当なクラスを識別する力は高くなり、スコア分布はさらにバイモーダルになり、ピークはスコア 0.0 から 1.0 になります。

Guide split dist - JA

二項分布だけでは、モデルが優れているかどうかは判断できません (0.0 と 1.0 の確率のみをランダムに割り当てる空虚なモデルも、二項スコア分布になります)。ただし、スコアが低い取引は不正利用ではなく、スコアが高い取引は不正利用であるという反証資料がある場合、二項分布の増加はモデルの有効性が向上しているサインです。

モデルが異なれば、スコア分布も異なることがよくあります。新しいモデルをリリースする際は、スコアの急激な変化による破壊的な変更を最小限に抑えるために、古い分布と更新された分布を比較します。特に、取引をブロックするしきい値によって測定される加盟店の現在のブロックポリシーを考慮し、しきい値を超える取引の割合を安定に保つようにしています。

適合率と再現率の計算

上記の指標は、2 つの異なる状況で計算できます。1 つは、モデル開発プロセスの推進役となる過去のデータを使用するモデルのトレーニング中です。もう 1 つは、本番データを使用するモデルの導入後です。つまり、P(fraud)>0.7 の場合に取引をブロックするなど、モデルが対応を行うためにすでに使用されている環境からのデータです。

前者について、データサイエンティストは通常、手元のトレーニングデータ (上の表を参照) を取得し、レコードの一部をランダムにトレーニングセットに割り当て、他のレコードを検証セットに割り当てます。たとえば、最初の 80% の行を前者に、最後の 20% の行を後者に割り当てると想定できます。

トレーニングセットは、前述のようにモデルを作成するために機械学習メソッドに供給されるデータです。候補となるモデルが完成すると、それを使用して検証セットの各サンプルにスコアを割り当てることができます。検証セットのスコアは、出力値とともに、ROC 曲線や適合率 - 再現率曲線、スコア分布などを計算するために使用されます。トレーニングセットとは別に保持されている検証セットを使用する理由は、モデルがトレーニング例の「答えをすでに見て」おり、これらの答えから学習しているためです。検証セットを使用することで、新しいデータに対するモデルの予測能力を正確に測定する指標を生成できます。

機械学習オペレーション: モデルの安全かつ頻繁なデプロイ

ホールドアウトセットでモデルのパフォーマンスが現在の本番モデルを上回ることが示されたら、次のステップはそれを本番環境にデプロイすることです。このプロセスには、2 つの大きな課題があります。

  • リアルタイム計算: 分類器が不正利用の可能性が高いと判断したすべての取引をブロックできるように、新しい支払いごとにすべての機能の値をリアルタイムで計算できる必要があります。この計算は、トレーニングデータの生成に使用される計算とは完全に分離されています。Stripe でこれまでに確認されたすべてのカードについて、最も頻繁に使用される 2 つの IP アドレスの最新のステータスを維持する必要があります。また、これらの操作は Stripe API フローの一部として行われるため、それらのカウントの取得と更新は迅速に行う必要があります。Stripe の機械学習インフラストラクチャーチームは、機能を宣言的に指定し、機能の現在値を本番環境で低レイテンシで自動的に利用できるようにするシステムを構築することで、このプロセスを簡素化しました。

  • 実際のユーザーアプリケーション: 機械学習モデルのデプロイは、コードのデプロイとは異なります。コードの変更は正確なテストケースで検証されることがよくありますが、モデルの変更は通常、上記で定義したような指標を使用して、大規模な集約データセットでテストされます。しかし、全体として不正利用をより効果的に検出できるモデルが、すべての Stripe ユーザーにとって優れているとは限りません。パフォーマンスの向上が不均等に分布し、少数の大規模な加盟店で大きな利益が見られる一方で、多くの小規模な加盟店で小さな後退が見られる場合があります。モデルの再現率が高くても、ブロック率が急増し、ビジネス (およびその顧客) に支障をきたす可能性があります。モデルをリリースする前に、実際の環境で適切に機能するかどうかを確認します。そのために、Stripe ユーザーのサブセットを対象に、誤検知率、ブロック率、オーソリ成功率などのさまざまな指標について、集約ベースおよび加盟店ごとに、各モデルが引き起こす変更を測定します。新しいモデルがこれらのガードレール指標のいずれかで望ましくない変化を引き起こすことが判明した場合は、リリースする前にさまざまなユーザーのサブセットに対してモデルを調整し、混乱を最小限に抑えて最適なパフォーマンスを確保します。

トレーニングと評価のプロセスを可能な限り自動化することで、モデルの反復速度が複合的に向上することが判明しました。過去 1 年間、Stripe の最新の機能とモデルアーキテクチャーを使用してモデルを自動的かつ定期的にトレーニング、調整、評価するためのツールに投資してきました。たとえば、モデルのトレーニング後、リリースされる前に、パフォーマンスダッシュボードを継続的に更新します。そうすることで、エンジニアは、モデル候補がリリースされる前に、トラフィックのサブセットで陳腐化しているかどうかを簡単に検出し、事前に再トレーニングすることができます。

モデルのリリース後、そのパフォーマンスを監視し、次のリリースの準備を開始します。不正利用の傾向は急速に変化するため、機械学習モデルはすぐにドリフトの影響を受け始めます。つまり、トレーニングに使用されたデータは、現在の不正利用を表すものではなくなります。

これらのツールを使用することで、モデルのリリース速度が 3 倍になり、本番環境でのパフォーマンスが大幅に向上しました。実際、先月のモデルをより新しいデータで再トレーニングし (同じ機能定義とアーキテクチャーを使用)、リリースするだけでも、毎月再現率を最大 0.5% 向上させることができます。モデルを頻繁かつ安全にリリースできることで、機能エンジニアリングとモデリング作業の成果を活用および複合化し、Radar ユーザーの刻々と変化する不正利用パターンに適応することが可能になります。

モデルを本番環境に導入したら、モデルとポリシーのペアのパフォーマンスを継続的に監視します。ブロックのしきい値を下回るスコアの支払いについては、最終的な結果 (カード会員によって不正利用として不審請求が申し立てられたかどうか) を観察できます。ただし、しきい値を超えるスコアの支払いはブロックされるため、どのような結果になっていたかはわかりません。したがって、本番環境の完全な適合率 - 再現率曲線または ROC 曲線を計算することは、検証曲線を計算するよりも複雑です。反事実分析が含まれるため、ブロックされた支払いについても、どうなっていたかについての統計的に健全な推定値を取得する必要があります。長年にわたり、Stripe はこれを行うメソッドを開発してきました。詳細については、この講演にて詳細を表示できます。

ここでは、データサイエンティストや機械学習エンジニアが機械学習モデルを開発する際に注目する、モデルの有効性の指標のいくつかについて説明しました。次に、ビジネスが不正利用防止についてどのように考えるべきかについて説明します。

Stripe でできること

不正利用のパフォーマンスを把握するために 1 つの数字だけに執着すると、ビジネスにとって最適ではない選択につながる可能性があります。多くの場合、ビジネスは偽陰性 (見逃された不正利用) を過度に重視し、偽陽性を軽視しがちです。このような考え方は、すべての海外カードをブロックするなど、効果が薄くコストのかかる強引な対策につながることがよくあります。一般的に、特定の状況において、さまざまなパフォーマンス指標がどのように関連しているか、そして適切なトレードオフは何かを考慮する必要があります。不正利用防止システムの有効性を判断するために、これらの指標がどのように関連しているかを示す例を以下に示します。

損益分岐点適合率の近似モデル

平均売上が 26 ドルで利益率が 8% の場合、1 回の販売あたりの利益は 26.00 ドル × 8.00% = 2.08 ドルになります。平均して、製品の製造に 26.00 ドル – 2.08 ドル = 23.92 ドルかかり、15 ドルのチャージバック手数料が課せられる場合、不正な販売による総損失は 23.92 ドル + 15.00 ドル = 38.92 ドルになります。したがって、1 回の不正な販売で 38.92 ドル / 2.08 ドル = 18.71 回の正当な販売の利益が失われ、損益分岐点の適合率は 1 / (1 + 18.71) = 5.07% になります。

Radar の機械学習のしきい値は、加盟店の利益率の最適化と、ユーザーベース全体でのブロック率の安定性の維持との間でトレードオフのバランスを取ります。ダッシュボードにアクセスして、ビジネスにおける Radar の機械学習のパフォーマンスや、Radar Plus を使用している場合はカスタムルールのパフォーマンスを確認できます。これらのツールを使用すると、自社と類似した業界や規模のビジネスの集計されたカスタムコホートに基づいて、自社の不審請求の申し立て率、誤検知率、ブロック率を、他の類似ビジネスと簡単に比較できます。

Guide DashboardImage

ルールおよび手動レビューによるパフォーマンス向上

Radar Plus では、より自動化された機械学習アルゴリズムに加えて、個々のビジネスがカスタマイズされたルール (たとえば、「IP の国がカードの国と一致しない場合、1,000 ドルを超えるすべての取引をブロックする」など) を作成し、介入をリクエストして、フラグが立てられた支払いをダッシュボードで手動で確認することもできます。

このようなルールは単純な「モデル」として考えられるため (最終的にはデシジョンツリーとして表現できます)、モデルと同じ方法で、精度と再現率の間のトレードオフを十分に考慮して評価する必要があります。Radar でルールを作成する際に、実際に不審請求の申請、返金、および承認に至った、一致取引の数の履歴統計が表示され、ルールの実装前にこれらを計算できます。本番環境に移行した後は、偽陽性率と不審請求の申請率に対する影響をルールごとに確認できます。

同様に重要な点として、ルール、介入、および手動レビューを利用することで、ユーザーは、独自のビジネスに固有のロジック (ルール) を追加するか、さらなる労力を費やして (手動レビュー)、精度と再現率の曲線の形状を任意に変更できます。

機械学習アルゴリズムではビジネスに特徴的なタイプの不正使用の欠落頻度が高いこと (かつ、その不正使用を容易に特定できること) が判明した場合は、それらをブロックするルールを構成できます。そのような個別の介入により、通常は、精度のコストをほとんど発生させずに再現率が高くなり、事実上、勾配が緩く、より有利な精度と再現率の曲線に沿って作用点が動きます。

取引を完全にブロックするのではなく、取引の一部のクラスを手動レビューに送ることにより、再現率に悪影響を与えることなく精度を得られます。同様に、取引を完全に許可するのではなく、一部を手動レビューに送ることにより、精度に悪影響を与えることなく再現率を得られます。
言うまでもなく、こうしたメリットを得るには人手による作業の増加というコストを支払うことになり (またチームの評価の正確性が明らかになります) ますが、高リスクの顧客の認証に手動レビュー、ルール、介入を追加のツールとして使用することで、不正使用防止の成果の最適化機能を強化することができます。

次のステップ

このガイドが、Stripe の不正利用防止に機械学習がどのように適用されているか、および不正利用システムの有効性を測定する方法を理解するのにお役立てば幸いです。Radar の機能について詳細を表示するか、ドキュメントの詳細を表示してください。

ご質問がある場合や、Stripe Radar についてさらに詳しく知りたい場合は、お問い合わせください。

今すぐ始めましょう

アカウントを作成し、支払いの受け付けを開始しましょう。契約や、銀行情報の提出などの手続きは不要です。貴社ビジネスに合わせたカスタムパッケージのご提案については、営業担当にお問い合わせください。
Radar

Radar

Stripe ネットワークの力で不正利用を防止します。

Radar のドキュメント

Stripe Radar を使用して不正利用からビジネスを守ります。