在第二章學(xué)習(xí)了傳統(tǒng)的推薦模型的發(fā)展,本章主要介紹一些比較重要的深度學(xué)習(xí)模型的進(jìn)展.
深度學(xué)習(xí)模型的優(yōu)勢(shì)在于:
- 模型的表達(dá)能力更強(qiáng),能夠挖掘更多數(shù)據(jù)中的潛藏模式;
- 深度學(xué)習(xí)的模型結(jié)構(gòu)非常靈活,能夠根據(jù)業(yè)務(wù)場(chǎng)景和數(shù)據(jù)特點(diǎn),靈活調(diào)整模型結(jié)構(gòu),使模型與應(yīng)用場(chǎng)景完美契合.
深度學(xué)習(xí)推薦模型的演化關(guān)系圖
下圖是改變神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),構(gòu)建不同的推薦模型的演變方向圖.(DNN/Multi-layer Perceptron為起點(diǎn))

可以分為以下幾個(gè)演化方向:
- 改變神經(jīng)網(wǎng)絡(luò)的復(fù)雜程度:AutoRec Deep Crossing, 增加了深度神經(jīng)網(wǎng)絡(luò)層數(shù)和結(jié)構(gòu)復(fù)雜度.
- 改變特征交叉方式: NeuralCF PNN
- 組合模型: wide&deep, Deep&Cross, DeepFM
- FM模型的深度學(xué)習(xí)演化: NFM(使用nn提升特征交叉能力), FNN(FM初始化), AFM(注意力機(jī)制)
- 注意力機(jī)制與推薦模型的結(jié)合:DIN
- 序列模型與推薦模型相結(jié)合: 使用序列模型模擬用戶行為或用戶興趣的演化趨勢(shì),代表模型是DIEN;
- 強(qiáng)化學(xué)習(xí)與推薦模型的結(jié)合: DRN
接下來挑一些筆記到重要的模型做簡單介紹:
模型簡介
AutoRec
(略)基于自編碼器的模型,將用戶通過壓縮和重建的方式得到新的向量表達(dá)
AutoRec 模型過于簡單表達(dá)能力不強(qiáng)
deep crossing-經(jīng)典深度學(xué)習(xí)架構(gòu)
模型在2016年由微軟提出, 完整地解決了從特征工程\稀疏向量稠密化\多層神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化等一系列深度學(xué)習(xí)在推薦系統(tǒng)中的應(yīng)用問題,為后續(xù)研究打下了基礎(chǔ).
deep crossin 解決了這幾個(gè)問題:
- 離散特征過于稀疏,不利于直接輸入NN訓(xùn)練,如何解決稀疏向量稠密化的問題.
- 使用embedding解決
- 如何解決特征自動(dòng)交叉組合的問題.
- 通過Multiple residual unit層(resnet) ,使得特征向量充分組合(在當(dāng)時(shí)時(shí)間點(diǎn),看可能是有道理的,但是我不是很認(rèn)同resnet提供了交叉組合這個(gè)說法)
- 如何在輸出層中達(dá)成問題設(shè)定的優(yōu)化目標(biāo).
- 輸出層使用邏輯回歸或者softmax形式

NeuralCF- CF與深度學(xué)習(xí)的結(jié)合
第二章介紹了CF和矩陣分解,將共現(xiàn)矩陣拆分成用戶u和物品i向量矩陣,二者做內(nèi)積,得到u對(duì)i的相似度. NeuralCF是對(duì)此的一個(gè)擴(kuò)展.

我們可以將矩陣分解的用戶和item的隱向量當(dāng)做是其embedding(上圖左), 我們直接將這兩個(gè)embbedding做內(nèi)積即為矩陣分解方法的u2i打分.
NeualCF使用多層MLP的結(jié)構(gòu)替代了矩陣分解模型中簡單的內(nèi)積操作. 作者說有如下收益(以我的經(jīng)驗(yàn),內(nèi)積比mlp方式效果要好的,下邊的優(yōu)點(diǎn)看看就得了):
- 更充分的交叉,得到更多有價(jià)值的特征組合信息;
- 引入更多的非線性,讓模型表達(dá)能力更強(qiáng).
進(jìn)一步地,為了得到user和item更精準(zhǔn)地表達(dá),可以將內(nèi)積(簡化為元素乘積)和MLP合并在一起用.

PNN模型
與deepcrossing相比PNN模型在embedding層后接入的是乘積層(Product layer
).

product層可以分為兩種方式:
- 內(nèi)積
- 外積
不詳細(xì)介紹目前工業(yè)界應(yīng)該沒有人用了,思想可借鑒,網(wǎng)上文章可參考:
https://zhuanlan.zhihu.com/p/89850560
優(yōu)點(diǎn):
- 內(nèi)積和外積交叉
缺點(diǎn): - 全交叉復(fù)雜度高,沒有直接利用原始特征信息,可能有信息損失(NN沒那么萬能,需要人工特征)
wide&deep
google爸爸在2016提出了很nb的wide&deep模型.
將模型分為兩個(gè)部分,由單層的wide和多層的nn混合成的模型:
-
wide:讓模型具有較強(qiáng)的"記憶能力"(memorization) -
deep:發(fā)讓模型具有"泛化能力"(generalization)
這樣的結(jié)構(gòu)特點(diǎn),是模型兼具了邏輯回歸和深度神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)---能夠快速處理并記憶大量歷史行為特征,并且具有強(qiáng)大的表達(dá)能力.
模型的記憶和泛化能力
記憶能力: 模型直接學(xué)習(xí)并利用歷史數(shù)據(jù)中物品或者特征的"共現(xiàn)頻率"的能力.
泛化能力: 可以理解為模型傳遞特征的相關(guān)性,以及發(fā)掘稀疏甚至從未出現(xiàn)過的稀疏特征與最終標(biāo)簽相關(guān)性的能力.
矩陣分解比協(xié)同過濾的泛化能力強(qiáng),因?yàn)榫仃嚪纸庖肓穗[向量這樣的結(jié)構(gòu),使得數(shù)據(jù)稀少的用戶或者物品也能生成隱向量,從而獲得有數(shù)據(jù)支撐的推薦得分, 這是非常典型的將全局?jǐn)?shù)據(jù)傳遞到稀疏物品上,從而提高泛化能力的例子.
模型結(jié)構(gòu)

wide&deep模型把稀疏向量輸入層按需進(jìn)入了wide層和deep的embedding層再進(jìn)入MLP最終合并在一起形成走logit.

上圖是論文中g(shù)oogleplay團(tuán)隊(duì)使用的特征,Deep部分的輸入是全量的特征向量,wide部分的輸入只是已安裝應(yīng)用和曝光應(yīng)用兩類特征的交叉,其中已安裝應(yīng)用代表用戶的歷史行為,而曝光應(yīng)用代表當(dāng)前的待推薦應(yīng)用. 這種交叉特征可以充分發(fā)揮簡單模型的"記憶能力"強(qiáng)的優(yōu)勢(shì).
交叉的例子:用戶歷史看了 ABC, 當(dāng)前待排序item為D 那么特征為 A&D, B&D, C&D.
Deep&Cross模型
這個(gè)模型是deepwide的升級(jí),它將wide部分改造為了cross.

cross的公式如下:

x_{l+1} = x_{0}x_{l}^{T}W_l + b_l + x_l
x只當(dāng)前層的輸入,l指第l層,指原始輸入. 含義是,每層
都與
做外積再與
相乘得到輸出向量在加上偏置和原始層
作為這一層
的輸出.
優(yōu)點(diǎn):cross網(wǎng)絡(luò)在特征上進(jìn)行了自動(dòng)交叉,避免了需要根據(jù)業(yè)務(wù)理解的特征組合.(是的,但是它的訓(xùn)練和推斷效率很低, 而且不一定比業(yè)務(wù)理解的特征處理好)
widedeep模型的重要性
widedeep的成功在于:
- 從業(yè)務(wù)出發(fā),抓住了業(yè)務(wù)本質(zhì)特點(diǎn)(泛化和記憶)
- 模型結(jié)構(gòu)不負(fù)責(zé),工業(yè)界好用
- widedeep是一個(gè)base模板,好多之后的模型都基于此.
FM與深度學(xué)習(xí)模型的結(jié)合
以Fm模型為基礎(chǔ)的深度學(xué)習(xí)模型有 FNN DeepFm NFM,它們使用不同的方式改進(jìn)了FM,發(fā)揮特征組合的優(yōu)勢(shì).
FNN-用FM的隱向量完成Embedding的初始化
由于emb層的參數(shù)數(shù)量巨大,會(huì)導(dǎo)致Embedding的受涼速度很慢,所以考慮使用預(yù)先初始化的方式解決這個(gè)問題:

如上圖,使用FM的隱向量為每個(gè)特征的emb做初始化.
deepFM - 使用FM代替WIDE部分

顧名思義, 使用FM替代wide的好處是自動(dòng)地進(jìn)行了特征組合,這個(gè)模型效果是OK的,是一個(gè)值得上線的模型.
NFM- FM的神經(jīng)網(wǎng)絡(luò)化嘗試
FM的局限是只能二階交叉. 3階以上參數(shù)太多. 研究人員考慮使用深度模型學(xué)習(xí)交叉項(xiàng)如下:

將FM的二階交叉部分使用NN來進(jìn)行學(xué)習(xí)得到sum emb在經(jīng)過幾層MLP學(xué)習(xí).

上圖的交叉池化層將所有的emb進(jìn)行了二階element元素交叉,再sum成為一個(gè)emb作為輸出.
它的優(yōu)點(diǎn)書中的說法是加強(qiáng)了特征交叉,但是實(shí)際上交叉池化層幾乎是與FM的二階交叉是等價(jià)的,不同的是NFM二階交叉后做了sum的得到emb在走mlp增加了模型的表達(dá)能力.
FM的深度學(xué)習(xí)模型的優(yōu)點(diǎn)和局限
- 交叉,模型表達(dá)能力強(qiáng)
- 這種特征工程已經(jīng)窮盡了可能的嘗試,在進(jìn)行提升的空間比較小了.
注意力機(jī)制在推薦模型中的應(yīng)用
注意力機(jī)制是指人類面對(duì)大量的信息,會(huì)有不同的關(guān)注程度.在推薦模型領(lǐng)域,這種注意力機(jī)制主要是指,用戶對(duì)于物品的關(guān)注與偏好程度的高低.
AFM 引入注意力機(jī)制的FM
在之前的介紹的NFM模型中,它有一個(gè)問題是將所有的emb"一視同仁"地進(jìn)行交叉,沒有考慮不同特征對(duì)結(jié)果的影響程度,事實(shí)上消解了大量有價(jià)值的信息.
"注意力機(jī)制"認(rèn)為,不同的交叉特征對(duì)結(jié)果的影響的程度不同,需要加一個(gè)"權(quán)重",所以有了下圖的模型:

這里不同的是激活網(wǎng)絡(luò), 它將交叉emb的輸出走了一個(gè)softmax得到每個(gè)交叉的權(quán)重,在進(jìn)行emb加權(quán)求和走logit得到預(yù)測(cè)結(jié)果y.
這個(gè)方法是從改進(jìn)模型結(jié)構(gòu)角度的一個(gè)有益嘗試.
DIN- 引入注意力機(jī)制的深度學(xué)習(xí)網(wǎng)絡(luò)
阿里提出的DIN模型從用戶角度出發(fā), 將待排序廣告與用戶歷史行為序列(商品和商鋪id序列)進(jìn)行了attention, 得到用戶對(duì)排序廣告的"注意力"權(quán)重,進(jìn)行emb加權(quán).

上圖可以看到, 廣告特征組與用戶特征組進(jìn)行了attention激活, 這個(gè)激活單元使用的是一個(gè)以原始廣告emb輸入和用戶每個(gè)id的emb輸入以及二者emb差作為輸入的網(wǎng)絡(luò),輸出為這個(gè)id特征的關(guān)注程度,再進(jìn)行加權(quán)求和,輸入mlp層.
這個(gè)模型的優(yōu)點(diǎn)是從業(yè)務(wù)場(chǎng)景觸發(fā),但是這種注意力并沒有考慮時(shí)序的關(guān)系,用戶的行為是有明顯的時(shí)序變化的,歷史的再現(xiàn)在可能已經(jīng)不感興趣.
DIEN
剛提到DIN注意力模型并沒有考慮時(shí)序的關(guān)系,用戶的行為是有明顯的時(shí)序變化的,歷史的再現(xiàn)在可能已經(jīng)不感興趣.DIEN考慮了用戶興趣的進(jìn)化,使用了類似GRU的模型結(jié)構(gòu).

這個(gè)模型可以分為3層:
-
行為序列層:
- 主要作用是吧原始的id類行為序列轉(zhuǎn)換成Embedding行為序列;
- 它的輸入就是用戶序列的emb
-
興趣抽取層: 主要作用是通過模擬用戶興趣過程抽取用戶興趣
- 興趣抽取層是一個(gè)GRU層,它的隱向量作為本層的輸出
興趣進(jìn)化層:這一層將上一層輸入的GRU隱層走了一個(gè)帶有attention的
AUGRU,并將最終的隱層作為興趣進(jìn)化emb輸入給mlp
AUGRU
首先GRU的公式如下:

AUGRU的不同點(diǎn)是,將更新門進(jìn)行了attention加權(quán),這個(gè)attention是將目標(biāo)廣告和興趣抽取層的輸出學(xué)習(xí)得到的.
這個(gè)模型充分考慮了用戶興趣的演化, 但是模型比較復(fù)雜
強(qiáng)化學(xué)習(xí)推薦
(略)主要介紹了DQN DRN, 目前強(qiáng)化在業(yè)界真落地的不多.書中也是比價(jià)基礎(chǔ)的強(qiáng)化方法.
總結(jié)

