胡若彤,于樹松,侯瑞春,陶 冶
(1.中國海洋大學 信息科學與工程學院,青島 266000;2.青島科技大學,青島 266000)
隨著大數(shù)據(jù)、云計算等技術(shù)的不斷發(fā)展,應(yīng)運而生的電子商務(wù)平臺也在不斷壯大,從起初的簡單網(wǎng)上購物、網(wǎng)上消費的升級為互聯(lián)網(wǎng)經(jīng)營,據(jù)CNNIC于2017年1月份公布統(tǒng)計調(diào)查報告顯示[1]:到2016年12月,我國網(wǎng)民人數(shù)達到了7.31億,達到53.2%的互聯(lián)網(wǎng)覆蓋率,2018年11月11日的淘寶雙十一交易額達到2132億元,同比上一年增長26%。
越來越多的企業(yè)級應(yīng)用軟件和網(wǎng)站需要對客戶源信息進行分析形成可供企業(yè)應(yīng)用的用戶標簽信息,在龐大的互聯(lián)網(wǎng)環(huán)境下產(chǎn)生了大量的用戶行為,傳統(tǒng)的用戶畫像研究數(shù)據(jù)源主要是企業(yè)通過用戶的授權(quán)獲得的用戶數(shù)據(jù),是相對被動的數(shù)據(jù),而記錄軟件運行狀況的日志文件則記錄了各類角色在系統(tǒng)上的操作信息以及軟件的運行狀態(tài)信息。
日志文件作為近幾年數(shù)據(jù)源關(guān)注的焦點,數(shù)據(jù)量龐大,信息多樣化是日志文件的基本特點,同時網(wǎng)絡(luò)日志在運行過程中會產(chǎn)生大量的系統(tǒng)日志、應(yīng)用日志、安全日志和網(wǎng)絡(luò)日志[2],這些日志文件記錄了系統(tǒng)以及設(shè)備的運行狀態(tài)信息、事務(wù)處理信息等系統(tǒng)信息,如何利用這些日志文件并將這些日志文件內(nèi)的信息聚合轉(zhuǎn)換成用戶想看到的信息是近幾年國內(nèi)外學者關(guān)注的焦點。
每一個web網(wǎng)站以及軟件都擁有的日志文件是記錄著人們的一言一行的文件,對于一個web應(yīng)用,后臺生成的日志文件是海量的,每一種日志文件包含不同類型的數(shù)據(jù)信息,通過對日志進行分析,不但可以發(fā)現(xiàn)系統(tǒng)運行狀況同時也可以發(fā)現(xiàn)隱藏的各種系統(tǒng)角色的行為信息,例如當下所流行的軟件微服務(wù)架構(gòu)內(nèi)的每一個微服務(wù)所生成的日志文件也是各有不同,這些日志文件記錄了系統(tǒng)整體的運行狀態(tài)、客戶的操作狀態(tài)以及末端傳感器對數(shù)據(jù)的采集狀態(tài)信息而不同的日志文件類型以及不同的日志文件源構(gòu)成了日志文件異構(gòu)性的特點。
本文基于storm實時流處理框架對異構(gòu)日志文件做整合和實時處理,在不同的服務(wù)器上配置Filebeat以及l(fā)ogstash對日志文件進行采集,利用日志中蘊含的用戶穩(wěn)定的行為信息分,抽取出用戶興趣性、行為性以及傾向性的三個維度的標簽,主要方法為經(jīng)過D-S證據(jù)體算法對采集的異構(gòu)數(shù)據(jù)文件進行融合生成了用戶畫像里興趣性、傾向性和行為性三個維度的標簽值,為融合日志文件獲取用戶的消費習慣、消費傾向以及消費興趣提供了解決方案。通過對技術(shù)和算法的探討,推動了多源日志的研究和探索。
日志文件以記錄內(nèi)容分類可以分為三種:訪問型日志文件(主要對服務(wù)器的請求和應(yīng)答信息進行記錄)、應(yīng)用日志文件(主要對軟件的業(yè)務(wù)流程信息進行記錄)、操作系統(tǒng)日志文件(主要對操作系統(tǒng)運行狀態(tài)信息進行記錄),事務(wù)型日志文件(主要用于保持數(shù)據(jù)的一致性,記錄數(shù)據(jù)的增刪改查操作,用于數(shù)據(jù)回滾操作以及防止數(shù)據(jù)沖突的發(fā)生)、消息型日志文件(主要對用戶間即時通訊信息進行記錄)。
日志模塊作為操作系統(tǒng)、軟件框架以及程序中的重要的組成部分,它記錄著計算機系統(tǒng)的操作、運行狀態(tài)以及安全等信息,日志模塊內(nèi)的日志文件的數(shù)據(jù)特點主要是數(shù)據(jù)量大、內(nèi)容涵蓋廣泛且詳細,由于操作系統(tǒng)、軟件框架、程序甚至是設(shè)備的差異性而導致了日志的格式、類型、內(nèi)容不能夠完全統(tǒng)一,本文將異構(gòu)日志文件主要研究對象。
雖然基于Syslog的日志文件通用格式被廣泛運用于網(wǎng)絡(luò)設(shè)備日志以及l(fā)inux系統(tǒng)日志中,但是由于不同的軟件框架中的日志文件系統(tǒng)都是由程序開發(fā)人員在系統(tǒng)要求下自行定義的,許多系統(tǒng)以及軟件框架的日志文件格式、內(nèi)容、類型并不統(tǒng)一,我們需要從這些文件中提取出有用的用戶信息則需要建立異構(gòu)日志收集系統(tǒng)。
異構(gòu)日志文件采集步驟[3]:
1)異構(gòu)數(shù)據(jù)獲取,不同服務(wù)器、系統(tǒng)的日志文件的存放位置以及日志文件類型不同,需要配置不同的Filebeat數(shù)據(jù)輸入文件。
2)異構(gòu)數(shù)據(jù)預(yù)處理,原始的日志文件內(nèi)有一些信息對于日志分析是無用的,我們需要將這些信息過濾掉,減少下游系統(tǒng)的處理壓力。還有一部分信息比較隱私(比如用戶的訪問IP),不希望被他人獲取,可以將其匿名化處理。
3)模式發(fā)現(xiàn),對獲取的數(shù)據(jù)進行數(shù)據(jù)挖掘處理,包括分類、統(tǒng)計、聚類等方法。
4)模式分析,對發(fā)現(xiàn)的模式進行進一步的挖掘,根據(jù)系統(tǒng)需求對模式進行分析處理,例如發(fā)現(xiàn)用戶行為偏好,并將所發(fā)現(xiàn)的信息可視化,方便用戶更為直觀的觀察數(shù)據(jù),做出更正確的決策或者產(chǎn)生引導消費的功能。
本文以異構(gòu)日志作為數(shù)據(jù)源,構(gòu)建基于Filebeat和Logstash的異構(gòu)日志收集系統(tǒng),收集的日志文件將通過以Storm為框架的日志數(shù)據(jù)融合系統(tǒng)完成異構(gòu)日志文件到用戶畫像的流程。
隨著云計算、大數(shù)據(jù)、傳感器網(wǎng)絡(luò)和高速無線傳輸網(wǎng)絡(luò)等高科技快速發(fā)展和廣泛的應(yīng)用,用戶定制服務(wù)、服務(wù)內(nèi)容推送等個性化功能也應(yīng)運而生,用戶畫像是根據(jù)用戶屬性、生活習慣和消費行為等信息而抽象出的一個標簽化的用戶模型,web應(yīng)用生成的日志文件詳細記錄了用戶在web應(yīng)用內(nèi)所做的操作,而用戶對web應(yīng)用的訪問都是帶有目的性的[4]。
用戶畫像是根據(jù)用戶社會屬性、生活習慣和消費行為等信息抽象出得而一個標簽化的用戶模型,構(gòu)建在線社交用戶畫像模型的過程中,通常會使用較為通俗且貼近現(xiàn)實生活的語義標簽去描述在線社交用戶的屬性特征、行為特征和偏好特征[5]。而標簽是人為的將數(shù)據(jù)內(nèi)的特征提取出來抽象數(shù)據(jù)的過程,是一種把數(shù)據(jù)形象化的方法,與屬性不同,標簽是對該屬性狀態(tài)給出的結(jié)論,可以將標簽理解為業(yè)務(wù)規(guī)則的標準組成部分[6]。
對于一個用戶畫像來說場景的設(shè)定是必不可少的,本文設(shè)定D-S證據(jù)體的每一個識別框架作為用戶畫像的應(yīng)用場景,如圖1所示。
依據(jù)文獻[7]中所述的用戶畫像構(gòu)建步驟,本文的用戶畫像的構(gòu)建步驟主要為:
1)基礎(chǔ)數(shù)據(jù)采集,采用filebeat+logstash從不同的服務(wù)器內(nèi)收集異構(gòu)日志文件,通過storm實時流處理系統(tǒng)處理日志文件。
2)行為建模,基于AHP層次權(quán)重賦值法和D-S證據(jù)體融合的方法進行行為建模,抽象出用戶標簽,本文以用戶對當前網(wǎng)站的興趣性、購物傾向性以及網(wǎng)站操作行為性三個維度的屬性構(gòu)造用戶標簽。
3)數(shù)據(jù)可視化分析,此項步驟不在本文的討論范圍之內(nèi)。
用戶畫像評價指標如圖1所示。
圖1 用戶畫像評價指標體系圖
其中Ai表示為識別框架。將用戶的興趣性、傾向性以及行為性設(shè)計成三個維度的評價指標,三個維度的語義表示為:興趣性是指用戶A對網(wǎng)站a的感興趣程度;傾向性是指用戶A可能在商品網(wǎng)站a購物的傾向程度;行為性是指用戶A可能在網(wǎng)站a上做與網(wǎng)站相關(guān)的行為程度。
A1表示用戶X對子網(wǎng)站的興趣評估標準,A2表示用戶X在子網(wǎng)站(購物類型網(wǎng)站)的購物傾向評估標準,A3表示用戶X在子網(wǎng)站的行為評估標準。
第三列的子模塊作為每一個評價標準的所需的元證據(jù),本文設(shè)定為當前評估標準的能力值。其中元證據(jù)主要包括:1)網(wǎng)站交易量:當前交易網(wǎng)站的全部交易成交量;2)用戶交易量:用戶在當前交易網(wǎng)站內(nèi)的成交量;3)網(wǎng)站瀏覽量:當前網(wǎng)站全部的瀏覽量;4)用戶瀏覽量:用戶在當前網(wǎng)站內(nèi)的瀏覽量。
圖2 異構(gòu)日志文件采集流程圖
Filebeat是一個輕量級日志文件采集工具,屬于本地文件的日志數(shù)據(jù)采集器,用于監(jiān)聽和采集日志,日志采集若直接通過logstash獲取文件對于服務(wù)器太過沉重且資源消耗量大,加入Filebeat的設(shè)計可以輕松獲得日志文件推送到中心logstash。
在所需獲取日志文件的服務(wù)器上安裝Filebeat,依次配置數(shù)據(jù)源的文件內(nèi)容,獨立出一臺服務(wù)器搭建logstash,本文取一臺服務(wù)器做數(shù)據(jù)源,此臺服務(wù)器的ip地址為:192.168.153.1,搭建logstash的服務(wù)器的ip地址為:192.168.153.255。
配置Filebeat,由于服務(wù)器的差異,所有在每臺服務(wù)器安裝和配置Filebeat時需要特別修改一下配置文件,配置日志文件獲取方式以及日志文件路徑地址。
更改服務(wù)器本地Filebeat的配置文件 fi lebeat.yml下日志文件目錄路徑:
本文中的異構(gòu)日志文件類型為:交易日志、消息日志和訪問日志,從這三類日志文件內(nèi)提取出網(wǎng)站交易數(shù)據(jù),用戶瀏覽數(shù)據(jù)以及網(wǎng)站訪問量數(shù)據(jù)進行數(shù)據(jù)融合,數(shù)據(jù)分析統(tǒng)計。
經(jīng)過上述討論,異構(gòu)日志文件采集系統(tǒng)流程設(shè)計如圖2所示。
Strom是區(qū)別于Hadoop的開源實時計算工具,它的框架處理模式與Hadoop非常相似,但隨著數(shù)據(jù)規(guī)模爆炸式的增長以及對實時數(shù)據(jù)處理功能的需求水漲船高,適用于海量數(shù)據(jù)處理的Hadoop對于實時數(shù)據(jù)的處理略顯吃力,然而針對實時數(shù)據(jù)處理Storm框架則可以滿足此類需求,其框架中提供的一系列基本概念是使其能夠進行海量日志實時計算的基礎(chǔ),而支撐其平穩(wěn)運行的是內(nèi)部處理模型。
Storm與Hadoop最顯著的不同在于Hadoop是需要結(jié)束的,而Storm則不需要結(jié)束,在下一個新數(shù)據(jù)到來的時候作為一個新的開始,如同水流一樣由高到底源源不斷。
Storm的主體數(shù)據(jù)結(jié)構(gòu)為Tuple(元組),也是Storm被處理的流數(shù)據(jù)(stream)的基礎(chǔ)組成單位,是消息傳遞的基本單元;storm的數(shù)據(jù)接受單元(spout)以及數(shù)據(jù)處理單元(bolt)是由用戶根據(jù)業(yè)務(wù)的復(fù)雜程度自行決定的。
Spout主要負責向一個指定的頻道發(fā)送數(shù)據(jù),而每一個bolt需要在內(nèi)部邏輯結(jié)構(gòu)中對這個頻道訂閱數(shù)據(jù)。
本文中Storm實時計算拓撲流程設(shè)計如圖3所示。
DateCollectSpout是從redis中獲取日志文件,并以tuple的形式發(fā)送給FilterBolt的數(shù)據(jù)源,F(xiàn)ileterBolt是日志過濾模塊,由于日志文件內(nèi)的記錄分為多種,我們需要將用戶購物記錄、網(wǎng)站整體瀏覽記錄、網(wǎng)站交易記錄獲取并下分到各個Bolt,此處的Bolt涉及兩種判斷:
判斷l(xiāng)og的完整程度,包括用戶名/網(wǎng)站地址、瀏覽量/交易量,當上述類別缺少則將其過濾掉。
判斷產(chǎn)品狀態(tài)值是否為空,根據(jù)海爾COSMOPlat的日志定義,日志記錄產(chǎn)品為空無法交易的情況,則將其過濾掉。
過濾出的t u p l e將通過批處理分別發(fā)送給WebPageViewInfoBol、DealInfoBolt、UserInterviewInfoBolt、UserPdInterViewBolt執(zhí)行頁面信息統(tǒng)計、交易信息統(tǒng)計、用戶瀏覽信息統(tǒng)計以及用戶產(chǎn)品頁面瀏覽信息統(tǒng)計的操作,生成的統(tǒng)計信息發(fā)送到WeightingBolt賦予內(nèi)外信息的權(quán)重并生成決策矩陣,DSEvidenceBolt則將決策矩陣作為識別框架融合生成DS證據(jù)體。
本文的日志主要來源于海爾COSMOPlat平臺,其中有n個用戶和m個子網(wǎng)站,在子網(wǎng)站中有s個交易類型的網(wǎng)站。
D-S證據(jù)體是一種不確定性推理方法,指一項事物由與之相關(guān)的外項進行評定所得到的關(guān)于此項事物的不確定程度,1967年Shafer[8]該理論進行了擴充引入了信任函數(shù)表達概率的上、下界,形成了基于“證據(jù)”和“組合”來處理不確定性推理問題的數(shù)學方法,在此基礎(chǔ)上形成了“證據(jù)理論”。
識別框架為用戶畫像評價標準體系:根據(jù)圖1所示,其中傾向性、興趣性、行為性設(shè)置為一級證據(jù)層,其他下分為二級證據(jù)層。
層次分析法又稱AHP構(gòu)權(quán)法(Analytic hierarchy process)是將復(fù)雜評價對象排列成為一個有序的遞階層次結(jié)構(gòu)的整體,再在各個評價項目之間進行兩兩的比較、判斷、計算各個評價項目相對重要性系數(shù)的方法,由Satty教授在20世紀70年代初期提出的一種定性和定量相結(jié)合的多準則決策方法,首先需要通過專家咨詢評定重要性比值,再經(jīng)過公式進行相應(yīng)的計算,本文用層次分析法構(gòu)造權(quán)重以及1~9標度法,對元證據(jù)賦予相關(guān)權(quán)重[9]。
設(shè)置專家組對一級和二級證據(jù)層評分,由于元證據(jù)只有四種,所以我們需要給一級證據(jù)賦予相應(yīng)的權(quán)重以區(qū)分相同元證據(jù)在不同的語境下不同的重要性。
表1 一級證據(jù)層決策判斷矩陣和權(quán)重
表2 二級證據(jù)決策判斷矩陣和權(quán)重
在D-S證據(jù)體中,需要設(shè)定BPA(Basic Probability Assignment)基本概率函數(shù),本文中的元證據(jù)的基本概率函數(shù)是以支持度的形式出現(xiàn)的,支持度代表的是個體占總體的比列,例如整個web網(wǎng)站的總瀏覽量為S,子網(wǎng)站a的瀏覽量為Sa,則子網(wǎng)站a的支持度為Sa/S;用戶A對子網(wǎng)站a的瀏覽量為S(A),對子網(wǎng)站a的支持度為S(A)/Sa。
以βij表示支持度,i表示第i個一級證據(jù)評價指標,j表示第j個二級證據(jù)評價指標(下同)。則用戶A對子網(wǎng)站a的支持βij=S(A)/Sa;而子網(wǎng)站a的全局支持度為βi=Sa/S。
設(shè)識別框架θi=Aij,其中θi的數(shù)據(jù)結(jié)構(gòu)是矩陣,用戶畫像指定了特定的用戶,所以在一級證據(jù)處設(shè)K=(1,2,…,k,…,m)表示子網(wǎng)站編號,一級證據(jù)的語義設(shè)定為用戶X對子網(wǎng)站K的屬性,二級證據(jù)處設(shè)置q為二級證據(jù)的個數(shù)。系統(tǒng)獲取了n個用戶和m個網(wǎng)站的數(shù)據(jù),則以n×m的矩陣形式展示出所采集的數(shù)據(jù),每一行代表一個用戶的數(shù)據(jù)向量,每一列代表一個網(wǎng)站的數(shù)據(jù)向量。
根據(jù)每個元證據(jù)的權(quán)重指數(shù)及其支持率構(gòu)成D-S證據(jù)理論的基本概率分配函數(shù)(即mass函數(shù)):
式中m(Aij)表示Aij的支持度,而m(Θi)表示Aij所表示的元證據(jù)不確定性的支持度。
D-S證據(jù)理論中信任函數(shù)Bel(θ)是指θ的可信程度[10],即本文定義的對一級證據(jù)評價標準的支持程度。而似然函數(shù)PL(θ)則是對θ的可能性的不懷疑程度,本文將其定義為一級證據(jù)不確定性的支持度。
信任函數(shù)與似然函數(shù)構(gòu)成對一級證據(jù)體的支持度區(qū)間。
D-S證據(jù)體代碼核心為將兩個元證據(jù)向量內(nèi)的核心證據(jù)值進行融合形成統(tǒng)一指標的過程。
本文的log數(shù)據(jù)來自海爾COSMOPlat平臺,以其中的訪問日志和交易日志為例,所采集的日志文件格式如下所示:
1)訪問日志:
Time:[2018 十一月 22 16:03:29(125985 ms)] Type:(INFO):com.nsneo.pub.moduleAC.MoudleAccessControlManImp:用戶[admin]登錄系統(tǒng),初始化第一個訪問界面[index.html]
Time:[2018 十二月 21 11:31:13 (460042 ms)] Type:(INFO):com.nsneo.pub.moduleAC.ModuleAccessControlManImp:用戶訪問系統(tǒng),切換系統(tǒng)模塊,ModuleId[datasb2b. fi rstPage.yhhinfo]
Time:[2018 十一月 22 16:03:29(125940 ms)]Type:(INFO):addons.haier.pub.HaierUserAccessRecord SimpleFactory : 海爾登記用戶訪問系統(tǒng)...
T i m e:[2 0 1 8 十二月 2 1 1 1:3 4:3 6(662495 ms)] Type:(INFO):addons.haier.pub.SysUserManFactoryforHaier:加密用戶信息字段,字段名為[CosmoStoreUser.loginPwd],字段值為[haier1234]
[2018 十二月 21 11:34:36 (662495 ms)] INFO:addons.haier.pub.SysUserManFactoryforHaier:加密用戶信息字段,字段名為[CosmoStoreUser.loginName],字段值為[胡懶懶]
2)交易日志:
[2018 九月 15 15:48:34 (527272 ms)] INFO :addons.haier.pub.HaierDataRule:產(chǎn)品[257],產(chǎn)品網(wǎng)站[],[大蒜]商戶[吉林農(nóng)嫂]用戶[USERNAME]
[2018 九月 15 15:45:49 (361971 ms)] INFO:addons.haier.pub.HaierDataRule:產(chǎn)品[910],產(chǎn)品網(wǎng)站[],[]狀態(tài)為空,不能交易
基于D-S證據(jù)體識別框架的三個維度的屬性,建立當前用戶的語境,根據(jù)識別框架內(nèi)的給出的支持度區(qū)間建立用戶畫像的標簽[11]戶X的用戶畫像如表3所示。
表3 用戶X的基本數(shù)據(jù)
根據(jù)式(1)計算其mass函數(shù),得到的mij如表4~表6所示。
表4 一級證據(jù)體mij的mass函數(shù)
表5 一級證據(jù)體m2j的mass函數(shù)
表6 一級證據(jù)體m3j的mass函數(shù)
經(jīng)過D-S證據(jù)體融合后,如表7所示。
表7 用戶X的D-S證據(jù)體融合數(shù)據(jù)
根據(jù)以上的基礎(chǔ)數(shù)據(jù),用戶X的用戶畫像為:目標產(chǎn)品為金鄉(xiāng)大蒜,網(wǎng)站可以根據(jù)此項行為性的標簽值推薦相同產(chǎn)品的不同商戶給用戶,或者將用戶作為大蒜商家的目標用戶推薦給商家,對于海南金芒用戶的興趣性和傾向性都為0,卻存在輕微的行為性在海南金芒這個產(chǎn)品里,所以我們可以將海南金芒作為用戶的潛在產(chǎn)品購買傾向里。
系統(tǒng)根據(jù)上述數(shù)據(jù)描述利用可視化工具在前端直觀的展示出用戶X的用戶畫像,使得營銷和運維人員更加直觀的挖掘客戶行為性的指向,具體的可視化工具并不在本文的討論范圍之內(nèi)。
隨著大數(shù)據(jù)等科學技術(shù)的不斷向前發(fā)展,各個軟件業(yè)務(wù)的拓展不僅僅限于傳統(tǒng)的業(yè)務(wù)模式,它們需要通過新興技術(shù)將自己的業(yè)務(wù)模式改善到更加廣闊的領(lǐng)域,獲得更好的用戶粘度以及用戶特性。
本文以異構(gòu)數(shù)據(jù)文件作為出發(fā)點,通過提取異構(gòu)日志文件內(nèi)具有特殊含義的字句,提取分析融合生成特定的用戶畫像。
使用storm實時流處理大數(shù)據(jù)框架以及Filebeat、logstash和redis等技術(shù),設(shè)計了異構(gòu)日志處理系統(tǒng),storm與hadoop最大的差異是其能夠完成實時處理的任務(wù),在當時當刻給出大數(shù)據(jù)處理結(jié)果,滿足用戶畫像的實時性,采用redis消息隊列存儲模式可以使得數(shù)據(jù)存儲轉(zhuǎn)換更加便捷。
傳統(tǒng)的用戶畫像數(shù)據(jù)源為用戶授權(quán)的數(shù)據(jù)或者企業(yè)采集的用戶數(shù)據(jù),來源復(fù)雜且不易獲得,企業(yè)因此對數(shù)據(jù)帶有很強的被動性,日志文件是系統(tǒng)本身記錄運行狀態(tài)的文件,是屬于企業(yè)的,本文提出的數(shù)據(jù)源為日志文件,使得企業(yè)在獲取數(shù)據(jù)上更占主動性。
用戶畫像的屬性值劃分往往是復(fù)雜的,本文將屬性值劃分為三個維度建立了評價指標,應(yīng)用AHP權(quán)重法和D-S證據(jù)體將獲得的數(shù)據(jù)融合成三個維度的屬性值,在此理論基礎(chǔ)上可以延伸到未來更加廣泛的評價標準維度計算,更加有利于企業(yè)通過應(yīng)用以及網(wǎng)站系統(tǒng)獲得詳細精確的用戶信息,不再被動的獲得用戶信息,推動企業(yè)走向更完整規(guī)范的道路。