近年來,人工智能與機器學習的應用越來越廣泛,尤其是在互聯網領域。在微博,機器學習被廣泛地應用于微博的各個業務,如Feed流、熱門微博、消息推送、反垃圾、內容推薦等。
值得注意的是,深度學習作為人工智能和機器學習的分支,尤其得到更多的重視與應用。深度學習與眾不同的特性之一,在于其能夠對原始特征進行更高層次的抽象和提取,進而生成區分度更高、相關性更好的特征集合,因此深度學習算法還經常被叫作“自動特征提取算法”。
由此可見,無論是傳統的基礎算法,還是時下最流行的深度學習,特征的選擇與提取,對于模型最終的預測性能至關重要。另一方面,優選的特征集合相比原始特征集合,只需更少的數據量即可得到同樣性能的模型,從系統的角度看,特征選擇對機器學習執行性能的優化具有重大意義。
特征選擇在微博經歷了從最原始的人工選擇,到半自動特征選擇,到全自動特征選擇的過程,如圖1所示。我們將詳細介紹微博在各個階段的實踐與心得。
圖1 特征選擇在微博的演進
人工選擇
在互聯網領域,點擊率預估(Click Through Rate)被廣泛地應用于各個業務場景,在微博,CTR預估被應用在各個業務的互動率預估中。對于CTR預估的實現,邏輯回歸(Logistic Regression)是應用最多、最廣泛而且被認為是最有效的算法之一。
LR算法的優勢在于提供非線性的同時,保留了原始特征的可解釋性。LR模型產出后,算法人員通常會對模型中的權重進行人工審查,確保高權重特征的業務含義是符合預期的。為了提升LR算法的預測性能,業務人員與算法人員通常會根據對業務的理解,人工選擇各類特征(基于內容的特征、基于用戶的特征、基于環境和場景的特征等)或進行特征之間的組合。
對特征進行人工選擇的弊端顯而易見,首先要求相關人員對業務場景有足夠的熟悉和了解,通過自身的領域知識區分高區分度特征和低區分度特征。僅此一項就引入了太多的變數,不同人員對業務的理解不盡相同,很多時候人工選擇具有主觀性和局限性。
再者,在人工特征選擇完成后,需要整理相關數據進行重訓練,從而驗證新引入的特征對模型預測性能的提升是否有效,這是一個反復迭代的過程,期間會消耗大量的時間和精力。通常需要重復多次,才能選出少量高區分度的業務特征,由此可見,人工選擇特征方法的性價比是相對較低的。
相關性
針對人工選擇存在的問題,微博這幾年開始引入自動化特征選擇方法作為人工選擇的輔助。首先嘗試的是相關性法,即根據特征本身的相關性或特征與標簽之間的相關性來對特征進行選取和過濾。
方差法是特征自相關性的典型代表,通過計算特征自身的方差值,來反映特征的變化程度,方差趨近于零的特征基本上無差異,對于樣本的區分起不到關鍵作用。因此,通過方差法,可以過濾掉區分性差的特征。既然特征的選取取決于其對標簽區分的貢獻,我們不如直接計算特征與標簽之間的相關性來選取貢獻大的特征,而丟棄掉貢獻小(相關性小)的特征。
在該類方法中,比較典型且應用廣泛的有:皮爾森系數、卡方檢驗、互信息。方法的原理大同小異,考慮到卡方檢驗能夠同時支持連續和離散特征,在微博我們采取了卡方檢驗對特征進行初步篩選。
降維法
傳統的特征選擇方法從方式上大致分為三大類,即相關性、包裹法和嵌入法。剛剛提到的根據特征與標簽之間的相關性對特征進行選取的方法就是相關性法。在對包裹法和嵌入法進行嘗試之前,為了能夠詳盡特征選擇的方法,我們嘗試利用降維的方式進行特征選擇。
從嚴格的意義講,降維法不能叫作特征“選擇”/“篩選”方法,因為降維法(如PCA、SVD)原理是將高維度特征壓縮到低維空間中,壓縮的過程中造成了信息的丟失和損失,卻在低維空間保留(生產)了新的區分度更高的特征集合。所以降維法是對原始特征集合進行了變換和扭曲,生成了新的特征空間和集合。降維法的優點顯而易見,即無需用戶干預,自動對特征空間進行變換和映射,生產高區分度的特征集合;缺點是其在低維空間生產的特征不具有可解釋性,新的特征集合對業務人員和算法人員來說是不可讀的,無業務意義的。這個特性與后文提及的通過DNN來提取特征有相似之處。
模型倒推法
前面提到特征選擇的三大法寶,即相關性、包裹法和嵌入法。鑒于包裹法與嵌入法都是通過模型訓練效果來反推特征的選取與過濾,微博將這兩種方法進行了統一的嘗試與實踐。該類方法的思路是先根據現有的特征集合和數據,對模型進行訓練,然后根據模型的效果(如AUC、準確度等)和特征自身的權重大小來對特征進行選取。
如對于包裹法,比較經典的方法是逐步遞減原始特征的集合,觀察所訓練模型效果的變化,當模型效果出現顯著下降時,即認為下降前一組的特征集合是最佳候選集合。
對于嵌入法來說,比較典型的方法是通過L1或L2正則的特性,通過模型訓練得到各個特征的權重,如L1具備低絕對值碾壓特性,即對于權重較低的特征,直接將其權重截斷為零,這樣保留下來的即認為是具有高區分度的特征集合。這類選擇方法基于模型本身對特征進行過濾,因此選取出的特征集合有效性很好,但是該類方法同樣存在明顯的弊端:首先,方法本身看上去似乎相互矛盾,特征選擇的目的是為了訓練出預測性能更好的模型,而這里卻通過先進行模型訓練,再做特征選擇,總有一種“雞生蛋,蛋生雞”的感覺。再者,通過模型選取特征,需要對模型進行訓練和評估,相當于每次都把機器學習流程迭代一遍,尤其是包裹法,需要不斷的剔除可疑特征、重訓練的過程,在模型效果大幅降低前,經過數輪的計算和迭代。其次,有一個很重要的細節經常被忽略,即用于特征選擇參與模型迭代訓練的數據,不能參與最終的(特征選擇完成后的)模型訓練,否則會帶來臭名昭著的過擬合問題,道理顯而易見。
GBDT特征選擇
前文提到深度學習又叫“自動特征提取算法”,天生自帶特征提取屬性。但在介紹“自動特征提取算法”之前,我們有必要認識一下自動特征提取的前輩:GBDT(Gradient Boosting Decision Trees)。GBDT通過不斷地擬合上一棵決策樹的殘差來不斷逼近目標值,決策樹的信息增益算法結合GBDT特別的組合結構,造就了其葉子節點天生的高區分度特性。通過將原始特征導入GBDT進行訓練,再將得到的模型對原始數據進行預測,就得到了GBDT轉換/映射后的葉子節點特征集合,再將這個葉子節點組成的特征集合導入其他算法(如LR)進行訓練。GBDT的優點是特征自動選擇,區分度高;缺點與PCA和后面的深度學習類似,即新產生的特征不具備可解釋性。
深度學習
深度學習算法由神經網絡衍生而來,主要是指具有不同網絡結構(如用于圖像特征提取的CNN卷積神經網絡結構、用于時序相關的RNN循環神經網絡,以及由全連接組成的DNN深度神經網絡等)的深層神經網絡。神經網絡的每一層神經元都會根據上一層的輸入做非線性激活,并將其輸出作為下一層神經網絡的輸入,每一層神經元都可以理解為某一個層次的特征抽象,每一層網絡都可以形成一個新的特征集合,這種天然的特性為我們進行特征選擇提供了新的思路。通過構建深層神經網絡,并將最后一個隱層的神經元集合作為特征抽象,后續可以接入各種分類算法,如LR、決策樹、樸素貝葉斯等進行預測。
圖2 特征選擇效果對比
隨著新技術的出現與成熟,微博在特征選擇的演進上也與時俱進,在微博業務發展的不同階段,曾經分別對這些選擇方法進行實踐與嘗試,圖2總結了不同特征選擇方法對于模型預測性能的提升效果,僅供讀者參考。
圖2對比數據來自同一份數據集(特征選取與訓練分開,各百萬條樣本)與同一組特征集合(118個原始特征),采用不同的特征選擇方法對特征進行過濾、選擇、提取。橘色曲線表示對原始特征進行特征選擇后,不同特征選擇方法保留的有效特征個數,如用GBDT進行特征選擇后,僅僅留下44個有效特征。保留特征的個數主要取決于算法本身與業務人員的選擇。如對于方差法、卡方檢驗等相關性排序法,需要業務人員和算法人員指定保留的特征個數;而像L1正則與GBDT,則完全由算法本身根據數據分布特點,來決定原始特征的去留。最后的DNN即深度學習,也是根據經驗人為指定最后一層隱層的特征個數。藍色曲線表示采用不同特征選擇方法后,用另一份單獨的數據集進行訓練后的模型(LR模型)預測性能,我們這里用業界應用廣泛的AUC(Area Under Curve)來衡量模型的有效性。方差法和卡方檢驗完全取決于特征本身及其與標簽的相關性,因此提升幅度有限。正則化與GBDT等采用模型倒推的方法進行特征選取,因此預測性能有顯著提升。深度學習能夠在多個層次對特征進行抽象,最后一層隱層代表了特征的最高層次抽象,因此區分度最好。
本文首先介紹了不同特征選擇算法的各自特點及其在微博業務應用中的演進歷程,最后通過對比試驗,給出了不同方法對于模型預測性能效果的提升,希望能夠對讀者有參考價值。
-
特征選擇
+關注
關注
0文章
12瀏覽量
7195 -
深度學習
+關注
關注
73文章
5513瀏覽量
121545
原文標題:特征選擇算法在微博應用中的演進歷程
文章出處:【微信號:AI_Thinker,微信公眾號:人工智能頭條】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
阿里深度學習的“金剛鉆”——千億特征XNN算法及其落地實踐
MD5加密算法改進及其特征碼在殺毒軟件中的應用
基于統計數據的微博表情符分析及其在情緒分析中的應用
支持向量機特征選擇和參數聯合優化算法
融合多維數據的微博社區發現算法
![融合多維數據的<b class='flag-5'>微</b><b class='flag-5'>博</b>社區發現<b class='flag-5'>算法</b>](https://file.elecfans.com/web2/M00/49/87/poYBAGKhwMOAB00KAAAXEBMs1Pk217.jpg)
評論