原文地址
pdf地址,Rules of Machine Learning: Best Practices for ML Engineering
机器学习43条军规:解密谷歌机器学习工程最佳实践
作者介绍
Martin Zinkevich现在是谷歌大脑的高级科学家,负责和参与了YouTube、Google Play 以及Google Plus等产品中的机器学习项目,本文也是基于作者在这三个产品上面做机器学习项目的各种经验和教训提炼而成。在加入谷歌之前是雅虎的高级科学家,曾在2010年和2011年两度获得雅虎的最高荣誉Yahoo Team Superstar Awards,对雅虎的广告系统做出过很多杰出贡献。
本文把在产品中应用机器学习的过程从浅到深分成了三个大的阶段,又在这三个大的阶段中细分出了一些方面,以此对43条规则进行逻辑分类。简单来说,如果你是从头开始做机器学习系统,那么就可以在不同阶段参考这里面对应的条目,来保证自己走在正确的道路上。
To make great products:
do machine learning like the great engineer you are, not like the great machine learning expert you aren’t.
这句话一定程度上是对整篇文章(叫手册可能更合适)的一个高度概括,ML在实际工作确实更多是工程问题,而不是算法问题。优先从工程效率中要效果,当把这部分榨干后,再考虑算法的升级。
规则 1:不要害怕发布一款没有用到机器学习的产品。
规则 2:评估指标设计并落实优先处理的事情。
规则 3:在复杂的启发式问题上使用机器学习。
机器学习第一阶段:你的第一个工作流
规则 4:第一个模型要保持简单,设计好基础架构。
规则 5:确保基础结构的可测试性。
规则 6:复制操作时小心删除数据。
规则 7:利用启发式问题设计特征或从外部处理它们。
监控
规则 8:知道要进行系统刷新。
规则 9:输出模型前发现问题。
规则 10:当心未被报告的失败。
规则 11:特征栏包干到户,为之建立详细的文档。
你的第一个目标
规则 12:不要过度考虑选择哪个目标直接予以优化。
规则 13:为你的第一个目标,选择一个简单的、可观察、可归属的评估指标。
规则 14:从一个可诠释的模型开始能让调试工作变得简单些。
规则 15:在一个策略层中分开垃圾过滤和质量排名。
机器学习第二阶段:特征工程
规则 16:计划发布和迭代。
规则 17:从直接可以观察、被报告的特征开始。
规则 18:用能跨语境泛化的内容特征进行探索。
规则 19:可以的话,请使用特别具体的特征。
规则 20:结合并修改现有特征,以人类可以理解的方式创造新的特征。
规则 21:在一个线性模型中可以学到的特征权重数量与你的数据量大致成比例。
规则 21:清除你不再使用的特征。
系统的人类分析
规则 23: 你并不是典型的端用户(end user)。
规则 24: 测量模型之间的差量。-delta 参数。-
规则 25: 选择模型时,实用性能(utilitarian performance)比预测能力更重要。
规则 26: 在测量到的误差中寻找模式,并创造新特征。
规则 27: 尝试量化观测到的不可欲的行为(undesirable behavior)。
规则 28: 意识到相同的短期行为(short term behavior)并不意味着长期行为相同。
训练表现与实际产品之间的偏差
规则 29: 要让你的实际产品表现得和你训练时一样好,最好的方法是在你的产品中保留训练的特征集,并将这些特征放到日志中,并在训练时使用它们。
规则 30: 重要性加权的样本数据,不要武断放弃。
规则 31: 注意,如果在训练和服务时点将表格中的数据加起来(join data from a table at training and serving time),表格数据会发生变化。
规则 32: 在你训练的流程和实际产品流程之间,尽可能地重复使用同一代码。
规则 33: 如果你用 5 号之前的数据生成了一个模型,那么用 6 号之后的数据来测试模型。
规则 34: 在使用二元分类器进行过滤时(例如垃圾邮件检测),用短期的牺牲获得清洁数据的优良性能。
规则 35: 注意在排序问题中的固有偏差(inherent skew)。
规则 36: 用位置特征避免反馈循环(feedback loops)。
规则 37: 测量训练/实际产品表现之间的偏差(Measure Training/Serving Skew)
机器学习第三阶段:放慢速度、优化细化和复杂的模型
规则 38:如果出现目标不对齐的问题就不要在新的特征上浪费时间。
规则 39:决定不只是基于一个标准做出。
规则 40:保证组件简单。
规则 41: 性能达到高峰时,要寻找新的信息源加以补充,而不是精化现有的信号。
规则 42:不要期望多样性、个性化或者与你所认为的流行性关联。
规则 43:在不同的产品中你的伙伴可能倾向于同一个产品。而你的兴趣不是。
从上面洋洋洒洒43条经验之谈中不难看出,大神作者认为,对于大多数机器学习应用场景来说,我们需要解决的问题大多数都是工程问题,解决这些工程问题需要的并不是复杂的理论,更多是对细节、架构、过程的仔细推敲和精致追求。而这些是我们非大神的普通人可以做到的,如果说大神做的是95分以上的系统,那么我们只要对工程架构、过程和细节做好足够的优化,我们也可以做出至少80分的系统。
专知便捷查看
便捷下载,请关注专知公众号(点击上方蓝色专知关注)
后台回复“RL43” 就可以获取《【经典】谷歌《机器学习43条规则》,22页pdf,解密谷歌机器学习工程最佳实践》专知下载链接