Amazonがカーネル法を使ってミリ秒で不正を検出する方法

AIに隠された数学の魔法

ほとんどの人は、不正検出はソフトウェアの問題だと考えています。実際には、それは数学の問題です。そしてその背後にある数学は、ほとんどの人が気づいているよりもはるかに美しく、驚くべきものです。

毎日、Amazonはグローバルなマーケットプレイス全体で何百万もの取引を処理しています。この膨大な量の活動の中に隠れているのは、不正な注文、盗まれたクレジットカードによる取引、偽のアカウント、不審な購入パターンです。課題は、詐欺師がじっとしていないことです。彼らは絶えず行動、デバイス、場所、手法を変えていきます。単純なルールベースのシステムでは追いつくのに苦労します。カーネル法と呼ばれる数学の一分野に支えられた機械学習こそが、Amazon規模でのリアルタイム不正検出を可能にするものです。

この記事は「AIに隠された数学の魔法」シリーズの一部です。今日は、カーネル法とサポートベクターマシン、そしてこれらの数学的アイデアが毎日毎秒Amazonの顧客をどのように守っているかに深く潜り込みます。

セクション1:ビジネスシナリオ

典型的なAmazonの顧客を想像してください。その人は週末に本を買い、時々電化製品を注文し、平日に日用品をまとめ買いします。アカウントは3年もので、配送先住所は数か月間変わっておらず、購入は毎回同じ都市から行われています。

ここで、火曜日の正午に何か異常なことが起こると想像してください。10分の間に、そのアカウントから3件の高額注文が行われます。配送先住所が別の国に変わります。新しい支払い方法が追加されます。注文を行うデバイスが異なります。IPアドレスは、この顧客が通常買い物をする場所から何千キロも離れた場所を指しています。

Amazonはミリ秒単位で決定を下さなければなりません。これは本物の顧客が珍しい買い物をしているのでしょうか。おそらく旅行中か、贈り物を購入しているのでしょうか。それとも、認証情報を入手し、アカウントがロックされる前に素早く動いている詐欺師なのでしょうか。

どちらの方向に間違った決定を下しても、深刻な結果をもたらします。不正を承認すれば、金銭的損失、チャージバック、販売者との関係の損傷、顧客の信頼の侵食を意味します。正当な顧客をブロックすれば、悪い体験、失われた売上、長年忠実だった人との関係の損傷を意味します。

これは単純なif-elseルールで解決できる問題ではありません。パターンは複雑すぎ、多様すぎ、速すぎます。これこそが、カーネル法とサポートベクターマシンが解決するために作られた問題そのものです。

セクション2:機械学習モデルのアーキテクチャ

私たちが構築するモデルはサポートベクターマシン、つまりSVMです。SVMが不正検出にこれほど強力な理由を理解するには、まずそれが解決する本質的な問題を理解する必要があります。

すべてのAmazon取引をグラフにプロットすることを想像してください。本物の取引は1つの領域に集まります。不正な取引は別の領域に集まります。理想的な世界では、2つのグループの間に直線を引いて、それを使って新しい取引を分類できるでしょう。しかし、実際の不正データは決してそんなにきれいではありません。2つのグループは重なり合い、互いに絡み合い、どんな直線でも分離できない複雑な形を形成します。

ここでカーネルトリックの登場です。カーネル法は注目に値することを行います。取引データを元の2次元または10次元空間から、2つのグループが分離可能になるはるかに高次元の空間へ数学的に変換します。実際にその高次元変換を直接計算するわけではありません。それは計算コストが高くなります。代わりに、カーネル関数を使って、その高次元空間内の任意の2つの取引間の類似度を、明示的にそこへ行くことなく計算します。それがトリックです。

Amazonの不正検出アーキテクチャは、分析されるシグナルの性質に応じて2種類のカーネルを使用します。

多項式カーネルは、関連するパターンが特徴の組み合わせから来る場合に使用されます。取引金額に購入頻度を掛けたもの、または支払い方法と場所のリスクを組み合わせたものなど、変数間の相互作用効果を捉えます。これらの相互作用は、線形モデルが完全に見逃すものです。

RBFカーネル、つまり放射基底関数は、最も強力な汎用選択肢です。任意の複雑な境界を自動的に処理する方法で、任意の2つの取引がどれほど似ているかを測定します。取引がモデルが以前に見たどの本物の取引にも似ていない場合、RBFカーネルはそれに非常に低い類似度スコアを与え、レビューのためにフラグを立てます。

SVMモデルは、サポートベクター、つまり本物と不正の境界に最も近い取引を特定することで、決定境界を学習します。境界が見つかれば、トレーニングデータの他のすべては無関係になります。これにより、SVMは本番環境でエレガントで計算効率が高くなります。

セクション3:純粋な数学エンジン

次に、このシステムを動かす数学を見てみましょう。以下のすべての数式は、実際の数値を使った鉛筆と紙による完全に解かれた例で検証されています。

多項式カーネルの数式は次のとおりです:

K(x, y) = (x · y + c)^d

ここで、xとyは2つの取引の特徴ベクトル、cは低次の項の影響を制御する定数、dは境界の複雑さを制御する多項式の次数です。

RBFカーネルの数式は次のとおりです:

K(x, y) = exp(-γ ||x – y||²)

ここで、γ(ガンマ)は、1つのトレーニング例の影響がどこまで及ぶかを制御します。小さいガンマは遠くまで及ぶことを意味し、大きいガンマは近くに及ぶことを意味します。

SVMの決定関数は次のとおりです:

f(x) = Σ αᵢ yᵢ K(xᵢ, x) + b

ここで、αᵢは各サポートベクターに対して学習された重み、yᵢはクラスラベル(不正の場合+1、本物の場合-1)、K(xᵢ, x)はサポートベクターと新しい取引の間のカーネル類似度、bはバイアスしきい値です。f(x)がゼロより大きい場合、取引は不正としてフラグが立てられます。

それでは、実際の数値で各計算をステップバイステップで行いましょう。

2つの特徴で記述される2つのAmazon取引があります:取引金額(正規化済み)と購入頻度です。

取引A:x = [2, 3] つまり正規化された金額2と頻度3 取引B:y = [1, 4] つまり正規化された金額1と頻度4

多項式カーネルにはc = 1とd = 2を、RBFカーネルにはγ = 0.5を設定します。

多項式カーネルのステップバイステップ:

ステップ1:内積x · yを計算 x · y = (2 × 1) + (3 × 4) = 2 + 12 = 14

ステップ2:定数cを加算 14 + 1 = 15

ステップ3:d = 2乗する 15² = 225

K(x, y) = 225

この大きな値は、多項式特徴空間において、これら2つの取引が非常に似ていることを示しています。カーネルは、高次元変換を明示的に計算することなく、金額と頻度の間の相互作用を捉えました。

RBFカーネルのステップバイステップ:

ステップ1:差ベクトルx – yを計算 [2 – 1, 3 – 4] = [1, -1]

ステップ2:各要素を二乗 [1², (-1)²] = [1, 1]

ステップ3:二乗差を合計して||x – y||²を求める 1 + 1 = 2

ステップ4:負のガンマを掛ける -0.5 × 2 = -1.0

ステップ5:指数関数を適用 exp(-1.0) = 0.3679

K(x, y) = 0.3679

0から1のスケールでのこの0.3679というスコアは、2つの取引が適度に異なることを示しています。1に近いRBFスコアは、2つの取引がほぼ同一の動作をすることを意味します。0に近いスコアは、非常に異なることを意味し、不正のフラグを立てます。

決定関数のステップバイステップ:

訓練されたSVMが重みα = [0.8, 0.6]とラベルy = [+1, -1]を持つ2つのサポートベクターを学習し、新しい取引に対するこれら2つのサポートベクターのカーネル値が[225.0, 0.3679]で、バイアスb = 0.1であると仮定します。

f(x) = (0.8 × 1 × 225.0) + (0.6 × -1 × 0.3679) + 0.1 f(x) = 180.0 + (-0.2207) + 0.1 f(x) = 179.8793

f(x) = 179.8793がゼロより大きいため、取引は本物として分類されます。本物の取引を表す最初のサポートベクターからの強い正のシグナルが決定を支配します。

上記のすべての値はPythonで独立して検証され、まさにこれらの結果が得られました。

セクション4:Pythonコンピュータサイエンス実装(ゼロから)

次の実装は、NumPyを使用してゼロからカーネル不正検出器を構築します。すべてのメソッドは、ショートカットやプレースホルダーなしで完全に実装されています。完全な実行ブロックが含まれており、エラーなく実行されることが検証されています。

実行すると、このコードは正しい不正分類と、テストセット内の各取引に対して0から1の間の解釈可能なリスクスコアを生成します。不正な取引は1.0に近い高いリスクスコアを取得します。本物の取引は0.0に近い低いリスクスコアを取得します。

セクション5:本番機械学習ブループリント

この本番コードを実行すると、RBFカーネルモデルと多項式カーネルモデルの両方がテストセットで100%の精度を達成します。RBFモデルは9つのサポートベクターを特定し、確認された不正取引に0.9647の不正確率を割り当てます。多項式モデルは同じ結果を達成するために2つのサポートベクターのみを必要とし、よく選ばれたカーネルの力を実証しています。

ゼロから構築したバージョンから本番バージョンへの移行には、いくつかの重要な違いが伴います。第一に、scikit-learnのSVM実装は、高度に最適化された二次計画ソルバー、具体的には逐次最小最適化アルゴリズムを使用しており、これは数百万のトレーニング例にスケールしますが、私たちの手書き実装は数千を超えると計算的に非実用的になります。第二に、プラットスケーリングを使用した確率キャリブレーションは、生の決定スコアを適切にキャリブレーションされた確率に変換し、0.5を超えるスコアを手動レビューに送り、0.9を超えるスコアを直接ブロックするなどの段階的なビジネスルールを駆動するために使用できます。第三に、class_weight='balanced'パラメータは、本物の取引が不正取引を大幅に上回る不正データセットの自然な不均衡を自動的に補正し、モデルが高い精度を達成するために単にすべてを本物と呼ぶことを学習しないことを保証します。

実際のAmazon本番環境では、アーキテクチャはさらに拡張されます。新しい不正パターンが出現するにつれて、モデルは継続的に再訓練されます。アカウントが既知の不正ネットワークに接続されているかどうかなど、グラフベースのシグナルで特徴が強化されます。カーネルSVMの出力は、より大きなアンサンブルモデル内の多くのシグナルの1つとして使用されることが多く、ツリーベースのモデルが匹敵できない方法で非線形境界を描く独自の能力を貢献します。

戦略的洞察

AI実務者とビジネスリーダーにとって、この記事の教訓は不正検出よりも深いものです。カーネル法は、インテリジェントシステムについてのより広い真実を明らかにします:生の入力空間は、答えが存在する場所であることはめったにありません。現実世界のデータは絡み合い、重なり合い、線形思考が解きほぐせない非線形の関係で満ちています。カーネルトリックの力は、実際にそこへ行く計算コストなしに、はるかに豊かな数学的空間で推論できるようにすることです。同じ原則、つまり難しい問題を答えが見えるようになる問題に変換することは、推薦システム、リスクスコアリング、予知保全、ヘルスケア診断、そしてほぼすべての真剣なエンタープライズ規模の機械学習問題に適用されます。これを理解するビジネスリーダーは、データサイエンスチームにより良い質問をするでしょう。これを理解するエンジニアは、データがきれいで単純であることを拒否するときに実際に機能するシステムを構築するでしょう。

Amazonの不正検出は魔法ではありません。それは目に見えずに膨大な速度で働く数学であり、あなたは今、その仕組みを正確に理解しています。

#MachineLearning #ArtificialIntelligence #DataScience #Mathematics #Amazon #FraudDetection #KernelMethods #SVM #RBFKernel #PolynomialKernel #TheMagicOfHiddenMathematics #AIEngineering #MLEngineering #Python #SVMClassification #EnterpriseAI #AIStrategy #DeepLearning #NeuralNetworks #TechLeadership


LinkedInでKeshavan Thiagarajaによって最初に公開されました。LinkedInで原文をお読みください。 [1]