当前位置: 编码机 >> 编码机优势 >> 微软揭露目前规模最大的语言拼写校正系统S
微软开发了一个称为的系统,官方提到,这是有史以来覆盖最多种语言,并且准确性最高的拼写校正系统,Speller能够校正多种语言的拼写,进而改善Bing用户的搜寻结果。
微软搜寻引擎Bing服务全球用户,接受多种语言的查询,而在用户提交的查询中,约有15%的存在拼写错误,而使用带有拼写错误的数据查询,便会得到错误的答案,降低查询结果的品质,因此拼写校正是Bing搜寻栈中排序很前面的组件,因为能够有效改善所有下游搜寻组件的结果。
在很长一段时间,微软都只提供大约20种语言的拼写校正,而其他语言的用户,则必须手动修正错误查询,或是接受较差的搜寻结果,而微软为了要提升Bing的搜寻品质,将当前的拼写校正服务扩展至多种语言,并且要为这些语言,提供与原本20种语言相同的校正品质。但微软很快就发现这是一个极困难的目标,因为模型需要有大量的数据来训练每一种语言的模型,更别说要收集种语言的数据,势必付出难以计数的时间和金钱。
微软克服了这个困难,推出了高精确度和高召回率的大规模多语言拼写校正模型,这些模型被统称为Speller,微软主要使用了零样本学习(Zero-ShotLearning)以及大规模预训练技术,来达成这样的目标。
传统拼写校正解决方案,都是使用网络上的数据,来强化语言模型,但这种方法仅对存在大量数据的语言有效,对於网络只有少数数据,用户回馈也少的语言,要收集足够的训练数据,是一个大挑战,因此微软认为,这些语言模型不能只仰赖训练数据,来学习某种语言的拼写。Speller的基础是使用语言家族的概念,以多种语言共享的相似性,来组成更大一组的语言。
而零样本则是另一个概念,可以让语言模型更准确地学习和校正拼写,不需要特定语言的标注训练数据,微软解释,这就像是人们自动学习了德语、荷兰语、南非荷兰语、苏格兰语和卢森堡语的拼写,这是Speller中的关键组件,可以将拼写校正扩展到非常少,甚至是没有数据的语言。
虽然目前BERT、UniLM和DeBERTa等大型Transformer网络在自然语言处理上,已经有很大的进步,能够用於下一句预测和翻译等工作,但微软提到,拼写是完全不同的语言任务。广义上来说,拼写存在2种错误,一种是单词不存在於特定语言词汇表中,称为非字词错误(Non-WordError),另一种是单词本身有效,但是不适用於整体文意,称为真字词错误(Real-WordError),这两个错误都是字符层级的变异,与目标字词存在合理的编辑距离,因此拼写校正的核心,便是建立错误模型和语言模型。
整体来说,拼写校正是一个序列到序列的问题,要将拼写错误的文字,转换成为正确的形式,把错误看作是杂讯的话,就可以把拼写校正工作,当作是将损毁的文字,转换为原始文字的降噪过程,微软采用类似脸书的BART技术,这是一个适用於自然语言生成、翻译和理解的单词等级降噪自动编码预训练方法。
微软设计了杂讯函数,来模仿旋转、删除和替换等常见拼写错误,进而减少机器学习人工标签的需求,特别是对没有训练数据的语言来说特别有用,进而获得预训练模型,并且对模型进行微调,就可得到适用於特定语言的零样本或是少量样本学习。
使用了Speller系统,可有效降低30%在Bing中没有结果的页面数,用户需要手动重组查询的次数也减少5%,而且也大幅增加了用户点击拼写建议的次数,从原本个位数百分比上升到67%,用户点击结果页面中任意连接的机率,也从原本的个位数百分比,上升到了70%。微软提到,这些数字说明了Speller的效果。