京東LBS推薦演算法實踐

京東雲開發者發表於2023-04-07

作者:京東零售 鄭書劍

1、推薦LBS業務介紹

1.1 業務場景

現有的同城購業務圍繞京東即時零售能力搭建了到店、到家兩種業務場景。同城業務與現有業務進行互補,利用高頻,時效性快的特點,可以有效提升主站復訪復購頻次,是零售的重要戰略方向。

1.2 名詞解釋

LBS:基於位置的服務(Location Based Services)。

下文LBS商品代指京東小時購商品;LBS推薦代指京東基於地理位置的推薦能力,需要考慮到附近的供給和履約能力。

B2C:直接面向消費者銷售產品和服務商業的零售模式。

下文B2C商品代指京東主站商品,包括自營/pop等非小時購商品;B2C推薦指主站主流推薦能力,不需要考慮當前地理位置的供給,而是面向全國使用者的推薦模式。

1.3 推薦模式

主要推薦模式集中在一下四種流量場域:

1、附近-商品推feeds推薦;

2、附近-純門店推薦;

3、附近-門店-商品列表頁推薦;

4、主站核心推薦場景lbs商品混排推薦(首頁為你推薦、購物車、我的京東等);

附近-商品推feeds 附近-純門店 附近-門店-商品列表頁 首頁為你推薦

2、推薦系統設計

目前主站核心場景從支援b2c商品推薦,b2c內容素材/聚合素材推薦擴充到更豐富的業務形式,支援lbs業務邏輯推薦,給使用者帶來更多元化的體驗,同時給線下商家和運營提供了更豐富的流量滲透策略。

目前lbs商品推薦架構和b2c商品推薦架構的推薦流程緊密的耦合在一起,上線lbs商品推薦相關策略,都需要考慮到b2c推薦業務的邏輯無diff,效率低,相容性差,迭代成本高,不利於後續最佳化策略的快速迭代。透過對lbs商品推薦的整體鏈路進行升級,與目前的b2c商品推薦鏈路進行解耦,提升系統的擴充性,更易維護,提高演算法策略接入的效率。b2c商品和lbs商品均具備獨立quota空間,推薦鏈路更加清晰,效果最佳化空間更大。

3、演算法實踐

3.1 概述

我們的前端展現形態分為純商品、純門店、門店-商品三種形態,且推薦位分佈較多,為了減少人力維護成本,同時考慮到LBS推薦模式和傳統電商模式的差異,以及流量場域分佈和推薦展示形態的區別,我們針對LBS推薦能力進行了單獨的設計,抽象出一套推薦模板可以同時解決三種推薦模式,支援跨場景複用。

首先前端請求入參使用者當前的經緯度資訊,推薦系統從gis系統獲取當前可履約的門店資訊;推薦系統根據使用者個性化資訊和門店-商品資訊,為使用者推薦感興趣的附近門店-商品。

此時的item粒度為門店+商品粒度,為了同時保證使用者對門店和商品興趣的同時感知,區別於b2c商品的推薦模式,我們將整個系統分為兩個階段。在一階段對使用者感興趣的門店進行推薦,在二階段對使用者的感興趣的門店下的商品進行推薦。在兩個階段內完成門店推薦、商品推薦、門店-商品推薦三種模式,三種推薦模式可複用運算元達到80+%,覆蓋站點從京東主站到小程式,覆蓋場景從首頁-為你推薦到營銷推薦位,總計覆蓋核心推薦位30+。

3.2 LBS召回演算法實踐

3.2.1 背景概述

背景:LBS推薦是基於地理位置的推薦場景,和主站b2c推薦模式有所差異;使用者對更多維度的因素敏感,如門店質量,配送距離,配送時效等等;

所以推薦系統需要在召回的時候就考慮到這些體驗因素,所以我們將LBS的召回演算法設計成兩階段的模式。一階段根據使用者興趣(user-store興趣)和門店質量(ka/銷量/距離/時效)等因素召回使用者感興趣的高質量/距離近/配送快的門店。在二階段進行商品召回用於召回使用者感興趣的商品。

同時我們面臨著以下幾個問題:

冷啟問題:我們是新業務+新場景,新品多,新使用者多,相比較成熟的b2c場景,lbs場景互動稀疏問題嚴重;

跨場域興趣遷移:使用者在b2c場景和lbs場景的興趣表達往往是不一樣的,不同場景的興趣表達往往存在著一定的差異和聯絡,怎麼精準捕捉和表達使用者跨場景體現出的興趣是新場景初期發展的重要工作;

興趣激發週期短:lbs場景使用者決策成本低,轉化鏈路短,高轉化場景下更要關注物品相關關係的表達;

我們初期也對以上幾個問題進行了簡單的探索,透過跨域興趣探索和最佳化i2i關聯關係簡單的驗證了我們的想法。

3.2.2 召回演算法實踐

1、冷啟動召回

冷啟動召回一般有以下幾種方案:

•商圈熱門:缺點是和user無關,純熱門item召回,相關性差;這裡我們將全域性熱銷/poi熱銷商品作為兜底召回,用於補充;

•cross domain:是一種基於不同場域(如京東b2c場景/lbs場景)共同使用者的行為將不同域的使用者對映到同一個向量空間,然後藉助其他域的豐富行為提升本域冷啟動使用者的召回效果。

我們這裡主要針對cross domain的方式進行了一些簡單探索來最佳化跨場域使用者的冷啟體驗效果。

1)潛客畫像召回:根據使用者在b2c場景的相關行為(諸如偏好類目是否為lbs轉化優勢類目)以及是否對lbs相關場景有前置行為的使用者(推薦下瀏覽過附近/搜尋內點選過小時購通欄等),來判斷當前使用者是否為lbs的潛在轉化使用者,給這些使用者推薦其在b2c偏好下的高轉化lbs商品;

2)跨域類目召回:透過對b2c/lbs共現商品進行挖掘,得到b2c到lbs的類目協同關係,根據使用者在b2c場景下的偏好類目推薦對應的lbs類目下的商品;

3)跨域i2i召回:結合b2c/lbs的使用者的跨場域行為,對lbs商品和b2c商品進行i2i關係挖掘,得到b2c sku到lbs sku的相似相關關係,使用b2c的使用者行為為其推薦lbs商品;

4)間接召回:基於b2c召回結果,為使用者召回相似相關的lbs商品。

2、i2i直接召回

基於使用者在lbs場景的行為直接召回lbs商品,常見方法有如itemCF,swingCF等。

我們針對lbs場景高轉化的特點對i2i召回進行了針對性的最佳化。我們對lbs場景的使用者行為進行了分析,發現使用者的點選行為體現了商品的相似性(同品比較等),訂單行為體現了商品之間的相關關係(搭配購等),但是使用者的訂單行為往往非常稀疏,且考慮到lbs商品還含有地域屬性,直接使用訂單行為構建相關的i2i關係得到的結果非常稀疏,召回的下發佔比往往比較低。

於是我們把訂單的i2i關係抽象為類目-類目,產品詞-產品詞的的粗粒度相關關係。然後對全站lbs行為進行i2i關係挖掘,得到的結果使用粗粒度相關關係進行過濾,得到了比直接使用定訂單行為構建i2i關係更豐富的結果,召回效率也比相似關係的效率更高。

3、向量化召回

i2i vs embed:i2i的相似相關關係表現的更加精準,但是覆蓋率低;embed方式新穎性好,覆蓋率高,但是關係表達相對不這麼精準。

為了解決前文中提到的問題,對使用者行為進行預處理,對異常使用者和異常表現的商品先進行過濾,防止髒資料對整體資料分佈造成影響,行為選取時,優先保留訂單行為附近的使用者行為(高質量行為),同時歷史行為序列進行了session劃分,保證行為的連續性和相關性,更能體現出使用者決策週期內的集中興趣,最佳化i-i的關聯關係。

模型方面我們採用了隨機遊走的graph embedding建模方式,和傳統方案差異不大:行為序列挖掘 -> 同構圖構建 -> 帶權重遊走序列取樣 -> skip-gram+負取樣訓練,得到物品的item embedding。

同時這裡的使用者行為序列的選取也可以參考跨域的思路,使用b2c行為進行補充,進一步解決lbs場域召回稀疏的問題。線上即可以使用i2i的方式進行召回,也可以使用u2i的方式進行召回。相比i2i直接召回,曝光佔比更高,效率更高。

4、其他召回通道

還有諸如其他的根據品類興趣和常購行為的興趣畫像召回,復購、常購召回等。

3.3 排序模型實踐

排序準備方面,由於歷史遺留原因,目前無論是使用者在lbs場域的行為,還是lbs商品畫像都有所缺失。於是第一步,我們首先對基礎資料進行了維護:1)統一了全站lbs行為接入口徑:透過門店pv和商詳的pv埋點,捕捉全站lbs行為;2)建立了user-sku和user-store的使用者畫像和lbs商品畫像。

排序特徵方面:在複用了b2c商品的部分精排特徵的基礎上,構建了lbs場景的特有特徵,如lbs場景使用者行為序列,lbs場景商品/門店反饋特徵,以及配送時效,配送費,配送距離等context類特徵。

模型最佳化方面:引入了使用者在b2c場景的使用者行為,同時引入了b2c訓練樣本做樣本增強。

模型結構方面:在模型輸入的方面分為和b2c共享的部分,以及lbs獨立特徵輸入的部分,異構b2c/lbs使用者行為序列提取多場域使用者興趣,與B2C場景進行多場景聯合最佳化。上線時進行拆圖,僅使用lbs task tower進行打分。

4、總結

lbs推薦能力作為創新業務,我們透過模板化推薦能力,快速承接推薦位30+,支援三種推薦模式,初期快速的助力了全渠道的業務發展。

後續針對業務理解,經過對LBS推薦鏈路的獨立拆分,以及召回和精排迭代最佳化。在首頁-為你推薦上,lbs商品曝光UV佔比相對Q3提升 488% ,CTR相對Q3提升159.52%。同時帶動整體大盤指標提升,首頁整體瀏覽深度顯著提升0.39%,推薦整體uctr顯著提升0.79%,推薦人均三級類目點選數顯著提升0.76%,推薦外頁uctr顯著提升0.37%。

後續我們將繼續結合場景特點和業務理解,逐漸完善最佳化LBS流量分發能力,更好服務商家和使用者,提升京東LBS推薦能力。

相關文章