數據產品開發的四個關鍵要素

導讀:在這篇文章中,咱們闡述進行有效的數據產品開發的關鍵要素。數據產品都是算法工程師們開發出來的,咱們就從算法工程師的算法水平開始聊聊。

最近兩年,我一直跟IT公司裏面的算法工程師們一塊兒工做,本身也算一名算法工程師,也面試過各個級別的算法工程師。來了IT公司以後,我剛開始面臨的一個很大的問題,短期內很難看清楚申請人真實的算法水平。主要難點有兩個:面試

  • 大部分剛入職的同窗幾乎沒有任何學術論文,因此我只能依靠前面幾位同事對他/她的算法編程能力的考覈。
  • 對於一些從不知名IT公司過來的候選人,簡歷上都說本身參與了各類線上項目的開發,可是他們在這些項目中的做用究竟是啥, 根本不清楚。問題的複雜度和算法的效果也不清楚。

這兩個難點就是短期內,沒有一個可信的標準來衡量對方的算法水平。算法

我在學界作了快20年的研究,培養了一批人才,一部分人去了學術界(NYU,UNC,Emory,UoT,Purdue,Yale,UoA,FSU等),另外一部分人去了工業界(像Uber,DiDi,高盛等)。在我實驗室的幾年中,他們都是跟我一塊兒研究某個應用場景內的一些有意思的問題,收集和/或處理相關數據,設計各類算法,與推導相關的理論。在學界中,我也面試了許多青年才俊們,主要看他們的推薦信,發表的文章,與面試的交談和學術演講。在這種情形下,高水平的文章/專著一直是在學界中找到好工做的必要條件。在頂刊/頂會發表文章的數目以及被引用的次數通常被認爲是可信的標準,由於這些地方大部分審稿人的要求都是很是高的,標準基本上就兩個:編程

  • 這個問題自己有沒有大的意義,這個意義能夠是學術上的,科學上的或商業上的;
  • 你的算法和理論能不能真正極大地解決該問題

我如今考察面試人的算法水平, 主要是基於面試人經常使用的算法來問以下幾個基本問題:安全

  • 相關模型會不會調參,有啥心得?
  • 對該類算法理解的深度和廣度如何?
  • 爲啥有時候某個算法很差用,爲何?
  • 若是這個算法很差用,你能不能開發出更好的算法?

許多沒有受過嚴格算法訓練的同窗們常常到第二個問題的時候就卡住了。對於中高階的算法工程師,最好還要有高質量的學術論文/專著或被行業所普遍承認的產品,這些積累反映了他/她對一類問題的深度思考,這就是一種可信的硬性標準。相對應地,在Google的Deepmind工做過幾年的同窗,你們通常會認爲其實力應該不錯,由於Deepmind自己就表明了一個可信的軟性標準。一個好的算法團隊最好有許多有軟硬實力的算法工程師,但問題是高效的數據產品開發到底須要什麼樣的算法工程師呢?架構

更進一步地,這幾年咱們接觸了許多算法同窗,每天跟他們一塊兒工做,幾乎天天都聽他們聊各類模型(像X-learner,XG-boost,CNN,Transformer,GCN,U-net等)以及它們的各類技術指標(像AUC,F-score等),最後也說離線和在線的業務指標(像ROI,GMV等)。可是,咱們幾乎不可能把他們的算法都拿來跑跑,對全部的算法細節都把關,那咱們如何保證數據產品開發的質量?機器學習

首先,在數據產品開發中,選取好的業務指標是保證數據產品質量最重要的標準,定好合理的業務指標是全部數據產品應用層實現技術落地的核心。函數

  • 有時業務指標挺直接的,好比說跟人生安全相關的產品,下降事故率和死亡率多是一個經常使用的業務指標。可是,許多跟用戶生命週期管理相關的策略, 包括拉新、促活、留存、和召回等,評價這些策略好壞的業務指標就沒有那麼簡單。許多公司都是以生命週期總價值(LTV)爲公司的業務指標,就是公司從用戶全部的互動中所獲得的所有經濟收益的總和。在我的的維度上就是「顧客終生價值」,指的是每一個購買者在將來可能爲企業帶來的收益總和。若是咱們進一步考慮用戶對公司利潤的貢獻,它也能夠分爲新生期,成熟期、衰退期,沉默期,和再激活期,LTV也能夠被進一步拆解爲用戶量、留存率、活躍度(DAU)、和每用戶平均收入等核心的業務指標。另一個最經常使用的指標是投資回報率,它的英文名爲Return on Investment(ROI)= (稅前利潤/投資總額)x 100%, 它常常被用來衡量各類運營策略的效果和效率。對於運營策略來講,一個深層次的問題就是LTV和ROI哪一個是更好的業務指標?由於篇幅的緣故,咱們不在這裏闡述這個問題,請注意之後的更新。

其次,在數據產品開發中,咱們要考慮兩類技術指標:算法的技術指標和模型的診斷統計量。大部分數據產品都是能夠拆解爲一系列分類和迴歸模塊的有機組合。工具

  • 算法的技術指標(https://zhuanlan.zhihu.com/p/... 能夠根據分類和迴歸的算法來分類。具體的,分類算法的經常使用技術指標包含精度、準確率(查準率)、召回率(查全率)、F得分、AUC (Area Under Curve)、Gini係數、增益圖和 KS(Kolmogorov-Smirnov)等。好比,增益圖普遍應用於目標定位問題,以在特定的活動中肯定用戶在哪一個十分位數上,然而K-S是衡量正負例分佈分離程度的指標。迴歸算法的經常使用技術指標包含平均絕對偏差、均方偏差、對數損失、均方根偏差、決定係數和校訂決定係數等等。
  • 咱們還要考慮模型的診斷統計量,由於算法的技術指標並不能徹底反映模型核心假設的合理性。這裏就是用統計學中一些模型診斷工具來找出數據中的異常點和強影響點,以刻畫數據的分佈,選擇更好的損失函數,和增長模型的泛化性。
  • 算法的技術指標通常都是宏觀指標,然而模型的診斷工具大部分是給定模型下,有關數據點的一些微觀指標。

有了這些準備,咱們再談談在數據產品開發中技術指標和業務指標之間的關係。學習

1. 數據產品的模塊拆解和開發

作好一個數據產品,另外一個重要的是如何有效地把業務指標拆解成各個模塊,找到一條清晰的解決思路,依此進行相關的數據建設,算法開發與系統優化。爲了達到這點,有兩個關鍵點:測試

  • 對業務的深刻理解,這個須要相關算法工程師長期在業務裏面跌爬滾打,找到解決問題的關鍵點。
  • 相關人員對各種算法的深度和廣度的有效把控,可以把每一個模塊真正建設起來。
  • 各個公司最須要的是既懂業務又懂算法技術的算法工程師,這種人纔是數據產品開發的關鍵。

2. 模塊的泛化性

在每一個模塊的開發中,咱們通常收集一組/幾組訓練數據集,構建一組模型,用交叉驗證法從算法的技術指標和診斷統計量獲得反饋,選擇模型,改進模型,直到達到必定的準確度。

  • 模型的泛化性是指模型對新數據集的適應能力。模型在訓練數據集上取得好的準確度並不能保證上線後模型的泛化性。
  • 有一個論斷就是若是測試集足夠大,好的準確度就能保證好的模型的泛化性,其實這個論斷不必定對。
  • 保證模型的泛化性最關鍵的一件事情是進行高效的和有序的底層數據建設,並學到隱含在數據背後的因果關係,這樣咱們的模型對具備和訓練集贊成因果關係的數據也會適用。

3. 技術指標到業務指標的轉化

通常來講,全部模塊上取得好的技術指標不能自動地轉化爲好的業務指標,這個依賴於對業務指標的有效拆解。拆解好了,一些模塊的技術指標作得差點對提高業務的指標影響可能不必定很大,因此作產品的過程當中,咱們必定把整個流程跑通。再找到一些關鍵模塊來優化,可是在必定成本之下,你們仍是都但願把每一個模塊的技術指標作到極致。這個問題是落地最難的點,須要更多的案例來剖析其中的深度。

最後,咱們以阿爾法圍棋這個數據產品爲例. 它的業務指標就是下贏對手, 它被拆解成四個模塊,造成一個完整的系統。

在算法層面上,AlphaGO結合了深度學習,強化學習和蒙特卡洛樹搜索法等多個方法,並對這些方法進行了開創性的發展,使其實力有了實質性飛躍,以取得戰勝多名世界冠軍的記錄。這些成果都是來源於AlphaGo團隊對指標的高效拆解、高深的算法水平和有效的底層數據建設。


做者介紹

北卡羅來納大學教堂山分校生物統計學終身教授 ,2018年加入滴滴出行,帶領工程師們爲滴滴出行平臺的運營打造一套雙邊市場的創新理論和平臺。

北卡州立大學統計博士,2018年加入滴滴出行,主要從事統計和機器學習在雙邊交易市場的研究和應用。

團隊招聘

歡迎對大數據底層引擎(如 Spark、Flink 等)有研究和實踐經驗的工程師/專家加入滴滴大數據架構部,一塊兒面對互聯網+出行行業的天天萬億級海量數據處理挑戰。

投遞郵箱 | diditech@didiglobal.com

郵件主題請命名爲「姓名+應聘部門+應聘方向」


歡迎關注滴滴技術公衆號!

本文由博客羣發一文多發等運營工具平臺 OpenWrite 發佈
相關文章
相關標籤/搜索