搜索推荐中的召回匹配模型综述(三):基于匹配函数学习的深度学习方法
Part0 基于match function learning的深度學(xué)習(xí)方法
對(duì)比representation learning的方法,基于match function learning最大的特點(diǎn)是,不直接學(xué)習(xí)user和item的embedding,而是通過(guò)已有的各種輸入,通過(guò)一個(gè)neural network框架,來(lái)直接擬合user和item的匹配分?jǐn)?shù)
圖4.1 基于match function learning的深度匹配模型框架
簡(jiǎn)單來(lái)說(shuō),第一種方法representation learning不是一種end-2-end的方法,通過(guò)學(xué)習(xí)user和item的embedding作為中間產(chǎn)物,然后可以方便的計(jì)算兩者的匹配分?jǐn)?shù);而第二種方法matching function learning是一種end2end的方法,直接擬合得到最終的匹配分?jǐn)?shù)。本章主要介紹基于match function learning的深度學(xué)習(xí)匹配方法。
Part1 基于Collaborative Filtering的方法
前面?zhèn)鹘y(tǒng)匹配模型以及基于表示學(xué)習(xí)的模型,其base模型都離不開(kāi)協(xié)同過(guò)濾,也可以稱(chēng)為基于矩陣分解的模型。基于match function learning的模型也不例外。
基于NCF框架的方法
基于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法(NCF)為何向南博士在2017年提出,對(duì)比傳統(tǒng)的CF網(wǎng)絡(luò),在得到user vector和item vector后,連接了MLP網(wǎng)絡(luò)后,最終擬合輸出,得到一個(gè)end-2-end的model。這套框架好處就是足夠靈活,user和item側(cè)的雙塔設(shè)計(jì)可以加入任意side info的特征,而MLP網(wǎng)絡(luò)也可以靈活的設(shè)計(jì),如圖4.2所示。
圖4.2 基于神經(jīng)網(wǎng)絡(luò)的協(xié)同過(guò)濾框架
NCF框架對(duì)比第三章所說(shuō)的CF方法最主要引入了MLP去擬合user和item的非線性關(guān)系,而不是直接通過(guò)inner product或者cosine去計(jì)算兩者關(guān)系,提升了網(wǎng)絡(luò)的擬合能力。然而MLP對(duì)于直接學(xué)習(xí)和捕獲從mf提取的user和item vector能力其實(shí)并不強(qiáng)。在wsdm2018的一篇文章質(zhì)疑的就是MLP對(duì)特征組合的擬合能力
圖4.3 DNN模型擬合數(shù)據(jù)實(shí)驗(yàn)
該paper做了一組實(shí)驗(yàn),使用1層的MLP網(wǎng)絡(luò)去擬合數(shù)據(jù);實(shí)驗(yàn)證明對(duì)于二維一階的數(shù)據(jù),也需要100個(gè)節(jié)點(diǎn)才能擬合;如果超過(guò)2階,整個(gè)MLP的表現(xiàn)將會(huì)非常差。文章因此說(shuō)明了DNN對(duì)于高階信息的捕捉能力并不強(qiáng),只能捕捉低階信息。
下文要講的模型,也是在模型結(jié)構(gòu)或者特征層面做的各種變化。
NMF模型(Neural Matrix Factorization)
Neural MF,顧名思義,同時(shí)利用了MF和神經(jīng)網(wǎng)絡(luò)MLP的能力來(lái)擬合matching score;MF利用向量?jī)?nèi)積學(xué)習(xí)user和item的關(guān)聯(lián),同時(shí)MLP部分捕捉兩者的其他高階信息。這篇paper其實(shí)和NCF框架是出自同一篇paper的。模型可以分為GMF和MLP兩個(gè)部分來(lái)看,如圖4.4所示。
圖4.4 NeuMF模型結(jié)構(gòu)框架
(1) GMF(General Matrix Factorization)部分
user和item都通過(guò)one-hot編碼得到稀疏的輸入向量,然后通過(guò)一個(gè)embedding層映射為user vector和item vector。這樣就獲得了user和item的隱向量,一般可以通過(guò)向量點(diǎn)積或者哈達(dá)馬積(element-wide product)得到交互,不過(guò)在NeuMF中多連接了一個(gè)連接層,也就是GMF layer
(2) MLP部分
輸入和GMF部分一樣,都是one-hot的稀疏編碼,然后通過(guò)embedding層映射為user vector和item vector。注意到這里user和item的vector 和GMF部分是不一樣的,原因是GMF和MLP兩個(gè)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)隱層維度要求不同,MLP部分會(huì)高一些(個(gè)人感覺(jué)share embedding能更充分訓(xùn)練embedding)
embedding層之后就是幾層常規(guī)的MLP,這塊沒(méi)什么好說(shuō)的,最后一層輸出作為MLP的output。
NNCF模型(Neighbor-based NCF)
CIKM2017提出的一種基于neighbor的NCF方法,最大的不同在于輸入除了user和item的信息,還各自引入了user和item各自的neighbor信息。
圖4.5 NNCF模型框架
圖4.5所示的輸入由兩部分組成,中間xu和yi為原始的user和item的one- hot輸入,通過(guò)embedding層后映射為pu和qi的embedding向量,然后通過(guò)哈達(dá)馬積作為MLP的輸入。而輸入層兩側(cè)的nu和ni是user和item各自的neighbor信息的輸入,這里nu和ni息如何提取可以采用多種手段,如二部圖挖掘,user- CF或者item-CF等。
對(duì)于neighbor信息,由于每個(gè)用戶和item的neighbor數(shù)不一致,輸入是不定長(zhǎng)的,通過(guò)卷積和pooling后提取得到定長(zhǎng)的embedding,然后和user以及item本身的向量concat后輸入到模型中
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也就是特征交叉層,對(duì)于用戶u的向量pu和物品i的向量qi,引入兩者的outer-product
E是一個(gè)維的矩陣,其中的每個(gè)element兩兩相乘,得到2維的矩陣。到這,可以通過(guò)把二維矩陣展開(kāi)變成一個(gè)k2維度的向量,作為MLP的輸入。假設(shè)k=64,那么E就是個(gè)4096的向量,每一層隱層單元個(gè)數(shù)設(shè)置為上一層的一半,那么第一層的維度為4096*2048約需要840萬(wàn)的網(wǎng)絡(luò)參數(shù)需要訓(xùn)練,參數(shù)量非常巨大。
因此,文章提出了一種利用CNN局部連接共享參數(shù)的方法來(lái)減少embedding layer到hidden layer之間的參數(shù),如圖4.7所示。
圖4.7 ConvNCF模型框架
假設(shè)隱層維度K=64,有6層hidden layer,每一層有32個(gè)卷積核(feature map),步長(zhǎng)stride=2,那么經(jīng)過(guò)每個(gè)卷積核后的feature map大小為原來(lái)的1/4(長(zhǎng)和寬各少了一半)。以第一層卷積為例。
那么第一層卷積后得到的網(wǎng)絡(luò)是個(gè)323232的3維vector,其中最后一個(gè)32代表feature map個(gè)數(shù)。這里如何體現(xiàn)特征交叉的思想呢?ei,j,c代表的就是在前一層的feature map中,第i個(gè)單元和第j個(gè)element的二階交叉。第一層feature map中,每個(gè)單元提取的是上一層區(qū)域的local連接信息,第三層提取的就是第一層的信息,那么在網(wǎng)絡(luò)的最后一層就能提取到原始feature map里的global 連接信息,從而達(dá)到高階特征提取的目的。
總結(jié)來(lái)說(shuō),使用原始的outer- product思想,在第一層網(wǎng)絡(luò)處有近千萬(wàn)的參數(shù)需要學(xué)習(xí),而使用CNN網(wǎng)絡(luò)一方面能夠減少參數(shù)量,另一方面又同時(shí)提取了低階和高階特征的組合。個(gè)人覺(jué)得引入CNN固然能節(jié)省內(nèi)存,但也同時(shí)會(huì)帶來(lái)訓(xùn)練和推理時(shí)間的增加,是一種時(shí)間換空間的思想。另外用CNN是否能夠比原始MLP更有效擬合特征組合也需要結(jié)合數(shù)據(jù)分布去看。
基于CF的方法總結(jié)
基于NCF框架的方法基礎(chǔ)原理是基于協(xié)同過(guò)濾,而協(xié)同過(guò)濾本質(zhì)上又是在做user和item的矩陣分解,所以,基于NCF框架的方法本質(zhì)上也是基于MF的方法。矩陣分解本質(zhì)是盡可能將user和item的vector,通過(guò)各種方法去讓user和item在映射后的空間中的向量盡可能接近(用向量點(diǎn)擊或者向量的cosine距離直接衡量是否接近)。
而另外一種思路,基于翻譯的方法,也叫translation based model,認(rèn)為user和item在新的空間中映射的vector可以有g(shù)ap,這個(gè)gap用relation vector來(lái)表達(dá),也就是讓用戶的向量加上relation vector的向量,盡可能和item vector接近。兩種方法的區(qū)別可以用圖4.8形象的表示。
圖4.8 基于矩陣分解和基于翻譯的模型區(qū)別
Part2 基于translation框架的方法
transRec模型
2017年的recsys會(huì)議上提出的一種基于“translate”的推薦方法,要解決的是next item的推薦問(wèn)題。基本思想是說(shuō)用戶本身的向量,加上用戶上一個(gè)交互的item的向量,應(yīng)該接近于用戶下一個(gè)交互的item的向量,輸入是(user, prev item, next item),預(yù)測(cè)下個(gè)item被推薦的概率
圖4.9 transRec模型框架
用戶向量表達(dá)如下:
這里ri和rj表示的是用戶上一個(gè)交互的item i和下一個(gè)交互的item j,tu為用戶本身的向量表達(dá)。而在實(shí)際的推薦系統(tǒng)中,往往存在數(shù)據(jù)稀疏和用戶冷啟動(dòng)問(wèn)題,因此,作者將用戶向量tu分解成了兩個(gè)向量。
這里t可以認(rèn)為是全局向量,表示的是所有用戶的平均行為,tu表示用戶u本身的bias,例如對(duì)于冷啟動(dòng)用戶,tu可以設(shè)置為0,用全局用戶的表達(dá)t作為冷啟動(dòng)。
對(duì)于熱門(mén)item由于出現(xiàn)次數(shù)非常多,會(huì)導(dǎo)致最終熱門(mén)item的向量和絕大多數(shù)用戶向量加上item向量很接近,因此文章對(duì)熱門(mén)item做了懲罰,最終,已知上一個(gè)item i,用戶和下一個(gè)item j的匹配score表達(dá)為:
其中, 第一項(xiàng)beta_j表示的是物品j的全局熱度;第二項(xiàng)d表示的是用戶向量加上物品i的向量與物品j向量的距離;距離越小表示i和j距離越接近,被推薦的可能性就越大
LRML模型(Latent Relational Metric Learning)
前面講到,基于translation框架的方法對(duì)比基于CF框架方法最大的不同,在于找到一個(gè)relation vector,使得user vector + relation vector盡可能接近item vector。WWW2018提出的LRML模型通過(guò)引入memory network來(lái)學(xué)習(xí)度量距離。可以分為三層layer,分別是embedding layer, memory layer和relation layer。
圖4.10 LRML模型框架
(1)?embedding layer
底層是常規(guī)的雙塔embedding,分別是用戶embedding矩陣和物品的embedding矩陣,用戶one-hot輸入和item的one- hot輸入通過(guò)embedding后得到用戶向量p和物品向量q
(2)?memory layer
記憶網(wǎng)絡(luò)層是文章的核心模塊,作者通過(guò)引入memory layer作為先驗(yàn)?zāi)K。這個(gè)模塊可以分為三個(gè)步驟進(jìn)行計(jì)算:
a)用戶和物品embedding融合
embedding層得到的user和item向量p和q需要先經(jīng)過(guò)交叉合成一個(gè)向量后輸入到下一層,作者提到使用哈達(dá)碼積效果優(yōu)于MLP效果,也更簡(jiǎn)單
b)用戶-物品key addressing
從第一步得到的向量s中,去和memory記憶網(wǎng)絡(luò)模塊中的各個(gè)memory vector挨個(gè)計(jì)算相似度,相似度可以用內(nèi)積表達(dá)并做歸一化
得到的ai代表的是當(dāng)前用戶-物品輸入對(duì)(p, q)與memory-network中的第i個(gè)向量的相似度.
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)
由于解決的是推薦物品的排序問(wèn)題,文章使用的是pairwise loss,因此在網(wǎng)絡(luò)的最后一層,對(duì)user和item分別進(jìn)行負(fù)樣本采樣得到p’和q’,然后使用pairwise hinge loss進(jìn)行優(yōu)化
Part3 match function learning的深度匹配方法總結(jié)
對(duì)于match function learning的深度模型,也分為基于協(xié)同過(guò)濾的模型和基于特征的模型。前者和傳統(tǒng)CF模型一樣,不同在于后面接入了MLP模型來(lái)增強(qiáng)非線性表達(dá),目的是為了使得user 和item的vector盡可能接近,這種方法就是基于NCF的模型;也有通過(guò)引入relation vector來(lái)是的user vector加上relation vector后接近item vector,這種方法是基于翻譯的模型。
整理本篇綜述主要基于原始slides,對(duì)其中的paper部分粗讀部分精讀,收獲頗多,在全文用如何做好推薦match的思路,將各種方法盡可能串到一起,主要體現(xiàn)背后一致的思想指導(dǎo)。多有錯(cuò)漏,歡迎批評(píng)指出。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的搜索推荐中的召回匹配模型综述(三):基于匹配函数学习的深度学习方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 胆囊炎能不能吃银耳
- 下一篇: 深度学习在美图个性化推荐的应用实践