【摘 要】本文在“互聯(lián)網(wǎng)+”背景下對基于Spark的電商智能推薦云平臺進(jìn)行了研究。首先闡述了該平臺研究的意義、Spark技術(shù)的主要功能和系統(tǒng)架構(gòu),最后探討了基于Spark的電商智能推薦云平臺的設(shè)計(jì)。
【關(guān)鍵詞】大數(shù)據(jù);Spark;智能推薦;云平臺
中圖分類號: TP391.3 文獻(xiàn)標(biāo)識碼: A 文章編號: 2095-2457(2018)26-0105-002
DOI:10.19694/j.cnki.issn2095-2457.2018.26.045
0 引言
隨著“互聯(lián)網(wǎng)+”和“移動互聯(lián)網(wǎng)+”等新一代信息技術(shù)的飛速發(fā)展,消費(fèi)者用智能終端(手機(jī)和平板電腦等)去電子商務(wù)網(wǎng)站、社交網(wǎng)絡(luò)、微博、微信上購物變得越來越方便。然而隨著電子商務(wù)規(guī)模的不斷擴(kuò)大,商品種類和信息的不斷增長,消費(fèi)者需要花費(fèi)大量的時間、精力才能找到自己想買的商品。尤其在移動互聯(lián)網(wǎng)環(huán)境下,消費(fèi)者在移動端顯得更沒有“耐心”,日益增長的商品信息和數(shù)據(jù)使用戶感到困惑與迷茫,因此,對于消費(fèi)者來說,如何從龐大的商品中快速找到自己需要的商品成為亟待解決的問題。同時,對于互聯(lián)網(wǎng)企業(yè)和生產(chǎn)服務(wù)提供商而言,如何讓自身商品信息從海量數(shù)據(jù)中脫穎而出并得到消費(fèi)者認(rèn)可也是亟待解決的一個問題。而智能推薦云平臺可以較好地解決上述問題。電商和企業(yè)可以通過智能推薦云平臺精準(zhǔn)的向消費(fèi)者推薦自己的商品,從而快速、全面、準(zhǔn)確的滿足消費(fèi)者需求。
本項(xiàng)目利用Spark和大數(shù)據(jù)挖掘等新一代信息技術(shù),構(gòu)建電商智能推薦云平臺,通過各種信息渠道(即如何利用社交網(wǎng)絡(luò)、微博、電商網(wǎng)站上的消費(fèi)者的綜合行為數(shù)據(jù))收集消費(fèi)行為的實(shí)時數(shù)據(jù)以及他們和品牌的互動行為,分析日志數(shù)據(jù)、用戶歷史行為、用戶屬性從而創(chuàng)建用戶興趣偏好模型,依據(jù)智慧推薦算法預(yù)測用戶對商品權(quán)重偏好并進(jìn)行排序,向消費(fèi)者智能推薦滿足需求與感興趣的商品列表,為用戶的消費(fèi)決策提供一定的參考。對生產(chǎn)企業(yè)來說,管理者能夠通過該平臺得出的信息來預(yù)測消費(fèi)者的潛在需求,打破了公司傳統(tǒng)的自頂而下的決策流程,全面轉(zhuǎn)向以消費(fèi)者為中心的組織架構(gòu)和業(yè)務(wù)流程,從而實(shí)現(xiàn)生產(chǎn)者與消費(fèi)者的雙贏。
1 Spark關(guān)鍵技術(shù)
Spark是為處理大數(shù)據(jù)而開發(fā)的并行通用計(jì)算平臺,與Hadoop集群系統(tǒng)具有相似的特點(diǎn)。但兩者最大的區(qū)別是Spark處理的中間計(jì)算結(jié)果是保存在內(nèi)存中,不需要讀寫分布式文件系統(tǒng),因此Spark能更好地適用于大數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代計(jì)算的地方。
1.1 Spark主要功能模塊
Spark主要有Spark Core、Spark SQL、Spark Streaming、GraphX和MLlib模塊組成,主要功能如下:
Spark Core:是集群系統(tǒng)中最核心的功能,包括創(chuàng)建SparkContext對象、任務(wù)提交與執(zhí)行、分布式部署任務(wù)與資源、分布式計(jì)算等。
Spark SQL:提供了對關(guān)系型數(shù)據(jù)庫的增、刪、查、改等的交互式操作,也可以對Hive和Json等數(shù)據(jù)格式的數(shù)據(jù)進(jìn)行符合要求的處理。
Spark Streaming:主要功能是將流數(shù)據(jù)集聚為彈性分布式數(shù)據(jù)集RDD,然后再進(jìn)行批量處理,提供大數(shù)據(jù)流式計(jì)算處理服務(wù),其數(shù)據(jù)吞吐量較大。支持的數(shù)據(jù)源包括Kafka、Twitter、MQTT、Flume、ZeroMQ和簡單的TCP套接字等。
GraphX:主要功能是通過調(diào)用其中的API,解決基于分布式的內(nèi)存圖形計(jì)算問題。在迭代計(jì)算次數(shù)較多的情況下,圖形計(jì)算和處理效率較高。
MLlib:通過調(diào)用其中的API接口,實(shí)現(xiàn)大量的機(jī)器學(xué)習(xí)有關(guān)的分類、統(tǒng)計(jì)、回歸等多種功能。方便了用戶,提高了效率,同時也大大降低了用戶的學(xué)習(xí)成本。
1.2 Spark系統(tǒng)架構(gòu)
Spark應(yīng)用程序從編寫到提交、執(zhí)行、輸出的整個過程采用集群的協(xié)作計(jì)算模式進(jìn)行,整個集群的系統(tǒng)架構(gòu)如圖1所示。
Spark集群管理器Cluster Manager:負(fù)責(zé)資源的分配與管理。用戶使用SparkContext提供的API,編寫了Driver application程序后,Spark集群管理器將各個Worker機(jī)上的計(jì)算資源(包括內(nèi)存和CPU)分配給應(yīng)用程序,但是并不負(fù)責(zé)對Execoutor的資源分配。
Spark工作節(jié)點(diǎn)Worker:從節(jié)點(diǎn)。由Spark集群管理器分配任務(wù)后,再由Spark工作節(jié)點(diǎn)創(chuàng)建一個Executor進(jìn)程,再將其資源和任務(wù)分配給Executor進(jìn)程,同時將資源信息反饋給Spark集群管理器。
Executor:為用戶提交的Spark應(yīng)用程序運(yùn)行在Worker node上的一個進(jìn)程,主要負(fù)責(zé)Worker工作節(jié)點(diǎn)分配的任務(wù)的處理,并且與Worker工作節(jié)點(diǎn)、Driver?App的交互與信息同步。
Driver App:客戶端應(yīng)用程序,運(yùn)行應(yīng)用程序的主函數(shù),將任務(wù)程序轉(zhuǎn)換為彈性分布式數(shù)據(jù)集RDD和有向無環(huán)圖DAG,并與Cluster Manager進(jìn)行通信與調(diào)度。
2 基于Spark的電商智能推薦云平臺的設(shè)計(jì)
在大數(shù)據(jù)下基于Spark的電商智能推薦云平臺根據(jù)消費(fèi)者的綜合行為數(shù)據(jù)(電商網(wǎng)站上的瀏覽、購買、反饋等行為)進(jìn)行分析和統(tǒng)計(jì),得出他們的個性偏好,并按照推斷的個性偏好建立消費(fèi)者偏好數(shù)學(xué)模型,預(yù)判消費(fèi)者的潛在需求??梢园延脩羝玫纳唐吠扑]給相應(yīng)的用戶和消費(fèi)者。同時也將預(yù)測的用戶潛在需求推送給企業(yè),因此打破了公司傳統(tǒng)的決策流程,全面轉(zhuǎn)向以用戶為中心的服務(wù)流程,提高企業(yè)的經(jīng)濟(jì)效益。主要包含信息收集和存儲模塊、信息處理和推薦模塊和輔助決策模塊等模塊。
2.1 信息收集和存儲模塊
信息收集和預(yù)處理模塊主要收集用戶和商品等信息,并進(jìn)行整合和預(yù)處理操作,將其轉(zhuǎn)換為符合項(xiàng)目要求的數(shù)據(jù)集格式并進(jìn)行存儲。
信息收集主要涉及到消費(fèi)者、生產(chǎn)廠商和管理人員等的。該模塊從用戶表中收集的用戶信息包括他們的用戶編號、用戶類別、姓名、年齡、性別、職業(yè)、興趣、商品偏好、郵箱等基本信息;從歷史的銷售表中讀取用戶曾經(jīng)購買過的商品編號和購買數(shù)量等;同時也可以根據(jù)用戶瀏覽網(wǎng)站的行為,記錄瀏覽了哪些商品、推薦了哪些商品和以及瀏覽和收藏次數(shù)等相關(guān)信息屬性;也可以從用戶對商品的反饋與評價表中獲取商品類別、用戶推薦類別用戶編號、用戶操作記錄、用戶評分與評價等信息。信息收集和存儲模塊將收集到的數(shù)據(jù)存儲到數(shù)據(jù)庫中,為用戶偏好的計(jì)算及商品的推薦提供基礎(chǔ)。
2.2 基于Spark的信息處理和推薦模塊
信息處理與推薦模塊主要任務(wù)是根據(jù)信息收集和存儲模塊收集到的用戶商品偏好與評分信息,將消費(fèi)者偏好的商品作為依據(jù),通過基于Spark的電商智能推薦云平臺智能分析與挖掘出潛在的用戶,并將偏好的商品信息推薦給用戶。該模塊主要由信息讀入、創(chuàng)建彈性分布式數(shù)據(jù)集RDD、智能挖掘和推薦、輔助決策模塊。
(1)信息讀入,創(chuàng)建彈性分布式數(shù)據(jù)集RDD:將信息收集和存儲模塊中收集的用戶商品偏好與評分信息作為數(shù)據(jù)集存儲在分布式文件系統(tǒng)中,通過腳本加載數(shù)據(jù)。由于偏好與評分?jǐn)?shù)據(jù)集為矩陣,并且不同系統(tǒng)的不同用戶評分標(biāo)準(zhǔn)不統(tǒng)一,因此在信息的抽取、轉(zhuǎn)換和加載的預(yù)處理過程中對用戶偏好的商品用1表示,其他為0。最后將處理后的數(shù)據(jù)集加載生成數(shù)據(jù)集RDD對象,以便Spark能使用該數(shù)據(jù)集RDD對象實(shí)現(xiàn)并行化處理操作。
(2)基于Spark的智能挖掘和推薦模塊:該模塊負(fù)責(zé)接收用戶歷史數(shù)據(jù)、商品銷售信息、用戶偏好信息和商品評價信息等。該模塊根據(jù)用戶的各類偏好,統(tǒng)計(jì)消費(fèi)者的各類偏好,并從用戶歷史數(shù)據(jù)和用戶屬性數(shù)據(jù)中提取到用戶的特征向量,再結(jié)合商品銷售信息、評價信息和用戶反饋信息進(jìn)行過濾、排名、統(tǒng)計(jì)等處理得到智能挖掘和推薦的結(jié)果。
在信息處理和推薦模塊的Spark云平臺中,創(chuàng)建SparkContext類的對象sc,再通過對象sc的函數(shù)textFile讀取分布式文件系統(tǒng)上數(shù)據(jù),創(chuàng)建RDD對象,最后通過函數(shù)parseUser讀取每行數(shù)據(jù),并以userID為關(guān)鍵值填充到數(shù)組中。函數(shù)interAction則根據(jù)關(guān)鍵值建立商品信息表。
2.3 輔助決策模塊
輔助決策模塊負(fù)責(zé)將信息處理和推薦模塊中智能分析和挖掘到的大規(guī)模數(shù)據(jù)進(jìn)行分析并預(yù)測消費(fèi)者的潛在需求,并且將用戶偏好的商品信息、偏好數(shù)據(jù)、用戶對商品的意見和建議等分析結(jié)果提供給不同權(quán)限的工作人員查詢,工作人員可以根據(jù)自己的工作性質(zhì)查詢自己所需的數(shù)據(jù),來制定推薦、營銷和決策方案,如應(yīng)對哪些商品進(jìn)行促銷、如何定價、目標(biāo)用戶群是哪些等,為商品的設(shè)計(jì)和企業(yè)的經(jīng)營決策提供一定的參考。
2.4 結(jié)束語
本文針對電商不斷發(fā)展以及用戶不斷增長的趨勢,將大數(shù)據(jù)和Spark技術(shù)引入到電商智能云平臺的建設(shè)中。本文首先介紹了電商智能云平臺研究的意義、Spark技術(shù)的主要功能和系統(tǒng)架構(gòu),最后探討了基于Spark的電商智能推薦云平臺的設(shè)計(jì),希望能對電商云平臺的研究提供一定的參考。當(dāng)然本文只是提出了初步的設(shè)計(jì),具體的實(shí)現(xiàn)有待進(jìn)一步的研究與完善。
【參考文獻(xiàn)】
[1]http://www.cnblogs.com/.
[2]http://baike.baidu.Com.
[3]俞華鋒.網(wǎng)絡(luò)大數(shù)據(jù)挖掘云服務(wù)平臺的構(gòu)建[J].科技視界.2013(18).
[4]俞華鋒.云計(jì)算下基于大數(shù)據(jù)的消費(fèi)者偏好測量和決策系統(tǒng)的研究[J].科技視界.2015(33).