亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Spark平臺下電影推薦系統(tǒng)的設(shè)計

        2020-11-12 10:38:42李光明房靖力
        計算機(jī)應(yīng)用與軟件 2020年11期
        關(guān)鍵詞:用戶系統(tǒng)

        李光明 房靖力

        (陜西科技大學(xué)電子信息與人工智能學(xué)院 陜西 西安 710021)

        0 引 言

        隨著計算機(jī)網(wǎng)絡(luò)的迅速發(fā)展,各種大型網(wǎng)站在實(shí)時建立和更新[1]。隨著各類網(wǎng)站的建立,產(chǎn)生了大量的數(shù)據(jù)信息。在當(dāng)今大數(shù)據(jù)時代[2]的背景下,人們逐漸從信息匱乏的階段過渡到信息爆炸的階段,在面對如此巨大的信息量時如何從大量信息中快速有效找到對自己有用的信息顯得尤為重要,個性化推薦系統(tǒng)由此產(chǎn)生。

        個性化推薦系統(tǒng)的核心是推薦算法模型的建立和算法模型運(yùn)行平臺的運(yùn)行速度。近年來,推薦算法在不斷發(fā)展,文獻(xiàn)[3]利用深度學(xué)習(xí)結(jié)合基于用戶的協(xié)同過濾算法進(jìn)行個性化推薦;文獻(xiàn)[4]采用自注意力與Metric Learning結(jié)合學(xué)習(xí)用戶的短期愛好進(jìn)行精準(zhǔn)推薦;文獻(xiàn)[5]基于協(xié)同注意力機(jī)制,對用戶與物品的若干相關(guān)評論進(jìn)行選擇,選出最重要的信息進(jìn)行推薦。以上幾種推薦算法在實(shí)驗(yàn)中都取得了不錯的推薦效果,但是針對搭建一個運(yùn)行于Spark分布式集群并對平臺中MLlib的協(xié)同過濾算法的優(yōu)化還有待進(jìn)一步的研究。

        對于同時考慮算法模型以及算法模型運(yùn)行平臺速度的研究,雖然從單機(jī)版的推薦系統(tǒng)產(chǎn)生,到如今的智能化、個性化推薦系統(tǒng),經(jīng)歷了許多的技術(shù)架構(gòu)演變,常見的推薦系統(tǒng)有基于Mahout的推薦系統(tǒng)[6]、基于Hadoop[7-8]的個性化推薦系統(tǒng)等。但推薦系統(tǒng)還面臨以下挑戰(zhàn):(1) 隨著數(shù)據(jù)量不斷加大以及用戶對推薦效果的要求不斷提升,使用傳統(tǒng)分布式技術(shù)架構(gòu)的推薦系統(tǒng)平臺的迭代計算速度已經(jīng)遠(yuǎn)遠(yuǎn)落后[9]并且會出現(xiàn)推薦效果差的情況,因此技術(shù)架構(gòu)需要有較大的改變與提升;(2) 當(dāng)選擇的數(shù)據(jù)文本存在著評分矩陣較為稀疏時[10],對最終的推薦結(jié)果準(zhǔn)確性也會產(chǎn)生一定的影響。

        由于Spark分布式技術(shù)近年來已經(jīng)趨于成熟,目前已廣泛應(yīng)用于大數(shù)據(jù)量的處理方面,針對以上問題,本文結(jié)合Spark分布式技術(shù)對推薦系統(tǒng)進(jìn)行設(shè)計,主要貢獻(xiàn)如下:(1) 使用包括Hadoop、Flume、Kafka、Spark,及Spark生態(tài)圈[11]內(nèi)組件Spark Streaming等進(jìn)行推薦系統(tǒng)架構(gòu)設(shè)計,并使用JavaEE[12]對系統(tǒng)展示端與數(shù)據(jù)管理端進(jìn)行設(shè)計實(shí)現(xiàn);(2) 融合基于改進(jìn)后的余弦相似性的協(xié)同過濾[13]及基于用戶喜愛物品的物品協(xié)同過濾并加入一個平衡因子ω解決因不同用戶評分方式不同導(dǎo)致的數(shù)據(jù)不一致性。

        1 Spark平臺與系統(tǒng)設(shè)計

        1.1 Spark平臺架構(gòu)

        Spark平臺包括Spark Core基本處理框架、Spark SQL結(jié)構(gòu)化數(shù)據(jù)的分析查詢引擎、MLlib機(jī)器學(xué)習(xí)庫、GraphX圖形計算框架,以及Spark Streaming類似于Storm的流處理框架,實(shí)現(xiàn)了類似于Hadoop生態(tài)圈的另一Spark生態(tài)軟件棧。

        Spark集群中主要配置一個Master節(jié)點(diǎn)和多個Worker節(jié)點(diǎn),通過在Master節(jié)點(diǎn)和Worker節(jié)點(diǎn)分別啟動運(yùn)行。如圖1所示,Spark中Driver通過運(yùn)行編好的Application的main函數(shù)來創(chuàng)建Spark的運(yùn)行環(huán)境SparkContext,而SparkContext通過集群資源管理(Cluster Manager)來進(jìn)行資源申請、調(diào)度、監(jiān)控等。每個Worker Node進(jìn)程負(fù)責(zé)創(chuàng)建Spark Executor進(jìn)程對Spark RDD進(jìn)行分布式計算[14]。

        圖1 Spark運(yùn)行框架

        1.2 系統(tǒng)架構(gòu)設(shè)計

        在考慮系統(tǒng)架構(gòu)設(shè)計時,需考慮后期各個模塊的可維護(hù)性和可擴(kuò)展性[14]。本系統(tǒng)包括三個主要的子系統(tǒng)模塊,分別是前端展示系統(tǒng)、后端數(shù)據(jù)管理系統(tǒng),以及離線數(shù)據(jù)推薦與實(shí)時數(shù)據(jù)推薦模塊,具體的系統(tǒng)架構(gòu)如圖2所示。

        圖2 系統(tǒng)總體架構(gòu)設(shè)計圖

        圖2中的系統(tǒng)總體架構(gòu)設(shè)計包括展示層、應(yīng)用層、數(shù)據(jù)處理層及存儲層四個層次,每層的詳細(xì)信息如下:

        (1) 展示層:主要包括前端頁面展示系統(tǒng)與后端數(shù)據(jù)管理系統(tǒng),前端頁面展示系統(tǒng)采用SSM框架、BootStrap、HTML、Jquery、JSP等技術(shù)進(jìn)行展示界面設(shè)計,展示界面分為門戶界面與詳細(xì)信息界面,分別為用戶提供熱門Item與TOP-N的Item的具體展示。后端數(shù)據(jù)管理系統(tǒng)主要采用SSM后端框架、Easy-UI前端框架、JSP等技術(shù)進(jìn)行后端界面設(shè)計,后端系統(tǒng)主要對系統(tǒng)用戶數(shù)據(jù)、推薦結(jié)果數(shù)據(jù)、Item信息數(shù)據(jù)等進(jìn)行維護(hù),以保證前端頁面的數(shù)據(jù)真實(shí)性與可靠性。

        (2) 應(yīng)用層:系統(tǒng)核心算法原型為Spark的機(jī)器學(xué)習(xí)庫中的協(xié)同過濾算法模型,該算法模型采用Scala語言編寫,本文采用優(yōu)化后的基于MLlib的系統(tǒng)過濾推薦算法模型。

        (3) 數(shù)據(jù)處理層:該層主要包括離線數(shù)據(jù)處理及實(shí)時數(shù)據(jù)處理模塊。其中,離線處理模塊在實(shí)驗(yàn)階段主要將MovieLens的離線數(shù)據(jù)導(dǎo)入HDFS中,由Spark Streaming讀取HDFS中的離線數(shù)據(jù)再經(jīng)過MLlib中優(yōu)化后的協(xié)同過濾算法模型迭代計算生成最終推薦結(jié)果存入Hive數(shù)據(jù)倉庫中,再由Spark SQL對Hive中的數(shù)據(jù)進(jìn)行TOP-N排序[16],產(chǎn)生TOP-N推薦結(jié)果存入MySQL數(shù)據(jù)庫中供展示層調(diào)用。而實(shí)時數(shù)據(jù)處理模塊主要是對前端頁面進(jìn)行埋點(diǎn),本系統(tǒng)的埋點(diǎn)范圍主要包括頁面跳轉(zhuǎn)信息、用戶在頁面停留時間信息、點(diǎn)擊信息、評分信息等構(gòu)成用戶隱式動作信息日志并存于Tomcat服務(wù)器中,由Flume數(shù)據(jù)采集軟件采集到服務(wù)器中的日志文件上傳到Kafka消息隊(duì)列中,接下來由Spark Streaming對Kafka消息隊(duì)列中的數(shù)據(jù)進(jìn)行數(shù)據(jù)流處理。同樣通過算法模型將最終結(jié)果存入MySQL數(shù)據(jù)庫中,應(yīng)用層定時讀取實(shí)時結(jié)果數(shù)據(jù)展示在個性化推薦欄中。

        (4) 存儲層:該層主要包括的持久層軟件有HDFS、MySQL與Hive數(shù)據(jù)倉庫工具,為展示層、應(yīng)用層、數(shù)據(jù)處理層提供數(shù)據(jù)支撐。

        1.3 系統(tǒng)功能設(shè)計

        一個完整的推薦系統(tǒng)包括前端頁面展示系統(tǒng)、后端數(shù)據(jù)管理系統(tǒng)、實(shí)時數(shù)據(jù)流處理模塊、離線數(shù)據(jù)處理模塊、推薦算法模塊等。本系統(tǒng)應(yīng)用以上各類子系統(tǒng)、模塊,并基于Spark大數(shù)據(jù)處理平臺以及平臺機(jī)器學(xué)習(xí)庫的協(xié)同過濾算法模型對數(shù)據(jù)量進(jìn)行處理,得出推薦結(jié)果。

        前端子系統(tǒng)與后端數(shù)據(jù)管理子系統(tǒng)和推薦模塊之間都是相互獨(dú)立、解耦合并易擴(kuò)展。每個子系統(tǒng)都擁有獨(dú)立的前后端開發(fā)框架與獨(dú)立的持久層軟件,系統(tǒng)之間通過數(shù)據(jù)接口進(jìn)行連接。

        前端展示系統(tǒng)與后端數(shù)據(jù)管理系統(tǒng)的系統(tǒng)功能模塊圖如圖3和圖4所示。

        圖4 后端數(shù)據(jù)管理子系統(tǒng)功能模塊圖

        1.3.1前端展示子系統(tǒng)

        前端展示子系統(tǒng)包括用戶注冊以及個人資料編輯,對電影的查看、評價、收藏、搜索,對推薦出的TOP-N電影展示等功能模塊。其中推薦注冊模塊除了填寫用戶個人信息之外,需要用戶選取感興趣的幾個電影主題,系統(tǒng)結(jié)合用戶的人口統(tǒng)計學(xué)信息及興趣信息解決協(xié)同過濾算法的冷啟動問題,可以為新用戶提供基于興趣的幾個熱門電影。同時,在用戶瀏覽電影信息、對電影評分、收藏電影時,通過網(wǎng)頁埋點(diǎn)的方式獲取他們的隱式評分?jǐn)?shù)據(jù)及隱式動作數(shù)據(jù),可以實(shí)時分析用戶的興趣主題電影。

        1.3.2后端數(shù)據(jù)管理子系統(tǒng)

        后端數(shù)據(jù)管理子系統(tǒng)主要用于對各類計算后的推薦數(shù)據(jù)及電影信息數(shù)據(jù)、用戶信息數(shù)據(jù)進(jìn)行操作。系統(tǒng)共包含普通管理員與超級管理員兩類用戶,超級管理員對普通管理員的信息進(jìn)行管理維護(hù)。普通管理員主要對電影信息及用戶信息進(jìn)行管理維護(hù),其中電影管理模塊的數(shù)據(jù)主要來源為離線電影信息數(shù)據(jù),即經(jīng)過推薦算法模型計算后的TOP-N電影信息,前端通過各項(xiàng)電影的推薦權(quán)重進(jìn)行推薦,權(quán)重越高,電影排名越靠前,同時管理員可以人工操作近期上映的熱門電影并將推薦權(quán)重升高,進(jìn)而在頁面上顯示TOP-N電影。

        2 推薦系統(tǒng)

        2.1 推薦系統(tǒng)概述

        現(xiàn)如今的推薦系統(tǒng)主要應(yīng)用于電商、新聞、旅游方面,為用戶提供個性化的物品、新聞、旅游信息,通過推薦系統(tǒng),在用戶可以得到自己想要的信息同時,也為企業(yè)帶來了潛在的客戶與利益。

        一般推薦系統(tǒng)的推薦方式包括TOP-N推薦與評分預(yù)測等。TOP-N推薦是基于用戶的興趣與隱式行為信息為用戶推薦N個他可能感興趣的物品信息,而評分預(yù)測是猜測U對某個物品I可能的打分。

        2.2 協(xié)同過濾算法

        協(xié)同過濾(Collaborative Filtering,CF)[17]主要有基于User的協(xié)同過濾算法、基于Item的協(xié)同過濾算法、基于Model的協(xié)同過濾算法。基于User的協(xié)同過濾算法主要計算用戶的相似度,當(dāng)用戶U1和用戶U2對物品A都有較高的評分時,則認(rèn)為用戶U1與U2具有較高的相似度,所以當(dāng)U1對物品B評分較高時,便會將物品B推薦給用戶U2?;谖锲返膮f(xié)同過濾算法主要計算物品的相似度,該算法認(rèn)為兩個物品具有相似度是因?yàn)閮蓚€物品同時屬于許多個用戶樣本興趣列表中,當(dāng)多個用戶對物品A感興趣的同時對物品B也具有同樣的興趣度,則認(rèn)為物品A、B具有很高的相似度。

        2.3 隱式行為數(shù)據(jù)處理

        在前端頁面中通過網(wǎng)頁埋點(diǎn)的方式對用戶操作隱式行為進(jìn)行記錄,通過這些隱式行為信息可以發(fā)現(xiàn)用戶對電影的偏好規(guī)律進(jìn)而基于此進(jìn)行推薦。本文獲取的隱式行為數(shù)據(jù)包括用戶的收藏信息、頁面跳轉(zhuǎn)信息、頁面停留時間、電影評分信息等。

        在對以上數(shù)據(jù)處理后形成一個三元組(userId,itemId,preferDegree),userId:用戶ID,itemId:物品ID(在這里為電影ID),preferDegree:偏好度。其中偏好度通過用戶的點(diǎn)擊次數(shù)、頁面跳轉(zhuǎn)次數(shù)、頁面停留時長、電影評分等進(jìn)行加權(quán)平均。權(quán)重系數(shù)如表1所示。

        表1 隱式行為權(quán)重系數(shù)

        根據(jù)表1的隱式行為信息與權(quán)重信息可以得到如下的偏好度結(jié)果公式:

        Pij=μ1pij+μ2pij+μ3pij+μ4pij

        (1)

        式中:Pij表示用戶i對電影j的四種隱式行為及權(quán)重系數(shù)的乘積之和,即最終的偏好度;μn表示用戶行為信息的權(quán)重系數(shù);pij表示用戶i對電影j操作行為,使用操作單位數(shù)乘以權(quán)重系數(shù),若無操作,則為0。最終將Pij作為三元組的preferDegree結(jié)果,作為最終偏好度。

        2.4 基于物品的協(xié)同過濾算法流程及改進(jìn)

        基于物品的協(xié)同過濾算法(Item CF)主要為用戶推薦與他們之前喜歡物品相似的物品。算法模型與物品屬性無關(guān),而與喜歡物品的用戶行為有關(guān)。例如“啤酒紙尿褲”案例,發(fā)現(xiàn)美國男人在買紙尿褲的同時也會買一罐啤酒,超市于是將啤酒和紙尿褲放在一起增加銷售量。Item CF即認(rèn)為喜歡物品A的用戶同時也喜歡具有相似性的物品B。同時,在用戶對Item的評分過程中會對A、B這兩個“看似相似”物品的打分產(chǎn)生一定的偏差,有可能出現(xiàn)同時喜歡A、B物品(這里認(rèn)定評分大于4為喜歡該電影)的用戶數(shù)很多但用戶U對A打高分卻對B打低分的情況。所以需要對Item CF的算法流程做如下改進(jìn):

        (1) 對數(shù)據(jù)集進(jìn)行遍歷,對喜歡每個電影的用戶數(shù)進(jìn)行分類統(tǒng)計,存入新的文件movie_popular中,則movie_popular[j]表示喜歡電影j的用戶數(shù)。

        (2) 使用movie_popular列表構(gòu)建電影喜好相似度矩陣,該矩陣將同時喜歡物品jn和物品jm的用戶總數(shù)填入相似度矩陣中,計算其物品相似度,如圖5所示。

        對于以上矩陣,可以根據(jù)喜歡電影的用戶數(shù)量得出相似度公式:

        (2)

        式中:Simjnjm表示電影jn與jm的相似度;N(jn)表示喜歡電影jn的用戶數(shù);N(jm)表示喜歡電影jm的用戶數(shù);分子表示同時喜歡電影jn和電影jm的用戶數(shù)。式(2)表示喜歡電影jn的用戶中喜歡jm的用戶比率。

        但是對于式(2),當(dāng)電影jn屬于熱門電影時,N(jn)與N(jm)的交集會有很大概率增大,使Simjnjm的值趨近于1,所以為了消除熱門因素帶來的影響,為上述公式分母加上電影jn的懲罰權(quán)重,如下:

        (3)

        由式(3)與movie_popular列表可以構(gòu)建出用戶相似度矩陣。

        (3) 在(2)中的電影相似度公式構(gòu)建中,僅僅針對用戶高評分?jǐn)?shù)據(jù)子集進(jìn)行電影相似度計算,而每個人對電影的打分習(xí)慣不同,有人對電影評分3分對他來說就是“高分”,所以要針對數(shù)據(jù)集中的大量稀疏的評分?jǐn)?shù)據(jù),使用修正的余弦相似度公式計算相似電影:

        (4)

        (4) 當(dāng)通過喜歡電影的共同用戶數(shù)計算相似度后可能出現(xiàn)某個用戶對相似度很高的A、B電影評分差距出現(xiàn)個體喜好性差異,所以本文采取集成基于共同喜歡的用戶數(shù)計算物品相似度和基于所有物品評分計算的余弦相似度兩種方式,并采用一個平衡因子ω來平衡兩種方法的權(quán)重,生成電影p和電影q的相似性,如下:

        (5)

        式中:平衡因子ω∈(0,1),ω的取值在實(shí)驗(yàn)中具體說明。Sim(p,q)能夠從整體上衡量物品之間的相似度。

        2.5 模塊實(shí)現(xiàn)

        推薦系統(tǒng)包括離線計算模塊和實(shí)時計算模塊,本文將對以上兩個模塊部分作主要說明。兩個模塊的數(shù)據(jù)走向如圖6所示。

        圖6 推薦系統(tǒng)數(shù)據(jù)走向圖

        2.5.1離線計算模塊

        本文的離線計算模塊使用MovieLens中的評分?jǐn)?shù)據(jù)集作為離線處理數(shù)據(jù)。隨著系統(tǒng)運(yùn)行,系統(tǒng)中的電影信息數(shù)量與用戶數(shù)量不斷增加,考慮采用基于Hadoop集群的分布式文件系統(tǒng)(HDFS)來存儲離線數(shù)據(jù),保證系統(tǒng)的性能與可擴(kuò)展性,可以避免單機(jī)情況下的系統(tǒng)性能下降與服務(wù)器宕機(jī)后數(shù)據(jù)的丟失。

        考慮到基于物品的協(xié)同過濾算法運(yùn)算過程中需要大量的迭代計算,選用基于內(nèi)存計算的Spark平臺來對推薦算法模型進(jìn)行迭代計算。其運(yùn)行速度是傳統(tǒng)計算框架Hadoop的十倍以上,并且?guī)в蠸park Streaming、Spark SQL、MLlib等一棧式開發(fā)組件,可以更簡便地對離線系統(tǒng)模塊進(jìn)行搭建。

        將離線數(shù)據(jù)存儲于HDFS中后,需要對數(shù)據(jù)進(jìn)行ETL進(jìn)而在Hive數(shù)據(jù)倉庫中建表,本文使用Spark SQL與Hive進(jìn)行集成對離線數(shù)據(jù)清洗,將清洗的結(jié)果分表存放于Hive中供后續(xù)算法模型使用。

        根據(jù)上文創(chuàng)建好的改進(jìn)的基于物品的協(xié)同過濾算法模型,通過RMSE(均方根誤差)以及MAE(平均絕對誤差)[18]兩種評測方式選取最好的推薦算法模型,將計算結(jié)果存入MySQL數(shù)據(jù)庫中,供前后端系統(tǒng)調(diào)用。

        2.5.2實(shí)時流計算模塊

        離線處理的數(shù)據(jù)大多是歷史舊數(shù)據(jù),一個好的推薦系統(tǒng)需要具有實(shí)時性,在對離線數(shù)據(jù)進(jìn)行計算的同時也需要獲取系統(tǒng)中用戶的實(shí)時日志數(shù)據(jù),進(jìn)而對其進(jìn)行計算產(chǎn)生推薦結(jié)果。實(shí)時流計算模塊需要解決的問題是假設(shè)最近在上映某一電影的第四部,則有些用戶突然想觀看這一系列的其他電影來了解整個系列電影的故事線,離線數(shù)據(jù)計算模塊就無法做到實(shí)時地為用戶推薦最近想看的電影,而實(shí)時流計算模塊可以根據(jù)用戶近期的點(diǎn)擊行為日志數(shù)據(jù)計算一些電影的相似度,將最相似的電影推薦給用戶,達(dá)到實(shí)時推薦的效果。

        在2.3節(jié)的隱式行為數(shù)據(jù)處理中,系統(tǒng)通過Flume采集實(shí)時生成的隱式行為日志文件,結(jié)合Kafka消息隊(duì)列,最終使用Spark Streaming作為Kafka的消費(fèi)者對日志數(shù)據(jù)進(jìn)行消費(fèi),經(jīng)過數(shù)據(jù)處理獲得用戶、電影、偏好度三元組,使用這個三元組數(shù)據(jù)進(jìn)行實(shí)時推薦階段的算法模型構(gòu)建。

        3 實(shí)驗(yàn)與分析

        3.1 評價標(biāo)準(zhǔn)

        一個推薦系統(tǒng)的好壞要看其準(zhǔn)確度、覆蓋率和新穎度[14]的高低,推薦系統(tǒng)的準(zhǔn)確度衡量一般通過評分預(yù)測或TOP-N進(jìn)行評判。本文使用評分預(yù)測方式對推薦系統(tǒng)準(zhǔn)確度予以評判。評分預(yù)測的預(yù)測準(zhǔn)確度方式包括RMSE和MAE,這兩種計算方式通過計算算法中預(yù)測的評分與用戶對項(xiàng)目的實(shí)際評分之間的偏差值來衡量預(yù)測的準(zhǔn)確度。

        本文實(shí)驗(yàn)使用均方根誤差RMSE作為評價標(biāo)準(zhǔn),其公式為:

        (6)

        式中:N代表項(xiàng)目的個數(shù)(即電影的數(shù)量);pi表示數(shù)據(jù)集中實(shí)際評分;ri表示算法模型的預(yù)測評分。(pi-ri)的值越小,整體RMSE的值越小,表明預(yù)測分?jǐn)?shù)與實(shí)際分?jǐn)?shù)的偏差越小,即推薦系統(tǒng)的精度越高。

        3.2 數(shù)據(jù)集與實(shí)驗(yàn)環(huán)境

        3.2.1數(shù)據(jù)集

        本文使用數(shù)據(jù)集來自GroupLens的ML-20M數(shù)據(jù)集,該數(shù)據(jù)集中包括138 491位用戶對30 106個不同種類電影的評分?jǐn)?shù)據(jù)約2 000萬條,在算法精度實(shí)驗(yàn)中使用它的精簡數(shù)據(jù)集ML-100K、ML-1M與ML-10M進(jìn)行對比實(shí)驗(yàn),分別包括10萬條評分?jǐn)?shù)據(jù)、100萬條評分?jǐn)?shù)據(jù)與1 000萬條評分?jǐn)?shù)據(jù)。

        3.2.2環(huán)境配置

        本文系統(tǒng)集群環(huán)境使用的是實(shí)驗(yàn)中的三臺普通PC機(jī),由一個Master節(jié)點(diǎn)和兩個Worker節(jié)點(diǎn)組成,分別命名為Spark01、Spark02和Spark03,三臺機(jī)器使用的系統(tǒng)環(huán)境是Linux Centos 7.0,機(jī)器之間使用局域網(wǎng)進(jìn)行網(wǎng)絡(luò)連接,節(jié)點(diǎn)上同時搭建了Spark集群、Hadoop環(huán)境下的HDFS分布式文件系統(tǒng)、Kafka消息隊(duì)列組件與Zookeeper分布式應(yīng)用協(xié)調(diào)組件,同時在Spark03上安裝MySQL數(shù)據(jù)庫與Hive數(shù)據(jù)倉庫工具,在Spark01上部署了Flume日志采集組件等。具體情況如表2所示。

        表2 Spark分布式集群配置表

        3.3 結(jié)果分析

        本文為驗(yàn)證改進(jìn)算法的基本表現(xiàn)以及Spark平臺的優(yōu)勢,進(jìn)行以下幾種對比實(shí)驗(yàn):

        實(shí)驗(yàn)一測試改進(jìn)算法的準(zhǔn)確性。在實(shí)驗(yàn)過程中使用評分稀疏度分別為5.88%的ML-100K數(shù)據(jù)集,其中包括6 040個用戶對3 900部電影的1 000 204條評分?jǐn)?shù)據(jù),本次實(shí)驗(yàn)從數(shù)據(jù)集中選取1 000、2 000、4 000、6 000個用戶,及其評分?jǐn)?shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)進(jìn)行RMSE對比實(shí)驗(yàn),ω的取值范圍為0<ω<1,在實(shí)驗(yàn)中ω的值每次增加0.2,觀察RMSE的值隨ω與評分?jǐn)?shù)據(jù)量的變化,如圖7所示。

        圖7 ω對RMSE的影響

        結(jié)果表明:算法的精度隨著ω的變化而受到影響,ω值過大或者過小都會使最終效果不理想。在本實(shí)驗(yàn)中,ω取值為0.6時,所得的RMSE結(jié)果最小,隨著測試數(shù)據(jù)樣本逐漸增大,RMSE減小緩慢,算法精度趨于穩(wěn)定。

        實(shí)驗(yàn)二使用相同的數(shù)據(jù)集ML-100K在Hadoop集群與Spark集群中測試算法的運(yùn)行速度,測試結(jié)果如圖8所示。

        圖8 Hadoop平臺與Spark平臺運(yùn)行效率對比

        結(jié)果表明,Spark平臺的計算速度遠(yuǎn)大于Hadoop平臺的計算速度,運(yùn)行速度提升36%左右,且隨著節(jié)點(diǎn)的增加,運(yùn)行速度呈線性下降趨勢,表明使用Spark平臺構(gòu)建推薦系統(tǒng)的優(yōu)越性。

        實(shí)驗(yàn)三為驗(yàn)證本文改進(jìn)算法的有效性,將本文使用算法與傳統(tǒng)的基于改進(jìn)后的余弦相似性的協(xié)同過濾及基于用戶喜愛物品的物品協(xié)同過濾進(jìn)行對比實(shí)驗(yàn)。本次實(shí)驗(yàn)使用相同數(shù)據(jù)集、Spark平臺下相同節(jié)點(diǎn)進(jìn)行RMSE值對比實(shí)驗(yàn),所得實(shí)驗(yàn)結(jié)果如表3所示。

        表3 對比實(shí)驗(yàn)結(jié)果

        結(jié)果表明:本文提出的改進(jìn)后的算法模型較基于改進(jìn)后的余弦相似性的協(xié)同過濾和基于用戶喜愛物品的物品協(xié)同過濾有較低的RMSE值,即算法精確度有所提升。在評分?jǐn)?shù)據(jù)矩陣較為稀疏的數(shù)據(jù)集中,使用評分值大于4數(shù)據(jù)計算相似度,縮小推薦范圍,一定程度上緩解數(shù)據(jù)的稀疏性,再結(jié)合余弦相似度計算去除無評分物品的物品相似度,整體算法相對于單個算法提升了推薦效果。

        4 結(jié) 語

        本文實(shí)現(xiàn)Spark平臺下電影推薦系統(tǒng)的實(shí)時與離線系統(tǒng)的搭建與基于協(xié)同過濾的算法改進(jìn)。使用基于Spark框架的推薦系統(tǒng)的運(yùn)行速度相比傳統(tǒng)的Hadoop集群模式的推薦系統(tǒng)提升36%左右,為不斷增加數(shù)據(jù)量的推薦系統(tǒng)的運(yùn)行效率提供保證。另外,在傳統(tǒng)的基于物品的協(xié)同過濾推薦算法的基礎(chǔ)上改為基于物品的協(xié)同過濾與電影相似度計算相融合的方式,提升用戶個性推薦的準(zhǔn)確率。

        本系統(tǒng)以不同用戶對物品的評分習(xí)慣作為出發(fā)點(diǎn),盡可能降低個人習(xí)慣對推薦結(jié)果帶來的影響,結(jié)果表明推薦結(jié)果有明顯的提升效果。

        下一步將針對有可能出現(xiàn)的“情懷”打分,即評價不高卻評分較高的情況,嘗試使用基于深度學(xué)習(xí)的自然語言處理技術(shù)對評價語義進(jìn)行研究,以提高算法的準(zhǔn)確度,優(yōu)化系統(tǒng)計算模型,達(dá)到更好的效果。

        猜你喜歡
        用戶系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        Camera360:拍出5億用戶
        一本久道综合在线无码人妻| 美国又粗又长久久性黄大片| 蜜桃视频第一区免费观看| 国产亚洲精品成人aa片新蒲金| 国产成人一区二区三区在线观看| av资源在线看免费观看| 美女射精视频在线观看| 少妇性l交大片7724com| 午夜亚洲www湿好爽| 无码人妻精品一区二区三区下载 | 一个人看的www片免费高清视频 | 亚洲av色香蕉第一区二区三区| 中文字幕亚洲一区二区不下 | 图片小说视频一区二区| 国产熟妇高潮呻吟喷水| 精品在免费线中文字幕久久| 综合成人亚洲网友偷自拍| 亚洲爆乳精品无码一区二区三区 | 欧美日韩人妻| 日本无吗一区二区视频| 婷婷色婷婷开心五月四| 色屁屁www影院免费观看入口| 久久精品国产亚洲综合色| 无码精品一区二区三区免费16| 国产精品人妻一区夜夜爱| 天天躁日日躁狠狠躁欧美老妇| 亚洲av理论在线电影网| 久草精品手机视频在线观看| 日韩一区av二区三区| 国产98在线 | 日韩| 久久久久久久一线毛片| 精品国产中文久久久免费| 国产又爽又大又黄a片| 伊人影院综合在线| 亚洲综合精品一区二区三区| 欧美a级毛欧美1级a大片| 日韩内射美女人妻一区二区三区 | 国产主播性色av福利精品一区| 天堂√在线中文官网在线| 无遮挡十八禁在线视频国产制服网站 | 97夜夜澡人人爽人人喊中国片|