微軟剛剛宣布開源一項 Bing 搜索背后的關鍵算法——SPTAG,它使 Bing 能夠快速將搜索結果返回給用戶。
僅在幾年前,網絡搜索很簡單,用戶輸入幾個關鍵詞并瀏覽結果頁面。 今天,相同的用戶可能會在手機上拍照并將其放入搜索框中,或使用智能助手提問,而無需親自觸摸設備。他們也可能會輸入一個問題并期待一個實際的答復,而不是一個可能答案的頁面列表。
SPTAG (Space Partition Tree And Graph)是分布式近似最近鄰域搜索(ANN)庫,為大規模矢量搜索場景提供高質量矢量索引構建、搜索和分布式在線服務工具包。利用 SPTAG 算法作為開源 Python 庫的核心,Bing 能夠在幾毫秒內搜索數十億條信息。
當然,矢量搜索本身并不是一個新想法,微軟所做的是將這一概念應用于深度學習模型。
首先,團隊采用預先訓練的模型并將數據編碼到矢量中,其中每個矢量代表一個字或像素。然后使用新的 SPTAG 庫生成向量索引。隨著查詢的進入,深度學習模型將該文本或圖像轉換為向量,該庫緊接著就能在索引中找到最相關的向量。
微軟表示,SPTAG 庫迄今已對超過 1500 億條數據進行了編目,包括單個單詞、字符、網頁代碼段和完整查詢。
“Bing 每天處理數十億個文檔,現在的想法是將這些條目表示為向量,并搜索這個 1000 億以上向量的巨大索引,以便在 5 毫秒內找到最相關的結果”。
Bing 團隊期望開源 SPTAG 可用于構建可識別基于音頻片段所說語言的應用,或用于讓用戶拍攝植物照片并識別屬和物種的服務。
該庫現已開放使用,并提供構建和搜索這些分布式矢量索引的所有工具。