佘學(xué)兵,蔡愛平,劉承啟
(1.江西科技學(xué)院信息工程學(xué)院,江西 南昌 330098;2.南昌大學(xué)網(wǎng)絡(luò)中心,江西 南昌 330031)
對于大多數(shù)網(wǎng)絡(luò)用戶來說,瀏覽網(wǎng)絡(luò)頁面信息時,頁面信息過多且極其復(fù)雜,信息結(jié)構(gòu)較為松散等問題,導(dǎo)致獲取相關(guān)信息較為困難[1]。傳統(tǒng)的推薦算法僅考慮網(wǎng)絡(luò)用戶的短期偏好,易忽略用戶長期穩(wěn)定的歷史偏好,通常情況下,過時信息容易被較新的信息所取代[2]。知識圖譜作為一種極為豐富的關(guān)聯(lián)語義網(wǎng)絡(luò),可為推薦領(lǐng)域提供潛在的輔助信息,是解決上述問題的有效途徑。因此,對知識圖譜與網(wǎng)絡(luò)用戶長短期偏好相結(jié)合的推薦技術(shù)研究具有重要意義[3]。
王衛(wèi)紅[4]等人提出基于聚類和用戶偏好的協(xié)同過濾推薦算法,該算法將網(wǎng)絡(luò)用戶信息類型的平均評價分?jǐn)?shù)融合到評分矩陣中,并結(jié)合網(wǎng)絡(luò)用戶的自身屬性相似度;該算法在推薦過程中沒有對潛在的語義信息進行挖掘與補充,導(dǎo)致推薦結(jié)果的平方根間誤差較高。陳昊文[5]等人提出基于概念鄰域的Top-N推薦算法,該算法把用戶全局偏好度與鄰域偏好度進行結(jié)合實現(xiàn)對目標(biāo)用戶的推薦結(jié)果。該算法的平均絕對誤差較高。王余斌[6]等人提出基于用戶評論評分與信任度的協(xié)同過濾推薦算法,該算法利用用戶的特征差異性對評論數(shù)據(jù)進行計算,引入用戶信任度可更準(zhǔn)確地計算用戶相似度,進而實現(xiàn)對目標(biāo)用戶的推薦結(jié)果。該算法在推薦過程中沒有對網(wǎng)絡(luò)用戶的歷史行為進行分析與解釋,導(dǎo)致推薦結(jié)果的召回率較低。
為解決上述算法存在的問題,提出基于知識圖譜的網(wǎng)絡(luò)用戶長短期偏好推薦算法,通過建立知識圖譜,再結(jié)合項目嵌入與用戶長短期學(xué)習(xí)來完成推薦。
如圖1所示,知識圖譜的建立主要由4個部分組成,分別為知識抽取、知識表示、知識融合、知識推理。知識圖譜的構(gòu)成首先對知識數(shù)據(jù)進一步提取知識,在數(shù)據(jù)庫中提取屬性、概念及實體間的對應(yīng)關(guān)系,產(chǎn)生對應(yīng)體系的知識表達,由于知識數(shù)據(jù)范圍較廣,并且數(shù)據(jù)均以不同的形式存在,因此對知識數(shù)據(jù)進行融合,獲取可靠的知識數(shù)據(jù),經(jīng)過嚴(yán)謹(jǐn)?shù)臄?shù)據(jù)質(zhì)量評估得到合格的知識數(shù)據(jù)存儲于知識庫中,構(gòu)成高質(zhì)量的知識庫,以高質(zhì)量知識庫為基礎(chǔ),對知識圖譜更深層次的知識進行挖掘與推理[7]。

圖1 知識圖譜結(jié)構(gòu)圖
通常情況下,知識圖譜以網(wǎng)絡(luò)結(jié)構(gòu)的形式進行表示。知識表示主要根據(jù)人腦的工作機制,把實體的語義信息映射到低維向量空間中,稱為稠密低維實值向量,若對知識進行分布式表示,則在低維空間中可利用綜合向量對實體和關(guān)系的語義相似度進行計算,有效解決了數(shù)據(jù)稀疏等問題。
知識表示的主要應(yīng)用分為語義相似度計算和鏈路預(yù)測。語義相似度計算在知識表示中,通過稠密低維的向量來表示實體的語義信息,實體間的語義相似度可利用計算相似度的公式進行計算。鏈路預(yù)測在知識表示中,對于知識圖譜隨機給出的實體,鏈路預(yù)測可將實體間的對應(yīng)關(guān)系進行預(yù)測,并對實體間對應(yīng)關(guān)系的正確性進行分析,鏈路預(yù)測使知識圖譜中的實體與關(guān)系更加全面化[9]。
知識庫中的數(shù)據(jù)均從不同類型的數(shù)據(jù)庫進行抽取,使取得的數(shù)據(jù)與已存在的實體或概念的語義信息產(chǎn)生不同的語義關(guān)系。因此,對于此語義關(guān)系描述不夠準(zhǔn)確,需經(jīng)過知識融合,使得實體間數(shù)據(jù)去除矛盾信息,將原始的低質(zhì)量數(shù)據(jù)庫進行整合,達到相同標(biāo)準(zhǔn)的實體或概念的語義描述關(guān)系以及構(gòu)成可靠的高層次知識組織,以此為后續(xù)的知識推理做好鋪墊[10]。
知識融合的主要步驟為數(shù)據(jù)預(yù)處理、實體對齊、屬性值決策以及關(guān)系建立。數(shù)據(jù)預(yù)處理主要是對錯誤數(shù)據(jù)、重復(fù)數(shù)據(jù)以及信息量少的數(shù)據(jù)進行處理;實體對齊主要是對于不同的數(shù)據(jù)描述關(guān)系進行整合;屬性值決策主要是在實體屬性發(fā)生沖突時,根據(jù)相關(guān)數(shù)據(jù)置信度提供準(zhǔn)確的屬性值;關(guān)系建立是知識融合的重要步驟,首先對實體進行挖掘,獲取相同的實體或者關(guān)聯(lián)性較強的實體,利用實體記錄鏈接對實體進行計算與分析,根據(jù)實體的所屬特征對其它實體進行驗證并建立相關(guān)關(guān)系。
基于知識圖譜的網(wǎng)絡(luò)用戶長短期偏好推薦算法首先獲取模型的知識表示形式與計算結(jié)果,構(gòu)建知識圖譜,然后通過項目嵌入和判別性偏好學(xué)習(xí)來完成推薦[11]。
模型的知識表示形式與計算步驟如下:
1)距離模型(SE):結(jié)構(gòu)化的表示方法首先將三元組中實體用分布式向量進行表示,然后把初始實體向量與終端實體向量均映射到與關(guān)系向量同一維度的空間中,分別表示為Ny,1、Ny,2,通過對投影向量間的距離進行計算,根據(jù)計算結(jié)果來判斷實體間在關(guān)系下的語義相似度,向量間的距離越小,越能證明實體間存在關(guān)系。對于結(jié)構(gòu)化的表示方法對應(yīng)的損失函數(shù)定義為fy(h,t),其計算公式如下
fy(h,t)=|Ny,1kh-Ny,2kt|
(1)
由于此模型對初始實體和終端實體進行映射操作的關(guān)系向量不同,導(dǎo)致實體與關(guān)系的語義聯(lián)系不夠準(zhǔn)確、協(xié)同性較差。
2)單層神經(jīng)網(wǎng)絡(luò)模型(SLM):該模型以距離模型為基礎(chǔ),通過非線性操作對距離模型進行優(yōu)化,消除距離模型協(xié)同性差、準(zhǔn)確度低等問題,但SLM模型的計算過程較為復(fù)雜,其具體計算公式如下
(2)

3)雙線性模型:該模型對實體存在的對應(yīng)關(guān)系進行雙線性變換,對實體間存在關(guān)系的語義相似性進行描述,該模型的計算過程較為簡單,并且可有效提高實體與關(guān)系的語義協(xié)同性,其具體計算公式如下
(3)
式中,關(guān)系y雙線性變換矩陣表示為Ny∈Rd×d。
4)神經(jīng)張量模型(NTN):該模型主要是把不同維度的初始實體向量與終端實體向量通過雙線性張量進行連接,使實體間的語義聯(lián)系更加準(zhǔn)確,其計算公式如下

(4)

5)矩陣分解模型:該模型通過矩陣分解對實體的低維向量進行表示,分解公式如下
(5)
式中,對張量M進行分解,即分解結(jié)果為Mhyt。
6)翻譯模型(TransE):該模型是在向量空間平移不變的情況下進行翻譯,對初始實體向量至終端實體向量的翻譯定義為關(guān)系y。在關(guān)系y中,三元組(h,y,t)的關(guān)系向量表示為ky,初始實體向量表示為kh,終端實體向量表示為kt,通過關(guān)系向量ky把實體向量kh、kt進行連接,即kh+ky≈kt。kh+ky與K1或K2的距離定義為損失函數(shù),取得結(jié)果越小則距離越小,即
fy(h,t)=|kh+ky+kt|K1K2
(6)
該模型的知識表示形式與計算過程較為簡單,實用性較強。基于此,抽取知識圖譜序列,并得到序列集合。項目嵌入的原理是構(gòu)建隨機游走序列,然后提取用戶實體序列,通過Node2vec算法對抽取的實體間的同質(zhì)性與同構(gòu)性進行遍歷,其隨機游走的幾率計算公式為
(7)
式中,已進行歸一化處理的數(shù)據(jù)表示為z,未進行歸一化處理的幾率為κvx,關(guān)系式κvx=αqp(t,x)·wvx是針對于常見的隨機游走序列進行表示,其具體表示為κvx與實體權(quán)重間的關(guān)系。式中的系數(shù)αqp(t,x)計算公式如下
(8)
式中,上一節(jié)點表示為t,對下一步隨機游走的節(jié)點進行預(yù)計,其游走節(jié)點目標(biāo)表示為x,對隨機游走節(jié)點的深度游走與廣度游走進行控制,其控制值分別表示為q和p,t與x間的最短距離表示為dtx。
把知識圖譜抽取到的序列與現(xiàn)有的用戶序列進行結(jié)合,得到項目的嵌入向量。知識圖譜序列針對項目序列易忽略項目內(nèi)容信息等問題,可以進行彌補與整合。首先對知識圖譜進行抽取序列,得到序列集合,表示為Ik={H1,H2,…,Hn},現(xiàn)有的用戶交互序列集合表示為I={S1,S2,…,Sn},隨機游走序列表示為Hi={x1,x2,…,xn}。其獲取最大化目標(biāo)函數(shù)定義為
(9)
式中,K是序列Si和Hi的長度,xi表示序列中的項目。
在上述分析基礎(chǔ)上可知,在歷史交互序列和知識圖譜中獲取捕捉項目的相似性,同時形成項目空間,獲取對應(yīng)的嵌入式交互序列
Qu={v1,v2,…,vT}
(10)
其中,vj表示項目xj的d維潛在向量。
在得到項目嵌入后,利用兩個相互獨立的循環(huán)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)用戶偏好,確保推薦目標(biāo)用戶能夠在下次訪問中大概率的訪問項目。其中用戶的決策過程主要受到以下兩方面因素的影響,分別為:
1)短期偏好
主要是指用戶在短期內(nèi)的動態(tài),同時最近的波動針對短期特征反應(yīng)具有十分重要的作用。
2)長期偏好
主要是指長期偏好行為學(xué)習(xí)中描述用戶穩(wěn)定的歷史偏好。
將長期偏好和短期偏好神經(jīng)網(wǎng)絡(luò)對應(yīng)的層次進行連接,形成下一個項目。同時,結(jié)合項目嵌入,完成網(wǎng)絡(luò)用戶長短期偏好推薦[12]。
為驗證基于知識圖譜的網(wǎng)絡(luò)用戶長短期偏好推薦算法的可行性與有效性,需對基于知識圖譜的網(wǎng)絡(luò)用戶長短期偏好推薦算法進行測試與分析。本次實驗的硬件環(huán)境為window10系統(tǒng),Intel core i7CPU 16G內(nèi)存,軟件環(huán)境為Python3.6。本次實驗采用所提的基于知識圖譜的網(wǎng)絡(luò)用戶長短期偏好推薦算法(算法1)、文獻[4]提出的基于聚類和用戶偏好的協(xié)同過濾推薦算法(算法2)、文獻[5]提出的基于概念鄰域的Top-N推薦算法(算法3)進行測試,將推薦結(jié)果的均方根誤差、平均絕對誤差和召回率作為測試指標(biāo)進行相關(guān)測試,具體測試結(jié)果如下。
1)不同算法的均方根誤差指標(biāo)對比
利用圖2對比3種算法的均方根誤差。

圖2 均方根誤差
分析圖2可知,所提算法的均方根誤差低于算法2與算法3,證明所提算法的推薦準(zhǔn)確率更高,由于所提算法在對網(wǎng)絡(luò)用戶進行推薦時,首先通過知識圖譜對潛在的語義信息進行輔助與補充,可深層次對用戶及項目的相關(guān)信息進行挖掘,增加數(shù)據(jù)信息的稠密度,并且提高了推薦算法的準(zhǔn)確性。
2)不同算法的平均絕對誤差指標(biāo)對比
利用圖3對比3種算法的平均絕對誤差。

圖3 平均絕對誤差
由圖3可知,算法2與算法3的平均絕對誤差均高于所提算法,證明所提算法的推薦準(zhǔn)確性更高,因為所提算法在對網(wǎng)絡(luò)用戶進行推薦時,首先通過知識圖譜對潛在的語義信息進行提供相關(guān)的信息鏈接,并根據(jù)不同語義間的相互關(guān)系進行發(fā)散挖掘,有效地避免了推薦結(jié)果的單一性或重復(fù)性,從而提高了推薦算法的準(zhǔn)確性。
3)不同算法的召回率指標(biāo)對比
利用圖4對比3種算法的召回率。

圖4 召回率
根據(jù)圖4所得實驗數(shù)據(jù)可知,所提算法的召回率高于算法2與算法3,證明所提算法的推薦準(zhǔn)確性更高,因為所提算法在對網(wǎng)絡(luò)用戶進行推薦時,首先通過知識圖譜對網(wǎng)絡(luò)用戶的歷史行為進行分析,根據(jù)分析結(jié)果實現(xiàn)推薦,知識圖譜可將兩者進行連接,對相關(guān)推薦結(jié)果進行解釋,給出相應(yīng)依據(jù),進而提高用戶對推薦結(jié)果的認(rèn)可與接受程度,增強了推薦算法的準(zhǔn)確性。
本文針對目前推薦算法推薦結(jié)果不理想、不準(zhǔn)確、不能夠得到網(wǎng)絡(luò)用戶的接收與認(rèn)可,對此問題提出了基于知識圖譜的網(wǎng)絡(luò)用戶長短期偏好推薦算法,建立知識圖譜,對網(wǎng)絡(luò)用戶信息的潛在語義進行輔助與補充及深層次的信息挖掘,并對網(wǎng)絡(luò)用戶信息的潛在語義進行連接,對網(wǎng)絡(luò)用戶的歷史行為以及推薦結(jié)果作出解釋,提供相關(guān)依據(jù),結(jié)合項目嵌入與網(wǎng)絡(luò)用戶長短期學(xué)習(xí)來完成推薦。并設(shè)計了多項對比實驗,實驗結(jié)果表明,該算法有效地解決了當(dāng)前算法中存在的問題,提高用戶對推薦結(jié)果的認(rèn)可與接受程度,并提高了推薦準(zhǔn)確度。