機器學習中模型優(yōu)化不得不思考的幾個問題

本文根據(jù)美團點評算法工程師胡淏4月22日在“攜程技術(shù)沙龍”上的分享整理而成食拜。文字綜合了“攜程技術(shù)中心”微信公眾號的版本和胡淏本人在微博上發(fā)表的文章,并有少量編輯加工拢锹。

圖1 機器學習工程師的知識圖譜

圖1列出了我認為一個成功的機器學習工程師需要關(guān)注和積累的點舆绎。機器學習實踐中胞锰,我們平時都在積累自己的“彈藥庫”:分類、回歸葬凳、無監(jiān)督模型绰垂、Kaggle上面特征變換的黑魔法、樣本失衡的處理方法火焰、缺失值填充……這些大概可以歸類成模型和特征兩個點劲装。我們需要參考成熟的做法、論文昌简,并自己實現(xiàn)占业,此外還需要多反思自己方法上是否還可以改進。如果模型和特征這兩個點都已經(jīng)做得很好了纯赎,你就擁有了一張綠卡谦疾,能跨過在數(shù)據(jù)相關(guān)行業(yè)發(fā)揮模型技術(shù)價值的準入門檻。

在這個時候犬金,比較關(guān)鍵的一步念恍,就是高效的技術(shù)變現(xiàn)能力六剥。所謂高效,就是解決業(yè)務核心問題的專業(yè)能力樊诺。本文將描述這些專業(yè)能力仗考,也就是模型優(yōu)化的四個要素:模型、數(shù)據(jù)词爬、特征秃嗜、業(yè)務,還有更重要的顿膨,就是它們在模型項目中的優(yōu)先級锅锨。

項目推進過程中,四個要素相互之間的優(yōu)先級大致是:業(yè)務>特征>數(shù)據(jù)>模型恋沃。

圖2 四要素解決問題細分+優(yōu)先級

一個模型項目有好的技術(shù)選型必搞、完備的特征體系、高質(zhì)量的數(shù)據(jù)一定是很加分的囊咏,不過真正決定項目好與壞還有一個大前提恕洲,就是這個項目的技術(shù)目標是否在解決當下核心業(yè)務問題。

業(yè)務問題包含兩個方面:業(yè)務KPI和deadline梅割。舉個例子霜第,業(yè)務問題是在兩周之內(nèi)降低目前手機丟失帶來的支付寶銷贓風險。這時如果你的方案是研發(fā)手機丟失的核心特征户辞,比如改密是否合理泌类,基本上就死的很慘,因為兩周根本完不成底燎,改密合理性也未必是模型優(yōu)化好的切入點刃榨;反之,如果你的方案是和運營同學看bad case双仍,梳理現(xiàn)階段的作案通用手段枢希,并通過分析上線一個簡單模型或者業(yè)務規(guī)則的補丁,就明智很多殊校。如果上線后晴玖,案件量真掉下來了,就算你的方案準確率很糟为流、方法很low呕屎,但你解決了業(yè)務問題,這才是最重要的敬察。

雖然業(yè)務目標很關(guān)鍵秀睛,不過一般講,業(yè)務運營同學真的不太懂得如何和技術(shù)有效的溝通業(yè)務目標莲祸,比如:

  1. 我們想做一個線下門店風險評級的項目蹂安,希望運營通過反作弊模型角度幫我們給門店打個分椭迎,這個分數(shù)包含的問題有:風險是怎么定義的、為什么要做風險評級田盈、更大的業(yè)務目標是什么畜号、怎么排期的、這個風險和我們反作弊模型之間的業(yè)務關(guān)系你是怎么看的允瞧?

  2. 做一個區(qū)域未來10min的配送時間預估模型简软。我們想通過運營的模型衡量在惡劣天氣的時候每個區(qū)域的運力是否被擊穿(業(yè)務現(xiàn)狀和排期?運力被擊穿可以掃下盲么述暂?運力擊穿和配送時間之間是個什么業(yè)務邏輯痹升、時間預估是刻畫運力緊張度的最有效手段么?項目的關(guān)鍵場景是惡劣天氣的話畦韭,我們僅僅訓練惡劣天氣場景的時間預估模型是否就好了疼蛾?)。

為了保證整個技術(shù)項目沒有做偏艺配,項目一開始一定要和業(yè)務聊清楚三件事情:

  1. 業(yè)務核心問題察郁、關(guān)鍵場景是什么。
  2. 如何評估該項目的成功转唉,指標是什么绳锅。
  3. 通過項目輸出什么關(guān)鍵信息給到業(yè)務,業(yè)務如何運營這個信息從而達到業(yè)務目標酝掩。

項目過程中,也要時刻回到業(yè)務眷柔,檢查項目的健康度期虾。

要說正確的業(yè)務理解和切入,在為技術(shù)項目保駕護航驯嘱,數(shù)據(jù)镶苞、特征便是一個模型項目性能方面的天花板。garbage in鞠评, garbage out就在說這個問題茂蚓。

這兩天有位聽眾微信問我一個很難回答的問題,大概意思是剃幌,數(shù)據(jù)是特征拼起來構(gòu)成的集合嘛聋涨,所以這不是兩個要素。從邏輯上面講负乡,數(shù)據(jù)的確是一列一列的特征牍白,不過數(shù)據(jù)與特征在概念層面是不同的:數(shù)據(jù)是已經(jīng)采集的信息,特征是以兼容模型抖棘、最優(yōu)化為目標對數(shù)據(jù)進行加工茂腥。就比如通過word2vec將非結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化狸涌,就是將數(shù)據(jù)轉(zhuǎn)化為特征的過程。

所以最岗,我更認為特征工程是基于數(shù)據(jù)的一個非常精細帕胆、刻意的加工過程。從傳統(tǒng)的特征轉(zhuǎn)換般渡、交互懒豹,到embedding、word2vec诊杆、高維分類變量數(shù)值化歼捐,最終目的都是更好的去利用現(xiàn)有的數(shù)據(jù)。之前有聊到的將推薦算法引入有監(jiān)督學習模型優(yōu)化中的做法晨汹,就是在把兩個本不可用的高維ID類變量變成可用的數(shù)值變量豹储。

觀察到自己和童鞋們在特征工程中會遇到一些普遍問題,比如淘这,特征設計不全面剥扣,沒有耐心把現(xiàn)有特征做得細致……也整理出來一套方法論,僅供參考:

圖3 變量體系铝穷、研發(fā)流程

在特征設計的時候钠怯,有兩個點可以幫助我們把特征想的更全面:

  1. 現(xiàn)有的基礎數(shù)據(jù)。
  2. 業(yè)務“二維圖”曙聂。

這兩個方面的整合晦炊,就是一個變量的體系。變量(特征)宁脊,從技術(shù)層面是加工數(shù)據(jù)断国,而從業(yè)務層面實際在反應RD的業(yè)務理解和數(shù)據(jù)刻畫業(yè)務能力∮馨“二維圖”稳衬,實際上未必是二維的,更重要的是我們需要把業(yè)務整個流程抽象成幾個核心的維度坐漏,舉幾個例子:

外賣配送時間業(yè)務(維度甲:配送的環(huán)節(jié)薄疚,騎手到點、商家出餐赊琳、騎手配送街夭、交付用戶;維度乙:顆粒度慨畸,訂單粒度莱坎、商家粒度、區(qū)域城市粒度寸士;維度丙:配送類型檐什,眾包碴卧、自營……)。

反作弊變量體系(維度甲:作弊環(huán)節(jié)乃正,登錄住册、注冊、實名瓮具、轉(zhuǎn)賬荧飞、交易、參與營銷活動名党、改密……叹阔;維度乙:作弊介質(zhì),賬戶传睹、設備耳幢、IP、WiFi欧啤、銀行卡……)睛藻。

通過這些維度,你就可以展開一個“二維圖”邢隧,把現(xiàn)有你可以想到的特征填上去店印,你一定會發(fā)現(xiàn)很多空白,比如下圖倒慧,那么哪里還是特征設計的盲點就一目了然:

圖4 賬戶維度在轉(zhuǎn)賬按摘、紅包方面的特征很少;沒有考慮WiFi這個媒介纫谅;客滿與事件數(shù)據(jù)沒考慮

數(shù)據(jù)和特征決定了模型性能的天花板院峡。deep learning當下在圖像、語音系宜、機器翻譯、自動駕駛等領(lǐng)域非撤⑵牵火盹牧,但是deep learning在生物信息、基因?qū)W這個領(lǐng)域就不是熱詞:這背后是因為在前者励幼,我們已經(jīng)知道數(shù)據(jù)從哪里來汰寓,怎么采集,這些數(shù)據(jù)帶來的信息基本滿足了模型做非常準確的識別苹粟;而后者有滑,即便有了上億個人體堿基構(gòu)成的基因編碼,技術(shù)選型還是不能長驅(qū)直入——超高的數(shù)據(jù)采集成本嵌削,人后天的行為數(shù)據(jù)的獲取壁壘等一系列的問題毛好,注定當下這個階段在生物信息領(lǐng)域望艺,人工智能能發(fā)出的聲音很微弱,更大的舞臺留給了生物學肌访、臨床醫(yī)學找默、統(tǒng)計學。

圖5 滿房開房的技術(shù)選型吼驶、特征工程roadmap

模型這件事兒惩激,許多時候追求的不僅僅是準確率,通常還有業(yè)務這一層更大的約束蟹演。如果你在做一些需要強業(yè)務可解釋的模型风钻,比如定價和反作弊,那實在沒必要上一個黑箱模型來為難業(yè)務酒请。這時候骡技,統(tǒng)計學習模型就很有用,這種情況下蚌父,比拼性能的話哮兰,我覺得下面這個不等式通常成立:Glmnet>LASSO>=Ridge>LR/Logistic。相比最基本的LR/Logistic苟弛,ridge通過正則化約束緩解了LR在過擬合方面的問題喝滞,lasso更是通過L1約束做類似變量選擇的工作。

不過兩個算法的痛點是很難決定最優(yōu)的約束強度膏秫,Glmnet是Stanford給出的一套非常高效的解決方案右遭。所以目前,我認為線性結(jié)構(gòu)的模型缤削,Glmnet的痛點是最少的窘哈,而且在R、Python亭敢、Spark上面都開源了滚婉。

如果我們開發(fā)復雜模型,通常成立第二個不等式RF(Random Forest帅刀,隨機森林)<=GBDT<=XGBoost让腹。拿數(shù)據(jù)說話,29個Kaggle公開的winner solution里面扣溺,17個使用了類似GBDT這樣的Boosting框架骇窍,其次是DNN(Deep Neural Network,深度神經(jīng)網(wǎng)絡)锥余,RF的做法在Kaggle里面非常少見腹纳。

RF和GBDT兩個算法的雛形是CART(Classification And Regression Trees),由L Breiman和J Friedman兩位作者在1984年合作推出。但是在90年代在發(fā)展模型集成思想the ensemble的時候嘲恍,兩位作者代表著兩個至今也很主流的派系:stacking/ Bagging & Boosting足画。

一種是把相互獨立的CART(randomized variables,bootstrap samples)水平鋪開蛔钙,一種是深耕的Boosting锌云,在擬合完整體后更有在局部長尾精細刻畫的能力。同時吁脱,GBDT模型相比RF更加簡單桑涎,內(nèi)存占用小,這都是業(yè)界喜歡的性質(zhì)兼贡。XGBoost在模型的輕量化和快速訓練上又做了進一步的工作攻冷,也是目前我們比較喜歡嘗試的模型。

胡淏遍希,美團算法工程師等曼,畢業(yè)于哥倫比亞大學。先后在攜程凿蒜、支付寶禁谦、美團從事算法開發(fā)工作。了解風控废封、基因州泊、旅游、即時物流相關(guān)問題的行業(yè)領(lǐng)先算法方案與流程漂洋。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末遥皂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子刽漂,更是在濱河造成了極大的恐慌演训,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贝咙,死亡現(xiàn)場離奇詭異样悟,居然都是意外死亡,警方通過查閱死者的電腦和手機庭猩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門乌奇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人眯娱,你說我怎么就攤上這事∨来眨” “怎么了徙缴?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我于样,道長疏叨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任穿剖,我火速辦了婚禮蚤蔓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘糊余。我一直安慰自己秀又,他們只是感情好,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布贬芥。 她就那樣靜靜地躺著吐辙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蘸劈。 梳的紋絲不亂的頭發(fā)上昏苏,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音威沫,去河邊找鬼贤惯。 笑死,一個胖子當著我的面吹牛棒掠,可吹牛的內(nèi)容都是我干的孵构。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼句柠,長吁一口氣:“原來是場噩夢啊……” “哼浦译!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起溯职,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤精盅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谜酒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叹俏,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年僻族,在試婚紗的時候發(fā)現(xiàn)自己被綠了粘驰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡述么,死狀恐怖蝌数,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情度秘,我是刑警寧澤顶伞,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響唆貌,放射性物質(zhì)發(fā)生泄漏滑潘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一锨咙、第九天 我趴在偏房一處隱蔽的房頂上張望语卤。 院中可真熱鬧,春花似錦酪刀、人聲如沸粹舵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽齐婴。三九已至,卻和暖如春稠茂,著一層夾襖步出監(jiān)牢的瞬間柠偶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工睬关, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诱担,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓电爹,卻偏偏與公主長得像蔫仙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子丐箩,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 音標:[tr] [dr] [ts] [dz] 句子:Theresearchers say any kind of ...
    水滴魚1閱讀 165評論 0 0
  • 以前看過筆名特立獨行的豬寫的《不要讓未來的你討厭現(xiàn)在的自己》摇邦,就像這種快餐類的雞湯文集,我一般很少看屎勘,看了也就忘了...
    唐森的閱讀筆記閱讀 507評論 1 6
  • 使用終端安裝Vue運行環(huán)境 1施籍、安裝 Homebrew Homebrew是osx下面最優(yōu)秀的包管理工具,沒有之一。...
    Fultom閱讀 6,263評論 0 1