朱小兵 丁明玉 肖 玉
(賽輪集團(tuán)股份有限公司信息中心 山東 青島 266400)
信息爆炸時代,用戶每天接收的信息量遠(yuǎn)遠(yuǎn)超過了自身所能消費(fèi)的信息量,造成信息過載現(xiàn)象[1-2]。標(biāo)簽推薦系統(tǒng)允許用戶為不同內(nèi)容進(jìn)行簽注,用戶可以用標(biāo)簽組織和搜索信息[3-4]。如今,社交媒體網(wǎng)站日益流行,標(biāo)簽推薦成為一個活躍且不斷發(fā)展的研究課題[5]。
標(biāo)簽可以用來表征用戶的偏好信息和物品的內(nèi)容信息,用戶可以根據(jù)個人的偏好,向網(wǎng)絡(luò)上的物品資源添加各種標(biāo)簽描述信息。目前而言,業(yè)界常用的標(biāo)簽推薦算法主要包含了以下三個大類:基于協(xié)同過濾的標(biāo)簽推薦算法、基于圖的標(biāo)簽推薦算法、基于內(nèi)容的標(biāo)簽推薦算法。
基于協(xié)同過濾的標(biāo)簽推薦算法將用戶、物品與標(biāo)簽的三元關(guān)系簡化到更低的維數(shù)空間。Jaschke等[6]考慮到了不同的標(biāo)簽具有不同的流行度,提出了一種基于流行度的標(biāo)簽推薦算法。Rendle等[7]提出了一種基于張量(Tensor)的標(biāo)簽推薦算法,該算法稱為成對交互張量分解模型PITF(two-two interaction tensor factorization)。PITF標(biāo)簽推薦算法可以很好地完成對用戶、物品和標(biāo)簽三者之間的建模,因而取得了較好的實(shí)驗(yàn)結(jié)果。
基于圖的方法的基本思想是基于用戶的標(biāo)記行為,以用戶、物品和標(biāo)記為頂點(diǎn)構(gòu)造圖,并構(gòu)建邊[8],該類算法不需要考慮物品的內(nèi)容信息和標(biāo)簽語義信息。Jaschke等[9]提出了一種基于圖的標(biāo)簽推薦算法,該算法可以有效地獲取用戶、物品、標(biāo)簽三者之間的內(nèi)在聯(lián)系,稱之為FolkRank算法。Riaz等[10]考慮了標(biāo)簽的時間效應(yīng),作者認(rèn)為較新的標(biāo)簽應(yīng)該被賦予更大的權(quán)重,進(jìn)而提出了TimeFolkRank標(biāo)簽推薦算法。
基于內(nèi)容的標(biāo)簽推薦算法考慮更多是物品資源的內(nèi)容信息。Feng等[11]提出了一個優(yōu)化框架,通過最大化標(biāo)簽推薦曲線下的平均面積來學(xué)習(xí)最優(yōu)特征權(quán)值。Wu等[12]提出一種生成模型,該模型是基于標(biāo)簽的分布狀況進(jìn)行構(gòu)建的,以此實(shí)現(xiàn)標(biāo)簽推薦,精度有較高的提升。
但是上述所有的標(biāo)簽推薦算法為每個用戶給出的標(biāo)簽推薦列表均為固定數(shù)量,導(dǎo)致推薦效果不好、用戶的滿意度不高。為提高標(biāo)簽推薦的準(zhǔn)確性,本文采用了另一個方向,思考如何更好地求取最優(yōu)的標(biāo)簽推薦列表長度,從而提高標(biāo)簽推薦算法的準(zhǔn)確度。
針對標(biāo)簽推薦列表長度固定的問題,主要從以下兩個方面進(jìn)行優(yōu)化:(1) 首先將大于Top-1標(biāo)簽分?jǐn)?shù)的1/2的標(biāo)簽加入候選推薦列表,通過定義成對標(biāo)簽置信度指標(biāo),計(jì)算候選列表中的標(biāo)簽與Top-1標(biāo)簽的相關(guān)性,按照相關(guān)性的大小順序,完成對標(biāo)簽推薦列表的重排序;(2) 對于重排序以后得到的標(biāo)簽推薦列表,通過計(jì)算每個子列表的相關(guān)性系數(shù),相關(guān)性系數(shù)最高的子列表即為最佳推薦列表長度。
為評估方法有效性,選擇四個標(biāo)簽算法作為對比實(shí)驗(yàn),分別是:基于流行度的標(biāo)簽推薦算法Pop[6]、Rendle和Schmidt-Thieme的成對相互作用張量分解模型(PITF)[7]、著名的基于三部圖的標(biāo)簽推薦算法FolkRank[9]、考慮時間效應(yīng)影響的TimeFolkRank標(biāo)簽推薦算法[10]。在兩個真實(shí)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)驗(yàn)證,證明方法的有效性。
一個標(biāo)簽推薦系統(tǒng)由用戶集U、標(biāo)簽集T、物品集I組成[13],三者之間的內(nèi)在關(guān)系可以表示為S∈U×I×T,其中,(u,i,t)∈S代表用戶u給物品i打了標(biāo)簽t,對于用戶u給物品i打標(biāo)簽t的興趣通常由分?jǐn)?shù)score(t|u,i)來估計(jì)。標(biāo)簽推薦的目的是計(jì)算待推薦的用戶物品(u,i)的前N個得分最高的標(biāo)簽。
PITF標(biāo)簽推薦算法基于矩陣分解模型[14],矩陣分解模型被認(rèn)為是性能最好的模型之一。PITF標(biāo)簽推薦算法從用戶、物品、標(biāo)簽三元組中計(jì)算成對的排序約束[15],可捕獲用戶和標(biāo)簽之間以及物品和標(biāo)簽之間的交互行為。其模型公式為:
FolkRank是基于PageRank[9]的思想設(shè)計(jì)的基于圖的標(biāo)簽推薦算法。FolkRank認(rèn)為當(dāng)一個重要用戶使用標(biāo)簽或者標(biāo)記重要的物品時,標(biāo)簽也應(yīng)變得相對重要,對于用戶或物品而言也采用相同原則。因此,F(xiàn)olkRank標(biāo)簽推薦算法將用戶-物品-標(biāo)簽之間的關(guān)系表示為一個三部圖,三部圖可表示為一個鄰接矩陣A:
式中:MUT代表用戶標(biāo)簽矩陣;MUI代表用戶物品矩陣;MIT代表物品標(biāo)簽矩陣;對角線為0矩陣。定義排序向量(列向量)ω:
FolkRank標(biāo)簽推薦算法增加了個性化偏好向量。對于給定的目標(biāo)用戶和給定的目標(biāo)物品,F(xiàn)olkRank標(biāo)簽推薦算法的排序向量計(jì)算公式如下:
f=w1-w0
(5)
式中:w1是個性化的排序向量,通過非均勻向量p得到,維度為|U|+|I|+|T|,對于待推薦的用戶物品(u,i),在非均勻向量對應(yīng)的元素有更大的權(quán)重,通常設(shè)置為1+|U|、1+|I|,此外,非均勻向量的其他元素均為1;w0是一個全局排序向量,通過均勻向量p得到,向量元素均為1;f是FolkRank推薦算法最終排序向量。
假設(shè)一個標(biāo)簽t對于用戶u或物品i而言是非常流行的(即經(jīng)常使用的),那么當(dāng)用戶u給物品i打標(biāo)簽時,標(biāo)簽t則具有強(qiáng)相關(guān)性。Pop模型在對標(biāo)簽的受歡迎程度進(jìn)行歸一化以及加權(quán)后,得到如下計(jì)算公式:
參數(shù)ρ調(diào)整基于用戶的標(biāo)簽流行度以及基于物品的標(biāo)簽流行度的權(quán)重。當(dāng)ρ=1時,僅考慮物品的熱門標(biāo)簽,將其設(shè)置為0時,僅考慮用戶的熱門標(biāo)簽,默認(rèn)情況下,將ρ固定為0.5,認(rèn)為兩者同樣重要。Pop算法的優(yōu)點(diǎn)是可以快速計(jì)算,同時給出較好預(yù)測結(jié)果。
TimeFolkRank是由傳統(tǒng)的FolkRank算法驅(qū)動的。TimeFolkRank感興趣的是標(biāo)簽在一段時間內(nèi)的重要性,幾個月前出現(xiàn)的標(biāo)簽顯然比幾年前出現(xiàn)的更重要。通過對每個標(biāo)簽進(jìn)行加權(quán)來優(yōu)化FolkRank算法。利用式(7)計(jì)算時間加權(quán)FolkRank值。
TimeFolkRank=wi×FolkRank
(7)
式中:wi是每個標(biāo)簽基于時間的權(quán)重。取決于標(biāo)簽t的標(biāo)記日期,標(biāo)簽出現(xiàn)得越早,時間權(quán)重則越小。選擇指數(shù)方式衰減權(quán)重[16]。
W1=DR(y-ti)/12
(8)
式中:y是當(dāng)前時間;ti是標(biāo)簽t的標(biāo)記時間;(y-ti)是以年為單位的時間間隔;DR是一個參數(shù),參數(shù)值為0.5。
標(biāo)簽推薦算法的推薦列表長度常為固定值,這將導(dǎo)致推薦精度下降,用戶體驗(yàn)感很差。為解決該問題,提出一種優(yōu)化Top-N標(biāo)簽推薦列表的算法,從如下兩個方面展開介紹:
(1) 詳細(xì)介紹Top-N標(biāo)簽推薦列表的重排序算法,算法思想是首先將大于Top-1標(biāo)簽分?jǐn)?shù)的1/2的標(biāo)簽加入候選推薦列表,通過定義成對標(biāo)簽置信度指標(biāo),計(jì)算候選列表中的標(biāo)簽與Top-1標(biāo)簽的相關(guān)性,按照相關(guān)性由小到大進(jìn)行排序,完成推薦列表的重排序。
(2) 介紹最佳Top-N推薦列表長度求取算法,算法思想是對重排序后的標(biāo)簽推薦列表,通過計(jì)算每個子列表的相關(guān)性系數(shù),相關(guān)性系數(shù)最高的子列表即為最佳推薦列表長度。
本節(jié)介紹改進(jìn)標(biāo)簽推薦Top-N列表的算法模型(Top-N list reordering algorithm,LRA),該算法旨在對Top-N列表進(jìn)行重排序。此外,因其是對標(biāo)簽推薦Top-N列表進(jìn)行的優(yōu)化,所以LRA模型可以在許多標(biāo)簽推薦算法中使用,是一個較通用的算法模型。
LRA模型思想:對于待推薦的用戶物品對(u,i),在將Top-N標(biāo)簽列表推薦給用戶之前,LRA對其進(jìn)行改進(jìn)。LRA需要個數(shù)大于N的候選標(biāo)簽,然后對其重新進(jìn)行排序,保留相關(guān)性更高前N個標(biāo)簽作為最終的Top-N標(biāo)簽推薦列表。
2.1.1算法相關(guān)定義
定義1對于給定待推薦的用戶u和物品i,用戶對標(biāo)簽的興趣指數(shù)通常通過分?jǐn)?shù)score(t|u,i)來估計(jì)。因此,標(biāo)簽推薦算法的目的是推薦給用戶物品對(u,i)前N個得分最高的標(biāo)簽:
定義2標(biāo)簽的用戶列表U(t)代表的是使用過標(biāo)簽t的一組用戶集合,標(biāo)簽的商品列表I(t)代表的是由標(biāo)簽t標(biāo)注的一組商品集合。
定義3為衡量標(biāo)簽t與標(biāo)簽t′的相關(guān)性度量,定義成對置信度度量PCM(t→t′),用來表示兩個標(biāo)簽之間的相關(guān)性。成對置信度度量PCM在一定程度上決定了用戶在使用標(biāo)簽t的基礎(chǔ)上使用標(biāo)簽t′的興趣。成對置信度度量PCM同時考慮了用戶與物品:
成對置信度度量PCM從兩個維度(用戶和物品)挖掘標(biāo)簽之間的關(guān)聯(lián)規(guī)則,能同時考慮標(biāo)簽在用戶和物品上的共現(xiàn)頻率。
2.1.2LRA建模
對于標(biāo)簽推薦算法來說,LRA可以作為附加算法使用,首先需要對Top-N標(biāo)簽推薦列表進(jìn)行擴(kuò)展,然后再對擴(kuò)展以后的標(biāo)簽推薦列表進(jìn)行重排序,并返回最終的Top-N標(biāo)簽推薦列表。
按照Top-1標(biāo)簽獲得的分?jǐn)?shù)為基準(zhǔn)進(jìn)行Top-N標(biāo)簽推薦列表的擴(kuò)展,將分?jǐn)?shù)大于Top-1標(biāo)簽獲得分?jǐn)?shù)的二分之一的標(biāo)簽均加入到候選標(biāo)簽推薦列表中,一個簡單的例子可以更好地理解標(biāo)簽列表的擴(kuò)展過程。
假設(shè),待推薦的目標(biāo)用戶為u,目標(biāo)物品為i,通過標(biāo)簽推薦算法輸出的Top-5推薦結(jié)果如表1所示。
表1 Top-5推薦結(jié)果
擴(kuò)展后的標(biāo)簽列表如表2所示。只要是分?jǐn)?shù)大于Top-1分?jǐn)?shù)(0.9)的一半(0.45)即可。
表2 擴(kuò)展后的推薦結(jié)果
由5個擴(kuò)展為6個,該算法就是從6個中重新排序選擇5個作為最終標(biāo)簽推薦列表。
用D表示給定的標(biāo)簽推薦列表,D是按照分?jǐn)?shù)降序排列的,最高得分標(biāo)簽是D[1]。相比D中的其他標(biāo)簽更關(guān)注D[1]標(biāo)簽,因?yàn)樗菢?biāo)簽推薦算法給出的最好的標(biāo)簽選擇。LRA對其進(jìn)行了修正,并計(jì)算所有候選標(biāo)簽與D[1]相比較的成對置信度,最后根據(jù)新的分?jǐn)?shù)計(jì)算公式對D中的所有標(biāo)簽進(jìn)行重新排序。
用新的分?jǐn)?shù)計(jì)算公式對每個標(biāo)簽t進(jìn)行二次排序:
scorePCM(t|u,i)=(1+PCM(D[1]→t))·
score(t|u,i)
(11)
通過從用戶角度和物品角度來考慮,通常出現(xiàn)在標(biāo)簽推薦列表D中第一個推薦標(biāo)簽比旁邊的標(biāo)簽應(yīng)該具有更高的被推薦可能性。
2.1節(jié)介紹了Top-N列表重排序LRA模型,該算法實(shí)現(xiàn)了Top-N標(biāo)簽推薦列表的重排序,但是推薦給用戶的標(biāo)簽列表仍然是長度固定的Top-N列表,當(dāng)N很大時,推薦的標(biāo)簽列表中包含大量與待推薦的用戶、物品相關(guān)性較低的標(biāo)簽,從而造成推薦質(zhì)量不高。針對該問題,本節(jié)在LRA完成Top-N列表重排序的基礎(chǔ)上,進(jìn)一步提出一種確定推薦列表最優(yōu)大小的無參數(shù)算法(Parameter-free algorithm with optimal size of recommendation list,PFA),引入關(guān)聯(lián)性度量,以從給定的推薦標(biāo)簽列表中找到最相關(guān)的標(biāo)簽。通過推薦一些更相關(guān)的標(biāo)簽,排除相關(guān)性較低的標(biāo)簽,從而調(diào)整列表的長度,提高標(biāo)簽推薦的質(zhì)量。
2.2.1PFA基礎(chǔ)
標(biāo)簽推薦算法旨在推薦最合適的標(biāo)簽,這是以用戶為中心的Web 2.0的重要組成部分。標(biāo)簽推薦的主要挑戰(zhàn)之一是其推薦列表的有效性,現(xiàn)有的標(biāo)簽推薦算法通常使用固定數(shù)量的標(biāo)簽推薦列表。
本節(jié)提出的算法遵循另一個方向,通過優(yōu)化推薦列表長度以提高標(biāo)簽推薦的準(zhǔn)確性。給目標(biāo)用戶u推薦的標(biāo)簽列表為LN={t1,t2,…,tN},PFA的目的是求取出推薦列表LN的一個子列表,該子列表與待推薦的用戶物品的相關(guān)性最大,并用該子列表替換推薦列表LN,實(shí)現(xiàn)更好的用戶體驗(yàn),更好的推薦精度。
LN的所有子列表的大小是遞增的,以便保持標(biāo)簽順序,如圖1所示。
圖1 子列表示意圖
為標(biāo)簽推薦列表LN引入了相關(guān)性的度量方法,相關(guān)性度量Rel(LN|u,i)估計(jì)了用戶u使用LN中所有推薦標(biāo)簽對物品i進(jìn)行打標(biāo)簽的可能性。基于該相關(guān)性度量,計(jì)算出將向用戶推薦的最佳列表(the one having the optimal size,bls):
bls=max(s|s∈S)
(12)
S={s|s≤N∧?n≤N,Rel(Ln|u,i)≤Rel(Ls|u,i)}
(13)
算法可以動態(tài)調(diào)整推薦標(biāo)簽列表的大小,從而提高推薦的準(zhǔn)確性。PFA是建立在2.1節(jié)提出的LRA的基礎(chǔ)之上,并對LRA進(jìn)行了擴(kuò)展,PFA與LRA都是標(biāo)簽推薦算法的附加算法,可以認(rèn)為標(biāo)簽推薦算法的一個頂部過濾器,PFA與LRA的目的都是通過優(yōu)化標(biāo)簽列表進(jìn)而提高標(biāo)簽推薦算法的準(zhǔn)確度。
2.2.2PFA建模
本節(jié)將詳細(xì)介紹PFA的相關(guān)性度量計(jì)算方式以及用于從給定標(biāo)簽推薦列表中檢索最佳子列表的算法。假設(shè)Rel(LN|u,i)代表的是用戶u、物品i與標(biāo)簽t的相關(guān)性,LN是一個N個標(biāo)簽組成的有序標(biāo)簽推薦列表,用戶u和物品i與標(biāo)簽t推薦列表LN的相關(guān)性定義如下:
式中:ω(LN|u,i)表示調(diào)整標(biāo)簽推薦列表相關(guān)性的權(quán)重,使得列表相關(guān)性計(jì)算不會一味地傾向于更短的標(biāo)簽推薦列表,推薦列表長度越長則ω(LN|u,i)越大。Rel(LN|u,i)是標(biāo)簽對用戶u和物品i的相關(guān)性,表示用戶u使用標(biāo)簽t標(biāo)記物品i的可能性。
Max代表最長標(biāo)簽推薦列表長度,Rel(LMax|u,i)代表用戶u物品i與推薦列表LMax的相關(guān)性。算法從Max依次遞減至1,尋找最佳的推薦列表長度,每當(dāng)遞減一次,都會計(jì)算當(dāng)前子列表與用戶u、物品i的相關(guān)性,記錄并更新推薦列表的最佳長度,如果兩個不同長度的標(biāo)簽推薦子列表具有相同的相關(guān)性,算法則將優(yōu)先選擇最長的作為推薦列表的最佳長度。
現(xiàn)在常用的計(jì)算相關(guān)性的方法是將已知標(biāo)簽(用戶曾使用過或者物品曾被打過)與其他標(biāo)簽區(qū)分開來,與其他標(biāo)簽相比,歷史上與用戶或物品相關(guān)的標(biāo)簽更值得進(jìn)行推薦,下面介紹該算法的思想。
用PN=LN∩T(u)∩T(i)來表示在推薦列表LN當(dāng)中包含已知標(biāo)簽的子列表,為已知標(biāo)簽子列表中的標(biāo)簽賦予一個較大的權(quán)重,而為其他非已知標(biāo)簽賦予一個較小的權(quán)重,從而做到突出已知標(biāo)簽:
式中:rmax和rmin由我們指定某一具體數(shù)值,rmax設(shè)置為原推薦列表固定長度,通常設(shè)置為5,rmin設(shè)置為1。式(15)經(jīng)過化簡可以得到式(16)。
(16)
通過式(16)可以看出相關(guān)性Rel(LN|u,i)僅與|PN|與N的比值相關(guān),當(dāng)且僅當(dāng)|PN|與N相同時(即推薦列表當(dāng)中所有標(biāo)簽均為已知標(biāo)簽),相關(guān)性最大,相關(guān)性為1。因此,推薦列表的相關(guān)性可以進(jìn)一步化簡為:
上述方法優(yōu)點(diǎn)是思路清晰簡單,所需計(jì)算數(shù)據(jù)均可從數(shù)據(jù)集中統(tǒng)計(jì)得到;缺點(diǎn)是當(dāng)推薦列表當(dāng)中的標(biāo)簽全為已知標(biāo)簽時,相關(guān)性為1,無法繼續(xù)篩選其他的推薦子列表,從而無法得出最佳列表長度。
為了更加準(zhǔn)確地計(jì)算標(biāo)簽列表的相關(guān)性,本文使用另一種改進(jìn)的方案:將標(biāo)簽的相關(guān)性值與從可用數(shù)據(jù)(訓(xùn)練集)中獲得的一些統(tǒng)計(jì)數(shù)據(jù)聯(lián)系起來,簡稱為bls算法。本節(jié)提出的相關(guān)性度量方法同時考慮了用戶以及物品的標(biāo)簽流行度,式(18)給出了標(biāo)簽的相關(guān)性計(jì)算方法。
式中:U(i,t)代表給物品i打標(biāo)簽t的用戶集合;I(u,t)代表用戶u使用標(biāo)簽t打過的物品集合;U(i)代表給物品i打標(biāo)簽的用戶集合;I(u)代表用戶u打過標(biāo)簽的物品集合。此外,標(biāo)簽的相關(guān)性根據(jù)其在推薦列表中的排名降低(第一個標(biāo)簽的相關(guān)性高,最后一個的相關(guān)性低),為了避免算法一味地偏向于較短的標(biāo)簽推薦列表,因此有必要在計(jì)算標(biāo)簽推薦列表的相關(guān)性時使用加權(quán)方法??紤]到標(biāo)簽隨著其位置的靠后,相關(guān)性自然減少,定義推薦列表的權(quán)重:
此權(quán)重函數(shù)計(jì)算了推薦列表大小的重要性,可以在推薦長推薦列表的同時懲罰短的推薦列表。因此,結(jié)合式(19),得出了一個新的列表相關(guān)性度量:
至此,本文提出的優(yōu)化標(biāo)簽Top-N推薦列表的PFA介紹完畢,PFA的總結(jié)如算法1所示。
算法1PFA
輸入:LRA算法重排序后的列表LMax。
輸出:bls。
bls←Max
//bls:最佳列表長度
blR←Rel(LMax|u,i)
//blR:最佳列表的相關(guān)性
forN=(Max-1) to 1 do
ifRel(LN|u,i)>blRthen
bls←N
blR←Rel(LN|u,i)
end
end
Returnbls
3.1.1實(shí)驗(yàn)數(shù)據(jù)
數(shù)據(jù)集為HetRec于2011年發(fā)布的MovieLens數(shù)據(jù)集(HetRec-MovieLens)和MovieLens-10M數(shù)據(jù)集。這兩個數(shù)據(jù)集既包含了物品的屬性信息,也包含了用戶打標(biāo)簽的行為。HetRec-MovieLens數(shù)據(jù)集包含2 113個用戶、5 908個物品、9 079個標(biāo)簽和47 957個打標(biāo)簽記錄;MovieLens-10M數(shù)據(jù)集包含4 009個用戶、7 601個物品和95 580個打標(biāo)簽記錄。
首先,對MovieLens-10M數(shù)據(jù)集中的標(biāo)簽進(jìn)行了預(yù)處理,剔除無效標(biāo)簽,合并相似標(biāo)簽。由于標(biāo)簽數(shù)據(jù)過于稀疏,采用p-core=5對兩個數(shù)據(jù)集進(jìn)行預(yù)處理,即保留出現(xiàn)超過5次的用戶、物品和標(biāo)簽的數(shù)據(jù)。數(shù)據(jù)預(yù)處理后數(shù)據(jù)集的具體統(tǒng)計(jì)信息如表3所示。
表3 兩個數(shù)據(jù)集的統(tǒng)計(jì)信息
3.1.2評價指標(biāo)
使用訓(xùn)練集推薦算法進(jìn)行訓(xùn)練,使用測試集進(jìn)行預(yù)測。評價指標(biāo)選擇F1值,因?yàn)镕1既考慮到了準(zhǔn)確率也考慮到了召回率。下面給出準(zhǔn)確率、召回率、F1的計(jì)算公式:
式中:A代表算法推薦的標(biāo)簽;B代表用戶實(shí)際打的標(biāo)簽。
3.1.3實(shí)驗(yàn)準(zhǔn)備
為了測試PFA的性能,實(shí)驗(yàn)采用以下方法作為baseline算法:
(1) Pop:基于流行度的標(biāo)簽推薦算法。
(2) PITF(成對交互張量分解):一種基于張量分解的標(biāo)簽推薦算法。
(3) FolkRank:FolkRank標(biāo)簽推薦算法擴(kuò)展了自適應(yīng)PageRank算法,該算法的核心思想是利用用戶偏好向量對標(biāo)簽進(jìn)行排序。
(4) TimeFolkRank:基于FolkRank標(biāo)簽推薦算法,考慮標(biāo)簽時間信息,標(biāo)簽越新推薦的權(quán)重就越大。
3.2.1實(shí)驗(yàn)設(shè)置
為降低實(shí)驗(yàn)結(jié)果的偶然性,將整個數(shù)據(jù)集按照隨機(jī)劃分的原則將其劃分成完全相等的十個部分,每次隨機(jī)選取其中的八個部分當(dāng)作訓(xùn)練集,剩下的作為測試集,將以上步驟重復(fù)五次,最終將五次實(shí)驗(yàn)結(jié)果取平均值,以此作為最終實(shí)驗(yàn)結(jié)果。
3.2.2實(shí)驗(yàn)對比與分析
PFA是FolkRank以及其他標(biāo)簽推薦算法的一個附加算法,是對以上算法推薦列表的改進(jìn)。選擇四個標(biāo)簽推薦算法進(jìn)行對比實(shí)驗(yàn),在命名上,以FolkRank標(biāo)簽推薦算法為例,對比算法命名為FolkRank,改進(jìn)算法命名為PFA-FolkRank,其他算法也是如此。本文實(shí)驗(yàn)結(jié)果如表4所示。
表4 兩個數(shù)據(jù)集的統(tǒng)計(jì)信息
為更加直觀地顯示實(shí)驗(yàn)結(jié)果,對每個對比算法的實(shí)驗(yàn)結(jié)果逐一進(jìn)行畫圖,其中,橫坐標(biāo)為標(biāo)簽推薦列表長度,縱坐標(biāo)為標(biāo)簽推薦算法的F1數(shù)值。具體的實(shí)驗(yàn)結(jié)果如圖2-圖5所示。
(a) HetRec-MovieLens(b) MovieLens-10M圖2 Pop算法在兩個數(shù)據(jù)集上的F1值
(a) HetRec-MovieLens(b) MovieLens-10M圖3 FolkRank算法在兩個數(shù)據(jù)集上的F1值
(a) HetRec-MovieLens(b) MovieLens-10M圖4 PITF算法在兩個數(shù)據(jù)集上的F1值
(a) HetRec-MovieLens(b) MovieLens-10M圖5 TimeFolkRank算法在兩個數(shù)據(jù)集上的F1值
PFA可以作為標(biāo)簽算法的一種附加算法,主要用于對各種標(biāo)簽推薦算法生成的Top-N推薦列表進(jìn)行改進(jìn)優(yōu)化。傳統(tǒng)的標(biāo)簽推薦算法,如FolkRank標(biāo)簽推薦算法,通常都是為目標(biāo)用戶目標(biāo)物品生成一個固定長度的推薦列表,這種方式,在一定程度上降低了用戶的滿意度,而PFA可以有效緩解該問題。PFA首先對Top-N標(biāo)簽推薦列表進(jìn)行了重排序,又對重排序后的推薦列表挑選出來最佳的子列表,從而在優(yōu)化列表的基礎(chǔ)上實(shí)現(xiàn)了列表變短的操作,保留下的標(biāo)簽理論上是與待推薦的目標(biāo)用戶與目標(biāo)物品相關(guān)性較高的標(biāo)簽,從而提高了標(biāo)簽推薦的性能。經(jīng)過兩個數(shù)據(jù)集的驗(yàn)證,本文提出的PFA對于標(biāo)簽推薦算法是有效的。
本文提出一種優(yōu)化標(biāo)簽推薦算法Top-N推薦列表的算法。首先,詳細(xì)介紹了Top-N標(biāo)簽推薦列表的重排序算法,算法的思想是首先將大于Top-1標(biāo)簽分?jǐn)?shù)的1/2的標(biāo)簽加入候選推薦列表,通過定義成對標(biāo)簽置信度指標(biāo),計(jì)算候選列表中的標(biāo)簽與Top-1標(biāo)簽的相關(guān)性,按照相關(guān)性大小,完成推薦列表的重排序;其次,介紹了最佳Top-N推薦列表長度求取算法,算法的思想是對重排序后的標(biāo)簽推薦列表,計(jì)算每個子列表的相關(guān)性系數(shù),相關(guān)性系數(shù)最高的子列表即為最佳推薦列表長度。
在HetRec-MovieLens和MovieLens-10M數(shù)據(jù)集上的實(shí)驗(yàn)表明,本文提出的RFA優(yōu)化Top-N列表算法可以有效地提高傳統(tǒng)算法的F1值,因此,作為FolkRank以及其他標(biāo)簽推薦算法的附加算法,該算法可以有效地提高標(biāo)簽推薦的質(zhì)量。