大多数浏览器和
Developer App 均支持流媒体播放。
-
设计出色的 ML 体验
机器学习为我们带来了全新的体验,能够理解我们说的话,推荐我们可能喜爱的事物,以及让我们以各种各样的新方式表达自己。机器学习还能通过自动处理单调的任务并提高互动的准确性和速度,从而提升现有的体验。了解如何在您的 app 中整合 ML 体验,并获得关于轻松设计用户界面的实用方法。
资源
相关视频
WWDC21
WWDC19
-
下载
(设计优秀的机器学习体验)
大家好
很高兴你们能参加今天的演讲 我是Kayur 和我一起的还有 优秀设计师Rubii和Cas 我们今天要讲设计和机器学习 我们感到非常激动
你可以看到 在Apple 我们一直在思考设计和机器学习 已经有一段时间了 当我们想到并谈到机器学习时 我们指的是 有关语音识别和计算机视觉的 很棒的技术进步 我们指的是深层神经网络 我们指的是针对设备上的 机器学习的自定义处理 我们指的是所有这些东西 因为我们关心产品 并且我们知道我们今天 所创建的许多产品 以及我们在未来 想要创建的产品和体验 如果没有机器学习将不可能实现 让我们来看其中一些产品
AirPods AirPods允许你用自己的声音 唤起Siri并控制你的设备 你可以轻松地更换音乐或接电话 这些都可以在双手忙碌 并且不能盯着手机屏幕看时实现 如果没有机器学习 AirPods就不可能有这种体验 如果没有Siri 就不可能有这种体验
机器学习允许我们创建面容ID 为你的iOS设备提供快速、 安全的验证
并且我们还用你可能了解的方式 使用机器学习 以微妙方式改善你对设备的体验 我们使用机器学习在无形之中 改善你的键入体验 我们增加或减少 键盘按钮的目标轻触区域 根据你最有可能键入的词
机器学习app多种多样 它们不只是语音辅助或推荐内容 或无人驾驶 机器学习app 与软件工程app一样 多种多样 它们可以让现有产品变得更好 或使新产品 丰富人类体验 在Apple内部 我们一直在谈论和思考 是什么造就优秀的机器学习产品
为了更具体地了解 让我们深入其中一种体验 Photos Photos以不同方式 使用机器学习 机器学习帮助人们创建相册、 编辑照片并搜索 指定回忆 提到回忆 最近 我正在寻找这个回忆 这是Angie 她是我们家的朋友 这张照片是在几年前 徒步旅行时拍的 我有点怀旧 我想把这张照片分享给一些朋友 他们已经在那儿了 直到最近 找到一张特定的照片很困难
我得在数以千计的照片中筛来选去 尝试记起我在哪儿拍的照片 或我什么时候拍的那张照片 我应该会放弃 对于我来说 找到一张承载我回忆的照片 并与家人分享照片曾是一个障碍
在iOS X中 Apple引入了一种新的搜索体验 可以在照片内的 其它东西之间检测 狗 多年以来 我们一直在提升这种体验
现在这种体验变成了这样
我轻触搜索框 我键入狗 我得到一个包含狗的图片列表 然后我选择我正在寻找的图片 并分享它 易如反掌
基于图片上有什么而搜索图片 改变了我们与回忆之间的联系方式 这是我们认为理所当然的事 事实上这是一个很棒的体验 在我们拥有这个功能之前 我们很难记起以前的某个时间 它经过了尽心设计
还有许多界面工作 同时打造了这种体验 Photos推荐 可以进行搜索的类别 在自动完成搜索中 并且把搜索结果与精彩瞬间连接起来 但设计这种体验 远远不只是在搜索字段中 设计一个网格视图这么简单 如果我们只看界面 我们会错过搜索体验的最重要的部分 结果被输出到分类中 人们可以对结果进行搜索 应该设计这些方面的体验 我们决定要包含哪些类 并决定每个类别的质量等级
我们已经实现了那个功能 打造了一个很好的机器学习体验 我们要进行更多的设计 但不只是界面 我们指的是什么呢? 嗯 当绝大多数人考虑到设计时 他们思考的是界面 产品看起来和感觉起来怎么样 体验是否流畅
通过机器学习 我们要设计产品的工作方式 我们知道有些设计师和开发人员 有一些机器学习体验 你可以从零创建搜索体验 但为了让大家进度相同 让我们看一下机器学习 如何用于照片搜索
Photos的逻辑深处是一个功能 它获取图片 并检测图片是否包含 它可以识别的任意类别 在我们的例子中 它识别 Angie这张照片上是一只狗
在传统编程中 我们得通过写代码创建这个功能 告诉计算机要做什么
代码得适用于各种不同的事物 不同的情境 不同的照片分辨率 因为我们的客户形形色色 他们的狗也一样 并且我们不希望针对狗的搜索 与包含其它动物的照片列在一起 我们的代码必须得区分 狗和相似的动物 比如这个鬣狗 看起来像只狗 但你不会作为宠物饲养它
通过写代码 把照片中狗的无数变种一般化 是不可能的 并且狗只是Photos可以识别的 数以千记的类别之中的一种 我们想要创建那种不仅仅告诉计算机 要做什么的体验 对于许多这种体验 我们可以使用机器学习来教会 计算机要做什么
我们通过提供示例来教它 如果我们想区分包含狗的照片 和不包含狗的照片 我们需要提供包含和不包含狗的照片 机器学习学会了一种功能 我们可以稍后在app中使用
这个功能可以获取 这张Angie的照片并了解 它是一张包含狗的照片 我们把这个功能叫做模型 正是模型打造了 Photos的搜索体验
这个模型可以一般化 它之前从未见过的两张照片 它可以识别狗的不同品种 并把狗从其它动物 和物体中区分出来 模型是机器学习体验的核心 依赖于机器学习的每个产品 或体验都以来于模型 Siri的模型 是把你的声音转换为文本 键盘的模型是 根据你已经键入的内容和键入历史 推断你打算键入的键
要设计优秀的机器学习体验 我们不仅要设计它的工作模式 还要设计它的外观和感觉 我们不仅要设计模型 还要设计界面 在这场演讲中我们会一一讲到
创建模型很复杂 你必须得做出大量决策 关于算法、参数和框架 所有这些决策都会影响模型的功能 从而影响体验 关于机器学习的决策都是设计决策 但并不是每个决策 都对设计输入起作用 我们选择了一些我们认为 设计会起很大作用的方面来讲
我们要讲设计 用什么教计算机的必要性 这是数据 我们还会讲如何设计 我们所评估的东西 这些是指标
除了模型 我们确实需要设计界面 我们必须设计模型的输出 以及如何把模型的输出 呈现给人们 我们还要设计人们与模型的交互方式 如果适合的话 还有提供输入以改善模型 Rubii和Cas稍后 会上台来讲这个
那么让我们开始吧 让我们谈谈数据
要识别照片中的狗 我们使用了机器学习 使用示例来创建一个模型
这些示例叫做数据
要创建优秀的搜索体验 你需要大量不同的数据 你需要你希望人们 能针对其进行搜索的 各种类别的照片 你需要提供关于狗 和其它动物的大量照片 从而确保搜索体验不会显示 随机的动物 当你搜索狗时 优秀的搜索体验需要支持 数以千计的类别 包括人们想要搜索的物体和事件 对于每个类别 你都需要数据 如果你想支持一个新类别 你需要数据 如果你想改善现有类别 你需要数据 选择数据对于设计体验来说至关重要
数据决定模型的行为 毫无疑问 这是当你创建模型时 要做的最重要的决策 并且如果你没有捕捉重要情境的数据 你的模型不见得会在那个情境中 运转良好
因为数据决定模型的行为 并且因为模型的行为决定体验 数据需要反映出符合客户 最佳利益的良好价值
为了更好地理解 让我们看个例子 让我们看看肖像模式
肖像模式使用机器学习来检测面部 并把你的身体从背景中分离开来
在过去 面部识别对于有色人种来说 表现并不好 在Apple 我们想确保 我们的体验是包容性的 因此我们的设计和工程师团队 跨越不同的种族、 不同的文化和不同的情境 从中收集数据 我们创建了一个数据集 以匹配我们想要创建的体验 我们有意收集数据 收集数据时提问很重要 谁收集了数据? 他们收集了哪些数据? 他们是如何收集的? 数据偏差可以以多种方式 渗透到数据集中 并且数据偏差超出了公平性 你应该努力做到公平和包容 这是良好的价值观 但你还应该了解数据收集如何偏离 其它设计意图 如果你正在创建一个有趣 或丰富的体验 你应该为有趣、丰富的体验 提供样本数据 如果你的产品是在户外使用 你应该提供户外情境的样本
很容易与这个决定脱节 关于数据收集的决策就是 从你现有的客户手中收集样本数据 并从其它机构中获取 全世界的统一的样本数据
但你不能反映世界 反映世界可以加强系统偏差 你不应该针对现有客户进行优化 你应该针对你想要获得的客户 进行优化 你不应该按世界原本的样子反映它 你应该反映一个更好的世界 是你所希望的那个世界 手机数据是设计体验的一种方式 优秀的体验常常能改变世界 它们不只是反映现在所存在的东西
那么我们该如何应用到实践中呢?
我们要从收集数据开始 了解你尝试创建的体验 并思考你需要什么 来实现那种体验 如果具体情境很重要 你就多花点实践并确保 针对那些情境收集数据
提前花时间收集正确的数据 可以省时、省力 还省钱
确保测试以排除偏差 分析你的数据集 列出谁将使用你的产品 以及如何使用你的产品的假设 思考数据可能会朝向或背离某些人群 或某种体验而产生偏差的方式
随产品变更而更新数据
产品规格改变 你从客户或从市场了解的东西越多 或更好地了解你到底想要创建什么
你需要修改你的数据才能与之匹配 你不需要收集更多的数据 你可以丢弃不重要的概念 但你必须定期将数据与产品目标 保持一致
注意标准数据集 学术或行业基准数据集可能是 了解机器学习如何运作的好方式 它可能是提升 产品开发流程的好方式 但它们不是用于代表真实的体验 特别是你的体验 在你开始使用现成的数据集之前 考虑一下数据包含哪些东西 以及不包含哪些东西 花点时间扩张数据以匹配你的需求
花点时间思考编目 并严谨地收集数据 可以帮助你使你希望得到什么产品 与机器学习 可以提供什么保持一致
那么我们刚才讲了数据 就是你用来教会模型的东西
接下来我们讲如何评估你的模型 这是通过指标来实现的
你通过测试模型来对它进行评估 在照片搜索示例中 你要为它提供动物的照片 你的模型会预测照片中有什么 一旦它完成后 你可以对比做出正确预测的次数 和做出错误预测的次数 在这里我们看到 模型目前的正确预测率是75% 这是个指标 像这样的指标会定义 模型的成功程度 因此 无论它是否准备好投入使用 或无论你是否需要重新开始并改善它 模型的评估方式有许多种 你可以了解模型的运作速度有多快 或它可以支持多少个类别 你可以综合平衡所有这些因素 并针对你的问题 找到正确的指标 设计指标定义了模型如何运作以及 拥有哪种体验 但最终 决定权在你
指标编码你所认为的良好体验 它们定义你关心什么以及你忽视什么 如果没有对某部分体验进行测量 它可能会为此而做出牺牲
因此 你的指标反映你的价值 让我们来看个例子
让我们看看面部ID
面部ID使用机器学习 检测你的面部从而解锁你的设备
在面部ID背后是许多设计意图 最重要的是面部ID需要保持安全 我们的客户信任我们 为我们提供他们最私密的数据 我们使用了许多指标 来追踪安全性的不同方面 一个关键指标是 一个随机的人能找到你的手机、 拿起它并解锁它的几率 我们追踪了这个指标 并非常努力地减少这个几率
在发布时 我们知道一个随机的人 使用面部ID解锁你手机的几率是 百万分之一 因为面部ID是一种新体验 我们需要与我们的客户沟通这种情况 那样他们就会了解 我们关心他们的数据 他们实际上可以信任面部ID
但百万分之一的概率 并不是故事的全部 每次失败都是我们需要思考并处理的 一个人、一个情境或一个体验
假如你是我 我是Apple公司的一名普通员工 最近我试运行了 新的MacBook Pro 由于一个小事故 我不小心打开了 通往另一条时间线的入口
现在我不得不击退 来自平行宇宙的敌人 很明显我不希望他获取 Apple的机密数据 因此我要依赖于密码实现 像我一样有长相相近的家人的人 或有邪恶的双胞胎兄弟或姐妹 都需要采取同样的防范措施
在Apple 我们也讨论过这个局限性 我们在主题演讲中提到了这个 因为让客户 理解并采取措施来保护他们的数据 非常重要 理解和沟通局限性 从而披露聚合统计非常重要
并非所有的错误都是平等的 机器学习中的错误是不可避免的 几乎没有模型能保证是100% 刚开始时 你可能不了解所有的局限性 没问题 那是个迭代过程 但随着时间流逝 你需要更好地了解 可以或不可以实现什么 错误并不是指 你不能创建人们所喜爱的体验 如果你理解错误 你可以解释它们 要么通过创建新模型来改进产品 要么清楚地表明技术局限性 并非所有的错误都是平等的 指标是我们真正所关心的 东西的代理人 请记住 指标是我们真正 所关心的东西的代理人 指标提供数字 一种科学精确度 很容易就能捕捉数字并提高他们 但我们最终关心的是抽象概念 这些东西看起来难以衡量 比如优秀的体验、幸福的客户 以及强大的品牌 让我们来看个例子
要理解指标是代理人 让我们先谈谈App Store
App Store使用机器学习 根据你已经下载的app 为你推荐新app 取第一近似值 一个人在app中所花的时间 可能是个很好的指标 对吗? 毕竟你在某事上花的时间越多 你越喜欢它
如果App Store 完全由指标和模型驱动 人们会看到与他们当前 所使用的app非常相似的app 我喜欢玩游戏 因此我的置顶推荐app 都是游戏app 在一段时间内我可能很喜欢这些推荐 但随时间流逝 我感觉自己被圈定了 因为我所关注的不只是游戏 人们有各种各样的兴趣和爱好 我在某个app中所花的时间 可能不代表我有多看重它
App Store融合了 编辑内容和推荐 这就允许人们探索 各种各样的app和体验 如果只是一些置顶推荐的话 他们可能看不到这些 编辑内容是处理指标 和推荐的局限性的一种方式 但随着你对产品的部署 和更多地了解客户的需求 你所关心的是进化
你可以演变指标以进行匹配 比如你可以把多样性融合到指标中 你可以在人们接触不同内容时 进行衡量 并积极地创建模型 平衡那个人所喜欢的app的 品质和多样性 你应该确保你的指标 仍追踪你所关心的东西
良好的体验、幸福和满足的客户 以及强大的品牌
但要做到这一点 你需要质疑指标 从而确保它们的相关性
在你日复一日的工作中 你可以把它付诸实践
你可以尝试理解错误 因为并非所有错误都是平等的 按类别和情境对失败案例进行分类 这会帮助你了解每个情境的重要性 决定是否非机器学习方法 可以更好地解决 比如改进设计 或你实际需要创建 一个更好的模型
并设计失败情境 当设计或绘制一个体验时 不要只描绘如果正常运作会发生什么 还要描绘如果出现错误会发生什么 这会帮助你着重了解 你的客户可能会体验到什么
花点时间对体验进行评估 指标将为你提供一个客观价值 关于模型运作的良好程度 请记住模型不是体验 实际体验才是体验 因此 尝试评估那个体验 运行用户研究 创建演示 与客户沟通 泡论坛 如果体验很糟糕但指标认为它不错 那么你的指标很可能出错了 如果体验看起来一样 但指标认为它变得更好了 那么你的指标可能出错了
随时间流逝 请演变你的指标 经常质疑和评估指标的有效性 你越依赖一样东西 你越应该质疑它
最后 你的指标反映了你的价值 如果你想使指标和价值保持一致 你就要仔细地思考 批判性地思考 持续地思考它衡量或不衡量什么
我们刚才讲的是指标 就是你了解模型是否良好的方式 以及如何评估模型
接下来我们讲界面 在数据中设计指标 对于设计模型的行为至关重要 但我们还要了解 如何把模型在界面中呈现出来 我要把舞台交给Rubii和Cas 他们会讲输出/输入的具体内容 非常感谢
正如Kayur所讲的那样 要创建底层的机器学习系统 从而获得优秀体验要考虑很多东西 但我们还需要设计界面 允许人们 以直观方式与那种体验进行交互
界面可以把模型的结果转换为输出 人们可以与之进行实际交互 我们从那些交互中所收集到的反馈 就是输入 我们可以用于进一步改善体验
我们已经在人类界面指南中 创建了一组模式 用于帮助你设计输出和输入
我和Cas会深入讲解其中一些 并帮助你了解 如何把它们应用到 你正在创建的体验中
首先讲输出
输出不仅仅是预测 它们是设计媒介 可以增强体验 使其更符合情境并提供更无缝的帮助 我们要讲四种输出类型
多种选择允许你给人们呈现 多种多样的输出
属性是一种解释 帮助人们更加了解 app如何做出决策
信心是对输出的确定性的一种衡量
而局限性发生在 当人们对某功能的心理模型 与实际所能实现的功能不相匹配时
让我们从多种选择开始讲
正如我所提到过的 多种选项允许人们 从一个功能所生成的多个结果中 进行选择 这到底是什么意思?
嗯 你经常试图只揭露 由你的模型所创建的最佳选择 但那并不总是最佳体验 让我来给你展示一个实际的例子 上周末 我想进行一次短途旅行 我问我的同事 旧金山到纳帕谷的最佳路线
取决于我所提问的人和时间 有各种各样的答案 有时他们会说走I-80公路 有时他们会说走101公路
这是因为路线预测是个复杂的任务 有许多不同的变量 可能不断地发生变更 可能是交通堵塞、或修路 或甚至是车祸
考虑到所有那些信息 在Maps中 我们尝试预测可能的最佳路线 但有时候一个选择并不够
我们不知道一个人 可能会关心的一切东西 他们可能倾向于风景优美的路线 或不收通行费的路线 或不沿高速公路走的路线
提供一组不同的有意义的路线 可以帮助人们 在他们的喜好 和模型实际可以预测的内容之间 来回切换 在这里Maps为我们提供了三条 明显不同的路线 一条是去北海湾 另外两条则是去东海湾 这可以为人们提供一种 能控制如何到达最终目的地的感觉
无论何时只要可能 你应该倾向于多样化选择 包括多种有意义的选项
人们还可能在路上使用Maps 有些选项 可能看起来很相似 这就让人们难以迅速决定 选择哪条路线
我们还可以使用属性来帮助人们 区分选项 并更快地做出选择
在这里我们显示了路线是否有通行费
会穿过哪条高速公路
我们甚至在地图上突出显示 每一条路线 从而帮助用户更轻松地找到那条 完美的、风景优美的海滨驾驶路线
这些小摘要是帮助人们在开车时 一眼就区分开大量选项的好工具 并帮助他们轻松地做出选择
我知道Maps对于呈现选项来说 是个显而易见的例子 因为它对很明确的输入做出反应 我知道我在哪儿 我想去哪儿 我期待一个能把我带到那儿去的 路线的选项列表
但多个选项对于 主动提供建议的功能来说也很有用 或可能更不清楚我当前的意图 以及所处情境
让我们谈谈Watch 每天早上我都会查看天气情况
查看我的第一个任务是什么
并查看我当天都需要做什么 Siri Watch表盘 允许我自定义高达19种 我想获取信息的不同数据源 包括 Weather、Calendar 和Reminders 你甚至可以选择从第三方app中 查看信息 现在来自19个不同的app的信息 对于这么一个小屏幕来说 已经足够多了
这就是为什么Siri选择呈现 较少的选择的原因 取决于时间、地点以及我之前 与哪个app进行交互
因为我的Watch知道当时是早上 我在家里 以前 我总是选择在特定的时间开灯 每天早上它会把这个呈现为置顶推荐
Siri可以了解我的使用历史 并帮助我把这个任务自动化 当我醒来时 我不需要在这一长串选项列表中 滚动选择
这让早上的起床变得更省力 对于起的不那么早的人来说 比如我
这很重要 因为每当某人选择一个选项时 他们实际上是在为你提供有价值的、 含蓄的反馈 你可以用于确保总是在顶部 显示最相关的选项
如果你了解他们的选择 你将来就可以呈现更好的建议
请记住当我们谈到Maps时
该如何把属性用在区分路线上呢?
属性实际上可以被用于更多的方面
属性是一种解释 帮助人们更多地了解 你的app如何做出决策
在App Store内 我们使用属性来解释 如何创建推荐 这帮助人们了解为什么他们可能会 看到某些建议 以及他们的数据被如何使用
但假如App Store 给我显示了一些建议 因为我下载了一个烹饪app 现在我可能已下载了一个烹饪app 但那并不一定意味着 我喜欢烹饪
那也不意味着我喜欢那个app
因此 当使用属性来解释推荐时 你应该关联 客观事实而不是主观臆测 在这里 我们简单陈述了这些推荐 因为你已经下载了 “New York Times” 烹饪app
我们永远不会完全了解 某人的口味和喜好 因为可能每天都在变化 人们还可能与家人和朋友 共享一个账户 因此 剖析他们会让他们感到困惑 并感觉受到局限性
你应该避免剖析人们 通过不使用暗示理解的语言 也不要使用 裁决他们的情绪和喜好的语言
我们还可以使用属性来帮助人们了解 一个结果的可信度 我是一位天文学爱好者 我想了解 今晚天空中可以看到哪个行星 因此我问Siri “何时能看到木星?”
Siri告诉我 什么时候可以看到木星 还为我提供来自 Wolfram Alpha的更多信息
这帮助我了解它是可信赖的预测 因为Wolfram Alpha 是一个著名的知识引擎 当显示预测时这非常重要 来源的可信度真的很要紧 比如科学信息或选举结果
引用数据来源 从而人们可以决定 某个预测的可信度有多少
现在属性不仅仅可以用于解释 个性化或预测 我们还可以用它传达信心
让我们再看一下App Store 看看如何在这里避免技术术语
比如我们可以说“这些app 与你的匹配度为85%” 很难理解那个85%是什么意思 但数字对于不同的人 可能还意味着不同的东西
这也是为什么我们尝试使用 更可理解的说明的原因 比如根据你已经下载的app 做出推荐
我提到的那个85% 是对信心的一个测量 或模型对你喜欢这些推荐的确信度 信心是你从机器学习模型中 所得到的东西 但重要的是把它转换为 一些人们更能理解的东西
有时直接显示信心没问题 Weather app为你 提供一个即将下雨的信息 但它还提供一个 即将下雨的概率的百分比
现在你可能在想 根据这30%的几率 我应该做出哪种决策呢? 是不是值得带伞?不确定 但我们已经随着时间流逝 而习惯理解这个百分比了
数字对于统计预测来说是合适的 比如天气情况、比赛结果或选举预测 它可能不适合其它情况
这是Hopper 它帮你订购比较便宜的航班
它使用信心来告诉人们票价是涨是跌
我们不希望人们纠结这个百分比 因为在这个情境中 很难阐明百分比
看到票价有65%的几率会降 并不太可行 那么65%与70%有什么区别呢?
Hopper呈现信心的方式是 为你提供实际的建议 就是你应该采取什么行动的建议 等待或立即购买
它还提供额外的情境 比如你会省多少钱 以及订购航班的最好的时间范围
这些额外的说明帮助人们 做出更明智的决定
如果恰当地使用信心 它会让体验 变得更加人性化
绝大多数时候你应该倾向于把信心 转换为易于理解的说法 帮助人们做出决定
那么到此为止 你很可能了解了 信心是一个很棒的工具 帮助人们预测某个决定的冒险几率
但还有一些情况不适合使用信心
比如 如果我问你从这里到旧金山 需要多久能到 你回答说 “我72%确信 你会在1:30之前到那儿” 那会让人非常困惑 我怎么能确定我实际几点到家呢?
有一种较好的方式是 在预测中提供一个范围 通过出行共享 总是很难指出准确的到达时间 因为可能会交通堵塞 或司机可能搭载了更多的乘客
Lyft帮助人们预测他们 何时会到达他们的目的地 在他们订车之前 通过提供一个范围 包括司机接你的时间
以及到达机场的时间
这些范围帮助我有一个 关于我何时到家的 真实的预期
范围是一个很棒的工具 帮助人们预测某个决定 可能的冒险率
现在这些都是关于 如何显示信心的好例子 但如果信心不大并且模型 没有足够的信息来做出推荐 你该怎么办呢?
在许多情况下 我们其实可以要求人们提供帮助
比如 Photos app 可以自动识别人 以便帮助人们更轻松地搜索 他们的照片
当Photos不确定照片里有谁时 在自动标记他们之前 它会要求人们确认 那个人的额外的照片
请求确认很重要 因为如果我看到照片被标记为我 但其实照片上并不是我的话 那会非常恼人
通过我标记为我的每张照片 Photos更擅长于识别我是谁了
这是Photos中 面部识别的局限性的一个例子
也把我带入了最后一种输出模式
那么局限性到底是什么? 局限性是人们对某功能的心理模型 与实际所能实现的功能不相匹配
我可能希望Photos 总是了解我是谁 虽然它还不能实现 因为照片可能很模糊 或拍摄于昏暗的灯光下或没有对焦
每个功能都有局限性 无论是设计、功能 或环境
你需要通过承认它的局限性 加强人们对你的app的信任 并教会人们如何使用它们
现在Memoji 是我很喜欢的一个功能 但人们可能不理解 为什么在有些情境下它不能用
要么是你的面部没有出现在镜头中
有东西挡住摄像头了
或你在一间光线暗的房间里
每当这种局限性发生时 我们会立即显示这些指导技巧 帮助人们克服局限性 并成功使用功能
当局限性发生时做出解释 可以帮助人们学习在将来避免 这些情况
如果没有恰当地处理局限性 人们可能会失去对你的功能的信任
你应该注意管理人们对某个功能 实际上可以实现什么效果的预期 并指导人们克服局限性
另一个帮助人们克服局限性的方式是 推荐其它方式 来达到他们的目标
为了能正确地实施 你需要足够了解目标 从而推荐确实有道理的替换方案
比如 如果人们要求Siri 在Mac上设置一个计时器 它不能实施这个操作 因为计时器在MacOS上不可用
Siri不会简单地回答 “我做不到” 那会令人沮丧 Siri建议设置一个提醒来替代它
这个建议确实有道理 因为Siri了解目标是 在指定时间收到一个警告 而设置提醒能实现 与设置计时器一样的目标
在可能的情况下 建议可以帮助人们实现他们的目标
我希望这些模式给你提供了一些 关于你可以从机器学习模型中得到的 不同的输出的一些想法
但你要记住 输出是一个设计媒介
通过了解可用的输出类型 你可以选择与你想要创建的体验 相一致的输出 而不仅仅是依赖于 来自模型的标准输出
我们应该通过选择简单易懂 和毫不费力的有帮助的输出 尊重人们的代理权和时间
正如你所看到的 有许多方式可以把模型中的输出 转换到界面中
但当然了 输出不是精致的 它们是动态的 并且根据输入不断地更新
人们通过输出与体验进行交互 现在Cas会跟大家讲 如何设计输入 谢谢大家
Rubii讲了人们在界面上 可以与之进行交互的许多输出 这些交互充当的是输入 我们可以用来收集人们的反馈信息 从而改善我们的体验
我们要讲四种输入模式
校准有助于你获得重要信息 让别人参与你的体验
校准允许你 从某人与你的体验的交互中 收集重要信息 明确的反馈也允许你收集信息 但这一次则是通过提出 关于你所显示的结果的具体问题 更正允许人们通过使用熟悉的界面 修复模型的错误 让我们从校准开始讲
我刚才说过了 校准有助于你收集重要信息 使人们参与你的体验 我们可以使用校准 比如收集生物统计数据 或关于你周边的数据 让我来举个例子 让我们看看HomeCourt HomeCourt帮助人们成为 更好的篮球运动员 它使用机器学习分析并检测 相机所拍摄的照片 比如 篮下投篮的准确度 为此 相机需要校准 从而它可以检测你 检测篮筐和篮球场
HomeCourt做的很不错 又快、又直观 你只需要把前置摄像头指向篮筐 它会立即检测到它 通过在它周围 添加一个很宽的方框实现 然后它就让你投篮 从那时起 你就可以放心了 它会开始计数你的投中次数
值得一提的是HomeCourt 没有要求你去做的事 比如你不需要在篮筐或球场周围画线 它没有要求确认篮筐的位置是否正确 并且你也不需要从各个角度都投篮
校准还发生在Apple的 一些产品中 比如当你设置面部ID时 面部ID仅使用校准来更正 必要的信息 它要求两次扫描你的面部 然后就设置好了 它会一直继续工作 无论你是否开始佩戴眼镜 或改变了发型
因此当你使用校准时 尝试让它保持快速并毫不费力 只请求重要信息 并且 可能的话 尝试避免请求多次校准
一旦你要设置面部ID 我们会一直帮助你 开始是一个介绍 清楚地表明 为什么需要用手机扫描你的面部 我们通过阐述它如何运作 以及它允许你实现什么功能来实现
在整个过程中 我们总会为你提供进度 在这里 我们在你面部四周画线
如果这个过程产生了延迟 我们会确保你永远不会被卡住 并且我们提供指导来帮助你继续 在这里我们添加了一些箭头 指明要看向哪个方向
最后我们提供成功通知 我们告诉你操作已经完成了 你现在可以使用这个功能了
因此总是通过介绍、知道 和确认校准来提供帮助
当然了 面部ID收集大量敏感性信息 因此我了尊重你的隐私权 我们为你提供一种方式 可以在 Settings里编辑或移除此信息
因此 可能的话 允许人们更新他们的信息
正如我之前所说过的 面部ID只要求一次校准 从那以后 它会保持继续工作 无论你是否是开始佩戴眼镜 改变发型 也许是戴帽子或围巾 或即使你的面部随着年龄的增长 而发生了改变 这在我们涉及面部ID时 是个很大的挑战 本来应该是不定期请求重新校准 你的面部容易的多 从而你的iPhone或iPad 会继续识别你 但谁会希望每次改变发型时 就重新扫描他们的面部呢? 因此 我们不请求多次校准 面部ID在你每次使用面部ID时 都收集隐含的反馈 来更新关于你面部的信息 那把带到了下一个模式 即隐含反馈
隐含反馈是来自 人们与你的app的交互的信息 这个信息可用于 改善模型或功能
使用隐含反馈的一个很常见的例子 就是个性化 比如Siri在iOS上对搜索体验 进行个性化 根据你使用设备的方式
当你触发主屏幕上的搜索栏时 Siri呈现一系列 你可能想要使用的app 这里显示哪些app 取决于你为Siri提供的隐含反馈 这些可能是你频繁使用的app 也许是你刚用过的app 或你每天的这个时候 都会使用的app 如在汽车里 可能给我显示Maps 从而获取导航信息 或Music和Podcasts 从而听音乐或听播客 工作时 可能给我显示可以帮助我 开会时用的app如Notes或Reminders 在家可能给我显示Messages 从而可以给朋友或家人发消息 或Suggestions 用于检查我要参加的活动或新闻
根据我使用这些app的方式 Siri尝试识别我的意图 从而可以呈现 能帮助我实现那个意图的app 因此当你使用隐含反馈时 努力识别人们的意图 通过了解他们如何与你的功能 进行交互
随时间流逝 Siri会更好地了解我的意图 除了显示建议的app之外 它可能还会开始建议 我经常实施的操作的快捷方式 比如在汽车里 可能会给我显示 我经常会去的地方的路线 或我的下一个开会地点
工作时可能会给我显示 会议记录或工作提醒的快捷方式 在家里可能会给我显示开灯或发消息 或FaceTime我最亲密的朋友 和家人的快捷方式
这些快捷方式会在几天或几周后出现 它们越具体 Siri就越需要 确定我的意图 正如我所说过的 这些快捷方式基于隐含反馈 因此Siri可能需要时间来 足够确定一个建议 没关系的 有耐心并且确认一个建议 比快速显示一个毫无帮助的建议 要好得多
因此请牢记 隐含反馈可以慢 但它同时也会随时间流逝 而变得更加准确
现在这些建议会出现在锁屏上 可能是因为它们包含一些敏感性信息 比如它可能显示了一个 你想作为惊喜的事件 或一条你想保密的记录
为尊重人们的隐私权 我们添加设置 让你控制哪个app 和哪个app快捷方式 可以在搜索中显示
因此尊重人们的隐私权并 让他们可以完全控制他们自己的信息 请私密地、安全地处理它
因此隐含反馈是一个用于 进行个性化的好工具 但你还可以用于一些 也许是比较不明显的目的 比如让导航更快或更精确 自iOS诞生之日起 一直就有一个不错的例子 那就是键盘
键盘上的每个键都有触摸区域 并且键盘根据你所键入的内容 使用机器学习来优化这些触摸区域
每个触摸区域可能会根据 你所键入的词 或你的手指放在键盘上的位置 而变大或变小
请注意 我们并没有明显地 使这些按钮变大或变小 键盘总是以同样的方式呈现 但随时间流逝 你可能感觉键盘更精确 和更个性化了
因此使用隐含反馈让你的交互 变得更精确和愉悦
最后一个例子是Siri 在Safari中提供的建议 Safari使用机器学习收集 来自消息、邮件、 阅读列表、iCloud标签 或其它地方的链接 很可能这些建议是好建议 它们可以帮助你发掘 关于你的朋友或家人的有意思的内容 或你自己保存的内容 偶尔你可能收到宁愿没有看到的建议 也许是你不感兴趣的文章 或你并不完全信任的来源 如果所有这些建议都毫无帮助 你可能会开始失去对这些建议的信任 或更糟糕 开始失去对Safari的信任 很明显 那是你想要避免的事 Rubii讲了 属性可以在这里帮助解释 我们为什么显示这些建议 但我们还想确保 你可以控制这些建议 从而丢弃那些你不想看到的建议 并确保它们再也不会出现 那把我们带到了我们的下一个模式 即明确反馈
明确反馈允许你的app 通过提出关于结果的具体问题 而收集信息
在之前的例子中 如果我可以获得 关于我不想看到的建议的反馈 那真是太棒了 那样模型可以学习 并避免在将来显示类似的建议
那么要如何设计这些反馈操作呢?
当我们使用明确反馈时 经常会出现两个动作 心 一颗被穿透的心 把这些看作按钮会留下很多解释空间 当我按下其中一个时 我不确定会发生什么 即使我添加诸如Love 或Dislike这样的标签
假如我想获得这里显示的 第三个文章的反馈 我可以提出Action菜单 我可以看到Love动作
那留下了很多解释空间 这是否意味着我要Love 我所喜欢的每篇文章?
积极的明确反馈意味着着额外的工作 人们可能认为他们需要为他们 所喜欢的每一篇文章 都提供积极的明确反馈 只是为了获取更多好建议 因此我们实际上建议 消极反馈优先于积极反馈 积极反馈可以更好地通过隐含信号 进行推测 比如当阅读文章时 我给它添加书签或分享了它
因此不要同时显示 Love或Dislike 我们实际上只需要显示 Dislike即可 但仍然留下了很多解释的空间 若我Dislike一篇文章 我是 Dislike该文章、作者、来源 还是发送给我的人 或也许甚至 是我收到这篇文章的app 当我轻触Dislike时 我仍然难以理解会发生什么
这样的话比如 “以后少推荐”或“隐藏推荐” 使得我轻触这样的按钮时会发生什么 变得更容易理解 为了给人们提供更多的控制 我们可以允许他们具体选择 他们比较不想看到哪些内容 比如来源、 把它发送给我的人 或我接收到它的app
因此当使用明确反馈时 清楚地描述选项 及其结果 使用能解释即将产生什么结果的语句 可能的话 提供不同的选项来更好地理解 用户的喜好
当然 当我选择其中一个选项时 界面应该立即 反映我的选择并隐藏 与我的喜好所匹配的建议
因此当用户提供明确反馈时 总是要立即并持久地采取措施
那么你了解了明确反馈允许我们 修正可能出错的、 不想要的或不合适的建议 但对于某些机器学习功能来说 使用明确反馈 可能不是正确的选择 或也许甚至是不可能
又是Angie 她是我朋友的狗 她经常是我们聊天群里的主要话题
现在键盘使用机器学习来建议改正 我正在键入的内容 当我首次键入 “Angie”这个词时 它想把它更正为“angle” 那很明显是错的 但使用这里的明确反馈 看起来有点不对劲 假如我这里有一个情境菜单
感觉不是很直观 也不允许我说出我真正的意思
相反 我可以选择词 并更正键盘所提供的建议 通过重新键入它来实现 这一次键盘将不会自动更正它 键盘从我的更正中学到了这个词 下一次我键入Angie时 它就知道我值得是一个名字 而不是“angle”这个词 这是关于最后一个模式的 最明显的例子 即更正
更正允许人们修正模型的错误 通过使用已知任务 通过已知任务 我会解释那是什么意思 在之前的例子中 你已经看到 我们使用标准文本控件更正了这个词 我们没有在这里显示新的界面 每个人都知道要怎么做 因为这就是键盘的工作模式
因此 更正是优化结果的一种 很棒的模式 而不会感觉是额外的工作
让我再举一个例子 Photos使用 机器学习优化你的照片 它可以帮助你找到照片 可能会进行的正确的旋转或剪切
Photos建议这些剪切 或旋转的方式 非常微妙 当你进入编辑模式 并选择旋转或剪切工具时 Photos将为你剪切或旋转照片 现在它不应用旋转或剪切 它只是给出建议 作为起始点 如果你喜欢Photos所做的操作 你只需要轻触完成即可 然后就会应用更正、旋转或剪切 但如果你想改变Photos的建议 你只需要使用底部的滑块来旋转 或拖动要剪切的角落即可 那么这些是关于更正的不错的例子 我们给你显示熟悉的控件 并且我们从你的更正中学习
最后一个模式到此结束 通过熟悉的方式允许更正 这让更正更简单、更迅速 更正时提供即时价值 就像我们在文本更正中看到的那样 键盘不会自动根正所键入的内容 并使用更正作为隐含反馈 更正作为隐含反馈可以很好地改善 机器学习的结果
那么这就是我们今天 要给你们介绍的全部界面模式 正如你所看到的 其中许多模式影响了 我们长久以来所拥有的界面元素 因此 机器学习提升了 我们一直在做的事情 这些模式不一定是新的 但它们应用到了一个新的情境中
无论何时当我们选择模式时 我们就要确保 尊重人们所做的工作 添加额外的属性或额外的反馈动作 请求更多的信息用于解析 那会扰乱他们的注意力 可能会分散他们对手头任务的注意力 因此选择模式时首先要考虑人
因此设计机器学习体验并不仅仅是 把结果输出到界面中 我们选择数据、标准、输入 和输出的方式都起到很重要的作用 使这些体验可以理解、直观 和令人愉悦
在结束演讲之前 我想回顾一下Kayur 在演讲开始时所讲的内容 Apple使用机器学习创建 我们之前从未创建过的产品和体验 是我们真的很关心的产品和体验
你已经看到了关于机器学习 如何帮助我们管理注意力的例子了 如何允许我们为你提供 更好的建议的例子 还有如何在合适的时间 呈现情境信息的例子 以及如何自动化普通任务的例子 从而使你专注于重要的事情 但机器学习可以帮助我们实现 更多功能
Apple总是 使用技术来受益每一个人 而机器学习只是提升了技术的能力
它可以帮助我们保持健康 通过测量我们的活动和步数来实现
机器学习通过影响我们的沟通方式 而让我们变得更有包容性 比如添加给相机添加声控 从而使盲人 可以看到它们正在拍什么 或当他们所爱的人 出现在相框中时 它能认出来
机器学习帮助我们保持生命安全 通过检测心脏实现 通过检测心跳或心电图
最后它可以允许我们富有创造性 通过以一种全新的方式看世界 比如让一个已知的工具 手写笔 在屏幕上做神奇的事
那么你可以看到 当我们的创造方式 与我们所坚持的价值观相一致时 我们可以创造 真正能提升人类最佳品质的体验
这就是我们为你准备的一切 我们希望我们在设计优秀的 机器学习体验方面 给你们提供了足够多的灵感、洞察力 我们所讲的所有模式还有更多模式 都在人机界面指南上可用 它是测试版
今天下午还有一些 关于机器学习的演讲 我们在接下来的一小时内 会参加用户界面设计演讲 回答你的任何疑问 因此一定要来参加 谢谢大家的参加 祝你们愉快地度过 WWDC的最后一天
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。