第1部分 实时机器学习方法论
第1章 实时机器学习综述
1.1 什么是机器学习
相信本书的读者都已经接触过一点机器学习了,或者听说过各种新奇的机器学习方法,或者通过相关新闻了解过机器学习的应用场景。那么,大家是否了解机器学习的定义呢?事实上,对它的定义层出不穷,不同领域的大咖往往都会有一个从自己角度出发的特别“机灵”的定义。比如,吴恩达(Andrew Ng)是深度学习的先驱者之一,他对机器学习的定义是从计算机从业者的角度出发的,他的定义是:
机器学习是一门科学,它旨在让计算机自主化工作,而不需要刻意编程。
而从统计和数据分析的角度出发,世界领先的统计软件公司SAS对机器学习的定义是:
机器学习是一种方法,它旨在用数据分析自动化模型的建立。
笔者个人从学术和工业界应用的角度出发,认为机器学习的定义应该包括以下三个方面。
用数据说话:在常规计算机编程中,所有的逻辑都是人为设定的。而机器学习方法是试图让观测到的数据和现象成为编撰逻辑的依据,不同模型之间的衡量标准也试图尽量达到标准化,以使得人为干预最小化。
高度自动化:机器学习模型往往会在工业应用中不断重复更新,所以机器学习建模生存期中的每个步骤往往都是可以高度自动化的。
鲁棒性:虽然教科书中很少提及,但鲁棒性(又称稳定性,Robustness)确实是机器学习方法论中隐含的一个巨大要求。由于模型建立高度自动化,因此我们需要运用的机器学习模型在面对极端数据的时候只会受到较少影响,不需要人为排错。
根据笔者的经验,以上三点是一个组织成功运用机器学习的必要条件,但是一定要以用户体验为出发点来进行均衡。
在工业应用中,上面这三点的重要性总是在不断得到印证。下面就通过两个应用中的有名案例来体会一下。
1.谷歌通过机器学习和人工干预进行网页筛查
谷歌等搜索引擎公司每天需要处理上百万个新网页信息。为了向用户快速提供这些信息,谷歌多年来通过不懈的努力开发出了Caffeine平台,将提供实时新闻搜索结果的延迟从一天缩短到了若干分钟。机器学习数据驱动、高度自动化的特点让谷歌用户受益不少。就连微软在通过记者发布会宣布发行Windows10的时候,谷歌搜索引擎也比微软自有的必应搜索引擎更快地呈现了与Windows10相关的信息。同时为了满足鲁棒性的要求,谷歌通过第三方人工服务,不断进行人工抽样审查了大量的网页内容。
2.Yelp机器学习模型的失败
Yelp类似于国内的大众点评网,其内容多为用户生成,对餐馆、娱乐、家装等行业都有很全面的覆盖。由于大量商家的成败都取决于Yelp,因此市场上出现了冒充消费者进行刷点的评论师。评论师会按照商家的要求对商户进行不公正的点评,从而对消费者产生误导。Yelp意识到了这样的问题,并且建立了机器学习模型进行自动化侦测。但可能是建模数据出现了问题(比如,建模的时候使用了评论师的数据),因此生成的模型并没有阻挡评论师的进攻,真正的用户所产生的评论反而会被屏蔽掉,用户体验大打折扣。
通过这样的案例,我们可以意识到基本数据采集对机器学习模型的重要性。如果数据出现了问题,那么后面的模型、架构再强大也没有办法产生效益。