隨著互聯(lián)網(wǎng)的普及,搜索成為人們最常用的基本功能之一,但這背后的秘密是什么呢?近日,微軟公司介紹了他們是其如何應(yīng)對用戶搜索習(xí)慣的改變,并開源了支撐 Bing 搜索背后的算法。
搜索需求的改變
以前的網(wǎng)頁搜索功能十分簡單,用戶輸入幾個詞,就會返回一系列相應(yīng)的結(jié)果頁面。如今,這些用戶可能會用手機拍照并將其放入搜索框或使用智能助手來提問,并不需要親自觸摸設(shè)備。他們可能會直接輸入一個問題,并期待一個對應(yīng)的回復(fù),而不僅僅是給出多個可能答案的網(wǎng)頁列表。
搜索需求的改變對于以往基于索引系統(tǒng),依賴關(guān)鍵字匹配給出搜索結(jié)果的傳統(tǒng)搜索引擎是一個挑戰(zhàn)。
“關(guān)鍵詞搜索算法會在人們提出問題或拍照并詢問搜索系統(tǒng)'這是什么?' 時失效”,微軟 Bing 搜索和 AI 團隊的項目經(jīng)理 Rangan Majumder 說到。
當(dāng)然,緊跟用戶的搜索偏好并不是新鮮事,自從網(wǎng)絡(luò)搜索功能出現(xiàn)以來,這一直是一場博弈。但現(xiàn)在,由于人工智能的發(fā)展,包括微軟在人工智能方向取得進步,越來越容易滿足這些不斷變化的需求。
“人工智能正在使我們的產(chǎn)品更加符合人的思考習(xí)慣,”Majumder 說, “但在以前人們不得不思考,'當(dāng)我使用計算機進行搜索時,如何輸入才能得到自己想要的結(jié)果?'”
微軟已經(jīng)制作完成了最先進的人工智能工具之一,并已經(jīng)在 GitHub 上開源,它還將通過微軟的 AI 實驗室發(fā)布這些工具的用戶示例技術(shù)和介紹視頻
這種被稱為空間分治樹與圖(Space Partition Tree And Graph, SPTAG)的算法,允許用戶利用深度學(xué)習(xí)模型來在毫秒內(nèi)搜索數(shù)十億條信息(或稱矢量)。反過來,這意味著他們可以更快地向用戶提供更匹配的結(jié)果。
矢量搜索相較于關(guān)鍵字搜索,可以更容易的按照內(nèi)容得到搜索結(jié)果。例如,如果用戶鍵入“巴黎鐵塔有多高?”Bing 可以返回一個自然語言結(jié)果告訴用戶艾菲爾鐵塔是 1,063 英尺,即使“搜索查詢”中沒有出現(xiàn)“Eiffel”這個詞,而“tall”這個詞也不會出現(xiàn)在結(jié)果中。
微軟將矢量搜索應(yīng)用于 Bing 搜索引擎,該技術(shù)可以幫助 Bing 更好地理解數(shù)十億網(wǎng)絡(luò)搜索背后的意圖,并在數(shù)十億網(wǎng)頁中找到最匹配的結(jié)果。
使用矢量進行更好的搜索
矢量的本質(zhì)上是單詞、圖像像素或其他數(shù)據(jù)點的數(shù)字表示,它有助于捕獲某條數(shù)據(jù)實際的意義。由于深度學(xué)習(xí)技術(shù)的進步,微軟認為可以開始使用這些向量來理解和表示搜索意圖。一旦將數(shù)據(jù)點分配給某條數(shù)據(jù),就可以排列或映射這些向量,其中排列地靠前的數(shù)字表示相似性。這些近端結(jié)果會顯示給用戶,從而提升搜索結(jié)果。當(dāng)公司工程師注意到用戶搜索模式有異常趨勢時,Bing 使用的矢量搜索背后的技術(shù)就會啟動。
“在分析我們的日志時,團隊發(fā)現(xiàn)搜索查詢字符越來越長,”Majumder 說。這表明用戶提出了更多問題,對于之前的搜索問題進行更多解釋,對關(guān)鍵字搜索的體驗不佳,或者在描述抽象事物時“試圖像計算機一樣思考”。這些對用戶來說都是不自然和不方便的。
通過 Bing 搜索,矢量化工作已經(jīng)擴展到搜索引擎中超過 1500 億條數(shù)據(jù),來提升傳統(tǒng)關(guān)鍵字匹配算法的效果,主要包括單個單詞、字符、網(wǎng)頁代碼段、完整查詢和其他媒體信息。一旦用戶進行搜索后,Bing 可以掃描索引向量并提供最佳的匹配結(jié)果。矢量分配使用深度學(xué)習(xí)技術(shù)進行訓(xùn)練,然后持續(xù)改進。模型會在搜索后考慮用戶最終點擊的輸入,以便更好地理解搜索的含義。
微軟專家表示,雖然矢量化媒體和搜索數(shù)據(jù)的想法并不新鮮,但最近才有可能在大規(guī)模搜索引擎(如 Bing)上使用它?!癇ing 每天會處理數(shù)十億個文檔,現(xiàn)在的想法是我們可以將這些條目表示為向量,并在 1000 億個以上的大規(guī)模索引中進行搜索,以便在 5 毫秒內(nèi)找到最匹配結(jié)果?!蔽④?Bing 團隊程序經(jīng)理 Jeffrey Zhu 表示。
為了更直觀的描述這一點,Majumder 詳細解釋道:一堆可以延伸到月球的 1500 億張的名片中,眨眼之間,可在使用了 SPTAG 算法的 Bing 搜索里一個接一個地找到 10 張不同的名片。
搜索算法 SPTAG 及項目簡介
該項目庫假設(shè)使用向量來表示樣本,并且可以使用 L2 距離或余弦距離來比較向量。為查詢返回的向量是與查詢向量具有最小 L2 距離或余弦距離的向量。
SPTAG 提供兩種方法:kd-tree 和相關(guān)鄰域圖(SPTAG-KDT)與平衡 k-means 樹和相關(guān)鄰域圖(SPTAG-BKT)。 SPTAG-KDT 在索引構(gòu)建成本上更便宜,而 SPTAG-BKT 在高維數(shù)據(jù)中的搜索精度方面更好。
算法流程
SPTAG 的靈感來自 NGS 方法[WangL12]。 它包含兩個基本模塊:索引構(gòu)建器和搜索器。 RNG 建立在 k 近鄰圖[WangWZTG12,WangWJLZZH14]上,用于提高連接度。平衡的 k 均值樹是用于替換 kd 樹,以避免在高維向量中,kd 樹對距離估計不準(zhǔn)確帶來的束縛。搜索首先在空間分治樹中搜索,以找到可以在 RNG 中開始搜索的若干種子數(shù),然后迭代地在樹和圖中進行搜索。
強調(diào)
最新更新:支持在線矢量刪除和插入
分布式服務(wù):在多臺計算機上搜索
構(gòu)建
環(huán)境配置
安裝
它將在代碼目錄中生成一個 Release 文件夾,其中包含所有構(gòu)建目標(biāo)。
它將在構(gòu)建目錄中生成 SPTAGLib.sln。 在 Visual Studio(至少 2015 年版本)中編譯ALL_BUILD 項目將生成一個包含所有構(gòu)建目標(biāo)的 Release 目錄。
驗證
運行 Release 文件夾中的 test(或 Test.exe)以驗證所有測試。
未來
將矢量用于視覺、音頻搜索
Bing 團隊表示,他們希望開源產(chǎn)品以用于企業(yè)或面向消費者的應(yīng)用程序,從而識別基于音頻片段的語言或者用于圖像繁多的服務(wù),例如讓人們拍攝鮮花等照片的應(yīng)用程序,然后確定它是什么類型的花。對于這類應(yīng)用,緩慢或不相關(guān)的搜索體驗容易失去用戶。
“甚至需要幾秒鐘的搜索都會使應(yīng)用程序無法使用,”Majumder 指出。該團隊還希望研究人員和學(xué)者能夠利用它來探索其他領(lǐng)域的搜索突破?!拔覀儾砰_始在這個深度上探索矢量搜索的真正可能性”。
-
微軟
+關(guān)注
關(guān)注
4文章
6685瀏覽量
105748 -
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
55文章
11249瀏覽量
106389
原文標(biāo)題:千億級照片,毫秒間匹配最佳結(jié)果,微軟開源Bing搜索背后的關(guān)鍵算法
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論