本文作者是一名数据科学家,现在离开了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.非热狗分类。
解决这个分类问题的一种可能的方法是采用一个包含一个隐藏层的神经网络。接下来我们将训练和评估此模型。然后根据结果,我们可能希望持续改进我们的模型。我们接下来将增加另一个隐藏层,然后再进行相同的模型训练过程。
然后再根据结果,可能会增加越来越多的隐藏层。这种方法非常直接,实际上是解决热狗与非热狗分类问题的最佳解决方案,因为不需要特征工程(我们基本上可以将原始图片作为输入数据)。但是对于大多数的分类问题,除非它们不是那些像在计算机视觉或自然语言处理中遇到的专业问题,否则这不是解决这类问题的最佳方法。
深度学习的最主要缺点在于其缺乏可解释性。通过采用的网络种类来解释此神经网络的结果通常很难。并且你会花费大量的时间用在神经网络的调参上,但对模型性能的提升却影响甚微。
从简单开始,建立基线。对于大多数分类问题,从逻辑回归这类线性模型入手会比较可行。尽管在许多实际应用中,线性假设是不切实际的,但是,逻辑回归做得相对好并可以提供基准,亦称为基准模型。它的主要优点也是可解释性,并且可以直接得到条件概率,这在很多情况下十分方便。
为了改进模型并放宽线性假设的条件,可以使用基于树的模型。主要有两大类这样的模型,Bagging和Boosting模型。实际上,它们都使用的是决策树,只是采用不同的方式训练模型。最后,如果所有的方法都已用,你还想不断改进你的模型,那么我们就可以利用深度学习技术。
2.最小可行性平台
我在Pivotal Labs工作期间,参与了许多项目来帮助财富500强企业开始他们的数据旅程。很多项目的共同点是开始对基础架构进行巨额投资。他们花费大量资金采购大数据平台,即所谓的“数据湖”。
但在购买之后,他们甚至都不考虑潜在的用例,便将数据加载到他们的数据湖中。然后,他们听说了一个名为Apache Spark的东西,并将其添加到基础设施层。
现在,由于人工智能已经成为流行的风潮,他们也开始购买GPU,并在其上添加如TensorFlow那样的深度学习框架。在一个地方拥有所有(酷)工具听起来很棒吧?然而,最大的问题是,将所有数据放入数据湖之后,发现数据与用例并不匹配。要么他们没有收集到正确的数据,要么不存在支持潜在用例的数据。
更可行的方法不是考虑硬件或者软件,而更多的是解决问题。通过这种方法,可以尽早了解需要哪些数据来解决问题,并且还能避免各种数据错误。除此之外,迄今为止我所看到过的很多机器学习问题,实际上都可以在本地机器上解决。他们并不需要对基础设施进行巨额投资。
而且,如果数据量真的很大,他们可以使用AWS或Google Cloud等云服务提供商的服务,便可以非常轻松地启动一个Spark群集。如果他们有一个深度学习问题,也会有很多的选择。不但可以选择已经提到的云服务提供商,也可以选择如FloydHub那样提供的平台级服务(PaaS),在云上训练和部署深度学习模型。
3.最小可行(数据)产品
最后,我想谈论的一点是数据产品本身。本质上,数据产品有很多例子,比如聊天机器人、垃圾邮件检测器等等——这个清单很长(更多的机器学习产品,请查看Neal Lathia的精彩文章)。但是在这里,鉴于当前我在电子商务领域工作,我将专注于推荐服务。
采用简单的相似性算法以及使用矩阵分解技术是一种建立推荐服务的方法。 最后,我们还可以尝试使用深度学习方法等更加复杂的模型(例如,深层次的语义模型)。但是,我不建议采用这种方式。推荐是多种形式的。例如,你的朋友给出的建议是推荐,或者前100名最喜欢的产品也是推荐。并非我们所使用的每个复杂算法都会成功,但它必须经过测试。事实上,不要害怕在没有机器学习的情况下建立推荐服务。
因此,正确的方法是像热门产品那样首先建立A/B测试框架和评估指标(例如,跳出率或点击率),再采用简单的方法开始。在测试之后,确定用户倾向于点击这些推荐的项目(有时他们必须先养成习惯,特别是如果它是新产品功能的话),最终用户也可能会购买那些推荐的项目,我们可以尝试使用诸如协作过滤技术更为复杂的方法。举个例子,我们可以基于购买过此商品的用户会对这类商品感兴趣,或者查看此商品的用户也对这类商品感兴趣来创建一个推荐。“用户对这个项目……也对这些项目感兴趣”这类选项可以是无穷尽的。
总结
在这篇文章中,我讲述了关于MVP对机器学习产品的意义的理解。实质上,就是从小处开始不断迭代。此外,为了更清楚地解释我对机器学习产品的MVP代表的意思,我讨论了三个主要维度,我认为这对于优秀的MVP数据产品至关重要:
最小可行性模型,
最小可行性平台,
最小可行(数据)产品。