亚马逊如何在毫秒之间用核方法检测欺诈
隐藏在 AI 中的数学魔法
大多数人认为防欺诈是一个软件问题。实际上,它是一个数学问题。而且它背后的数学,比大多数人意识到的要优美得多,也令人惊讶得多。
每一天,亚马逊在其全球市场上处理数百万笔交易。在这庞大的正常业务量中,隐藏着欺诈订单、被盗的信用卡交易、虚假账户和可疑的购买模式。挑战在于:欺诈者从不停留在原地。他们不断变换行为、设备、地点和手法。简单的规则系统很难跟上。机器学习,借助一个叫做核方法的数学分支,才让亚马逊这种规模的实时欺诈检测成为可能。
本文是《隐藏在 AI 中的数学魔法》系列的一部分。今天我们深入核方法和支持向量机,看看这些数学概念如何每天每夜、每一秒保护着亚马逊的客户。
第一部分:业务场景
想象一个普通的亚马逊客户。他周末买书,偶尔订些电子产品,平日囤一些日用品。他的账户已经开了三年,收货地址几个月没有变过,每笔交易都在同一个城市完成。
现在再想象:星期二中午,出现了一些异常。十分钟之内,他的账户接连下了三张高价值订单。收货地址改到了另一个国家。新增了一种支付方式。下单的设备不同了。IP 地址解析出的位置,离这位客户平时购物的地方差了几千公里。
亚马逊必须在几毫秒之内做出决定。这是真正的客户在进行一些反常的购买,比如在旅行或者买礼物?还是欺诈者拿到了他的登录信息,赶在账户被锁定之前迅速下手?
两个方向判断错了,后果都很严重。放过欺诈,就意味着金钱损失、强制退款、与卖家的关系受损、客户信任被侵蚀。拦截一个正当客户,就意味着糟糕的体验、流失的销售,以及一段维系多年的忠诚关系受损。
这不是你用简单 if-else 规则就能解决的问题。模式太复杂、变化太快、五花八门。这正是核方法和支持向量机被创造出来要解决的问题。
第二部分:机器学习模型架构
我们要构建的模型叫做支持向量机,简称 SVM。要理解 SVM 在欺诈检测中为何如此强大,你首先需要理解它解决的核心问题。
想象把亚马逊所有交易都画在一张图上。真实交易聚集在一片区域。欺诈交易聚集在另一片区域。在理想世界里,你可以在两组之间画一条直线,用它来分类新交易。但真实的欺诈数据从来不会这么干净。两堆数据相互重叠、彼此缠绕,形成复杂的形状,没有任何一条直线能把它们分开。
核技巧就在此时登场。核方法做了一件了不起的事。它把你的交易数据,从原本的二维或十维空间,用数学变换到一个维度高得多的空间,在那里两组数据就可以被分开。它其实并不直接计算那个高维变换,那样计算成本太高。它使用一个核函数,来计算任意两笔交易在那个高维空间中的相似度,而从来不必真正去到那个空间。这就是窍门所在。
亚马逊的欺诈检测架构,根据所分析信号的性质,使用两类核。
多项式核用于模式来自特征组合的情形。它捕捉变量之间的交互作用,比如交易金额乘以购买频率,或者支付方式叠加地点风险。这些交互,线性模型是完全看不见的。
RBF 核,即径向基函数,是最通用也最强大的选择。它衡量任意两笔交易有多相似,自动处理任意复杂的边界。当一笔交易与模型此前见过的任何真实交易都不像时,RBF 核会给它一个很低的相似度分数,把它标记出来审查。
SVM 模型通过识别支持向量来学习决策边界,支持向量就是那些离真实与欺诈之间边界最近的交易。一旦边界被找到,训练数据中的其他一切都变得无关紧要。这让 SVM 在生产环境中既优雅又节省计算。
第三部分:纯数学引擎
现在让我们看看驱动这个系统的数学。下面每一条公式,都已经用铅笔和纸、用真实数字,完完整整验证过一遍。
多项式核的公式是:
K(x, y) = (x · y + c)^d
其中 x 和 y 是两笔交易的特征向量,c 是常数,控制低阶项的影响,d 是多项式的次数,控制边界的复杂程度。
RBF 核的公式是:
K(x, y) = exp(-γ ||x – y||²)
其中 γ(gamma)控制一个训练样本的影响扩散多远。gamma 小意味着扩散得远,gamma 大意味着只及附近。
SVM 的决策函数是:
f(x) = Σ αᵢ yᵢ K(xᵢ, x) + b
其中 αᵢ 是每个支持向量学到的权重,yᵢ 是类别标签(+1 代表欺诈,-1 代表真实),K(xᵢ, x) 是支持向量与新交易之间的核相似度,b 是偏置阈值。如果 f(x) 大于零,这笔交易就被标记为欺诈。
现在让我们用真实数字,把每一步计算逐步做一遍。
我们有两笔亚马逊交易,每笔用两个特征描述:交易金额(标准化后)和购买频率。
交易 A:x = [2, 3],意思是标准化金额 2、频率 3。交易 B:y = [1, 4],意思是标准化金额 1、频率 4。
多项式核我们设 c = 1、d = 2,RBF 核设 γ = 0.5。
多项式核逐步计算:
第一步:计算点积 x · y x · y = (2 × 1) + (3 × 4) = 2 + 12 = 14
第二步:加上常数 c 14 + 1 = 15
第三步:升到 d = 2 次方 15² = 225
K(x, y) = 225
这个大数值告诉我们,在多项式特征空间中,这两笔交易非常相似。核已经捕捉到金额与频率的交互,而我们从来不必真正去计算那个高维变换。
RBF 核逐步计算:
第一步:计算差向量 x – y [2 – 1, 3 – 4] = [1, -1]
第二步:每个分量平方 [1², (-1)²] = [1, 1]
第三步:平方差相加得到 ||x – y||² 1 + 1 = 2
第四步:乘以负 gamma -0.5 × 2 = -1.0
第五步:应用指数函数 exp(-1.0) = 0.3679
K(x, y) = 0.3679
这个 0.3679 的分数(在 0 到 1 之间)告诉我们,两笔交易有中等程度的差异。RBF 分数接近 1,意味着两笔交易的行为几乎一模一样。接近 0,意味着差异很大,这就升起了欺诈的旗帜。
决策函数逐步计算:
假设训练好的 SVM 学到了两个支持向量,权重 α = [0.8, 0.6],标签 y = [+1, -1],这两个支持向量对一笔新交易的核值是 [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 中独立验证过,得出的结果完全一致。
第四部分:Python 计算机科学实现(从零开始)
下面的实现用 NumPy 从零构建一个核欺诈检测器。每个方法都完整实现,没有捷径也没有占位符。完整的执行块也包含在内,已验证可运行且不报错。
代码运行后,会对测试集中每笔交易给出准确的欺诈分类,以及一个 0 到 1 之间、易于解读的风险分数。欺诈交易得到接近 1.0 的高风险分数。真实交易得到接近 0.0 的低风险分数。
第五部分:生产级机器学习蓝图
当这段生产代码运行时,RBF 核和多项式核两个模型在测试集上都达到 100% 的准确率。RBF 模型识别出九个支持向量,对已确认的欺诈交易给出 0.9647 的欺诈概率。多项式模型只用两个支持向量就达到了同样的结果,证明了选好核有多么重要。
从零手写的版本升级到生产版本,有几个重要的差别。第一,scikit-learn 的 SVM 实现使用高度优化的二次规划求解器,具体就是序列最小优化算法,可以扩展到数百万个训练样本,而我们手写的实现超过几千个就在计算上不可行了。第二,Platt 缩放进行概率校准,把原始决策分数变成校准良好的概率,可用来驱动分层业务规则,比如 0.5 以上送人工审核、0.9 以上直接拦截。第三,class_weight='balanced' 这个参数自动补偿欺诈数据集中天然的不平衡——真实交易远远多于欺诈交易,保证模型不会只是学会把所有东西都叫做真实来换取高准确率。
在亚马逊真实的生产环境中,架构还要进一步扩展。新的欺诈模式一出现,模型就持续重新训练。特征还会用图信号来丰富,比如一个账户与已知诈骗网络有无关联。核 SVM 的输出通常作为更大集成模型中的一路信号,贡献它绘制非线性边界的独特能力,这是树模型比不上的。
战略洞察
对 AI 从业者和业务领导者来说,本文的教训远不止于欺诈检测。核方法揭示了关于智能系统的一个更大的真相:原始输入空间很少是答案存在的地方。真实世界的数据混乱不堪、相互重叠、满是非线性关系,线性思维无法解开。核技巧的威力在于:它让你在一个丰富得多的数学空间中推理,而不必付出真正抵达那里的计算成本。同一个原则——把一个难题变成一个答案清晰可见的问题——适用于推荐系统、风险评分、预测性维护、医疗诊断,实际上适用于每一个严肃的企业级机器学习问题。理解这一点的业务领导者,会向他们的数据科学团队提出更好的问题。理解这一点的工程师,会构建出在数据拒绝变得干净简单时真正管用的系统。
亚马逊的欺诈检测不是魔法。它是数学,以巨大的速度悄无声息地运转,而现在你已经完全明白它是如何运作的。
#MachineLearning #ArtificialIntelligence #DataScience #Mathematics #Amazon #FraudDetection #KernelMethods #SVM #RBFKernel #PolynomialKernel #TheMagicOfHiddenMathematics #AIEngineering #MLEngineering #Python #SVMClassification #EnterpriseAI #AIStrategy #DeepLearning #NeuralNetworks #TechLeadership
原文最初由 Keshavan Thiagaraja 发表于 LinkedIn。在 LinkedIn 阅读原文。 [1]
