阿里“推薦系統”背後的算法介紹

阿里“推薦系統”背後的算法介紹


導讀 : 隨著阿里巴巴 APP裡 “ 為你推薦 ” 模塊在全鏈路裡地位的不斷提升,“為你推薦”已經不再是一個單一的商品推薦渠道,它開始扮演更多的角色。在大促期間,沉澱出一些很好的營銷場景,如:榜單、必買清單,主題市場以及發現好貨等。我們希望營銷場景作為卡片的形式插入到現有的為你推薦裡,一方面是為這些場景分發流量,一方面是希望提高整體的坑位曝光收益。今天,我們就來探秘如何插入這些營銷場景卡片。

前言

在阿里巴巴 APP 的“為你推薦”中,目前要插入的營銷場景都是商品集合類型的,我們現階段關注的核心是 IPV相關指標,故定義曝光收益作為我們的效果衡量指標,其計算公式如下:

曝光收益=

阿里“推薦系統”背後的算法介紹

在只有商品推薦的情況下,這個衡量指標其實就是 PV_CTR。

阿里“推薦系統”背後的算法介紹


阿里“推薦系統”背後的算法介紹

圖1 阿里巴巴 APP 首頁為你推薦場景效果圖

問題與方法

現有的資源,各個卡片業務方提供了商品與卡片的映射關係,為你推薦推薦出來的商品,那麼在商品推薦裡如何去插入這些營銷場景卡片呢?

迭代前的狀態

按一定的概率隨機掛載一種卡片到推薦的商品上。 這種粗暴的做法,直接導致曝光收益下降。 因為完全不去考慮卡片的承接能力以及用戶對卡片的偏好強度,指標會下降是很明顯的,但快速累積了初始數據。

弱個性化

我們定義了一個卡片質量分以及用戶偏好分,最終一個商品是否要變成卡片以及變成哪種卡片不再是按設定概率隨機掛載,而是通過圖2的式子來掛載。

阿里“推薦系統”背後的算法介紹

圖2 卡片選擇公式

於此同時不再簡單地利用業務方提供的商品-卡片關係,而是從業務方提供的商品-卡片對集合中進行篩選,一個商品每種卡片類型下可能會映射有該類型多個卡片,通過卡片質量分來篩選,同時離線計算好用戶卡片形態的偏好分。 上述二者每天同步到iGraph 中,在線調度的時候,在商品推薦結果上,依據圖2公式對能觸發卡片的商品進行卡片掛載選擇。 同時,進行卡片的展示間隔控制,卡片與卡片之間至少有一定數量的商品,這樣避免卡片堆積,從而進一步提高效果。 這種方法,相比迭代前,曝光收益提高了3.23%,但相比不出卡片的基準桶,依舊是下降的。 我們還對圖2公式進行一系列的變種實驗,但收效甚微。

機器學習模型

給用戶推薦的商品中,某些商品有 N 種卡片可以掛載,那麼掛載哪個卡片用戶點擊的概率最高呢? 這就是我們的模型需要學習,這個可以轉化為一個 CTR 預估問題。 按預估出來的 CTR 值排序,取 top1,但最終展示還有一定規則需要遵守,下文會闡述。

■ 樣本和特徵

從為你推薦的數據裡抽取可以掛載卡片的商品的曝光點擊數據作為訓練樣本。

特徵分成三個部分,用戶特徵、觸發品特徵、卡片特徵,商品形態作為一種特殊的卡片形態。 我們選用了85個特徵作為模型輸入,包括各種實數特徵(62個)、Categorical 特徵(19個)和交叉特徵(4個): 實數特徵主要是用戶、觸發品、卡片維度的一些統計特徵。 例如,某個商品(觸發品)在為你推薦平臺上的 CTR、不同形態下的 CTR 的統計值。

而對部份 Categorical 特徵,我們採用對其進行embedding 處理再輸入模型。

■ 召 回

基於為你推薦最終的商品推薦結果,去我們篩選好的商品-卡片集合召回候選集合,即 item2item2card。 商品與卡片之間的映射關係,目前只是簡單地採用了上述的卡片質量分,而沒有考慮商品與卡片之間的關係,卡片整體承接效果好,不代表在某個觸發品的情況下,承接效果也好。 故此考慮增加 item2theme 的方式,theme 表示 item-card。 我們直接利用多天卡片曝光點擊數據,觸發品(item)-卡片(card)對直接作為一個 item 實體看待,採用 SWING 算法進行構建。 線上 AB,增加這一路召回,相比沒有這路召回的,曝光收益增加0.79%。

■ 排序 模 型

我們選擇了 WDL(Wide & Deep Model)模型,迭代過程中我們也嘗試了DCN(Deep & Cross Network)。 線上 AB,二者曝光收益差距很小,DCN 相比WDL 也就+0.03%,最終我們選擇 DCN 模型進行全量。 模型訓練目前採用 XTensorflow 每天定時訓練並推送到 RTP。

阿里“推薦系統”背後的算法介紹

阿里“推薦系統”背後的算法介紹

圖3 左圖是 WDL,右圖是 DCN

■ 效果

效果其實是由兩部分因子構成,為你推薦層面上的精準分發,以及卡片的內部效果。 卡片內部若效果糟糕,其實會進一步降低用戶再次點擊此類卡片的慾望,也就影響著上游分發。

目前策略相比弱個性化,曝光收益相對+6.77%,人均點擊商品數相對+18.60%; 相比單純的商品推薦,曝光收益相對+1.58%,人均點擊商品數相對+0.01%。

系統流程

線上調度

為你推薦原有的商品推薦決定著整體商品順序,而卡片排序模型則決定著哪些商品掛載什麼卡片,最終結合規則(沿用弱個性化時期的卡片間隔策略),決定最終卡片展示的位置。 圖4是一個調度的流程示意,囊括上述的弱個性化,以及現在的機器學習。

阿里“推薦系統”背後的算法介紹

圖4 調度流程示意(含弱個性化和機器學習模型)

卡片兜底與冷啟動

如果單次請求最終結果裡有卡片類型缺失,對於缺失的卡片類型,按設定的概率,每種卡片最高出一個,間隔策略也影響著最終兜底的情況,如果沒合適的坑位,則不會出。 這樣同時保證卡片兜底和冷啟動,又增加了卡片多樣性,讓用戶有機會看到其他類型卡片。

未來的工作

現在的模型,可以說只是卡片選擇器,沒有做到整體去考慮商品和卡片順序。 卡片選擇器目前只是對為你推薦層面上的曝光點擊進行建模,基於我們的目標應該是要考慮卡片內部的點擊,這塊可以進一步優化。 同時未來打算把現有的商品推薦結果作為一路召回,卡片選擇器作為卡片一方的召回,下游訓練一個混合排序模型來做整體排序。


分享到:


相關文章: