C6.26.4Live IME candidate re-ranking设计研究

候选排序的实时重排可能在用户即将点击时改变目标位置,导致误选

别名: 候选跳动 · 实时重排 · 点偏候选

概念解释

组字过程中每多敲一个字母,引擎可能重排整行候选。云端结果后到、上下文模型异步更新,也会在手指已经伸向某个词的时候把它挪到旁边。用户点到的是新占了那一格的另一个词。这是排序在时间维上的不稳定,不是候选窗挡住了文本,也不是翻页成本。自动补全条上的候选跳动是近亲,但 IME 的空格键会把跳动后的新第一位直接上屏,伤害更硬。

机制

重排有三个触发源:拼音前缀变长(jjijin)、云端 RPC 返回、以及上一个词刚刚上屏导致上下文窗口滑动。界面若立即重画,指尖运动期间目标发生位移,和菜单还没稳定就点击同一类。触屏尤其严重,因为瞄准时间长。空格绑定第一位时,重排只要把第一位换掉,连“点击”都不必,一次按键就提交新词。稳定策略包括:在指针按下后冻结列表、对云端结果只追加不插队、或在用户停顿超过某阈值后再重排。

怎么研究

记录候选条每次重画时每个词的屏幕坐标,对齐触摸 down 的时间戳,计算 down 瞬间目标词是否已从该坐标离开。自变量:是否等云端、是否在 keydown 时冻结。因变量:误选率、被换走的词是否为用户原目标。用慢动作录屏比问卷准。实验室网络极快会低估云端插队。

边界

纯离线、且只在整段拼音结束后才出列表的输入法,重排很少。整句解码直到标点才出结果,中途没有可点列表。候选很少(低歧义音节)时位移幅度小。键盘快捷数字键选第 n 项时,重排会让“按 3”对上另一个词,与点击位移是同一机制的键盘版。

怎么落地

  • 指针或手指 down 之后冻结当前列表,直到 up 或取消。
  • 云端结果用“更多”追加,不把已显示的前几位挤走,除非用户明显停顿。
  • 空格上屏以 keydown 瞬间的第一位为准,不要在 keydown 与 keyup 之间换词。
  • 验证:在节流网络下输入高歧义拼音,慢动作看触摸点下去到抬起之间格子里的词是否更换;更换且误上屏即失败。

延伸

  • 同组C6.26.1 候选排序综合词频、上下文语言模型与用户个人历史三类信号 · C6.26.2 学习用户选择会动态提升该词后续排序,但也可能固化错别字的候选 · C6.26.3 多音字或同音词场景下,候选顺序对首选命中率影响巨大
  • 相邻C6.10 自动补全 · C6.12 输入法候选
  • 站内检索candidate jumping · re-ranking · moving target

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C6.26.4