聽 StitchFix 數據科學家和 Google 工程師聊聊機器學習的機會
編者按:本文來自 Shinect 巷內 (shinect.org),硅谷非盈利創業社區。文章首發于其微信公眾號“硅谷巷內”(微信號:shinect-org),授權 36 氪發布。
作為 Shinect 數據圓桌討論的第五期活動,這次我們有幸請來了在機器學習領域有著豐富經驗的 Jay 和 Evan,與我們分享機器學習在業界的實際應用和一些針對具體案例的解決方案。根據前四期活動的反饋,在策劃期間,我們增加了一個場外問題收集環節,得到了很多小伙伴的支持和關注。組織者篩選了其中一些很有意思的問題,把它們加入到了當天的討論中,與嘉賓和在場社區成員進行了探討。這篇文章是當天活動的精華整理,干貨滿滿,希望能給當天未能到場的伙伴們一些啟發和幫助。
0. 嘉賓簡介
Jay Wang: 現任 StitchFix 數據科學家,創業前是 推ter 的 Data Scientist,在目標廣告投放和預測分析等領域有著豐富的經驗。
Evan Chen: Google 軟件工程師,對 Machine Learning 在 Google Display Ads 中的應用有豐富的經驗。
1. 作為 Data Scientist,在公司里要和哪些人員直接溝通?
一般來說,數據科學家這個職位非常 cross-functional。和開發人員溝通時會涉及具體的技術細節,但和公司決策層溝通時會更注重項目解決的問題和預期,以及最終對組織帶來的影響。工作的內容也和公司的大小有關。譬如對于初創公司,數據科學家就會直接和 CEO 溝通,但是規模更大,發展階段更成熟的一些公司,一般是和某個產品的相關人員直接接觸。
2. 機器學習目前有哪些主要的應用場景?
目前比較多用到的有搜索引擎 (Google, Baidu, etc.),Computational advertising,推薦引擎 (Amazon, Linkedin, etc.) 和 Fraud detection (Bank);其他的應用還包括 Adaptive websites,Medical diagnosis,Human-computer interaction,Computational finance/stock,Machine translation,Game playing,Info retrieval 等等。
3. 作為機器學習中的一個 Breakthrough 領域,如今深度學習在業界有哪些具體的應用?
深度學習在語音識別(Speech Recognition) 應用。一個是可以放到到穿戴設備里,進行語音操作。或者像 Xbox 一樣用于識別某一個用戶的說話方式和口音,并對他的賬戶進行個性化。
也可以用于計算機視覺 (Computer Vision) 方面。大家很熟悉的一個案例就是無人駕駛車,Google 和 Baidu 都是這個領域里的領導者,也都屢屢刷新著精度的紀錄。但在無人駕駛車方面的應用,其實沒有使用更好的傳感器來得更有效,因為目前算法還不夠可靠,也具有一定的延遲。
用于機器的診斷和預報 (prognosis)。譬如汽車廠商在產品周身安裝傳感器,用收集 Sensor 數據預測引擎等核心部件出問題的時間和幾率。或者像百度一樣,搭建深度學習集群,用以預測集群中機器的可靠性。
類似于異常檢測(anomaly detection) ,深度學習也可以用于新聞領域。用搜集來自于社交網絡的動態,做基于位置的實時分析。這些主要是根據某一個地理位置周圍的更新,實時整理出區域內的話題的動態變化,從而偵測出重要事件。一些城市也開始用類似的方式,進行突發事件的應急管理。
4. 機器學習可用于自動化數據分析嗎?如 Topological Data Analsyis (TDA)
這在未來是可以預見的,但目前還有很多難點。比如 SVM (support vector machine) 可以使用 kernel 來重新定義點和點之間的距離;利用 Causal inference 和 Judea Pearl 的理論,機器學習還可以用來訓練 graphical 模型,找到最好的 features;或是在 Bayesian 里加一個 component 來處理 human interaction。
數據分析自動化另一個難點在于各個公司擁有的數據結構和其面對的問題上的差異性,增加了產品標準化的難度。所以業界上的一些公司在自己產品設計的過程中,有意地回避了這一方面。譬如網頁流量分析公司 Omniture,它做出標準化解決方案,只提供一些簡單數據的支持,有時候僅僅是訪問量和訪問者這類的初步統計。Jay 自己也做過這方面的嘗試。通過標準化數據結構,做成具體機器學習的產品,但是模型的性能不夠理想,最后還是不得不通過人的深度分析來找到重要 feature。
比較容易實現的自動化可以是,用人工智能來減少 dimension 或者做回歸分析,再把分析結果交給 Data Scientist 做進一步分析。
5. Machine Learning 使用哪些語言? 如果離開了大公司,目前有哪些靠譜的 cloud based machine learning infrastructure 可供開發者或小公司使用?
主要有 Spark & Scala & Java;Python 有比較好的 ML 的 module;R 的 package 更全面,但 Deep Learning 的 package 沒有 Python 多,用于 Production 也比較少。現在做 Machine Learning Infrastructure 的公司很多,可以根據它們各自的特點進行選擇。
H2O: Open Source Predictive Analytics Platform
DaTo: Machine Learning 的工具,用于 Graph analytics 和 Recomendation System
Azure: Machine Learning Cloud platform, 可視化模塊化
RooT: 算法是最好的,大數據,小算法;訓練模型的時候可以用,但很少用在不能并行的機器學習算法里。
MLlib (Spark): 不是特別穩定,但是在 Gradient boosting tree 方面做的不錯,產品社區支持也很好,前景更好。
Mahout: 在往 spark 上遷移
6. 有哪些以數據為中心的初創公司? 以大數據為中心的產品如何做到差異化?
這樣的公司很多,當天主要討論到的有下面幾個公司:
Jet.com 是基于訂閱的零售公司,側重在某些產品上,以低價吸引消費者
SpotTrender 是在廣告投放前對其進行測評的云端系統
Sano 是利用社交網絡的即時新聞平臺
Common crawl,抓取網頁上的原始數據
對于數據產品的差異化,Peter Skomoroch ( ex Principal Data Scientist@Linkedin) 在一次會議中提到,以數據為中心的產品要用數據來建立自身的競爭壁壘 (Moat),而這個壁壘主要有這幾類:
User generated data moats,like 油Tube, 非死book, Flickr
Behavior history data,when your app remembers you
Reputation based data moats,like Ebay,Uber driver reviews
Don’ t built on top of someone else’ s moat,like BranchOut,Klout