高 昀,牛少彰
(北京郵電大學計算機學院,北京 100876)
近幾年來,隨著我國互聯(lián)網(wǎng)行業(yè)的快速發(fā)展和消費者網(wǎng)購習慣的形成,網(wǎng)上購物越來越普遍流行于大眾生活的方方面面?;ヂ?lián)網(wǎng)的高速發(fā)展為我國社會經濟的發(fā)展和創(chuàng)新提供了基礎,尤其是微信、微博等社交化平臺的興起,為生產商、銷售商帶來了新的發(fā)展機遇,為消費者提供了新的選擇,社交電商應運而生[1]。社交電商是一種全新的前所未有的電商模式,在這種新穎的模式下,生產商和銷售商可以利用社交媒體技術和社交網(wǎng)站、社交媒介、網(wǎng)絡媒介等傳播途徑來進行人際關系、商業(yè)信息流的互動,通過買家和賣家之間的交流互動、用戶自生內容等方式來幫助商品的營銷和銷售行為[2]。它以十分方便快捷的銷售方式和較低的商品定價,很快地在眾多銷售方式中脫穎而出,在人們的日常生活中得到了普遍的應用,滿足了人們對網(wǎng)上購物快捷、方便的要求。經過這幾年互聯(lián)網(wǎng)經濟的推動,社交電商的規(guī)模日漸壯大,對社會的貢獻程度逐步加深,社交電商逐漸在中國的經濟社會中占有越來越重要的位置。而與社交電商日常推廣和銷售相適應的各種工具平臺也如雨后春筍般相繼出現(xiàn)。社交電商在使用這些工具平臺的過程中也產生了大量的功能訪問數(shù)據(jù)。通過對社交電商的行為數(shù)據(jù)進行分析和研究,能夠較為全面地了解社交電商的行為特征,針對不同種類的社交電商定制不同的服務。
隨著信息技術的不斷發(fā)展,人們對各種網(wǎng)站、各種APP的使用越來越頻繁,在瀏覽網(wǎng)站和使用APP的過程中會生成許多的訪問痕跡,這些訪問痕跡的數(shù)據(jù)也被稱為網(wǎng)絡日志。生成的網(wǎng)絡日志能夠間接反映用戶的行為信息,蘊含大量的有價值的信息,需要通過數(shù)據(jù)挖掘進行用戶行為分析才能提取出有價值的信息。前人對用戶行為分析方面做了細致的工作。
Chen等人[3]針對電子商務網(wǎng)站中用戶瀏覽和購買商品的行為數(shù)據(jù),將其進行分布式表示,通過利用不同上下文中項目行為的分布式表示之間的余弦距離,借此來預測用戶什么時候會產生下一次點擊商品或者購買商品的行為。
Devineni等人[4]主要是從用戶的社交數(shù)據(jù)中提取出不同的時間間隔里用戶的社交行為特征,從而分析用戶的社交行為,基于此實現(xiàn)了一個可視化框架用來展現(xiàn)用戶的個性化行為。
Guimaraes等人[5]采用社交中產生的網(wǎng)絡數(shù)據(jù),從網(wǎng)絡數(shù)據(jù)中提取用戶特征,通過深度學習算法對用戶的年齡組進行分類分析。
袁興福等人[6]構建了電商用戶訪問會話模型,并且基于此模型中的行為序列進行聚類分析,可以為營銷方案的制定提供理論依據(jù)。
徐赟等人[7]基于實際的淘寶數(shù)據(jù)集做行為分析,分析了只逛不買的電子商務用戶行為,利用聚類分析的方法總結出四種只逛不買的用戶類型。
毛佳昕等人[8]主要是針對新浪微博中的用戶數(shù)據(jù),考慮了社會影響力在微博網(wǎng)絡環(huán)境中的傳播情況,探究出用戶行為之間深層次的關系,提出了一種度量社會影響力的方法,該方法主要是根據(jù)預測用戶傳播信息能力大小來判定社會影響力的。
李磊等人[9]研究了微博的熱點話題,對微博用戶的行為進行聚類分析,從而將微博用戶大致分為三類:(1)一般關注類,該類用戶是三類中最多的一類,所承擔的角色一般而言是信息的接收者;(2)主動參與類,該類用戶的表現(xiàn)是主動發(fā)布輿論信息,該類用戶的人數(shù)處于中等;(3)信息傳播類,該類人數(shù)最少,主要是作為輿情領袖的角色,傳播重要的信息,擁有很大的話語權。
從相關文獻可以得到結論,用戶行為分析離不開數(shù)據(jù)挖掘以及聚類分析。數(shù)據(jù)挖掘是通過采用一定的方法來挖掘出深藏在海量數(shù)據(jù)表面下的有價值的信息。數(shù)據(jù)挖掘經常使用的方式多種多樣,包括分類、聚類、機器學習、統(tǒng)計學方法和神經網(wǎng)絡方法等。而從上述的相關文獻也可以看出,分析用戶行為最常用的數(shù)據(jù)挖掘方法就是聚類分析了。不少用戶行為的研究中會采用K-means這個聚類算法,因為其原理簡單而且比較容易實現(xiàn),但是它也有自己的弊端,那就是必須提前指定初始參數(shù),比如聚類數(shù)k值,這就會導致聚類的結果隨機性比較大,容易出現(xiàn)局部最優(yōu)解以及聚類結果不穩(wěn)定的情況。所以在本文中,采用了改進后的K-means聚類算法來對社交電商在工具 APP上產生的日志信息進行用戶行為分析,劃分用戶群體性質。
大數(shù)據(jù)分析的整個流程包含三部分,分別是數(shù)據(jù)預處理、數(shù)據(jù)挖掘分析和模型效果評估。
第一步要進行的過程是數(shù)據(jù)預處理,我們能夠獲取到的數(shù)據(jù)一般來講與所需的數(shù)據(jù)是不一致的,并沒有我們想象中的完美。我們需要的數(shù)據(jù)往往來說是標準的,是一個二維表格,表格縱向代表的是每一條數(shù)據(jù),表格橫向代表的是每條數(shù)據(jù)的屬性。然而我們能夠獲取到的數(shù)據(jù)卻很少情況是標準的,會出現(xiàn)各種各樣的情況,比如異常值和缺失值等情況,不但如此數(shù)據(jù)格式也是多種多樣的。所以在數(shù)據(jù)分析之前必須進行數(shù)據(jù)預處理,以便將雜亂的數(shù)據(jù)格式轉換成為二維表格的標準數(shù)據(jù)格式,才能夠更深層次的挖掘數(shù)據(jù)潛在的價值和規(guī)律。數(shù)據(jù)預處理過程有很多步驟,最關鍵的幾個步驟有:數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)規(guī)約以及數(shù)據(jù)變換。
處理完數(shù)據(jù)預處理的工作,緊接著要做的步驟是數(shù)據(jù)挖掘。數(shù)據(jù)挖掘指的是對數(shù)據(jù)進行深層次的挖掘,總結出數(shù)據(jù)深層次的價值和規(guī)律。通常會使用各種機器學習的方法來進行數(shù)據(jù)挖掘過程,以解決實際問題。機器學習的方法可以根據(jù)數(shù)據(jù)是否有標簽來分為兩種:有監(jiān)督的機器學習和無監(jiān)督的機器學習。有監(jiān)督的機器學習就是在數(shù)據(jù)標簽的“監(jiān)督”下,訓練過程中根據(jù)標簽內容不斷糾正模型。而無監(jiān)督的機器學習就是沒有數(shù)據(jù)標簽,因為在現(xiàn)實中很多情況下是不能預先知道數(shù)據(jù)的標簽的,所以此時就要通過計算數(shù)據(jù)集樣本之間的相似性來揭示數(shù)據(jù)內部規(guī)律。而聚類算法是最經典的無監(jiān)督學習的機器學習算法之一,有著十分廣泛的應用。
在大數(shù)據(jù)分析過程中得到機器學習模型后,要用一定的指標來衡量機器學習模型的性能優(yōu)劣。只有在衡量指標上表現(xiàn)良好的模型才具有一定實際應用意義,才可以用來解決生活中的實際問題。
聚類分析是一種在數(shù)據(jù)挖掘領域中比較基礎的數(shù)據(jù)處理手段,通過聚類算法對數(shù)據(jù)分類能夠將一個數(shù)據(jù)集劃分為若干個類內對象相似而類間對象相異的類簇[10],因此就可以在數(shù)據(jù)集中發(fā)掘出潛在的數(shù)據(jù)模式和深層次的內在聯(lián)系[11]。聚類的過程就是根據(jù)一組定義將一組對象劃分為多個集群的過程,其目的就是將具有相同特征的數(shù)據(jù)歸于用一個簇中。聚類算法通常屬于無監(jiān)督學習算法,不僅可以挖掘數(shù)據(jù)之間的潛在聯(lián)系,揭示數(shù)據(jù)的分布特征,還可以作為一種預處理方式,處理結果用于后續(xù)的數(shù)據(jù)分析。聚類算法已經廣泛應用在很多方面,比如電子商務、市場營銷、信息檢索和模式識別等。
目前,隨著機器學習的發(fā)展,已經有很多成熟的聚類算法。比如,基于劃分的聚類算法、基于密度的聚類算法、基于層次的聚類算法,基于網(wǎng)格的聚類算法基于模型的聚類方法等等,但是無論哪種方法都是比較數(shù)據(jù)集中每個對象之間的性質,將性質相似的對象歸為一簇中,將不相似的對象歸為不同的簇中[12]。
K-means是機器學習研究中最經常使用的聚類算法,也是十大經典的數(shù)據(jù)挖掘算法之一。它是一種基于劃分的聚類算法,同時也是一種無監(jiān)督學習。相對于其他的聚類算法,K-means以算法原理比較簡單,收斂速度快而著稱。K-means算法必須先提前指定聚類數(shù)和初始聚類中心,然后不停更新聚類中心,一步步減少目標函數(shù)的誤差值,當目標函數(shù)值呈現(xiàn)收斂的狀態(tài)時,整個過程終止,獲取到最終的聚類結果。
從算法原理上看,K-means也有自己的局限性。K-means這種聚類算法需要提前設置好參數(shù),也就是需要提前設置好聚類的個數(shù),同時會隨機初始化k個聚類中心。這種實現(xiàn)指定的k值和隨機初始化的聚類中心不僅會降低聚類算法的效率,而且得到的結果也可能是局部最優(yōu)的。
為了解決上述描述的K-means算法出現(xiàn)的問題,通常能夠采用Canopy算法來輔助K-means算法來做聚類分析。Canopy算法的聚類粒度比較粗略,它采用一種簡單方便的距離計算方法將數(shù)據(jù)集劃分為多個可重疊的子集 Canopy[13]。這種算法不需要指定k值、但精度較低,可以結合K-means算法一起使用:先由 Canopy算法進行粗聚類得到k個聚類中心,再將這k個聚類中心作為 K-means算法的初始聚類中心,再進行聚類。
從Canopy算法實現(xiàn)的步驟來看,Canopy算法的優(yōu)點明顯,同時也存在一定的缺點,就是要事先指定合適的 T1和 T2,閾值 T1,T2的選取和確定都比較困難,閾值的大小對聚類結果有很大的影響。根據(jù)Zhang等人[14]提出的的基于密度的Canopy算法,提出最大權重乘積法來確定聚類中心,減少隨機性帶來的不穩(wěn)定性。
對于大數(shù)據(jù)分析,現(xiàn)實中的日志信息和我們所需要的數(shù)據(jù)差別很大,為了得到實驗可以使用的標準數(shù)據(jù),首先要進行的過程就是數(shù)據(jù)的預處理工作。
從社交電商使用的某工具 APP中獲取 2020年1月的社交電商的日志數(shù)據(jù)。通過分析原日志的數(shù)據(jù)格式和字段含義,進行元數(shù)據(jù)分割和提取得到格式化數(shù)據(jù)。考慮進行用戶行為分析所需字段,保留必要字段部分,并且對日志數(shù)據(jù)進行一定統(tǒng)計計算,功能名稱映射為功能編號,得到用戶id,功能編號,功能圖標點擊次數(shù)和功能圖標點擊總次數(shù)。該工具 APP為社交電商提供了 18個功能的使用,因此功能編號范圍為1-18。數(shù)據(jù)的格式示例如表1所示。
表1 APP 功能按鈕點擊信息示例表Tab.1 The sample table of click information on App function buttons
獲取到數(shù)據(jù)后,要進行一定的數(shù)據(jù)過濾,過濾掉功能圖標點擊總次數(shù)在10以內的用戶,該類用戶一個月內的點擊圖標次數(shù)過少,不具有代表性;然后進行數(shù)據(jù)轉換,引入偏好指數(shù)的概念,以“功能圖標點擊次數(shù)/功能圖標點擊總次數(shù)”表示偏好指數(shù),代表用戶對該功能的偏好,建立用戶偏好模型,構造用戶的特征向量。用戶偏好模型為:
ti表示第i個功能的編號,wi就表示社交電商對第i個功能的“偏好指數(shù)”,即社交電商對某個功能的訪問次數(shù)和該位社交電商對所有功能的總訪問次數(shù)的比值,ni表示社交電商訪問第 i個功能的次數(shù)。比如社交電商在某個時間周期內一共訪問了100次功能,其中訪問功能1按鈕20次,訪問功能2按鈕40次,訪問功能3按鈕40次訪問其他功能的次數(shù)均為0次,這樣就可以計算出每個功能的“偏好指數(shù)”,那么社交電商的訪問特征就可以被表示為:{(1,0.2,20),(2, 0. 4, 40 ),(3, 0. 4, 40 ),(4, 0, 0), … ,(1 8, 0, 0) }。用戶的 i的特征向量可以表示為:
其中:Tin表示用戶i對第n個功能的“偏好指數(shù)”。
由于社交電商數(shù)量較多,特征向量的維度比較多,表示結構比較復雜,所以數(shù)據(jù)內部規(guī)律僅僅靠觀察是無法總結出來的,因此就需要針對社交電商的一些特征行為來使用聚類算法對其進行聚類分析。本文就是針對社交電商的功能訪問行為數(shù)據(jù)來對社交電商種類進行劃分。本文采用的聚類算法是基于密度 Canopy的改進 K-means算法。
Canopy是一種劃分粒度比較粗略的聚類算法,它采用一種簡單、快捷的距離計算方法通過計算數(shù)據(jù)之間的距離來將數(shù)據(jù)集劃分為多個可以重疊的子集,這種算法不需要指定k值、但精度較低,可以結合 K-means算法一起使用:先由Canopy算法進行粗聚類得到 k個質心。然后K-means的聚類中心可以直接指定為Canopy算法得到的 k個聚類中心,而不是隨機指定。標準Canopy算法需要指定兩個閾值T1,T2且T1> T2;隨機選擇數(shù)據(jù)集中的一個數(shù)據(jù)作為中心。閾值T1,T2的選取和確定都比較困難,閾值的大小對聚類結果有很大的影響??梢詫Υ诉M行改進,采用基于密度的Canopy算法,采用最大權重乘積法來確定聚類中心,減少隨機性帶來的不穩(wěn)定性。算法流程如圖1所示。
圖1 基于密度Canopy改進的K-means算法流程Fig.1 Improved k-means algorithm flow based on density canopy
為了衡量聚類結果的優(yōu)劣,可以考慮用輪廓系數(shù)來評估聚類模型的效果。輪廓系數(shù)是用來評價聚類效果好壞的一個指標。Pete在1986年首次提出這個指標。輪廓系數(shù)考慮了內聚度和分離度這兩個指標。它可以被用來在相同原始數(shù)據(jù)集的基礎上評價不同算法、或者算法不同運行方式對聚類結果所造成的影響。輪廓系數(shù)的值是處于[–1,1]之間的,它的值越大就代表內聚度和分離度都越好,分類的結果越好。
針對簇中的每個向量,各自計算各個向量的輪廓系數(shù)。然后將所有點的輪廓系數(shù)求平均,就是該聚類結果的輪廓系數(shù)。第 i個樣本的輪廓系數(shù)計算公式為:
其中,a(i)代表向量與同一簇中其他向量的差異程度的平均值,被稱為簇內不相似度;a(i)為向量i到其他簇中的向量的平均差異程度的最小值,被稱為簇間不相似度。
本次實驗實現(xiàn)了原始的K-means算法和基于密度 Canopy改進的 K-means算法,并首先對經典數(shù)據(jù)集 wine進行迭代計算,對比了改進前后K-means算法的迭代次數(shù),運行時間和輪廓系數(shù),實驗結果如表2所示。
表2 改進前后算法聚類效果對比Tab.2 Comparison of clustering algorithms before and after improvement
從實驗結果中可以看出來,基于密度Canopy改進的K-means算法消耗了更短的運行時間并且在較少的迭代次數(shù)下就達到收斂,由此可以說明改進后的K-means算法性能優(yōu)于原始的K-means算法性能。不僅如此,改進后的K-means算法的輪廓系數(shù)大于原始的K-means算法,也就是說改進后的算法的聚類效果更好??偠灾?,改進后的算法能在更少的時間內達到更優(yōu)的聚類結果。
在本次實驗中,將基于密度的Canopy算法和K-means算法結合起來來改進K-means算法,對本文社交電商數(shù)據(jù)集進行迭代計算。數(shù)據(jù)集中共有2708個社交電商的數(shù)據(jù),聚類算法的分類情況如表3。
表3 社交電商數(shù)據(jù)聚類算法的分類結果Tab.3 Classification results of the clustering algorithm based on social e-commerce data
將每一類的訪問偏好向量取平均值,求得每類的平均訪問特征向量,為了直觀觀察,將每類的平均訪問特征繪圖如圖2所示。
圖2 三類社交電商的功能訪問特征Fig.2 Functional access characteristics of three types of social E-commerce
從聚類結果可以看出,可以將社交電商分為三個大類,分別為“單一功能偏好者”、“功能使用均衡者”和“部分功能愛好者”。
社交電商群體1:“部分功能愛好者”。該群體總共有1 959人,占總人數(shù)比例為72.23%,人數(shù)占比最大,在功能1,功能6和功能10上訪問較多,均在10%以上,尤其是功能6可以達到30%,對其他功能的訪問比較少,在10%以下??梢酝茰y,大部分社交電商日常工作中使用最多的也就是某幾個功能。該類APP開發(fā)者需要對社交電商使用頻率多的功能進行重點研究,不斷改進這些功能使用的體驗感,提供穩(wěn)定的技術支撐,才能留住大部分社交電商。
社交電商群體2:“功能使用均衡者”。該群體總共有724人,占總人數(shù)比例為26.74%。該類社交電商對所有功能的訪問都比較平均,偏好程度均不超過10%,沒有特別明顯的功能訪問偏好,但是每一功能都有一定的使用。推測該類社交電商所需功能種類比較多,日常工作中涉及到的需求比較多,APP的功能種類豐富與否會影響該類社交電商對該類APP的選擇。
社交電商群體3:“單一功能偏好者”。該群體總共有25人,占總人數(shù)比例為0.92%,該類社交電商群體人數(shù)占比最少,該類顯著特征是80%以上的功能訪問都集中于功能12上,對其他功能的訪問少之又少。也就是說該群體偏向使用某一特定功能。推測該類社交電商是為了功能12這一特定功能來特地使用該工具APP的。
本文以社交電商在工具APP上產生的日志數(shù)據(jù)為數(shù)據(jù)集,然后利用機器學習中的聚類算法對社交電商的行為特征進行大數(shù)據(jù)分析,通過改進后的K-means聚類算法預測社交電商的分類,從功能訪問的角度對社交電商的行為展開分析。利用這一課題的研究為對社交電商群體進行用戶行為分析提供新思路。