CRISP-DM:人工智能產品規(guī)劃流程

黃瀚星
3 評論 10898 瀏覽 99 收藏 26 分鐘

業(yè)內較為常見的人工智能規(guī)劃流程是CRISP-DM,這個流程確定了一個數(shù)據挖掘項目的生命周期。

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

如下圖所示:

人工智能產品規(guī)劃流程——CRISP-DM

移動互聯(lián)網產品規(guī)劃流程

但是,在人工智能產品設計中,核心的重點不再是手機界面,而是對于業(yè)務的理解。

對數(shù)據的理解和對算法的理解,這就要求我們在進行產品規(guī)劃的時候,將設計的重點從手機界面轉變?yōu)橐試@業(yè)務目標的數(shù)據為核心。

目前,業(yè)內較為常見的設計流程是CRISP-DM(Cross-Industry Standard Process for Data Mining,跨行業(yè)數(shù)據挖掘標準流程)。

人工智能產品規(guī)劃流程——CRISP-DM

CRISP-DM跨行業(yè)數(shù)據挖掘標準流程

在1996年的時候,SPSS,戴姆勒-克萊斯勒和NCR公司發(fā)起共同成立了一個興趣小組,目的是為了建立數(shù)據挖掘方法和過程的標準。并在1999年正式提煉出了CRISP-DM流程。

這個流程確定了一個數(shù)據挖掘項目的生命周期,包括以下六個階段:

  1. 商業(yè)理解:了解進行數(shù)據挖掘的業(yè)務原因和數(shù)據挖掘目標。
  2. 數(shù)據理解:深入了解可用于挖掘的數(shù)據。
  3. 數(shù)據準備:對待挖掘數(shù)據進行合并,匯總,排序,樣本選取等操作。
  4. 建立模型:根據前期準備的數(shù)據選取合適的模型。
  5. 模型評估:使用在商業(yè)理解階段設立的業(yè)務成功標準對模型進行評估。
  6. 結果部署:使用挖掘后的結果提升業(yè)務的過程。

這套流程沒有特定工具的限制,不論是使用SPSS這類圖形化的數(shù)據挖掘工具,還是python這類可用于數(shù)據挖掘的編程語言都可以。

也沒有特定領域和行業(yè)的局限,是適用于所有行業(yè)的標準方法論,相對于其他的數(shù)據挖掘方法路,CRISP-DM具有靈活和適用范圍光的優(yōu)點。

需要特別注意的是:雖然這套數(shù)據挖掘流程的完整生命周期包含六個階段,每一個階段都依賴于上一個階段的產出物,但是這六個階段的順序卻并不是固定的。尤其是商業(yè)理解和數(shù)據理解,數(shù)據準備和建模階段可能經常出現(xiàn)反復循環(huán)的過程。

是否可以繼續(xù)進行下一個階段取決于是否有達到最初的業(yè)務目標,如果業(yè)務目標沒有達到,那么就要考慮是否是數(shù)據不夠充分或算法需要調整,一切都以業(yè)務目標為導向。

那么,接下來,我們用一個電商案例來看一下:如何在實際工作中運用這套流程?

商業(yè)理解

海微購是一家從事跨境電商業(yè)務的創(chuàng)業(yè)公司,公司在前幾年抓住了海淘的趨勢,用戶量和交易額都還不錯。在新的財年,公司希望能在去年的基礎上將GMV提高10%,并以此為目標制定新一年的工作計劃。

1.? 確定業(yè)務目標

首先,需要先確定業(yè)務目標。

根據電商零售額公式(零售額=流量轉化率客單價*復購率),公司認為:在獲客成本較高的市場環(huán)境,以及本公司經營的海淘產品復購周期較長的情況下,應優(yōu)先提高轉化率和客單價兩項指標。根據SMART目標制定原則,確定下一次迭代的產品目標為:猜你喜歡模塊中的商品點擊量需提高20%,交叉銷售額提高10%。

2. 確定數(shù)據挖掘目標

第二步,需要將業(yè)務的問題轉化為一個數(shù)據挖掘的問題。

根據業(yè)務目標,我們可以將其轉化為以下幾個數(shù)據挖掘問題:

  1. 聚類問題:構建大數(shù)據用戶畫像,形成用戶的商品偏好標簽體系,用于商品精準營銷和消息推送。
  2. 預測問題:構建用戶流失預警模型,預測用戶的流失可能性,對可能流失的用戶進行挽回關懷,防止流失。
  3. 分類問題:結合用戶日常消費額度和信貸記錄,向用戶推薦符合其購買力或購買習慣的商品,提高轉化率和客單價
  4. ……

在制定數(shù)據挖掘目標時,需要明確數(shù)據挖掘的問題是一個分類問題,聚類問題還是一個預測問題,以便于后續(xù)的建模階段選擇合適的算法。另外,還需要確定的是數(shù)據挖掘的范圍,是針對所有用戶大范圍調整,還是先針對小規(guī)模的部分用戶進行A/B Test,待驗證成功之后再全面推行。

如果前期有相關的經驗或數(shù)據積累,最好在這一階段定義清楚數(shù)據挖掘成功的標準是什么,例如:推薦的準確率要提高40%,或用戶的流失概率降低20%等,通過可量化的指標評估整個工作的效果。

3. 制定項目計劃

第三步,明確好目標之后,就可以根據具體的,可量化的方案組織相關的干系人來評估工作量。根據工作量倒排項目計劃表,將目標拆解到更小的時間顆粒度,并指定相關責任人進行任務跟進,如下圖所示:

在這個階段需要明確各個環(huán)節(jié)的交付產物,并識別可能的項目風險,提前制定風險應對計劃。

例如:本公司缺乏某方面的數(shù)據,需要從外部獲取,或者相關人員配置不足,需要招聘或借調人力資源的支持等等。在項目進行的過程中持續(xù)監(jiān)控,以確保項目的正常進行。

數(shù)據理解

明確了業(yè)務目標之后,我們需要針對數(shù)據挖掘的問題收集相關的數(shù)據,并對數(shù)據進行初步的處理,目標是熟悉數(shù)據,探索數(shù)據與數(shù)據之間的內在聯(lián)系,并識別數(shù)據的質量是否有問題。

1. 收集數(shù)據

數(shù)據理解的第一步是收集數(shù)據。

根據來源的不同,數(shù)據可以分為內部數(shù)據和外部數(shù)據兩類,根據數(shù)據的類型又可以拆分為:用戶數(shù)據和商品數(shù)據。

海微購公司的產品經理通過排查發(fā)現(xiàn):公司目前已經通過埋點收集到了用戶在web端和APP端的行為數(shù)據,且平臺售賣的商品有專門的人員負責打標簽的工作,內部數(shù)據較為完善。但是,還缺乏用戶對于平臺上未售賣商品的偏好數(shù)據以及用戶的人口屬性數(shù)據。

針對這一點,海微購公司的產品經理決定組織一次用戶有獎問卷調研活動。通過問卷調研的方式,抽樣選取用戶進行問卷填寫,成功的收集了用戶對于平臺未售賣商品的偏好數(shù)據以及人口屬性數(shù)據。

另一方面,通過網絡爬蟲數(shù)據,爬取了競爭對手平臺的所有商品銷售量,并根據銷售單價推算出了總的銷售額,完善了現(xiàn)有的數(shù)據體系。

2. 數(shù)據標注

海微購公司所擁有的數(shù)據并不只有數(shù)據庫中已經結構化了的數(shù)據,他還擁有很多非結構化的數(shù)據,例如:商品的圖片數(shù)據,客戶與客服的通話語音數(shù)據等等。

這些非結構化的數(shù)據并不是直接用于建模,而是需要先進行數(shù)據標注,將其轉變?yōu)橛嬎銠C可以識別的數(shù)據格式。

例如:如果對商品的圖片進行了結構化標注,建模階段就可以通過圖片識別技術對新上線的商品進行自動分類和打標簽,甚至自動生成商品的廣告海報圖片。如果對通話語音進行了數(shù)據標注,就可以為后續(xù)的人工智能客服提供語義數(shù)據,降低公司成本,提高服務效率。

3. 描述數(shù)據

當數(shù)據準備充分之后,需要對數(shù)據進行描述,以供后續(xù)階段使用。主要包括對數(shù)據量的描述,數(shù)據值類型的描述以及編碼方案的描述。

不同的算法對于數(shù)據量的大小有一定的要求,雖然越大的數(shù)據集可以生成更為準確的算法模型,但是同時也會增加計算的時間。所以,標注數(shù)據量的大小可以讓算法工程師在建模之前決定是使用全部的數(shù)據集,還是從一個大的數(shù)據集中分出若干個小的子集來進行建模。

建模的數(shù)據可能有多個來源,且收集數(shù)據的人和負責建模的人可能不是同一人,所以在建模之前務必對數(shù)據的類型進行描述。數(shù)據的類型有多重,例如:數(shù)值型、分類型、布爾型、時間等等。標注清楚數(shù)據類型可以加快后續(xù)建模階段的效率,防止數(shù)據類型的錯誤而導致出現(xiàn)問題。

在數(shù)據庫中,常常使用不同的數(shù)值來表示不同的數(shù)據特征,例如:海微購公司的用戶來源可能來自地推、線上獲客、朋友推薦、自主下載等多個渠道等。

這些渠道類型在數(shù)據庫中可以用文字來進行表示,也有可能用1234的數(shù)字來表示,在數(shù)據描述中需要特別注明這一類的數(shù)據及其對應的含義,以便后續(xù)階段能正確的使用這些數(shù)據。

數(shù)據準備

數(shù)據準備是數(shù)據挖掘最重要的階段之一,通常這一階段所花費的時間和工作量占整個項目的50%-70%。

如果產品經理在前期對于業(yè)務理解非常準確,數(shù)據理解也非常充分,那么將極大的減少數(shù)據準備階段的工作量,提高工作的效率。

1. 選擇數(shù)據

在第一步選擇數(shù)據階段,需要做兩件事情:第一是在所有的數(shù)據中選擇哪些數(shù)據作為訓練集,哪些數(shù)據作為測試集;第二是選擇參與建模的特征字段有哪些。

以海微購公司為例:公司希望提高提高推薦的準確度和銷售額,那么需要通過用戶畫像,選擇典型的主要客戶——例如:最近有過購買記錄,并且在一定時間內持續(xù)活躍的用戶。而不能選擇已經流失的,或者是從來沒有購買記錄的無效客戶。

對于參與建模的特征,需要選擇那些與業(yè)務目標息息相關的數(shù)據,以購買商品轉化為例:從業(yè)務經驗來看與之相關的數(shù)據有用戶的月均消費額度、用戶的商品偏好、商品的曝光率、好評率等等。

當然,也有一些基于統(tǒng)計學的方法可以幫助我們選擇數(shù)據,例如:相關系數(shù),卡方檢驗,T檢驗等等,我們在特征工程的章節(jié)會詳細的講到這些方法是如何使用的。

2. 清理數(shù)據

數(shù)據準備的第二步,是對數(shù)據進行清理,在實際的工作中,收集的數(shù)據不一定是100%準確無誤的,常見的數(shù)據問題有:缺失值,錯誤值,離群值,編碼不一致和無效數(shù)據。

例如:用戶的年齡信息與是否購買某些商品有非常強的關系,但是用戶的年齡信息對于用戶本身來講不是一個必填的信息。所以,商家不一定能獲取到而造成缺失值。另外一種可能就是用戶未填寫真實的年齡,導致年齡出現(xiàn)負數(shù)或大于200的數(shù)這類錯誤值。

還有一些數(shù)據,例如用戶的身高數(shù)據,如果絕大多數(shù)用戶的身高在1.5米到1.9米之間,但是并不排除有一些用戶的身高可能低于1.5米或高于1.9米。這類數(shù)據并不是錯誤數(shù)據,而是離群值,這類離群值量級較少,不是主要客戶特征,但如果不加以排除直接參與到建模階段,就有可能對建模造成一定的負面影響,比如:影響正常的平均值或極差。

編碼不一致的問題也經常出現(xiàn)在數(shù)據中,例如:很多數(shù)據在低于1萬的時候,顯示的是具體的數(shù)值,而高于1萬之后就不再顯示具體的數(shù)值,而是顯示成x.x萬這樣的格式,造成格式編碼不一致的情況,在建模之前需要將所有數(shù)據處理為統(tǒng)一的單位和格式。

數(shù)據的正確性會直接影響后續(xù)建模階段的模型效果,所以在數(shù)據準備階段需要將這些問題數(shù)據進行處理,最簡單的方法就是直接刪除有問題的數(shù)據。但如果數(shù)據的量本來就比較少的話,也可以通過一些統(tǒng)計學的方法對數(shù)據進行修復或插補,例如:均值填補法處理缺失值,蓋帽法處理離群值等等。

3. 構建新數(shù)據

在數(shù)據挖掘中,有一些數(shù)據可以通過其他的數(shù)據轉化而來,例如:如果獲取到了用戶的身份證信息,就可以根據身份證的生成規(guī)則知道用戶的籍貫地址,生日以及性別。知道了用戶的手機號,就可以通過手機號的歸屬地查到用戶所在地;知道了用戶的常用收貨地址,結合房產數(shù)據,可以推測出用戶大致的月收入。

除了對已有數(shù)據進行轉化,還可以通過人工定義的方式將一些用戶的事實行為通過規(guī)則轉化為新的數(shù)據,例如:將月均平臺消費超過1萬的定義為高消費客戶,將月活躍天數(shù)大于15天的定義為高活躍用戶等等。

4. 數(shù)據降維

建模速度與數(shù)據的量級成正相關,數(shù)據量越大,建模的時間也就越長。我們在數(shù)據準備階段,可以通過數(shù)據降維的方式減少數(shù)據特征,減少數(shù)據中的特征數(shù)量的同時,避免丟失太多信息并保持模型性能,以此達到簡化計算量的目標。

數(shù)據降維的另一個目的是對數(shù)據進行可視化,我們生活在一個三維的世界中,但如果數(shù)據的維度大于三維,就無法進行可視化了。而通過降維將數(shù)據降為三維或二維的數(shù)據,并保持數(shù)據之間的關系,就可以通過肉眼來觀察數(shù)據模型的效果了。

建立模型

到了這個階段,之前的工作終于可以有所回報了,我們可以運用算法對前幾個階段準備的數(shù)據進行建模,看是否可以達到我們期望的結果。

建模的過程通常會執(zhí)行多次,使用多個不同的算法和參數(shù),因為在實際工作中,只是用一個算法且僅執(zhí)行一次運算就能圓滿的解決業(yè)務需求。這樣的情況幾乎是不存在的,正常的情況是我們可能需要在數(shù)據準備階段與建立模型階段之間反復多次,以確保業(yè)務目標達到最佳的效果。

1. 選擇建模算法

第一步,我們需要根據業(yè)務目標選擇適合的算法,在前文我們提到過算法分為有監(jiān)督學習和無監(jiān)督學習兩種。根據業(yè)務目標的不同,又可以分為:分類算法,聚類算法或預測算法。

算法的選擇并不一定是越復雜的算法效果就越好,最終的效果取決于訓練的數(shù)據以及設置的算法參數(shù),所以我們可以在建模的時候,將適合的算法都嘗試一次,根據結果來進行選擇。

2. 訓練集評估

第二步,在選擇好使用哪種算法之后,我們需要選擇與訓練集對應的測試集數(shù)據,并對算法的結果定義一個明確的評價標準。

對于有監(jiān)督算法,通常使用模型的正確率來進行評估,而對于無監(jiān)督算法,我們通常是根據結果是否易于解釋,是否易于部署以及算法運行的時間等標準來評估

3. 構建模型

第三步,是真正建模的過程,在這個階段根據算法的不同,可能需要對算法的參數(shù)進行調整,例如:KNN模型中調整K的值,或者深度神經網絡算法調整隱藏層的數(shù)量等。

在每次調整算法參數(shù)并實際生成模型之后,我們需要根據在上一步定義的評價標準,記錄模型的結果數(shù)據。這些結果數(shù)據將用來與其他的算法,以及同一個算法不同參數(shù)間的比較,確定最佳算法和參數(shù)。

這聽起來是一件非?,嵥榍液臅r的事情,事實也確實如此,但是感謝技術的發(fā)展,大多數(shù)調參的過程都可以通過計算機自動完成,不需要人來值守。而且,通過集成算法的運用,我們可以同時使用不同的算法來對數(shù)據進行建模,我們在后面還會詳細的講到。

模型評估

至此,我們的項目已經完成了絕大多數(shù)的工作,在開始最后的部署階段之前,最重要的事情是徹底的評估模型,根據在商業(yè)理解階段定義的業(yè)務目標來評估我們努力的成果。

1. 評估結果

最終的算法模型結果有可能達成了我們最初的業(yè)務目標,當然也有可能沒達成。

達成了當然是一件好事,但如果沒達成也不一定是一件壞事,就像愛迪生發(fā)明燈泡試驗了一千種材料,失敗了一千次也并不認為自己是失敗了。他說:“我只是證明了這一千種材料不適合做燈絲而已?!?/p>

數(shù)據挖掘沒有達成業(yè)務目標的結果,也不一定意味著建模的失敗,有多種可能性導致不成功的結果。

例如:業(yè)務目標一開始定得不夠合理,與業(yè)務目標密切相關的數(shù)據未收集到,數(shù)據準備出現(xiàn)了錯誤,訓練數(shù)據和測試數(shù)據不具備代表性等等。這時候我們就要回到之前的步驟,來檢視到底是哪個環(huán)節(jié)出現(xiàn)了問題。

2. 審核過程

就像每個項目結束之后都需要進行復盤一樣,在一次數(shù)據挖掘項目迭代之后,也需要對過程的成功之處和不足之處進行總結——回顧每個階段的任務與關鍵的決定,看看每個階段所做的事情對于最終的結果是否有所貢獻?有沒有什么方法是可以簡化或者改善某一階段任務完成情況?有沒有什么不足之處,是可以在下一次迭代時進行改進的?有沒有什么導致失敗的問題是可以在下一次提前預測到并且避免的?

3. 確定后續(xù)步驟

無論成功或失敗,到現(xiàn)在都已經生成了最終的結果,那么就應該考慮一下:接下來該做些什么了?

一般會有兩個選擇:

  1. 如果成功了,那么就進入最后的結果部署階段,將數(shù)據挖掘的結果并入到產品的業(yè)務目標中。
  2. 如果沒有成功,那么可以返回前面的步驟重新設定業(yè)務目標或重新收集數(shù)據進行建模,有過一次失敗的經歷之后,有極大的可能發(fā)現(xiàn)失敗的原因,并在下一次的建模中避免失敗。

當然,我們還可以選擇其他方式來達成業(yè)務目標,畢竟一切的技術都是為了業(yè)務目標服務的,人工智能也并不是萬能的,根據業(yè)務專家設置的規(guī)則或從產品運營角度也能提高業(yè)績。

結果部署

建模的作用是從數(shù)據中找到知識,獲得的知識需要以便于用戶使用的方式重新組織和展現(xiàn),這就是結果部署階段的工作。根據業(yè)務目標的不同,結果部署簡單的可能只需要提交一份數(shù)據挖掘報告即可,也有可能復雜到需要將模型集成到企業(yè)的核心運營系統(tǒng)當中。

1. 制定部署計劃

根據業(yè)務要求和運算性能的的不同,部署的模型可分為:離線模型,近線模型和在線模型三種。

離線模型一般適用于重量級的算法,部署于大數(shù)據集群倉庫,運算的時間需要以小時計,并且時效上通常是T+1的。

近線模型適用于輕量級算法,一般在內存和Redis(一種支持Key-Value等多種數(shù)據結構的存儲系統(tǒng),適用于高速消息隊列)中進行,運算的速度以秒為單位。而在線模型則通常根據業(yè)務規(guī)則來設置,在內存中運行,運行的速度以毫秒計。

另外,部署還需要考慮不同編程語言對于算法模型的調取兼容性,在這個階段算法工程師需要與原有業(yè)務的開發(fā)工程師進行聯(lián)調協(xié)作,確保業(yè)務系統(tǒng)能夠正確的調用算法模型結果。

2. 模型監(jiān)督和維護

我們知道算法模型是基于歷史數(shù)據得來的,但是在模型部署并運行一段時間之后,可能業(yè)務場景已經發(fā)生了變化,原有的模型已經無法滿足當前的業(yè)務需要。這就需要我們在模型部署上線的同時,同步上線模型的監(jiān)督和維護系統(tǒng),持續(xù)跟蹤模型的運行狀況。

當發(fā)現(xiàn)模型結果在出現(xiàn)短期異常值時,排查異常的原因,例如:運營活動或者節(jié)假日等因素,當發(fā)現(xiàn)模型長期表現(xiàn)不佳時,則要考慮是否是用戶和產品的數(shù)據構成已經發(fā)生了變化。如果是因為數(shù)據構成已經發(fā)生變化,則需要重新通過CRISP-DM流程構建新的模型。

3. 生成最終報告

最后,不要忘了向項目的相關干系人發(fā)送一份最終的項目總結報告。

不論是在項目過程中一起并肩作戰(zhàn)的同事,還是對項目關心的領導,都需要了解項目的最終成果。一個項目的成功,總離不開每個人的努力,常懷一顆感恩的心才能讓一個團隊走得更遠。

 

本文由 @黃瀚星 原創(chuàng)發(fā)布于人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 想跟著BAT大咖老師學習更多系統(tǒng)高階產品知識嗎?
    在【產品總監(jiān)修煉之道】,四位來自騰訊、百度的資深總監(jiān)級導師,將和你面對面分享高階產品必備的系統(tǒng)知識,幫你掌握更加全面的產品專業(yè)知識和團隊管理思路……

    想了解更多詳情?立即戳>>http://996.pm/z4bLB
    也快可以聯(lián)系KK進行咨詢哦~微信/TEL:13043462422

    PS:除了咨詢問題,還能領取【產品總監(jiān)課程學習筆記】! ??

    來自廣東 回復
  2. 黃老師,您好,我是人民郵電出版社編輯,我想問您一下對應人工智能產品的PM需要的內容,目前您有合作出版相關內容的想法嗎,希望有機會詳談18811565025

    來自北京 回復
  3. 總結的很好,期待新文章

    來自美國 回復