本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種基于人工神經(jīng)網(wǎng)絡(luò)的應(yīng)用分發(fā)平臺作弊檢測方法。
背景技術(shù):
在手機(jī)應(yīng)用分發(fā)推廣過程中,由于利益驅(qū)動,推廣人會制造假的安裝數(shù)據(jù)騙取酬金。為了應(yīng)對這種情況,需要一套方法,從分發(fā)平臺的用戶操作信息中獲取作弊的蛛絲馬跡,從而避免不正當(dāng)競爭。
但是現(xiàn)有技術(shù)中針對作弊的判斷均是設(shè)定一個固定的閾值,從應(yīng)用分發(fā)平臺的日志中,對多個維度進(jìn)行求和、計數(shù)、平均值和參數(shù)之間算術(shù)運算等合計相關(guān)的統(tǒng)計,將統(tǒng)計結(jié)果與預(yù)先人為設(shè)定的閾值比較,以是否滿足一個或多個閾值作為作弊的判斷條件,例如指定某時段的安裝量是否過大,平均每臺手機(jī)應(yīng)用安裝量是否過大。經(jīng)過多種計算獲得的數(shù)值超過閾值,則判斷為作弊。
但作弊行為是一種動態(tài)變化的過程,隨著作弊用戶對作弊判斷規(guī)則的了解,其會不斷改變作弊方式,從而盡可能避開作弊算法的懲罰。因此,作弊檢測方法也是需要隨著實際情況而逐步變化的。統(tǒng)計維度越多閾值越多,閾值間關(guān)系越復(fù)雜,設(shè)定完全靠人為經(jīng)驗猜測,往往只能滿足一部分個案情況;出現(xiàn)誤判后幾乎無法更正,往往針對某個個案更正設(shè)定后其他個案就出問題;無任何學(xué)習(xí)能力,無法將人工審核的比較模糊的經(jīng)驗轉(zhuǎn)化為可執(zhí)行的程序,任何算法更改都要重新編程;而且將人的經(jīng)驗準(zhǔn)確轉(zhuǎn)化為定量的計算程序是非常困難的。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提出一種能夠與時俱進(jìn),隨著作弊辦法的變化而調(diào)整自己的作弊判斷閾值的應(yīng)用分發(fā)平臺作弊檢測方法,其基于人工神經(jīng)網(wǎng)絡(luò)算法,動態(tài)調(diào)整作弊判斷閾值,從而最大程度保證了應(yīng)用分發(fā)平臺的秩序。
為達(dá)此目的,本發(fā)明采用以下技術(shù)方案:
一種基于人工神經(jīng)網(wǎng)絡(luò)的應(yīng)用分發(fā)平臺作弊檢測方法,步驟包括:
步驟a:每次應(yīng)用安裝時,記錄日志到服務(wù)器上的數(shù)據(jù)庫,所述日志包含用戶、應(yīng)用id、安裝時間、手機(jī)imei、機(jī)型、產(chǎn)地和廠商信息;
步驟b:從數(shù)據(jù)庫中提取指定時間段的日志作為基礎(chǔ)數(shù)據(jù),按用戶分組統(tǒng)計一批統(tǒng)計數(shù)值,選定以下參數(shù):日志總條數(shù)、機(jī)型的信息熵、產(chǎn)地的信息熵、手機(jī)imei的信息熵、應(yīng)用id的信息熵;所述統(tǒng)計數(shù)值作為訓(xùn)練樣本;
步驟c:人工審核一遍所述訓(xùn)練樣本,對認(rèn)為作弊的用戶打上標(biāo)簽1,否則打上標(biāo)簽0,1和0是數(shù)字;
步驟d:將所述訓(xùn)練樣本隨機(jī)抽樣分成3份,其中10%為驗證集,60%為訓(xùn)練集,30%為測試集;
步驟e:選定開源項目提供的mlp作為人工神經(jīng)網(wǎng)絡(luò)程序;
步驟f:設(shè)定mlp的參數(shù):輸入神經(jīng)元數(shù)為5,對應(yīng)5個所述統(tǒng)計數(shù)值;輸出神經(jīng)元數(shù)為1,對應(yīng)人工審核中打上的標(biāo)簽;中間層暫定為1層,輸入神經(jīng)元數(shù)暫定為5,之后的訓(xùn)練過程中可能做調(diào)整;
步驟g:將所述驗證集輸入到mlp做訓(xùn)練,設(shè)定允許誤差為0.0001,最大訓(xùn)練遞歸次數(shù)為1,000,000;
步驟h:訓(xùn)練完成后用mlp對驗證集做判定,從5個所述統(tǒng)計數(shù)值輸入中得到1個輸出值,對比輸出值與人工打上的標(biāo)簽的差異;
要求:人工標(biāo)簽為1的,對應(yīng)輸出值應(yīng)盡量接近1,否則盡量接近0,無任何超過0.1的差異;如果差異不滿足要求,回到步驟g重新訓(xùn)練,如果重復(fù)多次達(dá)不到要求,回到步驟f重新設(shè)定中間層的層數(shù)和輸入神經(jīng)元數(shù);
步驟i:保持上面步驟的參數(shù),用所述訓(xùn)練集重新訓(xùn)練mlp;
步驟j:用mlp對所述測試集做判定:
同樣要求:人工標(biāo)簽為1的,對應(yīng)輸出值應(yīng)盡量接近1,否則盡量接近0,無任何超過0.1的差異;如果差異不滿足要求,回到步驟i重新訓(xùn)練,如果重復(fù)多次達(dá)不到要求,回到步驟f重新設(shè)定中間層的層數(shù)和輸入神經(jīng)元數(shù);
步驟k:經(jīng)過以上步驟后,獲得了判定實際數(shù)據(jù)的mlp,部署到服務(wù)器;
步驟l:每天定時從數(shù)據(jù)庫中提取過往30天日志,同樣按用戶分組計算日志總條數(shù)、機(jī)型的信息熵、產(chǎn)地的信息熵、手機(jī)imei的信息熵、應(yīng)用id的信息熵,輸入到mlp做判定,得出的輸出就是作弊可能性判定;
步驟m:當(dāng)出現(xiàn)誤判,將當(dāng)前的統(tǒng)計數(shù)值的作弊判定四舍五入取整到0和1,人工糾正誤判的部分;這套數(shù)據(jù)作為訓(xùn)練樣本回到步驟d重新訓(xùn)練。
本發(fā)明通過監(jiān)督學(xué)習(xí)訓(xùn)練的人工神經(jīng)網(wǎng)絡(luò)根據(jù)統(tǒng)計數(shù)值進(jìn)行用戶作弊可能性的判斷,無需設(shè)定閾值,用訓(xùn)練代替,只要人工能完成個案判定就可以訓(xùn)練,不需要對總體的分布情況有了解;具體個案更正就可以重新訓(xùn)練,理論上,可以保證結(jié)果符合當(dāng)前所有個案的預(yù)期;通過訓(xùn)練就可以獲得mlp程序,不需要重新編程。
具體實施方式
下面通過具體實施方式來進(jìn)一步說明本發(fā)明的技術(shù)方案。
一種基于人工神經(jīng)網(wǎng)絡(luò)的應(yīng)用分發(fā)平臺作弊檢測方法,步驟包括:
步驟a:每次應(yīng)用安裝時,記錄日志到服務(wù)器上的數(shù)據(jù)庫,所述日志包含用戶、應(yīng)用id、安裝時間、手機(jī)imei、機(jī)型、產(chǎn)地和廠商信息;
步驟b:從數(shù)據(jù)庫中提取指定時間段的日志作為基礎(chǔ)數(shù)據(jù),按用戶分組統(tǒng)計一批統(tǒng)計數(shù)值,選定以下參數(shù):日志總條數(shù)、機(jī)型的信息熵、產(chǎn)地的信息熵、手機(jī)imei的信息熵、應(yīng)用id的信息熵;所述統(tǒng)計數(shù)值作為訓(xùn)練樣本;
所述指定時間段例如是30天,可以根據(jù)應(yīng)用分發(fā)周期自己設(shè)定。
步驟c:人工審核一遍所述訓(xùn)練樣本,對認(rèn)為作弊的用戶打上標(biāo)簽1,否則打上標(biāo)簽0,1和0是數(shù)字;
步驟d:將所述訓(xùn)練樣本隨機(jī)抽樣分成3份,其中10%為驗證集,60%為訓(xùn)練集,30%為測試集;
步驟e:選定開源項目提供的mlp作為人工神經(jīng)網(wǎng)絡(luò)程序;
joone、encog和neuroph是三個著名的開源的java的神經(jīng)網(wǎng)絡(luò)的組件,優(yōu)選為neuroph作為開源的神經(jīng)網(wǎng)絡(luò)組件。
多層感知器multi-layerperceptron,mlp,是一種前向結(jié)構(gòu)的人工神經(jīng)網(wǎng)絡(luò)。
步驟f:設(shè)定mlp的參數(shù):輸入神經(jīng)元數(shù)為5,對應(yīng)5個所述統(tǒng)計數(shù)值;輸出神經(jīng)元數(shù)為1,對應(yīng)人工審核中打上的標(biāo)簽;中間層暫定為1層,輸入神經(jīng)元數(shù)暫定為5,之后的訓(xùn)練過程中可能做調(diào)整;
步驟g:將所述驗證集輸入到mlp做訓(xùn)練,設(shè)定允許誤差為0.0001,最大訓(xùn)練遞歸次數(shù)為1,000,000;
步驟h:訓(xùn)練完成后用mlp對驗證集做判定,從5個所述統(tǒng)計數(shù)值輸入中得到1個輸出值,對比輸出值與人工打上的標(biāo)簽的差異;
要求:人工標(biāo)簽為1的,對應(yīng)輸出值應(yīng)盡量接近1,否則盡量接近0,無任何超過0.1的差異;如果差異不滿足要求,回到步驟g重新訓(xùn)練,如果重復(fù)多次達(dá)不到要求,回到步驟f重新設(shè)定中間層的層數(shù)和輸入神經(jīng)元數(shù);
步驟i:保持上面步驟的參數(shù),用所述訓(xùn)練集重新訓(xùn)練mlp;
步驟j:用mlp對所述測試集做判定:
同樣要求:人工標(biāo)簽為1的,對應(yīng)輸出值應(yīng)盡量接近1,否則盡量接近0,無任何超過0.1的差異;如果差異不滿足要求,回到步驟i重新訓(xùn)練,如果重復(fù)多次達(dá)不到要求,回到步驟f重新設(shè)定中間層的層數(shù)和輸入神經(jīng)元數(shù);
步驟k:經(jīng)過以上步驟后,獲得了判定實際數(shù)據(jù)的mlp,部署到服務(wù)器;
以上過程相當(dāng)于將人工審核的經(jīng)驗教授給mlp。
步驟l:每天定時從數(shù)據(jù)庫中提取過往30天日志,同樣按用戶分組計算日志總條數(shù)、機(jī)型的信息熵、產(chǎn)地的信息熵、手機(jī)imei的信息熵、應(yīng)用id的信息熵,輸入到mlp做判定,得出的輸出就是作弊可能性判定;
0至1的數(shù)值可以標(biāo)識概率。
步驟m:當(dāng)出現(xiàn)誤判,將當(dāng)前的統(tǒng)計數(shù)值的作弊判定四舍五入取整到0和1,人工糾正誤判的部分;這套數(shù)據(jù)作為訓(xùn)練樣本回到步驟d重新訓(xùn)練。
誤判例如客戶投訴成立時。
以上結(jié)合具體實施例描述了本發(fā)明的技術(shù)原理。這些描述只是為了解釋本發(fā)明的原理,而不能以任何方式解釋為對本發(fā)明保護(hù)范圍的限制?;诖颂幍慕忉?,本領(lǐng)域的技術(shù)人員不需要付出創(chuàng)造性的勞動即可聯(lián)想到本發(fā)明的其它具體實施方式,這些方式都將落入本發(fā)明的保護(hù)范圍之內(nèi)。