Skip to content

读《Rules of Machine Learning》有感(上)

Info

作者:Void,发布于2021-07-22,阅读时间:约4分钟,微信公众号文章链接:

1 引言

第一次听到《Rules of Machine Learning》,就被它的题目吓了一跳。是什么样的神仙敢起这样的题目,在这里指点江山?
看到作者和来源后,好吧,原来是谷歌的大神。那我们就来看看这篇雄心勃勃的文章能教会我们什么吧。
由于文章较长(有3个阶段,43条rule),本文是这一系列的上篇(包含第一阶段)。本文仅基于自己有限的经验与知识,在翻译的基础上加了一些自己的理解,欢迎讨论。

2 概述

文章开篇先来了个概述。

To make great products:
do machine learning like the great engineer you are, not like the great machine learning expert you aren’t.

实际工作中,最优先的是工程上的实现,是否清楚地定义了问题,是否有一个解决问题的solid的pipeline。其次才是fancy的算法用来锦上添花。

3 在使用机器学习以前

Rule #1: Don’t be afraid to launch a product without machine learning.

简单的模型,直接的rule永远是你的baseline。它可能没有那么好,但是在你一无所有时,它足够有效。

Rule #2: First, design and implement metrics

设计好评价指标,做好记录。

Rule #3: Choose machine learning over a complex heuristic

当你的规则过于复杂时,请使用机器学习。机器学习之所以神奇,就是因为它能学到各种复杂的关系。并且模型更新起来比较简单。

4 你的第一个pipeline

Rule #4: Keep the first model simple and get the infrastructure right.

有一个足够solid的baseline,因为后续的一切都将基于它。

Rule #5: Test the infrastructure independently from the machine learning

虽然infra大概率已经提供好了,你还是可以带有质疑的眼光去检查它。这不仅可以加深你对infra的理解,甚至可能帮助你发现祖传bug。

Rule #6: Be careful about dropped data when copying pipelines.

不同的场景可能对数据的要求不同(有的需要历史数据,有的只需要最新数据)。另外,多留个心眼检查下数据。可能你没注意的小细节(如join时,同个key的多条记录),会使最终的结果和你预想的不同。

Rule #7: Turn heuristics into features, or handle them externally.

已有的有效的rule可以成为模型的特征,也可以直接使用它们(如黑白名单)。

5 监控

Rule #8: Know the freshness requirements of your system.

根据模型重要性,监控模型的表现。

Rule #9: Detect problems before exporting models.

尽量在模型上线前发现所有问题。

Rule #10: Watch for silent failures.

除了模型的评价指标,监控好模型的依赖,如背后的数据,特征等等是否有缺失等异常情况。这一点其实很tricky,总会有数据存在问题,那么这一问题会对模型造成多大影响呢?

Rule #11: Give feature column owners and documentation.

做好文档,可能大公司或多或少都存在文档不全的问题。。

6 你的第一个目标

Rule #12: Don’t overthink which objective you choose to directly optimize.

不要纠结于优化哪一个目标。其实对于这一点,我的理解是优化目标有重要性之分。如在某些场景中,抓到坏人比冤枉好人带来的好处更大。那么模型首先该关注的应该是catch rate。很难做到新的模型在各种维度下都优于已有的解决方案。

Rule #13: Choose a simple, observable and attributable metric for your first objective.

给你的模型选择一个简单,可观测,可归因的评价指标。复杂的、不直接的请交给策略分析师们。

Rule #14: Starting with an interpretable model makes debugging easier.

一开始选择解释性强的模型,便于debug。不要一上来就来fancy的算法,这只会增加你发现问题的难度。

Rule #15: Separate Spam Filtering and Quality Ranking in a Policy Layer.

不同任务的背景不同,不要希望在A任务表现好的模型一定在B任务表现的好。

7 小结

这15条rule主要聚焦的是具体建模前的步骤,虽然有一丢丢宽泛,但提供了很好的大方向,是建模工作的基石。这些rule相信是前人踩了不少坑,总结出来的经验之谈。值得常看常新。

下篇将涉及更为具体的建模内容,讨论有关特征工程以及优化模型方面的rule,敬请期待。


Viewed times

Comments