来自数据科学实践中的挑战:工程与模型搭建——《精通数据科学》

来自数据科学实践中的挑战:工程与模型搭建——《精通数据科学》

The purpose of computing is insight,not numbers.

计算的目的不在于数字,而在于洞察事物。

——Richard Hamming

下文节选自《精通数据科学:从线性回归到深度学习》, 已获异步授权许可, 书籍具体介绍请见 epubit.com/book/detail/22985


随着云计算和人工智能的发展,数据科学这门新的综合学科被越来越多的人所熟知,业界也普遍看好其在未来的发展前景。体现在就业市场上,与这个行业相关的数据科学家和数据工程师[1]成为了“21 世纪最吸引人的职业”[2]。

[1] 数据科学家(data scientist)的主要工作是为数据搭建模型,要求具有扎实的数学以及统计知识;数据工程师(data engineer)的主要工作是利用计算机分析数据和实现数据科学家设计好的模型,要求具有良好的编程实现能力。实际上这两种职业的工作内容有很多重叠的部分,因此要求从业者同时具备较好的数理知识和工程实现能力。

[2] Davenport T H, Patil D J. Data Scientist: The Sexiest Job of the 21st Century[J]. Harvard Business Review, 2012, 90(10):70-76.

就像“一千个人眼里有一千个哈姆雷特”一样,对于什么是数据科学也有很多种不同的解读,并由此衍生出很多相关概念,比如数据驱动(data driven)、大数据(big data)、分布式计算(parallel computing)等。这些概念虽然各有侧重点,但它们都毫无争议地围绕着同一个主题:如何从实际的生活中提取出数据,然后利用计算机的运算能力和模型算法从这些数据中找出一些有价值的内容,为商业决策提供支持。这正是数据科学的核心内涵。

传统的数据分析手段是所谓的商业智能(business intelligence)。这种方法通常将数据按 不同的维度交叉分组,并在此基础上,利用统计方法分析每个组别里的信息。比如商业智能中最常见的问题是:“过去 3 个月,通过搜索引擎进入网站并成功完成注册的新用户里,年 龄分布情况如何?若将上面的用户群按年龄段分组,各组中有多大比例的用户在完成注册后, 完成了至少一次消费?”

来自数据科学实践中的挑战:工程与模型搭建——《精通数据科学》

这样的分析是非常有用的,能揭示一些数据的直观信息。但这样的方法如同盲人摸象, 只能告诉我们数据在某个局部的情况,而不能给出数据的全貌。而且对于某些问题,这样的结果显得有些不够用。比如用户注册之后完成消费的比例与哪些因素相关?又比如对于某个客户,应该向他推荐什么样的商品?在这些场景下,我们就需要更加精细的数据分析工具—机器学习和统计模型。在我看来,这些内容是数据科学的核心内容,也是本书介绍的重点。

1.1 挑战

在数据科学实践中,我们将使用较为复杂的机器学习或统计模型对数据做精细化的分析和预测。这在工程实现和模型搭建两方面都提出了挑战,如图 1-1 所示。

▌1.1.1 工程实现的挑战

数据科学在工程上的挑战可以大致分为 3 类:特征提取、矩阵运算和分布式机器学习。

(1)一个建模项目的成功在很大程度上依赖于建模前期的特征提取。它包含数据清洗、数据整合、变量归一化等。经过处理后,原本搅作一团的原始数据将被转换为能被模型使用的特征。这些工作需要大量的自动化程序来处理,特别是面对大数据时,因为这些大数据无法靠“人眼”来检查。在一个典型的建模项目中,这部分花费的时间远远 大于选择和编写模型算法的时间。

(2)对于一个复杂的数学模型,计算机通常需要使用类似随机梯度下降法的最优化算法来估算它的模型参数。这个过程需要大量的循环,才能使参数到达收敛值附近。因此即使面对的是很小的数据集,复杂的模型也需要很长时间才能得到正确的参数估计。而且模型在结构上越复杂,需要估计的参数也就越多。对这些大量的模型参数同时做更新,在数学上对应着矩阵运算。但传统的 CPU 架构并不擅长做这样的运算,这导致模型训练需要耗费大量的时间。为了提高模型的训练速度,需要将相应的矩阵运算(模型参数的估算过程)移植到GPU 或者特制的计算芯片上,比如 TPU。

来自数据科学实践中的挑战:工程与模型搭建——《精通数据科学》

图1-1

(3)近年来,随着分布式系统的流行和普及,存储海量数据成为了业界的标配。为了能在这海量的数据上使用复杂模型,需要将原本在一台机器上运行的模型算法改写成能在多台机器上并行运行,这也是分布式机器学习的核心内容。

▌1.1.2 模型搭建的挑战

数据科学对模型搭建的要求也可以总结为 3 点:模型预测效果好、模型参数是稳定且“正确”的、模型结果容易解释。

(1)模型的预测效果好,这是数据科学成功的关键。而一个模型的预测效果取决于它的假设是否被满足。从数学上来看,任何一个模型除去假设部分,它的其他推导都是严谨的数学演算,是无懈可击的。因此模型假设就像模型的阿喀琉斯之踵[3],是它唯一的薄弱环节。当问题场景或数据满足模型假设时,模型的效果一定不会差,反之,则预测效果就无法保证了。但在实际生产中,针对一个具体的问题,几乎不可能找到一个模型,它的假设被百分之百地满足。这时就需要避重就轻,通过特征提取等手段,尽量避免违反那些对结果影响很大的假设。这就是为什么说“所有模型都是错的,但是,其中有一些是有用的”[4]。

[3] 阿喀琉斯是希腊神话中的一个人物。除了未被冥河浸泡过的脚后跟外,他全身近乎刀枪不入,有“希腊第一勇士” 之称。在特洛伊战争中,阿喀琉斯被箭射中脚后跟而死去。因此阿喀琉斯之踵欲指某事物的最大或者唯一弱点。

[4] 出自英国统计学家George Edward Pelham Box。

(2)除了被用来对未知数据做预测外,模型另一个重要的功能就是对已有数据做分析, 比如哪个变量对结果的影响最大或者某个变量对结果到底是正向影响还是负向影响等。这些 分析结果在很大程度上依赖于模型参数的估计值,后者的准确与否直接决定分析结果的质量。但问题是,模型参数的估计值是不太“可靠”的。例如从训练数据中随机抽取两个不完全一 样的数据子集 A 和 B,然后用这两个数据集分别训练同一个模型。得到的参数估计值几乎不可能完全一样。从数学的角度来看,这说明模型参数的估计值其实是一个随机变量,具体的 值取决于训练模型时使用的数据。于是我们要求这些估计值是“正确”的:围绕参数真实值 上下波动(也就是说它们的期望等于参数真实值)。我们还要求这些估计值是稳定的:波动 的幅度不能太大(也就是说它们的方法比较小)。这样就可以把参数估计值的“不可靠性”控制在可接受的范围内。

(3)数据科学家将模型搭建好,并不是一个数据科学项目的终点。为了充分发挥数据的价值,需要将模型结果应用到实际的生产中,比如为手机银行 APP 架设实时反欺诈系统, 或者将利用新搭建的车祸风险模型为汽车保险定价等。参与这个过程的不仅有懂模型的数据科学家,还有更多非技术的业务人员。而后者往往是使用模型的主力,比如根据反欺诈系统的结果,对可疑用户进行人工审核,又或者向客户解释为什么他的车险比别人贵。为了帮助他们更好地理解模型结果,需要将复杂深奥的模型翻译成直观的普通语言。这要求模型是能被解释的,而且是容易被解释的。

在对数据搭建模型时,有两种截然不同的思路,如图 1-2 所示。

来自数据科学实践中的挑战:工程与模型搭建——《精通数据科学》

来自数据科学实践中的挑战:工程与模型搭建——《精通数据科学》

图 1-2

一种是所谓的数据模型(data model),也就是传统的统计模型[5]。这种思路假设数据的产生过程是已知的(或者是可以假设的),可以通过模型去理解整个过程。因此,这类模型通常具有很好的可解释性,分析其稳定性的数学工具也很多,能很好地满足上面提到的后两点。但是在实际生产中,这些模型的预测效果并不好,或者更准确地说,单独使用时,预测效果并不理想。

另一种是所谓的算法模型(algorithm model),也就是机器学习。这类模型是人工智能的核心内容,它们假设数据的产生过程是复杂且未知的。建模的目的是尽可能地从结构上“模仿”数据的产生过程,从而达到较好的预测效果。但代价是模型的可解释性很差,而且模型稳定性的分析方法也不多。

正如上面的分析,统计学和机器学习在某些方面具有极好的互补性。因此在实际的生产中,为了将一个数据科学项目做得尽可能完美,我们需要将这两种思路结合起来使用。比如使用机器学习的模型对数据建模,然后借鉴数据模型的分析工具,分析模型的稳定性和给出模型结果的直观解释。(1.1 完)


分享到:


相關文章: