1. 程式人生 > >【轉載】Emdedding向量技術在蘑菇街推薦場景的應用

【轉載】Emdedding向量技術在蘑菇街推薦場景的應用

包含 兩個 論文 量化 叠代 訂單 相同 繼續 由於

花名:越祈

部門:算法中心搜索策略組

入職時間:2017/06/01

主要從事蘑菇街推薦算法相關研發工作

蘑菇街是一家社會化導購電商平臺,推薦一直是其非常重要的流量入口。在電商平臺中,推薦的場景覆蓋到用戶瀏覽行為和交易的各個環節,如搜相似、商品詳情頁、購物車、訂單和支付等。傳統的itemCF、關聯規則、simirank、swing等推薦相似召回技術也廣泛應用於推薦各個場景中。在電商場景,計算商品和商品、用戶和商品之間的相似性是一個非常重要的課題,但是受限大部分數據是稀疏,傳統的關聯規則,simirank等並不能很好的解決。按照前期的經驗,在數據充足的頭部熱門商品上,各相似算法的效果相差不大,但在中部和長尾商品,效果差別明顯。並且,受限於計算規模,在關系鏈上很難建立大於3跳的關系,故商品間的相似性關系表達也受限。

Embedding技術具有實現簡單,表達能力強等優點,在一定程度上能有效解決上述問題。目前,團隊小夥伴共同嘗試了word2vec、node2vec以及基於點擊行為的監督式模型。目前,線下評估效果和線上實驗效果均有不錯提升。其中原生的word2vec,偏向熱門商品和類目相似,不符合預期。node2vec對比基線有提升,但是node2vec依賴隨機遊走的策略,比較耗資源,目前效果不如監督模型。本文重點描述監督式模型的Embedding在商品詳情頁推薦召回的試驗結果。

1. 輸入數據

(1)? 預訓練好的商品向量:使用圖像向量作為預訓練好的商品向量輸入模型,商品圖像向量為512維,直接放入模型中容易撐爆內存,容易導致模型訓練失敗。使用sklean.decomposition.TruncatedSVD,首先將512維的圖像向量降維到256維,再作為模型輸入。

(2)? 用戶N天點擊數據:用戶點擊商品pair對作為正樣本,label為1,隨機構造用戶未點擊商品pair對作為負樣本,label為0,正負樣本比例為1:3。

2. 基礎模型

預訓練好的商品向量經過全連接層後維度與用戶向量維度相同。經過全連接後的商品向量與用戶向量矩陣相乘,並在axis=1維度上求和得到相關分,並加上偏差項。最後經過sigmoid_cross_entropy_with_logits計算得到loss。

整個模型思路簡單,訓練完成後,可以輸出用戶向量和商品向量。且後期能在多個環節上進行模型優化,如可以把矩陣相乘變成網絡結構進行嘗試。此外,用戶向量是隨機初始化,可以使用用戶偏好、用戶畫像等更好的表示用戶向量。

1. auc評估

1.1 評估數據

評估數據總共4列,分別為:用戶id,用戶點擊序,詳情頁推薦場景用戶點擊/曝光商品,標簽label(1為用戶點擊,0為曝光未點擊)

?

1.2 評估結果

(1)監督模型商品向量比node2vec向量auc評估要高,相對提高約5%;

(2)監督模型商品向量&用戶向量,比單獨使用商品向量auc評估高,相對提高約1%;

(3)一天未更新向量,監督模型和node2vec商品向量,auc穩定;

(4)一天未更新商品向量和用戶向量,由於用戶行為變化較大,auc略微下降;

?

1.3 評估商品向量頭部熱門、中部和尾部商品auc

(1)監督模型和node2vec模型頭部商品向量差距不大;

(2)監督模型在中部和長尾商品向量auc表現更好;

2.單個case評估item2item

計算每個商品最相似的topN個商品,查看商品相關性,給出3個例子,第一個為主商品,後面為通過商品向量計算的最相似的n個商品。

3.單個case評估user2item

第一為某用戶真實的點擊商品,第二行為使用用戶向量和商品向量計算的改用戶用最關的N個商品

case1:

case2:

case3:

4. 圖像向量i2i分數相關性

分別使用圖像商品向量和監督模型商品向量,計算每個商品的top200相似商品,重合率為31%,pearson相關性為0.685。

5. tsne低維可視化

5.1商品向量在葉子類目下tsne兩兩可視化

隨機抽取50個葉子類目下的所有商品,tsne可視化結果如下:(左邊為監督模型生成商品向量;右邊為node2vec模型生成商品向量)

從兩圖中可視化效果可以看出,監督模型在葉子類目上的區分度更明顯,效果更好.

監督模型

非監督模型

5.2 商品向量在店鋪下tsne兩兩可視化

隨機抽取50個店鋪下的所有商品,tsne可視化結果如下:(左邊為監督模型生成商品向量;右邊為node2vec模型生成商品向量)

從圖中可視化效果可以看出,監督模型在店鋪上的區分度更明顯,效果更好

監督模型

非監督模型

6. 評估總結

此外,還有一些與線上真實數據的召回率、命中率、準確率等評估指標,在此不一一給出。

在商品向量覆蓋上,基於圖像向量的監督模型,基本能覆蓋蘑菇街平臺上所有商品,而node2vec只能覆蓋樣本中用戶有行為的商品。故監督模型embedding生成商品向量無論在各項離線蘋果指標上,還是商品覆蓋上,均提升明顯。

商品詳情頁推薦場景召回階段目前主要有兩個召回策略,一個是傳統相似算法融合模型,另一個是使用商品向量進行擴召回。傳統相似算法融合模型召回的商品曝光占比約為70%,使用商品向量擴召回的商品曝光占比約為25%,其他5%。

線上整體提升效果為,pv點擊率提升約3%,uv點擊率提升約1.2%,gmv分天波動較大,平均提升約4%,且根據以往經驗,gmv的提升需要更長的a/b測試時間,才能看出穩定效果。

對比node2vec模型和監督模型的商品向量,進行擴召回策略,在策略維度上,整體pv點擊率提升25%,uv點擊率14%。

此外整體效果上和分策略效果上,曝光/點擊去重商品數,以及曝光/點擊葉子類目數均提升明顯。

詳細分析實驗數據,監督模型能在商品詳情頁推薦召回中召回更多相同葉子類目下的商品。詳細數據、指標和分析過程,由於比較敏感,在此不詳細給出。

目前,還僅將商品向量應用於線上,用戶向量暫時還未進行小流量實驗,後續會逐步驗證線上效果。

?

目前只是在召回層使用Embedding向量,更多的成本在系統改造上,商品量離線全量計算cosine相似度問題已經解決,但線上實時計算,成本較大,目前正在逐步優化改進。商品詳情頁同店商品推薦場景,由於同店商品候選集較少,線上實時計算目前rt可接受,故能應用於商品詳情頁。工程系統改造後,可應用於其他推薦場景。後續也準備在排序階段,以及搜索排序等多個場景加入Embedding向量的應用。

在多項離線數據評估指標和線上實驗數據分析結果中,也發現node2vec模型,無論是在工程上還是樣本構造,和一些小的trick上,效果上有更大的優化空間。目前,團隊小夥伴也在node2vec模型上進一步優化,後續可繼續對比離線和線上指標效果。

在embedding技術實踐於蘑菇街推薦場景過程中,其離線評估指標的建立,非常重要,能一定程度上減少線上ab小流量實驗測試的成本。細致的數據分析也能為後期叠代優化提供思路。

團體同學目前嘗試的寬模型,在搜索排序場景提升明顯。團隊還有小夥伴正在嘗試序列匹配模型應用於排序,進行在線打分,工程系統上正在逐步支持和完善,目前還在ab測試期間,離線評估提升較大,也期待實際線上效果。此外,結合寬模型和深度學習模型,應用於線上,也是後續考慮的重點方向。

embedding技術的應用,還有很大空間可以進行嘗試,一方面可以嘗試更多的Embedding技術,如基於文本數據、基於圖結構模型、self-attention機制、多目標優化等,另一方面,可以嘗試更多實體的Embedding,如用戶向量化表示和意圖識別等。下圖也包含團隊當前已經完成的部分工作和後續工作的重點方向。

Item2Vec是由O Barkan,N Koenigstein在他們2016年的論文“Item2Vec: Neural Item Embedding for Collaborative Filtering“[3]中提出的。論文把Word2vec的Skipgram with Negative Sampling (SGNS)的算法思路遷移到基於物品的協同過濾(item-based CF)上,以物品的共現性作為自然語言中的上下文關系,構建神經網絡學習出物品在隱空間的向量表示。雅思是什麽論文中還比較了Item2Vec和SVD在微軟Xbox音樂推薦服務和Windows 10商店的商品推薦的效果,結果顯示Item2Vec效果有所提升。該論文關註公眾號輸入:論文,即可獲得。

點擊原文閱讀,有github,基於item2vec的python實現分享。

推薦閱讀:

1,推薦系統之用戶行為分析

2,推薦系統系列之隱語義模型

3,深度解析京東個性化推薦系統演進史

4,案例:Spark基於用戶的協同過濾算法

【轉載】Emdedding向量技術在蘑菇街推薦場景的應用