开发丨谷歌机器学习白皮书全解析 43 条黄金法则(四)

AI 科技评论按:此白皮书为谷歌总结的机器学习(ML)最优实践方法,浓缩了其多年技术积累与经验,尤其是 YouTube、Google Play 和 Google+ 等平台背后的 ML 算法开发、维护经历。谷歌于白皮书中总结了四十三条 ML 黄金法则,旨在帮助已经掌握了基础知识的开发者少走弯路。本文上接 AI 科技评论谷歌机器学习白皮书全解析 43条黄金法则(三)"

4.0 机器学习第三阶

4.1 减慢的增速,精细优化和复杂模型

第二阶段将要结束的时候,一定会有些信号。首先,你每月的收益开始降低。你开始要在指标之间做牺牲:一些试验中有的上升有的下降。从此情况变得更有趣。由于更难产生效益,机器学习不得不变得更复杂。

警告:这部分有许多开放式的实践法则。我们亲眼看着很多团队走过第一阶段和第二阶段的幸福期——一旦到达第三阶段,开发团队就不得不找出他们自己的路。

38. 如果目标之间不搭,并成为问题,就不要在新特征上浪费时间

当达到度量瓶颈,你的团队开始关注 ML 系统目标范围之外的问题。如同之前提到的,如果产品目标没有包括在算法目标之内,你就得修改其中一个。比如说,你也许优化的是点击数、点赞或者下载量,但发布决策部分依赖于人类评估者。

39. 模型发布决策是长期产品目标的代理

(注:谷歌工程师在这里举了个例子)Alice 有一个关于降低安装预测的逻辑损失的想法。她加入一个特征。逻辑损失下降。当她实时测试时,安装量上升了。但在公司的发布会议上,有人指出每日活跃用户数降低了 5%。团队决定不发布该模型。Alice 很失望,但意识到发布决策取决于多个标准,其中只有一部分能够被 ML 直接优化。

事实是,现实世界并不是网络游戏:没有“攻击值”和“血量”来衡量产品的健康。团队需要利用收集的数据,来试图预测将来系统的表现会怎样。他们需要操心用户黏性、每日活跃用户、每月活跃用户、收入和广告主的收益。这些 A/B 测试中的指标,实际上只是长期目标的代理:让用户满意、增加用户、让合作方满意还有利润;即便这时你还可以考虑高品质、有使用价值的产品的代理,以及五年后一个繁荣的企业的代理。

做出发布决策变得容易的唯一一种情况是:所有指标都变好了(起码没有变差的)。如果团队在复杂 ML 算法和简单启发式算法之间有的选择;如果简单的启发式算法在这些指标上做得更好;那么应当选择后者。另外,所有指标数值并没有明确的排序。更具体的,考虑以下两种情形:

AI 科技评论注:标题栏(自左至右)为试验,每日活跃用户以及每日收入

如果现有系统是 A ,团队不会想要转移到 B。如果现有系统是 B,团队也不会想要转到 A。这看起来与理性决策相抵触:但是,对指标变化的预期情形或许会发生,或许不会。因此任意一种改变都有相当大的风险。每一个指标覆盖了一些团队所关注的风险。但没有指标能覆盖团队的首要关切——“我的产品在五年后会怎样?”

另一方面,个体倾向于选择能直接优化的目标。大多数 ML 工具喜欢这样的环境。这样的环境下,一个能快速创建新特征的工程师能稳定输出一系列产品发布。有一种叫“多目标学习”(multi­objective learning)的机器学习开始解决这一问题。比如说,可以制定一个在每个指标上有下限的约束满意度问题(constraint satisfaction problem),然后优化指标的一些线性组合。但即便那时,也不是所有指标都能轻易表达为 ML 目标:如果一个文件被点击,或者 APP 被安装,这是因为有内容被展示出来。但搞清楚用户为什么访问你的页面就更加难了。如何预测一个页面在将来是否成功,是一项 AI­-complete 问题(AI 科技评论注:意味着完成它的难度相当于解决 AI 问题),与计算机视觉和自然语言处理一样难。

40. 保证集成模型(ensemble)的简洁

接收原始特征、直接对内容排序的统一模型,是最容易理解、最容易修补漏洞的模型。但是,一个集成模型(一个把其他模型得分组合在一起的“模型”)的效果会更好。为保持简洁,每个模型应该要么是一个只接收其他模型的输入的集成模型,要么是一个有多种特征的基础模型,但不能两者皆是。如果你有单独训练、基于其它模型的模型,把它们组合到一起会导致不好的行为。

只用简单模型来集成:那些只把基础模型的输入作为输出、进行接收的模型。你或许想要为这些集成模型强加上属性。比如,基础模型生成得分的提高,不应该降低集成模型的分数。另外,如果连入模型在语义上可解释(比如校准了的)会更好,这样其下层模型不会与集成模型混淆。再者,强行让下层分类器预测的概率升高,不会降低集成模型的预测概率。

41. 当性能达到瓶颈,相比精炼现存信号,不如寻找新性质(qualitatively)的信息源

你已经加入了一些关于用户的人口统计信息,还有文件中的词语。你经历了模板探索,和正则化(regularization)调参。但连续几个季度的发布,你都没有看到核心指标有超过 1% 的提升。现在怎么办?

你已经到了为不同寻常(AI 科技评论注:很不一样)的特征,创建基础设施的时候了。比如用户昨天、上周、去年检索的文档,或是另一种属性的数据。为你的公司使用维基数据(wikidata)实体或者一些内部的东西(比如谷歌的知识图,Google’s knowledge graph)。你或许需要使用深度学习。开始调整你对投资回报的期望,并作出相应努力。如同所有工程项目,你需要平衡新增加的特征与提高的复杂度。

42. 不要期望多样性、个性化、相关性和受欢迎程度之间有紧密联系

一系列内容的多样性能意味着许多东西,内容来源的多样性最为普遍。个性化意味着每个用户得到属于他们自己的结果。相关性意味着一个特定检索的结果,对应它比对应其他检索更合适。因此,这三个属性的定义都有别于“标准”。

但标准更难被打败。

注意:如果你的系统在统计点击量、耗费时间、浏览数、点赞数、分享数等等,你事实上在衡量内容的受欢迎程度。有团队试图学习具备多样性的个性化模型。为个性化,他们加入允许系统进行个性化的特征(有的特征代表用户兴趣),或者加入多样性(表示该文档与其它返回文档有相同特征的特征,比如作者和内容),然后发现这些特征比他们预想的得到更低的权重(有时是不同的信号)。

这不意味着多样性、个性化和相关性就不重要。如同上个法则所指出的,你可以通过后处理来提高多样性或相关性。如果你看到长期目标的进步,那么你可以宣布在受欢迎程度之外,多样性和相关性是有价值的。你可以继续采用后处理,或者直接根据多样性或相关性修改目标。

43. 不同产品中,你的朋友总是同一个,你的兴趣不会如此

谷歌的 ML 团队 常常把一个预测某产品联系紧密程度(the closeness of a connection in one product)的模型,应用在另一个产品上,然后发现效果很好。另一方面,我见过好几个在产品线的个性化特征上苦苦挣扎的团队。是的,之前看起来它应该能奏效。但现在看来它不会了。有时候起作用的是——用某属性的原始数据来预测另一个属性的行为。即便知道某用户存在另一个属性能凑效的历史,也要记住这一点。比如说,两个产品上用户活动的存在或许就自身说明了问题。

谷歌白皮书原文地址:http://martin.zinkevich.org/rules_of_ml/rules_of_ml.pdf

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-01-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏c#开发者

简体-繁体内码转换API

 public class ANSIConversionAPI     {         const int SIMPLIFIED_CHINESE =...

3534
来自专栏吴伟祥

Java Calendar 类的时间操作 原

Calendar 的 month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示。

783
来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

24010
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1241
来自专栏Pulsar-V

C#下各种获取时间的姿势

直接贴代码吧 DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21...

3236
来自专栏用户画像

SQL Server 数据库连接类

934
来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2750
来自专栏张善友的专栏

Using sqlite with .NET

The other day I found that there is a .NET wrapper for sqlite. sqlite is a very ...

2318
来自专栏跟着阿笨一起玩NET

GB2312转换成UTF-8与utf_8转换成GB2312

1931
来自专栏吴小龙同學

时间工具类TimeUtil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30...

3066

扫码关注云+社区