佘學(xué)兵 李 祥 明幫銘
(1.東華理工大學(xué)信息工程學(xué)院 南昌 330013)(2.東華理工大學(xué)軟件學(xué)院 南昌 330013)
如何在浩瀚的信息量中尋找所需的信息變得越來越困難,推薦系統(tǒng)的出現(xiàn)幫助了用戶快速、有效地獲取所需內(nèi)容[1]。在推薦算法中引入知識(shí)圖譜數(shù)據(jù),相當(dāng)于引入了語義關(guān)聯(lián)關(guān)系、各種實(shí)體之間的關(guān)系,一方面使得推薦能夠從語義的角度上挖掘用戶興趣點(diǎn),另一方面也使推薦結(jié)果更加發(fā)散,避免了推薦結(jié)果的單一[2]?,F(xiàn)有的基于知識(shí)圖譜的推薦系統(tǒng)使用知識(shí)圖譜的方法主要有三種:基于內(nèi)容、協(xié)同過濾、混合式[3]。圖表示學(xué)習(xí)即圖嵌入,是通過機(jī)器學(xué)習(xí)的方法將圖中的實(shí)體與關(guān)系所包含的結(jié)構(gòu)信息和語義信息表示為低維空間中的實(shí)值稠密向量,使得得到的向量形式可以在向量空間中具有表示以及推理的能力[4]。通過對(duì)圖的拓?fù)浣Y(jié)構(gòu)信息以及語義相關(guān)信息進(jìn)行抽象整合,能實(shí)現(xiàn)圖特征的抽取與表達(dá),學(xué)習(xí)到的向量具有復(fù)雜度低、計(jì)算效率高、可擴(kuò)展性強(qiáng)的優(yōu)勢,于是能推廣到圖的各種應(yīng)用中,如實(shí)體聚類、關(guān)系推理和個(gè)性化推薦等[5]。
基于圖結(jié)構(gòu)信息的學(xué)習(xí)方法與基于三元組的方法相比,前者可以將更加豐富的語義信息進(jìn)行擬合,從而也能進(jìn)一步高效學(xué)習(xí)到圖譜中隱含的高維特征[6]。由于交易領(lǐng)域推薦問題中存在著非常多的網(wǎng)絡(luò)結(jié)構(gòu),例如用戶物品交互網(wǎng)絡(luò)和物品屬性關(guān)系網(wǎng)絡(luò),故而對(duì)圖結(jié)構(gòu)的特征進(jìn)行學(xué)習(xí),能挖掘出推薦任務(wù)相關(guān)特征,可以幫助推薦系統(tǒng)更好地學(xué)習(xí)用戶的偏好,減輕信息過載問題帶來的負(fù)面影響,增強(qiáng)用戶對(duì)推薦系統(tǒng)的滿意度[7]。其中具有代表性的,如,PER[8]方法是通過設(shè)計(jì)元路徑來提升推薦性能,它比較直觀地利用了圖譜的網(wǎng)絡(luò)結(jié)構(gòu),但需要人工設(shè)計(jì)元路徑,元路徑的優(yōu)劣影響到推薦的精度。CKE[9]方法是將知識(shí)圖譜作為輔助信息融入到推薦算法中,與傳統(tǒng)方法比較提升了推薦的精度。但是,采用依次學(xué)習(xí)只把知識(shí)圖譜作為多一維特征處理。KGCN[10]方法是基于知識(shí)圖譜的圖神經(jīng)網(wǎng)絡(luò)推薦算法,由于融合了圖結(jié)構(gòu),所以在推薦性能上有了進(jìn)一步提升。在這個(gè)算法中把物品的特征向量設(shè)定為與其直連的物品的特征向量之和,并且在相加之前使用了注意力機(jī)制。這個(gè)算法仍然有改進(jìn)的地方,因?yàn)樗雎粤宋锲分g的長依賴關(guān)系。
在推薦系統(tǒng)中,一般用U={u1,u2…um}表示用戶集合,I={i1,i2…in}表示物品集合[11],用戶-物品交互矩陣記為yu,i∈Rm×n。當(dāng)yu,i=1 表示用戶u 和物品i有交互(這個(gè)交互可以是顯式信息反饋或者隱式反饋信息)[12]。在知識(shí)圖譜中G=(E,R)表示物品關(guān)系網(wǎng)絡(luò),由于包含物品的屬性信息,從而構(gòu)成了復(fù)雜的物品關(guān)系網(wǎng)絡(luò)。用戶與物品的交互也具有網(wǎng)絡(luò)圖特征,通過對(duì)圖的挖掘可以發(fā)現(xiàn)用戶的偏好或者用戶之間的相似性。因此,可以構(gòu)建出圖1 中用戶-物品交互圖(圖a)、用戶-用戶圖(圖b)、物品-物品圖(圖c)。
圖1 三類關(guān)系網(wǎng)絡(luò)圖
將用戶的交互數(shù)據(jù)、物品的屬性標(biāo)簽以三元組的形式提取出來,然后整合為圖結(jié)構(gòu),步驟如下:
1)用戶-物品圖:定義為G1={(u,yu,i,i)|u∈U,i∈I}。
U 為用戶集,I 為物品集,當(dāng)用戶i與物品j存反饋信息,則yu,i=1;否則yu,i=0。
2)物品關(guān)系圖:含物品及其屬性或標(biāo)簽類型,定義為圖G2={(h,r,t)|r∈R,h,t∈E}。
E為實(shí)體集合,R為關(guān)系集合,一個(gè)三元組代表了頭實(shí)體和尾實(shí)體的之間的關(guān)系。為了描述物品與實(shí)體之間的關(guān)系,定義H={(i,e)|i∈I,e∈E},其中I代表物品集或群,E 代表實(shí)體集。物品和實(shí)體之間通過關(guān)系鏈接,其被表述為一個(gè)三元組。如,物品書籍《推薦系統(tǒng)與深度學(xué)習(xí)》、實(shí)體作者黃昕,兩者是寫作關(guān)系。有了這個(gè)關(guān)系H 就可以把1)和2)整合到一張圖,即有:
根據(jù)式(1)可以構(gòu)建出實(shí)體之間復(fù)雜的關(guān)系網(wǎng)絡(luò),物品與物品、用戶與用戶的長依賴關(guān)系就能從知識(shí)圖譜中直觀地展示出來,節(jié)點(diǎn)屬性聚合節(jié)點(diǎn)間的長依賴關(guān)系就形成了高維特征(用戶與用戶之間的高階關(guān)系、物品與物品之間的高階關(guān)系),這種高維特征應(yīng)用到推薦任務(wù)中就能提升推薦的性能。
對(duì)圖進(jìn)行聚類挖掘,就能找到偏好相似的用戶,形成偏好相同的用戶族群,即用戶-用戶圖;對(duì)物品關(guān)系圖進(jìn)行聚類操作也能找到相似屬性的物品族群。于是,就可以利用用戶-用戶圖,在同一族群中為沒購買物品i 的用戶u 推薦i;類比,利用物品關(guān)系圖,可以為用戶u 推薦購買過的物品i 所屬物品族群中的物品j。
為了獲取用戶特征建立用戶族群、獲取物品特征建立物品族群,采用圖團(tuán)體(graph community)算法;然后,通過循環(huán)神經(jīng)網(wǎng)絡(luò)按時(shí)序獲取推薦序列,把這種方法稱為GC-RNN算法,模型如圖2所示。
圖2 GC-RNN模型
圖團(tuán)體算法[13]常用在網(wǎng)絡(luò)中找出聯(lián)系比較緊密的樣本。例如,在用戶-用戶圖中頂點(diǎn)表示用戶,連接頂點(diǎn)的邊則表示用戶之間具有關(guān)系(在無向圖中用邊表示有關(guān)系、無邊則表示無關(guān)系),按照關(guān)系的緊密程度可劃分成若干集合(也稱為用戶族群)。為方便計(jì)算,一般把圖轉(zhuǎn)成鄰接矩陣的形式。圖1中用戶-用戶圖的鄰接矩陣如表1所示。
表1 用戶-用戶圖的鄰接矩陣
然后,計(jì)算模塊性值M。該算法最終能把所有用戶都分組成一個(gè)有相同偏好的族群中。
其中,L是圖中邊的數(shù)量,N表示圖中頂點(diǎn)個(gè)數(shù),ki是頂點(diǎn)i的度,Aij是鄰接矩陣中的值,ci表示頂點(diǎn)i的聚類,δ為可羅內(nèi)克函數(shù),如果頂點(diǎn)i 和j 屬于同一聚類,則δ(ci,cj)值為1,否則為0。
通過式(2)可以將知識(shí)圖譜中的具有相似特征的用戶聚合成一族,設(shè)長度為L,這對(duì)于該族內(nèi)給定實(shí)體節(jié)點(diǎn)ui,可得到相鄰節(jié)點(diǎn)序列(u1,u2…uL)。為了學(xué)習(xí)到節(jié)點(diǎn)的特征向量,引入特征向量函數(shù)g:u∈E→R|E|×de,從而把每個(gè)實(shí)體映射為一個(gè)de維向量。對(duì)于給定的三元組(h,r,t),在同一族群中融合了相鄰節(jié)點(diǎn)信息的頭尾實(shí)體可用hg=g(h)、tg=g(t)表示,則用戶實(shí)體對(duì)的向量分別為
同理,可以得到物品實(shí)體對(duì)的向量為
在RNN 中,可將(Hu,r,Tu)看作三元短句,以此作為輸入序列送進(jìn)LSTM 中,利用LSTM 能對(duì)序列進(jìn)行學(xué)習(xí)可以對(duì)圖中的語義和邏輯特性進(jìn)行建模[14]。LSTM 每一個(gè)時(shí)間段讀取一個(gè)實(shí)體對(duì)應(yīng)的embedding 向量,并將前兩步輸出H,u、r,輸入到感知機(jī)網(wǎng)絡(luò)。為了保留更多的H 和r 的信息,必須進(jìn)行向量的組合拼接,如式(5)所示,為組合算子:
在傳統(tǒng)的推薦系統(tǒng)中都是假設(shè)用戶和物品的屬性是靜態(tài)的[15],但事實(shí)上,兩者是隨著時(shí)間的推移會(huì)發(fā)生變化。比如,用戶的興趣隨著時(shí)間的推移發(fā)生改變或某些物品的受歡迎程度會(huì)由外部事件有所改變。所以,采用兩個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)分別對(duì)用戶和物品的時(shí)序性建模。用戶和物品的靜態(tài)屬于ui和aj可由矩陣分解得到。用戶的關(guān)聯(lián)特征依賴于當(dāng)前時(shí)刻對(duì)物品的評(píng)分yi,t-1和前一時(shí)刻用戶的狀態(tài),物品的關(guān)聯(lián)特征依賴于當(dāng)前時(shí)刻用戶對(duì)物品的評(píng)分yj,t-1以及前一時(shí)刻物品的狀態(tài)。uit和ajt分別表示用戶i、物品j在第t時(shí)刻的特征,那么用戶i在第t時(shí)刻對(duì)物品i的評(píng)分可寫成:
通過仿射變換可寫成:
其中,uit和ajt表示用戶i、物品j在第t時(shí)刻的關(guān)聯(lián)特征,通過長短時(shí)記憶網(wǎng)絡(luò)建模:
其中,yit和yjt分別代表用戶i 和物品j 在第t 時(shí)刻的輸入,可寫成:
其中,Snew-usr=1 和Snew-itm=1 分別代表關(guān)聯(lián)用戶和關(guān)聯(lián)物品,Wc為用戶的參數(shù)投影矩陣,xit∈Rv表示用戶i 在第t 時(shí)刻對(duì)物品的評(píng)分,V 是物品數(shù)量;xjt∈RU表示在第t時(shí)刻所有用戶對(duì)物品j的評(píng)分,U 是用戶數(shù)量。模型參數(shù)通過優(yōu)化下面的目標(biāo)函數(shù)求出:
結(jié)合式(5)和式(9),將組合向量Z 輸入到MLP中進(jìn)行解碼:
其中,w1 和w2 是權(quán)重矩陣、b1 和b2 是偏置向量。同理,可以得到物品的組合向量。是對(duì)特征向量進(jìn)行數(shù)據(jù)降維。為了使得組合后的向量保持最優(yōu),采用該函數(shù)進(jìn)行特征向量的映射變換,通過求得特征向量余弦的平均值,將變換誤差控制在一個(gè)合理的范圍內(nèi),以降低目標(biāo)函數(shù)的重構(gòu)誤差。模型最終的結(jié)果是為用戶生成一個(gè)最近時(shí)期的包含N 個(gè)物品的推薦列表,針對(duì)這個(gè)列表進(jìn)行評(píng)估分析。
使用TensorFlow 作為計(jì)算框架,硬件為CentOS臺(tái)式服務(wù)器。實(shí)驗(yàn)采用的是亞馬遜電商推薦系統(tǒng)數(shù)據(jù)集,將數(shù)據(jù)劃分為訓(xùn)練集、測試集以及驗(yàn)證集,并將比例調(diào)整為8∶1∶1,采用分層采樣的方式分割數(shù)據(jù)集,在驗(yàn)證集中使用K折交叉驗(yàn)證[16]。由于數(shù)據(jù)集數(shù)據(jù)量大、種類較多,故LSTMCell的num_units設(shè)置為64,即LSTM 輸出的是64 維向量;max_time決定了RNN 中時(shí)間序列的長度,通過實(shí)驗(yàn)比較,max_time=5 可確保設(shè)定的長度足以區(qū)別不同類別數(shù)據(jù)。采用召回率、準(zhǔn)確率兩個(gè)常用評(píng)價(jià)指標(biāo),為探究不同推薦列表長度下模型的變化,N 的取值在[5,30]做等差變化,選擇SVD[17]、PER、KGCN、CKE進(jìn)行對(duì)比。
其中,AUC=(M、N 分別為正負(fù)樣本數(shù))。
對(duì)表2的觀察有以下發(fā)現(xiàn):
表2 數(shù)據(jù)集上不同模型AUC和ROC對(duì)比結(jié)果
1)作為經(jīng)典的協(xié)同過濾算法SVD 在數(shù)據(jù)集上的表現(xiàn)最差,說明利用知識(shí)圖譜所提供的輔助信息能有效地提升推薦算法的性能。
2)PER 和CKE 是表現(xiàn)較差的模型,這也正好說明了元路徑的設(shè)計(jì)好壞決定了是否能有效地使用圖譜中的有效信息。CKE 中使用的TransR 算法,在一定程度上說明不太適用與知識(shí)圖譜相結(jié)合。
3)KGCN 和本文的GC-RNN 表現(xiàn)較優(yōu)異,是因?yàn)槎际褂弥R(shí)圖譜作為輔助手段,充分利用了它的關(guān)聯(lián)特征,這也說明把知識(shí)圖譜引入到推薦系統(tǒng)是提升推薦的性能的一種比較好的方法。
然后,使用精確度、召回率兩個(gè)指標(biāo)衡量模型生成的TOP-N列表進(jìn)行評(píng)估。
通過觀察圖3、4可知,CKE由于利用圖譜提取到物品的一般特征信息、沒能挖掘出內(nèi)在的關(guān)聯(lián)性,結(jié)果僅優(yōu)于SVD;PER 模型使用人工定義的元路徑,實(shí)驗(yàn)結(jié)果的優(yōu)劣受元路徑質(zhì)量的影響,該模型的性能居中等;KGCN 模型使用圖卷積網(wǎng)絡(luò)建模知識(shí)圖譜,取得了優(yōu)等的結(jié)果,也再一次說明了借助知識(shí)圖譜中的圖結(jié)構(gòu)信息能提升推薦的質(zhì)量;本文提出的GC-RNN 模型在性能上能優(yōu)于KGCN 是因?yàn)椋菏紫?,通過建立用戶關(guān)系圖、物品關(guān)系圖,深刻描述了高維的關(guān)聯(lián)特征和長依賴關(guān)系即加強(qiáng)了用戶特征、物品特征信息的提取。其次,模型加入了時(shí)序特征,考慮到了用戶最近一段時(shí)間內(nèi)的行為特征,獲取了用戶、物品的更深層次的關(guān)聯(lián)信息。
圖3 所有模型在數(shù)據(jù)集上精確度隨N值的變化
圖4 所有模型在數(shù)據(jù)集上召回率隨N值的變化
本文提出的GC-RNN方法能獲取用戶、物品的高維關(guān)聯(lián)特征,通過建模并實(shí)驗(yàn),實(shí)現(xiàn)了用戶的精準(zhǔn)推薦,最大限度地滿足用戶的需求。通過在大量真實(shí)交易數(shù)據(jù)集上的測試,驗(yàn)證了本文方法的有效性。未來將使用不同的數(shù)據(jù)集驗(yàn)證模型的有效性,以及改進(jìn)方法進(jìn)一步提升推薦的精確度。