相比其他类型的系统,这种问题更常见于机器学习系统。假设关联的特定表格不再更新,那么,机器学习系统会进行相应调整,其行为仍然会相当好,但会逐渐变糟。有时,您会发现有些表格已有几个月未更新,只需刷新一下,就可以获得比相应季度做出的所有其他改进都更有效的效果提升!特征的覆盖率可能会因实现变化而发生改变:例如,某个特征列可能在 90% 的样本中得到填充,但该比率突然下降到 60%。Google Play 曾有一个过时 6 个月的表格,但仅刷新了一下该表格,安装率就提升了 2%。如果您对数据的统计信息进行跟踪,并不时地手动检查数据,就可以减少此类失败。
第 11 条规则:提供特征列的所有者及相关文档。
如果系统很大,且有很多特征列,则需要知道每个特征列的创建者或维护者。如果您发现了解某个特征列的人要离职,请确保有人知道相关信息。尽管很多特征列都有说明性名称,但针对特征的含义、来源以及预计提供帮助的方式提供更详细的说明,是一种不错的做法。
您的第一个目标
您会关注很多有关系统的指标或测量结果,但通常只能为您的机器学习算法指定一个目标,即您的算法“尝试”优化的数值。 在这里,我介绍一下目标和指标有何区别:指标是指您的系统报告的任意数字,可能重要,也可能不重要。另请参阅第 2 条规则。
第 12 条规则:选择直接优化哪个目标时,不要想太多。
您想赚钱,想让用户满意,想让世界变得更美好。您关注的指标有很多,而且您应该对所有这些指标进行测量(请参阅第 2 条规则)。不过,在早期的机器学习过程中,您会发现这些指标都呈上升趋势,甚至那些您没有选择直接优化的指标也是如此。例如,假设您关注点击次数和用户在网站上停留的时间。如果您优化点击次数,则用户在网站上停留的时间很可能也会增加。
所以,当您仍然可以轻松增加所有指标时,保持简单,不要过多考虑如何在不同的指标间实现平衡。但不要过度使用此规则:不要将您的目标与系统最终的运行状况相混淆(请参阅第 39 条规则)。此外,如果您发现自己增大了直接优化的指标,但决定不发布系统,则可能需要修改某些目标。
第 13 条规则:为您的第一个目标选择一个可观察且可归因的简单指标。
您往往并不知道真正的目标是什么。您以为自己知道,但当您盯着数据,对旧系统和新的机器学习系统进行对比分析时,您发现自己想调整目标。此外,团队的不同成员通常无法就什么是真正的目标达成一致意见。机器学习目标应是满足以下条件的某种目标:易于测量且是“真正的”目标的代理。实际上,通常没有“真正的”目标(请参阅第 39 条规则)。因此,请对简单的机器学习目标进行训练,并考虑在顶部添加一个“策略层”,以便您能够添加其他逻辑(最好是非常简单的逻辑)来进行最终排名。
要进行建模,最简单的指标是可直接观察到且可归因到系统操作的用户行为:
用户是否点击了此已排名链接?
用户是否下载了此已排名对象?
用户是否转发/回复/使用电子邮件发送了此已排名对象?
用户是否评价了此已排名对象?
用户是否将此显示的对象标记为了垃圾邮件/色情内容/攻击性内容?
避免一开始对间接影响进行建模:
用户第二天访问网站了吗?
用户在网站上停留了多长时间?
每日活跃用户数有多少?
其实,间接影响可成为出色的指标,可以在 A/B 测试和发布决策期间使用。
最后,不要试图让机器学习系统弄清楚以下问题:
用户在使用产品时是否感到满意?
用户是否对使用体验感到满意?
产品是否提升了用户的整体满意度?
这会对公司的整体运行状况产生什么样的影响?