徐夢錦++趙曉東
摘要:將協(xié)同過濾推薦算法應(yīng)用于電子商務(wù)領(lǐng)域會(huì)使算法在實(shí)時(shí)性、可擴(kuò)展性等方面的缺陷變得不可忍受,因此該文提出了基于隱語義模型的協(xié)同過濾推薦算法。該算法在使用隱語義模型對(duì)產(chǎn)品進(jìn)行聚類的基礎(chǔ)上應(yīng)用協(xié)同過濾算法,在大大縮小了算法運(yùn)行時(shí)間的情況下,仍然能夠在一定程度上提高算法的推薦準(zhǔn)確率。
關(guān)鍵詞:協(xié)同過濾推薦;隱語義模型;產(chǎn)品聚類;梯度下降;負(fù)反饋數(shù)據(jù)
中圖分類號(hào):TP391.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)07-0084-03
Research on Collaborative Filtering Algorithm Based on Latent Factor Model
XU Meng-jin,ZHAO Xiao-dong
( College of Electronic and Information Engineering in Tongji University, Shanghai 201804, China)
Abstract: The disadvantages that applying collaborative filtering recommendation algorithm to the e-commerce field is becoming intolerable. So in this paper we presents a collaborative filtering recommendation algorithm based on latent factor model. The algorithm uses latent factor model to cluster items. Then run collaborative filtering algorithm in the base of the clustering result. This algorithm can not only reduce the time that algorithm spends but also increase the precision of recommend results.
Key words: collaborative filtering recommendation; latent factor model; item clustering; gradient decent algorithm; negative feedback
1 概述
互聯(lián)網(wǎng)技術(shù)的發(fā)展加快了信息堆積的速度,使人們陷入了信息過載的境地。而個(gè)性化推薦算法的出現(xiàn)則可以在一定程度上拯救互聯(lián)網(wǎng)時(shí)代信息大爆炸所帶來的困境。協(xié)同過濾算法在處理非結(jié)構(gòu)化復(fù)雜對(duì)象方面擁有別的個(gè)性化推薦算法無法比擬的優(yōu)勢,因此成為了當(dāng)前個(gè)性化推薦領(lǐng)域應(yīng)用最廣泛的算法[1]。
將協(xié)同過濾推薦算法應(yīng)用到電子商務(wù)領(lǐng)域不僅可以提高網(wǎng)站的銷售額,更可以提高用戶對(duì)網(wǎng)站的滿意度和忠誠度,為電子商務(wù)網(wǎng)站帶來巨大商機(jī)。但是隨著電子商務(wù)網(wǎng)站的不斷發(fā)展,應(yīng)用傳統(tǒng)的協(xié)同過濾算法在處理龐大、稀疏矩陣時(shí)出現(xiàn)的諸如實(shí)時(shí)性差、可擴(kuò)展性差等缺陷變得越來越明顯,嚴(yán)重影響了推薦系統(tǒng)的性能。因此,本文提出了一種基于隱語義模型的協(xié)同過濾推薦算法,該算法首先使用隱語義模型對(duì)產(chǎn)品進(jìn)行聚類,并利用聚類結(jié)果重構(gòu)用于計(jì)算推薦列表的用戶-產(chǎn)品評(píng)分矩陣,從而減小評(píng)分矩陣規(guī)模,提高算法的實(shí)時(shí)性。
2 基于隱語義模型的協(xié)同過濾推薦算法
常用的聚類方法一般都屬于排他性的聚類方法,即一個(gè)固定的點(diǎn)只屬于特定的某一個(gè)類別。而產(chǎn)品的聚類過程往往是非排他性的,一個(gè)產(chǎn)品有可能同時(shí)屬于好幾個(gè)不同的類別。所以本文提出了一種使用隱語義模型進(jìn)行聚類的方法,以實(shí)現(xiàn)產(chǎn)品的非排他性聚類。其中,排他性聚類方法與非排他性聚類方法的區(qū)別如圖1所示。
2.1 隱語義模型
隱語義模型使用機(jī)器學(xué)習(xí)相關(guān)統(tǒng)計(jì)方法,對(duì)用戶歷史評(píng)分?jǐn)?shù)據(jù)進(jìn)行迭代學(xué)習(xí),從而將用戶-產(chǎn)品評(píng)分矩陣R分解成用戶特征矩陣P和產(chǎn)品特征矩陣Q。即使用較低維的矩陣P、Q的乘積來表示用戶-產(chǎn)品評(píng)分矩陣[2],具體形式如式(1)所示:
通過對(duì)產(chǎn)品相關(guān)性矩陣Q的分析可以得出,Q中的每一項(xiàng)[qik]表示第i個(gè)產(chǎn)品在第k個(gè)隱性特征上的權(quán)值,我們可以將其理解為第i個(gè)產(chǎn)品屬于第k個(gè)隱類的權(quán)值?;谏鲜龇治觯疚奶岢隽艘环N基于隱語義模型的產(chǎn)品聚類方法,該方法通過提取[Qk]中權(quán)值最高的若干個(gè)產(chǎn)品作為每類的產(chǎn)品集合來完成產(chǎn)品的聚類過程。因?yàn)槊總€(gè)產(chǎn)品屬于每個(gè)類別的可能性是根據(jù)權(quán)值來度量的,所以一個(gè)產(chǎn)品可能會(huì)同時(shí)出現(xiàn)在不同的類別中,因此使用基于隱語義模型的聚類方法可以實(shí)現(xiàn)產(chǎn)品的非排他性聚類。
2.2 負(fù)反饋數(shù)據(jù)
個(gè)性化推薦算法的運(yùn)行基礎(chǔ)即為用戶的歷史行為數(shù)據(jù),其中,能得到較準(zhǔn)確的推薦結(jié)果的數(shù)據(jù)為高質(zhì)量的顯性反饋數(shù)據(jù),也就是用戶對(duì)產(chǎn)品的具體評(píng)分?jǐn)?shù)據(jù),如movielens收集的用戶對(duì)電影的評(píng)分?jǐn)?shù)據(jù)。但是,在電子商務(wù)領(lǐng)域,顯性反饋數(shù)據(jù)的獲取比較困難,因?yàn)橛脩敉辉敢饣ㄙM(fèi)時(shí)間對(duì)商品進(jìn)行打分。而用戶的隱性反饋數(shù)據(jù)往往比較容易獲得,因此系統(tǒng)可以收集到較多的數(shù)據(jù)。所以,本文主要研究隱性反饋數(shù)據(jù)下的推薦算法應(yīng)用,其中,隱性反饋數(shù)據(jù)主要由用戶的瀏覽、購買、搜索等行為構(gòu)成。
由于本文針對(duì)的是隱性反饋數(shù)據(jù)下的推薦算法研究,而在隱性反饋數(shù)據(jù)集中,只存在正樣本,即用戶有過行為的產(chǎn)品集合,而沒有負(fù)樣本。而應(yīng)用隱語義模型需要使用同時(shí)具有正樣本和負(fù)樣本的數(shù)據(jù)集,所以在對(duì)產(chǎn)品進(jìn)行聚類前需要先對(duì)負(fù)樣本進(jìn)行采樣并重構(gòu)用于訓(xùn)練的基礎(chǔ)數(shù)據(jù)集。
本文結(jié)合rong pan在論文中討論的方法[5]設(shè)計(jì)了如下的負(fù)樣本采樣規(guī)則:首先,負(fù)樣本的采樣過程應(yīng)該以用戶為單位進(jìn)行,即對(duì)每個(gè)用戶來說,負(fù)樣本的數(shù)目應(yīng)該與該用戶的正樣本數(shù)目成比例;其次,負(fù)樣本的采樣過程中,應(yīng)該偏向于采樣那些比較熱門但是用戶卻沒有行為的產(chǎn)品。這是因?yàn)閷?duì)冷門產(chǎn)品來說,用戶沒有對(duì)其產(chǎn)生評(píng)價(jià)更可能是因?yàn)橛脩魶]有發(fā)現(xiàn)該產(chǎn)品。所以,在用戶沒有過行為的產(chǎn)品中,熱門產(chǎn)品有更大的幾率成為負(fù)樣本。
在負(fù)樣本采集完成后,算法會(huì)將負(fù)樣本加入用戶的歷史行為數(shù)據(jù)集中,其中,數(shù)據(jù)集中的原始評(píng)分?jǐn)?shù)據(jù)記為1,而負(fù)樣本數(shù)據(jù)記為0。并將重構(gòu)后的數(shù)據(jù)集作為后續(xù)用于訓(xùn)練隱語義模型的訓(xùn)練集。
3 算法描述
基于隱語義模型的協(xié)同過濾算法通過使用隱語義模型訓(xùn)練得到產(chǎn)品相關(guān)性矩陣Q,并在每個(gè)隱類[Qk]中選取權(quán)值較大的若干項(xiàng)作為該隱類下的產(chǎn)品集合,從而得到產(chǎn)品的聚類結(jié)果?;陔[語義模型的協(xié)同過濾推薦算法主要可以分為聚類和推薦兩個(gè)過程,其具體流程如下:
第1步,根據(jù)1.2節(jié)提出的采樣規(guī)則進(jìn)行負(fù)樣本采樣。并將負(fù)樣本加入到用戶的歷史評(píng)分?jǐn)?shù)據(jù)中。
第2步,使用0~1的數(shù)值初始化用戶特征向量P與產(chǎn)品特征向量Q。
第3步,使用第1步得到的包含負(fù)樣本的用戶評(píng)分?jǐn)?shù)據(jù)對(duì)P和Q進(jìn)行迭代更新,直至參數(shù)收斂,也就是使式3最小化。
第4步,使用訓(xùn)練得到的產(chǎn)品特征矩陣Q構(gòu)建產(chǎn)品的聚類結(jié)果。即在[Qk]中中選取權(quán)值最大的若干項(xiàng)作為該類的產(chǎn)品集合。
第5步,根據(jù)第4步得到的聚類結(jié)果重構(gòu)用戶-產(chǎn)品評(píng)分矩陣,將評(píng)分矩陣按產(chǎn)品的類別拆分成相應(yīng)的幾個(gè)規(guī)模較小的矩陣。
第6步,根據(jù)目標(biāo)用戶的歷史消費(fèi)記錄判斷用戶興趣所屬商圈(即產(chǎn)品的類別),并在該類別對(duì)應(yīng)的用戶-產(chǎn)品評(píng)分矩陣中計(jì)算該用戶與其他用戶的相似性,其中相似性計(jì)算公式如式(6)所示[6]。 式(6)中[Ui]和[Uj]分別表示用戶i和用戶j購買的產(chǎn)品集合。
4 實(shí)驗(yàn)結(jié)果分析
本實(shí)驗(yàn)使用的數(shù)據(jù)集為movielens提供的943個(gè)用戶對(duì)1682部電影的評(píng)分?jǐn)?shù)據(jù),由于本文研究的場景為隱性反饋數(shù)據(jù)場景,所以在實(shí)驗(yàn)中隱去了具體的評(píng)分?jǐn)?shù)據(jù),統(tǒng)一使用1表示用戶對(duì)該產(chǎn)品有過行為。
下面將基于隱語義模型的協(xié)同過濾推薦算法的實(shí)驗(yàn)結(jié)果分別與傳統(tǒng)的基于用戶的協(xié)同過濾推薦、基于產(chǎn)品的協(xié)同過濾推薦和基于多級(jí)圖劃分的協(xié)同過濾推薦的實(shí)驗(yàn)結(jié)果進(jìn)行了對(duì)比。其中,基于多級(jí)圖劃分的協(xié)同過濾推薦是另一種基于產(chǎn)品聚類的協(xié)同過濾推薦的實(shí)現(xiàn)方式[8],其使用多級(jí)圖劃分算法對(duì)產(chǎn)品進(jìn)行分類。本文以曲線圖的方式展示了該算法與其他算法的在各個(gè)評(píng)測指標(biāo)上的對(duì)比結(jié)果,其中圖2和圖3分別為推薦準(zhǔn)確率與召回率對(duì)比圖,而圖4為各個(gè)算法的運(yùn)行時(shí)間對(duì)比圖。
從圖2、3、4中可以看出,與其他的算法相比,基于隱語義模型的協(xié)同過濾推薦算法的準(zhǔn)確率與召回率除了在測試集中用戶數(shù)量最少的u1數(shù)據(jù)集上比基于用戶的協(xié)同過濾算法低以外,在其余情況下均比其他算法高。這說明,對(duì)產(chǎn)品進(jìn)行準(zhǔn)確的聚類可以過濾掉對(duì)當(dāng)前用戶無效的一些噪音數(shù)據(jù),從而提高算法的準(zhǔn)確率。而該算法的運(yùn)行時(shí)間除了比基于多級(jí)圖劃分的協(xié)同過濾算法稍高以外,比其他算法的運(yùn)行時(shí)間均要短很多。與傳統(tǒng)的基于產(chǎn)品的協(xié)同過濾算法相比,甚至低了將近1個(gè)數(shù)量級(jí)。這說明通過對(duì)產(chǎn)品進(jìn)行聚類,基于隱語義模型的算法成比例地縮小了用戶-產(chǎn)品評(píng)分矩陣,減小了算法在計(jì)算用戶相似度時(shí)的時(shí)間復(fù)雜度。
5 總結(jié)
本文提出的基于隱語義模型的協(xié)同過濾推薦算法在利用隱語義模型對(duì)產(chǎn)品進(jìn)行聚類的基礎(chǔ)上應(yīng)用基于用戶的協(xié)同過濾算法,通過減小用戶-產(chǎn)品評(píng)分矩陣有效地縮短了推薦算法的運(yùn)行時(shí)間,進(jìn)而提高了推薦系統(tǒng)的實(shí)時(shí)性。同時(shí),在產(chǎn)品聚類基礎(chǔ)上重構(gòu)用戶-產(chǎn)品評(píng)分矩陣的過程實(shí)際上將很多對(duì)計(jì)算無效的數(shù)據(jù)過濾掉了,所以該算法也在一定程度上提高了推薦準(zhǔn)確率。在產(chǎn)品數(shù)量更多的推薦應(yīng)用中,本文提出的基于隱語義模型的協(xié)同過濾推薦可以通過產(chǎn)品聚類更有效、直觀地減少用戶-產(chǎn)品評(píng)分?jǐn)?shù)據(jù)規(guī)模,也就是說,該算法能夠更有效地減少算法的運(yùn)行時(shí)間,使推薦算法可以應(yīng)用于產(chǎn)品數(shù)量不斷增多的電子商務(wù)系統(tǒng)中,因此,該算法具有較高的系統(tǒng)可擴(kuò)展性。
參考文獻(xiàn):
[1] Ricci F,Rokach L,Shapira B,et al.Recommender Systems Handbook[M].Berlin:Springer,2011:145-186.
[2] 陳清浩, 馮軍煥. 混合k最近鄰模型與隱語義模型的推薦算法[J]. 信息系統(tǒng)工程, 2015(3):129-130.
[3] 魯權(quán). 基于協(xié)同過濾模型與隱語義模型的推薦系統(tǒng)研究與實(shí)現(xiàn)[D]. 長沙:湖南大學(xué), 2013.
[4] Pan R, Zhou Y, Cao B, et al. One-Class Collaborative Filtering[C]// IEEE International Conference on Data Mining. IEEE, 2008:502-511.
[5] 邊文龍, 黃曉霞. 融合隱語義模型的聚類協(xié)同過濾[J]. 微型機(jī)與應(yīng)用, 2015, 34(15):26-28.
[6] 項(xiàng)亮. 推薦系統(tǒng)實(shí)踐[M]. 北京:人民郵電出版社, 2012.
[7] 黃創(chuàng)光, 印鑒, 汪靜,等. 不確定近鄰的協(xié)同過濾推薦算法[J]. 計(jì)算機(jī)學(xué)報(bào), 2010(8):1369-1377.
[8] 柳先輝,徐夢錦.基于多級(jí)圖劃分的協(xié)同過濾算法研究[J].機(jī)械設(shè)計(jì)與制造工程,2015,44(12):14-17