现在,很多产品经理、技术经理和设计师都开始研究机器学习。但机器学习对产品的设计、支持、管理或规划会产生怎样的影响?可能很多产品经理都不知道如何回答这个问题。
机器学习(Machine Learning, ML)可能是个“坑”。非技术人员需要的是足够的知识广度来设计机器学习产品,而不是专业的机器学习技术公开课。就如同你只是想学习开车,却报了一门“内燃机引擎”的课——学了它你也并不能学会如何开车!只能说”That’s too much for you”。
Part 1: 不扯数学,就说机器学习
机器学习系统自动从数据中学习程序。
——Pedro Domingos
确实,机器学习是一种在你都不知如何运作下创建的一种程序。与传统创建程序不同的是,我们不需要为它的每一步编写代码。事实上,你需要给它创建一个数据模型,即“学习算法”(Learning algorithm),而算法的核心就是一个有关“错误”的概念——学习算法试图将错误概率最小化。
机器学习的学习任务可以大致分为两类:“监督学习”(supervised learning)和“无监督学习”(unsupervised learning)。如何在产品中区分它们?我们来看几个例子。
无监督学习:数据模式的学问
系统将使用无标记信息的数据,也不会被告知“正确答案”,为了探索数据并找到内部结构。无监督学习对用户数据的处理效果就比较好。
Foursquare的“本周热门”(Trending this Week)就是一个很好的例子。Foursquare是纽约一家基于用户地理位置信息(LBS)的手机服务网站,鼓励手机用户同他人分享自己当前所在的地理位置等信息。讲道理,Foursquare获取的用户停留数据并没有被系统标记,但系统通过无监督学习可以将地点聚类而划分出热门地点。基于用户数据生成本周热门地点信息,推荐给其他用户。对它来说,数据模式创造出了餐厅流行趋势。
监督学习:预测结果的学问
监督学习拥有被标记信息,它会试图对结论进行试验和预测,就像垃圾邮件检测的模式一样。
简单来讲,你首先需要为很多邮件做标记——它们是否为垃圾邮件。之后将这些被标记的邮件存入算法,再用新邮件进行测试。算法的目标是将可能的错误概率最小化。如果算法认为这是一封垃圾邮件,则将它带入用户邮箱的垃圾箱里。
产品应用中并不那么好区分
虽然上述例子中可以看到监督学习和无监督学习有一定的差别,但很多情况下两者并不能被明显区分。我们可以来做个测试——你能推测出音乐平台Spotify中的“每周发现”(Discover Weekly)和“推荐歌曲”(Recommended Songs)功能所应用的算法有何不同吗?两者都是为你推荐的歌单,但它们的的确确是不同的算法。
“每周发现”可以算作一种监督学习,机器学习记录你所听过的歌曲,并以此当成样例来预测你可能喜欢的歌曲。而“推荐歌曲”更像是一种无监督学习任务,算法在数百万张播放列表中寻找共现(co-occurrence)模式,为你推荐与你口味相似的其他人歌单中出现频率较高的歌曲。不得不说,这真是一个水灵灵的举例。
给你一筐可能用到的产品术语
数据学家经常会用一些术语来描述机器学习中遇到的问题。要不我们来做一道填空题:你建立的产品是解决 ?
1. 帮助用户搜索到最合心意的选项?你说的是排序问题(ranking problem)吧。谷歌、微软必应、甚至是Twitter的搜索引擎都致力于此——试图找到并解决你当前提出的问题,并把最适合的那个置于列表最上面。
2. 在用户没有进行明确搜索的情况下,给他们推荐可能感兴趣的话题?这是推荐问题(recommendation problem)。Netflix、Spotify还有Twitter——都是通过推荐内容来激发用户使用兴趣。
3. 想搞清楚一件属于何种类型?对了,这就是分类问题(Classification problem)。Gmail 的反垃圾邮件系统、Facebook上的照片(人脸识别系统)就是很好的例子。
4. 预测数值?可能你想说的是回归问题(regression problem)。比如预测机票价格在两小时内的波动,这已经是Google在半年前推出的产品了。
5. 将相似事物归类到一起?这属于聚类问题(clustering problem)。亚马逊的相关商品顾客提示语(customers-also-bought)依然个瞩目的案例,还有我们刚刚提到的Spotify的歌单推荐,你应该还没忘吧。
6. 发现系统异常?这叫做异常检测(anomaly detection)。很多有关热门产品(如上述提到的Foursquare、Twitter、Facebook等),对异常检测的要求更高。
你发现了吗?案例1-4属于监督学习,5和6属于无监督学习。在实际应用中也会出现出现一定的交叉范围。
Part 2 机器学习在产品实践中的应用
通常来讲,做机器学习产品的技术团队注重的是发掘和分析数据、建立数据管道、特征工程、选择及优化算法、避免过拟合、运行离线评估、并将机器学习运用至在线测试中等等。但作为一个产品经理,还需要重点关注下面七个问题。
1. 机器学习是否匹配产品目标
2006年,Netflix曾斥资百万美元举办大赛,要求参赛者开发一个可以预测用户为影片评分的监督学习算法。当时,Netflix主要是想通过预测用户对影片的评分,来更好地进行推荐。可实际上,Netflix想要解决的问题,和他们在大赛中用机器学习来解决的问题本是不同维度的,在开发新产品时,你更需要想清楚机器学习是否可以解决你的问题。
2. 产品运营,机器学习就够了?
这里又得重提“每周发现”了,它的播放列表就是机器学习的产物。同时,还需要产品经理来决定它的适用范围。是产品经理决定了它需要每周一更新,最近的播放列表会随着新歌单的产生消失。产品经理有参与决策的部分,并不仅仅依赖机器学习。分别定义机器学习和产品经理的作用是一件至关重要的事情。
3. 产品如何开始使用机器学习?
一个困扰机器学习产品开始的问题就是,它看起来像巨大的、无法逾越的、需要数月时间的工作才能填补的“鸿沟”。对此,Google大数据研究科学家Martin Zinkevich曾在论文《机器学习法则:机器学习工程最佳实践》中进行了最佳机器学习工程的描述——不必要对运用机器学习本身犯怵,很多产品可以用简单基线从收集用户反馈开始。
“如果你需要通过几十个柱状图才能讲清你的非机器学习产品是干什么的,可能你在设计的是一个复杂的过度解决方案。换句话说,如果你可以一句话概括产品功能(“我们就是来解决低价问题的”,“我们给你最流行的趋势”),恭喜你,你拥有了一个良好开始”。
4. 你需要和什么对比?
问题接踵而至,如果单单从最小化可行产品(Minium Viable Product, MVP)来看,这里并不需要基线。但要设计机器学习产品,你就需要设立条简单的基线了。
机器学习产品的不同就体现在它的运行情况不是数值可以体现的,是与基线对比出来的。你想将算法的准确率在基线为94%的情况下提高到95%,虽然仅仅为1%,但你可能也需要相当大的工作量来完成。如果你的基线值设定到50%,而算法目前的准确率为75%,这就变成一步巨大的飞跃了。
这里有两点需要特别注意的是:首先,产品性能的好坏是相对的,你需要建立一个基线。其次,为了能有效进行比较和测评,定基线还得“走心”呀。在机器学习产品中,通常会将线上和线下指标分离。例如“算法预算历史数据的准确率”和“这种算法下的产品转化率是多少”就分属为不同的问题。
5. 产品的更新速度有多快?
机器学习产品的输出对你的构建会产生很大的影响。比如美国在线出版平台Medium(类似国内简书)的推荐邮件或者是Quora的摘要邮件,可能都隐藏着机器学习。由于它的产品就是邮件,所以这里不需要适应用户的实时活动。但像Foursquare这种基于地理位置而运算得到的数据,或者类似Google搜索引擎这类产品,用户活动都会导致不同的输出结果。
所以,你要意识到产品的更新速度不仅仅要适应你的系统架构,还会影响用户体验。
6. 用户拥有什么样的交互、活动和管理权限?
数据学家喜欢先着眼于数据获取的难易程度,之后基于此创建学习算法。然而当创建一个新产品时,产品团队更愿意在设计用户交互时来定义数据的获取范围,这些数据将来有可能都会用到。如果你前期准备不周,那么没有记录早期产品数据将成为很多数据学家感到沮丧的原因。
图片社交应用Instagram的好友推荐功能就允许用户关注或者隐藏推荐联系人,Foursquare支持用户自己修正系统检测的曾去位置,而这些都与机器学习算法输出相关连。重要的是,它们添加了新的数据选项——肯定的(是的,我关注)和否定的(no,隐藏吧)两种样例。这些都可以作为提升学习算法性能的反馈依据。
7. 怎样会导致产品灾难性失败?
如果产品没有用到机器学习,最常见的致命性错误可能包含系统的bug、崩溃或令人困扰的界面。既然机器学习的本质是通过样例训练算法,那么错误出现的原因就更复杂多维度。
这个时候将“塔吉特读心术”拿出来再合适不过了。这里有一位父亲曾到一家塔吉特百货愤怒地投诉,商店竟然给他还在读书的女儿寄婴儿用品的优惠券。百货店居然比父亲都早知道女儿怀孕了。根据用户已购买的商品(比如很多孕妇怀孕头三个月过后会购买大量无味的润肤露)进行记录和分析就是机器学习的典型案例。经过与女儿的沟通,才发现自己的女儿真的怀孕了。
在上述案例里,机器学习算法精确预测了女儿的怀孕。但实际上,机器学习产品也可能会犯很多错误。
Google Home的笑话已经不少了。综合这些错误我们可以得到一个共同的主题:产品的应用和设计师们的设想不太一样!无论是依据敏感信息来推广商品、用户对机器人的吐槽还是用带偏见数据集来训练脸部检测算法,都说明产品团队没有将用户的实际操作情境考虑在内。
总结
运用机器学习设计产品是一项涉及学科越来越多的活动。我们今天探讨了机器学习的定义以及七点在实践中的应用。关于机器学习这个发展极迅速、已经变得非常广袤的学科领域,还需要产品经理们不断了解。