李 豪,張海英,張 俊
(1.中國(guó)科學(xué)院大學(xué) 微電子學(xué)院,北京 100029;2. 中國(guó)科學(xué)院微電子研究所 新一代通信射頻芯片技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100029)
一種基于用戶興趣分析的協(xié)同過(guò)濾推薦算法
李 豪1,2,張海英2,張 俊2
(1.中國(guó)科學(xué)院大學(xué) 微電子學(xué)院,北京 100029;2. 中國(guó)科學(xué)院微電子研究所 新一代通信射頻芯片技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100029)
傳統(tǒng)的協(xié)同過(guò)濾推薦算法以用戶對(duì)所有物品的評(píng)分向量作為計(jì)算用戶相似度的依據(jù),沒有考慮到物品屬性對(duì)用戶興趣的反映。為此,提出一種新的改進(jìn)的相似度計(jì)算方法,引入了“用戶興趣分布矩陣”的定義,設(shè)計(jì)了啟發(fā)式的評(píng)分預(yù)測(cè)方式,即根據(jù)興趣相似度選出TOP-K用戶之后,以用戶標(biāo)記的物品數(shù)量作為該用戶的權(quán)重來(lái)預(yù)測(cè)評(píng)分。在Movielens數(shù)據(jù)集上的測(cè)試結(jié)果表明,改進(jìn)后的算法相比傳統(tǒng)的算法在平均絕對(duì)誤差(MAE)上降低了7.3%。
協(xié)同過(guò)濾;興趣分布;物品屬性;用戶權(quán)重
目前協(xié)同過(guò)濾推薦算法領(lǐng)域已有了諸多研究,文獻(xiàn)[1]介紹了協(xié)同過(guò)濾推薦技術(shù)的發(fā)展現(xiàn)狀和存在的問題,從數(shù)據(jù)稀疏性、多內(nèi)容推薦、可擴(kuò)展性三方面總結(jié)了目前的協(xié)同過(guò)濾技術(shù)的研究進(jìn)展。文獻(xiàn)[2]通過(guò)粒子群優(yōu)化算法確定K值的方式改進(jìn)了傳統(tǒng)的協(xié)同過(guò)濾推薦算法,降低了推薦的平均絕對(duì)誤差。文獻(xiàn)[3]通過(guò)多種用戶屬性分配權(quán)重的方法改進(jìn)用戶相似度的計(jì)算,結(jié)合Slope one算法填充評(píng)分矩陣,提高了推薦結(jié)果的準(zhǔn)確率。文獻(xiàn)[4]通過(guò)引入用戶興趣遺忘函數(shù)來(lái)改進(jìn)Slope one算法。文獻(xiàn)[5]提出了梯形模糊評(píng)分模型,挖掘離散評(píng)分中的用戶觀點(diǎn),以此改進(jìn)傳統(tǒng)的協(xié)同過(guò)濾推薦算法。文獻(xiàn)[6]從用戶評(píng)論信息中提取用戶觀點(diǎn),以此修正協(xié)同過(guò)濾推薦算法。文獻(xiàn)[7]應(yīng)用博弈論的方法對(duì)協(xié)同過(guò)濾系統(tǒng)中的用戶評(píng)分行為進(jìn)行分析,設(shè)計(jì)了一種均衡學(xué)習(xí)算法,對(duì)協(xié)同過(guò)濾推薦的機(jī)制具有啟發(fā)價(jià)值。文獻(xiàn)[8]通過(guò)矩陣分解的方式分析用戶興趣。文獻(xiàn)[9]提出了結(jié)合Bhattacharyya系數(shù)的相似度計(jì)算方法,改善了數(shù)據(jù)稀疏情況下的推薦效果。文獻(xiàn)[10]提出了基于K近鄰圖的快速協(xié)同過(guò)濾算法,在不犧牲準(zhǔn)確率的情況下提高了計(jì)算速度。
上述這些研究著重于借助某種機(jī)制來(lái)修正傳統(tǒng)的用戶相似度計(jì)算方法,并沒有關(guān)注到物品本身的屬性對(duì)用戶興趣的反映。因此,本文提出了一種基于用戶興趣分析的相似度計(jì)算方法,結(jié)合物品的屬性特點(diǎn)和用戶的評(píng)分記錄,引入了“用戶興趣分布矩陣”的定義,設(shè)計(jì)了啟發(fā)式的評(píng)分預(yù)測(cè)方式,充分發(fā)揮了物品屬性對(duì)用戶興趣的挖掘,推薦結(jié)果在平均絕對(duì)誤差方面相比傳統(tǒng)的協(xié)同過(guò)濾推薦有了顯著提高。
1.1 相似度計(jì)算方法
目前常見的相似度計(jì)算方法有余弦相似度、修正的余弦相似性、Pearson相關(guān)系數(shù)。
假設(shè)系統(tǒng)中總共有N個(gè)用戶以及M個(gè)物品,用U={u1,u2,…,uN}表示用戶集合,I={i1,i2,…,iM}表示物品集合,用戶ui對(duì)所有物品的評(píng)分記為:
Ri=[Ri,1Ri,2Ri,3…Ri,M]
用戶對(duì)物品的評(píng)分記為矩陣R:
R=[R1R2R3…RM]T
其中Ri,j表示用戶ui對(duì)物品ij的評(píng)分。
(1)余弦相似度
將每個(gè)用戶對(duì)所有物品評(píng)分信息看成M維向量,用戶ui和用戶uj的余弦相似度定義為:
(2)修正的余弦相似度
余弦相似度更多的是從方向上區(qū)分差異,而對(duì)絕對(duì)的數(shù)值不敏感,因此無(wú)法衡量每個(gè)維度上數(shù)值的差異,修正的余弦相似度通過(guò)給每個(gè)維度的數(shù)值減去用戶對(duì)物品的平均評(píng)分,改善了這個(gè)缺點(diǎn)。假設(shè)用戶ui和uj共同評(píng)分的物品集合為Ii,j,用戶ui的評(píng)分物品集合為Ii,用戶uj的評(píng)分物品集合為Ij,用戶ui和uj的修正余弦相似度定義為:
(3)Pearson相關(guān)系數(shù)
用戶ui和uj的Pearson相關(guān)系數(shù)定義為:
已有實(shí)驗(yàn)結(jié)果表明,利用Pearson相關(guān)系數(shù)計(jì)算相似度得到的推薦效果比其他兩種方法更好[11],因此在后面的實(shí)驗(yàn)中,將使用基于Pearson相關(guān)系數(shù)的協(xié)同過(guò)濾推薦算法作為參照,來(lái)對(duì)比本文所提出的基于用戶興趣的相似度計(jì)算方法。
1.2 評(píng)分預(yù)測(cè)方法
通過(guò)相似度的計(jì)算,為用戶u找到相似度最高的前K個(gè)用戶,記為集合S,用集合S中的這K個(gè)用戶對(duì)物品的評(píng)分信息來(lái)預(yù)測(cè)用戶u的評(píng)分情況,用Pu,i表示用戶u對(duì)物品i的預(yù)測(cè)評(píng)分,傳統(tǒng)的評(píng)分預(yù)測(cè)公式如下:
從上述介紹可以看出,傳統(tǒng)的推薦算法主要依靠用戶對(duì)物品的評(píng)分習(xí)慣來(lái)判斷用戶之間的相似性,而沒有考慮物品本身的屬性對(duì)用戶興趣的反映。在實(shí)際應(yīng)用中,很多推薦系統(tǒng)中的物品都具有明顯的類別屬性,不需要通過(guò)聚類就有了一些屬性標(biāo)簽,比如電影物品的“科幻”、“愛情”、“動(dòng)作”,音樂物品的“流行”、“古典”、“鄉(xiāng)村”。這些屬性是物品本身所具有的,在很大程度上影響了用戶的評(píng)分情況,反映出用戶興趣的分布,因此,引入“用戶興趣分布”的概念作為衡量用戶之間相似度的標(biāo)準(zhǔn)是非常有意義的。
2.1 用戶興趣分布矩陣
假設(shè)推薦系統(tǒng)中物品的固有屬性有T個(gè),Ai表示物品ii的屬性向量,則Ai={a1,a2,a3,…aT},其中aj的取值為0或1,0表示物品沒有此屬性,1表示物品具有此屬性,一個(gè)物品可以具有多種屬性,所有物品的屬性矩陣記為A,則:A=[A1A2A3… AM]T
用戶ui在這些屬性上的興趣分布向量記為:
Fi=[Fi,1Fi,2Fi,3…Fi,T]
那么,所有用戶的“興趣分布矩陣”記為:
F=[F1F2F3…FM]T
用戶在某個(gè)屬性上的興趣,可以通過(guò)兩方面體現(xiàn)出來(lái),一是標(biāo)記了具有這個(gè)屬性物品的多少,二是對(duì)具有此屬性的物品的打分高低。以電影物品為例,比如某用戶標(biāo)記了300部電影,其中200部“科幻”電影、20部“愛情”電影,給這200部科幻電影的平均打分是3.5,給這20部愛情電影的平均打分是4.5。直觀地看,該用戶對(duì)科幻電影的興趣更大,因?yàn)榻?jīng)常觀看科幻電影,但是從打分情況來(lái)看,愛情片更容易讓該用戶滿意。一種很常見的原因是,用戶選擇觀看的愛情片是那些公認(rèn)的優(yōu)秀電影,所以即使觀看數(shù)量很少,但是自己的滿意度很高。一個(gè)個(gè)性化推薦系統(tǒng),除了推薦用戶明顯感興趣的物品,還要挖掘用戶潛在的興趣,因此對(duì)于這種情況,“科幻”和“愛情”都應(yīng)該作為該用戶推薦的重點(diǎn)考慮因素,也就是說(shuō)數(shù)量和評(píng)分都是用戶興趣的重要反映。
將用戶評(píng)分矩陣R中的非零值全部變成1,便得到用戶標(biāo)記物品矩陣C。用戶標(biāo)記的物品在T個(gè)屬性上的數(shù)量分布矩陣記為X,則:
X=C×A
(1)
用戶標(biāo)記的物品在T個(gè)屬性上的平均評(píng)價(jià)記為矩陣Y,則:
(2)
矩陣沒有除法,上式的分母分子均為N×T的矩陣,此處所定義的“除法”為分子分母矩陣中對(duì)應(yīng)位置的元素相除。
為了方便不同用戶之間進(jìn)行比較,需要對(duì)X和Y中每一行的向量進(jìn)行歸一化處理,歸一化的方式為:
(3)
歸一化后的矩陣記為X′和Y′,矩陣X′表明了用戶興趣在T個(gè)屬性上的數(shù)量分布,矩陣Y′反映了用戶興趣在T個(gè)屬性上的評(píng)價(jià)分布,那么用戶的“興趣分布矩陣”定義為:
F=X′×β+Y′×(1-β)
(4)
上式中的參數(shù)β取值在0到1之間,這個(gè)參數(shù)是為了權(quán)衡數(shù)量和評(píng)價(jià)對(duì)用戶興趣的反映,在后面的實(shí)驗(yàn)中,會(huì)對(duì)β進(jìn)行多種取值,通過(guò)比較推薦效果選取最好的β值。
2.2 改進(jìn)的評(píng)分預(yù)測(cè)方式
(5)
其中,αv表示用戶v所標(biāo)記的物品數(shù)量。
2.3 改進(jìn)的協(xié)同過(guò)濾算法模型
為了提高推薦效果,在實(shí)際應(yīng)用中,需要先對(duì)用戶或者物品進(jìn)行聚類,然后在類中對(duì)用戶進(jìn)行TOP-K相似用戶的篩選。結(jié)合上述用戶興趣分布的定義和改進(jìn)的評(píng)分預(yù)測(cè)方式,改進(jìn)的協(xié)同過(guò)濾推薦算法步驟如下:
(1)基于用戶評(píng)分矩陣,使用 K-means算法對(duì)用戶進(jìn)行聚類,類別個(gè)數(shù)為P;
(2)按照式(1)~式(4)計(jì)算出用戶興趣分布矩陣;
(3)按照用戶興趣分布向量,使用余弦相似度計(jì)算用戶之間的興趣相似度;
(4)對(duì)于用戶u,在所在簇中篩選出TOP-K相似用戶,然后按照式(5)進(jìn)行評(píng)分預(yù)測(cè);
(5)對(duì)所有用戶執(zhí)行步驟(4),得出評(píng)分預(yù)測(cè)。
采用篇名詞檢索法在中國(guó)知網(wǎng)(CNKI)數(shù)據(jù)庫(kù)進(jìn)行關(guān)鍵詞檢索。檢索篇名詞:群眾體育;時(shí)間范圍:2008年1月1日~2017年12月31日;檢索時(shí)間:2018年5月24日21:39。由于學(xué)位論文存在發(fā)表期刊的情況,為保證研究的嚴(yán)謹(jǐn)性,本研究剔除檢索到的學(xué)位論文,共檢索到群眾體育相關(guān)文獻(xiàn)共計(jì)963篇,將963篇文獻(xiàn)分別以“Refworks”格式及“End-note”格式導(dǎo)出。采用Citespace V軟件對(duì)這些文獻(xiàn)進(jìn)行可視化分析,將文獻(xiàn)中的數(shù)據(jù)以圖表的形式反饋出來(lái),從而更加直觀、立體地對(duì)我國(guó)群眾體育研究的時(shí)空分布特點(diǎn)、熱點(diǎn)及歷史演化進(jìn)行分析。
在本節(jié)中,先使用K-means算法對(duì)用戶進(jìn)行聚類,然后將傳統(tǒng)協(xié)同過(guò)濾推薦算法和基于用戶興趣分析的協(xié)同過(guò)濾推薦算法進(jìn)行比較,并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比分析。
3.1 實(shí)驗(yàn)設(shè)計(jì)
3.1.1 評(píng)價(jià)指標(biāo)
評(píng)分預(yù)測(cè)的準(zhǔn)確性一般使用平均絕對(duì)誤差MAE (Mean Absolute Error)作為指標(biāo),MAE的定義為:
其中Pu,i表示用戶u對(duì)項(xiàng)目i的預(yù)測(cè)打分,Qu,i表示用戶u對(duì)項(xiàng)目i的真實(shí)打分,MAE越小表示預(yù)測(cè)結(jié)果越準(zhǔn)確。
3.1.2 數(shù)據(jù)集
實(shí)驗(yàn)采用的是明尼蘇達(dá)大學(xué)的GroupLens 小組建立的非盈利的電影推薦系統(tǒng)MovieLens中的用戶數(shù)據(jù),選取規(guī)模為100 K的數(shù)據(jù)集進(jìn)行試驗(yàn)。此數(shù)據(jù)集中有943個(gè)用戶對(duì)1 682部電影的評(píng)分?jǐn)?shù)據(jù),評(píng)分值是1~5的離散值,所有評(píng)分項(xiàng)共有十萬(wàn)條,因此數(shù)據(jù)集的稀疏度為1-100 000/(943×1 682)=94%。數(shù)據(jù)集中的物品為“電影”,共有19個(gè)屬性。數(shù)據(jù)集的80%作為訓(xùn)練集,20%作為測(cè)試集,共有5組這樣的“base-test”數(shù)據(jù)集,可以用來(lái)重復(fù)5次實(shí)驗(yàn)。
3.1.3 參數(shù)設(shè)計(jì)
在2.3節(jié)介紹的改進(jìn)的協(xié)同過(guò)濾推薦算法中,影響實(shí)驗(yàn)結(jié)果的參數(shù)有3個(gè),一是用戶聚類的個(gè)數(shù)P,二是選擇TOP-K相似用戶的K值,三是式(4)中的β值。在實(shí)驗(yàn)中,用戶聚類個(gè)數(shù)P分別取值2、3、4、5、6;K分別取值10、15、20、25、30、35、40、45、50;β取值從0.1、0.2、0.3、…、0.9。
3.2 實(shí)驗(yàn)結(jié)果
對(duì)于改進(jìn)的協(xié)同過(guò)濾算法,在β=0.5的情況下,P分別取值2、3、4、5、6,計(jì)算對(duì)測(cè)試集預(yù)測(cè)評(píng)分的MAE,結(jié)果如圖1所示??梢钥闯鲈赑=2的情況下,無(wú)論K如何取值,評(píng)分預(yù)測(cè)的MAE總是最小的,在K=20時(shí)MAE最小,因此將用戶聚為兩類、選取TOP20的相似用戶進(jìn)行推薦是準(zhǔn)確性最好的方案。
圖1 改進(jìn)算法在β=0.5時(shí),不同P值下的MAE
對(duì)于改進(jìn)的算法,在P=2、K=20的情況下,β取值從0.1、0.2、0.3到0.9,實(shí)驗(yàn)結(jié)果如圖2所示??梢钥闯霎?dāng)β=0.5時(shí),改進(jìn)的算法效果最好,此時(shí)的MAE為81.54%。
圖2 改進(jìn)算法在不同β值下的MAE
對(duì)于傳統(tǒng)的協(xié)同過(guò)濾推薦算法,取P=2,K=10、15、20、25、30、35、40、45、50,實(shí)驗(yàn)結(jié)果如圖3所示,可以看出在K=20時(shí),該算法得到最優(yōu)的MAE,為87.94%。
對(duì)比圖2和圖3可以發(fā)現(xiàn),改進(jìn)的協(xié)同過(guò)濾推薦算法,MAE從原來(lái)的87.94%降低到81.54%,降低了7.3%,因此,可以得出結(jié)論:改進(jìn)的協(xié)同過(guò)濾推薦算法在一定程度上提高了評(píng)分預(yù)測(cè)的準(zhǔn)確性。
圖3 傳統(tǒng)CF推薦算法在不同K值下的MAE
本文通過(guò)在傳統(tǒng)的協(xié)同過(guò)濾推薦算法中引入用戶興趣分析,在不增加算法時(shí)間復(fù)雜度的情況下,使得評(píng)分預(yù)測(cè)的平均絕對(duì)誤差降低了7.3%,推薦結(jié)果的準(zhǔn)確性得到提高。但仍然存在一些不足,比如算法的空間復(fù)雜度增加了,在用戶數(shù)量和物品種類特別大的系統(tǒng)中,需要占用大量?jī)?nèi)存來(lái)計(jì)算預(yù)測(cè)結(jié)果;而且沒有考慮到用戶興趣隨著時(shí)間變化的遷移,可以考慮在用戶興趣分布的計(jì)算中引入物品的時(shí)間函數(shù)來(lái)修正,不過(guò)這樣會(huì)增加算法時(shí)間復(fù)雜度,對(duì)于響應(yīng)速度要求比較高的系統(tǒng)來(lái)說(shuō)不太適合。
[1] 冷亞軍,陸青,梁昌勇.協(xié)同過(guò)濾推薦技術(shù)綜述[J].模式識(shí)別與人工智能,2014,27(8):720-734.
[2] 碩良勛,柴變芳,張新東.基于改進(jìn)最近鄰的協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)工程與應(yīng)用,2015,51(5):137-141.
[3] 趙文濤,王春春,成亞飛,等.基于用戶多屬性與興趣的協(xié)同過(guò)濾算法[J].計(jì)算機(jī)應(yīng)用研究,2016,33(12):3630-3633,3653.
[4] 李桃迎,李墨,李鵬輝.基于加權(quán)Slope one的協(xié)同過(guò)濾個(gè)性化推薦算法[J].計(jì)算機(jī)應(yīng)用研究,2017,33(8):1-6.
[5] 吳毅濤,張興明,王興茂,等.基于用戶模糊相似度的協(xié)同過(guò)濾算法[J].通信學(xué)報(bào),2016,37(1):198-206.
[6] 李偉霖,王成良,文俊浩.基于評(píng)論與評(píng)分的協(xié)同過(guò)濾算法[J].計(jì)算機(jī)應(yīng)用研究,2017,34(2):1-7.
[7] 徐蕾,楊成,姜春曉,等.協(xié)同過(guò)濾推薦系統(tǒng)中的用戶博弈[J].計(jì)算機(jī)學(xué)報(bào),2016,39(6):1176-1189.
[8] HERNANDO A, BOBADILLA J, ORTEGA F. A non negative matrix factorization for collaborative filtering recommender systems based on a Bayesian probabilistic model[J]. Knowledge-Based Systems, 2016, 97(c): 188-202.
[9] PATRA B K, LAUNONEN R, OLLIKAINEN V, et al. A new similarity measure using Bhattacharyya coefficient for collaborative filtering in sparse data[J]. Knowledge-Based Systems, 2015, 82(c): 163-177.
[10] PARK Y, PARK S, JUNG W, et al. Reversed CF: A fast collaborative filtering algorithm using a k-nearest neighbor graph[J]. Expert Systems with Applications, 2015, 42(8): 4022-4028.
[11] CASTRO-SCHEZ J J, MIGUEL R, VALLEJO D, et al. A highly adaptive recommender system based on fuzzy logic for B2C e-commerce portals[J]. Expert Systems with Applications, 2011, 38(3): 2441-2454.
A collaborative filtering recommendation algorithm based on user interest analysis
Li Hao1,2, Zhang Haiying2, Zhang Jun2
(1.School of Microelectronics, University of Chinese Academy of Sciences, Beijing 100029, China; 2. Beijing Key Laboratory of Radio Frequency IC Technology for Next Generation Communications, Institute of Microelectronics of Chinese Academy of Sciences, Beijing 100029, China)
The original collaborative filtering recommendation algorithm uses the user′s score vector for all items as the basis for calculating the user′s similarity, which does not take into account the reflection of the object′s interest to the user′s interest. In this paper, an improved similarity calculation method is proposed. The new algorithm introduces the definition of “user interest distribution matrix”, and designs the heuristic scoring method. The TOP-K users are selected according to the similarity degree of interest, then the number of marked items is used as the weight of the user to predict the score. The results of the test on the Movielens dataset show that the improved algorithm is 7.3% lower than the traditional algorithm in the Mean Absolute Error (MAE).
collaborative filtering; interest distribution; item properties; user weight
TP39
A
10.19358/j.issn.1674- 7720.2017.15.007
李豪,張海英,張俊.一種基于用戶興趣分析的協(xié)同過(guò)濾推薦算法[J].微型機(jī)與應(yīng)用,2017,36(15):25-28.
2017-03-13)
李豪(1993-),男,碩士研究生,主要研究方向:機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘。
張海英(1964-),女,研究員、博士研究生導(dǎo)師, 主要研究方向:健康電子,物聯(lián)網(wǎng)技術(shù),醫(yī)療大數(shù)據(jù)平臺(tái)。
張俊(1983-)男,碩士,助理研究員,主要研究方向:健康電子,物聯(lián)網(wǎng)技術(shù),數(shù)字信號(hào)處理。