增強型分析:AI驅動的資料分析、
業務決策與案例實踐

彭鴻濤 張宗耀 聶磊 著
第1章
資料科學家的成長之路
一次偶然的機會,有一位正在深造機器學習方面學位的朋友問了筆者一個問題:如何成為一名合格的資料科學家?這個問題回答起來亦簡亦難。簡單回答的話可以拿出标準答案,坐而論道地說需要程式設計能力、資料操作能力、數學基礎、算法庫應用能力、算法調優能力與業務對接的能力等。但是這樣的答案筆者其實是不滿意的,因為有太多的技術意味。做資料分析、将資料的價值發揮出來,是一個“工程 + 科學”的過程,隻要在這個過程中的任意一處找到自己的位置,就無謂資料科學家這種稱号了。
大資料時代方興未艾,人工智能時代又呼嘯而至。人們在很多場合下能看到諸多新應用,加之整個社會都在熱切地擁抱人工智能技術,使得大家都相信人工智能時代勢必會改變社會的方方面面,筆者對此也深信不疑。在人工智能時代,将資料的價值發揮出來的要素有資金、資料、平台、技術、人員等。資料科學家是人員要素中最為重要的部分,是需要企業非常重視的。在資料科學家自身發展的方向、組織結構,以及如何展現出價值等方面,相信大家肯定會有很多想法。筆者從十幾年前加入IBM SPSS進入資料分析領域開始,至今擔任過分析軟體工具的開發者、解決實際業務問題的資料挖掘者、資料驅動業務以及數字化轉型的咨詢者等多種角色。反觀這些年的成長路徑,将一些較為重要的經驗做一個粗淺的總結,抛磚引玉,以供讀者參考。
1.1算法與資料科學家
我們随便打開一些教科書,會發現機器學習、人工智能、資料挖掘等經典領域所談論的很多知識點是共通的,比如從曆史資料中學習到事物模式并用于對未來做出判斷,是機器學習中的重要内容,也是人工智能的重要方面,更是資料挖掘的重點内容。
現在有一個很時髦的說法,認為機器學習是比資料挖掘更為高深的學科,實作人機對話那肯定是人工智能的範疇。其實,從一個更為宏觀的視角來看的話,這幾個學科都是在将資料的價值通過算法和算法的組合(資料分析的流程)發揮出來,沒有一個清晰的标準說某類算法必須屬于人工智能範疇、某類算法必須屬于機器學習的範疇。
1.1.1資料科學、人工智能、機器學習等
有國外的學者試圖給出一個機器學習、資料科學、人工智能等時髦名詞之間關系的示意圖,如圖1-1所示,我們發現,這些學科間的關系可以說是交纏不清。
圖1-1資料科學相關的學科之間的關系
筆者也就這些學科之間的關系進行了深入探索,查詢了很多的資料,發現圖1-1的中間部分,其實是來自SAS在1998年提供的資料分析的課程。除此之外,很少有人能将它們的關系說清楚,因為這本來就說不清楚。是以,對上圖,讀者隻當其是一個參考即可。
重點是圖1-1所表達的含義:這些技術都是圍繞“問題解決” →“分析” →“政策” →
“領域知識” →“溝通” →“表達” →“探索”等問題來展開的,而這些問題都是人們在認識世界、解決問題時所涉及的方面。是以,本節采用圖1-1想表達的含義也是如此:計算機的技術在迅猛發展,現在很多的技術都可以融合使用來解決複雜問題了;對于資料科學相關的這些技術,很多方面都是通用的。
1.1.2室内活動還是室外活動
資料科學家是個含義較廣的名詞,人們往往也不會太多在意他們所從事的具體工作有什麼不同,習慣将從事算法設計開發、在客戶現場直接應用資料分析工具解決問題的人都稱為資料科學家。這樣的劃分其實無可厚非。但是若将算法看作成品,則可以将資料科學家分為室外(out-house)和室内(in-house)兩種角色。所謂室内資料科學家關注具體算法的設計、實作。比如,在MapReduce的計算方式下如何實作分層聚類算法。而室外資料科學家,也就是資料挖掘者,他們一般不需要關注具體算法和工具的實作,他們的職責是将客戶的需求翻譯為具體工具能解決的工作流程,并應用合适算法能得出有意義的結論。圖1-2比較形象地對比了兩種科學家的不同。
圖1-2室内室外兩種資料分析人員職責對比
現在還有一種習慣就是将室内資料科學家稱為算法工程師,而對于室外資料科學家則稱之為資料科學家。我們大可不必糾結于這些名稱的不同,隻要對他們的職責有不同的認識即可。室外資料科學家,在長期的項目過程中,需要與業務人員有非常深入的溝通才能得出有意義的資料分析結果。是以,相對于資料模型而更加看重業務的需求和特點,這是室外資料科學家的基本素養。本書所謂的資料科學家是指所謂從事室外活動的資料分析者。
1.2資料科學家不斷成長的幾個階段
現在移動端各種App百花齊放,這已經使得資訊的傳播沒有任何的限制,人們在不自覺的過程其實已經閱讀了大量的自己感興趣的文章。若對機器學習比較感興趣,相信人們已經看到了很多非常炫酷的機器學習的應用,如人臉識别的精度已經提高到一個非常高的水準、大量智能問答機器人的部署已經替代了不知多少呼叫中心的員工等。
顯而易見,這些應用絕不是單靠一個算法就能解決的,注定是平台、算法、業務等要素的綜合應用才能産生這樣的效果。在應用資料分析時已經基本形成一個共識,就是資料分析者要對業務有一定的了解,才能保證産生較好的結果。
Gartner很早就将資料分析能力分成了4種(如圖1-3所示),描述性分析(Descriptive Analysis)是在回答“過去發生了什麼”,是了解現狀的有力手段;診斷分析(Diagnostic Analysis)是尋找“為什麼會是這樣”的方法;預測分析(Predictive Analysis)是在回答“将來會是怎樣”;Prescriptive Analysis則是說“基于現狀、預測等結果,我如何選擇一個較優的決策得到期望的結果”。Business Intelligence的核心能力是解決描述分析和診斷分析。人們常說的預測模型(包括傳統的随機森林、GBT等,還包括深度學習的常見算法如CNN等)、聚類模型、關聯分析等都屬于預測分析範疇。利用凸優化、馬爾可夫等方法從衆多的決策選項中尋求最優決策,則屬于Prescriptive Analysis的範疇,重點解決最優決策的問題。
圖1-3四種分析能力劃分(Gartner)
在圖1-3中,分析之後,人們經驗、業務的輸入(Human Input)随着分析手段的提高而減少,這是因為Prescriptive Analysis在分析過程中已經将這些因素充分地引入。比如,預測客戶流失的模型能夠輸出“哪些客戶将要流失”的名單,但是并不會輸出“OK,企業應該采用何種決策來挽留”,是應該給個折扣,還是辦一張會員卡?這些還是需要人們進行業務決策的輸入。而Prescriptive Analysis則會分析折扣和會員卡哪種方式既能挽留客戶又能使得企業的收益較高,但是這些決策(會員卡和折扣)也是需要人們輸入後才能進行分析。是以“通過資料分析的手段發揮資料價值”的過程,沒有業務輸入是絕對行不通的。是以,筆者也認為資料科學家絕不是僅僅精通算法即可,還需要對業務一直保持熱情,不斷思考如何發揮資料分析的業務價值。我們需要從技能、效果、工作内容、工作方法等多個層面來擴充相關的能力,這才能發揮較大的價值。總之,如果資料科學家僅僅隻是被動地考慮用何種算法滿足業務部門所提出的要求的話,是遠遠不夠的。
如果讀者有志于成為一個資料科學家,或者已經是一個資料科學家,類似于職場的職業路徑規劃,資料科學家的成長路徑可以是什麼?如何不斷成長?相信大家按照自己的興趣都有不同的了解。若資料科學家一直緻力于“發揮資料的價值”這條主線,那麼筆者認為從價值的大小上可以分為算法、用法、業務、戰略4個層面(如圖1-4所示),資料科學家也可以沿着這條路徑來成長。
從圖1-4中可以看到不同層面的資料科學家的職責和作用是不同的,4個層次也是資料科學家成長的不同階段。
圖1-4資料科學家成長的4個階段
1.2.1算法——如何建構資料分析模型
人們總是津津樂道各種時髦的算法,感歎算法的發展使得人工智能有了長足的進展。比如,人們看到機器可以精準地識别人臉、機器可以作詩、機器可以識别圖檔内容并“說出”符合其内容的文字描述,也熱衷于緊跟最新的技術發展來做一些新穎的應用。這是一個非常好的趨勢,可以促進人工智能的相關産業發展。然而,人類已經發明的算法遠不僅僅如此。若讀者一直在從事資料分析的相關工作,會發現其實能夠解決實際業務問題的算法非常多,有很多也是簡單直接的。比如,找到潛在的價值客戶,既可以通過響應預測的模型,也可以通過聚類分析的模型,還可以通過社交網絡分析的模型來找到。建構這些模型所需要的相關知識也需要體系化地學習、不斷積累才能真正滿足實際的業務需求。
在很多資料挖掘的資料中都會把算法分為有監督的學習、無監督的學習等類别,每個類别下各自的算法又有不同。比如聚類算法屬于無監督的學習範疇,而能夠做類别判斷或回歸的算法都屬于有監督的學習範疇。在實際使用時,需要針對需求靈活應用,如可以先用決策樹算法生成預測模型,然後分析決策樹的分支來細分客群。隻有對這些算法有一個體系化的學習,才能達到靈活應用的目的。
超參數(Hyperparameter)是在給定資料集的情況下,确定一組參數組合能使得模型性能、泛化能力達到較優。每個算法在調試超參數的過程中,都有一些與算法特征相關的普遍規律,如随機森林算法中決策樹的個數、決策樹的深度等,一般是需要預先被設定和關注的。基于随機森林中每棵樹應當是一個弱分類器的原理,決策樹的深度應該很小才能避免過拟合。目前有Grid Search等工具能夠在不同參數組合下嘗試找出一個合适的超參數,替代人們不斷進行手工嘗試的過程。但是不論如何,設定算法參數時總有一些經驗總結可以在後來的應用中被複用。
在深刻了解算法原理、算法體系的基礎上,掌握參數調優的技能是一個資料科學家的基本能力。不論是對初學者還是有一定經驗的從業者來說,這都是一個需要不斷學習和積累的基本任務。
1.2.2用法——如何回頭看模型
在很多情況下,當資料科學家花費大量時間和精力建構出模型後,興高采烈地試圖交給業務人員進行使用時,往往會遇到一個有趣的情況:業務人員聽不懂你對高深算法的解釋,甚至不在乎你對資料的各種費心處理,他們隻關心實際的問題,如模型到底效果如何?
在很多情況下,模型建構完成後需要對模型進行驗證。比如訓練時采用截止到3月的資料,而模型部署是在7月,是以需要資料科學家驗證截止到6月的情況下,模型的實際效果能達到什麼程度。這時,我們除了需要通過新資料計算模型性能名額(如提升度、準确性、穩定性等)外,還需要計算模型實際業務結果會是怎麼樣,能帶來多少收益或能避免多少損失(如圖1-5所示)。
圖1-5 以簡單明了的方式來讨論模型使用的預期價值
資料科學家除了要對模型性能名額熟稔于心外,還需要能夠表達清楚模型真正的實際價值。是以,在第一步模型建構完成後,應用兩套名額來衡量是比較可取的做法——模型性能名額是從數學角度說明模型優劣;業務名額是從模型應用的業務結果來評價其價值。
在現實中,人們往往不好準确把握模型的真實業務價值,在實際應用後通過資料統計才能有結論。但是這一點都不妨礙模型部署前的估算:按照目前模型的性能名額,估計在第一次給定客戶數的情況能有多少人購買,大緻的營業額會是多少。采用估算還是采用事後統計,都是用以說明模型業務價值的手段,可以靈活應用。資料科學家要像重視模型性能名額的計算一樣重視模型所帶來的業務名額的計算。
總體來講,資料科學家不能将自己的工作範圍隻框定在純粹模組化,需要“擡頭看”和“睜眼看”業務價值。
1.2.3業務——如何産生更大價值
業務問題的解決,可以從一處痛點開始突破,也可以按照體系化的方法整體解決。比如,銀行對理财産品的營銷,若隻關注具體産品的銷售,則簡單的産品響應預測模型即可解決;若隻關注一批産品的銷售,則也可以通過建構多輸出預測模型(我們在後面的章節中重點介紹)預測每一個産品的購買機率來生成推薦清單;若關注客戶旅程地圖(Customer Journey Map)而确定營銷時機,則需要一批模型;若關注客戶體驗的提升,需要的就不是一批模型,而是一個體系化的平台加大量模型才能達到預期效果。
大多數情況下,資料科學家應當在具體的業務背景下展開工作。比如,若業務部門按照客戶旅程地圖的方法來分析客戶特征、了解客戶需求、并适時推薦産品(如圖1-6所示),則資料挖掘的模型是服務于一個個業務場景,在整體客戶關系管理的架構下發揮價值的。
數學科學家的工作需要深度融入業務,甚至引領資料驅動的業務發展。此時,資料科學家的定位不應該僅僅是構模組化型者,還應該是資料驅動業務這種新模式的搭建者。這種角色變化就要求資料科學家深刻了解具體的業務、新的資料驅動模式的運作方式,圍繞資料驅動模式而展開各種活動的意義。
圖1-6以客戶旅程地圖為例說明不同的業務場景需要相應的模型
在這種情況下,資料科學家在構模組化型時需要明确:該模型在資料驅動業務的新模式中在哪個階段發揮什麼作用?如何建構一個模型組來協同工作?有了這些模型後資料驅動業務模式能夠做到什麼程度?
1.2.4戰略——如何更廣
數字化變革是目前幾乎所有企業都無法回避的任務。企業由于所處行業、自身特點等原因,需要量身定制數字化轉型的戰略。大型企業需要選擇發展重點作為突破方向,在轉型過程中既要做好技術基礎,也需要大力推行靈活的方法,同時要對人們的觀念、組織内的流程等方面做出更新(如圖1-7所示)。
圖1-7一個量身定制的數字化轉型路線圖示例
資深資料科學家或首席資料科學家所擔負的職責不應該僅僅是完成目前安排的任務,或者去做一些博人眼球的所謂智能應用。其還應該深度參與企業數字化轉型的戰略制定、計劃安排、引領加速器項目等工作,因為資深資料科學家最應該懂得資料的價值如何發揮、能夠發揮到什麼程度。
對于大型企業而言,數字化轉型的任務是艱巨的,不過衆多行業已經或多或少地開始了相關的行動。筆者由于工作關系也深入參與到了大型金融機構數字化轉型的咨詢工作,深刻感觸到了企業在進行數字化轉型時的困難。這使得筆者更加認為讓真正懂得如何發揮資料價值的人員按照加速器的方式來推動數字化轉型程序是至關重要的。
1.3資料科學家的工作模式與組織結構
資料科學家需要與業務專家一起工作才能發揮最大價值。實際工作中兩種角色如何配合,取決于是采用業務驅動的模式還是資料驅動的模式。
1.3.1資料驅動還是業務驅動
業務驅動的特點是業務人員主導資料分析需求的提出、結果的應用,在業務中應用資料洞察;而資料驅動的特點是更看重主動應用資料分析手段,從資料洞察發起業務、改善業務,當然在業務執行時也需要廣泛應用資料洞察。在較新的業務領域采用資料驅動比較适合,已有複雜業務則采用業務驅動較好。
然而從自身能力的發展、資料驅動逐漸成為主要的工作模式的情況來看,資料科學家需要思考如何将資料驅動的模式做得更好,并且願意承擔更多責任。是以,除了算法、用法等基本技能,還需要考慮如何改善業務。
圖1-8所示的職責占比隻是示意,其實最核心的是由哪種角色來主導,在工作中也未見得業務專家不能主導資料驅動的模式。從業務結果的角度來看,所謂業務驅動和資料驅動隻是到達一個既定目标時不同的工作方式而已。在實際的業務中也不會分工非常明确,即不會限定業務人員隻能做什麼或資料科學家隻能做什麼,隻有互相無縫協作才是最佳的工作模式。
圖1-8業務專家與資料科學家的兩種配合方式
1.3.2資料科學家團隊的組織結構
資料科學家團隊的組織結構關系到資料應用的效率、管理的效率、個人的發展等諸多方面,企業在設定這個組織結構時需要認真考慮。每個企業的實際情況不同,可以采用不同的方法。資料科學家的組織結構一般分兩種,即分散式結構和集中式結構。分散式結構是資料科學家屬于确定的業務部門,這樣的組織結構的好處是其可以緊密地與業務人員合作,将業務問題轉換為高效的資料分析任務。但是其也有不足,一方面資料分析的知識積累是在個人身上,而不是在團隊,另外一方面就是因為角色的限制使得業務部門内的資料科學家沒有上升空間。業務部門内的資料科學家若要在職業道路上繼續前進,要麼離開,要麼擔任其他角色。一旦發生資料科學家的人事變化,這對團隊穩定、知識積累等都是不利的。
集中式的資料科學家組織結構就是跨業務條線而成立獨立的專門做資料分析的結構。這樣的組織結構的好處就是團隊相對穩定,給成員提供了不斷成長的空間,也避免了知識積累的流失。但是其也有不足,由于資料科學家脫離業務部門而獨立存在,導緻團隊成員對業務的了解不夠深入,模型的産出可能效率低下。業務部門也可能隻将其看作支援部門,而不會在實際業務中有太多引入。
企業在構架資料科學家組織架構時,也可采用混合的結構。即使是集中式的組織結構,其彙報的層級也可能不同。沒有所謂明确的業界标準的說法,因地制宜的做法才是最實際的。
1.4資料科學家的工作方法要點
資料科學家的核心任務之一是通過資料分析手段将資料洞察應用在實際業務中,并能産生有效的結果。資料科學家在實際工作中需要注意以下要點,以確定上述目标的達成。
1. 開始工作以前確定具備成功要件
在開始一件工作前,最好先明确一下業務場景、資料可獲得性、資料品質等重要資訊。在很多情況下,會出現因資料不支援無法進行細緻分析、模型結果很好但是落地應用時沒有對應的資源支援、資料分析隻是探索沒有對應的使用場景等問題。這些因素會嚴重影響資料分析的價值。
筆者作為顧問給多個客戶實施資料分析項目時,就遇到過上述的問題。從客戶的角度來講,其關心的是業務問題的解決,并不會過多細緻地考慮實施過程的細節。隻有努力地嘗試去做,才能發現有些問題會嚴重阻礙資料分析的進行,這也會影響資料分析的最終效果。
2. 同時輸出兩種價值
假設要通過資料分析手段改善某業務問題,如建構預測模型篩選高價值、高響應率的客戶,即使是在目标非常明确的情況下,資料科學家也要在做的過程中保證兩種輸出結果。
(1)重要發現
資料分析過程中勢必要進行資料提取、資料處理、資料探查等一系列基礎工作。在這些基礎工作的過程中,往往會隐藏着有巨大業務價值的資訊。比如,筆者的團隊在給某金融機構建構高端客戶的相關模型時發現一些資訊,如“大部分客戶隻持有一類理财産品且在半年内沒有交易活動”,這些資訊對于後期的營銷政策制定至關重要。是以,資料科學家在實際工作中需保持“業務敏感性”,對于資料背後的業務故事保持好奇心,同時将一些重要的資料發現協同模型結果一并輸出,這可以大大提高分析主題的價值。
(2)模型結果
給定分析主題,目标模型結果就可以基本确定,如尋找高價值客戶就是模型輸出一個名單,風險預警就是給出風險評分以及原因。這是模型輸出的最基本形式。
在實際的模型實施應用中,業務人員會經常以挑剔的眼光來看待模型,并且基于模型結果總是有不同的疑惑需要資料科學家來解答。典型的疑惑如“聚類分析模型确實将客戶分了幾個類别,但是我還是不知道該如何營銷這些客戶”“社交網絡分析模型給出了潛在的高價值客戶名單,但這些資訊不足以讓營銷人員開展營銷”。出現這種情況時,一種簡單的做法就是和業務人員深入讨論,梳理出他們的關注點,然後将對應的名額從資料庫中提取出來,作為模型輸入的補充一并交給業務人員。
從本質上來講,出現業務人員疑惑的原因是“業務人員期待模型輸出決策而不是名單”以及團隊缺乏将模型輸出轉換為營銷決策的能力。資料科學家也需要具備将模型結果轉換為業務決策的能力。模型直接輸出決策的内容将在第5章詳細讨論。
3.充滿想象力地開展工作
算法能做到什麼是數學範疇的知識,資料科學家的核心工作就是将業務需求轉換為一系列的資料分析實踐過程。若将各個算法看作一個個元件,那麼用一個算法來解決問題還是用多個算法的組合來解決問題,需要資料科學家的想象力和不斷嘗試。
筆者的團隊曾給某客戶構模組化型時,其需求是“根據客戶持有産品的現狀推薦産品,達到交叉銷售的目的”。這是一個非常不具體的需求,能做的範圍很大,能用的算法工具也很多。最後我們采用的是建構“客戶聚類與産品聚類的交叉分布以及遷移矩陣,并據此來展開不同目的營銷”,若向上銷售則可推薦同類産品,交叉銷售則可推薦不同類的産品。這種做法之前沒有實施過,但是結果證明其非常有效,僅在一次營銷應用中就帶來數十億的營業額。
4. 按照靈活的方式來構模組化型
資料挖掘過程也可以看作一個項目過程,從項目管理的角度當然可以按照靈活的方式來進行。資料科學家需要積極主動地彙報分析思路、預期結果、進度等重要資訊。時刻與業務人員以及管理人員保持溝通,對需求變化保持開放,将對模型的實際應用會有巨大的幫助。一般情況下,讓一個對資料和業務都不了解的人來構模組化型,往往需要數月的時間;但讓一個熟悉資料、業務、算法工具的人來模組化,則可能隻需幾天就可以完成。不論哪種程度的人員來模組化,都可以按照靈活的方式來管理模組化過程。
筆者與模組化方法論CRISP-DM的提出者之一Julian Clinton一起工作過4年時間,在長期的項目實踐中我們一直堅持該方法論所倡導的核心要點:緊貼業務、不斷探索、以結果為導向、模型在應用後仍需不斷調優等。事實證明,這些原則非常有效。CRISP-DM方法論的實施與實施過程中按照靈活的方式來管理是相輔相成、相得益彰的。
5. 以業務的成果來衡量自己的工作
模型的效果到底如何?資料科學家不應該基于測試集上優異的模型性能名額而洋洋自得,這沒有任何意義,頂多代表模組化的技巧高超。模型最終帶來的收益是由模型輸出、比對模型輸出的業務決策、業務決策實施過程中的資源配置、應用場景的價值大小等綜合因素共同決定的。缺少任何一環都會使得模型的價值直線下降。
資料科學家需要積極主動地推進這些環節的相關工作,積極收集模型部署後的監測資料,在“模組化—業務決策比對—業務決策實施—效果監控—模型或決策改進—再部署—再監測”的閉環中積極發揮作用。最終得出的業務結果資料,才是資料科學家真正成就感的源泉。