前Facebook产品经理:打造机器学习产品的黄金手册(上)
【编者按】本文节选自前Facebook、雅虎产品经理yaelg所编写的机器学习黄金手册,介绍了机器学习对业务的帮助以及在机器学习方面需要重点掌握的算法。
本文发于机械鸡,原作者yaelg,珊珊编译;经亿欧编辑,供行业人士参考。
人工智能 时代,每位产品经理、企业家以及商业领袖都应该了解 机器学习 。即使你不是在设计一款chatbot或者无人车,但为了产品保持竞争力,你早晚都要把机器学习融入到你的产品中。
好消息是,你不需要发明新的技术,只需利用已有的技术。许多科技公司开放开源工具和平台(如Amazon AI, TensorFlow —最初由Google开发的)使得几乎所有公司都可以使用机器学习。
当我开始捣腾机器学习的时候,我什么都不晓得,然而在很短时间内,我便掌握了领导开发机器学习产品的核心要领。我的目标是让你充分了解开发机器学习产品的技术和开发流程,使你能尽快开始。这将是一份循序渐进的教程,助你成为利用机器学习实现业务目标的PM(产品经理)。
手册共6部分:(本文节选前两个部分)
1、机器学习可以为你的业务带来什么
2、你需要了解的机器学习算法以及为什么要了解
3、机器学习模型开发的流程始末
4、机器学习产品团队的角色分工,技能和组织结构
5、机器学习差不多就是个UX(User Experience)问题
6、产品经理应该了解的开发注意事项
第1部分、 机器学习可以为你的业务带来什么?
使用ML(机器学习)不仅可以分析内部数据——通过内部与外部数据结合,可以增强ML的强大功能,从而创建前所未有的新方案。A16Z的Frank Chen关于人工智能、机器学习、深度学习如何入门,讲解的很详细。其中有些应用程序是大趋势,现有的技术尚未能使其实现,但是预示了很大的可能性。
就像TOB企业8-10年前开始考虑投资移动设备,现在是企业开始探索ML技术,作为可以帮助推动业务成果的的时候了。对于专注于利用现有ML技术的公司,有几个关键领域是可以融合ML技术的。 以下列举了,可能对你目前的业务产生影响的方面:
-
大量定制的用户使用环境,体验和系统响应方式
想象一下,人们所做的或看到的一切都可以为他们特别定制,甚至预见他们的需求和行为。
这包括产品或服务的推荐,按照与他们行为相关的级别排列;
根据你们系统已知的用户数据,他们的行为,喜欢他们的其他用户或外部数据,来预测他们下一步做什么,来定制用户体验或流程。小规模地,可以转化为某类型用户,而不是单一用户的体验定制。
-
根据 视觉识别 的能力,相应地自动化或定制体验
现在的技术可以识别照片和视频中的对象,包括识别实时摄像头上的内容。
Pinterest使用视觉识别,来推荐与用户正在看的照片中的相似/互补的内容;
Facebook 使用人脸识别技术来建议用户在照片中标记朋友,亚马逊正在建立基于视觉识别的商品自动存储检查。
-
自动检索,生成或处理内容
ML可以方便地处理大量的内容。
常见用途是文件检索——比如查找与法律案件相关的所有文件(请注意,这不仅仅是关键字到上下文搜索),按主题和关键字对文档进行分类,内容的自动总结,从大量内容中提取相关信息——例如,在供应商合同中查找具体条款等。“内容”适用于所有类型的媒体,而不仅仅是文本。
-
预测,估计趋势
ML可以实现非常昂贵或难以完成的趋势预测。ML用于进行测算特别有效,像那些需要高水平专业知识的测算,例如房子的价格,或者甚至人们不能完成的,比如预测哪些内容在社交媒体上会有更好的成效。机器还可以在人们观察总结出数据特征之前,识别数据趋势。
-
检测异常活动或系统故障
每个系统都有出现故障和失灵的时候,但ML不仅能检测出问题,还能判断这些问题是否正常或应该引起注意。这在各种监控和安全系统中特别有效。
从战略的角度来看,ML可以提升业务的以下能力:
-
为你的客户提升用户体验和服务功能
最常见的用例是大规模定制——更快速有效地找到与客户相关的产品,例如他们在探探上的最佳配对,他们在音乐网站上可能会喜欢的歌曲,他们可能会有兴趣购买的产品。
另一个用例是,预测他暂时不会有的行为。
这些例子可能比较普通——例如,Zillow公司的Zestimate软件对房子进行估值,无论有没有人在看这栋房子;
或个人客户定制——例如,用户可能会收到根据他们的个人口味,系统对他们还没看的电影所给的评分。
-
内部功能,流程和业务逻辑
机器学习可以为你节省时间,使你的运营成本投资在业务流程和决策上更有效率。
例如:贷款公司想优先考虑潜在的贷款申请人。
它需要确定哪些用户十分需要贷款,以至于一旦知道自己符合贷款资格就会立马申请,且实际上有能力偿还。确定最有信誉的客户的优先级不是唯一的答案,因为这些客户通常有许多选择,并且不一定愿意转换,因此需要更为复杂的模型。
-
扩展到新行业和新产品
数据可以帮助你开辟全新的商机——为现有的客户创建全新产品,或为你以前未提供服务的细分市场或客户提供服务。例如,Netflix可以为非核心用户,提供基于数据所得的哪些主题和情节线为观众所喜欢的建议,Zillow可以帮助房地产开发商了解,哪些建筑能获得最高的投资回报等。
许多公司正在招纳能构建ML模型的数据科学家,因为“我们应该用我们的数据搞点事情了”。
我听说过许多知名公司的高管都说“我们看到我们的竞争对手都在买数据,所以我们也要这样做,才能保持竞争力”,然后再聘请几位数据科学家,希望他们能拿出一些魔法。
这让我对ML的存在有了很大的误解。ML不是你们企业的魔杖,使用ML的第一个挑战是,确定技术在推动业务影响的哪一方面。
ML是一个解决方案—— 你首先要确定问题,你希望通过ML实现什么样的业务目标?ML为你的客户带来了什么?ML是一把锤子,但如果你没有钉子,那有锤子也没什么卵用。
其核心是“我们要解决什么问题?”这是一个商业问题,这意味着最终拍板的是产品经理和业务领导者,而不是数据科学家。
数据科学家和其他利益相关者应该参与到对问题的讨论中——但不要把问题交给他们,并期望他们来给出答案。
如果你有数据却不知道该用来做什么,请与团队中其他直接面向客户的成员进行客户访谈和思考。数据科学家可以帮助您探索数据,构建和迭代模型,但除非他们具备丰富的专业知识,否则他们很难自己提出业务问题。
为了最大限度地发挥机器学习对业务的价值,需要产品经理和数据科学家之间的持续协作,产品经理有责任确保解决的问题对业务是最有影响力的。
机器学习如何推动你的业务发展?
虽然ML的可能性是无穷尽的,但你应该弄懂技术,如何适用于你的团队。这里有些例子:
-
内部流程
-
公司的员工今天所作的决策有哪些可以自动化解决的,那么他们的精力就可以更好地利用在其他方面
-
公司员工通常从哪些信息源手动搜索、收集或提取数据,这些数据怎么样可以自动化
-
如果数据能够满足模型的运行,业务决策是否可以由机器作出?
-
现有客户的产品和经验
-
用户的哪些互动是人为定制的,有没有可能用机器自动定制?
-
根据自己的喜好,行为和需求,我有明确的细分用户画像吗?我的产品/体验是否为每个细分受众群定制?
-
我能否根据对用户的了解,或他们与我的网站/应用/产品的交互来定制每个客户的体验?如何为他们创造一个更好,更快或者其他更愉快的用户体验?
-
更具体一点,如今客户在作出的是什么决定和选择?根据我已有或可能拥有的一些数据,这些决策能否自动化?
-
如何更好地识别好与坏的用户体验?我能否在消极的用户体验或满足感发生/传播之前及时发现?
新的垂直细分行业和用户
-
我有其他可能对行业或相邻行业的其他利益相关者有用的数据吗?它可以帮助这些利益相关者做出什么样的决定?
总结
如果我能准确地预测会产生什么样的指标或趋势,会对服务于我的客户或提高在行业中的竞争力产生什么有意义的影响,例如,对某些类别产品的预测需求,成本波动等?
我收集数据的关键实体是什么(人,公司,产品等)?我可以将这些数据与任何外部数据(来源于公共来源,合作伙伴等)结合起来,来告诉我关于这些实体有新的或有用的信息吗?对谁有用,以及多有用?
例如:当用户正在搜索你的产品时能识别出他是潜在客户,了解外部因素如何影响你所处的行业需求并作出相应的反应等。
与你团队和组织中的重要利益相关者一起集思广益地提出其中一些问题。如果你不知道从何处起——先从一处开始。尝试使用某些数据,帮助你和你的团队找到方向。
在第2部分中,我们将讨论PM需要了解的所有ML技术术语,技术选择如何受问题的定义影响,以及一些值得关注的业务建模陷阱。
第2部分、你需要了解的机器学习算法以及为什么要了解?
上一部分我们讨论过ML可对业务产生影响的方面。我们先回顾一下你需要了解的技术术语,以便有效地与数据科学团队合作,并帮助他们为你的业务做更好的决策(至少让你看起来知道和他们讨论什么)。
-
算法,模型和数据
在概念层面上,我们正在构建一个机器,给定一组输入,通过查找数据中的规律模式,从中学习并产生一定的期望输出。
通常是向机器“投喂”给定的一组输入和一组对应于这些输入的输出数据来开始。
让它识别两组数据之间的模式,并创建一组复杂的规则,然后将其应用于以前未见过的新输入数据并产出期望输出。
例如,给定平方英尺(面积)、地址和房间数量(输入数据),我们正在预测的房屋销售价格(输出数据)。假设我们有10000所房屋的平方英尺、地址和房间数量以及销售价格的数据。
机器将基于给出的数据“训练”自己——即识别出房屋的平方英尺(面积),地址和房间数量如何影响房屋价格的模型,以便如果我们给出一所,之前没有输入的房子的3个特征值数据,那么机器可以预测这所房子的价格。
数据科学家的作用是根据给出的输入和期望输出值,找到最理想的机器学习模型。
数据科学家在模型中利用算法,让机器运行。
模型的模板有不同的选项和设置,数据科学家可以调整这些选项和设置,从相同的模板中生成不同的模型。也可以使用不同的模板或调整相同模板的设置,来生成许多模型,以便她可以测试哪些模型能得到最佳结果。
请注意,模型输出在某种程度上,对于决策是正确的/有用的。模型不是100%正确的,而是基于所给予的数据集得到的“最好的猜测”。用于训练模型的数据越多,得到有用输出的可能性就越大。
数据科学家用来“训练”机器的已知输入和输出数据集——即模型识别数据中的模式并创建规则——被称为“训练集”。
该数据用于与一个或多个“模板”,一起创建数据科学家认为可以解决问题的一个或多个模型。记住,即使数据科学家只使用了一个“模板”(算法),他也可以通过调整一些选项,从同一个模板生成多个模型;或调整不同的设置,他可以得到多个模型。
在他有几个“训练有素”的模型之后,他必须检查模型的工作情况以及哪一个最有效。她通过使用一组称为“验证集”的新数据,将验证集输入模型,以查看哪一个模型能给出最接近验证集输出的结果。
比如之前所举的例子——哪个模型预测的房产价格,最接近房产出售的实际价格。在这个阶段,他需要一组新的数据,因为这些模型是根据他们的训练集而创建的,所以他们偏向于在这个集合上产出得很好,而不是真的会解读数据。
一旦检验出哪个模型,能够获得最佳效果并挑选出最好的模型,那么我们的数据科学家就需要确定该模型的实际表现。也就是说,他所能制作出的最好的模型能真正用于解决这个问题。
再次,数据科学家需要一个新的数据集,因为模型在训练和验证集上表现良好——这就是它被选中的原因!最终使用的数据集称为“测试集”。在我们的例子中,她会检查房价对于测试集输入的预测,是否接近实际房屋价格的测试。稍后我们将详细讨论测量性能。
-
“学习”类型
你可以应用机器学习,来解决问题的算法类型,取决于你所拥有的数据。
学习算法的分类基于构建模型所需的数据:数据是否需要包括输入和输出值,还是仅有输入值,需要多少数据点以及数据收集时间。
它包括4个主要类别:监督学习,无监督学习,半监督学习和强化学习。
-
监督学习
我们在上文中详细讨论的例子,符合我们所说的“监督学习”。
这是一种学习方法,其中算法需要看到大量标注数据示例——数据由输入数据和相应输出组成,以用于工作。在我们的举例中预测房屋价格,“标注”部分是指使用模型试图预测的结果来标注输入。
监督学习算法参见标签数据(又称“地面实况”数据),从中学习并根据这些实例进行预测。他们需要大量的标签数据:虽然数量取决于用例,但数以百计的数据点是远程实现的最低限度。
可以通过监督学习解决的两个经典问题是:
-
回归
根据其他原因,推断未知变量的值会对该变量产生影响。
两个常见用途是时间预测——例如我们之前的例子,基于诸如位置和平方英尺等变量预测住宅的价格,并预测未来的价格。
根据历史和目前的住宅价格数据,预测一年内的住宅价格。回归是一种统计方法,用于确定独立变量(你已拥有的数据)与其所需预测值的因变量之间的关系。
-
分类
识别一个实体属于某一类别的分类问题。
这可以是二进制分类——例如,确定帖子是否会携带病毒(是/否),以及多标签分类——比如,用产品所属的相应类别标记产品照片(可能有数百个类别)。
-
无监督学习
在无监督学习中,算法尝试识别数据中的模式,而不需要使用期望的结果标记数据集。数据是“未标记”——它只是“有”,没有附加任何有意义的标签。通过无监督的学习方法解决的一些经典问题是:
-
聚类
给定一定的相似性标准,找出哪些数据更相似。使用聚类的一个领域是文本识别——返回类似文档的搜索结果。聚类可用于将它们分组,使用户更容易识别有明显差异的文档。
-
关联
根据某些相似性将对象分类到不同的“存储桶”,从而“存储桶”中的一个对象可以用来预测另一个可能存在的对象。
例如,“买了X的人也买了Y”这样的推荐问题:如果分析大量购物车数据,可以看出,商品X在购物车中的存在,可能表明产品Y也将会在购物车中,你可以立即向任何将产品X放入购物车的人,推荐产品Y。
-
异常检测/偏差检测
识别需要标记和处理的数据的特殊模式。标准应用是复杂系统的欺诈检测和健康监测。(注意:有监督异常检测技术,但使用无监督技术是最常见的,因为根据定义,吐过很难获得标记的异常数据,这是使用监督技术的先决条件)
-
半监督学习
这是监督和无监督学习的混合版,其中算法需要一些训练数据,但是比监督学习需要的少得多(可能是一个数量级)。算法可以是在监督和无监督学习中使用的方法的扩展——分类、回归、聚类、异常检测等。
-
强化学习
这里的算法从有限的数据集开始,并且随着得到更多的反馈和时间的推移,来学习。
如你所见,除了要解决的问题类型之外,你所拥有的数据量将会影响你选择使用的学习方法类型。这也适用于另一种方式——你所需要使用的学习方法,可能需要你获取更多的数据才能有效地解决你的问题。我们稍后再讨论这个问题。
其他值得了解的常见“流行语”
当你在这个领域工作久了,就会发现经常遇到其他一些术语。了解他们之间的关系,对我们应用以上讨论的“学习”类别很重要。
深度学习与上述定义正交。它只是应用于特定类型的系统来解决学习问题——解决方案可以被监督,无监督等。
-
人工神经网络(Artificial Neural Network,ANN)
是一种通过人脑神经元网络,来模拟我们大脑工作方式的学习系统,在工程与学术界也常直接简称为神经网络或类神经网络。
神经网络至少有一个输入层——数据被输入网络的一组神经元;
一个输出层——结果传递出来的神经元和两个之间的一个或多个层,称为“隐藏层”,它们是进行计算工作的层。
深度学习只是使用,具有多个隐藏层的神经网络来完成学习任务。如果你曾经使用这样的网络——恭喜你,你也可以飙流行语了!
-
集成方法或集成学习
使用多个模型,来获得比单个模型单独实现的结果更优的结果。这些模型可以基于不同的算法,或者使用不同参数的同一个算法。
并非只有一个模型需要输入和产生输出——比如某种预测,你有一组模型,每一个都产生一个预测,通过一些测试来衡量不同的结果,并决定怎么样的组合才是最好的。
集成方法经常用于监督学习(它们在预测问题中非常有用),但也可以应用于无监督学习。你的数据科学团队可能会测试这些方法,并在适当时应用它们。
-
自然语言处理(NLP)
是让机器理解语言的计算机科学技术。
不是所有类型的NLP都使用机器学习。例如,如果我们生成一个“标签云”——一个单词出现在文本中的次数的视觉表示——就没有使用“学习”。对语言和文字更加复杂的分析和理解往往需要ML。
举些栗子:
通过关键字生成,了解文本正文的主题,并为其自动创建关键字
语言消歧,确定一个单词或一个句子的多种可能的解释(这是一个很好的例子)
情绪分析,了解一段文字所表达情绪的负面和正面的程度
-
命名实体识别
在文本中识别公司、人员、地点、品牌等;当这些名称不是特指的时候,这是特别困难的(例如,“微软”公司比“目标”公司更容易识别,因为“目标”也是英文中的一个单词)
NLP不仅用于面向ML的语言应用程序,如chatbots。它也被广泛用于预处理数据,预处理后,才能成为被许多ML模型使用的有用输入数据。
另外:上述定义旨在表达主要思想,切实可行;详细的科学定义请参考其他来源。
尝试通过ML实现的战略目标将决定许多下游决策。了解一些基本的ML概念及其对业务目标的影响至关重要,以确保你的数据科学家团队,能为你的业务提出正确的解决方案。
-
算法选择
定义问题的一个小变化可能意味着,需要完全不同的算法来解决它,或者至少将使用不同的数据输入来构建不同的模型。
寻找能够为用户找到适合的照片类型的约会网站可能会使用无监督的学习技术(如聚类)来识别常见的主题,而如果问题是,向特定用户推荐潜在可行对约会对象,则网站可能会使用监督学习,例如他们已经看过的照片。
-
特征选择
是指从已有的M个特征(Feature)中选择N个特征使得系统的特定指标最优化,是提高学习算法性能的一个重要手段,也是模式识别中关键的数据预处理步骤。
你“投喂”给模型的数据,按特征分组(也称为变量或属性):这些是相关数据,大部分独立的数据片段,描述了你想要预测或识别对象的方方面面。
拿上文中,公司希望筛选意向贷款申请人为例。
如果我们将问题定义为“根据客户的贷款可能性进行优先排序”,我们将会考虑,包括类似客户对公司各种外展活动的响应率等特征。如果我们将问题定义为“优先考虑最有能力(可能)偿还贷款的客户”,我们可能不会包含这些特征,因为它们与评估客户的可能性无关。
-
目标函数选择
目标函数是你要优化的对象或模型试图预测的结果。
例如,如果你尝试推荐用户可能感兴趣的产品,则模型的输出可能是用户在看到产品时点击产品的概率。也可能是用户购买产品的可能性。
目标动作的选择主要取决于你的业务目标——在此示例中,你是否对用户参与感兴趣,在这种情况下,你的目标动作可能是点击或停留时间,或直接收入。在这种情况下,你的目标动作将会是客户选择购买?
另一个关键因素是数据的可用性:对于要学习的算法,你必须将许多数据点“标记”为正向(用户看到并点击的产品)或反向(用户看到的产品和没有点击)。你可能会得到点击(或未点击)产品和购买产品的数据点数量级。
-
可解释性和解释性
ML模型的输出通常是一个数字——一个概率,一种可能发生或正确的可能性的预测。
在产品推荐示例中,站点上的产品,根据个体用户可能会点击它们的概率分组,并将具有最高点击可能性的产品提供给用户。
但是你怎么知道它有效?在这种情况下,验证算法是否有效相对容易——你可以运行一个简短的测试并查看效果。但如果你排名的实体是潜在雇佣对象,你的模型,能否用来测试他们是否是一个合格的雇员?
一个用户(比如一个招聘经理)只是相信你所说的,那他们是否有必要理解为什么这个算法把A对象排在B前面呢?
通常你都要解释一下。然而,许多ML算法是一个黑匣子:你输入许多特征值,并获得难以解释的模型。机器在数据中发现的模式(规律)往往如此复杂,即使人们很容易输入特征值,也难以理解这些模型。
在接下来的章节中,我们将说明为什么需要解释性——最终用户需要能够理解结果如何实现以及可解释性——用户需要根据得出的结果得出某种程度的结论,这是在建模,选择特征值和呈现结果的方法中需要考虑的。
第三部分、PM应该注意的建模和性能测试陷阱
你的数据科学家将用数据处理和建模解决一些常见的问题,但为了更高效地与他们进行沟通,PM需要了解一些常见的陷阱。
以下不是详尽的列表,但包括一些比较常见的问题。
-
过拟合
一个模型被认为是“过度拟合”时,是指数据有太多噪声,而不是数据中真正的底层关系(见图)。
一般来说,如果模型对你的训练数据的准确度(模型“从中学习”)明显优于对其进行验证和测试数据的准确度时,你可能会是遇到了过度拟合的情况。
-
准确率、召回率和他们之间的权衡
有两个术语在你第一次听到它们时会很容易混淆,但是充分理解它们非常重要,因为它们对业务有显著的影响。
分类的准确性(和其他常用的ML技术,如文档检索)通常由两个关键指标来衡量:精确率和召回率。
精确率测量,所产生的所有正向预测中正确预测的概率,即正确预测的百分比。如果精确率为X%,则算法的正向预测的X%为真正的正值,(100-X)%为误报。换句话说,精确率越高,你所得到false positives概率就越小。
召回率,是所有正向预测中的真实正向的概率——即你的算法的数据中正向的百分之几被认为是真实有效的。如果召回率是X%,那么数据中真正的肯定值的X%被算法识别为正向,而(100-X)%被确定为(false)negatives。换句话说,召回率越高,那么你的 less false negatives概率就越低。
精确率和召回率之间始终存在权衡。
如果你不想要任何误报——即你需要更高的精确率,则算法将具有更多的错误否定,即较低的召回率,因为它会“喜欢”将某些东西标记为反向,而不是将其标记为正向,而反之亦然。
这种权衡是商业决策。
往往有一些因素不容易量化,例如客户情绪(例如被不公平拒绝的客户会生气和发声),品牌风险(例如你作为承销商的声誉取决于低贷款违约率),法律义务等,使得这更应该是商业决策,而不是数据科学的决定。
-
经常误导模型准确率的公制
单独的模型准确率不是衡量模型的一个好标准。
想象一下,人口中发病率为0.1%的疾病,模型输出显示不会有患者得病,尽管准确率为99.9%,但这样的模型是没用的。
始终根据业务需求来平衡精确率和召回率显得至关重要。当可能的结果分布相当统一时,准确率是一个很好的指标,false positives and false negatives重要性也大致相等,但这种情况很少见。
-
平均指标和不平衡训练数据
当你在处理模型以解决多个部分时,你需要分别查看每个部分(或至少最重要的分数)的绩效指标。
例如,通过识别照片,将其按照照片中动物种类,进行分类的分类模型。
模型的整体精确率/召回率,或许并不能反映某些类别,具有很高准确率,而其他类别的准确率非常低。
这通常发生在你的训练数据不平衡的时候,加入你有1000张标记的猫和狗的照片,只有10张熊的照片。你的整体精度可能非常高,因为大多数猫和狗照片将被正确分类,而所有的熊都被错误识别,因为该模型几乎没有和熊相关的图片数据。
如果某些类别出现频率不高,但对你的业务很重要,你可能需要努力获得更多训练数据,才能使模型更全面准确运行。
2017年9月14日,亿欧智库正式发布了《2017中国智能金融产业研究报告》,该报告在梳理智能金融概念、宏观环境和公司现状的基础上,总结了七大应用场景,并分析了金融机构的智能金融应用以及互联网巨头的布局,最后总结了智能金融的未来发展趋势与挑战。了解更多报告内容,请点击: 《2017中国智能金融产业研究报告》 。
2017年9月10日,亿欧智库正式发布《鸟瞰人工智能应用市场——安防行业研究分析报告2017》,该报告内容分为四大板块:综述背景篇、技术探讨篇、行业现状判断篇、趋势判断篇以及附录企业案例。报告内对诸多衍生疑问的量化解答,对于参与变局的企业都有意义,对于技术买单者政府也有参考价值,甚至对于第三方的投资者、媒体等都能给予有参考价值的信息。了解更多报告内容,请点击: 《鸟瞰人工智能应用市场——安防行业研究分析报告》 。