當前位置︰首頁 > 新聞資訊 > 正文

數據科學的5個陷阱與缺陷2019-08-26 10:29:33 | 編輯︰hely | 查看︰ | 評論︰0

從“數據說話”,”DT 時代”,到 “數據中台”,“數據驅動(Data Drive Data Driven)”,數據體系的不斷演進正在持續的改變大家的工作與決策方式;正在不斷的革新大家的思維方式;同時也產生了新的商業邏輯,新的發展機會。

作者︰陳炬

這篇分享主要總結了數據從業人員在實踐中可能遇到的陷阱與缺陷。跟其他新起的行業一樣,數據科學從業人員需要不停的去考慮現在,考慮未來;需要不斷的斟酌工作方法的合理性,正確性。思索不斷,才能前行。

文中斜字體表明 該內容具有比較強烈的主觀判斷,並不是行業共識。

最近看新聞,發現數據科學專業已經是北京大學高考入學門檻最高的專業了,其實 "Data Science" 這個詞性感了快十年了,對互聯網行業而言,相當于性感了一個世紀。

從“數據說話”,”DT 時代”,到 “數據中台”,“數據驅動(Data Drive/Data Driven)”,數據體系的不斷演進正在持續的改變大家的工作與決策方式;正在不斷的革新大家的思維方式;同時也產生了新的商業邏輯,新的發展機會。

1976 年,Pascal 作者 Nikalus Wirth 曰: Algorithms + Data Structures = Programs. 計算與數據。

就像之前的“SOA”,“雲計算”等概念一樣,目前數據科學自身的概念還在不斷的變革,各家公司的實踐者們一邊摸索,一邊獲利;一邊總結,一邊布道;當然同時還參雜著很多湊熱鬧的同志把概念折騰的更加模糊。所以數據科學本身的能力邊界,方法論體系,最佳實踐等等還沒有完善的建立起來,有很多問題沒有辦法很好的回答。由此就會產生一些迷信和誤會,”強行數據“,”隨意數據“,”政治正確數據“等等情況比較常見, 無論是實際的操作層面,還是方法層面,都存在著一些不小的誤會。這也是我打算總結一下在數據科學實踐中存在的陷阱與缺陷的緣由。

這篇分享是根據我自己的工作經驗,和對相關資深同事的訪談總結而成。它的正確性受限于我個人的認知水平和目前行業的發展水平,它整理了一些目前可能存在的問題,但未必是長久的道理。希望大家讀的時候批判性的看待。拋磚引玉,如果有不同想法歡迎大家跟我隨時溝通與驗證,結論本身也可以隨時更新。

陷阱與缺陷 1︰數據質量殺死自動 / 智能決策

網易嚴選的很多業務,比如風控業務,核心驅動力是數據及算法。我們在風控業務起步的時候就建立了數據算法驅動風控的方法體系,所以能保證很小的團隊(3 個人)來支撐嚴選幾十個內外部風險場景,每天執行百萬次風險決策。當然,這是數據驅動自動決策 / 智能決策帶來的力量。成功的美好,或許會讓你按耐不住的想把很多業務運轉方式轉型過來,但遺憾的是,數據質量保障的缺失會讓這一切變成隨時會倒塌的空中樓閣!事實上,絕大部分組織對數據質量的理解支撐不了更加自動和智能的決策場景。強行轉型與減員增效會讓他們原本穩定的業務接近崩潰。

嚴選風控出現過幾次大的故障都跟數據質量緊密相關。今年 8 月份的時候,風控在執行每周誤判巡檢的時候發現整體疑似誤判率增加了 4 倍。最終定位原因是設備號相關的日志內容有些異常。從而導致了相當一部分用戶的行為(簽到操作)被錯誤的執行了攔截。

這是一個很有意思的案例。一些關鍵的決策︰比如用戶是不是壞人?某個商品要采購多少量?可能會依賴于很不被重視的某個線上日志的一小部分內容。我們的整個質量保障體系很難把視角投入到某個具體應用的某個日志字段在高壓力下會不會出錯?在傳統的應用服務質量保障理念里,日志字段的某個偶爾的小錯誤,沒人會把它當作 Bug,開發人員更不會去關注。但如果你一旦把數據當作了生產資料,如果我們不對應用質量保障的理念和工具進行革新,你的大量的數據分析報告,訓練好的算法模型,做出的決策可能很不可靠,因為你的生產資料本身就是垃圾,而古語有言︰Garbage in , garbage out。

還有一個驚人的現狀是,大量用于生產數據的復雜 SQL 並沒有進行真正的測試,甚至,大量的數據系統並不存在一個所謂的測試環境。我們很難像測試線上服務(比如訂單系統)那樣去測試數據生產過程的正確性。那麼這樣通過幾萬行,甚至幾十萬行(嚴選)SQL 生產出來的數據到底能不能用?這個問題其實很難回答。

數據的可靠性是組織在轉型數據驅動過程中一個非常大的陷阱。

大家都在討論數據質量的重要性,但是內心又默默覺得這個事情比較低級。因此,我們很少見到有團隊會把大量聰明的大腦投入到數據質量的保障上。

除了資源投入的缺失,很多數據團隊對數據質量的認知也是各不相同。我曾經跟一位在數據行業從業 15 年,為某知名公司數據體系做出巨大貢獻的前輩做過一次深入的溝通,聊起數據質量,”你覺得數據質量是什麼?“ 他的回答是︰“數據質量,真正需要考慮的是指標一致性。”。瞧瞧,就算是非常資深的同行,他的認知還是不夠完整,按他對數據質量的理解,數據的支撐能做到報表給人看,這個層面就很完美了,要落地到戰術層,落地到線上自動決策基本不可行(因為數據質量的故障難以像線上程序故障一樣快速修復,它是一個持續污染的過程)。

數據做為智能決策的輸入,是動態變化的。它沒法像代碼的依賴那樣做靜態分析,它的依賴層次動態而不穩定。

陷阱與缺陷 2︰數據科學的 " 科學”在哪?

數據科學是我們常常說起的一個詞,也是形容我們日常工作的一個詞,但當我們說起的時候,內心就會有些心虛,就光看到數據了,“科學”在哪里?如果沒有”科學“的部分,我們的產出的結論會不會有問題?

這是一個最常見的問題,數據科學的從業者們,不知道什麼是”科學“。所以江湖上才會有 SQL Boy, SQL Girl 的稱呼。

一個常見的問題是數據指標之間的相關性到底是不是真的相關?我們做數據分析往往能看到很多有趣的相關性,比如最近幾個月買了拖鞋的用戶,看起來有更大的可能性在最近一個月復購另外一個商品。但是,這個相關性到底是不是真的存在,還是只是偶然的巧合(False Postive)?我們的分析報告很容易對這個問題視而不見。但如果這個相關性本身經不起推敲,它又如何來指導我們的工作呢?數據分析報告難道要靠運氣來驅動業務發展麼?

就算我們有不錯的統計基礎,給每個假設都加上了 P Value, 我們往往還很容易把相關性與因果性給搞混。兩個事情相關,並不能得出結論說他們之間互為因果。我們需要通過因果分析的方法,為數據之間的相關性提出符合業務邏輯和商業邏輯的解釋。

如果數據分析遺漏了因果分析這個過程,就會得出一些奇怪的結論。比如,我們發現較大的用戶,買的鞋子一般也是大號。如果缺乏基于業務邏輯的因果分析我們可能會這樣指導運營工作︰為了讓用戶的腳變大,我們應該多賣大號的鞋子給他們。

但有的時候,我們很難直接的分析出數據之間的因果關系,很難直觀的得出結論,這個時候,我們需要借助科學實驗,幫我們更深入的理解我們的業務。

如何去做科學實驗,我結合滴滴謝梁大神的觀點(謝梁,數據科學中的“科學”),總結如下︰

通過對數據的敏銳度和業務的熟悉程度,發現和定義問題;

提出結構化,可量化的假設;

設計驗證實驗。科學與實驗是緊密關聯的。在嚴選和很多公司,我們往往利用實驗來判斷方案的好壞。但是,其實實驗更多的是用于幫助我們驗證假設,幫我們更加深入的理解我們的用戶(著名實驗公司今天頭條 CEO 說︰更多的時候,AB 測試幫助我們理解用戶,而不是幫助我們決策)。設計一個好的實驗,並不容易,需要根據假設梳理出要驗證的指標,樣本集,可控制的因子(往往是流量)。設計實驗,需要極強的專業性。

收集與分析數據。分析數據並不僅僅是直觀的去看趨勢的高低。分析數據首先需要對業務的主要指標及其相關性有清晰的概念,需要把指標之間的相關因子量化,甚至可計算。我認為是先有結構化、系統化、量化的體系,再有數據分析。所幸的是,結構化的體系我們可以用系統和服務來支撐。我們團隊今年主要在設計與研發的 DIS 系統(嚴選數據智能平台),一個主要目標就是解決這個問題。

分析人員需要專業的量化分析能力、統計學能力。

陷阱與缺陷 3︰操縱,誤導,數據的民主化不足

數據民主化在國外的數據社區討論的很多,國內聊的比較少。數據科學家們通過黑魔法制造出一些模型來,然後告訴業務同學該怎麼決策,告訴高層業務指標完成的好不好。數據的能力被限制在某一個專業團隊,但它的產出卻又跟業務緊密相關,這些未知會給業務人員和管理層帶來恐懼與不安,數據團隊給的結論會不會有可能是被操縱的?會不會有意無意的誤導?這些問題會很容易讓團隊之間滋生不信任。

所以數據民主化不足帶來的一個重要問題就是信任問題,那該怎麼解決?

嚴選在一次產技共創會中,有同事提出,要跟業務“談戀愛”。對于眼下的現實,這確實是解決信任問題的一個好辦法。阿里的曾經的數據一把手車品覺老師也說過類似的話︰數據同學要會 " 混,通,曬 ",跟業務同吃同行,建立信任,才能互相成功。

但這終究不是一個可規模化和標準化的解決方案。去年,我們在考慮 2019,2020 年嚴選數據平台發展的時候,想了很久這個問題。如何去降低數據使用的門檻,讓一切更直觀和更容易解釋?我們開展的一些項目,SQL on AI, Data Intelligence System(DIS),算法平台等,一個共同的目標是降低數據使用門檻,並通過產品的方式固化甚至可視化數據分析過程。

陷阱與缺陷 4︰數據預測未來不是理所當然,預測的成功不僅是算法模型

老板們經常會把算法能力簡單化︰預測的不準?找兩個 NB 的算法專家做個模型就能搞定!遺憾的是,現實並不這麼簡單,你可能找 100 個 NB 的算法專家都沒用。

有人見過用算法來預測下一輪雙色球中獎號碼的麼?有人用算法來預測接近混沌狀態的股市漲落麼?作為一個旁觀者,你能利用算法來預測意甲的每場比賽成績麼?

有的業務問題本身是無法預測的,因為它跟過去沒有關系(比如雙色球);有的業務問題預測成本很高,短時間內無法做出有價值的模型(比如預測股市,預測比賽等),需要考慮投入與回報。事實上,很多算法的成功落地應用,不光是需要有合適的模型,還需要大量維度的數據作為生產資料,更關鍵的是要有一個完善,可靠的算法工程體系。而後者,往往會被決策者忽略。

決策者在考慮利用算法模型去預測未來時,他需要想明白投入與產出,組織需要投入的不止是幾位算法大神就行,還需要建設完善的數據基礎體系,還需要建設完善的算法工程體系。決策者如果期望數據和算法能發揮突破性的效應,需要有魄力把成本投入到自己目光不能及的地方,比如基礎數據體系,比如算法工程。

陷阱與缺陷 5︰空中樓閣 - 基礎設施與基礎能力的不完備

這個問題比較抽象,對于 BI/ 算法 / 數據產品的同學而言,可能不好理解。不過大家只需要記住︰數據的最底層,搖搖欲墜,並不堅實,同樣需要一個團隊精心守護。

大家在興奮的玩耍數據,利用數據來驅動業務前進的時候,如果回頭望望做 Data Infra 的同學,如果他們告訴你其實你在用的數據能不能真的算出來、有沒有算對,他們也沒多少信心的時候,你會不會覺得心驚肉跳,會不會覺得人生其實有些虛無?如果大家有機會采訪下各個互聯網公司,可以問問他們被抱怨最多或者故障最多的技術團隊是哪個?相信答案都比較一致︰“大數據基礎團隊”。包括嚴選的前面幾年,這個情況也非常嚴重(當然現在也沒好多少)。數據故障頻出,數據產出排期長、節奏慢、不穩定等情況都很常見,很多時候我們是用睡覺時間在做人肉保障。每每回想起來,都會心驚。

這當然並不是因為大數據基礎行業的從業者敬業精神不足或者能力不足。而是因為大數據體系其實並沒有一個非常堅實的工程基礎。

數據的基礎設施可靠性不足︰數據的采集系統,數據的存儲系統,數據的計算系統,數據的分析引擎,這些服務的可靠性相比其他的在線服務低一大截。數據平台每天的定時數據計算服務,比如 Hive,或者 spark,成功率如果有 98%,已經算是很不錯了,而線上服務系統,如果可靠率長期在 98% 以下,相關團隊的同學很難堅持一年不被優化。就算數據成功的被計算出來了,我們的分析引擎,比如 impala,查詢成功率也長期低于 95% 以下,在嚴選這個數據還要更差一些,impala 的查詢失敗或者超時,幾乎每天都有不少。

計算模型不完備和廣泛的誤解︰大數據的計算有兩個模型︰Streaming,Batch。兩個模型對應的基礎設施各自獨立發展,誰也不理誰。同時,由于信息流轉的速度問題,也有人把這兩個模型稱為實時計算和離線計算。雖然,Streaming & 實時計算; Batch & 離線計算,在很多現實場景中,存在著一致性,但本質上,它們是兩回事。甚至很多從業者也無法清晰的分清楚這些基本概念,把實時計算和流計算等同,這給數據工作帶來了巨大的困擾。

為了適配這兩個計算模型,很多組織的 Data Infrastructure 團隊會有獨立的流計算團隊和批處理團隊;會有實時數倉和離線數倉,會有實時指標和離線指標等等。這些數倉和指標的研發人員存在著割裂,數倉建設方法論、指標定義也不盡相同。維護成本和解釋成本都很高,出錯幾率也很大。很常見的情況是一個業務的數據需求,往往需要拆解成實時和離線兩個方案,共同去實現。

這個糟糕的局面沒有變的更好。

LinkedIn、Uber、阿里等等公司都在嘗試做批流融合,嚴選也在嘗試,我們在做計算資源管理和調度層面的融合。但是,融合兩種完全不同的計算模型,是一件不美好的事情,直覺上也不大對。我覺得現實的業務問題可能並不是聚焦在批流兩種計算模型的不兼容上,而是聚焦在實時和離線兩個時間維度上的不兼容。由于歷史原因,實時的數據往往需要依賴流計算模式來產生,從而產生了實時計算 == 流計算的誤會。而融合實時數據與離線計算,解決起來就容易很多。而流處理也需要走向更適合它的場景。

其實能總結的問題遠不止這些,比如我們會擔心“算法替代思考,會不會傷害組織的遠見?”、“大規模依賴 ab 測試做決策,可能會導致運營策略的短視” 等等。

上一篇︰申請數據科學家職位被拒,我開始研究他們都是些什麼人 騰訊發布開源機器學習平台 Angel 3.0下一篇︰

公眾平台

搜索"raincent"或掃描下面的二維碼

?