黃麗
摘要:目前市面上大多數(shù)協(xié)同過濾推薦系統(tǒng)普遍具有顯著的缺陷,比如冷啟動、數(shù)據(jù)稀疏性等問題。該文在協(xié)同過濾推薦算法的研究基礎上,對協(xié)同過濾推薦算法進行了優(yōu)化,并設計了基于SVD的協(xié)同過濾推薦算法。經(jīng)過系統(tǒng)檢驗,該算法能有效地改善傳統(tǒng)協(xié)同過濾推薦算法稀疏性的缺陷,提升了推薦精度和推薦效率,對提升用戶體驗度有較大幫助。
關鍵詞: 協(xié)同過濾;SVD;推薦算法
中圖分類號:TP3? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)21-0009-02
開放科學(資源服務)標識碼(OSID):
Abstract: At present, most collaborative filtering recommendation systems on the market generally have significant shortcomings, such as cold start, data sparseness and so on. Based on the research of collaborative filtering recommendation algorithm, this paper optimizes the collaborative filtering recommendation algorithm, and designs a collaborative filtering recommendation algorithm based on SVD.The system test shows that the algorithm can effectively improve the sparsity of the traditional collaborative filtering recommendation algorithm, improve the recommendation accuracy and efficiency, and help to improve user experience.
Key words: collaborative filtering; SVD; recommendation algorithm
隨著互聯(lián)網(wǎng)應用越來越多,個性化推薦系統(tǒng)不斷得到應用和發(fā)展,主要應用于電子商務網(wǎng)站、各類搜索平臺、新聞客戶端及電子郵件系統(tǒng)等領域。在個性化推薦方法當中,協(xié)同過濾推薦方案是較為優(yōu)異的,但是其具有數(shù)據(jù)稀疏性與冷啟動等缺陷,而SVD矩陣分解技術能夠有效緩解稀疏性的問題。通過SVD處理后,推薦精確度能夠得到進一步的提升,更加符合用戶的個性化需求?;赟VD的協(xié)同過濾算法有效地結(jié)合了協(xié)同過濾算法的優(yōu)點和SVD的優(yōu)勢,使得傳統(tǒng)算法的缺陷得到有效克服。
1 常用的信息推薦方法
個性化信息推薦的本質(zhì)是信息過濾,從動態(tài)變化的信息中篩選出滿足用戶需求的個性化信息。信息過濾主要是為用戶推送感興趣的信息,并提高信息推送的實時性和精準性。目前的推薦算法取得了一定的研究成果,主要包括三類:基于內(nèi)容的信息推薦、基于關聯(lián)規(guī)則的信息推薦和基于協(xié)同過濾的信息推薦[1]。
(1)基于內(nèi)容的推薦算法
基于內(nèi)容的推薦從文檔特征過濾技術發(fā)展而來,是根據(jù)用戶特征屬性和項目內(nèi)容特征的相關性比較,預測用戶可能感興趣的內(nèi)容,并將這部分內(nèi)容推薦給用戶[2]。
(2)基于關聯(lián)規(guī)則的推薦算法
關聯(lián)規(guī)則推薦是從用戶出發(fā),找到用戶對應的多個興趣組,而每一個項目關聯(lián)的就是一個興趣組,然后通過規(guī)則關聯(lián)到興趣組推薦給用戶。
(3)協(xié)同過濾推薦
協(xié)同過濾推薦算法是目前廣泛使用的個性化推薦算法,由最近鄰技術發(fā)展而來的,通過用戶的歷史數(shù)據(jù)評估用戶,以確定與用戶最相似的用戶對某商品的評價,以此來預測用戶對該商品的喜好程度,從而進行推薦動作[4]?;趨f(xié)同過濾的推薦方法不需要考慮對象的特征屬性,能夠處理非結(jié)構化的復雜數(shù)據(jù),并能為用戶提供新穎的推薦結(jié)果。但該算法存在數(shù)據(jù)稀疏性、可擴展性和冷啟動問題,而在線推薦系統(tǒng)一般是基于較為龐大的用戶群與項目數(shù),因此,使用這類算法計算相似度將會導致系統(tǒng)推薦效率低下。
2 基于SVD的協(xié)同過濾算法優(yōu)化
奇異值分解(Singular Value Decomposition,SVD)[3]是信息檢索過程中提取信息的重要方法。和以上信息推薦方法不同之處在于,基于SVD推薦方法是在用戶不知情且不需要用戶主動配合的條件下,通過機器自動挖掘用戶和項目的潛在特征。推薦系統(tǒng)不需要計算用戶和項目間的相似度,而是通過技術手段提取用戶瀏覽日志,將用戶的行為偏好數(shù)據(jù)收集起來,分析用戶潛在未被發(fā)現(xiàn)的興趣。當用戶和項目的潛在特征挖掘完成后,每個用戶與項目都可以看作是相同特征空間上的向量。預測用戶是否對某項目感興趣,直接可以計算兩個向量的點積,作為用戶對項目的評分預測[5]。利用SVD能夠用小得多的數(shù)據(jù)集來表示原始數(shù)據(jù)集,這樣可以去除噪聲和冗余信息,在信息提取時節(jié)省大量的空間?;谶@個優(yōu)勢,將SVD應用到推薦系統(tǒng)中提取相關特征,能有效避免數(shù)據(jù)稀缺性、冷啟動以及拓展性方面問題,使推薦效率得到進一步提升。
(1)基于SVD的推薦優(yōu)化
假設矩陣A代表用戶和資源關系,通過SVD矩陣分解,A=TSD,則[R0=T0S0D0,S0=diag(a1,...,ar)],其中,T0和D0是m×n以及r×n的正交矩陣,r是矩陣R0的軼,S0是r×r的對角矩陣。
輸入:矩陣R0
輸出:矩陣T,S,D
步驟1:R0通過SVD,得到T1,S1,D1;
步驟2:簡化S1,把對角線內(nèi)比1小的值都替換成0,把對應整體為0的列與行刪掉,從而取維數(shù)是S的對角矩陣;
步驟3:基于S,簡化T1,D1,繼而取得T,D,則有R=TSD,并且R≈R0;
步驟4:計算S平方根取得[S12];在計算T,D取得[TS12,S12D]。
通過上述的算法能夠構成準確度高的最近鄰居以及對應的top-N推薦集;相應的項矩陣是[S12D],其規(guī)模是S×N。
(2)協(xié)同過濾推薦算法優(yōu)化
通過上述矩陣簡化,算法在查找相似用戶與項目方面的效率更高,但是簡化矩陣過后的用戶量就會變得更加稀缺。基于這樣的狀況,在協(xié)同過濾算法基礎上加入了KNN與RkNN,解決了矩陣稀缺以及相似用戶尋找困難等問題。
賦予數(shù)據(jù)集S,D(p,q)是p,q兩點間的距離,計算RkNN的值,
輸入:基于用戶的評分矩陣A(m,n),項目j,用戶i
輸出:i在j的預測評分
步驟1: 在A(m,n)內(nèi)計算用戶i和另外用戶的相似程度,加入距離矩陣D;
步驟2:用戶i,基于距離矩陣D,尋找到i相近的序列,取得最近鄰列表KNN;
步驟3:距離矩陣D進行掃描,用戶i找到最近鄰序列,取得最近鄰列表RkNN;
步驟4:最近鄰-相似性列表KNN與RkNN當中分別取前K個項;
步驟5:基于推薦產(chǎn)生式,計算用戶i在項目j當中的預測評分P。
(3)基于SVD的協(xié)同過濾推薦算法
步驟1:計算[TS12(m,k)]與[S12D(k,n)],設為A、B,其中[TS12(m,k)]與[S12D(k,n)]是項目相關矩陣;
步驟2:在[A(m,k)],[B(k,n)]中計算[DA],[DB]并計算用戶相似度,其中[DA],[DB]是用戶距離矩陣;
步驟3:i,在[DB]里找到i的kNN以及RkNN,計算這部分用戶所瀏覽過的項目集,然后從這些項目集當中刪除被i瀏覽過的項目集,從而得到[Su],其中i是用戶,[Su]是項目集。
步驟4:采用KNN與RKNN預估[Su]當中的[Pu],取得[Su];
步驟5:基于[DB]重復步驟4;
步驟6:基于KNN與RKNN來預測[Sp]的[Pp],取得[Sp],其中[Sp]是項目推薦集,[Pp]是評分;
步驟7:[Sp]與[Su]依照預測分的順序規(guī)則排列,取得[Sco],其中[Sco]是協(xié)同推薦集;
步驟8:[SN]利用[Sco]執(zhí)行基于內(nèi)容的推薦,取得[Sc],其中[SN]是瀏覽量過少的用戶或者是新項目集,[Sc]是內(nèi)容推薦集;
步驟9;[Sco]與[Sc]合并,取得S,其中S是最終輸出的推薦集。
3 系統(tǒng)檢驗
通過Lucene平臺構建的個性化推薦引擎,選用MovieLens Data Sets數(shù)據(jù)集分別對協(xié)同過濾算法、優(yōu)化后的協(xié)同過濾算法以及基于SVD的協(xié)同過濾混合算法進行了檢驗。在評價標準方面選用了MAE平均絕對偏差,該值越小就代表推薦的效果越好,MAE計算公式為:[MAE=i=1Npi-qiN],其中[pi]是評測分數(shù),[qi]是用戶的實際評分。通過實驗,結(jié)果如下:
通過選用6040個用戶對3900部電影所產(chǎn)生的1000000條評價記錄的數(shù)據(jù)進行檢驗的結(jié)果表明,協(xié)同過濾算法數(shù)據(jù)的稀釋度高達95.8%,優(yōu)化后的協(xié)同過濾算法為93.2%,而通過本文設計的基于SVD的協(xié)同過濾混合推薦算法將稀釋度降到了90.7%,可以提升預測的準確度,也使得推薦的準確性上升。
參考文獻:
[1] 彭菲菲,錢旭.基于用戶關注度的個性化新聞推薦系統(tǒng)[J].計算機應用研究,2012,29(3):1005~1007.
[2] 劉輝,郭夢夢,潘偉強.個性化推薦系統(tǒng)綜述[J].常州大學學報(自然科學版), 2017,29(3):51-59.
[3] 張俊杰.基于用戶興趣模型的推薦算法及系統(tǒng)實現(xiàn)[D].上海大學, 2014.
[4] 陶俊,張寧.基于用戶興趣分類的協(xié)同過濾推薦算法[J].計算機系統(tǒng)應用, 2011,20(5):55-59.
[5] 韋素云,業(yè)寧.基于項目類別和興趣度的協(xié)同過濾推薦算法[J].南京大學學報(自然科學), 2013,49(2):142~148.
【通聯(lián)編輯:代影】