當前位置:
首頁 > 最新 > 一種基於TensorFlow的廣告異常流量檢測策略

一種基於TensorFlow的廣告異常流量檢測策略

1. 背景

移動時代,在流量快速變現的利益驅動下,流量造假越發的猖獗,流量造假形式和技術手段也越來越多。以往通過單一特徵人工分析渠道流量作弊情況,已經難以適應當前複雜的環境。隨著機器學習的快速的發展,解決了許多難題,我們也希望通過機器學習的手段,檢測出當前的作弊流量。

2. 技術方案

初步選擇非監督學習演算法中的K-means均值聚類演算法,計劃將所按照流量來源劃分為一個個的族群(即每個渠道)。通過判斷渠道流量的特徵來分辨渠道的流量是否正常。

使用TensorFlow作為機器學習的框架,TF是一個採用數據流圖(data flow graphs),用於數值計算的開源軟體庫。數據流圖是是一個有向圖,使用結點和線來描述數學計算。數據流圖可以方便的將各個節點分配到不同的計算設備上完成非同步並行計算,非常適合大規模的機器學習應用。

GIF

3. 實現

3.1 K-means的演算法步驟

3.2 具體實現

3.2.1 數據預處理

由於實際環境複雜,從生產環境拿到的數據需要進行處理才能進行訓練。

1. 選定樣本屬性,此次屬性有。

2. 文本數值化,由於屬性值是文本值,不能用於數值計算,比如location,可以統計出所有點擊分布的省份,然後數值化成1,2,3,4….。

3. 預設值處理,實際接觸的數據存在預設值得情況,需要依據具體情況進行填充。

4. 歸一化,由於屬性互相之間的單位不同,單位越小,數值越大,對結果影響越大,所以需要按照實際情況對數據的單位進行調整。

3.2.2 設定聚類數

K值得選定是決定整個模型的關鍵,事先設定K值為渠道的數目,根據最終結果再繼續調整質心的數目。

3.2.3 測定質心與樣本的距離

K-means聚類是以距離測度作為聚類依據,因此對於同一個樣本點,選取不同的距離測度,得到的距離也不同,本次使用常見的歐幾里得距離作為相異度,其意義就是兩個元素在歐氏空間中的集合距離,具體公式定義如下。

3.2.4 重新選定質心

對於每一個聚類,重新選定質心,質心一般為所有數據點的中心值,質心選定的公式如下:

3.2.5 停止條件

迭代次數是否達到上限,或者演算法已經收斂,即質心不在變化。

3.2.6 代價函數

代價函數是判斷演算法收斂的條件,代價函數的差分值小於一定數值的時候(N次越不過最小值點)即可認為收斂了。

3.2.7 重複實驗

由於k-means演算法依賴於K值,和初始中心點的選擇,所以可以多試驗幾次,對比實驗結果。過程中可以使用TF的界面工具TensorBoard直觀的觀看訓練的過程。

3.2.8 驗證結果

由於正常的渠道的流量應該是具有規律性,往往與時間、區域以及設備的分布有很大關聯性,所以,如果最終簇的分布是比較離散沒有呈現一定的聚集性,則表示此渠道的流量可能存在問題。反之則比較正常。

因此得到最終的聚類結果後,需要事先根據演算法用計算簇的聚集性,通常使用的方法有計算方差等,或者使用Matplotlib通過圖像方法將簇繪製成圖,觀察圖像特徵,得出最終結果。

如下圖所示,最終結果分為了三類,黑框中的樣本聚集程度明顯高於其他兩個框中的樣本,因此可以猜測其他兩個框中得流量可能存在問題,需要進一步調查。

4. 優化方向

4.1 K值的調整

二分k-means演算法(bisecting k-means)是為了克服k-means演算法收斂於局部最小值的問題而提出的。該演算法首先將所有點作為一個簇,然後將該簇一分為二。之後選擇其中一個簇繼續劃分,選擇哪一個簇進行劃分取決於對其劃分是否可以最大程度降低SSE的值,上述過程不斷迭代,直到得到用戶指定的簇數目為止。

4.2 中心點選擇

使用k-medoids演算法,在 k-means 中,中心點取為當前 cluster 中所有數據點的平均值,而在 k-medoids 中,中心點的選取限制在當前 cluster 所包含的數據點的集合中。由於K-means要求數據點處於一個歐氏空間中,因此對數據的要求比較高,在實際中可能達不到這樣的要求,所以可以使用k-medoids演算法選擇中心點。

5. 結論

最終結論,可以使用k-means結合TF做異常流量甄別,只不過對數據的完整度要求較高,而且需要適應的調整演算法以及參數,來不斷完善識別的精準度。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 省廣暢思CHANCE 的精彩文章:

TAG:省廣暢思CHANCE |