近日,有數(shù)據(jù)挖掘領(lǐng)域“奧運會”之稱的KDD Cup 2018比賽結(jié)果出爐。今年的主題為空氣質(zhì)量預(yù)測,中國團隊Getmax包攬三項大獎,獲得兩項第一,一項第二的好成績。本文帶來該團隊親述算法思路與技術(shù)細節(jié)。
KDD Cup是由 ACM 的數(shù)據(jù)挖掘及知識發(fā)現(xiàn)專委會(SIGKDD)主辦的數(shù)據(jù)挖掘研究領(lǐng)域的國際頂級賽事,從1997年至今已有 21 年的歷史。作為目前數(shù)據(jù)挖掘領(lǐng)域最有影響力、最高水平的國際頂級賽事,KDD Cup 每年都會吸引來自世界各地數(shù)據(jù)挖掘領(lǐng)域的頂尖專家、學(xué)者和工程師參賽,因此也有“大數(shù)據(jù)奧運會”之名。
與往年只有最終成績獎項不同,KDD Cup 2018計算了比賽過程中的成績并設(shè)立了三項大獎——“The General Track”、“最后10天專項獎”、“最佳長期預(yù)測獎”,從三個維度來獎勵比賽中表現(xiàn)突出的隊伍。而“Getmax”也因全面而突出的表現(xiàn),從4000多個參賽隊伍中脫穎而出,成為唯一包攬三項大獎的隊伍,分別取得一項亞軍、兩項冠軍的成績。
如何在KDD Cup這樣高手如云的國際賽事中脫穎而出?Getmax團隊向新智元詳細介紹了他們今年的參賽解決方案,包括如何理解空氣質(zhì)量問題,分析數(shù)據(jù),特征工程,以及如何針對應(yīng)用特點進行深度學(xué)習(xí)建模與優(yōu)化。
背景介紹:KDD CUP 2018預(yù)測空氣質(zhì)量
KDD Cup 2018關(guān)注空氣質(zhì)量問題。在過去幾年中,空氣質(zhì)量問題已經(jīng)影響了很多發(fā)展中國家的大城市。2011年,康奈爾大學(xué)空氣質(zhì)量專家Dane Westerdahl在接受《洛杉磯時報》的采訪時表示,有些時候,發(fā)展中國家城市的空氣質(zhì)量和“森林大火下風(fēng)口的空氣質(zhì)量”相當(dāng)。
在眾多空氣污染物中,懸浮顆粒(particulate matters,簡稱PM)是最致命的一種之一。直徑小于或等于2.5 μm的懸浮顆粒可以進入肺部深處,進入血管,導(dǎo)致 DNA 突變和癌癥,中樞神經(jīng)系統(tǒng)損傷和過早死亡。
主辦方在比賽中提供中國北京和英國倫敦的數(shù)據(jù)。比賽選手需要預(yù)測未來48小時內(nèi) PM2.5, PM10和O3的濃度(倫敦只需要預(yù)測PM2.5和PM10)。
Getmanx團隊介紹:
羅志鵬微軟Bing搜索廣告算法工程師,北京大學(xué)軟件工程專業(yè)碩士,專注于深度學(xué)習(xí)技術(shù)在NLP, 廣告相關(guān)性匹配,CTR預(yù)估等方面的研究及應(yīng)用。
胡可阿里媽媽搜索直通車團隊算法專家,碩士畢業(yè)于香港中文大學(xué)機器學(xué)習(xí)方向。工作技術(shù)方向為深度學(xué)習(xí)與廣告算法。
黃堅強北京大學(xué)軟件工程專業(yè)碩士在讀,擅長特征工程、自然語言處理、深度學(xué)習(xí)。
評測指標(biāo)
每天,提交的結(jié)果將會和真實空氣質(zhì)量數(shù)據(jù)(也就是空氣監(jiān)測站測量的污染物濃度)比較,并根據(jù)Symmetric mean absolute percentage error評分:
At是真實值,F(xiàn)t是預(yù)測值。
題目特點以及常用方法
空氣質(zhì)量相關(guān)預(yù)測問題相對比較新,涉及的領(lǐng)域包括環(huán)境科學(xué)、統(tǒng)計學(xué)、計算機科學(xué),近年也有機器學(xué)習(xí)方面的研究工作。國內(nèi)外多個網(wǎng)站,APP都有對空氣質(zhì)量預(yù)測的應(yīng)用。現(xiàn)有的方法主要集中于統(tǒng)計學(xué)以及線性回歸等機器學(xué)習(xí)模型,近年也有RNN相關(guān)的研究[1],現(xiàn)有的模型主要預(yù)測時間段在8~24小時以內(nèi)。
空氣質(zhì)量預(yù)測具有規(guī)律性弱,不穩(wěn)定,易突變的特點。因為比賽要預(yù)測48小時時間序列以及北京/倫敦城市內(nèi)幾十個預(yù)測地點,建模更長的時間序列以及地理拓撲關(guān)系給機器學(xué)習(xí)模型帶來挑戰(zhàn)。
現(xiàn)有的方法針對的預(yù)測的時間段較短,沒有基于位置拓撲以及利用天氣預(yù)報進行建模,在機器學(xué)習(xí)尤其深度學(xué)習(xí)模型的運用也處于探索階段。并且,由于比賽賽制每天需提交未來結(jié)果,相對于很多基于固定測試集的方案或比賽更接近真實工業(yè)界,對模型的穩(wěn)定性以及迭代開銷也有很多挑戰(zhàn)。
比賽數(shù)據(jù)與數(shù)據(jù)分析
本題提供主要三方面數(shù)據(jù):
空氣質(zhì)量數(shù)據(jù), 主要包括以下幾種重要的空氣污染物:PM2.5, PM10, O3
天氣氣象數(shù)據(jù):地理網(wǎng)格數(shù)據(jù)點的天氣,溫度,氣壓,濕度,風(fēng)速,風(fēng)向
未來48小時天氣預(yù)報:與天氣氣象數(shù)據(jù)相同網(wǎng)格點的天氣,溫度,氣壓,濕度,風(fēng)速,風(fēng)向預(yù)報值
其中過去一年的數(shù)據(jù)有空氣質(zhì)量數(shù)據(jù)與天氣數(shù)據(jù),過去一個月的數(shù)據(jù)有天氣預(yù)報數(shù)據(jù)。
首先,我們觀察了北京站點2018年2月到5月之間的空氣污染物(PM2.5)濃度變化情況,以北京奧體中心站點PM2.5為例,下圖顯示了PM2.5隨時間的變化,從圖中可以看出,北京的PM2.5濃度變化不定,最低能達到10以內(nèi),最高能達到350左右。并且在數(shù)小時就可以產(chǎn)生劇烈的變換,為預(yù)測增加了很大的難度。
特征工程
我們首先提取了每個站點過去72小時的空氣質(zhì)量,以及每個站點最近網(wǎng)格過去72小時的氣象數(shù)據(jù)來作為站點的氣象特征,使用這些特征構(gòu)建了第一個模型。
我們發(fā)現(xiàn),基于歷史統(tǒng)計量的模型對于長期預(yù)測尤其是突變效果并不理想。以 5 月 7 號對于未來兩天預(yù)測為例,下圖可以看出,在 5 月 8 日到 5 月 9 日模型一的 PM2.5 濃度從 40 上升到 80 又下降到 40,而我們基于歷史統(tǒng)計量特征的模型始終保持在 50 左右,經(jīng)過數(shù)據(jù)分析我們發(fā)現(xiàn),這段時間的天氣發(fā)生了一定的變化,我們分析未來天氣預(yù)報是問題的關(guān)鍵并構(gòu)建相關(guān)特征。
北京奧體中心站點5月8號-5月9號的PM2.5預(yù)測值及真實值
而天氣預(yù)報數(shù)據(jù)只有 2018 年 4 月 10 號后約一個月的數(shù)據(jù),在此前一年的訓(xùn)練數(shù)據(jù)缺失天氣預(yù)報,沒法做有效的訓(xùn)練。所以我們使用 2018 年 4 月 10 號以前的真實氣象數(shù)據(jù)代替此時段天氣預(yù)報數(shù)據(jù)。
然而,由于真實天氣數(shù)據(jù)與預(yù)測天氣數(shù)據(jù)分布并不一致,我們采取對訓(xùn)練數(shù)據(jù)中的真實數(shù)據(jù)引入高斯噪聲,并且考慮到短期預(yù)報與長期預(yù)報估計誤差的不同,針對于不同的預(yù)測小時段進行了不同的參數(shù)估計,緩解了訓(xùn)練集與預(yù)測集合不一致所造成的過擬合問題。
針對于某些特殊時段天氣預(yù)報預(yù)測偏差過大造成的不穩(wěn)定問題,我們進一步使用分箱平滑。參照真實天氣預(yù)報一個月數(shù)據(jù)的樹模型訓(xùn)練集上的特征重要性與測試集效果進行了超參數(shù)確定。并且我們也嘗試transfer learning等方法優(yōu)化分布不一致問題,但由于最后一個月數(shù)據(jù)太少效果不穩(wěn)定,并且迭代開銷大沒有采用。
在基于單點構(gòu)建天氣預(yù)報特征后,我們發(fā)現(xiàn)很多周圍方位的天氣預(yù)報信息對于當(dāng)前點也有很大影響。我們由利用幾百個網(wǎng)格數(shù)據(jù)點進行拓撲信息特征構(gòu)建。首先我們針對每個城市的每個站點的 8 個臨近方位角去提取 8 個網(wǎng)格數(shù)據(jù)點的天氣預(yù)報特征。考慮到其他位置的天氣如風(fēng)速等會影響到當(dāng)前方位的污染狀況,我們也針對北京 12 個經(jīng)緯度跨度較大的網(wǎng)格數(shù)據(jù)點作為全局預(yù)報特征,取得了較大的提升。Model1 是基于歷史統(tǒng)計量以及初步天氣預(yù)報特征模型,Model2 是細化天氣預(yù)報特征與地理位置特征的模型。
北京奧體中心站點5月8號到5月9號的PM2.5預(yù)測值及真實值
我們也在其他預(yù)測日驗證了模型效果。下圖為兩個模型在 5 月 28 號和 29 號的效果圖(29 日后面有數(shù)據(jù)缺失),我們的細粒度天氣預(yù)報特征也可以更好的預(yù)測趨勢。圖中空氣質(zhì)量有較大的突變,而我們的模型也捕捉到了突變趨勢。突變是對于實際應(yīng)用有重要應(yīng)用價值的場景,在這次突變天氣提交我們成績?yōu)?.48,同當(dāng)日第二名成績 0.54 相比有明顯優(yōu)勢。
北京奧體中心站點5月28號到5月29號的PM2.5預(yù)測值及真實值
最終,特征主要分為六類:
基本特征:需預(yù)測的第幾個小時,樣本是在當(dāng)天的第幾小時,所在的經(jīng)緯度等
空氣質(zhì)量特征:過去1,3,5……72小時的污染物濃度/過去1,3,5, 7天同小時時間污染物濃度均值,中位數(shù),最大值,最小值等統(tǒng)計值,不同小時之間rate/diff等趨勢特征等
天氣特征:過去1,3,5……48小時平均風(fēng)速,風(fēng)向分箱聚合等
天氣預(yù)報特征:預(yù)測時間所在小時風(fēng)速風(fēng)向,預(yù)測時間之前1,3,6,12小時風(fēng)速平滑統(tǒng)計量累計值、極值等,按照風(fēng)向分箱聚合等統(tǒng)計量等
拓撲位置相關(guān)特征:全局統(tǒng)計量,離當(dāng)前位置最近的 8 個方位統(tǒng)計量,該城市 12 個方位統(tǒng)計量等
歷史突變相關(guān)特征:歷史最大/最小統(tǒng)計量距離當(dāng)前隔多久,相隔的時間內(nèi)平均統(tǒng)計量,極值的差,以及歷史的極值之間的時間差等
我們從 2027 個特征中采用較為重要的 885 個特征,訓(xùn)練數(shù)據(jù)共 75 萬條。
實驗?zāi)P停篏BDT、DNN、RNN
我們主要用采用3種模型,GBDT, DNN與RNN(Seq2Seq-GRU) 模型。由于數(shù)據(jù)分布差異很大,我們對于不同城市以及不同污染物分別建模。針對時間序列問題我們一共有 2 種建模方式,序列模型 (RNN) 是每條樣本未來 48 小時的空氣質(zhì)量為 48 個label,而常規(guī)回歸模型(GBDT/DNN)是將一條序列樣本根據(jù)預(yù)測未來的 48 小時序列數(shù)展開為48條樣本,每條樣本預(yù)測一個狀態(tài),48 條樣本間歷史統(tǒng)計特征相同,存在二個區(qū)別:1)用hour flag標(biāo)識是第幾個樣本;2)天氣預(yù)報特征。
GBDT模型用 LightGBM 兩種模型,主要用于特征迭代。針對問題特點對 DNN 模型和RNNSeq2Seq-GRU 模型進行了優(yōu)化。
DNN模型相對于 GBDT 模型有更強的特征交叉關(guān)系學(xué)習(xí)能力,并且可以學(xué)習(xí)到一些在訓(xùn)練集中沒有出現(xiàn)的交叉關(guān)系,下圖為 DNN 模型的結(jié)構(gòu)圖。
基于DNN模型,我們有如下調(diào)整與優(yōu)化:
對特征進行標(biāo)準(zhǔn)化處理,計算均值和方差的時候?qū)θ笔е禃翰蛔鎏幚?/p>
標(biāo)準(zhǔn)化后進行特征值clip,減少離群特征值對模型的影響
對缺失值填充 0,并添加缺失標(biāo)志位
使用b-swish激活函數(shù)[2],其公式為 b-swish(x) = x*sigmoid(b*x),b為可訓(xùn)練參數(shù);b-swish 擁有不飽和、光滑、非單調(diào)性的特征
參考 product neural network[3]概念以及 LSTM 中的 Gate 設(shè)計,對時間與位置信息 embedding 進行了 product 以及后面 sigmoid 激活,再與模型本身的統(tǒng)計特征進行組合
傳統(tǒng)的回歸損失函數(shù)MSE與比賽的評分函數(shù)SMAPE有較大的差異,直接優(yōu)化MSE會導(dǎo)致與評測目標(biāo)不一致。而SMAPE在0點不可導(dǎo)且有臨近點不穩(wěn)定問題,我們?yōu)榱酥苯觾?yōu)化SMAPE參照kaggle web traffic prediction比賽分享進行了損失函數(shù)逼近[4],使得模型優(yōu)化與評測更一致:
epsilon = 0.1
summ = tf.maximum(tf.abs(true) + tf.abs(predicted) + epsilon, 0.5 + epsilon)
smape = tf.abs(predicted - true) / summ * 2.0
由于空氣質(zhì)量預(yù)測特征的噪音較大,神經(jīng)網(wǎng)絡(luò)相對于樹模型對于異常值更敏感,我們做了更多的數(shù)據(jù)處理(a/b/c)。并且由于傳統(tǒng)回歸模型由于基于歷史統(tǒng)計量相同,會有序列間預(yù)測值接近問題,以及不能很好的利用其他拓撲方位的統(tǒng)計信息。我們針對時間與空間概念,參考了LSTM中的 Gate,通過點乘與后續(xù)連接,增強時間/空間特征在模型中的區(qū)分度,并且相對于普通全連接網(wǎng)絡(luò)更好建模了時間/空間信息與統(tǒng)計特征的組合能力。最終結(jié)果序列間預(yù)測值方差顯著增加,提升了模型精度與相對于樹模型的模型差異性。
同時,在基于時間/空間的點乘優(yōu)化時間序列取得增益后,我們?yōu)榱诉M一步建模時間序列,進行了 RNN 模型的嘗試。使用 RNN 模型的主要好處是,能夠根據(jù)上一步的模型預(yù)測信息結(jié)合當(dāng)前步的輸入特征進行預(yù)測當(dāng)前步,并且可以對不同狀態(tài)學(xué)習(xí)不同的權(quán)重。這樣可以進一步使得序列間結(jié)果的方差,與常規(guī)回歸建模方式形成很好的融合差異性。
下圖為RNN (Seq2Seq-GRU)模型結(jié)構(gòu):
在RNN每一步從上一步獲得預(yù)測結(jié)果,并加入到當(dāng)前時間步的輸入特征中(以天氣預(yù)報特征為主)。考慮到了模型精度以及訓(xùn)練速度,模型在 Encoder 和 Decoder 中均使用 GRU。
除采用在 DNN 模型中的 a/b/c/d/g 優(yōu)化方法,RNN 模型有如下優(yōu)化:
在 Seq2Seq 網(wǎng)絡(luò)中加入狀態(tài)間隱藏層正則項[5],解決模型不穩(wěn)定的問題。
傳統(tǒng)的 Seq2Seq 模型中 decoder 的輸入信息主要來自 encoder, 由于本次任務(wù)的預(yù)測序列比較長,并且我們有天氣預(yù)報這種未來信息可以用,因此我們針對decoder 的每個時態(tài)設(shè)計了特定的特征 T1-T48(當(dāng)前時態(tài)的天氣預(yù)報等其他空氣質(zhì)量特征)。
Seq2Seq 模型訓(xùn)練開銷大并且對于參數(shù)更敏感,我們使用 Cocob優(yōu)化器[6],結(jié)合梯度截斷進行訓(xùn)練。主要可以通過預(yù)測學(xué)習(xí)率加快收斂速度,對迭代的速度有一定幫助,也可以少量提高模型精度。
由于我們預(yù)測序列含有 48 狀態(tài),每個狀態(tài)都依賴于之前狀態(tài)學(xué)習(xí),而空氣質(zhì)量以及天氣預(yù)報數(shù)據(jù)含有大量噪音,前面序列預(yù)測不準(zhǔn)確經(jīng)常會導(dǎo)致后面預(yù)測偏移較大,我們使用狀態(tài)間正則項,可以使得模型更穩(wěn)定,提升模型精度。
由于未來每個狀態(tài)均有天氣預(yù)報特征,我們不同于傳統(tǒng)的 decoder,在未來時態(tài)也輸入了本狀態(tài)特征(空氣預(yù)報等特征),這樣相對于把這些特征直接輸入到 encoder 端具有更強的表達能力,并且可以緩解長序列梯度消失等問題。
模型融合
模型融合是算法大賽中常用的提高模型精度方法,有些比賽在競爭激烈的后期用了幾十甚至上百模型。由于本次比賽賽制是每天早上 8 點提交,預(yù)測未來 2 天成績,相對于靜態(tài)測試集更接近真實工業(yè)屆天級更新模型場景。為了平衡模型精度和迭代成本,我們用了 5 個基模型,融合結(jié)構(gòu)主要是 2 層 stacking 結(jié)構(gòu)[7],第1層(L1) 是基模型,主要包括 GBDT/DNN/Seq2Seq 等模型差異以及特征差異,第2層(L2) 模型 L1 模型之后的 7 天數(shù)據(jù)進行訓(xùn)練。基于非線性模型的L2 模型有更強的表達能力,也是我們之前比賽最常用方案之一。
由于天氣數(shù)據(jù)噪音重等數(shù)據(jù)特點,采用非線性模型如GBDT易引起模型過擬合。我們最終根據(jù)融合建模特點采用基于約束的線性模型,并且我們基于時間,地點等多個維度進行了統(tǒng)計,發(fā)現(xiàn)不同模型在不同預(yù)測段之間的相對精度有一定差異,不同于一個整體的L2模型,我們對每一個預(yù)測小時分別求解一個L2模型,精度有進一步提升。相對于L2在基于約束的線性模型的基礎(chǔ)上基于統(tǒng)計適當(dāng)引入非線性,取得表達能力與泛化能力的一個平衡。
下面是單模型和融合模型的結(jié)果,相對于更依賴網(wǎng)絡(luò)調(diào)優(yōu)的深度學(xué)習(xí)模型, GBDT 模型更依賴于特征工程,深度學(xué)習(xí)與樹模型本身有較強的差異性產(chǎn)生較大的融合增益。
空氣質(zhì)量預(yù)測問題不同于KDD Cup 早年的一些廣告、推薦類題目,已經(jīng)在工業(yè)屆有了大量應(yīng)用,我們的努力也是做了初步探索。我們先是從數(shù)據(jù)與特征角度出發(fā),對天氣預(yù)報做了大量特征以及添加高斯噪音都處理,同時又在時間與空間維度進行進一步添加特征。而單純從特征角度解決問題也逐漸遇到瓶頸,我們進一步運用深度學(xué)習(xí)模型角度對時間以及空間角度進行進一步建模,可以與本身基于大量特征工程的樹模型有很好的補充,為后續(xù)融合打下很好的基礎(chǔ)。之后我們基于多個單模型優(yōu)化最終的第二層融合模型。
在比賽中做了很多嘗試,我們認為這次過程中比較重要是基于空氣質(zhì)量問題的理解以及找到問題的關(guān)鍵點,在建模過程中盡量從多方面(如特征+特征)對關(guān)鍵問題進行求解,從多個角度優(yōu)化到高精度的模型是最終融合模型取得效果的基礎(chǔ)與關(guān)鍵。
進一步工作
我們曾嘗試用CNN建模地理位置拓撲關(guān)系,沒有取得明顯增益,考慮到地理數(shù)據(jù)不夠充足以及時間有限放棄此嘗試,考慮到基于地理位置的特征帶來了一定的增益,地理位置的進一步建模也是有意思的進一步嘗試點。
同時,在比賽中也提供了 5 年的北京歷史空氣質(zhì)量數(shù)據(jù),由于時間有限我們沒有使用,數(shù)據(jù)的增加,以及以年為單位進行建立周期性特征也是后面的一個嘗試點。
-
機器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8446瀏覽量
133126 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1461瀏覽量
34186
原文標(biāo)題:中國團隊兩冠一亞包攬KDD CUP三項大獎,作者親述技術(shù)細節(jié)
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論