业界 | Claudia Perlich Quora 问答集:机器学习能力将成为数据科学家的基本要求

Posted 机器之心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了业界 | Claudia Perlich Quora 问答集:机器学习能力将成为数据科学家的基本要求相关的知识,希望对你有一定的参考价值。

选自Quora

机器之心编译 

参与:杜夏德、孙瑞、吴攀


Claudia Perlich 是纽约大学的客座教授,也是 Dstillery 公司的首席科学家,主要的工作是为潜在的品牌客户设计、开发、分析和优化驱动数字广告的机器学习。Claudia Perlich 在业界和学术界都有非常耀眼的成绩。最近获得了 Advertising Research Foundation(ARF)的 Grand Innovation Award,并被选为《纽约商业周刊》年度 40 位 40 岁以下人物名单。她还曾担任过 SIGKDD 2014 大会主席。


1.数据科学家当下面临的最低效的问题是什么?


首先,我想声明的是我认为这并不是问题:事实上数据科学家 80% 的时间都花在准备数据上。这才是他们的工作!如果你对准备数据不感兴趣,那就不是一个好的数据科学家。任何分析的有效性几乎完全仰仗数据的准备程度,而与你最后选择的算法几乎无关。抱怨数据准备工作就像一个农民抱怨做任何与收成相关的事情,然后把灌溉、施肥、撒种的事交给别人。


也可以说,数据准备工作难在原始数据收集上。设计一个收集有用且易于被数据科学消化的数据系统需要高超的技艺。对数据科学家来说,让系统内数据流的过程完全透明化也是需要高技巧的。这个过程需要做抽样、标注数据、匹配等工作。还不包括替换缺失值和过度规划化的工作。为数据科学创造一个有效的数据环境,需包括数据科学而且不能完全被工程工作所占有。数据科学并不总是能规范这种系统对细节的要求来完成一个干净利落的切换。


但是从更大范围来看,还有更重要的事情需要考虑。我认为到目前为止最大的问题是数据科学解决不相关的问题,浪费了大量时间和精力。原因通常是任何有这个问题的人在表达该问题时都缺乏对数据科学的理解,而且数据科学家最终解决任何他们认为可能是问题的问题,然后找到的方法不一定有帮助(广告常常都非常复杂)。一个典型的类别就是「定义不透彻(underdefined)」的任务:「在这个数据集中找出可操作的 insights!」。不过,大部分数据科学家并不知道要做哪个操作。他们也分不出哪些 insights 是琐碎的,哪些是有趣的?对于哪些跟风行事的人来说,也真没有什么好建议。


个人来讲,我觉得有必要提的问题是缺乏数据理解和数据直觉(事实上缺乏这个三个因素常常会让数据科学家很快就下出结论),而且怀疑是最影响效率的限制因素。这些因素影响效率的主要原因是找到正确的答案需要花费很长时间。


2.你最喜欢的机器学习算法是什么?


易于上手的逻辑回归(logistic regression,带有很多花里胡哨东西,比如机梯度下降、feature hashing 和 penalties)。


我知道在深度学习风靡的时代,这答案有点奇怪。所以我先来讲下缘由:在1995-1998 年这段时间里 ,我用的是神经网络,到了 1998-2002 年这段时间我用的最多的是基于树的方法。从 2002 年开始,逻辑回归(一般的线性模型、包括分位数回归、泊松回归等等)逐渐深得我心。2003 年,我发表一篇机器学习的论文,展示了在 35 个数据集(那时候算是很大了)中三种逻辑回归分析方法与逻辑回归的比较结果。


长话短说,如果信噪比很高,树往往会赢。但是,如果信噪非常大,那么带有一个 AUC < 0.8 - logistic 的模型就是最好的选择,它总能击败基于树的方法。最终不太令人惊讶:如果信号太弱,高方差模型就完全没用了。


所以这到底意味着什么?在这种问题上,我倾向于处理低可预测水平的超级噪音。这个问题可以从非常确定性(国际象棋)的角度来考,也可以从非常随机(股票市场)的角度来考虑。(在有数据的情况下)一些问题仅仅是比其他问题更好预测一些。不是一个算法问题而是关于这个世界的概念陈述问题。


从这个角度来看,我感兴趣的大多数问题非常接近于股票市场。深度学习在另一个方向上效果很好——「这张图中有猫吗?」在一个不确定的世界中,偏置方差权衡(bias variance tradeoff)往往在有更多偏置的情况下是有利的——意味着你会想得到「简单的」非常受限的模型。而这就是逻辑回归的用武之地。我个人发现通过添加复杂的特征而不是尝试限制非常强大(高方差)的模型类别来增强一个简单的线性模型是更容易的。事实上,每个我赢过的数据挖掘比赛(KDD CUP 07–09)我都是用了线性模型。


线性模型除了性能上的优势,还很稳健,而且往往只需要远远更少的人工处理(好吧,随机梯度下降和 penalties 会让其变得困难一点。当你想要在你不能花费 3 个月长的时间来构建完美的模型的行业进行预测建模时,这是极其重要的。


最终,线性模型中的发生的情况更有可能得到是可以理解的。


3.完全掌握 TensorFlow 需要什么样的数学背景?


这完全取决于你如何定义「掌握」。你是仅仅想用它调节一辆 Formula One 汽车的引擎,还是想要摘得国际汽车大奖赛的奖杯?


但是,对于灵活使用数学与算法来解决某个问题这一方面,确实是有「掌握」一说的(如果你愿意,你还可以进行算法研究)。这是 Formula One 的技术人员常做的事情。对此,我指的是专业程度极高的数学。我个人不太喜欢做这一块,虽然我也曾学习过大量的高等数学。


然而,在应用方面 —— 当你做一个司机的时候,也有「掌握」这一概念。当你可能会使用 TensorFlow 的时候,你有好的灵感吗?你知道如何设计最好的数据表征才能使算法使用更加简单吗?如果 TensorFlow 的某个指标下表现良好,这是否代表它在其它指标下仍效果显著?以上这些例子都是考验你是否掌握 TensorFlow 的场景,而它们对使用者的经验、数据、以及直觉的要求,将远高于对单纯的数学的掌握。


那么问题来了:你是想成为 Michael Schumacher(德国著名赛车手),还是想为他工作呢?


4.机器学习如何影响数字广告?


实际上,在数字广告领域,机器学习无处不在 —— 曾经在 KDD(ACM SIGKDD 国际会议)有很多 ADKDD 研讨会(专注于在线广告)。当前,广告产业的数据日益丰富(虽然我不知是好还是坏),程序化的实时广告的兴起也为机器学习在这一领域的发展提供了充分的机会。作为回顾,你可以抽出一个小时,看一下我近期在 Institute of Advanced Study(高等研究院)的一个演讲:https://www.ias.edu/ideas/2015/perlich-data-video 

在多数情况下,机器学习被应用于以下不同的广告产业组成部分:


  1. 测量与分配(市场混合模型、观测数据的因果模型、用户倾向匹配等)

  2. 跨设备关联(基于用户模式、IP 重复等,预测两个设备属于同一个用户的可能性)

  3. 意图预测(某个消费者在下个月购买某个新车型的可能性)

  4. 广告印象层面的反应预测(点击或完成浏览的概率)

  5. 欺诈检测(分辨机器与人、欺诈链接与点击等)

  6. 用户洞察(观测一个在预测用户意图上表现良好的模型 —— 是否能够从中提取一些行为模式,并使用到创新设计中?)


还有一些广告领域中的机器学习应用是备受争议的。Sweeney 教授的成果显示,机器学习算法会反应潜在的种族歧视,我近期的一些工作也发现,一些预测模型会「倒向信号所在的地方」—— 而在弱指标下这是十分危险的。假设现在我们要预测一个广告的点击量,结果发现预测你非常有可能点击手电筒应用十分简单。这不是因为你对手电筒感兴趣 —— 而是因为你在黑暗中行动笨拙。尽管这一模型在想高点击率优化上表现优异 —— 它只会将广告投放给那些几乎对该产品完全不感兴趣的人。


5.随着产业内的机器学习越来越流行,数据科学将如何进化?


要回答这个问题,需要我们先思考一下数据科学与机器学习的关系。对我自己来说,数据科学本身包含了机器学习。从定义上看,机器学习指一个机器从数据中归纳知识的能力 —— 你可以把它称作学习或者推断。没有数据,机器就几乎无法学习。所以,如果有什么区别的话,机器学习在许多产业中的应用扩张,将会成为数据科学重现光彩的催化剂。机器学习的优劣与否,取决于其使用的数据,以及消化算法的能力。我的期望是,不断向基础的机器学习靠拢,将成为数据科学家的基本要求。


因此,对我来说,最重要的数据科学技术之一是评估机器学习的能力。我认为,我们所从事的数据科学并不缺少酷炫的项目和迷人的算法;而我们仍旧有待了解的是事物背后的运作原理以及如何解决不标准的问题。对于机器学习的(学术)观点,我的主要忧虑之一是,目前人们持续地关注在样本表现中的简单结果。基本上 99% 的研究论文都是基于精确度而被采纳的。


我从过去 12 年的工作中意识到:在多数应用领域中,学术评估几乎是没用的。在一些随机测试集中表现优秀的模型会变得一无是处。这个话题值得长篇讨论,但简要来说我对以下几点存疑:


  • 人们经常使用的指标(将分类器的精确度定义为判断正确的百分比是罪魁祸首)

  • 一个模型在最开始预测的往往都是错的这一事实(多数是因为根本没有「对」的东西的数据)

  • 抛开使用背景评估模型 —— 你应当先基于预测采取行动,然后再评估结果是否有改进,而不是直接进行评估

  • 样本数过大导致的种种问题 —— 人们基于现有的数据建立模型,而不是他们应有的数据,更加危险的是,人们往往还基于无代表性的样本评估模型。

  • 在带有混合生成分布的对抗情形(adversarial situation)中,模型最终只能识别出「错误的」正类的困境(可以参看我在上文对广告点击量作为指标的评价)

  • 泄漏 —— 表明某一模型纯粹是某数据集合的衍生物,且该模型的真正表现是非常糟糕的


6.准备数据科学面试时,哪些资源是最好的?


这个答案的首先最明显的部分是明白你自己准备做什么。一般意义上都是这样,而不只是在数据科学领域。现实情况是今天有很多东西都被叫做数据科学,许多人也自命为数据科学家。所以首先你要知道你到底面试的是什么,那通常并不是很明显。你也许需要在面试之前问上几个问题。


我已经看到数据科学的职位已经分化成了(多少有些夸张)多个类别:


  • 他们实际上在寻找某种分析师,有某种擅长的技能实际上就足够了(你可能甚至不想要这样的工作)

  • 他们在寻找数据工程师,他们基本上最感兴趣的是你是否跟上了 Scala 编程的最新进展和知道你自己的版本控制方法。网上可能能找到一些标准的准备研讨会,我不知道。(这也不是我想要的工作。)

  • 他们实际上在寻找能够基于不同的数据大小设计有效的统计分析的人,其中会涉及到一些机器学习、预测建模、聚类,而不会过于在意你是用什么方法完成的(这就开始变得有意思了……)

  • 他们在寻找深度学习专家……

  • 他们需要一匹独角兽——具备项目管理能力,能将一个业务问题翻译成一个「可解决的」数据驱动的解决方案。


一旦你搞清楚了你要做什么,你可能就要重新想想要不要应聘……


我通常在寻找第 3 类的申请者(有时候我也接受第 5 类)。不存在什么捷径「资源」能说服我你有这项工作所需要的能力。不幸的是,这确实涉及到个人的性格和经验。在 Kaggle 竞赛上花一些时间是获取经验的一个好方法。它们有许多数据集可以使用,你也可以从其他参与者那里学习经验。你所接触的数据集越不同,就越好!


此外,我还需要预测建模的专业知识,并且期望你熟悉来自《Elements of statistical learning》一书的概念。我需要你的能力足够为任何你所需要的事物编程出原型。你需要的技能包括数据拉取(API,SQ)、一些脚本编写的技能(Shell/Perl/Python)、一个建模的优质环境(Python 库/R/独立的实现),一些如何可视化/传达你的发现的想法。


一些发表资源能让你保持敏锐:KDNuggets KDD 大会(申请论文的好集合)


最后是一点不太相关的提醒:尽管创业公司很有意思,但你不会想让你的第一份数据科学工作是一家创业公司的数据科学家……


7.你是如何学习机器学习的?学习机器学习时,你最喜欢那本书?


我在学校一开始就在数学和科学学科上表现不错,并不是因为我真正喜欢抽象的事物,而只是我喜欢理解事物和解决难题罢了。所以以数学作为职业就出局了,但对于我想要做什么,我并没有什么强烈的感觉。与此同时我的爸爸则推荐计算机科学作为一个延迟决定的解决方案,然后做点什么我可能会非常擅长的事!他在 92 年时认为计算机很快就将用到各种各样的地方,而且我可以在后面想想我究竟想做什么。(我会对今天的数据科学领域的申请说同样的话。)


1995 年,我在科罗拉多大学波尔得分校做了一年交换生,没有任何统计学背景的我迷迷糊糊地参加了人工神经网络的课程,完全不知道我在做什么。从此我和数据结下了不解之缘,剩下的就顺理成章了。在那里,我用德语写了另一篇硕士论文,将汽车的物理模型和该物理模型和被观察到汽车运动之间的残差分析的人工神经网络模型结合到了一起。


我感觉我仍然很多东西要学(而且也不急着找工作),于是我开始寻找 PhD 项目,通过偶然的机会和朋友的关系,我在 1998 年加入了纽约大学斯特恩商学院信息系统的项目。在我看来,商学院的机器学习成果的优势在于专注解决实际的商业问题,而不是理论上的算法贡献。此外,也更加关注交流和说话的能力,因为我们都是作为下一代教 MBA 学生的教授而培养的。


幸运的是,在 2003 年,学术界还没有完全准备好将机器学习作为商学院的一项研究主题,所以我没有追求一项学术事业,而是加入了 IBM Watson 实验室的预测建模组。

下面是我的一些「神圣的」引路人列表,按我遇到他们的顺序排列:


  • Duda, Hard, Stork「Pattern Classification」

  • Bill Greene「Econometrics」

  • Hastie, Tibshirani, Friedman「The Elements of Statistical Learning」

  • Provost, Fawcett:「Data Mining for Business Intelligence」


我也在这里推荐几本轻松的书。一个好的数据科学家应该有一项非常好的技能:和随机性保持良好的关系。对此我推荐 Nassim Taleb 的「Fooled by Randomness」。同样,理解我们人类在处理信息中的偏见也对讲更好的故事而言是非常重要的,才能让我们自己不被数据愚弄。这方面我推荐 Duncan Watts 的一本书「Everything is Obvious Once you know the answer」。


8.作为一个数据科学家,你使用了哪些工具?


我是一个相当老派的人,而且因为我的事业在向管理岗位发展,也就更少写代码了,我已经控制好自己不「更新」我的工具集了。另外,因为我们不支持 X 的防火墙后面有非常敏感的数据,所以任何类型的图形界面都是很困难的,我的工作基本上都是通过命令行进行。


我常使用 UNIX shell 命令对数据进行操作。其中必然包含:awk, sed, grep, sort, cut, cat, head, tail, uniq……


下一层的编译我使用的是 Perl。


拉取数据主要是在我们 Hadoop 上的 Hive 前端上通过 SQL 完成。


我也用过 R、SAS、MATLAB 等工具——目前我大部分是使用 R 处理小事情(创建漂亮的图片等等)。


除了这些,我的态度是借用和窃取……我没有什么理由要自己实现任何机器学习算法。在这方面很多人都比我做得好。所以我已经积累了很多范围广泛的我发现的任何相关机器学习算法的独立可执行文件(UNIX):Thorsten Joachims SVM 代码(http://svmlight.joachims.org/ ),Tree 学习的 FEST 库(https://github.com/n17s/fest ),John Langford 的 VowPal Wabbit(https://github.com/JohnLangford/vowpal_wabbit/wiki )等等。


有时候我会发现一些我确实需要的工具 API。比如说,我发现了用于 NLP 的 Data Ninja(https://www.dataninja.net/ )。


9.一个数据科学家需要必备一些特定领域知识吗?


人们对这个问题争论很长时间了。我曾在 2013 年 KDD 的一个小组会议上做了几乎这同一主题的简短报告《The evolution of the expert(http://www.junglelightspeed.com/the-evolution-of-the-expert/ )》。我过去尝试过许多回答这一问题的方法:


「如果你足够聪明,可以成为一个好的数据科学家,那么在大部分情况下,你都可以在一到两个月时间内学会任何你所需要的特定领域的知识。」


「Kaggle 竞赛已经一遍又一遍地展示了好的机器学习算法胜过专家。」


「当聘请数据科学家时,我更感兴趣的是那些在许多行业内的经验比我丰富的人。」


或者我就让我的个人履历说话:我曾赢得了 5 次数据挖掘比赛,而我并不是一味乳腺癌、酵母基因组、电信客户关系管理、Netflix 影评或医院管理方面的专家。


所有这些可能都说明这个问题的答案是「No」。事实上,在通常的领域知识的解释上,我也会说「No」。但也有一些非常不同的地方:


我并不需要对一般意义上的领域了解太多,但我需要尽可能理解有关这些数据的创建及其含义的「一切」。这算是领域知识吗?不太算——如果你和一位普通的肿瘤学家交谈,你会发现他或她几乎不能解释你刚发现的 fRMI 数据的细节。你应该与之交谈的人可能应该是理解这些机器和其中的数据处理(比如校准)的技术人员。


10.广告拦截对用户有益吗?


从我非常个人的观点来看(许多比我聪明的人已经讨论过其经济影响了),短期内它对用户有益——它们可以减少页面加载时间,减少你的移动设备上的数据等等。但事实上内容商会受到伤害:而他们正是用辛劳的汗水为你提供你想要的内容的人。所以从长期来看,我很担心其影响不是人们所想要的。


如果经济的广告模式失败了,因为广告拦截消除了免费内容的收入流,内容上可能会面临这样的选择(通常很糟糕):


  • 乞求——这就是维基百科正在做的事。问题就在于通过订阅和好心读者的捐助所获得的收入是否足以支撑一个健康的和独立的新闻环境。

  • 更多内置广告渗透进内容之中。尽管 Steve Colbert 可能处在一个过于暗淡的位置上,但我认为这并不是我们想要的趋势。

  • 放弃独立和有信息的内容的概念,从别人那里复制信息,而不是为记者付钱。


部分的问题在于现在我们已经习惯了免费的信息甚至娱乐(以及所有用来生产、分发和托管的基础设施)。但不能因为我们能免费得到它们,就意味我们应该这样做。我很乐意为无广告的高质量内容付费!


11.进入科学技术圈子对于女性来说更难吗?


以我个人的经验来看,我会说并不会更难——事实上,在这个男性占大多数的技术领域,作为女性还存在一些明显的好处。之前的答案已经指出录取更偏向于女性。事实上,我并不喜欢这样的不平等——我可以看到它的好处,但我也厌恶它在暗示「否则女性就无法成功,因此女性并没有男性那么好。」下面的例外来自我 2014 年给出的关于这一主题的演讲:


一年前,我被要求担任世界上最大也是最负盛名的数据科学会议 SIGKDD 2014 (KDD) 的联席主席。我是该委员会中的唯一女性。很显然,选择我的决定并不是因为我是女性。换句话说,我很高兴这意味着确实有些男人确实在严肃对待性别平等,但另一方面,我有被骗的感觉,因为我并不确定我是否有资格得到它。


所以当涉及到因为女性是少数派所以要支持女性时,我的感觉很复杂。


我总的看法是:女性的身份给我的事业带来的帮助超过其所带来的伤害。我还没遇见过什么人会让我觉得我的资格是毫无疑问因为我的性别。我从未标榜自己是数据科学领域的女性榜样,也没有哀叹女性的稀少,因为我从来没有担心过我的性别会限制我的能力或成就。


事实上,女性参与到男性居多的领域中还有一个巨大的好处:人们会记得你。你已经和 90% 的典型男性区分开了。我去参加大会的时候,似乎有很多男人都认识我,甚至有时候我根本无法想起见过他们,更不要说记得名字了。事实上我们是很容易被记得的,而被记得是会很有帮助的。


那么我们如何通过我们的能力让人记得,而不仅仅是因为我们是女性这个事实?


但被记住是一把双刃剑。一份不是最近的性别研究(http://consumerist.com/2011/01/25/sexy-news-anchors-distract-male-viewers/ )发现当男性受试者看新闻时,他们可以很好地回忆起长得漂亮的女主持人,但却想不起她们说了什么。而当涉及到有吸引力的男性主持人时,他们可能没法回忆起他领带的颜色,但他们却可以回忆起在中东问题上的最新进展。这并不是因为他们真正相信女主持人读新闻的资格不够,只是生物学在作怪罢了——潜意识在帮倒忙。


所以女性在男性主导的行业里确实面临着困境:我们如何通过我们的能力让人记得,而不仅仅是因为我们是女性这个事实?我们如何确保我们被叫上舞台是因为我们的思想而不是我们的性别?


12.数据提取(data ingestion)可以自动化吗?


在这个大数据的时代,数据提取不得不实现某种程度的自动化——否则其它事情便无从谈起。



让我们谈谈如何做:在自动化过程方面存在 3 个真正重要的部分:


  • 如果全数据流过大就灵活地采样:如果你每天要处理 500 亿个事件——只是将它们塞进 Hadoop 系统倒还好——但后续操作却很繁琐。相反,除了 Hadoop 备份过程之外,有一个能将有特定价值的事件取出的过程是很好的。详情可参阅我们写的这篇博客文章:http://www.kdnuggets.com/2016/08/automated-data-science-digital-advertising.html 

  • 动态历史的注释:拥有所有的事件日志是很不错,但对于预测建模,我通常只需要有能获取实体历史的特征就行了。每一次都加入超过十亿行来创建历史是不可能的。所以部分的提取过程其实是一个注释过程,该过程能为每一个事件附加重要的信息。

  • 有统计测试该评估,看输入数据流的性质是否正在改变,当比如说一些数据源临时变暗时发送警报。一些相关内容请查看这里:http://www.troyraeder.com/papers/kdd12.pdf


13.如果想从数据科学家转向数据科学团队经理有哪些挑战?怎么做准备?


这十多年来,我一直在回拒让我管理数据科学团队的要求。而现在,我非常享受和一个团队进行互动、开大脑风暴会议、和某些人一起探究我的想法——但我相当不喜欢告诉别人该做什么。


我个人曾见过很多优秀的数据科学家不是很好的管理者——但这可能在任何领域都是一样。许多时候优秀的数据科学家会感到他们事业的唯一进展是开始领导一个团队。


我个人来看,我发现不自己做数据科学工作的前景是相当艰难的。我也有重大的信任问题——我超级怀疑我自己的结果——所以让其他人来做我的工作是难以接受的。我的忧郁的原因是工作成果的很多方面都依赖于数据准备过程中很多微小的细节。比如说:你删除重复项了吗?样本选择的任何细节都是至关重要的。除了非常了解你的团队的成员的长度和短处,以及知道什么人值得托付怎样的任务——这里要做一点准备。


作为经理,一项非常重要的技能是与不同的业务部门互动,以确认需要做哪些工作,哪些工作优先。那需要了解数据科学的广阔图景以及很好的沟通技巧。作为准备,我建议你尽可能地参与到你目前所从事的项目的界定的过程中,并开始练习如何与企业的利益相关者交流。事实上,任何涉及到向不太技术的观众进行公开演讲的机会都对此会很有帮助。


✄------------------------------------------------

加入机器之心(全职记者/实习生):hr@almosthuman.cn

投稿或寻求报道:editor@almosthuman.cn

广告&商务合作:bd@almosthuman.cn

以上是关于业界 | Claudia Perlich Quora 问答集:机器学习能力将成为数据科学家的基本要求的主要内容,如果未能解决你的问题,请参考以下文章

handoff

zookeeper选举代码分析

同时对两个数组进行排序

angularjs提交按钮不起作用

Jupyter Notebook 中的旧 sklearn 版本

[NISPA类会议] 怎样才能在NIPS 上面发论文?