C6.26.1IME ranking signal fusion设计研究
候选排序综合词频、上下文语言模型与用户个人历史三类信号
别名: 候选排序信号 · 词频与语言模型 · 个性化候选
概念解释
拼音、注音、罗马字等输入把同一串按键展开成许多同音词。候选条的顺序不是随意摆放,而是把三类信号合成一个分数:词频(语料里这个词有多常见)、上下文语言模型(前面已上屏的词让哪个后继更可能)、个人历史(这个用户最近选过什么)。排序引擎决定哪个词出现在空格就能上屏的第一位。讨论的是分数怎么合成,不是候选窗盖住了什么,也不是输入法切没切换。
机制
词频给出无语境先验:的 永远压过生僻同音字。上下文把先验改成条件概率:前面是“北京”,shi 更可能是“市”而不是“是”。个人历史再把条件概率往用户习惯拉:医生打 tang 更常选“糖”而不是“唐”。三者冲突时,实现用加权、插值或学习到的融合器裁决。云端模型还可能注入实时热词。第一位命中率取决于融合是否适合当前领域;权重写死在新闻语料上,到医学记录里就会把正确术语压到翻页之后。空格键绑定“第一候选”,所以融合错误直接变成错字,而不只是名单难看。
怎么研究
用带标注的拼音–汉字平行数据,把融合器拆开:只用词频、词频+上下文、再加个人历史,比较 top-1 命中和平均选择位次。领域要分开(聊天、新闻、病历、代码注释)。个人历史需要冷启动与稳态两段。离线语料上的困惑度不能代替上屏正确率——用户看到的是排序,不是概率值。注意训练用户与测试用户不要重叠,以免把记忆过拟合报成通用上下文能力。
边界
生僻字、古诗文、化学式几乎没有词频和用户历史,融合会退化成拼音全等匹配,排序失去意义。英文输入的自动完成也有类似三信号,但候选粒度是词而不是同音字。离线输入法去掉云端热词后,突发事件的新词会长期排在后面。隐私模式若清空个人历史,只剩词频与通用上下文。
怎么落地
- 垂直领域产品提供领域词库,不要假设通用地名聊天模型能给专业术语第一位。
- 新用户冷启动时降低个人历史权重,避免前几次误选永久压过词频。
- 空格上屏前允许用户看到第一候选的词,而不是盲按。
- 验证:在目标领域文本上关闭用户历史,只开词频与上下文,记录 top-1;再打开该领域用户历史,看术语是否前移而聊天口语是否被带偏。