Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

胡笳、睡不着的iris、halcyon编译

什么是最小可行性数据产品(MVP)?如何用它做机器学习?

本文作者是一名数据科学家,现在离开了Pivotal公司加入了idealo公司,正在帮助其搭建数据科学团队以及把机器学习整合到公司的产品中。

在执行计划的过程中,他发现,作为一名优秀的数据科学团队的领导人,必须定义机器学习产品路线图。

结合自身经历,本文作者带大家探究一个好的最小可行性产品(MVP)究竟是什么,以及机器学习产品一个好的MVP的不同维度究竟有哪些。

什么是MVP?

在Pivotal Labs工作期间,我接触到了Eric Ries推广的精益创业思想。精益创业其实是当今最一流的产品开发方法论。其核心思想是,通过不断的收集客户的反馈来开发产品或服务,从而可以降低产品/服务失败的风险(开发-衡量-学习)。

开发-衡量-学习概念中的一个不可分割的部分就是MVP,它本质上就是“在一个新产品的版本开发中,它让团队以最小的代价收集客户尽可能多的使用后的认知”。一个众所周知的例子就是,验证交通工具是否会成功(如下图所示)。

我们从最小的代价开始测试这个想法。在这个案例中,我们只需要两个车轮和一块板子。然后我们将这个产品推向市场,并获取反馈,增加产品的复杂性来不断改进我们的产品。

在这个案例中,我们以一辆集成了用户的反馈的汽车告终。一个大众熟悉的例子是Airbnb(爱彼迎,旅行房屋租赁社区)。2007年Brian Chesky 和Joe Gebbia想创业,但是无力承担旧金山的房租。

与此同时,有一个设计展会正要在这个城市举办,他们决定将他们的公寓出租给那些没有在附近找到酒店的展会与会者。他们为公寓拍照,并将照片上传到一个简单的网站上(见下图),很快在展会期间就有三个付费客人。这个小测试带给他们宝贵的领悟:人们愿意付钱留在别人的家中而不是去酒店,并且不只是附近的大学毕业生才会注册这个网站。之后他们便创建了Airbnb,接下来的事大家都知道了。

与这种方法相反的另一种做法是,将一辆车从车轮逐一构建直到底盘,并且在此期间从未推向市场。但是,这种做法代价很高。在结束一天工作后,我们可能会推出一个客户并不需要的产品。

让我们以Juicero(智能榨汁机初创公司)为例。他们从投资者手中募集了1.2亿美元,用于创造一款精心设计的榨汁机,经过一段时间的开发后以非常高的价格进行发售(最初的原价为699美元,随后降至399美元)。

除了榨汁机,你还可以购买装满原生水果和蔬菜的果蔬包,每包售价为5-7美元。可能有些人已经听说过这个公司,但这家公司目前已经倒闭了,因为它并没有意识到其实客户并不真正需要一款价格高昂的榨汁机来将果蔬包榨汁。

他们并不真正了解他们的客户。一个简单的用户研究就能让他们意识到,客户并不需要昂贵的机器来挤榨果蔬包,只需要两手挤压就足够了。

MVP的概念如何与机器学习产品进行关联?

MVP概念也可以被应用于机器学习,因为最终,机器学习也是整个产品的一部分或者就是最终产品本身。考虑到这一点,我认为有三个重要的维度。

1.最小可行模型

机器学习产品的一个重要方面就是建模训练过程本身。假设我们有一个分类问题,我们希望将一些数据分类到预定义的类别中,例如热狗vs.非热狗分类。

解决这个分类问题的一种可能的方法是采用一个包含一个隐藏层的神经网络。接下来我们将训练和评估此模型。然后根据结果,我们可能希望持续改进我们的模型。我们接下来将增加另一个隐藏层,然后再进行相同的模型训练过程。

然后再根据结果,可能会增加越来越多的隐藏层。这种方法非常直接,实际上是解决热狗与非热狗分类问题的最佳解决方案,因为不需要特征工程(我们基本上可以将原始图片作为输入数据)。但是对于大多数的分类问题,除非它们不是那些像在计算机视觉自然语言处理中遇到的专业问题,否则这不是解决这类问题的最佳方法。

深度学习的最主要缺点在于其缺乏可解释性。通过采用的网络种类来解释此神经网络的结果通常很难。并且你会花费大量的时间用在神经网络的调参上,但对模型性能的提升却影响甚微。

从简单开始,建立基线。对于大多数分类问题,从逻辑回归这类线性模型入手会比较可行。尽管在许多实际应用中,线性假设是不切实际的,但是,逻辑回归做得相对好并可以提供基准,亦称为基准模型。它的主要优点也是可解释性,并且可以直接得到条件概率,这在很多情况下十分方便。

为了改进模型并放宽线性假设的条件,可以使用基于树的模型。主要有两大类这样的模型,BaggingBoosting模型。实际上,它们都使用的是决策树,只是采用不同的方式训练模型。最后,如果所有的方法都已用,你还想不断改进你的模型,那么我们就可以利用深度学习技术。

2.最小可行性平台

我在Pivotal Labs工作期间,参与了许多项目来帮助财富500强企业开始他们的数据旅程。很多项目的共同点是开始对基础架构进行巨额投资。他们花费大量资金采购大数据平台,即所谓的“数据湖”。

但在购买之后,他们甚至都不考虑潜在的用例,便将数据加载到他们的数据湖中。然后,他们听说了一个名为Apache Spark的东西,并将其添加到基础设施层。

现在,由于人工智能已经成为流行的风潮,他们也开始购买GPU,并在其上添加如TensorFlow那样的深度学习框架。在一个地方拥有所有(酷)工具听起来很棒吧?然而,最大的问题是,将所有数据放入数据湖之后,发现数据与用例并不匹配。要么他们没有收集到正确的数据,要么不存在支持潜在用例的数据。

更可行的方法不是考虑硬件或者软件,而更多的是解决问题。通过这种方法,可以尽早了解需要哪些数据来解决问题,并且还能避免各种数据错误。除此之外,迄今为止我所看到过的很多机器学习问题,实际上都可以在本地机器上解决。他们并不需要对基础设施进行巨额投资。

而且,如果数据量真的很大,他们可以使用AWS或Google Cloud等云服务提供商的服务,便可以非常轻松地启动一个Spark群集。如果他们有一个深度学习问题,也会有很多的选择。不但可以选择已经提到的云服务提供商,也可以选择如FloydHub那样提供的平台级服务(PaaS),在云上训练和部署深度学习模型。

3.最小可行(数据)产品

最后,我想谈论的一点是数据产品本身。本质上,数据产品有很多例子,比如聊天机器人、垃圾邮件检测器等等——这个清单很长(更多的机器学习产品,请查看Neal Lathia的精彩文章)。但是在这里,鉴于当前我在电子商务领域工作,我将专注于推荐服务。

采用简单的相似性算法以及使用矩阵分解技术是一种建立推荐服务的方法。 最后,我们还可以尝试使用深度学习方法等更加复杂的模型(例如,深层次的语义模型)。但是,我不建议采用这种方式。推荐是多种形式的。例如,你的朋友给出的建议是推荐,或者前100名最喜欢的产品也是推荐。并非我们所使用的每个复杂算法都会成功,但它必须经过测试。事实上,不要害怕在没有机器学习的情况下建立推荐服务。

因此,正确的方法是像热门产品那样首先建立A/B测试框架和评估指标(例如,跳出率或点击率),再采用简单的方法开始。在测试之后,确定用户倾向于点击这些推荐的项目(有时他们必须先养成习惯,特别是如果它是新产品功能的话),最终用户也可能会购买那些推荐的项目,我们可以尝试使用诸如协作过滤技术更为复杂的方法。举个例子,我们可以基于购买过此商品的用户会对这类商品感兴趣,或者查看此商品的用户也对这类商品感兴趣来创建一个推荐。“用户对这个项目……也对这些项目感兴趣”这类选项可以是无穷尽的。

总结

在这篇文章中,我讲述了关于MVP对机器学习产品的意义的理解。实质上,就是从小处开始不断迭代。此外,为了更清楚地解释我对机器学习产品的MVP代表的意思,我讨论了三个主要维度,我认为这对于优秀的MVP数据产品至关重要:

  • 最小可行性模型,

  • 最小可行性平台,

  • 最小可行(数据)产品。

大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

产业MVP机器学习
2
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

逻辑回归技术

逻辑回归(英语:Logistic regression 或logit regression),即逻辑模型(英语:Logit model,也译作“评定模型”、“分类评定模型”)是离散选择法模型之一,属于多重变量分析范畴,是社会学、生物统计学、临床、数量心理学、计量经济学、市场营销等统计实证分析的常用方法。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

装袋算法技术

Bagging算法 (英语:Bootstrap aggregating,引导聚集算法),又称装袋算法,是机器学习领域的一种团体学习算法。最初由Leo Breiman于1994年提出。Bagging算法可与其他分类、回归算法结合,提高其准确率、稳定性的同时,通过降低结果的方差,避免过拟合的发生。 给定一个大小为n的训练集 D,Bagging算法从中均匀、有放回地(即使用自助抽样法)选出m个大小为 n'的子集 D_{i},作为新的训练集。在这 m个训练集上使用分类、回归等算法,则可得到 m个模型,再通过取平均值、取多数票等方法,即可得到Bagging的结果。

提升算法技术

Boosting是一种主要用于减少偏差的机器学习集成元算法,也是监督学习的一个变化,是一种将弱学习器转换为强学习器的机器学习算法家族。 Boosting是基于Kearns和Valiant(1988,1989)提出的问题:一组弱学习器能创造一个强大的学习器吗?一个弱的学习器被定义为一个分类器,它与真实的分类只有轻微的相关性(它可以比随机猜测更好地标注示例)。相反,强大的学习器是一个与真实分类任意相关的分类器。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

聊天机器人技术

聊天机器人是经由对话或文字进行交谈的计算机程序。能够模拟人类对话,通过图灵测试。 聊天机器人可用于实用的目的,如客户服务或资讯获取。有些聊天机器人会搭载自然语言处理系统,但大多简单的系统只会撷取输入的关键字,再从数据库中找寻最合适的应答句。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

推荐文章
暂无评论
暂无评论~