微软开源Bing搜索背后的关键算法
微软今天宣布开源了一项 Bing 搜索背后的关键算法 —— SPTAG,它使 Bing 能够快速将搜索结果返回给用户。
仅在几年前,网络搜索很简单,用户输入几个关键词然后浏览结果页面。现如今,这些用户可能会在手机上拍照并将其放入搜索框中,或使用智能助手提问,而无需亲自触摸设备。他们也可能会输入一个问题并期待一个实际的答复,而不是一个可能答案的页面列表。
SPTAG (Space Partition Tree And Graph,空间划分树和图)是分布式近似最近邻域搜索(ANN)库的核心,为大规模矢量搜索场景提供高质量矢量索引构建、搜索和分布式在线服务工具包。
利用 SPTAG 算法作为开源 Python 库的核心,Bing 能够在几毫秒内搜索数十亿条信息。
当然,矢量搜索本身并不是一个新想法,但微软所做的是将这一概念应用于深度学习模型。
首先,团队采用预先训练的模型并将数据编码到矢量中,其中每个矢量代表一个字或像素。然后使用新的 SPTAG 库生成向量索引。随着查询的进入,深度学习模型将该文本或图像转换为向量,该库紧接着就能在索引中找到最相关的向量。
微软表示,SPTAG 库迄今已对超过 1500 亿条数据进行了编目,包括单个单词、字符、网页代码段和完整查询。
“Bing 每天处理数十亿个文档,现在的想法是将这些条目表示为向量,并搜索这个 1000 亿以上向量的巨大索引,以便在 5 毫秒内找到最相关的结果”。
通过将矢量搜索应用到深度学习模型,微软让 Bing 搜索引擎能更快地向用户提供更相关的结果。
例如在 Bing 上搜索“巴黎的塔楼有多高?”,搜索引擎会告诉你埃菲尔铁塔高 324 米(1063 英尺),尽管在搜索关键词中并没有出现“埃菲尔”(Eiffel)这个单词。
Bing 团队期望开源 SPTAG 可用于构建可识别基于音频片段所说语言的应用,或用于让用户拍摄植物照片并识别属和物种的服务。
该库现已开放使用,并提供构建和搜索这些分布式矢量索引的所有工具。
码云极速下载地址
https://gitee.com/mirrors/sptag
开源中国征稿啦!
开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。
现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿
开源让世界更美好↓↓↓