分類TAB商品流多目標排序模型的演進

得物技術發表於2022-07-13

1. 概述

分類TAB商品流是得物app購買頁面內除“推薦”頁外的所有TAB內的商品推薦流,如“鞋類”、“箱包”等。當使用者進入分類TAB中,我們可以簡化為給定<userId, tabId, itemId> 三元組的商品流推薦,可以看出,分類TAB的推薦場景跟其他“開放式”推薦場景的最大差異在於,是限定條件下(品類)的推薦,與搜尋場景有一點相似度,分類TAB代表著使用者的品類意圖。以我們目前的迭代進度,現階段主要聚焦於<userId, ItemId>的二元建模,實際上<userId, tabId>,即使用者的行為與TAB的相關性,以及<tabId, itemId>,即TAB與商品的相關性,是我們後續進行差異化建模需要著重考慮的;以下的相關進展主要講述較為通用的商品推薦模型的落地迭代。我們以多目標排序模型作為精排策略。

2. 模型

2.1 Base ESMM

從多目標學習正規化上,我們選擇ESMM模型的正規化作為我們的精排模型,關於ESMM的介紹在這裡我們不做過多闡述,詳情參考論文。從論文中,我們可知ESMM的架構如下:
image.png

業務上的baseline 模型,是將上圖中的MLP layer 替換為DeepFM模型的結構,加入FM結構學習交叉資訊。但從整體上該模型仍然較為淺層,沒有對使用者的資訊表徵做更多的抽取,為此我們將模型結構進行了升級。

2.2 模型整體結構

我們現階段的建模是<userId, itemId>,從樣本表徵的角度看,item是比較稠密而且穩定的部分,在大樣本的環境下,大部分資訊都能夠被id embedding所表達,相反,user部分是比較稀疏的部分,而對於user的描述,則需要大量的泛化特徵,使用者序列行為的引入和建模,可大大增強樣本之間的區分性,從而提升模型的分類效能。因此我們引入使用者建模模組來表徵使用者興趣。

從模型的整體結構上,我們不改變ESMM的學習正規化,我們只對生成ctr logits、cvr logits的結構做改進,整體模型結構如圖:
image.png

其中Deep Interest Transformer結構如下圖:
image.png

從整體上看,我們可以看出,對於ctr 任務和cvr任務,每個任務都有各自的main net和bias net;使用者興趣建模模組學習出的使用者向量被兩個任務所共享,即interest transformer 作為一個資訊抽取模組,抽取的資訊與其他諸如cross features的表徵進行concat,共同作為底層的共享資訊。

2.2.1 使用者行為序列建模

我們認為使用者的行為與其下一個點選的商品具有相關性,或是相同類目、品牌或系列等重要屬性。為了拆解和分析使用者行為序列與推薦商品的相關性對推薦效率的影響,我們以商品的三級類目為分析維度,如下:

我們以tab商品流線上使用者的行為日誌進行分析,繪出target item 的三級類目與使用者行為序列商品的三級類目的關係對推薦效率的影響,如下圖:
image.png

橫座標是描述推薦商品的類目與使用者行為序列的商品的類目,其序列中相同三級類目的行為商品數量;縱座標則是pvctr;從整體趨勢上來看,target item的類目與使用者行為序列中的商品類目越相關,pvctr越高。當然,從直覺上,點選序列越長(使用者活躍度越高)是否點選率就越高,為此我們分析了序列長度與pvctr的關係,如下圖:
image.png

顯然,使用者活躍度的偏差也影響了pvctr,但通過對比,可以明顯看出,使用者活躍度對pvctr的影響,其趨勢是小的(斜率);而推薦商品的類目與使用者行為序列中的商品類目相關性的趨勢是相對明顯的。

而如何去建模打分商品與使用者行為序列的相關性,attention顯然是一種可靠的方法,self-attention可以建模使用者行為序列中的各個商品之間的相關性,而target-attention則是建模候選商品與使用者行為序列的相關性的方法。

模型中的Deep Interest Transformer 是學習使用者表徵的結構,我們選取使用者的行為序列:實時購買、點選立即購買、收藏、點選商品行為,7天內的購買、點選立即購買、收藏、點選商品行為,融合出一個長達120長度的使用者行為序列,超出長度部分做截斷,不足的長度進行預設填充。

Deep Interest Transformer 首先對使用者的行為序列進行multi-head self-attention,以此學習序列中各個元素間的相關性,此為對使用者序列進行encode;對於待打分商品,我們稱其為target item,我們進行decode時,是將target item 的embedding表示作為attention中的Q,而使用者序列的encode表示的向量作為attention中的K、V,此為target-attention,即對於不同的打分item,計算該item與使用者行為序列中的元素的相關性,因此對於不同的target item,其所啟用的使用者行為序列的元素有所不同,從而生成不同的使用者興趣向量,最終將有效的區分不同target item的打分。

2.2.2 bias 網路

推薦系統中存在各種各樣的bias,對於tab商品流,我們從幾個維度來分析使用者本身的bias,如使用者的性別、使用裝置、註冊地。

對比圖省略,圖意為,不同的使用者群體存在著不同的偏差,如男性使用者對酒飲、手錶類目點選率較高而女性使用者則在美妝和女裝類目點選率較高;Android使用者對數碼類目點選率較高而iOS使用者低;我們選擇國內東南西北四個具有代表性的地區(上海、廣東、四川、北京)進行分析,發現諸如酒飲、潮玩、配飾等類目,具有明顯的地域偏差。
為顯式地建模這種bias,我們為每個任務增加了一個bias net,每個任務單獨增加了一個網路進行建模,其輸出的logits與主網路進行相加。bias net 在此階段中,我們只用了使用者的特徵作為bias net 的輸入。這個單獨的網路是用於建模使用者自身的bias,比如有些使用者偏向於逛逛但不點選,有些使用者卻又具有較高的點選率,即活躍度的差異等等。在這種情況下,使用一個單獨的bias net去建模這種使用者自身與推薦結果無關的bias,是一種相對於單純增加bias特徵在主網路中學習而言更有效的方法。

更一般的來講,bias net不僅僅侷限於僅用user embedding進行輸入。推薦系統有許多bias,這些bias如果單純的作為特徵用以主網路輸入,效果將不如單獨用一個bias net來學習這些偏差。bias net不僅可以建模使用者對於position的點選偏差, 還可以建模使用者對於時間特徵的偏差,可以更一般的將使用者向量和各種偏差特徵的表示進行concat,而後輸入bias net 進行學習。

綜上,以上的模型改動是我們在分類TAB商品流中的第二版多目標模型,已進行長時間實驗,獲得不錯的線上收益並已推全。

3. 使用者長期行為序列建模

3.1 長期興趣

從以上版本的迭代中,我們所使用的使用者行為侷限於使用者的實時畫像中的商品序列以及使用者離線7天內的商品序列,從序列樣本分析來看,我們以120的長度作為序列最大長度,其中有效的商品序列長度,平均僅61;有效的商品長度中位數僅65。如下表:
image.png

即大量的序列長度被無效的預設值所填充,在attention進行mask後,這大大的削弱了使用者的興趣表達。因此,有效擴充使用者的有效行為長度,將能夠更加豐富使用者的行為特徵,這對一些不活躍使用者使其能夠根據長期行為進行推薦。實際上儘管是行為十分豐富的使用者,其長期購買、收藏等行為,對當前的推薦也是有益的。

在以上的分析中我們以三級類目為分析橋樑得出使用者行為序列與候選商品的相關性對pvctr的趨勢性影響;對於使用者長期的序列,是否同樣有這種趨勢,為此我們將使用者長期序列剔除7天以內的序列後進行分析,如下圖:
image.png

可以看出,推薦的商品類目與使用者長期行為過的類目仍然存在相關性;使用者的長期序列商品中的類目與候選商品類目越相關,候選商品pvctr越高。

因此直觀的做法是我們引入了使用者的長期行為,而不考慮使用者行為的時間跨度。我們從使用者最近行為的160個商品中,按照去重的方式填充到我們之前構造的序列中,並按照時間先後截斷最近的120個行為。從上表可以看出,填充長序列後,使用者的有效序列行為長度,中位數達120,平均數達101。這大大豐富了使用者的特徵表達。

從離線評估指標看,ctr auc:+0.3%,cvr auc:+0.1%。

3.2 長短期興趣建模

在以上的版本中,我們的建模方式都是將使用者的所有行為融合為一個大的序列,以此生成使用者興趣向量。實際上,使用者的不同行為時間跨度所反應的興趣有所不同,我們希望在模型中建模使用者不同時間跨度的行為來描述使用者不同粒度的興趣。

而且從點選的商品進行分析,使用者短期的行為中的類目與點選的商品類目相關性更高,而長期行為的類目的相關性更低。如下圖:
image.png

明顯的,使用者點選的商品與最近行為的10個商品的類目重合度是最高的,而與曾經行為過的第50個之後的商品,類目相關性逐漸明顯降低。

為了考慮這種短期和長期行為序列對候選商品的影響,對此我們將使用者的行為劃分為短週期行為、長週期行為,在使用者興趣建模中考慮長短興趣,長短期序列我們目前是通過實時畫像、離線畫像進行劃分。實驗上我們嘗試了以下兩種方法進行建模。

長短期興趣分別建模

分別建模短期興趣、長期興趣使用者向量,分別為Sv 、Lv;然後將[Sv,Lv] 進行concat得到使用者興趣向量Uv ,由上層各自任務的網路進行學習;如圖:
image.png
即 Uv=concat([Sv, Lv])

長短期興趣通過gate網路進行融合

短期興趣、長期興趣使用者向量,分別為Sv 、Lv ,通過gate網路融合,如圖:
image.png
即 Uv = aSv + (1-a)Lv

其中gate net,輸入是使用者特徵向量以及attention學習的使用者長、短期興趣向量,通過MLP網路以sigmoid函式進行啟用,以此將短期向量、長期向量通過fusion gate 進行融合,得到新的使用者興趣表達 Uv 。至於如何選擇gate 網路的特徵,我們參考了MMoE的結構,同時我們認為能夠對使用者長短期興趣進行區分的應當是使用者本身的特徵。

綜上兩種長短期興趣建模方法,從離線評估指標看 auc:約+0.1%,已結合上述的長期興趣建模在分類TAB場景上線實驗。兩種建模方式對最終的效果基本相當。誠然,第一種方式,將長短期興趣進行concat後交給上層任務自主學習,同時也增加了上層各個任務的specific 網路引數。而第二種方式將取決於gate 網路的學習。

4. 展望

如上所述,分類TAB的推薦場景,實際上屬於<userId, tabId, itemId> 三元組的商品流推薦,我們目前所做的工作集中在<userId, itemId> 二元組的建模上,並且主要是在user 側的建模以提升泛化性。但TAB本身的資訊也是該場景的一個考量因素,比如使用者在不同TAB中,有些偏向於高點選,有些偏向於瀏覽,如何在模型中考量建模不同TAB的差異性,將是後續的一個方向。

同時,item與TAB本身的相關性也將是一個考量方向,TAB從品類上看類似於搜尋品類詞,具有品類意圖,item與TAB具有強相關性和弱相關性區分,類似於搜尋的類目相關性強弱相關性分檔。我們認為與TAB強相關並且命中了使用者興趣的item將更有可能被點選轉化。當然這有待於我們進一步分析。

*文/吳利福
@得物技術公眾號

相關文章