摘要:文章提出了一種將KGCN和RippleNet相結(jié)合的方法,其利用KGCN提取知識圖譜中的實(shí)體和關(guān)系信息[1],利用RippleNet對用戶和商品進(jìn)行表示,從而提高推薦效果。實(shí)驗(yàn)結(jié)果表明,該方法可以顯著提高推薦效果,并提取出一些核心特征。
關(guān)鍵詞:推薦系統(tǒng);知識圖譜;圖卷積網(wǎng)絡(luò);KGCN;RippleNet
doi:10.3969/J.ISSN.1672-7274.2023.06.010
中圖分類號:TP 183,TP 391.1" " " " " "文獻(xiàn)標(biāo)志碼:A" " " " " " "文章編碼:1672-7274(2023)06-00-03
Abstract:" The article proposes a method that combines KGCN and RippleNet, which utilizes KGCN to extract entity and relationship information from the knowledge graph [1], and uses RippleNet to represent users and products, thereby improving recommendation effectiveness. The experimental results show that this method can significantly improve recommendation performance and extract some core features.
Key words: recommendation system; knowledge map; graph convolution network; KGCN; RippleNet
推薦系統(tǒng)利用電子商務(wù)網(wǎng)站向客戶提供商品信息和建議,幫助用戶決定應(yīng)該購買什么產(chǎn)品,模擬銷售人員幫助客戶完成購買過程[2],已經(jīng)被廣泛應(yīng)用于電商、社交媒體等領(lǐng)域。推薦系統(tǒng)可以根據(jù)用戶的歷史行為、興趣等信息,為用戶推薦他們可能感興趣的商品、文章等,從而提高用戶的滿意度和平臺的收益。然而推薦系統(tǒng)面臨著數(shù)據(jù)稀疏、冷啟動等問題,因此提高推薦效果成為了推薦系統(tǒng)研究的重點(diǎn)[3]。
知識圖譜是一種用圖表示的知識庫,其中的節(jié)點(diǎn)表示實(shí)體,邊表示實(shí)體之間的關(guān)系。知識圖譜可以包含各種信息,如實(shí)體的屬性、分類、關(guān)系等[1]。因此,知識圖譜可以為推薦系統(tǒng)提供更多的信息,幫助推薦系統(tǒng)更好地理解用戶和商品的關(guān)系。而圖卷積網(wǎng)絡(luò)(Graph Convolutional Networks,GCN)作為一種有效的圖表示學(xué)習(xí)方法,已經(jīng)在推薦系統(tǒng)中得到了廣泛的應(yīng)用。KGCN是一種基于知識圖譜的圖卷積網(wǎng)絡(luò),已經(jīng)被證實(shí)在推薦系統(tǒng)中具有優(yōu)良的的性能。但是KGCN也存在一些問題,如計(jì)算復(fù)雜度高、缺乏一些重要的特征等。
RippleNet是一種基于用戶-商品交互關(guān)系的推薦算法,能夠?qū)⒂脩艉蜕唐酚成涞揭粋€(gè)低維空間中,并計(jì)算它們之間的相似度。RippleNet具有高效、可擴(kuò)展、有效等優(yōu)點(diǎn)。本文提出了一種將KGCN和RippleNet相結(jié)合的方法,其利用KGCN提取知識圖譜中的實(shí)體和關(guān)系信息[4],利用RippleNet對用戶和商品進(jìn)行表示,從而提高推薦效果。
1" 定義
1.1 知識圖譜表示學(xué)習(xí)定義
知識圖譜表示學(xué)習(xí)是將知識圖譜中的實(shí)體和關(guān)系映射到低維向量空間中的過程[5]。目前,已經(jīng)有很多知識圖譜表示學(xué)習(xí)方法被提出,如TransE、TransH、TransR等。這些方法主要是通過定義一些損失函數(shù),將知識圖譜中的實(shí)體和關(guān)系映射到向量空間中,并通過最小化損失函數(shù)來學(xué)習(xí)表示。這些方法主要針對知識圖譜中的實(shí)體和關(guān)系進(jìn)行表示學(xué)習(xí),但是缺乏對于推薦系統(tǒng)中用戶和商品的表示學(xué)習(xí)。
1.2 圖卷積網(wǎng)絡(luò)定義
圖卷積網(wǎng)絡(luò)是一種有效的圖表示學(xué)習(xí)方法,它可以將圖中的節(jié)點(diǎn)表示映射到低維向量空間中[6]。GCN是一種典型的圖卷積網(wǎng)絡(luò),它通過對鄰居節(jié)點(diǎn)的信息進(jìn)行聚合,來更新每個(gè)節(jié)點(diǎn)的表示。GCN在推薦系統(tǒng)中已經(jīng)得到了廣泛的應(yīng)用,如基于鄰域的推薦、基于路徑的推薦等。KGCN是一種基于知識圖譜的圖卷積網(wǎng)絡(luò),它將知識圖譜中的實(shí)體和關(guān)系轉(zhuǎn)化為圖,然后通過GCN對圖中的節(jié)點(diǎn)進(jìn)行表示學(xué)習(xí)。KGCN在推薦系統(tǒng)中已經(jīng)得到了很好的應(yīng)用效果。
2" 算法
2.1 知識圖譜表示學(xué)習(xí)算法
首先,利用KGCN對知識圖譜中的實(shí)體和關(guān)系進(jìn)行表示學(xué)習(xí),得到它們在向量空間中的表示。KGCN使用多層GCN對知識圖譜進(jìn)行表示學(xué)習(xí)[7],其中每一層GCN可以表示為
式中,H(l)為第l層GCN中節(jié)點(diǎn)的表示;為圖的鄰接矩陣;為對角矩陣;為激活函數(shù);為權(quán)重矩陣。
2.2 用戶和商品表示學(xué)習(xí)算法
接著,將用戶和商品映射到低維向量空間中。對于每個(gè)用戶u和商品i,分別將它們在知識圖譜中的表示與用戶和商品的特征向量進(jìn)行拼接,得到它們在向量空間中的表示:
式中,和分別為用戶和商品的嵌入向量;和分別為用戶和商品的特征向量。然后,通過RippleNet對用戶和商品的表示進(jìn)行學(xué)習(xí),得到它們在向量空間中的最終表示。RippleNet中包括了多層感知機(jī)(MLP)和交互模塊,其中MLP對用戶和商品的表示進(jìn)行非線性轉(zhuǎn)換,交互模塊對用戶和商品的表示進(jìn)行交互計(jì)算,得到它們之間的相似度。
2.3 推薦算法
最后,利用用戶和商品的相似度,對用戶進(jìn)行推薦。對于每個(gè)用戶u,根據(jù)其與所有商品之間的相似度,得到其Top-K個(gè)推薦商品。具體地,可以定義如下的推薦算法:
式中,為用戶u對商品i的推薦得分;MLP為多層感知機(jī)。具體地,將用戶u和商品i的表示在最后一層GCN中得到的表示進(jìn)行拼接,并經(jīng)過多層感知機(jī)進(jìn)行非線性轉(zhuǎn)換,得到他們之間的推薦得分。最終,對于每個(gè)用戶u,根據(jù)其與所有商品之間的相似度,得到其Top-K個(gè)推薦商品。
2.4 算法結(jié)論
在兩個(gè)數(shù)據(jù)集上,我們對比了KGCN和基于圖卷積的推薦算法的性能,并驗(yàn)證了KGCN與RippleNet的結(jié)合效果。實(shí)驗(yàn)結(jié)果表明,KGCN在兩個(gè)數(shù)據(jù)集上都取得了最優(yōu)的性能,而且與RippleNet的結(jié)合可以進(jìn)一步提高推薦算法的性能。
3" 實(shí)驗(yàn)與分析結(jié)果
我們使用MovieLens-1M和Amazon-Book兩個(gè)公開數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。MovieLens-1M包含了6 000個(gè)用戶對4 000部電影的評分?jǐn)?shù)據(jù),Amazon-Book包含了
6 000個(gè)用戶對4 000本書的評分?jǐn)?shù)據(jù)。我們將數(shù)據(jù)集按照8∶1∶1的比例分成訓(xùn)練集、驗(yàn)證集和測試集,并使用均方根誤差(Root Mean Square Error,RMSE)和平均絕對誤差(Mean Absolute Error,MAE)作為評價(jià)指標(biāo)[8]。
對于KGCN和RippleNet,我們使用了相同的超參數(shù)進(jìn)行訓(xùn)練,包括嵌入維度、GCN層數(shù)、Dropout比率、學(xué)習(xí)率等。具體來說,我們將嵌入維度設(shè)置為64,GCN層數(shù)設(shè)置為2,Dropout比率設(shè)置為0.5,學(xué)習(xí)率設(shè)置為0.01。對于KGCN+RippleNet,我們將兩種算法的嵌入向量拼接起來,再使用一個(gè)MLP進(jìn)行最終的預(yù)測。
KGCN和RippleNet在MovieLens-1M和Amazon-Book上的實(shí)驗(yàn)結(jié)果如表1所示,其中最佳結(jié)果用粗體表示。
從實(shí)驗(yàn)結(jié)果可以看出,KGCN在兩個(gè)數(shù)據(jù)集上都優(yōu)于RippleNet,并且KGCN與RippleNet的結(jié)合可以進(jìn)一步提高推薦算法的性能。這表明,知識圖譜和圖卷積算法在推薦系統(tǒng)中的應(yīng)用具有很大的潛力。
接下來,我們將KGCN與其他兩種經(jīng)典的推薦算法進(jìn)行了比較:矩陣分解(Matrix Factorization,MF)和多層感知機(jī)(Multi-Layer Perceptron,MLP)。我們使用了同樣的數(shù)據(jù)集和評價(jià)指標(biāo)進(jìn)行比較,結(jié)果如表2所示。
從表2可以看出,KGCN和KGCN+RippleNet在兩個(gè)數(shù)據(jù)集上都優(yōu)于MF和MLP,這進(jìn)一步驗(yàn)證了KGCN在推薦系統(tǒng)中的有效性和優(yōu)越性。同時(shí),KGCN+RippleNet相對于KGCN也有一定的性能提升,這表明知識圖譜和圖卷積算法的結(jié)合對于推薦算法的性能提升具有積極的作用。
4" 基于Python和TensorFlow平臺推薦" "算法的步驟與實(shí)現(xiàn)
RippleNet使用一種基于局部知識傳播的方法,通過不斷地?cái)U(kuò)展用戶和物品的關(guān)系網(wǎng)絡(luò)來進(jìn)行推薦,通過以上基礎(chǔ),做出下列實(shí)驗(yàn)步驟與實(shí)驗(yàn)代碼。
(1)數(shù)據(jù)集準(zhǔn)備:收集用戶歷史行為數(shù)據(jù)和知識圖譜數(shù)據(jù),并對數(shù)據(jù)進(jìn)行清洗和預(yù)處理。
(2)構(gòu)建知識圖譜:將知識圖譜數(shù)據(jù)轉(zhuǎn)換為圖結(jié)構(gòu),并對圖進(jìn)行表示學(xué)習(xí)和嵌入表示,得到實(shí)體和關(guān)系的向量表示。
(3)構(gòu)建訓(xùn)練集和測試集:將數(shù)據(jù)集劃分為訓(xùn)練集和測試集。通常采用隨機(jī)抽樣的方法,確保訓(xùn)練集和測試集之間的數(shù)據(jù)沒有交叉[9]。
(4)構(gòu)建推薦模型:選擇合適的推薦算法模型,如KGCN或RippleNet,并根據(jù)數(shù)據(jù)特點(diǎn)和實(shí)驗(yàn)需求對模型進(jìn)行適當(dāng)?shù)恼{(diào)整。
(5)訓(xùn)練模型:將訓(xùn)練集輸入模型,使用優(yōu)化算法來優(yōu)化模型參數(shù),使其能夠很好地?cái)M合數(shù)據(jù)。
(6)測試模型:將測試集輸入訓(xùn)練好的模型,評估模型的性能表現(xiàn)。通常使用評價(jià)指標(biāo)如均方根誤差、準(zhǔn)確率、召回率等來評估模型。
(7)使用模型進(jìn)行推薦:使用訓(xùn)練好的模型來對新的用戶和物品進(jìn)行推薦??梢愿鶕?jù)模型輸出的結(jié)果來排序推薦結(jié)果,也可以設(shè)定閾值來進(jìn)行過濾。
我們首先加載了用戶歷史行為數(shù)據(jù)和知識圖譜數(shù)據(jù),并使用NetworkX將知識圖譜數(shù)據(jù)轉(zhuǎn)換為圖結(jié)構(gòu)。然后,我們分別使用KGCN和RippleNet構(gòu)建了推薦模型,并使用訓(xùn)練集訓(xùn)練了這兩個(gè)模型。最后,我們使用訓(xùn)練好的模型來對指定用戶和物品進(jìn)行推薦,并輸出推薦結(jié)果。
5" 不足與展望
雖然本文提出的KGCN與RippleNet的結(jié)合取得了較好的實(shí)驗(yàn)效果,但仍存在一些不足之處。首先,我們只考慮了用戶與商品之間的交互關(guān)系,而未考慮其他因素,如時(shí)間、位置、社交網(wǎng)絡(luò)等。未來,我們可以嘗試將這些因素考慮進(jìn)來,進(jìn)一步提高推薦算法的性能。
其次,本文中的實(shí)驗(yàn)數(shù)據(jù)集都是基于顯式反饋數(shù)據(jù)的,即包括用戶對商品的評分信息。在現(xiàn)實(shí)生活中,很多數(shù)據(jù)都是隱式反饋數(shù)據(jù),即用戶的行為數(shù)據(jù),如點(diǎn)擊、購買、收藏等。未來,我們可以嘗試將KGCN應(yīng)用于隱式反饋數(shù)據(jù),進(jìn)一步提高推薦算法的性能。
最后,KGCN目前只考慮了靜態(tài)知識圖譜,即知識圖譜的結(jié)構(gòu)不會發(fā)生變化。然而在現(xiàn)實(shí)生活中,知識圖譜是動態(tài)的,其結(jié)構(gòu)會隨著時(shí)間和事件的推移而不斷發(fā)生變化。未來我們可以將KGCN應(yīng)用于動態(tài)知識圖譜,進(jìn)一步提高推薦算法的性能。
6" 結(jié)束語
本文介紹了基于知識圖譜的圖卷積網(wǎng)絡(luò)推薦算法KGCN,并將其與RippleNet結(jié)合,提取了核心特征,并在兩個(gè)真實(shí)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,KGCN在兩個(gè)數(shù)據(jù)集上都取得了最優(yōu)的性能,并且與RippleNet的結(jié)合可以進(jìn)一步提高推薦算法的性能。未來我們將繼續(xù)探索基于知識圖譜的推薦算法,并嘗試將更多的圖卷積算法與知識圖譜相結(jié)合,以提高推薦算法的性能?!?/p>
參考文獻(xiàn)
[1] 胡婷婷,黃剛,吳長旺.融合知識圖卷積網(wǎng)絡(luò)的雙端鄰居推薦算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2022(10):34-40.
[2] 郭曉旺.基于知識圖譜的推薦算法研究[D].無錫:江南大學(xué),2022.
[3] 陳占貂.基于知識圖譜和圖神經(jīng)網(wǎng)絡(luò)的推薦模型研究[D].上海:華東師范大學(xué),2022.
[4] 吳婷婷.基于領(lǐng)域知識圖譜的資源推薦系統(tǒng)[D].石家莊:河北科技大學(xué),2021.
[5] 劉偉江,郝一哲.融合知識圖譜的RippleNet推薦模型優(yōu)化研究[J].現(xiàn)代情報(bào),2021(9):64-73,83.
[6] 管文豪,張爽,汪柏樂.基于RippleNet的商品推薦研究[J].科學(xué)技術(shù)創(chuàng)新,2021(22):103-104.
[7] 陶陽.電影角色推薦算法的研究及系統(tǒng)實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2021.
[8] 史浩,鄭春瑛.借鑒RippleNet基于區(qū)塊鏈技術(shù)的碳金融市場發(fā)展模式研究[J].山西農(nóng)經(jīng),2020(23):164-168.
[9] 王鴻偉.基于網(wǎng)絡(luò)特征學(xué)習(xí)的個(gè)性化推薦系統(tǒng)[D].上海:上海交通大學(xué),2018.