佘學(xué)兵,蔡愛平,劉承啟
(1.江西科技學(xué)院信息工程學(xué)院,江西 南昌 330098;2.南昌大學(xué)網(wǎng)絡(luò)中心,江西 南昌 330031)
對(duì)于大多數(shù)網(wǎng)絡(luò)用戶來說,瀏覽網(wǎng)絡(luò)頁面信息時(shí),頁面信息過多且極其復(fù)雜,信息結(jié)構(gòu)較為松散等問題,導(dǎo)致獲取相關(guān)信息較為困難[1]。傳統(tǒng)的推薦算法僅考慮網(wǎng)絡(luò)用戶的短期偏好,易忽略用戶長(zhǎng)期穩(wěn)定的歷史偏好,通常情況下,過時(shí)信息容易被較新的信息所取代[2]。知識(shí)圖譜作為一種極為豐富的關(guān)聯(lián)語義網(wǎng)絡(luò),可為推薦領(lǐng)域提供潛在的輔助信息,是解決上述問題的有效途徑。因此,對(duì)知識(shí)圖譜與網(wǎng)絡(luò)用戶長(zhǎng)短期偏好相結(jié)合的推薦技術(shù)研究具有重要意義[3]。
王衛(wèi)紅[4]等人提出基于聚類和用戶偏好的協(xié)同過濾推薦算法,該算法將網(wǎng)絡(luò)用戶信息類型的平均評(píng)價(jià)分?jǐn)?shù)融合到評(píng)分矩陣中,并結(jié)合網(wǎng)絡(luò)用戶的自身屬性相似度;該算法在推薦過程中沒有對(duì)潛在的語義信息進(jìn)行挖掘與補(bǔ)充,導(dǎo)致推薦結(jié)果的平方根間誤差較高。陳昊文[5]等人提出基于概念鄰域的Top-N推薦算法,該算法把用戶全局偏好度與鄰域偏好度進(jìn)行結(jié)合實(shí)現(xiàn)對(duì)目標(biāo)用戶的推薦結(jié)果。該算法的平均絕對(duì)誤差較高。王余斌[6]等人提出基于用戶評(píng)論評(píng)分與信任度的協(xié)同過濾推薦算法,該算法利用用戶的特征差異性對(duì)評(píng)論數(shù)據(jù)進(jìn)行計(jì)算,引入用戶信任度可更準(zhǔn)確地計(jì)算用戶相似度,進(jìn)而實(shí)現(xiàn)對(duì)目標(biāo)用戶的推薦結(jié)果。該算法在推薦過程中沒有對(duì)網(wǎng)絡(luò)用戶的歷史行為進(jìn)行分析與解釋,導(dǎo)致推薦結(jié)果的召回率較低。
為解決上述算法存在的問題,提出基于知識(shí)圖譜的網(wǎng)絡(luò)用戶長(zhǎng)短期偏好推薦算法,通過建立知識(shí)圖譜,再結(jié)合項(xiàng)目嵌入與用戶長(zhǎng)短期學(xué)習(xí)來完成推薦。
如圖1所示,知識(shí)圖譜的建立主要由4個(gè)部分組成,分別為知識(shí)抽取、知識(shí)表示、知識(shí)融合、知識(shí)推理。知識(shí)圖譜的構(gòu)成首先對(duì)知識(shí)數(shù)據(jù)進(jìn)一步提取知識(shí),在數(shù)據(jù)庫中提取屬性、概念及實(shí)體間的對(duì)應(yīng)關(guān)系,產(chǎn)生對(duì)應(yīng)體系的知識(shí)表達(dá),由于知識(shí)數(shù)據(jù)范圍較廣,并且數(shù)據(jù)均以不同的形式存在,因此對(duì)知識(shí)數(shù)據(jù)進(jìn)行融合,獲取可靠的知識(shí)數(shù)據(jù),經(jīng)過嚴(yán)謹(jǐn)?shù)臄?shù)據(jù)質(zhì)量評(píng)估得到合格的知識(shí)數(shù)據(jù)存儲(chǔ)于知識(shí)庫中,構(gòu)成高質(zhì)量的知識(shí)庫,以高質(zhì)量知識(shí)庫為基礎(chǔ),對(duì)知識(shí)圖譜更深層次的知識(shí)進(jìn)行挖掘與推理[7]。
圖1 知識(shí)圖譜結(jié)構(gòu)圖
通常情況下,知識(shí)圖譜以網(wǎng)絡(luò)結(jié)構(gòu)的形式進(jìn)行表示。知識(shí)表示主要根據(jù)人腦的工作機(jī)制,把實(shí)體的語義信息映射到低維向量空間中,稱為稠密低維實(shí)值向量,若對(duì)知識(shí)進(jìn)行分布式表示,則在低維空間中可利用綜合向量對(duì)實(shí)體和關(guān)系的語義相似度進(jìn)行計(jì)算,有效解決了數(shù)據(jù)稀疏等問題。
知識(shí)表示的主要應(yīng)用分為語義相似度計(jì)算和鏈路預(yù)測(cè)。語義相似度計(jì)算在知識(shí)表示中,通過稠密低維的向量來表示實(shí)體的語義信息,實(shí)體間的語義相似度可利用計(jì)算相似度的公式進(jìn)行計(jì)算。鏈路預(yù)測(cè)在知識(shí)表示中,對(duì)于知識(shí)圖譜隨機(jī)給出的實(shí)體,鏈路預(yù)測(cè)可將實(shí)體間的對(duì)應(yīng)關(guān)系進(jìn)行預(yù)測(cè),并對(duì)實(shí)體間對(duì)應(yīng)關(guān)系的正確性進(jìn)行分析,鏈路預(yù)測(cè)使知識(shí)圖譜中的實(shí)體與關(guān)系更加全面化[9]。
知識(shí)庫中的數(shù)據(jù)均從不同類型的數(shù)據(jù)庫進(jìn)行抽取,使取得的數(shù)據(jù)與已存在的實(shí)體或概念的語義信息產(chǎn)生不同的語義關(guān)系。因此,對(duì)于此語義關(guān)系描述不夠準(zhǔn)確,需經(jīng)過知識(shí)融合,使得實(shí)體間數(shù)據(jù)去除矛盾信息,將原始的低質(zhì)量數(shù)據(jù)庫進(jìn)行整合,達(dá)到相同標(biāo)準(zhǔn)的實(shí)體或概念的語義描述關(guān)系以及構(gòu)成可靠的高層次知識(shí)組織,以此為后續(xù)的知識(shí)推理做好鋪墊[10]。
知識(shí)融合的主要步驟為數(shù)據(jù)預(yù)處理、實(shí)體對(duì)齊、屬性值決策以及關(guān)系建立。數(shù)據(jù)預(yù)處理主要是對(duì)錯(cuò)誤數(shù)據(jù)、重復(fù)數(shù)據(jù)以及信息量少的數(shù)據(jù)進(jìn)行處理;實(shí)體對(duì)齊主要是對(duì)于不同的數(shù)據(jù)描述關(guān)系進(jìn)行整合;屬性值決策主要是在實(shí)體屬性發(fā)生沖突時(shí),根據(jù)相關(guān)數(shù)據(jù)置信度提供準(zhǔn)確的屬性值;關(guān)系建立是知識(shí)融合的重要步驟,首先對(duì)實(shí)體進(jìn)行挖掘,獲取相同的實(shí)體或者關(guān)聯(lián)性較強(qiáng)的實(shí)體,利用實(shí)體記錄鏈接對(duì)實(shí)體進(jìn)行計(jì)算與分析,根據(jù)實(shí)體的所屬特征對(duì)其它實(shí)體進(jìn)行驗(yàn)證并建立相關(guān)關(guān)系。
基于知識(shí)圖譜的網(wǎng)絡(luò)用戶長(zhǎng)短期偏好推薦算法首先獲取模型的知識(shí)表示形式與計(jì)算結(jié)果,構(gòu)建知識(shí)圖譜,然后通過項(xiàng)目嵌入和判別性偏好學(xué)習(xí)來完成推薦[11]。
模型的知識(shí)表示形式與計(jì)算步驟如下:
1)距離模型(SE):結(jié)構(gòu)化的表示方法首先將三元組中實(shí)體用分布式向量進(jìn)行表示,然后把初始實(shí)體向量與終端實(shí)體向量均映射到與關(guān)系向量同一維度的空間中,分別表示為Ny,1、Ny,2,通過對(duì)投影向量間的距離進(jìn)行計(jì)算,根據(jù)計(jì)算結(jié)果來判斷實(shí)體間在關(guān)系下的語義相似度,向量間的距離越小,越能證明實(shí)體間存在關(guān)系。對(duì)于結(jié)構(gòu)化的表示方法對(duì)應(yīng)的損失函數(shù)定義為fy(h,t),其計(jì)算公式如下
fy(h,t)=|Ny,1kh-Ny,2kt|
(1)
由于此模型對(duì)初始實(shí)體和終端實(shí)體進(jìn)行映射操作的關(guān)系向量不同,導(dǎo)致實(shí)體與關(guān)系的語義聯(lián)系不夠準(zhǔn)確、協(xié)同性較差。
2)單層神經(jīng)網(wǎng)絡(luò)模型(SLM):該模型以距離模型為基礎(chǔ),通過非線性操作對(duì)距離模型進(jìn)行優(yōu)化,消除距離模型協(xié)同性差、準(zhǔn)確度低等問題,但SLM模型的計(jì)算過程較為復(fù)雜,其具體計(jì)算公式如下
(2)
3)雙線性模型:該模型對(duì)實(shí)體存在的對(duì)應(yīng)關(guān)系進(jìn)行雙線性變換,對(duì)實(shí)體間存在關(guān)系的語義相似性進(jìn)行描述,該模型的計(jì)算過程較為簡(jiǎn)單,并且可有效提高實(shí)體與關(guān)系的語義協(xié)同性,其具體計(jì)算公式如下
(3)
式中,關(guān)系y雙線性變換矩陣表示為Ny∈Rd×d。
4)神經(jīng)張量模型(NTN):該模型主要是把不同維度的初始實(shí)體向量與終端實(shí)體向量通過雙線性張量進(jìn)行連接,使實(shí)體間的語義聯(lián)系更加準(zhǔn)確,其計(jì)算公式如下
(4)
5)矩陣分解模型:該模型通過矩陣分解對(duì)實(shí)體的低維向量進(jìn)行表示,分解公式如下
(5)
式中,對(duì)張量M進(jìn)行分解,即分解結(jié)果為Mhyt。
6)翻譯模型(TransE):該模型是在向量空間平移不變的情況下進(jìn)行翻譯,對(duì)初始實(shí)體向量至終端實(shí)體向量的翻譯定義為關(guān)系y。在關(guān)系y中,三元組(h,y,t)的關(guān)系向量表示為ky,初始實(shí)體向量表示為kh,終端實(shí)體向量表示為kt,通過關(guān)系向量ky把實(shí)體向量kh、kt進(jìn)行連接,即kh+ky≈kt。kh+ky與K1或K2的距離定義為損失函數(shù),取得結(jié)果越小則距離越小,即
fy(h,t)=|kh+ky+kt|K1K2
(6)
該模型的知識(shí)表示形式與計(jì)算過程較為簡(jiǎn)單,實(shí)用性較強(qiáng)。基于此,抽取知識(shí)圖譜序列,并得到序列集合。項(xiàng)目嵌入的原理是構(gòu)建隨機(jī)游走序列,然后提取用戶實(shí)體序列,通過Node2vec算法對(duì)抽取的實(shí)體間的同質(zhì)性與同構(gòu)性進(jìn)行遍歷,其隨機(jī)游走的幾率計(jì)算公式為
(7)
式中,已進(jìn)行歸一化處理的數(shù)據(jù)表示為z,未進(jìn)行歸一化處理的幾率為κvx,關(guān)系式κvx=αqp(t,x)·wvx是針對(duì)于常見的隨機(jī)游走序列進(jìn)行表示,其具體表示為κvx與實(shí)體權(quán)重間的關(guān)系。式中的系數(shù)αqp(t,x)計(jì)算公式如下
(8)
式中,上一節(jié)點(diǎn)表示為t,對(duì)下一步隨機(jī)游走的節(jié)點(diǎn)進(jìn)行預(yù)計(jì),其游走節(jié)點(diǎn)目標(biāo)表示為x,對(duì)隨機(jī)游走節(jié)點(diǎn)的深度游走與廣度游走進(jìn)行控制,其控制值分別表示為q和p,t與x間的最短距離表示為dtx。
把知識(shí)圖譜抽取到的序列與現(xiàn)有的用戶序列進(jìn)行結(jié)合,得到項(xiàng)目的嵌入向量。知識(shí)圖譜序列針對(duì)項(xiàng)目序列易忽略項(xiàng)目?jī)?nèi)容信息等問題,可以進(jìn)行彌補(bǔ)與整合。首先對(duì)知識(shí)圖譜進(jìn)行抽取序列,得到序列集合,表示為Ik={H1,H2,…,Hn},現(xiàn)有的用戶交互序列集合表示為I={S1,S2,…,Sn},隨機(jī)游走序列表示為Hi={x1,x2,…,xn}。其獲取最大化目標(biāo)函數(shù)定義為
(9)
式中,K是序列Si和Hi的長(zhǎng)度,xi表示序列中的項(xiàng)目。
在上述分析基礎(chǔ)上可知,在歷史交互序列和知識(shí)圖譜中獲取捕捉項(xiàng)目的相似性,同時(shí)形成項(xiàng)目空間,獲取對(duì)應(yīng)的嵌入式交互序列
Qu={v1,v2,…,vT}
(10)
其中,vj表示項(xiàng)目xj的d維潛在向量。
在得到項(xiàng)目嵌入后,利用兩個(gè)相互獨(dú)立的循環(huán)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)用戶偏好,確保推薦目標(biāo)用戶能夠在下次訪問中大概率的訪問項(xiàng)目。其中用戶的決策過程主要受到以下兩方面因素的影響,分別為:
1)短期偏好
主要是指用戶在短期內(nèi)的動(dòng)態(tài),同時(shí)最近的波動(dòng)針對(duì)短期特征反應(yīng)具有十分重要的作用。
2)長(zhǎng)期偏好
主要是指長(zhǎng)期偏好行為學(xué)習(xí)中描述用戶穩(wěn)定的歷史偏好。
將長(zhǎng)期偏好和短期偏好神經(jīng)網(wǎng)絡(luò)對(duì)應(yīng)的層次進(jìn)行連接,形成下一個(gè)項(xiàng)目。同時(shí),結(jié)合項(xiàng)目嵌入,完成網(wǎng)絡(luò)用戶長(zhǎng)短期偏好推薦[12]。
為驗(yàn)證基于知識(shí)圖譜的網(wǎng)絡(luò)用戶長(zhǎng)短期偏好推薦算法的可行性與有效性,需對(duì)基于知識(shí)圖譜的網(wǎng)絡(luò)用戶長(zhǎng)短期偏好推薦算法進(jìn)行測(cè)試與分析。本次實(shí)驗(yàn)的硬件環(huán)境為window10系統(tǒng),Intel core i7CPU 16G內(nèi)存,軟件環(huán)境為Python3.6。本次實(shí)驗(yàn)采用所提的基于知識(shí)圖譜的網(wǎng)絡(luò)用戶長(zhǎng)短期偏好推薦算法(算法1)、文獻(xiàn)[4]提出的基于聚類和用戶偏好的協(xié)同過濾推薦算法(算法2)、文獻(xiàn)[5]提出的基于概念鄰域的Top-N推薦算法(算法3)進(jìn)行測(cè)試,將推薦結(jié)果的均方根誤差、平均絕對(duì)誤差和召回率作為測(cè)試指標(biāo)進(jìn)行相關(guān)測(cè)試,具體測(cè)試結(jié)果如下。
1)不同算法的均方根誤差指標(biāo)對(duì)比
利用圖2對(duì)比3種算法的均方根誤差。
圖2 均方根誤差
分析圖2可知,所提算法的均方根誤差低于算法2與算法3,證明所提算法的推薦準(zhǔn)確率更高,由于所提算法在對(duì)網(wǎng)絡(luò)用戶進(jìn)行推薦時(shí),首先通過知識(shí)圖譜對(duì)潛在的語義信息進(jìn)行輔助與補(bǔ)充,可深層次對(duì)用戶及項(xiàng)目的相關(guān)信息進(jìn)行挖掘,增加數(shù)據(jù)信息的稠密度,并且提高了推薦算法的準(zhǔn)確性。
2)不同算法的平均絕對(duì)誤差指標(biāo)對(duì)比
利用圖3對(duì)比3種算法的平均絕對(duì)誤差。
圖3 平均絕對(duì)誤差
由圖3可知,算法2與算法3的平均絕對(duì)誤差均高于所提算法,證明所提算法的推薦準(zhǔn)確性更高,因?yàn)樗崴惴ㄔ趯?duì)網(wǎng)絡(luò)用戶進(jìn)行推薦時(shí),首先通過知識(shí)圖譜對(duì)潛在的語義信息進(jìn)行提供相關(guān)的信息鏈接,并根據(jù)不同語義間的相互關(guān)系進(jìn)行發(fā)散挖掘,有效地避免了推薦結(jié)果的單一性或重復(fù)性,從而提高了推薦算法的準(zhǔn)確性。
3)不同算法的召回率指標(biāo)對(duì)比
利用圖4對(duì)比3種算法的召回率。
圖4 召回率
根據(jù)圖4所得實(shí)驗(yàn)數(shù)據(jù)可知,所提算法的召回率高于算法2與算法3,證明所提算法的推薦準(zhǔn)確性更高,因?yàn)樗崴惴ㄔ趯?duì)網(wǎng)絡(luò)用戶進(jìn)行推薦時(shí),首先通過知識(shí)圖譜對(duì)網(wǎng)絡(luò)用戶的歷史行為進(jìn)行分析,根據(jù)分析結(jié)果實(shí)現(xiàn)推薦,知識(shí)圖譜可將兩者進(jìn)行連接,對(duì)相關(guān)推薦結(jié)果進(jìn)行解釋,給出相應(yīng)依據(jù),進(jìn)而提高用戶對(duì)推薦結(jié)果的認(rèn)可與接受程度,增強(qiáng)了推薦算法的準(zhǔn)確性。
本文針對(duì)目前推薦算法推薦結(jié)果不理想、不準(zhǔn)確、不能夠得到網(wǎng)絡(luò)用戶的接收與認(rèn)可,對(duì)此問題提出了基于知識(shí)圖譜的網(wǎng)絡(luò)用戶長(zhǎng)短期偏好推薦算法,建立知識(shí)圖譜,對(duì)網(wǎng)絡(luò)用戶信息的潛在語義進(jìn)行輔助與補(bǔ)充及深層次的信息挖掘,并對(duì)網(wǎng)絡(luò)用戶信息的潛在語義進(jìn)行連接,對(duì)網(wǎng)絡(luò)用戶的歷史行為以及推薦結(jié)果作出解釋,提供相關(guān)依據(jù),結(jié)合項(xiàng)目嵌入與網(wǎng)絡(luò)用戶長(zhǎng)短期學(xué)習(xí)來完成推薦。并設(shè)計(jì)了多項(xiàng)對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,該算法有效地解決了當(dāng)前算法中存在的問題,提高用戶對(duì)推薦結(jié)果的認(rèn)可與接受程度,并提高了推薦準(zhǔn)確度。