作者:前 Facebook,雅虎产品经理 yaelg
编译:珊珊
人工智能时代,每位产品经理、企业家以及商业领袖都应该了解机器学习。
即使你不是在设计一款chatbot或者无人车,但为了产品保持竞争力,你早晚都要把机器学习融入到你的产品中。
好消息是,你不需要发明新的技术,只需利用已有的技术。许多科技公司开放开源工具和平台(如Amazon AI,TensorFlow—最初由Google开发的)使得几乎所有公司都可以使用机器学习。
当我开始捣腾机器学习的时候,我什么都不晓得,然而在很短时间内,我便掌握了领导开发机器学习产品的核心要领。
我的目标是让你充分了解开发机器学习产品的技术和开发流程,使你能尽快开始。这将是一份循序渐进的教程,助你成为利用机器学习实现业务目标的PM(产品经理)。
手册共6部分:
5. 机器学习就是个UX(User Experience)问题
6. 产品经理应该了解的开发注意事项
▍第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,文件上传等。它需要足够的模块化,以支持所有必要的方法,并将数据从数据处理中分离出来(这是一个很好的软件工程原理)。
好了! 你现在应该有足够的知识开始搞搞机器学习了。
★推荐阅读★
长期招聘志愿者
加入「AI从业者社群」请备注个人信息
添加小鸡微信 liulailiuwang