01.13 推薦系統中的深度匹配模型(下)

4.2.9 FGCNN 模型 ( Feature Generate by CNN )

CNN 模型在圖像,語音,NLP 領域都是非常重要的特徵提取器,原因是對圖像、視頻、語言來說,存在著很強的 local connection 信息。而在推薦系統中由於特徵輸入都是稀疏無序的,很難直接利用 CNN 作為特徵提取。華為諾亞方舟在2019年的 WWW 會議上提出了一種巧妙的利用 CNN 提取特徵的方法 FGCNN,整個模型框架如圖4.30所示。

推薦系統中的深度匹配模型(下)

圖4.30 FGCNN 模型框架

其中利用 CNN 提取新特徵是整個 paper 的核心模塊,具體框架如圖4.31所示,可以分為4個層,卷積層、池化層、重組層以及特徵輸出層。下面分別介紹這4個不同的層,分別看下各自的輸入,輸出以及具體的網絡結構。

推薦系統中的深度匹配模型(下)

圖4.31 CNN 模塊從原始特徵提取新特徵

❶ 卷積層 Convolution Layer

推薦系統中的深度匹配模型(下)

圖4.32 卷積層的特徵卷積過程

原始 one-hot 特徵經過 embedding 後,進入的是卷積層。卷積的思想和 TextCNN 類似,通過一個高度為 hp,寬度為 d 的卷積核進行卷積;其中高度 hp 代表的是每次卷積連接的鄰域的個數,以圖4.32為例,hp=2,表示二維特徵的交叉,從上到下卷積,表示的是 N&A,A&H,H&G 卷積,分別表示名字和年齡、年齡和身高、身高和性別的交叉;而寬度方向 d 需要和 embedding 的維度 d 保持一致,這和 TextCNN 的思想是一致的,只在高度方向上進行卷積。

① Convolutional layer 輸入

特徵 one-hot 之後經過 embedding 層後的輸出作為卷積層的輸入,輸入維度為 nf*k。nf 為 field 個數,k 為隱層維度

② Convolutional layer 輸出

經過二維平面大小不變,增加第三維卷積核大小,第一層卷積層的輸出大小為 nf*k*mc1,C1為第1個卷積層的卷積個數,以 l=1 為例,C:,:,i 表示的是第一層卷積層第 i 個 feature-map,每個 feature map 的大小為 nf*k,Cp,q,i 表示的是第一層第 i 個 feature map 的座標為 (p,q) 的元素:

推薦系統中的深度匹配模型(下)

❷ 池化層 Pooling Layer

特徵經過第一層卷積層之後,從 nf*k 變成了 nf*k*mc1,維度反而擴了 mc1 倍,這和預期的特徵降維不一致,解決辦法和 CNN 裡常用的套路一樣,通過 pooling 做降維。該 paper 使用的是 max pooling,在原先卷積高度 hp 上選擇最大值作為卷積後的特徵表達,表達如下所示:

推薦系統中的深度匹配模型(下)

① pooling 層輸入

卷積層的輸出作為池化層的輸出,以第一層為例,pooling 層的輸入維度為 nf*k*mc1。

② pooling 層輸出

卷積層輸出的時候在高度方向上選擇 max,只有高度方向維度發生變化,卷積輸出後維度為nf/hp * k *mc1,hp 為卷積核高度,相當於沿著 field 的方向壓縮了 hp 倍。

❸ 重組層 Recombination Layer

經過特徵卷積層和特徵池化層後,可以通過特徵重組 Recombination layer 生成新的特徵組了。還是以第一層的 Recombination layer 為例,mc1 為原始 feature map 的個數,mr1為新生成的特徵 feature map 的個數:

推薦系統中的深度匹配模型(下)

其中 S1 為池化層的輸出,而 WR1 和 BR1 為該層待學習的參數。

① Recombination 層輸入

卷積層的輸出 S1 為該層的輸入,通過 WR1 的矩陣進行特徵的 recombination

② Recombination 層輸出

新生成的特徵維度為 nf/hp*k*mr1

❹ 特徵輸出層 Concatenation Layer

第一層 Convolution layer -> pooling layer -> recombination layer 後,生成第一層的新特徵 R1,連同第2,3,4,…,nc 層的新特徵 R2,R3,R4,…,Rnc 層一起 concat 起來,組成新的特徵 R=(R1,R2,…,Rnc)。之後 R 可以和原始特徵一樣做各種可能的交叉,例如和原始特徵做二階交叉等,再一起輸入到模型層。

推薦系統中的深度匹配模型(下)

圖4.33 FGCNN 新特徵的生成

① concatenation 層輸入

重組層 Recombination layer 輸出的新特徵 R1,R2,R3, Rnc,作為 concatenation layer 的輸入

② concatenation 層輸出

原有的特徵E和新特徵 R 連在一起作為 concatenation 的特徵輸出,作為 NN 層的輸入

4.2.10 FiBiNet 模型 ( Feature Importance & Bilinear feature Interaction )

新浪微博張俊林團隊2019年提出的結合特徵重要性 ( Fi ) 和雙線性特徵交叉 ( Bi ) 的方法,Feature Importance & Bilinear feature Interaction,簡稱 FiBiNet,其實是兩個相對獨立的模塊,兩個模塊可以獨立套用在其他的網絡結構上,整體框架如圖4.34所示。

推薦系統中的深度匹配模型(下)

圖4.34 FiBiNet 模型框架

❶ SENet:特徵重要性提取層

該層作用主要是提取特徵重要性。可以分為三層 Squeeze, Extract, Reweight,從原始的特徵 e1,e2,e3,…,ef 提取到新的特徵 v1,v2,v3,…, vf,其中 f 為特徵 field 的個數,整體框架如下:

推薦系統中的深度匹配模型(下)

圖4.35 SENet 框架

① Squeeze 層

特徵壓縮層,對每個特徵組中的 embedding 向量進行彙總統計量的 pooling 操作,每個 field 的維度為 k,從中 squeeze 壓縮提取最重要的1維。典型的方法一般有 Max pooling 或者 average pooling,在更原始的 SENet 裡用的是 max pooling,但是在該 paper 裡作者提到 average pooling 表現更好,個人其實也傾向於認為 average pooling 直覺上更加 make sense,只用 max pooling 從 d 維特徵提取一維信息損失實在太大。當然具體表現也需要結合具體數據實驗才知道:

推薦系統中的深度匹配模型(下)

經過 S 層,第 i 維特徵從 ei 變成了 zi,從維度為 d 的向量變成了一個維度為1的實數。整個輸入從 f*d 的矩陣變為 f 維的向量。

② Excitation 層

特徵激活層,向量先做壓縮 r ( r 為壓縮的倍數 ),然後擴展恢復,類似 auto-encoder 思路:

推薦系統中的深度匹配模型(下)

W1 和 W2 為兩個轉換矩陣,先經過壓縮然後恢復,最終得到的 A 還是一個維度為 f 的向量。

③ Reweight 層

經過前面 Squeeze 和 Excitation 得到的 A 相當於是原始特徵 E 的權重向量,乘以原始的特徵 E 後,可以得到最終加權提取的 V 向量,可以認為是原始特徵的重要性表達:

推薦系統中的深度匹配模型(下)

總結來說:SENet,用兩層全連接階層提取每個 field 的特徵重要性:

S 層:壓縮提取 field 中最重要的特徵 ( max 或者 average 特徵 )

E 層:對 s 層提取的特徵信息進行 auto-encoder 式的信息提取

R 層:SE 提取到的每個 field 特徵重要性,進行加權提取

❷ Bilinear 特徵交叉層

從 SENet 提取到的新特徵 V,還有原始特徵 E,可以組合成為新的特徵一起輸入到模型的 MLP 網絡中。但是如前面提到的 MLP 對特徵交叉很弱的學習能力一樣,本文一樣提出了一些做特徵交叉的方法。我們回顧下在前面提到的兩個向量的交叉,無非是向量內積,得到一個實數;或者是向量的哈達馬積分如圖4.36的 a 所示,得到的還是一個向量,如圖中4.36的 b 方法所示。這兩種方法都是直接計算的,沒有新的參數學習。在該 paper 中,作者提出了另一種引入參數的方法,也就是 Bilinear 雙線性特徵交叉的方法,如圖中4.36的 c 方法所示:

推薦系統中的深度匹配模型(下)

圖4.36 不同特徵交叉方法

假設特徵 field 的個數是 f 個,每個 field 的隱層維度為 d。那麼,如何確定需要學習的參數 W 呢?根據 W 的共享情況,可以分為以下三種類型:

① field type

W 在所有特徵之間是完全共享的,也就是說在任意兩個需要交叉的特徵 i 和特徵 j 之間 ( vi,vj ) 共享一個 W,W 的參數維度為 k*k:

推薦系統中的深度匹配模型(下)

② field each

對於每個特徵 i 來說,都需要學習唯一的一個 Wi 矩陣,該 Wi 只和左乘的特徵 vi 有關,和右乘特徵 vj 無關,一共有 f 個 field,所以 W 的參數維度為 f*k*k:

推薦系統中的深度匹配模型(下)

③ field-interaction type

對於任意兩個需要交叉的特徵 vi 和 vj,都需要學習一個唯一的矩陣 Wij,Wij不僅和左乘的特徵有關,也和右乘的特徵有關,也就是說,vi 和 vj 的交叉,以及 vj 和 vi 的特徵交叉,兩者用到的 Wij 和 Wji 是不一樣的,所以 W 的參數維度為 f*f*k*k:

推薦系統中的深度匹配模型(下)

當然,以上三種不同的特徵類型沒有絕對的誰好誰壞,不存在越複雜效果越好的情況,對於簡單的數據集,可能 w 共享是最好的,具體還是需要實驗才能知道。在文章裡用了 criteio 和 avazu 數據集進行實驗時,使用不同的模型,三種交叉方法也是各有千秋。

總結本文的兩個核心工作,第一個工作,SENet,目的是從一個 f*d 的特徵向量中,提取得到表達了特徵重要性的同樣維度為 f*d 的新特徵向量,該網絡結構可以和其他模型結構套用。第二個工作 bi-net,從輸入的 embedding 特徵中提出了幾種不同的特徵交叉的方法,也可以給其他網絡模型做特徵交叉提供一些不同的手段。

4.2.11 AutoInt 模型 ( Auto Feature Interaction )

目前為止講到的模型中,使用到 attention 的是 AFM 模型,而在 AutoInt 文章中,作者除了 attention 機制,還使用了在 transform 中很火的 multi-head 和 self-attention 的概念,整體框架如圖4.37所示。

推薦系統中的深度匹配模型(下)

圖4.37 AutoInt 模型框架

文章中的輸入沒有什麼特別需要講的,就是常規的 one-hot 稀疏的特徵經過 embedding 層得到 dense value。這裡 embedding 層倒是值得一提,一般在大多數推薦系統裡,對於 one-hot 做 embedding 是因為需要轉成 dense 的特徵,而原本就是 dense 的特徵原本就是定長 dense 特徵,比較少見到做 embedding 的,而在該文章中將連續值特徵和 one-hot 一樣去做 embedding 處理。不過這一塊不影響 auto-int 部分的理解。

推薦系統中的深度匹配模型(下)

圖4.38 embedding 層輸入

該 paper 裡提到的 attention 機制,才是文章裡的核心亮點,在介紹文章的核心機制之前,先在這裡簡單介紹下 NLP 裡的 attention 裡涉及到的3個重要的概念,query,keys,value。想象一下,你在搜索引擎輸入了一個搜索詞,這個搜索詞就是 query,假設你搜了 "應用寶",然後存在一堆候選結果就叫做 keys,例如 "下載 app 的地方","手機應用市場","app store","手機系統" 等等,對這裡的每個 key,都去計算和候選詞 query 的相似度,例如 "手機應用市場" 對 "應用寶" 的權重,顯然是要高於 "手機系統",最終的表達,其實就是每個 keys 的 value 的加權求和,也就是說,誰和 query 的相似度高,在結果中 value 的權重佔比就更高。經典的 QKV 結果表達如下:

推薦系統中的深度匹配模型(下)

回到本文的 attention 機制中,假設特徵 field 個數為 M,對於第 m 個 field,在第 h 個 head 空間下的特徵表達如下:

推薦系統中的深度匹配模型(下)

圖4.39 特徵 m 在空間 h下的 QKV 結構

❶ 特徵 m 在空間 h 下的新映射

每個特徵 m,在空間 h 下都有3組向量表示,分表代表特徵 m 在空間 h 下的 query 向量 Equery、key 向量 Ekey、value 向量 Evalue:

推薦系統中的深度匹配模型(下)

這裡需要學習的參數為 WQuery,Wkey,Wvalue,每個矩陣的維度為 d'*d,從而將特徵從 d 維映射為 d'。W 在所有特徵中都是共享的,並不是每組特徵都需要學習3個 W。

❷ 特徵 k 對特徵 m 相似度表達,使用向量的點積:

推薦系統中的深度匹配模型(下)

❸ 特徵 k 對特徵 m 的歸一化注意力 ( M 個特徵做歸一化 )

推薦系統中的深度匹配模型(下)

❹ 特徵 m 在空間 h 下的加權新特徵:

推薦系統中的深度匹配模型(下)

❺ 特徵 m 的全空間表達:

推薦系統中的深度匹配模型(下)

有 H 個 head,特徵 m 最終的表達為 H 個新特徵的 concat,特徵長度為 H*d'。

❻ 特徵 m 最終表達:resnet 保留原始信息

推薦系統中的深度匹配模型(下)

作者為了保留更多信息,除了第5步得到的 multi-head 的新特徵,也將原始的特徵 em 引入到進來,其實就是一種 resnet 思路,所以在這裡需要有個額外的參數 WRes 需要學習,需要將原始的特徵維度 d 映射為和 em 一致的 H*d',所以 WRes 的參數維度為 d'*H*d。

4.2.12 DIN 模型 ( Deep Interest Network )

4.2.11提到的 AutoInt 裡特徵的 attention 機制有個特點,就是在計算特徵的重要性的時候,所有特徵都有機會成為 query, 將其他特徵作為 keys 去計算和當前 query 的重要性從而得到權重的。而提到推薦系統裡的 attention 機制,不得不提的就是阿里的這篇 deep interest network 了,簡稱 DIN。工業界的做法不像學術界,很多模型網絡結構優化並不一味的追求模型的複雜和網絡結構有多 fancy,每一步背後都有大量的業務思考後沉澱下來的。

阿里這篇 DIN 也如此。在瞭解 DIN 之前,我們先看下 DIN 前身的模型,GwEN 模型 ( Group-wise Embedding Network,阿里內部稱呼 )。

推薦系統中的深度匹配模型(下)

圖4.40 GwEN 模型結構 ( DIN 的 baseline )

前面講到的很多模型,輸入層都是大規模稀疏特徵,經過 embedding 層後輸入到 MLP 網絡中。這裡的一個假設就是,每個 field 都是 one-hot 的,如果不是 one-hot 而是 multi-hot,那麼就用 pooling 的方式,如 sum pooling,average pooling,max pooling 等,這樣才能保證每個特徵 field embedding 都是定長的。DIN 的前身 GwEN 模型也一樣,對於 multi-hot 特徵的典型代表,用戶歷史行為,比如用戶在電商系統裡購買過的商品,往往都是幾十幾百甚至幾千的,需要經過 sum pooling 和其他特徵 concat 一起。

而這種數學假設其實往往都是和實際的發生場景不一致的。例如一個女性用戶過去在淘寶買過白色針織衫、連衣裙、帽子、高跟鞋、單肩包、洗漱用品等,當前候選商品是一件黑色外套,白色針織衫對黑色外套的權重影響應該更大,洗漱用品權重應該更小。如果將這些歷史行為過的商品做 sum pooling,那麼無論對於當前推薦什麼商品,用戶都是一個固定向量的表達,信息損失很大,顯然優化空間很大。

推薦系統中的深度匹配模型(下)

圖4.41 DIN 模型框架

針對 sum/average pooling 的缺點,DIN 提出了一種 local activation 的思想,基於一種基本的假設:用戶歷史不同的行為,對當前不同的商品權重是不一樣的。例如用戶過去有 a,b,c 三個行為,如果當前商品是 d,那麼 a,b,c 的權重可能是 0.8,0.2,0.2;如果是商品 e,那麼 a,b,c 的權重可能變成了0.4,0.8,0.1。也就是說,不同的 query,激發用戶歷史行為不同的 keys 的權重是不一樣的。

推薦系統中的深度匹配模型(下)

① query:用戶歷史行為,長度為 H,e1,e2,…,eH 表示用戶歷史行為的向量表示。

② keys:當前候選廣告 ( 店鋪、類目、或者其他 item 實體 )

關於 DIN 裡的 activation weight 還有個可以稍微講幾句的點。兩個向量的相似度,在前面講各種 CF 的方法的時候基本是用的點積或者 cosine,2017年 DIN 掛在 arXiv 的版本中是使用了兩個向量本身以及 concat 後進入 MLP 得到其相似度,2018發在 KDD 的版本中多了 outer product,以及向量相減,相當於引入和保留了更多特徵的信息。另外作者在文章提到為了保持不同歷史行為對當前 attention 的影響,權重也不做歸一化,這個和原始的 attention 也有所不同。

推薦系統中的深度匹配模型(下)

圖4.42 DIN 模型中的 Attention Unit

作為工業界的落地實踐,阿里在 DIN 上很 "剋制" 的只用了最能表達用戶個性化需求的特徵--用戶行為 keys,而 query 也是當前候選的商品廣告,與線上提升 ctr 的指標更為吻合,對工業界的推薦系統來說借鑑意義還是很大的。當然這不是說之前的其他 attention 機制模型沒用,不同的數據集,不同的落地場景需求不一致,也給工業界更多的嘗試提供了很多思路的借鑑。

4.2.13 DIEN 模型 ( Deep Interest Evolution Network )

在前面講到的模型中,所使用的特徵都是時間無序的,DIN 也如此,用戶的行為特徵之間並沒有先後順序,強調的是用戶興趣的多樣性。但是實際用戶的興趣應該是在不斷進化的,用戶越近期的行為,對於預測後續的行為越重要,而用戶越早期的行為,對於預測後續行為的權重影響應該小一點。因此,為了捕獲用戶行為興趣隨時間如何發展變化,在din提出一年後,阿里又進一步提出了 DIEN,引入了時間序列概念,深度興趣進化網絡。

DIEN 文章裡提到,在以往的推薦模型中存在的序列模型中,主要利用 RNN 來捕獲用戶行為序列也就是用戶歷史行為數據中的依賴關係,比對用戶行為序列直接做 pooling 要好。但是以往這些模型有兩個缺點,第一是直接將 RNN 的隱層作為興趣表達,而一般來隱層的表達和真正表達的商品 embedding 一般不是等價的,並不能直接反映用戶的興趣;另外一點,RNN 將用戶歷史行為的每個行為看成等權的一般來說也不合理。整個 DIEN 的整體框架,如圖4.43所示。

推薦系統中的深度匹配模型(下)

圖4.43 DIEN 模型框架

❶ 輸入層

和 DIN 的輸入一樣。按照類型可以分為4大類

① 用戶畫像特徵:如年齡、性別、職業等

② context 特徵:如網絡環境、時間、IP 地址、手機型號等,與 user 以及 item 無關

③ target ad 特徵:當前候選廣告

④ 用戶行為特徵:DIEN 裡最重要的能體現用戶個性化的特徵,對於每個用戶來說,假設有 T 個歷史行為,按照發生的先後順序依次輸入模型

❷ embedding 層

將 one-hot 特徵轉為 dense 的 embedding 向量

❸ 興趣抽取層 ( interest extractor layer )

該層的主要作用和 DIN 一樣,為了從 embedding 層中抽取出用戶的興趣。該 paper 認為用戶當前對候選廣告是否感興趣,是和歷史行為 behavior 有關的,所以引入了 GRU 的序列模型來擬合抽取用戶興趣。

推薦系統中的深度匹配模型(下)

經過 GRU 結構後,商品的 embedding 表達從 e(t) 變成了 h(t),表示第 t 個行為序列的 embedding 表達。

推薦系統中的深度匹配模型(下)

圖4.44 DIEN 中的輔助 loss 結構

除了 GRU 結構提取隱層的向量,DIEN 還引入了有監督學習,強行讓原始的行為向量 e(t) 和 h(t) 產生交互。如圖4.44所示,引入了輔助 loss(auxiliary loss),當前時刻 h(t) 作為輸入,下一刻的輸入 e(t+1) 認為是正樣本 (click),負樣本進行負採樣 ( 不等於當前時刻 );然後讓 h(t) 與正負樣本分別做向量內積,輔助 loss 定義為:

推薦系統中的深度匹配模型(下)

最終的 loss 表達為:

推薦系統中的深度匹配模型(下)

其中 a 為超參數,代表的是輔助 loss 對整體 loss 的貢獻。有了這個輔助 loss,t 時刻提取的隱層向量 h(t) 可以比原始的 h(t) 更有助於表達用戶興趣,也可以加速網絡的訓練過程。

❹ 興趣進化層 ( interest evolving layer )

理論上來說,h(t) 如果替代 e(t) 作為商品的最終表達其實也是可以的,把用戶序列 t=1,2,3,…,T 當成用戶的 T 個行為過的商品,然後和當前的候選廣告套用 DIN 的 attention 網絡去計算每個行為和當前候選廣告的權重,最終得到用戶的歷史行為加權表達也是完全 ok 的。但作者認為用戶的行為模式是會發展的,因此引入了第二層 GRU 網絡來學習每個歷史行為序列和當前候選廣告之間的權重。

對於每個歷史行為 ht,當前候選廣告 ea,通過 softmax 求出兩者的權重。注意這裡不是直接向量點擊,而是引入了矩陣 W,可以認為是簡單的一層全連接網絡。

推薦系統中的深度匹配模型(下)

如何使用這裡學習的 attention 作為興趣進化層的輸入,作者又提出了三種計算方法:

❶ AIGRU ( attention input with GRU )

最基礎的版本,興趣進化層第 t 個行為序列的 input 就是隱層 ht 的加權:

推薦系統中的深度匹配模型(下)

作者嘗試後發現效果並不好,原因是如果是輸入0,也會參與到隱層 ht 的計算和更新,相當於給用戶興趣的提取引入了噪音,不相關的用戶行為會干擾模型的學習。

❷ AGRU ( attention base GRU )

這裡作者使用了 attention 權重 at 來取代原始 GRU 中的更新門,表達如下:

推薦系統中的深度匹配模型(下)

❸ AUGRU ( GRU with attentional update gate )

這裡作者依然對原始 GRU 做了改造,公式如下:

推薦系統中的深度匹配模型(下)

推薦系統中的深度匹配模型(下)

圖4.45 AUGRU 結構

其中,ut' 引入了 at 來取代原有的更新向量 ut,表達的是當前 ut' 對結果的影響。如果當前權重 at 較大,ut' 也較大,當前時刻 ht' 保留更多,上一個時刻 ht-1 影響也會少一點。從而整個 AUGRU 結果可以更平滑的學習用戶興趣。

4.3 Feature-based 模型總結

Feature-based 的模型主要在於學習特徵之間的交叉,是近年來整個推薦系統在排序層面的主流研究方向,按照不同維度,我個人把4.2列到的模型分為4個類型,同一個模型可能會分到不同的類型裡。這裡的分類僅僅代表個人的觀點,歡迎探討。

4.3.1 基於框架的模型

① wide&deep 模型

深度加寬度的模型範式,本身並不是一個具體的模型,wide 和 deep 部分可以用任意結構框架,wide 的 baseline 是 LR 模型;deep 的 baseline 是 MLP 模型。

② deep crossing 模型

和 wide&deep 最大的不同是 deep 部分引用了 res-net,但個人覺得在目前主流的模型裡用的較少。雖然 res-net 理論上可以使用更深的模型提升效果,但在目前工業界大規模稀疏的推薦系統裡,還沒見到太多往 res-net 方向取得較大進展的工作。

4.3.2 基於 FM 特徵二階組合的模型

學習特徵交叉的主要手段是將特徵的 embedding 做交叉,特點是特徵的交叉是二維的,無非是二階交叉如何做。

① deepFM 模型

特徵交叉使用的 element-wise product,最終得到的是一個實數。

② NFM 模型

交叉使用的 bi-interaction,可以理解成是所有 vector 的 sum pooling,最終得到的是一個向量。

③ AFM 模型

交叉使用的帶權重的 bi-interaction,可以理解成所有 vector 的 weight sum pooling,然後使用一個簡單的線性模型得到最終的值。

④ PNN 模型

PNN 模型放到基於 FM 的模型是因為本質上和 FM 一樣,都是在學習特徵的二階組合。和 deepFM 不同的是,以 IPNN 為例,PNN 的所有特徵兩兩 product 交叉學習得到的值 conat 後得到現實的 product vector 後進入 MLP 模型;而 deepFM 是直接將 FM 模型的 vector 輸入到 MLP 模型中。

4.3.3 基於 attention 的模型

① AutoInt 模型

使用 multi head 機制,每個特徵用 self-attention 得到其他特徵和自己的 attention 權重。每個特徵的所有 head 得到的特徵 concat 起來作為新特徵。

② DIN 模型

只使用戶歷史行為特徵作為 keys,keys 之前沒有時間序列;得到 keys 和當前候選 item 的 attention。

③ DIEN 模型

只使用用戶歷史行為特徵作為 keys,keys 之間具有先後順序,引入兩層 GRU 表達,第一層 GRU 學習用戶歷史行為序列的信息,每個時刻 t 輸出的隱層 embedding 為該時刻 item 的 embedding 表達;第二層 GRU 用來學習歷史每個時刻 t 的歷史行為和當前候選廣告的權重。

④ FiBiNet 模型

把 FiBiNet 模型放在 attention 模型主要是它的 SENet 部分,通過 squeeze -> Excitation -> reweight 提取原始 embedding 的特徵重要性,得到新特徵,這裡其實也體現了每個特徵 embedding 的 attention。

4.3.4 基於特徵高階組合的模型

① DCN 模型

使用多層的 cross 來做特徵交叉,對於 cross 網絡中每一層的輸入都由前一層以及第一層的輸入組成,從這個維度上代表的是高階特徵的組合。比如說,第四層網絡的輸出包含了第三層和第二層的輸入;而第三層又包含了第二層和第一層,因此這裡就是個3階的特徵交叉。特徵的交叉使用的是 bit-wise,也就是每個特徵內部 embedding 的 element 也會兩兩交叉。

② xDeepFM 模型

使用 CIN 模型來提取特徵交叉。和 DCN 模型一樣的是,這裡也使用了多層的 cross,每一層的輸入也是由第一層和上一層的輸入組成,不同的是,xdeepFM 模型的特徵交叉是 vector wise 層級的,而 DCN 模型是 bit-wise 的。

③ FGCNN 模型

通過使用 CNN 模塊,先是卷積層提取局部特徵的連接,如高度等於3能夠提取相鄰3個 field 的特徵的關係,因此具有高階特徵的交叉能力。然後又通過池化層提取 global 信息,確保特徵的輸入順序對結果的影響能夠被捕捉到。

05

總結

推薦和搜索的本質其實都是匹配,前者匹配用戶和物品;後者匹配 query 和 doc。具體到匹配方法,分為傳統模型和深度模型兩大類,第二章講的是傳統模型,第三章和第四章講的是深度模型。

對於傳統模型,主要分為基於協同過濾的模型和基於特徵的模型,兩者最大的不同在於是否使用了 side information。基於協同過濾的模型,如 CF,MF,FISM,SVD++,只用到了用戶-物品的交互信息,如 userid, itemid, 以及用戶交互過的 item 集合本身來表達。而基於特徵的模型以 FM 為例,主要特點是除了用戶-物品的交互之外,還引入了更多的 side information。FM 模型是很多其他模型的特例,如 MF,SVD++,FISM 等。

對於深度模型,主要分為基於 representation learning 的深度模型以及 match function learning 的深度模型。基於 representation learning 的深度模型學習的是用戶和物品的表示,然後通過匹配函數來計算,這裡重點在與 representation learning 階段,可以通過 CNN 網絡,auto-encoder,知識圖譜等模型結構來學習。

對於 match function learning 的深度模型,也分為基於協同過濾的模型和基於特徵的模型。前者和傳統 CF 模型一樣,不同在於後面接入了 MLP 模型來增強非線性表達,目的是為了使得 user 和 item 的 vector 儘可能接近,這種方法就是基於 NCF 的模型;也有通過引入 relation vector 來是的 user vector 加上 relation vector 後接近 item vector,這種方法是基於翻譯的模型。

對於 match function learning 另一種模型框架,是基於特徵層面的,有基於 fm 模型的,基於 attention 的,以及高階特徵捕捉的,另外還有基於時間序列的文章中只提到了 DIEN 模型。

整理本篇綜述主要基於原始 slides,對其中的 paper 部分粗讀部分精讀,收穫頗多,在全文用如何做好推薦 match 的思路,將各種方法儘可能串到一起,主要體現背後一致的思想指導。多有錯漏,歡迎批評指出。

06

1. https://www.comp.nus.edu.sg/~xiangnan/sigir18-deep.pdf

2. Xiangnan He, Hanwang Zhang, Min-Yen Kan, and Tat-Seng Chua. Fast matrix factorization for online recommendation with implicit feedback. In SIGIR 2016.

3. Yehuda Koren, and Robert Bell. Advances in collaborative filtering. Recommender systems handbook. Springer, Boston, MA, 2015. 77-118.

4. Santosh Kabbur, Xia Ning, and George Karypis. Fism: factored item similarity models for top-n recommender systems. In KDD 2013.

5. Yehuda Koren. Factorization meets the neighborhood: a multifaceted collaborative filtering model. In KDD 2018.

6. Steffen Rendle. Factorization machines. In ICDM 2010.

7. Hong-Jian Xue, Xin-Yu Dai, Jianbing Zhang, Shujian Huang, and Jiajun Chen. Deep matrix factorization models for recommender systems. IJCAI 2017.

8. Suvash Sedhain, Aditya Krishna Menon, Scott Sanner, and Lexing Xie. Autorec: Autoencoders meet collaborative filtering. In WWW 2015.

9. Yao Wu, Christopher DuBois, Alice X. Zheng, and Martin Ester. Collaborative denoising auto- encoders for top-n recommender systems. In WSDM 2016.

10. Sheng Li, Jaya Kawale, and Yun Fu. Deep collaborative filtering via marginalized denoising auto- encoder. In CIKM 2015.

11. Xue Geng, Hanwang Zhang, Jingwen Bian, and Tat-Seng Chua. Learning image and user features for recommendation in social networks. In ICCV 2015.

12. Jingyuan Chen, Hanwang Zhang, Xiangnan He, Liqiang Nie, Wei Liu, and Tat-Seng Chua. Attentive collaborative filtering: Multimedia recommendation with item-and component-level attention. In SIGIR 2017.

13. Fuzheng, Zhang, Nicholas Jing Yuan, Defu Lian, Xing Xie, and Wei-Ying Ma. Collaborative knowledge base embedding for recommender systems. In KDD 2016.

14. Xiangnan He, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu, and Tat-Seng Chua. Neural collaborative filtering. In WWW 2017.

15. Ting Bai, Ji-Rong Wen, Jun Zhang, and Wayne Xin Zhao. A Neural Collaborative Filtering Model with Interaction-based Neighborhood. CIKM 2017.

16. Xiangnan He, Xiaoyu Du, Xiang Wang, Feng Tian, Jinhui Tang, and Tat-Seng Chua. Out Product-based Neural Collaborative Filtering. In IJCAI 2018.

17. Tay, Yi, Shuai Zhang, Luu Anh Tuan, and Siu Cheung Hui. "Self-Attentive Neural Collaborative Filtering." arXiv preprint arXiv:1806.06446 (2018).

18. Ruining He, Wang-Cheng Kang, and Julian McAuley. Translation-based Recommendation. In Recsys 2017.

19. Yi Tay, Luu Anh Tuan, and Siu Cheung Hui. Latent Relational Metric Learning via Memory-based Attention for Collaborative Ranking. In WWW 2018.

20. Heng-Tze Cheng, Levent Koc, Jeremiah Harmsen, Tal Shaked, Tushar Chandra, Hrishi Aradhye, Glen Anderson et al. Wide & deep learning for recommender systems. In DLRS 2016.

21. Ying Shan, T. Ryan Hoens, Jian Jiao, Haijing Wang, Dong Yu, and J. C. Mao. Deep crossing: Web-scale modeling without manually crafted combinatorial features. In KDD 2016.

22. Xiangnan He, and Tat-Seng Chua. Neural factorization machines for sparse predictive analytics. In SIGIR 2017.

23. Jun Xiao, Hao Ye, Xiangnan He, Hanwang Zhang, Fei Wu, and Tat-Seng Chua. Attentional factorization machines: Learning the weight of feature interactions via attention networks. IJCAI 2017.

24. He. Deepfm: A factorization-machine based neural network for CTR prediction. IJCAI 2017.

25. Ruoxi Wang, Gang Fu, Bin Fu, Mingliang Wang. Deep & Cross Network for Ad Click Predictions. ADKDD2017.

26. Jianxun Lian, Xiaohuan Zhou, Fuzheng Zhang, Zhongxia Chen, Xing Xie, Guangzhong Sun. xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems. KDD2018.

27. Bin Liu, Ruiming Tang, Yingzhi Chen, Jinkai Yu,Huifeng Guo, Yuzhou Zhang. Feature Generation by Convolutional Neural Network for Click-Through Rate Prediction. WWW2019.

28. Tongwen Huang, Zhiqi Zhang, Julin Zhang. FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction. Recsys2019.

29. Weiping Song, Chence Shi, Zhiping Xiao, Zhijian Duan, Yewen Xu, Ming Zhang,Jian Tang. AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks. CIKM2019.

30. Guorui Zhou, Xiaoqiang Zhu, Chengru Song, Ying Fan, Han Zhu, Xiao Ma,Yanghui Yan,Junqi Jin,Han Li, Kun Gai. Deep Interest Network for Click-Through Rate Prediction. KDD2018.

31. Guorui Zhou, Na Mou, Ying Fan, Qi Pi,Weijie Bian, Chang Zhou, Xiaoqiang Zhu and Kungai. Deep Interest Evolution Network for Click-Through Rate Prediction. AAAI2019.

原文鏈接:

https://zhuanlan.zhihu.com/p/101136699


分享到:


相關文章: