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

?

基于ALS協(xié)同過濾算法的個性化推薦研究與應用

2016-05-28 09:09董銀
無線互聯(lián)科技 2016年6期
關鍵詞:個性化推薦協(xié)同過濾

董銀

摘要:隨著大數(shù)據(jù)和數(shù)據(jù)挖掘技術的不斷發(fā)展和成熟,個性化推薦越來越發(fā)揮著重要作用。為了能夠更有效地向用戶推薦其感興趣的產(chǎn)品,文章研究了在Spark平臺架構基礎上使用ALS協(xié)同過濾算法在個性化推薦系統(tǒng)中的應用,并對該系統(tǒng)作了性能和效果的評估。根據(jù)實驗表明,基于Spark平臺的ALS算法能有效地為用戶推薦其所感興趣的產(chǎn)品,從而達到個性化推薦的目的。

關鍵詞:個性化推薦;協(xié)同過濾;Spark;ALS

隨著互聯(lián)網(wǎng)數(shù)據(jù)的不斷增加,如何快速而高效地從如此豐富而復雜的大量數(shù)據(jù)中為用戶挑選出自己真正感興趣和喜歡的信息變得越來越緊迫。近年來隨著個性化推薦系統(tǒng)的興起和發(fā)展,為解決這些問題提供了重要手段。推薦系統(tǒng)通過記錄和分析用戶所產(chǎn)生的日志數(shù)據(jù)構建用戶的興趣模型,再通過用戶的興趣模型為用戶推薦其喜歡和感興趣的產(chǎn)品。目前個性化推薦系統(tǒng)在購物網(wǎng)站和新聞網(wǎng)站等領域得到了廣泛的應用,比如Amazon購物網(wǎng)站、豆瓣、今日頭條等。目前在推薦系統(tǒng)中應用最為成功和廣泛的推薦技術是協(xié)同過濾。

協(xié)同過濾是指收集用戶過去的行為以獲得其對產(chǎn)品的顯式或隱式信息,即根據(jù)用戶對物品或者信息的偏好,發(fā)現(xiàn)用戶的相關性或者物品本身的相關性,然后再基于這些相關性進行推薦。目前,基于協(xié)同過濾的推薦分為基于物品的協(xié)同過濾(ItemCF)、基于用戶的系統(tǒng)過濾(UserCF)和基于模型的協(xié)同過濾(ModelCF)。為了更加快速、有效和準確地為用戶推薦其喜歡的產(chǎn)品,本文主要研究了基于Spark平臺上的ALS協(xié)同過濾算法的個性化推薦系統(tǒng)。

1 Spark簡介

Spark是一個基于內(nèi)存計算的分布式框架,提高了在大數(shù)據(jù)環(huán)境下數(shù)據(jù)處理的實時性,同時保證了高可伸縮性和高容錯性。Spark中的計算模型和Hadoop中的MapReduce類似,不同于Hadoop的是,Spark的計算過程是在內(nèi)存中進行的,從而減少了硬盤的讀寫操作,可以將多個操作進行合并后計算,因此提升了計算速度。

圖1為Spark架構圖,其整體流程為:Client作為客戶端將應用程序提交到Driver中,Driver則向Master(即ClusterManager)申請資源,然后將應用程序轉換為RDD Graph,再由DAGScheduler將RDD Graph轉換為Stage的有向無環(huán)圖提交給TaskScheduler,由TaskScheduler將任務分發(fā)給Woker節(jié)點中的Exeutor執(zhí)行。

2 ALS算法研究

ALS是Alternating Least Squares的縮寫,意為交替最小二乘法。該方法常用于基于矩陣分解的推薦系統(tǒng)中。例如:將用戶(user)對商品(item)的評分矩陣分解為2個矩陣:一個為商品所包含的隱含特征矩陣,一個為用戶對商品隱含特征的偏好矩陣。在這個矩陣分解的過程中,評分缺失項得到了填充,因此可以基于這個填充的評分給用戶作商品推薦了。以下就ALS算法理論做一個介紹。

3 ALS算法在個性化推薦上的應用

為了實現(xiàn)ALS算法在Spark平臺上的具體應用。本文的系統(tǒng)結構主要由3個模塊組成,分別為輸入模塊、推薦模塊和輸出模塊。輸入模塊主要將用戶的行為數(shù)據(jù)轉換成用戶偏好數(shù)據(jù),再運用數(shù)字表示用戶對產(chǎn)品的偏好。推薦算法模塊主要是通過ALS模型的協(xié)同過濾算法生成推薦結果。輸出模塊是將通過推薦算法產(chǎn)生的推薦結果(去除掉一些用戶已購買過的產(chǎn)品),生成最終的推薦列表從而為用戶進行推薦。如圖2所示,為本文中個性化推薦系統(tǒng)的處理流程。

3.1 用戶偏好數(shù)據(jù)處理

通過解析用戶訪問網(wǎng)站所產(chǎn)生的行為日志,對用戶行為數(shù)據(jù)進行數(shù)據(jù)預處理操作(即ETL操作),得到用戶對某產(chǎn)品的瀏覽、購買、評論、加入購物車和加入心愿單行為數(shù)據(jù),作為用戶畫像模型的5組向量,再結合實際生活情況按5種不同行為分別賦予不同的權值。通過對用戶的行為進行加權處理后得到用戶對某產(chǎn)品的偏好得分。其中,偏好得分計算公式為:S =購買*0.4 +評論*0.15+購物車*0.25+心愿單*0.15+瀏覽*0.05,依此方法,最終形成用戶對所有產(chǎn)品的偏好得分,從而生成用戶的偏好模型。

3.2 構建ALS推薦模型

通過(1)中建立的用戶偏好模型是ALS的輸入樣本,其后的處理過程是:首先輸入用戶的偏好數(shù)據(jù)(偏好數(shù)據(jù)格式為:用戶ID、產(chǎn)品ID、偏好得分),然后初始化ALS權值,計算通過ALS預測的偏好得分和訓練樣本中的偏好得分的均方差,使其RMSE小于預定值,若未小于預定值則繼續(xù)訓練增加的模型,最后為用戶產(chǎn)生推薦列表。

3.3 Spark平臺上的實現(xiàn)

ALS算法在Spark平臺上的實現(xiàn)過程是:首先將用戶偏好數(shù)據(jù)從數(shù)據(jù)庫中導出上傳到HDFS(Hadoop Distribute File System)上,再使用SparkContext類中的textFile函數(shù)加載HDFS上的偏好數(shù)據(jù)文件并創(chuàng)建RDD(Resilient Distributed Datasets),作為ALS訓練的輸入數(shù)據(jù)。其次,輸入迭代次數(shù)向量I=(5,8,10,15,20)T和隱含因子向量R=(5,10,20,30,40,50,60,70)T,通過不斷初始化參數(shù)即循環(huán)選擇I和R的值,代入ALS類中的train(ratings,rank,numIterations,lambda)(其中:ratings為用戶的偏好數(shù)據(jù),rank為R中的隱含因子,numIterations為I中的迭代次數(shù),lambda為正則化參數(shù)本文中取0.01)函數(shù)中,生成用戶偏好的預測結果,計算每次更新參數(shù)后模型的RMSE,最終通過獲取最小的RMSE來確定最優(yōu)參數(shù)的取值。最后使用最優(yōu)的ALS模型為用戶做推薦,使用MatrixFactorizationModel中的recommendProductsForUsers方法為每個用戶生成推薦結果,并使用RDD中的saveAsTextFile函數(shù)將結果保存到HDFS上。

4 實驗和結論

4.1 實驗環(huán)境

本實驗組建的Spark集群由1臺Master主機、7臺Slaver主機組成。實驗中使用的數(shù)據(jù)為用戶每天在網(wǎng)站中產(chǎn)生的行為數(shù)據(jù),通過分析用戶的行為日志和ETL操作將其轉換為用戶對產(chǎn)品的偏好得分。其中共有11924653行用戶對產(chǎn)品的偏好數(shù)據(jù)、662926個用戶和75288個產(chǎn)品構成。

4.2 性能評估

為了驗證基于Spark 平臺下ALS協(xié)同過濾算法對推薦性能的影響,本文使用不同數(shù)目的Spark集群節(jié)點來做實驗以獲得較優(yōu)的效果。圖4為推薦模型訓練時間隨工作節(jié)點數(shù)目變化的情況。

由圖3可以看出隨著集群節(jié)點的增多,Spark ALS模型訓練時間不斷減少,但其處理速度并不是隨著節(jié)點增加而線性減少的。從圖4可知當工作節(jié)點增加到4個時,模型訓練速度的變化開始沒有那么明顯了,根據(jù)Amdahl定律,并行化的程序所獲得的加速比和程序中可并行執(zhí)行的代碼有直接關系,因此,處理時間并不是隨著節(jié)點線性變化的。

4.3 推薦效果評估

本文中通過調(diào)整隱含因子數(shù)量(rank)和計算的迭代次數(shù)(numIterations)來減小RMSE的值,從而達到最好的推薦效果。由圖4可以得出隨著隱含因子的增大,其模型均方差越小,表示其預測的模型越接近真實的偏好模型。

5 結語

本文首先對Spark和ALS協(xié)同過濾算法作了介紹和原理推導,然后研究了基于Spark平臺下的ALS協(xié)同過濾算法在個性化推薦上的性能和效果,發(fā)現(xiàn)基于Spark平臺下的ALS推薦模型可以為用戶合理、有效地推薦其感興趣的產(chǎn)品,從而可以提高用戶的體驗度和網(wǎng)站的轉換率等。

[參考文獻]

[1]李宇澄.協(xié)同過濾算法研究[D].上海:復旦大學,2005.

[2] Koren Y,Bell R,Volinsky C.Maxtrix factorization techniques for recommender systems[J].Computer,2009(8):30-37.

[3]Apache Spark.[EB/OL].[2013-12-20].http://spark.apache.org/.

[4]Wbite T.Hadoop權威指南[M].3版.北京:清華大學出版,2010.

[5]Pilaszy I,Zibriczky D,Tikk D.Fast ALS-based Matrix Factorization for Explicit and Implicit Feedback Datasets[C]// Proceedings of the fourth ACM conference on Recommender systems.New York:ACM,2010.

[6]李改,李磊.,基于矩陣分解的協(xié)同過濾算法[J].計算機工程與應用,2011(30):4-7.

[7]Hill M D,Mary M R.Amdahls law in the multicore era[J].Computer,2008(7):33-38.

Research and Application of Personalized Recommendation Based on ALS Collaborative Filtering Algorithm

Dong Yin

(School of Computer Science, Wuyi University, Jiangmen 529020, China)

Abstract: With the continuous development of big data and data mining technology, more personalized recommendation system has played an important role. In order to more effectively to recommend interesting products for user, this paper studies the application that using ALS collaborative filtering algorithm in personalized recommendation system on the spark paltform and evaluating the performance and effectiveness of the system. According to the experimental results show that the ALS algorithm based on Spark platform can effectively recommend the products they are interested in, so as to achieve the goal of personalized recommendation.

Key words: personalized recommendations; collaborative filtering; Spark; ALS

猜你喜歡
個性化推薦協(xié)同過濾
基于遠程教育的個性化知識服務研究
改進的協(xié)同過濾推薦算法
基于鏈式存儲結構的協(xié)同過濾推薦算法設計與實現(xiàn)
基于相似傳播和情景聚類的網(wǎng)絡協(xié)同過濾推薦算法研究
個性化推薦系統(tǒng)關鍵算法探討
基于協(xié)同過濾算法的個性化圖書推薦系統(tǒng)研究
混合推薦算法在電影推薦中的研究與評述
文本數(shù)據(jù)挖掘在電子商務網(wǎng)站個性化推薦中的應用
昌吉市| 南城县| 江津市| 宜兰县| 宽城| 桂东县| 潜山县| 聂拉木县| 绩溪县| 会宁县| 沭阳县| 广安市| 盖州市| 江西省| 灌阳县| 昌平区| 盐城市| 济阳县| 当涂县| 济南市| 全椒县| 安吉县| 油尖旺区| 九龙城区| 如皋市| 高密市| 沽源县| 平武县| 遂川县| 高雄县| 扶绥县| 佳木斯市| 湟源县| 株洲市| 长子县| 沅江市| 手机| 绥芬河市| 静安区| 玉环县| 德化县|