【导读】随着互联网的普及,搜索成为人们最常用的基本功能之一,但这背后的秘密是什么呢?近日,微软公司介绍了他们是其如何应对用户搜索习惯的改变,并开源了支撑 Bing 搜索背后的算法。

作者 | Charlie Waldburger

译者 | 刘畅

责编 | 一一

出品 | AI科技大本营(id:rgznai100)

搜索需求的改变

以前的网页搜索功能十分简单,用户输入几个词,就会返回一系列相应的结果页面。如今,这些用户可能会用手机拍照并将其放入搜索框或使用智能助手来提问,并不需要亲自触摸设备。他们可能会直接输入一个问题,并期待一个对应的回复,而不仅仅是给出多个可能答案的网页列表。

搜索需求的改变对于以往基于索引系统,依赖关键字匹配给出搜索结果的传统搜索引擎是一个挑战。

“关键词搜索算法会在人们提出问题或拍照并询问搜索系统'这是什么?' 时失效”,微软 Bing 搜索和 AI 团队的项目经理 Rangan Majumder 说到。

当然,紧跟用户的搜索偏好并不是新鲜事,自从网络搜索功能出现以来,这一直是一场博弈。但现在,由于人工智能的发展,包括微软在人工智能方向取得进步,越来越容易满足这些不断变化的需求。

“人工智能正在使我们的产品更加符合人的思考习惯,”Majumder 说, “但在以前人们不得不思考,'当我使用计算机进行搜索时,如何输入才能得到自己想要的结果?'”

微软已经制作完成了最先进的人工智能工具之一,并已经在 GitHub 上开源,它还将通过微软的 AI 实验室发布这些工具的用户示例技术和介绍视频

链接

https://www.ailab.microsoft.com/vectorsearchexperiment)

这种被称为空间分治树与图(Space Partition Tree And Graph, SPTAG)的算法,允许用户利用深度学习模型来在毫秒内搜索数十亿条信息(或称矢量)。反过来,这意味着他们可以更快地向用户提供更匹配的结果。

矢量搜索相较于关键字搜索,可以更容易的按照内容得到搜索结果。例如,如果用户键入“巴黎铁塔有多高?”Bing 可以返回一个自然语言结果告诉用户艾菲尔铁塔是 1,063 英尺,即使“搜索查询”中没有出现“Eiffel”这个词,而“tall”这个词也不会出现在结果中。

微软将矢量搜索应用于 Bing 搜索引擎,该技术可以帮助 Bing 更好地理解数十亿网络搜索背后的意图,并在数十亿网页中找到最匹配的结果。

使用矢量进行更好的搜索

矢量的本质上是单词、图像像素或其他数据点的数字表示,它有助于捕获某条数据实际的意义。由于深度学习技术的进步,微软认为可以开始使用这些向量来理解和表示搜索意图。一旦将数据点分配给某条数据,就可以排列或映射这些向量,其中排列地靠前的数字表示相似性。这些近端结果会显示给用户,从而提升搜索结果。当公司工程师注意到用户搜索模式有异常趋势时,Bing 使用的矢量搜索背后的技术就会启动。

“在分析我们的日志时,团队发现搜索查询字符越来越长,”Majumder 说。这表明用户提出了更多问题,对于之前的搜索问题进行更多解释,对关键字搜索的体验不佳,或者在描述抽象事物时“试图像计算机一样思考”。这些对用户来说都是不自然和不方便的。

通过 Bing 搜索,矢量化工作已经扩展到搜索引擎中超过 1500 亿条数据,来提升传统关键字匹配算法的效果,主要包括单个单词、字符、网页代码段、完整查询和其他媒体信息。一旦用户进行搜索后,Bing 可以扫描索引向量并提供最佳的匹配结果。矢量分配使用深度学习技术进行训练,然后持续改进。模型会在搜索后考虑用户最终点击的输入,以便更好地理解搜索的含义。

微软专家表示,虽然矢量化媒体和搜索数据的想法并不新鲜,但最近才有可能在大规模搜索引擎(如 Bing)上使用它。“Bing 每天会处理数十亿个文档,现在的想法是我们可以将这些条目表示为向量,并在 1000 亿个以上的大规模索引中进行搜索,以便在 5 毫秒内找到最匹配结果。”微软 Bing 团队程序经理 Jeffrey Zhu 表示。

为了更直观的描述这一点,Majumder 详细解释道:一堆可以延伸到月球的 1500 亿张的名片中,眨眼之间,可在使用了 SPTAG 算法的 Bing 搜索里一个接一个地找到 10 张不同的名片。

搜索算法 SPTAG 及项目简介

该项目库假设使用向量来表示样本,并且可以使用 L2 距离或余弦距离来比较向量。为查询返回的向量是与查询向量具有最小 L2 距离或余弦距离的向量。

SPTAG 提供两种方法:kd-tree 和相关邻域图(SPTAG-KDT)与平衡 k-means 树和相关邻域图(SPTAG-BKT)。 SPTAG-KDT 在索引构建成本上更便宜,而 SPTAG-BKT 在高维数据中的搜索精度方面更好。

算法流程

SPTAG 的灵感来自 NGS 方法[WangL12]。 它包含两个基本模块:索引构建器和搜索器。 RNG 建立在 k 近邻图[WangWZTG12,WangWJLZZH14]上,用于提高连接度。平衡的 k 均值树是用于替换 kd 树,以避免在高维向量中,kd 树对距离估计不准确带来的束缚。搜索首先在空间分治树中搜索,以找到可以在 RNG 中开始搜索的若干种子数,然后迭代地在树和图中进行搜索。

强调

最新更新:支持在线矢量删除和插入

分布式服务:在多台计算机上搜索

构建

  • 环境配置

  • 安装

它将在代码目录中生成一个 Release 文件夹,其中包含所有构建目标。

它将在构建目录中生成 SPTAGLib.sln。 在 Visual Studio(至少 2015 年版本)中编译ALL_BUILD 项目将生成一个包含所有构建目标的 Release 目录。

验证

运行 Release 文件夹中的 test(或 Test.exe)以验证所有测试。

未来

将矢量用于视觉、音频搜索

Bing 团队表示,他们希望开源产品以用于企业或面向消费者的应用程序,从而识别基于音频片段的语言或者用于图像繁多的服务,例如让人们拍摄鲜花等照片的应用程序,然后确定它是什么类型的花。对于这类应用,缓慢或不相关的搜索体验容易失去用户。

“甚至需要几秒钟的搜索都会使应用程序无法使用,”Majumder 指出。该团队还希望研究人员和学者能够利用它来探索其他领域的搜索突破。“我们才开始在这个深度上探索矢量搜索的真正可能性”。

原文地址:

https://blogs.microsoft.com/ai/bing-vector-search/

https://github.com/microsoft/SPTAG


5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心隆重召开,峰会将围绕人工智能领域,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。

更多重磅嘉宾请识别海报二维码查看。目前会议8折预售票抢购中,点击阅读原文即刻抢购。添加小助手微信15101014297,备注“CTA”,了解票务以及会务详情。

推荐阅读

  • 商汤“变法”:推中小学AI教材,mini自驾车,要打造AI时代的「清明上河图」

  • 转行AI成为技术大牛,你需要理解这两项技术!

  • 干货 | 超实用的PyTorch常用代码段合集

  • 直接上手!不容错过的Visual Studio Code十大扩展组件

  • Rust今天4岁啦, 为什么越来越多的知名项目用Rust来开发?

  • 英特尔再爆重大芯片漏洞,苹果谷歌微软相继中招!

  • 刺激!华为程序员年薪200万 ?真相让人心酸!

  • 腾讯面试:一条SQL语句执行得很慢的原因有哪些?

  • 程序员专属小情话,哎呦,不错哦!| 程序员有话说

  • 普通家庭走出信息学才子,抱病参赛夺世界信奥亚军 | 人物志

千亿级照片,毫秒间匹配最佳结果,微软开源Bing搜索背后的关键算法相关推荐

  1. 千亿级照片,毫秒间匹配最佳结果,微软开源 Bing 搜索背后的关键算法

    作者 | Charlie Waldburger 译者 | 刘畅 责编 | 一一 出品 | AI科技大本营(id:rgznai100) [导读]随着互联网的普及,搜索成为人们最常用的基本功能之一,但这背 ...

  2. 千亿级照片,毫秒间匹配最佳结果,微软开源 Bing 搜索背后的关键算法!

    随着互联网的普及,搜索成为人们最常用的基本功能之一,但这背后的秘密是什么呢?近日,微软公司介绍了他们是其如何应对用户搜索习惯的改变,并开源了支撑 Bing 搜索背后的算法. 作者 | Charlie ...

  3. kafka集群为什么需要三个节点_每天处理千亿级日志量,Kafka是如何做到的?

    之前为大家分享了不少 Kafka 原理解析类的干货,今天咱们一起来看看 360 基于 Kafka 千亿级数据量的深度实践! 图片来自 Pexels 本文主要围绕如下内容分享: 消息队列选型 Kafka ...

  4. 牛年伊始,鹏欣携手MTC,打造中国千亿级肉牛产业航母

    3月16日,上海鹏欣(集团)有限公司(以下简称"鹏欣")与麦汇信息科技有限公司(以下简称"MTC")携手举办的鹏欣云南肉牛产业SAP项目启动大会在昆明总部金家大 ...

  5. SkyWalking优化-打造千亿储能、毫秒查询的链路追踪系统

    目录 1.开篇 2.为什么需要全链路监控 3.为什么选择Skywalking 4.预研阶段 4.1 架构和原理 4.2 副作用 5.POC阶段 5.1 对接发布系统 5.2 完善插件补全链路 5.3压 ...

  6. Kylin 在满帮集团千亿级用户访问行为分析中的应用

    2019 年 7 月 12 日,国内首届以 Apache Kylin 为主题的大数据领域的前沿盛会 Kylin Data Summit 在上海落幕.在本次大会的制造业分论坛上,来自满帮集团的陈雅婕的分 ...

  7. 千亿级数量下日志分析系统的技术架构选型

     
 随着数据已经逐步成为一个公司宝贵的财富,大数据团队在公司往往会承担更加重要的角色.大数据团队往往要承担数据平台维护.数据产品开发.从数据产品中挖掘业务价值等重要的职责.所以对于很多大数据工程师 ...

  8. 千亿级服务器监控数据存储实践

    千亿级服务器监控数据存储实践 背景 近几年开源的大数据处理系统已经逐步发展到一个比较成熟的阶段了,各类大数据处理的场景都有了相应的解决方案,如同 mysql 在当今互联网公司中的关系数据存储广泛应用地 ...

  9. 小龙虾消费大数据:规模千亿级 带动500多万就业

    爬过风口,千亿级小龙虾经济常态化 小龙虾以其自身特点满足了食客饮食.社交.娱乐等各方面需求,市场广阔:产业经营模式的多元化趋势明显,业态逐渐丰富:再加之政府产业政策的大力扶持和资本的涌入,产业为餐饮经 ...

最新文章

  1. Linux(Windows)下如何改变网卡的LinkSpeed工作模式
  2. vs2019功能介绍_MFC界面库BCGControlBar v30.0新功能详解:支持VS 2019
  3. POJ - 2400 Supervisor, Supervisee(KM+打印方案)
  4. 在什么时候需要使用“常引用”?
  5. python学习04
  6. 关于页面布局间距使用的经验之谈
  7. make_pair 简单使用
  8. DataContractJsonSerializer 没有using 类库找不到
  9. Javascript 也玩多线程
  10. NodeMCU-ESP8266开发(VSCODE+PlatformIO+Arduino框架):第5篇--Blinker_MIOT_MULTI_OUTLE(点灯科技APP+小爱同学控制插座多个插孔)
  11. Java 文件操作#常用io流方法解读
  12. 北通手柄连接电脑没反应_北通手柄连接电脑教程
  13. 墨西哥总统:被拆掉两次的亭子
  14. Visual Paradigm创建Java类图时如何绘制实线箭头?
  15. 第四周项目三计算并联电阻
  16. woj 1537 Stones I
  17. checkbox 选中未选中赋值 以及是否选中状态判断
  18. 微服务的4个设计原则和19个解决方案 1
  19. L0范式、L1范式、L2范式解释通俗版
  20. 数码管显示电路的设计

热门文章

  1. 综合技术 --@Autowired和@Resource
  2. java参数传递:值传递还是引用传递
  3. DreamWeaver做ASP 第13页
  4. php数据分析引擎,PHP数据分析引擎计算余弦相似度算法示例
  5. 如何发表一篇好的文章
  6. php删除空标签_PHP如何去除Html所有标签、空格以及空白
  7. 暑期集训3:几何基础 练习题G: HDU - 1052
  8. bzoj 4871: [Shoi2017]摧毁“树状图”
  9. CodeForces 157A Game Outcome
  10. PC机安装android apk | adb install -r