- 今日推薦
-
- 亞馬遜的選品原則「亞馬遜平臺規(guī)則」
- 跨境選品有哪些方法要遵循什么原則「跨境電商選品的原則和邏輯」
- 對話「夢想綻放」科技CEO熊文:VR行業(yè)正在逐步過渡到VRAR的MR時(shí)代|36氪專訪
- 跨境電商如何選品可以大大提高成功率呢「提高著床成功率」
- 世界花生產(chǎn)量「中石油營收破千億」
- 跨境電商平臺如何做好選品「電商平臺如何選品」
- 新媒體運(yùn)營崗每天都是干什么的呀「新媒體運(yùn)營具體做什么」
- 跨境電商怎么選品?「跨境電商賣家應(yīng)該如何選品」
- 亞馬遜庫存報(bào)告解讀「亞馬遜商品庫存怎么看」
- 因子分析權(quán)重怎么賦值「因子分析求權(quán)重」
- 特別關(guān)注
-
- 亞馬遜的庫存問題「亞馬遜跟賣的庫存突然為零」
- 物流的數(shù)據(jù)分析主要分析什么方面「物流運(yùn)營數(shù)據(jù)分析」
- B端設(shè)計(jì)的難點(diǎn)「b端界面設(shè)計(jì)」
- 微信朋友圈價(jià)格「高價(jià)值朋友圈展示」
- 什么是享樂型產(chǎn)品「樂享百萬多少錢」
- airpods為什么這么便宜「為什么高價(jià)總是打敗低價(jià)」
- 嘻柚互娛官網(wǎng)「36氪創(chuàng)投」
- paypal是電商平臺嗎「了解電商」
- 國際貨運(yùn)專線是什么意思「國際物流專線定義」
- 新手做亞馬遜需要注意些什么「亞馬遜小白成長經(jīng)驗(yàn)」
- 熱門點(diǎn)擊
-
- 如何運(yùn)營好一個(gè)跨境電商店鋪「如何運(yùn)營一個(gè)電商平臺」
- 做銀發(fā)人群新零售「和樂春暉」獲數(shù)百萬戰(zhàn)略投資
- 跨境電商怎么做運(yùn)營有何技巧和方法「跨境電商技巧」
- 丹鳳縣商鎮(zhèn)2021十個(gè)項(xiàng)目「丹東產(chǎn)業(yè)」
- 淘寶薅羊毛犯罪「網(wǎng)絡(luò)薅羊毛犯法嗎」
- 每日優(yōu)鮮值得去嗎「每日優(yōu)鮮資金」
- 掩飾隱瞞犯罪所得和幫助信息網(wǎng)絡(luò)犯罪活動(dòng)罪的區(qū)別「掩飾隱瞞犯罪所得及其收益罪」
- 湖南省跨國企業(yè)「見證了改革開放」
- 視頻后期剪輯怎么學(xué)「影視后期剪輯怎么學(xué)習(xí)想做影視后期剪輯需要如何入門」
- 剪輯賺錢渠道「視頻剪輯如何賺錢」
京東商品搜索排序規(guī)則「京東搜索規(guī)則」
導(dǎo)讀:本文將介紹京東搜索場景中的兩塊技術(shù),語義檢索與商品排序。在業(yè)界檢索算法基礎(chǔ)上,我們提出一系列更適用于電商場景的檢索排序算法,在業(yè)務(wù)上取得了顯著收益。其中的多篇論文已被 KDD/SIGIR 等收錄。
01
背景介紹
電子商務(wù)搜索是京東等電商重要組成部分,用戶通過搜索找到自己需要的商品,然后下單購買。一個(gè)典型電商搜索引擎的架構(gòu),包括三個(gè)重要組成部分:Query 理解、召回和排序。
Query 理解:包括 query 的糾錯(cuò)、改寫、擴(kuò)展、分詞等。召回階段:給定一個(gè)查詢詞,從商品庫中召回有效正確的商品候選集,并將結(jié)果返回給排序。召回方式有很多種,這里我們只介紹基于向量檢索的召回。排序階段:給定召回商品的候選集合,根據(jù)眾多因子對這些商品進(jìn)行排序,挑選出最好的候選商品展示給用戶。下面我們分別介紹,基于向量檢索召回和商品排序:
02
向量召回
向量檢索作為一種信息檢索方式在工業(yè)界已經(jīng)被廣泛應(yīng)用,它能解決傳統(tǒng)倒排檢索不能解決的問題。倒排通過字面匹配方式召回商品,這種方式存在一種缺陷,不能召回字面不匹配但語義層面相近的商品, 如 query='2-3周歲寶寶玩具'是無法召回 sku='托馬斯小火車'的。
通俗的講就是訓(xùn)練一個(gè)模型,該模型通過將 query 和 sku 映射到統(tǒng)一維度空間,在該空間中,相似的商品距離近,不相近的商品距離較遠(yuǎn)。如上圖例子,query=奶粉,在高緯空間里,相對鞋子、服裝、手機(jī),奶粉商品距離 query 更近。這是建模過程,生成 query 和 sku 的向量數(shù)據(jù)。
我們得到了 query 和 sku 的向量,接下來就是做檢索,返回與 query 距離近的 topK 個(gè) sku。而數(shù)據(jù)庫的商品量非常多,通常是十億級,不可能做線性遍歷,考慮到時(shí)效性,會引入快速向量近似檢索方法,如 KDTree、TDM、LSH、PQ、HNSW 等等,我們采用的是 PQ 算法,這里不再贅述,網(wǎng)上有很多材料介紹其算法。下面重點(diǎn)介紹我們的模型及在線檢索框架。
模型方面不僅要考慮 query-sku 的相關(guān)性,我們也對用戶行為進(jìn)行建模,同一 query 針對不同用戶、同一用戶不同時(shí)刻檢索出更具有個(gè)性化的商品。我們使用的是 DPSR ( Deep Personalized and Semantic Retrieval ) 算法,模型融合個(gè)性化和搜索語義信息,我們的論文已被 SIGIR2020 收錄。
1. 檢索系統(tǒng) overview
從整體看,離線模型是一個(gè)雙塔模型結(jié)構(gòu),query 和 sku 分別有一個(gè) model tower。Query 端包括了 query 包括 query tokens、user profile、user history events 等特征。Sku 端包括 title tokens、brand、category、shopid 等特征。
離線索引 ( offline indexing ),使用的是 sku tower,導(dǎo)出 sku 的 embedding 構(gòu)建 QP 索引。
在線服務(wù) ( online serving ) 使用的是 query tower,模型加載在 tensorflow service,在線 predict query 的 embedding。
2. 模型詳細(xì)設(shè)計(jì)
① Two tower model architecture
上面介紹了模型結(jié)構(gòu),一個(gè) query tower Q,一個(gè) sku tower S,對于給定的 query=q, sku=s,模型計(jì)算過程為:
f(q,s)=G(Q(q),S(s))
Q(q)∈Rd×m 表示 query 的 embedding
S(s)∈Rd×m 表示 sku 的 embedding
G 表示打分計(jì)算函數(shù),比如 inner product、L2 distance 等
雙塔模型訓(xùn)練完后,query 和 sku 的模型相對獨(dú)立,我們可以分別計(jì)算他們。所有的 sku embedding 都在離線計(jì)算,以便快速構(gòu)建向量檢索索引。雖然 model 是相互獨(dú)立的,但 query 和 sku 之間使用簡單的點(diǎn)積計(jì)算,理論上 query 和 sku embedding 仍然在同一個(gè)幾何空間中,具有可比性。
② Query tower with multi heads
我們看到左側(cè)的 tower 和右側(cè)有兩點(diǎn)不一樣:Projection layer 和 mutli heads,目的是為了豐富 query 側(cè)的信息。如下圖所示,不同的 head 可以捕獲 query 不同的語義 ( query=蘋果,語義可以是手機(jī)和水果 ),捕獲不同的品牌屬性 ( query=手機(jī),品牌可以是華為、小米 ),捕獲不同的產(chǎn)品屬性 ( query=三星,產(chǎn)品屬性可以是筆記本、手機(jī) ) 等等。
③ Attention Loss
Multi heads 讓 query 可以生成多個(gè) embedding 與 sku embedding 計(jì)算 score。我們采用 attenion loss 做模型優(yōu)化。
我們標(biāo)記 query 的多個(gè) embeding 為 Q(q)={e1,e2,...,em},其中 ei∈Rd,Sku 的 embedding 為 S(s)=g,g∈Rd,Query 和 sku 的打分計(jì)算如下:
其中 β 是 softmax heat 參數(shù)。假設(shè) D 表示訓(xùn)練預(yù)料,r(qi,si ) 為正樣本,r(qi,si-) 為負(fù)樣本,模型優(yōu)化的 loss 可表示為:
④ Negative Sampling
我們采用的是用戶點(diǎn)擊數(shù)據(jù),數(shù)據(jù)量在10億級作為正樣本。負(fù)樣本并未使用同 session 未點(diǎn)擊的樣本,因?yàn)樗阉魇謾C(jī),展示了小米和華為手機(jī),不能說未點(diǎn)擊就是不相關(guān)商品。負(fù)例分為兩部分:random negatives、batch negatives。我們增加了一組超參來調(diào)整兩者的比例,觀察發(fā)現(xiàn) random negatives 越多,召回商品的 popularity 越高,更能吸引用戶點(diǎn)擊下單,但會降低商品與檢索 query 的相關(guān)性。
模型訓(xùn)練算法具體如下:
3. 訓(xùn)練優(yōu)化
我們也嘗試過更強(qiáng)大的神經(jīng)網(wǎng)絡(luò),如 RNN、transform 等,得到的效果類似或稍好一些。然而一個(gè)短延時(shí)的模型更適用于工業(yè)生產(chǎn)建模,這樣可以使用更少的服務(wù)器做有效的離線訓(xùn)練和在線服務(wù)。
模型系統(tǒng)方面,我們也做了一系列訓(xùn)練優(yōu)化,簡單描述其中的幾點(diǎn):
實(shí)現(xiàn) c tokenizer,以 custom operator 方式加載到 tensorflow,離線訓(xùn)練和在線服務(wù)共用,保證 token 的一致性。訓(xùn)練數(shù)據(jù)壓縮,修改訓(xùn)練數(shù)據(jù)格式,把共用的特征數(shù)據(jù)加載內(nèi)存,訓(xùn)練時(shí)展開從而降低數(shù)據(jù)存儲。也便于訓(xùn)練時(shí)做負(fù)例采樣。可伸縮分布式,切分大的 embedding,并將 sum up 放到 ps 以解決 worker/ps 帶寬瓶頸。模型 servable 服務(wù),我們將向量檢索和 tfs 合成一個(gè)服務(wù),不僅減少一次網(wǎng)絡(luò)訪問,降低系統(tǒng) 3-5ms 的平響,而且將模型分片部署,從而可以支持上百個(gè)模型同時(shí)服務(wù)或者 A/B 實(shí)驗(yàn)。同時(shí) servable 服務(wù)是 cpu 和 gpu 混合部署。4. 語義檢索效果展示
語義檢索上線后獲得了很好的體驗(yàn)效果,不僅提升了轉(zhuǎn)化,長尾流量降低了近10%的 query 改寫率,也就是說用戶不需要多次改寫 query,就能獲得想要的商品結(jié)果。
03
商品排序
下面介紹下商品排序:
商品排序主要是根據(jù)用戶的輸入對商品進(jìn)行打分排序。商品排序的傳統(tǒng)方法使用 xgboost 等基于決策樹的方法從數(shù)據(jù)中進(jìn)行學(xué)習(xí),但是這些模型通常有成百乃至上千的數(shù)值型人工特征,不能有效的從原始特征比如用戶歷史點(diǎn)擊購買數(shù)據(jù)、商品文本和圖像中直接學(xué)習(xí)。近年來,深度學(xué)習(xí)在各種應(yīng)用中驗(yàn)證了從原始特征中學(xué)習(xí)的有效性,在業(yè)界被廣泛使用,比如 wide&Deep、DIN 等。下面介紹一個(gè)我們在商品搜索排序中嘗試的方法。
1. 雙胞胎網(wǎng)絡(luò)
我們的訓(xùn)練數(shù)據(jù)來自于用戶的搜索日志,通過將同一個(gè) session 中用戶購買的商品 ( 商品a ) 和沒有購買的商品 ( 商品b ) 配對起來,并把購買未購買作為最終學(xué)習(xí)的 label,從而構(gòu)造了用戶查詢-商品對訓(xùn)練集。
根據(jù)訓(xùn)練數(shù)據(jù),我們首先設(shè)計(jì)了雙胞胎網(wǎng)絡(luò)結(jié)構(gòu):
雙胞胎網(wǎng)絡(luò)結(jié)構(gòu)有兩個(gè)共享參數(shù)的模塊,每個(gè)模塊分別輸入用戶、查詢和商品特征,每個(gè)模塊采用 ReLU 作為激活函數(shù),最終層的輸出一個(gè)分?jǐn)?shù),兩個(gè)模塊的差值和數(shù)據(jù) label 作為交叉熵?fù)p失函數(shù)的輸入。
在特征方面,我們使用以下幾種不同類型的特征:
數(shù)值型特征:包括商品銷量、用戶購買力和用戶是否點(diǎn)過、購買過商品等。文本特征:包括用戶輸入的查詢和商品名稱等。用戶歷史行為:包括歷史點(diǎn)擊、購買、加購商品 list 等商品、用戶 id 等文本特征可以學(xué)習(xí)到一定的相關(guān)性信息,用戶歷史行為可以學(xué)習(xí)到個(gè)性化信息,id 類特征我們做了 pretrain。
2. 個(gè)性化升級
在第一版雙胞胎模型中,我們簡單的對用戶的歷史行為做 sum pooling,但是這樣缺乏和搜索商品的交互,無法精準(zhǔn)的表示用戶的興趣;為了加強(qiáng)用戶的交互,我們升級了模型的結(jié)構(gòu),用候選商品和用戶歷史商品做 attention,從而將靜態(tài)的 user embedding 升級為隨 query 和當(dāng)前商品變化的 user embedding。
我們還加入了 Graph 學(xué)習(xí)方法對 id 類特征 embedding 進(jìn)行 pretrain,然后加入到模型訓(xùn)練中。具體方法使用用戶的高質(zhì)量點(diǎn)擊行為生成商品 graph,通過 Random Walk 生成訓(xùn)練數(shù)據(jù),然后利用 Skip-gram 進(jìn)行訓(xùn)練,加入 id embedding 可以提高模型離線指標(biāo)和收斂速度。
3. 時(shí)效性優(yōu)化
值得一提的是,為了增強(qiáng)排序捕捉變化的能力,提升排序的流動(dòng)性,我們從三個(gè)方面:特征時(shí)效性、模型時(shí)效性、線上預(yù)估校準(zhǔn)進(jìn)行了優(yōu)化。
提升特征時(shí)效性:接入商品小時(shí)級的點(diǎn)擊加購訂單等實(shí)時(shí)信號,訓(xùn)練模型學(xué)習(xí)實(shí)時(shí)變化實(shí)時(shí)在線校準(zhǔn):根據(jù)商品全站的點(diǎn)擊訂單等實(shí)時(shí)反饋信號,對模型原來的預(yù)測分?jǐn)?shù)及時(shí)校準(zhǔn)提升模型的更新頻率:優(yōu)化訓(xùn)練數(shù)據(jù)生產(chǎn)流程,推動(dòng)訓(xùn)練平臺升級,提升模型訓(xùn)練速度搜索排序是商品檢索最重要的模塊之一,我們在個(gè)性化、時(shí)效性、多目標(biāo)等方向不斷迭代,提升了排序體驗(yàn),也提升了商品成交量。
04
總結(jié)
我們介紹了語義檢索召回和商品排序,在京東搜索服務(wù)上部署并取得了良好效果。我們還在嘗試一些業(yè)內(nèi)其他流行的方法,比如 GNN、KG、MMoE 等方向,也獲得了不錯(cuò)的成績。
文章作者:
王松林、唐國瑜,京東算法工程師。
團(tuán)隊(duì)介紹:
京東搜索應(yīng)用科學(xué)部,負(fù)責(zé)京東商城商品搜索排序算法,覆蓋京東主站,京喜,微信一級入口的京東搜索。團(tuán)隊(duì)成員有來自國內(nèi)外大廠,也有來自中清北的優(yōu)秀畢業(yè)生。我們致力于用技術(shù)驅(qū)動(dòng)產(chǎn)品,用行業(yè)前沿的先進(jìn)技術(shù)落地業(yè)務(wù)場景;從實(shí)際需求出發(fā),用技術(shù)解決實(shí)際問題,做有用并且有趣的算法,我們也樂于把實(shí)踐經(jīng)驗(yàn)通過論文分享給業(yè)界。歡迎有技術(shù)情懷、有創(chuàng)新活力的你加入我們!
投遞方式:
郵件名:姓名-學(xué)校/公司-算法工程師,將簡歷發(fā)送至:
今天的分享就到這里,謝謝大家。
文章作者:王松林、唐國瑜 京東算法工程師
編輯整理:Hoh
內(nèi)容來源:作者授權(quán)
出品平臺:DataFunTalk
注:歡迎轉(zhuǎn)載,轉(zhuǎn)載請留言。
相關(guān)文章
- 哪些是二類電商「電商運(yùn)營干貨分享」
- 大數(shù)據(jù)項(xiàng)目之電商數(shù)倉「二類電商整合」
- 哪吒制作成本是多少「哪吒的投入成本」
- 年薪30萬的3d建模師是做什么的「建模從事什么工作」
- 魯班電商抖音二類電商是什么?「魯班和抖音小店的區(qū)別」
- 產(chǎn)品藝術(shù)設(shè)計(jì)專業(yè)就業(yè)前景怎么樣「產(chǎn)品設(shè)計(jì)藝術(shù)生就業(yè)率最好的專業(yè)學(xué)習(xí)內(nèi)容以及就業(yè)前景」
- 二類電商做什么最火「如何做好電商」
- 學(xué)會c4d就業(yè)方向「學(xué)c4d有發(fā)展嗎」
- 3d建模是場景好還是人物好「角色建模師就業(yè)前景」
- 電商平臺對消費(fèi)者的影響「用戶留存度」
- 移動(dòng)社交電商有哪些「社交電商如何起步」
- 昊旭電商:網(wǎng)店應(yīng)該如何運(yùn)營「電商網(wǎng)店運(yùn)營」
- 抖音電商不再只靠直播間「抖音電商模式」
- 分享賺錢,自用省錢的電商平臺「社區(qū)團(tuán)購的盈利模式」
- 抖音電商獨(dú)立app「抖音盒子」將暫停運(yùn)營但電商夢還要繼續(xù)|獨(dú)家
- 電商運(yùn)營要知道哪些「新手怎么做電商運(yùn)營」
- 邁向萬億市場的直播電商「直播電商之都」
- 日照電商公司「日照網(wǎng)紅排名」