产品经理如何学机器学习——一篇以产品为中心的机器学习概论
我现在常常听说产品负责人/经理、技术经理和设计师通过网上课程学习机器学习。我一直鼓励这种做法——实际上,我本人曾学习过那些课程(并且在博客上发表了相关内容)。但是,对于某些希望从事机器学习产品设计、支持、管理或计划工作的人员,学习关于机器学习的网上课程能为他们带来多大好处往往不得而知。这些课程将初学者抛向“深水区”,直接让你开始编程分类器,而许多非技术团队的成员仅仅希望获得足够的知识,使自己能成为机器驱动型产品开发团队的一员。这有点像为了学习开车而报名参加一个关于内燃机的学习课程——对付日程驾驶的话,学的内容可能有点过深。
因此我最近在 Skyscanner(https://www.skyscanner.net/) 开了一个机器学习课程,希望能从非技术、以产品为中心的层面介绍机器学习。我们首先介绍定义,然后再介绍一些关键问题,在开发超越机器学习概念的成功产品时,记住这些问题至关重要。
第 1 节:机器学习,抛开数学
我们先解决每个人心中最迫切的问题:什么是机器学习?我引述 Pedro Domingos 在他这篇论文中的第一句:
机器学习系统自动从数据中学习程序。
这基本就是机器学习的概念。机器学习是一种创建程序的方法,这个程序能实现某种功能,无需您完全弄清其中的原理。相比之下,我们在使用常规方法创建程序时,则需要能对每一步进行编程(如果完成这一步,再完成那一步,然后再完成那一步)实际上,机器学习的原理是您提供给机器学习算法一个带样本的数据集,而算法的工作就是学习这些样本。抛开算法内部的数学运算:知道机器学习算法的核心是误差的概念就足够了—所有算法都试图将它们的误差将至最低。
机器学习算法有很多种;最常见的是监督和无监督学习。如何在产品中认出这两种算法?让我们举几个例子。
无监督学习就是识别模式
无监督机器学习算法中的样本通常都有这样一个特性,不存在确定的“正确”答案以供算法学习预测。使用无监督学习的产品通常在用户数据中显示模型。
使用无监督学习。
一个简单的例子就是 Foursquare 中的“本周趋势”(“Trending this Week” )有数据能客观地告诉我们某个场所本周会不会成为热门吗?没有。相反,有些数据可显示 Foursquare 用户在该周访问场所的动态——那些数据中的模型给出热门场所。注意这与用户对该算法结果正确性的判断不同。(“什么?麦当劳是热门?”)。
监督学习是预测结果
相反,监督机器学习算法中的样本有确定的结果,算法须对该结果进行试算并预测。监督学习最经典的例子是垃圾邮件检测。
使用监督学习。
您向算法提供垃圾邮件样本和非垃圾邮件样本;每封样本邮件都标明其是否为垃圾邮件。然后,提供一封新邮件,您询问算法:这是垃圾邮件吗?记住,算法的目标是将其失误将至最低。如果算法回答是,您将该邮件移至用户垃圾邮件箱。
产品中的监督学习和无监督学习通常看起来相似
虽然在上述例子中监督学习和无监督学习的差异十分明显,但是许多情况下差异并不是那么明显。例如,Spotify 的“每周发现”(“Discover Weekly”)和“推荐歌曲”(“Recommended Songs”)功能(播放列表末端)。这两个都是推荐歌曲的功能。但是,它们 (可能!)使用的是不同的机器学习。
哪一个是监督学习,哪一个是无监督学习?
“每周发现”看起来是监督学习问题:机器学习获得你听过、收藏过的歌曲样本,并且负责找出您可能想听的歌曲。向播放表推荐歌曲看起来是无监督学习问题:机器学习算法在数百万播放表中寻找同现模型,以寻找他人播放表中普遍添加的歌曲,这些播放表中包含您播放表中添加的歌曲。
产品功能中的术语
数据科学家将常常使用术语描述他们着手解决的机器学习问题。您开发的产品用于……?
帮助用户找到正确的搜索结果?这是个排序问题。谷歌、必应和推特都在解决这个问题——尝试对搜索结果进行排序,这样您要的结果就排在前面。
向用户提供他们可能感兴趣的东西,无需他们专门搜索?这是个推荐问题。Netflix、Spotify 和推特的推荐关注功能都是这方面的范例——这些产品通过推荐内容吸引用户。
弄清事物的类别?这是个分类问题。Gmail 垃圾/非垃圾邮件和 Facebook 照片(检测事实)都是这方面的范例。
预测某个事件的数值?这是个回归分析问题。.例如预测某架航班飞行两小时的成本是多少。
将类似的东西放在一起?这用的是聚簇功能。亚马逊的 customers-also-bought 功能是最著名的例子,还有 Spotify 的播放表添加推荐。
寻找不常见的事物?这通常是异常事物检测问题。大多数“热门”产品(Foursquare、推特、Facebook)都是这方面的范例,它们显示比往常更多发表/访问/讨论的东西。
通常,1 - 4 是监督学习的例子,5 - 6 是无监督学习的例子。但是,还有些明显的交叉案例:例如,推荐问题是一种分类问题——算法试图预测用户是否对某个东西感兴趣。出于实际考虑,让我们把交叉案例归类至一种问题。
第 2 节:在产品中使用机器学习
机器学习产品开发技术团队的成员将发现并分析数据、搭建数据渠道、设计特性、选择和优化算法、避免过拟合、运行离线评估和投产机器学习进行在线测试。但是,为了开发出成功的产品,产品经理还要考虑机器学习技术层面之外的一些其他问题。这节从这些考虑事项中选出 7 个进行论述。
1. 该机器学习是否符合产品目标?
2006年,Netflix 开展了一项改进其推荐系统的竞赛,奖金额度高达一百万美元。他们要求研究人员开发出一个监督学习算法,预测用户会给某一部电影打出几颗星的评价。当时的想法是,预测用户给某一部电影的评价的功能可用于向用户推送更好的建议。正如我之前的博文所言,这项竞赛的主要教训之一(本文和这些幻灯片有所描述)是:
准确预测评分不再像使用其他数据源正确地对电影进行排序那么重要了。
换句话说,机器学习解决的问题不同于 Netflix 想要解决的产品问题。对于任何你开发的新产品,你应质问:机器学习解决的问题是你想要解决的问题吗?
2. 产品“围绕”机器学习如何工作?
我将再一次以“每周发现”作为例子。这是由机器学习生成的一个播放表。但是,某人认为它应该是有限的,并且应在每星期一进行更新,并且你之前的播放表应在新播放表生成时消失。这些都是产品决策的例子,它们并不依赖产品学习:构想一版播放表无数量限制且自动更新并储存所有之前歌曲以便您日后访问的“每周发现”并不难。
换言之,尽管“每周发现”显然是一个(很好的!)使用机器学习的产品,但是针对该产品所作的一些决策对它的成功起着同样重要的作用:就机器学习本身定义产品的工作方式至关重要。
3. 产品如何开始使用机器学习?
关于机器学习产品的一个常见问题就是从何处开始:这似乎是一个巨大、几乎不可完成并且需耗费数月的任务,但是,正如 Martin Zinkevicht 在关于机器学习工程师最佳实践的论文(高度推荐)中所言,你不应惧怕开发不使用机器学习的产品。许多产品能使用样本基准收集有用的客户反馈;在该论文中,Martin 举了一个应用程序商店根据下载次数(或受欢迎度)对应用程序进行分类的例子。
这里的关键词很简单。如果你需要画一个状态图,其中包含数十个文本框描述你的非机器学习产品的工作内容,那么你可能已经开始在过度设计一个过度复杂的解决方案。另一方面,如果你(用一个短句)说明产品的工作内容(“我们按价格最低进行分类,”“我们显示最受欢迎的产品”),那么你就开了一个好头。
4. 你用什么进行比较呢?
紧接上一点,该事项关于使用样本基准。我们通常孤立地构想早期/MVP 产品:我们开发出一种产品,为的是将它投放到市场上观察顾客的反映。
但是机器学习产品不同,因为性能总是相对的——甚至与你的首次迭代有关。例如,如果您的高级机器学习算法的准确率为 95%,但是您的样本基准有 94% 的准确率,那么增加 1%的准确率就需要巨大的工作量。另一方面,如果您的机器学习算法有 75% 的准确率,但是您样本基准的准确率为 50%,那么您就取得了巨大的飞跃。
这里有两个重要的注意点:首先,性能总是与某些因素有关:你需要一个基准。第二,为了能够进行比较,你需要定义明确的指标。在机器学习产品中,离线指标(例如:“算法预测历史数据的准确度有多高?”)和在线指标(当我们在该产品上应用该算法时,我们能增加多少转换量”)间通常存在分歧。
5. 该产品改变的速度是多少?
机器学习产品的输出结果改变的速度对您开发该产品的方式有很大的影响。例如,Medium 的“每日三封”(“daily three)电子邮件或者 Quora 的摘要电子邮件。这两个产品可能都用到一些机器学习——但是该产品是电子邮件,它在实际中并不需要随着用户可能进行的行为而改变。现在,以 Foursquare 基于地理位置的通知或 Google 搜索为例。用户的每个行动(前往一个新的地区,添加一个新的搜索)都将导致生产一个不同的结果。
了解产品的“速度”不仅能使你改进你的系统构架来适应改变,而且还影响你的客户的体验。
6. 用户拥有哪些交互、行动和控制?
数据科学家通常观察能获得哪些数据,然后根据这些数据构建机器学习算法。但是,在开发新产品时,团队在会有机会定义设计交互时需收集的数据:开发新产品的其中一步就是找出可以(应该)收集哪些可用于在日后改进产品的数据。实际上,早期产品不记录数据对许多数据科学家而言是一件令人受挫的事情。
例如,Instagram 的朋友推荐功能使用户能关注或隐藏建议的联系人,Foursquare 使用户能修改软件自动检测出的用户曾访问地点。通过这样做,它们使用户能参与机器学习算法的输出,并提供新的数据——积极(是,关注!)和消极(否,隐藏)样本都有。然后反馈这些样本以改进算法。
Instagram 的例子还显示为什么用户获得推荐的原因。对机器学习的行为提供解释是一个完整的研究领域,这个领域有个共同的主题:能解释工作原理的系统通常能更好地被用户接受。
7. 产品怎么会出现严重故障?
在不使用机器学习的产品中,“故障”通常为漏洞、崩溃或者混乱。由于机器学习在本质上是通过样本训练算法,产品出现故障的方式有各种各样的层面。(上图为 Microsoft 的 Tay Bot,它在连入网络后变得种族歧视)。
在这方面最常引用的例子是总部设在美国的零售商店 Target。他们的某种算法能够计算客户怀孕的几率,然后他们利用这点发送优惠券和折扣——使用机器学习的典型案例。该系统向一位少女发送了婴儿衣服的优惠券,这使得她的父亲很生气:为什么他的女儿会收到婴儿衣服的优惠券?但是,不久之后,他向 Target 道歉:这个女孩的确怀孕了。
那么,发生了什么事情?机器学习算法的预测实际上是正确的:它通过学习获得的样本学会了准确预测怀孕。但是,产品却出现故障了。还有许许多多类似的机器学习产品出现故障的例子,所有这些例子都有个共同的主题:产品使用或应用的方式与产品设计者的设想不同。不论这是否归咎到根据敏感的推断定位客户,唆使机器人的人类或使用片面的数据集训练面部识别算法,产品团队未考虑产品在某种情境下的应用。
总结
开发使用机器学习的产品越来越成为一种跨领域活动。上节概述了机器学习的定义(抛开数学层面),并且强调了开发产品时超越机器学习的七个层面。
更多内容请阅读:
Experience Design in the Machine Learning Era
https://medium.com/@girardin/experience-design-in-the-machine-learning-era-e16c87f4f2e2
Top-N tips for talking with non-Data Scientists
https://medium.com/@neal_lathia/top-n-tips-for-talking-with-non-data-scientists-a6fd230db85c
It's ML, not magic: simple questions you should ask to help reduce AI hype
https://smerity.com/articles/2016/ml_not_magic.html
The Logorrhean Theorem
http://blog.thedansimonson.com/?p=461
本文作者 Neal Lathia 是 Skyscanner 的高级数据科学家。Skyscanner 是一个全球搜索引擎,使人们能够对航班,酒店和汽车租赁做出比较。
本文由 AI100 编译,转载需得到本公众号同意。
编译:AI100
原文链接:https://hackernoon.com/machine-learning-for-product-managers-ba9cf8724e57
关于AI100
AI100致力于打造人工智能技术和产业社区。为人工智能开发者提供信息和技术交流的平台;为人工智能创业者提供行业数据及智能应用的商业场景;为行业提供人工智能化的技术商业应用。请快快关注AI100公众号吧!