淺談互聯(lián)網(wǎng)搜索之召回
一、背景
在搜索系統(tǒng)中,一般會把整個搜索系統(tǒng)劃分為召回和排序兩大子系統(tǒng)。本文會從宏觀上介紹召回系統(tǒng),并著重介紹語義召回。謹以此文,希望對從事和將要從事搜索行業(yè)的工作者帶來一些啟發(fā)與思考。
二、搜索系統(tǒng)召回方法
不同于推薦系統(tǒng),檢索系統(tǒng)是在輸入query的前提下,快速召回與query相關的文本,特點為要求是快,注重召回輕準確。注意,在工業(yè)界考慮到用戶體驗,往往要求百毫秒以內(nèi)完成召回,甚至在地圖、電商類的sug 場景(邊輸入邊推薦提示)召回要求十毫秒內(nèi)完成。由此可見,召回在工業(yè)界的技術和工程要求比較高。在召回系統(tǒng)中往往采用多路召回構(gòu)建召回體系,當前召回體系可以抽象為三大方向:
(1)倒排索引召回:倒排索引可以理解為 k,v 對,對doc(文檔)分詞,每個詞可以看做 k,包含該詞的文檔可以看做 v,這樣就構(gòu)建了以詞為key的拉鏈,如下圖所示。當用戶輸入query時,根據(jù)用戶輸入query切詞粒度term進行倒排拉鏈召回(如query 清華大學,切分為清華和大學兩個term,會召回清華和大學相關文本),這是非常經(jīng)典和基礎的傳統(tǒng)召回方法。當用戶輸入規(guī)范且輸入信息量較足的情況下,能夠準確召回用戶所需要文檔。然而,在現(xiàn)實場景中,當用戶存在輸入錯誤以及輸入同義的情況下,就會存在召回率不足的問題,影響檢索體驗。
(2)個性化召回:
基于倒排索引召回是嚴格基于文本詞粒度term結(jié)構(gòu)完成query和doc的匹配,而個性化的召回則是基于用戶行為的召回方法,最簡單的方法是統(tǒng)計用戶歷史query對文檔的點擊,根據(jù)點擊doc構(gòu)建個性化召回集合。個性化召回相對于文本召回的優(yōu)勢在于不需要精準的term命中即可召回相關文檔,缺點在于如果相關性把握不好,會引入一些影響用戶體驗的badcase。
(3)語義召回: 語義召回是搜索引擎發(fā)展的新趨勢,能夠更加精準地滿足用戶需求,因此受到了廣泛關注。語義召回是利用神經(jīng)網(wǎng)絡計算用戶輸入query和目標doc之間的語義匹配度,并召回 top-k最相關的文檔。具體做法為,離線經(jīng)過模型對 doc 向量化,并通過最近鄰建庫算法(fassi、hnsw等)構(gòu)建向量索引庫,在線通過模型對query進行向量化,召回向量庫中相似度最高的N個文檔,這種方法雖然能夠一定程度上解決query泛化的問題,但是會因為召回的準確率等問題引入雜質(zhì),召回后需要通過語義質(zhì)量控制雜質(zhì)問題。下面重點介紹一下語義召回。
三、語義召回
不同用戶甚至不同終端輸入千差萬別,query 往往包含漢字、拼音、阿拉伯數(shù)字,甚至五筆筆畫偏旁輸入。這些復雜的輸入組成千差萬別的query組合,對刻畫用戶搜索需求造成巨大挑戰(zhàn),當前基于倒排索引的規(guī)則召回難以滿足這種復雜query的輸入。而語義召回是搜索引擎發(fā)展的新趨勢,泛化能力甚至精準召回能力近年來都變得越來越強,因此受到了廣泛關注。下面介紹幾種搜索領域常見的召回方法,簡單歸納一下主要有傳統(tǒng)語義召回(DSSM雙塔為代表)、帶有場景信息的多源語義召回(圖語義召回、多模語義召回等),大模型預訓練語義召回。具體如下:
(1)傳統(tǒng)語義召回 DSSM是一種典型的樸素雙塔召回,出自微軟,是當前推廣搜算法最通用的向量召回算法之一。 ‘
作為最典型的語義召回算法,將用戶側(cè)和文檔側(cè)特征組成的稀疏向量通過多層深度網(wǎng)絡壓縮到同一個低維向量空間,并通過余弦相似度來計算兩個語義向量的距離,最終訓練出代表用戶和文檔在高維空間語義相似度模型。在線預測時利用訓練好的用戶向量最近鄰檢索文檔向量返回top-k近似文檔。該方法的特點為用戶側(cè)和文檔側(cè)向量分離,工程落地容易,同時能夠利用深度學習的豐富表達能力,達到比較好的效果。
(2)多源語義召回 這里所謂的多源語義召回,是指融合多個場景信息,比如引入圖像的多模語義召回,引入只是圖譜的圖語義召回等。這些場景信息相當于為模型提供輔助信息,在一些query輸入比較短語義不明確的場景中(比如搜索領域的sug)輔助信息尤為重要,因為能夠提供更豐富的輸入表達。比如,在電商領域,對圖片進行映射表達為向量;在地圖領域,對用戶的地理位置進行表達作用用戶的輸入;在美食領域,對用戶的搜索歷史構(gòu)建只是圖譜,作為用戶的輸入,能夠達到千人千面的召回效果。
(3)大模型預訓練語義召回 為了提升在檢索領域召回的效果,最近提出了使用預訓練階段細粒度交互向粗粒度交互蒸餾的策略,訓練出面向檢索場景的基礎大模型。同時,進一步以大模型為熱啟,基于海量點擊數(shù)據(jù)post-train的雙塔匹配、召回模型,在多項QT雙塔語義匹配、召回任務中取得效果提升。具有以下優(yōu)點:充分利用海量數(shù)據(jù),尤其利用人工精標的相關性數(shù)據(jù)進行fine-tune,在偏文本的召回,排序等任務上取得了比較不錯的效果。
四、總結(jié)與展望
本文介紹了搜索中的三大召回方法:倒排索引召回、個性化召回和語義召回,以及重點介紹了搜索領域召回新趨勢語義召回。倒排索引作為搜索領域的召回基石長久不衰,該方法簡單高效,能夠解決大多數(shù)召回場景case,但長尾Query的搜索會導致輸入意圖一致的相似詞無法解決。隨著語義召回的發(fā)展,不僅能夠解決長尾case,甚至具有代替倒排索引的能力,在一些大廠中,正不斷迭代語義召回,逐步下掉倒排索引,我相信在不就得將來,強大的語義召回會成成為搜索領域的主流。還是那句話,隨著新技術和新想法的不斷涌現(xiàn),搜索引擎還有很多可以完善的地方,需要你我共同建設。
