于媛媛 鄭金麗 孔志有
摘要:目前,廣告收入是科技巨頭公司的重要收入來源,如國外的Google、Facebook等,國內(nèi)的百度、阿里巴巴、騰訊等。在這些網(wǎng)站上投放的廣告,大部分的點(diǎn)擊都是虛假點(diǎn)擊,即點(diǎn)擊后未下載廣告中的軟件,這不僅會浪費(fèi)公司大量的廣告費(fèi),還會誤導(dǎo)公司的經(jīng)營策略。因此,如何鑒別虛假點(diǎn)擊成為了一個(gè)重要的社會問題。本文使用了我國移動端約兩億條真實(shí)點(diǎn)擊數(shù)據(jù),將其分為訓(xùn)練集和測試集,選用機(jī)器學(xué)習(xí)算法中的支持向量機(jī)(SVM)算法來進(jìn)行分類器的構(gòu)建,并使用AUC評價(jià)指標(biāo)對識別結(jié)果進(jìn)行分析。
關(guān)鍵詞:虛假點(diǎn)擊,支持向量機(jī),機(jī)器學(xué)習(xí)
一、數(shù)據(jù)集的特征設(shè)計(jì)
特征設(shè)計(jì)是機(jī)器學(xué)習(xí)的一個(gè)重要環(huán)節(jié),原始數(shù)據(jù)不能直接應(yīng)用到機(jī)器學(xué)習(xí)模型中,需要通過一些方法將這些原始數(shù)據(jù)根據(jù)其類型進(jìn)行處理之后才能作為機(jī)器學(xué)習(xí)模型的輸入。以移動端點(diǎn)擊數(shù)據(jù)為例,其一般包括點(diǎn)擊時(shí)的IP地址、點(diǎn)擊的時(shí)刻、廣告發(fā)布商的頻道號等內(nèi)容。這些數(shù)據(jù)因?yàn)閿?shù)據(jù)格式不同,代表的含義也不同,所以不能直接作為訓(xùn)練集數(shù)據(jù)進(jìn)行使用。一般可將原始數(shù)據(jù)分為數(shù)值型特征數(shù)據(jù),如點(diǎn)擊時(shí)刻,和類別型特征數(shù)據(jù),如IP地址,廣告發(fā)布商的頻道號等。對于數(shù)值型特征可使用等距離散化方法進(jìn)行處理,以點(diǎn)擊時(shí)刻為例,因?yàn)闀r(shí)刻的范圍在0點(diǎn)到24點(diǎn)之間,所以可將時(shí)刻分為24個(gè)區(qū)間,構(gòu)造一個(gè)24維的二值特征向量。如果某條數(shù)據(jù)的點(diǎn)擊時(shí)刻是19點(diǎn)20分,則可將其24維向量中的第19維向量置為1,用來表示其點(diǎn)擊時(shí)刻在19點(diǎn)到20點(diǎn)的區(qū)間內(nèi)。這種方法對雜亂的數(shù)值型特征劃分區(qū)間并將其轉(zhuǎn)換為二值向量,雖然在一定程度上忽略了數(shù)值的細(xì)節(jié)部分,但卻極大地方便了模型的運(yùn)算,也基本能反映數(shù)據(jù)的整體特征。對于類別型特征,其屬于非數(shù)值型特征,通常包括兩個(gè)或者多個(gè)類別,在類別之間沒有內(nèi)定的次序,其數(shù)據(jù)一般代表的是類別編號,不具有數(shù)值大小上的意義,所以不能使用等距離散化方法來處理,這里使用獨(dú)熱編碼(One-Hot-Encoding)進(jìn)行處理。這種編碼方式將類別型特征用一個(gè)向量表示,類別型特征屬性的個(gè)數(shù)等于向量的維度,當(dāng)樣本中某個(gè)屬性值出現(xiàn)時(shí),其對應(yīng)維度上的取值為1,而其余維度上的取值為0,編碼過程分為生成One-Hot編碼字典、利用字典生成特征兩步。以廣告發(fā)布商的頻道號為例,本文所使用數(shù)據(jù)中一共有498種頻道號,可建立一個(gè)498維的二值向量,對于某條數(shù)據(jù)中的頻道號,可尋找其編號對應(yīng)的維度,將次維度置為1。這種方法解決了類別型特征數(shù)據(jù)格式不同,不能參與運(yùn)算的問題,能夠做到對類別型特征的完全利用。對數(shù)值型特征和類別型特征分別處理后,將兩者得到的二值向量進(jìn)行拼接后即可得到數(shù)據(jù)集的完整的特征向量,但往往這個(gè)特征向量是一個(gè)高緯度向量,能夠達(dá)到幾十萬的維度,這對數(shù)據(jù)存儲與運(yùn)算帶來了很大問題。對此,一般有兩種解決方法,第一種是丟掉稀有特征,即將那些在數(shù)據(jù)集中出現(xiàn)次數(shù)少的特征維度刪去,這通常會丟掉一些有用的特征,存在一定的風(fēng)險(xiǎn)性。第二種是使用鍵值對(key-value)的方式進(jìn)行存儲運(yùn)算,只存儲特征向量中值為1的項(xiàng),記錄其維度號,這種方法適合用于特征向量中零項(xiàng)較多的情況,特別是類別型特征較多的數(shù)據(jù)集。
二、支持向量機(jī)分類算法思想
支持向量機(jī)算法是是一種機(jī)器學(xué)習(xí)算法,是被公認(rèn)的比較優(yōu)秀的分類模型,在很短的時(shí)間內(nèi)就得到了廣泛的應(yīng)用。它能使錯(cuò)誤的檢測率減小到最小,同時(shí)具有較好的泛化能力,是一種不容易過擬合的分類方法,比較適合于二分類問題。模型在已知方向的情況下構(gòu)造分隔超平面,使分隔超平面到兩邊距離最近的分類點(diǎn)的距離最大,使用極大化間隔的方法可以得出求解最小化距離的二次函數(shù)問題,添加約束條件后保證分類點(diǎn)與分隔超平面的距離都不小于幾何間隔,處于超平面之上或兩側(cè)。而對于訓(xùn)練過程中出現(xiàn)的不可分的樣本點(diǎn),意味著其不能滿足約束條件,為了解決這個(gè)問題,可以對每個(gè)樣本點(diǎn)引進(jìn)一個(gè)松弛變量,以確保其能夠被分為正類或負(fù)類。在模型的輸入中,其對輸入數(shù)據(jù)格式有特定要求,需為Label 1:value 2:value...的形式,其中Label值是類別的標(biāo)識,value是特征值,此數(shù)據(jù)格式的轉(zhuǎn)換可以使用編程語言進(jìn)行讀取轉(zhuǎn)換,也可以采用Excel中的宏定義進(jìn)行處理。對應(yīng)于數(shù)據(jù)集特征設(shè)計(jì)中得到的二值特征向量,每一維的0或1都是一個(gè)value值,在訓(xùn)練集中,Label值是已知的分類類別的編號,比如屬于虛假廣告點(diǎn)擊的數(shù)據(jù)的Label值為1,有效點(diǎn)擊的數(shù)據(jù)的Label值為0。而在測試集中,因?yàn)閿?shù)據(jù)的分類類別未知,所以可將Label值預(yù)設(shè)為0,此值在模型中不參與運(yùn)算,僅用來滿足數(shù)據(jù)格式要求,將測試集數(shù)據(jù)代入使用訓(xùn)練集訓(xùn)練好的支持向量機(jī)模型后,模型會給出測試集的分類結(jié)果,即每條數(shù)據(jù)的預(yù)測Label值。
三、虛假點(diǎn)擊識別系統(tǒng)算法流程
虛假點(diǎn)擊識別系統(tǒng)的基本思想是將訓(xùn)練集中的數(shù)據(jù)分為數(shù)值型特征和類別型特征分別進(jìn)行處理后得到高維的特征向量,將其作為訓(xùn)練數(shù)據(jù)導(dǎo)入支持向量機(jī)模型中,保存訓(xùn)練后的支持向量機(jī)模型。對測試集采用相同的特征設(shè)計(jì)方式進(jìn)行數(shù)據(jù)處理后導(dǎo)入訓(xùn)練后的支持向量機(jī)模型,輸出預(yù)測結(jié)果,并與原始數(shù)據(jù)結(jié)果進(jìn)行對比。
四、虛假點(diǎn)擊識別結(jié)果分析
虛假點(diǎn)擊識別是一個(gè)二分類問題,而且數(shù)據(jù)在不同類別上分布不均衡,因此識別率這樣的度量標(biāo)準(zhǔn)不能很好的反應(yīng)分類器的性能。用ROC曲線來表示分類器的結(jié)果很直觀,與其有關(guān)的混淆矩陣是監(jiān)督學(xué)習(xí)中的一種可視化工具,主要用于比較分類結(jié)果和數(shù)據(jù)的真實(shí)信息。矩陣中的行代表數(shù)據(jù)的預(yù)測類別,列代表數(shù)據(jù)的真實(shí)類別。在混淆矩陣中,每一條數(shù)據(jù)可以劃分為預(yù)測正確的正類、預(yù)測正確的負(fù)類、預(yù)測錯(cuò)誤的正類、預(yù)測錯(cuò)誤的負(fù)類四種類型之一。ROC曲線以真陽性率(精度)為縱坐標(biāo),假陽性率(誤檢率)為橫坐標(biāo)繪制的曲線。AUC是ROC曲線下的面積,其取值介于0.5到1之間,值越大表明預(yù)測效果越準(zhǔn)確。以上述支持向量機(jī)模型的訓(xùn)練和測試為例,每進(jìn)行一輪迭代之后都會在測試集中做預(yù)測并計(jì)算測試集的AUC。實(shí)驗(yàn)結(jié)果顯示,在開始階段的迭代中,測試集的AUC比較低,隨著迭代輪數(shù)的逐漸增加,AUC的值逐漸增加,這說明在最開始模型沒有得到充分訓(xùn)練,隨著迭代次數(shù)的增加,模型逐漸得到充分訓(xùn)練,數(shù)據(jù)中的信息被模型充分學(xué)習(xí),效果變得越來越好。在第57510輪迭代時(shí)AUC值達(dá)到最高值0.788217,隨后又逐漸下降,這表明模型在得到充分訓(xùn)練之后,已經(jīng)從數(shù)據(jù)中學(xué)習(xí)到了足夠多的信息,如果繼續(xù)進(jìn)行訓(xùn)練,也不能從數(shù)據(jù)中學(xué)習(xí)到更多的有用信息,反而會取得不好的效果。
綜上所述,將支持向量機(jī)算法運(yùn)用到虛假點(diǎn)擊的識別中能夠得到較好的效果,這能夠幫助廣告投放者合理篩選和使用點(diǎn)擊數(shù)據(jù),調(diào)整廣告投放策略。同時(shí)為了使該算法能夠更好地發(fā)揮其優(yōu)勢,還應(yīng)在現(xiàn)有基礎(chǔ)上不斷進(jìn)行優(yōu)化和改進(jìn),使其能應(yīng)用到更廣泛的領(lǐng)域。
參考文獻(xiàn):
[1]王孝舒.廣告率點(diǎn)擊預(yù)估的深層神經(jīng)網(wǎng)絡(luò)模型研究[D].北京郵電大學(xué),2015.
[2]董亞楠,劉學(xué)軍,李斌.一種基于用戶行為特征選擇的點(diǎn)擊欺詐檢測方法[J].計(jì)算機(jī)科學(xué),2016,43(10):145-149.
[3]趙志勇.Python機(jī)器學(xué)習(xí)算法[M].1 北京:電子工業(yè)出版社,2017,123-174.