0
本文作者: 叢末 | 2018-08-24 18:00 |
今年 KDD CUP 設(shè)立三項(xiàng)大獎(jiǎng),分別為 General Track、Last Ten-Day Prediction Track 以及 Second 24-Hour Prediction Track,從不同維度獎(jiǎng)勵(lì)表現(xiàn)突出的團(tuán)隊(duì)。由羅志鵬,胡可,黃堅(jiān)強(qiáng)組成的 Getmax 團(tuán)隊(duì),在這三項(xiàng)大獎(jiǎng)中獲得一項(xiàng)亞軍、兩項(xiàng)冠軍的成績(jī),是唯一包攬三項(xiàng)大獎(jiǎng)的團(tuán)隊(duì)。去年該團(tuán)隊(duì)成員帶領(lǐng)的 Convolution 團(tuán)隊(duì)也包攬了 KDD CUP 2017 的雙料冠軍。
圖為剛剛召開(kāi)的國(guó)際頂級(jí)會(huì)議 SIGKDD 授予 Getmax 團(tuán)隊(duì)的三項(xiàng)大獎(jiǎng)獎(jiǎng)牌
雷鋒網(wǎng)也在去年對(duì)該團(tuán)隊(duì)進(jìn)行了技術(shù)分享報(bào)道。
KDD Cup 是由 ACM 的數(shù)據(jù)挖掘及知識(shí)發(fā)現(xiàn)專委會(huì)(SIGKDD)主辦的數(shù)據(jù)挖掘研究領(lǐng)域的國(guó)際頂級(jí)賽事,從 1997 年以來(lái)每年舉辦一次。每屆都吸引眾多工業(yè)界以及學(xué)術(shù)界的選手,有數(shù)據(jù)挖掘領(lǐng)域「奧運(yùn)會(huì)」之稱。
KDD Cup 2018 題目為空氣質(zhì)量預(yù)測(cè), 由主辦方提供中國(guó)北京和英國(guó)倫敦的天氣數(shù)據(jù),選手需要以此來(lái)預(yù)測(cè)未來(lái) 48 小時(shí)內(nèi) PM2.5/PM10/O3 濃度。本次賽題本身對(duì)應(yīng)對(duì)惡劣環(huán)境、改善人類生存有著重要意義,而問(wèn)題本身則有數(shù)據(jù)規(guī)律性弱,易突變,時(shí)間序列以及空間拓?fù)潢P(guān)系建模等挑戰(zhàn)。
近日,在雷鋒網(wǎng) AI 研習(xí)社公開(kāi)課上,Getmax 團(tuán)隊(duì)就分享了 KDD CUP 2018 兩冠一亞團(tuán)隊(duì)解題思路,本次分享主要對(duì)空氣質(zhì)量問(wèn)題的重點(diǎn)、難點(diǎn)進(jìn)行針對(duì)性的特征設(shè)計(jì)與深度學(xué)習(xí)模型優(yōu)化。公開(kāi)課回放視頻網(wǎng)址:http://www.mooc.ai/open/course/530
分享人介紹
羅志鵬:微軟 Bing 搜索廣告算法工程師,北京大學(xué)軟件工程專業(yè)碩士,專注于深度學(xué)習(xí)技術(shù)在 NLP,廣告相關(guān)性匹配,CTR 預(yù)估等方面的研究及應(yīng)用。
黃堅(jiān)強(qiáng):北京大學(xué)軟件工程專業(yè)碩士在讀,擅長(zhǎng)特征工程、自然語(yǔ)言處理、深度學(xué)習(xí)。
胡可:阿里媽媽搜索直通車團(tuán)隊(duì)算法專家,碩士畢業(yè)于香港中文大學(xué)機(jī)器學(xué)習(xí)方向,工作技術(shù)方向?yàn)樯疃葘W(xué)習(xí)與廣告算法。
團(tuán)隊(duì)具備豐富的機(jī)器學(xué)習(xí)在工業(yè)界與比賽的應(yīng)用經(jīng)驗(yàn)。團(tuán)隊(duì)成員曾獲得 CIKM 2018 冠軍,KDD CUP 2017 雙料冠軍,Kaggle Outbrain Click Prediction 冠軍,微博熱度預(yù)測(cè)冠軍,上海 BOT 大數(shù)據(jù)應(yīng)用大賽冠軍等。
這一事件在雷鋒網(wǎng)旗下學(xué)術(shù)頻道 AI 科技評(píng)論數(shù)據(jù)庫(kù)產(chǎn)品「AI 影響因子」有相應(yīng)加分。
分享主題:KDD CUP 2018 兩冠一亞團(tuán)隊(duì)解題思路
分享提綱:
? 空氣質(zhì)量問(wèn)題理解及建模設(shè)計(jì)
? 特征工程
? 深度學(xué)習(xí)模型優(yōu)化
? 模型融合
雷鋒網(wǎng) AI 研習(xí)社將其分享內(nèi)容整理如下:
今天我們團(tuán)隊(duì)要跟大家分享的是 KDD Cup 2018 的解決方案。先介紹一下我們 Getmax 團(tuán)隊(duì),團(tuán)隊(duì)隊(duì)長(zhǎng)羅志鵬,是微軟 Bing 搜索廣告算法工程師,北京大學(xué)軟件工程專業(yè)碩士。我是黃堅(jiān)強(qiáng),目前北京大學(xué)軟件工程專業(yè)碩士在讀。胡可是媽媽搜索直通車團(tuán)隊(duì)算法專家,碩士畢業(yè)于香港中文大學(xué)機(jī)器學(xué)習(xí)方向。
我們團(tuán)隊(duì)擁有豐富的機(jī)器學(xué)習(xí)在工業(yè)界及競(jìng)賽的應(yīng)用經(jīng)驗(yàn),此前曾在 CIKM Cup 2018、KDD Cup 2017、Kaggle Outbrain Click Prediction 等比賽均獲得冠軍。
今年 KDD 2018 總共設(shè)置了三項(xiàng)大獎(jiǎng),我們獲得了兩項(xiàng)冠軍、一項(xiàng)亞軍的成績(jī),是唯一一個(gè)包攬三項(xiàng)大獎(jiǎng)的團(tuán)隊(duì)。
我們團(tuán)隊(duì)將從以下 4 各方面來(lái)分享本屆 KDD 大賽的經(jīng)驗(yàn)。
競(jìng)賽的第一步就是對(duì)問(wèn)題做相應(yīng)的調(diào)研——對(duì)于問(wèn)題以及數(shù)據(jù)的具體理解是建模的基礎(chǔ),所以我們先對(duì)本次KDD大賽的問(wèn)題進(jìn)行理解和分析。
首先介紹一下 KDD Cup 2018 的背景。在本次大賽中,主辦方提供了空氣質(zhì)量、天氣的歷史數(shù)據(jù)以及未來(lái)兩天的天氣預(yù)報(bào)數(shù)據(jù)。我們需要預(yù)測(cè)北京和倫敦 48 個(gè)站點(diǎn)、未來(lái) 48 個(gè)小時(shí)的 PM2.5/PM10/O3 濃度。本次大賽所使用的評(píng)價(jià)函數(shù)是 SMAPE:。
該評(píng)價(jià)函數(shù)是在 Norm-1 的 MAE 評(píng)價(jià)函數(shù)基礎(chǔ)上,除以預(yù)測(cè)值與真實(shí)值的平均值。使用該評(píng)估函數(shù)能有效防止在空氣質(zhì)量問(wèn)題特有的異常值對(duì)整體分?jǐn)?shù)的影響,比如說(shuō)當(dāng)空氣質(zhì)量突變到一個(gè)很大的值時(shí),分母項(xiàng)可以相對(duì)削弱該影響。
接下來(lái)講一下數(shù)據(jù)??諝赓|(zhì)量的指標(biāo)包括 PM2.5、PM 10、03。天氣數(shù)據(jù)的字段包括溫度、氣壓、濕度、風(fēng)速和風(fēng)向等。其中天氣預(yù)報(bào)數(shù)據(jù)的字段與天氣數(shù)據(jù)的字段相同,但不同之處在于天氣預(yù)報(bào)僅僅提供了訓(xùn)練集最后一個(gè)月的數(shù)據(jù)。
這些天氣的數(shù)據(jù)都以網(wǎng)格的形式給出,即地圖的經(jīng)緯度通過(guò)網(wǎng)格進(jìn)行劃分,北京總共能提供 600 多個(gè)網(wǎng)格點(diǎn),倫敦能提供 800 多個(gè)網(wǎng)格點(diǎn),在空間維度挖掘潛力很大。據(jù)了解,現(xiàn)有的工業(yè)界以及學(xué)術(shù)界主要通過(guò)統(tǒng)計(jì)學(xué)、時(shí)間序列等來(lái)進(jìn)行建模,基于機(jī)器學(xué)習(xí)尤其是深度學(xué)習(xí)建模的探索處于相對(duì)初級(jí)的階段。
本次大賽的難點(diǎn)在以下方面:
第一,數(shù)據(jù)存在噪聲和不穩(wěn)定性,空氣質(zhì)量規(guī)律性弱,濃度經(jīng)常變化很快。
第二,時(shí)間序列的建模難度相當(dāng)高:需要對(duì)未來(lái) 48 個(gè)小時(shí)的每一個(gè)小時(shí)進(jìn)行預(yù)測(cè)。對(duì)于時(shí)間較長(zhǎng)的狀態(tài)建模以及序列間依賴關(guān)系的建模帶來(lái)很大挑戰(zhàn)。
第三,空間拓?fù)淠P停盒枰獙?duì)兩個(gè)城市共幾百個(gè)站點(diǎn)做預(yù)測(cè)。不同站點(diǎn)之間的濃度有較大區(qū)別,變化趨勢(shì)不太一致而又具有一定的相關(guān)性。
經(jīng)過(guò)數(shù)據(jù)分析,我們發(fā)現(xiàn)北京 PM2.5 的空氣質(zhì)量濃度變化相當(dāng)劇烈,這是北京奧體中心從 2 月到 5 月的濃度變化值,其最低值能到 10 ,最高值能到350,而且往往在數(shù)小時(shí)內(nèi)就能產(chǎn)生巨大的變化,建模難度較大。
那么時(shí)間序列如何建模呢?我們用這張 PPT 來(lái)進(jìn)行說(shuō)明,整張 PPT 代表著我們現(xiàn)在能獲取的時(shí)間序列數(shù)據(jù),從 17 年 1 月 1 號(hào)到 18 年 4 月左右,然后以圈進(jìn)行劃定。這里我們假設(shè) N 等于 3,那么左邊的時(shí)間數(shù)據(jù)就相當(dāng)于從 17 年 1 月 1 號(hào)到 17 年 1 月 3 號(hào),右邊就是 4 號(hào)到 5 號(hào)總共48個(gè)小時(shí)。因?yàn)槌S玫念A(yù)測(cè)模型只有一個(gè),所以我們需要將 48 個(gè)小時(shí)滑動(dòng)拆分為 48 個(gè)樣本,那么每個(gè)小時(shí)的空氣質(zhì)量就是其中一個(gè)樣本的標(biāo)簽,由一個(gè) flag 特征來(lái)標(biāo)識(shí)是第幾個(gè)序列。這樣,就可以把時(shí)間序列預(yù)測(cè)問(wèn)題轉(zhuǎn)化為傳統(tǒng)的單目標(biāo)回歸問(wèn)題。
我們要在前 N 天的數(shù)據(jù)中提取特征來(lái)構(gòu)建訓(xùn)練集,所以滑動(dòng)一圈就能產(chǎn)生 48 個(gè)樣本,總共就能產(chǎn)生 86 萬(wàn)個(gè)樣本。然后,我們可以取最后 15 天左右來(lái)做驗(yàn)證集,由于時(shí)間序列數(shù)據(jù)不符合獨(dú)立同分布,并不適合做多交叉驗(yàn)證。并且因?yàn)楸举愵}中不同城市受空氣質(zhì)量影響的因素各不相同,分布差異較大,所以我們對(duì)北京的 PM2.5、PM 10、03 以及倫敦的 PM2.5、PM 10 這五個(gè)指標(biāo)構(gòu)建五個(gè)模型。
接著我們介紹一下特征工程。特征往往能決定模型的上限,要進(jìn)行特征工程,我們首先要構(gòu)建一個(gè) Baseline 模型,在此基礎(chǔ)上,才能進(jìn)行特征的有效性驗(yàn)證。
GBDT 模型由于其穩(wěn)定性及其對(duì)噪音的不明顯性等優(yōu)點(diǎn),適用于特征工程的驗(yàn)證。我們采用每個(gè)站點(diǎn)過(guò)去 72 小時(shí)的空氣質(zhì)量特征、離站點(diǎn)最近網(wǎng)格點(diǎn)的過(guò)去 72 小時(shí)的天氣特征來(lái)構(gòu)建 Baseline 模型。
這個(gè)是 Baseline 模型的預(yù)測(cè)效果圖,從圖中可以看出,僅僅使用這些特征并不能很好地反映真實(shí)值的趨勢(shì)。
在 Baseline 模型的基礎(chǔ)上,我們對(duì)空氣質(zhì)量、天氣數(shù)據(jù)進(jìn)行相關(guān)性分析,我們發(fā)現(xiàn) 73.7% 的空氣質(zhì)量的變化與風(fēng)速、風(fēng)向的變化相關(guān)聯(lián)。于是我們考慮在 GBDT 模型的基礎(chǔ)上引入天氣預(yù)報(bào)特征,但是天氣預(yù)報(bào)特征僅從 2018 年 4 月 10 號(hào)開(kāi)始提供,缺乏了一年多的數(shù)據(jù)——如何填補(bǔ)缺失的天氣預(yù)報(bào)數(shù)據(jù)是一個(gè)關(guān)鍵點(diǎn)。
通常,使用填補(bǔ)缺失值的方法是使用平均值和默認(rèn)值,但是這些方法都不能產(chǎn)生很好的效果。因此,我們采用了真實(shí)天氣來(lái)填補(bǔ)天氣預(yù)報(bào)的缺失值,然而這又產(chǎn)生了一個(gè)新的問(wèn)題——因?yàn)樘鞖忸A(yù)報(bào)真實(shí)天氣的分布比較不一致,容易導(dǎo)致訓(xùn)練的過(guò)度擬合,因而我們考慮嘗試采用遷移學(xué)習(xí)去解決這個(gè)問(wèn)題。
我們對(duì)真實(shí)天氣的訓(xùn)練集采取預(yù)訓(xùn)練,對(duì)天氣預(yù)報(bào)的訓(xùn)練集采取再訓(xùn)練的方式來(lái)構(gòu)建模型。然而經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),天氣預(yù)報(bào)只有最后一個(gè)月的數(shù)據(jù),并不能很好地覆蓋所有的天氣分布,所以這個(gè)模型的效果在未來(lái)的預(yù)測(cè)不穩(wěn)定。
最終我們對(duì)天氣引入了高斯噪聲,使用高斯分布去估計(jì)真實(shí)天氣與天氣預(yù)報(bào)的均值及方差,并且對(duì)每個(gè)小時(shí)都進(jìn)行參數(shù)估計(jì),以得到更準(zhǔn)確的高斯噪聲。另外,我們還使用分箱平滑進(jìn)一步去緩解天氣預(yù)報(bào)與真實(shí)值的分布不一致性問(wèn)題。
在緩解了不一致問(wèn)題后,我們認(rèn)為進(jìn)一步提升空間在于從單點(diǎn)的挖掘擴(kuò)展為多點(diǎn)的挖掘。因?yàn)樘鞖忸A(yù)報(bào)提供的網(wǎng)格數(shù)據(jù)點(diǎn)多,數(shù)據(jù)信息量巨大,挖掘空間很大,所以我們進(jìn)一步進(jìn)行天氣預(yù)報(bào)數(shù)據(jù)的特征挖掘。我們對(duì)每個(gè)站點(diǎn)附近八個(gè)方位最近的網(wǎng)格點(diǎn)的天氣進(jìn)行特征、空氣質(zhì)量特,這樣可以使得統(tǒng)計(jì)更充分并且穩(wěn)定。同時(shí)考慮到空氣具有較大的流動(dòng)性,城市乃至城市以外的較大范圍的地點(diǎn)都在未來(lái)時(shí)間段互相存在一定影響,所以我們對(duì)整個(gè)城市經(jīng)緯度跨度較大的 12 個(gè)網(wǎng)格進(jìn)行天氣預(yù)報(bào)特征的提取,并使用這些天氣預(yù)報(bào)特征來(lái)構(gòu)建我們最終的模型。
經(jīng)過(guò)對(duì)比,我們發(fā)現(xiàn)這張圖顯示的就是北京奧體中心站 5 月 28 號(hào)和 29 號(hào)的預(yù)測(cè)圖,該天凌晨有沙塵暴,導(dǎo)致 PM2.5 的濃度增大,后來(lái)天氣持續(xù)變好,在 4 個(gè)小時(shí)內(nèi),PM2.5 值從 160 左右降到 30 再降到 10 左右,空氣質(zhì)量的突變非常劇烈。我們的 Baseline 模型預(yù)測(cè)是這條橙線,最終模型預(yù)測(cè)是這條綠線,相對(duì)于橙線更加接近真實(shí)值(藍(lán)線)。因而,最終模型更能準(zhǔn)確反映空氣真實(shí)值的趨勢(shì)。
我們使用了6 批特征,包括一些基礎(chǔ)的特征如未來(lái)第幾個(gè)小時(shí)、哪個(gè)站點(diǎn)或者一些時(shí)間特征、空氣質(zhì)量的特征、歷史天氣的統(tǒng)計(jì),而最重要的是天氣質(zhì)量、空間拓?fù)涞奶卣?。同時(shí),我們也對(duì)一些歷史變化的特征進(jìn)行提取,比如統(tǒng)計(jì) PM2.5 最大值和最小值的時(shí)間間隔。
最終,我們構(gòu)建的模型需要進(jìn)一步選擇特征,以縮寫模型的運(yùn)行時(shí)間。我們通過(guò) GBDT 的分裂的特征增益所選擇的特征的重要性來(lái)進(jìn)行特征選擇,最后從 2027 個(gè)特征中選擇了 885 個(gè)特征來(lái)構(gòu)建最終模型。由于特征之間出現(xiàn)沖突,所以我們采用類似于隨機(jī)生成的 Bagging 做法,對(duì)特征進(jìn)行了分組,對(duì)每一組特征都構(gòu)建一個(gè)模型,然后對(duì)每個(gè)模型的預(yù)測(cè)值采取加權(quán)融合的方式來(lái)構(gòu)建最終模型。也同時(shí)在特征工程有瓶頸時(shí)進(jìn)入了下一個(gè)階段——多模型的構(gòu)建。
接下來(lái)由我們的隊(duì)長(zhǎng)羅志鵬來(lái)介紹深度模型的優(yōu)化。(羅志鵬:)下面介紹我們主要的兩個(gè)神經(jīng)網(wǎng)絡(luò)模型。
神經(jīng)網(wǎng)絡(luò)模型也有非常強(qiáng)的非線性交互能力,由于我們前面開(kāi)始做的時(shí)候用到 GBDT 模型,DNN 模型實(shí)際上與 GBDT 模型具有非常大的差異性。后期使用 DNN模型做融合的時(shí)候,能得到最大的提升。
GBDT 模型在時(shí)間和空間層面上的表達(dá)能力并不充分。在時(shí)間層面上,每個(gè)樣本的特征基本上都比較相似,所以我們給這些特征加了一個(gè)標(biāo)識(shí)位,對(duì)未來(lái) 48 個(gè)小時(shí),用 0 到 47 來(lái)進(jìn)行標(biāo)識(shí)。同時(shí),由于主要?dú)v史信息特征比如歷史空氣質(zhì)量、天氣預(yù)報(bào)占了比較大的特征比例,我們得到的一些與時(shí)間相關(guān)的天氣預(yù)報(bào)特征的結(jié)果差異性比較小,并跟真實(shí)值的差異比較大。此外,我們也發(fā)現(xiàn) 0 到 47 這個(gè)時(shí)間特征的重要性也特別高。
在空間上,倫敦有 13 個(gè)站點(diǎn),北京有 35 個(gè)站點(diǎn),我們也對(duì)其進(jìn)行數(shù)字編碼,但是表達(dá)能力有限。
接下來(lái)介紹一下我們的 DNN 模型。
左邊的這個(gè) Dense 特征是我們 GBDT 所用的特征。提特征的時(shí)候,需要注意的是,我們首先要進(jìn)行標(biāo)準(zhǔn)化,常規(guī)標(biāo)準(zhǔn)化方式就是在整個(gè)訓(xùn)練集上統(tǒng)計(jì)均值和標(biāo)準(zhǔn)差。我們發(fā)現(xiàn)這個(gè)數(shù)據(jù)集缺失點(diǎn)的分布不一樣——填充缺失部分,分布點(diǎn)差距很大,因此我們?cè)谧鰳?biāo)準(zhǔn)化的時(shí)候進(jìn)行了一些特殊操作:首先統(tǒng)計(jì)均值和標(biāo)準(zhǔn)差,忽視空值;做完標(biāo)準(zhǔn)化操作,再把空值進(jìn)行填充;之后,再對(duì)異常值進(jìn)行一些處理,對(duì)小于 0.3 和大于 0.3 的值進(jìn)行拆解,把范圍縮到 3 和 -3 之間。對(duì)于缺失值,也用專門的標(biāo)示位進(jìn)行表達(dá),然后我們把它 concat 起來(lái),得到整體的特征標(biāo)準(zhǔn)。
如果僅用左邊介紹的 Dense 特征,我們得到的結(jié)果會(huì)非常相近,就是 0 到 47 小時(shí)的結(jié)果會(huì)在某個(gè)值之間波動(dòng),但是彼此間的差異不會(huì)很大。我們?cè)诤竺孢M(jìn)行模型的優(yōu)化時(shí),加入了時(shí)間和空間信息聯(lián)合建模的優(yōu)化。
我們來(lái)看一下模型的右邊部分。首先對(duì)小時(shí)(Hour)即 0 到 47,進(jìn)行 Embedding,得到時(shí)間的表達(dá);Station 部分,同樣對(duì)北京 35個(gè),倫敦 13個(gè)進(jìn)行 Embedding,再做非線性變換,這個(gè)有×的圓圈部分代表元素層,它將時(shí)間和空間的信息融合起來(lái)變成時(shí)空信息,再經(jīng)過(guò)全連接,再經(jīng)過(guò) σ,這部分就得到時(shí)空門限(Gate),即時(shí)間和空間的信息整合。這個(gè)門限用來(lái)控制左邊主體模型結(jié)構(gòu)的信息通過(guò),這樣預(yù)測(cè)出來(lái)的結(jié)果差異性會(huì)比較大。這個(gè)時(shí)間和空間的聯(lián)合建模優(yōu)化不僅提高了精度,而且與樹(shù)模型有較大的差異性。
我們這里用到的激活函數(shù)是 B-swish。這個(gè)激活函數(shù)是由 Google 提出來(lái)的,大家可以看一下該函數(shù)的圖,它其實(shí)是一個(gè)不飽和、光滑、非單調(diào)性、有下界無(wú)上界的函數(shù)。相關(guān)的 tanh 函數(shù)和 sigmoid 函數(shù),它們圖形的兩端比較平,極值容易趨向于 0,會(huì)影響效果。另外,Relu 函數(shù)有很多變種,這些變種在實(shí)驗(yàn)中能得到比較好的效果,但相比較而言,B-swish 函數(shù)無(wú)論怎么調(diào)都能達(dá)到比較優(yōu)的結(jié)果,這個(gè)也在很多實(shí)驗(yàn)中得到了證實(shí),大家可以嘗試一下。
下面講一下 RNN 模型,它是一個(gè)序列的預(yù)測(cè),為一個(gè)序列模型。GBDT 和 DNN 都不是序列模型,它們預(yù)測(cè)一個(gè)站點(diǎn)的未來(lái) 48 小時(shí),需要預(yù)測(cè) 48 次,序列也是 4 8個(gè)樣本量,比較大的,差異主要體現(xiàn)在與時(shí)間相關(guān)的天氣預(yù)報(bào)上。
而 RNN 模型會(huì)一次性預(yù)測(cè) 48 個(gè)小時(shí)的結(jié)果,這樣訓(xùn)練的數(shù)據(jù)會(huì)小很多,但是它后面預(yù)測(cè)的某個(gè)小時(shí)的結(jié)果跟前面的結(jié)果有一定的關(guān)聯(lián),所以 RNN 很適合用來(lái)解決時(shí)間序列的問(wèn)題。
接下來(lái),我講一下這個(gè)模型結(jié)構(gòu)。
首先,前面的 Encoder 其實(shí)跟普通的 Encoder 模型很像,其主體用的都是 GRU,速度會(huì)比較快。Encoder 的輸入主要為歷史天氣預(yù)報(bào)、空氣質(zhì)量信息。
Decoder 模型與常規(guī) Decoder模型的差異比較大,輸入的是天氣預(yù)報(bào)、時(shí)間和 Station Embedding,同時(shí)會(huì)把上一個(gè)預(yù)測(cè)結(jié)果加入到每個(gè)時(shí)間部的輸入。比如說(shuō) Y1 在輸出的時(shí)候會(huì)把輸出結(jié)果連接到下一個(gè)時(shí)間部,第一個(gè) T1 的時(shí)間部為一個(gè)增勢(shì)值的輸入,而當(dāng)前空氣質(zhì)量的指標(biāo),后面的時(shí)間部是沒(méi)有增值的,這就是拿預(yù)測(cè)結(jié)果作為下一個(gè)時(shí)間部的輸入。
我們發(fā)現(xiàn)這個(gè)時(shí)間序列模型有時(shí)候并不是很不穩(wěn)定。我們?cè)谛蛄兄g加入了正則化。大家可以看一下這個(gè)公式:。
h(t)是當(dāng)前狀況,h(t-1)是上個(gè)時(shí)態(tài)的狀態(tài),我們對(duì)這兩個(gè)值的差值做了二方次,得到一個(gè)規(guī)則化的操作,公式的最左邊有個(gè) β,它是用來(lái)平衡規(guī)則化的,預(yù)測(cè)也會(huì)變得更穩(wěn)定些。
我們采用 Cocob 優(yōu)化器 ,它沒(méi)有學(xué)習(xí)率,所以我們不需要調(diào)節(jié)顯示率。另外,我們也做過(guò)一些測(cè)試,在這個(gè)任務(wù)上,這個(gè)優(yōu)化器確實(shí)優(yōu)于其他優(yōu)化器。當(dāng)然在一些 Paper 上也做過(guò)關(guān)于這個(gè)優(yōu)化器的實(shí)驗(yàn),將其跟常見(jiàn)的而優(yōu)化器做了一些對(duì)比,也表明它確實(shí)很不錯(cuò)。
最后,由胡可講一下模型融合與總結(jié)部分。
當(dāng)幾個(gè)單模型都調(diào)整到一個(gè)相對(duì)比較好的狀態(tài)的時(shí)候,我們要開(kāi)始想怎么把這幾個(gè)單模型進(jìn)行融合。通用的融合方式有 Begging、Boosting、Staking,綜合考慮模型的表達(dá)能力和模型具有一定的可擴(kuò)展性(相當(dāng)于可以加入更多的基模型)后,我們采用了一個(gè)兩級(jí)的 Staking 結(jié)構(gòu)。
第一級(jí)的模型,就是剛剛所介紹的 GBDT 以及 DNN、RNN 兩種神經(jīng)網(wǎng)絡(luò)模型,而我們這個(gè)staking模型,分為兩級(jí)。
第一級(jí)中,會(huì)對(duì)前面的訓(xùn)練數(shù)據(jù)進(jìn)行一年左右的訓(xùn)練,并將最后兩天作為一個(gè)預(yù)測(cè)時(shí)間,這樣能讓線下和線上的預(yù)測(cè)天數(shù)保持一致。而這樣也有一個(gè)問(wèn)題,即因?yàn)闇y(cè)試集只有兩天,數(shù)據(jù)量會(huì)比較小。因此,我們采用滑窗的方式來(lái)擴(kuò)大測(cè)試集的個(gè)數(shù):以兩天為一個(gè)單位向前滑,第一個(gè)集合相當(dāng)于以最后兩天作為它的測(cè)試集,第二個(gè)是以倒數(shù)第三、四天作為其測(cè)試集,同理滑動(dòng)多個(gè)集合,就可以利用上它們分別預(yù)測(cè)的值,比如說(shuō) GBDT 有一個(gè)預(yù)測(cè)值,這個(gè)值就作為特征 1,DNN 有一個(gè)預(yù)測(cè)值,這個(gè)值就作為特征 2,然后再把幾個(gè)集合做拼接,作為第二級(jí)融合的訓(xùn)練特征值。這個(gè)特征就是第一級(jí)模型的預(yù)測(cè)值,然后 label 就是它本身的數(shù)據(jù) label。
第二級(jí)模型選型中,我們一開(kāi)始嘗試使用 GBDT 模型,發(fā)現(xiàn)空氣質(zhì)量數(shù)據(jù)具有較強(qiáng)的不穩(wěn)定性,而 GBDT這種非線性模型容易引起過(guò)擬合。所以之后我們就采用了一個(gè)線性模型——Linear Regression,我們把第一級(jí)的預(yù)測(cè)模型作為特征,去進(jìn)行第二級(jí)模型的訓(xùn)練。
為了提高線性模型的表達(dá)能力,我們還采用了兩種優(yōu)化方式:
第一個(gè)優(yōu)化是基于約束的線性模型,背后的假設(shè)是第一層模型的預(yù)測(cè)均值切合真實(shí)值,因而第二層模型不影響它們的預(yù)測(cè)均值。
第二個(gè)優(yōu)化是基于人工先驗(yàn)引入一個(gè)非線性模型,把預(yù)測(cè)結(jié)果按照時(shí)間以及空間的多維度劃分。我們發(fā)現(xiàn)不同模型在不同時(shí)間內(nèi)表現(xiàn)形式是不一樣的,比如,有的模型在比較短的時(shí)間更擅長(zhǎng)預(yù)測(cè),有的模型在 40 小時(shí)后更擅長(zhǎng),因此在不同的時(shí)間段分別建模以提高模型的表達(dá)能力。相當(dāng)于在 48 個(gè)小時(shí)里,分別訓(xùn)練了 48 個(gè)基于約束的線性模型。我們考慮到了過(guò)擬合與欠擬合的平衡,在線性模型中基于人工先驗(yàn)引入了非線性。
在這個(gè)融合框架的第一級(jí)模型構(gòu)建,它的構(gòu)建有多種方式。我們從特征、模型兩個(gè)角度進(jìn)行構(gòu)建:模型,指采用 DNN、RNN 這兩種方式去建模時(shí)的時(shí)間和空間的拓?fù)潢P(guān)系。在特征層面,有些特征如天氣預(yù)報(bào)具有不穩(wěn)定性,所以我們?cè)谀P椭腥サ籼鞖忸A(yù)報(bào)特征,而對(duì)于拓?fù)浣Y(jié)構(gòu),我們也在 DNN 進(jìn)行了一定的刪改,并且在不同模型中分別放入長(zhǎng)時(shí)間特征、短時(shí)間特征,這樣就可以產(chǎn)生比較強(qiáng)的模型差異性。
模型的精度是S2S(RNN)>GBDT>DNN,融合大概有千分之七的提升,這是相對(duì)比較顯著的。主要得益于神經(jīng)網(wǎng)絡(luò)模型與樹(shù)模型有比較強(qiáng)的差異性,這是模型產(chǎn)生收益的基礎(chǔ)。
這個(gè)過(guò)程中,我們也有一些想做而沒(méi)時(shí)間做的工作:
一是對(duì)于地理位置的拓?fù)浣!F鋵?shí)我們?cè)?DNN 進(jìn)行地理數(shù)據(jù)操作之后,也想用 CNN 進(jìn)行拓?fù)淇臻g建模。
二是我們自身提供了一個(gè)五年的數(shù)據(jù),但由于時(shí)間關(guān)系,我們沒(méi)有時(shí)間去采用。其實(shí)我們可以從這個(gè)統(tǒng)計(jì)分析中看到,這種空氣質(zhì)量具有比較強(qiáng)的周期性,比如在夏天的時(shí)候,霧霾頻率低,在三、四月份比較高。在這五年中,我們其實(shí)可以捕捉到基于月、季節(jié)的周期性,把這種周期性特征和五年的數(shù)據(jù)一起進(jìn)行建模,應(yīng)該也會(huì)有增度的收益。
三是深入做一個(gè)天氣預(yù)報(bào)的誤差估計(jì)模型。我們天氣預(yù)報(bào)之前用的高斯噪聲,假設(shè)不同小時(shí),它的誤差是不一樣的,但影響誤差的因素并不單是不同的時(shí)間段,包括最近時(shí)間的一次誤差、最近發(fā)生突變情況的時(shí)間間隔和天氣狀況。如果我們深入,還可以做一個(gè)天氣預(yù)報(bào)的誤差估計(jì)模型。
這是關(guān)于我們整個(gè)迭代過(guò)程的總結(jié):
第一步,對(duì)問(wèn)題的理解,并且先從特征、數(shù)據(jù)的角度,去挖掘重要的信號(hào)量。我們發(fā)現(xiàn)比較重要的信號(hào)是天氣預(yù)報(bào)數(shù)據(jù),因而將其作為一個(gè)關(guān)鍵的信號(hào)去進(jìn)行細(xì)致的特征工程。
第二步,不同于通過(guò)特征工程來(lái)表達(dá)業(yè)務(wù)問(wèn)題。我們盡量從模型角度進(jìn)行優(yōu)化,比如針對(duì)不同的時(shí)間與空間的信息表達(dá),在 DNN 等模型上設(shè)計(jì)了時(shí)間和空間的單元,從而在更多的角度去建模時(shí)間序列和空間拓?fù)鋯?wèn)題,與之前特征工程的工作形成很好的補(bǔ)充。
第三步相當(dāng)于把特征和模型這兩個(gè)角度的關(guān)鍵求解模型進(jìn)行融合,這是基于一個(gè)約束的線性模型的融合框架。
所以我們認(rèn)為對(duì)于問(wèn)題的理解是基礎(chǔ),而對(duì)于關(guān)鍵信息細(xì)致的特征工程,以及針對(duì)問(wèn)題特點(diǎn)對(duì)于時(shí)間與空間的深度學(xué)習(xí)建模是后期優(yōu)化的關(guān)鍵。
以上就是本期嘉賓的全部分享內(nèi)容。更多公開(kāi)課視頻請(qǐng)到雷鋒網(wǎng) AI 研習(xí)社社區(qū)觀看。關(guān)注微信公眾號(hào):AI 研習(xí)社(okweiwu),可獲取最新公開(kāi)課直播時(shí)間預(yù)告。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。