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

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

最終更新日: 2021 年 12 月 15 日
  1. はじめに
  2. オンラインクレジットカードの不正利用についての概要
  3. Stripe Radar と Stripe ネットワーク
  4. 機械学習の基本
    1. 機械学習の仕組み
    2. フィーチャーエンジニアリング
  5. 機械学習モデルの評価
    1. 主要な用語
    2. 精度と再現率および ROC 曲線
    3. スコア分布
    4. 精度と再現率の計算
  6. 機械学習の運用: 安全かつ高頻度でモデルを展開する
  7. Stripe によるサポート
    1. ルールおよび手動レビューによるパフォーマンス向上
  8. 次のステップ

このところの E-コマースの急速な拡大に伴い、オンライン決済の不正利用も増加しています。不正利用がビジネスに与える損失は、世界全体で推定年間 200 億ドルを超えます。さらに、不正利用による損失が発生するごとに運用コスト、ネットワーク手数料、顧客の解約が増加するため、実際の損失総額はこれをはるかに上回ります。

不正利用によって高額なコストが発生するだけでなく、技術に習熟した不正利用者が弱点を悪用する新たな方法を定期的に見つけているため、不正利用への対応は困難なものになっています。このため、Stripe は当社のプラットフォームと完全に連携する機械学習ベースの不正防止ソリューション、Stripe Radar を構築しました。Radar の機械学習では、毎年、Stripe ネットワーク全体で処理される数千億ドルの決済から得られるデータを活用することで、不正利用を正確に検出して、最新の傾向にすばやく対応し、ユーザーが不正利用を増やさずに成長することを可能にします。

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

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

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

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

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

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

偽陽性、すなわち誤った支払い拒否とは、正当な顧客が買い物をしようとしてもそれが阻止される状態です。誤った支払い拒否は、総利益と評判の両面で企業に打撃を与えます。実際、最近の調査によると、消費者の 33% が、誤って支払いを拒否した企業では二度と買い物をする気にはならないと回答しています。

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

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

Stripe Radar と Stripe ネットワーク

Radar は、Stripe の不正防止ソリューションであり、オンラインのクレジットカードの不正使用からビジネスを保護します。Stripe の専任の機械学習チームの長年にわたるデータサイエンスとインフラストラクチャーの取り組みの成果である、アダプティブ型機械学習を活用しています。Radar のアルゴリズムは、すべての取引について不正使用のリスクを評価し、適切なアクションを実行します。リスクスコアの高い支払いはブロックされます。Radar for Teams のツールを使用することで、ユーザーは、他の実行アクションを指定することもできます。

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

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

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

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

機械学習の基本

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

機械学習の主な用途の 1 つは予測です。何らかの入力値に応じて変動する出力の値を予測します。今回の例では、出力値は、支払いが不正であれば true、そうでなければ false です (このようなバイナリー値はブール値と呼ばれます)。入力値の例としては、カードが発行された国や、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 つだけですが、実際には、機械学習モデルでは数百から数千の入力が使用されることがよくあります。機械学習アルゴリズムの出力は、次のデシジョンツリーのようなモデルとなる場合があります。

新しい取引を確認する際、入力値に注目して、「二十の質問スタイル」のツリーに回答しながら 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 における機械学習製品関連の業務にご興味がおありの場合は、お問い合わせください

機械学習モデルの評価

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

主要な用語

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

まず、機械学習モデルにより取引に対して不正使用である確率として 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% である) となります。

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

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

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

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

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

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

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

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

スコア分布

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

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

バイモーダル分布自体は、モデルが有効であるかどうかを示すものではありません (0.0 と 1.0 の確率のみを無作為に割り当てる空虚モデルでもバイモーダル・スコア分布が形成されます)。ただし、スコアが低い取引が不正使用ではなく、スコアが高い取引が不正使用であるという証拠が存在する場合、バイモーダル性が高い分布は、モデルの有効性改善の兆候を示します。

多くの場合、モデルが異なると、スコア分布も異なります。Stripe では、新しいモデルをリリースするときに、以前の分布と更新後の分布を比較して、スコアの突然の変化に起因する破壊的な変化を最小限に抑えています。特に、しきい値を上回る取引の比率を安定した状態に維持する目的で、取引をブロックするしきい値で測定されるアカウント加盟店の現行のブロック・ポリシーを考慮しています。

精度と再現率の計算

上記のメトリックは、2 種類のコンテキストで計算できます。モデルのトレーニング時には、モデル開発プロセスを先に進めるための履歴データを使用し、モデルの展開後には、本番環境データ (たとえば、P(fraud)>0.7 の場合に取引をブロックするなど、すでにモデルを使用してアクションを実行している場合に取得される現実のデータ) を使用します。

前者については、データサイエンティストは通常、トレーニングデータ (上記の表を参照) を使用して、無作為にレコードの一部をトレーニングセットに割り当て、その他のレコードを検証セットに割り当てます。たとえば、最初の 80% の行をトレーニングデータに割り当て、最後の 20% をトレーニングセットに割り当てるといった方法です。

トレーニングセットは、上記の方法でモデルを生成するために機械学習メソッドに送られるデータです。候補モデルが得られたら、それを使用して、検証セットの各サンプルにスコアを割り当てることができます。検証セットのスコアは、出力値とともに、ROC および精度と再現率の曲線、スコア分布などの計算に使用されます。トレーニングセットとは別の検証セットを使用するのは、モデルはすでにトレーニングのサンプルで「回答を見ていて」、それらの回答から学習しているからです。検証セットにより、新しいデータに対するモデルの予測力の正確な指標となるメトリックを生成できます。

機械学習の運用: 安全かつ高頻度でモデルを展開する

モデルのパフォーマンスが提供されたセットの現行の本番環境モデルよりも優れていることが示されたら、次のステップでは本番環境に展開します。このプロセスでは次の 2 つの大きな課題があります。

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

  • 現実世界のユーザー・アプリケーション: 機械学習モデルの展開は、コードの展開とは異なります。多くの場合、コードの変更は正確なテストケースで検証されますが、モデルの変更は通常、上記に定義したようなメトリックを使用して大規模な集約データセットでテストされます。しかし、集約内で不正使用の特定に優れたるモデルが、すべての Stripe ユーザーにとって優れているものであるとは限りません。パフォーマンスの改善が不均一に分散され、少数の大規模な加盟店には大いに有利に働き、多数の小規模な加盟店には若干の退行をもたらす場合もあります。モデルは、再現率は高くなっても、ブロック率にスパイクが発生し、ビジネス (および顧客) に混乱を生じさせる可能性があります。Stripe では、モデルをリリースする前に、実務において十分なパフォーマンスを発揮するかを検証しています。

そのため、偽陽性率、ブロック率、オーソリ率などの多様なメトリックに各モデルの変更が及ぼす影響を Stripe ユーザーのサブセットに対して集約ベースと加盟店別ベースで測定しています。新しいモデルが、これらのいずれかのガードレールメトリックのいずれかに望ましくない変化をもたらすと判断した場合は、混乱を最小限に抑えて最適なパフォーマンスを確保するために、リリース前にそれぞれ異なる複数のユーザーのサブセットに合わせて調整しています。

トレーニングと評価のプロセスを可能な限り自動化すると、モデル反復のスピードに複合的なメリットがあることが分かりました。昨年は、最新のフィーチャーとモデル・アーキテクチャーを使用してモデルのトレーニング、チューニング、評価を自動的かつ定期的に実行するツールに投資しました。たとえば、モデルのトレーニング後、リリース前にパフォーマンス・ダッシュボードを継続的に更新しています。このようにすると、エンジニアは、リリース前でもモデル候補がトラフィックのサブセットで古くなっているかどうかを簡単に検出して、事前対処として再トレーニングすることができます。

モデルのリリース後は、パフォーマンスをモニターして、次のリリースに取り組みます。不正使用の傾向は急速に変化するため、機械学習モデルでは早い段階でドリフトが起こるようになります。トレーニングに使用されたデータは、最新状況の不正使用を表すものではなくなります。

これらのツールを使用して、モデルをリリースする速度を 3 倍に高め、本番環境の大幅なパフォーマンス向上を実現しています。実際、前月のモデルを最新のデータで (同じフィーチャー定義とアーキテクチャーを使用して) 再トレーニングしてリリースすると、毎月、再現率を 50% の割合で向上できます。頻繁かつ安全にモデルをリリースできることで、フィーチャーエンジニアリングとモデリングの作業のメリットを利用して組み合わせ、変化する不正使用のパターンに合わせて調整を加えて Radar ユーザーに提供できます。

モデルが本番環境に移行されると、モデルとポリシーのペアのパフォーマンスが継続的にモニターされます。スコアがブロックのしきい値を下回っている支払いについては、取引がカード保有者によって不正使用として申請されたかどうかについて最終的な結果を確認できます。一方、スコアがしきい値を上回っている支払いはブロックされるため、結果を確認できません。本番環境の完全な精度と再現率または ROC の曲線の計算は、反事実的分析を伴うため、検証曲線の計算よりも複雑です。ブロックした支払いについても何が起こり得たかについて統計的に安定した推計を得る必要があります。Stripe は長年かけて、そのためのメソッドを開発してきました。詳しくは、こちらの動画をご覧ください。

ここまで、データサイエンティストと機械学習エンジニアが機械学習モデルを開発する際に確認するモデルの効果のメトリクスをいくつか説明しました。次に、ビジネスで不正防止についてどのように考えるべきかについて説明します。

Stripe によるサポート

不正使用対策のパフォーマンスを得るために 1 つの数字だけに注意を向けていると、ビジネスにとって最適ではない選択を行う場合があります。ビジネスでは、偽陰性を過度に重視する傾向があり、見落とされた不正使用について心配し、偽陽性を十分に重視していません。この考え方から、すべての国際カードをブロックするなど、非効果的でコストのかかる総当たりの対策を取ることがよくあります。全般的に、すべての多様なパフォーマンス指標がどのように関連しているか、自社固有の状況に適切なトレードオフはどのようなものかを考える必要があります。以下に、不正防止システムの効果を判断するために、これらのメトリクスがどのように関連しているかの例を示します。

損益分岐点の精度の概算モデル

平均売上高が $26 で、マージンが 8% である場合、売上当たりの利益は $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.7 であり、損益分岐点の精度は 1 / (1 + 18.71) = 5.07% です。

Radar の機械学習しきい値は、加盟店のマージンの最適化とユーザーベース全体のブロック率の安定状態の維持とのトレードオフを行います。ダッシュボードにアクセスすると、Radar の機械学習がビジネスに対してどのようにパフォーマンスを発揮しているかを確認できるだけではなく、Radar for Teams を使用している場合にはカスタム・ルールのパフォーマンスを確認できます。これらのツールを使用することで、集計されたカスタム・コホートに基づいて類似の業種や同規模のビジネスの不正使用に関する不審請求の申請率、偽陽性率、ブロック率を競合企業と簡単に比較できます。

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

Radar for Teams では、リスクのしきい値を直接調整することによってブロックまたは許可する支払い件数を増やし、保護を微調整することができます。自動機械学習アルゴリズムが増えたほか、Radar for Teams により、個人のビジネスは、ダッシュボードで、ルールをカスタマイズ構成し (たとえば、「IP の国がカードの国と一致しない場合に $1,000 を上回るすべての取引をブロックする」)、介入をリクエストし、フラグが設定された支払いを手動でレビューすることができます。

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

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

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

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

次のステップ

このガイドが、機械学習が Stripe における不正防止にどのように適用されているか、不正防止システムの効果をどのように判断するかについて、ご理解を深めていただけたら幸いです。Radar の機能についてもっと知ることも、ドキュメントをご覧いただくこともできます。

ご不明な点や Stripe Radar の詳細については、お問い合わせください

今すぐ始めましょう。アカウントを作成するか、お問い合わせください。

アカウントを作成し、決済の受け付けを開始しましょう。契約や銀行情報は不要です。ビジネスに合わせたカスタムパッケージの設計については、お問い合わせください。