编者按:作为一项云搜索服务,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 普及化的道路上又迈出了重要一步。

更多干货请点击:
2021年3月热门报告盘点&下载(文末有福利)【视频】《华为100张面孔》(三集全)推荐系统解构.pdf(附下载链接)小米用户画像实战.pdf(附下载链接)短视频爆粉表现指南手册.pdf(附下载链接)美团大脑系列之:商品知识图谱的构建及应用推荐系统架构与算法流程详解用户画像和精准化平台系统实践
关注我们

省时查报告

专业、及时、全面的行研报告库

长按并识别关注

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

  1. 揭秘高效协作工具背后的技术架构

    揭秘高效协作工具背后的技术架构 发表于2015-12-08 10:50| 1731次阅读| 来源CSDN| 4 条评论| 作者蒲婧 CTOCTO俱乐部CTO讲堂管理实践团队协作Worktile wid ...

  2. 阿里云架构师张先国:揭秘ECS倚天实例背后的技术

    11 月 15 日,阿里云 ECS 倚天实例正式开始商业化.此前,阿里巴巴宣布阿里云未来两年 20% 的新增算力将使用自研 CPU.11 月 5 日,云栖大会"倚天开启云原生算力新时代&qu ...

  3. 微软黑科技背后的技术路径 | 极客公园超频之旅

    原文处处:http://www.geekpark.net/topics/216686 九月,极客公园一年一度前往美国的「超频之旅」又来了.今年,我们带着腾讯创始人之一张志东,大众点评创始人张涛以及数位 ...

  4. 感知算法、规划地图……波士顿动力揭秘Atlas机器人跑酷背后的技术

    来源:机器之心,编辑:nhyilin 仅用于学术分享,版权属于原作者 几天前,波士顿动力公司放出了双足人形机器人 Atlas 的最新酷炫视频.这次,Atlas 展示了它的最新技能「跑酷」. 在一系列倾 ...

  5. 揭秘北京2022冬奥会背后的技术

    点击上方"LiveVideoStack"关注我们 翻译 | Alex 技术审校 | 徐嵩 本文来自Wowza,作者为Barry Owen. 冬奥技术  冬奥特辑  #003# 虽然 ...

  6. 【CTO讲堂】揭秘高效协作工具背后的技术架构

    如何做到基于Web的跨平台设计?实时消息系统的设计是怎样的?Worktile的整个技术架构是什么样的,都用到了哪些技术?本文是Worktile联合创始人兼CTO李会军在CSDN打造的CTO讲堂的干货分 ...

  7. 微软学术搜索项目 10个版本的历程

    这是我在微软亚洲研究院参与的项目之一, 从 2009 年秋天开始, 我们小组把它从一个研究原型发展为涵盖全学科的学术搜索门户. 它索引了 4千万论文, 2千万作者, 6 大实体类型, 8 种数据可视化 ...

  8. 知识图谱入门 【八】- 语义搜索

    知识图谱入门 [一]- 认识图谱技术 知识图谱入门 [二]- 知识表示与知识建模 知识图谱入门 [三]- 知识抽取 知识图谱入门 [四]- 知识挖掘 知识图谱入门 [五]- 知识存储 知识图谱入门 [ ...

  9. 07实战之电商网站商品管理:多种搜索方式

    作为准备工作,又重新恢复了之前的3个商品文档 本节主要演示多种搜索方式,关于各种搜索语法后续会详细讲解. 1.query string search 之前也用过这个命令 , 搜索全部商品: GET / ...

最新文章

  1. 实验研究信标无线电能输出功率的因素
  2. Openlayers中使用Cluster实现点位元素重合时动态聚合与取消聚合
  3. TFboys:使用Tensorflow搭建深层网络分类器
  4. 关于编译错误 fatal error C1083: Cannot open precompiled header file
  5. asp.net javascrip获取session的值_一篇文章搞定 Django Cookie 与 Session
  6. python输出字体的大小_Toby的Python笔记 | 预备知识:安装openpyxl学做电子表格
  7. activiti脚本任务_Activiti中的安全脚本如何工作
  8. java访问类的方法_Java:如何从另一个类访问方法
  9. 标识为普通SQL语法
  10. Linux下搭建mysql主从服务器
  11. CSS3控制背景图片大小
  12. java权限精确到按钮_搞定权限设计1-页面按钮控制(精确到某个用户和某个按钮)...
  13. 2分钟学会小程序中使用vant组件库
  14. java多态 -- 猫狗案列
  15. exchange服务器没有响应,exchange服务没法启动!急!
  16. 漏洞复现:DNS 缓存投毒的经典—— 2008年 kaminsky 漏洞
  17. iOS 判断当前键盘为九宫格
  18. 智能车入门——‘教程引导’ <新手从零做车>
  19. [湖南大学程序设计实训训练作业一]9.二叉树遍历,从前序、中序到后序(二叉树呀,面试必考哦!)
  20. 51单片机控制二相四线步进电机

热门文章

  1. SQL从入门到入魔之初入门
  2. python 基础简单猜数游戏
  3. 数据:Uniswap V3的24小时交易量已超过2亿美元
  4. 推特上马斯克BTC赠送骗局已获利10枚BTC,价值超55万美元
  5. TrustToken向Curve上tfTUSD贷款池新投入2400万美元资金
  6. SAP License:HP面试手记
  7. SAP License:家庭主妇与ERP
  8. 使用 Spark ML Pipeline 进行机器学习
  9. HTTPBrowserCapabilities---在asp.net中显示浏览器属性
  10. @ font-face 引入本地字体文件