一、基于知識(shí)圖譜的智能推薦
以知識(shí)圖譜作為邊信息生成推薦的價(jià)值在于:一方面可以提供更準(zhǔn)確的推薦;另一方面可以對(duì)推薦結(jié)果進(jìn)行解釋。
知識(shí)圖譜由實(shí)體和關(guān)系組成(以電影推薦為例):實(shí)體(用戶、電影、演員、導(dǎo)演和類型);關(guān)系(交互、歸屬、表演、導(dǎo)演和友誼)。
1. 基于embedding的方法
基本思想:將知識(shí)圖譜中的節(jié)點(diǎn)和邊在低維向量空間中得到嵌入表示( Knowledge Graph Embedding, KGE),利用知識(shí)圖譜豐富item/user的表示。
1.1 KGE算法分類
- 基于 翻譯距離的模型(例如TransE、TransH、TransR、TransD等): 追求h + r = t
- 基于語(yǔ)義匹配的模型(例如RESCAL、DistMult、HolE、 SME、NTN、MLP、NAM等 ): 將h/r/t輸入到網(wǎng)絡(luò)中進(jìn)行訓(xùn)練學(xué)習(xí)
1.2 基于embedding的方法分類(根據(jù)知識(shí)圖譜中是否包含user)
- 使用item graph(即知識(shí)圖譜僅由item和相關(guān)feature構(gòu)成):代表方法有CKE、DKN、KSR等首先利用KGE算法生成item embedding;然后結(jié)合item的文本/視覺(jué)特征、user-item交互矩陣等信息構(gòu)成完整的item表示;最后再單獨(dú)計(jì)算user表示和得分函數(shù)。
- 使用user-item graph(即知識(shí)圖譜由user、item和相關(guān)feature構(gòu)成):代表方法有CFKG、SHINE、DKFM等先用KGE算法將user和item嵌入到同一向量空間;再通過(guò)計(jì)算user和item的距離直接得到得分函數(shù)的值。
- 將KGE算法與GAN、貝葉斯框架結(jié)合:代表方法有KTGAN、BEM等
- 使用多任務(wù)學(xué)習(xí)策略聯(lián)合訓(xùn)練推薦模塊與其他任務(wù):代表方法有KTUP、MKR、RCF等
基于embedding的方法忽略了圖中的信息連通模式,通常 無(wú)法為推薦結(jié)果提供解釋。
2. 基于path的方法
基本思想:將知識(shí)圖譜視為一個(gè)異構(gòu)信息網(wǎng)絡(luò)(user-item),考慮到user、item的連通相似性(語(yǔ)義相似性/結(jié)構(gòu)對(duì)等性),進(jìn)而提升推薦效果。其中,連通相似性的定義依賴meta-path結(jié)構(gòu)(meta-path是連接兩個(gè)實(shí)體的一條特定的路徑)。
2.1 基于path的方法分類(根據(jù)對(duì)path的不同利用方式)
- 基于path計(jì)算連通相似度,并作為正則項(xiàng)優(yōu)化user、item的表示。path可以預(yù)先指定(代表方法有Hete-MF、Hete-CF、HeteRec、HeteRec-p、FMG、SemRec等)path可以借助外部知識(shí)庫(kù)學(xué)習(xí)得到(代表方法有RuleRec等)
- 將所有/部分可能的path嵌入到低維空間,與user、item的表示共同訓(xùn)練,并發(fā)現(xiàn)對(duì)推薦影響最顯著的path(連接模式)。代表性方法有MCRec、RKGE、KPRN、PGPR等
用戶Alice與部分物品在知識(shí)圖譜的關(guān)聯(lián)圖示
KPRN模型圖示
基于path的方法有天生的可解釋性,但早期的方法沒(méi)有結(jié)合embedding的思想,對(duì)user/item的表示較為簡(jiǎn)單,準(zhǔn)確性仍有提升空間。
3. 聯(lián)合方法
基本思想: 利用嵌入傳播(常使用GNN) 完善user、item在知識(shí)圖譜中有多跳鄰居的表示。其中,傳播過(guò)程可以看作是在知識(shí)圖譜中發(fā)現(xiàn)user的偏好模式,類似于在基于path的方法中發(fā)現(xiàn)連接模式。
3.1 聯(lián)合方法分類(根據(jù)知識(shí)圖譜中是否包含user)
- 使用item graph基于user波紋集傳播user偏好,模擬用戶興趣在知識(shí)圖譜上的傳播過(guò)程,提升user表示能力(代表方法有RippleNet、AKUPM等)基于K階鄰居(實(shí)體波紋集)傳播item屬性,豐富item表示(代表方法有KGCN等)
- 使用user-item graph考慮user和item的高階交互,同時(shí)增強(qiáng)user和item的表示(代表方法有KGAT、KNI、IntentGC等)
聯(lián)合方法結(jié)合了基于embedding和基于path的方法,兼具準(zhǔn)確性和可解釋性,逐漸成為知識(shí)圖譜推薦算法的主流方法。
*在表格中,Emb代表基于嵌入的方法,Uni代表統(tǒng)一方法,Att’代表注意力機(jī)制,'RL’代表強(qiáng)化學(xué)習(xí),'AE’代表自動(dòng)編碼器,'MF’代表矩陣分解。
4. 結(jié)合知識(shí)圖譜特征學(xué)習(xí)的推薦系統(tǒng)分類
前面三節(jié)是以核心技術(shù)的角度來(lái)分類,本節(jié)以訓(xùn)練學(xué)習(xí)的角度來(lái)分類。(分類角度不同而已,助于理解)
4.1 依次訓(xùn)練學(xué)習(xí)(例如DKN等)
4.2 聯(lián)合訓(xùn)練學(xué)習(xí)(例如CKE、Ripple Network等)
4.3 交替訓(xùn)練學(xué)習(xí)(例如MKR等)
二、基于圖網(wǎng)絡(luò)的智能推薦(寫完發(fā)現(xiàn)等于介紹了一遍圖網(wǎng)絡(luò)?。?/h2>1. 知識(shí)圖譜表示學(xué)習(xí)KGE與圖網(wǎng)絡(luò)表示學(xué)習(xí)的異同點(diǎn)
- 知識(shí)圖譜表示學(xué)習(xí)中常常提到的一個(gè)概念就是三元組(頭實(shí)體,關(guān)系,尾實(shí)體),但圖網(wǎng)絡(luò)表示學(xué)習(xí)中沒(méi)有這個(gè)概念,對(duì)所有結(jié)點(diǎn)是一視同仁的。
- 知識(shí)圖譜表示學(xué)習(xí)強(qiáng)調(diào)節(jié)點(diǎn)之間的關(guān)系表示,圖網(wǎng)絡(luò)表示學(xué)習(xí)強(qiáng)調(diào)節(jié)點(diǎn)的結(jié)構(gòu)表示。(后來(lái)引入path的知識(shí)圖譜一定層面上是在考慮圖網(wǎng)絡(luò)的結(jié)構(gòu))
- 知識(shí)圖譜表示學(xué)習(xí)方法和圖網(wǎng)絡(luò)表示學(xué)習(xí)方法都是受word2vec啟發(fā)衍生出來(lái)的。知識(shí)圖譜表示學(xué)習(xí)啟發(fā)于word2vec向量之間存在的關(guān)聯(lián)性圖網(wǎng)絡(luò)表示學(xué)習(xí)啟發(fā)于word2vec由中心詞預(yù)測(cè)上下文的文本處理方式
- 兩者可以相互借鑒,例如將random walk思想應(yīng)用于知識(shí)圖譜,將Trans思想應(yīng)用于網(wǎng)絡(luò)表示。
2. 圖網(wǎng)絡(luò)表示學(xué)習(xí)(network representation/embedding)
- 基于矩陣分解的模型,比如SVD分解等
- 基于隨機(jī)游走的模型,比如DeepWalk、Node2vec等
DeepWalk的主要思想是在由物品組成的圖結(jié)構(gòu)上進(jìn)行隨機(jī)游走,產(chǎn)生大量物品序列,然后將這些物品序列作為訓(xùn)練樣本輸入word2vec進(jìn)行訓(xùn)練,得到物品的embedding。
在DeepWalk的基礎(chǔ)上,通過(guò)調(diào)整隨機(jī)游走權(quán)重的方法,使embedding的結(jié)果在網(wǎng)絡(luò)的 同質(zhì)性 和 結(jié)構(gòu)性 中進(jìn)行權(quán)衡。
其中,網(wǎng)絡(luò)的“同質(zhì)性”指的是距離相近節(jié)點(diǎn)的embedding應(yīng)該盡量近似,“結(jié)構(gòu)性”指的是結(jié)構(gòu)上相似的節(jié)點(diǎn)的embedding應(yīng)該盡量接近。
- 基于深度學(xué)習(xí)的模型(與下文的圖神經(jīng)網(wǎng)絡(luò)呼應(yīng)):CNN、RNN、AE、GNN、GCN、結(jié)合注意力、結(jié)合強(qiáng)化學(xué)習(xí)、結(jié)合GAN等。
3. 圖神經(jīng)網(wǎng)絡(luò)
3.1 圖神經(jīng)網(wǎng)絡(luò)GNN
GNN的核心觀點(diǎn):
- 通過(guò)節(jié)點(diǎn)信息(部分節(jié)點(diǎn)是有標(biāo)簽)的迭代傳播使整張圖達(dá)到收斂
- 在網(wǎng)絡(luò)收斂的基礎(chǔ)上再進(jìn)行預(yù)測(cè)/分類
GNN的局限性:
- 一是沒(méi)有區(qū)分不同邊的功能
- 二是節(jié)點(diǎn)之間的狀態(tài)存在較多的信息共享,導(dǎo)致節(jié)點(diǎn)的狀態(tài)太過(guò)平滑,并且屬于節(jié)點(diǎn)自身的特征信息匱乏
GNN的訓(xùn)練學(xué)習(xí)思路:
- 有監(jiān)督:根據(jù)節(jié)點(diǎn)的標(biāo)簽信息計(jì)算損失即可
- 無(wú)監(jiān)督:使用”相鄰節(jié)點(diǎn)的編碼相似“進(jìn)行訓(xùn)練
3.2 門控圖神經(jīng)網(wǎng)絡(luò)GGNN
與GNN核心的不同在于不再以不動(dòng)點(diǎn)理論為基礎(chǔ)。
3.3 圖卷積神經(jīng)網(wǎng)絡(luò)GCN
思考如何解決圖中鄰居結(jié)點(diǎn)數(shù)量不固定的問(wèn)題:
- 一是提出一種方式把非歐空間轉(zhuǎn)換成歐式空間
- 二是找到一種可以處理變長(zhǎng)鄰居節(jié)點(diǎn)的卷積核在圖上抽取信息
3.4 GraphSage
解決GCN需要存放整張圖信息的問(wèn)題,利用采樣部分節(jié)點(diǎn)的方式進(jìn)行學(xué)習(xí)。
3.5 圖注意力網(wǎng)絡(luò)Graph Attention Network
3.6 異質(zhì)圖神經(jīng)網(wǎng)絡(luò):(與前面基于知識(shí)圖譜的推薦方法呼應(yīng),細(xì)品)
3.7 后續(xù)還有圖神經(jīng)網(wǎng)絡(luò)結(jié)合聚類、自編碼、注意力、強(qiáng)化學(xué)習(xí)、GAN等
3.8 圖神經(jīng)網(wǎng)絡(luò)的應(yīng)用
在nlp、計(jì)算機(jī)視覺(jué)、 推薦系統(tǒng) 、強(qiáng)化學(xué)習(xí)、惡意檢測(cè)、專業(yè)領(lǐng)域等都有很大的應(yīng)用前景。
3.9 四大圖神經(jīng)網(wǎng)絡(luò)框架
- deep graph library (DGL):支持pytorch、tensorflow
- pytorch geometric (PyG):基于pytorch
- ant graph machine learning system:螞蟻金服團(tuán)隊(duì)推出的大規(guī)模圖機(jī)器學(xué)習(xí)系統(tǒng)
- tf_geometric:借鑒pytorch geometric,創(chuàng)建了tensorflow版本
三、知識(shí)圖譜與圖神經(jīng)網(wǎng)絡(luò)的相關(guān)問(wèn)題探究
1. 圖神經(jīng)網(wǎng)絡(luò)是如何處理類似知識(shí)圖譜的有向異構(gòu)圖的?
- GCN是譜域的GNN:基于譜圖理論,無(wú)法天然的處理有向圖。
- GAT是空域的GNN:可以天然的處理有向圖,通常定義入度的節(jié)點(diǎn)進(jìn)行聚合。
- 知識(shí)圖譜和異質(zhì)圖都有專門設(shè)計(jì)的GNN:知識(shí)圖譜上的GNN關(guān)注于了對(duì)于不同關(guān)系含義的區(qū)別。異質(zhì)圖上的GNN關(guān)注于多種不同關(guān)系的融合來(lái)更好的描述節(jié)點(diǎn)。
2. 知識(shí)圖譜與異質(zhì)信息網(wǎng)絡(luò)的區(qū)別?
- 一般來(lái)說(shuō),知識(shí)圖譜比異質(zhì)信息網(wǎng)絡(luò)包含更多的點(diǎn)和邊類型。但并不絕對(duì),這兩個(gè)定義并沒(méi)有明確的界限,很多時(shí)候都是互為替代的。
- 前文提到,知識(shí)圖譜強(qiáng)調(diào)節(jié)點(diǎn)之間的關(guān)系表示,圖網(wǎng)絡(luò)強(qiáng)調(diào)節(jié)點(diǎn)的結(jié)構(gòu)表示。但其實(shí)知識(shí)圖譜中基于path的方法和圖網(wǎng)絡(luò)中基于隨機(jī)游走采路徑的方法基本沒(méi)有區(qū)別。