搜索引擎 - 京東個性化召回DPSR模型

簡介

  • 當前電商搜索系統(tǒng)面臨的兩個主要挑戰(zhàn)如下:(1)文本不匹配,語義匹配的商品召回;(2)召回結(jié)果的個性化; 本文為了解決這兩個問題,提出了DPSR(Deep Personalized and Semantic Retrieval)模型。DPSR主要作用于檢索的召回層,使得召回結(jié)果更加個性化并且能夠召回具有語義匹配的商品。最終AB實驗發(fā)現(xiàn),能夠提升1.29%的轉(zhuǎn)化率,并且對于長尾Query提升的更多約10.03%的轉(zhuǎn)化率。

電商搜索系統(tǒng)簡介

  • 電商搜索系統(tǒng)大致分為以下幾個模塊:
    (0)離線商品庫建設(shè)、及倒排索引的建立。
    (1)Query Processing(QP模塊):主要包括分詞、拼寫糾錯、查詢改寫等;
    (2)Candidate Retrieval(候選集召回):基于離線建立的倒排索引,從幾千萬個商品中召回幾百至上千的商品。用于減少整體服務(wù)耗時。
    (3)Ranking(排序模塊):用于對召回的結(jié)果進行排序,可以經(jīng)過多層排序包括粗排、精排、重排等階段。
電商搜索系統(tǒng)大致框架.png

淘寶搜索引擎架構(gòu).png

相關(guān)工作

  • 傳統(tǒng)的檢索模型比如LSI, PLSI等都是監(jiān)督式的模型,通過詞語的共現(xiàn)關(guān)系及矩陣分解,學(xué)習詞和Doc的embedding;采用的是一種非監(jiān)督式的學(xué)習方法。DSSM, CDSSM是早期使用神經(jīng)網(wǎng)絡(luò)做語義匹配的模型。這些模型直接用于排序階段,本文提出的模型是用于召回階段。雙塔模型廣泛被用于推薦系統(tǒng)的召回過程,本文提出的DPSR模型也是一個雙塔模型,在前面的模型基礎(chǔ)上進行改進。

DPSR模型結(jié)構(gòu)

  • DPSR模型主要分為以下幾個模塊:(1)Offline Model Training [離線模型訓(xùn)練];(2)Offline Indexing [離線item embedding索引建立];(3)Online Serving [在線服務(wù)];
DPSR模塊劃分.png

DPSR模型主要技術(shù)點

1. 雙塔模型結(jié)構(gòu)

  • DPSR模型是一個典型的雙塔模型,由Query塔Q和Item塔S組成;對于一個給定的query q,和item s,一個經(jīng)典的雙塔模型的輸出得分f(q,s)如下。 Q(q)代表q對應(yīng)的embedding向量,S(s)代表物品s對應(yīng)的embedding向量。通常G函數(shù)采用的是簡單的內(nèi)積操作,即G(Q(q), S(s)) = Q(q)^TS(s);
    f(q, s) = G \left( Q(q), S(s) \right)
  • 雙塔模型這樣的設(shè)計,可以使得Query embedding和Item embedding計算獨立開來。離線可以計算得到所有Item embedding然后建立索引,在線動態(tài)計算用戶輸入的Query embedding,然后通過最近鄰搜索算法找到最近鄰的TopK個Item。 注意:測試的時候每個頭的Query embedding都去召回固定數(shù)量的item,然后通過Query embedding, Item embedding的內(nèi)積對所有的召回結(jié)果進行排序和截斷。

2. Query塔的多頭機制

  • 從論文中圖3可以看出,通過User Profile, User History Events, Query Tokens embedding得到一個大的embedding之后,經(jīng)過k次投影得到k個不同的embedding然后經(jīng)過三個激活函數(shù)為Relu的MLP層,再經(jīng)過歸一化得到最終的Query embedding。因為有k個不同的頭,所以會得到k個Query embedding;
  • 通過多頭的Query embedding,能夠?qū)W到Query不同的意圖;比如同一個Query的不同語義(例如蘋果)、同一個query的不同品牌(例如手機)、同一個brand的不同產(chǎn)品(例如三星);

3. 損失函數(shù)優(yōu)化

  • 假設(shè)總共有m個頭,每個頭得到的Query embedding為\left( e_1, e_2, ..., e_m \right),其中e_i \in \mathbb{R}^d;item embedding為g,其維度為\mathbb{R}^d。
    G(Q(q), S(s)) = \sum_{i=1}^{m} w_i e_i^Tg

  • 權(quán)重w_i的計算公式如下,使用一個softmax函數(shù)得到。下式中參數(shù)\beta為softmax函數(shù)的溫控因子。\beta的取值越大,輸出結(jié)果越平滑。
    w_i = \frac{ exp(e_i^Tg/\beta) }{ \sum_{j=1}^{m} exp(e_j^Tg/\beta) }

  • 最終訓(xùn)練集是一個三元組的形式,包含輸入的Query,正樣本s_i^+,負樣本s_j^-

    DPSR訓(xùn)練集.png

  • 損失函數(shù)采用的是hinge loss,具體公式如下。其中\delta是一個固定的邊界值。

    DPSR損失函數(shù).png

4. 負樣本的采樣

  • 本文采用了一個混合的負樣本采樣策略:Random Negatives和Batch Negatives兩種策略。 Random Negatives隨機的從整個batch中進行采樣。Batch Negatives從batch中的正樣本進行采樣,按照item出現(xiàn)的頻率進行采樣。最終負樣本集合是這兩個策略的混合,通過參數(shù)\alpha進行控制。Random Negatives樣本的比例為\alpha,Batch Negatives的樣本比例為1-\alpha;
image.png

image.png

image.png
  • 最終,整個DPSR模型離線訓(xùn)練流程如下:


    image.png

5. 人為反饋數(shù)據(jù)

  • 除了使用點擊數(shù)據(jù),我們的模型還使用了一些人為反饋數(shù)據(jù):(1)Most skipped items: 對于某個Query下召回的商品,如果某個人曝光很多次都跳過了沒有任何正向行為,把其作為負樣本;(2)Human generated data:利用人工的一些領(lǐng)域知識標注的正負樣本數(shù)據(jù);(3)Human labels and bad case reports:人工標注的數(shù)據(jù),和badcase反饋的數(shù)據(jù);

參考文獻

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容