2
| 本文作者: 汪思穎 | 2017-10-31 16:14 |

雷鋒網 AI科技評論消息,由法國薩克雷大學主辦的2017全球高校學生數據科學大賽(Data Science Game 2017)近日落下帷幕。在初賽上,來自中國的Medicinovo Inc.(諾道醫(yī)學)團隊一路過關斬將,最終獲得全球第八、全美第一的佳績;決賽中酣戰(zhàn)20多個小時,Medicinovo Inc.(諾道醫(yī)學)團隊成功擠進全球前20強。
雷鋒網 AI科技評論第一時間聯系到團隊成員王則遠,就他在參賽過程中的一些訣竅和經驗展開了探討。
他們團隊共有四名成員,大家都為美國史蒂文森理工大學商業(yè)智能與分析專業(yè)(數據科學方向)碩士生,其他三名隊員分別是張仁宇、劉暢、張璐。
在比賽過程中,王則遠主要負責確定初步的算法思路以及數據的一些處理方式,另外的同學主要負責編寫爬蟲,實現并行運算,處理缺失值和變量等。大家在比賽中分工合作,并結合自己的經驗進行了充分探討。

上圖從左至右:張仁宇,張璐,王則遠,劉暢
試題討論
據王則遠介紹,在初賽中,主辦方為選手提供了Deezer上用戶一個月的聽歌歷史數據,通過分析歷史數據,他們需要預測用戶是否會喜歡Deezer推薦的歌曲。這個問題被歸納為二分類問題,與廣告點擊率、用戶的購買行為預測等系統類似。
“目前業(yè)界對這類問題的關注很多,例如騰訊的社交廣告算法大賽,阿里云的廣告點擊率預估算法等。不過音樂跟前面提到的廣告算法其實還是有一些差別的,很典型的一點就是音樂需要考慮的維度更多,比如說歌曲特性、歌手特性,甚至是語言,另外還有國家、地區(qū)的特性,用戶的喜好等。這次比賽提供的數據集就覆蓋了歐洲、美洲、非洲以及一些西班牙語地區(qū)等。”
音樂推薦系統中需要關注的點有這么多,那么Medicinovo Inc.(諾道醫(yī)學)團隊在這次比賽中是如何考慮的呢?
在與雷鋒網 AI科技評論的交流中,王則遠表示,總的來說,這次比賽需要考慮的特性可以歸為用戶、歌曲和歌手這三個大的維度。此外他也向記者闡述了這次比賽與廣告算法、用戶購買推薦系統具體的不同點:
音樂需要考慮到歌手的特性,而廣告算法需要考慮的可能只是廣告特性和用戶特性,大家不用考慮廣告制作人的特性。另外用戶購買行為推薦系統也是一樣,并不會說喜歡某個人做的推薦系統算法,就會喜歡這個人做的算法推薦出來的東西。
比賽過程
主辦方提供的基礎數據集有30多個變量,原始數據有500多萬條,這些數據大概涉及到3萬多個用戶。除了這些基礎數據,主辦方還另外公布了一個API鏈接,里面涉及到音樂網站上相對而言不那么重要的數據。
“參賽選手需要編寫爬蟲下載這些數據,然后再把所有的數據結合起來,得到整體數據集?!蓖鮿t遠說道。
拿到整體數據集之后,他們就開始進行一系列預處理操作了,包括缺失值的檢驗、變量間的相互獨立性、偏斜性,還有一些異常值的檢測、降維等。
他們團隊在降維過程中具體用到什么算法?有什么經驗可以分享呢?
王則遠對AI科技評論講解到,
“這次比賽用的降維算法主要是PCA和高斯映射。在進行降維時有一個小訣竅,在把各個非連續(xù)變量擬合成連續(xù)變量的時候,不要只用PC擬合出主成分,可以試一試把主成分放回到原有數據當中,比如原來有一百個變量,擬合出一個主成分,將主成分再放回數據集,變成101個變量,然后再進行結果的預測,可能會發(fā)現意想不到的效果?!?/p>
數據預處理之后呢?王則遠表示,他們把所有數據結合起來之后,只得到了40個左右的變量?!坝眠@些變量肯定沒辦法跟其他選手進行PK,所以需要利用變量工程挖掘出一些新的深度信息?!?/p>
他進一步闡述到,在這次比賽當中,變量工程主要是提取歌曲、歌手特性等?!袄缥覀冃枰獙Ω枋置诌M行解析,去看這個名字是屬于什么語言,然后再把歌手與國家結合起來,挖掘出一些更深度的特性。歌手的性別、風格,在哪段時間最火,這些也要考慮到。”
歌手風格是如何提取的呢?在推薦系統中能起到什么作用?王則遠說道:
歌手可能會分為鄉(xiāng)村、民謠、搖滾等風格,但我們無法提取出風格,不過可以提取用戶在不同的時間段(如上午、下午、晚上)分別喜歡聽什么歌,然后再把歌手對應起來。在早上上班或是精力比較旺盛的時候,大家可能會想聽一聽搖滾風的歌手,而在晚上比較累的時候,大家可能就會想聽一些舒緩的歌,就可以為大家推薦舒緩曲風的歌手。
談完歌手之后,他也詳述了在歌曲的處理中所使用的一些方法。
“其實歌曲和歌手的特性很接近,不過歌曲會存在專輯和播放時間的問題。歌曲的時長分布基本屬于正態(tài)分布曲線,大致集中在一到三分鐘之間。對于歌曲的時長,我們會設定一個閾值,比賽當中設定的是小于30秒和大于十分鐘,小于30秒的歌曲全部會歸為30秒,大于十分鐘的全部歸為十分鐘?!?/p>
在變量工程中,他們還發(fā)現了哪些有意思的事情呢?
王則遠表示,在這次比賽中,他們發(fā)現把歌曲在專輯中的位置跟歌曲特性結合起來,對識別主打歌作用很大。而這也帶來了新的思考:這些特性的發(fā)現,都需要大家不斷去想,不斷去嘗試。
另外,他也提到實驗中這一階段的一些小訣竅:
“做變量工程的時候,需要分開去試。我們在實驗中會先提取一些深度特性,然后是一次加三個新特征,再看刪去哪一個精度會上漲,通過這種方式一點點去刪除,這樣才形成最后的那套數據集?!?/p>
變量工程是實驗中需要重點考慮的一環(huán),除了變量工程,還有哪些是需要重點考慮到的呢?
據AI科技評論了解,這次比賽歷時只有一個多月,遠遠短于Kaggle上的大多數比賽,對于這種時間緊、任務重的比賽,所以也需要考慮到速度。
王則遠表示,他們試過在Kaggle比賽中使用頻率較高的XGboost,但要想跑完數據集需要30個小時左右,這樣會對后續(xù)的調參影響很大,而LightGBM能把時間壓縮到三個小時,因此在模型訓練階段最終使用的是LightGBM。另外,在Stacking階段他們也選了一些速度比較快的算法,這樣能相對快速去進行調參。他同時也提到一點,在選取Stacking算法的時候也需要考慮到數據集的大小以及算法的多樣性。
除了對模型和算法的考慮,他們還集合大家所有的計算資源,搭建了一個局域并行環(huán)境。
“在搭建小型局域網絡之后,相當于把數據分拆成四個部分,然后分別放到四臺電腦上去。這樣去跑模型會稍微快一點。”他對AI科技評論這樣說道。
除了前面提到的這些工作,像這種大量數據集,最容易遇見的問題肯定是過擬合了。那么,為了防止過擬合,他們做了哪些工作呢?
“調參的目的是為了防止過擬合。對于過擬合問題的話,我們需要進行正則化。加正則項之后,我們每次不會考慮所有的樣本,可能會抽取80%進行考慮。在實驗中的調參階段,我們先調的是subsample和d-level這兩個參數,最后調學習率。”
他進一步說道,“另外還有樹的深度和廣度。像這種比賽中樹的深度一般是在3、4、5這三個數之間,廣度基本上默認的就OK?!?/p>
此外,他表示,為了防止過擬合,在實驗中也需要跑交叉驗證。這次實驗他們選擇的是5-fold交叉驗證,在數據集中,每次抽20%,連抽五份,抽出來部分的當測試集,剩下四個當訓練集。
比賽中碰到的問題
在這次比賽中,會碰到哪些比較罕見的情況呢?他們又是怎么處理的?
王則遠對AI科技評論說道,在這次比賽的測試集中,一個用戶只放了一個ID,不像平常是隨機抽取測試集的,這樣的話ID有可能有重復,因此很容易對模型成大量干擾,產生過擬合。
“這種情況我們見得比較少,這可能是符合真實世界的一種情形,我們也試了很多種特征工程方法。最開始原始數據里沒有排行榜,比如歌曲的年度推薦排行榜或者月度推薦排行榜,但是里面有這首歌被聽的時間,那我們就可以提取出時間信息做出排行榜?;旧媳荣惖淖詈箅A段我們都在做特征工程,也試了很多方法,才一點一點把問題攻克掉?!?/p>
他也提到,在這種情況出現的時候,他們當時還發(fā)現了一個神奇變量——歌曲月度推薦排行榜。加入這個變量之后,影響非常大,實驗的精度提高了很多。
對大家的建議
在采訪的最后,他也分享了他的一些比賽經驗:
首先來說,類似這種比賽的數據集,其實70%的努力都是在變量工程上。如果變量工程做得好,最后的結果一定不會很差,它的重要性要遠比建立一個好的模型要高,所以建議大家把精力大部分都要放在變量工程上面。
如何做好變量工程呢?AI科技評論對他提出了這個問題。
這個其實也沒有定式,是要充滿想象力一些,提取出變量的深度特性。我們現在所有的模型都是在關注列,但要以行為基準去進行變量工程的操作。在這個過程中,還是以group by為主,把行進行擬合變換。這是一種很好的方式。另外還有現在的降維算法,大家也要多多考慮。
另外,這個比賽的數據是非連續(xù)變量,非連續(xù)變量與連續(xù)變量相比,相當于是損失了一部分信息,難度會稍微大一些。它的維度很高,對于模型的判別存在很大的干擾,噪音數據的量可能稍微大一些,降維的時候也比較費勁。總的來說非連續(xù)變量存在很多問題,提取深度特征的時候也比較難?,F在市面上有很多的方法,大家需要多多關注,在非連續(xù)變量有著天生缺陷的情況下,通過特征工程如何把它擬合成一個新的連續(xù)變量去處理。
最后,現在國內的比賽也在慢慢變多,但我覺得大家對這種類型的比賽重視程度稍微差一些,這個比賽其實跟真實世界很像。大家后續(xù)可以多關注一下這類比賽,多多參與,多多積累經驗。
比賽擴展
除了對比賽的一些經驗分享,他也對比賽和現在的實際情況提出了自己的看法:
這次比賽中遇到的問題確實是現在實際應用當中的一個痛點,包括各大公司做的比賽也都專注在這個方面,進行用戶個性化推薦系統的定制。但推薦系統現在整體的精度不是那么好,現在市面上一些音樂系統可以優(yōu)化的地方還有很多,例如在真實世界的情況下,如何做好間接性推薦,這也是對推薦精度存在著影響的一個因素。
關于諾道醫(yī)學:諾道醫(yī)學是一家醫(yī)療人工智能領域的創(chuàng)業(yè)企業(yè),開發(fā)的人工智能輔助診斷產品覆蓋影像、心血管病、消化系統疾病、神經病學、臨床藥學等多個領域。
雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。