本文介紹淘寶詳情頁全網分發場景的機制。
作者:阿里巴巴淘系技術
鏈接:
https://juejin.cn/post/6992169847207493639
商品詳情頁是手淘內流量最大的模塊之一,它加載了數十億級商品的詳細信息,是用戶整個決策過程必不可少的一環。這個區塊不僅要承接用戶對當前商品充分感知的訴求,同時也要能肩負起其他來源導流流量的留存,最終盡可能地激活平臺內部流量以及外部流量在整個生態中的活躍度。同時,商品詳情頁也是眾多場景乃至平臺鏈接的紐帶,用戶在平臺中的行為軌跡總會在多場景和詳情頁間不斷交替,并在詳情頁產生進一步的行為決策(加購/購買等)。因而詳情頁上除了具備承接用戶的“了解更多”的訴求,也應同時滿足平臺“起承轉合中間件”的訴求。
詳情頁內流量具備兩個顯著的特性:
- 流量大,常是用戶購買決策環節;
- 承接了大量的外部引流。
出于這兩個重要特性,同時也出于提升平臺黏度,盡可能地提升用戶行為的流暢度的產品設計考量,我們在詳情頁內部設立了一些全網分發場景,并基于這些場景特點進行了一些算法探索。
背景
信息爆炸導致用戶對于海量信息的觸達寥若晨星,對于有效信息的觸達更是鳳毛麟角。如果說社交媒體是無聲者的發聲者,那推薦系統儼然可以看作是海量信息的發聲者,同時也是平臺用戶被曝光信息的制造者。所以我們有責任與義務做到推薦內容的保質與品控,這對于推薦系統是極大的訴求與挑戰。當下的推薦系統通過深度挖掘用戶行為,對用戶進行個性化需求挖掘與實時興趣捕捉,旨在于幫助用戶在海量信息中快速,精準地定位,從而更好的完成智能化服務。
詳情頁的分發推薦肩負著【服務商家】,【提升用戶使用體驗】以及【利好平臺分發效能】的重要責任。這給我們場景提出了三個方面不同側重的需求,它們需要被統籌兼顧,以期能夠打造出一個更好的流量分發陣地。我們解決這三個需求的方式是開辟同店商品推薦前置的全網分發模塊,在極大程度保證商家權益的同時,讓用戶能夠在一個聚焦的頁面快速定位海量商品中“猜你喜歡”的商品。詳情頁內的推薦和公域推薦有一個最大的差異:每個詳情頁面都是主商品的信息衍生場,推薦內容受到它較強的約束?,F有的大多數研究缺乏對具有先驗信息的場景的探索:它們只強調用戶的個性化興趣。有一些重要的、直接相關的先驗信息被直接忽略。我們觀察到,在單個商品/主題喚醒的推薦頁面上,用戶的點擊行為和主商品(喚醒推薦頁面的商品/主題)是高度同質的。在這些場景下,用戶已經通過主商品給模型傳達了一個很聚焦很明確的意圖,所以推薦的相關結果不能肆意泛化。但同時,一味的聚集又回降低分發的效能,使得用戶在瀏覽過程中產生疲勞感。因而這些場景的推薦內容,應當遵循“意圖明確,適度發散”的策略。當然,因為有主商品信息的加持,我們在模型調優時能夠因地制宜地架構推薦策略,做出一些和其他場景相比,更明確更可解釋的用戶體驗,這是我們寫這篇文章的初衷。如果對這樣的“以品推品”場景想要知道更多的細節,本篇文章將帶您一起來看我們的探索問題——“用戶即時興趣強化與延伸”,以及模型解法和線上工程實踐。
場景介紹
其中,全網流量分發場景主要包括詳情頁底部信息流(鄰家好貨),主圖橫滑(新增),加購彈層(新增)。這些場景打破了商家私域畫地為牢的局面,充分地提升了私域全網分發的能效。當然為了兼顧商家利益,這些場景將分為兩個部分(同店內容推薦模塊和跨店內容推薦模塊)。
技術探索
算法問題定義——即時興趣強化
進入詳情頁是用戶主動發起的行為,因而用戶對于當前頁面的主商品有著較強的興趣聚焦。主商品的信息能夠幫助我們快速地定位用戶的即時興趣,這對于推薦算法來說是至關重要的。雖然現在有很多方法將行為序列的末位替代即時興趣,或是使用模型挖掘即時興趣,但這些方法均是在不確定事件中進行推理,沒有詳情頁天然帶有主商品這樣的強意圖信息?;诖?,我們的工作將從推薦技術的不同方面,將這部分信息建模并加以強化,以期使得詳情頁分發場景能夠結合場景特點,盡可能地滿足用戶的即時需求。
召回
背景
隨著深度學習技術在多個領域的普及以及向量檢索技術的興起,一系列基于類似思想的深度學習召回技術相繼涌現。Youtube在2016年提出了DNN在推薦系統做召回的思路,它將用戶歷史行為和用戶畫像信息相結合,極大地提升了匹配范圍的個性化和豐富性。我們的工作基于同組師兄的召回工作《SDM: 基于用戶行為序列建模的深度召回》,《User-based Sequential Deep Match》 也是這一思路的一脈相承。SDM能夠很好地建模用戶興趣的動態變化,并且能夠綜合長短期行為在不同維度進行用戶表征,從而更好的使用低維向量表達用戶和商品,最終借助大規模向量檢索技術完成深度召回。SDM上線較base(多路i2i召回merge)ipv指標提升了2.80%。較SDM模型,CIDM模型IPV提升4.69%。在此基礎上,為了契合詳情頁分發場景的特點,我們豐富并挖掘了主商品相關信息,并將其作為即時興趣對召回模型進行結構改良。
模型——CIDM(Current Intention Reinforce Deep Match )
為了能夠讓模型SDM能夠將主商品信息catch到并與用戶行為產生交互,我們設計了如下的模型結構,其中trigger即為詳情頁中的主商品,我們從幾個方面對它進行表征及強化:
- Trigger-Layer:啟發于論文1,對主商品顯式建模:除SDM中建模用戶長、短期偏好之外,引入用戶即時偏好層將主商品特征與長短期偏好融合作為用戶最終表達;
- Trigger-Attention: 即將原模型中使用的self-attention改為由trigger作為目標的target-attention;
- Trigger-Lstm:借鑒論文2中的建模思路,我們將lstm的結構中引入了trigger信息,并添加trigger-gate讓lstm傾向于記住更多關于主商品的內容;
- Trigger-filter-sequence:實驗發現,使用主商品的葉子類目,一級類目過濾得到的序列作為原序列的補充進行召回建模,能夠增加收益,故在數據源中添加了cate-filter-seq以及cat1-filter-sequece。
其中前兩個點都是比較顯而易見的,這里就不再贅述,我們將三四兩個創新點詳細闡述。
論文2中論證了添加時間門能夠更好地捕捉用戶的短期和長期興趣,基于這個結論,我們嘗試設計一個trigger-gate用于在模型捕獲序列特征中引入trigger信息的影響。我們嘗試了多種結構變體,比較work的兩種方式(如圖):
- 將trigger信息作為記憶門的一路輸入,即通過sigmoid函數后與之前想要更新的信息相乘;
- 平行于第一個記憶門,添加一個新的即時興趣門,其輸入為細胞輸入以及當前主商品,和記憶門結構一致。
這樣的方式能夠將主商品的信息保留的更充分。
第一種方法,僅是對記憶門進行了修改:
第二種方法,新加了一個即時興趣門:
這兩個實驗在離線hr指標分別增長+1.07%. 1.37%,最優版本線上指標ipv+1.1%。
出于我們自己的實驗結論:"使用主商品的葉子類目和一級類目過濾得到的序列作為原始序列的補充,作為模型輸入能夠提升預測準度“。這說明,主商品的結構信息是具有明顯的效益的,以它為條件能夠對序列樣本產生正向約束。究其根本,原始序列中一些和當前主商品相關性較小的樣本被過濾掉了,這相當于對數據進行去噪處理。沿著這個思路,聯想到自編碼機的主要應用為數據降噪與特征降維,故考慮采用基于AE結構的模型對序列進行處理,更多的,由于我們是定向去噪(即剔除與主商品不相關的行為),我們使用變分自編碼機(VAE),借主商品信息在隱變量空間對序列表達進行約束,以確保隱層能較好抽象序列數據的特點。
變分自編碼機是具有對偶結構(包括編碼器和解碼器)聯合訓練的系列模型,它借鑒變分推斷的思路,在隱變量空間進行個性化定制,比較契合我們即使興趣建模的需求。首先我們有一批數據樣本
,其似然分布可以表示為
,最大化其對數似然時后驗概率分布
是不可知的,因而VAEs用自定義分布
來近似真實的后驗概率
計算,使用KL散度作為兩個分布的相似程度的度量。整體的優化函數可以表示為:
具體推導可以參見論文5。其中第一項作為使假設的后驗分布
和先驗分布
盡量接近,第二項為重構損失,保證自編碼結構整體的穩定性。其中,先驗分布
是我們自定義的,這里想要將主商品的信息融入其中,因而我們假設
,即使用主商品的表示作為高斯分布的均值,采樣batch的二階矩作為高斯分布的方差帶入其中。因此,模型的優化函數變為:
啟發于論文3、4, 我們將網絡結構設計為如下形式,使用主商品的特征向量作為mu和sigma引入到變分自編碼網絡中,規范隱空間中序列特征的表達,并將學習得到的序列隱空間變量seq_hid作為用戶的強意圖序列表達trigger_emb,和長短期偏好融合。
這實驗在離線hr指標增長+2.23%,線上未測試。
效果
較SDM模型,CIDM模型線上效果IPV提升4.69%。
精排
背景
精排模型基于DIN(Deep Interest Networks)進行探索與發展,我們的想法是在序列信息基礎之上融入主商品更多的信息。序列信息挖掘和主商品信息強化其實是我們場景兩個需求的外化,主商品信息強化能夠很好地抓住用戶即時意圖,滿足用戶即時的聚焦需求;而序列信息挖掘是基于當前意圖的延伸,能夠一定程度上對意圖進行發散,使推薦結果不會產生過于集中而帶來體驗疲勞。當然這兩方面需要權衡,讓模型識別其中“聚”,“散”的時機與程度。在此基礎上,我們進行了1、挖掘主商品更多的語義信息;2、強化主商品信息對于序列特征抽取的指引與影響。
精排模型——DTIN(Deep Trigger-based Interest Network)
首先,我們希望能夠挖掘主商品更多的語義信息,這一部分,我們將主商品(trigger)相關的特征和待打分商品(candidate)對齊,然后將這部分特征直接拼到模型的wide側,讓模型提升對于主商品表征的敏感度。
其次,由于DIN的motivation是引入注意力機制來更精準的捕獲用戶的興趣點,作為比待打分商品更強的用戶興趣點體現,我們設計了一個雙attention結構來強化這部分信息。如圖所示,首先,將trigger和candidate商品特征concat,傳入第一層attention結構中,學得第一層加權向量
。這部分權值融合了trigger和candidate的信息,它可以被看作基于主商品及待打分商品交叉的用戶興趣提取。然后,僅使用主商品信息作為查詢query傳入第二層attention結構中,學得第二層加權向量
,它可以被看作僅基于即時興趣的延伸興趣捕獲。之后這兩個權重向量按位相乘作為序列加權向量。模型結構設計這部分經歷了大量的探索實驗,如果有興趣歡迎大家一起來討論,這里只呈現我們實驗中效果最佳版本。
效果
較DIN模型,DTIN模型IPV提升9.34%, 對應離線實驗auc提升4.6%,gauc提升5.8%。
粗排
動機
粗排模型為的是解決推薦系統應用于工業界的特殊問題,在召回集合較大時,精排模型因復雜度太高而無法保證打分效率。因而粗排模型應運而生。由于詳情頁分發場景需要從全網億級商品中進行商品召回,且召回階段使用了多種召回方式的組合(包括i2i, 向量召回等)。這使得召回數量級較大,而且多路召回存在交叉使得匹配特征不在同一尺度上,這給后續的精排模型帶來了較大的壓力?;诖耍覀冮_發了橋接召回和精排兩部分的粗排模塊,它的目標是對召回結果進行初篩,不僅需要兼顧效率與精度,也需要具有兼容多尺度召回方式的能力?;谖覀兊膱鼍疤攸c,在粗排初篩階段進行了基于主商品的即時意圖的建模。
模型——Tri-tower(Triple-tower Preparatory Ranking Framework)
出于粗排模型對于效率的要求不能構建過于復雜的結構,基于雙塔粗排模型,我們針對強化即時興趣的方向新添加了一個主商品塔trigger-tower,該塔和商品塔的特征保持一致,在頂端輸出logits后和商品塔做交叉,作為之前雙塔模型的補充添加在sigmoid函數的輸入中。模型結構如下:
其中 Trigger net 和 Item net 使用 item 側更輕量的一些統計類特征,User net也在deep match的基礎上對大規模的id類特征進行了篩檢。確保粗排模型輕量且服務快速。最終三塔粗排模型較無粗排模型,IPV指標提升3.96%。
總結
總體來看,詳情頁分發場景的優化思路比較統一,都是對主商品信息進行挖掘,并在模型中將用戶歷史行為進行關聯加強。我們和傳統的興趣挖掘網絡相比,附增了一道關口(即時興趣強化),將那些明確的,和當前最相關的意圖保留下來。通過這樣的方式,推薦的結果就有一定程度的收斂。同時,多元興趣在模型中并沒有被完全抹去,只是通過attention網絡動態調權來影響結果的發散程度,這也確保我們推薦結果一定的個性化和可發散性。
至此已闡述完“用戶即時興趣強化與延伸”課題在私域分發場景三個主要環節:召回-粗排-精排上面的有收益的嘗試,當然這個過程也伴隨著很多失敗的探索,無論是模型優化和工程實踐上的阻塞,都給我們帶來了豐碩的實踐經驗。除了這三個主要模型外,我們在策略和其他環節的模型上也都針對該問題進行了優化,這里不再贅述。如果您對細節或者后續的優化方向感興趣,歡迎與我們聯系。