移動互聯(lián)網(wǎng)的產(chǎn)品設(shè)計流程,通常要經(jīng)歷需求調(diào)研、需求分析,功能設(shè)計,視覺設(shè)計,編碼測試幾個階段,圍繞的重心是智能手機設(shè)備,對于產(chǎn)品的功能流程設(shè)計是否合理,用戶交互是否順暢,界面設(shè)計是否美觀有著較高的要求,如下圖所示。

但是在人工智能產(chǎn)品設(shè)計中,核心的重點不再是手機界面,而是對于業(yè)務(wù)的理解,對數(shù)據(jù)的理解和對算法的理解,這就要求我們在進(jìn)行產(chǎn)品規(guī)劃的時候,將設(shè)計的重點從手機界面轉(zhuǎn)變?yōu)橐試@業(yè)務(wù)目標(biāo)的數(shù)據(jù)為核心。目前業(yè)內(nèi)較為常見的設(shè)計流程是CRISP-DM(Cross-Industry Standard Process for Data Mining,跨行業(yè)數(shù)據(jù)挖掘標(biāo)準(zhǔn)流程)。

在1996年的時候,SPSS,戴姆勒-克萊斯勒和NCR公司發(fā)起共同成立了一個興趣小組,目的是為了建立數(shù)據(jù)挖掘方法和過程的標(biāo)準(zhǔn)。并在1999年正式提煉出了CRISP-DM流程。這個流程確定了一個數(shù)據(jù)挖掘項目的生命周期包括以下六個階段:
商業(yè)理解:了解進(jìn)行數(shù)據(jù)挖掘的業(yè)務(wù)原因和數(shù)據(jù)挖掘目標(biāo)
數(shù)據(jù)理解:深入了解可用于挖掘的數(shù)據(jù)
數(shù)據(jù)準(zhǔn)備:對待挖掘數(shù)據(jù)進(jìn)行合并,匯總,排序,樣本選取等操作
建立模型:根據(jù)前期準(zhǔn)備的數(shù)據(jù)選取合適的模型
模型評估:使用在商業(yè)理解階段設(shè)立的業(yè)務(wù)成功標(biāo)準(zhǔn)對模型進(jìn)行評估
結(jié)果部署:使用挖掘后的結(jié)果提升業(yè)務(wù)的過程
這套流程沒有特定工具的限制,不論是使用SPSS這類圖形化的數(shù)據(jù)挖掘工具還是python這類可用于數(shù)據(jù)挖掘的編程語言都可以,也沒有特定領(lǐng)域和行業(yè)的局限,是適用于所有行業(yè)的標(biāo)準(zhǔn)方法論,相對于其他的數(shù)據(jù)挖掘方法路,CRISP-DM具有靈活和適用范圍光的優(yōu)點。
需要特別注意的是,雖然這套數(shù)據(jù)挖掘流程的完整生命周期包含六個階段,每一個階段都依賴于上一個階段的產(chǎn)出物,但是這六個階段的順序卻并不是固定的,尤其是商業(yè)理解和數(shù)據(jù)理解,數(shù)據(jù)準(zhǔn)備和建模階段可能經(jīng)常出現(xiàn)反復(fù)循環(huán)的過程。是否可以繼續(xù)進(jìn)行下一個階段取決于是否有達(dá)到最初的業(yè)務(wù)目標(biāo),如果業(yè)務(wù)目標(biāo)沒有達(dá)到,那么就要考慮是否是數(shù)據(jù)不夠充分或算法需要調(diào)整,一切都以業(yè)務(wù)目標(biāo)為導(dǎo)向。
那么接下來,我們用一個電商案例來看一下如何在實際工作中運用這套流程。
商業(yè)理解
海微購是一家從事跨境電商業(yè)務(wù)的創(chuàng)業(yè)公司,公司在前幾年抓住了海淘的趨勢,用戶量和交易額都還不錯,在新的財年,公司希望能在去年的基礎(chǔ)上將GMV提高10%,并以此為目標(biāo)制定新一年的工作計劃。
1) 確定業(yè)務(wù)目標(biāo)
首先,需要先確定業(yè)務(wù)目標(biāo)。根據(jù)電商零售額公式,零售額=流量轉(zhuǎn)化率客單價*復(fù)購率,公司認(rèn)為,在獲客成本較高的市場環(huán)境以及本公司經(jīng)營的海淘產(chǎn)品復(fù)購周期較長的情況下,應(yīng)優(yōu)先提高轉(zhuǎn)化率和客單價兩項指標(biāo)。根據(jù)SMART目標(biāo)制定原則,確定下一次迭代的產(chǎn)品目標(biāo)為:猜你喜歡模塊中的商品點擊量需提高20%,交叉銷售額提高10%。
2) 確定數(shù)據(jù)挖掘目標(biāo)
第二步,需要將業(yè)務(wù)的問題轉(zhuǎn)化為一個數(shù)據(jù)挖掘的問題。根據(jù)業(yè)務(wù)目標(biāo),我們可以將其轉(zhuǎn)化為以下幾個數(shù)據(jù)挖掘問題:
? 聚類問題:構(gòu)建大數(shù)據(jù)用戶畫像,形成用戶的商品偏好標(biāo)簽體系,用于商品精準(zhǔn)營銷和消息推送
? 預(yù)測問題:構(gòu)建用戶流失預(yù)警模型,預(yù)測用戶的流失可能性,對可能流失的用戶進(jìn)行挽回關(guān)懷,防止流失
? 分類問題:結(jié)合用戶日常消費額度和信貸記錄,向用戶推薦符合其購買力或購買習(xí)慣的商品,提高轉(zhuǎn)化率和客單價
? …………
在制定數(shù)據(jù)挖掘目標(biāo)時,需要明確數(shù)據(jù)挖掘的問題是一個分類問題,聚類問題還是一個預(yù)測問題,以便于后續(xù)的建模階段選擇合適的算法。另外還需要確定的是數(shù)據(jù)挖掘的范圍,是針對所有用戶大范圍調(diào)整,還是先針對小規(guī)模的部分用戶進(jìn)行A/B Test,待驗證成功之后再全面推行。
如果前期有相關(guān)的經(jīng)驗或數(shù)據(jù)積累,最好在這一階段定義清楚數(shù)據(jù)挖掘成功的標(biāo)準(zhǔn)是什么,例如推薦的準(zhǔn)確率要提高40%,或用戶的流失概率降低20%等,通過可量化的指標(biāo)評估整個工作的效果。
3) 制定項目計劃
第三步,明確好目標(biāo)之后,就可以根據(jù)具體的,可量化的方案組織相關(guān)的干系人來評估工作量,根據(jù)工作量倒排項目計劃表,將目標(biāo)拆解到更小的時間顆粒度,并指定相關(guān)責(zé)任人進(jìn)行任務(wù)跟進(jìn),如下圖所示。
| 項目階段 | 時間 | 主要任務(wù) | 責(zé)任人 |
|---|---|---|---|
| 商業(yè)理解 | 1周 | 確定業(yè)務(wù)目標(biāo) | 產(chǎn)品經(jīng)理 |
| 數(shù)據(jù)理解 | 3周 | 確定所需數(shù)據(jù) | 產(chǎn)品經(jīng)理,爬蟲工程師 |
| 數(shù)據(jù)準(zhǔn)備 | 5周 | 數(shù)據(jù)清洗,特征工程 | 產(chǎn)品經(jīng)理,算法工程師,數(shù)據(jù)庫管理員 |
| 建立模型 | 2周 | 算法建模 | 算法工程師 |
| 模型評估 | 1周 | 模型調(diào)參,效果評估 | 產(chǎn)品經(jīng)理,算法工程師,測試工程師 |
| 結(jié)果部署 | 1周 | 部署上線生產(chǎn)環(huán)境 | 算法工程師 |
在這個階段需要明確各個環(huán)節(jié)的交付產(chǎn)物,并識別可能的項目風(fēng)險,提前制定風(fēng)險應(yīng)對計劃,例如本公司缺乏某方面的數(shù)據(jù),需要從外部獲取,或者相關(guān)人員配置不足,需要招聘或借調(diào)人力資源的支持等等。在項目進(jìn)行的過程中持續(xù)監(jiān)控,以確保項目的正常進(jìn)行。
數(shù)據(jù)理解
明確了業(yè)務(wù)目標(biāo)之后,我們需要針對數(shù)據(jù)挖掘的問題收集相關(guān)的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行初步的處理,目標(biāo)是熟悉數(shù)據(jù),探索數(shù)據(jù)與數(shù)據(jù)之間的內(nèi)在聯(lián)系,并識別數(shù)據(jù)的質(zhì)量是否有問題。
1) 收集數(shù)據(jù)
數(shù)據(jù)理解的第一步是收集數(shù)據(jù)。根據(jù)來源的不同,數(shù)據(jù)可以分為內(nèi)部數(shù)據(jù)和外部數(shù)據(jù)兩類,根據(jù)數(shù)據(jù)的類型又可以拆分為用戶數(shù)據(jù)和商品數(shù)據(jù)。海微購公司的產(chǎn)品經(jīng)理通過排查發(fā)現(xiàn),公司目前已經(jīng)通過埋點收集到了用戶在web端和APP端的行為數(shù)據(jù),且平臺售賣的商品有專門的人員負(fù)責(zé)打標(biāo)簽的工作,內(nèi)部數(shù)據(jù)較為完善,但是還缺乏用戶對于平臺上未售賣商品的偏好數(shù)據(jù)以及用戶的人口屬性數(shù)據(jù)。
針對這一點,海微購公司的產(chǎn)品經(jīng)理決定組織一次用戶有獎問卷調(diào)研活動,通過問卷調(diào)研的方式,抽樣選取用戶進(jìn)行問卷填寫,成功的收集了用戶對于平臺未售賣商品的偏好數(shù)據(jù)以及人口屬性數(shù)據(jù)。另一方面,通過網(wǎng)絡(luò)爬蟲數(shù)據(jù),爬取了競爭對手平臺的所有商品銷售量,并根據(jù)銷售單價推算出了總的銷售額,完善了現(xiàn)有的數(shù)據(jù)體系。
2) 數(shù)據(jù)標(biāo)注
海微購公司所擁有的數(shù)據(jù)并不只有數(shù)據(jù)庫中已經(jīng)結(jié)構(gòu)化了的數(shù)據(jù),他還擁有很多非結(jié)構(gòu)化的數(shù)據(jù),例如商品的圖片數(shù)據(jù),客戶與客服的通話語音數(shù)據(jù)等等。
這些非結(jié)構(gòu)化的數(shù)據(jù)并不是直接用于建模,而是需要先進(jìn)行數(shù)據(jù)標(biāo)注,將其轉(zhuǎn)變?yōu)橛嬎銠C可以識別的數(shù)據(jù)格式。例如,如果對商品的圖片進(jìn)行了結(jié)構(gòu)化標(biāo)注,建模階段就可以通過圖片識別技術(shù)對新上線的商品進(jìn)行自動分類和打標(biāo)簽,甚至自動生成商品的廣告海報圖片。如果對通話語音進(jìn)行了數(shù)據(jù)標(biāo)注,就可以為后續(xù)的人工智能客服提供語義數(shù)據(jù),降低公司成本,提高服務(wù)效率。
3) 描述數(shù)據(jù)
當(dāng)數(shù)據(jù)準(zhǔn)備充分之后,需要對數(shù)據(jù)進(jìn)行描述,以供后續(xù)階段使用。主要包括對數(shù)據(jù)量的描述,數(shù)據(jù)值類型的描述以及編碼方案的描述。
不同的算法對于數(shù)據(jù)量的大小有一定的要求,雖然越大的數(shù)據(jù)集可以生成更為準(zhǔn)確的算法模型,但是同時也會增加計算的時間。所以標(biāo)注數(shù)據(jù)量的大小可以讓算法工程師在建模之前決定是使用全部的數(shù)據(jù)集,還是從一個大的數(shù)據(jù)集中分出若干個小的子集來進(jìn)行建模。
建模的數(shù)據(jù)可能有多個來源,且收集數(shù)據(jù)的人和負(fù)責(zé)建模的人可能不是同一人,所以在建模之前務(wù)必對數(shù)據(jù)的類型進(jìn)行描述。數(shù)據(jù)的類型有多重,例如數(shù)值型,分類型,布爾型,時間等等。標(biāo)注清楚數(shù)據(jù)類型可以加快后續(xù)建模階段的效率,防止數(shù)據(jù)類型的錯誤而導(dǎo)致出現(xiàn)問題。
在數(shù)據(jù)庫中,常常使用不同的數(shù)值來表示不同的數(shù)據(jù)特征,例如海微購公司的用戶來源可能來自地推,線上獲客,朋友推薦,自主下載等多個渠道等,這些渠道類型在數(shù)據(jù)庫中可以用文字來進(jìn)行表示,也有可能用1234的數(shù)字來表示,在數(shù)據(jù)描述中需要特別注明這一類的數(shù)據(jù)及其對應(yīng)的含義,以便后續(xù)階段能正確的使用這些數(shù)據(jù)。
數(shù)據(jù)準(zhǔn)備
數(shù)據(jù)準(zhǔn)備是數(shù)據(jù)挖掘最重要的階段之一,通常這一階段所花費的時間和工作量占整個項目的50%-70%。如果產(chǎn)品經(jīng)理在前期對于業(yè)務(wù)理解非常準(zhǔn)確,數(shù)據(jù)理解也非常充分,那么將極大的減少數(shù)據(jù)準(zhǔn)備階段的工作量,提高工作的效率。
1) 選擇數(shù)據(jù)
在第一步選擇數(shù)據(jù)階段,需要做兩件事情,第一是在所有的數(shù)據(jù)中選擇哪些數(shù)據(jù)作為訓(xùn)練集,哪些數(shù)據(jù)作為測試集。第二是選擇參與建模的特征字段有哪些。
以海微購公司為例,公司希望提高提高推薦的準(zhǔn)確度和銷售額,那么需要通過用戶畫像,選擇典型的主要客戶,例如最近有過購買記錄,并且在一定時間內(nèi)持續(xù)活躍的用戶。而不能選擇已經(jīng)流失的,或者是從來沒有購買記錄的無效客戶。
對于參與建模的特征,需要選擇那些與業(yè)務(wù)目標(biāo)息息相關(guān)的數(shù)據(jù),以購買商品轉(zhuǎn)化為例,從業(yè)務(wù)經(jīng)驗來看與之相關(guān)的數(shù)據(jù)有用戶的月均消費額度,用戶的商品偏好,商品的曝光率,好評率等等。當(dāng)然,也有一些基于統(tǒng)計學(xué)的方法可以幫助我們選擇數(shù)據(jù),例如相關(guān)系數(shù),卡方檢驗,T檢驗等等,我們在特征工程的章節(jié)會詳細(xì)的講到這些方法是如何使用的。
2) 清理數(shù)據(jù)
數(shù)據(jù)準(zhǔn)備的第二步,是對數(shù)據(jù)進(jìn)行清理,在實際的工作中,收集的數(shù)據(jù)不一定是100%準(zhǔn)確無誤的,常見的數(shù)據(jù)問題有缺失值,錯誤值,離群值,編碼不一致和無效數(shù)據(jù)。
例如用戶的年齡信息與是否購買某些商品有非常強的關(guān)系,但是用戶的年齡信息對于用戶本身來講不是一個必填的信息,所以商家不一定能獲取到而造成缺失值。另外一種可能就是用戶未填寫真實的年齡,導(dǎo)致年齡出現(xiàn)負(fù)數(shù)或大于200的數(shù)這類錯誤值。
還有一些數(shù)據(jù)例如用戶的身高數(shù)據(jù),如果絕大多數(shù)用戶的身高在1.5米到1.9米之間,但是并不排除有一些用戶的身高可能低于1.5米或高于1.9米,這類數(shù)據(jù)并不是錯誤數(shù)據(jù),而是離群值,這類離群值量級較少,不是主要客戶特征,但如果不加以排除直接參與到建模階段,就有可能對建模造成一定的負(fù)面影響,比如影響正常的平均值或極差。
編碼不一致的問題也經(jīng)常出現(xiàn)在數(shù)據(jù)中,例如很多數(shù)據(jù)在低于1萬的時候,顯示的是具體的數(shù)值,而高于1萬之后就不再顯示具體的數(shù)值,而是顯示成x.x萬這樣的格式,造成格式編碼不一致的情況,在建模之前需要將所有數(shù)據(jù)處理為統(tǒng)一的單位和格式。
數(shù)據(jù)的正確性會直接影響后續(xù)建模階段的模型效果,所以在數(shù)據(jù)準(zhǔn)備階段需要將這些問題數(shù)據(jù)進(jìn)行處理,最簡單的方法就是直接刪除有問題的數(shù)據(jù),但如果數(shù)據(jù)的量本來就比較少的話,也可以通過一些統(tǒng)計學(xué)的方法對數(shù)據(jù)進(jìn)行修復(fù)或插補,例如均值填補法處理缺失值,蓋帽法處理離群值等等。
3) 構(gòu)建新數(shù)據(jù)
在數(shù)據(jù)挖掘中,有一些數(shù)據(jù)可以通過其他的數(shù)據(jù)轉(zhuǎn)化而來,例如如果獲取到了用戶的身份證信息,就可以根據(jù)身份證的生成規(guī)則知道用戶的籍貫地址,生日以及性別,知道了用戶的手機號,就可以通過手機號的歸屬地查到用戶所在地。知道了用戶的常用收貨地址,結(jié)合房產(chǎn)數(shù)據(jù),可以推測出用戶大致的月收入。
除了對已有數(shù)據(jù)進(jìn)行轉(zhuǎn)化,還可以通過人工定義的方式將一些用戶的事實行為通過規(guī)則轉(zhuǎn)化為新的數(shù)據(jù),例如將月均平臺消費超過1萬的定義為高消費客戶,將月活躍天數(shù)大于15天的定義為高活躍用戶等等。
4) 數(shù)據(jù)降維
建模速度與數(shù)據(jù)的量級成正相關(guān),數(shù)據(jù)量越大,建模的時間也就越長,我們在數(shù)據(jù)準(zhǔn)備階段,可以通過數(shù)據(jù)降維的方式減少數(shù)據(jù)特征,減少數(shù)據(jù)中的特征數(shù)量的同時,避免丟失太多信息并保持模型性能,以此達(dá)到簡化計算量的目標(biāo)。
數(shù)據(jù)降維的另一個目的是對數(shù)據(jù)進(jìn)行可視化,我們生活在一個三維的世界中,但如果數(shù)據(jù)的維度大于三維,就無法進(jìn)行可視化了,而通過降維將數(shù)據(jù)降為三維或二維的數(shù)據(jù),并保持?jǐn)?shù)據(jù)之間的關(guān)系,就可以通過肉眼來觀察數(shù)據(jù)模型的效果了。
建立模型
到了這個階段,之前的工作終于可以有所回報了,我們可以運用算法對前幾個階段準(zhǔn)備的數(shù)據(jù)進(jìn)行建模,看是否可以達(dá)到我們期望的結(jié)果。建模的過程通常會執(zhí)行多次,使用多個不同的算法和參數(shù),因為在實際工作中,只是用一個算法且僅執(zhí)行一次運算就能圓滿的解決業(yè)務(wù)需求,這樣的情況幾乎是不存在的,正常的情況是我們可能需要在數(shù)據(jù)準(zhǔn)備階段與建立模型階段之間反復(fù)多次,以確保業(yè)務(wù)目標(biāo)達(dá)到最佳的效果。
1) 選擇建模算法
第一步,我們需要根據(jù)業(yè)務(wù)目標(biāo)選擇適合的算法,在前文我們提到過算法分為有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)兩種,根據(jù)業(yè)務(wù)目標(biāo)的不同,又可以分為分類算法,聚類算法或預(yù)測算法。
算法的選擇并不一定是越復(fù)雜的算法效果就越好,最終的效果取決于訓(xùn)練的數(shù)據(jù)以及設(shè)置的算法參數(shù),所以我們可以在建模的時候,將適合的算法都嘗試一次,根據(jù)結(jié)果來進(jìn)行選擇。
2) 訓(xùn)練集評估
第二步,在選擇好使用哪種算法之后,我們需要選擇與訓(xùn)練集對應(yīng)的測試集數(shù)據(jù),并對算法的結(jié)果定義一個明確的評價標(biāo)準(zhǔn)。對于有監(jiān)督算法,通常使用模型的正確率來進(jìn)行評估,而對于無監(jiān)督算法,我們通常是根據(jù)結(jié)果是否易于解釋,是否易于部署以及算法運行的時間等標(biāo)準(zhǔn)來評估
3) 構(gòu)建模型
第三部,是真正建模的過程,在這個階段根據(jù)算法的不同,可能需要對算法的參數(shù)進(jìn)行調(diào)整,例如KNN模型中調(diào)整K的值,或者深度神經(jīng)網(wǎng)絡(luò)算法調(diào)整隱藏層的數(shù)量等。
在每次調(diào)整算法參數(shù)并實際生成模型之后,我們需要根據(jù)在上一步定義的評價標(biāo)準(zhǔn),記錄模型的結(jié)果數(shù)據(jù),這些結(jié)果數(shù)據(jù)將用來與其他的算法,以及同一個算法不同參數(shù)間的比較,確定最佳算法和參數(shù)。
這聽起來是一件非常瑣碎且耗時的事情,事實也確實如此,但是感謝技術(shù)的發(fā)展,大多數(shù)調(diào)參的過程都可以通過計算機自動完成,不需要人來值守,而且通過集成算法的運用,我們可以同時使用不同的算法來對數(shù)據(jù)進(jìn)行建模,我們在后面還會詳細(xì)的講到。
模型評估
至此,我們的項目已經(jīng)完成了絕大多數(shù)的工作,在開始最后的部署階段之前,最重要的事情是徹底的評估模型,根據(jù)在商業(yè)理解階段定義的業(yè)務(wù)目標(biāo)來評估我們努力的成果。
1) 評估結(jié)果
最終的算法模型結(jié)果有可能達(dá)成了我們最初的業(yè)務(wù)目標(biāo),當(dāng)然也有可能沒達(dá)成。達(dá)成了當(dāng)然是一件好事,但如果沒達(dá)成也不一定是一件壞事,就像愛迪生發(fā)明燈泡試驗了一千種材料,失敗了一千次也并不認(rèn)為自己是失敗了,他說:我只是證明了這一千種材料不適合做燈絲而已。
數(shù)據(jù)挖掘沒有達(dá)成業(yè)務(wù)目標(biāo)的結(jié)果也不一定意味著建模的失敗,有多種可能性導(dǎo)致不成功的結(jié)果,例如,業(yè)務(wù)目標(biāo)一開始定得不夠合理,與業(yè)務(wù)目標(biāo)密切相關(guān)的數(shù)據(jù)未收集到,數(shù)據(jù)準(zhǔn)備出現(xiàn)了錯誤,訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)不具備代表性等等。這時候我們就要回到之前的步驟,來檢視到底是哪個環(huán)節(jié)出現(xiàn)了問題。
2) 審核過程
就像每個項目結(jié)束之后都需要進(jìn)行復(fù)盤一樣,在一次數(shù)據(jù)挖掘項目迭代之后也需要對過程的成功之處和不足之處進(jìn)行總結(jié),回顧每個階段的任務(wù)與關(guān)鍵的決定,看看每個階段所做的事情對于最終的結(jié)果是否有所貢獻(xiàn),有沒有什么方法是可以簡化或者改善某一階段任務(wù)完成情況,有沒有什么不足之處,是可以在下一次迭代時進(jìn)行改進(jìn)的,有沒有什么導(dǎo)致失敗的問題是可以在下一次提前預(yù)測到并且避免的。
3) 確定后續(xù)步驟
無論成功或失敗,到現(xiàn)在都已經(jīng)生成了最終的結(jié)果,那么就應(yīng)該考慮一下接下來該做些什么了。一般會有兩個選擇。
如果成功了,那么就進(jìn)入最后的結(jié)果部署階段,將數(shù)據(jù)挖掘的結(jié)果并入到產(chǎn)品的業(yè)務(wù)目標(biāo)中。如果沒有成功,那么可以返回前面的步驟重新設(shè)定業(yè)務(wù)目標(biāo)或重新收集數(shù)據(jù)進(jìn)行建模,有過一次失敗的經(jīng)歷之后,有極大的可能發(fā)現(xiàn)失敗的原因,并在下一次的建模中避免失敗。
當(dāng)然,我們還可以選擇其他方式來達(dá)成業(yè)務(wù)目標(biāo),畢竟一切的技術(shù)都是為了業(yè)務(wù)目標(biāo)服務(wù)的,人工智能也并不是萬能的,根據(jù)業(yè)務(wù)專家設(shè)置的規(guī)則或從產(chǎn)品運營角度也能提高業(yè)績。
結(jié)果部署
建模的作用是從數(shù)據(jù)中找到知識,獲得的知識需要以便于用戶使用的方式重新組織和展現(xiàn),這就是結(jié)果部署階段的工作,根據(jù)業(yè)務(wù)目標(biāo)的不同,結(jié)果部署簡單的可能只需要提交一份數(shù)據(jù)挖掘報告即可,也有可能復(fù)雜到需要將模型集成到企業(yè)的核心運營系統(tǒng)當(dāng)中。
1) 制定部署計劃
根據(jù)業(yè)務(wù)要求和運算性能的的不同,部署的模型可分為離線模型,近線模型和在線模型三種。離線模型一般適用于重量級的算法,部署于大數(shù)據(jù)集群倉庫,運算的時間需要以小時計,并且時效上通常是T+1的。近線模型適用于輕量級算法,一般在內(nèi)存和Redis(一種支持Key-Value等多種數(shù)據(jù)結(jié)構(gòu)的存儲系統(tǒng),適用于高速消息隊列)中進(jìn)行,運算的速度以秒為單位。而在線模型則通常根據(jù)業(yè)務(wù)規(guī)則來設(shè)置,在內(nèi)存中運行,運行的速度以毫秒計。
另外,部署還需要考慮不同編程語言對于算法模型的調(diào)取兼容性,在這個階段算法工程師需要與原有業(yè)務(wù)的開發(fā)工程師進(jìn)行聯(lián)調(diào)協(xié)作,確保業(yè)務(wù)系統(tǒng)能夠正確的調(diào)用算法模型結(jié)果。
2) 模型監(jiān)督和維護(hù)
我們知道算法模型是基于歷史數(shù)據(jù)得來的,但是在模型部署并運行一段時間之后,可能業(yè)務(wù)場景已經(jīng)發(fā)生了變化,原有的模型已經(jīng)無法滿足當(dāng)前的業(yè)務(wù)需要,這就需要我們在模型部署上線的同時,同步上線模型的監(jiān)督和維護(hù)系統(tǒng),持續(xù)跟蹤模型的運行狀況。
當(dāng)發(fā)現(xiàn)模型結(jié)果在出現(xiàn)短期異常值時,排查異常的原因,例如運營活動或者節(jié)假日等因素,當(dāng)發(fā)現(xiàn)模型長期表現(xiàn)不佳時,則要考慮是否是用戶和產(chǎn)品的數(shù)據(jù)構(gòu)成已經(jīng)發(fā)生了變化,如果是因為數(shù)據(jù)構(gòu)成已經(jīng)發(fā)生變化,則需要重新通過CRISP-DM流程構(gòu)建新的模型。
3) 生成最終報告
最后,不要忘了向項目的相關(guān)干系人發(fā)送一份最終的項目總結(jié)報告,不論是在項目過程中一起并肩作戰(zhàn)的同事,還是對項目關(guān)心的領(lǐng)導(dǎo),都需要了解項目的最終成果,一個項目的成功,總離不開每個人的努力,常懷一顆感恩的心才能讓一個團(tuán)隊走得更遠(yuǎn)。