写点什么

Airbnb 支付平台如何进行异常检测

  • 2016-03-24
  • 本文字数:2135 字

    阅读完需:约 7 分钟

对于全球的房主和客人来说,Airbnb 非常希望房客都可以通过他们自己熟悉的支付方式、本地币种来支付房费;房主也可以通过喜欢的货币、方便的途径收取房租。为了实现此目的, Airbnb 支付团队构建了一个一流的支付平台来保证支付安全和易用性。

Airbnb 为全球 190 个国家提供服务,支持多种货币类型。大部分情况下,支付系统会成功支付,但有时会出现暂歇性故障,比如,某些货币不能处理或者支付渠道不可访问。为了能够尽可能快的捕捉到这些故障信息,公司的数据团队开发了一个实时的异常检测系统来甄别这些问题。这个异常检测系统可以很好的帮助产品团队定位问题,也让数据分析师能腾出更多的时间来做其它工作,比如,新的付费方式或者产品上线的 A/B 测试、定价或者价格预测和构建机器学习模型来做个性化推荐。
为了让大家看到这个异常检测工具的使用,这里通过一些模拟数据集来展示模型是如何工作的。假设一个运行在 2020 年夏天的电商网站,提供三件商品:监视器、键盘和鼠标,并且两个供应商:Lima 和 Hackberry。

动机

异常探测系统的主要功能是从时序数据中发现异常数据。简单的情况可以通过整体的直观图表一眼看出来,但大部分情况需要“解密”在这些图表趋势背后的数据。
拿下面这个监控器进货的数据举列,如图 1

图 1

从图 1 中看到监控器的总体进货量相当的正常。然后分别分析下两个供货商 Lima 和 Hackberry 的数据,见图 2

图 2

从图 2 可以看出,Lima 是电商主要监控器的供应商,但是在 2020 年 8 月 18 号运输出现问题持续大概 3 天。Airbnb 异常检测系统自动检测出此问题并反馈给二级供应商 Hackberry。这里可以看出从整体层面数据根本发现不了此问题,但是从另外一个维度却能清晰的检测出问题。

模型

简单的回归模型
最直观的想法是把天数作为哑变量跑一遍普通的最小二乘回归。模型的公式如下:

其中 y 是跟踪的总量,t 是时间变量,I_day_i 是指示变量,代表今天是这周的第 i 天,e 是误差项。这个回归模型简单并能鉴别前面遇到的问题 ,但是也有其缺点:

  • 增长预测是线性的,一遇到指数式就失效了;
  • 模型有个极强的假设前提:适用于按周的季节性时序数据,不能处理其它模式的季节数据集;
  • 哑变量较多,模型需要更大的样本量才能得到好的结果。

即使能够观察到追踪指标的模式,但不易于扩展变化。Airbnb 工程师采用自动的方法避免误差,并让这种技术运用到支付以外的场景。

快速傅里叶变换模型(FFT)
对时序数据集构建一个基于趋势和季节的模型。模型数学公式如下:

其中,Y 是度量标准,S 是季节变量,T 代表趋势,e 是误差项。例如,以前面的简单回归模型对比,这里的 S 代表所有指示变量的和,T 等同于 at + b。

在这部分,展示新模型如何检测趋势和季节性。基于上面的经验,这次采取两款产品:键盘和鼠标。下图 3 展示两种产品的销售数据:

图 3

从上图 3 可以看出,键盘是在 2016 年 9 月开始售卖,并成为主打商品。2017 年 8 开始引进鼠标。后面将对趋势和季节进行建模,试图发现偏离平均值的异常数据。

季节效应
为了解决季节性效应,这里采用快速傅立叶变换 FFT。在简单的线性回归模型中,前提假设是时序数据是按周季节性变化的。从上面的趋势图可以看出鼠标的销售并不是按周季节性变化的,如果胡乱的假设会造成模型误判。而快速傅立叶变化 FFT 擅长基于历史时序数据总量来进行季节性检测。对时序数据集应用 FFT 之后,得到下面的图 4

图 4

图 4 中 season_day 周期性余弦值。在快速傅立叶变换中,一般只选择峰值的周期代表季节性,其它周期当作噪音(具体为什么这么选择可以看 FFT 原理资料)。在这个列子里,键盘的 FFT 结果有 7 和 3.5 两个采样点是大峰值,在 45 和 60 两个采样点有小峰值。而对于鼠标来讲,在采样点 7 时有个大峰值,35、60 和 80 有相对小的峰值。把两种商品的 FFT 结果合并生成季节性图,如图 5

图 5

从图 5 上可看出,键盘的产品季节性增长,主要是按周季节性的。而鼠标有按周的季节性趋势和 40 天一个周期的季节性。

趋势分析
这里采用滚动中值(rolling median)来作为时序数据集的趋势。使用这种算法的前提假设是苏阿短时间内的增长变化不显著。比如,对某天来讲,采用其之前的 7 天的滚动中值作为当天的趋势水平。用中值代替平均值使得算法检测异常数据的结果更加稳定,举个列子,对于某一两天来说销量突然增长 10% ,如果使用中值则看不出来有什么变化,而采取平均值的话就对趋势有很明显的变化。在这种情况下,采用 14 天的中值作为趋势,如图 6

图 6

误差项
在得到季节效应和趋势后,可以评估误差项了。通过误差项可以发现时序数据集里的异常点,这里用原始数据减去季节效应和趋势得到误差项,然后绘图如下:

图 7

从图 x 发现,误差项里有一些毛刺,这就说明了时序数据集中出现异常点。根据实际情况定出所能容忍的负相关度,即选择偏离中心点 0 多少个标准方差(参考《概率论与数理统计教程》)。这里选择偏离 4 个标准方差来获得一个合理的阈值警报,结果如图 8

图 8

从上图可以看出,Airbnb 的预警系统非常棒,检测出误差项的大部分毛刺。注意到,其实有些点在人肉眼看来是正常的,但实际是异常数据也被检测出来了。

经过 Airbnb 内部测试发现这个模型异常数据检测的功能准确。

查看英文原文: Anomaly Detection for Airbnb’s Payment Platform


感谢黄玲艳对本文的审校。

2016-03-24 19:009592
用户头像

发布了 43 篇内容, 共 29.2 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

ae插件Optical Flares光晕插件下载 Optical Flares破解资源 Mac/win

理理

DR5(PS一键磨皮插件(Delicious Retouch) 中文版安装包 Mac/win

理理

《Excelize权威指南》新书发布

xuri

Go 开源 Excelize 新书推荐

区块链行业软件开发白皮书:dApp、交易所与NFT商城的项目包装与运营

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

我为什么要学习写作?OpenAI时代,还有必要练习写作吗?

Geek漫游指南

写作 软件工程 技术写作 技术人写作

Axure RP 8 for Mac(交互式原型设计工具) v8.1.0.3400汉化版

Mac相关知识分享

Termius for mac(终端模拟器/SSH/SFTP客户端) v9.2.0激活版

Mac相关知识分享

汉化版C4D插件:NextLimit RealFlow C4D流体模拟插件破解版 Mac/win

理理

中文汉化版AE插件 Deep Glow破解资源 附许可证 Mac/win

理理

工程化实践:问卷搭建领域化设计

XIAOJUSURVEY

架构 前端 复杂度 领域驱动 工程化

JetBrains DataGrip 2023 Mac(多引擎数据库管理工具) 2023.3.2激活版

Mac相关知识分享

sublime text 4 for Mac(前端代码编辑神器) v4.0(4125) 中文注册版

Mac相关知识分享

数学计算分析软件Wolfram Mathematica for Mac v14.1.0.0中文激活版

Mac相关知识分享

AI视频优化利器Topaz Video AI for mac v5.2.3激活版

Mac相关知识分享

c4d插件:3dquakers forester破解版(C4D花草树木森林植物生成插件)

理理

CLion 2023 for Mac(C和C ++ IDE智能代码编辑器) v2023.3.2激活版

Mac相关知识分享

4K Video Downloader Plus Pro for Mac(4K视频下载器) v1.8.3激活版

Mac相关知识分享

低代码实践:题型物料化设计(三)

XIAOJUSURVEY

开源 低代码 组件化 领域驱动 可视化搭建

e3d插件下载 Video Copilot Element 3D mac破解版 AE三维模型插件

理理

2024-08-03:用go语言,给定一个从 0 开始的字符串数组 `words`, 我们定义一个名为 `isPrefixAndSuffix` 的布尔函数,该函数接受两个字符串参数 `str1` 和

福大大架构师每日一题

福大大架构师每日一题

Markdown文本编辑器:Typora for Mac/win 中文版

你的猪会飞吗

Typora破解 Typora Mac下载 Mac软件下载站 typora激活

CnosDB 元数据集群 – 分布式时序数据库的大脑

CnosDB

开源 时序数据库 tsdb CnosDB

混沌工程-Chaos Engineering

虚实的星空

混沌工程 Chaos

Airbnb支付平台如何进行异常检测_语言 & 开发_侠天_InfoQ精选文章