基于机器学习的产品体验设计 (2) 数据与指标
开始读《猫头鹰在黄昏起飞》对谈集,才意识到很久没有读过村上春树相关的东西了。那像是在居酒屋边吃毛豆边咂摸着温热的烧酒。
说起来也是不得了,还有两周就要过年了;期盼着春节间回去北方看看老同学老朋友。上周被雪景刷屏时艳羡的心情依然未退。
今天是“机器学习”的第二篇,进入“模型”层面的讨论,内容相比于之前一篇“基本原理与设计要素”来说抽象了很多。接下来进入“界面”层面的话题后会更易于理解。
希望在下周结束前,这个系列可以完结掉。之后大约会暂时停更一段日子;届时详细说。各位周末愉快~
第二部分:数据与指标
首先,我们来了解“模型”层面的一系列设计原则,涉及“数据”与“指标”两个方面。
为了让 app 能够识别狗狗的照片,我们首先要通过一系列范例内容帮助机器训练相关的模型。这些范例就是我们所说的“数据”。
数据(Data)
要实现优秀的照片搜索体验,我们需要大量的、种类繁多的数据。要确保人们在搜索“dog”时能够得到狗狗的照片而非其他相似的小动物,我们需要同时提供狗狗和其他动物的照片来训练模型进行识别。
进一步来说,真正的搜索体验应该支持人们日常可能搜索的成千上万种对象类型。对于其中的每一类,我们都需要提供数据;要新增一个类型或是改善现有类型的搜索,我们同样需要提供数据。
如何选择有效的训练数据,这是打造搜索体验的关键。数据决定了模型的行为方式。
数据与设计目标相匹配
如果你的数据无法捕捉到特定场景,那么训练出的模型也很难在那个场景中良好地运作。由于数据决定着模型的行为,而后者又直接决定着产品的功能体验,因此数据的选择也必须能够反映出目标用户的实际需求与利益。
听起来有些抽象,我们实际看个例子。在“相机”的人像模式中,机器学习被用于探测人脸,并将身体与背景分离开来。
从技术发展的历史角度看,人脸识别对于有色人种并不十分友好;然而对于 Apple 而言,我们必须确保产品体验具有足够的包容性。因此,我们的团队从不同的人种、文化与场景当中收集了大量的数据;只有这样,训练出的模型才能提供具备高度包容性的体验。
简而言之,我们的数据规模与我们期望打造的产品体验是相匹配的;我们会根据产品设计目标有针对性地收集数据用以训练模型。
对你而言也是同理。在训练模型之前确认一些问题,例如由谁来收集数据,具体应该收集哪些数据,如何收集,如何确保数据的客观性?
如果你的设计目标是塑造丰富有趣的产品体验,那么数据也要反映出这一目标;如果你的产品主要用于户外活动,那么数据也应该来自于相关的场景。数据必须意图明确。
开发者们很容易忽略产品体验的实际场景而盲目制定数据收集策略。必须首先充分理解你们的产品设计目标,进而确定需要为机器提供怎样的数据来训练出最为有效的模型。
在前期花些时间思考如何收集正确的数据,往往可以为后期节省大量的时间和金钱。
随着产品的迭代,以及你们对于用户及市场的理解的加深,你可能还需要不断更新数据,使模型始终适应于不断变化的设计目标。
另外还需要留意所谓的“标准化数据集”。由学术界或行业制定的标准化数据或许可以帮你更好地了解机器学习的原理,从而易于起步,或是加速开发流程;但这些数据并非面向真实场景与体验而设计,更无法代表你们的产品设计目标。因此如果必须使用这类数据,首先考虑清楚它们的覆盖范围,在必要的时候进行补充,使其更符合你们的特定需求。
指标(Metrics)
数据用于训练模型;接下来要聊的“指标”则用于评估模型。
我们需要通过测试来评估模型的有效性。仍以照片搜索为例。完成训练后,我们会为模型提供一系列包含各种小动物的照片,观察其判断的结果,对比其中正确与错误的数量。
在这个例子当中,模型的正确率是 75%。
这就是一个指标。诸如此类的指标可以帮助我们判断模型的训练是否成功,是否达到了产品应用的标准,或是需要继续训练。
我们可以从很多不同的维度对模型进行测试,譬如观察它的运行速度,或是能够支持的对象类型数量等等。你需要充分权衡,从众多维度当中选择出最能代表你们设计目标的那些,作为判断模型成功与否的指标。
指标与设计目标相匹配
指标可以衡量模型的质量,而模型的质量决定了产品体验能否达到设计标准,因此你所选择的指标必须能够代表你对于优质体验的定义。
指标同样体现着产品的关键价值所在。
我们来看个例子。Face ID 正是基于机器学习来探测你的面孔并实现设备解锁的。
其整个机制背后蕴藏着一系列明确的体验目标与设计意图,而其中最为首要的就是安全性,因为用户信任我们,他们会将重要的个人数据交托于我们所提供的设备。
安全问题涉及到方方面面,我们必须通过多种不同的指标来判断模型是否足够可靠;其中非常关键的一个指标就是“任意一个人拿到你的手机之后能成功刷脸解锁的几率”。
我们一直追踪着这个指标,下了很大功夫去进行优化。在 Face ID 发布时,这一几率已经下降到了百万分之一。
由于 Face ID 在当时还是新事物,我们需要让人们知道这项技术是足够可信的,因此我们也会通过这个指标与人们进行沟通,让人们了解 Face ID 的安全性。
关于技术局限
但无论如何,“百万分之一”并非绝对完美。模型有可能产生的任何一次失误,都会在一个真实的使用场景里影响到一个真实的人;产品设计者必须考虑到这一点。
如果另一个时空当中的我突然出现在了我的身边,我显然不希望他能通过 Face ID 来解锁我的手机,因此我还会设置密码进行额外的保护。在现实当中,这类问题对于双胞胎亲属来说是真实存在的;这也是新技术当中所存在的局限,设计者无法回避。因此我们也会和消费者就这一点进行沟通,并建议他们进行额外的安全设置。
出错,这对于机器学习来说是难以避免的。很少有模型可以达到 100% 的正确率,作为设计者,你必须了解到这一局限。但这是可以接受的,因为产品设计本就是一个迭代的过程,模型同样可以不断进化。
模型自身所存在的出错概率并不意味着你无法为人们提供优秀的产品体验。分析出错的原因,改善模型,或是清晰直白地让人们知道技术自身所存在的局限性。
指标不是全部
另外不要忘记,指标,永远只是产品设计目标的一系列量化表现形式;不要仅着眼于统计数字的优化而无法自拔,却忽略了在真实场景中可能产生的实际体验问题;必要的时候,你可能需要结合其他方式来塑造更完整的体验。
通过机器学习,App Store 会根据你已经安装的 app 来为你推荐更多类似的产品。
用户在某个 app 中的停留时长确实是个不错的指标,毕竟人们在一件事情上所花费的时间越多,越代表他们喜欢这件事。但是,如果 App Store 完全以这个指标及相关模型作为驱动,那么人们最终只能看到一个又一个和自己当前使用的 app 非常相似的推荐。对我而言,这就意味着我将看到越来越多的游戏推荐。我固然喜欢游戏,但我不止需要游戏。
需求、兴趣及场景是多种多样的;人们在一个 app 当中花费的时间未必真的代表他的实际需求。为了补足推荐模型的固有局限性,实现更加完整的体验,App Store 同时提供了人工参与编辑的推荐内容,帮助人们探索更多类型的优秀产品。
模型的进化
上线后,你会越来越多地了解到产品的实际表现,进而也会对用户需求产生更加深入的理解。设计目标会因此而逐渐进化,模型与相应的指标也是如此。
譬如你可以通过实际的统计来评估人们对于多样化内容的需求,进而创建相关的模型,在推荐内容的“多样性”与“喜好相关性”之间找到最佳平衡点。
无论如何变化发展,你都要确保通过正确的指标来持续追踪模型在进化过程中的表现,进而对设计目标的实现程度保持了解。
如何确保指标能够始终体现出不断进化的产品设计目标呢?
- 理解错误:对模型出错的状况进行分析,将失败案例按照不同的类型与场景归类,并考虑不同的处理方式:是否需要通过非机器学习的方式进行处理,譬如改善界面层面的设计?还是需要一个更好的模型?
- 针对失败场景的设计:在设计的过程中有针对性地考虑到失败场景,考虑到人们在实际使用时可能经历的各种情况,提供必要的额外保障措施,而不只是面向一切运作正常的情况而设计。
- 评估实际体验:指标可以给到我们关于模型质量的客观数字;模型的表现决定了体验,但不等同于体验。作为设计师,仍然需要对体验本身进行持续评估。进行必要的用研,通过原型进行体验评估,与用户交流并获取反馈。如果评估结论是体验欠佳,但指标显示一切良好,那么你的指标本身很可能存在问题。
- 持续优化指标:始终对指标的有效性保持质疑和评估。你越需要依赖某件事物,就越需要评估它的正确性。以不断进化的产品设计目标为核心,持续追踪和思考当前模型指标的合理性。
“数据”与“指标”代表着模型层面的设计要素。接下来,我们将进入界面设计的层面,了解基于机器学习的产品在界面输出与输入方面的一系列设计原则。
- 次回预告:(3) 输出的设计
- 视频链接:Designing Great ML Experiences
译文代表原作者观点。欢迎发表评论,或到译者微博进一步交流探讨。