国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于spark的協(xié)同過濾推薦算法的改進

2019-10-08 09:03李淑敏夏茂輝趙志偉
軟件 2019年2期
關(guān)鍵詞:協(xié)同過濾聚類分析

李淑敏 夏茂輝 趙志偉

摘? 要: 在協(xié)同過濾推薦算法中,如果用戶-評價矩陣稀疏,共同評價的物品個數(shù)少,就很難準確的計算出用戶相似度,加上其它實際因素,會使最終的推薦結(jié)果與實際結(jié)果有很大的差異,推薦效果不佳。本文旨在通過改進算法的計算方式,融入更多實際因素,最終形成更準確的推薦結(jié)果集。首先,對數(shù)據(jù)進行預(yù)處理分類,降低冗余數(shù)據(jù)的計算和矩陣稀疏性。其次,考慮實際推薦中影響用戶相似度較大的因素,對用戶相似度計算做出改進。然后,通過構(gòu)造混合推薦函數(shù),在spark分布式計算平臺上進行離線和實時計算,減少了計算時間。通過最終的數(shù)據(jù)訓(xùn)練和結(jié)果集的對比,展示了改進后的算法在效率和準確率的提高程度。

關(guān)鍵詞: 協(xié)同過濾;聚類分析;用戶相似度;spark計算;MASE

【Abstract】: In the collaborative filtering recommendation algorithm, if the user-evaluation matrix is sparse and the number of items evaluated together is small, it is difficult to accurately calculate the user similarity. With the other practical factors, there will be very Big differences between recommendation result and the actual result. The purpose of this paper is to improve the calculation method of the algorithm and incorporate more practical factors to form a more accurate recommendation result set. First, the data is pre-processed to reduce the calculation of redundant data and matrix sparsity. Secondly, considering the factors that affect the user's similarity in the actual recommendation, the user similarity calculation is improved. Then, through the algorithm integration, the hybrid recommendation function is constructed, and the offline and real-time calculations are performed on the spark distributed computing platform, which reduces the time. Through the comparison of the final data training and the result set, the improvement of the efficiency and accuracy of the improved algorithm is demonstrated.

【Key words】: Collaborative filtering; Cluster analysis; User similarity; Spark calculation; MASE

0? 引言

隨著大數(shù)據(jù)時代的到來,網(wǎng)絡(luò)信息的快速膨脹讓人們從信息匱乏的時代不入流信息過載的時代。當(dāng)我們需要在海量信息中找到自己的個性化信息,我們可以借助于強大的搜索引擎。但是搜索引擎顯示內(nèi)容的前提是輸入關(guān)鍵字,而在現(xiàn)實中,很多時候沒有明確的需求,比如突然想聽最近的流行歌曲,當(dāng)前流行歌曲成百上千,用戶自己可能都不知道哪首歌符合自己的要求,沒有關(guān)鍵字輸入,搜索引擎也就變得無能為力。此時,推薦系統(tǒng)應(yīng)運而生[1]。

推薦系統(tǒng)通過分析用戶的歷史數(shù)據(jù),預(yù)測出的用戶感興趣的信息或者商品,幫助用戶從海量的數(shù)據(jù)中發(fā)掘自己的個性化需求。目前在電子商務(wù)、視頻音樂、網(wǎng)絡(luò)社交等各類網(wǎng)站和應(yīng)用中,推薦系統(tǒng)都扮演著不可替代的角色,所以對推薦系統(tǒng)的探索是非常有意義的。

1? 相關(guān)工作

推薦系統(tǒng)的核心是推薦算法,協(xié)同過濾推薦是推薦系統(tǒng)應(yīng)用最為成功的技術(shù)之一,所以本文將其作為研究的重點。協(xié)同過濾推薦算法包括UserCF算法和ItemCF算法。UserCF算法以用戶數(shù)據(jù)為中心,推薦結(jié)果集是與目標用戶相似度較高的其他用戶評價較高的物品。ItemCF算法以物品數(shù)據(jù)為中心,推薦結(jié)果集是與目標用戶歷史購買物品相似度最高的物品。在數(shù)據(jù)量豐富的情況下,各種推薦算法的大體都能取得較好的準確率,但現(xiàn)實中,用戶的歷史數(shù)據(jù)和評價矩陣幾乎都是稀疏的,同時,單臺服務(wù)器往往無法承受海量次數(shù)的數(shù)據(jù)計算,所以解決評分矩陣的稀疏性和算法的可擴展性是協(xié)同過濾推薦需要解決的兩大問題[2]。

為了能盡可能使推薦結(jié)果的準確度和計算速度達到最優(yōu)化,本文采用混合推薦算法。首先,先對數(shù)據(jù)進行預(yù)處理,即聚類,通過降維,減少冗余計算降低運行速度和增加服務(wù)器壓力。其次,采用混合推薦算法,動態(tài)調(diào)節(jié)參數(shù),以期使算法的適用范圍更廣,同時盡可能小的影響結(jié)果集的準確度。再者,算法的計算采用spark分布式計算,將海量數(shù)據(jù)的計算執(zhí)行部署在多臺服務(wù)器上,在增加算法可拓展性的基礎(chǔ)上,多條數(shù)據(jù)并行計算,計算效率明顯提高。最后,將通過混合算法計算出的推薦結(jié)果集持久化到數(shù)據(jù)庫,使用戶的推薦結(jié)果得到更快的反饋。

2? 算法詳細優(yōu)化流程

2.1? 算法優(yōu)化思路

在平臺方面,采用大數(shù)據(jù)平臺,數(shù)據(jù)計算采用spark分布式計算,數(shù)據(jù)的存儲和計算分布式部署在多臺服務(wù)器上,無論是離線計算和實時計算,spark的流式處理數(shù)據(jù)的效率都是非??捎^的[4]。在詳細算法方面,對推薦算法的多個環(huán)節(jié)進行優(yōu)化,以期得到準確性和效率的最大化。首先,通過聚類分析先對用戶進行模糊推薦。其次,考慮到物品的熱度和好評度,對余弦相似度和皮爾遜相似度進行優(yōu)化,得到用戶間的相似度,然后再計算出預(yù)測評分結(jié)果集。最后,根據(jù)動態(tài)參數(shù)進行加權(quán),得到最終的推薦列表。

2.2? 推薦算法的執(zhí)行過程

Flume從數(shù)據(jù)源收集數(shù)據(jù),經(jīng)過解析發(fā)送到kafka的topic中,spark程序啟動后,加載驅(qū)動,從topic中讀取實時數(shù)據(jù),先進行預(yù)分類,然后對用戶相似度、預(yù)測評分進行計算,得到推薦列表。最后,通過調(diào)節(jié)自定義參數(shù),計算最終的預(yù)測推薦函數(shù),形成最終的推薦列表,持久化到數(shù)據(jù)庫中,推薦給用戶。總體流程如圖1所示。

2.3? 算法詳細優(yōu)化過程

2.3.1? 平臺優(yōu)化

不同于傳統(tǒng)的推薦算法,大數(shù)據(jù)計算平臺采用分布式開源框架,可以將多臺PC機結(jié)合到一起,組成主從節(jié)點。主節(jié)點執(zhí)行管理功能,負責(zé)任務(wù)的分發(fā)和調(diào)度,從節(jié)點負責(zé)接收主節(jié)點的信息,進行數(shù)據(jù)計算[6]。這種分布式結(jié)構(gòu)在可靠性和承受高并發(fā)性都有著突出的優(yōu)勢。

推薦系統(tǒng)通常需要處理龐大的數(shù)據(jù),每秒刷新千百條數(shù)據(jù)是很常見的。如果要考慮推薦結(jié)果的準確性和計算時間,離線計算和實時計算都是有必要的。離線計算部分對于數(shù)據(jù)量、時間間隔要求等限制均較少,能夠得到較高的準確率。在線計算在準確度上不如離線,但能夠快速響應(yīng)用戶的請求[5]。所以通過實時計算和離線計算結(jié)合的形式能夠得到更準確的結(jié)果。在大數(shù)據(jù)平臺下,離線計算部分以hadoop的組件HDFS作為本地源數(shù)據(jù)的存儲載體,通過spark sql和Mlib進行模型構(gòu)建和函數(shù)計算,計算的結(jié)果存儲到HBase中或者再次存儲到HDFS中。在線計算部分通過flume進行數(shù)據(jù)的收集,將收集到的數(shù)據(jù)解析后發(fā)送到kafka消息隊列中,然后啟動spark進行流式計算。

離線和實時計算結(jié)合流程圖3所示。

2.3.2? 數(shù)據(jù)分類預(yù)處理

由于用戶數(shù)據(jù)量非常龐大,在對用戶數(shù)據(jù)進行計算時都需要對數(shù)據(jù)進行預(yù)處理,不僅能夠減少冗余數(shù)據(jù)給計算機帶來的計算負擔(dān),還能夠通過初始篩選,提高計算結(jié)果的精度。在各類推薦算法中,一般都需要數(shù)據(jù)清洗,去燥等預(yù)處理,而聚類算法是此階段必不可少的環(huán)節(jié)之一。同時,聚類分析的結(jié)果還可分析數(shù)據(jù)的稀疏性和關(guān)聯(lián)性[7]。本文中采用C-Means聚類對數(shù)據(jù)預(yù)處理,通過目標函數(shù)來計算出樣本點和聚類中心的隸屬度從而對數(shù)據(jù)進行自動分類。該算法的流程是:

由圖7可看出在spark平臺下,海量數(shù)據(jù)的計算效率是非常可觀的。在實際的生產(chǎn)環(huán)境中,一般都是組合多臺高性能服務(wù)器構(gòu)成集群,進行每日TB量級的數(shù)據(jù)計算,綜合實時計算和離線計算,為海量用戶提供更加準確的推薦服務(wù)。

4? 結(jié)論

通過以上結(jié)果的的對比,改進后的混合推薦算法,融入了更多的實際因素,能夠更準確的計算用戶相似度,最終提高推薦的準確度。同時,基于spark平臺的分布計算,在執(zhí)行效率上有很大的提高。本文給出的基于用戶的混合過濾推薦算法以用戶為中心,通過用戶歷史數(shù)據(jù)挖掘用戶的興趣,并將計算結(jié)果持久化,能夠讓用戶在海量信息中更快速準確地定位到自己的興趣商品。

參考文獻

林子雨. 大數(shù)據(jù)技術(shù)原理與應(yīng)用[M]. 人民郵電出版社. 2017, 242: 27-31.

史尤昭. 數(shù)據(jù)挖掘技術(shù)研究與應(yīng)用[J]. 軟件, 2015, 36(11): 38-42.

欒紅波, 文福安. 數(shù)據(jù)挖掘在大學(xué)英語成績預(yù)測中的應(yīng)用研究[J]. 軟件, 2016, 37(3): 67-69.

胡俊, 胡賢德, 程家興. 基于Spark 的大數(shù)據(jù)混合計算模型. 計算機系統(tǒng)應(yīng)用, 2015, 24(4).

譚云志. 基于用戶評分和評論信息的協(xié)同推薦框架[J]. 模式識別與人工能, 2016, 29(4): 359-366.

楊彬. 移動云計算中分布式計算卸載框架的研究[J]. 軟件, 2015, 36(6): 129-133.

趙雪. 基于用戶興趣的個性化協(xié)同過濾推薦算法研究[D]. 2014, 17: 15-25.

王成. 基于用戶協(xié)同過濾推薦效率和個性化改進[J]. 小型微型計算機系統(tǒng), 2016, 37(3): 428-432.

江周峰, 楊俊, 鄂海紅. 結(jié)合社會化標簽的基于內(nèi)容的推薦算法[J]. 軟件, 2015, 36(1): 1-5.

Francesco ricci, etc. Recommender systemshandbook[M]. NewYork: Springer, 2011, 1(1): 39-184.

猜你喜歡
協(xié)同過濾聚類分析
改進的協(xié)同過濾推薦算法