听 StitchFix 数据科学家和 Google 工程师聊聊机器学习的机会

jopen 8年前
 

编者按:本文来自 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