劉恩博,顧春華
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
互聯(lián)網(wǎng)的快速發(fā)展產(chǎn)生了海量數(shù)據(jù)信息,導(dǎo)致人們從中選擇自己需要的信息變得非常困難。因此,推薦系統(tǒng)應(yīng)運(yùn)而生,能夠解決信息過(guò)載問(wèn)題,已被廣泛應(yīng)用于電影[1]、音樂(lè)[2]、新聞[3]、圖書(shū)[4]等領(lǐng)域。協(xié)同過(guò)濾推薦算法是應(yīng)用廣泛的一種推薦算法,通過(guò)用戶之間或物品之間的相似性,對(duì)用戶喜好的物品進(jìn)行預(yù)測(cè)與推薦。但是協(xié)同過(guò)濾推薦算法僅使用自身的歷史數(shù)據(jù),并沒(méi)有充分利用實(shí)體之間的語(yǔ)義相似度。熱門(mén)項(xiàng)目與大量項(xiàng)目相似,具有很強(qiáng)的頭部效應(yīng),能夠得到大量推薦,而冷門(mén)項(xiàng)目由于特征向量稀疏,導(dǎo)致很少被推薦。
本文主要涉及到以下幾方面的技術(shù):
知識(shí)圖譜[5]是谷歌在2012 年提出的概念,能夠擴(kuò)展用戶和項(xiàng)目信息,利用知識(shí)圖譜完善協(xié)同過(guò)濾算法,并能有效解決稀疏性和冷啟動(dòng)問(wèn)題。受Word2Vec 模型[6]利用詞向量平移不變現(xiàn)象的啟發(fā),產(chǎn)生了TransE[7]、TransH[8]、TransD[9]、TransR[10]等模型。文獻(xiàn)[11]使用知識(shí)圖譜學(xué)習(xí)實(shí)體與關(guān)系的語(yǔ)義,構(gòu)成用戶相對(duì)于候選人的偏好分布進(jìn)行推薦;文獻(xiàn)[12]對(duì)用戶與項(xiàng)目之間的路徑進(jìn)行編碼,使用注意力機(jī)制聚合編碼的路徑表示,并生成最終的隱藏狀態(tài)向量,該向量用于計(jì)算用戶與預(yù)測(cè)值的差異度,對(duì)結(jié)果進(jìn)行推薦;文獻(xiàn)[13]既考慮個(gè)體的長(zhǎng)期偏好,又考慮用戶在群組討論期間對(duì)項(xiàng)目的直接反饋,從而適當(dāng)?shù)亟Y(jié)合長(zhǎng)期偏好與會(huì)話的特定偏好;文獻(xiàn)[14]受歐拉分解的啟發(fā)提出RotatE 模型,將實(shí)體表示到復(fù)數(shù)空間,將關(guān)系表示成從頭實(shí)體到尾實(shí)體的二維旋轉(zhuǎn)變換,以學(xué)習(xí)與推理3 種關(guān)系模式;文獻(xiàn)[15]提出ConvE 模型,利用多層卷積網(wǎng)絡(luò)進(jìn)行鏈路預(yù)測(cè),把頭實(shí)體和關(guān)系轉(zhuǎn)換為二維向量,并利用卷積層和全連接層獲取交互信息,判斷當(dāng)前三元組的可信度。
協(xié)同過(guò)濾算法是誕生最早且應(yīng)用廣泛的一種推薦算法,主要功能是對(duì)用戶喜好進(jìn)行推薦與預(yù)測(cè)。文獻(xiàn)[16]將半自動(dòng)編碼器與矩陣分解模型相融合,提取用戶和物品的輔助信息特征,映射到矩陣分解模型中,以提升推薦效果;文獻(xiàn)[17]將協(xié)同過(guò)濾推薦算法應(yīng)用于新聞推薦中,提高了新聞推薦性能。但是這些方法只利用了物品—用戶評(píng)分矩陣的信息,而忽略了物品自身實(shí)際的內(nèi)在信息;文獻(xiàn)[18]結(jié)合知識(shí)圖譜實(shí)現(xiàn)一種新聞推薦模型DKN(Deep Knowledge-Aware Network),傳統(tǒng)的新聞推薦算法僅從語(yǔ)義層對(duì)新聞進(jìn)行表示學(xué)習(xí),而忽略了新聞本身包含的知識(shí)層面的信息,將新聞的語(yǔ)義表示與知識(shí)表示相融合形成新的特征表示,以此進(jìn)行用戶新聞推薦;文獻(xiàn)[19]提出Ripple Net 模型,以用戶偏好的物品作為原點(diǎn),將實(shí)體和關(guān)系語(yǔ)義表示與路徑鏈接信息相結(jié)合,將用戶興趣在知識(shí)圖譜上傳播,以達(dá)到抽取用戶特征的目的。
矩陣分解能夠通過(guò)不同的降維方法,解決推薦算法中的高稀疏性問(wèn)題,挖掘用戶偏好和隱含特征,從而提升算法的推薦性能。文獻(xiàn)[20]認(rèn)為相似的用戶對(duì)項(xiàng)目有相似的偏好,并將經(jīng)典的矩陣分解擴(kuò)展為張量分解,其具有3個(gè)維度——用戶、物品和方法,然后采用回歸不連續(xù)性設(shè)計(jì)評(píng)估不同模型的估計(jì)效果;文獻(xiàn)[21]提出一種隱藏分層矩陣分解模型,從用戶項(xiàng)目評(píng)級(jí)記錄中學(xué)習(xí)隱藏的層次結(jié)構(gòu);文獻(xiàn)[22]提出一種矩陣分解模型,通過(guò)引入聯(lián)合目標(biāo)函數(shù),在集體矩陣分解框架中共同分解用戶的評(píng)級(jí)信息和社會(huì)信任信息。然而,矩陣分解技術(shù)存在處理稀疏矩陣能力較弱、計(jì)算相似度矩陣代價(jià)大的缺點(diǎn)。本文在矩陣分解技術(shù)的基礎(chǔ)上,加入實(shí)體之間的語(yǔ)義相似度,使推薦性能得到提升。
通過(guò)以上研究,本文提出一種融合用戶偏好與語(yǔ)義相似度的推薦算法,主要貢獻(xiàn)如下:
(1)改進(jìn)了協(xié)同過(guò)濾推薦算法,通過(guò)引入知識(shí)表示TransR 模型,將實(shí)體和關(guān)系數(shù)據(jù)表示在低維密集的空間中,實(shí)體向量化后可得到實(shí)體間的語(yǔ)義相似度,彌補(bǔ)了傳統(tǒng)推薦算法只利用評(píng)分矩陣的不足,改善了推薦算法的效果。
(2)使用矩陣分解模型,挖掘用戶偏好和隱含特征,通過(guò)計(jì)算兩個(gè)低維矩陣的內(nèi)積,預(yù)測(cè)用戶評(píng)分矩陣的缺失值,并在目標(biāo)函數(shù)中加入實(shí)體的語(yǔ)義相似度,使推薦性能得到進(jìn)一步提升。
(3)在公開(kāi)數(shù)據(jù)集MovieLens 上進(jìn)行實(shí)驗(yàn),將測(cè)試結(jié)果在多維度上進(jìn)行比較,不斷調(diào)節(jié)參數(shù),使算法達(dá)到最優(yōu)預(yù)測(cè)評(píng)分,并在準(zhǔn)確率、召回率等評(píng)價(jià)指標(biāo)上與對(duì)比算法進(jìn)行比較。
知識(shí)表示學(xué)習(xí)[23]主要面向知識(shí)圖譜中的實(shí)體和關(guān)系進(jìn)行表示學(xué)習(xí),將實(shí)體間的語(yǔ)義信息表示為稠密低維實(shí)值向量。本文采用的TransR 模型認(rèn)為不同關(guān)系側(cè)重于實(shí)體的不同屬性,當(dāng)兩個(gè)實(shí)體具有相似語(yǔ)義時(shí),在實(shí)體空間中的距離則越近,但是特定的實(shí)體屬性在不同關(guān)系空間下存在差異。
假設(shè)對(duì)于每個(gè)三元組(h,r,t),將頭實(shí)體h和尾實(shí)體t通過(guò)映射矩陣Mr投影到r關(guān)系空間中,得到hr和tr。具體過(guò)程如式(1)-式(3)所示。
其中,h為頭實(shí)體,t為尾實(shí)體,r為關(guān)系空間,Mr為映射矩陣,hr和tr為向量表示,fr(h,t)為損失函數(shù)。
矩陣分解[24]是指把用戶和項(xiàng)目都映射到一個(gè)K維空間中,每個(gè)用戶對(duì)應(yīng)項(xiàng)目不同的值,代表用戶偏好。在矩陣分解過(guò)程中,把原來(lái)大矩陣近似分解為兩個(gè)小矩陣的乘積,將R分解為U和V表示。內(nèi)積U*VT能夠補(bǔ)充R的缺失值,近似于重構(gòu)矩陣R,如圖1所示。
Fig.1 Decomposition of rating matrix圖1 評(píng)分矩陣分解
將評(píng)分矩陣RMN分解為2 個(gè)K維矩陣:用戶特征矩陣UMK和項(xiàng)目特征矩陣VNK,如式(4)所示。
其中,K為自己定義的較小維度。在矩陣UMK中,M為用戶個(gè)數(shù),K為用戶特征維度,行向量表示用戶的潛在特征向量;在矩陣VNK中,N為項(xiàng)目個(gè)數(shù),K為項(xiàng)目特征維度,行向量表示項(xiàng)目的潛在特征向量。目標(biāo)函數(shù)如式(5)所示。
針對(duì)協(xié)同過(guò)濾推薦算法存在的不足,對(duì)推薦算法進(jìn)行改進(jìn),在推薦算法中加入用戶偏好和語(yǔ)義相似度,以提升改進(jìn)算法的推薦效果。本文算法包括計(jì)算實(shí)體的語(yǔ)義相似度和矩陣分解挖掘用戶偏好兩部分,算法流程如圖2所示。
Fig.2 Algorithm flow圖2 算法流程
根據(jù)以上研究,在矩陣分解模型中融入實(shí)體語(yǔ)義相似度,可得出目標(biāo)函數(shù),如式(6)所示。
其中,d是TransR 模型訓(xùn)練出來(lái)的實(shí)體向量維度,相似度函數(shù)通過(guò)式(8)進(jìn)行標(biāo)準(zhǔn)化處理并取正數(shù)。
為了使目標(biāo)函數(shù)最小化,迭代更新采用梯度下降方法使U和V收斂,公式如下:
為測(cè)試算法在數(shù)據(jù)集上的推薦效果,實(shí)驗(yàn)采用公開(kāi)數(shù)據(jù)集MovieLens[25]中的IM-1M 數(shù)據(jù),包括電影屬性、用戶信息、用戶電影評(píng)分等數(shù)據(jù)信息。其中,用戶信息有3 900條,電影數(shù)量有6 040 部,用戶評(píng)分有13 218 條。評(píng)分采用5 分制,評(píng)分越高,表明用戶喜愛(ài)程度越高。實(shí)驗(yàn)采取隨機(jī)抽樣的方法進(jìn)行訓(xùn)練與測(cè)試,使用80%的評(píng)分記錄用于訓(xùn)練,20%的評(píng)分記錄用于測(cè)試。
對(duì)改進(jìn)的算法進(jìn)行測(cè)試,調(diào)整融合比例系數(shù)λ2,觀察算法推薦效果,并選取合適的融合比例。選取近鄰個(gè)數(shù)K=10,用戶特征向量維度為100,項(xiàng)目特征向量維度為100,知識(shí)表示嵌入維度為100,λ1 為0.01,學(xué)習(xí)率為0.01,調(diào)整融合比例λ2 從10%至100%,每次增加10%,以驗(yàn)證改進(jìn)算法的推薦效果。為避免單獨(dú)一次實(shí)驗(yàn)帶來(lái)的偶然性,每次調(diào)整近鄰個(gè)數(shù)都進(jìn)行3 次實(shí)驗(yàn),最后的實(shí)驗(yàn)數(shù)據(jù)選取3次的均值。實(shí)驗(yàn)結(jié)果如圖3 所示。從圖3 可知,融合比例從10%至100%,評(píng)價(jià)指標(biāo)先升后降,在融合比例λ2 為80%時(shí),算法的推薦效果最好。通過(guò)實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),當(dāng)λ2 不等于0 時(shí),在推薦算法中融入用戶偏好和語(yǔ)義相似度,能夠提升算法推薦效果。
Fig.3 Results of precision rate,recall rate and F1 -score圖3 準(zhǔn)確率、召回率、F1值結(jié)果
為驗(yàn)證改進(jìn)算法的推薦效果,將對(duì)比算法CF 算法[26](Collaborative Filtering)、BRPMF 算 法[27](Bayesian Personalized Ranking Matrix Factorization)和改進(jìn)算法KG-MF(Knowledge Graph Matrix Factorization)在數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn)對(duì)比。在改進(jìn)的推薦算法KG-MF 中選取不同的近鄰個(gè)數(shù)K 也會(huì)影響推薦效果。參數(shù)設(shè)置如下:用戶特征向量維度為100,項(xiàng)目特征向量維度為100,知識(shí)表示嵌入維度為100,融合比例λ2 為0.8,學(xué)習(xí)率為0.01。選取初始近鄰數(shù)K 為10,步長(zhǎng)為10,并逐漸將K 增加至100,驗(yàn)證算法的推薦效果。為避免單獨(dú)一次實(shí)驗(yàn)出現(xiàn)的偶然性,每次調(diào)整近鄰個(gè)數(shù)都進(jìn)行3 次實(shí)驗(yàn),最后的實(shí)驗(yàn)數(shù)據(jù)選取3 次實(shí)驗(yàn)的均值。實(shí)驗(yàn)結(jié)果如圖4-圖6所示。
Fig.4 Accuracy under different neighbor numbers圖4 不同近鄰數(shù)下的準(zhǔn)確率
Fig.5 Recall rate under different neighbor numbers圖5 不同近鄰數(shù)下的召回率
Fig.6 F1 values of different nearest neighbors圖6 不同近鄰數(shù)下的F1值
由圖4-圖6 可推斷出,選取的近鄰個(gè)數(shù)不同,算法推薦效果也會(huì)發(fā)生變化。在推薦算法中加入用戶偏好和語(yǔ)義相似度,能夠使改進(jìn)算法的推薦效果得到提升。為驗(yàn)證改進(jìn)算法KG-MF 與BRPMF 算法、CF 算法推薦性能的差異,選取近鄰個(gè)數(shù)為100 時(shí)的實(shí)驗(yàn)結(jié)果進(jìn)行比較,如表1 所示。由表1 可知,與BRPMF 算法相比,改進(jìn)算法的準(zhǔn)確率提升了8.09%,召回率提升了7.68%,F(xiàn)1 值提升了7.88%;與CF 算法相比,改進(jìn)算法的準(zhǔn)確率提升了10.41%,召回率提升了3.4%,F(xiàn)1 值提升了9.52%。以上數(shù)據(jù)說(shuō)明,在矩陣分解模型中融入實(shí)體間的語(yǔ)義相似度,能夠提升推薦算法的推薦效果。改進(jìn)算法的推薦效果優(yōu)于對(duì)比算法,可彌補(bǔ)其它算法的不足。
Table 1 Comparison of experimental results表1 實(shí)驗(yàn)結(jié)果比較 %
針對(duì)協(xié)同過(guò)濾推薦算法存在的不足,本文提出一種融合用戶偏好與語(yǔ)義相似度的推薦算法,將實(shí)體間的語(yǔ)義相似度與矩陣分解模型相結(jié)合,在矩陣分解模型的目標(biāo)函數(shù)中加入實(shí)體的語(yǔ)義相似度,以提高協(xié)同過(guò)濾推薦算法的準(zhǔn)確率。算法既利用了實(shí)體間的語(yǔ)義信息,又使用了外在的評(píng)分矩陣,彌補(bǔ)了沒(méi)有考慮實(shí)體間潛在信息的缺點(diǎn)。研究結(jié)果表明,改進(jìn)算法優(yōu)于BRPMF 算法和CF 算法,提升了算法的推薦性能。本文算法使用電影數(shù)據(jù)集進(jìn)行推薦,但尚不清楚將其應(yīng)用于音樂(lè)、圖書(shū)等其他領(lǐng)域的效果如何。在未來(lái)的工作中,將嘗試把該算法應(yīng)用于其他領(lǐng)域,并進(jìn)一步優(yōu)化推薦性能。