離線測(cè)試得到滿意的性能提升之后,就可以進(jìn)行在線測(cè)試。離線測(cè)試效果好,并不意味著上線就能取得滿意效果。在線測(cè)試采用工業(yè)界廣泛使用的AB測(cè)試,首先我們會(huì)從線上切一小部分流量(B流量)給新模型、新參數(shù),將效果和使用原先的模型和參數(shù)的主流量(A流量)進(jìn)行對(duì)比,如果效果有所提升,再增加B流量的比例。測(cè)試通過(guò)了就可以全流量上線。
特征工程(feature engineering)的探討
業(yè)界這么多年的實(shí)踐經(jīng)驗(yàn)已經(jīng)證明,能給機(jī)器學(xué)習(xí)系統(tǒng)的性能帶來(lái)較大提升的,不是換新模型或者調(diào)參數(shù),而是特征工程,andrew ng也說(shuō)過(guò),“Applied machine learning" is basically feature engineering.”。機(jī)器學(xué)習(xí)只是提供了通用的算法,不可能根據(jù)不同的應(yīng)用場(chǎng)景去調(diào)整自身的數(shù)學(xué)模型或算法。這就需要我們加入一些人工干預(yù)。
特征工程基于不同應(yīng)用的領(lǐng)域知識(shí)對(duì)樣本提取關(guān)鍵特征,讓機(jī)器學(xué)習(xí)算法能夠發(fā)揮出最優(yōu)效果。相對(duì)而言特征工程是比較耗費(fèi)人力的步驟,實(shí)際操作中也會(huì)遇到較多困難,解決辦法只有一個(gè):了解你的問(wèn)題,了解你的數(shù)據(jù)。做反作弊檢測(cè)的時(shí)候,我們是細(xì)致觀察過(guò)作弊用戶的行為數(shù)據(jù),做過(guò)一些簡(jiǎn)單的統(tǒng)計(jì)分析。對(duì)作弊用戶的行為模式有一定的概念,才能設(shè)計(jì)出有用的特征讓預(yù)測(cè)效果達(dá)到要求。
非線性模型 V.S. 線性模型
進(jìn)入大數(shù)據(jù)時(shí)代,我們面臨的都是海量數(shù)據(jù)的處理問(wèn)題。我們處理的大數(shù)據(jù)集合,在完成特征工程之后,通常得到的特征維數(shù)很高,上千萬(wàn)維的特征也不少見(jiàn)。在某些應(yīng)用場(chǎng)景下,比如文本分類,當(dāng)樣本數(shù)量足夠多、特征維數(shù)足夠大的時(shí)候,我們發(fā)現(xiàn)非線性模型的效果并沒(méi)有比線性模型高出多少,但計(jì)算效率明顯差很多。這也是臺(tái)灣林智仁教授及其團(tuán)隊(duì)繼LIBSVM之后又推出了LIBLINEAR的原因,LIBLINEAR確實(shí)更符合當(dāng)下大數(shù)據(jù)處理的要求:快速、高效、性能有保證。如果數(shù)據(jù)量較大特征維數(shù)較多,線性模型是不錯(cuò)的選擇;一方面,線性模型可以在效果達(dá)到使用要求的前提下保證在線應(yīng)用的及時(shí)響應(yīng),另一方面也節(jié)約了離線訓(xùn)練的計(jì)算時(shí)間,可以提高特征工程迭代的效率。