梁肇敏, 梁婷婷
(南寧學(xué)院 人工智能學(xué)院, 南寧 530200)
互聯(lián)網(wǎng)飛速發(fā)展的現(xiàn)代社會(huì),信息技術(shù)正從各個(gè)方面影響著企業(yè)商業(yè)模式的改變。 在企業(yè)的商業(yè)活動(dòng)中,客戶是商業(yè)活動(dòng)的中心,只有客戶在商業(yè)活動(dòng)中產(chǎn)生消費(fèi)行為,企業(yè)才能獲得利潤和發(fā)展[1]。所以企業(yè)為了能夠讓客戶在自己的商業(yè)活動(dòng)中消費(fèi),就需要投入很多成本來吸引客戶。 在當(dāng)代社會(huì),電子商務(wù)日益發(fā)達(dá),更多的人喜歡在線上購買自己想要的商品。 考慮到人們?cè)诰€上各種各樣的消費(fèi)行為,隨即產(chǎn)生了大量的數(shù)據(jù),同時(shí)商家在線上也會(huì)提供大量的商品信息。 這樣導(dǎo)致用戶將無法精確選擇自己感興趣的商品,企業(yè)也無法對(duì)海量用戶進(jìn)行精確廣告投送,從而產(chǎn)生了網(wǎng)絡(luò)上信息過載的問題[2]。 為解決上述問題,需要對(duì)數(shù)據(jù)信息進(jìn)行精準(zhǔn)的推薦,用戶畫像則是實(shí)現(xiàn)推薦的重要環(huán)節(jié)[3]。 研究發(fā)現(xiàn),利用客戶產(chǎn)生的行為數(shù)據(jù)構(gòu)建用戶畫像,可以讓企業(yè)全面了解客戶的喜好,摒棄傳統(tǒng)單一的商品信息投送策略,進(jìn)而轉(zhuǎn)向精準(zhǔn)推薦投送,就能讓企業(yè)花費(fèi)最小代價(jià)找到契合客戶,客戶也能找到自己感興趣的商品,這對(duì)企業(yè)的發(fā)展和提高企業(yè)與用戶的溝通效率等都有積極的意義[4]。
本系統(tǒng)是基于電商平臺(tái)進(jìn)行設(shè)計(jì)和開發(fā),是面向注冊(cè)會(huì)員的偏好、行為習(xí)慣和人口屬性的畫像還原,同時(shí)也包括對(duì)商品信息的畫像還原。 提供用戶喜好和商品特征幫助營銷平臺(tái)提升營銷的精準(zhǔn)度,也有利于個(gè)性化推薦系統(tǒng)快速準(zhǔn)確地為每個(gè)用戶推薦相關(guān)的商品。
本系統(tǒng)設(shè)計(jì)并實(shí)現(xiàn)基于大數(shù)據(jù)的電商用戶畫像系統(tǒng)是為了將電商客戶數(shù)據(jù)收集起來,深度挖掘出其價(jià)值,從而應(yīng)用在企業(yè)的各種營銷活動(dòng)中。 所以系統(tǒng)應(yīng)該滿足:能從網(wǎng)速抓取客戶網(wǎng)上基本屬性、行為等數(shù)據(jù),全方位地分析用戶數(shù)據(jù),構(gòu)建用戶畫像,并且能以良好的交互方式展現(xiàn)給使用者[5]。 分析可知,系統(tǒng)應(yīng)該具有以下功能:
(1)服務(wù)端數(shù)據(jù)采集功能。 系統(tǒng)自身的客戶數(shù)據(jù)作為用戶畫像數(shù)據(jù)源的一部分,以文件的形式從各個(gè)子系統(tǒng)傳輸?shù)椒?wù)器的指定存儲(chǔ)目錄,系統(tǒng)進(jìn)行統(tǒng)一的匯總分析。
(2)網(wǎng)絡(luò)爬蟲功能。 電商網(wǎng)絡(luò)產(chǎn)生海量客戶行為數(shù)據(jù),這對(duì)構(gòu)建用戶畫像系統(tǒng)具有重要意義。 但是網(wǎng)上客戶行為更多是一些網(wǎng)頁鏈接地址數(shù)據(jù),所以需要爬蟲技術(shù)根據(jù)客戶訪問的網(wǎng)絡(luò)鏈接爬取鏈接所指向的文本內(nèi)容數(shù)據(jù),從而分析出行為偏好。 而面對(duì)網(wǎng)絡(luò)海量的電商客戶數(shù)據(jù),利用分布式爬蟲技術(shù)是很好的解決方案。
(3)數(shù)據(jù)存儲(chǔ)功能。 構(gòu)建用戶畫像系統(tǒng)所需要的數(shù)據(jù)具有海量、且數(shù)據(jù)類型多樣性等特點(diǎn),這就需要系統(tǒng)具備存儲(chǔ)海量多樣性數(shù)據(jù)的能力,以滿足海量多樣性數(shù)據(jù)存儲(chǔ)的需求。
(4)數(shù)據(jù)處理與分析功能。 從不同的數(shù)據(jù)源傳輸過來的數(shù)據(jù)并不能直接加以利用,更多是摻雜著許多“臟數(shù)據(jù)”,需要系統(tǒng)首先對(duì)數(shù)據(jù)進(jìn)行去重、數(shù)據(jù)標(biāo)準(zhǔn)化等預(yù)處理,此后才能利用各種算法模型去分析和挖掘出有價(jià)值的數(shù)據(jù),進(jìn)而構(gòu)建電商用戶畫像。
(5)數(shù)據(jù)可視化功能。 構(gòu)建用戶畫像后,提供給用戶使用。 系統(tǒng)需要提供生動(dòng)、直觀的報(bào)表、圖形等可視化界面,讓用戶更容易獲取和理解用戶畫像的分析結(jié)果。
基于大數(shù)據(jù)技術(shù)的電商用戶畫像的總體架構(gòu)如圖1 所示。 由圖1 可知,系統(tǒng)主要分為數(shù)據(jù)源層、數(shù)據(jù)獲取層、數(shù)據(jù)存儲(chǔ)和處理層、數(shù)據(jù)訪問層、數(shù)據(jù)服務(wù)和展現(xiàn)層。 系統(tǒng)中的每一層都對(duì)數(shù)據(jù)的處理有不同的任務(wù)和分工,根據(jù)整體架構(gòu)圖的設(shè)計(jì),對(duì)系統(tǒng)的各個(gè)功能層進(jìn)行全面的功能說明和描述。
圖1 系統(tǒng)整體體系架構(gòu)圖Fig. 1 Overall system architecture diagram
(1)數(shù)據(jù)源層。 用戶畫像系統(tǒng)的最低層是數(shù)據(jù)源層,該層以實(shí)現(xiàn)數(shù)據(jù)的ETL(Extract&Transform&Load)過程和利用Hadoop 進(jìn)行數(shù)據(jù)存儲(chǔ),不管是海量數(shù)據(jù)的存儲(chǔ)、還是其他形式的數(shù)據(jù),都應(yīng)持久化在本層,并通過Hadoop 的高可用、高可靠,保障數(shù)據(jù)使用的效率與存儲(chǔ)的安全性。
(2) 數(shù) 據(jù) 獲 取 層。 該 層 主 要 是 對(duì) 數(shù) 據(jù) 庫MySQL、MySQL Enterprise CGE、ERP 或者其他系統(tǒng)中的數(shù)據(jù)進(jìn)行采集,通過Sqoop 導(dǎo)入到大數(shù)據(jù)平臺(tái)中,Canal 是將數(shù)據(jù)實(shí)時(shí)采集到大數(shù)據(jù)平臺(tái)中,而Nginx 日志和其他文件通過Flume 進(jìn)行采集。
(3) 數(shù)據(jù)存儲(chǔ)層和數(shù)據(jù)處理層。 這2 層對(duì)數(shù)據(jù)的操作都是基于Hadoop 平臺(tái)來完成,主要是對(duì)用戶原始數(shù)據(jù)和中間數(shù)據(jù)進(jìn)行適當(dāng)?shù)奶幚砗痛鎯?chǔ)。 體系里分布式文件系統(tǒng)HDFS 負(fù)責(zé)對(duì)系統(tǒng)相關(guān)數(shù)據(jù)和用戶數(shù)據(jù)進(jìn)行存儲(chǔ)。 系統(tǒng)產(chǎn)生的標(biāo)簽存儲(chǔ)在傳統(tǒng)關(guān)系數(shù)據(jù)庫MySQL 中。 不論是系統(tǒng)產(chǎn)生數(shù)據(jù)、還是從外部源爬取的數(shù)據(jù)都會(huì)以大文件形式存儲(chǔ)在HSFS 和MySQL 中,隨后再導(dǎo)入到Hive 中進(jìn)行數(shù)據(jù)分析。Hive 分析結(jié)束后,會(huì)將分析的用戶畫像結(jié)果存儲(chǔ)在HBase 中,為最終數(shù)據(jù)可視化提供數(shù)據(jù)支撐。
(4)數(shù)據(jù)訪問層。 該層主要是為上層可視化或其他應(yīng)用提供數(shù)據(jù)接口服務(wù),使前端平臺(tái)能對(duì)其進(jìn)行有效連接。
(5)數(shù)據(jù)服務(wù)和數(shù)據(jù)展示層。 該層主要是利用SparkMLlib 相關(guān)算法庫進(jìn)行復(fù)雜的標(biāo)簽計(jì)算后,通過簡(jiǎn)潔清晰的界面展示給用戶。
用戶畫像構(gòu)建流程如圖2 所示。 就是將數(shù)據(jù)通過一系列操作轉(zhuǎn)換成映射的方法,以數(shù)據(jù)為驅(qū)動(dòng)力推動(dòng)用戶畫像的構(gòu)建。 先是將用戶的性別、郵箱、地址等屬性數(shù)據(jù)和行為、興趣愛好等行為數(shù)據(jù)進(jìn)行收集,然后利用相關(guān)機(jī)器學(xué)習(xí)算法對(duì)用戶數(shù)據(jù)做標(biāo)簽化轉(zhuǎn)換并進(jìn)行用戶畫像建模,最后根據(jù)用戶畫像模型進(jìn)行分析和可視化[6]。
圖2 用戶畫像構(gòu)建流程圖Fig. 2 User portrait building flowchart
標(biāo)簽體系是根據(jù)已注冊(cè)用戶的偏好、行為習(xí)慣和人口屬性等不同的領(lǐng)域而建立起來的[7]。 標(biāo)簽體現(xiàn)劃分需求分析見圖2,按領(lǐng)域可以分為人口屬性、商業(yè)屬性、行為屬性和用戶價(jià)值四類。
按具體的實(shí)現(xiàn)方式分為規(guī)則標(biāo)簽、統(tǒng)計(jì)標(biāo)簽和挖掘標(biāo)簽。
在本項(xiàng)目中,標(biāo)簽體系按照業(yè)務(wù)類型劃分為基礎(chǔ)標(biāo)簽和組合標(biāo)簽。 按領(lǐng)域可以劃分為:人口屬性、用戶的社會(huì)特征相關(guān)標(biāo)簽;商業(yè)屬性、電商平臺(tái)中購物相關(guān)的標(biāo)簽;行為屬性、電商平臺(tái)中的瀏覽、購買等行為標(biāo)簽。
按實(shí)現(xiàn)方式劃分為:規(guī)則標(biāo)簽、通過匹配標(biāo)簽的屬性值實(shí)現(xiàn)標(biāo)簽的業(yè)務(wù)邏輯;統(tǒng)計(jì)標(biāo)簽、使用數(shù)學(xué)統(tǒng)計(jì)方法實(shí)現(xiàn)標(biāo)簽業(yè)務(wù)邏輯;挖掘標(biāo)簽、使用數(shù)據(jù)挖掘算法實(shí)現(xiàn)標(biāo)簽的業(yè)務(wù)邏輯。
按業(yè)務(wù)類型劃分為基本標(biāo)簽和組合標(biāo)簽。 其中,基本標(biāo)簽描述基本屬性,如性別、民族、職業(yè)等。組合標(biāo)簽是多種基本屬性組合而成的,如高凈值用戶就是學(xué)歷、消費(fèi)能力、房產(chǎn)屬性的組合。
標(biāo)簽挖掘與算法總體流程如圖3 所示,對(duì)于挖掘類型標(biāo)簽開發(fā)來說,分為2 步:
圖3 標(biāo)簽挖掘流程與算法圖Fig. 3 Label mining process and algorithm diagram
(1)構(gòu)建算法模型。 構(gòu)建算法模型從業(yè)務(wù)數(shù)據(jù)中獲取算法特征數(shù)據(jù)(features),此外如果是監(jiān)督學(xué)習(xí)算法,需要標(biāo)注數(shù)據(jù)(label)。 流程包括業(yè)務(wù)數(shù)據(jù)、特征工程、訓(xùn)練模型、最佳模型、保存模型、標(biāo)注數(shù)據(jù)、特征轉(zhuǎn)換、特征提取、算法超參數(shù)和模型評(píng)估[8]。
(2) 模型預(yù)測(cè)值。 加載模型(算法模型提取訓(xùn)練好,保存起來),封裝方法(loadModel),如果模型不存在,使用數(shù)據(jù)訓(xùn)練,獲取最佳模型,并保存起來。predictionDF 結(jié)合屬性標(biāo)簽規(guī)則,給每個(gè)用戶標(biāo)注上具體的標(biāo)簽值。
系統(tǒng)所涉及標(biāo)簽數(shù)據(jù)存儲(chǔ)在MySQL 數(shù)據(jù)庫中。對(duì)于標(biāo)簽表和模型表,標(biāo)簽表負(fù)責(zé)存儲(chǔ)基礎(chǔ)標(biāo)簽,主要存儲(chǔ)標(biāo)簽名稱、標(biāo)簽規(guī)則、等級(jí)等基本信息。 模型表存儲(chǔ)每個(gè)4 級(jí)標(biāo)簽,具體Spark 應(yīng)用程序的相關(guān)信息。 存儲(chǔ)標(biāo)簽數(shù)據(jù)時(shí),也將標(biāo)簽數(shù)據(jù)同步存儲(chǔ)到Elasticsearch 索引中,方便使用標(biāo)簽進(jìn)行用戶查詢,基于Elasticsearch 為HBase 表構(gòu)建二級(jí)索引。
每個(gè)標(biāo)簽?zāi)P烷_發(fā)流程如圖4 所示。 首先是標(biāo)簽管理平臺(tái)新建標(biāo)簽,然后開發(fā)標(biāo)簽?zāi)P?,最后調(diào)度執(zhí)行。
圖4 標(biāo)簽?zāi)P烷_發(fā)流程圖Fig. 4 Label model development flow chart
標(biāo)簽調(diào)度如圖5 所示。 主要是基于Oozie 實(shí)現(xiàn)Web 管理平臺(tái)和Yarn 計(jì)算平臺(tái)的調(diào)度,方便計(jì)算任務(wù)的管理。 Oozie 在這里發(fā)揮公共協(xié)同的作用,所有的標(biāo)簽(模型應(yīng)用)都需要使用Oozie 來進(jìn)行調(diào)度、執(zhí)行標(biāo)簽計(jì)算。
圖5 標(biāo)簽調(diào)度流程圖Fig. 5 Label scheduling flowchart
標(biāo)簽管理平臺(tái)前端使用Vue,后端開發(fā)使用SpringBoot,這個(gè)管理平臺(tái)主要負(fù)責(zé)對(duì)標(biāo)簽的創(chuàng)建/查詢等進(jìn)行操作,并且對(duì)標(biāo)簽運(yùn)行狀態(tài)等進(jìn)行管理。開發(fā)人員可以使用平臺(tái)并應(yīng)用JAR 包上傳相應(yīng)的標(biāo)簽計(jì)算,啟動(dòng)標(biāo)簽計(jì)算任務(wù),方便標(biāo)簽管理[9]。
標(biāo)簽?zāi)P陀?jì)算如圖6 所示。 主要負(fù)責(zé)根據(jù)原始表數(shù)據(jù)以及MySQL 中的預(yù)先設(shè)置的標(biāo)簽規(guī)則進(jìn)行相應(yīng)的計(jì)算,比如對(duì)規(guī)則匹配型、統(tǒng)計(jì)型和數(shù)據(jù)挖掘型等標(biāo)簽有關(guān)的計(jì)算操作,最終得到用戶的標(biāo)簽結(jié)果,并將其存儲(chǔ)到HBase 中。 這里需要注意的是,在保存到HBase 的時(shí)候,本次的保存一定不能覆蓋掉上次計(jì)算的標(biāo)簽結(jié)果,要將歷史的標(biāo)簽數(shù)據(jù)和新生成的標(biāo)簽數(shù)據(jù)進(jìn)行合并操作,這樣才能保證數(shù)據(jù)的完整保存,不會(huì)造成數(shù)據(jù)丟失。 本模塊是用戶畫像的核心,主要負(fù)責(zé)根據(jù)原始數(shù)據(jù)以及標(biāo)簽規(guī)則進(jìn)行相應(yīng)的計(jì)算,比如規(guī)則匹配/統(tǒng)計(jì)/挖掘等相關(guān)操作,最終得到標(biāo)簽結(jié)果,將結(jié)果存入HBase 中。
圖6 標(biāo)簽?zāi)P陀?jì)算流程圖Fig. 6 Label model calculation flowchart
用戶畫像模型封裝基于關(guān)系型數(shù)據(jù)庫(PG)和大數(shù)據(jù)平臺(tái)(Hive、Impala)包含基礎(chǔ)標(biāo)簽與分析類知識(shí)標(biāo)簽,實(shí)現(xiàn)用戶特征全貌刻畫,即多種封裝角度,分用戶類型、渠道內(nèi)容、業(yè)務(wù)場(chǎng)景進(jìn)行封裝配置。接口數(shù)據(jù)實(shí)時(shí)推送,實(shí)現(xiàn)用戶畫像數(shù)據(jù)實(shí)時(shí)更新至運(yùn)營及營銷統(tǒng)一視圖(WeMeta、WeDate、WeSearch等)中進(jìn)行展現(xiàn),并實(shí)時(shí)反饋運(yùn)營及營銷信息問題,保證數(shù)據(jù)應(yīng)用的時(shí)效性。 展現(xiàn)UI 封裝依托用戶畫像,將推薦信息配置應(yīng)用端進(jìn)行可視化展現(xiàn),集中活動(dòng)運(yùn)營,實(shí)現(xiàn)千人千面的運(yùn)營效果[10]。
用戶數(shù)據(jù)畫像可視化界面如圖7 所示,涉及年齡分布、消費(fèi)占比、行業(yè)區(qū)分比例、新增會(huì)員信息、消費(fèi)記錄、所屬行業(yè)分布、用戶偏好、精準(zhǔn)營銷、地區(qū)分布可視化功能模塊,為企業(yè)提供了足夠的信息基礎(chǔ),能夠幫助企業(yè)快速找到精準(zhǔn)用戶群體以及用戶需求等更為廣泛的反饋信息。 用戶畫像是在了解客戶需求和消費(fèi)能力、以及客戶信用額度的基礎(chǔ)上,尋找潛在產(chǎn)品的目標(biāo)客戶,并利用畫像信息為客戶開發(fā)產(chǎn)品。
圖7 用戶數(shù)據(jù)畫像可視化界面Fig. 7 Visual interface of user data portrait
在用戶消費(fèi)數(shù)據(jù)可視化界面中,涉及用戶交易信息、交易量排名、商品分類占比、商品銷量排行、各平臺(tái)占比以及城市排行可視化功能板塊,可從多個(gè)維度了解用戶的消費(fèi)數(shù)據(jù)。 實(shí)現(xiàn)了對(duì)用戶準(zhǔn)確推送其感興趣內(nèi)容,到后來電商行業(yè)借助社交平臺(tái)的畫像能力展開營銷推廣,再轉(zhuǎn)變?yōu)殡娚绦袠I(yè)自行根據(jù)用戶消費(fèi)習(xí)慣、消費(fèi)能力進(jìn)行主動(dòng)畫像與營銷。
電商可根據(jù)用戶消費(fèi)習(xí)慣、消費(fèi)能力進(jìn)行主動(dòng)畫像與營銷。 在了解客戶需求和消費(fèi)能力,以及客戶信用額度的基礎(chǔ)上,尋找潛在產(chǎn)品的目標(biāo)客戶,并利用畫像信息為客戶開發(fā)產(chǎn)品。 只有對(duì)用戶的各個(gè)行為指標(biāo)進(jìn)行有效的分析,才能設(shè)計(jì)出讓用戶滿意的產(chǎn)品,最終創(chuàng)建出精準(zhǔn)的用戶畫像。
當(dāng)今的社會(huì),隨著信息技術(shù)的發(fā)展,數(shù)據(jù)呈現(xiàn)出指數(shù)級(jí)增長(zhǎng),利用用戶畫像技術(shù)來解決信息匹配問題不僅是在電商領(lǐng)域,還可以在越來越多的領(lǐng)域中得到應(yīng)用。 本文圍繞著大數(shù)據(jù)技術(shù)構(gòu)建用戶畫像系統(tǒng),通過抓取網(wǎng)上客戶數(shù)據(jù)進(jìn)行抓取,然后進(jìn)行數(shù)據(jù)去重、清洗和標(biāo)準(zhǔn)化等一系列數(shù)據(jù)處理后,根據(jù)實(shí)際商業(yè)業(yè)務(wù)需求構(gòu)建系統(tǒng)框架。 將系統(tǒng)各個(gè)組件整合起來,完成搭建工作,并對(duì)數(shù)據(jù)進(jìn)行處理、再計(jì)算出標(biāo)簽,最后根據(jù)相關(guān)算法模型構(gòu)建出用戶畫像模型,從而為下一步的信息匹配、推薦等業(yè)務(wù)奠定良好基礎(chǔ)。