王鈺鎣,王 勇
(北京工業(yè)大學(xué)信息學(xué)部,北京 100124)
隨著信息社會的飛速發(fā)展,人們可以方便地從各種渠道獲取到豐富的信息,但在面對龐雜的數(shù)據(jù)時,很難在較短時間內(nèi)篩選出有效信息,并做出相應(yīng)判斷。在這種情況下,推薦算法的產(chǎn)生為人們解決了這一難題[1]。推薦算法可以利用互聯(lián)網(wǎng)工具,在龐大的數(shù)據(jù)中個性化地提取出有效信息,從而為人們提供精準(zhǔn)的服務(wù),以此來滿足用戶的需求[2]。推薦系統(tǒng)可以在用戶無明確需求的情況下,根據(jù)用戶的歷史行為做出合理的推薦[3]。并且在用戶使用推薦系統(tǒng)的同時,及時記錄下用戶的行為數(shù)據(jù),為后續(xù)推薦提供數(shù)據(jù)來源。
傳統(tǒng)的協(xié)同過濾推薦系統(tǒng)[4-6],主要利用了用戶和物品的屬性信息,并且依賴用戶的行為來進(jìn)行物品推薦,在算法準(zhǔn)確性上有顯著的提高,但依然存在冷啟動和可解釋性等問題[7]。然而,這在提升算法的準(zhǔn)確率和召回率方面尤為重要,因此,引入基于模型的推薦算法?;谀P偷耐扑]算法,多是將原始數(shù)據(jù)信息輸入到已構(gòu)建好的深度學(xué)習(xí)模型當(dāng)中,進(jìn)行模型訓(xùn)練,得出推薦結(jié)果。而由于深度學(xué)習(xí)模型原本就存在一定程度上的不可解釋問題,因此引入知識圖譜的概念[8],知識圖譜作為先驗(yàn)知識,可以為推薦算法提供語義特征。通過構(gòu)建專業(yè)領(lǐng)域知識圖譜,將帶有語義的數(shù)據(jù)輸入到模型當(dāng)中,從而解決模型的可解釋性差問題。
目前,基于知識圖譜的推薦算法主要是利用知識圖譜表示技術(shù)或知識圖譜元路徑提取技術(shù)[9-10]?;谥R圖譜表示技術(shù)的推薦算法,主要是利用原始數(shù)據(jù)集構(gòu)建知識圖譜,利用建模的方式將結(jié)點(diǎn)和關(guān)系在向量空間中進(jìn)行表示,通過計(jì)算從而生成低維稠密向量。Zhang等人[11]利用embedding將交互信息、文本、圖片進(jìn)行編碼,提取出多類型的語義特征,與推薦物品相融合,提出CKE框架,充分學(xué)習(xí)物品的各屬性特征,從而提高算法的準(zhǔn)確性。Wang等人[12]提出了CDL模型,利用知識圖譜表示學(xué)習(xí)得到物品結(jié)構(gòu)化信息,并利用去噪編碼器網(wǎng)絡(luò)學(xué)習(xí)編碼層文本表示向量和視覺表示向量,并將這些表示向量與物品的潛在因子向量相結(jié)合,利用矩陣分解算法完成推薦。但其問題在于關(guān)系類型較少且實(shí)體間關(guān)系較為稠密,導(dǎo)致推薦的準(zhǔn)確性不佳。Wang等人[13]提出了DKN模型,利用知識圖譜表示技術(shù)以及卷積神經(jīng)網(wǎng)絡(luò)對句子進(jìn)行學(xué)習(xí),并加入注意力機(jī)制,實(shí)現(xiàn)新聞推薦。但這些模型并未有效解決算法的可解釋性以及冷啟動等問題。
基于知識圖譜元路徑提取技術(shù)的推薦算法,主要是利用已構(gòu)建好的知識圖譜不同結(jié)點(diǎn)之間的連通性,來提取出不同的路徑信息,并結(jié)合協(xié)同過濾模型進(jìn)行推薦。Qian等人[14]提出了一種全新的路徑相似度計(jì)算方法PathSim,通過計(jì)算不同路徑的相似程度得出相似物品,從而進(jìn)行推薦。Shi等人[15]提出了一種基于元路徑的策略,利用帶權(quán)元路徑來對路徑相似度進(jìn)行計(jì)算,構(gòu)造帶有權(quán)重的正則化項(xiàng)損失函數(shù),來進(jìn)行模型訓(xùn)練。Wang等人[16]提出了RippleNet模型,將知識圖譜中的路徑以及結(jié)點(diǎn)信息作為額外的知識加入到推薦算法中,將用戶對某一物品的喜好理解為水波傳播,以某一用戶作為中心,不斷向外發(fā)散,對各層發(fā)散結(jié)果進(jìn)行相似度計(jì)算,并融合各層結(jié)果,得出最終預(yù)測值,實(shí)現(xiàn)物品推薦,但無法有效地解決算法的冷啟動問題。
因此,本文提出一種基于知識圖譜和Bi-LSTM(雙向循環(huán)神經(jīng)網(wǎng)絡(luò))的推薦算法KG-BiLSTM,將知識圖譜嵌入技術(shù)和知識圖譜元路徑提取技術(shù)相結(jié)合,在提升算法準(zhǔn)確率的同時,解決算法的可解釋性和冷啟動問題。在MovieLens-1M和Yelp數(shù)據(jù)集上進(jìn)行大量實(shí)驗(yàn),實(shí)驗(yàn)表明該算法與主流推薦算法相比,在精確率、召回率和MRR指標(biāo)上有較大提升。該算法主要工作有如下幾個方面:
1)以有向圖的形式構(gòu)建專業(yè)領(lǐng)域知識圖譜,將用戶屬性信息與物品屬性信息作為不同類型的結(jié)點(diǎn)加入到知識圖譜當(dāng)中。并利用知識圖譜元路徑提取技術(shù),提取出知識圖譜中不同用戶-物品的路徑信息,存儲于路徑信息文件當(dāng)中。
2)將不同路徑的相應(yīng)結(jié)點(diǎn)信息進(jìn)行編碼,生成嵌入向量,將各路徑的各結(jié)點(diǎn)嵌入向量輸入到Bi-LSTM當(dāng)中,根據(jù)前后結(jié)點(diǎn)的信息,生成Bi-LSTM隱藏層向量,使整條路徑具有語義含義。
3)為充分捕捉到較遠(yuǎn)距離結(jié)點(diǎn)的信息,引入注意力機(jī)制,將每條路徑中的各結(jié)點(diǎn)隱藏層向量輸入到注意力機(jī)制當(dāng)中,從而進(jìn)一步提升預(yù)測的準(zhǔn)確性。
4)將各路徑信息輸入到平均池化層中,用于區(qū)分不同路徑的重要程度。對不同路徑的預(yù)測信息進(jìn)行融合,利用交叉熵?fù)p失函數(shù)進(jìn)行模型訓(xùn)練,不斷更新模型參數(shù),得出最終預(yù)測結(jié)果。
5)將本文提出的KG-BiLSTM推薦算法與主流基于知識圖譜的推薦算法在MovieLens-1M和Yelp數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn),并根據(jù)原始數(shù)據(jù)集,設(shè)置用戶評分小于4的集合為冷啟動數(shù)據(jù)集。根據(jù)Precision、Recall和MRR指標(biāo)以及可解釋性分析,驗(yàn)證該算法在原始數(shù)據(jù)集和冷啟動數(shù)據(jù)集上均可有效提升推薦算法的準(zhǔn)確性,并對推薦結(jié)果做出合理解釋。
知識圖譜最早的應(yīng)用是提升搜索引擎的能力,提高用戶的搜索質(zhì)量,其概念最早是由Google于2012年5月17日提出。隨后在智能問答、自然語言處理、推薦算法、數(shù)據(jù)分析等場合被廣泛應(yīng)用。
知識圖譜[17]實(shí)質(zhì)上是一個語義網(wǎng)絡(luò),由圖的形式來形象地描述不同事物之間的關(guān)系,通常由節(jié)點(diǎn)和邊組成。知識圖譜中的節(jié)點(diǎn)用于表示實(shí)體和概念。實(shí)體是出現(xiàn)在知識圖譜中的各類具體結(jié)點(diǎn),概念是具有相同屬性的某一類結(jié)點(diǎn)的集合。知識圖譜中的邊表示不同結(jié)點(diǎn)之間的關(guān)系和屬性。知識由三元組(h,r,t)進(jìn)行表示,其中h為頭實(shí)體,r為關(guān)系,t為尾實(shí)體,一個完整的知識圖譜需要由若干個不同的三元組構(gòu)成。在知識圖譜表示學(xué)習(xí)中,通常是將知識圖譜嵌入到模型中,通過模型訓(xùn)練,使h+r≈t,從而得到知識的低維向量表示。而知識圖譜元路徑提取通常是提取出整條路徑的結(jié)點(diǎn)信息,將路徑結(jié)點(diǎn)信息輸入到模型中進(jìn)行訓(xùn)練,生成整條路徑的低維向量,從而賦予路徑特定語義[18]。
長短期記憶網(wǎng)絡(luò)LSTM是一種循環(huán)神經(jīng)網(wǎng)絡(luò)的變形[19]。主要是為了解決傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)中存在的長依賴問題,適用于處理間隔時間較長的事件。LSTM內(nèi)部結(jié)構(gòu)如圖1所示。該結(jié)構(gòu)由3個門控單元和1個細(xì)胞狀態(tài)組成。其中細(xì)胞狀態(tài)為ct,類似一個鏈?zhǔn)浇Y(jié)構(gòu),用于整合和記錄信息。而門控單元用于選擇信息是否允許通過以及通過量,以此來控制細(xì)胞狀態(tài)。門控單元分別為輸入門it、遺忘門ft和輸出門ot。輸入門決定需要更新的信息,遺忘門決定需要覆蓋哪些信息,而輸出門決定哪些信息被輸出。由于LSTM擁有處理較長時間間隔信息的特性,因此被應(yīng)用于知識圖譜當(dāng)中,可根據(jù)路徑的選擇來記錄結(jié)點(diǎn)信息,用于后續(xù)模型輸入。
圖1 LSTM內(nèi)部結(jié)構(gòu)圖
注意力機(jī)制最初被應(yīng)用于機(jī)器翻譯領(lǐng)域,目前在人工智能領(lǐng)域,注意力機(jī)制可融合多種神經(jīng)網(wǎng)絡(luò)模型,在自然語言處理、推薦系統(tǒng)、統(tǒng)計(jì)學(xué)習(xí)等方面有較為廣泛的應(yīng)用。
注意力機(jī)制[20]類似人類的視覺機(jī)制,在對某事物進(jìn)行觀察時,通常傾向于關(guān)注較為重要的信息,而忽視相關(guān)度較低的信息,從而有助于做出最終決策?;诖嗽恚⒁饬C(jī)制可根據(jù)輸入信息,對其重要性權(quán)值進(jìn)行計(jì)算,將得到的重要性權(quán)值與輸入信息相乘,再將乘以不同權(quán)值的輸入信息相加,得出最終的注意力向量。其模型如圖2所示。
圖2 注意力機(jī)制模型圖
利用該模型可實(shí)現(xiàn)將不同結(jié)點(diǎn)的特征信息進(jìn)行有效融合,從而防止因路徑過長導(dǎo)致較遠(yuǎn)結(jié)點(diǎn)特征無法完整提取的問題。
本章將詳細(xì)描述Bi-LSTM推薦算法的主要內(nèi)容。該模型主要分為5層:預(yù)處理層、嵌入層、Bi-LSTM層、注意力層、預(yù)測層(包括池化層和全連接層)。基于知識圖譜和Bi-LSTM推薦算法的模型如圖3所示。該算法首先將獲取到的數(shù)據(jù)集進(jìn)行分類預(yù)處理,對于每個用戶和物品結(jié)點(diǎn)賦予唯一的id值,并構(gòu)建一個有向圖,將用戶結(jié)點(diǎn)、物品結(jié)點(diǎn)、用戶各屬性結(jié)點(diǎn)以及物品各屬性結(jié)點(diǎn)添加到有向圖中,并用邊對各屬性和關(guān)系相連,接著構(gòu)建專業(yè)領(lǐng)域知識圖譜。對已構(gòu)建好的知識圖譜,提取每個用戶-物品對的多條路徑信息,設(shè)置路徑條數(shù)最大值,將提取出的路徑信息統(tǒng)一存儲到文件中,作為后續(xù)模型的輸入。其次,對各用戶、物品及其屬性信息進(jìn)行編碼,生成嵌入向量。然后,構(gòu)建雙向循環(huán)神經(jīng)網(wǎng)絡(luò),將各路徑的嵌入向量依次輸入到神經(jīng)網(wǎng)絡(luò)當(dāng)中,進(jìn)行模型訓(xùn)練。同時引入注意力機(jī)制,充分獲取前端較遠(yuǎn)結(jié)點(diǎn)的特征信息。最后,將各條路徑的隱藏層向量輸入到平均池化層中,根據(jù)路徑的重要性程度進(jìn)行向量整合,并利用交叉熵?fù)p失函數(shù)完成模型訓(xùn)練。
圖3 基于知識圖譜和Bi-LSTM的推薦算法模型
推薦算法通常是根據(jù)用戶對物品的已評分信息預(yù)測未被評分物品的分值,算法的原始數(shù)據(jù)主要分為用戶集合U={U1,U2,…,Ui}和物品集合V={V1,V2,…,Vj},其中i為用戶總數(shù),j為物品總數(shù)。將用戶與物品的交互信息存儲于矩陣Ri×j中,若rij=1則表示用戶i對物品j產(chǎn)生過交互,若rij=0則表示用戶i對物品j未產(chǎn)生過交互。
將用戶、物品及其屬性信息映射到知識圖譜KG當(dāng)中,用有向圖的形式來對知識圖譜進(jìn)行存儲,頭實(shí)體和尾實(shí)體對應(yīng)有向圖中的結(jié)點(diǎn),關(guān)系對應(yīng)有向圖的邊。由于知識圖譜是由多個三元組組成,因此每個用戶-物品交互信息可表示為(U, interact,V)三元組的形式,interact表示用戶對物品產(chǎn)生過交互。并且物品-屬性信息同樣也可表示為三元組形式,將物品屬性信息以結(jié)點(diǎn)的形式添加到知識圖譜中。
對已構(gòu)建好的知識圖譜提取不同用戶-物品對的多條路徑信息,將路徑信息進(jìn)行編碼,輸入到模型中訓(xùn)練出相應(yīng)的用戶和物品預(yù)測向量,對預(yù)測向量相乘從而得到每個用戶-物品的預(yù)測值,生成top-N推薦列表[21],將預(yù)測推薦列表與用戶已交互的列表進(jìn)行比對,以此來計(jì)算出模型的精確率和召回率。
2.2.1 預(yù)處理層
2.2.2 嵌入層
引入嵌入層的目的是在于將高維稀疏的特征向量轉(zhuǎn)換成低維向量,便于模型輸入。對于預(yù)處理層中涉及的各個結(jié)點(diǎn)ei,首先生成預(yù)編碼向量。針對已構(gòu)建好的路徑,提取路徑中涉及的各個結(jié)點(diǎn),將其輸入嵌入層中,進(jìn)行模型訓(xùn)練。利用嵌入層生成每個結(jié)點(diǎn)相對應(yīng)的嵌入向量en={en1,en2,en3,…,enr},r表示嵌入向量的維數(shù)。從而將每個結(jié)點(diǎn)表示成低維向量的形式。每個嵌入向量中的各個分量代表結(jié)點(diǎn)的特征,將含有結(jié)點(diǎn)特征的嵌入向量輸入隱藏層中,使路徑包含一定的語義信息。
2.2.3 Bi-LSTM層
將每個用戶-物品對的各條路徑信息,按其結(jié)點(diǎn)的先后順序依次輸入到雙向循環(huán)神經(jīng)網(wǎng)絡(luò)當(dāng)中,考慮到前端結(jié)點(diǎn)與末尾結(jié)點(diǎn)距離較遠(yuǎn),本文采用Bi-LSTM模型,可以充分融合前端結(jié)點(diǎn)的特征信息,從而保證特征提取的完整性。其中雙向循環(huán)神經(jīng)網(wǎng)絡(luò)Bi-LSTM如圖4所示。
圖4 雙向循環(huán)神經(jīng)網(wǎng)絡(luò)Bi-LSTM模型圖
it=σ(Wi[ht-1,xt]+bi)
(1)
ft=σ(Wf[ht-1,xt]+bf)
(2)
(3)
(4)
ot=σ(Wo[ht-1,xt]+bo)
(5)
ht=ot×tanh(ct)
(6)
其中,Wi、Wf、Wc、Wo分別為輸入門權(quán)重、遺忘門權(quán)重、細(xì)胞狀態(tài)權(quán)重和輸出門權(quán)重。bi、bf、bc、bo分別為輸入門偏置、遺忘門偏置、細(xì)胞狀態(tài)偏置和輸出門偏置。xt為當(dāng)前時刻網(wǎng)絡(luò)的輸入值,ht-1,ct為上一時刻LSTM網(wǎng)絡(luò)的輸出值和細(xì)胞狀態(tài)值。σ代表sigmoid函數(shù),tanh為雙曲正切激活函數(shù)。通過梯度下降法進(jìn)行迭代,更新模型參數(shù)。將嵌入層已編碼的向量輸入到Bi-LSTM當(dāng)中進(jìn)行訓(xùn)練。
2.2.4 注意力層
對于神經(jīng)網(wǎng)絡(luò)已訓(xùn)練出的向量,引入一層注意力機(jī)制,目的是為了根據(jù)路徑中不同結(jié)點(diǎn)的重要性程度進(jìn)行向量融合,注意力層公式定義如下:
am=softmax(ot×ht)
(7)
Am[ij]=am·ot
(8)
其中,ot為Bi-LSTM層的輸出向量,ht為Bi-LSTM層的隱藏向量,am為某用戶-物品對的第m條路徑的注意力向量,將求得的注意力向量與Bi-LSTM層輸出向量相乘,得到某用戶-物品對的第m條路徑的注意力層向量Am[ij]。利用注意力層將路徑中出現(xiàn)的每個結(jié)點(diǎn)信息按其重要性程度充分融合,保證路徑中結(jié)點(diǎn)信息的完整性。
2.2.5 預(yù)測層
預(yù)測層包含池化層和全連接層2個部分。
首先將輸出的注意力層向量輸入到平均池化層,用于區(qū)分某用戶-物品對不同路徑的重要程度,使模型對不同語義賦予不同的重要性權(quán)值。其具體公式如下:
h[ij]=avg(Am[ij])
(9)
其中,m表示用戶-項(xiàng)目對第m條路徑,Am[ij]為每個(Ui,Vj)數(shù)對的第m條路徑注意力層向量。h[ij]為經(jīng)過平均池化層后,各路徑表示的平均值。
然后,在平均池化層后加入一層全連接層,對向量進(jìn)行降維,其公式如下:
Oij=f(h[ij])=σ(Wf·h[ij]+bf)
(10)
其中,f(h[ij])為以h[ij]作為自變量的全連接層函數(shù),Wf為全連接層系數(shù),bf為全連接層偏置,其值根據(jù)模型訓(xùn)練結(jié)果動態(tài)調(diào)整。σ為sigmoid激活函數(shù),Oij為最終的預(yù)測向量。
最后將經(jīng)過平均池化層后的向量與全連接層系數(shù)相乘,加上全連接層偏置,最終得到預(yù)測向量。
本文利用BCELoss()交叉熵?fù)p失函數(shù)對模型進(jìn)行訓(xùn)練[22]。交叉熵?fù)p失函數(shù)具體公式如下:
(11)
其中,i代表某個用戶i,N代表用戶總數(shù)。Oij表示(Ui,Vj)對的最終預(yù)測向量,tij表示(Ui,Vj)對的目標(biāo)向量,若(Ui,Vj)數(shù)對存在于正向路徑信息文件中,則tij為1,否則,tij為0。log()為對數(shù)函數(shù)。loss(o,t)為以oij作為輸入向量,tij作為目標(biāo)向量的損失函數(shù)值。
本文算法流程如算法1所示。
算法1 KG-BiLSTM算法
輸入:用戶-物品交互矩陣R、物品屬性信息、用戶、物品和物品屬性的預(yù)編碼向量。
輸出:根據(jù)預(yù)測值生成用戶U對物品V的top-N推薦列表。
1)構(gòu)建知識圖譜KG。將用戶-物品交互矩陣R和物品屬性信息中涉及的物品及其屬性以結(jié)點(diǎn)的形式添加到有向圖中并用邊對結(jié)點(diǎn)相連。
2)提取知識圖譜KG中不同用戶-物品對的路徑信息。
3)將已提取到的路徑信息輸入到嵌入層中,利用embedding生成嵌入向量。
4)將各路徑中涉及的結(jié)點(diǎn)嵌入向量輸入到Bi-LSTM層中,利用式(1)~式(6)計(jì)算出各結(jié)點(diǎn)的Bi-LSTM層隱藏向量。
5)將每條路徑上的各結(jié)點(diǎn)隱藏向量,輸入到注意力層中,用于融合較遠(yuǎn)結(jié)點(diǎn)的屬性信息,利用式(7)~式(8)計(jì)算得出整條路徑的注意力層向量。
6)整合各條路徑的注意力層向量,將該向量輸入到平均池化層中,利用式(9)對不同路徑的重要性程度進(jìn)行區(qū)分,根據(jù)重要性權(quán)值對多條路徑向量進(jìn)行融合。
7)將生成的平均池化層向量輸入到全連接層中,用于對向量進(jìn)行降維,利用式(10)計(jì)算得出用戶-物品對的最終預(yù)測向量。
8)利用式(11)計(jì)算出模型的損失函數(shù)值。
9)利用SGD優(yōu)化器對參數(shù)進(jìn)行梯度更新,通過不斷訓(xùn)練,更新模型參數(shù)值,以達(dá)到使損失函數(shù)最小化的目的。
3.1.1 實(shí)驗(yàn)數(shù)據(jù)集
本文選用MovieLens-1M和Yelp作為實(shí)驗(yàn)數(shù)據(jù)集。MovieLens-1M數(shù)據(jù)集是目前推薦算法研究領(lǐng)域應(yīng)用最為廣泛的數(shù)據(jù)集。它是由MovieLens用戶提供的電影評分信息組成,其中包含了756684條匿名的評分?jǐn)?shù)據(jù),共涉及6040個用戶以及3382個電影。Yelp數(shù)據(jù)集中包含了不同的地理位置信息,適用于對位置進(jìn)行推薦,其中包含了229178條評分?jǐn)?shù)據(jù),涉及37940個用戶和11516個物品。數(shù)據(jù)集具體信息如表1所示。
表1 數(shù)據(jù)集詳細(xì)信息
3.1.2 評價指標(biāo)
本文對上述2個數(shù)據(jù)集分別通過計(jì)算模型精確率和召回率來對模型性能進(jìn)行評價。利用推薦算法對物品進(jìn)行評分預(yù)測,將評分由高到低進(jìn)行排序,得出某個用戶的Top-N推薦列表[23]。精確率是針對預(yù)測結(jié)果而言,被預(yù)測為正樣本占真正正樣本的比重。召回率是針對原樣本而言,被預(yù)測為正樣本占總測試樣本的比重[24]。其公式如下:
(12)
(13)
其中,R(u)表示根據(jù)用戶u在訓(xùn)練集上的偏好行為得出的推薦列表,T(u)表示用戶u在測試集上的推薦列表。
另外本文還采用了MRR(Mean Reciprocal Rank)指標(biāo)來對該推薦算法性能進(jìn)行評估。MRR是指被預(yù)測為正樣本的結(jié)果值在預(yù)測結(jié)果中的排名。其公式如下:
(14)
其中,|Q|是用戶總數(shù),ranki是用戶i在推薦列表中第一個被推薦物品在用物品列表中的位置。
本節(jié)將針對上述提到的算法進(jìn)行對比實(shí)驗(yàn)。實(shí)驗(yàn)包括每個用戶-物品對路徑條數(shù)的選取,每個用戶-物品對路徑長度的選取,以及本文算法與目前較為先進(jìn)算法的實(shí)驗(yàn)對比。本文將輸入向量維度設(shè)置為10,隱藏層向量維度設(shè)置為16,輸出向量維度設(shè)置為1,學(xué)習(xí)率learning_rate設(shè)置為0.2,模型迭代次數(shù)設(shè)置為10。并且利用SGD優(yōu)化器來對模型進(jìn)行優(yōu)化。
3.2.1 路徑條數(shù)選取
本文路徑條數(shù)在{5,10,20}中選取。Top-N推薦中,N的值設(shè)置為{5,10},其中召回率Recall和MRR均為N=10時的實(shí)驗(yàn)結(jié)果。本文實(shí)驗(yàn)結(jié)果如表2所示。
表2 選取不同路徑條數(shù)的實(shí)驗(yàn)結(jié)果
由表2實(shí)驗(yàn)結(jié)果可以看出,Yelp數(shù)據(jù)集的預(yù)測精確率、召回率和MRR均比MovieLens-1M數(shù)據(jù)集低,這是由于Yelp相比MovieLens-1M數(shù)據(jù)集更稀疏,因此其預(yù)測精確率更低。除此之外,隨著路徑條數(shù)的增多,在2個數(shù)據(jù)集上的預(yù)測精確率也在隨之增高,這是由于多條路徑信息的引入豐富了實(shí)體的語義信息,對于某一用戶而言,可更加全面地學(xué)習(xí)到多條路徑的特征。但當(dāng)路徑條數(shù)為15時,引入過多的路徑條數(shù),會使無關(guān)路徑信息增加,影響預(yù)測的精確率。從本文實(shí)驗(yàn)結(jié)果中可觀察到,當(dāng)路徑條數(shù)為10時,2個數(shù)據(jù)集的精確率和召回率到達(dá)了最優(yōu)值,因此本文選取10作為最終路徑條數(shù)。
3.2.2 路徑長度選取
本文路徑長度在{3,5,7}中進(jìn)行選取,并且N的值同樣設(shè)置為{5,10},召回率Recall和MRR均為N=10時的實(shí)驗(yàn)結(jié)果,路徑條數(shù)設(shè)置為10。實(shí)驗(yàn)結(jié)果如表3所示。
表3 選取不同路徑長度的實(shí)驗(yàn)結(jié)果
由表3實(shí)驗(yàn)數(shù)據(jù)可以看出,隨著路徑長度的增加,在2個不同數(shù)據(jù)集上的預(yù)測精確度和召回率都有所增加。這是由于隨著路徑長度的增加,由該路徑學(xué)習(xí)得到的特征也在增加,因此可以融合多種實(shí)體特征從而增強(qiáng)預(yù)測的精確性。但當(dāng)路徑長度為7時,2個數(shù)據(jù)集的預(yù)測精確性和召回率開始下降,這是由于選取較長的路徑,會引入過多的遠(yuǎn)距離結(jié)點(diǎn)信息,導(dǎo)致引入更多的無關(guān)結(jié)點(diǎn),從而影響預(yù)測的精確率。因此,本文選取5作為最終路徑長度。
3.2.3 不同模型對比結(jié)果
本節(jié)將本文提出的KG-BiLSTM算法與目前主流推薦算法相比較,其中用于對比實(shí)驗(yàn)的推薦算法包括:
1)基于嵌入的協(xié)同知識庫推薦算法CKE。該算法在數(shù)據(jù)集層以有向圖的形式構(gòu)建知識圖譜,在嵌入層對知識圖譜利用TransR算法進(jìn)行知識嵌入,得到低維向量,協(xié)同過濾層整合圖譜、文本、圖片等各類型向量信息,結(jié)合協(xié)同過濾算法進(jìn)行推薦結(jié)果預(yù)測。
2)基于知識圖譜嵌入的推薦算法MKR。該算法主要是利用知識圖譜嵌入技術(shù),結(jié)合傳統(tǒng)的矩陣分解算法以及深度神經(jīng)網(wǎng)絡(luò),來進(jìn)行模型預(yù)測。
3)基于協(xié)同深度學(xué)習(xí)的推薦算法CDL。該算法抽取實(shí)體中的特征信息,通過計(jì)算不同物品、用戶之間的相似度來進(jìn)行物品推薦。
4)深度知識感知推薦算法DKN。該算法利用TransE對實(shí)體、單詞和上下文信息進(jìn)行編碼,生成特征向量,將卷積神經(jīng)網(wǎng)絡(luò)與注意力機(jī)制相融合進(jìn)行推薦。
5)基于用戶偏好傳播的推薦算法RippleNet。這是基于知識圖譜路徑的推薦算法,將用戶對物品的交互信息按層進(jìn)行擴(kuò)散,結(jié)合多層擴(kuò)散結(jié)果實(shí)現(xiàn)推薦結(jié)果預(yù)測。
本文針對各個算法的預(yù)測精確率、召回率和MRR指標(biāo)進(jìn)行實(shí)驗(yàn),得出在MovieLens-1M數(shù)據(jù)集上關(guān)于Precision@5和Precision@10的實(shí)驗(yàn)結(jié)果如表4所示。在Yelp數(shù)據(jù)集上關(guān)于Precision@5和Precision@10的實(shí)驗(yàn)結(jié)果如表5所示。
表4 MovieLens-1M數(shù)據(jù)集上的不同模型精確率對比結(jié)果
表5 Yelp數(shù)據(jù)集上的不同模型精確率對比結(jié)果
由多種模型對比實(shí)驗(yàn)得出,本文提出的KG-BiLSTM算法和RippleNet算法的預(yù)測精確率均比其他基于知識圖譜嵌入技術(shù)算法的精確率更高,這是因?yàn)榛谥R圖譜路徑的推薦算法,不僅局限于學(xué)習(xí)知識的嵌入向量,更重要的是引入了路徑信息的概念,將路徑信息與知識的嵌入相結(jié)合,利用模型搭建,學(xué)習(xí)到整條路徑的向量表示,由此來更好地融合多特征信息,因此預(yù)測精確率高于其他幾種算法。并且本文由于考慮到較遠(yuǎn)結(jié)點(diǎn)特征信息無法全面有效地融入到向量種的問題,因此引入了雙向循環(huán)神經(jīng)網(wǎng)絡(luò),對整條路徑的特征進(jìn)行前向和后向的雙向特征提取,除此之外,加入了一層注意力機(jī)制,更好地將前端結(jié)點(diǎn)特征融合到路徑特征向量之中,因此本文提出的算法預(yù)測精確率較RippleNet算法更高,當(dāng)N=10時,2個數(shù)據(jù)集的精確率較RippleNet分別高出3.76%和4.02%。
不同算法模型在召回率Recall和MRR指標(biāo)上的實(shí)驗(yàn)對比結(jié)果如圖5、圖6和表6所示。
圖5 MovieLens-1M數(shù)據(jù)集上不同模型的Recall對比結(jié)果
圖6 Yelp數(shù)據(jù)集上不同模型的Recall對比結(jié)果
表6 2種數(shù)據(jù)集上不同模型的MRR@10對比結(jié)果
根據(jù)圖5、圖6和表6實(shí)驗(yàn)對比結(jié)果可以看出,本文提出的KG-BiLSTM和RippleNet算法在2種數(shù)據(jù)集上的召回率Recall和MRR指標(biāo)方面,整體上高于其他4種對比算法,這是由于引入了多種路徑信息,而不僅是考慮對實(shí)體進(jìn)行嵌入向量的訓(xùn)練。除此之外,本文提出的算法在2種數(shù)據(jù)集上的召回率和MRR都優(yōu)于其他算法,這是由于本文提出的算法,將知識圖譜嵌入向量和路徑提取相結(jié)合,并考慮較遠(yuǎn)路徑結(jié)點(diǎn)的問題,從而保證實(shí)體信息的全面獲取,從而為用戶提供更加精準(zhǔn)的Top-N推薦。當(dāng)N=10時,2個數(shù)據(jù)集在召回率上較主流算法RippleNet提高了3.06%和3.09%。在MRR上提高了2.60%和2.35%。證實(shí)了本文算法的有效性。
本文由于引入了知識圖譜路徑的概念,而知識圖譜天生具有可解釋性,因此可以為用戶推薦的Top-N列表提供一定的可解釋性。由于推薦算法的可解釋性提高,可更加有效地幫助用戶理解推薦行為,從而使用戶更加信任該推薦,增加用戶接受被推薦物品的概率。因此提高推薦算法的可解釋性對于推薦質(zhì)量而言十分重要。本節(jié)以一個具體的推薦實(shí)例,來詳細(xì)闡述推薦的可解釋性。具體實(shí)例如圖7所示。
圖7 算法可解釋性分析圖
除此之外,由于用戶對其他擁有不同類型、導(dǎo)演、演員的電影同樣感興趣,因此該模型可從不同的角度來分析推斷出用戶U1的具體偏好,并生成相應(yīng)的推薦列表。并且,對于推薦列表中的每一部預(yù)測電影來說,都是由多條路徑的不同屬性融合得出的推薦結(jié)果,而不僅由單一的路徑生成。因此這意味著,對于每個預(yù)測結(jié)果來說,用戶-物品的交互信息會受到不同路徑不同屬性信息的影響,本文模型可有效對多路徑的重要性進(jìn)行區(qū)分,從而有效地提高推薦的精確率,并為推薦結(jié)果提供合理解釋。
本文選取用戶評分小于等于4的用戶-項(xiàng)目對作為冷啟動數(shù)據(jù)集,進(jìn)行實(shí)驗(yàn)分析。實(shí)驗(yàn)參數(shù)與3.2節(jié)實(shí)驗(yàn)參數(shù)設(shè)置相同,該算法與其他主流算法在2種冷啟動數(shù)據(jù)集上的算法精確率Precision、召回率Recall和MRR實(shí)驗(yàn)結(jié)果如表7和表8所示。
表7 MovieLens-1M數(shù)據(jù)集上不同模型的實(shí)驗(yàn)對比結(jié)果
表8 Yelp數(shù)據(jù)集上不同模型的實(shí)驗(yàn)對比結(jié)果
由表7和表8實(shí)驗(yàn)結(jié)果可以看出,本文提出的算法在MovieLens-1M冷啟動數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果優(yōu)于其他主流模型,而在Yelp冷啟動數(shù)據(jù)集上的Percision@10實(shí)驗(yàn)結(jié)果略低于RippleNet模型,存在的原因是由于Yelp冷啟動數(shù)據(jù)集的知識圖譜較為稀疏,無法有效地獲取到全面的知識圖譜路徑信息,因此相比主流模型精確率略低。
本文針對推薦算法中存在的可解釋性和冷啟動等問題提出了KG-BiLSTM算法,該算法將知識圖譜實(shí)體嵌入和路徑提取相結(jié)合,并充分考慮路徑中各個結(jié)點(diǎn)的特征信息,針對用戶已交互的物品,根據(jù)其各結(jié)點(diǎn)的類型,學(xué)習(xí)不同路徑的特征,并最終進(jìn)行向量融合,實(shí)現(xiàn)Top-N預(yù)測。該模型在2個真實(shí)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)分析,其結(jié)果均優(yōu)于目前主流算法。在未來,還將考慮融入用戶結(jié)點(diǎn)的屬性信息,從而進(jìn)一步提高算法的預(yù)測精確率。