秦燦 李旭東



摘要:面對評分矩陣的數據量不斷增加,解決數據稀疏問題并提高推薦準確率是關鍵,因此,本文提出基于SVD填充和用戶特征屬性聚類的混合推薦算法。首先利用SVD技術對評分矩陣拆分,并使用隨機梯度下降法對空缺值填充;然后對用戶特征屬性聚類,以此縮小鄰居節點的搜索范圍;接著利用遺忘曲線思想改進用戶的相似度公式,結合Jaccard系數和流行度思想改進項目的相似度公式;再將用戶偏好和項目特征的維度加權融合;最后,將本文的SK-HCF算法和其他同類算法進行對比實驗,并證明該算法的推薦準確率有明顯提升。
關鍵詞:推薦算法;協同過濾;奇異值分解;K均值聚類;遺忘曲線
中圖分類號:TP301.6? ? ? ? ? ? ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2020)16-0011-05
開放科學(資源服務)標識碼(OSID):
Abstract: Facing the increasing amount of data in the scoring matrix, it is the key to solve the problem of sparse data and improve the accuracy of recommendation. Therefore, this paper proposes a hybrid recommendation algorithm based on SVD filling and user feature attribute clustering. Firstly, SVD technology is used to split the scoring matrix, and random gradient descent method is used to fill in the vacancy value; then cluster user feature attributes to narrow the search range of neighbor nodes; then use the forgetting curve idea to improve the user's similarity formula. Combine the Jaccard coefficient and popularity ideas to improve the similarity formula of the project; Afterwards the dimension of user preference and project characteristics is weighted; finally, compare the SK-HCF algorithm of this paper with other similar algorithms and prove that the recommendation of the algorithm is accurate The rate has improved significantly.
Key words: Recommendation algorithm; collaborative filtering; singular value decomposition; K-means clustering; Forgetting curve
1引言
近年來,隨著互聯網的信息量不斷的增多,用戶很難獲取有價值的信息,學者們便推出了搜索引擎技術[1],但是,當用戶需求不明確時,該技術將不能滿足用戶的需求。1992年高柏等人提出了名叫Tapestry的協同過濾推薦模型[2],并使用其推送新聞和篩選信息。推薦算法的原理是通過分析用戶屬性或項目屬性的相似程度,為目標用戶推薦,其可以解決信息過載問題[3],能極大地提高了用戶體驗。
數據稀疏是協同過濾算法的準確度降低的重要原因之一[4],因此學者們提出了矩陣填充[5]、降維[6]、聚類[7]等方法,以便提升推薦的準確度。
本文設計出基于SVD填充和用戶特征屬性聚類的混合推薦算法。首先采用SVD技術對評分矩陣進行分解,并利用隨機梯度下降法對評分矩陣的空缺值進行填充;然后對用戶的特征屬性聚類,使鄰居的搜索范圍縮小;再利用遺忘函數作為時間權重改進用戶的相似度公式,并結合Jaccard系數和流行度權重改進項目的相似度公式;最后以一定的權重結合基于用戶和基于項目的維度,對未評分項做出預測評分,并按照相似度大小排序重新生成推薦列表。
2 相關工作
2.1 傳統的協同過濾推薦算法
傳統的協同過濾推薦算法包含基于用戶的協同過濾算法[8-9]和基于項目的協同過濾算法[10],通過收集信息、相似度計算、生成推薦集合等步驟來預測評分[11]。
2.1.1基于用戶的協同過濾推薦算法
User-CF算法是通過比較用戶之間的相似程度來推測用戶可能喜歡的項目集合[8]。最常見的計算方法是Pearson相關系數[12]。具體公式如下:
通過隨機梯度下降法算法[14]把[SSE]的值訓練到最小,最終目標使預測評分值無限靠近真實評分值。該算法是通過[x]點沿其負梯度方向搜索,計算[SSE]局部最優值,即當前的極小值,再更新預測值[Puv],如此反復,經過數次迭代,最后得到[SSE]的最小值,進而得到全局最優的[Puv]。
2.3 K-means聚類算法
由于傳統的協同過濾算法缺少對用戶類別的維度的計算,導致準確度提升困難,故采用K-means算法[15]對用戶的特征屬性進行聚類。具體過程如下:
(1)處理原始數據,創建用戶特征屬性集合。定義[u]為用戶的特征屬性的集合,設[u={a,s,o,p}],[a]表示年齡,[s]表示性別,[o]表示職業,[p]表示所在地,其中,年齡定義為數值型數據,性別轉化為二元數據,即女為0,男為1,職業和所在地等信息定義為標稱型數據,以一定形式進行編碼,如省份可表示為“江蘇=32,湖北=42”。如[u={50,1,20,32)]表示該用戶是來自江蘇50歲的男教師。
4.3實驗數據分析
4.3.1 矩陣保留維數[k]值的分析
利用SVD技術對評分矩陣進行拆分并降維,并使用隨機梯度下降法對其的空缺值進行填充。經降維處理后的矩陣維數[k]值對SK-HCF的算法精確度影響較大,如果[k]值過小,會損失部分評分數據;如果[k]值過大,可能失去降維的作用。一般[k]值的區間為[[10,25]],同時設置鄰居數量為20。
觀察圖1的折線趨勢可以發現,當[k]值取[[10,14]]時,[MAE]值出現下降的趨勢,當[k]值取[[14,25]]時,[MAE]值出現逐漸上升的趨勢,即當[k=14]時,[MAE]取最小值,推薦的精確度最高。
4.3.2聚類個數[c]值的分析
SK-HCF推薦的效果,不僅取決于矩陣維數[k]值的大小,也取決于聚類個數[c]的大小,因此,需要研究聚類個數對精確度的影響。首先設置[k=14],并設置鄰居數量為20,然后令[c=5],每次增加5直到[c=40]并依次得出其分別對應的[MAE]值,以此探究聚類數對推薦準確度的影響情況。
從圖2中可以看出,[X]軸表示聚類個數[c]值的大小,[Y]軸表示均方差[MAE]值大小。當[c]在區間[[5,25]]變化時,均方差[MAE]值呈下降趨勢,當[c]在區間[[25,40]]變化時,均方差[MAE]值呈上升趨勢,則當[c=25]時,為全局最優點,即得出的均方差[MAE]的值最低,推薦推薦精度最高。
4.3.3權重[a]值的分析
為使綜合相似度[sim(x,y)]的計算準確性達到最優,需要確定公式(15)中的加權系數[α]的最優值,以使推薦的精確度最高。首先設置鄰居數量為20,令[k=14],[c=25],然后令[α]的值從[0.1]開始每次增加[0.1],直到[α=0.9],并分別計算出對應的[MAE]值,以此確定權重[α]的最優值,如圖3所示。
在圖3中,[X]軸表示權重[α]的不同取值,[Y]軸表示各取值[α]分別對應的[MAE]值。根據觀察可以得出,當[α=0.5]時,[MAE]的值最小,當賦予基于用戶的維度和基于項目的維度各占50%的權重時,該推薦算法的精確度最高。
4.3.4預測評分的精確度測試
為了驗證本文算法SK-HCF的性能,分別將User-CF、Item-CF、KM-CF、SVD-CF和本文提出的SK-HCF等5種算法在數據集Movielens上進行對比測試,同時設置鄰居數目的區間為[[5,30]],間隔為5,并采用[MAE]值大小來衡量推薦的精確度,其值越小則說明精度越高。為了SK-HCF算法獲得最大性能,這里設置算法的SK-HCF的各參數的值:[k=14],[c=25],[α=0.5]。
圖4表示各算法在Movielens數據集上的[MAE]值對比結果。觀察該圖表即可發現:當鄰居數增加,所有算法的[MAE]值出現減少的趨勢。KM-CF算法相對于User-CF、Item-CF和SVD-CF,精確度有一定的提升;本文提出的SK-HCF算法,相對于圖中的另外4個算法,精確度有明顯提升。可以看出,用戶的鄰居數從5遞增到30,[MAE]值先減后增,其中,當鄰居數目為20時,[MAE]取最小值,預測的精確度最高??傊疚乃惴⊿K-HCF和上述其他4種算法相比較,表現出有較高的精確度。
4.3.5準確率和召回率的測試
為了進一步驗證SK-HCF算法的有效性,這里繼續測試該算法TopN推薦效果,測試數據還是選擇數據集Movielens。即測試User-CF、Item-CF、KM-CF、SVD-CF和本文提出的SK-HCF等5種算法的準確度和召回率。設置算法的SK-HCF的各參數的值:[k=14],[c=25],[α=0.5],同時設置鄰居節點為30。
通過觀察圖5可以發現,User-CF和Item-CF算法表現出的準確率和召回率差距不明顯,KM-CF和SVD-CF算法相對于傳統的User-CF和Item-CF算法的推薦效果有一定的提升,而本文算法SK-HCF相對于圖中的其他4種算法的準確率和召回率有明顯的提升。
經過以上一系列的實驗證明,本文提出的SK-HCF算法的推薦效果明顯提升。
5結束語
SK-HCF算法能有效提高推薦的準確率。SK-HCF算法先利用SVD技術對評分矩陣拆分、降維,并使用隨機梯度下降法對空缺值填充,對稀疏問題有一定的改善;然后通過聚類法把用戶劃分為不同的類別,能有效減少搜索范圍;最后對用戶和項目的計算維度進行加權融合,并結合興趣遺忘的原理、Jaccard系數規則和流行項目的抑制規則等方法改良了相似度計算公式,提高了相似度的計算精度。通過一系列的實驗表明,SK-HCF算法有效地提高推薦的精度和效果。然而,對于推薦系統而言,僅提高推薦的準確度還不夠,下一步的研究將考慮結合人工智能和大數據技術,來提升推薦系統的智能性、友好性、實用性。
參考文獻:
[1]Information Technology - Data Mining; Recent Research from Sichuan University Highlight Findings in Data Mining (Research on large data intelligent search engine based on multilayer perceptive botnet algorithm)[J]. Computers, Networks & Communications,2019.