深度統一粗排在淘寶主搜尋的優化實踐

語言: CN / TW / HK




兩階段排序(粗排-精排)一開始是因系統性能問題提出的排序框架,長期以來粗排的定位一直是精排的退化版本,但我們發現通過一些技術手段,粗排可以在較大的集合上超越精排。通過重新審視粗排和精排的關係和提出全域hitrate這一新的評價體系,再結合取樣優化、蒸餾等手段,我們提升了搜尋大盤約1.0%的成交金額



背景

  概述


淘寶主搜尋是一個典型的多階段檢索系統,主要分為召回、粗排、精排等階段。召回階段,由文字召回、個性化等多路召回構成,輸出商品量級約10^5;粗排階段,需要從三路召回集合中分別進行篩選,篩選出10^3量級提供給精排;後續經過精排等階段再進行篩選輸出約top10曝光給使用者。(注:下文中10、10^3、10^5等均代表數量級,數值只作為示意,只有其相對大小具備參照意義)



其中,粗排(主搜有時也稱之為做海選)本質是從海量候選集中輸出一個最佳集合,雖然都是排序但和精排的目標存在很大差異,從目標上來看其實和召回更加相似。同時,我們需要使用排序這個手段來完成,所以常見的論文和方法更傾向於不斷的模仿和逼近精排。經過近兩年主搜下的探索和實踐,從目標上可以總結出的精排與粗排最大的差異是:精排注重頭部商品的排序,粗排注重腰部商品的排序。業內很多各種提高精排與粗排一致性的手段通常在主搜都不會有實質性的效果,主要有兩個原因:一是精排只用曝光集合作為訓練樣本,我們離線驗證即使把精排直接丟到粗排階段進行打分,那結果也是慘不忍睹,大量未見過的樣本分數趨向於隨機;二是粗排最要解決的是如何在召回集合中選出優質的子集,如果這部分子集足夠優質,那後續的問題不一定是粗排和精排保持一致,可能是需要精排和粗排保持一致。

去年我們團隊採用多目標優化+負樣本擴充+listwise蒸餾這“三板斧”成功在主搜粗排階段取得了顯著的成效,也是首次將粗排的訓練樣本和目標做出了和精排明顯的差異,並在每路內召回集合hitrate驗證下表明粗排顯著超過了精排模型,但是由於時間原因只進行了比較片面的嘗試,今年我們繼續針對這些問題進行深入的探索和剖析,今年繼續新的評價指標和評價體系,我們對所有改進功能都進行了回測,同時進行了進一步改進和提升。


具體到評價指標方面,由於去年我們只有一個片面的衡量與精排一致性的指標(NDCG),無法衡量召回-粗排的損失,進而無法衡量粗排負取樣的好壞進行衡量,且本身這個目標就和粗排實際的優化方向存在很大偏差,實驗過程也容易發現盲目提高NDCG且不增加負取樣只會讓粗排效果更差。因此,今年引入了全新的評測指標“全域成交hitrate”作為粗排最重要的評價標準,並且歷經一個月時間對從召回->粗排->精排的全域成交漏斗損失結合不同優化對應的線上GMV的影響進行了系統的分析,不僅對此評價指標的有效性進行了檢驗,還對各個階段的優化空間、優化目標進行了一定程度的規範與統一。與此同時,具體到對粗排階段離線優化目標,全域hitrate需要進一步進行拆分,其中粗排前與粗排後、場景內和場景外本身具有天然的不同,且最終我們通過分析和驗證提出了兩類評價指標分別描述“粗排->精排損失”和“召回->粗排損失”經過分析和細化後的這些粗排評測指標終於能和線上指標具有很強的正相關性。


在“粗排->精排損失”和“召回->粗排損失”的指標都建立完成後,我們會發現用技術手段去緩解最開始提到的兩個問題“與精排目標不一致”和“粗排練樣本空間與線上打分空間不一致”就可以在這兩種指標上分別得到體現,其中長尾商品問題我們去年的做法只是解決了其“打分過高”的問題,但是實際上加重了其“打分過低”的問題,我們今年也進行了一定的嘗試,具體的方法將在第4節闡述。


  模型基礎結構


為了方便讀者理解,在本節中,我們將去年對粗排模型的優化結果做簡要的介紹。這是今年粗排模型優化的基礎。

訓練樣本的選擇是粗排模型區別於精排模型的一個重要差異之一。為了擬合在粗排階段的打分空間,粗排模型的訓練樣本由三部分構成:曝光樣本、未曝光樣本和隨機負樣本。其中曝光樣本指經過精排模型排序後曝光的樣本;未曝光樣本指經過粗排模型排序後,送入精排,但未得到精排階段曝光的樣本;隨機負樣本指在query相關類目下隨機取樣的樣本。樣本採用listwise的組織形式,將一個請求下的三種樣本拼接成一個長度為 的列表,即樣本維度為 ,其中 分別表示曝光樣本、未曝光樣本和隨機負樣本對應的長度。去年只是通過推測和分析進行的這部分樣本構造工作,在今年提出和發現全域成交指標後,對此部分工作進行了回測,發現未曝光樣本和隨機負樣本這兩部分負樣本的擴充共帶來約5.5 pt的場景外的hitrate的提升。

在損失函式方面,我們引入包括曝光、點選、成交在內的三個優化目標,使得user-query向量和item向量能夠在多個目標的共同作用下同時優化從而達到最優。對於每個樣本的logit,首先經過softmax,使用NLL loss來計算每個任務的損失函式,最後將每個任務的損失函式加和得到最終的損失函式。基於listwise的樣本組織形式,我們希望達到對不同樣本logit排序的目標,通過多個逐步遞進的任務,建立曝光PV -> 點選Click -> 成交Pay的對應關係三者正例數以此為前者的子集我們希望多目標粗排模型能夠學習到粗排打分商品之間的順序,優先將使用者最可能成交的商品召回並排在最前,其次是使用者可能點選的商品和精排模型可能曝光的商品,最後是那些僅相關的商品。此外,為了進一步提高模型與精排模型的一致性,我們還添加了對精排分數學習的蒸餾任務,在曝光樣本上讓粗排模型學習精排模型的打分分數。
模型結構方面,我們遵循了業界廣泛採用的基於內積模型結構,在分別計算user-query向量和item向量後,計算兩個向量的內積作為其相似度(logit),整體模型輸入輸出如下圖所示(注:雖然圖中item向量涉及到很多種,但是他們共享一套網路結構和對應的trainable parameters)

全域漏斗空間分析(新指標的初步檢驗)


在本節中,我們利用新提出的全域成交hitrate指標,對搜尋全鏈路漏斗進行了分析。全域成交可以劃分為兩類成交樣本:場景內成交和場景外成交。場景內成交即使用者在搜尋場景內產生的所有成交,場景外成交即同一個使用者關聯到的非搜尋場景產生的成交。由於非搜尋場景不存在query,我們通過相關性作為關聯條件,將使用者在場景外的成交item,關聯到使用者在場景內的query上,且要求場景內query和場景外成交item組成的query-item對滿足一定的相關性條件。


我們通過埋點的方式對粗排階段打分集合歸因到對應的場景內和場景外成交。具體的,將多路召回結果統一使用粗排模型打分進行排序,並截斷Top K計算搜尋引導成交和符合相關性要求的非搜尋關聯成交對應的hitrate@K,具體見下圖:


粗排模型Top K hitrate

其中由於搜尋本身具有相關性的限制,不能直接使用user-item pair進行歸因,所以多餘場景外成交要按照搜尋意圖的相關性進行過濾,可以看到:當K從召回縮減到10^3的情況下場景內/外成交的hitrate衰減非常緩慢;當小於10^3後,指標衰減逐漸加快,因此從場景外hitrate角度分析,對於從召回集合中輸出10^3量級的優質商品這個任務,粗排可以提升的空間天花板較低。

除了圖中所示,我們還進行了其他相關分析,一個有趣的結論是:粗排在10^3~10^4上可能比精排打分hitrate更高。這個結論將在後面4.3.2中進一步討論。

粗排離線衡量指標分析與修正


  啟下:衡量粗排->精排損失


  1. 粗排hitrate@10等粗排頭部場景內成交
    精排優化目標本身就是從精排打分集合中選出最優質且符合搜尋場景bias(能在搜尋場景成交)的 Top 10,乃至 Top 1,所以如果粗排預測的hitrate@10 能提高並接近場景內成交,自然一定程度和精排更加一致
  2. 曝光商品粗排總分與精排效率分數的NDCG/逆序對
    這個是我們最近幾年一致在用的指標,更看重和精排的一致性,主要是從模型/特徵/目標等方面和精排深度模型對比。
  3. AUC
    因為部分情況下上面兩個指標計算過困難,或有時為了和精排AUC指標之間能進行對比,我們會計算每次請求粒度下的AUC,因為粗排模型的損失函式是基於listwise的排序損失函式,最終輸出的分數絕對值沒有實際的物理含義,不同請求下的打分無法直接對比,因此沒辦法計算Total AUC。


  承上:衡量召回->粗排損失


  1. 場景內 hitrate@10^3

    場景內粗排輸出集合的hitrate評測起來肯定是100%,只能通過比粗排打分小不到一個量級的集合近似表徵,具體可根據不同場景的打分情況進行具體定義

  2. 場景外  hitrate@10^3

    由於場景外成交基本不存在bias,需要以場景外指標為基準,判斷粗排模型的能力。


  離線hitrate提升幅度與線上A/B test中hitrate提升幅度的一致性分析



  1. 場景內 提升幅度離線上必定不同:
    因為粗排模型上線後,精排的候選集發生明顯的 distribution shift ,進而最終指標絕對值必然不同,因此對於場景內分析幾乎只能看場景內最終的成交筆數,至於粗排hitrate@ 10^3在上線之後再觀察的意義本身也不大,因為這部分結果本身線上也是由精排決定。
  2. 場景外 離線上提升幅度 不同
    場景外轉化到場景內:如果離線場景外成交的提升轉化為了場景內成交,那場景內的成交筆數、場景內與場景內成交的比值都會有明顯提升。因為場景外轉化為場景內後,剩下的場景外成交對於當前模型變得更 “難” 了,所以本身就符合預期。所以這種情況下其實已經是達到了我們的最終目的——提高了場景內成交。
    線上生效出問題:如果場景內筆數沒漲,並且場景外提升還變少了,大概率是出現線上生效問題,需要針對具體問題來排查。常見的問題是在離線特徵、模型不一致等。
  3. 場景外 提升幅度 相同( 即場景外沒有轉化到場景內):
    粗排後續階段(精排等)場景外hitrate是否提升:如果後續階段本身沒有hitrate提升,則說明在粗排後續階段對於粗排新召回的商品不認可,這種可能需要從特徵/樣本/loss等指標角度去找差異, 需要根據具體情況決定是對粗排進行調整還是對精排等階段進行調整。


優化方法


我們在“ 模型基礎結構”章節所介紹模型的基礎上開展優化的工作。遵循第三節的分析結果,模型的優化也主要包含兩部分:第一是減少粗排階段輸出的商品在精排階段的損失,這部分工作主要關注於提高粗排模型的能力,包括模型蒸餾、特徵的引入、模型結構的加強等;第二是減少召回的高質量商品在粗排階段的損失,這部分工作主要集中於樣本分佈的優化。

  減少粗排-精排損失


  • 蒸餾樣本的進一步擴充


在去年工作中,我們提到使用精排模型曝光樣本的打分來指導粗排模型的訓練。簡單來說,我們在曝光樣本上,將精排模型的打分作為softmax,引入蒸餾的損失函式。引入蒸餾任務有幾個好處,一方面可以提高精排模型和粗排模型的一致性,使粗排模型排出來的商品更容易被精排模型接受;另一方面,由於精排模型輸入特徵比粗排模型多,模型結構也比粗排模型複雜,因此可以認為精排模型的模型能力明顯優於粗排模型,因此加入蒸餾任務也可以加速收斂,提高粗排模型的能力。


在去年引入曝光樣本蒸餾的基礎上,我們希望通過引入更多的未曝光樣本進行蒸餾,進一步學習精排的能力。在實驗過程中我們主要嘗試了三種蒸餾方式:(a)單獨新增引入M個未曝光樣本樣本的蒸餾,便於分別控制(b)去掉base中的pv distill loss 增加一個N+M+K的蒸餾 (c)保留base的蒸餾loss,新增一個N+M+K的蒸餾,如上圖所示。

但是此時可能面臨兩個潛在問題:(i)隨機負樣本中的M個未曝光樣本的精排分數可能會高於曝光樣本,導致和pv loss含義衝突(ii)本身曝光任務上進行蒸餾擬合是在後驗P(海選->曝光)=1  的情況下進行的,即在這種情況下,以精排點選任務模型輸出 蒸餾作為例子,pctr = pctr * 1 =P(海選->點選) 即可以表徵其從海選到點選的概率,但是對於未曝光商品其後驗P(海選->曝光)=0,從數學角度來說 pctr 沒辦法乘0或者直接表徵海選到點選的概率。對於以上兩個問題,我們發現由於曝光集合是在top10,未曝光采樣集合在10-5000隨機,通常顯著小於曝光商品打分,(i)中存在的問題可以忽略。對於問題(ii)其中一種解決方式是使用label smoothing方法使用 pctr * scale代替 pctr *0的表徵使其保留梯度,其中scale << 1。

最終我們發現實驗(c)中方案效果最好,粗排模型和精排模型的一致性有了顯著提高,NDCG +0.65pt ;此外,場景外hitrate也有 +0.3pt 的提升,表明引入更多的精排分數後,模型能力也能夠得到提升。

  • 進一步對齊粗排精排特徵


粗排模型特徵主要包含兩方面:User/Query側特徵和Item側特徵,分別對應兩個Tower的輸入。我們嘗試基於精排模型的特徵,向粗排模型引入更多的特徵,希望進一步加強粗排模型的表達能力,同時也能和提高與精排模型的一致性。

經過實驗,我們挑選了對粗排模型效果最顯著的特徵,主要包括使用者畫像特徵和使用者的長期成交序列,幫助粗排模型更準確地建模使用者側資訊。新加入特徵的收益是明顯的,在離線評測中,hitrate有+0.4 pt的漲幅。我們同時也考慮了長期點選序列,但在離線實驗中沒有提升。需要注意的是,受到雙塔內積結構的限制,粗排模型無法直接使用在精排模型中增益明顯的交叉特徵。有關這方面的探索,請參考交叉特徵的引入。


  • 交叉特徵的引入


在主搜場景下,粗排階段的打分量高達上萬個商品。在線上資源受限的背景下,為了在效能和效率之間達到平衡,粗排模型選擇了內積的形式來計算User和Item之間的相似度。相較於精排模型的多層全聯接結構,向量內積的運算速度快,大大節省了線上的計算開銷。然而,內積操作的缺陷也是顯而易見的。由於User側的資訊和Item側的資訊只能在User內積階段進行互動,因此無法引入User x Item的交叉特徵。在精排階段的經驗表明,User x Item的交叉特徵(例如item在當前query下歷史的點選次數)對於模型效果有明顯的增益。因此,我們考慮如何在儘量保持內積結構不變的基礎上,將交叉特徵引入粗排模型。


為了向粗排模型中引入交叉特徵,在原有的Item Tower和User Tower的基礎上,我們引入了Cross Tower,如上圖所示。線上Servering階段,Cross Tower和User Tower一同線上計算。與Item Tower類似,Cross Tower的輸出向量也同樣與User側向量計算內積,最後兩次內積加和後得到最終的計算結果。離線實驗中,加入了交叉特徵的粗排模型hitrate +0.2pt,但線上測試中,我們沒有觀察到明顯的效果提升。考慮到引入Cross Tower對於線上機器的計算量仍然較大,我們暫停了該方向的探索。

  • 從內積到MLP的嘗試


MLP/多層FC直覺上可以擬合更復雜的關係,理論上應該表達能力明顯強於內積分,但是在主搜場景下並沒有得到實際直覺上的效果。大體嘗試了兩種方式:1是在原本內積後額外增加2層MLP,便於上線;2是和精排一樣在attention後全部使用MLP。以上兩種離線測試hitrate、NDCG、AUC均無明顯變化,後續為了便於測試還在精排樣本上進行了更多特徵上的測試,發現只有當輸入特徵顯著增多後(包括交叉特徵),MLP才能相對於內積的AUC有明顯的提升,但是對於粗排太多特徵可能得不償失。

後續我們簡單嘗試了上線了2層MLP的實驗,線上rt增加30ms,線上效果沒有提升,其餘指標和離線測試效果一致,與離線的實驗預期一致。

  減少召回-粗排損失


  • 全域樣本


在第三節中,我們提到了粗排今年引入的新衡量指標:全域成交hitrate。全域成交hitrate能夠降低評價指標中的偏置,更客觀地評價模型的能力。為了直接優化這個指標,我們從樣本角度出發,將場景外(即除搜尋場景以外的淘寶成交)樣本引入訓練樣本中,藉此提高模型在hitrate上的表現。


我們通過修正正樣本來引入場景外樣本。在原始的樣本中,場景外的樣本有兩種可能:一是被作為成交任務的負樣本;二是不存在樣本集合中(因為場景外樣本可能沒有被曝光,甚至有可能沒有被召回)。為了不破壞訓練樣本的原始分佈,我們首先嚐試不引入新樣本的方式。在這種方法下,若某個樣本存在於原始樣本中,則將其成交標籤設為1。實驗表明,這樣的樣本修正方式對粗排階段的hitrate幾乎沒有任何影響。通過進一步分析,我們發現,若場景外成交樣本出現在原始樣本中,則幾乎只有可能出現在曝光樣本中,而極少出現在未曝光樣本或隨機負樣本中。這樣一來,這樣的樣本修正方式實際上是對曝光樣本的修正,即將已曝光但在場景外成交的樣本,從負樣本修正為正樣本。需要指出的是,曝光樣本實際上是通過粗排模型排出來的樣本,即這部分樣本即便是成交負樣本,對於粗排模型來說打分已經相對較高(因為是曝光任務的正樣本),對這部分樣本在曝光階段的成交/點選label修正並不能在粗排階段帶來收益。因此若希望提高粗排階段的場景外成交hitrate,則必須引入更多粗排階段沒有排出來的場景外樣本。


基於上述分析,我們進一步引入場景外成交樣本。在對原始樣本進行修正的基礎上,對於不存在於原始樣本中的場景外成交樣本,我們將其新增進曝光樣本中,將其同時設為曝光、點選和成交任務的正例。通過這種方式,我們將成交樣本的樣本量擴大了約80%。在對樣本做擴增後,粗排模型的場景外hitrate提升了0.6pt


  • 取樣方式的優化


長尾問題在統計學習方法中幾乎無處不在,粗排模型也不例外。本節介紹了在粗排模型上針對長尾商品優化的一些探索。本節分為三個部分,首先介紹了我們對長尾商品的劃分標準;接下來,我們對目前模型中長尾商品的表現進行了評估,證實了模型在長尾商品集合中確實存在打分不準的問題;最後介紹了我們在樣本方面的一些探索,並總結了目前仍然存在的問題。

我們以商品的歷史日均曝光次數作為長尾劃分的閾值,來劃定長尾商品集合。在搜尋場景中,以曝光次數為標準來劃定長尾商品是自然的。高曝光的商品能夠獲得更多的使用者反饋,更頻繁地出現在訓練樣本中,從而得到充分的訓練;反之,少曝光甚至無曝光的商品很難出現在訓練樣本中,以至於模型在訓練過程中很少見到這部分商品,導致打分的誤差偏大。

基於上述長尾商品劃分標準,我們計算了不同曝光次數的商品粗排階段的hitrate:
商品集合
場景外成交商品粗排hitrate
所有商品
75%
低曝光商品
60%

上述分析表明,相較於頭部高曝光商品,模型對低曝光的長尾商品的打分的準確度都明顯較差,這提示我們在這部分商品上,模型還有很大的優化空間,同時我們還統計了此部分商品在總體成交中佔比也很高,因優化低曝光商品也能對整體成交進行提升

上文提到,模型在長尾商品上表現較差的原因是在曝光樣本集合中出現較少,使得模型不能充分地訓練這部分商品。而特別地,在粗排模型的訓練中,我們發現,由於隨機負取樣樣本的存在,會進一步打壓長尾商品的打分,使長尾商品的打分偏低。隨機負樣本是從全庫滿足query類目預測的商品中均勻取樣的,由於馬太效應的存在,頭部商品只佔了一小部分,絕大部分商品都屬於長尾商品。這就導致隨機負樣本中,絕大多數商品都是長尾商品,從而導致在模型的訓練過程中,長尾商品作為負樣本的概率被隨機負樣本進一步放大了。這樣一來,模型就更有可能學到“長尾商品通常是負樣本”這一錯誤的偏置,導致長尾商品的打分偏低。為了檢驗上述猜想,我們統計了長尾商品在隨機負樣本中的佔比:


中低曝光商品
低曝光商品
在隨機負樣本中的佔比
98%+
95%+
在曝光樣本中的佔比
50%
40%

從上表可見在隨機負樣本中,絕大多數樣本曝光次數都較低,這也驗證了我們上文的猜想。

為了解決這個問題,我們調整了隨機負樣本的取樣方式,目的是在隨機負樣本中增加高曝光商品的分佈。我們借鑑了Word2Vec中的取樣方式,將隨機負取樣的取樣概率調整為 ,其中 表示對應商品歷史的曝光次數。調整取樣方式後,長尾商品的佔比有了明顯變化:


中低曝光商品
低曝光商品
在隨機負樣本(調整取樣分佈後)中的佔比
85%
70%
評估範圍
低曝光商品
中曝光商品
hitrate增益
+1.04pt
-0.32pt

修改負樣本分佈後,在不同樣本下的hitrate變化如上表所示。符合預期地,在新的取樣分佈上,模型在低曝光商品的場景外hitrate提高了1.04pt。然而,我們發現,調整後的取樣分佈中,由於中高曝光商品在負取樣樣本中的增多,反而導致其曝光商品的hitrate下降,此方案對於整體hitrate提升幅度不高,後續可能還有更多的改進空間。

  其他優化工作


  • 損失函式的形式優化


在模型基礎結構章節中,我們介紹了粗排模型使用的listwise多目標損失函式,包含多目標任務(曝光、點選、成交)和蒸餾任務。簡單來說,在多目標優化的任務中,對於每一個目標,我們把正樣本和負樣本組成一個list,希望正樣本排在負樣本的前面。對於一個listwise任務,一個自然的選擇是Negative Log-Likelihood損失函式:


其中 表示item側和user側向量的內積,即similarity; 表示list的長度。不同於其他場景下的任務,粗排模型的三個任務,尤其是曝光任務,在每個list中, 正樣 本的數量都可能不為1(尤其是曝光任務,正樣本的數量通常為10)。我們發現,在粗排的場景下,直接套用softmax在多正樣本的情況下的優化目標具有不合理之處,並據此對該損失函式進行了改進,使之更加適合粗排模型的優化目標。

首先,我們把(1)中的負樣本拆分出來:

通過上述轉換,我們將負樣本的部分轉化為LogSumExp函式的形式:

其中 表示負樣本集合, 表示除第 個樣本以外的正樣本集合

現在我們對上述損失函式作一些近似,這樣可以幫助我們更清晰地理解損失函式的優化目標。首先,我們將LSE近似為最大值函式:

其次將 (也稱為SmoothReLU函式)近似為ReLU:

從上述形式不難看出,對於每一個正樣本 ,上述損失函式都在試圖拉大正樣本 與當前list中所有其他樣本上界之間的距離,這裡的“其他樣本”既包括全部的負樣本, 也包括除樣本 以外的其他正樣本 。在絕大多數情況下,正樣本的內積相似度大於負樣本內積相似度,即 ,因此式(5)可以進一步寫成:

容易發現,在上述形式下,該損失函式多數情況下優化的是當前樣本 與除 以外的全部正樣本的上界 之間的距離,最終達到的效果是拉大正樣本之間的距離,而忽視了真正重要的正樣本和負樣本之間的差異。

一旦理解了目前softmax函式的問題所在,只要將上述公式稍加改動,就可以避免上文中發現的問題。具體地,在公式(5)中,我們只需要將除以外的正樣本從項中刪除,即計算當前樣本與除以外的全部負樣本的上界


將式(7)平滑展開回softmax。對應地,只需要在softmax計算過程中,將分母中的當前樣本以外的其他所有正樣本剔除即可:


這樣在公式中的微小改動,在模型訓練中產生了明顯的效果,印證了理論分析的正確性。實驗表明,上述損失函式的改動明顯提高了粗排模型與精排模型的一致性(NDCG +0.63pt),場景外hitrate也提升約0.2%

  • 基於全域分析的精排打分量調整


根據我們全域漏斗分析發現,精排和粗排在打分量邊界處不一定誰的打分能力更強,我們也通過實驗發現,在相關性等其他必要指標一致的情況下,精排分量增多未必能帶來線上效果的提升,甚至打分過多會導致曝光階段全域hitrate下跌從而導致線上成交數目下跌。

從這個角度進一步說明了粗排不一定要和精排保持一致,二者本身在打分能力上,一個更注重頭部,一個更注重腰部,而在打分邊界部分需要根據二者實際能力而定。

總結與展望

相對於以前只用精排樣本的業內常見的粗排版本,主搜從去年到現在提出的針對業務場景的取樣方式、多目標loss融合、蒸餾方式等優化,共帶來了搜尋大盤約1.0%的成交金額提升。需要指出的是,我們對粗排->精排的損失和召回->粗排的損失是同等看待的。但從近期的離線實驗可以看出,絕大多數實驗都會出現兩種情況:一是離線hitrate提升不明顯,即優化點無效果;二是召回->粗排的損失縮小,粗排->精排損失增大,即粗排輸出集合確實變得更加優質,但是增量部分不能被精排認可(或者只認可一少部分)。這一點其實也一定程度符合認知,比如粗排的很多改動,如正樣本中引入關聯到的未進精排的全域樣本,負樣本的隨機取樣樣本分佈改動,目前精排目前的實驗都沒有加入類似的正負樣本,很難能對粗排增量的優質集合進行正確打分。因此後續粗排的優化不僅僅要遵循承上+啟下兩部分損失的優化,對於經過分析驗證中發現的精排未通過的優質商品,針對具體問題將粗排和精排的樣本進行一定程度的對齊,協同粗排的腰部排序能力和精排的頭部排序能力的同時一定程度增加一致性,最終實現雙贏。


¤  拓展閱讀  ¤

3DXR技術  |  終端技術  |  音視訊技術
服務端技術  |  技術質量  |  資料演算法




本文分享自微信公眾號 - 大淘寶技術(AlibabaMTT)。
如有侵權,請聯絡 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。