周加偉
摘 要:在如今互聯(lián)網(wǎng)大數(shù)據(jù)的前提下,大量的網(wǎng)頁(yè)數(shù)據(jù)急速增長(zhǎng)。這種瘋狂式增長(zhǎng)無(wú)形中增大了物聯(lián)網(wǎng)信息積壓,大大的影響互聯(lián)網(wǎng)用戶的上網(wǎng)體驗(yàn)。為了解決互聯(lián)網(wǎng)信息過(guò)載的普遍現(xiàn)象,設(shè)計(jì)出基于Spark的電影推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),針對(duì)個(gè)性化推薦系統(tǒng)更新取得極大的改變,使得本文所設(shè)計(jì)的個(gè)性化推薦算法具有重要的意義。
關(guān)鍵詞:Spark;推薦系統(tǒng);互聯(lián)網(wǎng);個(gè)性化
一、Spark概述
Spark一般通常指Apache Spark ,作為計(jì)算機(jī)通用計(jì)算引擎主要應(yīng)用于海量的數(shù)據(jù)處理,與Hadoop相似都是美國(guó)加州大學(xué)伯克利分校開(kāi)源的通用并行框架,其與Hadoop MapReduce 相比而言,更多的繼承了Hadoop所存在的優(yōu)點(diǎn),如優(yōu)化了HDFS再次之前存在的不足,將離線推薦與Spark數(shù)據(jù)庫(kù)想連接,大大減少了離線狀態(tài)下不必要的數(shù)據(jù)傳輸與處理,同時(shí)增加了實(shí)時(shí)推薦與Spark Streaming相互連接,實(shí)時(shí)根據(jù)用戶網(wǎng)頁(yè)瀏覽興趣愛(ài)好加以實(shí)時(shí)推送數(shù)據(jù)信息,是Mlib模型化的產(chǎn)物,大大加快了運(yùn)行的速率,在數(shù)據(jù)挖掘的過(guò)程中與機(jī)器學(xué)習(xí)相互融合,使得迭代算法更加優(yōu)化于Hadoop ,這種根本性的改變也讓Spark一度過(guò)關(guān)斬將成為當(dāng)今數(shù)據(jù)分析與推薦的主流框架。
二、系統(tǒng)概要設(shè)計(jì)
結(jié)合需求分析和推薦系統(tǒng)的一般功能,我們把推薦系統(tǒng)分為前端子系統(tǒng)、后臺(tái)管理子系統(tǒng),推薦系統(tǒng)子系統(tǒng)三個(gè)大類。(1)用戶交互模塊:對(duì)于推薦系統(tǒng)來(lái)說(shuō),用戶交互模塊需要包括兩個(gè)最基本的功能,用戶相關(guān)操作以及展示功能。用戶的相關(guān)操作包括注冊(cè)、登錄、對(duì)電影進(jìn)行評(píng)分等,展示功能包括用戶登錄后的個(gè)人信息展示、歷史記錄展示、推薦列表展示與電影的詳情頁(yè)展示。對(duì)于一個(gè)網(wǎng)站來(lái)說(shuō)用戶交互模塊主要涉及到網(wǎng)站的業(yè)務(wù)邏輯,與推薦引擎的計(jì)算無(wú)關(guān)。因此本文的用戶交互模塊作為一-個(gè)獨(dú)立的子系統(tǒng)進(jìn)行設(shè)計(jì)。這個(gè)模塊主要涉及到和數(shù)據(jù)庫(kù)的通信和頁(yè)面的展示,可以采用MVC架構(gòu),利用Java語(yǔ)言開(kāi)發(fā)完成。開(kāi)發(fā)框架選擇Spring Boot和Spring Data Jpa。(2)數(shù)據(jù)收集模塊:數(shù)據(jù)收集模塊負(fù)責(zé)系統(tǒng)中相關(guān)數(shù)據(jù)的收集,數(shù)據(jù)可以分為靜態(tài)數(shù)據(jù)和動(dòng)態(tài)數(shù)據(jù)。其中,靜態(tài)數(shù)據(jù)包括產(chǎn)品和用戶信息,動(dòng)態(tài)數(shù)據(jù)包括用戶瀏覽記錄、評(píng)分等行為信息以及對(duì)推薦結(jié)果的反饋信息。系統(tǒng)中的信息來(lái)源包括互聯(lián)網(wǎng)和用戶交互模塊。(3)數(shù)據(jù)預(yù)處理模塊:數(shù)據(jù)的質(zhì)量往往對(duì)推薦系統(tǒng)的準(zhǔn)確性有著決定性的作用。系統(tǒng)收集的原始數(shù)據(jù)混雜著各種各樣的臟數(shù)據(jù),推薦系統(tǒng)無(wú)法直接利用這些數(shù)據(jù)。因此需要對(duì)原始數(shù)據(jù)進(jìn)行初步的清洗和整理,過(guò)濾掉無(wú)效信息,提取出推薦系統(tǒng)可以直接利用的部分。(4)推薦結(jié)果處理模塊:推薦引擎得到的初步結(jié)果,往往不能直接推薦給用戶,需要對(duì)結(jié)果進(jìn)一步處理。一般來(lái)說(shuō),原始的推薦結(jié)果需要經(jīng)過(guò)過(guò)濾、排行才能得到最后的結(jié)果。
三、結(jié)語(yǔ)
本文概述了Spark目前主要應(yīng)用的領(lǐng)域和方向,再次基礎(chǔ)之上介紹了電影推薦系統(tǒng)的相關(guān)工作與網(wǎng)絡(luò)模型,更改了Spark其中四個(gè)方面的方案介紹,優(yōu)化了傳統(tǒng)個(gè)性化推薦系統(tǒng)存在的不足,增加了目前互聯(lián)網(wǎng)大數(shù)據(jù)時(shí)代更加有效的推薦運(yùn)用。我相信在未來(lái)對(duì)相關(guān)推薦系統(tǒng)的進(jìn)一步研究后,個(gè)性化推薦系統(tǒng)將得到更加全面的設(shè)計(jì)與數(shù)據(jù)處理,在每一位幕后程序員的辛勤勞作之下,推薦系統(tǒng)會(huì)發(fā)生突破性的改變。
參考文獻(xiàn):
[1]唐振坤. 基于Spark的機(jī)器學(xué)習(xí)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[D].廈門大學(xué),2014.
[2]楊志偉. 基于Spark平臺(tái)推薦系統(tǒng)研究[D].中國(guó)科學(xué)技術(shù)大學(xué),2015.
[3]馮琳. 集群計(jì)算引擎Spark中的內(nèi)存優(yōu)化研究與實(shí)現(xiàn)[D].清華大學(xué),2013.