Amazon Web Services ブログ
Amazon Fraud Detector で PoC (概念実証) を構築し、不正行為を迅速に検出する
Amazon Fraud Detector は偽のアカウントの作成やオンライン決済詐欺など、不正行為の可能性があるオンライン活動を簡単に特定できるようにするフルマネージドサービスです。汎用機械学習 (ML) パッケージとは異なり、Amazon Fraud Detector は不正を検出するように特別に設計されています。Amazon Fraud Detector は、最新の ML サイエンスのデータおよび Amazon.com と AWS の 20 年以上にわたる不正検出の経験を組み合わせて、ビジネスでの不正行為を検出するためにカスタマイズした ML モデルを構築するものです。
この投稿は、オンライン不正インサイトモデルの堅牢な概念実証 (POC) を開発および実行するのに役立ちます。そのため、ビジネスにおける Amazon Fraud Detector の有用性を評価できます。オンライン不正インサイトモデルは、新しいアカウントでの不正、オンライン取引詐欺、偽のレビューなど、さまざまな種類の不正行為を解決するための教師あり ML モデルです。データの可用性にもよりますが、通常は 1〜2 週間だけで Amazon Fraud Detector POC を完了することができます。
不正のライフサイクル
不正はあらゆる形や規模で発生しますが、一般的にどれもが同じ 3 つのステップのライフサイクルに従います。
- 不正ユーザーがプラットフォームに加わる
- 不正ユーザーが不正を行う (多くの場合、同じアカウントで複数回)
- 最終的に、不正を発見し、不正ユーザーをブロックする
次の図は、このライフサイクルを視覚化したものです。
まず、不正ユーザーがアカウントを登録します。この図ではタイムゼロ (T0) と表示しています。その後不正イベントが、タイム T1、T2、T3 で発生し、システムによって検出されなくなります。チャージバックの形で数時間、数日、または数週間となる可能性のある後の特定の時点 (TN) で、不正を発見し、不正ユーザーをブロックします。
不正の発見が遅れると、コストが発生します。財務コストには、販売する商品のコスト、人手による確認から生まれるコスト、チャージバック料金に関連するものがあります。さらに、会社の評判または規制に関するリスクも可能性としてあります。完全なシナリオでは、不正を予測し、損害が発生する前にそれを阻止します。その 1 つの方法は、不正なユーザーがアカウントを登録するとき (T0) に、プラットフォームに直接入れないようにすることです。
このときに、Amazon Fraud Detector が役に立ちます。誰が不正を犯す可能性が高いかを予測するカスタムモデルを構築し、その情報を使用して、不正が発生する前に防止 (または最小化) することができます。 いくつかのケースでは、Amazon Fraud Detector で最大で 95% 迅速に不正を検出できました。
オンライン不正インサイトモデルを使用して POC を設計するときは、T0 にできるだけ近い時点で (理想的にはアカウント登録時に) 不正ユーザーを検出するモデルを構築する必要があります。拡張 POC の一部として、後続のリスクの高いイベント (トランザクションなど) で不正なユーザーを検出するモデルを追加で構築することもできます。
オンライン不正インサイトを得るための POC の計画
オンライン不正インサイトモデルで POC を開始する際には、次のことを考慮してください。
- 特定のユースケース – オンライン不正インサイトモデルは、新しいアカウントでの不正、オンライン取引詐欺、偽のレビューなど、さまざまな種類の不正行為を検出するのに適しています。この記事を書いている時点では、アカウントの乗っ取り (ATO) は検出できません。
- ライフサイクルで不正を検出する場合 – これは、適切な POC を設計する上で重要な要素です。不正を早期に検出できるのが理想です。
POC を 3 つのフェーズに分割する必要があります。
- トレーニングデータの収集 – モデルのトレーニングに使用するデータを収集します。
- モデルのトレーニングと検出器の設定 – モデルを作成してトレーニングし、企業での不正を検出します。トレーニング済みのモデルとルールを組み合わせた検出器を構築します。
- 性能の評価 – Amazon Fraud Detector が不正をより早く検出し、不正による損失を削減しているかどうかを判断します。
無料トライアル期間内に POC を完了することができます。通常は 1〜2 週間かかります。ユースケースについてサポートが必要な場合は、Amazon Fraud Detector チームにお問い合わせください。
トレーニング用データの収集
POC の最初のステップは、モデルをトレーニングするための関連データを収集することです。
まれな場合を除いて、一般的にはデータが多いほど良いとされます。モデルをトレーニングするために、Amazon Fraud Detector は少なくとも 10,000 件のレコードが必要で、それらのレコードの少なくとも 500 件が不正であると識別されます。ただし、提供するレコードや不正の例の種類が多いほど、結果も正確になります。人為的にサンプルを作成する必要があるということではありません。そうではなく、過去にあったイベントを追加するだけで大丈夫です。少なくとも 3〜6 か月のデータを収集する必要があります。
不正検出モデルをトレーニングする場合、熟成したデータを使用する必要があります。これは、不正ライフサイクルが完了しているということを表します。ユースケースによっては、これに 30〜45 日以上かかる場合があります。たとえば、カードを提示しないトランザクション (チャージバック) 詐欺を検出した場合、不正な請求を特定するには通常、ステートメントサイクルが必要です。トレーニングデータセットの最新のデータは少なくとも 4〜6 週間前のものである必要がありますが、不正のライフサイクルを完了するほど古いデータを決定する際は、慎重を期して判断を行ってください。
まとめると、モデルをトレーニングするには、次のベストプラクティスに従ってください。
- 少なくとも 10,000 件のレコードを使用し、そのうち 500 件は不正の例です (ただし、常にレコード件数が多い方がよいです)。
- データをトレーニングする期間は 3〜6 か月です (ただし、作業量は少なくなります)。最も古いデータでも 1 年を超えないようにします。
- データセットを熟成させます。ビジネスはそれぞれ異なりますが、少なくとも 4 週間前のものです。
モデルのトレーニングと検出器の設定
トレーニングデータを収集したので、時間をかけてモデルをトレーニングし、検出器を作成します。詳細については、以下をご参照ください。
- Build an Amazon Fraud Detector Model
- Review the Trained Model’s Performance
- Generate Real-Time Fraud Predictions
AWS SDK または AWS コマンドラインインターフェイス (AWS CLI) を使ってこれらのリソースをプログラムで作成する方法の詳細については、GitHub リポジトリをご参照ください。
モデルスコアのしきい値の選択
モデルのスコアは 0 (最も危険性が低い) から 1,000 (最も危険性が高い) の間になります。スコアしきい値を使用して、誤検出とのバランスを取りながら、許容可能な範囲で不正検出率を特定する必要があります。たとえば、不正なアカウント登録を特定するとします。次のグラフは、500 のスコアしきい値 (500 以上のスコアが不正とラベル付けされていることを意味します) で、不正なアカウント登録の 53.2% を検出することを示しています。また、正当なイベントの 0.4% が不正と誤って分類されていることも示しています。
Amazon Fraud Detector では、同じ情報をテーブル形式で表示することもできます。次の画像は、150 のスコアしきい値 (150 以上のスコアが不正とラベル付けされていることを意味します) で、不正なアカウント登録の 74% を検出することを示しています。また、正当なイベントの 3% が不正と誤って分類されていることも示しています。
性能の評価
上記の手順を完了すると、次の図に示すように、不正のユースケースのアクティブモデルと検出器が作成されます。
これで、このモデルと検出器を使用して、ビジネスにおける Amazon Fraud Detector の有用性を評価できます。そのためには、AWS SDK と GetPrediction
API を使用して、不正予測を作成する必要があります。GetPrediction
API は新しいイベント (アカウント登録など) を取り込んで、モデルに基づいた不正スコアと検出器ルールに基づいた結果を出力します。最新のデータまたは 30 日以内のデータを使用して、モデルをテストする必要があります。こうすると、テストデータセットがトレーニングデータセットと重複しません。少なくとも、2 週間にわたる 1,000〜5,000 件のレコードでモデルをテストしてください。不正の識別におけるモデルの有効性を適切に評価するのに十分なデータが必要です。
GetPrediction
API をバッチ方式で実行する方法の詳細については、 GitHub の「Fraud Detector Predict API」をご参照ください。合成データセットをテストデータセットに置き換える必要があります。利用可能な最新のデータでモデルをテストする場合、モデルの性能を評価するには、最終日 (または最終週) のデータが最も有用です。
ユースケースとデータの可用性に応じて、次の評価戦略のいずれかを検討できます。
- 不正を検出する時間
- 節約額
- 調査の歩留まり
不正を検出する時間
Amazon Fraud Detector の有用性を判断するのに、不正検出時間 (TTDF) メトリクスをベンチマークとして使用する方法があります。不正ユーザーが不正のライフサイクルを開始した瞬間から、TTDF を測定します。次の図 (前出) は、不正検出のタイムラインを示しています。
TTDF はアカウント登録 (T0) から始まって、T0 と TN の差として定義されます。TTDF を最小限に抑えることが目標です。POC の一部として、平均 TTDF が減少したかどうかを判断できます。
このユースケースでは、Amazon Fraud Detector でモデルを作成し、登録時 (T0) に不正を検出します。TTDF を計算するには、以下を行う必要があります。
- モデルの性能メトリクスを使用して、真の陽性率とビジネスでの誤検出率のバランスを取れる適切なモデルスコアのしきい値を決定します。1% の誤検出率はモデルのしきい値を設定する際の出発点として適していますが、理想的なカットオフはリスク許容度と実行するアクション (アカウントのブロック、あるいは手動での確認のための送信など) によって異なります。
- Amazon Fraud Detector を介して新しいアカウント登録のサンプルを実行し、不正のスコアと結果を作成します。イベントごとに、イベントが発生したときのタイムスタンプ (T0)、リスクスコア、結果を保存します。そのイベントが不正とマークされた場合は、不正の判定が行われたときのタイムスタンプ (TN) を保存します。
- 不正とマークされたイベントの場合、T0 から TN を引きます。それが TTDF になります。
理想的なシナリオでは、Amazon Fraud Detector がすべての不正のうちかなりの部分を識別し、TTDF が現在のシステムよりも短くなります。
節約額
TTDF 戦略の拡張で、現在のアプローチと比較して節約できる金額を見積もることもできます。オンライン不正インサイトモデルは、全員を許可して事後に不正を特定して (不正を軽減する) のではなく、ライフサイクルの早い段階で不正ユーザーを阻止して (不正を防止する) ように設計されています。不正ユーザーがアカウントの登録を阻止できれば、その後のビジネス内での活動の影響を劇的に制限できます。このユースケースでは、登録時 (T0) に不正ユーザーを検出します。
節約額をベンチマークとして評価するには、以下を完了する必要があります。
- モデルの性能メトリクスを使用して、真の陽性率とビジネスでの誤検出率のバランスを取れる適切なモデルスコアのしきい値を決定します。1% の誤検出率はモデルのしきい値を設定する際の出発点として適していますが、理想的なカットオフはリスク許容度と実行するアクションによって異なります。
- Amazon Fraud Detector を介して登録イベントのテストサンプルを実行し、不正のスコアと結果を作成します。イベントごとに、イベントが発生したときのタイムスタンプ (T0)、リスクスコア、結果を保存します。そのイベントが不正とマークされた場合は、不正の判定が行われたときのタイムスタンプ (TN) と不正損失をドルで保存します。
- 次の数を数えます。
- スコアしきい値に基づいて防止した不正イベント。各不正イベントでは、必ず損失をドルで保存してください。このデータを利用できない場合は、見積もり数を使用してください。
- スコアのしきい値に基づいて不正であると誤って識別された正当なイベント。正しく識別されなかった正当な各イベントでは、潜在的な収益の喪失または誤検出の調査に関連するコストを見積もります。
- 各バケットの数を取得し、イベントごとのコストで乗算します。たとえば、20 件が不正で 980 件が正当である 1,000 件のイベントの場合、次のようなイベントが見つかる可能性があります。
- モデルは、登録時に 20 件の不正イベントのうち 10 件を正しく識別したため、不正の発生を防止しました。各不正イベントにおいて、不正による損失を 150 USD と想定すると、軽減した不正による損失の合計は 10 x 150 USD = 1,500 USD となります。
- モデルは、正当なイベントの総数の 1% に不正の可能性があると誤ってフラグを立てたため、10 人の顧客に不正の可能性があると誤ってフラグを立てました。これらの顧客の調査は手動で行われ、調査ごとに 5 USD かかります。誤検出の総コストは 10 x 5 USD = 50 USD となります。
- 軽減した不正による損失から、誤検出のコストと Amazon Fraud Detector の実行コストを差し引くことで、節約した合計金額を計算します。このユースケースの場合、各評価あたり 0.03 USD かかるとすると、節約した合計金額は 1,500 USD (軽減できた不正による損失) – 50 USD (誤検出のコスト) – 30 USD (Amazon Fraud Detector の実行コスト) = 1,420 USD の節約となります。
- 選択したスコアしきい値における Amazon Fraud Detector からの金額、回数、割合を現在の不正検出システムと比較します。
現在のソリューションと比較して、Amazon Fraud Detector で大幅な節約が示されることが理想です。
調査の歩留まり
Amazon Fraud Detector をベンチマークとして評価するもう 1 つの方法は、人手による歩留まりと現在の不正検出システムの歩留まりの比較を確認することです。歩留まりは、不正であることが判明した調査の数を調査の総数で割ったものとして定義されます。人間の調査員が誤検出の調査に時間を費やさないように、歩留まり率が高いことが理想です。
調査の歩留まりをベンチマークとして評価するには、以下を実行します。
- モデルの性能メトリクスを使用して、真の陽性率とビジネスでの誤検出率のバランスを取れる適切なモデルスコアのしきい値を決定します。5% の誤検出率はモデルのしきい値を設定する際の出発点として適していますが、理想的なカットオフはリスク許容度によって異なります。
- Amazon Fraud Detector を介してイベントのサンプルを実行し、不正のスコアと結果を作成します。
- 調査のために送信するイベントの数 (総調査数または TIC) および不正としてマークされた調査済みイベントの数 (FIC の不正調査数) を記録します。
- 調査の歩留まりを計算するには、FIC を TIC で割ります。
- Amazon Fraud Detector からの歩留まりを、現在の不正検出システムの歩留まりと比較します。
Amazon Fraud Detector の方が歩留まりがより高く、十分な量の不正を検出していることが理想です。
まとめ
POC が成功したら、検出器をシャドウモードで実行するか、本番トラフィックを検出器にルーティングすることにより、ライブシステムに移行できます。シャドウモードまたは本番への移行はこの投稿の内容の範囲外ですが、AWS ソリューションアーキテクトは、実装を次の段階に進めるためのサポートを行うことができます。
著者について
Chris Porter は Amazon Fraud Detector を担当するシニアプロダクトマネージャーです。機械学習を活用して不正を防いでいる AWS のお客様の支援に取り組んでいます。余暇には、太平洋岸北西地域でハイキングやスキー、山登りを楽しんでいます。
Mike Ames は Amazon Fraud Detector を担当するリサーチサイエンスマネージャーです。機械学習を使用して不正使用や、浪費、迷惑行為に対応している企業をサポートしています。余暇には、仲間とともに 90 年代のヘビーメタルをエレクトリクマンドリンで演奏しています。