探究移动触摸键盘内的贝叶斯规则

使现代智能手机键盘智能化的数据驱动功能的视觉之旅

Hand typing on phone with overlay showing normal distribution circles on top of each key. Further plots showing other visualisations of the keyboard models.

一个个性化的概率性智能手机键盘,具有各种可视化功能:触摸分布、按键区域、不确定性/熵测量。(图片由作者提供)

你输入的东西就是你得到的?现代触摸键盘则不然。这篇文章直观地解释了你的智能手机键盘的四个核心功能–包括个性化、自动更正和单词预测。基于我为 “智能用户界面 “讲座制作的材料,我们研究了这些功能在我们日常打字中的内部运作情况,并以启发、评估和批判性反思数据驱动和 “智能 “用户界面的收获作为结尾。

特点1:适应关键区域

现代的智能手机键盘会将分配给每个键的屏幕区域个性化。这通常不显示在图形用户界面中,以避免混淆和不受欢迎的共同适应 – 但我们可以在这里揭示它。

触摸数据

当用户打字时,键盘会在后台收集触摸位置(2D点:x,y)。图中显示了两个人的这种触摸数据,是在几天内收集的。

Two plots, each showing touch points on an illustrated smartphone keyboard area.

两个用户在智能手机键盘上的触摸。(图片由作者提供)

触摸键盘模型

利用这些触摸数据,我们可以为每个用户创建个性化的按键。这些按键模型捕捉每个用户在键盘上的手指放置行为。例如,对于安娜来说,字母 “x “的最佳位置可能与鲍勃的位置略有不同。

Two plots, each showing normal distribution (sigma) ellipses per key on an illustrated smartphone keyboard.

两个用户的个性化键盘模型,安装在上图所示的触屏上。(图片由作者提供)

如图所示,我们用正态分布_p(t|k)_ 为每个键_k_建立个性化键盘模型,并对该键的触摸位置进行拟合。从形式上看。

Shows the equation of a normal distribution with mean and covariance visualised on top of touch points for one key on a smartphone keyboard.

每个键k被建模为一个正态分布,中心是该键的平均触摸位置。图中以 “c “键为例直观地说明了这一点。(图片由作者提供)

对于每个键_k_,模型存储了该键的_平均位置(x,y)_ ,以及_协方差矩阵_ (可以直观地认为是描述键的大小和形状)。在视觉上,圆圈显示了这些分布的两个和三个标准差。

我们也可以从三维角度来看:每个键是一个 “山丘”,高度对应于触摸可能性_p(t|k)_。图中显示了一个 “c “键的例子。

Illustrated smartphone keyboard seen at an angle from above with a “peak” coming out of the screen, indicating the area of highest touch likelihood for the “c” key.

c “键的触摸可能性的三维图。(图片由作者提供)

用户按的是哪个键?解码一个触摸

这个键盘模型可以用来对触摸进行解码。”解码 “只是意味着找出用户打算按哪个键。

结果显示在这些图中,颜色表示每个触摸位置(即像素)最可能的键。我们已经得到了一个个性化的键盘,其像素到键的分配是基于每个用户的个人触摸行为。

Two plots, each showing coloured pixel regions that relate to one key. Overall thus shows that adapted keyboards have different pixel-to-key assignments for each user.

两个用户的像素到键的分配,揭示了手指在键上的位置的差异,键盘可以通过这种个性化的方式来解释。(图片由作者提供)

从形式上看,为了得到这些图,我们评估_p(k_ | _t),即在触摸位置_t_的情况下,按键_k_的可能性。这就产生了最可能的按键_k’。

注意。

_p(k)是按键_k先验 分布,描述了一般情况下按键的可能性,不考虑触摸位置。一个简单的先验是统一的(即所有按键的可能性相同)。一个更好的先验是使用语言环境,我们将在后面研究。

p(t|k) 是假设按键是_k_的情况 下,触摸_t_的可能性。

不确定性

由于这是一个概率模型,我们可以看一下键盘的不确定性。后验_p(k|t)_的 ,就是这样一种不确定性的测量。直观地说,如果许多键_k_对于一个触摸位置_t_来说是同样可能的,那么它就是高的;反之,如果一个特定的键被认为是唯一可能的,那么它就是低的。

Two plots, each showing entropy of the keyboard model, resulting in a grid like pattern (or voronoi cell-like pattern), essentially showing “key borders”.

键盘上各像素的模型后验的不确定性(熵)。(图片由作者提供)

上面的图显示了这种熵。在不同的像素到键的分配之间的 “边界”,不确定性是最高的。这与我们的直觉相吻合,即靠近按键边缘的触摸是 “草率的”,或者换句话说,比起击中按键正中的触摸,解释起来更不清楚。

特点2:整合语言环境

这种个性化的键盘可以通过整合语言环境来进一步改善。为了说明问题,我们在这里使用一个简单的大词语言模型。大词是一对字母(例如:”th”)。它很容易建立。只需计算大量文本中的字母对并计算其相对频率。

从形式上看,这个大词语言模型是指在给定前一个键的情况下,下一个键的可能性。将此作为解码方程的先验,我们就有了。

我们可以通过比较前一个字母是 “q “和 “t “的例子来研究语言模型的影响。考虑到这些字母在英语中的常见搭配,我们预计 “u “会在 “q “之后获得屏幕空间,而 “h “会在 “t “之后获得屏幕空间。事实上,图中显示了这种变化。

Coloured key region plots for two language contexts and a difference plot that shows how key borders move due to different language contexts.

一个(简单的)语言模型的影响的例子。根据前一个字母是 “q “还是 “t”,按键分配的变化。这些键区大小的变化符合我们的直觉,即在英语中 “q “后面经常是 “u”,而 “t “后面经常是 “h”。(图片由作者提供)

为了进一步研究这一结果,我们接下来比较两种语言环境下模型的不确定性的差异。这显示了由于上下文的变化,每个像素的确定性的增加(或减少)。

对于我们从 “q “切换到 “t “作为前一个字母的例子,我们预计 “u “周围的像素将失去确定性,而 “h “周围的像素将获得确定性。这是因为。

  • 许多字母都可能在 “t “之后–与 “q “相反,”q “后面除了 “u “之外不常有其他字母。
  • 相反,”th “非常常见,增加了模型对 “t “后 “h “的确定性。

事实上,图中显示了这种效果。

Two of the uncertainty plots (voronoi-cell like look) and a difference plot that “lights up” areas of increased certainty or rather increased uncertainty.

键盘的不确定性(后验熵)的变化取决于前一个字母是 “q “还是 “t”。(图片由作者提供)

特征3:对整个单词进行解码

到目前为止,我们每次都对单一的触摸进行解码,这相当于按键区的个性化。打字是由许多次连续的触摸组成的。因此,我们还可以研究如何将触摸序列解码为单词,包括语言环境。这可以用来实现 “自动纠正”。

归纳到序列中

我们现在寻求找到最可能的字母序列_s_,给定一个观察到的触摸位置的序列_o_。这就是。

方程与单次触摸的方程相同,原理也是一样的。为了解码单词,我们只需要把它的组成部分推广到按键/触摸的序列中。为了简单起见,假设一个长度为_n_ 的单词有_n_次触摸_(_即 ,没有遗漏或虚假的触摸),这可以被正式表述为。

注意。

_p(s)是一个关于字母序列的先验 。为了说明问题,我们重新使用我们的大词模型。也就是说,一个由_n个 字母组成的序列(例如一个单词)的联合概率是其键对键转换(即大字)的乘积。

(_p(o|s)是假设字母序列为_s_的触摸观测值_o_的可能性 。这里我们重新使用我们的高斯钥匙模型,产生每次触摸的_p(t|k)。我们通过乘法将其汇总到序列中,作为联合概率。

用代币传递算法找到最可能的单词

尝试所有可能的长度为_n_ 的字母序列_s_来找到最可能的一个是非常昂贵的(指数级)。我们需要做出妥协。具体来说,我们在这里使用的是一种带有波束修剪的令牌传递算法。

简而言之,该算法将一组部分序列作为 “令牌 “进行跟踪,这些令牌可以被分割(即路径中的 “叉子”:探索当前序列的多个延续)或丢弃(即 “死胡同”:令牌所代表的序列变得太不可能)。

下面是一个具体的例子。一个用户打算输入 “hello”(左图)。该算法在假设空间中探索了两条路径(右图)。”hello “和 “helli”。正如线条粗细所显示的,”hello “更有可能;解码发现正确的词是最有可能的(红色路径)。

Left plot shows numbered touch points on a keyboard to indicate what’s typed in this example. Right plot shows a path through the hypothesis space (rows of abc… with the algorithm’s explored letters highlighted and connected by lines).

对预期输入的 “hello “进行解码(左图),并使用标记传递。右图显示了算法在假设空间中的探索路径;从上到下阅读(垂直:触摸1-5,水平:探索的字母为红色,线条粗细表示可能性,红色路径最可能)。(图片由作者提供)

光束搜索宽度

直观地说,波束宽度定义了我们要允许多少探索。更多的探索可能会增加找到正确单词的机会,但也会增加计算时间。

如下图所示,通过比较不同波束宽度下探索的假设,波束宽度的影响变得明显。在右边,算法额外探索了 “jello”,但它认为这比正确的 “hello “更不可能(见从 “je “开始的路径比 “he “更细)。

Comparison of two plots showing paths through the hypothesis space (rows of abc… with the algorithm’s explored letters highlighted and connected by lines).

增加波束宽度会导致对假设空间中更多部分的探索(这里将 “jello “加入到候选词列表中)。(图片由作者提供)

插入和删除

代币传递算法的扩展 ,引入了插入(产生一个字母而不处理下一个触摸)和删除(处理下一个触摸而不产生一个字母)。这解决了两个常见的用户错误:虚假的(误)触摸和意外跳过的按键。

虽然我们在此不谈技术细节,但接下来的两幅图以具体例子说明了插入和删除的解码。

对于插入,我们看一下 “hllo”(意外跳过的 “e”)这个例子。下图中的插入解码器正确地发现 “hello “是最有可能的词:直觉上,插入 “e “比简单地遵循触摸证据产生更高的整体可能性,因为 “he “在英语中比 “hl “更可能。

Left plot shows numbered touch points on a keyboard to indicate what’s typed in this example. Right plot shows a path through the hypothesis space (rows of abc… with the algorithm’s explored letters highlighted and connected by lines).

用一个可以插入额外字母的解码器对 “hllo”(用户不小心跳过了 “e”)进行解码。(图片由作者提供)

请注意,这个例子中的解码器也通过在开头插入 “t “来探索 “thllo”,因为 “th “在英语中的可能性很大。

补充一点,对于删除,我们看一下 “hqello”(意外的 “q”)的例子。解码器正确地发现 “hello “是最可能的假说。虽然 “hq “很有可能,但 “qe “的可能性比通过 “ε “跳过 “q “的可能性小。(空)而采取 “他 “的方式。

Left plot shows numbered touch points on a keyboard to indicate what’s typed in this example. Right plot shows a path through the hypothesis space (rows of abc… with the algorithm’s explored letters highlighted and connected by lines).

用一个可以删除触摸(ε)而不是产生一个字母的解码器来解码 “hqello”(注意虚假的 “q”)。(图片由作者提供)

特征4:建议下一个词

到目前为止,所有的功能都假定用户已经触摸过按键了。相反,如果我们没有触摸(还没有),我们就必须完全依赖语言环境。这就产生了 “单词建议 “的功能。

Screenshot of a smartphone keyboard with word suggestions above the keys: Typed text is “Hello”. Suggestions shown are: “there”, “again”, and “I”.

智能手机键盘上的单词建议,在输入 “你好 “后显示。(图片由作者提供)

例如,我们可以看一下最后的_n-1个_词来预测下一个词。

这是一个简单的单词级别的_n_-gram模型,可以通过计算大型文本语料库中的单词序列来训练。最近,深度学习语言模型也被探索用于这项任务。它们提供了一些优势,例如能够包括更长的语境。

讨论与收获

经过对键盘的深入研究,这一切意味着什么?这里有三点启示,可以为未来的 “智能 “用户界面的设计提供参考:1)构思;2)评估;3)超越交互的批判性思考。

在你的数据驱动的键盘的背后,有很多事情正在发生

回到五到十年前的一个键盘应用。我最近为了好玩做了这件事,感觉有些不对劲:我感到奇怪的笨拙和缓慢–可能是因为那个旧键盘还没有关于我的触摸数据,当然也没有我已经习惯的语言建模和解码的质量。

→_构思。_为了激发对 “智能 “用户界面的新想法,我们可能会问如何将成功的数据驱动和概率概念从键盘转移到更普遍的GUI上(也见最后的建议阅读)。

用户体验比用户界面更重要,特别是在 “智能 “用户界面方面

那个旧键盘_看起来_ 和我最新的键盘应用几乎一样,但我的用户体验却差了很多,如上所述。今天的键盘是一个交互式系统的典型例子,在这个系统中,用户体验无法从视觉UI中辨别出来,而视觉UI并没有揭示出潜在的算法质量。

→_评估。_经验性的评估对于自适应UI的设计至关重要。未来的进展可望从建立在人机交互和人工智能的知识和方法论中获益。

数据驱动的用户界面中的数据是如何使用的?

我们每天都在与数据驱动的用户界面进行交互,而这些用户界面收集我们的数据。键盘是为数不多的交互系统之一,至少在原则上,它只收集输入数据以改进输入法_本身_。

_反思。_我们可以通过询问他们对用户数据的原位使用(即交互中)和非原位使用(即使用后)来批判性地检查数据驱动的UI。

总结和思考要点

为了激发进一步的讨论和洞察力,我们可以把今天的触摸键盘看作是。

  • _数据驱动的UI。_键盘使用触摸数据和语言数据来改善你的打字体验和效率。
  • _概率性的用户界面。_键盘在解释你的输入时考虑到了不确定性。
  • 动态和自适应的用户界面。 整合语言模型不是脱离打字的 “魔法”,而是导致像素到键的分配的动态变化。
  • _生物识别用户界面。_为了适应他们的按键,键盘会学习你个人的触摸行为,这种行为在不同的用户之间是不同的,就像一个行为指纹。
  • _欺骗性的用户界面。_键盘在内部使用与屏幕上显示的按键不同的像素到按键的分配(目的是好的:避免混乱和恶化的共同适应)。
  • _搜索器。_键盘搜索一个巨大的假设空间,将你的输入内容 “解码 “为单词和句子。

结论

我们已经得出了使今天的智能手机键盘变得聪明的核心特征,并通过基于具体的触摸和语言数据的可视化来探索它们的效果和中心参数。

最重要的是,这里解释的四个核心功能都来自于一个概率框架(贝叶斯规则),通过用不同的具体成分来填充它的槽。这里是一个总结。

Equation of Bayes Rule annotated with the terms used throughout this article for the keyboard decoding use case.

贝叶斯键盘的概述。(图片由作者提供)

总而言之,移动触摸键盘已经成为 “智能”、数据驱动和概率化用户界面的一个普遍的日常例子。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享