許智宏,趙 杏,董永峰+,閆文杰
(1.河北工業(yè)大學(xué) 人工智能與數(shù)據(jù)科學(xué)學(xué)院,天津 300401; 2.河北工業(yè)大學(xué) 河北省大數(shù)據(jù)計(jì)算重點(diǎn)實(shí)驗(yàn)室,天津 300401)
協(xié)同過(guò)濾[1](collaborative filtering,CF)是最盛行的推薦技術(shù)之一。該技術(shù)廣泛應(yīng)用于電子商務(wù)、電影、音樂(lè)等領(lǐng)域,但也存在一些自身的缺陷。
文獻(xiàn)[2]提出了一種基于用戶行為分析的視頻推薦算法,使用用戶行為代替視頻內(nèi)容進(jìn)行推薦。文獻(xiàn)[3]提出了一種基于視頻內(nèi)容檢測(cè)的協(xié)同過(guò)濾視頻推薦算法,通過(guò)使用捕捉的動(dòng)態(tài)變化的視頻內(nèi)容進(jìn)行推薦,但單獨(dú)使用用戶行為或者視頻內(nèi)容數(shù)據(jù)進(jìn)行推薦,都會(huì)降低推薦的準(zhǔn)確性。文獻(xiàn)[4]提出了基于用戶行為與內(nèi)容綜合分析評(píng)估的視頻推薦方法研究,結(jié)合了用戶行為和視頻內(nèi)容,但未考慮語(yǔ)義信息。文獻(xiàn)[5]提出了一種基于知識(shí)圖譜表示學(xué)習(xí)的協(xié)同過(guò)濾推薦算法,結(jié)合用戶的行為信息與語(yǔ)義信息,但也未考慮實(shí)體關(guān)系之間的多路徑關(guān)系,降低了推薦的準(zhǔn)確度。
通過(guò)對(duì)已有的改進(jìn)算法的研究與分析,在物品屬性特征較穩(wěn)定的基礎(chǔ)上,引入了知識(shí)圖譜的知識(shí)推理PTransE(Path-based TransE)模型[6],提出了一種名為PTransE_CF的推薦算法。該算法不僅使用用戶電影評(píng)級(jí)數(shù)據(jù),還引入電影本身的語(yǔ)義信息,充分利用語(yǔ)義信息的顯式特征和隱式特征的互補(bǔ)性,預(yù)期提高預(yù)測(cè)效果。
在一個(gè)完整的推薦系統(tǒng)中,假設(shè)有m個(gè)用戶,有n個(gè)物品V={v1,v2,…,vn}, 將用戶-物品評(píng)分?jǐn)?shù)據(jù)構(gòu)建成常用的用戶-物品評(píng)分矩陣Rm×n, 如式(1)所示
(1)
當(dāng)某用戶僅觀看了當(dāng)前流行的幾部影片時(shí),可能這些電影之間不存在相似性關(guān)系,因此引入流行性電影權(quán)重因子降低兩者之間的相似性[10,11]。流行度因子為
(2)
其中,N(Vi) 表示喜歡電影Vi的用戶數(shù), |N(Vi)∩N(Vj)| 表示同時(shí)喜歡電影Vi和電影Vj的用戶數(shù)。
對(duì)于某一個(gè)視頻,該視頻本身的屬性信息不會(huì)隨著時(shí)間的變化而變化,因此可以根據(jù)余弦相似性算法、皮爾遜算法,修正的余弦相似性算法等線下提前計(jì)算好目標(biāo)物品與用戶已觀看過(guò)的或者已評(píng)過(guò)分的物品間的相似性,根據(jù)得到的相似性矩陣去進(jìn)行評(píng)分預(yù)測(cè)。本文采用余弦相似性算法通過(guò)夾角的余弦值計(jì)算任意兩個(gè)視頻之間的相似性,對(duì)其降低流行度的影響,最終的相似性如式(3)所示
(3)
在知識(shí)圖譜[13]中,任意兩個(gè)實(shí)體表示成(實(shí)體1,關(guān)系,實(shí)體2)的三元組形式,各個(gè)實(shí)體可以通過(guò)關(guān)系形成一個(gè)強(qiáng)大的有向的語(yǔ)義網(wǎng)絡(luò),節(jié)點(diǎn)是由實(shí)體組成的,關(guān)系構(gòu)成了邊。實(shí)體間通過(guò)各種關(guān)系相互連接,形成極大的網(wǎng)絡(luò)結(jié)構(gòu)圖。
電影領(lǐng)域中的各種屬性特征(導(dǎo)演、演員、國(guó)家、上映時(shí)間等),均可以構(gòu)成三元組,例如(毒液,導(dǎo)演,艾里克斯·庫(kù)茲曼),電影實(shí)體之間通過(guò)關(guān)系相互連接構(gòu)成了電影的知識(shí)圖譜。以movielens數(shù)據(jù)為例,則部分實(shí)體關(guān)系的知識(shí)圖譜如圖1所示。
圖1 部分電影的知識(shí)圖譜
由圖1可以看出兩個(gè)電影間的關(guān)系路徑越多,兩個(gè)電影的相似屬性也越多,電影的相似性就越大。
已知存在三元組 (h,r1,e1), 同時(shí)存在三元組 (e1,r2,t), 使用PTransE模型得到新的實(shí)體間的路徑關(guān)系示例如圖2所示。
圖2 PTransE模型
對(duì)于關(guān)系所包含的信息對(duì)兩側(cè)實(shí)體而言具有語(yǔ)義上的雙向性[14],因此本文可以將知識(shí)圖譜看成是無(wú)向圖,也就是說(shuō),如果存在三元組 (h,r,t), 則 (t,r-1,h) 也加入到三元組集合中,利用基于路徑推理的路徑排序算法PRA(path ranking algorithm)[14,15]尋找任意兩個(gè)電影實(shí)體對(duì)之間的可能路徑,例如:知識(shí)圖譜中有三元組 (h,r1,e1), 同時(shí)存在三元組 (e1,r2,t), 若此時(shí)第一個(gè)三元組的尾實(shí)體e1與第二個(gè)三元組的頭實(shí)體e1為同一實(shí)體,則獲得h到t的路徑,考慮到三元組關(guān)系路徑的可靠性,將三元組 (h,r1·r2,t) 得分不小于0.01的加入到新的三元組集合中。為了避免路徑太長(zhǎng),造成訓(xùn)練集中重復(fù)數(shù)據(jù)太多,限制隨機(jī)游走的長(zhǎng)度控制在4跳以內(nèi),由于三元組為(實(shí)體,關(guān)系,屬性)的形式,所以在建立兩個(gè)實(shí)體間的關(guān)系時(shí),只取偶數(shù)跳,并從TransE出發(fā),將所有的實(shí)體、關(guān)系以及路徑都在低維的向量空間中表示。
在知識(shí)計(jì)算語(yǔ)義相似性時(shí),主要由兩部分組成,一部分為直接相連的實(shí)體,另一部分為在有限的路徑中可以到達(dá)的,因此語(yǔ)義相似性如式(4)所示
(4)
(5)
(6)
其中,ei(n,·) 表示是ei-1直接后繼。Rp(n) 表示該路徑游走到實(shí)體n的概率。
PTransE在多路徑關(guān)系下面存在語(yǔ)義組合的問(wèn)題,嘗試了很多方法,例如加法模型,乘法模型和遞歸神經(jīng)網(wǎng)絡(luò)模型等?,F(xiàn)有實(shí)驗(yàn)結(jié)果表明了加法模型的語(yǔ)義組合效果最好。本實(shí)驗(yàn)中采用加法模型組合語(yǔ)義。例如從e0到e1的路徑為:p=r1°r2°r3°…rl, 對(duì)于關(guān)系p進(jìn)行語(yǔ)義組合的公式如式(7)所示
p=r1+r2+r3+…+rl
(7)
PTransE模型采用TransE(translating embedding)的思想,最大化正例和負(fù)分開(kāi),利用合頁(yè)損失函數(shù)實(shí)現(xiàn)
L(p,r)=∑(h,r′,t)∈Q-[γ+E(p,r)-E(p,r′)]+
(8)
PTransE_CF算法既考慮了用戶的行為信息,又考慮了電影本身的語(yǔ)義信息,相似性主要由兩部分組成,即用戶對(duì)電影的評(píng)分相似性和物品本身屬性信息的語(yǔ)義相似性。對(duì)二者采用線性融合的方式進(jìn)行組合
W(Vi,Vj)=(1-a)*simCF(Vi,Vj)+a*simPTransE(Vi,Vj)
(9)
PTransE_CF算法的流程如圖3所示。
圖3 PTransE_CF流程
實(shí)驗(yàn)選取了GroupLens研究組的MovieLens數(shù)據(jù)集,943位用戶對(duì)1682部電影產(chǎn)生10萬(wàn)條評(píng)分?jǐn)?shù)據(jù),每個(gè)用戶對(duì)電影評(píng)分不少于10部,根據(jù)評(píng)分?jǐn)?shù)據(jù)以及電影領(lǐng)域的知識(shí)圖譜,針對(duì)每部電影主要的23個(gè)特征屬性,7911個(gè)三元組信息進(jìn)行實(shí)驗(yàn)。
一般可以從多個(gè)角度來(lái)評(píng)價(jià)算法的好壞,不同的角度使用不同的評(píng)價(jià)指標(biāo),實(shí)驗(yàn)選取準(zhǔn)確率、召回率和F1值3個(gè)指標(biāo)評(píng)價(jià)推薦的效果。
例如,常用的計(jì)算評(píng)價(jià)指標(biāo)的混淆矩陣(confusion matrix)請(qǐng)參見(jiàn)表1。
表1 confusion matrix
根據(jù)表1可以得出準(zhǔn)確率P、召回率R和F1值。
準(zhǔn)確率P
(10)
召回率R
(11)
F1值
(12)
將MovieLens用戶電影評(píng)分10萬(wàn)條數(shù)據(jù)每次隨機(jī)生成80%的訓(xùn)練集數(shù)據(jù)和20%的測(cè)試集數(shù)據(jù),根據(jù)PTransE_CF算法進(jìn)行實(shí)驗(yàn),每組實(shí)驗(yàn)進(jìn)行5次,最后取平均值作為最終的結(jié)果。
5.3.1 確定融合比
實(shí)驗(yàn)通過(guò)分別取top-k的鄰居數(shù)為40、60、80、100、120,知識(shí)推理的嵌入維度為200,對(duì)參數(shù)a的值設(shè)定從0-1,以0.1的間隔遞增的方式,觀察推薦結(jié)果的準(zhǔn)確性、召回率以及F1值,發(fā)現(xiàn)用戶的行為信息對(duì)相似性的影響較大,因此適用于“黃金分割”法則,本實(shí)驗(yàn)最終選定用戶行為相似性與語(yǔ)義相似性融合比例為:0.618∶0.382,其中用戶行為相似性占較大比重。即a=0.382。
5.3.2 對(duì)比實(shí)驗(yàn)
(1)從1682部電影中任意取K部電影,比較不同數(shù)目的電影數(shù)目對(duì)F1值的影響。
從圖4可以看出隨著電影數(shù)目的增多,綜合評(píng)價(jià)指標(biāo)F1值也不斷增大,所以PTransE_CF也適用于數(shù)據(jù)量較大的情況,具有可擴(kuò)展性。
圖4 不同電影數(shù)目的F1值
(2)選取知識(shí)推理的嵌入維度為200維,近鄰數(shù)為40,60,80,100,120分別對(duì)比普通的協(xié)同過(guò)濾推薦算法、加入流行性因子的協(xié)同過(guò)濾推薦算法以及PTransE_CF算法的準(zhǔn)確率Precision、召回率Recall以及F1值。
從圖5可以看出,加入流行因子后,準(zhǔn)確率,召回率和F1值都明顯提高,取得了良好的推薦效果。添加語(yǔ)義相似度后,PTransE_CF算法的推薦效果優(yōu)于其它兩種。
(3)選取知識(shí)推理的嵌入維度為200維,近鄰數(shù)為40,60,80,100,120分別與協(xié)同過(guò)濾推薦算法中的幾種典型的算法最對(duì)比,每組實(shí)驗(yàn)進(jìn)行5次,最后取平均值。
圖5 3種情況在不同鄰居數(shù)下的準(zhǔn)確率、召回率和F1值
圖6可以得出,PTransE_CF算法在準(zhǔn)確率,召回率,F(xiàn)1值上較其它幾種協(xié)同過(guò)濾推薦算法都有一定的優(yōu)勢(shì),都有相應(yīng)的提升,實(shí)驗(yàn)結(jié)果表明了該算法的有效性,充分利用了語(yǔ)義信息顯式特征和隱式特征的互補(bǔ)性,并且結(jié)合用戶的行為信息,對(duì)已有的視頻信息得到了充分的利用,在一定程度上彌補(bǔ)了協(xié)同過(guò)濾推薦算法[16,17]的數(shù)據(jù)稀疏、冷啟動(dòng)等不足。
圖6 不同算法在不同鄰居數(shù)下的準(zhǔn)確率、召回率和F1值
本文提出了一種PtransE_CF視頻推薦算法。充分利用了知識(shí)圖譜強(qiáng)大的語(yǔ)義處理能力,通過(guò)推理技術(shù)對(duì)顯性特征進(jìn)行挖掘,發(fā)現(xiàn)隱含的特征,對(duì)已知數(shù)據(jù)進(jìn)行了充分的利用,并且將視頻的語(yǔ)義信息融入到協(xié)同過(guò)濾推薦中,因此在推薦的結(jié)果上具有一定的可解釋性。
在本文研究過(guò)程中,只考慮了單領(lǐng)域,例如:電影領(lǐng)域。在未來(lái)的研究中,我們將嘗試將該算法應(yīng)用于多領(lǐng)域研究,嘗試對(duì)電影、電視劇同時(shí)進(jìn)行分析,使得電視劇和電影之間相互進(jìn)行推薦。
計(jì)算機(jī)工程與設(shè)計(jì)2020年3期