0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度學(xué)習(xí):搜索和推薦中的深度匹配問題

深度學(xué)習(xí)自然語言處理 ? 來源:深度學(xué)習(xí)自然語言處理 ? 作者:辛俊波 ? 2020-11-05 09:47 ? 次閱讀

本文主要啟發(fā)來源SIGIR2018的這篇綜述性slides《Deep Learning for Matching in Search and Recommendation》,重點闡述搜索和推薦中的深度匹配問題,非常solid的綜述,針對里面的一些方法,尤其是feature-based的深度學(xué)習(xí)方法增加了近期一些相關(guān)paper。推薦系統(tǒng)和搜索應(yīng)該是機器學(xué)習(xí)乃至深度學(xué)習(xí)在工業(yè)界落地應(yīng)用最多也最容易變現(xiàn)的場景。而無論是搜索還是推薦,本質(zhì)其實都是匹配,搜索的本質(zhì)是給定query,匹配doc;推薦的本質(zhì)是給定user,推薦item。本文主要講推薦系統(tǒng)里的匹配問題,包括傳統(tǒng)匹配模型和深度學(xué)習(xí)模型。

深度學(xué)習(xí)之風(fēng)雖然愈演愈烈,但背后體現(xiàn)的矩陣分解思想、協(xié)同過濾思想等其實一直都是貫穿其中,如svd++體現(xiàn)的userCF和itemCF的思想,F(xiàn)M模型本質(zhì)上可以退化成以上大多數(shù)模型等。多對這些方法做總結(jié),有助于更深刻理解不同模型之間的關(guān)聯(lián)。

圖1 推薦和搜索的本質(zhì),都是match的過程

整個目錄大綱如下所示:

1.推薦系統(tǒng)概述

1.1 推薦系統(tǒng)本質(zhì)

推薦系統(tǒng)就是系統(tǒng)根據(jù)用戶的屬性(如性別、年齡、學(xué)歷、地域、職業(yè)),用戶在系統(tǒng)里過去的行為(例如瀏覽、點擊、搜索、購買、收藏等),以及當(dāng)前上下文環(huán)境(如網(wǎng)絡(luò)、手機設(shè)備、時間等),從而給用戶推薦用戶可能感興趣的物品(如電商的商品、feeds推薦的新聞、應(yīng)用商店推薦的app等),從這個過程來看,推薦系統(tǒng)就是一個給user匹配(match)感興趣的item的過程。

1.2 推薦和搜索比較

推薦和搜索有很多相同又有很多不同的地方,放到一起的原因是兩者其實都是一個match的過程,圖1.1展示的是一個搜索引擎的架構(gòu),需要match的是query和相關(guān)的doc;圖1.2展示的是一個推薦系統(tǒng)的架構(gòu),需要match的是user(可能會帶有主動意圖的query)和相關(guān)的item。

圖1.1 搜索引擎架構(gòu)

圖1.2 推薦引擎架構(gòu)

1.2.1 搜索和推薦不同之處

(1) 意圖不同

搜索是用戶帶著明確的目的,通過給系統(tǒng)輸入query來主動觸發(fā)的,搜索過程用戶帶著明確的搜索意圖。而推薦是系統(tǒng)被動觸發(fā),用戶是以一種閑逛的姿態(tài)過來的,系統(tǒng)是帶著一種“猜”的狀態(tài)給用戶推送物品。

簡單來說,搜索是一次主動pull的過程,用戶用query告訴系統(tǒng),我需要什么,你給我相關(guān)的結(jié)果就行;而推薦是一次push的過程,用戶沒有明顯意圖,系統(tǒng)給用戶被動push認(rèn)為用戶可能會喜歡的東西吧。

(2) 時效不同

搜索需要盡快滿足用戶此次請求query,如果搜索引擎無法滿足用戶當(dāng)下的需求,例如給出的搜索結(jié)果和用戶輸入的query完全不相關(guān),盡是瞎猜的結(jié)果,用戶體驗會變得很差。

推薦更希望能增加用戶的時長和留存從而提升整體LTV(long time value,衡量用戶對系統(tǒng)的長期價值),例如視頻推薦系統(tǒng)希望用戶能夠持續(xù)的沉浸在觀看系統(tǒng)推薦的視頻流中;電商推薦系統(tǒng)希望用戶能夠多逛多點擊推薦的商品從而提高GMV。

(3) 相關(guān)性要求不同

搜索有嚴(yán)格的query限制,搜索結(jié)果需要保證相關(guān)性,搜索結(jié)果量化評估標(biāo)準(zhǔn)也相對容易。給定一個query,系統(tǒng)給出不同結(jié)果,在上線前就可以通過相關(guān)性對結(jié)果進(jìn)行判定相關(guān)性好壞。例如下圖中搜索query為“pool schedule”,搜索結(jié)果“swimming pool schedule”認(rèn)為是相關(guān)的、而最后一個case,用戶搜索“why are windows so expensive”想問的是窗戶為什么那么貴,而如果搜索引擎將這里的windows理解成微軟的windows系統(tǒng)從而給出結(jié)果是蘋果公司的mac,一字之差意思完全不同了,典型的bad case。

圖1.3 部分query和document的相關(guān)性匹配

而推薦沒有明確的相關(guān)性要求。一個電商系統(tǒng),用戶過去買了足球鞋,下次過來推薦電子產(chǎn)品也無法說明是bad case,因為用戶行為少,推完全不相關(guān)的物品是系統(tǒng)的一次探索過程。推薦很難在離線階段從相關(guān)性角度結(jié)果評定是否好壞,只能從線上效果看用戶是否買單做評估。

(4) 實體不同

搜索中的兩大實體是query和doc,本質(zhì)上都是文本信息。這就是上文說到的為什么搜索可以通過query和doc的文本相關(guān)性判斷是否相關(guān)。Query和doc的匹配過程就是在語法層面理解query和doc之間gap的過程。

推薦中的兩大實體是user和item,兩者的表征體系可能完全沒有重疊。例如電影推薦系統(tǒng)里,用戶的特征描述是:用戶id,用戶評分歷史、用戶性別、年齡;而電影的特征描述是:電影id,電影描述,電影分類,電影票房等。這就決定了推薦中,user和item的匹配是無法從表面的特征解決兩者gap的。

圖1.4 推薦系統(tǒng)的兩大實體:user和item

(5) 個性化要求不同

雖然現(xiàn)在但凡是一個推薦系統(tǒng)都在各種標(biāo)榜如何做好個性化,“千人千面”,但搜索和推薦天然對個性化需求不同。搜索有用戶的主動query,本質(zhì)上這個query已經(jīng)在告訴系統(tǒng)這個“用戶”是誰了,query本身代表的就是一類用戶,例如搜索引擎里搜索“深度學(xué)習(xí)綜述”的本質(zhì)上就代表了機器學(xué)習(xí)相關(guān)從業(yè)者或者對其感興趣的這類人。在一些垂直行業(yè),有時候query本身就夠了,甚至不需要其他用戶屬性畫像。例如在app推薦系統(tǒng)里,不同的用戶搜索“京東”,并不會因為用戶過去行為、本身畫像屬性不同而有所不同。

圖1.5 應(yīng)用寶搜索京東,不太需要很強的個性化結(jié)果

而推薦沒有用戶主動的query輸入,如果沒有用戶畫像屬性和過去行為的刻畫,系統(tǒng)基本上就等于瞎猜。

1.2.2 搜索和推薦相同之處

(1)本質(zhì)是都是match過程

如果把user比作query,把item比作doc,那么推薦和搜索在這個層面又是相同的,都是針對一個query(一個user),從海量的候選物品庫中,根據(jù)query和doc的相關(guān)性(user過去的歷史、畫像等和item的匹配程度),去推薦匹配的doc(item)

(2)目標(biāo)相同

搜索和推薦的目標(biāo)都是針對一次context(或者有明確意圖,或者沒有),從候選池選出盡可能滿足需求的物品。兩者區(qū)別只是挑選過程使用的信息特征不同。

(3)語義鴻溝(semantic gap)都是兩者最大的挑戰(zhàn)

在搜索里表現(xiàn)是query和doc的語義理解,推薦里則是user和item的理解。例如,搜索里多個不同的query可能表示同一個意圖;而推薦里用來表示user和item的特征體系可能完全不是一個層面的意思。

2.推薦系統(tǒng)的傳統(tǒng)匹配模型

2.1 基于Collaborative Filtering的方法

2.1.1 CF模型

說到推薦系統(tǒng)里最經(jīng)典的模型,莫過于大名鼎鼎的協(xié)同過濾了。協(xié)同過濾基于一個最基本的假設(shè):一個用戶的行為,可以由和他行為相似的用戶進(jìn)行預(yù)測。

協(xié)同過濾的基本思想是基于的所有交互行為,利用集體智慧進(jìn)行推薦。CF按照類型可以分為3種,user-based CF、item-based CF和model-based CF。

(1)User-base CF:通過對用戶喜歡的item 進(jìn)行分析,如果用戶a和用戶b喜歡過的item差不多,那么用戶a和b是相似的。類似朋友推薦一樣,可以將b喜歡過但是a沒有看過的item推薦給a

(2)Item-base CF: item A和item B如果被差不多的人喜歡,認(rèn)為item A和item B是相似的。用戶如果喜歡item A, 那么給用戶推薦item B大概率也是喜歡的。比如用戶瀏覽過這篇介紹推薦系統(tǒng)的文章,也很有可能會喜歡和推薦系統(tǒng)類似的其他機器學(xué)習(xí)相關(guān)文章。

(3)model-base CF: 也叫基于學(xué)習(xí)的方法,通過定義一個參數(shù)模型來描述用戶和物品、用戶和用戶、物品和物品之間的關(guān)系,然后通過已有的用戶-物品評分矩陣來優(yōu)化求解得到參數(shù)。例如矩陣分解、隱語義模型LFM等。

CF協(xié)同過濾的思路要解決的問題用數(shù)據(jù)形式表達(dá)就是:矩陣的未知部分如何填充問題(Matrix Completion)。如圖2.1所示,已知的值是用戶已經(jīng)交互過的item,如何基于這些已知值填充矩陣剩下的未知值,也就是去預(yù)測用戶沒有交互過的item是矩陣填充要解決的問題。

圖2.1 用戶對左圖評分過的電影,可以用右圖矩陣填充表達(dá)

矩陣填充可以用經(jīng)典的SVD(Singular Value Decomposition )解決,如圖2.1所示

圖2.2 SVD矩陣分解

其中左側(cè)M=m*n表示用戶評分矩陣,m矩陣的行表示用戶數(shù),n矩陣的列表示item數(shù),在大多數(shù)推薦系統(tǒng)中m和n規(guī)模都比較大,因此希望通過將M分解成右側(cè)低秩的形式。一般來說SVD求解可以分為三步:

(1) 對M矩陣的missing data填充為0

(2) 求解SVD問題,得到U矩陣和V矩陣

(3) 利用U和V矩陣的低秩k維矩陣來估計

對于第二步種的SVD求解問題,等價于以下的最優(yōu)化問題:

其中yij為用戶i對物品j的真實評分,也就是label, U和V為模型預(yù)估值,求解矩陣U和V的過程就是最小化用戶真實評分矩陣和預(yù)測矩陣誤差的過程。

這種SVD求解方法存在以下問題:

(1) missing data(在數(shù)據(jù)集占比超過99%)和observe data權(quán)重一樣

(2) 最小化過程沒有正則化(只有最小方差),容易產(chǎn)生過擬合

因此,一般來說針對原始的SVD方法會有很多改進(jìn)方法。

2.1.2 MF模型(矩陣分解)

為解決上述過擬合情況,矩陣分解模型(matrix factorization)提出的模型如下

MF模型的核心思想可以分成兩步

(1)將用戶u對物品i的打分分解成用戶的隱向量vu,以及物品的隱向量vi

(2)用戶u和物品i的向量點積(inner product)得到的value,可以用來代表用戶u對物品i的喜好程度,分?jǐn)?shù)越高代表該item推薦給用戶的概率就越大

同時,MF模型引入了l2正則來解決過擬合問題

當(dāng)然,這里除了用l2 正則,其他正則手段例如l1正則,cross-entropy正則也都是可以的。

2.1.3 FISM模型

上述提到的兩種模型CF方法和MF方法都只是簡單利用了user-item的交互信息,對于用戶本身的表達(dá)是userid也就是用戶本身。2014年KDD上提出了一種更加能夠表達(dá)用戶信息的方法,F(xiàn)actored Item Similarity Model,簡稱FISM,顧名思義,就是將用戶喜歡過的item作為用戶的表達(dá)來刻畫用戶,用數(shù)據(jù)公式表示如下:

注意到用戶表達(dá)不再是獨立的隱向量,而是用用戶喜歡過的所有item的累加求和得到作為user的表達(dá);而item本身的隱向量vi是另一套表示,兩者最終同樣用向量內(nèi)積表示。

2.1.4 SVD++模型

MF模型可以看成是user-based的CF模型,直接將用戶id映射成隱向量,而FISM模型可以看成是item-based的CF模型,將用戶交戶過的item的集合映射成隱向量。一個是userid本身的信息,一個是user過去交互過的item的信息,如何結(jié)合user-base和item-base這兩者本身的優(yōu)勢呢?

SVD++方法正是這兩者的結(jié)合,數(shù)學(xué)表達(dá)如下

其中,每個用戶表達(dá)分成兩個部分,左邊vu表示用戶id映射的隱向量(user-based CF思想),右邊是用戶交互過的item集合的求和(item-based CF思想)。User和item的相似度還是用向量點擊來表達(dá)。

這種融合方法可以看成早期的模型融合方法,在連續(xù)3年的Netflix百萬美金推薦比賽中可是表現(xiàn)最好的模型。

2.2 Generic feature-based的方法

上述的方法中,無論是CF, MF, SVD, SVD++,還是FISM,都只是利用了user和item的交互信息(ratin g data),而對于大量的side information信息沒有利用到。例如user本身的信息,如年齡,性別、職業(yè);item本身的side information,如分類,描述,圖文信息;以及context上下文信息,如位置,時間,天氣等。因此,傳統(tǒng)模型要講的第二部分,是如何利用這些特征,去構(gòu)造feature-based的model.

圖2.3 特征體系三模塊:用戶信息、物品信息、交互信息

2.2.1 FM模型

首先要介紹的是大名鼎鼎的FM模型。FM模型可以看成由兩部分組成,如圖2.4所示,藍(lán)色的LR線性模型,以及紅色部分的二階特征組合。對于每個輸入特征,模型都需要學(xué)習(xí)一個低維的隱向量表達(dá)v,也就是在各種NN網(wǎng)絡(luò)里所謂的embedding 表示。

圖2.4 FM模型的稀疏one-hot特征輸入

FM模型的數(shù)學(xué)表達(dá)如圖2.5所示

圖2.5 FM模型的數(shù)學(xué)表達(dá)分解

注意紅色部分表示的是二階特征的兩兩組合(特征自己和自己不做交叉),向量之間的交叉還是用向量內(nèi)積表示。FM模型是feature-based模型的一個范式表達(dá),接下來介紹的幾個模型都可以看成是FM模型的特殊范例。

2.2.2 FM模型和MF關(guān)系

假如只使用userid和itemid,我們可以發(fā)現(xiàn)其實FM退化成加了bias的MF模型,如圖2.6所示

圖2.6 FM模型可以退化成帶bias的MF模型

數(shù)學(xué)表達(dá)式如下:

2.2.3 FM模型和FISM關(guān)系

如果輸入包含兩個變量,1)用戶交互過的item集合;2)itemid本身,那么,此時的FM又將退化成帶bias的FISM模型,如圖2.7所示,藍(lán)色方框表示的是用戶歷史交互過的item(rated movies),右邊橙色方框表示的是itemid本身的one-hot特征

圖2.7 FM模型可以退化成帶bias的FISM模型

此時的FM模型數(shù)學(xué)表達(dá)如下:

同樣道理,如果再加上userid的隱向量表達(dá),那么FM模型將退化成SVD++模型??梢姡琈F, FISM, SVD++其實都是FM的特例。

2.3 傳統(tǒng)模型總結(jié)

上面介紹的模型都是通過打分預(yù)測來解決推薦系統(tǒng)的排序問題,這在很多時候一般都不是最優(yōu)的,原因有如下幾個方面:

(1)預(yù)測打分用的RMSE指標(biāo)和實際的推薦系統(tǒng)排序指標(biāo)的gap

預(yù)測打分用的RMSE擬合的是最小方差(帶正則),而實際面臨的是個排序問題

(2) 觀察數(shù)據(jù)天然存在bias

用戶一般傾向于給自己喜歡的item打分,而用戶沒有打分過的item未必就真的是不喜歡。針對推薦系統(tǒng)的排序問題,一般可以用pairwise 的ranking來替代RMSE

如上述公式所示,不直接擬合用戶對item的單個打分,而是以pair的形式進(jìn)行擬合;一般來說,用戶打分高的item>用戶打分低的item;用戶用過交互的item>用戶未交互過的item(不一定真的不喜歡)

3.基于representation learning的深度匹配模型

終于要講到激動人心的深度學(xué)習(xí)部分了。深度學(xué)習(xí)匹配模型從大致方向上可以分為兩大類,分別是基于representation learning的模型以及match function learning的模型。

本章主要講述第一種方法,representation learning,也就是基于表示學(xué)習(xí)的方法。這種方法會分別學(xué)習(xí)用戶的representation以及item的representation,也就是user和item各自的embedding向量(或者也叫做隱向量),然后通過定義matching score的函數(shù),一般是簡單的向量點擊、或者cosine距離來得到兩者的匹配分?jǐn)?shù)。整個representation learning的框架如圖3.1所示,是個典型的user和item的雙塔結(jié)構(gòu)

圖3.1 基于representation learning的匹配模型

基于representation learning的深度學(xué)習(xí)方法,又可以分為兩大類,基于CF以及CF + side info的方法。下面的介紹將分別從input 、representation function和matching function三個角度分別看不同的模型有什么不同

3.1 基于Collaborative Filtering的方法

3.1.1 CF模型(collaborative filtering)

重新回顧下傳統(tǒng)方法里的協(xié)同過濾方法,如果從表示學(xué)習(xí)的角度來看,就是個經(jīng)典的representation learning的模型,分別學(xué)習(xí)user和item的隱向量。

(1) Input layer

只有兩個,分別是userid(one-hot),itemid(one-hot)

(2) representation function

線性embedding layer

(3) matching function

向量內(nèi)積(inner product)

圖3.2 CF是representation learning最基礎(chǔ)的模型

3.1.2 模型(Deep Matrix Factorization)

DMF模型也就是深度矩陣分解模型,在傳統(tǒng)的MF中增加了MLP網(wǎng)絡(luò),整個網(wǎng)絡(luò)框架如圖3.3所示。

(1)input layer

由兩部分組組成,其中user由user交互過的item集合來表示,是個multi-hot的打分表示,如[0 0 4 0 0 … 1 5 …],在矩陣中用行表示;item也由交互過的user集合來表示,也是個multi-hot的表示,如[5 0 0 3 … 1 3],在矩陣中用列表示

圖3.3 DMF深度矩陣分解模型框架

可以發(fā)現(xiàn)這里的輸入都是one-hot的,一般來說M用戶數(shù)比較大,N作為item數(shù)量假設(shè)是百萬級別的。

(2)representation function

Multi-Layer-Perceptron,也就是經(jīng)典的全連接網(wǎng)絡(luò)

(3)matching function

用cosine點擊表示兩個向量的匹配分?jǐn)?shù)

對比普通的CF模型,最大的特點是在representation function中,增加了非線性的MLP,但是由于輸入是one-hot的,假設(shè)用戶規(guī)模是100萬,MLP的第一層隱層是100,整個網(wǎng)絡(luò)光user側(cè)的第一層參數(shù)將達(dá)到1億,參數(shù)空間將變得非常大

3.1.3 AutoRec模型

借鑒auto-encoder的思路,AutoRec模型對輸入做重建,來建立user和item的representation,和CF一樣,也可以分為user-based和item-based的模型。對于item-based AutoRec,input為R里的每列,即每個item用各個user對它的打分作為其向量描述;對于user-based AutoRec則是用R里的每行來表示,即每個user用他打分過的item的向量來表達(dá)。

用ru表示用戶向量,ri表示item向量,通過autoencoder將ru或者ri投射到低維向量空間(encode過程),然后再將其投射到正常空間(decode過程),利用autoencoder中目標(biāo)值和輸入值相近的特性,從而重建(reconstruct)出用戶對于未交互過的item的打分。

(1) input layer

和DMF一樣,user用user作用過的item集合表示,item則用itemid本身表示,圖中在原slides是說user-autoencoder,但個人在看原始autoRec論文時,這塊應(yīng)該有誤,應(yīng)該是item-based的,因為m表示的是用戶數(shù),n表示item數(shù),下方的輸入表示所有user(1,2,3,…m)對item i的交互輸入

圖3.4 item-based的autoRec模型

(2)representation function

通過auto-encoder的結(jié)構(gòu)表示,其中,h(r; theta)表示的是輸入層到隱層的重建;由于輸入的是用戶交互過的item(multi-hot),所以在隱層中的藍(lán)色節(jié)點表示的就是user representation;而輸出的節(jié)點表示的是item的representation,這樣就可以得到user和item各自representation,如下面公式所示

損失函數(shù)為最小化預(yù)測的平方差以及W和V矩陣的L2正則

(3)matching function

有了user和item的representation,就可以用向量點擊得到兩者的匹配分?jǐn)?shù)

3.1.4 模型 (Collaborative Denoising Auto-Encoders )

CDAE模型類似SVD++的思想,除了userid本身表達(dá)用戶,也將用戶交互過的item作為user的表達(dá)。

(1) input layer

用戶id,用戶歷史交互過的item;以及itemid。可以發(fā)現(xiàn)對比上述基礎(chǔ)的autoRec,用戶側(cè)輸入同時使用了用戶歷史交互過的item以及userid本身這個bias,思想很類似SVD++。如圖3所示的input layer節(jié)點,綠色節(jié)點表示每個用戶交互過的item,最下面的紅色節(jié)點user node表示用戶本身的偏好,可以認(rèn)為是userid的表達(dá)

(2) representation function

圖3.5 CDAE模型結(jié)構(gòu)

其中,中間藍(lán)色的隱層節(jié)點作為用戶表示,其中Vu為input layer中的user node的representation,針對所有用戶id會學(xué)習(xí)一個和item無關(guān)的vu向量表達(dá),可以認(rèn)為是用戶本身的bias,例如有些用戶打分本身比較嚴(yán)格,再好的item打分也不會太高;有些用戶打分很寬松,只要item別太差都會給高分,加上Vu可以更好的刻畫用戶之間天然的bias。

而對于輸出層的節(jié)點,可以認(rèn)為是用戶u對物品i的打分預(yù)測

(3) matching function

使用向量點積作為匹配分?jǐn)?shù)

3.1.5 基于CF方法的深度模型總結(jié)

總結(jié)下以上基于CF的方法,有以下幾個特點

(1)user或者item要么由本身id表達(dá),要么由其歷史交互過的行為來表達(dá)

(2)用歷史交互過的行為來作為user或者item的表達(dá),比用id本身表達(dá)效果更好,但模型也變得更復(fù)雜

(3) Auto-encoder本質(zhì)上等同于MLP+MF,MLP用全連接網(wǎng)絡(luò)做user和item的representation表達(dá)

(4) 所有訓(xùn)練數(shù)據(jù)僅用到user-item的交互信息,完全沒有引入user和item的side info信息

3.2 基于Collaborative Filtering+ side information的方法

基于CF的方法沒有引入side information,因此,對于representation learning的第二種方法,是基于CF + side info,也就是在CF的方法上額外引入了side info。

3.2.1 DCF模型(Deep Collaborative Filtering)

(1) input layer

除了用戶和物品的交互矩陣,還有用戶特征X和物品特征Y

(2) representation function

和傳統(tǒng)的CF表示學(xué)習(xí)不同,這里引入了用戶側(cè)特征X例如年齡、性別等;物品側(cè)特征Y例如文本、標(biāo)題、類目等;user和item側(cè)的特征各自通過一個auto-encoder來學(xué)習(xí),而交互信息R矩陣依然做矩陣分解U,V。整個模型框架如圖3.6所示。

圖3.6 DCF模型框架

其中W1, 表示的用戶側(cè)特征X在auto-encoder過程中的encode部分,也就是輸入到隱層的重建,P1表示的是用戶特征到交互矩陣R的映射;而W2表示物品側(cè)特征Y在auto-encoder過程中的encode部分。P2表示的是物品特征到交互矩陣R的映射。

損失函數(shù)優(yōu)化,需要最小化用戶側(cè)特征的reconstruction和item側(cè)的encoder部分,以及交互矩陣和預(yù)測矩陣的平方差,還有加上L2正則。如圖3.7第一個公式

圖3.7 CDAE模型的損失函數(shù)分解

圖3.7下面兩組公式中,可以看出用戶側(cè)和物品側(cè)特征都由兩項error組成,第一項衡量的是input和corrupted input構(gòu)建的預(yù)估誤差,需要保證W1和W2對于corrupted 后的input x 和y不能擬合太差;第二項表達(dá)的是映射后的隱層特征空間W1X和投射到U矩陣的誤差不能太大。

簡單理解,整個模型的學(xué)習(xí),既需要保證用戶特征X和物品特征Y本身encode盡可能準(zhǔn)確(auto-encoder的reconstruction誤差),又需要保證用戶對物品的預(yù)估和實際觀測的盡可能接近(矩陣分解誤差),同時正則化也約束了模型的復(fù)雜度不能太高

3.2.2 DUIF模型(Deep User and Image Feature Learning)

(1) input layer

除了用戶和物品的交互矩陣,還有用戶特征X和物品特征Y

(2) representation function

整個match score可以用下圖表示:fi表示原始圖片特征,通過CNN網(wǎng)絡(luò)提取的圖片特征作為item的表達(dá),然后用一個線性映射可以得到item的embedding表達(dá)

(3) match function

通過模型學(xué)到的pu作為用戶的representation,以及通過CNN提取的圖片特征作為item的 representation, 兩者通過向量點積得到兩者的匹配分?jǐn)?shù)

3.2.3 ACF模型(Attentive Collaborative Filtering)

Sigir2017提出的Attention CF方法,在傳統(tǒng)的CF里引入了attention機制。這里的attention有兩層意思,第一層attention,認(rèn)為用戶歷史交互過的item的權(quán)重是不一樣的;另一個attention意思是,用戶同一個item里到的視覺特征的權(quán)重也是不一樣的,如圖3.8所示。

圖3.8 ACF模型結(jié)構(gòu)

(1) input layer

a) 用戶側(cè):userid;用戶歷史交互過的item

b) Item側(cè):itemid; item相關(guān)的視覺相關(guān)特征

(2) representation function

可以分為兩個attention,一個是component 層級的attention,主要是提取視覺特征;第二層是item層級的attention,主要提取用戶對物品的喜好程度權(quán)重。

a) component-attention

在該paper里的推薦系統(tǒng)針對的是multi-media的,有很多圖文和視頻的特征信息提取,所以引入的第一層attention指的是component attention,認(rèn)為對于不同的components 對item representation的貢獻(xiàn)程度是不同的,如圖3.9所示

圖3.9 component attention框架

對第l個item,輸入為不同region本身的特征xl1, xl2, xlm,表示的是m個不同的item feature, 以及用戶輸入ui,最終item的表達(dá)為不同的region的加權(quán)embedding。

其中第一個公式表示用戶i對物品l第m個component(例如圖片特征中的局部區(qū)域特征,或者視頻中不同幀的特征)的權(quán)重;第二個公式softmax對attention權(quán)重歸一化

b) item attention

第二層attention,認(rèn)為用戶作用過的item歷史中,權(quán)重應(yīng)該是不同的。這里文章使用了SVD++的方式,用戶本身的表達(dá)引入了a(i, l),代表的是用戶i對其歷史交互過的物品l的權(quán)重.

用戶i對第l個item的權(quán)重表達(dá)可以用如下的數(shù)據(jù)表示:

其中ui是用戶本身的latent vector, vl是物品l的latent vector,pl是物品l的輔助latent vector; xl是表示前面提到的從圖文信息提取的特征latent vector。用戶最終的表達(dá)是自身ui的latent vector,以及歷史行為的attention加權(quán)的representation表示。

模型使用的是pairwise loss進(jìn)行優(yōu)化

(3) representation function

使用user和item的向量點擊作為匹配分?jǐn)?shù)

3.2.4 CKB模型(Collaborative Knowledge Base Embedding)

CKB模型是在2016年KDD提出的,利用知識圖譜做representation learning,模型框架如圖3.10所示。整個CKB模型框架其實思想比較簡單,分別在結(jié)構(gòu)化信息、文本信息和視覺信息中提取item側(cè)特征作為item的representation

圖3.10 CKB模型框架

(1) input layer

a) user側(cè):userid

b) item側(cè):itemid; 基于知識圖譜的item特征(structural, textual, visual )

(2) representation function

主要是從知識圖譜的角度,從結(jié)構(gòu)化信息,文本信息以及圖文信息分別提取item側(cè)的表達(dá),最終作為item的embedding

a) 結(jié)構(gòu)化特征struct embedding: transR, transE

圖3.11 struct embedding框架

b) 文本特征Textual embedding: stacked denoising auto-encoders (S-DAE)

圖3.12 textual embedding框架

c) 視覺特征Visual embedding: stacked convolutional auto-encoders (SCAE)

圖3.13 visual embedding框架

(3) matching function

得到用戶向量和item向量后,用向量點擊表示user和item的匹配分?jǐn)?shù);損失函數(shù)則用如下的pair-wise loss表示

3.3 基于representation的深度匹配方法總結(jié)

總結(jié)上述基于CF的方法,可以用如下的范式作為表達(dá)

圖3.14 基于CF的深度匹配模型范式

(1)representation learning: 目的是學(xué)習(xí)到user和item各自的representation(也叫l(wèi)atent vector, 或者embedding)

(2) 特征表達(dá):user側(cè)特征除了用戶id本身userid,可以加上其他side info;item側(cè)特征除了物品id本身itemid, 還有其他文本特征、圖文特征、視頻幀特征等信息

(3) 模型表達(dá):除了傳統(tǒng)的DNN,其他結(jié)構(gòu)如Auto-Encoder(AE), Denoise-Auto-Encoder(DAE),CNN,RNN等。

基于representation learning的深度匹配模型不是一個end-2-end模型,通過user和item各自的representation作為中間產(chǎn)物,解釋性較好,而且可以用在出了排序階段以外的其他環(huán)節(jié),例如求物品最相似的item集合,召回環(huán)節(jié)等。

4.基于match function learning 的深度匹配模型

對比representation learning的方法,基于match function learning最大的特點是,不直接學(xué)習(xí)user和item的embedding,而是通過已有的各種輸入,通過一個neural network框架,來直接擬合user和item的匹配分?jǐn)?shù)

圖4.1 基于match function learning的深度匹配模型框架

簡單來說,第一種方法representation learning不是一種end-2-end的方法,通過學(xué)習(xí)user和item的embedding作為中間產(chǎn)物,然后可以方便的計算兩者的匹配分?jǐn)?shù);而第二種方法matching function learning是一種end2end的方法,直接擬合得到最終的匹配分?jǐn)?shù)。本章主要介紹基于match function learning的深度學(xué)習(xí)匹配方法。

4.1 CF-based的深度模型

前面?zhèn)鹘y(tǒng)匹配模型以及基于表示學(xué)習(xí)的模型,其base模型都離不開協(xié)同過濾,也可以稱為基于矩陣分解的模型。基于match function learning的模型也不例外。

4.1.1 基于NCF框架的方法

基于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法(NCF)為何向南博士在2017年提出,對比傳統(tǒng)的CF網(wǎng)絡(luò),在得到user vector和item vector后,連接了MLP網(wǎng)絡(luò)后,最終擬合輸出,得到一個end-2-end的model。這套框架好處就是足夠靈活,user和item側(cè)的雙塔設(shè)計可以加入任意side info的特征,而MLP網(wǎng)絡(luò)也可以靈活的設(shè)計,如圖4.2所示。

圖4.2 基于神經(jīng)網(wǎng)絡(luò)的協(xié)同過濾框架

NCF框架對比第三章所說的CF方法最主要引入了MLP去擬合user和item的非線性關(guān)系,而不是直接通過inner product或者cosine去計算兩者關(guān)系,提升了網(wǎng)絡(luò)的擬合能力。然而MLP對于直接學(xué)習(xí)和捕獲從mf提取的user和item vector能力其實并不強。在wsdm2018的一篇文章質(zhì)疑的就是MLP對特征組合的擬合能力

圖4.3 DNN模型擬合數(shù)據(jù)實驗

該paper做了一組實驗,使用1層的MLP網(wǎng)絡(luò)去擬合數(shù)據(jù);實驗證明對于二維一階的數(shù)據(jù),也需要100個節(jié)點才能擬合;如果超過2階,整個MLP的表現(xiàn)將會非常差。文章因此說明了DNN對于高階信息的捕捉能力并不強,只能捕捉低階信息。

下文要講的模型,也是在模型結(jié)構(gòu)或者特征層面做的各種變化。

4.1.1.1 NeuMF模型(Neural Matrix Factorization)

Neural MF,顧名思義,同時利用了MF和神經(jīng)網(wǎng)絡(luò)MLP的能力來擬合matching score;MF利用向量內(nèi)積學(xué)習(xí)user和item的關(guān)聯(lián),同時MLP部分捕捉兩者的其他高階信息。這篇paper其實和NCF框架是出自同一篇paper的。模型可以分為GMF和MLP兩個部分來看,如圖4.4所示。

圖4.4 NeuMF模型結(jié)構(gòu)框架

(1) GMF(General Matrix Factorization)部分

user和item都通過one-hot編碼得到稀疏的輸入向量,然后通過一個embedding層映射為user vector和item vector。這樣就獲得了user和item的隱向量,一般可以通過向量點積或者哈達(dá)馬積(element-wide product)得到交互,不過在NeuMF中多連接了一個連接層,也就是GMF layer

(2) MLP部分

輸入和GMF部分一樣,都是one-hot的稀疏編碼,然后通過embedding層映射為user vector和item vector。注意到這里user和item的vector 和GMF部分是不一樣的,原因是GMF和MLP兩個網(wǎng)絡(luò)結(jié)構(gòu)對隱層維度要求不同,MLP部分會高一些(個人感覺share embedding能更充分訓(xùn)練embedding)

embedding層之后就是幾層常規(guī)的MLP,這塊沒什么好說的,最后一層輸出作為MLP的output。

4.1.1.2 NNCF模型(Neighbor-based NCF)

CIKM2017提出的一種基于neighbor的NCF方法,最大的不同在于輸入除了user和item的信息,還各自引入了user和item各自的neighbor信息。

圖4.5 NNCF模型框架

圖4.5所示的輸入由兩部分組成,中間xu和yi為原始的user和item的one-hot輸入,通過embedding層后映射為pu和qi的embedding向量,然后通過哈達(dá)馬積作為MLP的輸入。而輸入層兩側(cè)的nu和ni是user和item各自的neighbor信息的輸入,這里nu和ni息如何提取可以采用多種手段,如二部圖挖掘,user-CF或者item-CF等。

對于neighbor信息,由于每個用戶和item的neighbor數(shù)不一致,輸入是不定長的,通過卷積和pooling后提取得到定長的embedding,然后和user以及item本身的向量concat后輸入到模型中

4.1.1.3 ONCF模型(Outer-Product based NCF)

何向南博士2018年在NCF模型框架上提出了outer-product based NCF,在原有的NCF框架上,引入了outer product的概念,如圖4.6所示。

圖4.6 ONCF模型框架

在embedding layer之后,O-NCF模型引入了interaction map也就是特征交叉層,對于用戶u的向量pu和物品i的向量qi,引入兩者的outer-product

E是一個k*k維的矩陣,其中的每個element兩兩相乘,得到2維的矩陣。到這,可以通過把二維矩陣展開變成一個k2維度的向量,作為MLP的輸入。假設(shè)k=64,那么E就是個4096的向量,每一層隱層單元個數(shù)設(shè)置為上一層的一半,那么第一層的維度為4096*2048約需要840萬的網(wǎng)絡(luò)參數(shù)需要訓(xùn)練,參數(shù)量非常巨大。

因此,文章提出了一種利用CNN局部連接共享參數(shù)的方法來減少embedding layer到hidden layer之間的參數(shù),如圖4.7所示。

圖4.7 ConvNCF模型框架

假設(shè)隱層維度K=64,有6層hidden layer,每一層有32個卷積核(feature map),步長stride=2,那么經(jīng)過每個卷積核后的feature map大小為原來的1/4(長和寬各少了一半)。以第一層卷積為例。

那么第一層卷積后得到的網(wǎng)絡(luò)是個323232的3維vector,其中最后一個32代表feature map個數(shù)。這里如何體現(xiàn)特征交叉的思想呢?ei,j,c代表的就是在前一層的feature map中,第i個單元和第j個element的二階交叉。第一層feature map中,每個單元提取的是上一層22區(qū)域的local連接信息,第三層提取的就是第一層44的信息,那么在網(wǎng)絡(luò)的最后一層就能提取到原始feature map里的global 連接信息,從而達(dá)到高階特征提取的目的。

總結(jié)來說,使用原始的outer-product思想,在第一層網(wǎng)絡(luò)處有近千萬的參數(shù)需要學(xué)習(xí),而使用CNN網(wǎng)絡(luò)一方面能夠減少參數(shù)量,另一方面又同時提取了低階和高階特征的組合。個人覺得引入CNN固然能節(jié)省內(nèi)存,但也同時會帶來訓(xùn)練和推理時間的增加,是一種時間換空間的思想。另外用CNN是否能夠比原始MLP更有效擬合特征組合也需要結(jié)合數(shù)據(jù)分布去看。

4.1.1.4 小結(jié)

基于NCF框架的方法基礎(chǔ)原理是基于協(xié)同過濾,而協(xié)同過濾本質(zhì)上又是在做user和item的矩陣分解,所以,基于NCF框架的方法本質(zhì)上也是基于MF的方法。矩陣分解本質(zhì)是盡可能將user和item的vector,通過各種方法去讓user和item在映射后的空間中的向量盡可能接近(用向量點擊或者向量的cosine距離直接衡量是否接近)。

而另外一種思路,基于翻譯的方法,也叫translation based model,認(rèn)為user和item在新的空間中映射的vector可以有g(shù)ap,這個gap用relation vector來表達(dá),也就是讓用戶的向量加上relation vector的向量,盡可能和item vector接近。兩種方法的區(qū)別可以用圖4.8形象的表示。

圖4.8 基于矩陣分解和基于翻譯的模型區(qū)別

4.1.2 基于translation框架的方法

4.1.2.1 transRec模型

2017年的recsys會議上提出的一種基于“translate”的推薦方法,要解決的是next item的推薦問題?;舅枷胧钦f用戶本身的向量,加上用戶上一個交互的item的向量,應(yīng)該接近于用戶下一個交互的item的向量,輸入是(user, prev item, next item),預(yù)測下個item被推薦的概率

圖4.9 transRec模型框架

用戶向量表達(dá)如下:

這里ri和rj表示的是用戶上一個交互的item i和下一個交互的item j,tu為用戶本身的向量表達(dá)。而在實際的推薦系統(tǒng)中,往往存在數(shù)據(jù)稀疏和用戶冷啟動問題,因此,作者將用戶向量tu分解成了兩個向量。

這里t可以認(rèn)為是全局向量,表示的是所有用戶的平均行為,tu表示用戶u本身的bias,例如對于冷啟動用戶,tu可以設(shè)置為0,用全局用戶的表達(dá)t作為冷啟動。

對于熱門item由于出現(xiàn)次數(shù)非常多,會導(dǎo)致最終熱門item的向量和絕大多數(shù)用戶向量加上item向量很接近,因此文章對熱門item做了懲罰,最終,已知上一個item i,用戶和下一個item j的匹配score表達(dá)為:

其中, 第一項beta_j表示的是物品j的全局熱度;第二項d表示的是用戶向量加上物品i的向量與物品j向量的距離;距離越小表示i和j距離越接近,被推薦的可能性就越大

4.1.2.2 LRML模型(Latent Relational Metric Learning)

前面講到,基于translation框架的方法對比基于CF框架方法最大的不同,在于找到一個relation vector,使得user vector + relation vector盡可能接近item vector。WWW2018提出的LRML模型通過引入memory network來學(xué)習(xí)度量距離??梢苑譃槿龑觢ayer,分別是embedding layer, memory layer和relation layer。

圖4.10 LRML模型框架

(1) embedding layer

底層是常規(guī)的雙塔embedding,分別是用戶embedding矩陣和物品的embedding矩陣,用戶one-hot輸入和item的one-hot輸入通過embedding后得到用戶向量p和物品向量q

(2) memory layer

記憶網(wǎng)絡(luò)層是文章的核心模塊,作者通過引入memory layer作為先驗?zāi)K。這個模塊可以分為三個步驟進(jìn)行計算:

a)用戶和物品embedding融合

embedding層得到的user和item向量p和q需要先經(jīng)過交叉合成一個向量后輸入到下一層,作者提到使用哈達(dá)碼積效果優(yōu)于MLP效果,也更簡單

b)用戶-物品key addressing

從第一步得到的向量s中,去和memory記憶網(wǎng)絡(luò)模塊中的各個memory vector挨個計算相似度,相似度可以用內(nèi)積表達(dá)并做歸一化

得到的ai代表的是當(dāng)前用戶-物品輸入對(p, q)與memory-network中的第i個向量的相似度.

c)最終加權(quán)表達(dá)

最終得到的relation vector是第二步得到的memory記憶網(wǎng)絡(luò)中不同vector的加權(quán)表達(dá),如下所示

(3) relation layer

從memory layer得到的r向量可以認(rèn)為是用戶向量p與物品向量q的relation vector,最終的距離用平方損失衡量,如圖4.11所示。

圖4.11 LRML relation層以及l(fā)oss結(jié)構(gòu)

由于解決的是推薦物品的排序問題,文章使用的是pairwise loss,因此在網(wǎng)絡(luò)的最后一層,對user和item分別進(jìn)行負(fù)樣本采樣得到p’和q’,然后使用pairwise hinge loss進(jìn)行優(yōu)化

4.2 feature-based的深度模型

4.1介紹的基于CF的方法,對大多數(shù)推薦系統(tǒng)來說,輸入的特征向量往往都是非常高維而且稀疏的,而特征之間的交叉關(guān)系對模型來說往往都是非常重要的。例如,用戶一般會在一天快吃三餐的時候,打開和訂餐相關(guān)的app,這樣,用戶使用訂餐app和時間存在著二階交叉關(guān)系;又比如說,男性的青年群體,往往更喜歡射擊類的游戲,性別、年齡以及類目之間存在著三階的交叉關(guān)系。因此,如何捕捉特征之間的交叉關(guān)系,衍生了眾多基于特征的模型,在這里將這些捕捉特征交叉關(guān)系的模型稱為feature-based model。

4.2.1 wide&deep 模型

提到深度學(xué)習(xí)模型,最經(jīng)典的莫過于2016年google提出的wide and deep模型。說是模型,不如說是通用的一套范式框架,在整個工業(yè)界一舉奠定了風(fēng)靡至今的模型框架,如圖4.12所示。

圖4.12 wide&deep 模型框架

在這個經(jīng)典的wide&deep模型中,google提出了兩個概念,generalization(泛化性)和memory(記憶性)。

(1) 記憶性:wide部分長處在于學(xué)習(xí)樣本中的高頻部分,優(yōu)點是模型的記憶性好,對于樣本中出現(xiàn)過的高頻低階特征能夠用少量參數(shù)學(xué)習(xí);缺點是模型的泛化能力差,例如對于沒有見過的ID類特征,模型學(xué)習(xí)能力較差。

(2) 泛化性:deep部分長處在于學(xué)習(xí)樣本中的長尾部分,優(yōu)點是泛化能力強,對于少量出現(xiàn)過的樣本甚至沒有出現(xiàn)過的樣本都能做出預(yù)測(非零的embedding向量),容易帶來驚喜。缺點是模型對于低階特征的學(xué)習(xí)需要用較多參數(shù)才能等同wide部分效果,而且泛化能力強某種程度上也可能導(dǎo)致過擬合出現(xiàn)bad case。尤其對于冷啟動的一些item,也有可能用用戶帶來驚嚇。

圖4.13 wide&deep模型特征框架

值得注意的是,雖然模型的deep部分?jǐn)M合和泛化能力很強,但絕對不意味著把特征交叉都交給MLP就夠了。實際證明,對于重要的一些人工經(jīng)驗的特征,對于提升整體效果還是非常重要的,如圖4.13所示。這個人工特征的所謂缺點,也是后續(xù)各種模型結(jié)構(gòu)想對其進(jìn)行“自動化”的優(yōu)化點。

4.2.2 deep crossing模型

微軟在2016年提出了一套框架deep crossing,這篇文章在輸入到embedding這里到是和wide&deep 沒有太多不同,主要區(qū)別在于MLP部分。

google的wide&deep模型里深度網(wǎng)絡(luò)的MLP部分是全連接網(wǎng)絡(luò),每一層的網(wǎng)絡(luò)輸入都是前一層的輸入出,受限于模型結(jié)構(gòu),越往后越難學(xué)習(xí)到原始輸入的表達(dá),一般深度不會太深,超過5層的網(wǎng)絡(luò)在工業(yè)界已經(jīng)算很少見了。為了解決這個問題,deep crossing網(wǎng)絡(luò)引入了resnet殘差網(wǎng)絡(luò)的概念,通過short-cut,在MLP的深層網(wǎng)絡(luò),也能接收來自第一層的輸入,這樣可以使得模型的深度達(dá)到10層之多,如圖4.14所示。

圖4.14 deep crossing模型框架

上述提到的wide&deep以及deep crossing框架更像是在模型結(jié)構(gòu)做的改進(jìn),一個引入了wide&deep,一個引入了resnet,特征層面并沒有做太多改造,如何體現(xiàn)feature-base呢?sigIR2017就有一篇文章做了個實驗,對wide&deep以及Deep&Cross實驗按照embedding是否做初始化分別做了實驗。實驗發(fā)現(xiàn),如果embedding是隨機初始化的,兩個深度模型連基礎(chǔ)的FM模型都打不過;哪怕經(jīng)過FM初始化了embedding,wide&deep模型效果也僅僅略好于FM模型,而deep crossing模型依然比不過FM模型,實驗結(jié)果如圖4.15所示

圖4.15 不同初始化對模型影響

這個結(jié)論也引出了關(guān)于MLP的一些思考,全連接網(wǎng)絡(luò)表面上看對所有節(jié)點都進(jìn)行了連接,理論上應(yīng)該學(xué)習(xí)到了各個節(jié)點的交叉特征,但是從結(jié)果上來看,MLP對這些特征交叉的學(xué)習(xí)能力確實非常差的。糾其原因,還是在模型結(jié)構(gòu)的設(shè)計上。

圖4.16 wide&deep模型和deep crossing模型

圖4.16里無論是wide&deep還是deep crossing network,embedding層之后到MLP之間,都是將embedding做concat的。這些concat后的信息其實能夠表達(dá)的特征交叉信息其實是非常有限的,僅靠MLP想完全捕捉到特征的有效交叉其實是非常困難的。因此,有大量工作關(guān)于在embedding這里如何捕捉特征交叉,其實就是在MLP網(wǎng)絡(luò)之前,利用更多的數(shù)學(xué)先驗范式做特征交叉去提取特征,這也是本節(jié)提到的方法叫做feature-based的原因。

4.2.3 PNN模型

embedding layer進(jìn)入MLP之前,引入了product layer 來顯式的學(xué)習(xí)每個field的embedding向量之間的兩兩交叉,如圖4.17所示。

圖4.17 PNN模型框架

左邊z為embedding層的線性部分,右邊為embedding層的特征交叉部分。這種product思想來源于,推薦系統(tǒng)中的特征之間的交叉關(guān)系更多是一種and“且”的關(guān)系,而非add"加”的關(guān)系。例如,性別為男且喜歡游戲的人群,比起性別男和喜歡游戲的人群,前者的組合比后者更能體現(xiàn)特征交叉的意義。根據(jù)product的方式不同,可以分為inner product(IPNN)和outer product(OPNN),如圖4.18所示。

圖4.18 PNN模型的兩種不同交叉方式

其中,IPNN模型每個特征是個inner product, f個field兩兩交叉,得到的新的特征組合有f*(f-1)/2個;outer product是兩個向量的乘積,得到的新的特征組合有個。

4.2.4 deepFM模型

google的wide&deep框架固然強大,但由于wide部分是個LR模型,仍然需要人工特征工程。華為諾亞方舟團(tuán)隊結(jié)合FM相比LR的特征交叉的功能,在2017年提出了deepFM,將wide&deep部分的LR部分替換成FM來避免人工特征工程,如圖4.19所示。

圖4.19 deepFM模型框架

比起wide&deep的LR部分,deeFM采用FM作為wide部分的輸出,F(xiàn)M部分如圖4.20所示。

圖4.20 deepFM模型中的FM部分

除此之外,deepFM還有如下特點:

(1) 更強的低階特征表達(dá)

wide部分取代WDL的LR,與4.2.1和4.2.2提到的wide&deep模型以及deep crossing模型相比更能捕捉低階特征信息

(2)embedding層共享

wide&deep部分的embedding層得需要針對deep部分單獨設(shè)計;而在deepFM中,F(xiàn)M和DEEP部分共享embedding層,F(xiàn)M訓(xùn)練得到的參數(shù)既作為wide部分的輸出,也作為DNN部分的輸入。

(3)end-end訓(xùn)練

embedding和網(wǎng)絡(luò)權(quán)重聯(lián)合訓(xùn)練,無需預(yù)訓(xùn)練和單獨訓(xùn)練

4.2.5 NFM模型(Neural Factorization Machines)

deepFM在embedding層后把FM部分直接concat起來(f*k維,f個field,每個filed是k維向量)作為DNN的輸入。Neural Factorization Machines,簡稱NFM,提出了一種更加簡單粗暴的方法,在embedding層后,做了一個叫做Bi-interaction的操作,讓各個field做element-wise后sum起來去做特征交叉,MLP的輸入規(guī)模直接壓縮到k維,和特征的原始維度n和特征field維度f沒有任何關(guān)系,如圖4.21所示。

圖4.21 NFM模型框架

這里論文只畫出了其中的deep部分, wide部分在這里省略沒有畫出來。Bi-interaction所做的操作很簡單:讓f個field兩兩element-wise相乘后,得到f*(f-1)/2個維度為k的向量,然后直接sum起來,最后得到一個k維的向量。所以該層沒有任何參數(shù)需要學(xué)習(xí),同時也降低了網(wǎng)絡(luò)復(fù)雜度,能夠加速網(wǎng)絡(luò)的訓(xùn)練;但同時這種方法也可能帶來較大的信息損失。

4.2.6 AFM模型(Attention Factorization Machines)

前面提到的各種網(wǎng)絡(luò)結(jié)構(gòu)中的FM在做特征交叉時,讓不同特征的向量直接做交叉,基于的假設(shè)是各個特征交叉對結(jié)果的貢獻(xiàn)度是一樣的。這種假設(shè)往往不太合理,原因是不同特征對最終結(jié)果的貢獻(xiàn)程度一般是不一樣的。Attention Neural Factorization Machines,簡稱AFM模型,利用了近年來在圖像、NLP、語音等領(lǐng)域大獲成功的attention機制,在前面講到的NFM基礎(chǔ)上,引入了attention機制來解決這個問題,如圖4.22所示。

圖4.22 AFM模型框架

AFM的embedding層后和NFM一樣,先讓f個field的特征做了element-wise product后,得到f*(f-1)/2個交叉向量。和NFM直接把這些交叉項sum起來不同,AFM引入了一個Attention Net,認(rèn)為這些交叉特征項每個對結(jié)果的貢獻(xiàn)是不同的,例如xi和xj的權(quán)重重要度,用aij來表示。從這個角度來看,其實AFM其實就是個加權(quán)累加的過程。Attention Net部分的權(quán)重aij不是直接學(xué)習(xí),而是通過如下公式表示

這里t表示attention net中的隱層維度,k和前面一樣,為embedding層的維度。所以這里需要學(xué)習(xí)的參數(shù)有3個,W, b, h,參數(shù)個數(shù)共tk+2t個。得到aij權(quán)重后,對各個特征兩兩點積加權(quán)累加后,得到一個k維的向量,引入一個簡單的參數(shù)向量pT,維度為k進(jìn)行學(xué)習(xí),和wide部分一起得到最終的AFM輸出。

圖4.23 AFM模型中attention的可視化解釋

關(guān)于AFM還有個好處,通過attention-base pooling計算的score值aij體現(xiàn)的是特征vi和vj之間的權(quán)重,能夠選擇有用的二階特征,如圖4.23所示。

4.2.7 DCN模型(Deep Cross Network)

前面提到的幾種FM-based的方法都是做的二階特征交叉,如PNN用product方式做二階交叉,NFM和AFM也都采用了Bi-interaction的方式學(xué)習(xí)特征的二階交叉。對于更高階的特征交叉,只有讓deep去學(xué)習(xí)了。為解決這個問題,google在2017年提出了Deep&Cross Network,簡稱DCN的模型,可以任意組合特征,而且不增加網(wǎng)絡(luò)參數(shù)。圖4.24為DCN的結(jié)構(gòu)。

圖4.24 DCN模型結(jié)構(gòu)

整個網(wǎng)絡(luò)分4部分組成:

(1)Embedding and stacking layer

之所以不把embedding和stacking分開來看,是因為很多時候,embedding和stacking過程是分不開的。前面講到的各種 XX-based FM 網(wǎng)絡(luò)結(jié)構(gòu),利用FM學(xué)到的v向量可以很好的作為embedding。而在很多實際的業(yè)務(wù)結(jié)構(gòu),可能已經(jīng)有了提取到的embedding特征信息,例如圖像的特征embedding,text的特征embedding,item的embedding等,還有其他連續(xù)值信息,例如年齡,收入水平等,這些embedding向量stack在一起后,一起作為后續(xù)網(wǎng)絡(luò)結(jié)構(gòu)的輸入。當(dāng)然,這部分也可以用前面講到的FM來做embedding。為了和原始論文保持一致,這里我們假設(shè)X0向量維度為d(上文的網(wǎng)絡(luò)結(jié)構(gòu)中為k),這一層的做法就是簡答的把各種embedding向量concat起來。

2)deep layer network

在embedding and stacking layer之后,網(wǎng)絡(luò)分成了兩路,一路是傳統(tǒng)的DNN結(jié)構(gòu)。表示如下

為簡化理解,假設(shè)每一層網(wǎng)絡(luò)的參數(shù)有m個,一共有Ld層,輸入層由于和上一層連接,有dm個參數(shù)(d為X0向量維度),后續(xù)的Ld-1層,每層需要m(m+1)個參數(shù),所以一共需要學(xué)習(xí)的參數(shù)有 dm+m(m+1)*(Ld-1)。最后的輸出也是個m維向量

3)cross layer network

embedding and stacking layer輸入后的另一路就是DCN的重點工作了。每一層l+1和前一層l的關(guān)系可以用如下關(guān)系表示

可以看到f是待擬合的函數(shù),xl即為上一層的網(wǎng)絡(luò)輸入。需要學(xué)習(xí)的參數(shù)為wl和bl,因為xl維度為d,當(dāng)前層網(wǎng)絡(luò)輸入xl+1也為d維,待學(xué)習(xí)的參數(shù)wl和bl也都是d維向量。因此,每一層都有2*d的參數(shù)(w和b)需要學(xué)習(xí),網(wǎng)絡(luò)結(jié)構(gòu)如下。

圖4.25 DCN模型的cross原理

經(jīng)過Lc層的cross layer network后,在該layer最后一層Lc層的輸出為Lc2的d維向量

(4)combination output layer

經(jīng)過cross network的輸出XL1(d維)和deep network之后的向量輸入(m維)直接做concat,變?yōu)橐粋€d+m的向量,最后套一個LR模型,需要學(xué)習(xí)參數(shù)為1+d+m。

總結(jié)起來,DCN引入的cross network理論上可以表達(dá)任意高階組合,同時每一層保留低階組合,參數(shù)的向量化也控制了模型的復(fù)雜度。cross網(wǎng)絡(luò)部分的交叉學(xué)習(xí)的是特征向量中每一個element的交叉,本質(zhì)上是bit-wise的。

4.2.8 xdeepFM模型(extreme Deep Factor Machine)

xDeepFM模型從名字上聽好像是deepFM模型的升級,但其實更應(yīng)該拿來和DCN模型做對比。DCN模型引入了高階特征交叉,但是特征的交叉本質(zhì)上是在bit-wise的。而xDeepFM模型認(rèn)為特征向量i和特征向量j的交叉過程中,i本身的元素交叉沒有意義,提取i和j的向量交叉才是更有效捕捉特征的方式,也就是vector-wise的交叉,整個模型的框架如圖4.26所示,最核心的模塊在于特征交叉的CIN模塊。

圖4.26 xDeepFM模型結(jié)構(gòu)

首先我們來看下整個CIN的整體框架圖,如圖4.27所示,假設(shè)特征field個數(shù)是m,每個field的隱層維度為d,那么原始embedding層的大小為m*d,而cross network有Hk層,提取的是特征的交叉。每一層網(wǎng)絡(luò)在做什么事情呢?就是和第一層x0做特征交叉得到新的特征向量后,然后這Hk層cross net得到的特征向量concat到一起,作為MLP的輸入。那么,這里面,每一層的特征xk到底是如何輸入層x0發(fā)生交互的?

圖4.27 CIN模塊結(jié)構(gòu)

以cross net的第k層和原始輸入x0為例,我們看下如何提取得到新的特征,圖4.28是其特征交叉的過程。其中xk的維度為HkD,表示的是第k層有Hk個vector,而原始輸入x0的維度為mD,表示輸入層有m個D維的vector。

圖4.28 CIN模塊中特征交叉過程

這里Wk,h表示的是第k層的第h個vector的權(quán)重,是模型需要學(xué)習(xí)的參數(shù)。整個公式的理解是整個xdeepFM理解的關(guān)鍵,我們具體看下發(fā)生了什么

(1) 首先,從前一層的輸入Xk-1(一共有Hk-1個vector),取出任意一個vector;從原始輸入x0(一共有m個vector),取出任意一個vector,兩者兩兩做哈達(dá)碼積,可以得到Hk-1*m個vector

(2) 這Hk-1*m個交叉得到的vector,每個vector維度都是D,我們通過一個W矩陣做乘積進(jìn)行加權(quán)求和,相當(dāng)于是個帶權(quán)重的pooling, 最終得到加權(quán)求和后的vector Xh,k,表示的是第h層第k個vector。這里的W矩陣就是模型要學(xué)習(xí)的

(3) 為什么說是壓縮,壓縮體現(xiàn)在哪里?還是用圖說話,這里我們看下原始論文給出的圖示,有助于整個過程的理解。

圖4.29 CIN模塊具體結(jié)構(gòu)

在圖4.29左圖中,我們把D看成是原始二維平面的寬度,我們沿著D的方向挨個進(jìn)行計算。先看xk向量中D的第一維,有Hk個數(shù);x0向量中D的第一維,有m個數(shù),讓Hk和m兩兩計算,就可以得到Hkm的一個平面。一直沿著D方向,2,3,4,…D,我們就可以得到一個Hkm*D的三維矩陣,暫且叫做zk+1,注意這個過程只是簡單的矩陣計算,沒有參數(shù)需要學(xué)習(xí)。

在4.29右邊的圖中,我們開始提取前面zk+1的信息,還是以D方向的第一維為例,一個mHk的平面,乘以一個大小一樣的mHk矩陣W,然后加權(quán)求和,就可以得到這個平面最后壓縮的一個實數(shù)。整個平面被“壓縮“成為了一個一維的數(shù)。一直沿著D方向求解每個平面壓縮后的數(shù),就可以得到一個D維的向量。

這就是整個“壓縮”的取名原因。整個過程非常類似CNN的filter卷積思想,W就是卷積核,得到的每個特征映射的值就是feature map。

4.2.9 FGCNN模型(Feature Generate by CNN)

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

圖4.30 FGCNN模型框架

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

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

(1) 卷積層Convolution Layer

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

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

1)Convolutional layer 輸入

特征one-hot之后經(jīng)過embedding層后的輸出作為卷積層的輸入,輸入維度為nf*k。nf為field個數(shù),k為隱層維度

2)Convolutional layer 輸出

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

(2) 池化層Pooling Layer

特征經(jīng)過第一層卷積層之后,從nfk變成了nfk*mc1,維度反而擴了mc1倍,這和預(yù)期的特征降維不一致,解決辦法和CNN里常用的套路一樣,通過pooling做降維。該paper使用的是max pooling,在原先卷積高度hp上選擇最大值作為卷積后的特征表達(dá),表達(dá)如下所示

pooling層輸入

卷積層的輸出作為池化層的輸出,以第一層為例,pooling層的輸入維度為nfkmc1

pooling層輸出

卷積層輸出的時候在高度方向上選擇max,只有高度方向維度發(fā)生變化,卷積輸出后維度為nf/hp * k *mc1,hp為卷積核高度,相當(dāng)于沿著field的方向壓縮了hp倍

(3) 重組層Recombination Layer

經(jīng)過特征卷積層和特征池化層后,可以通過特征重組Recombination layer生成新的特征組了。還是以第一層的Recombination layer為例,mc1為原始feature map的個數(shù),mr1為新生成的特征feature map的個數(shù),

其中s1為池化層的輸出,而WR1和BR1為該層待學(xué)習(xí)的參數(shù)

1)Recombination層輸入

卷積層的輸出S1為該層的輸入,通過WR1的矩陣進(jìn)行特征的recombination

2)Recombination層輸出

新生成的特征維度為nf/hpkmr1

(4) 特征輸出層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新特征的生成

1)concatenation層輸入

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

2)concatenation層輸出

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

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

新浪微博張俊林團(tuán)隊2019年提出的結(jié)合特征重要性(Fi)和雙線性特征交叉(Bi)的方法,F(xiàn)eature Importance & Bilinear feature Interaction,簡稱FiBiNet,其實是兩個相對獨立的模塊,兩個模塊可以獨立套用在其他的網(wǎng)絡(luò)結(jié)構(gòu)上,整體框架如圖4.34所示

圖4.34 FiBiNet模型框架

(1) SENet:特征重要性提取層

該層作用主要是提取特征重要性??梢苑譃槿龑覵queeze, Extract, Reweight,從原始的特征e1,e2,e3,…,ef 提取到新的特征v1,v2,v3,…, vf,其中f為特征field的個數(shù),整體框架如下

圖4.35 SENet框架

1)Squeeze層

特征壓縮層,對每個特征組中的embedding向量進(jìn)行匯總統(tǒng)計量的pooling操作,每個field的維度為k,從中squeeze壓縮提取最重要的1維。典型的方法一般有Max pooling或者average pooling,在更原始的SENet里用的是max pooling,但是在該paper里作者提到average pooling表現(xiàn)更好,個人其實也傾向于認(rèn)為average pooling直覺上更加make sense,只用max pooling從d維特征提取一維信息損失實在太大。當(dāng)然具體表現(xiàn)也需要結(jié)合具體數(shù)據(jù)實驗才知道

經(jīng)過S層,第i維特征從ei變成了zi,從維度為d的向量變成了一個維度為1的實數(shù)。整個輸入從f*d的矩陣變?yōu)閒維的向量

2)Excitation層

特征激活層,向量先做壓縮r(r為壓縮的倍數(shù)),然后擴展恢復(fù),類似auto-encoder思路

W1和W2為兩個轉(zhuǎn)換矩陣,先經(jīng)過壓縮然后恢復(fù),最終得到的A還是一個維度為f的向量

3)Reweight層

經(jīng)過前面Squeeze和Excitation得到的A相當(dāng)于是原始特征E的權(quán)重向量,乘以原始的特征E后,可以得到最終加權(quán)提取的V向量,可以認(rèn)為是原始特征的重要性表達(dá)

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

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

E層:對s層提取的特征信息進(jìn)行auto-encoder式的信息提取

R層:SE提取到的每個field特征重要性,進(jìn)行加權(quán)提取

(2) Bilinear特征交叉層

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

圖4.36 不同特征交叉方法

假設(shè)特征field的個數(shù)是f個,每個field的隱層維度為d。那么,如何確定需要學(xué)習(xí)的參數(shù)W呢?根據(jù)W的共享情況,可以分為以下三種類型

1) field type

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

2) field each

對于每個特征i來說,都需要學(xué)習(xí)唯一的一個Wi矩陣,該Wi只和左乘的特征vi有關(guān),和右乘特征vj無關(guān),一共有f個field,所以W的參數(shù)維度為fkk

3) field-interaction type

對于任意兩個需要交叉的特征vi和vj,都需要學(xué)習(xí)一個唯一的矩陣Wij,Wij不僅和左乘的特征有關(guān),也和右乘的特征有關(guān),也就是說,vi和vj的交叉,以及vj和vi的特征交叉,兩者用到的wij和wji是不一樣的,所以W的參數(shù)維度為ffk*k

當(dāng)然,以上三種不同的特征類型沒有絕對的誰好誰壞,不存在越復(fù)雜效果越好的情況,對于簡單的數(shù)據(jù)集,可能w共享是最好的,具體還是需要實驗才能知道。在文章里用了criteio和avazu數(shù)據(jù)集進(jìn)行實驗時,使用不同的模型,三種交叉方法也是各有千秋。

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

4.2.11 AutoInt模型(Auto Feature Interaction)

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

圖4.37 AutoInt模型框架

文章中的輸入沒有什么特別需要講的,就是常規(guī)的one-hot稀疏的特征經(jīng)過embedding層得到dense value。這里embedding層倒是值得一提,一般在大多數(shù)推薦系統(tǒng)里,對于one-hot做embedding是因為需要轉(zhuǎn)成dense的特征,而原本就是dense的特征原本就是定長dense特征,比較少見到做embedding的,而在該文章中將連續(xù)值特征和one-hot一樣去做embedding處理。不過這一塊不影響auto-int部分的理解。

圖4.38 embedding層輸入

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

回到本文的attention機制中,假設(shè)特征field個數(shù)為M,對于第m個field,在第h個head空間下的特征表達(dá)如下

圖4.39 特征m在空間h下的QKV結(jié)構(gòu)

(1) 特征m在空間h下的新映射

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

這里需要學(xué)習(xí)的參數(shù)為WQuery,Wkey,Wvalue,每個矩陣的維度為d’*d,從而將特征從d維映射為d’。W在所有特征中都是共享的,并不是每組特征都需要學(xué)習(xí)3個W

(2) 特征k對特征m相似度表達(dá),使用向量的點積

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

(4) 特征m在空間h下的加權(quán)新特征

(5) 特征m的全空間表達(dá)

有H個head,特征m最終的表達(dá)為H個新特征的concat,特征長度為H*d’

(6) 特征m最終表達(dá): resnet保留原始信息

作者為了保留更多信息,除了第5步得到的multi-head的新特征,也將原始的特征em引入到進(jìn)來,其實就是一種resnet思路,所以在這里需要有個額外的參數(shù)WRes需要學(xué)習(xí),需要將原始的特征維度d映射為和em一致的H*d’,所以WRes的參數(shù)維度為d’Hd

4.2.12 DIN模型(Deep Interest Network)

4.2.11提到的AutoInt里特征的attention機制有個特點,就是在計算特征的重要性的時候,所有特征都有機會成為query, 將其他特征作為keys去計算和當(dāng)前query的重要性從而得到權(quán)重的。而提到推薦系統(tǒng)里的attention機制,不得不提的就是阿里的這篇deep interest network了,簡稱DIN。工業(yè)界的做法不像學(xué)術(shù)界,很多模型網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化并不一味的追求模型的復(fù)雜和網(wǎng)絡(luò)結(jié)構(gòu)有多fancy,每一步背后都有大量的業(yè)務(wù)思考后沉淀下來的。

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

圖4.40 GwEN模型結(jié)構(gòu)(DIN的baseline)

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

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

圖4.41 DIN模型框架

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

(1)query: 用戶歷史行為,長度為H,e,e2,…,eH表示用戶歷史行為的向量表示

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

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

圖4.42 DIN模型中的Attention Unit

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

4.2.13 DIEN模型(Deep Interest Evolution Network)

在前面講到的模型中,所使用的特征都是時間無序的,din也如此,用戶的行為特征之間并沒有先后順序,強調(diào)的是用戶興趣的多樣性。但是實際用戶的興趣應(yīng)該是在不斷進(jìn)化的,用戶越近期的行為,對于預(yù)測后續(xù)的行為越重要,而用戶越早期的行為,對于預(yù)測后續(xù)行為的權(quán)重影響應(yīng)該小一點。因此,為了捕獲用戶行為興趣隨時間如何發(fā)展變化,在din提出一年后,阿里又進(jìn)一步提出了DIEN,引入了時間序列概念,深度興趣進(jìn)化網(wǎng)絡(luò)。

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

圖4.43 DIEN模型框架

(1) 輸入層

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

a) 用戶畫像特征:如年齡、性別、職業(yè)等

b) context特征:如網(wǎng)絡(luò)環(huán)境、時間、IP地址、手機型號等,與user以及item無關(guān)

c) target ad特征:當(dāng)前候選廣告

d) 用戶行為特征:DIEN里最重要的能體現(xiàn)用戶個性化的特征,對于每個用戶來說,假設(shè)有T個歷史行為,按照發(fā)生的先后順序依次輸入模型

(2) embedding層

將one-hot特征轉(zhuǎn)為dense的embedding向量

(3) 興趣抽取層(interest extractor layer)

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

經(jīng)過GRU結(jié)構(gòu)后,商品的embedding表達(dá)從e(t)變成了h(t),表示第t個行為序列的embedding表達(dá)。

圖4.44 DIEN中的輔助loss結(jié)構(gòu)

除了GRU結(jié)構(gòu)提取隱層的向量,DIEN還引入了有監(jiān)督學(xué)習(xí),強行讓原始的行為向量e(t)和h(t)產(chǎn)生交互。如圖4.44所示,引入了輔助loss(auxiliary loss),當(dāng)前時刻h(t)作為輸入,下一刻的輸入e(t+1)認(rèn)為是正樣本(click),負(fù)樣本進(jìn)行負(fù)采樣(不等于當(dāng)前時刻);然后讓h(t)與正負(fù)樣本分別做向量內(nèi)積,輔助loss定義為:

最終的loss表達(dá)為:

其中a為超參數(shù),代表的是輔助loss對整體loss的貢獻(xiàn)。有了這個輔助loss,t時刻提取的隱層向量h(t)可以比原始的h(t)更有助于表達(dá)用戶興趣,也可以加速網(wǎng)絡(luò)的訓(xùn)練過程。

(4) 興趣進(jìn)化層(interest evolving layer)

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

對于每個歷史行為ht,當(dāng)前候選廣告ea,通過softmax求出兩者的權(quán)重。注意這里不是直接向量點擊,而是引入了矩陣W,可以認(rèn)為是簡單的一層全連接網(wǎng)絡(luò)。

如何使用這里學(xué)習(xí)的attention作為興趣進(jìn)化層的輸入,作者又提出了三種計算方法

(1) AIGRU(attention input with GRU)

最基礎(chǔ)的版本,興趣進(jìn)化層第t個行為序列的input就是隱層ht的加權(quán)

作者嘗試后發(fā)現(xiàn)效果并不好,原因是如果是輸入0,也會參與到隱層ht的計算和更新,相當(dāng)于給用戶興趣的提取引入了噪音,不相關(guān)的用戶行為會干擾模型的學(xué)習(xí)

(2) AGRU(attention base GRU)

這里作者使用了attention權(quán)重at來取代原始GRU中的更新門,表達(dá)如下

(3) AUGRU(GRU with attentional update gate)

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

圖4.45 AUGRU結(jié)構(gòu)

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

4.3 feature-based模型總結(jié)

Feature-based的模型主要在于學(xué)習(xí)特征之間的交叉,是近年來整個推薦系統(tǒng)在排序?qū)用娴闹髁餮芯糠较颍凑詹煌S度,我個人把4.2列到的模型分為4個類型,同一個模型可能會分到不同的類型里。這里的分類僅僅代表個人的觀點,歡迎探討。

4.3.1 基于框架的模型

(1) wide&deep模型

深度加寬度的模型范式,本身并不是一個具體的模型,wide和deep部分可以用任意結(jié)構(gòu)框架,wide的baseline是LR模型;deep的baseline是MLP模型。

(2) deep crossing模型

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

4.3.2 基于FM特征二階組合的模型

學(xué)習(xí)特征交叉的主要手段是將特征的embedding做交叉,特點是特征的交叉是二維的,無非是二階交叉如何做。

(1)deepFM模型

特征交叉使用的element-wise product,最終得到的是一個實數(shù)

(2)NFM模型

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

(3) AFM模型

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

(4) PNN模型

PNN模型放到基于FM的模型是因為本質(zhì)上和FM一樣,都是在學(xué)習(xí)特征的二階組合。和deepFM不同的是,以IPNN為例,PNN的所有特征兩兩product交叉學(xué)習(xí)得到的值conat后得到現(xiàn)實的product vector后進(jìn)入MLP模型;而deepFM是直接將FM模型的vector輸入到MLP模型中。

4.3.3 基于attention的模型

(1) AutoInt模型

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

(2) DIN模型

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

(3) DIEN模型

只使用用戶歷史行為特征作為keys,keys之間具有先后順序,引入兩層GRU表達(dá),第一層GRU學(xué)習(xí)用戶歷史行為序列的信息,每個時刻t輸出的隱層embedding為該時刻item的embedding表達(dá);第二層GRU用來學(xué)習(xí)歷史每個時刻t的歷史行為和當(dāng)前候選廣告的權(quán)重。

(4) FiBiNet 模型

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

4.3.4 基于特征高階組合的模型

(1) DCN模型

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

(2) xdeepFM模型

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

(3)FGCNN模型

通過使用CNN模塊,先是卷積層提取局部特征的連接,如高度等于3能夠提取相鄰3個field的特征的關(guān)系,因此具有高階特征的交叉能力。然后又通過池化層提取global信息,確保特征的輸入順序?qū)Y(jié)果的影響能夠被捕捉到。

5.總結(jié)

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

對于傳統(tǒng)模型,主要分為基于協(xié)同過濾的模型和基于特征的模型,兩者最大的不同在于是否使用了side information?;趨f(xié)同過濾的模型,如CF, MF, FISM, SVD++,只用到了用戶-物品的交互信息,如userid, itemid, 以及用戶交互過的item集合本身來表達(dá)。而基于特征的模型以FM為例,主要特點是除了用戶-物品的交互之外,還引入了更多的side information。FM模型是很多其他模型的特例,如MF, SVD++,F(xiàn)ISM等。

對于深度模型,主要分為基于representation learning的深度模型以及match function learning的深度模型?;趓epresentation learning的深度模型學(xué)習(xí)的是用戶和物品的表示,然后通過匹配函數(shù)來計算,這里重點在與representation learning階段,可以通過CNN網(wǎng)絡(luò),auto-encoder, 知識圖譜等模型結(jié)構(gòu)來學(xué)習(xí)。

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

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

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

6. 參考文獻(xiàn)

(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) Guo, Huifeng, Ruiming Tang, Yunming Ye, Zhenguo Li, and Xiuqiang 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.

責(zé)任編輯:xj

原文標(biāo)題:三萬字整理深度匹配模型

文章出處:【微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FM
    FM
    +關(guān)注

    關(guān)注

    1

    文章

    179

    瀏覽量

    59002
  • 匹配
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    13941
  • 卷積
    +關(guān)注

    關(guān)注

    0

    文章

    94

    瀏覽量

    18466
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5422

    瀏覽量

    120593

原文標(biāo)題:三萬字整理深度匹配模型

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    深度學(xué)習(xí)反卷積的原理和應(yīng)用

    深度學(xué)習(xí)的廣闊領(lǐng)域中,反卷積(Deconvolution,也稱作Transposed Convolution)作為一種重要的圖像上采樣技術(shù),扮演著至關(guān)重要的角色。特別是在計算機視覺任務(wù),如圖
    的頭像 發(fā)表于 07-14 10:22 ?702次閱讀

    深度學(xué)習(xí)的時間序列分類方法

    的發(fā)展,基于深度學(xué)習(xí)的TSC方法逐漸展現(xiàn)出其強大的自動特征提取和分類能力。本文將從多個角度對深度學(xué)習(xí)在時間序列分類的應(yīng)用進(jìn)行綜述,探討常用
    的頭像 發(fā)表于 07-09 15:54 ?378次閱讀

    深度學(xué)習(xí)的無監(jiān)督學(xué)習(xí)方法綜述

    應(yīng)用往往難以實現(xiàn)。因此,無監(jiān)督學(xué)習(xí)深度學(xué)習(xí)扮演著越來越重要的角色。本文旨在綜述深度
    的頭像 發(fā)表于 07-09 10:50 ?216次閱讀

    深度學(xué)習(xí)在視覺檢測的應(yīng)用

    深度學(xué)習(xí)是機器學(xué)習(xí)領(lǐng)域中的一個重要分支,其核心在于通過構(gòu)建具有多層次的神經(jīng)網(wǎng)絡(luò)模型,使計算機能夠從大量數(shù)據(jù)自動學(xué)習(xí)并提取特征,進(jìn)而實現(xiàn)對復(fù)
    的頭像 發(fā)表于 07-08 10:27 ?340次閱讀

    深度學(xué)習(xí)與nlp的區(qū)別在哪

    深度學(xué)習(xí)和自然語言處理(NLP)是計算機科學(xué)領(lǐng)域中兩個非常重要的研究方向。它們之間既有聯(lián)系,也有區(qū)別。本文將介紹深度學(xué)習(xí)與NLP的區(qū)別。 深度
    的頭像 發(fā)表于 07-05 09:47 ?494次閱讀

    深度學(xué)習(xí)的模型權(quán)重

    深度學(xué)習(xí)這一充滿無限可能性的領(lǐng)域中,模型權(quán)重(Weights)作為其核心組成部分,扮演著至關(guān)重要的角色。它們不僅是模型學(xué)習(xí)的基石,更是模型智能的源泉。本文將從模型權(quán)重的定義、作用、優(yōu)化、管理以及應(yīng)用等多個方面,深入探討
    的頭像 發(fā)表于 07-04 11:49 ?419次閱讀

    深度解析深度學(xué)習(xí)下的語義SLAM

    隨著深度學(xué)習(xí)技術(shù)的興起,計算機視覺的許多傳統(tǒng)領(lǐng)域都取得了突破性進(jìn)展,例如目標(biāo)的檢測、識別和分類等領(lǐng)域。近年來,研究人員開始在視覺SLAM算法引入深度
    發(fā)表于 04-23 17:18 ?1007次閱讀
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>下的語義SLAM

    FPGA在深度學(xué)習(xí)應(yīng)用或?qū)⑷〈鶪PU

    硬件公司供貨的不斷增加,GPU 在深度學(xué)習(xí)的市場需求還催生了大量公共云服務(wù),這些服務(wù)為深度學(xué)習(xí)項目提供強大的 GPU 虛擬機。 但是顯卡
    發(fā)表于 03-21 15:19

    為什么深度學(xué)習(xí)的效果更好?

    導(dǎo)讀深度學(xué)習(xí)是機器學(xué)習(xí)的一個子集,已成為人工智能領(lǐng)域的一項變革性技術(shù),在從計算機視覺、自然語言處理到自動駕駛汽車等廣泛的應(yīng)用取得了顯著的成功。深度
    的頭像 發(fā)表于 03-09 08:26 ?502次閱讀
    為什么<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的效果更好?

    什么是深度學(xué)習(xí)?機器學(xué)習(xí)深度學(xué)習(xí)的主要差異

    2016年AlphaGo 擊敗韓國圍棋冠軍李世石,在媒體報道,曾多次提及“深度學(xué)習(xí)”這個概念。
    的頭像 發(fā)表于 01-15 10:31 ?835次閱讀
    什么是<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>?機器<b class='flag-5'>學(xué)習(xí)</b>和<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的主要差異

    目前主流的深度學(xué)習(xí)算法模型和應(yīng)用案例

    深度學(xué)習(xí)在科學(xué)計算獲得了廣泛的普及,其算法被廣泛用于解決復(fù)雜問題的行業(yè)。所有深度學(xué)習(xí)算法都使用不同類型的神經(jīng)網(wǎng)絡(luò)來執(zhí)行特定任務(wù)。
    的頭像 發(fā)表于 01-03 10:28 ?1242次閱讀
    目前主流的<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>算法模型和應(yīng)用案例

    GPU在深度學(xué)習(xí)的應(yīng)用與優(yōu)勢

    人工智能的飛速發(fā)展,深度學(xué)習(xí)作為其重要分支,正在推動著諸多領(lǐng)域的創(chuàng)新。在這個過程,GPU扮演著不可或缺的角色。就像超級英雄電影的主角一樣,GPU在
    的頭像 發(fā)表于 12-06 08:27 ?1091次閱讀
    GPU在<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>中</b>的應(yīng)用與優(yōu)勢

    深度學(xué)習(xí)在人工智能的 8 種常見應(yīng)用

    深度學(xué)習(xí)簡介深度學(xué)習(xí)是人工智能(AI)的一個分支,它教神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)和推理。近年來,它解決復(fù)雜問題并在各個領(lǐng)域提供尖端性能的能力引起了極大的興
    的頭像 發(fā)表于 12-01 08:27 ?2975次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>在人工智能<b class='flag-5'>中</b>的 8 種常見應(yīng)用

    深度學(xué)習(xí)在語音識別的應(yīng)用及挑戰(zhàn)

    一、引言 隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,其在語音識別領(lǐng)域的應(yīng)用也日益廣泛。深度學(xué)習(xí)技術(shù)可以有效地提高語音識別的精度和效率,并且被廣泛應(yīng)用于各種應(yīng)用場景。本文將探討
    的頭像 發(fā)表于 10-10 18:14 ?749次閱讀

    深度學(xué)習(xí)的由來 深度學(xué)習(xí)的經(jīng)典算法有哪些

    深度學(xué)習(xí)作為機器學(xué)習(xí)的一個分支,其學(xué)習(xí)方法可以分為監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)。兩種方法都具有其獨特的
    發(fā)表于 10-09 10:23 ?483次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的由來 <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的經(jīng)典算法有哪些