在最近于 MLConf 举办的一次演示中,Xavier Amatriain 描述了他作为 Netflix 的研究/工程经理在构建机器学习系统方面学到的 10 个经验教训。
在此,您将通过他演讲和幻灯片的摘要来了解这 10 个经验教训。

从构建机器学习系统中学到的经验教训(来自 Xavier 的演示)
10 个经验教训
Xavier 提出的 10 个经验教训可以总结如下:
- 更多数据 vs./还是更好的模型
- 你可能并不需要你所有的海量数据
- 更复杂的模型不能带来改进,这并不意味着你不需要它
- 认真思考你的训练数据
- 学会应对(“呈现偏差的”)诅咒
- 用户界面是算法与最重要的对象:用户的唯一沟通渠道
- 数据和模型都很棒。你知道什么更棒吗?正确的评估方法
- 分发算法很重要,但知道在哪里分发更重要
- 明智地选择你的超参数是值得的
- 有些事情你可以在离线完成,有些事情你不能… 而介于两者之间的一切都可以通过近乎实时(nearline)的方式处理
我们将在下文中逐一探讨。
1. 更多数据 vs 更好的模型
Xavier 对经常被引用的“更多数据胜过更好的模型”提出了质疑。他引用了 Anand Rajaraman 的帖子“更多数据通常胜过更好的算法”,其总结如下:
总而言之,如果你资源有限,那么与其微调你花哨的机器学习算法的权重,不如增加更多数据。
他还提到了 Norvig 在 2009 年对 Facebook 工程部门关于更多数据 vs 更好算法的演讲。
然后,他引用了论文“推荐新电影:即使是少量评分也比元数据更有价值”,该论文指出了一个显而易见的事实:数据量少但预测性强的数据比数据量多但预测性不强的数据更好。
这不是“或”,而是“和”。你需要更多数据和更好的算法。
2. 你可能并不需要你所有的海量数据
在这一课中,他指出,仅仅因为你有海量数据并不意味着你应该使用它。
他评论说,海量数据的样本可以给出好的结果,而更智能的采样(如分层或平衡采样)可以带来更好的结果。
3. 复杂数据可能需要复杂模型
接下来的这一课是关于 特征工程 的一个微妙但重要的提醒。
他评论说,为线性模型添加更复杂的特征可能不会带来改进。反之,使用复杂的模型和简单的特征也可能无法带来改进。
他的观点是,有时需要复杂的模型来模拟复杂的特征。
我还想指出,复杂的特征可以分解为简单的特征,供简单的线性模型使用。
4. 认真思考你的训练数据
Xavier 评论了在反规范化用户行为数据时可能存在的困难。他指出了选择正例和负例的问题,需要在建模问题之前慎重决定在哪里划线。这是一个数据表示问题,对你能够获得的结果有巨大的影响。
我建议你为许多这样的可能界线生成想法,并测试所有这些想法,或者最有可能的那些。
他还警告说,如果你在离线实验中看到很好的结果,你应该检查是否存在“时间穿越”——即预测决策使用了样本外信息,例如包含了用户未来行为的摘要。
5. 学会应对呈现偏差
第五课是关于呈现给用户的所有可能选择并非具有统一概率的问题。
用户界面和人类用户行为会影响展示项被选中的概率。那些被预测但未被展示的项可能并没有失败,不应被视为失败来建模。
这是一个关于需要对点击行为进行建模才能找出模型预测实际性能的复杂课程。
6. 用户界面 <=> 通过用户与算法的交互
与第五课相关,这是关于建模算法和用户界面紧密耦合的观察。
用户界面的改变很可能需要算法的改变。
7. 使用正确的评估方法
Xavier 对用于在线-离线测试过程进行了很好的总结。

离线在线训练流程
(来自 Xavier 的演示)
该图显示了离线对模型进行回溯测试以验证假设,以及在线通过 A/B 测试来验证这些结果。这是一个有价值的幻灯片。
他指出,模型可以针对短期目标(如点击或观看次数)进行优化,但用户留存是唯一真正的目标,称为整体评估标准。
他建议尽可能使用长期指标,并且只有在与长期目标一致时才使用短期指标。
与他们的离线-在线方法相关,Xavier 评论了将离线指标与在线 A/B 测试相关联这一开放性问题。
8. 选择正确的层次
他指出了可以用来测试假设的给定实验可以划分的三个层次,并且每个层次都有不同的要求。
- 总体子集
- 超参数组合
- 训练数据子集
请谨慎选择。
9. 明智地选择你的超参数是值得的
Xavier 警告说,在调整模型时选择正确的指标很重要。但他还提到,将模型复杂性等因素也考虑在内是一个重要的考虑因素。
除了网格搜索或随机参数搜索之外,Xavier 还提醒我们关注概率方法,这可以减少搜索时间。
10. 离线、在线和近乎实时
最后的经验教训提醒我们,花时间思考模型元素的计算时机,并尽早进行计算。他指出,除了离线和在线计算之外,你还可以进行近乎实时(他称之为 nearline)的计算。
总结
这是一套你可以应用于自己建模的优秀经验。
您可以在此处查看 Xavier 的幻灯片:“10 个从构建机器学习系统中学到的经验教训”
Xavier 的演示已录制,您可以在此处观看完整视频:“Xavier Amatriain,Netflix 算法工程总监 @ MLconf SF”
暂无评论。