Joaquin Quiñonero Candela谈机器学习

Joaquin Quiñonero Candela是Facebook 机器学习应用团队的负责人。他曾在微软剑桥研究院工作,还是微软Bing团队的一员。Joaquin Quiñonero Candela 在Facebook的主要工作是与Facebook 的人工智能实验室、各产品部门紧密合作,将机器学习、语言技术,计算机视觉等技术运用到Facebook的各个产品中,并将产品反馈纳入接下来的研究中。可以说,Joaquin Quiñonero Candela的团队Facebook人工智能从实验室到产品的关键。作为横跨学术界和产业界的机器学习大拿,Candela 在Quora上回答了诸多问题,如何看待机器学习发展的现状、机器学习如何在Facebook变得如此流行以及该如何学习机器学习,这些问题都将在本文中得到解答。

Facebook的机器学习团队都在做什么?

机器学习应用团队是Facebook应用研究团队的一员。我们的核心工作是机器学习、计算机视觉、计算图像以及语言技术。我们和公司的人工智能研究团队紧密合作,不过相对来说我们的工作更关注应用层面。接下来,我将简单介绍一些我们团队所做的有趣事情,当然,这并非一个完整名单,也并非只是我们一个团队能完成的事情,我们也需要和人工智能团队、核心数据科学团队以及众多产品团队并肩作战。 

在计算机视觉方面,我们有一套能够处理用户上传的每张照片和每个视频的系统,每天的处理总量超过100万张(个)。利用这套系统,我们可以预测出这张照片的内容,这个用处非常大。比如帮助盲人「看到」图片、自动侦测图片上的敏感信息、提升用户搜索多媒体信息时的准确性等等。我们采用包含数十亿节点的深度卷积网络。这个模型最有趣的地方就是可普遍适用的特性。最近,Facebook的Connectivity实验室和核心数据科学团队通过这些特性,分析了海量的卫星图片,创造了一张高分辨率的世界人口密度地图。 这个团队还有很多有趣的研究,也发布了一些论文:多任务学习、强化学习形成的通用视觉模型(论文)、采用Elastic SGD与时空卷积网络训练的大规模分布式系统对视频的分析(论文)、级连算法在视觉模型的应用(论文)。 

在语言技术方面,我们正在努力做的一件事情是消除Facebook上的语言壁垒。为了实现这个目标,我们每天处理超过20亿个帖子的翻译需求,超过40个语言的翻译,翻译方向(比如英翻中、中翻英)超过1800个。过去我们采用微软bing的翻译产品,后来我们自己开发或部署相关产品。现在,我们正在讲深度学习纳入到翻译产品中,希望通过神经网络,达到人类翻译的水准。 

在机器学习和新领域,我们主要聚焦研发和使用一些大规模、实时的机器学习或人工智能算法,用到一些大型机器学习应用程序中。无论用户何时登陆Facebook,这些系统都会用来评估用户时间线上的状态更新(目前的数字为:平均每天超过10亿用户,每个用户1500个状态)、广告和搜索结果(每天的搜索请求超过10亿)、热门趋势信息、拍朋友推荐信息甚至也会评估用户收到的各种提醒以及别人的评论信息。机器学习团队同样利用深度学习打造了一系列「优雅」理解文本的算法。这些算法整合到我们打造的机器学习平台里,用于加快推进和大规模实现从训练到部署的过程。Facebook所有采用机器学习的产品都会使用这个机器学习平台。如果你想理解机器学习在Facebook有多流行,我举个简单例子吧,超过20%Facebook工程师(甚至非工程师)都是这个平台的活跃使用者。我们现在研究的方向包括用于预测事件的深度学习模型、用于稀疏模型、深度学习的分布式复习系统、通过卷积和递归网络进行文本理解的表征学习以及通过多任务学习的模型压缩。

关于学习:你学习机器学习的途径是什么?在学习机器学习时,你最喜欢哪一本书?

我最初接触机器学习,是在我作为一位电信工程本科生学习高等非线性信号处理的时候。那是在1995至2000年。我非常幸运地拥有一位很赞的导师,他在个人信息在 Prof. Anibal Figueiras-Vidal这网站上。他解释到你可以怎样使用神经网络构建自适应的、受训于观察到的数据的非线性过滤器。于是,我就入坑了! 

我写的硕士论文是关于稀疏的径向基函数分类器。在那时,支持向量机风行一时,它似乎就像稀疏性是模型为了提高广泛性而应该具备的合乎要求的性质。我还记得你总是会评估你根据UCI repository的数据集创造出的算法。有趣的是在我们后来的学术生涯里,我警告过不谨慎使用稀疏模型的缺点(见see the dangerous uses of sparse Gaussian Process priors),并且我曾在行业里寻求一份gogn zuo,以能生成由机器学习应用程序产生的新的有趣数据。 如果我不得不指出一本非常有影响力的书,那就是 Chris Bishop’的第一本书: Neural Networks for Pattern Recognition (1995)。其中第十章「贝叶斯技术」真的很对我的胃口,也是我至今仍对贝叶斯倾注热情的产物。然而正如我经常所说的,「一位真正的贝叶斯派不可能彻底是贝叶斯派:你需要优先保留一些余地,因为有可能贝叶斯方法不是正确的。」 在我花了6个月时间拜访丹麦科技大学时,我非常幸运地在2000年偶然碰上 Prof. Carl E. Rasmussen 。Carl是一位贝叶斯派,向我介绍了神经网络的贝叶斯处理方法和针对近似推理的蒙特卡洛马尔科夫链抽样方法。他也向我介绍了高斯过程,我写的论文就是关于这个。我最后回到了丹麦,在Carl的指导下攻读博士。 

这些天,我会犹豫要不要给人们指出特定的书(有太多杰出的书了)。我坚持建议人们观看视频演讲。如果你在YouTube上搜索你想了解的任何主题,你将发现由顶尖学校的一流教授提供的丰富的视频演讲。给你一个具体的例子:我最近需要掌握更多计算图像学知识,找到了Bill Freeman的很赞的入门介绍。我最近还想综述自然语言处理的简介,就找到了Dan Jurafsky 和 Chris Manning的很赞的入门级讲座。 

如果你坚持读下去,这里是一本极大地激励了我的书,是Jaynes的《概率论:科学的逻辑》(这里是供你阅读的pdf版本: pdf version)那本书提倡使用概率论作为科学推理的语言,在我们如何探讨概率推理方面给人很大的启发,也对机器学习非常重要,而且近来这些天当我们思考人工智能的未来时,也会从这本书获得相关联的哲学启发。 

我也会鼓励人们立刻动手。如果你是Matlab用户(我以前是!)或者使用Python(当然你会用的),有许多应用程序包基本上是实现所有事情。然而对于很多算法而言,你可以编写你自己的程序工具,那是你真正要学的。

团队招人时,你看中的是什么?

我看中的是技术实力和性格。寻找的人是这样的:

  • 任务驱动型的。人们需要完全投入最终目标。

  • 适应不确定性。

  • 无私与合作。

  • ML黑客。

  • 强大的背景条件。

在应用机器学习中,什么是更重要的:数据,基础架构还是算法?

首先让我们确定目标:在应用机器学习中,成功意味着将机器学习系统对实际应用的影响最大化。例如,通过我们的广告排名系统将拍卖的总额最大化,广告排名系统是由机器学习系统驱动的,能预测广告与受众的关联程度。拍卖价值将被两件事积极影响:

  1. 预测的准确性。

  2. 候选广告的数量。候选广告能通过大多数精确的预测器(经典的是严格的延迟约束器,能更快的激活级联途径,是通过更不精确的预测器精选候选广告)来估价。

我们需要将精确度最大化,同时将在服务时间进行预测的计算工作量最小化。让我们现在聚焦于最大化预测精确度。机器学习系统典型地有一个实验组件,旨在设计和训练模型。我们已经发现最重要的属性是实验速度。一个团队能在单位时间内完成的实验越多,他们就能取得更大的进步,建立更好的模型。我们努力应用机器学习,一直以来遵循「每周扬帆前行」的口号,做出了伟大的成果。为了每周至少能给特定应用输送一个生产模型,你需要管理几十个现场实验,每周执行成百上千的线下试验。极佳的基础架构、平台和工具对应用机器学习是必不可少的,既要最大化实验速度,又要最小化在服务时间的预测成本。 

现在,让我们转向数据和算法问题。我们的哲学理念将问题分出了轻重缓急,下面是按重要性从高到低排列:

  1. 数据:尽你所能地得到大量数据,确保这些数据是最高质量的。就我们的经验而言,数据会以出乎意料的、不同寻常的方式变得杂乱。我最喜欢的一个故事是,快速重复点击以增加impression(译者注:impression是网站分析的最基本度量之一),这偶然不会起作用,因为存在一个假设是点击被报告给处理impressions的同样的数据中心。

  2. 特征工程:做大量的和它有关的事。提取你的数据,浓缩为有最大化预测力的信号。构建尽可能自动化的工具(自动化特征选择时常在后台运作,保持CPU的效用最大化)。我必须强调深度学习的来临正改变者游戏:当使用更简单的算法特征工程是关键的时,深度学习的承诺是它允许自动化地学习表征(例如特征)和你能馈送给它原始数据。一些明显的例子是DeepMind的令人惊讶的工作,也就是纯粹基于屏幕上的像素学习玩耍经典的街机游戏,而没有做任何特征工程。深度学习通过自动学习表征也已经引发了计算时间和语言技术的革命。还是那样,在实际应用中,依赖机器学习的产品团队定期通过特征工程仍有重大收获

  3. 算法:一旦你拥有了针对特征工程的最棒的数据和工具,就要保持提升你的算法能力(同时要保证这些算法是广泛推广的)。在Facebook,我们定期输送新的具备更大生产能力的模型,但是值得注意的是,只有当训练数据的数量一路增长,而且表现力(包括训练和在服务时间的预测)没有退化得太多以致于抵消了增长的精确度带来的益处时,这才有意义。我们总是将来自更复杂模型的精度收益与在做预测时增加的CPU成本相比较。这意味着我们经常使用最简单的可以完成工作的模型(从计算效率角度来说)。

总结:在应用机器学习中基础加工是至关重要的。然后,你应该聚焦于拥有尽可能是最好的数据,做大量的特征工程和使用最简单的能完成工作的算法。

深度学习如何影响 Facebook 今天的产品?

2012年基于深度神经网络的方法在 ImageNet 分类比赛中获胜之后,深度学习引起了很大的反响。神经网络已经在机器学习中应用了相当一段时间,但具备更大容量和远远更多数据的深度神经网络带来了变革并显著击败了其它较浅的模型。这一运动开始于计算机视觉,并快速扩张到了文本理解、机器翻译和语音识别领域。 

Facebook 拥有一个单一的使命:创造一个更加开放和互联的世界。随着我们开发出让人们可以分享更多的工具和产品,理解用户的内容并向他们提供最大的价值就变得越来越重要。这意味着,高准确度(精度和回调)、低延迟和更快速的创新。深度学习在所有这些方面影响我们的产品。它被用于文本、音频、照片、视频甚至交互的内容理解中。嵌入式的深度学习被无缝整合到许多产品组中,这使得他们能更专注于核心产品,同时又指望我们团队(机器学习应用产品组)提供可用于多种任务的可能最好的嵌入产品。 

除了提供嵌入产品,深度学习也在被应用在一些端到端产品中,如用于视频字幕的自动语音识别、为盲人配音的核心视觉识别引擎、让你可以将数百种语言翻译成英语的机器翻译。

为什么 Facebook 要投资(大量)人工智能/机器学习?

没有人工智能/机器学习,Facebook 就不能存在。 人工智能是 Facebook 已有的工程工作的自然延伸,这是向我们的社区提供好体验的关键部分。每天,这个世界都在产生越来越多的数据——文本、图片、视频等等。为了做到有用,我们需要帮助你梳理所有这些信息,这样你就可以看到你想看到的内容,并更高效地和他人交流。 

回答这一问题以及有关人工智能和机器学习领域更多具体应用研究工作,请见:What are the most interesting things Facebook is doing in ML research?

你怎么看待当前深度学习上的炒作?

我不认为这是炒作。 

人们已经在它上面进行了几十年坚持不懈的努力,但有有意义的先验的非常庞大而复杂的神经网络释放了表征学习(RL:representation learning)的力量,得到的结果极其优于那些通过手动输入特征和传统算法的结果。正如Yoshua Bengio 和 Yann LeCun 在他们最近的 NIPS 2015 教程中解释的那样,算力与训练数据的数量和质量的急剧增长是表征学习和深度学习成功的关键。 

回到表征学习上,它是真实的。过去几年这方面已有许多最新的突破性进展可以归功于表征学习。这些都已经在计算机视觉、语音识别、自然语言处理等领域实现。所有这些领域都拥有一个特征:输入信号是传感器信号。表征学习使用深度神经网络(DNN)架构学习这些传感信号的分层特征表征。这些表征最后表现得比人类施工的和高度精制的功能好非常多。那并不是关键,但这样的架构远远地近似于人类大脑中学习和执行认知任务的方式。 

比如在Facebook,我的朋友和同事 Ahmad Abdulkader 与我们的广告团队合作开发了能够自动检测出违反我们政策(例如包含暴力、酒精或武器)的有图片广告。在这一任务上使用深度学习在精度上带来了显著的提高,并最终保护了Facebook 社区免受潜在的不良内容的影响。我们的计算机视觉团队已经开发了一个供几十个团队使用的自助服务平台,以帮助他们在通过使用深度学习学到的图像和视频的表征的基础上训练专门的预测模型。Manohar Paluri 可以告诉你更多有关 Facebook 用于计算机视觉的深度学习应用。 

表征学习也还有一些尚未取得突破的领域,尤其是那些输入不是传感信号的领域。它是否还能取得那样的突破,尚有待观察。 说到这么多,学术界、业界和媒体需要谨慎对待夸大的结果、对可能带给机器的「智能」式未来的过度解读、以及机器是否以某种方式取代人类的严重后果的警告。这更接近科幻而不是现实 :)

为大型公司制作可通用机器学习框架所带来的重要经验有哪些?

打造通用机器学习框架很艰难。机器学习与人工智能如今进展层出不穷。这让任何通用机器学习框架不停地处在测试之下,甚至许多都已经废弃。另外,灵活性与规模以及灵活性和可用性与之间一直有着强烈的压力。这些都是一个总体框架所有需要考虑的重要权衡。 

在下面我会分享一些我们在制作Flow的时候的学习经验——也就是我们的通用的机器学习系统。工程师利用Flow去制作机器学习通道,以训练深度学习模型、大规模逻辑回归、决策树等等。Facebook的所有这些模型每周都会从实验环境部署到生产环境进行数次,并且被Facebook的很多团队调用。

深入理解你的应用场景:许多通用机器学习框架经常会突出强调某一个场景。在Flow,我们理解我们有两个主要的观众。其中一个写出新的通道,另一个通过添加新数据来消耗它们。我们确定了我们为这些场景中的每一个都提供了良好的体验。打造多层平台:良好的平台会从「use it all」和「lose it all」等场景中保护它们的用户,好的假期会提供很多抽象层。最外层提供最好的经验,但是如果用户不知道他们到底想要什么,他们应该降低级别去达到想要的。

速度,速度,速度!对于企业中的机器学习研究,让你设计的想法得到支持和许可都必须在保证速度的前提下。数据经常会很巨大,并带来降低创新的瓶颈。

默认可重用:无论何时工程师在Flow写了新的东西,都可以被公司里的其他人所重新利用。这意味着工程师有着超越以前的指数式增长的创新力。

准备写第二个版本吧:如果这是你的平台第一个版本,准备好去重新写一个吧,因为这里面隐藏着许多错误和坏的概念。不停地探索直至你认为这是个正确的时机去进行重写,但是在这之前要确保你进行了足够的讨论和探索,比如要达到更好的架构。

避免过早推广:在你尝试将产品通用化之前,确保你有2到3个具体的重度使用场景。如果你在未成熟的时候就通用化,你也许会失去一些重要的价值,减慢发展速度。记住,如果这是你的第一个版本,你总会需要重写的,因此千万不要提前通用化。

做一个算法不可知论者:机器学习经常会着眼于一个或另一个机器学习算法。在Flow,我们决定在这个平台上「欢迎所有的算法」。我们支持并创造了几个可用于Facebook的算法。但是平台是对所有算法公开的,因此可帮助Flow通用于任何出现的新算法。

统一带来的好处:算法的多样性是极度有利的。也就是说,一个统一连接这些算法的系统会非常强大。比如你研发了一个算法,且这个算法对于广告和搜索结果展示具有神奇的效果, 接着你可以执行一个Flow的有着标准化界面的算法算子(广告和搜索排行通道都调用了这个算子),结果是它会变得更好。再比如你已经研发了这个算法更强力的版本,不需做太多改变,你就可以用所有通道上的新算法进行实验,调用算子并方便地使用它。由此,我们的应用研究员可以将它们的影响力迅速扩大至整个公司。

如果你的余生只能够用一个机器学习算法,你会选择哪一个?

我真希望我身在能够回答这个问题的时候!解决机器学习的问题仍然需要人类在整个进程中绝对的参与:制定机器学习任务、定义度量以进行优化、预测数量、评估可用数据和收集附加数据,选择适合于手头的预测任务的模型池中的模型。当然,然后还会有计算有效性的考虑。如果模型需要作为机器学习的一部分在生产中运行,边际计算复杂度所附加的任何精确性都必须超过附加成本的消耗。换句话说,精确度不仅仅是唯一的标准:计算成本也是重要的一个。 我在剑桥大学的朋友与前同事所做出的一个令人振奋的努力正是我希望机器学习所前进的方向。他们的想法是自动化数据分析。另一个激动人心的方向则是ICML2015工作室所激发的「Auto ML」趋势,后者旨在尽可能自动化人类在机器学习中的参与。 没有任何理由能够说明,我们不能创造一个基于模型和预测任务的自动化数据分析和机器学习的人工智能。 

在一个更有趣的发现中,我逐渐开始使用许多模型中的高斯法和贝叶斯法,如果后期和预测分布难以实现时,这些方法可以利用MCMC以获得近似推理。我的兴趣仍然在于利用这些模型以及推理方法。尽管这并没有让它们成为我会在余生中唯一使用的算法,但是它们一定是很有趣的算法,并且回馈以大量的智力乐趣。

产业领域里的机器学习研究和学术领域的机器学习研究,有什么不同?

产业和学术领域的机器学习研究,很多相同点和不同点。我近十年来都在产业领域工作,因此,接下来的观点将更多地受到产业观点影响(多过学术领域)。不过,需要注意的是,我和学术领域保持着密切联系,也欣赏我们团队发表的论文,热衷组织和参与研讨会和会议。 

现在谈观点: 

数据:产业领域接触到的数据通常比学术领域多得多。不过,随着互联网的发展,这种差异在日益减少,但还是有一定差距。这也意味着学术机构的研究侧重于小规模的数据集,无法反映产业需要的解决问题。不过硬币的另一面则是,这些小数据集可以更方便迭代,从而帮助学术机构更快地获取研究灵感。 工具和基础设施:企业能够投入更多资源构建工具,能够保证在应对大规模需求时还能快速进行原型设计。在企业里,你可以更方便低于工程师和机基础设施专家合作,他们将帮助你搭建一个更坚固的研究基础平台。大量稳定的工具也可以保证你的研究可以快速移植。 

速度:对产业领域来说,时间就是金钱,因此速度非常重要。这里的工程师和研究人员通常会优先考虑速度和产品部署的频率,因为一个产品的目标就是一段时间内,在总体上最大化产品的影响。更快的迭代可以让你探索更多新的可能性并忽略一些没有承诺的开发方向。 

目标驱动力:产业研究有着非常明确的目标驱动力。这就是通过实现研究的商业化,来进一步推动产业对于研究的投入。在可落地实施的范围而后,综合考虑成本以及如何与现有产品体验的融合,是产业对于创新和研究投入的重要考量点。这里必须要提到一点,研究机构在创新方面的重要作用,由于产业倾向于一些短期技术的研究,研究机构承担了大量颠覆性技术的研发和创新。 

简单:在学术界,发表论文是主要的衡量成功的方式。论文作为一种强制作用,以一种结构化方式帮助新观点产生效果,也鼓励了那些在实践中运行良好的新奇事物。产业界往往在简单的一面犯错,因为大规模操控复杂系统是花费不菲的。 

对上述事情持非黑即白的观点总是错误的,因为在产业领域有一些让人惊羡的研究者,在学术界也有令人佩服的工程师,这使得不同领域的重大突破成为可能。理想的化学组合是产业和学术共同合作,取其所长,推进领域发展。

你如何在工作日程中安排长跑?

我每年跑几次马拉松和超级马拉松。也喜欢和朋友跑步。 

这些天我平均一周跑50多英里,让跑步和工作安排不冲突的方法就是很早起来跑步。几乎每天,我都是在日出左右开始跑步,有时从家里开始,有时和一些爱跑步和喜欢早期的同事从单位开始跑。我们在工作地点淋浴,而且我喜欢跑步后在公司吃早餐。 

清晨跑步,首先对我来说是有利的,完全清理了我的内心,这有点像冥想,然后我以宁静、安详的状态开始这一天。许多问题在前天晚上看上去似乎很可怕,跑完后,似乎完全在掌控中。

对励志在产业领域从事ML/CV研究的PhD候选人,给予一些指导。

为产业研究职位做准备的一条最佳方法是,当一次或更多次的暑期实习生。这会让你走出只需要做论文研究的学校氛围,进入这样一个环境,其中,影响力、快速成型和与其他团队深入交往不仅普遍而且重要。 

产业实习生允许你与其他有经验的导师工作,得到广泛经验,学到更多技术。有时,实习经历只会写入你未来的出版物中,但是,有时你将对一个重要的新功能或能力做出贡献。提前询问实习机会,这对你很重要。 

在实习期间,还有在学术研究期间,你会在扎实的软件工程实践中变得熟练。一条途径是使用和贡献开源软件。你的同辈将给你反馈你的代码质量和可用性如何。试着在团队中做一些你的研究。产业研究很少独立完成,因为有太多外部因素需要团结合作去创造真正的影响力(例如:输送新性能或产品)。试着做一些项目,所以你能得以拓展你的科技知识。最后,就你的工作向大量听众举办大量演讲,一些听众可能不是你专长领域内的人。但能推销你的工作给非专业领域内的人(包括非专业领域的导师),对你成功的产业研究至关重要。 如果你打算追求学术生涯(终身教授职位),那么在某个主题上非常专业且在某个理论上很善长,而不是精通动手操作和实验,这是非常好的,但这对于大多数产业研究职位而言,并非特别有用。

你如何看待开放人工智能?

我们欢迎他们来到这一社区,期待看到研究进展以及它们的最终回馈。 

不过,我会补充说,我们取得的人工智能进展,现在已经是一个非常公开的过程。科学研究力求研究者的交流促进。互动社区越大,进步也就越快。 

在Facebook,我们想要让人工智能研究者更容易分享方法和技术。我们有一个大体上支持开源软件和硬件的文化,而且FAIR(Facebook人工智能研究)和AML(应用机器学习)已经继续兑这一文化承诺:以学术论文的形式发表他们的发现,开放网站上可免费获取。我们绝大多数的项目代码成为开放资源,最近也开放了一个人工智能硬件设计。

对机器学习非常陌生的工程师/学生而言,什么才是最关键的?

机器学习包含非常广(且深的)科学和工程学科子集。所以想通透了解该领域就要花费点时间,需要常年累月持续学习,特别是当新算法和想法正不断被研究时。 

在某种程度上,机器学习类似于统计数据,试图从大量数据中推断出结论或者模式。但另一方面,它更像计算机科学,需求高效的算法和表达方式。 

我个人最喜欢的是Chris Bishop的《 Pattern Neural Networks for Pattern Recognition 》。当然,还有一些其他很棒的书,包括来自Coursera, Udacity, edX等的在线课程。但是,如果自己不做很多实验,几乎不可能学会机器学习。 

尝试书本或者讲座上布置的练习,花些时间。貌似投入很多,但是,如果你想长期呆在这个领域,你需要积累很多知识和直觉,知道适合每个问题的技巧和方法。你也要持续学习,因此,获取学习新材料才能然后吸收之并付诸实践会非常重要。 

变得精通合适的实验和证实方法。在某些工程领域,你可以遵循指导手册或者通过非形式推理验证正确性。在机器学习中,「正确答案」往往很少。因为你所做的就是从不完全信息中做出最好的推断(打趣地说法就是「做出最好的猜想」)。你不仅要设计出综合数据的单元测试,挑出代码中明显的bug,还要在更大的数据集中不断测试。这是一个非常大的挑战,因为得到正确答案非常的难(这叫做标记数据)。  

最后,紧跟最新研究,积极参加这个领域的年会。如果你刚步入这一领域,这是一种非常棒的方法了解这一领域的研究和技术深度。(年会往往会有很好的导师会议)如果你有经验,你可以借此建立与研究人员和从业者的社交网络,从而了解最新的技术和科研成果。

Facebook机器学习团队不招非PhD?

不,并非如此。虽然在多数情况下,PhD能帮助你学习如何做研究。Facebook的每个团队都有非PhD的人做机器学习,方向都不同。 

我们想知道,诸如Facebook有先进的机器学习算法的地方,是否还需要一些更加简单的算法? 

在Facebook中,我们尽可能用最简单的算法完成工作。如果预测精度有效,简单的算法就意味着更低的计算成本和更简单的调试。同时,创造性的简单算法也可能惊人的准确。在我们有关广告数据实验的论文中,我们对这些结果做过解释。 

就像我的朋友艾哈迈德·阿卜杜尔卡达尔(Ahmad Abdulkader)说的,「总有对更简单算法的需求。」事实上,更加简单算法比复杂算法更受人推崇。复杂算法总是要靠准确性的大幅度提升予以合理化。 

也有一些领域,更简单的算法也受到欢迎,即使它们的准确性不如复杂算法。比如,较之复杂算法,在很多机器上分布一个LR学习算法要容易地多。结果,LR胜出。 

简单的说,我们在需要时才用复杂算法:一些实例应用的领域,比如计算机视觉、机器翻译、文本理解和语言认知等。在这些领域,深度神经网络在预测准确性上有大步提升,所以使用它们无可厚非。

在Facebook,有哪些不明显使用机器学习的地方?

在《What are the most interesting things Facebook is doing in ML research?》中,我曾经给出过几个明显或不明显使用机器学习的例子。 我分享一个可能不那么明显的使用机器学习的例子。 

Facebook的 Accessibility team已经运作四年了,最初是专注于让Facebook已有产品让每个人都能使用。但是现在,它专注于为残障人士打造新产品。这个团队关注的一个对象就是盲人和视力丧失群体。因为Facebook是一种视觉上的体验(如同大部分互联网),我们需要尽可能的在创新上做投资,让Facebook的体验更好。我们在AI领域,以及诸如物体识别这些计算机视觉特定领域的投资,能够让更多人接触到科技。

你的生活平衡地很好,如何做到的?

哇,这个问题的前提假设是我已经很好地平衡了我的生活!:-) 我不断地尝试平衡我的生活。有三件是对我很重要:

  • 我的家庭

  • 我的工作

  • 保持身体上的健康

我觉得关键词是效率。依靠「习惯的力量」让我变得有效率。每天早晨我都会按固定路线跑步,有时会和朋友一起跑。同样的跑步习惯(时间、地点)让我们不需要花费时间做计划。在家里,我和妻子会提前协调好家庭与工作时间,避免突发事件。 

最后,我认为抽时间做计划是很重要的。为了看到更远的场景,后退一步是有必要的。你想要什么?什么事你会高兴的拒绝?(为了得到重要的一些东西,对很多事你都要说no。)

你会怎么描述Facebook文化?

我在这里工作最喜欢的就是Facebook的文化。我经常把我们的文化和价值观分享给新职员。 

我们的价值观很好的体现到了我们的文化:

  • 建立社会价值观:我们是一家任务非常明确的公司。我们每天早上来到这里工作不只是为了让这个世界更加的开放与连接,而是为了在人类生活中创造价值。在Facebook中有个团体叫「Go 365!」我就是这个帮助、鼓励跑步新手的团体中的一员。我加入两年了,总能见到队员对马拉松新手的鼓励和支持。

  • 快速行动:我们是建造者(builder)文化。我们会尝试、会思索。我们也会犯错误,事实上我们也鼓励犯错。你如何进步?我看到很多很棒的系统在快速力量驱动下成长起来。如果它们值得构建,我们会重点查看缺陷之处,往最佳的方向改善。

  • 大胆:「最大的危险是不冒危险。」有一个有趣的不对称现象,我们人类倾向于高估我们不了解的现状。这是棘手的,因为我们周围的世界变化得太快,而且我们目前的解决方案、产品或系统可能在新环境中不再有关联或是最适宜的。引用一个我欣赏的例子,Amazon的几年前做出大胆举动,大举投资Kindle。这个产品直接地攻击了他们既有的商业模式。

  • 保持开放:这可能是我最爱的价值观。保持开放帮助我们利用集体智慧,因为没有人有所有的答案。它也帮助减少意外,增加信任(记住,「意外是信任的敌人」)。最后,一个开放的反馈式的文化帮助每个人得到提升,变得更好。

  • 关注影响力:总是有很多事情要去关注,但是就像大自然教给我们的一样的,将我们投入的大量精力的影响力最大化,非常重要。在Facebook,我们努力建立自下而上的文化,每个人都感到有责任理解围绕他们的影响力在哪里,并将自己的工作朝向它。

最后,在Facebook,我们有一种「传播爱(ship love)」的文化,这是一种方式,说出我们在这里服务于15亿依赖我们构建工具和产品的社区。如果我们不爱这些人,我们不可能为他们服务。

有了H2O.ai(用于商业引擎的人工智能)、Azure机器学习、数据机器人,你如何看待机器学习大众化浪潮?

许多研究表明,机器学习工程师/研究员供需存在巨大缺口。一些人甚至预期这个缺口将继续扩大直到2019年。结果,机器学习「大众化」的努力可能造成巨大的影响,而且对这些工具而言,也可能意味着巨大商机。 

现有的成套工具似乎早已意欲达到这样的平民化。他们倾向于将重点放在帮助数据科学家达到他们的目标,主要是在企业环境里。 

在Facebook,我们在 AutoML这个方向做出了认真的努力。AutoML也是在许多机器学习领域(ICML,CodaLab等)获得了大量关注。这似乎是更有前途的方向,而且我的朋友和同事Ahmad Abductkader正积极地与我们的一些产品小组合作,致力于让国内机器学习大众化,尤其是帮助新的小型团队落地机器学习。

Facebook 的各种应用中使用了怎样的神经网络拓扑结构:有多少层,等等?

在Facebook,我们的目标是用最好的人工智能技术驱动产品。最好的有时候就是已经存在的,很多时候都是我们内部为 Facebook 量身定制的。有时候我所在团队(机器学习应用组,我们的应用研究机构)和 Facebook 的人工智能研究组(FAIR)肩并肩合作,我们也与我们的产品团队有密切的合作。 

我们使用的神经网络拓扑结构和我们在各自领域首次展示中所发布的类似。它们根据应用的不同存在差异,基本上都是深度卷积网络、全连接网络和递归神经网络。在基于文本、照片和视频、语音等应用上,我们也使用它们的组合。 我们的这些团队必须解决许多有趣的挑战。比如,我们通常将我们的数据视作一种流,而不是将其看作是几百万个样本的静态数据集。这让我们能够随时间学习更大的模型,拓扑结构也随之不断进化。另一个有趣的挑战是可能最好的模型也许并不是大规模运行时可行的模型。所以,我们总是会在模型的容量和计算与精度之间进行权衡。 

我们已经公布了各种研究结果,并且我们对组成链式或树状的多个模型的拓扑结构非常感兴趣,在这样的结构中,更快但精度更低的模型先运行,然后再给更慢但更精确的评估数据的子集的模型让路。这是一个正在进行中的研究课题,也是一个我们因为我们的数据规模而必须要解决的重要问题。另一个例子是视频,在这一应用中,可以应用基于图像的模型,我们可以使用一个连续的模型融合来自视频帧的信息,或我们可以慢慢地使用空间-时间卷积融合时间和空间信息。 

我们发表了使用这样的网络的学习功能上的发现,并展示了其通用化的能力。总之,随着我们研究越来越多并尝试找到精度、速度和内存之间的平衡,我们的拓扑结构也一直在不停变化;而我们也将积极公布这些发现。

毕业之后有哪些好的机器学习课程可以参加?

http://videolectures.net/是一个很赞的资源,上面有很多关于「机器学习」、「人工智能」、「大数据」、「计算机视觉」、「自然语言处理」以及更多与机器学习相近的主题。 

Udacity 和 Coursera 提供了完整成熟的课程,一个人可以以有限的知识开始一个领域的学习并在课程结束后取得相当的进步。我个人很喜欢吴恩达、Jeff Hinton 和 Daphne Koller 教授的课程,但我确信随着深度学习和机器学习在业界变得越来越重要,这些课程设置也在不断进化,资源也在不断增长。我问了问我们团队其他人最喜欢的课程,我的朋友和同事 Manohar Paluri 向我指出,比如说,乔治亚理工大学在线课程Pushkar Kolhe 和 Charles Isbell 与 Udacity 联合教授覆盖了机器学习的基础知识。 

爽的是大多数/所有这些资源都是免费的!在学习这些视频时,另外还很重要的是要亲自动手鼓捣代码,看这些东西是如何运作的。鉴于Torch、Caffe、Theano、TensorFlow这些工具已经可供下载,而且同时支持GPU和CPU,实验就是很简单的事情了。深入到这些代码中始终是快速学习的好方法。

你怎么看待对话引擎(conversational engine)的未来?

对于对话和口语接口来说,现在是一个激动人心的时刻。但还仍然非常早期。Siri 和 Cortana 这样的个人助手提供了简单的任务完成和搜索引擎和自然接口。对于 Facebook,我们相信大机会在人们与 Facebook 本身的交互之中。如果你想想人们使用 Facebook 的方式,这里每天都发生着数百万计的多路对话。使用对话理解和会话技术,Facebook 自己可能就能参与到这些对话中,而不只是被动地协助他们;我们还希望通过挖掘存储在 Facebook 图片库中的海量知识来增加价值。 如果你对 Facebook 的对话引擎和语言技术感兴趣,你可以在 Quora 上关注我的朋友和同事 Alan Packer.

Facebook 目前怎么使用计算机视觉,又计划在未来怎么使用它?

最近几年 Facebook 上的媒体内容分享和消费出现了巨大的增长。人们从文本转向了照片,而且从照片转向视频的过程正在进行,而且我们已经看见了虚拟现实/增强现实的影子。过渡到照片标志着计算机视觉作为一种重要工具的出现,而且随着我们转向视频和虚拟现实/增强现实,计算机视觉的发展动力还在不断快速增长。计算机视觉将在理解这些内容的公司中扮演至关重要的角色。它将不只能帮助理解,还能提供更加丰富和更具创造力的方式来分享你的经历(视频防抖、实时美颜等)。 

目前,有许多产品组使用了由计算机视觉系统提供的技术。这项技术被用于更好的搜索、用于辅助的图像字幕、打击垃圾和不良内容、筛选出违反我们政策的广告给人工审核、制作人口密度图、确定 Instagram 趋势、检测纪念日和重要时刻相似的照片等。每一个接触照片、视频和虚拟现实/增强现实的产品组都会利用来自计算机视觉组的信号。 

计算机视觉未来也将在 Facebook 及其各种产品的使用中发挥巨大的作用。想象一个简单的例子:我们向部分人开放了视频直播并已经取得了良好的使用。当我们将其开放给我们网络上的十多亿人时,将会出现数百万个并行的频道。这种信息爆炸意味着让用户能在相似的频道间切换和基于文本搜索直播视频等是非常重要的。 

Facebook 的本地搜索由人们的经历驱动,我们可以很出色地完成给出旅行、餐厅和周边事物的个性化建议的工作。围绕这一工作的大部分内容都是照片和视频。下一代虚拟现实可以使用由内而外的跟踪,这是计算机视觉的核心问题。随着计算机视觉越来越好,随着我们了解照片和视频中内容并开发出强大的视觉表征,我们将有能力推动目前甚至还没在 Facebook 平台上出现的新领域。 

如果你想询问关于计算机视觉及其在 Facebook 应用的具体问题,可以试试在 Quora 上向我的朋友兼同事 Manohar Paluri 提问! 

我们以前使用的是微软必应翻译服务,但最近我们已经使用我们自己的数据训练的自己的机器翻译技术进行了替代。我们这么做的主要原因是我们发现 Facebook 帖子和评论的语言与其它网络都不同:它非常俚语化,非常区域化,是非正式的人与人之间的交流而非文件或专业写作。所以,调整这项技术适应 Facebook 的语言并训练我们自己的数据让我们可以开发出更为精准的机器翻译。

Facebook 怎么识别照片中的人?

当你将照片上传到 Facebook 时,我们专门的面部识别服务器会将其选出进行处理。 

第一步是定位图像中所有的脸(也被称作人脸检测)。这一步的结果是一组线条框将每张脸圈了起来,非常类似于我们网站上作为标记体验的一部分的标记框。现在我们知道了图像中所有脸的具体位置,我们继续第 2 步——识别。 对每一张脸我们运行专门为这一任务训练的机器学习神经网络。这一网络会为每张脸输出一个数字表示。一种思考这种表示的好方法是将其作为高维空间中的一个点(坐标列表)。一个好的表示方法可以将同一个人的不同面部照片映射到这一空间中的同一区域,同时还能保持这些区域(其中每一个都代表不同的个体)之间很远的间隔。我们实际上为每一个人都创建了一个专门的模型,这样我们可以快速确定一张给出的新面部照片是该位于这个区域之内还是之外。 

最后一步是收集你和你朋友所有可用的面部识别模型,然后将上传的照片中每一张脸的上述表示和这些模型进行比较,然后选出最佳匹配的候选标签作为你的标记建议。所有这些处理在上传后很快就完成了,足够及时让你在写你的帖子时看到这些标记建议。 如果你想了解更多关于 Facebook 的面部识别的信息和我们接下来的开发计划,可以试试在 Quora 上向我的朋友兼同事 Tommer Leyvand 提问。

入门深度机器学习Facebook