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

强烈建议自己去读。

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
反作弊是广告领域很难的一个方向。不过我们微软很厉害哦。

论文泛读:Click Fraud Detection: Adversarial Pattern Recognition over 5 Years at Microsoft的更多相关文章

  1. 论文泛读 A Novel Ensemble Learning-based Approach for Click Fraud Detection in Mobile Advertising [1/10]

    title:新的基于集成学习的移动广告作弊检测 导语:基于buzzcity数据集,我们提出了对点击欺诈检测是基于一组来自现有属性的新功能的一种新方法.根据所得到的精度.召回率和AUC对所提出的模型进行 ...

  2. 论文泛读·Adversarial Learning for Neural Dialogue Generation

    原文翻译 导读 这篇文章的主要工作在于应用了对抗训练(adversarial training)的思路来解决开放式对话生成(open-domain dialogue generation)这样一个无监 ...

  3. NLP论文泛读之《教材在线评论的情感倾向性分析》

    NLP论文泛读之<教材在线评论的情感倾向性分析> 本文借助细粒度情感分类技术, 对从网络上抓取大量计算机专业本科教材的评价文本进行情感极性 分析, 从而辅助商家和出版社改进教材的质量.制定 ...

  4. Java 垃圾回收(GC) 泛读

    Java 垃圾回收(GC) 泛读 文章地址:https://segmentfault.com/a/1190000008922319 0. 序言 带着问题去看待 垃圾回收(GC) 会比较好,一般来说主要 ...

  5. 获取Avrix上Computer Vision and Pattern Recognition的论文,进一步进行统计分析。

    此文主要记录我在18年寒假期间,收集Avrix论文的总结 寒假生活题外   在寒假期间,爸妈每天让我每天跟着他们6点起床,一起吃早点收拾,每天7点也就都收拾差不多.   早晨的时光是人最清醒的时刻,而 ...

  6. 【论文速读】Shitala Prasad_ECCV2018】Using Object Information for Spotting Text

    Shitala Prasad_ECCV2018]Using Object Information for Spotting Text 作者和代码 关键词 文字检测.水平文本.FasterRCNN.xy ...

  7. Real Time Credit Card Fraud Detection with Apache Spark and Event Streaming

    https://mapr.com/blog/real-time-credit-card-fraud-detection-apache-spark-and-event-streaming/ Editor ...

  8. 论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline

    论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline  如上图所示,本文旨在解决一个问题:给定一张图像, ...

  9. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...

随机推荐

  1. 树递归写法ref实现

    using System; using System.Collections.Generic; using System.Linq; namespace ConsoleAppTest { class ...

  2. 【bzoj1042】[HAOI2008]硬币购物 背包dp+容斥原理

    题解: 计数题 首先考虑容斥 这题很明显加了限制状态就很多 考虑没有限制 显然可以直接dp 然后 我们看一下 容斥 某一个使用>=k张 那么其实就是 f[i-k*c[]] 于是这样就可以做了

  3. C# 之 反射性能优化2

    问题回顾 在上篇博客中,我介绍了优化反射的第一个步骤:用委托调用代替直接反射调用. 然而,那只是反射优化过程的开始,因为新的问题出现了:如何保存大量的委托? 如果我们将委托保存在字典集合中,会发现这种 ...

  4. ip访问网站和localhost访问网站中top使用

    对于相对定位,使用margin-top不用简单使用top. top在localhost中能正常显示,在ip访问时会出现多余空白. margin-top不管是localhost中还是ip中都能正常显示.

  5. Linux拷贝U盘文件(命令行)

    Linux系统有的有界面,有的没有只要命令窗口,因此导入外部文件就变得困难,没有可视化的方便. 这里通过挂载u盘进行文件拷贝. 首先挂载u盘:这里以centos为例 1.进入命令行模式下,输入命令 s ...

  6. zTree实战

    1.实体 public class UserDataZTreeVo { private String id; private String pid; private String name; priv ...

  7. bug管理

    BUG提交规范 1.标题 2.步骤描述 ①.步骤使用序号编排 ②.在特定情况下发生的问题,还需提供准确的前提条件 ③.精准的描述bug产生的路径后,再描述现象 如: >打开客户端进行首页-> ...

  8. netty05(netty的一些介绍)

    netty的一些理论 netty是一个异步事件驱动的网络应用框架(NIO框架),所有IO操作都是异步非阻塞的,NIO是对IO的一个补充 用于开发客户端和服务器的通信(TCP/UDP)长短连接 nett ...

  9. asp.net core 使用docker默认端口修改

    默认端口是80 在dockerfile文件中修改 ENV ASPNETCORE_URLS http://+:80 ------------------------------------------- ...

  10. 016 pickle

    英文也是泡菜的意思. 学完了,还是感觉这个模块是蛮不错的,对多数据保存到文件中,然后在使用的时候,再读取出来,让程序闲的更加优雅,简洁. 一:介绍 1.为什么使用 在开篇已经介绍了,但是我这里粘贴一下 ...