推薦系統(tǒng)-深度模型

Wide&Deep 網(wǎng)絡(luò)

推薦系統(tǒng)的主要挑戰(zhàn)之一厌小,是同時(shí)解決 Memorization 和 Generalization啤贩。Wide & Deep 模型的核心思想是結(jié)合線性模型的記憶能力和 DNN 模型的泛化能力,從而提升整體模型性能。

記憶能力:理解為模型直接學(xué)習(xí)并利用歷史數(shù)據(jù)中物品或者特征的“共現(xiàn)頻率”的能力。協(xié)同過(guò)濾躺同、邏輯回歸等簡(jiǎn)單模型有較強(qiáng)的記憶能力阁猜。規(guī)則式的推薦:模型直接記住歷史數(shù)據(jù)的分布特點(diǎn),并利用這些記憶進(jìn)行推薦蹋艺。
泛化能力:理解為模型傳遞特征的相關(guān)性剃袍,以及發(fā)掘洗刷甚至從未出現(xiàn)的稀有特征與最終標(biāo)簽相關(guān)性的能力。矩陣分解比協(xié)同過(guò)濾的泛化能力強(qiáng)捎谨,因?yàn)榫仃嚪纸庖肓穗[向量這樣的結(jié)構(gòu)民效。

如上圖的網(wǎng)絡(luò)結(jié)構(gòu):結(jié)合 LR 和 DNN。

Wide 部分
wide部分其實(shí)就是一個(gè)簡(jiǎn)單的線性模型 y = wx + b涛救。x = [ x1, x2, ... , xd] 是d個(gè)feature的向量畏邢,w = [w1, w2, ... , wd]是模型的參數(shù),b是bias州叠。這里的d個(gè)feature包括原始的輸入feature和經(jīng)過(guò)轉(zhuǎn)換的feature棵红。

其中一種很重要的轉(zhuǎn)換feature叫做cross-product轉(zhuǎn)換。假如x1是性別咧栗,x1=0表示男性,x1=1表示女性虱肄。x2是愛(ài)好致板,x2=0表示不喜歡吃西瓜,x2=1表示喜歡吃西瓜咏窿。那么我們就可以利用x1和x2構(gòu)造出新的feature斟或,令x3=(x1 && x2),則x3=1表示是女生并且喜歡吃西瓜集嵌,如果不是女生或者不喜歡吃西瓜萝挤,則x3=0。這樣經(jīng)過(guò)轉(zhuǎn)換的來(lái)的x3就是cross-product轉(zhuǎn)化根欧。這樣轉(zhuǎn)換的目的是為了獲取交叉特征對(duì)預(yù)測(cè)目標(biāo)的影響怜珍,給線性模型增加非線性。

Deep 部分
deep部分就是前饋神經(jīng)網(wǎng)絡(luò)模型凤粗。對(duì)于高維稀疏的分類(lèi)特征酥泛,首先會(huì)轉(zhuǎn)化成低維的稠密的向量,然后作為神經(jīng)網(wǎng)hidden layers的輸入進(jìn)行訓(xùn)練嫌拣。

參考文獻(xiàn)

DCN 模型

主要工作是針對(duì) Wide&Deep 網(wǎng)絡(luò)中的 Wide 部分做了改進(jìn)柔袁,在 Wide&Deep 網(wǎng)絡(luò)中,Wide 部分是個(gè)簡(jiǎn)單的線性模型异逐,其交叉特征任然需要人工設(shè)計(jì)捶索,而 DCN 設(shè)計(jì)了專(zhuān)門(mén)的 cross 網(wǎng)絡(luò)用于自動(dòng)學(xué)習(xí)高階交叉特征。

DCN模型結(jié)構(gòu)如上圖所示灰瞻,主要模塊為

  • Embedding and Stacking Layer:輸入特征的處理腥例,包括embedding處理和concat操作燥筷;
  • Cross Network:特征交叉網(wǎng)絡(luò),對(duì)特征進(jìn)行顯式的有限階的高階交叉院崇;
  • Deep Network:DNN層網(wǎng)絡(luò)肆氓,對(duì)特征進(jìn)行隱式的高階交叉;
  • Combination Layer:結(jié)合特征交叉層和DNN層的隱層輸出底瓣,并輸入到預(yù)測(cè)層谢揪。

這里重點(diǎn)關(guān)注 Cross network,核心創(chuàng)新之處捐凭,它顯式的使用特征交叉操作拨扶,具體交叉公式為:x_0, w_l,b_l是一個(gè)維度為 d 的列向量。
x_{l+1}=x_0x_l^Tw_l + b_l + x_l = f(x_l,w_l,b_l)+x_l

交叉層的可視化如圖所示:

原理解析:

參考文獻(xiàn)

NFM 模型

背景:

目前 Wide&Deep茁肠、DeepCross患民、FNN等網(wǎng)絡(luò),都是將 concat 后的 embedding 向量輸入到多層網(wǎng)絡(luò)中學(xué)習(xí)特征的交叉垦梆,多層網(wǎng)絡(luò)能夠隱式的學(xué)習(xí)到任意高階的特征組合, 但是發(fā)現(xiàn)這種網(wǎng)絡(luò)結(jié)構(gòu)有個(gè)明顯的弱點(diǎn)就是, 在 low level 采用 concat 的方式處理 embedding 向量帶給特征交叉的信息太少(證據(jù)就是 NCF 論文中的一個(gè)實(shí)驗(yàn)), 而多層網(wǎng)絡(luò)的調(diào)優(yōu)存在很多臭名昭著的困難, 比如梯度消失/爆炸, 過(guò)擬合等匹颤。作者在研究已有成果的時(shí), 受 FNN 啟發(fā), 發(fā)現(xiàn)如果在進(jìn)入多層網(wǎng)絡(luò)之前能夠用 FM 進(jìn)行預(yù)訓(xùn)練, 得到一個(gè) embedding 向量, 再進(jìn)入 NN 中能夠得到更好的效果。

NFM 網(wǎng)絡(luò)結(jié)構(gòu)

NFM 與 FM 網(wǎng)絡(luò)結(jié)構(gòu)類(lèi)似托猩,只是在二階特征交叉中進(jìn)行優(yōu)化印蓖,NFM 預(yù)估的目標(biāo)為:
\hat{y}_{N F M}(\mathbf{x})=w_{0}+\sum_{i=1}^{n} w_{i} x_{i}+f(\mathbf{x})

接下來(lái),主要闡述f(x)的設(shè)計(jì)京腥,網(wǎng)絡(luò)結(jié)構(gòu)如下:

  1. Embedding Layer
    與正常的 Embedding 層不同的是:使用原始的特征值乘以 Embedding vector赦肃,使得模型也可以處理 real valued feature。

  2. Bi-Interaction Layer
    這一層其實(shí)是一個(gè) pooling 操作公浪,將多個(gè)向量轉(zhuǎn)化為一個(gè)向量他宛,形式化如下:
    f_{B I}\left(\mathcal{V}_{x}\right)=\sum_{i=1}^{n} \sum_{j=i+1}^{n} x_{i} \mathbf{v}_{i} \odot x_{j} \mathbf{v}_{j}
    f_{BI}的輸入是整個(gè)的嵌入向量,x_i 欠气,x_j是特征取值厅各,v_iv_j是特征對(duì)應(yīng)的嵌入向量晃琳。中間的操作表示對(duì)應(yīng)位置相乘讯检。所以原始的嵌入向量任意兩個(gè)都進(jìn)行組合,對(duì)應(yīng)位置相乘結(jié)果得到一個(gè)新向量卫旱;然后把這些新向量相加人灼,就得到了Bi-Interaction的輸出。這個(gè)輸出只有一個(gè)向量,維度仍然是K顾翼,可以理解為就是FM的二階輸出投放。

  3. Hidden Layer
    DNN 學(xué)習(xí)高階組合特征。

  4. Prediction Layer
    最后一層隱藏層輸出Z_L适贸,輸出層最后預(yù)測(cè)結(jié)果公式如下:
    f(x) = h^TZ_L

總結(jié)整個(gè)網(wǎng)絡(luò)灸芳,公式如下:
\begin{aligned} \hat{y}_{N F M}(\mathbf{x}) & =w_{0}+\sum_{i=1}^{n} w_{i} x_{i} +\mathbf{h}^{T} \sigma_{L}\left(\mathbf{W}_{L}\left(\ldots \sigma_{1}\left(\mathbf{W}_{1} f_{B I}\left(\mathcal{V}_{x}\right)+\mathbf涝桅_{1}\right) \ldots\right)+\mathbf_{L}\right) \end{aligned}

參考文獻(xiàn)

FNN 模型

FNN簡(jiǎn)單概括:FM+MLP烙样,如果再用一句稍顯復(fù)雜的話概括FNN那就是:FNN是一個(gè)兩階段訓(xùn)練的模型冯遂,階段一先訓(xùn)練一個(gè)FM模型得到每個(gè)field的embedding向量,階段二谒获,基于階段一的embedding向量初始化MLP的embedding層蛤肌,然后訓(xùn)練一個(gè)MLP(DNN)。

模型結(jié)構(gòu)圖如下:

FNN模型圖

重點(diǎn)關(guān)注下 Dense Real Layer 層批狱,z定義如下:
z = (w_0, z_1,z_2,...,z_i,...,z_n)

w_0是一個(gè)全局的偏置標(biāo)量钩骇,n是特征域音婶,z_i是第 i 個(gè)特征域在FM中的參數(shù)向量寄雀,定義如下:
z_i = W_{0}^{i}·x[start_i:end_i]=(w_i,v_i^1,v_i^2,...,v_i^K)

權(quán)重W_{0}^{i}都是通過(guò) FM 預(yù)訓(xùn)練好的偏置項(xiàng)w_iv_i分別初始化巷燥,也就是 Embedding 層的參數(shù)矩陣。Field_i則可以表示為x[start_i:end_i]爪膊,為one-hot編碼权悟。

簡(jiǎn)單理解如下,利用王喆《深度學(xué)習(xí)推薦系統(tǒng)》圖表示為:

優(yōu)缺點(diǎn)
優(yōu)點(diǎn):每個(gè)特征的嵌入向量是預(yù)先采用FM模型訓(xùn)練的惊完,因此在學(xué)習(xí)DNN模型時(shí)僵芹,訓(xùn)練開(kāi)銷(xiāo)降低,模型能夠更快達(dá)到收斂小槐。

缺點(diǎn):

  • Embedding 的參數(shù)受 FM 的影響,不一定準(zhǔn)確荷辕。
  • 預(yù)訓(xùn)練階段增加了計(jì)算復(fù)雜度凿跳,訓(xùn)練效率低。
  • FNN 只能學(xué)習(xí)到高階的組合特征疮方;模型中沒(méi)有對(duì)低階特征建模控嗜。

參考文獻(xiàn)

DeepFM 網(wǎng)絡(luò)

Wide & Deep推薦模型的升級(jí)版。不同點(diǎn)如下:

  1. wide模型部分由LR替換為FM骡显。FM模型具有自動(dòng)學(xué)習(xí)交叉特征的能力疆栏,避免了原始Wide & Deep模型中淺層部分人工特征工程的工作。
  2. 共享原始輸入特征惫谤。DeepFM模型的原始特征將作為FM和Deep模型部分的共同輸入壁顶,保證模型特征的準(zhǔn)確與一致。

模型輸入x=[x_{filed1},x_{field2},...,x_{fieldm}]溜歪,這是一個(gè) d 維向量若专,其中x_{fieldi}即為第 i 個(gè)field的特征表示,如果是類(lèi)別蝴猪,則為one-hot編碼后的向量调衰,連續(xù)值則為它本身膊爪。然后對(duì)其進(jìn)行 Embedding,連續(xù)值離散化后可進(jìn)行 Embedding嚎莉。

接著 FM 層即為embedding后結(jié)果的內(nèi)積和一次項(xiàng)的和米酬,最后一層sigmoid后再輸出結(jié)果。Embedding內(nèi)積與FM模型等價(jià)趋箩!
由于進(jìn)行了one-hot編碼赃额,所以對(duì)應(yīng)的x_{filedi}只有一個(gè)值為1,其余的都為0阁簸,則:
V_{\text {fieldi }} \times \mathbf{x}_{\text {fieldi }}=\left[\begin{array}{cccc} v_{11} & v_{21} & \cdots & v_{m 1} \\ v_{12} & v_{22} & \cdots & v_{m 2} \\ \vdots & \vdots & \ddots & \vdots \\ v_{1 k} & v_{2 k} & \cdots & v_{m d} \end{array}\right] \times\left[\begin{array}{c} 0 \\ \vdots \\ 1 \\ \vdots \end{array}\right]=\left[\begin{array}{c} v_{c 1} \\ v_{c 2} \\ \vdots \\ v_{c k} \end{array}\right] x_{c}=V_{c} x_{c}
若兩個(gè) field 做內(nèi)積爬早,假設(shè)非0的那一列為c和d則:
(V_{fieldi} x_{fieldi})(V_{fieldj} x_{fieldj})=(V_c*V_d)x_cx_d

參考文獻(xiàn)

xDeepFM 模型

參考文獻(xiàn)

DeepFFM 模型

2. DeepCrossing 網(wǎng)絡(luò)

2016年,微軟提出Deep Crossing模型启妹,旨在解決特征工程中特征組合的難題筛严,降低人力特征組合的時(shí)間開(kāi)銷(xiāo),通過(guò)模型自動(dòng)學(xué)習(xí)特征的組合方式饶米,也能達(dá)到不錯(cuò)的效果桨啃,且在各種任務(wù)中表現(xiàn)出較好的穩(wěn)定性。

利用殘差網(wǎng)絡(luò)進(jìn)行特征處理檬输。

3. PNN 網(wǎng)絡(luò)

作者認(rèn)為在embedding輸入到MLP之后學(xué)習(xí)的交叉特征表達(dá)并不充分照瘾,提出了一種product layer的思想,既基于乘法的運(yùn)算來(lái)體現(xiàn)體征交叉的DNN網(wǎng)絡(luò)結(jié)構(gòu)丧慈。在 CTR 預(yù)估中析命,認(rèn)為特征關(guān)系屬于“且”關(guān)系,而非“加”關(guān)系逃默。

Product Layer 層
product layer 可以分成兩個(gè)部分鹃愤,一部分是線性部分 lz,一部分是非線性部分 lp完域。二者的形式如下:

其中 z 是線性信號(hào)向量软吐,因此直接用 embedding 層得到,然后通過(guò)矩陣的點(diǎn)乘(相乘求和)即可吟税。

對(duì)于 p 而言凹耙,有兩種方式:一種是 IPNN,另一種是 OPNN肠仪;
IPNN 的示意圖如下所示:內(nèi)積

OPNN 的示意圖如下所示:矩陣乘

參考文獻(xiàn):

4. DIN 網(wǎng)絡(luò)結(jié)構(gòu)

4.1 Base 版本

??Base 版本的模型:一般的思路為肖抱,先通過(guò) one-hot、multi-hot 得到高維離散特征藤韵,然后通過(guò) Embedding 層將高維離散特征轉(zhuǎn)換為固定長(zhǎng)度的連續(xù)特征虐沥,然后通過(guò)多個(gè)全連接層,經(jīng)過(guò) sigmoid 函數(shù)轉(zhuǎn)化為 0-1 值,代表點(diǎn)擊的概率欲险。

??上圖中镐依, user feature groups 代表著用戶(hù)的歷史購(gòu)買(mǎi)記錄,存在著多條記錄天试。mutil-hot 在 Embedding 之后會(huì)得到多個(gè)向量信息槐壳, 融合層中進(jìn)行 element-wise +操作,其實(shí)就是 sum-pooling喜每,統(tǒng)一為固定長(zhǎng)度的連續(xù)特征务唐。

4.2 DIN 網(wǎng)絡(luò)

Base 模型在進(jìn)行融合的時(shí)候:對(duì)用戶(hù)的歷史行為同等對(duì)待,存在問(wèn)題带兜。

為什么引入注意力機(jī)制枫笛?

難道僅僅是通過(guò)觀察歷史數(shù)據(jù)拍腦袋決定的么?當(dāng)然不是刚照,如果不用 Local activation 的話刑巧,將會(huì)出現(xiàn)下面的情況:假設(shè)用戶(hù)的興趣的 Embedding 是 V_u,候選廣告的 Embedding 是 V_a无畔,用戶(hù)興趣和候選的廣告的相關(guān)性可以寫(xiě)作 F(U,A) = V_a * V_u啊楚。如果沒(méi)有 Local activation 機(jī)制的話,那么同一個(gè)用戶(hù)對(duì)于不同的廣告浑彰,Vu 都是相同的恭理。舉例來(lái)說(shuō),如果有兩個(gè)廣告 A 和 B郭变,用戶(hù)興趣和 A颜价,B 的相似性都很高,那么在 Va 和 Vb 連線上的廣告都會(huì)有很高的相似性诉濒。這樣的限制使得模型非常難學(xué)習(xí)到有效的用戶(hù)和廣告的 embedidng 表示拍嵌。

引入Activation Unit之后,用戶(hù)的興趣表示計(jì)算如下:
V_{u}=f\left(V_{a}\right)=\sum_{i=1}^{N} w_{i} * V_{i}=\sum_{i=1}^{N} g\left(V_{i}, V_{a}\right) * V_{i}

加入了注意力機(jī)制循诉,V_u從過(guò)去V_i的加和變成了V_i的加權(quán)和。重點(diǎn)在于 g(V_i, V_a) 采用什么比較好撇他,傳統(tǒng)的 Attention 機(jī)制茄猫,通常是點(diǎn)積或者 MLP。上圖右上角的 activation unit:首先是把 u 和 v 以及 u v的 element wise 差值向量合并起來(lái)作為輸入困肩,然后喂給全連接層划纽,最后得出權(quán)重。

參考文獻(xiàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锌畸,一起剝皮案震驚了整個(gè)濱河市勇劣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖比默,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件幻捏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡命咐,警方通過(guò)查閱死者的電腦和手機(jī)篡九,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)醋奠,“玉大人榛臼,你說(shuō)我怎么就攤上這事〈芩荆” “怎么了沛善?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)塞祈。 經(jīng)常有香客問(wèn)我金刁,道長(zhǎng),這世上最難降的妖魔是什么织咧? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任胀葱,我火速辦了婚禮,結(jié)果婚禮上笙蒙,老公的妹妹穿的比我還像新娘抵屿。我一直安慰自己,他們只是感情好捅位,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布轧葛。 她就那樣靜靜地躺著,像睡著了一般艇搀。 火紅的嫁衣襯著肌膚如雪尿扯。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天焰雕,我揣著相機(jī)與錄音衷笋,去河邊找鬼。 笑死矩屁,一個(gè)胖子當(dāng)著我的面吹牛辟宗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吝秕,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼泊脐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了烁峭?” 一聲冷哼從身側(cè)響起容客,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤秕铛,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后缩挑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體但两,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年调煎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了镜遣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡士袄,死狀恐怖悲关,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情娄柳,我是刑警寧澤寓辱,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站赤拒,受9級(jí)特大地震影響秫筏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挎挖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一这敬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蕉朵,春花似錦崔涂、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至汛闸,卻和暖如春蝙茶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诸老。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工隆夯, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人别伏。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓吮廉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親畸肆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容