seq搜索引擎優(yōu)化至少包括那幾步?(本文主要分享&;全能選手&;召回表征算法實(shí)踐)
優(yōu)采云 發(fā)布時(shí)間: 2022-01-30 09:17seq搜索引擎優(yōu)化至少包括那幾步?(本文主要分享&;全能選手&;召回表征算法實(shí)踐)
本文主要分享“全能型”召回表示算法的實(shí)踐。首先簡(jiǎn)單介紹一下業(yè)務(wù)背景:
網(wǎng)易主要有NLP、搜索推薦、供應鏈三大方向。我們主要負責搜索推薦。搜索推薦與營(yíng)銷(xiāo)側的業(yè)務(wù)場(chǎng)景密切相關(guān),管理最大的流量入口進(jìn)行嚴格的選擇。我們團隊的主要目標是優(yōu)化轉化率和GMV相關(guān)指標,具體業(yè)務(wù)是搜索、推薦、廣告(包括內部庫存廣告和外部DPS廣告)。
如圖所示,在這些個(gè)性化場(chǎng)景中,就是我們擁有的能力矩陣。剛收到邀請的時(shí)候,想談一下燕軒商業(yè)場(chǎng)景中個(gè)性化相關(guān)的事情,但是我們基本上已經(jīng)做了2到3年的生意了。如果我們想在短時(shí)間內完成聊天,我們只能介紹我們做了什么。工作以及實(shí)現了什么商業(yè)價(jià)值。但是,每個(gè)人的業(yè)務(wù)場(chǎng)景都大相徑庭。我們這邊的最優(yōu)實(shí)施方案未必是其他場(chǎng)景下的最優(yōu)方案。聽(tīng)了大家的話(huà),可能收獲不大。與其這樣,不如集中在一個(gè)小模塊上詳細講,所以今天我就選擇recall表示的部分,由此引出本次分享的主題:“全能玩家”
01
問(wèn)題定義
1. 模型目標
首先說(shuō)一下問(wèn)題的定義,也就是模型要做的目標是什么?Embedding:這是一個(gè)將離散的 id 變量映射到低維密集向量的學(xué)習過(guò)程。使用離散id作為特征時(shí),一般先進(jìn)行one-hot編碼,然后再映射成稠密向量。Embedding 的目標是在大數據中反映相關(guān)主題。通過(guò)Embedding向量表示學(xué)習到主體的向量信息,也可以通過(guò)向量度量公式來(lái)反映主體之間的相關(guān)性。比如右邊的例子,紅線(xiàn)代表 King 和 Man ,如果 King 和 Man 都訓練了一個(gè)向量表示結果,我們希望 King 和 Man 的內積大于 Queen 和 Man 的內積,
2. 數據處理
實(shí)際上,Embedding 是一個(gè)非常通用的主題學(xué)習和表達模型。它廣泛用于自然語(yǔ)言處理、搜索、推薦和圖像。那么Embedding是如何在具體業(yè)務(wù)場(chǎng)景下對搜索推薦起到作用的呢?下圖是業(yè)內非常經(jīng)典的推薦數據處理階段劃分。從左到右是數據逐層遞減的過(guò)程,依次是召回(Matching)、粗排名(Pre-Ranking)、細排名(Ranking)、Reranking。我們的召回表示模型的范圍主要是召回和粗略排名兩個(gè)階段,在搜索推薦中起著(zhù)基石的作用。
3. 模型能力
訓練模型時(shí),可以通過(guò)向量相似度來(lái)衡量受試者的相關(guān)性。下圖顯示了一些項目的表示。如果幾件物品相似,它們的距離比較小,內積比較大,比如和相似的零食碗都是同一個(gè)品類(lèi)的產(chǎn)品。如果我們只有一個(gè)向量表示模型,那么可以使用模型的Embedding進(jìn)行recall,或者可以將兩個(gè)item的embedding向量的內積作為粗排序的基礎,這樣recall和recall兩種場(chǎng)景粗略的排序可以一次完成。但是,在大多數情況下,會(huì )有多個(gè)表示模型,每個(gè)表示模型都會(huì )被調用。在這種情況下,需要引入一個(gè)粗略的排序模型來(lái)對多個(gè)表示模型的召回結果進(jìn)行合并和排序。用于合并的粗選能力可以與蒸餾模型進(jìn)行策略性的結合,這里不做介紹。
02
模型值
為什么表示模型值得深入研究?
1. 應用場(chǎng)景廣泛
接下來(lái),我將介紹為什么表示模型值得深入做?它可以產(chǎn)生什么價(jià)值?問(wèn)題的答案與文章的標題息息相關(guān):Embedding是一個(gè)應用范圍很廣的全能者,可以最大化算法輸出的價(jià)值。應用場(chǎng)景包括:
2. 工程解決方案成熟
Embedding矢量已經(jīng)可用,需要矢量搜索引擎來(lái)推動(dòng)矢量在線(xiàn)使用,具有在線(xiàn)響應能力。根據向量搜索引擎提供的接口,可以找到內積最大或與給定向量距離最近的TopN向量。第一個(gè)是Facebook早前提出的Faiss方案,第二個(gè)是Google提出的SCANN方案;這兩種方案都非常好,可以大大降低工程門(mén)檻。
3. 技術(shù)飛速發(fā)展
向量表示是學(xué)術(shù)界的熱點(diǎn),并且不斷創(chuàng )新,尤其是GCN(圖卷積神經(jīng)網(wǎng)絡(luò ))和GNN(圖神經(jīng)網(wǎng)絡(luò ))非常流行,學(xué)術(shù)界每年都會(huì )發(fā)表很多論文。與學(xué)術(shù)研究的快速發(fā)展相關(guān)的技術(shù)紅利可以為業(yè)務(wù)帶來(lái)增量?jì)r(jià)值。接下來(lái)從兩個(gè)方向講向量表示的模型,一個(gè)是序列模型SeqModel,一個(gè)是圖網(wǎng)絡(luò )模型,兩者都可以解決向量表示的問(wèn)題。在選擇模型時(shí),應該選擇兩種模型中的哪一種?這與產(chǎn)品數據密切相關(guān)。如果產(chǎn)品數據具有很強的時(shí)間相關(guān)性,那么使用序列模型的效果肯定不會(huì )差;如果產(chǎn)品數據的節點(diǎn)比較稀疏,則需要使用鄰居節點(diǎn)進(jìn)行信息協(xié)同建模。這時(shí)候,推薦嘗試 GNN。圖數據幾乎可以收錄在任何場(chǎng)景生成的數據關(guān)系中,所以GNN是通用的模型解決方案,具有很高的通用性,但并不意味著(zhù)GNN在所有場(chǎng)景下都優(yōu)于序列模型。方案比較。接下來(lái),基于我們搜索推薦業(yè)務(wù)場(chǎng)景的總結,給大家分享一下序列模型和GNN模型的迭代。所以GNN是一種通用的模型解決方案,具有很高的通用性,但這并不意味著(zhù)GNN在所有場(chǎng)景下都優(yōu)于序列模型。方案比較。接下來(lái),基于我們搜索推薦業(yè)務(wù)場(chǎng)景的總結,給大家分享一下序列模型和GNN模型的迭代。所以GNN是一種通用的模型解決方案,具有很高的通用性,但這并不意味著(zhù)GNN在所有場(chǎng)景下都優(yōu)于序列模型。方案比較。接下來(lái),基于我們搜索推薦業(yè)務(wù)場(chǎng)景的總結,給大家分享一下序列模型和GNN模型的迭代。
03
迭代實(shí)現
1. 關(guān)注項目嵌入
艷選業(yè)務(wù)的用戶(hù)數量遠大于商品數量。由于用戶(hù)數量眾多,實(shí)驗稀疏,User Embedding 并不是很有效。因此,我們在初始階段專(zhuān)注于Item Embedding。商品數量少,落地成本低。,關(guān)聯(lián)數據密集,表示效果較好。
?、?SeqModel優(yōu)化
第一個(gè)模型是我們定制和優(yōu)化的基于會(huì )話(huà)的嵌入模型。它的主要思想來(lái)自 Aribnb 的一篇 Embedding 論文(這篇論文寫(xiě)得非常好,建議大家學(xué)習一下)。該模型的主要思想是構造一個(gè)類(lèi)似于word2vec的序列,重點(diǎn)關(guān)注向量在序列數據的上下文時(shí)間窗口中的相關(guān)性。圖中每個(gè)圓圈代表一個(gè)項目,多個(gè)圓圈構成一個(gè)行為序列。行為序列來(lái)自用戶(hù)在連續一段時(shí)間內的行為數據。傳統的 word2vec 只關(guān)注上下文信息。這篇論文的核心思想是提出全局item,跳出了序列模型窗口的限制。全局item是指序列數據中的一些重要節點(diǎn)(圖中實(shí)心節點(diǎn)),如用戶(hù)的插件購買(mǎi)、支付、分享等行為。全局item打破了模型窗口的限制,使得item向量可以學(xué)習到一些高階連接信息,大大提高了序列模型的表示效果。
在此之上,我們對損失函數做了一些優(yōu)化,包括在batch中去除負采樣和建立pair-wise loss的過(guò)程,可以大大提高訓練速度;同時(shí)我們還引入了多層向量,也就是side-info嵌入的思想,不僅是在對item做向量表示的時(shí)候使用它的id類(lèi)型的特征,還引入了產(chǎn)品屬性等特征,類(lèi)別、適用季節和適用組,進(jìn)一步提高向量表示的效果,同時(shí)緩解新項目冷啟動(dòng)表征問(wèn)題。
?、?GCN 定義
接下來(lái)說(shuō)說(shuō)學(xué)術(shù)界比較火的GCN/GNN模型。圖神經(jīng)網(wǎng)絡(luò )一般有三個(gè)階段的定義:
目前,很多關(guān)于 GNN 的論文都有關(guān)于這三個(gè)階段的定義。圖右側是GCN的*敏*感*詞*。圖中的公式對應了三個(gè)階段,很巧妙的是,這個(gè)公式可以轉化為矩陣運算形式,可以充分利用GPU的計算能力。但是這個(gè)矩陣的節點(diǎn)數是(#users+#items)×(#users+#items),而且規模大到行業(yè)很難落地。
?、?GraphSage 可以登陸
GraphSage是一個(gè)基于采樣的思想降低落地難度,用采樣代替矩陣計算的過(guò)程。采樣深度(一般深度不會(huì )超過(guò)2)對應迭代次數。多次迭代可以獲得高層域信息進(jìn)行信息協(xié)同建模,同時(shí)每次迭代的樣本數可以調整。該模型最大的貢獻在于提供了一種通用的Nei*敏*感*詞*orhood Aggregation聚合方法,可以通過(guò)均值的方式進(jìn)行聚合,也可以引入池化層,也可以引入LSTM進(jìn)行序列聚合。
?、?LightGCN的壓縮數據嘗試
GCN 需要很大的矩陣計算過(guò)程。與工程理念相比,兩者的效果有何不同?是否可以通過(guò)減少現有數據來(lái)實(shí)現 GCN 與其他模型的對比?所以我們實(shí)現了一個(gè)LightGCN,主要參考了圖中的兩篇論文。兩篇論文來(lái)自同一個(gè)團隊。論文定制了信息的構建和聚合過(guò)程,可以捕獲節點(diǎn)的高階相關(guān)性,并對協(xié)作信號進(jìn)行顯式編碼。一般GCN的網(wǎng)絡(luò )深度不會(huì )超過(guò)2,而這里的LightGCN可以做到三層,其中的節點(diǎn)已經(jīng)覆蓋了用戶(hù)和物品。在本文的最后,我們將比較所有的效果。在知識表達方面,這兩篇論文寫(xiě)得都不錯。您可以研究它們并更好地了解GCN。
2. 獲取用戶(hù)嵌入
我們在第一階段獲得了Item Embedding,如何從Item Embedding中獲得User Embedding?主要有兩種思路:策略法和模型法。
?、?戰略快速落地
該策略是一個(gè)可以快速實(shí)施的解決方案,是一個(gè)非常好的和穩定的基線(xiàn)。我們可以利用已知的物品隱向量和用戶(hù)在會(huì )話(huà)中的交互行為序列,基于時(shí)間衰減、時(shí)間加權和注意力機制得到用戶(hù)的向量表示。在相同的搜索場(chǎng)景下,也可以通過(guò)分詞組合、次數權重、查詢(xún)詞的注意力權重得到查詢(xún)詞的向量表示。
?、?經(jīng)典 DNN
接下來(lái)是經(jīng)典的模型DNN,直接通過(guò)模型得到用戶(hù)的向量。參考圖中YouTube上的這篇經(jīng)典論文,模型本質(zhì)上是一個(gè)有監督的NextItemPrediction訓練過(guò)程,用戶(hù)的Item會(huì )話(huà)數據,簡(jiǎn)單的平均聚合,用戶(hù)特征作為深度模型的輸入特征數據。輸入特征數據逐層傳播,最后一層得到用戶(hù)向量。用戶(hù)向量和項目向量做softmax完成一個(gè)概率分布預測,模型的loss也得到了。模型訓練完成后,同時(shí)得到User和Item的向量表示。
?、?學(xué)習會(huì )話(huà)表示
當然我們要通過(guò)圖模型得到用戶(hù)的向量。用戶(hù)的行為基于會(huì )話(huà)來(lái)表示。如果有方法可以直接將會(huì )話(huà)表示為向量,那么可以直接得到行為序列下的用戶(hù)向量。下圖中的論文通過(guò)學(xué)習會(huì )話(huà)向量的表示來(lái)解決這個(gè)問(wèn)題。它也有GCN的三個(gè)階段的定義。在定義過(guò)程中,還引入了門(mén)的參數來(lái)設置最終向量的表示過(guò)程。最有價(jià)值的一點(diǎn)是它進(jìn)行會(huì )話(huà)表示學(xué)習。在訓練過(guò)程中,每一個(gè)session都被視為一個(gè)子圖,一個(gè)一個(gè)地訓練,然后將局部向量(會(huì )話(huà)中的最后一個(gè)項目向量)添加到全局向量(會(huì )話(huà)中的其他項目向量)。注意力聚合后得到一個(gè)全局向量作為會(huì )話(huà)向量,最后用會(huì )話(huà)向量表示用戶(hù)向量。該模型的效果在離線(xiàn)評估中更為突出。
?、?多用戶(hù)向量
我們之前一直在用單個(gè)向量來(lái)表征用戶(hù),那么我們可以用多個(gè)用戶(hù)向量來(lái)表征用戶(hù)的興趣嗎?答案是肯定的,因為如果用戶(hù)的興趣比較廣泛,使用一個(gè)向量來(lái)表示用戶(hù)時(shí)會(huì )損失信息豐富度,使用多個(gè)向量來(lái)表示用戶(hù)可能會(huì )更好。
第一個(gè)思路是聚類(lèi)方法:首先對item K-means進(jìn)行聚類(lèi),得到多個(gè)聚類(lèi),每個(gè)聚類(lèi)都有一個(gè)向量表示。如果用戶(hù)行為序列中的項目涉及多個(gè)聚類(lèi),則將屬于同一聚類(lèi)的向量聚合起來(lái)代表用戶(hù)。聚合方法可以用簇向量計算權重并逐位相加。用戶(hù)向量的數量等于序列中簇的數量。
第二個(gè)想法是 MIND:它使用膠囊網(wǎng)絡(luò )來(lái)形成多個(gè)興趣向量。結構中有一個(gè)多興趣提取層,負責提取多個(gè)興趣向量。圖中,u1、u2是用戶(hù)行為序列中的item,它們作為膠囊網(wǎng)絡(luò )的輸入,v1、v2是用戶(hù)的多個(gè)興趣向量,膠囊網(wǎng)絡(luò )的輸出. 同時(shí),膠囊網(wǎng)絡(luò )還支持動(dòng)態(tài)路由,多次迭代自適應地迭代獲得聚合權重。
3. 效果對比
接下來(lái),我們對這些網(wǎng)絡(luò )模型進(jìn)行比較。比較指標是 HitRate 和 NDCG。我們采用 VecModel-Single(基于序列模型會(huì )話(huà)的嵌入模型)作為基線(xiàn)模型。
在我們的場(chǎng)景數據中,graphSAGE 作為 GCN 的工業(yè)實(shí)現指標并不突出,在 NDCG@30 上略超過(guò)基線(xiàn)模型。LightGCN通過(guò)減少數據來(lái)適應當前最大的鍋,然后產(chǎn)生最大的蛋糕;LightGCN 使用矩陣來(lái)學(xué)習向量表示,效果相比基線(xiàn)模型并不是特別突出,只是在個(gè)別指標 HitRate@30 上有一些提升。YouTubeDNN 在 4 個(gè)指標上有明顯提升。SR-GNN 直接表示會(huì )話(huà)的用戶(hù)向量,通過(guò)模型參數學(xué)習得到用戶(hù)向量。也是離線(xiàn)效果最好的機型。VecModel-Multi是基于序列模型,加入聚類(lèi)用戶(hù)多興趣向量表示,MIND是基于膠囊網(wǎng)絡(luò )的多興趣向量模型;
左下圖是不同用戶(hù)行為分組的模型效果,X軸是用戶(hù)行為數,Y軸是HitRate。一開(kāi)始,用戶(hù)在沒(méi)有行為的情況下無(wú)法感知用戶(hù)偏好,模型效果比較差(User Type Embedding實(shí)現了NIP)。當用戶(hù)有1、2個(gè)行為時(shí),性能指標大大提高。這也很容易理解,因為新用戶(hù)在來(lái)到一個(gè)場(chǎng)景產(chǎn)生初始行為的時(shí)候興趣更加集中,但是隨著(zhù)用戶(hù)行為數量的增加,只使用向量模型進(jìn)行召回和排序會(huì )減少指標,進(jìn)而需要連接細化和重新排列模型,以進(jìn)一步提高業(yè)務(wù)成果。右下圖是HitRate@N中多個(gè)模型的效果,其中綠色曲線(xiàn)是使用該策略融合多個(gè)模型的結果后的表現??梢钥闯?,只是簡(jiǎn)單的合并,相比其他單一模型有明顯提升。. 以后也可以用粗排模型來(lái)合并各個(gè)表示模型的結果,效果應該會(huì )有所提高(用于合并的粗排模型還在進(jìn)行中)。
04
業(yè)務(wù)落地
1. 異物是向量
接下來(lái)說(shuō)說(shuō)業(yè)務(wù)是如何實(shí)現的。異物是向量是 Facebook 提出的口號。如果我們有一套完整的向量系統,那么業(yè)務(wù)場(chǎng)景中的所有科目都可以向量化,然后就可以做U2I,I2I和Q2I的召回就很方便了。
2. 服務(wù)說(shuō)明
該圖是一個(gè)簡(jiǎn)單的服務(wù)圖。整體是一個(gè)一體化的統一召回服務(wù)。核心向量表示服務(wù)具有表示用戶(hù)和項目向量的能力。它可以使用 T+1 數據進(jìn)行表示,也可以使用實(shí)時(shí)數據進(jìn)行用戶(hù)實(shí)時(shí)表示。利益代表。統一召回服務(wù)的輸出經(jīng)過(guò)提煉和重排后,可以應用于搜索、推薦、廣告等業(yè)務(wù)場(chǎng)景。因此,召回服務(wù)是每一項業(yè)務(wù)的基石。召回效果的提升可以提升多場(chǎng)景的效果。投入產(chǎn)出比非常高的技術(shù)方向。
3. 應用效果
有了一切矢量化的基礎后,下面是一些具體應用的落地效果。比如搜索中搜索詞的推薦(U2Q)和搜索結果的語(yǔ)義匹配(Q2I),推薦中很多簡(jiǎn)單的場(chǎng)景可以直接使用基于向量的排序模型,效果也不錯。內部第一焦點(diǎn)廣告中還有圖片的智能組合。通過(guò) User2Topic,User2Item 選擇用戶(hù)最感興趣的活躍產(chǎn)品呈現個(gè)性化的 Banner。
作者:潘勝義 網(wǎng)易嚴選算法專(zhuān)家,搜索推薦負責人。團隊負責的業(yè)務(wù)包括搜索、推薦、內外廣告??、用戶(hù)模型等。
















