張晗 陳平華 秦勇
(1.廣東工業大學 廣東省廣州市 510006 2.東莞理工學院 廣東省東莞市 523830)
基于日志的分析方法方法,是將從服務器客戶端[1]收集的用戶日志映射到終端操作行為中,通過研究用戶與現有系統的交互關系,并進一步了解用戶的性格。對網絡用戶行為日志的應用過程主要包括數據的預處理、網絡用戶行為模型的構建和網絡用戶行為的分析。過去的研究表明用戶的性格特征的確通過網上的交互行為有所體現[2-3]。而目前用于分析用戶網絡行為研究性格分析通常有以下兩種方法:
基于機器學習的方法,該方法使用詞和詞類的頻率來量化文本,并結合支持向量機和樸素貝葉斯等傳統的機器學習方法進行個性分析。例如Talasbek 等人使用k-means 聚類機器學習算法描述人格分類[4]。傳統的方法其泛化能力較差,通常在某一特定領域表現優秀,例如機器學習方法多用于交通流量識別而在網絡流量分析中表現不好[5]。
基于深度學習的方法,近年來該方法在自然語言處理的問題研究中受到了關注,較好地避免了機器學習方法的弱點。例如Araque等人提出了基于深度學習的集成技術,用于在社交應用中對情感進行分類[6]。現有的基于深度學習的方法有兩個主要的局限性[7]:
(1)只提取用于人格檢測的關鍵詞;
(2)缺乏對情感信息和心理語言特征的分析。
傳統的機器學習算法在小數據集的分類和回歸任務中表現良好,該方法更適合處理大型社交媒體[8]。顯然,以往的這些研究內容主要集中于社交網絡上做分析[9],且數據單一。所以本研究在前人的方法基礎上提出了一種基于用戶日志數據預測性格的方法,由于日志數據具有動態性,所以本研究考慮使用長短時記憶(LSTM)神經網絡結構,選用學生上網行信息構建用戶性格模型,通過對用戶信息與用戶性格之間的關系進行分析。
該方法分為輸入層、性格特征提取層和輸出三個層,如圖1 所示。第一層通過日志數據作為輸入,通過主成分分析算法得到最優特征維度。第二層對第一層的輸出作為LSTM 網絡的輸入,以捕獲它們從順序依賴關系。在網絡的隱藏層進行加入Dropout 層。最終分析后得到該用戶的性格傾向。
典型的LSTM 單元由一個輸入門(it)、一個輸出門(Ot)、一個遺忘門(ft)、上一個神經單元的輸出數據(ht)、一個單元狀態(C't)組成。圖2 給出了簡化后的LSTM 單元。
W 是門的權重矩陣,b 是偏差向量,σ 是sigmoid 非線性激活函數;tanh 是正切函數。
本實驗用的數據來源于3 部分:
(1)學生輔導員處記錄學生心里情況的名單。該名單是校內通過權威調查,并結合線上線下心理醫生對學生訪問分析后統計出來的名單。
(2)邁爾斯-布里格斯類型指標(MBTI)。來源于MBTI 問卷平臺獲取的心理狀態數據,包含包括內傾(I)、外傾(E)、感覺(S)、直覺(N)、思維(T)、情感(F)、知覺(J)、判斷(P),共計8 個指標。本實驗選取其中內傾(I)、外傾(E)兩個指標作為數據標簽,實驗中將該指標和輔導員處的學生名單進行融合。

圖1:模型結構圖

圖2:簡化后LSTM 單元結構

表1:數據特征維度表

表2:不同特征維度保留信息占比

表3:模型評估結果
(3)日志服務器數據庫里獲取的網絡訪問日志數據,采集到學生ID 的性別、訪問網站類型、網站名和時間數據,不涉及具體內容且所有數據都嚴格把控不被泄露。
對標簽數據處理時,將有外傾向型得分數據歸類為標簽“1”,有內傾向型得分的數據歸類為標簽“0”。
在實際的數據中,訪問網站類型有多種,每個類型又有多種對應的具體網站和訪問次數,導致原始數據維度爆炸,有幾百維之多。所以將同一種類型的網站歸為一類。最終提取的特征維度示意如表1 所示。
在特征維度構造中,特征維度選取越多信息量占比越高,信息冗余和運算量也隨之增加。為在減少運算時間的同時保留更多的信息,實驗使用PCA 對數據的特征維度進行空間映射,該方法降低各維度之間的相關性并去除信息含量低的維度。提煉步驟為:
(1)樣本中心化:

(2)計算樣本協方差矩陣XXT,其數值大小代表特征之間的相關性,為了讓特征維度之間相互無關,對各特征相互正交(協方差為0);
(3)對協方差矩陣XXT做特征值分解,將求得的特征值排序λ1≥λ2≥…≥λd;
(4)取前d'個特征值(d'≤d)所對應的特征向量構成投影矩陣W*= (w1,w2,……,wd)
(5)保留前d'維所包含的數據信息占比η 為:

根據公式(2),取前k 個特征維度時,每一次降維后所保留的信息比例如表2 中所示。由表中數據可知,降維后僅保留前7 個維度,信息保留率就達到了99%,這也證明了PCA 確實能有效地減少信息冗余。
(6)使用L2范數正則化緩解過擬合,計算公式為:

x、y 為訓練樣本和標簽,ω 為權重系數向量,正則化參數λ>0。
該分類預測模型過程可以由以下幾個步驟進行描述:
3.2.1 構建特征向量
(1)對原始數據關鍵詞提取得到分類列表,列表中每個元素是一種訪問所對應的類型、時間、次數。
(2)將ID 轉化成索引,對應其年齡和列表內的數據,得到一個V=M*N 的二維矩陣,其中M 表示有效索引的數量,N 表示每一組數據的維度。
(3)矩陣V 進行L2 正則化,正則化后的矩陣定義為V'。對V'內數據進行10 交叉驗證劃分,劃分后的數據為PCA 模型的輸入。
3.2.2 將V'輸入PCA 進行降維
(1)根據表2 的結果,將PCA 中保留的特征數的參數n_components 設為7。
(2)參 數explained_variance_ratio_:array [n_components]返回所保留的7 個成分各自的方差百分比,即單個變量方差貢獻率。總占比為0.9976。
3.2.3 在訓練步驟中采用如下改進策略
降維后的數據作為LSTM 的輸入。為防止過擬合,在訓練階段設置dropout 概率p,隨機丟棄一些神經元。使用reshape 函數處理輸入數據維度。LSTM 層是循環層,需要3 維輸入(batch_size, timesteps, input_dim),即(訓練數據量,時間步長,特征量)。將向量輸入至Softmax 全連接層歸一化,變換成條件概率分布,獲取該信息的最終分類。
本實驗對比4 個神經網絡網絡模型,這四個模型分別是GRU模型(GRU),邏輯回歸LR 模型(LR),卷積神經網絡模型(CNN)和LSTM 模型。
實驗中的所有神經網絡模型代碼是基于jupyter 的Tensor Flow實現的,實驗所用機器CPU 為Intel(R)Core(TM)i5-6500,主頻3.2GHz,操作系統為Windows 7。
四種模型訓練出的最優參數模型所獲得的數據如表3 所示。可以看出,本文提出的方法在總精度(Accuracy)、精確度(Precision)、召回率(recall)、f1-score 等方面都有較好的效果,且AUC 達到了0.83。
從網絡日志內容中預測性格傾向是一個具有挑戰性的問題。在本研究中,我們對LSTM 模型步驟進行改進,來進行內傾向和外傾向的預測。從實驗中,我們發現所提出的方法相對于原始方法產生了更好的結果(AUC = 0.83)。該實驗也存在一定的缺陷,包括數據集的大小有限,以及使用單一的神經網絡模型。在未來的工作中,我們將進行不同的改進,比如通過加數據集的規模,以及融合多個深度神經網絡的方法。