【人工智能】打造机器学习产品的黄金手册

2017 年 9 月 20 日 产业智能官 珊珊 机械鸡


作者:前 Facebook,雅虎产品经理 yaelg

编译:珊珊


人工智能时代,每位产品经理、企业家以及商业领袖都应该了解机器学习。


即使你不是在设计一款chatbot或者无人车,但为了产品保持竞争力,你早晚都要把机器学习融入到你的产品中。


好消息是,你不需要发明新的技术,只需利用已有的技术。许多科技公司开放开源工具和平台(如Amazon AI,TensorFlow—最初由Google开发的)使得几乎所有公司都可以使用机器学习。


当我开始捣腾机器学习的时候,我什么都不晓得,然而在很短时间内,我便掌握了领导开发机器学习产品的核心要领。


我的目标是让你充分了解开发机器学习产品的技术和开发流程,使你能尽快开始。这将是一份循序渐进的教程,助你成为利用机器学习实现业务目标的PM(产品经理)。


手册共6部分:


1. 机器学习可以为你的业务带来什么

2. 你需要了解的机器学习算法以及为什么要了解

3. 机器学习模型开发的流程始末

4. 机器学习产品团队的角色分工,技能和组织结构

5. 机器学习差不多就是个UX(User Experience)问题

6. 产品经理应该了解的开发注意事项


第1部分


机器学习可以为你的业务带来什么?


这是“打造机器学习产品黄金手册”的第1部分。



使用ML(机器学习)不仅可以分析内部数据——通过内部与外部数据结合,可以增强ML的强大功能,从而创建前所未有的新方案。


A16Z的Frank Chen关于人工智能、机器学习、深度学习如何入门,讲解的很详细(视频 http://suo.im/4vIWRc)。其中有些应用程序是大趋势,现有的技术尚未能使其实现,但是预示了很大的可能性。


就像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张熊的照片。你的整体精度可能非常高,因为大多数猫和狗照片将被正确分类,而所有的熊都被错误识别,因为该模型几乎没有和熊相关的图片数据。


如果某些类别出现频率不高,但对你的业务很重要,你可能需要努力获得更多训练数据,才能使模型更全面准确运行。



第3部分


机器学习模型开发的流程始末



这是“打造基于机器学习的产品教程”的第3部分,相信你已经了解了所有的技术概念,现在我们可以进入下一步,去把一个想法变成一个实际的生产模型。

 

建模一览


总的来说,构建一个优秀的ML模型,和开发其它产品没什么区别:


从构思开始,你需要用户需求和一些潜在的解决方法进行配对。一旦有了明确的方向,你就可以对该解决方案进行原型化,然后测试它以确定它是否满足你的要求。


之后继续在构思、设计原型和测试之间进行迭代,直到你的解决方案足以投入市场,此时你已将它设计得更为通用。


现在我们来看看每个阶段的细节。

 

由于数据是ML的组成部分,因此我们需要将数据,放在本产品开发过程的上游,新流程如下:


  • 构思能力:定义需要解决的关键问题,以及解决问题所需的输入数据/特定指标。


  • 数据准备:收集数据并整理出有用的数据,以便模型进行投喂和训练。


  • 原型和测试:建立一个或一组用来解决问题的原型模型,测试它们执行和迭代的程度,直到一个得到令人满意的模型。


  • 产品化:打磨产品并扩展模型和采集数据,以在开发环境中得到有用的输出。


构思


这一阶段的目标是,将模型要解决的关键问题、目标函数和对模型的潜在投入整合一体。


  • 找准问题:正如上文所讨论的,机器学习被用于解决一个真正的商业问题。确保你的团队和公司的所有利益相关者,都认同你要解决的问题以及如何使用该解决方案。


  • 选择目标函数:根据这个问题,决定这个模型的目标是什么。


  • 模型正在尝试预测的目标函数是什么类型的?是否有一些你试图得到的“真相”,你可以通过验证实际数据得出,例如房价、股价变动等?或者,你是否正在尝试查找数据中的模式?例如,将聚类函数分成具有共通点的组?


  • 定义质量指标:你如何衡量模型的质量?在没有看到真实结果时,是很难预测可接受的模型是怎样的,但目标的方向性是很有帮助的。


  • 头脑风暴:确定哪些数据可以帮助你解决问题/做出决策。


  • 最有效的方法是:“这个领域的专家如何处理这个问题?”思考一下,专家的解决方案会用到哪些基础变量/数据片段。


了解商业运营的关键因素,这也是企业/产品人员在此阶段需要参与的重要原因之一。数据团队需要将这些潜在的输入数据,转化为模型特征。

 

数据准备


此阶段的目标是,收集原始数据并将其作为可插入原型模型的输入数据。


你可能需要对数据进行复杂的转换才能实现。例如,假设一个特征是消费者对品牌的认可度:你首先需要找到,消费者谈论品牌的相关来源。


如果品牌名称包括常用词(例如“苹果”),则需要将对品牌的谈论与日常的对话(关于水果)分开,并通过情绪分析模型运行,完成所有这些才可以开始构建原型。也不是构建所有特征都那么复杂,但有些可能需要大量准备工作。



让我们更详细地分解这个阶段:


以最快的速度收集原型所需数据:首先,确定你的缺失数据(missing data)。在某些情况下,你可能需要分解必要的输入内容,以获得“building blocks”级别的原始数据,或者是对你需要获得替代数据。


不可扩展的方法,如快速手动下载、编写初步爬虫程序或购买数据样本,虽然有点小贵,但也许是最实际可行的方法。


在这个阶段,投入太多精力进行数据采集通常没什么卵用,因为你还不了解数据的有用性,哪种类型是最好的。商业团队的同事应该参与其中——他们可以帮助集思广益找到不容易获得的数据或简单地获取团队的数据(相关业务功能需要依赖于数据需求和组织结构——合作伙伴关系,业务开发或市场营销在这里都可能有用)。


请注意,在使用监督学习算法时,你的数据不仅是为模型提供所需特征;还需要为模型的目标函数提供“实际数据”数据点,以便训练、验证和测试模型。回到房价的例子——为了建立一个预测房价的模型,你需要收集房屋的价格。


数据清理和归一化:在这个阶段,主要责任将转移到你的数据科学/工程团队。


这项重要的工作,需要将想法和原始数据集转化为实际模型输入。需要对数据集进行整理检查和清理,以避免使用不良数据,不相关的异常值等。


数据可能需要转换为不同比例,以使其能更好地和其他数据集一起使用或匹配。尤其是处理文字和图像时,通常需要预处理数据以提取相关信息。


例如,将大量高质量图像输入模型中会导致大量信息可能无法被处理,因此你可能需要降级质量,只使用图像的一部分或仅使用对象轮廓。


处理文本时,你可能需要在决定包含文本之前检测与文本相关的实体,执行情绪分析,查找常用的n-grams(经常使用的一定数量的单词)或进行其他变形。通常现有的数据库就能提供这些支持,不需要你的团队重建,但这也需要时间。

 


原型与测试


这个阶段的目标是产出模型的原型,测试并对它进行迭代,直到你得到一个能产出足够好的结果,并可以产品化的模型。


  • 构建原型:当数据质量达标时,数据科学团队就可以用实际模型开始研究。请记住,在这个阶段中,科学里也有许多艺术。


    它涉及大量的实验和发现——选择最相关的特征值,测试多种算法等。执行任务并没有那么简单,因此何时能获得,可以投入产品的模型的时间表可能无法预测。有时候第一个算法的测试就能得到很好的结果,有时候你尝试过的所有算法都行不通。


  • 验证和测试原型:在这个阶段,团队的数据科学家们,将采取措施以确保最终的模型能够像现在一样表现良好。他们将根据预定义的度量来评估模型的性能,并比较其各种算法的性能,调整影响模型性能的相关参数,并测试最终模型的性能。


    在监督学习下,需要确定:与实际数据相比,模型的预测是否足以用于你的业务中。


    在无监督学习下,根据实际问题,有各种评估性能的技术。也就是说,许多问题只要目测结果就够了。例如,在聚类的问题下,你可以轻松地绘制在多个维度上聚类的对象,甚至可以使用媒体形式,来查看聚类结果是否直观合理。


    如果你的算法是使用关键字标记文档,那么关键字是否说得过去?在标签失败或重要用例丢失的情况下,是否有明显的差距?这并不能代替更科学的方法,但实际上,有助于快速找出改进和提升的空间。这也是眼睛能帮的上忙的地方,所以不要把它(验证和测试原型)只交给你的数据科学团队。


  • 迭代:在这一点上,你需要和团队一起决定,是否需要进一步迭代。该模型与你的期望有多大出入?它能否显着改善现有的业务情况?是否有特别薄弱的方面?是否需要更多的数据点?你能想到可以提高性能的其他方面吗?是否有可以提高模型表现的替代数据源?这时候经常需要大量的头脑风暴。

 

产品化


当你确定模型原型运行良好到足以解决业务问题,并可在生产中启用时,你将进入此阶段。请注意,如果你还没准备好进行完整的产品化,首先你需要确定要模型泛化的范围。


打个比方,如果你的产品是电影推荐工具:你可能只想对少数用户开放访问,但又要为全部用户提供完整的体验,在这种情况下,你的模型需要根据每个用户的相关性,对数据库中的每部电影进行排名。


这是一个完成不同缩放比例的需求,不只是提供仅针对动作电影的建议,而是对所有用户开放访问。


现在,让我们讨论一下产品化模型的更多技术问题:


  • 增加数据覆盖:在许多情况下,你的模型原型是基于,比实际作为产品时搜集到的更有限的数据集训练出来的。例如,你可以基于特定客户群,对模型进行原型设计,然后将其扩展到整个客户群。


  • 数据收集:一旦你已验证哪些数据对模型有用,你需要构建一种可扩展的方式来收集和获取数据。在原型设计阶段,以手动方式收集数据是非常好的,但是对于实际产品化时,肯定是尽可能自动化的好。


  • 更新数据:创建一个随时间更新数据的机制——更新现有值或添加新信息。除非出于某些原因,你不需要保留历史数据,否则系统将需要有“地方”,可以随着时间的推移来存储越来越多的数据。


    从数据科学的角度来看,如果你改变了基础数据,例如扩大了所包含的客户群数量,你就需要重新训练和重新测试你的模型。在特定数据集上工作良好的模型,并不总是适用于更广泛或其他不同的数据集。


    在架构上,该模型需要扩展到,在数据更频繁增长时也能良好运行。在电影推荐示例中,会是更多的用户,更多的电影以及随着时间推移,有关每个用户喜好的更多信息。


  • 检查异常值:虽然模型整体可以很好地扩展,但也有可能存在少数而重要的用户,模型表现得不那么好。


例如,电影推荐可能对大多数用户的普遍推荐效果很好,但对于家长来说,可能显示更多的是儿童电影,因为他们用自己的帐号为小孩子选择电影。这是一个产品设计问题——你需要将给父母的推荐和给他们孩子的推荐分开,但模型并不会告诉你这些。

 

到目前为止我所描述的是一个概念性的流程。在实际操作中,界限是很模糊的,你需要经常在不同的阶段之间来回反复。你可能会从数据采集工作中,获得令人不满意的结果,然后考虑其他办法,或者将模型产品化时,发现这个模型这么不给力,你又要回到原型设计上去。

 

外包任务


模型构建,通常涉及到一些非常耗时的任务,比如生成标注数据和测试模型。


例如,将数百或数千个数据点,标注为正确的类别,作为分类算法的输入内容,然后测试分类模型的输出是否正确。设置一个按需的方式,来外包这些任务是非常有帮助的。


在我的经验中,如果你让几个人执行相同的简单任务,并采集更频繁出现的答案或某种平均值,可以从Mechanical Turk(https://www.mturk.com/mturk/welcome)获得不错的结果。


有像CrowdFlower(https://www.crowdflower.com/)这样的平台,可以提供更可靠的结果,但是它们也更贵些。甚至某些任务,需要对执行这些任务的人员进行更多培训(例如,如果任务需要特定领域和/或需要前沿知识),这种情况下,你可以尝试一下诸如Upwork(https://www.upwork.com/)之类的平台。

 

第4部分


机器学习产品团队的角色分工,技能和组织结构



我们讨论完如何从头到尾构建一个模型——现在我们来谈谈,实际上大家要做什么,以及团队的结构该如何运行。

 

一个快乐的Team


一个“传统”的产品团队,由设计师、工程师和产品经理组成,数据分析师有时会整合到团队里,但通常他们是多个团队共享的稀缺资源。


数据科学正逐渐成为一家公司DNA的一部分,使数据科学家成为产品团队的一个组成部分至关重要,而不是将其视为一个孤立的存在。开发具有业务影响力的模型,需要设计师、PM和工程师、数据科学家持续进行日常合作,就像之前设计师,PM和工程师在创造“传统”产品时一起工作那样。

 

模型开发中的角色和职责


我们在前面讨论过ML开发流程,现在我们将重点介绍,团队的组成和开发过程中各自的职责。


  • 构思阶段:在这个阶段,你需要对问题所涉及领域有深入了解的专家,能阐明可能影响选择/结果的不同因素。例如,如果你正在建立房屋估值,你需要房地产专家,他们知道如何评估房屋价值,以及有哪些因素会对其产生影响。


    即使你的数据科学家碰巧在这个领域有经验,让来自组织其他部门的(通常是非技术性的)商业专家中,提供新的想法,来检查你的想法,是更好的做法。


  • 数据准备:这项任务通常由数据科学家来领导,在工程师的帮助下收集数据,构建爬虫,整合API等。产品/业务人员必须高度参与,通过已知相关因素,帮助完成外部数据采集,数据提取等。


  • 原型与测试:这主要是数据科学家的工作。产品/商务人士必须密切关注这一阶段,查看结果,并帮助判断模型是否具有商业意义,或是否需要进一步迭代。


  • 产品化:这需要结合数据科学与编程。基于对数据的要求和来源不同,数据收集的工作会有很大的差别。如果使用外部数据,你可能需要通过构建爬虫来收集数据,这些数据需要前端知识,调用各种API或从各种反馈和合作伙伴(后者主要是后端任务)中获取数据。


    还需要扩展数据清理,这很大程度上也是后端任务。工程师还要和数据科学家合作,以确保模型规模化,并验证实际工作中的结果质量符合要求。


  • 整体系统架构:确保你的数据和模型的整体系统,支持你的业务需求,需要具有架构和扩展复杂分布式系统经验的工程师,至于复杂程度则取决于你要完成的任务。

 

数据科学家团队的构成


数据科学是一个相对较新的领域——它以新的方式将各种现有领域融合在一起。直到最近,还没有一个“数据科学”学位(即使它现在还不普遍),所以人们倾向于有着各种相关学科和领域的背景。

 

比较重要的学科有统计学、计算机科学(有或没有侧重人工智能都行),经济学或计量经济学。

 

复合的背景和技能,对于一个团队来说非常有用——他们每个人都会为团队带来不同的东西。尤其是如果你处于需要大量新思维的新兴领域,结合不同背景往往会产生不同的解决方案,就同一问题产生更多创新的解决方案。

 

数据科学家对不同工程师的依赖程度有所不同。以前工程师通常能够完成端到端的工作,从原型到部署生产中,无需其他支持,而其他人则需要工程师团队的更多帮助。


根据你们工程师团队的可用性和组成,你可能需要或多或少更独当一面的数据科学家。另一个考虑因素是领域问题——例如,计量经济学背景对于自动驾驶汽车而言,还没有对智能选股软件更对口有用。

 

一个实际有用的数据科学从属组织架构


工程师、产品和数据科学之间有密切的联系。传统上,倾向于让数据科学向开发工程师汇报,然而随着数据科学在组织中作用的提升,新的组织架构正在成形。


我知道有三种不错的主流组织架构,每种组织架构都有自己的优缺点。

 

  • 第一种——数据科学向开发工程汇报


让数据科学向工程开发汇报,使各学科之间实现完全一致,并不需要在数据科学和工程技术之间划分明确界限。


许多与数据科学家合作的工程师,对这门学科变得非常好奇,并想要进一步提高他们的能力——我看到工程师们对像自然语言处理(NLP)领域十分感兴趣,而其他人,则为了有一天能成为成熟的数据科学家而选择了ML课程。


团队之间的边界越少,可以帮助增加团队中能够完成端到端工作的数据科学家/工程师数量——构建模型并完成代码。有利于职业发展、绩效评估等问题,直到人们涉足不同的领域,决定是否要转型是很容易的。

 

这种组织架构还有助于简化整个系统,从数据科学用于原型设计的ML框架,到工程师团队完成的产品化系统和架构。它还有助于确保,ML框架和系统架构得到应有的重视。

 

  • 第二种——数据科学从属于产品


由于产品需是数据科学项目的决定性因素,因此将数据科学从属于产品部门可以保障业务目标和可交付成果的一致性。基本上,产品主管对所有数据科学项目和活动都有高级别能见度,并可以帮助他们确定优先级,来确保其推动业务成果。


这也有助于促进产品和数据科学之间的紧密合作,这至关重要。这个先决条件是,了解数据科学和产品如何共同合作,并不仅仅致力于开发产品,这需要具备开发北京,又懂数据科学基础的产品人。

 

  • 第三种——与产品和工程分离的数据科学


这有利于提高数据科学团队的影响力,并使整个组织更易运作。允许数据科学团队负责人,直接了解组织中的高层战略决策,并确保考虑所有业务利益相关者的意见和需求。

 

这不是唯一“正确的答案”——一切都取决于你的组织,你的目标和你的团队和团队领导力。根据经验,联合汇报通常会使团队之间形成更好的一致性,在团队层级最高处留一个决策者。


想想你的组织中哪些方面,更容易产生沟通和协作障碍,让这些团队向同一位执行官报告。



第5部分


机器学习就是个用户体验(User Experience)问题


前面我们讨论了如何建立有效的组织架构,现在我们来看看,如何帮助用户从机器学习结果中获益。


ML模型和结果不容易解释清楚


许多ML算法是黑盒子——输入了大量数据,并获得了一种神秘的方式产出结果的模型,这使得结果难以解释。在许多算法中还存在交互效应,使得模型更加难以解释——这是各种能解释部分行为的特征值之间的关系,只通过单独添加某个特征值的效果是难以解释的。


把它想象成特征值之间的复合作用——整体大于其个体的总和,以很多奇怪和不能为人所理解的复杂方式作用一起。


也就是说,你和你的团队将需要确信结果是有根据的,如果你能在超出统计指标的表面数字来理解结果就更好了。它也有助于确定未覆盖的案例或结果无意义的领域,就像我们在前面模型构建章节所提出的。


这对你的用户来说更为重要——通常他们需要一个解释才能相信你的结果。即使你的结果是100%准确的,也不会助你得到更好的信誉,所以用户可能需要得到你们显示的结果的合理解释。


在极端情况下,你甚至可能需要因结果去规避法律,如拒绝贷款申请的情况,法律上你必须给予客户充分的拒绝理由。为了增加复杂性,你的模型不会100%准确,80%的准确率已经相当不错了,所以有时候,用户会想了解实际上是错误的结果!


换句话说,基本要求是,让你的用户在一段时间内发现明显错误,而还选择相信你的整体结果,就是很高要求了。



挑战不仅来自于外部客户使用的模型——也需要获内部用户的信任;即使他们支持你,你的团队可能也不太会采用—不了解或者不信任的结果。


我见过一些案例,团队首选使用易于理解的规则引擎,而不是ML模型,这可能会产生更好的效果,因为引擎规则是可以解释的——它们是人写出来的,所以人们能理解为什么得出这样的结果。


这不是一个可以等你建好模型之后,再来解决的问题——提前了解用户可能想要看到的模型的数据和组件,以及模型是以何种方式呈现结果的,以至于这个模型的构建者信任它产出的结果,这是十分重要的。


得到的答案,可能会改变你构建模型的思路,并且将有助于防止出现出现问题时,你无法向用户解释原因的情况。并不是说提前考虑这一点就能一劳永逸了,建模本质上就是一个迭代的过程,如果你的模型已经开始改变,那么可能需要你的方法更大范围修改。


可解释性建模


对可解释性的需求,可能会影响你构建模型的方式,包括你需要提供的粒度级别。假设我们正在为投资者建立一个基于Marc Andreessen框架,评估初创公司的平台,该框架要求,每家创业公司的三个核心要素是团队,产品和市场。


现在,Andreessen认为市场是最重要的因素,但其他投资者会认为一个好的团队可以找到发展小市场的方法,所以团队更重要。


你可以为公司的这三个维度,提供整体评分或成功概率估算,并给出你认为是正确的“结论”,但投资者不一定会为此买单。更具体来说,投资者可能只想了解这家公司中,他们最关心的某个维度有多好(高分)。


除了利用模型,你还需要让他们看到这一点。这里有几种方法:


为市场,产品和团队分别构建3个不同的模型,每个模型在单一维度上评估公司。然后构建一个将所有这些特征值(以及潜在的其他特征值)综合在一起的综合模型,这样投资者就可以看到他们最关心的总体结果和具体维度了。


构建聚合模型,并找到一种方法,来提取最适用于每个维度的特征,并向用户传递其价值和重要性,或者显示与每个维度对齐的数据点,以建立对结果的可信度。


正确的方法在很大程度上取决于你的问题领域,可用数据,建模方法等,但在进行原型设计模型之前,应该进行明确的讨论和评估。


向用户呈现结果


当决定如何显示结果时,目标应该是使他们清晰,可信,最重要的是——可行的。这里没有指导手册——每个问题都会产生不同的结果。


我们来回顾一些可行的方法和注意事项,为你提供一些思路:


回溯算法,根据历史数据将其输入到模型中,以产生有已知值可验证的过去预测。例如,如果你建立了一个根据N-1年数据预测第N年值的模型,则可以从2年前的模型数据,看对去年的预测是否正确,因为该信息是已知的。


这也是测试模型的潜在方法。根据历史数据的完整性,以足够的数据覆盖一些简单的假设和/或模型,调整可能会遇到困难(例如,如果模型使用来自社交网络的数据,你不能回溯到社交网络还不存在的时候)。对于某些模型,强化学习模型也是不适用的。


解释你的方法和输入。告诉用户,你从他们的帐号中,提取并输入这个被信任的模型中的数据,是他们自己做决定的时候也会考量的因素。


在Andreessen初创公司评估实例中,对市场评估的简要说明会是:“创业公司的市场潜力,考虑到市场上已有的的公司数量及销售总额,这个市场在过去5年全球范围内的增长,新产品发布的数量,渗透率,并购活动和宏观经济趋势。”


虽然这不是一个完整的解释,但它确实能让用户瞄一眼黑盒子。如果你是在介绍一个新东西/服务,这是绝对有必要的。


公开一些基础数据:这是最容易让用户了解和信任的方法,因为他们自己也看得到数据,尽管并不总是简单的设计,还有有几个缺点:


你需要公开你不希望或可以公开的数据(例如,因为它是专有的,受法律约束等),数据在某些个例中,可能不符合得出的模型(建模是关于概率),甚至可能没有数据;该算法不需要对其评估的实体进行全面覆盖——如果数据具有足够大的相似实体的数据样本,则可以弥补数据中的差距。


简化并仅选择性显示结果,以便于决策。亚马逊对其一些产品建议做得很好。我搜索了一个护膝,看到我从Google搜索结果登陆的页面下方。亚马逊知道关于每个相关产品我会选择购买的概率,而不只是给我30个类似产品的排序选项,我得到了一个二选一的简单选择方案——最便宜或最畅销+最高评价的产品。


我不知道他们选择对比产品的标准,以及是否符合我想找的产品的标准,但是讲真,他们把一切选择和购物流程,都简化到我已经不在意标准了。



定义新的指标。你应该考虑的一个问题是,你是否要创建新的指标(新的“分数”方式)或预测一个很好理解的指标:你可以构建模型,来预测现有指标(例如公司,房价等);


或者,你可以创建一个体现某个概念的分数,该分数代表尚未具被广泛应用的指标,通过这个概念(“FICO分数为<行业X>”)来实现实体的排名。这个决定大致归结为是否有一个单一的指标可以用来表达你想要用模型达成的业务目标,或者是需要几个因素的加权混合。


例如,如果我们评估某商业房地产资产对零售业的吸引力,我们可能希望创建一个“零售合适分数”,其中包括几个组成部分,如每平方英尺的销售量,每平方英尺的总成本和地段对品牌价值的贡献(比方说,你认为第五大道上的铺位,能增加品牌名声,超越了它单纯吸引到的人流量)。


在这种情况下,存在没有包含这些指标的单一指标,所以你可能需要单独为每个指标建模,然后通过某比例的权重,将它们组合在一起。选择新的分数时,一个你需要考虑的重要因素是,这个过程,可能需要花更多的时间和精力,来教育你的用户。


想想,要说服第一次听说,就愿意使用FICO分数的金融机构该怎么下手?


精确度不总是那么重要。许多模型产生的结果是一个非常精确的数字——概率,价格等。如果你给他们看到这么精确的数字,那么你就得冒着用户可能比你想象中更严肃认真对待这些数字的“风险”。


预计价值583,790美元的住房的价值,并不比价值580,625美元的房屋划算多少。误差幅度可能远大于$ 3K。有时以精确的方式,将结果显示给客户是有效的,让他们更关注数字。与其向客户显示算法的确切输出,给出某个范围、十进制、等级或其他一些不那么精确的价值测量,或许会是更好的做法。


有策略地提供对原始数据的访问。除了展示自己的风险模型的结果外,借贷俱乐部还提供其原始数据,供其他人建立自己的ML模型。


这个方法对你有用吗?可以在业务的其他部分增长吗?除了提供潜在的货币化选择外,这种方法还有助于ML研究界加快空间创新的步伐。例如,微软的COCO(http://mscoco.org/)和CIFAR数据集(https://www.cs.toronto.edu/~kriz/cifar.html)的可用性大大有利于图像分类功能。


再次,用户体验的选择高度依赖于主题,产品和用户需求 - 没有“一刀切”。完全可能的是,上述任何选项都不会与您的产品相关。关键是,不要低估用户体验问题所需的思考和努力的数量 - 如果用户不能理解,信任或采取行动,即使最好的模式是无用的。


一个比较Geeky但很重要的提醒


可解释性是ML研究中不断发展的领域,研究人员积极寻找使模型看起来不那么黑盒子的方法。有个例子是LIME(本地可解释模型——不可知解释,https://homes.cs.washington.edu/~marcotcr/blog/lime/):


作为分类器(将输入数据映射到类别或标签的算法)模型的“解释器”,用来构建人类可以理解的模型。是否与你的目标相关或有效,取决于你的具体情况和使用的模型。


另一个研究领域是Layer-WiseRelevancePropagation

(LRP,http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0130140)——一种“解构”神经网络预测的技术,使对各个输入变量的预测可视化和可被解释。虽然构建有效的机器学习的开发基础设施在很大程度上超出了本教程的范围,但请记住,产品需求可能会影响开发决策和要求。


第6部分


产品经理应注意的开发注意事项


尽管在很大程度上,你的工程开发团队负责设计稳固的系统架构,但业务需求可能会影响ML系统,从而使一个伟大的系统变成糟糕的系统。


作为PM的你,必须与工程开发团队进行正确的深入讨论,才有可能搭建出一个适合你们商业需求的系统。



虽然以下列表并不完整,但应该让你对哪些领域应该深入了解有个大概方向:


实时要求。算法的结果可以提前计算,还是需要实时计算?当你获取新数据和/或用户输入特定信息或执行某些操作时,模型是否需要立即生成反应新结果的新数据?实时系统的架构,与可以脱机处理数据的系统的架构大不相同。


数据和模型。系统可能由多个模型组成,其中一个模型的输出可能会是另一个模型的输入。当一个模型的输出发生变化时,其他模型是否需要重新计算?当添加或修改数据时,哪些模型需要重新计算(有时甚至重新训练)?更新速度要多快——什么是可接受的SLA?


数据采集频率。收集和累积数据的速度,会影响管道的设计和选择的存储方法。这取决于数据实际变化的频率,了解其变化的重要性以及获取数据的成本(如果你需要支付这些数据,就需要购买成本,以及检索,处理和存储成本)。


例如,如果你正在收集关于地震的数据,数据可能不会很频繁地更新,但是当它改变时,你需要立即知道数据;如果你正在收集关于餐厅营业和停业的数据,那么数据可能会比地震数据更频繁地变化,但是发现这些数据的及时性,对产品的整体效用并不那么重要。


数据收集方法。收集的数据是批量还是连续流式传输?是push还是pull?实时要求使这个问题更复杂化。 你的系统可能需要,支持多种数据收集或上传方法--API,文件上传等。它需要足够的模块化,以支持所有必要的方法,并将数据从数据处理中分离出来(这是一个很好的软件工程原理)。


好了! 你现在应该有足够的知识开始搞搞机器学习了。


登录查看更多
0

相关内容

德勤:2020技术趋势报告,120页pdf
专知会员服务
190+阅读 · 2020年3月31日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
338+阅读 · 2020年3月17日
《人工智能2020:落地挑战与应对 》56页pdf
专知会员服务
195+阅读 · 2020年3月8日
IBM《人工智能白皮书》(2019版),12页PDF,IBM编
专知会员服务
20+阅读 · 2019年11月8日
企业数据AI化战略:从数据中台到AI中台
36大数据
11+阅读 · 2019年2月18日
《人工智能转型手册》,吴恩达 著
人工智能学家
21+阅读 · 2018年12月14日
做机器学习和AI必备的42个数学知识点
AI前线
9+阅读 · 2018年12月6日
2019年机器学习:追踪人工智能发展之路
人工智能学家
4+阅读 · 2018年10月14日
【机器学习】如何通过机器学习预测维护设备?
产业智能官
16+阅读 · 2018年7月9日
这10个开源人工智能项目,你必须了解!
大数据技术
9+阅读 · 2018年1月2日
机器学习必备手册
机器学习研究会
19+阅读 · 2017年10月24日
Arxiv
5+阅读 · 2019年8月22日
Arxiv
3+阅读 · 2018年12月18日
Arxiv
12+阅读 · 2018年9月5日
Arxiv
3+阅读 · 2018年5月28日
Arxiv
19+阅读 · 2018年3月28日
Arxiv
6+阅读 · 2018年1月11日
VIP会员
相关VIP内容
德勤:2020技术趋势报告,120页pdf
专知会员服务
190+阅读 · 2020年3月31日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
338+阅读 · 2020年3月17日
《人工智能2020:落地挑战与应对 》56页pdf
专知会员服务
195+阅读 · 2020年3月8日
IBM《人工智能白皮书》(2019版),12页PDF,IBM编
专知会员服务
20+阅读 · 2019年11月8日
相关资讯
企业数据AI化战略:从数据中台到AI中台
36大数据
11+阅读 · 2019年2月18日
《人工智能转型手册》,吴恩达 著
人工智能学家
21+阅读 · 2018年12月14日
做机器学习和AI必备的42个数学知识点
AI前线
9+阅读 · 2018年12月6日
2019年机器学习:追踪人工智能发展之路
人工智能学家
4+阅读 · 2018年10月14日
【机器学习】如何通过机器学习预测维护设备?
产业智能官
16+阅读 · 2018年7月9日
这10个开源人工智能项目,你必须了解!
大数据技术
9+阅读 · 2018年1月2日
机器学习必备手册
机器学习研究会
19+阅读 · 2017年10月24日
相关论文
Top
微信扫码咨询专知VIP会员