论文泛读:Click Fraud Detection: Adversarial Pattern Recognition over 5 Years at Microsoft

这篇论文非常适合工业界的人(比如我)去读,有很多的借鉴意义。

强烈建议自己去读。

title:五年微软经验的点击欺诈检测
摘要:1.微软很厉害。2.本文描述了大规模数据挖掘所面临的独特挑战、解决这一问题的技术的设计选择和原理,并举例说明了该系统在打击点击欺诈方面的有效性和一些定量结果。

1.What is Click Fraud? 什么是点击欺诈
Click fraud is the term used to describe artificial clicks generated on advertisements to either create direct or indirect financial gain from the pay per click payouts [36].
点击欺诈是一种虚假的点击去直接或间接的骗取PPC的钱。
点击欺诈->广告商为无意义的点击付费->广告商降低自己的出价->投资回报率降低->客户减少→公司利益受损

2.Examples of Click Fraud Attacks 点击欺诈例子
有人雇12个人来点击广告。有人用了一台电脑,每天模拟点击15次。还有个100000台电脑的大规模作弊,下载一个屏保后中毒,然后这个屏保会低频的去搜索特定的关键词。

3.Overview of paper
作为微软,我会讲一些大规模的数据挖掘的经验,来告诉你们怎么防御点击欺诈。

4.Why Click Fraud Detection Is Hard
挑战主要是以下几点:1.吞吐量大,每天数亿的点击 2.模型需要快速更新才能对抗 3.作弊是低频率的 4.用户的匿名性 5.攻击是可以编程的 6.精度要求高 7.需要在毫秒范围内检测作弊

5.Filtration System Principles 过滤系统原理
5.1 Lossless Processing
设计了一个过滤器,在之前是过滤掉的记录会删除,现在是会记录下来。我们坚信点击守恒定律,点击既不会被创造,也不会被丢弃,只会从一种分类转换成另外一种分类。
这就是无损失,不要删除过滤掉的点击。

5.2 Rapid Update Capabilities 快速更新策略
之前过滤策略是散布在不同的系统里面,现在是一个单独的服务,我们针对服务做了很多的事情,使得可以快速的修复/更新,以达到生产要求。
集中式的服务,极大的提高了我们应对攻击的速度。

5.3 Rules Representation
规则的好处是:
1.清晰,可以输出报告
2.坏的规则很容易被分离出来,删除之后也不会影响模型
3.机器学习和规则可以融合
4.决策是可以被审计的?
5.出现bug很容易修复
6.易于解读
7.可以简单而又快速的更新模型
8.可以简单的整合别人的成果

5.4 Rule Bitmaps (“Multiple Rules”)
用bit来记录这个点击触发了哪些规则,比如001000101,就触发了1,3,7三条规则。如果有一个规则出现的故障,我们之后只需要不考虑这一位即可。

5.5 Model Flighting (“Multiple Models”)
用多个模型,同样的输入,看结果之后,可以评价出模型的好坏。
是从实验走到线上的一个途径,而且可以选出好的规则?

5.6 Redundant Keys (“Multiple Keys”)
对一个用户,用多个冗余的key值来定义,增加作弊的成本。

  1. 架构
    原文中说有个图来解释这个架构,但实际上论文里面并没有这图= =,全凭想象。。。
    流程是:用户访问网站->发送http请求到adCenter请求广告→adCenter发送一个请求到engine->2ms内送到ARTEMIS (adCenter Real-Time Extendible Model Impression Scoring) 对用户进行打分(计算广告价格,并支持适时调整,且可以拒绝请求来阻止ddos攻击)→如果检测正常会开始广告拍卖,并返回一组广告给用户。
    对于欺诈的行为,我们依旧会返回广告,因为如果拒绝返回广告的话,会让攻击者把这个行为当成训练信号,去使得他们的攻击程序更强。我们可以通过继续服务流量,它既可以收集更多关于攻击者的数据,也能削弱攻击者探测过滤系统的能力。
    当用户点击广告之后->会通过adCenter重定向到链接→系统会记录用户的行为→如果用户产生购物行为的时候,会执行脚本→会产生数据在日志服务器
    点击,转化等数据会存放在日志里面,会在一个小时内被Minerva服务离线处理(Minerva是一个非常大的,1000台机器组成的集群,能够保留最完整的用户的操作行为。同时他也能够为广告主提供详细的报告。
    在这种架构下,毫秒时间内就能分辨作弊流量,且广告主能够在一个小时内就能拿到反馈。
    然后有一个工作台,每小时运行一次,用机器学习的模块去评估每个广告商作弊的概率,工作台可以人为的暂停该广告商的供应,以便于进行审查客户账户。这个工作台可以立案涉嫌欺诈。工作台的大部分功能是基于规则的,每一个决策都是可见的。
    黑名单系统,每15分钟更新一次名单。
    爬虫系统,分析流量方的网站,收集数据,分析网站关键词,判断是否作弊。
    Bot instrumentation,
    Packet sniffers,分析http,获取记录。

  2. Metrics
    主要是两种衡量标准,1.auc,acc 2.对整个流程进行评估

7.1 Case Base
每个月收集约40份报告,由专家们进行评估调查。报告由机器生产,评估是否是已知的攻击。

7.2 Traffic Quality Metrics
我们定义了Q1Q2指标来衡量流量的价值,1.0为基准,高于1.0表示不好。但是度量不好并不能代表作弊,只是表示流量不好而已。

  1. Detection Techniques
    主要是七种检测规则。
    8.1 Bot Signatures
    每周,工程团队和支持团队会检查新的攻击类型,。对这些攻击行为进行分析,并在必要的时候制定新的规则来对付这些攻击。会对攻击写上特定的标签,而且流量可以重播,来衡量自己的规则是否有效。

8.2 Distribution Tests
将流量和预期的分布进行比较,来确认是否是人为构造的。

8.3 Scale families and reference curves
在代理ip的处理问题上,比如AOL,移动IP。
我们会把规模从个体变成一个family。以前个体20以上就是作弊,现在family可能变成200,或者2000。来处理家庭规模的情况。

8.4 Traps
会设计一些陷阱,来让bot来跳下去。

8.5 Extremata
用来消除极端的不寻常行为,这些行为可以不用浪费人力,直接捕获高度的异常行为。

8.6 Key families
多个特征,进行检测。欺诈者能伪装一个特征,但是不能伪装多个特征,总会有一些特征,漏出马脚。

8.7 Machine-induced decision trees
机器学习。效果有效,但是解释性差。

9 Results
微软的反作弊很牛逼,已经持续运行五年了,一直在进步。

9.1 Automated Detection Performance
确实能够拦截欺诈行为。但是拦截率高,也不一定代表着是欺诈,可能是广告的位置放置不当,导致了意外点击。
下面是拦截效果,很快的就能拦截掉作弊者。

9.2 Click Fraud Investigation Team
高质量的检查,使得反作弊小组可以花更多的时间在真正作弊的上面,而非做一些无意义的排查。

9.3 Traffic Quality
过滤掉作弊之后,使得整个Q1Q2提高,提高了流量方的质量。提高了用户搜索的相关性,广告商和流量方的价值也得以体现。

10 Conclusion
反作弊是广告领域很难的一个方向。不过我们微软很厉害哦。

posted @ 2017-09-22 17:37 qscqesze 阅读(...) 评论(...) 编辑 收藏