导读:
SIGKDD是ACM在数据挖掘领域的顶级学术会议,每年都吸引着超过2000位来自世界各地的顶级数据挖掘学者,以及知名企业代表前来参加。然而,大会的论文接收每年却仅约200篇,接收率不超过20%。
虽然今年的KDD早已落下帷幕,但是好的论文和前沿学术研究始终值得我们学习。本文由参加了本届KDD的多位蚂蚁金服的小伙伴共同撰写,目录如下:
- 2017KDD所思所感
- 蚂蚁在KDD
- AB Test专题
- Graph专题
- 风控/反洗钱专题
其中关于ABTest, Graph,以及风控/反洗钱专题我们都精心挑选了相关论文解读与推荐。全文逾1.5万字,推荐各位读者们先收藏本文。阅读时建议在电脑中打开,结合相关论文进行研读。如果你也喜欢这篇分享,请分享至朋友圈让更多人看到吧!
2017KDD所思所感
2017年的KDD在加拿大美丽的海港城市Halifax举办,相较于15年的悉尼、16年的三藩市,安静悠闲的城市并不妨碍KDD一如既往的火热。KDD具有很强的交叉学科性和工业界应用性,对统计、机器学习、数据库、自然语言处理等等数据挖掘领域的专家、学者非常有吸引力,同时今年的KDD Cup比赛由阿里云承办。此行,蚂蚁金服有多位小伙伴前往,共同撰写了这篇“西行记”。
关于Paper录取
从去年开始,Applied Data Science Track(后简称ADST)开始接受学术界论文的投稿,ADST的投稿量开始井喷,从15年189篇投稿、16年331篇投稿一直到今年的390篇,最终录取也占到了整体的40%,这反映出KDD作为一个学术会议其务实主义的一面。引用官网的paper录取数据,明细如下:
研究领域的审核总论文数为748篇,收录130篇,包括64篇oral,66篇poster,录用率分别占8.6%及8.8%。而应用数据科学领域共审核390篇论文,收录86篇,包括36篇oral,50篇poster,录用率分别占9.2% 和12.6%。
今年Research Track(后简称RT)最受欢迎的主题分别时间与时序数据(temporal and time-series data),图算法(graph algorithms),而且几篇best paper给的也都是这两个领域;但根据whova(参会指定日程app)上参会者的出席热度排序的话,最受欢迎的主题却是“AI(人工智能)”——意料之外又情理之中。在深度学习大行其道的当下学术界,KDD仍然保持着对研究探索的初心,也算可贵。
论文详细收录名录如下,均含链接下载:kdd-accepted-papers。(http://www.kdd.org/kdd2017/accepted-papers 本文出现的网址请直接复制至浏览器中打开查看。)
关于最佳论文(Best Paper)
KDD从1997年至今的RT Best Paper的主题中“时序挖掘”和“图算法”占到了1/3左右,同时今年的几篇最佳论文也都是和这两个主题相关,不知是参会者投其所好还是主办方有意为之。(历年KDD获奖清单见下图,来自Jeff Huang的统计)
在周三的开幕式上揭示了三项论文大奖,Best Paper & Best Student Paper Award(最佳论文 / 最佳学生论文奖)、Applied Data Science Best Paper Award(最佳应用论文奖)、以及 Doctoral Dissertation Award(博士论文奖)。
- 最佳论文 / 最佳学生论文奖:Accelerating Innovation Through Analogy Mining
- 最佳应用论文奖:HinDroid: An Intelligent Android Malware Detection System Based on Structured Heterogeneous Information Network
- 博士论文奖:Local Modeling of Attributed Graphs: Algorithms and Applications
其中最佳应用论文奖HinDroid解决的问题非常有趣,利用android app的api异构信息网络,并直接提取meta-path作为feature。此文的精度报告会在本文的第三部分呈现。
关于KDD Cup
今年KDD Cup由阿里巴巴天池的小伙伴承办,席间为获奖选手忙前忙后也颇为辛苦。
很有趣的一个数据是,双料冠军在两个赛题的成绩均超出第二名一大截。
其能在众多队伍脱颖而出的原因,在我个人看来两个因素很关键:feature engineering做的好+fune tuning肯花时间。
蚂蚁在KDD
今年KDD上蚂蚁一共有两个露脸的地方:
- 蚂蚁金服人工智能部技术总监李小龙(花名聪云)的专题演讲,为大家介绍了基于PS的鲲鹏(Kunpeng)分布式平台。
- 此外,阿里巴巴的技术展区也有蚂蚁金服的人工智能应用展示。
鲲鹏:基于参数服务器的分布式学习系统及其在阿里巴巴和蚂蚁金服的应用
阿里集团今年一共命中5篇paper。其中“鲲鹏”代表阿里和蚂蚁AI的平台性能力在会场给海内外学者做了介绍。关于此篇论文,摘要如下:
近年来,随着“大”数据及“大”模型的出现,学术界和工业界对分布式机器学习算法引起了广泛关注。针对这一刚需,本论文设计了一个独一无二的分布式平台——鲲鹏。它无缝的结合了分布式系统及并行优化算法,解决了大规模机器学习算法带来的一系列问题。鲲鹏不仅囊括了数据/模型并行、负载平衡、模型同步、稀疏表示、工业容错等特性,而且还提供了封闭好的、宜于调用的API供普通的机器学习者开发分布式算法,降低使用成本并提升效率。本论文的实验在十亿级别的样本和特征数据上进行,结果表示,鲲鹏这一设计使得一系列算法的性能都得到了极大的提升,包括FTRL,Sparse-LR,以及MART。此外,鲲鹏在阿里巴巴双11狂欢购物节及蚂蚁金服的交易风险检测中体现出了其巨大的应用价值。
会场上聪云对“鲲鹏”做了有趣的对比:鲲鹏取名自《庄子·逍遥游》,文中记载“北冥有鱼,其名曰鲲。鲲之大,不知其几千里也;化而为鸟,其名为鹏。鹏之背,不知其几千里也。怒而飞,其翼若垂天之云。”
在我们的鲲鹏系统中,“鲲”即是超大规模分布式计算系统,它拥有超强的计算能力。而“鹏”即是超大规模分布式优化算法,它建立在“鲲”之上。“鲲鹏”即同时拥有超大规模分布式计算系统及超大规模分布式优化算法,合二为一使得它有“一飞冲天”的能力。
而其在系统层面的创新也让其在工业界独树一帜:
- 强大的容错功能,甚至在复杂且忙碌的线上集群环境中也可以游刃有余。
- Backup Instance for Straggler Management (慢机自动处理)。
- 支持有向无循环图形式的调度和同步,包括BSP/SSP/ASP三种同步方式。
- 用户友好的界面和编程。
篇幅限制,仅做概括性介绍。
阿里&蚂蚁展区
阿里集团赞助了本届KDD CUP,除此之外,我们还在展区设置了展台与到场的学者们进行深入交流。同台竞技的也不乏亚马逊、Facebook、微软等其他一流互联网厂商。 我们的展区源源不断的有参会人才前来咨询蚂蚁金服相关的业务合作、招聘细节等等。
AB Test专题
互联网上的很多问题都是因果关系。例如如果我们把按钮的颜色从黑色变成红色,按钮的点击率会怎么变化,如果我们使用一个新的支付宝首页排序的算法,首页的停留时长会怎么变化,刚刚提到的按钮的颜色的例子,理想的因果推断应该是让每个用户同时看到黑色和红色,分别计算黑色按钮和红色按钮的点击率,最后得出两者之间的比较。但是不幸的是在实际应用中每个用户只能看到一种按钮的颜色。我们把这个问题再抽象一下就是因果推断里面最根本的问题:每个用户我们只能观测到一种结果。
AB test就是解决上述因果推断最根本的问题的方法之一。AB test的概念非常简单。在按钮的例子里面,我们随机的选取一定比例(例如50%)的用户让他们看到黑色的按钮,随机的选取一定比例的用户让他们看到红色的按钮,然后计算按钮在这两群用户身上的点击率,得出两者之间的比较。AB test虽然没有办法让同一个用户同时看到两个不同颜色的按钮,但是由于是随机分配,所以看到红色按钮和黑色按钮的两群用户整体上是可比的,在这两群人身上看到的点击率的差别可以归因于颜色的差异。这是AB Test的核心思想,也是AB Test可以进行因果推断的根本原因。
AB test起源于农业田间实验,后来在制造业和clinical trial都发挥了很大作用。近些年,AB test在互联网上被越来越受重视,已经成为了一个热词。在很多互联网公司,例如Google,Facebook,Microsoft Bing,Netflix,LinkedIn等等,新功能的上线都必须通过AB test。互联网上的AB test也经常被叫做online experiment(在线实验)。
AB test在工业界的广泛应用使得它在很多顶级会议出现的频率也越来越高,KDD就是其中一个代表。接下来,我们将本次会议的收获和感受按照实验文化和实验学术进展两个方面进行综述。实验学术进展又可以分为实验方法和实验决策两个方面。
实验文化
我们此行和Microsoft EXP,Snap,LinkedIn,Uber,Airbnb等公司从事AB test的同行们进行了深入的交流。主要的结论总结为下面几点:
- 实验是数据驱动的业务和产品决策的一方面。实验让决策更加精细和科学,应该是建立在一定的数据驱动决策机制的积累的基础之上。因此实验并不是适用于所有的场景,尤其是当这个场景在处于大步粗旷的发展期的时候。
- 实验是个非常开放的项目,实验的成功对实验平台的提供者和使用者都有很强的依赖性。实验平台提供者负责易用稳定的实验系统和保障实验的科学性。实验平台使用者需要明确实验的预期,假设,评判标准。这三者有很强的业务性,要求实验使用者对客户,产品,和数据有很深的理解,能够明确业务的目标,实验的目标。
- 实验也有它的局限性,实验的确能帮助业务做快速迭代,但是快速迭代体现的不是在单个实验的时长,而是长期的,通过减少错误和不科学的决策所带来的累计效果。
总的说来,实验文化在任何公司包括硅谷这些先进的科技公司也面临着很大的挑战。实验文化的推广和认可既需要管理层级别的支持,也需要一线的实验实践者们持续不断的交流和沟通,既需要有理论的指导,也需要有实践的积累,既是一个实验的问题,也是一个业务的问题。实验文化的深入人心是一个长期的过程。
实验学术进展
这次和实验相关的会议内容包括Microsoft EXP的一天的tutorial(教程), AdKDD一天的workshop(研讨会),还有若干篇论文。
- Microsoft EXP的tutorial
(http://exp-platform.com/2017abtestingtutorial/)
Microsoft的教程主要分为以下六个模块。(1) AB test的简单介绍 (2) 因果推断的基本统计模型:the potential outcome framework and Rubin causal model (3) 确保实验的可靠性:准确的数据,精细的分析,仔细的解读 (4) 实验时应该关注用户体验:逐步放量,注意实验之间的冲突 (5) 指标设计: 这里面比较有意思的是把指标分成数据质量指标,实验决策指标,和比较local的个性化指标(6) 最新的研究进展:最新的研究进展包括variance reduction,Bayes统计推断,AB test和机器学习的交叉等等。
- AdKDD
专题研讨会AdKDD主要是讲在广告系统里面怎么进行因果推断。目标是想量化投与不投广告给业务带来的影响。受邀演讲者之一Susan Athey是研究经济和社会学里面因果推断的大牛。Susan这次主要就是在讲怎么用机器学习的算法来从观测数据中去进行因果推断。主要的应用就是在广告投放中。
这个slides相对比较advanced。推荐有统计学背景的同学学习。文章中提出的解决方案在蚂蚁各个场景的实验都可能应用。
- a dirty dozen: twelve common metric interpretation pitfalls in online controlled experiments
这篇文章来自Microsoft的EXP team。文章中讲述了12个经常遇到的实验解读的误区并且给出了一些具体的解决方案。这篇文章特别适合实验分析包括业务的BI的同学。文章中提出的解决方案在蚂蚁各个场景的实验都可能应用。
- Peeking at AB tests: why it matters, and what to do about it
这篇文章来自美国一个AB test做的比较好的startup optimizely。传统的AB test都是固定实验的时长,到了选定的时长后,分析数据然后做出决策。文章想要解决的问题是如何在允许实验的用户提前分析数据并且进行决策的情况下还不增加假设检验的第一类错误。文章中主要用到的是序贯实验的推断方法。文章中提到的概念适合所有对AB test的同学去学习和理解。序贯实验方面的理论适合有统计学背景的同学学习和理解。文章中提出的解决方案在蚂蚁各个场景的实验都可能应用。
- An efficient bandit algorithm for realtime multivariate optimization
这篇文章来自亚马逊。AB test在亚马逊应用的非常广泛。作者在本文中提出了一个比较高效的bandit的算法来进行实时的优化,并且可以把一些context也考虑在内。bandit算法是ab test的一个alternative。从优化的角度来说,bandit比ab test更加高效,因为它有一个学习的过程。当我们有很多参数需要优化的时候,bandit会是ab test的一个很好的alternative。例如如果我们要同时决定几个栏目是否应该在支付宝首页展示,那么所有的组合数会是2^p。这里p是栏目的个数。这种情况下ab test可能就不是很scalable。bandit可能是一个更好的alternative。
这篇文章的相关视频也是拿了今年KDD最受观众欢迎的视频奖,可见作者们在论文的表达上是非常用心的。推荐有统计学和优化背景的同学阅读。文章中提出的解决方案在蚂蚁多参数场景的实验可以应用。
- Detecting network effects: randomizing over randomized experiments
这篇文章来自LinkedIn。作者之一是在AB test方法论方面颇有建树的Ya Xu。传统的AB test假设实验的treatment只影响实验版本中的用户,而不影响对照版本中的用户。这个假设在社交网络里面通常不成立。例如在LinkedIn,实验版本中的用户的体验很有可能也会影响到他们的connection。 作者在这篇文章里面提出了一种新的实验设计来验证treatment是否只影响实验版本的用户,并且提出了比较实用的在大的社交网络实验平台的实现方式。作者把提出的方法应用在了2个LinkedIn的实验里面来证明了网络效应确实存在,并且忽略这种网络效应会带来实验效果估计的偏置。推荐有统计学背景的同学学习和理解。文章中提出的解决方案在蚂蚁有社交元素的场景的实验可以应用。
- Estimating treatment effect in the wild via differentiated confounder balancing
这篇文章来自清华大学。文章中想要解决的问题是通过观测数据来进行因果推断。基于观测数据的因果推断一般是通过propensity score matching的方法来做。现在也有个趋势是直接去优化潜在的confounder的weights来达到对照和实验在confounder上的分布的平衡。作者argue已有的方法不能很好的进行confounder的选择和区分,不太适用于confounder数量很多的场景。作者认为自己提出的DCB的算法在这方面更加有效,因此balancing的效果更好。个人觉得作者提出的想法work的intuition不太清楚,对文章的结果有一定的疑惑。推荐有统计学背景的同学阅读。
- Statistical emerging pattern mining with multiple testing correction
这篇文章第一作者来自东京大学。文章其实和AB test并不直接相关,但是文章中提到的multiple testing correction确是AB test中经常遇到的一个问题。例如上面提到的序贯实验其实本质上就是为了解决multiple testing的问题。multiple testing带来的问题是统计假设检验里面第一类错误的上升。文章中提出了两种解决方案。推荐统计学背景的同学去研究和阅读。这两种方法可以在蚂蚁的任何场景应用,尤其是当我们需要对用户进行很多segment以及当我们需要同时看很多指标的时候。
总的来说,AB test的研究还是集中在inference,实验设计基本上没有。inference在传统的AB test里面主要是解决dependence和multiple testing的问题。而基于观测数据的因果推断以及机器学习和因果推断的结合正在慢慢成为一个新的趋势,很有可能是短期未来的一个方向。斯坦福大学的Susan Athey以及她的爱人Guido Imbens都是这方面的大家。
Graph专题
复杂网络方向从欧拉1736年的“七桥问题”开始走到今天,研究的方向从网络拓扑结构研究,到传播算法、到社群研究、到链接预测、到异构网络,新的研究方向的出现常常是由新型的数据而产生。所研究的网络数据大小在过去几百年间,也从“~300邮件”提升到了“~10亿用户”,而这个方向的爆发和互联网的发展趋势一致。由此可以做出一个判断:下一次网络数据的爆发会发生在IoT领域,同时Embedding会成为方法论的主流。
▲[*] 来源"COMPUTATIONAL LENS ON BIG SOCIAL AND INFORMATION NETWORKS"
精选论文导读
- struc2vec: Learning Node Representations from Structural Identity
(http://www.kdd.org/kdd2017/papers/view/struc2vec-learning-node-representations-from-structural-identity)
近年随着社交网络、资金网络等图结构数据的应用,图结构的表征学习一直是最受关注的研究领域之一,本篇论文提供了一种仅基于图结构学习的无监督算法框架。通常对于图结构的挖掘会应用节点和边的属性,核心是展示节点特征的同质性,这在分类和预测中有非常多成功的尝试。而最近比较成功的方法都有效利用了节点周边邻居的信息,如Deepwalk、Node2vec等,但是邻居是通过网络中局部的近邻来定义的,于是当两个周围结构相似但距离较远的节点其相似性就无法习得。
struc2vec的框架主要思想如下:无需节点与边信息且定义相似的网络不需要彼此相连、建立了一套层次结构来度量结构相似度、在多层网络中进行加权的随机游走。 框架主要步骤如下: 1) 以邻域大小为层次度量结构相似度; 2) 建立加权多层网络,权重为相似度的倒数; 3) 生成节点编码,在2)网络中进行有偏的随机游走; 4) 应用适合的技术(如Skip-Gram)学习结构表征。 Struc2vec在指定构建的网络以及镜像生成的社交网络中都非常有效得识别了相同或相似结构的节点,且在航线分类中准确率较node2vec提升了不少。
作者同时尝试了三种方法降低计算复杂度,对算法性能几乎无影响。并通过随机删减边的方法验证了该方法对有噪音数据的鲁棒性。 总结:这种无监督的学习方法不仅可以在分类问题中提供有效的变量衍生方法,同时在类似反欺诈等无监督场景中,通过结构学习将客户分类,帮助我们学习更多现有知识以外的客户行为模式。
- Toeplitz Inverse Covariance-Based Clustering of Multivariate Time Series Data
(http://www.kdd.org/kdd2017/papers/view/toeplitz-inverse-covariance-based-clustering-of-multivariate-time-series-da)
我们从一个paper中自带的案例来展开。对于一辆行驶中的汽车,我们可以用以下7个sensor去检测汽车运行的状态: (1) Brake Pedal Position -- Brake (2) Forward (X-)Acceleration -- X-Acc (3) Lateral (Y-)Acceleration -- Y-Acc (4) Steering Wheel Angle -- SW Angle (5) Vehicle Velocity -- Vel (6) Engine RPM -- RPM (7) Gas Pedal Position -- Gas 每0.1s采集一个sample,同时限制一个window大小为1秒(即10个sample),对于一次转弯,每个sensor各采集36000个sample。
这篇paper的核心贡献为:将每个window归属到N个状态之一。在以上case中,绿色为“直行”状态、白色为“减速”状态、红色为“拐弯”状态、蓝色为“加速”状态。同时每个状态的驱动因素如下:
Paper中提出的方法为Toeplitz Inverse Covariance-Based Clustering (TICC),利用EM思想解决的是最小化如下问题:
这三个部分的解读如下: (a) sparsity:保证sensor之间依赖关系稀疏一点,原理为利用Hadamard product保证Toeplitz矩阵(Θ)的稀疏性 (b) log likelihood:保证每个Cluster是内聚的且不同Cluster能区分开,即Xt来自于Cluster i的log likelihood (c) temporal consistency:保证相邻时间window的Cluster倾向于保持一致 也就是说,解决以上问题即找到了最佳聚类归属。而解决的过程,简要来说就是用Toeplitz矩阵(Θ)来表示每个Cluster中跨时间的状态依赖(逆协方差矩阵),并用EM的思想迭代寻找聚类归属(P):固定Θ,寻找最佳P;固定P,寻找最佳Θ。
这篇文章最难理解的部分在于Toeplitz矩阵,我用简要图示说明一下构成的方案。下图中的大矩阵即为Cluster A的Toeplitz矩阵实例化表达,用于定位7个变量intra和inter时间区间的依赖关系,边上权重为1。
求解的过程这里不做细节展开,略复杂,感兴趣的同学请直接参考论文。
这篇paper对于时序数据的数据建模非常漂亮,由此自动能从时序数据(理论上continuous/boolean/categorical reading均可)找到精准的可解释结构。作者今年KDD中了两篇文章,均要解决时序数据可解释性的问题,但是方法论略有不一致。文中作者尝试看了两种数据集:汽车、股市,但最终该方法却能够在多种蚂蚁的场景落地,被AT到的同学可关注在自己场景要解决的问题。该方法最大的局限在于不可预测性,即测试最过去原因定位和解释,但对于未来并不存在很强的预测性。
- metapath2vec: Scalable Representation Learning for Heterogeneous Networks
(http://www.kdd.org/kdd2017/papers/view/metapath2vec-scalable-representation-learning-for-heterogeneous-networks)
解读:HIN的graph-embedding方法,用预定义的metapath去guide random walk
- Unsupervised Feature Selection in Signed Social Networks
(http://www.kdd.org/kdd2017/papers/view/unsupervised-feature-selection-in-signed-social-networks)
解读:该paper的核心假设为:social network中的关系有正有负,基于attribute的相似度应该approximate结构上的相似度p1+beta*p2,其中p1和p2均考虑正负。最后输出特征的重要性排序。
- Inferring the Strength of Social Ties: A Community-Driven Approach
(http://www.kdd.org/kdd2017/papers/view/inferring-the-strength-of-social-ties-a-community-driven-approach)
解读:在一个无权重无向图中,我们需要推断每一条边是强是弱。基于一个基本假设:强朋友的强朋友应该也是强朋友,否则就是violet。这篇paper最主要的贡献,是将问题定义为最小化社区内的violet数量。
- On Finding Socially Tenuous Groups for Online Social Networks
(http://www.kdd.org/kdd2017/papers/view/on-finding-socially-tenuous-groups-for-online-social-networks)
解读:区别于找到网络中的稠密图作为社交圈,该论文尝试去寻找稀疏的社交圈。通过定义k-triangle,寻找≥n的群组,让k-triangle数量最小化同时群组大小最大化。
- Weisfeiler-Lehman Neural Machine for Link Prediction
(http://www.kdd.org/kdd2017/papers/view/weisfeiler-lehman-neural-machine-for-link-prediction)
解读:Embedding的方式直接做Link-Prediction,取代similarity measure。
- Long Short Memory Process: Modeling Growth Dynamics of Microscopic Social Connectivity
(http://www.kdd.org/kdd2017/papers/view/long-short-memory-process-modeling-growth-dynamics-of-microscopic-social-co)
解读:作者发现微信朋友圈的新增人数符合三种分布变化,同时用6种参数就可以控制。
- Learning from Labeled and Unlabeled Vertices in Networks
(http://www.kdd.org/kdd2017/papers/view/learning-from-labeled-and-unlabeled-vertices-in-networks)
解读:节点信息补全类的paper,用半监督的方式去学习未标记样本的+1/-1。
- Ego-Splitting Framework: from Non-Overlapping to Overlapping Clusters
(http://www.kdd.org/kdd2017/papers/view/ego-splitting-framework-from-non-overlapping-to-overlapping-clusters)
解读:把ego-network的聚类问题进行了转变,单个节点不一定属于一个群组,利用复制节点的形式完成。应用点在于朋友圈的识别,一个人可能即是亲友又是同事。
- Local Higher-Order Graph Clustering
(http://www.kdd.org/kdd2017/papers/view/local-higher-order-graph-clustering)
解读:把二度子图中的最小割edge问题变成最小割三角形的问题。
- A Local Algorithm for Structure-Preserving Graph Cut
(http://www.kdd.org/kdd2017/papers/view/a-local-algorithm-for-structure-preserving-graph-cut)
解读:从一个初始节点出发,该算法能力给出该节点附近的所有指定结构:星状网、闭环等;在反欺诈领域需要可解释的图特征时,该paper具备不错的指导意义。
风控/反洗钱专题
摘要
在风控/反洗钱领域,我们面临Ground Truth少、作案手法多变等挑战,所以经常会使用一些半监督或者无监督的手段来做防控。在本次KDD 2017中,总共13场学术论文报告(Research Track Report)中有10场跟风控/反洗钱相关,如 “RT10 - Clustering”等;总共7场应用论文报告(Application Track Report)中有4场跟风控/反洗钱相关,如“AT4 - Networks and Graphs”;总共20场Workshop中有7场跟风控/反洗钱相关,如“Anomaly Detection in Finance”;获得最佳应用论文奖的更是属于风控/反洗钱范畴,此外还有大量的Poster可以借鉴。
以下我们将重点介绍“Anomaly Detection in Finance”,这个Workshop中有很多风控和反洗钱领域的分享,是一次非常好的交流机会;我们也精选了5篇论文进行导读,其中包括获得最佳应用论文奖的“Hindroid”,供大家学习。
Workshop : ”Anomaly Detection in Finance”
本次Workshop介绍了一些风控行业的主流解决方案、算法和应用方向等,也提及了目前风控领域主要碰到的业务问题包括交易风险、反洗钱、系统安全等。目前业内主流系统架构包括数据处理层(数据预处理、缺失值填充、特征抓取等)、分析层(不同的分析、建模流程和检测算法)和应用层,如下图所示:
工业界和学术界目前正在探索和尝试一些新的方法,其中包括:基于时间序列的异常检测、基于frequent pattern的异常检测、基于聚类的outlier识别和基于网络的异常检测。
1)“Real-time anomaly detection system for time series at scale”(Ira Cohen, Meir Toledano, Yonatan Ben Simhon and Inbal Tadeski.) 提及了使用ARIMA来解决时间序列上的异常检测,比较适用于连续发生或者有规律的事件;
2)“Spotlighting Anomalies using Frequent Patterns”(Jaroslav Kuchař and Vojtěch Svátek)使用了一种结合isolation tree 和associate rules的方法—Frequent pattern isolation (FPI)来做异常检测;
3)“Ensemble-based Anomaly Detection Using Cooperative Agreement”(Rasha Kashef)介绍了使用叠加聚类—Cooperative Clustering Outliers Detection(CCOD)的方法可以更好地识别outlier,以便提升聚类质量;
4)“Collective Fraud Detection Capturing Inter-Transaction Dependency”(Bokai Cao, Mia Mao, Siim Viidu and Philip S. Yu)基于heterogeneous information network来识别交易链的异常;
精选论文导读
本次KDD大会总共收录了130篇Research Track(以下简称RA)的论文,86篇Application Track(以下简称AT)的论文,我们从中精心挑选了五篇文章来重点介绍,希望能让大家有所启发。我们先介绍AT的文章,三篇分别是最佳应用论文“HinDroid: An Intelligent Android Malware Detection System Based on Structured Heterogeneous”( Shifu Hou, Yanfang Ye, Yangqiu Song, Melih Abdulhayoglu)、“No Longer Sleeping with a Bomb: A Duet System for Protecting Urban Safety from Dangerous Goods”(Jingyuan Wang, Chao Chen, Junjie Wu, Zhang Xiong) 以及“Finding Precursors to Anomalous Drop in Airspeed During a Flights Takeoff”(Vijay Manikandan Janakiraman, Bryan Matthews, Nikunj Oza)。然后介绍两篇RT的文章,分别是“Anomaly Detection with Robust Deep Autoencoders”( Chong Zhou, Randy C. Paffenroth)和“Let’s See Your Digits Anomalous-State Detection using Benford’s Law”(Samuel Maurus , Claudia Plant)。
- 最佳应用论文HinDroid: An Intelligent Android Malware Detection System Based on Structured Heterogeneous
(http://www.kdd.org/kdd2017/papers/view/hindroid-an-intelligent-android-malware-detection-system-based-on-structure)
该论文提出和解决了一个安全领域内比较常见而且头疼的问题:作为开源的手机操作系统,安卓端的恶意软件数量日益增长,众多安卓用户深受其害,轻则系统奔溃,重则钱财损失。而且安全领域有非常鲜明的特点就是对抗性非常强,恶意软件的变种日新月异,造成恶意软件的检测非常困难。
所以作者构造了一套系统和算法来识别恶意软件,如下图所示:
主要的算法逻辑是:
1、构造API-CodeBlock, API-Package, API-InvokeMethod之间的HIN(Heterogeneous Information Network);
2、提取APP之间的多种meta-path,然后使用点积来计算相似度作为模型的特征输入;
3、使用多核学习(根据不同类型的meta-path)来得到最终的模型;
4、作者使用Comodo Cloud Security Center 的实际样本来建立模型,检测能力远远超过其余病毒检测软件。
对于这篇论文大家普遍觉得其巧妙的针对业务场景来设计算法应用,并且实实在在的取得了很好的效果。究其原因,我们认为:1)文中提到的特征处理非常贴切业务问题;2)研究成果也已经在工业界落地并产生商业价值,目前学术届与工业界完美结合的案例不多,或多或少因为实际商业中碰到的问题与纯粹的学术问题不经相同,包括数据的复杂性、数据量的大小、业务问题的多变性都会造成学术论文无法在企业落地。因此,这篇论文的取得best paper给了大家一个很好的启发,非常难得。
- No Longer Sleeping with a Bomb: A Duet System for Protecting Urban Safety from Dangerous Goods
(http://www.kdd.org/kdd2017/papers/view/no-longer-sleeping-with-a-bomb-a-duet-system-for-protecting-urban-safety-fr)
这篇论文属于AT的oral,作者是北航的王静远,思路来自15年天津港8.12爆炸事件。文章聚焦问题“如何在事前识别出大城市中危险的区域?”比如天津港,化学品集装箱特别多,就是一种危险区域,是需要加强控制,再比如煤气管道,如果铺设在人流量大的区域,那就是高危的区域了。论文也介绍了一个“DGEye”的产品,我们与作者交谈后得知该算法已经被相关部门投入正式使用。
笔者融合了手机地理位置数据、城市地图数据、以及危险品运输的实时轨迹数据,基于曼哈顿距离来挖掘危险区域的模式,并给出相应的分数,然后基于这些分数,对危险区域进行排序、实时预测、以及因果关系解释(Causal Network),最后还采用了非常不错的可视化界面用于辅助人工分析。综合看这套方案,它不仅利用非监督挖掘方法识别出了异常危险区域,而且做到了原因可解释、并且用户交互方面也比较到位。
实验部分,笔者给出了两个实验结果,均利用历史案例作为ground truth来验证算法的有效性,取得了不错的结果。目前,国家正在大力建设智慧城市,安全是非常重要的方面,因此该论文有很好的实践意义。
- Finding Precursors to Anomalous Drop in Airspeed During a Flights Takeoff
(http://www.kdd.org/kdd2017/papers/view/finding-precursors-to-anomalous-drop-in-airspeed-during-a-flights-take-off)
这篇论文是被应用路线收录的,作者是来自NASA的工程师Vijay,论文阐述了如何用数据驱动的方法来发现飞机在起飞过程中出现坠机事故的“前兆”,论文的想法比较新,利用大数据的方法得到了不错的效果。论文的核心思想是基于MDP(马尔可夫决策过程)对各种时序数据(如飞机pitch、Roll的角度)建模,一旦实际数据偏离模型计算的阈值则进行预警,从而达到异常点监测的目的,实验效果如下图所示:
- Anomaly Detection with Robust Deep Autoencoders
(http://www.kdd.org/kdd2017/papers/view/anomaly-detection-with-robust-deep-auto-encoders)
这篇论文是不仅是中了RA,而且是Oral,另外Poster Session也有这篇论文的身影。论文里,作者在AutoEncoder和RPCA(Robust Principal Component Analysis)两种算法的基础上,设计了一种新的模型,名字叫RDA(Robust Deep Autoencoder)。该模型最直观的理解是,噪声数据或者异常点数据是具有一定的不可压缩特性的, 所以AutoEncoder在自我学习的过程中,很难把这类数据有效的投影到低维隐含层上,从而在重构阶段将产生跟原始数据较大的偏移,进而基于此来实现了异常点检测。实验方面,笔者选择在MNIST手写汉字数据集上进行实验,首先引入4859张手写阿拉伯数字4的图片作为正常的数据,然后再引入265张其他7、9等数字的手写图片作为异常点(如下图所示),异常点比例在5.2%。
笔者在这份数据集上对比了RDA和IF(Isolation Forest)算法,性能提升了73%(RDA的F1 score是0.64,IF的F1 score是0.37)。需要注意的是,RDA算法在学习的过程完全是无监督的,这里有F1 score是笔者用已知的label对算法进行评测而已。另外需要注意的是,RDA算法类似IF算法是有一个参数的,这里两个算法的F1 score后面对应的参数是通过半监督学习得到的最佳值,即两个模型性能的上界。此外该模型还有个副产出,即去燥的能力,实验中笔者随机在原始图像随机实施黑白噪声,模型能够有效的把这些噪声过滤掉。
- Let’s See Your Digits Anomalous-State Detection using Benford’s Law
(http://www.kdd.org/kdd2017/papers/view/lets-see-your-digits-anomalous-state-detection-using-benfords-law)
来自慕尼黑大学的Samule利用Benford' Law来做异常点监测。这里先交代一点背景,Benford是一位物理学家,20世纪初发现的一种数字统计的内在规律,即所有自然随机变量,只要样本空间足够大,每一样本首位数字为1至9各数字的概率在一定范围内具有稳定性,如数字1开首的样本的概率在0.3左右,而9开首的样本的概率在0.05。Samule利用这一特性,对时间序列数据进行窗口化观察,并应用K-S检验转化成p-value值,一旦该值超过了阈值则进行预警,从而达到异常点监测的目的。Samule基于Twitter数据能够监测出Tag滥用情况、PokermonGO的服务器down机事件等等,效果不错。