Press "Enter" to skip to content

“进化”的搜索方式:揭秘微软语义搜索背后的技术

编者按:作为一项云搜索服务,Azure 认知搜索集成了强大的 API 和工具,帮助开发人员构建丰富的搜索体验。不止于现状,微软的研究员们为 Azure 认知搜索“加持”了语义搜索功能,可以让搜索引擎拥有语义排序、语义摘要、语义高亮、语义问答以及自动拼写校正等能力。本文将揭晓这些神奇功能背后的核心技术,涉及关键词包括预训练、图网络、多任务等。本文编译自微软研究院博客“The science behind semantic search: How AI from Bing is powering Azure Cognitive Search”。

 

智能化的语义搜索是搜索引擎追求的终极目标。多年来,微软的研究人员在持续探索可以实现智能化语义搜索的方法,并于近日将相关的研究成果集成到了微软 Azure 云计算平台的认知服务中——Azure 认知搜索(Azure Cognitive Search),为预览版中的所有 Azure 用户提供了语义搜索功能。这其中技术核心部分所涉及的很多研究成果都来自于微软亚洲研究院。

 

Azure 认知搜索是一项云搜索服务,它为开发人员提供了 API 和工具,以便他们基于 Web、移动端和企业应用程序中的专用异类内容,构建丰富的搜索体验。Azure 认知搜索具有多个组件,包括用于检索和查询的 API、通过 Azure 数据获取实现的无缝集成、与 Azure 认知服务的深度集成,以及用户所拥有的检索内容的持久存储。Azure 认知搜索默认使用的是信息检索常用的 BM25 算法。

 

为了提升微软必应(Bing)搜索的相关性,微软的研究和开发人员此前就通过基于 Transformer 的语言模型对必应搜索进行了改进。这些改进让搜索引擎不仅可以用关键词进行匹配,还可以通过使用单词和内容背后的语义来进行搜索,而这种转换的能力就是语义搜索。

 

 

将语义搜索功能集成到 Azure 认知搜索中所实现的效果

 

语义搜索显着提高了必应搜索的搜索结果质量。但是微软的研究和开发团队在这个过程中发现要想最大限度地发挥 AI 的威力,需要大量的专业人才来集成和部署 AI 规模化的相关技术和产品,比如,对大规模基于 Transformer 的语言模型进行预训练、在不同的任务中进行多任务微调、在保证质量损失最小的情况下将大模型蒸馏成可部署的模型,等等。而这样的专业人才团队并不是每个公司都可以承担得起的。秉持着赋能每一人每一组织的公司理念,微软通过将相关研究成果集成到 Azure 认知搜索中,来降低人们使用 AI 规模化技术的门槛。

 

Azure 认知搜索中的语义搜索功能

 

下面,我们来详细了解一下 Azure 认知搜索中的语义搜索功能。

 

语义排序:大幅提高相关性。传统的搜索方式都是基于关键词对结果进行排序,而基于 Transformer 的语义排序引擎则能够理解文本背后的含义。在 A/B 测试中,语义搜索功能提高了对搜索结果的点击率(2.0%),对包含三个以上单词的搜索结果,其点击率也提高了4.5%。

 

 

通过语义排序(右)来提高相关性的示例

 

语义摘要:提取关键信息。相关性只是一方面,搜索结果中的标题和摘要也非常重要。好的标题和摘要能够让用户“一眼”看出结果是不是自己想要的。

 

语义高亮:机器阅读理解。语义高亮的简单理解是:给一段搜索结果画重点,并用文字加粗的形式进行展示。通过语义高亮,用户可以直接获得所需的答案,或者通过快速扫描结果页面就可以查找到所需的文档,甚至直接获得一段摘要。使用机器阅读理解能够帮助找到一段话的重点,从而大幅度提升阅读效率。

 

 

使用语义搜索实现提取摘要、语义强调的示例

 

语义问答:快速答案。疑问句查询是搜索引擎经常遇到的搜索方式,这背后用户往往想要优先获得一个简短、确切的答案,而不是文档。语义搜索可以通过机器学习阅读语料库中的所有文档,然后进行总结,并将答案置顶展示。

 

 

语义搜索提取文档重点,展示快速答案

 

自动拼写校正。根据数据统计,用于输入的10%到15%的句子都存在拼写错误,错误的拼写会非常影响搜索结果的质量,而集成语义搜索的搜索引擎则可以实现自动拼写纠正。

 

背后的技术:预训练、图网络、多任务….

 

以上功能的实现,离不开微软研究院在 NLP 和语义搜索方面取得的突破性进展。研究人员和微软内部其他 AI 团队合作开发了一系列神经网络模型,不仅在 SQuAD 、GLUE 以及 SuperGLUE 等多个业界基准上获得了最好的结果,还积极布局了应用的落地,实现了微软相关产品性能的提升。

 

下面是微软实现语义搜索所用到的具体技术:

 

统一预训练语言模型:UniLM & UniLM v2

 

在 Azure 认知搜索中,预训练语言模型利用的是来自微软亚洲研究院的统一预训练语言模型 UniLM(Unified Language Model Pre-training),该模型是第一个统一的在语言理解和语言生成的基准上均表现优异的预训练模型。UniLM 涵盖了两大关键性的技术创新:一是,提出了统一的预训练框架,使得同一个模型可以同时支持自然语言理解和自然语言生成任务,而之前大部分的预训练模型都主要针对自然语言理解任务。第二大创新是,提出了部分自回归预训练范式和伪掩码语言模型,从而可以更高效地训练更好的自然语言预训练模型。这项研究成果的论文是“Unified Language Model Pre-training for Natural Language Understanding and Generation” ,已被 NeurIPS 2019 收录。

 

微软亚洲研究院的研究员在 ICML 2020 上还提出了一种新的训练 UniLM 的训练框架 Pseudo-Masked Language Models for Unified Language Model Pre-Training,“统一预训练伪掩码语言模型”,简称 UniLM v2。UniLM v2 使用传统的掩码通过自编码方式,学习被掩 token 与上下文的关系,并且使用伪掩码通过部分自回归方式,去学习被掩 token 之间的关系。必应搜索中的技术在2019年初是基于 BERT 来实现的,目前已经通过使用 UniLM v2 来提高其搜索质量。

 

 

统一预训练语言模型架构

 

机器阅读理解:多粒度阅读理解框架

 

机器阅读理解的任务(MRC)是从文档 中找到给定问题的简短答案(如短语)或长答案(如段落)。由于最大长度的限制,所以大多数现有的 MRC 方法在答案提取的过程中将文档视为了单独的段落,而没有考虑它们之间的内在关系。

 

为了更好地为 MRC 建模,微软亚洲研究院的研究员们提出了基于图注意力网络和预训练语言模型的多粒度阅读理解框架,并且通过联合训练来建模两个粒度答案之间的联系。在这个框架中,首先会根据文档的层次性质,例如,段落、句子和符号等,为每个文档构建一个图网络,之后使用图注意力网络来学习不同层次的表示,最后会得到一系列结构化的表示,并汇总到答案选择模块得到答案。其中,长答案和短答案的提取任务可以一起训练,从而相互促进。

 

以上研究的论文为“Document Modeling with Graph Attention Networks for Multi-grained Machine Reading Comprehension” ,已被 ACL 2020 收录,并且已经用于必应搜索的大部分问题回答任务。

 

论文链接:

 

https://www.microsoft.com/en-us/research/publication/document-modeling-with-graph-attention-networks-for-multi-grained-machine-reading-comprehension/

 

多任务深度神经网络:MT-DNN

 

微软研究院和 Microsoft Dynamics 365 AI 团队合作提出了一个新的多任务深度神经网络模型——MT-DNN。此模型是第一个在 GLUE 排行榜上超过人类表现的 AI 模型,它集合了 BERT 的优点,并在10大自然语言理解任务上超越了 BERT,在多个流行的基准测试中创造了新的 SOTA 结果。

 

MT-DNN 结合了多任务学习和语言模型预训练,用于跨多个自然语言理解任务学习语言表示。MT-DNN 不仅利用了大量的跨任务数据,而且还受益于正则化效应(regularization effect ),这种正则化效应提高了模型的泛化能力,使其在面对新任务和领域时表现优异。语义搜索中的模型就是利用了跨各种搜索任务的多任务学习来最大化其性能。

 

这项研究的论文 “Multi-Task Deep Neural Networks for Natural Language Understanding”,发表在了 ACL 2019 上。

 

论文链接:

 

https://www.microsoft.com/en-us/research/publication/multi-task-deep-neural-networks-for-natural-language-understanding-2/

 

深度自注意力知识蒸馏:MiniLM

 

大规模预训练模型在自然语言理解和生成任务中表现优异,但巨大的参数量和计算成本让其很难直接部署到线上产品中。为此,微软亚洲研究院提出了一种将基于 Transformer 的预训练大模型压缩成预训练小模型的通用方法 MiniLM ——深度自注意力知识蒸馏(Deep Self-Attention Distillation)。其核心思想是最大程度上将预训练 Transformer 模型中非常重要的自注意力(Self-Attention)知识迁移给小模型。

 

MiniLM 在单语言和多语言模型上进行了压缩实验,均取得了不错的效果。Azure 认知搜索的语义搜索解决方案使用了 MiniLM 技术,其效果是,只需原来大模型20%的成本,就可保持95%的准确率。

 

 

MiniLM:深度自注意力知识蒸馏(Deep Self-Attention Distillation)

 

语义搜索背后的人工智能模型非常强大,并且已经在基准测试和必应搜索上得到了验证。通过将语义搜索集成到 Azure 认知搜索中,微软在普及高级机器学习技术,将 AI 普及化的道路上又迈出了重要一步。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注