當前位置:
首頁 > 科技 > 推薦系統遇上深度學習,9篇阿里推薦論文匯總!

推薦系統遇上深度學習,9篇阿里推薦論文匯總!

作者 | 石曉文

轉載自小小挖掘機(ID: wAIsjwj)

業界常用的推薦系統主要分為兩個階段,召回階段和精排階段,當然有時候在最後還會接一些打散或者探索的規則,這點咱們就不考慮了。

前面九篇文章中,有三篇是召回階段的文章,六篇是排序階段的文章。在召回階段,主要是基於item的embedding來做的,因此前兩篇我們介紹一下大規模商品集下的embedding策略。第三篇將介紹一下深度樹匹配召回模型。在排序階段,主要是進行CTR或者CVR的預估,我們先來介紹一下MLR模型,然後介紹一下主要基於用戶歷史行為來做推薦的DIN、DIEN、DSIN和BST模型。最後介紹一下多任務模型ESMM。

本文主要簡單介紹一下論文中提出的模型的內容,以及為什麼要這麼做。至於詳細的內容,可以通過給出的文章鏈接以及論文進行進一步的學習。

1、Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba

這篇文章中,使用圖嵌入(Graph Embedding)的方法來學習十億級商品的Embedding。基本的過程如下:

首先,將用戶的歷史行為切割為不同的Session,每個Session表示一個行為序列;隨後,將這些行為序列表示為有向帶權圖,圖中的權重代表所有行為序列中兩個物品的行為轉移次數;然後,基於隨機遊走的方式,從圖中得到更多的行為序列;最後,通過Skip-Gram的方式,學習每個物品的Embedding。

為了更好的解決冷啟動問題,在學習物品Embedding時,進一步加入輔助信息Side-Information。這樣,一個物品可表示為[w,w1,..,wn],其中w代表物品本身的Embedding,w1,..,wn代表n中side-information對應的Embedding。這樣,聚合後的物品aggregated embeddings計算有兩種方式,直接平均和加權平均:

直接平均的方式稱為Graph Embedding with Side information (GES),加權平均的方式稱為 Enhanced Graph Embedding with Side information (EGES)。二者的流程如下:

在加入了side-information之後,新加入的物品的embedding可以通過其side-information對應的embedding的平均值來表示了。一般來說新的物品都有對應的side-information。同時embedding基本會按天進行更新。

2、Learning and Transferring IDs Representation in E-commerce

本文提到的方法,大體的過程跟上一篇文章是類似的。但是行為序列直接使用用戶日誌中的行為序列,沒有通過隨機遊走的方式從構造的圖中產生。

在得到行為序列之後,同樣通過Skip-Gram來學習物品的Embedding。每一個物品對應多組Embedding:

此時計算物品之間共現概率的公式如下:

與第一篇文章通過平均把物品本身的Embedding和Side-Information對應的Embedding進行聚合的方式不同。這裡分別計算了兩個物品自身的Embedding和Side-Information對應的Embedding之間的相似性,隨後進行求和作為兩個物品的共現概率。第一種方式中,每個Embedding的長度必須一致,但是在後一種方式中,每種embedding的長度則無須一致。

而權重也是定義好的,並非像第一篇文章一樣通過模型學習得到。權重定義如下:

上面的D是整個商品集,舉個例子來說明一下上面的流程,假設當前是計算品牌這個side-information的權重,商品i的品牌是阿迪達斯,遍歷所有的商品集D,發現共有10個品牌是阿迪達斯的物品,那麼此時的Vik=10,wik=1/10 。而wi1=1是確定的,因為第i個物品在商品集中是唯一出現的。

除了上面計算的item之間的共現概率外,我們還希望,屬性ID和itemID之間也要滿足一定的關係,簡單理解就是希望itemID和其對應的屬性ID關係越近越好,於是定義:

由於每種Embedding長度不同,使用Mk來進行線性變換為一樣的長度。

於是,我們期望最大化的式子為:

此時,對於新的物品,同樣通過其side-information來表示其embedding:

3、TDM:Learning Tree-based Deep Model for Recommender Systems

推薦系統中的召回策略主要有協同過濾、向量化召回。使用協同過濾進行召回的時候,並不能真正的面向全量商品庫來做檢索,如itemCF方法,系統只能在用戶歷史行為過的商品裡面找到侯選的相似商品來做召回,使得整個推薦結果的多樣性和發現性比較差。向量化召回是目前推薦召回核心發展的一代技術,但是它對模型結構做了很大的限制,必須要求模型圍繞著用戶和向量的embedding展開,同時在頂層進行內積運算得到相似性。

基於上面的缺點,阿里提出了深度樹匹配的召回策略。深度樹匹配的核心是構造一棵興趣樹,其葉子結點是全量的物品,每一層代表一種細分的興趣:

接下來,我們主要介紹三個方面的內容:

1)怎麼基於樹來實現高效的檢索

2)怎麼在樹上面做興趣建模

3)興趣樹是怎麼構建的

3.1 怎麼基於樹來實現高效的檢索

在這裡,假設已經得到深度樹的情況下,高效檢索採用的是Beam-Search的方式:

3.2 怎麼在樹上面做興趣建模

在已經得到深度樹的情況下,一個新來的用戶,我們怎麼知道他對哪個分支的興趣更大呢?我們首先需要將樹建立為一棵最大堆樹。

在實踐中,構造最大堆樹可以舉個簡單的例子,假設用戶對葉子層 ITEM6 這樣一個節點是感興趣的,那麼可以認為它的興趣是 1,同層其他的節點興趣為 0,從而也就可以認為 ITEM6 的這個節點上述的路徑的父節點興趣都為 1,那麼這一層就是 SN3 的興趣為 1,其他的為 0,這層就是 LN2 的興趣為 1,其他為 0。如下圖所示:

當建立起如上的樹之後,我們就可以在每一層構建一定的正負樣本,通過構建模型來學慣用戶對於每一層節點的興趣偏好。注意的是,每層的偏好都要學習,也就是說每層都要構建一個模型。同時,模型只需要關心是否足夠擬合樣本就可以了,並沒有要求模型一定要把用戶特徵和 item 特徵轉換為頂層向量內積的形式,這樣就給了模型很大的自由度,只要去擬合好足夠的樣本,那麼任意的模型都是 OK 的。下面是一個模型的示例:

3.3 興趣樹是怎麼構建的

前面兩個問題,都是在給定樹結構的情況下來介紹的,那麼怎麼來構建一棵興趣樹呢?每層是怎麼分叉的呢?

樹的葉節點對應具體的 item,目標是構建一個好的樹結構來優化我們的檢索效果。通過前面的分析知道,在進行興趣建模時,對於葉子層的樣本我們通過用戶行為反饋得到,而中間層的樣本則通過樹結構採樣得到。所以樹結構決定了中間層的樣本。

在進行快速檢索時,採用從頂向下的檢索策略,利用的是對每一層節點興趣建模進行快速剪枝。要保證最終的檢索效果,就需要每一層的興趣判別模型能力足夠強。由於樹結構負責我們中間層的樣本生成,所以我們的思路是通過優化樹結構影響樣本生成進而提升模型能力。具體來說,通過樹結構優化降低中間層的樣本混淆度,讓中間層樣本儘可能可分。

所以,整個樹結構的生成創建和優化的過程,實際上是圍繞著怎麼來生成更好的樣本、幫助模型學習的視角進行的,而不是只是考慮相似、聚類這樣的模式。那麼這裡的核心方案是什麼呢?

方案總結來說,就是最小化用戶行為序列中相近的item-pair在樹上的距離。假設用戶的行為序列為A-》B-》D-》C,那麼我們希望(A,B),(B,D),(D,C)在樹上的距離越近越好。兩個葉子結點的距離通過其最近的公共祖先確定。

好了,到這裡,對深度樹匹配模型做一個簡單的總結:

4、Learning Piece-wise Linear Models from Large Scale Data for Ad Click Prediction

這篇文章介紹的方法就是我們所熟知的MLR(mixed logistic regression)演算法。MLR可以看做是對LR的一個自然推廣,它採用分而治之的思路,用分片線性的模式來擬合高維空間的非線性分類面,其形式化表達如下:

其中u是聚類參數,決定了空間的劃分,w是分類參數,決定空間內的預測。這裡面超參數分片數m可以較好地平衡模型的擬合與推廣能力。當m=1時MLR就退化為普通的LR,m越大模型的擬合能力越強,但是模型參數規模隨m線性增長,相應所需的訓練樣本也隨之增長。因此實際應用中m需要根據實際情況進行選擇。例如,在阿里的場景中,m一般選擇為12。下圖中MLR模型用4個分片可以完美地擬合出數據中的菱形分類面。

在實際中,MLR演算法常用的形式如下,使用softmax作為分片函數:

關於損失函數的設計,採用了logloss以及L1,L2正則,形式如下:

5、Deep Interest Network for Click-Through Rate Prediction

阿里相關人員通過觀察收集到的線上數據,發現了電商領域用戶行為數據中兩個很重要的特性,分別是Diversity和Local activation。Diversity指用戶在瀏覽電商網站的過程中顯示出的興趣是十分多樣性的;Local activation指由於用戶興趣的多樣性,只有部分歷史數據會影響到當次推薦的物品是否被點擊,而不是所有的歷史記錄。

針對上面提到的用戶行為中存在的兩種特性,阿里將其運用於自身的推薦系統中,推出了深度興趣網路DIN,其架構如下:

DIN模型結構相對還是簡單的,用戶歷史行為序列中每一個物品都對應著物品ID和店鋪ID,目標物品(廣告)也有物品ID和店鋪ID,物品ID和店鋪ID都會轉換為對應的Embedding。隨後,行為序列中物品ID對應的Embedding會分別與目標物品ID的Embedding計算attention score,並根據attention score求加權平均;行為序列中物品對應店鋪ID的Embedding會分別與目標物品對應店鋪ID的Embedding計算attention score,並根據attention score求加權平均。最後,所有的向量拼接後,通過全連接神經網路得到最終的輸出。

6、Deep Interest Evolution Network for Click-Through Rate Prediction

DIN中存在兩個缺點,首先用戶的興趣是不斷進化的,而DIN抽取的用戶興趣之間是獨立無關聯的,沒有捕獲到興趣的動態進化性,其次是通過用戶的顯式的行為來表達用戶隱含的興趣,這一準確性無法得到保證。

基於以上兩點,阿里提出了深度興趣演化網路DIEN來CTR預估的性能,其模型結構如下:

DIEN中包含Embedding層、興趣抽取層Interest Extractor Layer、興趣進化層Interest Evolution Layer和全連接層。

興趣抽取層Interest Extractor Layer的主要目標是從embedding數據中提取出interest。但一個用戶在某一時間的interest不僅與當前的behavior有關,也與之前的behavior相關,所以作者們使用GRU單元來提取interest。在興趣抽取層,為了判定興趣是否表示的合理,文中別出心裁的增加了一個輔助loss,來提升興趣表達的準確性:

這裡,作者設計了一個二分類模型來計算興趣抽取的準確性,我們將用戶下一時刻真實的行為e(t 1)作為正例,負採樣得到的行為作為負例e(t 1)",分別與抽取出的興趣h(t)結合輸入到設計的輔助網路中,得到預測結果,並通過logloss計算一個輔助的損失。

興趣進化層Interest Evolution Layer的主要目標是刻畫用戶興趣的進化過程。用戶的興趣在變化過程中遵循如下規律:1)interest drift:用戶在某一段時間的interest會有一定的集中性。比如用戶可能在一段時間內不斷買書,在另一段時間內不斷買衣服。2)interest individual:一種interest有自己的發展趨勢,不同種類的interest之間很少相互影響,例如買書和買衣服的interest基本互不相關。為了利用這兩個時序特徵,這裡通過attention機制以找到與target AD相關的interest。同時把attention score加入到GRU單元中。

7、Deep Session Interest Network for Click-Through Rate Prediction

從用戶行為中呢,我們發現,在每個會話中的行為是相近的,而在不同會話之間差別是很大的。為了刻畫這種與行為密切相關的行為表現,阿里提出了深度會話興趣網路Deep Session Interest Network。其模型結構如下:

DSIN在全連接層之前,分成了兩部分,左邊的那一部分,將用戶特徵和物品特徵轉換對應的向量表示,這部分主要是一個embedding層。右邊的那一部分主要是對用戶行為序列進行處理,從下到上分為四層:

1)序列切分層session division layer

2)會話興趣抽取層session interest extractor layer

3)會話間興趣交互層session interest interacting layer

4)會話興趣激活層session interest acti- vating layer

Session Division Layer這一層將用戶的行文進行切分,首先將用戶的點擊行為按照時間排序,判斷每兩個行為之間的時間間隔,前後的時間間隔大於30min,就進行切分。切分後,我們可以將用戶的行為序列S轉換成會話序列Q。第k個會話Qk=[b1;b2;...;bi;...;bT],其中,T是會話的長度,bi是會話中第i個行為,是一個d維的embedding向量。所以Qk是T * d的。而Q,則是K * T * d的

在Session Interest Extractor Layer,使用transformer對每個會話的行為進行處理。同時在Transformer中,對輸入的序列會進行Positional Encoding。經過Transformer處理之後,經過一個avg pooling操作,將每個session興趣轉換成一個d維向量。

在Session Interest Interacting Layer,通過一個雙向LSTM(bi-LSTM)來獲取用戶的會話興趣,得到的隱藏層狀態Ht,我們可以認為是混合了上下文信息的會話興趣。

在Session Interest Activating Layer,通過注意力機制來刻畫用戶的會話興趣與目標物品的相關性,attention分成了兩個部分,分別是目標物品與原始會話興趣的相關性(沒有通過bi-LSTM前的會話向量)以及目標物品與混合了上下文信息的會話興趣(通過bi-LSTM後得到的隱藏層向量)的相關性。

最後的話,就是把四部分的向量:用戶特徵向量、待推薦物品向量、會話興趣加權向量UI、帶上下文信息的會話興趣加權向量UH進行橫向拼接,輸入到全連接層中,得到輸出。

8、Behavior Sequence Transformer for E-commerce Recommendation in Alibaba

為了能夠將用戶行為序列以及序列中商品與待推薦商品之間的相關性等因素加入到模型中,阿里嘗試用NLP領域中大放異彩的Transformer模型來做推薦任務,提出了Behavior Sequence Transformer,簡稱BST模型,其整體的架構如下:

為了將行為序列信息加入到模型中,在Embedding Layer中,加入了位置特徵的Embedding,第i個位置的位置特徵計算方式為pos(vi)=t(vt)-t(vi),其中,t(vt) 表示推薦的時間戳,t(vi) 表示用戶點擊商品vi時的時間戳。至於如何將一個時間戳轉化為低維向量,可能是進行離散化後再轉化為embedding。

在Transformer Layer,並不是只有行為序列中商品來做multi-head attention,待推薦的商品也會加入其中,這樣其實就包含了行為序列中商品與待推薦商品之間的相關性。

9、Entire Space Multi-Task Model: An E ective Approach for Estimating Post-Click Conversion Rate

本文介紹的是一個Multi-Task的方法,稱為ESMM。其關注的焦點是CVR預估,CVR代表從點擊到購買的轉化。不過傳統的CVR預估問題存在著兩個主要的問題:樣本選擇偏差和稀疏數據。如下圖:

樣本選擇偏差(sample selection bias,SSB)指訓練模型僅通過有點擊行為的樣本空間即途中灰色橢圓部分來進行,但訓練好的模型是在整個樣本空間X去做推斷的。數據稀疏(data sparsity,DS)指點擊行為的樣本空間相對於整個樣本空間來說是很小的。

ESMM模型借鑒了多任務學習的思路,引入了兩個輔助的學習任務,分別用來擬合pCTR和pCTCVR,從而同時消除了上文提到的兩個挑戰。ESMM模型能夠充分利用用戶行為的順序性模式,其模型架構下圖所示:

可以看到,ESMM模型由兩個子網路組成,左邊的子網路用來擬合pCVR,右邊的子網路用來擬合pCTR,同時,兩個子網路的輸出相乘之後可以得到pCTCVR。因此,該網路結構共有三個子任務,分別用於輸出pCTR、pCVR和pCTCVR。

假設我們用x表示feature(即impression),y表示點擊,z表示轉化,那麼根據pCTCVR = pCTR * pCVR,可以得到:

將乘法轉化為除法,我們可以得到pCVR的計算:

由上面提到的等式可以看出,pCVR是可以通過pCTR和pCTCVR的預估推導出來的。因此,我們只需要關注pCTR和pCTCVR兩個任務即可。為什麼是這兩個任務呢?其實就是為了消除樣本選擇偏差嘛,因為CVR是從click到conversion,而CTCVR是從impression到conversion,CTR是從impression到conversion,所以CTR和CTCVR都可以從整個樣本空間進行訓練,一定程度的消除了樣本選擇偏差。

(*本文由 AI科技大本營轉載,轉載請聯繫原作者)

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI科技大本營 的精彩文章:

Python處理文件系統的10種方法
英特爾蠶食AMD和NVIDIA?

TAG:AI科技大本營 |