报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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:009662
用户头像

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

关注

评论

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

对话吴军:人工智能如何推动金融行业的数字化转型

索信达控股

人工智能 大数据 金融科技 数字化转型 金融

从零开始学习3D可视化之场景层级(1)

ThingJS数字孪生引擎

大前端 物联网 可视化 3D可视化 数字孪生

字节跳动三面拿offer:网络+IO+redis+JVM+GC+红黑树+数据结构

Java架构师迁哥

奇亚矿机系统,Bzz分币系统,云算力APP开发

【FlinkSQL】Flink Table & SQL 时间属性

Alex🐒

flink 翻译 FlinkSQL flink1.13

淘宝“618”双11系统架构是如何设计的呢?这份Java千亿级并发系统架构设计笔记告诉你答案

Java 程序员 架构 计算机

面试大厂必备六大核心技能Spring+Nginx+Redis+kafka+JVM+高并发

Java架构师迁哥

微服务架构中的两款流量防卫兵

悟空聊架构

sentinel 高并发 Hystrix 6月日更 流量防控

一款超牛的 Linux 终端复用神器(附安装、使用教程)

学神来啦

Linux 学习 运维 安全

基于 Flink 打造的伴鱼实时计算平台 Palink 的设计与实现

Apache Flink

flink

教你三种jQuery框架实现元素显示及隐藏动画方式

华为云开发者联盟

jquery 动画 元素 JQuery框架 网页

MTU带来的问题

BUG侦探

网络技术 网络运维 GRE 隧道

4面拿华为offer的水平,面试阿里居然一面就被吊打?

Java架构师迁哥

一周信创舆情观察(5.31~6.6)

统小信uos

【FlinkSQL】Flink SQL CREATE 语法

Alex🐒

flink 翻译 FlinkSQL flink1.13

一文你带快速认识Vue-Router路由

华为云开发者联盟

html Vue vue-router 路由 路由管理器

揭秘视频千倍压缩背后的技术原理之预测技术

拍乐云Pano

阿里最新发布的 Spring Cloud ALiBaBa 全解第三版,一睹庐山真面目!

Java 程序员 架构 微服务

【有奖活动】体验全局搜索,和小Mi老师一起机器学习!

Geek_6cdeb6

人工智能 机器学习 深度学习 mindspore

JAVA中的浮点数与二进制

加百利

Java 后端 二进制 6月日更

【FlinkSQL】Flink Table & SQL 数据类型

Alex🐒

flink 翻译 FlinkSQL flink1.13

👋 Agora Flat 开源教室 Web 版上线啦~

千竹

开源 音视频 在线教育 互动白板 互动课堂

爱奇艺于首届MediaAIAC与首届高新视频创新应用大赛斩获三项权威大奖,技术实践领跑行业创新

爱奇艺技术产品团队

智慧工厂|全方位监控管理,可视化让生产变的透明

一只数据鲸鱼

数据可视化 工业互联网 智慧农业 智慧工厂 纺织企业

北京人工智能产业联盟成立,百度CTO王海峰出任联盟理事长

百度大脑

人工智能

汽车之家:基于 Flink + Iceberg 的湖仓一体架构实践

Apache Flink

flink

百度大规模Service Mesh落地实践

百度Geek说

Service Mesh 软件架构

2021年最新阿里、腾讯、华为、京东300+道高级面试题,掌握80%进大厂

Java架构师迁哥

预言机 - 区块链的触角

趣链科技

区块链 智能合约 预言机

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