1. 程式人生 > >基於大資料聚類社群的作弊使用者發現方法

基於大資料聚類社群的作弊使用者發現方法

前面的文章中我們講道,像趣頭條類的APP對於收徒和閱讀行為給予使用者現金獎勵的方式勢必會受到大量羊毛黨黑產的注意,其實單個使用者能薅到的錢是沒有多少的,為了達到利益最大化,黑產肯定會利用各種手段構建大量賬號來薅APP運營企業的羊毛,因為收徒的獎勵遠高於閱讀,所以賺取收徒獎勵就成了最嚴重的薅羊毛手段。前文提到為了更好的識別出這些異常使用者,我們利用使用者的師徒關係構建連通圖,把同一個連通圖上的使用者視為一個社群,利用Spark Grahpx實現了一個簡單高效的社群發現功能。具體內容可以檢視上一篇文章基於Spark Grahpx+Neo4j 實現使用者社群發現,但生成社群不是目的,我們的目標是能夠對社群使用者進行分析,根據規則和演算法的方法找出社群內的異常使用者及異常社群,從而達到風控的目的。

規則的方法主要是,我們在裝置,IP,使用者基礎資訊,使用者行為資訊等維度組合構建使用者的風控畫像,然後開發規則引擎,制定閾值,過濾出超過閾值的異常使用者。但只通過規則的方法往往是不夠的,大量的使用者單從個體上看看不出多少異常,但如果上升一個層次,從社群的整體角度去分析,就會發現使用者的很多相似之處。

就像我們之前文章說的壞人往往是扎堆的,物以類聚,人以群分,而且黑產想達到一定規模,肯定會藉助作弊裝置,指令碼,機器等手段,機器的行為一般都有一些相似性,我們就可以利用這些相似性對使用者進行聚類分析,所以除了規則的方法外,我們還可以用機器學習的方法將具有相似行為的使用者進行聚類,然後求出類簇的TOP N相似特徵,檢視是否可疑,比如裝置是否相似,行為是否相似,基本資訊,賬號等是否相似,通過機器學習的方法,我們能找出很多規則沒法判定的異常使用者。

聚類就是把相似的使用者聚在一起,一般的方法就是計算兩個使用者特徵向量的相似度,這就遇到了第一個問題,對於大量使用者來說,兩兩使用者計算相似度計算量是非常可怕的,比如50萬用戶兩兩計算相似度,總共要計算50w * 50w =2500億次,這計算量就太大了,如果使用者量再大點根本無法計算。對於這種情況,人們一般會利用區域性敏感雜湊等優化演算法將資料進行降維,然後通過雜湊把相似的使用者儘可能的放到同一個桶裡,最後再對同一個桶裡的資料進行兩兩計算,這樣計算量就小很多了。

下圖是區域性敏感雜湊演算法的一個示意圖,普通的雜湊演算法是儘量將資料打散到不同的桶裡,達到減少碰撞的目的,但區域性敏感雜湊旨在將相似的使用者放到相同的桶裡。Spark的Mllib庫裡也提供了LSH區域性敏感雜湊演算法的實現,有興趣的朋友可以自行檢視。

不過我們在用Spark LSH跑資料的過程中,遇到了每次都是最後幾個task特別緩慢的情況,可能跟資料傾斜或CPU計算能力不足有關,多次除錯都沒有太好的效果,又限於資源有限,只能另想別的方法,忽然想到我們之前已經按師徒關係生成的社群,本身就是一種把相似使用者放到同一個桶裡的操作,而且我們根據師徒關係構建連通圖得到的社群應該是已經很好的把有可能是一個團伙的人聚到了一起,這樣的話,只需對每個社群進行相似度計算就可以了。

計算相似度的方法有多種,像歐氏距離,漢明距離,餘弦相似度,Jaccard 係數等都是常用的度量方法,但鑑於我們提取的使用者特徵既有數值型,又有字元型,而且使用者特徵維度一樣,我們想通過定義使用者有多少個共同特徵就判為相似的邏輯,所以我們選擇了一個比較簡單的f,即對比兩使用者特徵陣列相同特徵數,滿足閾值即為相似。

不同社群使用者數
上圖是我們根據師徒關係生成的不同社群及社群人數,下圖為我們基於這些社群,分別計算出的社群內相似使用者及使用者的相似特徵。


從上圖可以看出這些相似使用者,有些社群全部是同一個手機型號,並且開機時間相同,手機一直處於充電狀態,師徒高度集中等等,這些都是比較可疑的使用者,需要風控人員重點分析。

至此,我們通過社群相似度計算實現了一個簡單的風控聚類模型,基於這個模型找出了一些相似使用者,而且我們可以增加更多的使用者特徵,調節模型閾值來達到更好的風控效果。後面我們還計劃給每個特徵定義權重,這樣就可以對社群進行打分,進而可以更直觀的判斷社群的優劣與否。

定義特徵權重如下

打分規則
目前相似社群風控分數打分規則為:

  1. 特徵佔比大於等於50%的特徵為該相似社群的相似特徵;
  2. 相似社群風控分數 = 相似特徵佔比乘以特徵權重的累加和
  3. 如果存在權重大於等於10的相似特徵,相似社群風控分數要再加上使用者數mod 100,即每100使用者加1分

比如下面為相似社群的使用者數和相似特徵佔比

778 //相似社群使用者數
97% of 'app_ver' is '3.9.1', //權重為2
72% of 'masterid' is '599aa668c0d9db00014239e7', //權重為5
53% of 'battery_consumption' is '100' //權重為10
-------------------------------------------------------------------------------------
//計算相似社群風控分數如下
Score = 0.972 + 0.725 + 0.5310 + (778 mod 100) 1 = 17.84

想及時瞭解更多大資料實踐,請關注我的公眾號《大資料技術進階》

查詢結果表如下

相關推薦

基於資料社群作弊使用者發現方法

前面的文章中我們講道,像趣頭條類的APP對於收徒和閱讀行為給予使用者現金獎勵的方式勢必會受到大量羊毛黨黑產的注意,其實單個使用者能薅到的錢是沒有多少的,為了達到利益最大化,黑產肯定會利用各種手段構建大量賬號來薅APP運營企業的羊毛,因為收徒的獎勵遠高於閱讀,所以賺取收徒獎勵就成了最嚴重的薅羊毛手段。前文提到為

資料演算法效能比較及實驗報告

在大資料領域這個聚類演算法真是起到了十分重要的作用,只有通過有效地聚類才能得到非常直觀的結果。 有一個實驗要求對比兩種大資料聚類演算法的效能,具體的程式碼也不是由我實現的,我只是改了一部分,主要還是部落格大佬們的程式碼,我這裡借用了一下~~ 具體的實驗報告和

計算機如何感知資料——演算法

看看下面這張圖片。這是一個不同形狀大小的昆蟲的集合。花點時間按照相似程度將它們分成幾組。 這不是什麼很有技巧性的問題。 我們從把蜘蛛分到一起開始。 圖片來自Google圖片搜尋,標記以便重用 做完了嗎?雖然這裡沒有必要有所謂的正確答案,不過你極有可能將這些蟲子分成

資料技術

1.聚類的基本有關概念聚類分析:將物理或抽象物件的集合分成相似的物件類的過程稱為聚類。簇:資料物件的集合,物件與同一簇中的物件批次相似,而與其他簇中的物件相異。無監督學習:沒有事先定義好的類典型應用:①作為獲得資料集中資料分佈的工具②作為其他資料探勘演算法的預處理步驟2.聚類

資料學習整理

備註:本文是閱讀一篇碩士論文《大規模資料聚類技術研究與實現》後的筆記整理,敬請閱讀,並向原作者錢彥江致敬 <一>概念透析 1、什麼是聚類? 基於“物以類聚”的樸素思想,是將物理或抽象物件集合劃分為由類似的物件組成的多個類或簇(clu

基於arcpy實現空間資料,kmeans

並不能直接進行空間資料的聚類,原理是讀取要素的x,y座標來進行聚類,然後將聚類中心儲存為空間資料以達到效果 # encoding: utf-8 from sklearn.cluster import KMeans import numpy as np import arcpy import pa

【機器學習】DBSCAN Algorithms基於密度的算法

多次 使用 缺點 有效 結束 基於 需要 att 共享 一、算法思想: DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一個比較有代表性的基於密度的聚

:層次基於劃分的(k-means)、基於密度的基於模型的

oca 基本思想 初始化 methods 根據 範圍 下使用 對象 適用於 一、層次聚類 1、層次聚類的原理及分類 1)層次法(Hierarchicalmethods)先計算樣本之間的距離。每次將距離最近的點合並到同一個類。然後,再計算類與類之間的距離,將距離最近的類合

資料

1相似度分析 相似性度量準則是聚類分析用來度量資料之間差異化的一個重要標準。聚類分析中數 據之間相似程度較大,需要按照某種聚類準則進行分離資料。在這樣的一個過程中,需要 使用相似性度量來衡量資料之間的相似及不同。在相似性度量中,距離度量是最常使用的 一個準則,用來衡量資料之間的差異性,一般

通過TSNE將高維資料結果以二維的方式展示出來

#!/usr/bin/env python #-*- coding:utf-8 -*- #接k_means.py #k_means.py中得到三維規範化資料data_zs; #r增加了最後一列,列索引為“聚類類別” from sklearn.manifold import TSNE tsne=

資料演算法-K-means演算法

深入淺出K-Means演算法 摘要: 在資料探勘中,K-Means演算法是一種 cluster analysis 的演算法,其主要是來計算資料聚集的演算法,主要通過不斷地取離種子點最近均值的演算法。 K-Means演算法主要解決的問題如下圖所示。我們可以看到,在圖的左邊有一些點,我們用肉眼可以看出來有四

“實時決策”賦能資料 雲位智開啟資料行業新紀元

席捲各行各業、深入社會各個層面的人工智慧,如今正潤物細無聲般滲透大資料應用市場。通過實時資料處理、複雜的AI計算、海量資料平滑擴充套件等革命性技術突破,為大資料行業帶來勃勃生機。 作為大資料平臺軟體產品和解決方案的領先者,備受業界關注的聚雲位智近兩年來不斷加大產品研發投入,致力於為“人工智慧+大

演算法設計:基於密度的方法

1、前言 我們生活在資料大爆炸時代,每時每刻都在產生海量的資料如視訊,文字,影象和部落格等。由於資料的型別和大小已經超出了人們傳統手工處理的能力範圍,聚類,作為一種最常見的無監督學習技術,可以幫助人們給資料自動打標籤,已經獲得了廣泛應用。聚類的目的就是把不同的資料點按照它們的相似與相異度分割成不

[資料專案]-基於資料體系構建資料倉庫

2018最新最全大資料技術、專案視訊。整套視訊,非那種淘寶雜七雜八網上能免費找到拼湊的亂八七糟的幾年前的不成體系浪費咱們寶貴時間的垃圾,詳細內容如下,需要的聯絡QQ:3164282908(加Q註明部落格園)。 更有海量大資料技術視訊、大資料專案視訊,機器學習深度學習技術視訊、專案視訊。Python程式設計視

[資料專案]-0011-基於資料技術推薦系統演算法案例實戰視訊教

2018最新最全大資料技術、專案視訊。整套視訊,非那種淘寶雜七雜八網上能免費找到拼湊的亂八七糟的幾年前的不成體系浪費咱們寶貴時間的垃圾,詳細內容如下,視訊高清不加密,需要的聯絡QQ:3164282908(加Q註明51CTO)。     [大資料專案]-0010-基於大資料技術

基於資料的能力開放平臺解決方案

某企業經過多年的系統建設和演進,內部系統間存在一些壁壘,通過在運營商的各個內部系統,如經分、VGOP、大資料平臺、集團集市等中構建基於ESB 的能力開放平臺,解決了系統間排程、封閉式開發、資料孤島等系統問題,使得運營商營銷能力和效率大大提高。 問題分析 背景

[資料專案]-0017-基於資料體系構建資料倉庫

2018最新最全大資料技術、專案視訊。整套視訊,非那種淘寶雜七雜八網上能免費找到拼湊的亂八七糟的幾年前的不成體系浪費咱們寶貴時間的垃圾,詳細內容如下,視訊高清不加密,需要的聯絡QQ:3164282908(加Q註明51CTO)。   課程介紹 本課程系統的、全面的、深入的講解了,基於大資

TensorFlow學習(二) 資料分析

本文通過K均值演算法作為例子研究資料聚類分析 一、無監督學習概念 無監督學習可以從給定的資料集中找到感興趣的模式。 無監督學習,一般不給出模式的相關資訊。所以,無監督學習演算法需要自動探索資訊是怎樣組成的,並識別資料中的不同結構。 二、什麼是聚類 聚類就是對大量未知

基於資料的智慧交通管理管控指揮平臺技術方案

1、專案背景 近幾年來,隨著國內經濟的快速發展,高速公路建設步伐不斷加快,全國機動車輛、駕駛員數量迅速增長,交通管理工作日益繁重,壓力與日俱增。為了提高公安交通管理工作的科學化、現代化水平,緩解警力不足,加強和保障道路交通的安全、有序和暢通,減少道路交通違法和事

python_NLP實戰之豆瓣讀書資料

用k_means對豆瓣讀書資料聚類 1、讀取資料以及資料預處理 book_data = pd.read_csv('data/data.csv') #讀取檔案 print(book_data.head()) book_titles = book_data['title'