參數(shù)不是越多越好
參數(shù)不是越多越好
很多團(tuán)隊(duì)在做數(shù)據(jù)挖掘系統(tǒng)選型時(shí),第一反應(yīng)就是把參數(shù)表拉滿(mǎn):算法類(lèi)型、內(nèi)存占用、并發(fā)能力、訓(xùn)練速度、特征數(shù)量支持度、可視化能力……看上去越“全能”,似乎越能滿(mǎn)足業(yè)務(wù)。但真到落地階段,問(wèn)題往往不是“有沒(méi)有這個(gè)參數(shù)”,而是這些參數(shù)在真實(shí)數(shù)據(jù)、真實(shí)流程和真實(shí)算力約束下,能不能穩(wěn)定發(fā)揮作用。數(shù)據(jù)挖掘系統(tǒng)參數(shù)對(duì)比的價(jià)值,也正是在這里體現(xiàn)出來(lái)。
核心指標(biāo)先看什么
真正有意義的參數(shù)對(duì)比,首先要把“算得快”與“算得準(zhǔn)”分開(kāi)看。前者更多是吞吐、響應(yīng)時(shí)間、資源占用和擴(kuò)展能力,后者則涉及算法適配性、特征處理能力、模型評(píng)估機(jī)制和結(jié)果可解釋性。很多系統(tǒng)在演示環(huán)境里表現(xiàn)很好,一旦接入雜亂數(shù)據(jù)源、長(zhǎng)尾字段和頻繁更新的業(yè)務(wù)數(shù)據(jù),就會(huì)暴露出參數(shù)與場(chǎng)景不匹配的問(wèn)題。
例如,同樣是數(shù)據(jù)挖掘系統(tǒng),有的偏批處理,適合大規(guī)模歷史數(shù)據(jù)建模;有的偏實(shí)時(shí)分析,強(qiáng)調(diào)低延遲和流式處理;還有的更重交互式探索,方便業(yè)務(wù)人員快速試錯(cuò)。參數(shù)對(duì)比時(shí)如果只盯著“支持多少算法”,而忽略調(diào)度方式、索引機(jī)制、緩存策略和容錯(cuò)能力,最后很容易得到一個(gè)“功能很多、用起來(lái)很慢”的結(jié)論。
參數(shù)差異藏在細(xì)節(jié)里
看數(shù)據(jù)挖掘系統(tǒng)參數(shù)對(duì)比,真正要盯住的是細(xì)節(jié)參數(shù)背后的工程能力。比如數(shù)據(jù)接入層是否支持多源異構(gòu),決定了系統(tǒng)面對(duì)數(shù)據(jù)庫(kù)、日志、文件、接口時(shí)的兼容成本;特征工程層是否支持缺失值處理、離群值識(shí)別、類(lèi)別編碼和字段自動(dòng)生成,決定了前期清洗工作量;模型層是否支持參數(shù)調(diào)優(yōu)、交叉驗(yàn)證、增量訓(xùn)練,決定了后續(xù)迭代效率。
還有一類(lèi)經(jīng)常被忽略的參數(shù),是資源與性能相關(guān)指標(biāo)。內(nèi)存消耗、磁盤(pán)讀寫(xiě)方式、并發(fā)任務(wù)數(shù)、分布式節(jié)點(diǎn)擴(kuò)展方式,看起來(lái)離“數(shù)據(jù)挖掘”有點(diǎn)遠(yuǎn),但實(shí)際上它們直接影響系統(tǒng)能否在高峰期穩(wěn)定運(yùn)行。很多企業(yè)做完參數(shù)表對(duì)比,選中的系統(tǒng)在小樣本測(cè)試?yán)锿耆珱](méi)問(wèn)題,到了全量數(shù)據(jù)和多人協(xié)同時(shí)才發(fā)現(xiàn)瓶頸出在計(jì)算調(diào)度和存儲(chǔ)結(jié)構(gòu)上。
別被表面配置誤導(dǎo)
參數(shù)對(duì)比最容易踩的坑,是把“功能清單”當(dāng)成“能力清單”。有些系統(tǒng)支持的功能很多,但不少只是基礎(chǔ)集成;真正到復(fù)雜場(chǎng)景,比如多維度交叉分析、樣本不平衡處理、異常模式識(shí)別、模型版本回溯時(shí),參數(shù)可調(diào)空間其實(shí)很小。換句話(huà)說(shuō),能寫(xiě)進(jìn)說(shuō)明書(shū)的能力,不一定等于能在業(yè)務(wù)里穩(wěn)定復(fù)現(xiàn)的能力。
另一個(gè)常見(jiàn)誤判,是認(rèn)為參數(shù)越開(kāi)放越好。參數(shù)開(kāi)放度高,意味著系統(tǒng)可配置性強(qiáng),但也可能帶來(lái)維護(hù)復(fù)雜度上升、配置沖突增加、訓(xùn)練結(jié)果不穩(wěn)定等問(wèn)題。對(duì)缺少專(zhuān)職數(shù)據(jù)團(tuán)隊(duì)的企業(yè)來(lái)說(shuō),過(guò)多的參數(shù)項(xiàng)反而會(huì)讓使用門(mén)檻提高。做數(shù)據(jù)挖掘系統(tǒng)參數(shù)對(duì)比時(shí),不僅要看“能不能改”,還要看“改了之后是否可控、是否可追溯、是否方便回滾”。
結(jié)合場(chǎng)景再比較
更靠譜的做法,是把參數(shù)放回場(chǎng)景里比較。面向銷(xiāo)售預(yù)測(cè),優(yōu)先看時(shí)序建模能力、增量更新效率和異常點(diǎn)容忍度;面向風(fēng)控識(shí)別,重點(diǎn)看樣本處理能力、規(guī)則與模型協(xié)同、解釋輸出能力;面向用戶(hù)行為分析,則要關(guān)注多維聚合速度、標(biāo)簽體系擴(kuò)展性和結(jié)果可視化的靈活度。不同場(chǎng)景下,數(shù)據(jù)挖掘系統(tǒng)參數(shù)對(duì)比的權(quán)重完全不同,沒(méi)有放之四海而皆準(zhǔn)的“最優(yōu)參數(shù)”。
如果業(yè)務(wù)還處在探索期,建議先比較系統(tǒng)對(duì)數(shù)據(jù)治理的支持程度,再看分析深度。因?yàn)榍罢邲Q定數(shù)據(jù)能不能持續(xù)用,后者決定模型能不能真正跑起來(lái)。很多企業(yè)把重點(diǎn)放在算法參數(shù)上,卻忽略了數(shù)據(jù)質(zhì)量參數(shù)、權(quán)限參數(shù)和日志審計(jì)參數(shù),最后出現(xiàn)的問(wèn)題不是模型不夠強(qiáng),而是數(shù)據(jù)不可用、過(guò)程不可追、結(jié)果難復(fù)現(xiàn)。
對(duì)比的目的不是排名
參數(shù)對(duì)比最終不是為了給系統(tǒng)排一個(gè)絕對(duì)名次,而是為了確認(rèn)它和業(yè)務(wù)流程之間的匹配關(guān)系。成熟的數(shù)據(jù)挖掘系統(tǒng),通常不會(huì)在所有參數(shù)上都做到極致,而是在性能、靈活性、易用性和穩(wěn)定性之間找到平衡。有的適合重研發(fā)場(chǎng)景,有的適合快速試驗(yàn),有的適合大規(guī)模生產(chǎn)化部署。
因此,真正有效的數(shù)據(jù)挖掘系統(tǒng)參數(shù)對(duì)比,應(yīng)該回到三個(gè)問(wèn)題:數(shù)據(jù)規(guī)模有多大,業(yè)務(wù)迭代有多快,團(tuán)隊(duì)能承受多高的運(yùn)維復(fù)雜度。把這三件事想清楚,再看參數(shù)表,很多看似相近的系統(tǒng),差異就會(huì)變得非常清晰。