周艷 李凱 付高宇 向銘杰 曹建波 葉栩見
摘要:針對經典的協同過濾推薦算法的一系列不足,如用戶冷啟動、商品評分稀疏性以及推薦精度不高,文章提出基于截斷奇異值分解(TSVD)的協同過濾推薦算法。使用TSVD技術對稀疏矩陣進行降維處理,利用Jaccard相似度算法計算用戶間相似度,提高推薦精度。實驗結果顯示,基于截斷奇異值分解(TSVD)的協同過濾算法體現良好的推薦質量及預測精度。
關鍵詞:推薦算法;協同過濾;稀疏矩陣;截斷奇異值分解
中圖分類號:TP391? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)04-0075-02
1 引言
隨著互聯網、信息技術的飛速發展,用戶獲取信息的來源越來越豐富,但繁雜的信息在網絡過濾中容易造成流失。對于“大數據時代”背景下的電子商務,為用戶推出個性化的推薦系統愈加重要,它能通過集中分析用戶行為和偏好,為用戶提供個性化的推薦服務,并根據新收集到的用戶行為數據,自動更新并調整推薦內容[1]。用戶個性化的推薦系統是一種更智能、更現代化的信息過濾方式,它的出現對電子商務平臺和社交信息平臺產生了質的影響。
協同過濾算法是推薦算法中最經典、使用范圍最廣泛的一種類型,有廣大的應用遠景和潛在商業價值,在電子商務中其主要價值體現在:能發掘潛在用戶;提高了電子商務平臺的差異化銷售能力;提升了廣告渠道轉化效率和用戶的個性化體驗[2]。
其中基于用戶的協同過濾算法是通過分析用戶在平臺上的歷史瀏覽記錄及搜索記錄,得出用戶對商品或內容的基本偏好(如購物車內容,瀏覽內容,商品評論等),并對這些偏好進行記錄,得出大量用戶對同類商品的偏好方向和程度,為偏好相似的用戶推薦同類商品或依據有相似偏好的用戶近期的搜索內容和關注熱點為其他用戶進行參考性推薦[3]。
但隨著使用者規模的指數級擴大時,基于用戶的推薦算法也有些難以避免的難題,比如“冷啟動”問題,其表現為當在面對新用戶的時候,因其無歷史瀏覽痕跡以及搜索記錄而不能對其完成良好的推薦。針對這個情況,本文提供了一種基于TSVD的協同過濾推薦算法,對該類項目的用戶平均水平進行推薦,使推薦結果更加精確。
2 算法介紹
本文提出的算法根據用戶的評分信息預測用戶可能感興趣的項目進行推薦,并考慮參考評分信息的可信度等指標,對推薦結果進行優化。該算法依賴用戶-評分二維矩陣,它記錄了每個用戶對不同項目的評分記錄,評分區間為[1,5],對沒有評分的項目則取0分。采取TSVD技術對評分矩陣進行降維,最后得出用戶對項目的預測評分,在這過程中穿插KNN(K-Nearest Neighbor)算法獲得最近鄰居集合,并將預測評分較高的項目推送給用戶。流程圖如圖1所示。
輸入:用戶對項目的評分信息。
輸出:預測評分矩陣。
Step 1:將原始的用戶評分信息變換為評分矩陣。
Step 2:利用TSVD方法,使稀疏的評分矩陣實現良好的降低維度的效果。
Step 3:根據公式(1)計算用戶間的相似度。
Step 4:利用KNN算法求得用戶最近鄰居集合。
Step 5:通過公式(2)生成預測評分矩陣,將由Top-N算法生成的預測評分較高的N個項目進行推送[4]。
2.1 TSVD矩陣分解技術
截斷奇異值分解(TSVD)是SVD奇異值分解的變形,都為矩陣分解技術,用于對高秩的稀疏矩陣進行降維處理,得到低秩的矩陣接近原始矩陣[5]。TSVD和SVD的不同在于其只計算用戶指定的最大奇異值,并可指定生成指定維度的矩陣。
TSVD矩陣分解過程具體可以解釋為一個非方陣矩陣[An×d],經過降維處理后可將原矩陣表示成三個矩陣相乘,即[An×d=Un×rr×dV*d×d],其中,[Un×r]為原矩陣的左奇異矩陣,[V*d×d]為原矩陣的右奇異矩陣,[∑r×d]是對角矩陣。
通過TSVD矩陣分解后,可以成功將原本的高秩稀疏矩陣轉化為一個近似等價的低秩矩陣,解決了原始數據中項目評分相較于項目數較少的問題。
2.2 Jaccard相似度計算
Jaccard相似度是推薦算法中較為廣泛地用于相似度度量的算法。因此本文中的用戶間相似度由兩個n維空間向量利用Jaccard相似度算法計算得到的相似度進行表示。
Jaccard相似度是將評分矩陣看作n維向量組,并利用不同數據集合間的交集和并集的比值來推算用戶之間的相似度值大小,計算用戶j和用戶k間相似度[J(j,k)]的公式為:
其中[J(j,k)]表示用戶j,k的相似度;其中,j和k分別表示兩個用戶對所有項目的評分情況。
因此本文利用Jaccard相似度計算得到每兩個用戶間的相似度,再通過KNN算法得到同特定用戶相似度較高的用戶集合。
2.3 預測評分矩陣
通過KNN算法獲得最近鄰居集合后,通過式子(2)得到推薦用戶對沒有評價項目的預測評分,生成預測評分矩陣[6]。預測評分公式如下:
其中[rrui]表示在TSVD降維后用戶u對項目i的評分值;[ru]表示用戶u的評分均值。
最終利用Top-N推薦推送評分較高的N個結果,完成推介。
3 實驗分析
3.1 實驗環境
本文采用的實驗平臺是PC(Intel(R),CPU i7-8750H,2.20GHz,RAM 16GB)和Windows 10操作系統,使用JAVA來實現代碼塊。
文章選用的數據集來自美國GroupLens項目中收集的MovieLens 100K的用戶電影評分數據集合,其中涵蓋900多位用戶對1680部左右電影的100,000項電影評分數據(1-5)。
3.2 評價標準
預測精度是一種衡量由算法得到的預測評分同用戶對項目的真實評分之間差異程度的重要標準,由于不同機器學習算法學習得到的模型存在區別,因此所使用的評估標準也不盡相同,在推薦算法領域,被廣泛使用的評估標準有均方根誤差(RMSE)、均方誤差(MSE),當這兩個誤差結果值越小,代表推薦模型表現更加優秀,能夠實現較好的推薦質量[7-8]。MSE、RMSE的計算公式如(3)和(4)所示。
其中,[ri]為用戶對項目的真實評分,[ri]為項目推薦算法生成的預測評分,N為實驗中所使用的相關數據集的數據量。
3.3 實驗結果與分析
圖2顯示的是隨鄰居數改變,不同算法的MAE取值的變化。圖2可見,伴隨著鄰居個數取值的變大,基于用戶的協同過濾UCF的取值最初是逐漸減小,當鄰居個數增加至12,得到最小的MAE值,然而后續鄰居數的變化中,取值不降反增。基于SVD-CF的協同過濾算法同TSVD-TF算法的MAE值都是隨鄰居個數增加而呈下降趨勢,和UCF算法相似,當鄰居數量增加至12時,取到最小值,隨后趨于穩定。從圖2中可見,即便鄰居數量取值不同,改進的兩種算法計算出的MAE值皆比傳統推薦算法獲得的MAE值低。但TSVD-CF算法MAE值同SVD-CF算法得到的取值進行對比后顯示TSVD-CF算法取值更低,并在所有鄰居數取值中保持最低,在鄰居個數為12時,取到最小值并在接下來保持在0.76左右。
本文所提出的TSVD-CF算法與UCF和SVD-CF算法相比在項目相似度計算上更為精準。
圖3中展現的是隨鄰居數改變,不同算法RMSE取值的變化。從圖3中可見,鄰居數量逐漸增加,三種推薦算法的RMSE值隨之減小,除了UCF算法在鄰居數增加12后有明顯的上升趨勢,TSVD-CF算法和SVD-CF算法在鄰居數為10后RMSE值趨于穩定,在鄰居數不同的情況下,本文所提出的TSVD-CF算法始終保持最低的RMSE值,說明此推薦算法在計算方面考慮到了更加全面的因素,能更加精確地預測評分。從圖3中可以看出本文所提出的算法的RMSE值在鄰居數取到12時達到了最小值,在隨后增加的過程中穩定在0.97左右。
結果說明,從MAE值和RMSE值兩種評估標準上進行比較,本文提出的算法相較SVD-CF和UCF其他兩種協同過濾推薦算法,在對稀疏矩陣降維方面有更好的表現,其提高預測精度的效果更加優越,是有效可行的。
4 結束語
文章對于現有的推薦系統因數據較少而導致推薦精確度不高的缺陷,采用基于TSVD的協同過濾推薦,使推薦結果更加
準確。算法首先采用TSVD矩陣分解,將原本的稀疏矩陣進行數據特征的挖掘,降維成近似等價的低秩矩陣,緩解了原始數據稀疏性的問題。采用KNN算法得到鄰居集合并利用預測算法得到預測評分,并選取評分較高的N個項目進行推送。實驗結果顯示,TSVD-CF推薦算法不僅有效解決了用戶評分數據較少的難題,而且優化了算法的推薦精度。
參考文獻:
[1] 鐘豪.基于異構用戶反饋數據的協同過濾算法研究[D].杭州:浙江大學,2015.
[2] 趙尉翔.基于協同過濾技術的推薦算法研究[D].西安:長安大學,2018.
[3] 劉娟.Mahout平臺下協同過濾推薦算法的研究[D].西安:西安理工大學,2016.
[4] 張盼盼.基于信任機制的并行推薦算法研究[D].長沙:湖南大學,2017.
[5] 徐吉.基于協同過濾和矩陣分解的推薦系統研究與應用[D].寧波:寧波大學,2019.
[6] 張潔,李港.一種基于評分信息熵的融合協同過濾算法[J].南京郵電大學學報(自然科學版),2021(2):76-81.
[7] 武文碩,左安.基于迭代SVD的電影推薦算法的研究[J].電腦知識與技術,2021,17(15):1-3.
[8] 王建芳,李驍,武文琪,等.一種SVD和信任因子相結合的協同過濾算法[J].小型微型計算機系統,2017,38(6):1290-1293.
收稿日期:2021-08-25
基金項目:嘉興學院2020年度校級SRT計劃項目(項目編號:8517203331)
作者簡介:周艷(1999—),女,浙江麗水人,學士,研究方向為系統設計與分析;李凱(1988—),男,浙江嘉興人,講師,碩士,研究方向為智能計算與圖像處理;付高宇(2000—),女,安徽滁州人,學士,研究方向為數據庫設計與分析;向銘杰(1999—),男,四川樂山人,學士,研究方向為數據庫設計與分析;曹建波(1999—),男,浙江溫州人,學士,研究方向為系統設計與分析;葉栩見(1999—),男,浙江臺州人,學士,研究方向為系統設計與分析。