李 想,楊興耀,于 炯,錢育蓉,鄭 捷
新疆大學(xué) 軟件學(xué)院,烏魯木齊830008
隨著互聯(lián)網(wǎng)的快速發(fā)展,數(shù)據(jù)量呈爆炸式增長,導(dǎo)致信息過載,用戶很難在數(shù)據(jù)的海洋中挑選出自己感興趣的內(nèi)容。為了提高用戶體驗(yàn),推薦系統(tǒng)已經(jīng)應(yīng)用于音樂、電影、廣告等推薦場景。推薦系統(tǒng)主要分為基于協(xié)同過濾(collaborative filtering,CF)的推薦系統(tǒng)、基于內(nèi)容的推薦系統(tǒng)和混合推薦系統(tǒng)?;贑F 的推薦系統(tǒng)由于能夠有效地捕捉用戶偏好,并且易于在多種場景下實(shí)現(xiàn),而無需在基于內(nèi)容的推薦系統(tǒng)中進(jìn)行特征提取,因此得到廣泛的應(yīng)用。然而,基于CF 的推薦存在數(shù)據(jù)稀疏性和冷啟動(dòng)問題。為解決這些問題,混合推薦系統(tǒng)被提出來,其利用多種推薦技術(shù)來克服單一推薦方法的局限性,在此過程中會(huì)探索多種類型的輔助信息,比如物品屬性、物品評論和用戶的社交網(wǎng)絡(luò)。
近年來,在推薦系統(tǒng)中引入知識圖譜(knowledge graph,KG)作為輔助信息受到關(guān)注。KG 是一個(gè)有向異構(gòu)圖,其中節(jié)點(diǎn)作為實(shí)體,邊表示實(shí)體之間的關(guān)系??梢詫⑽锲芳捌鋵傩杂成涞終G 中,以理解物品之間的相互關(guān)系。此外,還可以將用戶信息集成到KG 中,從而更準(zhǔn)確地捕捉用戶和物品之間的關(guān)系以及用戶的偏好。最近提出多種KG,如Freebase、DBpedia、YAGO、谷歌的Knowledge Graph、微軟的Satori,方便了構(gòu)建用于推薦的知識圖譜??梢园l(fā)現(xiàn)知識圖譜在多種推薦場景中都作為輔助信息,包括書籍、新聞、音樂、社交平臺。
在以往的研究中,對知識圖譜中用戶屬性信息的考慮少于對物品屬性的考慮,這可能導(dǎo)致推薦結(jié)果存在一定的局限性。不同的人有不同的興趣,這可能會(huì)受到用戶的性別、年齡、職業(yè)等的影響。以電影推薦為例,不同性別和年齡的人可能會(huì)喜歡不同類型的電影。屬于同一類別的人可能有相似的興趣,而如果他們有不同的屬性,他們可能有不同的興趣。如圖1 所示,大部分男性青年喜歡看科幻和動(dòng)漫類型的電影,大部分中年男性喜歡看戰(zhàn)爭、犯罪和紀(jì)錄片類型的電影,大部分女性青年喜歡看偶像和情感類型的電影,大部分中年女性喜歡看喜劇和情感類型的電影。
圖1 不同屬性的用戶偏好不同類別的電影Fig.1 Users with different attributes prefer different categories of movies
KGCN(knowledge graph convolutional networks)在推薦方面具有優(yōu)越的性能,其利用知識圖譜的異構(gòu)信息在物品端聚合物品的屬性和其他額外的輔助信息,豐富了物品端的表示;但其在用戶端沒有考慮用戶的屬性信息,導(dǎo)致推薦模型存在一定的缺陷。為此本文對KGCN 模型進(jìn)行改進(jìn),在用戶端添加輔助信息,提出DEKGCN(double end knowledge graph convolutional networks),這是一個(gè)在知識圖譜上探索用戶偏好的端到端的推薦系統(tǒng)。它采用KGCN 作為項(xiàng)目推薦任務(wù)的基礎(chǔ)模型,使得用戶端和物品端都含有豐富的語義表示。
本文的主要貢獻(xiàn)如下:(1)推薦模型利用知識圖譜豐富的異構(gòu)信息,以圖卷積網(wǎng)絡(luò)的方式在物品端聚合來自外部知識圖譜豐富的物品信息和在用戶端聚合來自數(shù)據(jù)集中用戶的屬性信息來學(xué)習(xí)各自的表示,提高了推薦系統(tǒng)的可解釋性。(2)推薦系統(tǒng)數(shù)據(jù)集中的用戶信息被提取出來構(gòu)建三元組,拓寬了信息來源,豐富了知識圖譜。(3)在公共電影數(shù)據(jù)集進(jìn)行了大量的實(shí)驗(yàn)來評估DEKGCN 的有效性,與其他新近的模型相比,在共同的評價(jià)指標(biāo)(例如、、和Top-)上,結(jié)果顯示推薦性能有顯著提升。
用戶屬性相當(dāng)于用戶身上的標(biāo)簽,如年齡、性別、職業(yè)、收入等,把用戶屬性添加到推薦系統(tǒng)中可以極大地反映用戶的本質(zhì)特征,因而可以很大程度上促進(jìn)更精準(zhǔn)的個(gè)性化推薦?;诨旌夏P屯扑]算法的優(yōu)化在修正余弦相似性和物品屬性相似性結(jié)合的基礎(chǔ)上,用SVDFeature 計(jì)算用戶屬性權(quán)重因子來獲取用戶相似度?;谟脩魧傩院驮u分的協(xié)同過濾推薦算法以用戶間屬性相同個(gè)數(shù)來衡量用戶的相似性,實(shí)現(xiàn)了與用戶評分相似度融合的平滑過渡。基于用戶聚類與項(xiàng)目劃分的優(yōu)化推薦算法使用means 算法對用戶屬性進(jìn)行聚類,再通過增加物品類別相似度和評分相似度得到最近鄰。文獻(xiàn)[14]用優(yōu)化的-means 算法對具有高活躍度的用戶屬性進(jìn)行聚類來獲得用戶屬性相似度,并綜合考慮了用戶偏好相似性。然而,現(xiàn)有的考慮用戶屬性的推薦算法只是把用戶屬性作為一種計(jì)算相似度的因素,并未把它用來豐富用戶的表示,也沒有學(xué)習(xí)高層次的抽象特征。
為了解決稀疏性和冷啟動(dòng)問題,把知識圖譜應(yīng)用到推薦系統(tǒng)越來越受到人們的關(guān)注。按照利用知識圖譜的方式,將基于知識圖譜的推薦系統(tǒng)劃分為三種:基于嵌入的方法、基于路徑的方法和統(tǒng)一的方法?;谇度氲姆椒ㄍǔV苯邮褂脕碜灾R圖譜的信息來豐富物品或用戶的表示,將實(shí)體和關(guān)系嵌入到低維的向量空間。例如,在CKE(collaborative knowledge base embedding for recommender systems)
中,從知識圖譜學(xué)習(xí)到的項(xiàng)目結(jié)構(gòu)嵌入、項(xiàng)目文本嵌入和可視化嵌入集中在一個(gè)統(tǒng)一的貝葉斯框架中結(jié)合起來,共同表示物品?;诼窂降姆椒ɡ弥R圖譜中用戶或項(xiàng)目的連通性相似度來進(jìn)行推薦。例如,PER(personalized entity recommendation)通過手動(dòng)設(shè)計(jì)元路徑,提取基于元路徑的潛在特征來表示用戶和物品之間沿著不同類型的關(guān)系路徑的連通性。統(tǒng)一的方法結(jié)合基于嵌入的方法和基于路徑的方法的優(yōu)點(diǎn),利用嵌入傳播的思想來細(xì)化在知識圖譜中具有多跳鄰居的項(xiàng)目或用戶的表示。例如在RippleNet中,通過沿著知識圖譜中的關(guān)系,傳播用戶歷史上交互過的項(xiàng)目來挖掘用戶潛在興趣,從而豐富用戶的表示,提高推薦性能。本文提出的DEKGCN 是基于統(tǒng)一的方法,同時(shí)還考慮了用戶屬性對推薦的影響。
知識圖譜嵌入(knowledge graph embedding,KGE)將實(shí)體和關(guān)系嵌入到連續(xù)向量空間中,同時(shí)保持其固有結(jié)構(gòu)。KGE 算法可以分為兩類:基于翻譯的模型,如TransE、TransH、TransR、TransD等;語義匹配模型,如RESCAL、DistMult、ComplEx等?;诜g的模型利用基于距離的評分函數(shù),把衡量一個(gè)元組的可信性作為兩個(gè)實(shí)體之間的距離,通常經(jīng)過翻譯關(guān)系進(jìn)行。TransE 是最具代表性的基于翻譯的方法,它將實(shí)體和關(guān)系以向量的形式表示在同一空間中,當(dāng)三元組(,,)成立時(shí),即+≈,則得分函數(shù)f(,)=||+-||2 的得分低,否則高。語義匹配模型利用基于相似性的評分函數(shù),通過匹配在向量空間中實(shí)體和關(guān)系表示的潛在語義來衡量事實(shí)的可信性。例如,RESCAL將每個(gè)關(guān)系表示為矩陣,以捕獲實(shí)體之間的組合語義,并使用雙線性函數(shù)作為相似性度量。然而這些方法只適合在知識圖譜內(nèi)部完成特定任務(wù),例如連接預(yù)測和三元組分類,而不適合應(yīng)用在推薦領(lǐng)域。
本章將介紹所提出的DEKGCN 模型:首先描述知識圖譜感知的推薦問題,然后展示一個(gè)單層的物品端和用戶端的卷積表示學(xué)習(xí)過程以及兩端的聚合方式,最后介紹完整的DEKGCN 學(xué)習(xí)算法。
知識圖譜感知推薦問題的表述如下:在一個(gè)典型的推薦場景中,通常有一組個(gè)用戶={,,…,u}集合和一組個(gè)物品={,,…,v}集合。根據(jù)用戶隱式反饋,定義用戶-項(xiàng)目交互矩陣∈R:
其中,y=1 表示用戶和物品之間存在隱式交互,如點(diǎn)擊、觀看、瀏覽、購買等行為;否則,y=0。
2.1.1 知識圖譜
除了交互矩陣,物品還有一些附加信息,即物品的屬性和額外擴(kuò)展信息。例如,一部電影可以通過導(dǎo)演、演員和類別等來描述。這些輔助信息可以通過外部知識圖譜獲取,它由{(,,)|∈,∈,∈}三元組組成,即(頭,關(guān)系,尾),和分別表示知識圖譜中的實(shí)體集和關(guān)系集。例如,三元組(流浪地球2,電影導(dǎo)演,郭帆)表示,郭帆是電影《流浪地球2》的導(dǎo)演。在許多推薦場景中,物品∈可以與中的一個(gè)或多個(gè)實(shí)體關(guān)聯(lián)。例如,在電影推薦中,電影《無間道》也作為實(shí)體出現(xiàn)在知識圖譜中。在本文中,只考慮一個(gè)物品恰好對應(yīng)知識圖譜中一個(gè)實(shí)體的情況,即{(,)|∈,∈}。在本文的后面,可以互換使用符號和來表示某一項(xiàng)。此外,用()表示實(shí)體直接連接到的實(shí)體集,即()={|(,,)∈}。
2.1.2 用戶屬性圖G
除了與物品相關(guān)的實(shí)體,還必須獲取和用戶相關(guān)的實(shí)體,即用戶的人口統(tǒng)計(jì)學(xué)信息。由于這部分信息不包含在知識圖譜中,只能從數(shù)據(jù)集中提取,來構(gòu)造用戶屬性三元組,形成用戶屬性圖G。對于用戶屬性三元組,把用戶作為頭實(shí)體,用戶屬性名作為關(guān)系,用戶屬性值作為尾實(shí)體,即{(,,)|∈,∈,∈},這里、分別表示用戶屬性圖G中的關(guān)系集(屬性名集)和實(shí)體集(屬性值集)。例如,在圖1 中,用戶屬性三元組(王華,性別,男)表示用戶王華的性別為男。此外,用()表示用戶的屬性集,即()={|(,,)∈G},比如王華屬性集合{性別:男,年齡:20 歲,職業(yè):學(xué)生}。
在外部的知識圖譜中,()的大小在所有實(shí)體上都有顯著差異,在最壞的情況下可能會(huì)非常大(尤其是當(dāng)跳數(shù)很大的時(shí)候)。為了保持每批的計(jì)算模式固定且更高效,對每個(gè)實(shí)體統(tǒng)一采樣一個(gè)固定大小的近鄰集,而不是使用它的完整近鄰()。也就是說,將實(shí)體的采樣近鄰集定義為(),其中()={|~()},|()|=,其中是一個(gè)可配置常數(shù)。在本文中,把()稱為實(shí)體的(一階)接受域,的最終表示受到接受域中不同實(shí)體的影響。在真實(shí)用戶屬性圖G中,()有固定大小,即()=,且一般都很小,不需要對其采樣,的接受域就是()且只有一階。
圖2 DEKGCN 模型框架圖Fig.2 Overall framework of DEKGCN
DEKGCN 被提出來捕獲知識圖譜中實(shí)體之間的高階結(jié)構(gòu)接近性,在該節(jié)中,只對實(shí)體的一階卷積進(jìn)行描述。對于一對候選用戶和物品,先在知識圖譜上用圖卷積的方法計(jì)算物品(實(shí)體)的一階向量表示,再在用戶屬性圖G上用圖卷積的方法計(jì)算用戶的最終向量表示。
2.2.1 物品(實(shí)體) 的一階向量表示
在知識圖譜上,r表示實(shí)體e和實(shí)體e之間的關(guān)系。用一個(gè)函數(shù):R×R→R(例如內(nèi)積)來計(jì)算用戶和關(guān)系之間的分?jǐn)?shù):
為刻畫物品的拓?fù)浣咏Y(jié)構(gòu),需要計(jì)算物品鄰域的線性組合,即的一階鄰域表示:
∈R是實(shí)體的向量表示。當(dāng)計(jì)算一個(gè)實(shí)體的鄰域表示時(shí),用戶關(guān)系評分作為個(gè)性化的過濾器,根據(jù)特定用戶關(guān)系的評分帶有權(quán)重地聚合近鄰。
其中,和分別為變換的權(quán)值和偏置,為非線性函數(shù),例如ReLU。
2.2.2 用戶 的最終向量表示
用戶的最終向量計(jì)算過程和物品的一階向量表示計(jì)算過程一樣,在這里只簡單敘述。
用戶屬性的線性組合,即的鄰域表示:
∈R是屬性的向量表示。
通過單一的DEKGCN 層,實(shí)體的最終表示依賴于它自己以及它的近鄰,稱之為一階實(shí)體表示。將KGCN 從一層擴(kuò)展到多層,以更廣更深的方式合理挖掘用戶的潛在興趣。該技術(shù)可以直觀地描述為:將每個(gè)實(shí)體的初始表示(0 階表示)傳播給它的鄰居,得到一階實(shí)體表示,然后可以重復(fù)這個(gè)過程,即進(jìn)一步傳播和聚合一階表示,以獲得二階表示。一般來說,一個(gè)實(shí)體的階表示是它自身及其相鄰實(shí)體的-1表示的混合。最終DEKGCN模型形式化描述在算法1中給出。
DEKGCN 的算法
輸入:交互矩陣,知識圖譜。
輸出:預(yù)測函數(shù)F(,;,,)。
初始化所有參數(shù)
注意,算法1 遍歷所有可能的用戶-項(xiàng)目對(第2行)。為提高計(jì)算效率,在訓(xùn)練過程中采用負(fù)采樣策略。損失函數(shù)如下:
其中,T 為交叉熵?fù)p失函數(shù);T為用戶的負(fù)樣本數(shù),并且T=|{:y=1}|;為負(fù)抽樣分布且服從均勻分布;最后一項(xiàng)是L2 正則化。
為更好地評估本文提出的模型,一個(gè)包含交互信息和用戶輔助信息的數(shù)據(jù)集是必要的。本文提出的模型是在MovieLens-1M 上評估的,這是一個(gè)廣泛用于評估電影推薦系統(tǒng)的數(shù)據(jù)集,它包括由6 040 個(gè)用戶對大約3 900 部電影產(chǎn)生的1 000 209 條匿名評分(值范圍從1 到5),其用戶屬性信息包含年齡層次、性別、郵政編碼和職業(yè)。
對于MovieLens-1M 數(shù)據(jù)集中的每個(gè)電影,都需要在知識圖譜中有對應(yīng)的實(shí)體。本實(shí)驗(yàn)使用MKR中在Microsoft Satori 上為數(shù)據(jù)集MovieLens-1M 構(gòu)建好的知識圖譜sub-KG 作為,其中數(shù)據(jù)集中的電影已經(jīng)映射到相應(yīng)的Microsoft Satori 實(shí)體。此外,利用MovieLens-1M 中用戶的ID、性別、年齡,郵政編碼和職業(yè)信息以三元組的形式來構(gòu)建關(guān)于用戶屬性的知識圖譜G。例如,ID 為3 的用戶屬性三元組為(3,性別,男性)。數(shù)據(jù)集和知識圖譜的基本統(tǒng)計(jì)數(shù)據(jù)如表1所示。注意,用戶、項(xiàng)目和交互的數(shù)量比原始數(shù)據(jù)集要小,因?yàn)檫^濾掉了知識圖譜中沒有對應(yīng)實(shí)體的項(xiàng)。
表1 數(shù)據(jù)集和知識圖譜的基本統(tǒng)計(jì)數(shù)據(jù)Table 1 Basic statistics for dataset and knowledge graph
將提出的DEKGCN 與以下新近的基于知識圖譜的推薦模型進(jìn)行比較,對比模型的超參數(shù)設(shè)置除特別指出的以外,其他的與其原文中的設(shè)置相同。
MKR:通過一個(gè)交叉壓縮單元學(xué)習(xí)物品和知識圖譜中實(shí)體的共同潛在語義表示來進(jìn)行推薦,豐富物品端的表示。在實(shí)驗(yàn)中,迭代次數(shù)設(shè)為10。
KGCN:用圖卷積網(wǎng)絡(luò)的方法在知識圖譜中聚合物品的輔助信息,豐富物品端的表示,得到用戶對物品的偏好概率。在實(shí)驗(yàn)中,批處理大小設(shè)為4 096。
KGNN-LS:在知識圖譜上用圖神經(jīng)網(wǎng)絡(luò)聚合鄰域信息,并把標(biāo)簽平滑正則化添加到損失函數(shù)中進(jìn)行推薦學(xué)習(xí)。在實(shí)驗(yàn)中,批處理大小設(shè)為4 096。
DEKGCN:本文提出的在用戶端和物品端同時(shí)融合各自輔助信息的推薦模型。
函數(shù)設(shè)置和基礎(chǔ)模型KGCN 一樣,和設(shè)置為內(nèi)積函數(shù)。對于,設(shè)置ReLU 函數(shù)作為非最后一層的聚合器,tanh 函數(shù)作為最后一層的聚合器。超參數(shù)是通過優(yōu)化驗(yàn)證集的AUC 來確定的,迭代次數(shù)為20,實(shí)體嵌入向量的維數(shù)=16,接受域的深度=2,L2 正則化器權(quán)重=e,學(xué)習(xí)率=0.01,批處理大小為4 096。在知識圖譜中,實(shí)體鄰域采樣大小=4;在用戶屬性圖G上,由于MovieLens-1M只提供了4 個(gè)用戶屬性,因此=4。通過Adam 對可訓(xùn)練參數(shù)進(jìn)行優(yōu)化。DEKGCN 的代碼是在Python 3.6、TensorFlow 1.12.0 和NumPy 1.14.3 下實(shí)現(xiàn)的。
訓(xùn)練集、驗(yàn)證集和測試集的比例為6∶2∶2,每個(gè)實(shí)驗(yàn)重復(fù)3 次,取平均性能值。
在兩個(gè)實(shí)驗(yàn)場景中評估模型:(1)在點(diǎn)擊率(click through rate,CTR)預(yù)測中,使用訓(xùn)練好的模型來預(yù)測測試集中的每個(gè)交互,接著用、和1 來評估點(diǎn)擊率預(yù)測。(2)在Top@推薦中,使用訓(xùn)練好的模型為測試集中的每個(gè)用戶選擇預(yù)測點(diǎn)擊概率最高的個(gè)項(xiàng)目,然后選擇@、@和1@對推薦集進(jìn)行評估,其中=1,2,5,10,20,50,100。
本節(jié)將介紹不同模型和DEKGCN 的比較結(jié)果。表2 為模型的CTR 的預(yù)測結(jié)果,圖3、圖4 和圖5 分別為Top@推薦的準(zhǔn)確率、召回率和1 折線圖。
圖3 Top@K 推薦的準(zhǔn)確率Fig.3 Precision in Top@K recommendation
圖4 Top@K 推薦的召回率Fig.4 Recall in Top@K recommendation
圖5 Top@K 推薦的F1Fig.5 F1 in Top@K recommendation
表2 CTR 預(yù)測的AUC、Precision 和F1 結(jié)果Table 2 Result of AUC,Precision and F1 in CTR prediction
從表2 中可以看出,模型DEKGCN 在CTR 的各項(xiàng)指標(biāo)上均取得了較好的性能。與表現(xiàn)最好的基準(zhǔn)模型MKR 相比,DEKGCN 在上提升了1.69%,在上提升了2.21%,在1 上提升了2.28%。與原模型KGCN 相比,改進(jìn)后的模型DEKGCN 在上提升了2.70%,在上提升了3.50%,在1 上提升了3.55%。
從圖3、圖4和圖5中可以看出,DEKGCN 在@、@和1@上也實(shí)現(xiàn)了較好的性能。=10 時(shí),基準(zhǔn)模型KGNN-LS 在準(zhǔn)確率上表現(xiàn)最好,DEKGCN 與其相比提升了7.13%;基準(zhǔn)模型MKR在召回率和1上表現(xiàn)最好,DEKGCN 與其相比在召回率上提升了2.67%,在1 上提升了12.89%。與原模型KGCN 相比,DEKGCN 在準(zhǔn)確率上提升了18.62%,在召回率上提升了0.68%,在1 上提升了12.51%。
在CTR 預(yù)測和Top-推薦中,DEKGCN 在各項(xiàng)指標(biāo)中均取得了較好的性能。在基準(zhǔn)模型中,MKR在CTR 推薦場景中表現(xiàn)優(yōu)秀,但在Top-的推薦場景中表現(xiàn)得不是很好。而DEKGCN 在這兩個(gè)推薦場景中都表現(xiàn)出色。這是由于MKR、KGNN-LS、KGCN和DEKGCN 這幾個(gè)推薦模型都結(jié)合了知識圖譜中豐富的異構(gòu)信息,但MKR、KGNN-LS、KGCN 只是融合了物品在知識圖譜中的輔助信息及其關(guān)系,只有DEKGCN 同時(shí)在用戶端和物品端結(jié)合各自的輔助信息及其關(guān)系。本文提出的DEKGCN 模型性能提升有兩個(gè)潛在原因:第一個(gè)原因是使用了更多的信息源;第二個(gè)原因是使用結(jié)構(gòu)化知識圖譜來建模異構(gòu)信息。DEKGCN 表明,在用戶端融合用戶的輔助信息,在物品端融合物品的輔助信息是可行的。推薦系統(tǒng)對異構(gòu)信息的利用可以顯著提高推薦性能,而用戶屬性信息的額外使用也可以提高推薦性能。
本文提出的DEKGCN 推薦模型,是一種利用用戶和物品屬性及其關(guān)系進(jìn)行推薦的端到端模型,在MovieLens-1M 數(shù)據(jù)集上進(jìn)行的大量實(shí)驗(yàn),證明了該模型在提高推薦質(zhì)量方面的有效性,且為用戶提供了直觀的推薦解釋。在未來,會(huì)進(jìn)一步地將知識圖譜與其他輔助信息有效地結(jié)合到推薦系統(tǒng)中,如社交網(wǎng)絡(luò)、用戶評論信息等;也會(huì)在其他領(lǐng)域拓展本文提出的模型,比如音樂、電子商務(wù)、新聞、視頻等。