周喜平 杜航勤
摘要:在推薦算法中,協(xié)同過濾算法主要通過分析用戶對景點的歷史評價數據,找出與當前用戶偏好相似的其他用戶,從而推薦用戶喜歡的物品。針對如何推薦出用戶附近的最優(yōu)景點,文章提出基于Redis的GEO算法與協(xié)同過濾算法的附近景點優(yōu)化推薦算法,加入兩種因數并分配權重,從而提高該算法的準確率和召回率。優(yōu)化后的協(xié)同過濾算法不僅可適用于各種類型的景點推薦,而且能夠幫助用戶快速找到附近感興趣的景點,提高用戶的滿意度。
關鍵詞:協(xié)同過濾算法;Redis Geo算法;附近景點推薦;準確率;召回率
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2023)36-0013-03
開放科學(資源服務)標識碼(OSID)
0 引言
在旅游規(guī)劃中,了解并探索附近的景點是一項重要而令人興奮的任務?;趨f(xié)同過濾算法的附近景點推薦系統(tǒng)將為用戶提供個性化、準確且多樣化的推薦,幫助他們發(fā)現和體驗更多有趣的地方。
除了個性化的推薦,基于協(xié)同過濾算法的附近景點推薦系統(tǒng),首先利用Redis的GEO算法[1]根據用戶所在的地理位置計算出與景點的距離并篩選出用戶周圍的景點數據,再根據基于物品的協(xié)同過濾算法對景點數據進行計算,根據不同景點的相似性來推測出用戶潛在的風景愛好從而生成推薦列表。本文提出加入兩種景點因素并分配這兩種因素的權重來優(yōu)化協(xié)同過濾的推薦算法,這種系統(tǒng)具備靈活性和實時性,確保用戶在旅行過程中不會錯失任何適合他們口味的景點。
基于物品的協(xié)同過濾算法[2],首先通過分析用戶的歷史記錄確定用戶喜歡景點的類型與評分來收集用戶及景點的信息。其次再使用數據預處理技術對收集到的用戶與景點數據進行清洗和轉換,主要是對原始數據去噪和歸一化處理。再進行數據的劃分與特征的提取,之后可以使用余弦相似度(Cosine Similarity)或者皮爾遜相關系數(Pearson Correlation Coefficient)來進行相似度的計算,從而選出和目標景點相似度最高的K個近鄰景點,封裝成推薦景點數據,最后把選出的景點數據推薦給用戶。
總體而言,基于協(xié)同過濾算法的附近景點優(yōu)化推薦系統(tǒng)為旅行者帶來了便利和樂趣。通過結合個人興趣和其他用戶的喜好,該系統(tǒng)可以為每位用戶提供獨特且符合期望的推薦[3],使旅行變得更加豐富、有趣且令人難忘。無論是做出決策還是發(fā)掘新的亮點,這個推薦系統(tǒng)都將成為旅游規(guī)劃中不可或缺的利器。
1 基與物品的協(xié)同過濾推薦算法與優(yōu)化
1.1基于物品間的協(xié)同過濾算法
1)物品相似度計算
物品之間的相似度計算可以使用余弦相似度(Cosine Similarity)[4]或者皮爾遜相關系數(Pearson Correlation Coefficient)[5]來計算,根據不同的情況來分別使用這兩個方法來計算相似度。
余弦相似度算法公式:
[sim(a1,a2) = 1M(P1,n×P2,n)1MP21,n×1MP22,n]? ? ? ? ?⑴
皮爾遜相似度算法公式:
[sim(a1,a2)=1M(P1,n-P1)×(P2,n-P2)1M(P1,n-P1)2×1M(P2,n-P2)2]? ? ? ? ? ? ? ?⑵
[sim(a1,a2)]代表物品a1和物品a2的相似度值;[P1,n]是物品1對景點n的潛在評分;景點n∈M,M為物品1與物品2 的共同評分的景點;[P1]是物品1被評分的平均值。
2)推薦生成
根據用戶歷史數據里面的景點數據篩選出用戶的偏好,與用戶所在的地理位置附近的景點數據進行對比與排序。例如圖1中,根據用戶的歷史數據與附近景點數據形成歷史數據集與附近景點數據集,歷史數據1對附近景點1、3有共同點,歷史數據2對附近景點2有共同點,歷史數據3對附近景點1、3、4有共同點,可以推出歷史數據1與附近景點4有共同點所在。
1.2 基于物品協(xié)同過濾算法的優(yōu)化
為了提高協(xié)同過濾算法的推薦效果,本文除了引入景點評分因素,還引入景點評論數量因素與景點地理位置因素。在景點間的相似度計算上,除了考慮到每個用戶對景點評分的相似度,還需要考慮用戶與景點在評論數量上和地理位置上的相似度。如何解決這一問題,需要獲取此景點的評論數量,并進行計算用戶歷史景點的位置信息(經緯度)與用戶的地理位置的距離,以此來獲取相關因數的數據值,最后進行相似度計算。在推薦景點選取的過程中,基于其他景點的評分數據,預測目標用戶在特定時間與位置下對未評價的景點的評分,則需要使用加權平均預測[6]。
加權平均預測中需要賦予評論數量與地理位置的權重[7]。對用戶歷史記錄中每個景點的評論數量數據進行加權就和,權值為各個景點與其他景點的相似度,然后對所有景點相似度的和,從而計算出用戶對其他景點的潛在喜歡的可能性。
加權平均預測公式為:
[Wa,i=1M(a)Hi,n×Sa,n1M(a)Hi,n]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?⑶
[Wa,i]為用戶a對商品i的潛在喜歡評分;[M(a)]為用戶歷史記錄中的景點數據集,景點n∈M(a);[Hi,n]為景點i與景點n的相似度;[Sa,n]為用戶a對景點n的評分。
加入評論數量和景點與用戶的距離因素的權重,評論數量權重值為景點i與景點n各個評論數量之間的相似度[Ei,n],景點與用戶的距離權重值為景點i與景點n在距離上的相似度[Gi,n],并且這三個因數的權重比x、y、z之和必須等于1。重新得出新的加權平均公式:
[Qi,n=xEi,n+yGi,n+zHi,n]? ? ? ? ? ? ? ? ? ? ? ? ? ?⑷
[1=x+y+z]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?⑸
[Wa,i=1M(a)(Qi,n×Sa,n)1M(a)Qi,n]? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑹
上式中,經過優(yōu)化的物品協(xié)同過濾算法的實現,是在經過景點相似度計算之后的加權平均預測公式中加入評論數量和景點與用戶的距離因素,形成新的加權平均預測公式。根據新的公式進行計算,得出用戶對某一景點的潛在喜歡程度,從而篩選出相似的景點,得到最優(yōu)結果集并進行推薦,實現最優(yōu)的附近景點推薦,提高用戶的滿意程度。
2 實驗結果與分析
2.1 數據集
本文的數據來自全國旅游景點數據集,其中全國旅游景點數據集包含了5萬個景點數據。將數據集分為訓練集與測試集,然后再分為歷史數據集與附近景點數據集。數據集中主要包含以下屬性:用戶,景點,城市,評論數量,景點評分。
2.2 評估指標
本文使用準確率、召回率和F1值[8]來評估算法的性能。準確率代表推薦物品中準確推薦的比例,召回率則代表真實物品中被推薦出來的比例。F1值是準確率和召回率的加權平均。計算出每個景點的F1值,生成全部景點數據集的F1值表。F1的指數越高,代表推薦效果更好。
1)準確率:表示用戶喜歡的景點在用戶總推薦的景點數據中所占的比例,公式如下:
[Ti,n=iM|m(n)?r(n)|iM|c(n)|]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?;⑹
2)召回率:表示用戶喜歡的推薦景點數與用戶總喜歡的推薦景點數的比例,公式如下:
[Gi,n=iM|m(n)?r(n)|iM|m(n)|]? ? ? ? ? ? ? ? ? ? ? ? ? ? ?⑺
3)F1值的計算公式為:
[F1=Ti,n×Gi,n×2Ti,n+Gi,n]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?⑻
上式中:[Ti,n]代表i個景點對用戶n的準確率;[Gi,n]代表景點i對用戶n的召回率;m(n)為用戶喜歡推薦的景點;r(n)為用戶總喜歡的推薦景點;c(n)為用戶總的推薦景點。
2.3 實驗的結論與分析
本文中使用傳統(tǒng)的基于物品的協(xié)同過濾算法,與本文加入因素的改進的協(xié)同過濾算法來進行比較。對比數據與結果如下:
根據表1、表2繪制出兩種算法的對比折線圖更直觀地展示出對比的結果。
通過觀察圖3~圖5中整體的趨勢可以看出算法的準確率,召回率,F1值都呈上升趨勢,但相比較于傳統(tǒng)的協(xié)同過濾算法,本文提出的算法更優(yōu)于傳統(tǒng)的協(xié)同過濾算法。根據對比結果表明,協(xié)同過濾算法不能只對用戶、景點、評分這三點來作為推薦的主要重點,引入不同的特征點,把問題具體化,更能計算出最優(yōu)的推薦結果[9]。
3 結束語
本文首先提出使用Redis的GEO算法來實現對用戶地理位置景點的距離計算與數據的篩選。其次除評分因數外,再加入景點評論數量因數和景點與用戶的距離因數改進基于物品的協(xié)同過濾算法,得出更適合用戶喜歡的附近景點的推薦。改進的算法不僅考慮到景點與景點之間的相似度,也對用戶喜好與景點特征的相似度進行考慮,從而得出的推薦結果更能符合用戶的喜好。通過進行實驗傳統(tǒng)的協(xié)同過濾算法與本文算法來進行對比,結果顯示此方法提高了精確率與召回率從而提高F1值,使得推薦效果達到更好。
參考文獻:
[1] 周徐虎,李世港,羅儀,等.基于對稱映射搜索策略的自適應金鷹算法及應用[J/OL].電子科技:1-10[2023-06-23].https://doi.org/10.16180/j.cnki.issn1007-7820.2024.08.002.
[2] 張盼盼,劉凱凱.基于協(xié)同過濾算法的圖書推薦系統(tǒng)設計與實現[J].計算機時代,2023(8):144-146.
[3] 陳勇.基于協(xié)同過濾算法的旅游推薦系統(tǒng)的設計[J].價值工程,2022,41(30):160-162.
[4] 許馨,郭家赫,喬宇,等.一種基于遺忘機制與余弦相似度的智能推薦算法[J].軟件工程,2023,26(10):15-18.
[5] 程娟娟.高??蒲信c教學關系實證研究——基于皮爾遜相關系數的分析[J].中國高校科技,2022(10):46-52.
[6] 胡紅萍,喬世昌,孔慧華,等.基于加權平均樽海鞘群算法和BP神經網絡的COVID-19預測[J].新疆大學學報(自然科學版)(中英文),2022,39(1):19-25.
[7] 王睿,姜學軍.基于改進協(xié)同過濾的圖書推薦算法研究[J].信息技術與信息化,2023(4):149-152.
[8] 王照國,張紅云,苗奪謙.基于F1值的非極大值抑制閾值自動選取方法[J].智能系統(tǒng)學報,2020,15(5):1006-1012.
[9] 齊晶,劉瀛,劉艷霞,等.基于標簽的協(xié)同過濾推薦方法研究[J].北京聯合大學學報,2021,35(2):47-52.
【通聯編輯:謝媛媛】