【報道】Kaggle 大神 Eureka 的高手進階之路

【報道】Kaggle 大神 Eureka 的高手進階之路

來自專欄 『運籌OR帷幄』大數據人工智慧時代的運籌學

作者: 思穎。本文轉自 AI研習社 歡迎原鏈接轉發,轉載請前往 「AI研習社」公眾號獲取信息,盜版必究。

敬請關注和擴散本專欄及同名公眾號,會邀請全球知名學者發布運籌學、人工智慧中優化理論等相關乾貨、知乎Live及行業動態:

『運籌OR帷幄』大數據人工智慧時代的運籌學

本文已經發佈於『運籌OR帷幄』公眾號:【報道】Kaggle 大神 Eureka 的高手進階之路

作為全球首屈一指的數據科學、機器學習競賽和分享平台,Kaggle以其比賽多樣、數據集全面、社群活躍的優勢而備受推崇。從學生到上班族,Kaggle 的用戶群體範圍極廣。目前,Kaggle 上大量的比賽吸引無數人參與,一方面,既能拿到獎勵,另一方面,也能獲得實戰經驗。但由於競爭的激烈性,對於國內選手來說,想在榜單上拿到較高名次並不容易。

而在 Kaggle 排行榜上,有一位中國選手,面對如此激烈的競爭,一舉殺入前五,最高排名第三。他就是目前在排行榜上位列第四的 Eureka(Eureka Kaggle ) 。

Eureka真名燕鵬,目前任職於美團點評。據AI研習社了解,燕鵬2005年畢業於清華大學,當時的研究方向為計算機視覺。畢業十多年的他,最早接觸 Kaggle卻已經到2014年了。此前,他毫無數據挖掘類比賽的經驗,在加入 Kaggle 後這三年多的時間內,他參加四十多場比賽,完成了從一名初級選手進階為高手之路。而作為一名經驗豐富的做題者,他在美團點評工作期間也經歷了角色的轉變——由做題人再到出題人。

燕鵬為什麼會在畢業多年之後選擇 Kaggle 平台參加比賽?經過這三年多的比賽,他看到賽事發生了什麼改變,有什麼經驗分享給大家,而他的心態又發生了什麼改變?對於出題,他的看法又如何?

下面的幾個問題或許能解答你心中的疑惑。

以下為 AI 研習社對燕鵬的採訪實錄,做了不改變原意的編輯整理。

01

A:你於 2014 年加入 Kaggle,已經參加了上面的四十多場比賽,第一次參加 Kaggle 比賽的原因是什麼?是什麼吸引著你不斷參加各類比賽?

B:每個人在做具體工作的時候,雖然能夠做出一些成績,但是這個成績可能無法全面衡量你在這件事情上的能力。在工作上,可能你還是自己跟自己比,或者是跟之前做這件事的人比,你現在做出來的東西可能只是比之前做的人好一點,或者比自己之前做的好一點。究竟你的數據挖掘能力怎麼樣,其實並不能很好地體現出來。

出於這種考慮,恰好聽到這麼一個平台,我就去 Kaggle 上看了看。在那裡,有很多公共數據,也有一些比較牛的人,通過與他們不斷交流和競賽,就能較好地評估自己的能力。

在 Kaggle 平台上,能夠接觸到各行各業的問題,開闊視野。在公共數據集上和國際高手切磋,也能夠學習到一些比較實用的招數。比賽和研究的區別,是比賽中的方法一般都是比較有效的,在這個過程中也可以不斷優化自己對新問題的解決思路。

02

A:你參加過的比賽中,有廣告、交通、金融、教育、醫療等各式各樣的問題,在解決這些問題的方法上,是否總結過有哪些共性?

B:就我個人對這些比賽的分類,主要分為挖掘、圖像、語音、NLP 四類。

你可以這麼理解數據挖掘類問題,除了語音、圖像和 NLP,剩下的所有問題,都可以歸結為此類問題。例如根據實際業務,做各種各樣預測的問題(預測銷量、點擊率、推薦排序等),都可以定義為數據挖掘問題。或許我的定義並不準確,不過我沒有想到一個更好的表達詞。

這四類問題需要用到的一些技術或者技巧,彼此之間可以相對獨立,每類問題都有各自的套路。

對於數據挖掘類問題來說的話,具體是廣告、交通、金融還是教育,其實影響不大。主要的共性就是理解數據,理解問題,從數據中找到有用的信息用來預測,這類問題勝負更多的是在特徵上。

對於圖像問題,可能就較少涉及到特徵了。圖像問題現在主要用到深度學習的相關技術,基於深度學習做了很多改進或者演繹,已經完全不需要在特徵層面上去做什麼了。

像圖像、語音類比賽,其實我目前接觸的還比較少,這種比賽這兩年才開始興起。

03

A:你提到在數據挖掘比賽上面,勝負更多在特徵上,為什麼這麼說呢?在特徵上有什麼套路?

B:基本上大家都會用同樣的一些工具去訓練同樣的模型,在模型方面差別很小。所以,模型沒那麼重要。

融合是基於單模型來的,要是單模型不好,那麼很大概率上融合也好不了。此外,融合的套路應該也基本上都固定了,但凡常玩的人也都知道。所以,融合基本上達不到創新,很難出現別人不知道的招。

因此,機會還是在特徵上,現在只有特徵還沒有一個通用的標準,大家自己做自己的,有可能做出點不一樣的東西。

其實特徵工程主要分兩點。第一點:你可能需要了解業務,從業務本身出發,找到一些對預測有幫助的信息和線索。這是基於你對業務的熟悉,對業務的理解出發的。

第二點就是需要想辦法把這種信息轉化成適用於模型的特徵。

04

A:除了前面在特徵工程方面的經驗,有些比賽上,比賽主辦方會提供原始數據,在數據預處理階段,你有什麼經驗分享呢?

B:在比賽中會遇到這樣的情況,這時候可能也需要一些方法:

基於對業務的理解,這種相對比較少一點,更多的還是基於數據本身。你可以用一些數據挖掘中常用的數據清理的方法,過濾異常值,過濾缺失嚴重的特徵等等。

有時候做預處理,最終還是需要一些反饋。比如從數據上看,可能需要扔掉某些東西。我們需要去試一試,扔掉這些東西之後,在最終的比賽中,提交的預測結果會不會變好。或者採用以結果導向的反饋,這樣迭代去往下走。

另外,每個比賽其實都有一些自己獨特的數據,即使是同樣領域的問題,數據的分布也可能差別很大。這時候之前的經驗可能就不適用當前的問題,我們必須接受這樣一個事實,需要針對數據重新去建立問題的解決方案。其實這還是一個偏實踐的問題,實踐推動著你往前走。

05

A:從最開始接觸數據挖掘類比賽到現在,試題主要發生了哪些改變?

B:一年前的比賽裡面,十個有八個都跟數據挖掘相關。不過目前有一個趨勢,圖像類型的比賽變多,NLP 以及語音相關的題目也開始慢慢出現。

A:除了前面在特徵工程方面的經驗,有些比賽上,比賽主辦方會提供原始數據,在數據預處理階段,你有什麼經驗分享呢?

B:在比賽中會遇到這樣的情況,這時候可能也需要一些方法:

基於對業務的理解,這種相對比較少一點,更多的還是基於數據本身。你可以用一些數據挖掘中常用的數據清理的方法,過濾異常值,過濾缺失嚴重的特徵等等。

有時候做預處理,最終還是需要一些反饋。比如從數據上看,可能需要扔掉某些東西。我們需要去試一試,扔掉這些東西之後,在最終的比賽中,提交的預測結果會不會變好。或者採用以結果導向的反饋,這樣迭代去往下走。

另外,每個比賽其實都有一些自己獨特的數據,即使是同樣領域的問題,數據的分布也可能差別很大。這時候之前的經驗可能就不適用當前的問題,我們必須接受這樣一個事實,需要針對數據重新去建立問題的解決方案。其實這還是一個偏實踐的問題,實踐推動著你往前走。

06

A:如今選擇比賽的時候有什麼個人喜好或選擇標準嗎,和最初參賽時相比,心態上有哪些變化?

B:之前更多選擇自己熟悉的領域,比如廣告,主要也是想從中獲取到一些知識,直接用於工作中。目前,我最感興趣的都是我不太熟悉的領域,例如圖像類、NLP 類,這對我來說也是最難解決,最有挑戰性的。

目前看來,這些比賽其實殊途同歸,除了廣告類的比賽,參加其他方面的比賽也能獲得很多寶貴的經驗,應用於實際工作中。

其實玩比賽,最主要的目的不是去贏,而是去學,那裡面有很好的學習資源。比如,你的解決方案最後可能與別人的差距很大,可以看看最後贏的人是怎麼解決這個問題的,他的經驗肯定對你有幫助。當一場比賽結束之後,前幾名一般都會分享經驗,你可以結合自己的經驗,把前幾名的方案融匯到你的知識框架里去,這樣的話,再玩可能就會好很多。(目前 AI 研習社正在做系列賽事冠軍經驗分享報道,感興趣的同學可以持續關注)

07

A:看到你有關注 Kaggle上的強勁對手 bestfitting、Giba、KazAnova等人,對他們怎麼看?私下有和他們進行過交流嗎?是否有探討過比賽經驗等?

B:Giba 和 KazAnova常年霸榜,他們幾乎參加過所有的比賽,經驗豐富;bestfitting是最近剛玩Kaggle的,一年多就迅速登頂,這也非常驚人。私下裡我和他們其實沒怎麼聯繫過。之前我有與一些國際上的大牛合作,也學到了很多東西,不過現在他們都玩的比較少了,所以排名不是特別高。

08

A:與那些國際大牛合作,你覺得他們身上有哪些特質值得我們學習一下?

B:那時候我沒什麼經驗,可以跟著他們學到很多。後來,經驗可能就沒那麼重要了。

我有個比較明顯的感覺,跟國外大多數人合作的時候,大家很願意分享,比如他做了一個實驗或者做了一次嘗試,不管成功還是失敗,他都願意告訴大家。例如我拉一個群,他會告訴群里所有的人他的經驗,這樣就會幫助其他人儘快找到好的方向,避免做些重複的事情。這是我覺得他們做的比較好的一點。

國內的問題是,大家都喜歡分享成功經驗,有時候做了一次失敗的實驗,他就不會說了,其他人有可能還會做一個同樣的失敗實驗——這會導致成本變高,效率變低。

09

A:你現在還會在 Kaggle 上追求排名嗎?

B:我玩 Kaggle,一方面是因為興趣,另一方面,kaggle 上有一些我工作中需要的很實用的東西,它是我的學習路徑。

我現在時間沒有那麼多,也越來越忙,好成績基本上是用時間堆出來的。Kaggle 上的比賽得分是非線性的,第一名得分特別多,從現在的分差來說,我要是拿個第一,可能我就是總排行第一了,但是需要運氣。大家的實力相差不是那麼大,而且很多比賽最後都是小數點後幾位的競爭。

我也沒有刻意追求排名,我覺得現在這個名次也挺好。其實還有很多在 Kaggle 上的人,他們的能力比我要好,只不過他們玩的少,所以名次不如我。

10

A:在參加這麼多場比賽之後,關於從一個新手進階成高手,有何經驗分享?

B:第一,對比各種比賽平台,玩 Kaggle 一定是最好的學習路徑,因為 Kaggle 上有很好的分享機制和氛圍,你能夠跟著其他人的分享一步一步去學到很多東西,這一定是一個最好的學習路徑和資源。

第二,需要堅持。實際上這些比賽也沒有多難,很多都是靠經驗。你多學、多看、多實踐,這樣應該就會比較好了。

第三,投入。對於一場比賽,我現在花的時間可能比較少,但如果一個人可以每天堅持花 10 個小時、8 個小時,全力以赴去做,到最後應該也不會太差。很多人最後成績上不去,是因為玩一兩場比賽之後,發現成績不太好,就不去努力了,但實際上,你要真想玩,那你就得堅持,不斷地去看論壇上的帖子,想想人家是怎麼做的,再去改進自己的方案,那樣總會迎來收穫。

11

A:你曾經說過,想要在 KDD 等比賽上取得高分,數學很重要,實踐也很重要,對數據得敏感。具體來說,你是如何提升這些方面的能力的呢?除了參加比賽實踐,還會定期看一些相關論文嗎?如何鍛鍊出對數據的敏感度?

B:我一直比較喜歡 ESL(The Elements of Statistical Learning)那本書,它在業界也很有名。

這本書很難看懂,幾個很牛的大師把他們的經驗、理解寫進去了,它跟那種傳授知識的書不太一樣的地方是,這裡有好多作者本人的見解,我覺得這是挺不容易的。但這本書肯定不適合入門,一般來說入門的話,我比較推薦台灣大學林軒田老師的視頻。 不管是書還是視頻,都是介紹機器學習基礎原理的,但是現在這個方向發展太快,所以要是想能夠快速跟進的話,還是需要讀論文。

我現在做的工作大多偏業務,或者說我更多的精力是放在更好地幫助業務上,因此對論文看得也不系統,可能在出現一些 case 的時候去查一查,但從長遠來看,因為行業變化特別快,所以還是應該去關注一些最新的東西,系統地看一些論文。

另外對於數據的敏感度,這個不好說。我現在能給的建議是多去 Kaggle 上學習。在每個比賽剛開始的時候,都會有人做大量的數據分析工作,並且分享出來,你可以去看看那些人的思路,這樣也許會有一點點幫助。

12

A:美團點評於 2017 年舉辦了首屆 MDD Cup 演算法大賽,要求選手預估測試樣本集中訂單的送達時長。你作為命題人,從參賽到命題,思路需要經過那些轉換?

B:這次美團點評的比賽我們有一個命題組,我只是其中一員,最終的題目以及規則是大家集體決定的。

本次試題很有特點,素材來自我們外賣配送的真實業務場景。送達時間的預估問題(ETA)環節多、影響因素複雜,是整個外賣行業的難題。首先,這個問題比較重要,有實際意義,另外,大家能比較容易地了解到這個問題背後的業務,因為大多數人都訂過外賣。我們提供的數據集在特徵維度上沒有做特別的預處理,這也比較接近於真實情況。

從命題的角度看,主要就是樣本和評價指標的選擇,儘可能保證最終比賽的解決方案對實際的工作有幫助。基本上所有比賽都是來自於真實的業務場景和問題,但差別在於比賽組織者是否有足夠的經驗,能夠把業務問題轉化成機器學習比賽的問題。在這裡,如果數據處理不合適,或者是有地方沒注意到,最後拿到的解決方案有可能是完全沒用的。

因為我玩的比較多,可能會在選題和數據選擇上,儘可能規避掉一些將來可能會讓比賽變得沒用的因素。

在美團點評,類似的有挑戰的技術場景很多,歡迎熱愛技術的同學加盟。


如果你是運籌學/人工智慧碩博或在讀,請在下圖的公眾號後台留言:「加微信群」。系統會自動辨認你的關鍵字,並提示您進一步的加群要求和步驟,邀請您進全球運籌或AI學者群(群內學界、業界大佬雲集)。

同時我們有:【運籌學|優化愛好者】【供應鏈|物流】【人工智慧】【數據科學|分析】千人QQ群,想入群的小夥伴可以關注下方公眾號點擊「加入社區」按鈕,獲得入群傳送門。

學術界|工業界招聘、徵稿等信息免費發布,請見下圖:

推薦閱讀:

千萬不要錯過!ICLR-2018精品論文解析
機器學習之Kaggle實戰:泰坦尼克號生存預測
巧用指標拆解和連環替代,一招定位指標的最大影響因子
2017 CCF ADL會議總結
數據挖掘實戰1:利用LM神經網路演算法進行電力竊漏電用戶自動識別

TAG:機器學習 | 數據挖掘 | 運籌學 |