作者:黄永刚

Practical machine learning tricks from the KDD 2011 best industry paper

原文链接:http://blog.david-andrzejewski.com/machine-learning/practical-machine-learning-tricks-from-the-kdd-2011-best-industry-paper/

研究机器学习的论文通常倾向于提出一种新理论或算法,对于问题背景、数据表示、特征工程等往往是只言片语,然而这些东西对于读者的理解和算法的重现是非常重要的。鉴于论文目的和格式的约束,只能用有限的文字去描述更核心通常比较抽象的思想。

因此,对于在工业系统中应用论文中的方法所必须的实现细节,论文中很少进行描述。机器学习的这些方面,被称为‘平民智慧’,大多数来自同事间的讨论、博客、论坛、开源库等一手的经验之谈。

不同于以上的描述,有些会议设有专题对工业界的方法进行追踪,提出了很多能够提高机器学习在实践应用中效率的见解。我们下来要介绍的这篇文章,它来自于goolge荣获KDD 2011 最佳工业论文,关于检测广告作弊。

Detecting Adversarial Advertisements in the Wild \
D. Sculley, Matthew Otey, Michael Pohl, Bridget Spitznagel, \
John Hainsworth, Yunkai Zhou \
http://research.google.com/pubs/archive/37195.pdf

看到这个主题,第一个想法,这不就是机器学习界的“hello world”吗!随便找一本相关的书籍或者教程里面都有,对于正样本集和负样本集分别训练一个朴素贝叶斯,就OK了。很显然,这和Google的应用场景相差甚远,这篇文章阐述了现实当中的许多挑战,是google商业应用需要解决的关键问题。

这篇文章提出了很多不同的方法和技巧,我在这里只简单的描述文章中的重点,我极力鼓励对此感兴趣的读者直接去查看他们的论文1和演示文稿[^slide]。
2:https://www.eecs.tufts.edu/~dsculley/papers/adversarial-ads.pdf
http://www.eecs.tufts.edu/~dsculley/papers/Detecting_Adversarial_Advertisements.pdf


1. 分类(Classification)

机器学习的核心方法是分类:这个广告展示给用户是不是OK?这里有一些源代码关于机器学习的核心方法3

方法集成

获得Netflix奖的方法、微软的Kinect及IBM Watson,这些系统都使用了集成方法,将许多不同模型产生的结果集合起来做出最终的预测。这个方法在当前众多的方法中可以称得上是最省心的方法了,如果你的目标是预测精确度,至少也应该考虑使用集成的方法。

只执行高可靠的预测

衡量预测的不确定性并适当的对系统的执行条件进行调整是非常必要的。在这个应用中,需要做出合理的决策,因此,当预测结果可靠性不高时,系统应该不执行相应的动作。

找出大量的特征,使用L1正则进行特征选择

特征表示是机器学习设计中的关键问题,它涵盖了非常广的范围:对于广告有表述的用词、表述主题、链接到的网站、链接落地页、广告商等等,会产生大量的特征,使用L1正则强制稀疏化特征集,最终得到较少的与结果关联性强的特征。

特征降维

处理高维特征这是十分实用的方法,通过降维将特征映射到低维空间。

使用排序来处理不均衡问题

这种极不均衡数据问题是典型的监督式分类中的疑难杂症,广告中大多是正常数据,只有极少量是异常数据[此类问题十分常见]。这类问题有很多的处理方法,在这里他们通过将这个问题转化为排序问题,获得了性能上的改进。恶意广告应该比正常广告获得更高的排名。

使用分类器的级联

还是不均衡问题,对于负样本中也存在不同的种类,如恶意软件刷点击、假冒伪劣商品等。这里同时采用了两阶段的分类。第一阶段判断正常或者异常?第二阶段,如果这个广告属于异常,是不是属于异常A,是不是异常B,以此类推。


2. 可扩展性、工程实现、操作

不同于为了发论文所写的实验性软件,线上的机器学习系统是有工程和商业背景。系统的可扩展性、可用性、可靠性、可维护性也十分重要。

MapReduce:预处理(map), 算法训练(reduce)

稍微有些意外,他们发现性能瓶颈是来自于从磁盘加载数据和提取特征的阶段。因此,他们使用多个map作业并行执行,用一个reduce来做随机梯度下降分类训练(Stochastic Gradient Descent, SGD)

部署监控

为了使系统始终如一的工作,需要监控一些数据,以便于一些异常出现的时候能够做进一步的研究,如:
- 持有数据上的precision/recall
- 输入特征的分布
- 输出值的分布
- 输出类别的分布
- 人工定期评价系统质量

丰富模型对象

在机器学习的论文中,一个预测模型经常归结于数学思想即学习到的特征权重向量。然而,在软件工程实践中,作者认为将“模型对象”拓展更广泛的范围会十分有用,例如包含特征转换、概率校准、训练超参等。


3. 人工经验

基于商业考量,提出通用的解决方法需要人类专家的参与。

有效的利用专家经验

对于界限模糊的情况或比较难分辨的情况,人工专家手工进行标注,然后采用主动学习策略识别这些高价值数据。他们为人类专家提供了可以获取信息的用户接口,以便发现新出现的异常威胁。

允许人为的编制规则

相比于全自动化的机器学习方法,有的时候人类才是知道如何做才最好。因此,他们允许专家们在适当的时候,编制一些规则进去。

人为评估

专家的判断也不能理解为事情的本质,专家提供的标签也会因人为因素产生错误,不同的专家对于各个类别理解的也不一样。为了调整这种不确定性, 请多个专家对同一事物进行判别来调整标签的可信度。如果有兴趣可以参考这里4.

最后,他们阶段性进行非专业评估以确保系统对于大众来说工作正常。用户满意是最终目标,如果进行量化衡量就完美了。


  1. https://www.eecs.tufts.edu/~dsculley/papers/adversarial-ads.pdf
    [^slide]:http://www.eecs.tufts.edu/~dsculley/papers/Detecting_Adversarial_Advertisements.pdf ↩
  2. https://www.eecs.tufts.edu/~dsculley/papers/adversarial-ads.pdf
    [^slide]:http://www.eecs.tufts.edu/~dsculley/papers/Detecting_Adversarial_Advertisements.pdf ↩
  3. http://code.google.com/p/sofia-ml/ ↩
  4. http://web.stanford.edu/~jurafsky/amt.pdf ↩

KDD 2011 最佳工业论文中机器学习的实践方法-翻译相关推荐

  1. 图片缩小不失真_科技论文中图片的处理方法有哪些?

    来源丨斐然智达SCI学术服务 有位论文审稿人在自己的博文中写道:"我审稿时看稿件的顺序是题目.摘要.图表. 前言.参考文献和正文".可见论文中图片的质量是非常重要的,图片质量的好坏 ...

  2. KDD 2020最佳学生论文奖解读!杜克大学陈怡然组获奖-23

    第 26 届 ACM SIGKDD 知识发现和数据挖掘会议(KDD 2020)于近日公布了最佳论文奖.最佳学生论文奖等多个奖项.此外,汤继良.盛胜利.唐杰等华人学者在本届 SIGKDD 大会上也荣获了 ...

  3. 快速迭代的开发方式中的QA实践方法

    背景 尽管"小步快跑"的快速迭代开发方式早已成为互联网软件开发的主流指导思想,但大量开发团队在落地这一开发方式时最常遇到的问题就是"如何QA",因为,传统软件行 ...

  4. python如何爬取sci论文中所需的数据_sci论文中的科研数据处理方法

    不直接参与科研的人都觉得科研是一种充满了新idea和思想碰撞的活动.可是那只是整个科研过程中的一小部分.相信所有已经做过科研的人,不管你在哪一个科研领域,在你的成果足够写成论文之前都避免不了进行大量的 ...

  5. 论文中引用的标注方法

    1.将编辑的位置定位到需要插入引用的位置,如准备添加引用[20]时,点 引用--插入尾注 点击此处可以调尾注的格式 则焦点会立刻转移到尾注这里,则可粘贴引文名字和各种信息了 并且前文中标记的位置也会同 ...

  6. word论文中快速录入公式方法

    1.入门介绍 1.入门指令 符号 命令 进入LaTex公式 Alt + = U^2_x U^2_x 分数上下 1/2 +空格 2.希腊字母 符号 命令 α \alpha Δ \Delta 3.运算符 ...

  7. 论文中的图片处理方法

    以前我都是使用上下嵌入,现在感觉浮于文字上方比较好,然后中间使用shift+enter 2020年12月28日19:45:15 更新 还是上下嵌入好..

  8. 专访清华裘捷中:亚洲高校首个KDD最佳博士论文奖是如何炼成的?

    AMiner x 量子位 发自 凹非寺 量子位 | 公众号 QbitAI 今年的KDD最佳博士论文奖RUNNER UP,由毕业于清华大学的裘捷中博士斩获. 值得一提的是,这是亚洲高校的学者首次获此殊荣 ...

  9. 中国力量占领KDD:包揽“大数据领域世界杯”全部冠亚军,北航拿下最佳学生论文奖...

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 数据挖掘.知识发现领域的最高学术会议--KDD 2020的所有奖项已全部公布. KDD,全称Knowledge Discovery and ...

最新文章

  1. 计算机应用基础的答案2015,2015年《计算机应用基础》模拟试题及答案(一)
  2. GNU make manual 翻译(四十)
  3. zcmu2014(公式推导+二分)
  4. ECCV 2012 KCF/DCF:《High-speed tracking with kernelized correlation filters》论文笔记
  5. 《深入解析 MAC OS X iOS 操作系统》PDF 带书签
  6. HAproxy - 铁钉 - 51CTO技术博客
  7. 【英语学习】【English L06】U03 House L6 Sharing an apartment
  8. 七牛云上传截图后的base64位遇到的问题总结
  9. 学习Mysql (一)
  10. 二维 三维 向量vector 定义,初始化
  11. 惠普台式电脑重装系统仍然启动不了,怎么办
  12. activiti学习资料(架构描述)
  13. Skyline系列软件的安装和使用
  14. matlab深度DoF图像修复,windows10系统运行dnf提示client.exe损坏的图像解决方法
  15. php高校学生户籍档案管理系统
  16. 方法重写和重载的区别
  17. 2020最新抖音上热门技巧你知道了几个?
  18. 【ES6】三种暴露方法和引入方式
  19. 【SEO网络推广】会被百度K站的原因
  20. 陈强《计量经济学及Stata应用》习题答案

热门文章

  1. 详细分析stm32f10x.h
  2. 2D 到 3D 的跨越,探索最佳 AR 交互设计之道
  3. 【人脸识别(三)】:使用face_recognition库实现人脸识别,python实现
  4. mysql主从配置duxi_​WordPress大前端主题DUX 5.1
  5. 2016年6月,我们毕业了~~~
  6. 碎片化学习三款必备APP
  7. mysql 统计日活_所谓的日活、月活是如何记录与统计的?
  8. Docker安装mysql8.0并配置忽略大小写
  9. 块元素div转变为行内块元素之后如何消除之间间隙
  10. 全球及中国不锈钢市场投资前景与发展走势研究报告2022版