本文為將門技術(shù)社群線上直播第188期的文字內(nèi)容整理分享嘉賓:斯坦福大學(xué)博士后 王鴻偉感謝整理人:Datafun 秋林津渡
導(dǎo) 讀
互聯(lián)網(wǎng)產(chǎn)業(yè)蓬勃發(fā)展的今天,個(gè)性化推薦系統(tǒng)是所有面向用戶的互聯(lián)網(wǎng)平臺(tái)的關(guān)鍵技術(shù)" />
訂閱
糾錯(cuò)
加入自媒體

斯坦福大學(xué)博士后王鴻偉: 知識(shí)圖譜輔助的個(gè)性化推薦系統(tǒng)


本文為將門技術(shù)社群線上直播第188期的文字內(nèi)容整理

分享嘉賓:斯坦福大學(xué)博士后 王鴻偉

感謝整理人:Datafun 秋林津渡

導(dǎo) 讀

互聯(lián)網(wǎng)產(chǎn)業(yè)蓬勃發(fā)展的今天,個(gè)性化推薦系統(tǒng)是所有面向用戶的互聯(lián)網(wǎng)平臺(tái)的關(guān)鍵技術(shù)。知識(shí)圖譜作為一種新的知識(shí)載體,為推薦系統(tǒng)提供了額外的輔助信息來(lái)源,并有助于提升推薦結(jié)果的多樣性和可解釋性。本次分享的主題即為知識(shí)圖譜輔助的個(gè)性化推薦系統(tǒng)

本次主題將從下面4個(gè)方面展開(kāi):

推薦系統(tǒng)的基礎(chǔ)知識(shí)知識(shí)圖譜輔助的推薦方法介紹基于embedding的知識(shí)圖譜推薦方法混合型知識(shí)圖譜推薦方法

推薦系統(tǒng)的基礎(chǔ)知識(shí)

1、什么是推薦系統(tǒng)

在當(dāng)前互聯(lián)網(wǎng)時(shí)代,推薦系統(tǒng)是所有面向用戶的互聯(lián)網(wǎng)產(chǎn)品的核心技術(shù),只要產(chǎn)品是面向用戶的,那么就有推薦系統(tǒng)的需求。

推薦系統(tǒng)是解決信息爆炸問(wèn)題,給用戶推薦一個(gè)用戶感興趣的小規(guī)模集合。用戶在大量商品中,不知道如何選擇,推薦系統(tǒng)是替用戶做這個(gè)選擇,猜用戶的興趣,然后給用戶推薦一個(gè)小規(guī)模的商品集合,這樣用戶就不會(huì)迷失在大量商品中。

舉幾個(gè)推薦系統(tǒng)的例子。如下圖是imdb系統(tǒng)中的電影推薦,imdb會(huì)推薦用戶可能更感興趣的電影。

如下圖是亞馬遜系統(tǒng)中的圖書(shū)推薦,給用戶推薦和用戶更相關(guān),用戶更感興趣的書(shū)籍。

如下圖是booking.com系統(tǒng)中旅游景點(diǎn)的推薦,給用戶推薦更感興趣景點(diǎn)。

如下圖是我們更為熟悉的推薦系統(tǒng)的例子,知乎,抖音,頭條等系統(tǒng),都有推薦功能。

2、推薦系統(tǒng)的實(shí)現(xiàn)方法

推薦系統(tǒng)主要有2個(gè)任務(wù),一個(gè)是評(píng)分預(yù)測(cè)(Rating Prediction)。如下圖左邊是評(píng)分預(yù)測(cè)的例子,橫坐標(biāo)是物品,縱坐標(biāo)是用戶。表格是用戶對(duì)物品的打分,這個(gè)評(píng)分可以顯示的反應(yīng)用戶對(duì)物品的喜好層度,1表示很不喜歡,5表示很喜歡。推薦系統(tǒng)就是預(yù)測(cè)表格中問(wèn)好處的缺失值,這就叫評(píng)分,這個(gè)評(píng)分叫顯示反饋(Explicit feedback)。

另一個(gè)是點(diǎn)擊預(yù)測(cè)(CTR Prediction)。右邊是點(diǎn)擊預(yù)測(cè)的例子,表格中只有0和1,0表示用戶沒(méi)有點(diǎn)擊過(guò),1表示用戶點(diǎn)擊過(guò),這類數(shù)據(jù)叫隱式反饋(Implicit feedback),點(diǎn)擊預(yù)測(cè)只能反映用戶的非常弱的偏好層度,用戶點(diǎn)擊了不一定說(shuō)明用戶喜歡,比如逛淘寶,用戶只是點(diǎn)擊了某個(gè)物品就退出了,所以點(diǎn)擊物品并不能代表用戶的真實(shí)感受。


推薦系統(tǒng)有一個(gè)非常經(jīng)典的方法叫協(xié)同過(guò)濾(Collaborative Filtering, CF),CF的核心是假設(shè)相似的用戶有相似的偏好。

如下圖為4個(gè)用戶對(duì)4個(gè)物品的打分情況,來(lái)預(yù)測(cè)用戶u4對(duì)物品i1的評(píng)分。通過(guò)這4個(gè)用戶在其他3個(gè)商品(i2,i3,i4)的打分,計(jì)算出其他3個(gè)用戶和u4用戶的相似度,分別是0.7,0.1,0.2,然后用相似度加權(quán)平均其他3個(gè)用戶在i1物品的打分,這樣就得到了u4對(duì)i1的評(píng)分為2.1。

協(xié)同過(guò)濾CF是根據(jù)歷史物品評(píng)分記錄,計(jì)算出用戶相似度,從而預(yù)測(cè)分?jǐn)?shù)。CF是一種常見(jiàn)的方法,但存在以下2類問(wèn)題。

第一類是稀疏性問(wèn)題(Sparsity),一般情況下評(píng)分分布是相當(dāng)稀疏的,比如一個(gè)用戶一輩子可能只會(huì)看幾百部電影,但電影總數(shù)達(dá)百萬(wàn)量級(jí),所以在計(jì)算相似度的時(shí)候會(huì)有困難。

第二類更進(jìn)一步,冷啟動(dòng)問(wèn)題(Cold start),當(dāng)來(lái)了一個(gè)新的用戶,這個(gè)新的用戶沒(méi)有歷史記錄,所以沒(méi)法計(jì)算相似性,就沒(méi)法做推薦。當(dāng)注冊(cè)新的app時(shí),比如讀書(shū)類的app,系統(tǒng)一開(kāi)始會(huì)問(wèn)你對(duì)哪些主題感興趣,因?yàn)橄到y(tǒng)沒(méi)有你的歷史記錄,剛開(kāi)始沒(méi)法給你推薦。

知識(shí)圖譜輔助的推薦方法介紹

針對(duì)推薦系統(tǒng)出現(xiàn)的問(wèn)題,我們的思路是既然用戶和物品交互很稀少,甚至沒(méi)有,那可以引入其他的一些信息,這些引入的信息叫輔助信息(Side Information)。如下圖是4類非常常見(jiàn)的輔助信息:社交網(wǎng)絡(luò);用戶或商品屬性特征;多媒體信息,比如電影的海報(bào),文本信息,視頻音頻信息等;上下文信息,假設(shè)一個(gè)用戶購(gòu)買了一個(gè)商品,購(gòu)買記錄的一些信息,比如時(shí)間、地點(diǎn)、當(dāng)前用戶購(gòu)物車的其他物品信息等。

1、什么是知識(shí)圖譜

知識(shí)圖譜(Knowledge Graphs, KG)也是一種輔助信息。KG是一個(gè)有向異構(gòu)圖(heterogeneous graph),圖中節(jié)點(diǎn)表示實(shí)體(entity),邊表示關(guān)系(relation)。

一個(gè)KG通常包含很多對(duì)三元組triple(head,relation,tail),其中head和tail是2個(gè)實(shí)體(entity),relation就是邊。

如下圖,推薦系統(tǒng)的item是電影,所以Forrest Gump是推薦系統(tǒng)的item,同時(shí)也是KG中的實(shí)體,KG中其他的實(shí)體并不是推薦系統(tǒng)的item, Forrest Gump這部電影的主演是Tom Hanks,雖然Tom Hanks是KG的實(shí)體(entity),但并不是item。把圖中左邊這些三元組(triples)組合起來(lái),就變成了右邊的一個(gè)很大的KG。

2、為什么要在推薦系統(tǒng)中使用KG

如下圖,假設(shè)一個(gè)用戶(最左邊)看過(guò)3部電影(item),Cast Away, Back to the Future, TheGreen Mile,在KG中,可以將這3部電影連接到其他的一些事情上,比如Cast Away 這部電影的類別(genre)是冒險(xiǎn)形(Adventure),Back to the Future的導(dǎo)演(directed)是Robert Zemeckis等,可以連接到很多其他non-item實(shí)體上,再?gòu)倪@些non-item實(shí)體又連接到item電影實(shí)體上,比如最右邊的Interstellar, Forrest Gump,Raiders of the Lost Ark。

KG建立一個(gè)從用戶已經(jīng)看過(guò)的電影到?jīng)]看過(guò)的電影的連接,而這些連接不是由用戶的觀看記錄得來(lái)的。在CF里,實(shí)際上是把中間這塊替換成了其他用戶,用其他用戶歷史觀看記錄得到這些連接。KG提供了另外一種關(guān)于物品連接的信息來(lái)源的方法。

如上圖是一個(gè)新聞推薦的例子,假設(shè)某個(gè)用戶看過(guò)一條新聞,這個(gè)新聞的內(nèi)容是:Boris Johnson Has Warned Donald Trump To Stick ToThe Iran Nuclear Deal。

從這條新聞中提取了4個(gè)實(shí)體,在KG中,可以對(duì)這些實(shí)體做進(jìn)一步的擴(kuò)展,做2次,做3次擴(kuò)展,又會(huì)發(fā)現(xiàn)這些實(shí)體都指向另外一條新聞:North Korean EMP Attack Would Cause Mass U.S.Starvation, Says Congressional Report。

這2條新聞在字面上沒(méi)有任何相似度,新聞的單詞都不一樣,但他們是很相關(guān)的,這個(gè)相關(guān)性體現(xiàn)在KG上,他們?cè)诘蛯邮窍嚓P(guān)的,但這種相關(guān)性沒(méi)法從字面意義上得到,這也是為什么要用KG,KG提供了一種item相似度的計(jì)算方式。

3、KG能給推薦系統(tǒng)帶來(lái)什么

第1個(gè)提高推薦系統(tǒng)的精度(Precision),更準(zhǔn)確的發(fā)現(xiàn)item之間的相似性,如下圖2部電影,能通過(guò)Tom Hanks做個(gè)連接。

第2個(gè)提高推薦系統(tǒng)的多樣性(Diversity),可以通過(guò)主演擴(kuò)展,可以通過(guò)電影類別擴(kuò)展,也可以通過(guò)導(dǎo)演擴(kuò)展,總有一款是用戶非常喜歡的。

第3個(gè)是可解釋性(Explainability),可以用KG的path來(lái)解釋系統(tǒng)為什么會(huì)推薦這部電影,如下圖某個(gè)用戶喜歡Cast Away這部電影,系統(tǒng)會(huì)推薦The Terminal這部電影,因?yàn)樗麄冇邢嗤闹餮荨?/p>

4、知識(shí)圖譜處理方法

KG 的處理方法中有一類方法叫KnowledgeGraph Embedding,KGE。KGE主要是對(duì)KG的每個(gè)實(shí)體(entity)和每個(gè)關(guān)系(relation)學(xué)習(xí)一個(gè)低維的特征。在KGE中有一個(gè)基于翻譯的距離模型,Translational distancemodels。

如上公式為TransE算法模型,對(duì)KG中的每一個(gè)tuple(h,r,t),學(xué)習(xí)到的entity embedding,relation embedding,使h+r約等于t,這的r相當(dāng)于翻譯作用,把h翻譯成t,f函數(shù)對(duì)每個(gè)tuple的真實(shí)分值越小越好。

如圖(a)是TransE模型,假設(shè)head對(duì)應(yīng)的embedding加上relation對(duì)應(yīng)的embedding等于tail對(duì)應(yīng)的embedding;赥ransE有很多擴(kuò)展模型,比如TransH, TransR。

TransH解決的是一對(duì)多的問(wèn)題,某一個(gè)head和relation可能會(huì)對(duì)應(yīng)多個(gè)tail,如圖(b),把head和tail都投影到一個(gè)平面上,然后讓它們?cè)谙鄬?duì)應(yīng)的平面上做轉(zhuǎn)換。TransR是把head和tail都投影到另外一個(gè)空間中,在新的空間里讓h+r=t。 KG-aware Recommender Systems正式方法大概可以分為3類。

第一類是Embedding-based methods,基于embedding的方法,embedding是前面介紹的KG embedding,關(guān)于這類方法,下圖列舉了5篇論文,今天將會(huì)介紹第2篇和第5篇。

第二類是Path-based methods,基于KG計(jì)算路徑的推薦方法,今天不會(huì)涉及這類方法。

第三類是Hybrid methods,結(jié)合embedding和path的方法,今天將介紹一下第1、3、4篇,第3、4是比較統(tǒng)一的方法。

5、知識(shí)圖譜輔助的推薦系統(tǒng)問(wèn)題定義

已知一個(gè)用戶的集合Users,一個(gè)物品的集合Items,用戶和物品之間的交互(relations,yuv),一個(gè)包括很多non-item實(shí)體的KG。圖中yuv表示用戶u對(duì)物品v的一個(gè)隱式反饋,即用戶有沒(méi)有點(diǎn)擊過(guò)這個(gè)物品,目標(biāo)是給定一個(gè)新的u-v對(duì),預(yù)測(cè)點(diǎn)擊率yuv。

公式定義如上圖。用戶集合U={u1,u2,...},物品集合V={v1,v2,...},交互矩陣(隱式反饋)Y矩陣Y={yuv ? {0,1} | u?U, v?V},KG包括實(shí)體(entity)和關(guān)系(relation),由很多三元組組成。

每個(gè)物品v在KG中可能對(duì)應(yīng)一個(gè)或多個(gè)實(shí)體。物品是實(shí)體的一個(gè)子集。
目的是學(xué)習(xí)一個(gè)預(yù)測(cè)函數(shù)F,給定一對(duì)u,v,可以輸出一個(gè)預(yù)測(cè)分值?uv,θ是目前的一個(gè)參數(shù)。

基于embedding的知識(shí)圖譜推薦方法

1、DKN方法

DKN: Deep knowledge-aware network for newsrecommendation, 屬于基于embedding的知識(shí)圖譜推薦方法,是2018年發(fā)表的論文,這篇論文是關(guān)于新聞推薦。

如上圖,給出一段新聞,提取新聞中的實(shí)體,根據(jù)這些實(shí)體,構(gòu)建一個(gè)知識(shí)圖譜的子圖,對(duì)知識(shí)圖譜做embedding映射,得到每個(gè)實(shí)體的embedding,最后就得到每個(gè)實(shí)體的特征向量。

如上圖,對(duì)于某個(gè)實(shí)體Fight Club,只有其對(duì)應(yīng)的embedding還不夠,在KG中每個(gè)實(shí)體,連接著好多其他的實(shí)體,那這些臨近實(shí)體就是該實(shí)體的上下文,將這些上下文中的每個(gè)實(shí)體的embedding相加平均,就得到該實(shí)體的上下文embedding。如上圖公式中ē就是實(shí)體ei的上下文embedding。


在NLP中有一個(gè)模型叫KimCNN,主要是給定一個(gè)sentence,返回一個(gè)特征向量。如上圖給定一個(gè)n個(gè)單詞的sentence(圖中n為7),對(duì)每個(gè)單詞做embedding映射,embedding的長(zhǎng)度為d(圖中d為5),得到一個(gè)d*n的wordembedding矩陣。用7個(gè)卷積核做卷積進(jìn)行featuremaps,得到7個(gè)1維向量,對(duì)每個(gè)向量做池化(Max pooling),得到該sentence的word embedding。

前面介紹中已有3種特征向量,分別是實(shí)體embeddings, 上下文embeddings, word embedings,我們的方法是把這3種embeddings做一個(gè)累加,卷積,池化,最后得到這個(gè)sentence的embeddings,這種方法叫KCNN。

接下來(lái)介紹基于KCNN做推薦的方法。如上圖假設(shè)某個(gè)用戶已經(jīng)點(diǎn)擊過(guò)了3條新聞,來(lái)了一個(gè)候選新聞,預(yù)測(cè)該用戶對(duì)候選新聞的點(diǎn)擊率。對(duì)這4條新聞做KCNN的embedding映射,得到4個(gè)特征向量。因?yàn)橛脩艨催^(guò)的新聞的重要性對(duì)候選新聞是不一樣的,用Attention Net計(jì)算用戶看過(guò)的每一條新聞和候選新聞的決策分值。用得到的分值加權(quán)觀看記錄,得到User embedding。將user embedding和candidate news embedding拼接,輸出一個(gè)預(yù)測(cè)的點(diǎn)擊概率,這個(gè)就是做預(yù)測(cè)的DKN模型。

2、MKR方法

MKR:Multi-TaskFeature Learning for Knowledge Graph Enhanced Recommendation,屬于基于embedding的知識(shí)圖譜推薦方法,是2019年發(fā)表在WWW的論文,是一個(gè)多任務(wù)的模型。

如上圖為MKR框架,包括3個(gè)模塊,一個(gè)是推薦模塊,一個(gè)是knowledge graph embedding, KGE模塊,還有一個(gè)是以上2個(gè)模塊的橋梁,cross&compress units,交叉壓縮單元,下面將分別闡述這3個(gè)模塊。

推薦系統(tǒng)模塊,輸入是user, item,輸出是用戶對(duì)物品的點(diǎn)擊率。模塊分2塊,一個(gè)是low-level的部分,一個(gè)是high-level的部分。在low-lever部分,用了一個(gè)MLP(multi-layer perceptron)來(lái)處理用戶的特征UL,item是cross&compressunits做的處理,返回一個(gè)物品的特征VL,把UL和VL拼接起來(lái),用一個(gè)recommendation system函數(shù)fRS,輸出一個(gè)點(diǎn)擊預(yù)測(cè)值。

KGE模塊,也分成low-lever和high-level部分,輸入head,用cross&compress unites來(lái)做特征處理,relation用MLP做特征處理,把這2個(gè)處理結(jié)果拼接起來(lái),經(jīng)過(guò)一個(gè)K層的MLP,得到一個(gè)predictedtail,預(yù)測(cè)的tail和真實(shí)的tail用一個(gè)函數(shù)fKG算一個(gè)分值,這樣就可以優(yōu)化這個(gè)score值。

這個(gè)多任務(wù)之所以能做起來(lái),主要是推薦系統(tǒng)模塊的物品(item)和KGE模塊的實(shí)體(entity)是對(duì)應(yīng)的,很多item可以在KGE中找到對(duì)應(yīng)的entity,item和entity是對(duì)同一個(gè)物品的描述,他們的embedding在某種層度上是相似的,是可以被連接的。中間的cross&compressunits就是這個(gè)連接結(jié)合,這個(gè)模塊是在每一層都有,在l層,輸入是item的embedding vl和entity的embedding el,輸出是下一層的embedding。

這個(gè)模塊計(jì)算分2步,第一步是cross,第二步是compress。

cross操作是將vl,el做一個(gè)cross,vl是一個(gè)d*1的向量,elT是1*d的向量,矩陣相乘后得到一個(gè)d*d的矩陣Cl。

compress是將交叉后的矩陣Cl重新壓縮回embedding space,這塊細(xì)節(jié)部分可以參考論文。通過(guò)參數(shù)wl壓縮輸出vl+1,el+1。

學(xué)習(xí)算法中l(wèi)oss的計(jì)算公式如上圖。LRS是推薦系統(tǒng)的loss,預(yù)測(cè)user-item的分值uv和真實(shí)分值yuv的差距。LKG是KG的loss,對(duì)于真實(shí)tuple(h,r,t),預(yù)測(cè)分值score越大越好,而對(duì)于隨機(jī)替換tuple(h’, r, t’)(負(fù)樣本),預(yù)測(cè)的分值越小越好。LREG是正則項(xiàng)。

算法實(shí)現(xiàn)第1塊是推薦系統(tǒng)的任務(wù),第2塊是KGE任務(wù),交替訓(xùn)練2者。在每次循環(huán)里面,做t次的RS的任務(wù)訓(xùn)練,做1次的KGE任務(wù)訓(xùn)練,做t次RS訓(xùn)練是因?yàn)楦P(guān)注RS任務(wù),這個(gè)t是可以調(diào)整的,這就是MKR模型。

混合型知識(shí)圖譜推薦方法

1、RippleNet方法

RippleNet: Propagating User Preferenceson the Knowledge Graph for Recommender Systems,屬于混合型知識(shí)圖譜推薦方法,是2018發(fā)表在CIKM的一篇論文。


Ripple從名字上理解是水波的意思,水波是一層一層的,那這個(gè)算法是指在KG中某個(gè)實(shí)體,和該實(shí)體相連的其他實(shí)體也有一跳,二跳,三跳的關(guān)系,如上圖列出了ForrestGump這部電影對(duì)應(yīng)的3跳的臨近實(shí)體。

如上圖是RippleNet框架,輸入是一對(duì)user-item,輸出是用戶對(duì)物品的點(diǎn)擊預(yù)測(cè)值。

對(duì)輸入用戶u,獲取用戶的點(diǎn)擊記錄Vu,在KG中找到對(duì)應(yīng)的Vu,比如圖中有2個(gè)對(duì)應(yīng)實(shí)體,獲取這些實(shí)體對(duì)應(yīng)的tuple,把實(shí)體一跳的集合拿出來(lái)。對(duì)輸入物品v做embedding映射。如上公式,將item embedding v和這些head hi在R空間中做一個(gè)softmax,得到v相對(duì)于每個(gè)head的分值pi。

如上圖公式,用pi加權(quán)平均對(duì)應(yīng)的tail embedding ti,得到輸出ou1,即當(dāng)前用戶u的一跳的特征,對(duì)應(yīng)圖中綠色豎條,可以看成該用戶對(duì)當(dāng)前物品的一階響應(yīng)(User's1-order response)。

繼續(xù)拿ou1特征重復(fù)之前的操作,拿ou1和物品二跳的tuple算一個(gè)p值,加權(quán)對(duì)應(yīng)的tail embedding,得到ou2。

重復(fù)做下去,得到很多跳的響應(yīng)值oui,把這些響應(yīng)值加起來(lái),得到用戶最終的embedding。

用這個(gè)用戶embedding和物品最初的embedding做內(nèi)積,再用一個(gè)sigmoid函數(shù)得出點(diǎn)擊預(yù)測(cè)值。

學(xué)習(xí)算法如上圖,在已知KG和RippleNet系統(tǒng)情況下,學(xué)習(xí)參數(shù),最大化后驗(yàn)概率。通過(guò)貝葉斯定理,可以把該公式拆成3個(gè)值。第1項(xiàng)是參數(shù)的先驗(yàn)分布,用上面這個(gè)公式來(lái)刻畫(huà)這個(gè)先驗(yàn)概率分布p(θ),這項(xiàng)對(duì)應(yīng)的是正則項(xiàng)loss。

第2項(xiàng)給定參數(shù)θ,KG的概率,這項(xiàng)對(duì)應(yīng)的是KG的embedding部分。當(dāng)(h,r,t)是正樣本,Ih,r,t接近1,反之為0,希望hTRt能接近真實(shí)的tuple值。

第3項(xiàng)已知參數(shù)θ和KG,用戶和物品交互的似然函數(shù)。這個(gè)似然函數(shù)是一個(gè)伯努利分布,關(guān)于用戶和物品內(nèi)積的伯努力分布。

把這3項(xiàng)用負(fù)log做處理,得到loss函數(shù),優(yōu)化這個(gè)模型。

2、KGCN和KGCN-LS方法

KGCN:Knowledge GraphConvolutional Networks for Recommender Systems,是發(fā)表在2019年WWW上的一篇論文。KGNN-LS:Knowledge-awareGraph Neural Networks with Label Smoothness Regularization for RecommenderSystems,是發(fā)表在2019年KDD上的一篇論文,這篇是基于第1篇的擴(kuò)展,這2篇論文一塊講解。核心思想是基于KG輔助的推薦,但引入了一個(gè)新的模型GCN(圖神經(jīng)網(wǎng)絡(luò)),方法是基于GCN對(duì)KG擴(kuò)展一個(gè)模型。

在KG中的邊沒(méi)有顯示權(quán)值,只是一個(gè)關(guān)系類型。引入一個(gè)relation scoring function su(r),對(duì)每個(gè)relation打分,從而把KG轉(zhuǎn)換成weightedgraph。函數(shù)su(r)的輸入是user和relation,輸出一個(gè)分值。核心思想是識(shí)別用戶關(guān)注的類型,比如有些用戶偏好同種類的電影,有些用戶偏好某個(gè)主演的電影。su(r)用來(lái)刻畫(huà)不同用戶對(duì)不同relation的偏好層度,將user embeding和relation embedding內(nèi)積,算出相應(yīng)的分值。把異構(gòu)KG轉(zhuǎn)換成weighted graph,這樣一個(gè)graph對(duì)應(yīng)鄰接矩陣Au,下標(biāo)為u是因?yàn)槊總(gè)用戶對(duì)應(yīng)的鄰接矩陣是不一樣的,su(r)是取決于用戶。

把KG中實(shí)體信息通過(guò)GNN做一個(gè)融合,如上圖公式是一個(gè)標(biāo)準(zhǔn)的GNN的公式,Au是用戶對(duì)應(yīng)的鄰接矩陣。

Du是Au的三角對(duì)稱矩陣diagonal degree matrix。

Wl就是訓(xùn)練傳輸參數(shù)矩陣。

Hl,Hl+1是entity對(duì)應(yīng)的embedding矩陣。

σ是一個(gè)非線性函數(shù)。

這個(gè)式子本質(zhì)是在KG上做了一個(gè)多跳的message passing,把實(shí)體周圍的那些臨近點(diǎn)的特征向中間聚集,最后一層學(xué)到的特征是融合了多跳的臨近點(diǎn)的特征。當(dāng)?shù)玫阶詈笠粚觘mbedding Hl后,就可以做點(diǎn)擊預(yù)測(cè)。

上圖公式中u對(duì)應(yīng)的是Userembedding。

vu是根據(jù)前面KGNN計(jì)算得出的關(guān)于用戶的entity embedding。

通過(guò)f函數(shù)得到預(yù)測(cè)值,f函數(shù)可以取內(nèi)積,或MLP等。到這是第1篇論文的KGCN模型。

如上公式,在傳統(tǒng)GNN模型中,Au是固定的,只需要訓(xùn)練Wl。

但在我們的模型中,Au和Wl都需要訓(xùn)練,Au是通過(guò)relation scoring function計(jì)算,圖的結(jié)構(gòu)需要訓(xùn)練,導(dǎo)致模型參數(shù)很多,容易過(guò)擬合。

為了防止過(guò)擬合的問(wèn)題,引入一個(gè)正則項(xiàng),給模型一個(gè)約束。用label做約束,user engagement labels,指的是用戶對(duì)物品的打分值,yuv是用戶對(duì)某個(gè)物品的評(píng)分,這個(gè)評(píng)分是一個(gè)已知值,所以可以在KG中對(duì)這些點(diǎn)打一個(gè)標(biāo)簽。用戶看過(guò)某部電影,對(duì)應(yīng)的標(biāo)簽是1,沒(méi)看過(guò)的電影對(duì)應(yīng)的標(biāo)簽是0,對(duì)non-item實(shí)體沒(méi)有標(biāo)簽。

下一步是預(yù)測(cè)某個(gè)點(diǎn)的label,有一類算法叫標(biāo)簽傳播算法(label propagation algorithm, LPA),這個(gè)算法是優(yōu)化下面這個(gè)函數(shù)。

遍歷所有的邊,Au是邊的權(quán)值。如果i,j節(jié)點(diǎn)有邊,說(shuō)明這2個(gè)節(jié)點(diǎn)聯(lián)系比較強(qiáng),那這2個(gè)節(jié)點(diǎn)的label會(huì)比較相近。這2個(gè)節(jié)點(diǎn)的邊權(quán)值越大,那這2個(gè)節(jié)點(diǎn)的label就越一致。這是算法LPA的一個(gè)假設(shè),標(biāo)簽過(guò)度是平滑的。

預(yù)測(cè)一個(gè)無(wú)標(biāo)簽的節(jié)點(diǎn),將其周圍節(jié)點(diǎn)的label加權(quán)平均,重復(fù)該操作直到收斂,這就是label propagation。

利用label propagation做正則項(xiàng),對(duì)于一個(gè)節(jié)點(diǎn)v,其真實(shí)lable是yuv(圖中為0)。

利用LPA算法預(yù)測(cè)這個(gè)v的label,得到預(yù)測(cè)值?uv,算出預(yù)測(cè)值和真實(shí)值之間的損失J。

在做label propagation時(shí),標(biāo)簽傳播是取決于邊權(quán)值,所以最終預(yù)測(cè)值是關(guān)于邊權(quán)值的函數(shù),損失J也是一個(gè)關(guān)于邊權(quán)值的函數(shù)。損失函數(shù)R(A)是一個(gè)關(guān)于A的函數(shù),所以可以把梯度往這個(gè)損失函數(shù)中傳播,起到一個(gè)正則項(xiàng)的作用。

如上圖,回顧一下整個(gè)模型,把原始異構(gòu)KG轉(zhuǎn)成weighted graph,學(xué)習(xí)邊的權(quán)值,得到一個(gè)鄰接矩陣,用GNN得到entity embedding,用這個(gè)entity embedding 和user embedding來(lái)做這個(gè)預(yù)測(cè),得到預(yù)測(cè)值?uv,用?和真實(shí)值y得到一個(gè)loss,反向傳播,將誤差梯度向前傳播,更新Au和參數(shù)W。

下面部分是正則項(xiàng),鄰接矩陣為參數(shù),做一個(gè)labelpropagation,得到預(yù)測(cè)值?uv,用?和y得到一個(gè)loss,反向傳播,更新Au。

總結(jié)一下,本文主要介紹了3個(gè)部分的內(nèi)容,第1部分介紹了知識(shí)圖譜是推薦系統(tǒng)的一種新的輔助信息。另外2個(gè)部分介紹了兩類知識(shí)圖譜推薦方法,一類是基于embedding的知識(shí)圖譜推薦方法,包括DKN和MKR,一類是混合型知識(shí)圖譜推薦方法,包括RippleNet、KGCN和KGNN-LS。

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)