【翻译】ASML Automatic Streaming Machine Learning

摘要 Abstract

​ 除了大数据系统的规模问题,新数据产生和移动的高速度也带来了新的挑战。为了提取有用的见解,构建能够高效处理高速数据的系统变得至关重要,如果处理大数据而无法从中获得价值则并没有什么意义。

​ 与典型的离线/批处理机器学习场景相反,在流的设置中,数据无法预先访问,我们需要在流数据到达时即刻学习并预测,从而支持实时的决策,例如基于他/她的概率会点击决定是否向用户展示一个广告。

​ 在这项工作中,我们提出了ASML,一个自动流式机器学习系统,它可以从快速到达的流数据中持续学习预测模型。传统的流学习模式通常只训练单个模型,而我们的系统并行训练多个模型,并能够通过在模型之间自动切换,在正确的时间使用正确的模型进行预测。

​ 我们对一个公共可用数据集的初步实证结果证实了我们方法的总体有效性,并显示了一些优于传统流模式的改进。

1 介绍 Introduction

​ 随着网络数据的指数级增长,以及所谓的物联网传感器的激增,有必要构建能够处理连续数据流并能够从中提取有用信息的系统。数据太大,移动太快,需要实时做出决策。为了应对这些挑战,我们需要新的替代方案(系统)来有效地分析和处理这些永不终止的流,引用[14]。

​ 在线机器学习框架非常适合这种流媒体场景。典型的在线学习算法每次只对一个实例进行操作,允许快速、简单、在广泛的实际模式中表现良好的更新。这些算法按轮运算。在第t轮算法接收到实例xt∈Rd,并且将其最新的预测规则应用在该实例上从而得到预测值y_bart∈Y。接下来会得到标签yt∈Y和损失l(yt,y_bart)。最后算法使用(xt,yt)更新其模型,并且执行下一轮循环。在线学习应用的例子包括网络数据异常检测、证券交易的模式识别以及在线邮件分类。

​ 在线学习意味着在数据到达时对模型进行训练,而离线模式则是使用静态数据集。出现了一些挑战:a)总体来说,可以获得更多的数据,但时间限制更严格(需要实时预测),b)所学的概念可能会随着时间的推移而改变,c)与数据集的大小相比,存储示例的能力非常有限,即模型只能看一次实例,并且在使用实例更新模型之后必须忘记它。存储最“相关”的数据点(要么是最近的,要么是最多样的,等等)是可能的,但通常会发生负载减少。

​ 图1演示了一个典型的在线或流式流程。原始数据到达的速度很快,可能来自网络连接。原始数据被转换成“格式化”的实例,然后输入到分类器(或回归器)中。做出预测,并发送给最终用户。一旦真实标签到达,决策函数就会更新(即模型学习),并且重复执行。按照预定的时间间隔,对模型进行评估。通过查看评估结果,数据科学家可能决定手动更改为非线性模型,因为线性分类器可能已经不够用了。我们发现这个手工过程很棘手而且容易出错。因此,我们对目前的做法提出了挑战,并提出了一个使用新的流管道的系统。

​ **贡献:**我们的系统ASML能够在流式数据上并行训练多个模型,并及时自动选择模型。据我们所知,没有任何其他的开源流式系统提供这样的开箱即用的特性。此外,我们还包括了组件热部署的可能性,允许用户在系统仍在运行时推出新的学习者。我们也处理节点故障,并支持不同的评估指标和模式。

​ 系统设计有利于新模块和组件无缝集成的灵活性。我们的初步实验表明,ASML可以优于传统的流式管道方法。

​ 本文其余部分的研究结果如下:第2节介绍了我们提出的系统,并描述了它的组成部分。第3节描述了一些关键的设计和实现决策。我们在第4节中解释了评估设置,并在第5节中展示了一些初步的结果。最后,我们在第6节讨论了相关的工作,在第7节讨论了未来的工作,并在第8节作了总结。

2 ASML

与以流的方式训练单个模型不同,我们提出了一个系统,它可以并行地训练多个模型,并使用当前最好的模型来做出最终的预测。我们的系统不断评估、比较模型,并选择迄今为止最好的一个,以便输出预测结果。

​ 与图1所示的传统流程类似,图2所示的流程包括数据流和特征生成组件。其中主要的不同在于我们系统的学习阶段。我们的系统包含了许多并行训练的学习者和一个最终的部署者组件。部署者负责决定应该将不同学习者做出的哪些预测发送给最终用户。可以使用不同的策略,如当前最佳模型、投票、加权插值等。我们建议使用当前最佳模型,其他的替代方案也可以帮助提高整体表现,但它们留给未来的工作去做。

2.1 组件 Components

在本节中,我们将简要描述系统的组件。

2.1.1 Data Stream

​ Data Stream表示数据流。它用唯一标识符(时间戳)扩充原始示例,并将这些新的时间感知示例输出到特性生成模块。我们目前支持基于文件的实现(文件流),在这里我们以流的方式模拟数据。我们计划在不久的将来支持基于网络的流。

2.1.2 Feature Generation

​ 特征生成模块从传入的数据流接收数据并动态生成特征。在其他方面,它使用哈希核[17]增量计算最大值,最小值,减少特征维数。不同散列[10]之间的相似性也进行了探讨,但由于可伸缩性问题没有纳入。该模块总是以流行的SVMLight格式输出实例。

2.1.3 Learner

​ 特征生成模块将数据提供给学习器,由学习者对机器学习模型进行增量训练。每个学习器都并行地训练一种不同的模型。我们目前支持以下线性模型:

  • L1 Logistic Regression
  • L2 Logistic Regression
  • Elastic Net Logistic Regression
  • Support Vector Machines (SVM)
  • Perceptron
  • Passive Aggressive I (with Hinge Loss)
  • Passive Aggressive II (with Squared Hinge Loss)

2.1.4 Deployer

部署器是我们体系结构中的关键组件。它接收来自不同学习器的预测以及他们的评估指标。根据其配置的策略,它决定输出哪些预测。

3 设计与实现 Design And Implementation

在本节中,我们将叙述系统的设计考虑事项。

3.1 架构 Architecture

​ 我们提出了一个分布式数据流系统。2.1节中描述的每个组件都运行自己的服务器进程。我们在组件之间使用基于rpc的通信。底层实现使用Apache Thrift services,它允许系统跨不同语言高效无缝地工作。唯一的要求是遵守3.2节中描述的流式接口规约。

3.2 推送而不是拉取 Push instead of Pull

​ 我们将目前的系统分为两类:一种是基于拉取的系统,带有getNext方法,类似于查询操作符使用的Iterable接口;另一种是基于推送的系统,带有emit方法,它不断将数据推送到下游。我们决定使用后者,类似于Aurora[1],因为它更适合流模型并简化了实现。因此,我们将流接口定义为Thrift服务。系统中的每个组件都实现了这样的接口,其中包括以下方法:

void emit(list<string> data)

​ 数据元素的格式因组件而异。每个组件都知道其父组件发送的数据的格式。

3.3 容错 Fault tolerance

我们的系统提供模型检查点。我们目前只支持学习器回滚。我们允许用户定义检查点间隔(例如,每x批示例的检查点模型)。我们将模型状态持久化到PostgreSQL数据库中。当学习器在某些故障(由于机器崩溃、内存不足等)后重新启动时,系统会获取其最近的检查点模型,以避免从头开始重新进行训练。

3.4 注册 Registry

我们提供注册/注销组件的注册服务。它充当了登记员,跟踪系统中可用的组件。每个新组件都需要注册到这个服务中。该服务主要用于学习器的热部署。

3.5 历史记录点 Historical Points

​ 类似于Aurora,我们允许一些历史存储。用户可以指定要持久化到PostgreSQL实例中的历史数据点的数量。我们目前支持持久性规范,例如:保留最后3批数据。负责持久性的任务会不断删除旧数据,使得数据库保持在可管理的大小。

​ 在将学习器添加到运行系统中时,历史记录点扮演着重要的角色。例如,如果用户在训练了一天的线性分类器之后决定开始训练一个非线性模型(例如梯度增强树),那么让树模型赶上已经看到了一天数据的模型将是有益的。通过能够查看一些以前的数据(加上连续传入的流),新创建的分类器将能够更快地开始产生有意义的结果。

3.6 评价方法 Evaluation Modes

​ 我们在流式设置中支持两种常见的评估模式:保持和前置。

​ 在保持评估方法中,当前的模型在指定的时间间隔内(或批次间隔)被应用于一个独立的测试集。对于一个足够大的测试集,holdout保持测试集的损失是一个无偏估计量。在实践中,随着数据流的演变,保持的测试集可能成为流数据的非代表性部分,导致性能指标较差。

相反,在前置(或预测顺序)中,模型的误差是从示例序列中计算的。实际模型对流中的每个示例进行预测。在这种情况下,当仅使用少数例子来训练分类器时,在所有流上估计的先验误差可能会受到先前的错误序列的强烈影响。用于对第一个实例进行分类的模型与用于对第100个实例进行分类的模型不同。这一发现使得使用遗忘机制计算先验误差的想法被提出。我们使用以下由Gama等人提出的衰落因子方法。在i时刻被计算的数据流x的衰落因子综合为S(i):
S(i)=xi+α×S(i−1)S(i) = x_i + α × S(i-1) S(i)=xi​+α×S(i−1)
其中S(i) = x1并且0<<a<=1是表示遗忘因子总和的常系数,应该接近1。i的均值计算公式如下:
M(i)=S(i)N(i)M(i) = \frac{S(i)}{N(i)} M(i)=N(i)S(i)​
其中N(i) = 1 + α * N(i-1)是对应的遗忘因子减少量,N(1) = 1。

3.7 配置 Configuration

​ 我们的系统是高度可定制的。每个组件在启动时读取一个属性文件,用户可以在其中配置用于读取数据的解析器、检查点间隔、批大小、评估模式、评估指标、日志文件等。

4 评价 Evaluation

​ 为了评估我们的贡献,我们使用了2012年KDD Cup Track 2中点击率数据集的预处理子集。它由大约240万个实例和100,000个稀疏特征组成。

我们进行了一些初步的实验,以证明我们的方法的有效性。我们用三个学习器,不同的逻辑回归分别使用L1、L2和Elastic Net正则化。我们使用了3.6节中描述的优先评估方案,并将α设为0.995(即我们赋予更新数据更高的重要性)。

5 结论及讨论 Results And Discussion

​ 单个学习者的总体RMSE和我们系统提供的RMSE如图3所示。我们看到我们的方法表现最好,其次是Elastic Net和L2。虽然差别很小,但在这个特定的任务(广告点击率预测)中,一个微小的改进可能会带来巨大的经济效益。

​ 图4说明了RMSE随时间的演变,并有助于解释图3中的结果。我们看到,L1正则化分类器在整个学习过程中表现最差。在优化的开始阶段,L2分类器表现最好,因此我们的系统选择了它(它们的RMSE曲线在前125万的样本中重叠,而Elastic Net曲线稍差)。在训练的最后一部分(125万的样本之后),Elastic Net模型占主导,因此,我们的系统自动切换并开始使用这个“更好的”分类器进行预测(它们的RMSE曲线重叠,而L2曲线略差)。

6 相关工作 Related Work

​ 有许多开源框架为大规模分析提供了高级机制。Spark Streaming[18]和Twitter Storm[16]是流媒体社区中最受欢迎的两个流媒体,尽管它们对机器学习算法的支持有限。相反,我们的系统专门针对ML工作负载。

​ 在线机器学习算法的设计一直是一个广泛研究的主题[13,8,6]。据我们所知,目前还没有一种端到端流式机器学习系统能够开箱即用地整合这些算法。虽然我们只支持一些[3,4],但是在我们灵活的设计中加入更多算法是很轻松的。

​ Dietterich等人的研究概述了流式数据[7]的机器学习。他们提到,许多适用于离线/批量学习的设定并不适用于流式设定,比如评估指标、生成特征的方法甚至模型选择。在这个项目中,我们更进一步,实现了一种处理此类问题的机制。

​ 本文支持Bifet对流数据对自适应学习和挖掘的系统只有在较少数据量的情况下才能检测到变化的假设。这种方法可能不适用于在一段时间内存在许多小更改的情况,因为其中一些更改可能未被检测到。在我们的系统中,当我们不断地评估性能时,甚至可以检测到频繁的小更改,并切换模型。

​ Hosseini等人使用一系列分类器对非平稳数据流进行半监督分类[11,12]。他们的工作在某种程度上与我们相似,因为他们训练了许多学习者而不是一个。他们用整体来做预测,而不是采用当前最优模型,这是我们留给未来的工作。然而,他们主要集中在学习者组件,而我们提供端到端的解决方案,从数据源,特征生成,学习,模型选择和预测。

7 未来工作 Future Work

​ 有许多途径可以解决与我们的自动流式机器学习系统有关的问题。流数据的特征生成带来了许多研究挑战,因为对于包含了高纬度的流数据来说即使是计算tokens之间的相似度这样简单的问题都会变得非常奢侈。动态地更改特征维度(扩展或收缩)并度量更改如何影响性能,这可能是一个有趣的方法。对复杂的特征进行有效的增量生成(例如,基于随时间变化的用户配置文件),将需要合并近似算法,以及它们背后的所有理论(错误边界等)。

​ 需要进一步的实验研究来探索与批大小有关的延迟和吞吐量之间的平衡。通过引入非线性模型(树、神经网络)和使用更大的数据集进行测试(以及其他任务),可以产生大量的改进。能够从多种信息流(文本、图像、视频)中学习可能会促成有趣的跨学科合作。

​ 为学习器以外的其他组件添加容错功能可能会让本项目更吸引其他用户。进一步探索的另一个途径是添加实时可视化小工具,以便轻松调试学习过程。

​ 这个项目的另一个有趣的扩展是支持对数据流的实时查询,并针对其他类型的学习问题,主要是无监督学习。

8 结论 Conclusion

​ 数据正在全球范围内大量产生。除了规模问题,数据的速度带来了新的基本挑战。因此,迫切需要新的工具和技术,能够有效地将流数据转换为有用的信息和知识。

​ 在本次工作中,我们提出了一种流式机器学习系统ASML,它通过实时自动切换模型来适应数据的变化。我们的初步实证结果显示,与传统的流动管道相比,前者通常只训练单个模型,但仍存在许多研究挑战。

鸣谢 Acknowledgments

特别感谢Tianqi Chen和Rahul Kidambi对项目的有益讨论。我们要感谢CSE544的教职员工在本学期的指导和支持。

9 参考文献 Reference

[1] D. J. Abadi, D. Carney, U. ¸ Cetintemel, M. Cherniack,
C. Convey, S. Lee, M. Stonebraker, N. Tatbul, and
S. Zdonik. Aurora: A new model and architecture for
data stream management. The VLDB Journal,
12(2):120–139, Aug. 2003.
[2] A. Bifet. Adaptive learning and mining for data
streams and frequent patterns. SIGKDD Explor.
Newsl., 11(1):55–56, Nov. 2009.
[3] L. Bottou. Large-scale machine learning with
stochastic gradient descent. In Y. Lechevallier and
G. Saporta, editors, Proceedings of the 19th
International Conference on Computational Statistics
(COMPSTAT’2010), pages 177–187, Paris, France,
August 2010. Springer.
[4] K. Crammer, O. Dekel, J. Keshet, S. Shalev-Shwartz,
and Y. Singer. Online passive-aggressive algorithms.
JOURNAL OF MACHINE LEARNING RESEARCH,
7:551–585, 2006.
[5] K. Crammer, A. Kulesza, and M. Drezde. Adaptive
regularization of weight vectors. In Advances in Neural
Information Processing System. 2009.
[6] S. de Rooij, T. van Erven, P. D. Grünwald, and W. M.
Koolen. Follow the leader if you can, hedge if you
must. CoRR, abs/1301.0534, 2013.
[7] T. G. Dietterich. Machine learning for sequential data:
A review. In Proceedings of the Joint IAPR
International Workshop on Structural, Syntactic, and
Statistical Pattern Recognition, pages 15–30, London,
UK, UK, 2002. Springer-Verlag.
[8] J. Duchi, E. Hazan, and Y. Singer. Adaptive
subgradient methods for online learning and stochastic
optimization. J. Mach. Learn. Res., 12:2121–2159,
July 2011.
[9] J. Gama, R. Sebasti˜ ao, and P. P. Rodrigues. On
evaluating stream learning algorithms. Machine
Learning, 90(3):317–346, 2013.
[10] A. Gionis, P. Indyk, R. Motwani, et al. Similarity
search in high dimensions via hashing. In VLDB,
volume 99, pages 518–529, 1999.
[11] M. J. Hosseini, Z. Ahmadi, and H. Beigy. Pool and
accuracy based stream classification: a new ensemble
algorithm on data stream classification using recurring

concepts detection. In Data Mining Workshops
(ICDMW), 2011 IEEE 11th International Conference
on, pages 588–595. IEEE, 2011

[12] M. J. Hosseini, A. Gholipour, and H. Beigy. An
ensemble of cluster-based classifiers for
semi-supervised classification of non-stationary data
streams. Knowledge and Information Systems, pages
1–31, 2015.
[13] H. B. McMahan. In AISTATS, pages 525–533.
JMLR.org.
[14] O. Media. Volume, velocity, variety: What you need
to know about big data, 2012.
http://www.forbes.com/sites/oreillymedia/2012/01/19/volume-
velocity-variety-what-you-need-to-know-about-big-
data/.
[15] S. Shalev-Shwartz. Online learning: Theory,
algorithms, and applications. Technical report, 2007.
[16] A. Toshniwal, S. Taneja, A. Shukla, K. Ramasamy,
J. M. Patel, S. Kulkarni, J. Jackson, K. Gade, M. Fu,
J. Donham, N. Bhagat, S. Mittal, and D. Ryaboy.
Storm@twitter. In Proceedings of the 2014 ACM
SIGMOD International Conference on Management of
Data, SIGMOD ’14, pages 147–156, New York, NY,
USA, 2014. ACM.
[17] K. Weinberger, A. Dasgupta, J. Langford, A. Smola,
and J. Attenberg. Feature hashing for large scale
multitask learning. In Proceedings of the 26th Annual
International Conference on Machine Learning, ICML
’09, pages 1113–1120, New York, NY, USA, 2009.
ACM.
[18] M. Zaharia, T. Das, H. Li, T. Hunter, S. Shenker, and
I. Stoica. Discretized streams: Fault-tolerant
streaming computation at scale. In Proceedings of the
Twenty-Fourth ACM Symposium on Operating
Systems Principles, SOSP ’13, pages 423–438, New
York, NY, USA, 2013. ACM.
a, T. Das, H. Li, T. Hunter, S. Shenker, and
I. Stoica. Discretized streams: Fault-tolerant
streaming computation at scale. In Proceedings of the
Twenty-Fourth ACM Symposium on Operating
Systems Principles, SOSP ’13, pages 423–438, New
York, NY, USA, 2013. ACM.

【翻译】ASML Automatic Streaming Machine Learning相关推荐

  1. 最详尽翻译:Rules of Machine Learning: Best Practices for ML Engineering

    原文地址:https://developers.google.com/machine-learning/rules-of-ml/ 作者:Martin Zinkevich ##前言 Google大佬Ma ...

  2. MLY翻译 -- 4.Scale drivers machine learning progress

    深度学习(神经网络)的很多想法已经存在几十年了,为什么这些想法现在才流行起来? 促使机器学习进来的进步的两大因素是: 可得到的数据.现在,人们会花费更多的时间在数字设备上(例如笔记本,手机).人们的数 ...

  3. 【论文翻译】Machine learning: Trends, perspectives, and prospects

    论文题目:Machine learning: Trends, perspectives, and prospects 论文来源:Machine learning: Trends, perspectiv ...

  4. 【论文翻译】Machine learning: Trends,perspectives, and prospects

    论文题目:Machine learning: Trends, perspectives, and prospects 论文来源:Machine learning: Trends, perspectiv ...

  5. Paper:《Multimodal Machine Learning: A Survey and Taxonomy,多模态机器学习:综述与分类》翻译与解读

    Paper:<Multimodal Machine Learning: A Survey and Taxonomy,多模态机器学习:综述与分类>翻译与解读 目录 <Multimoda ...

  6. 解密谷歌机器学习工程最佳实践——机器学习43条军规 翻译 2017年09月19日 10:54:58 98310 本文是对Rules of Machine Learning: Best Practice

    解密谷歌机器学习工程最佳实践--机器学习43条军规 翻译 2017年09月19日 10:54:58 983 1 0 本文是对Rules of Machine Learning: Best Practi ...

  7. AI:Algorithmia《2021 enterprise trends in machine learning 2021年机器学习的企业趋势》翻译与解读

    AI:Algorithmia<2021 enterprise trends in machine learning 2021年机器学习的企业趋势>翻译与解读 目录 <2021 ent ...

  8. AI:Algorithmia《2020 state of enterprise machine learning—2020年企业机器学习状况》翻译与解读

    AI:Algorithmia<2020 state of enterprise machine learning-2020年企业机器学习状况>翻译与解读 目录 <2020 state ...

  9. Paper:《A Few Useful Things to Know About Machine Learning—关于机器学习的一些有用的知识》翻译与解读

    Paper:<A Few Useful  Things to  Know About  Machine  Learning-关于机器学习的一些有用的知识>翻译与解读 目录 <A Fe ...

  10. AI:《Why is DevOps for Machine Learning so Different?—为什么机器学习的 DevOps 如此不同?》翻译与解读

    AI:<Why is DevOps for Machine Learning so Different?-为什么机器学习的 DevOps 如此不同?>翻译与解读 目录 <Why is ...

最新文章

  1. C语言程序设计 细节总结(链表)
  2. linux透明加密系统,基于Linux的透明加密系统的设计与实现
  3. 头条的_signature这个如何_今日头条详细页面的cookie加密
  4. java 编译时找不到同一包中的文件_Java基础笔试练习(七)
  5. freemarker 异常处理
  6. 正则表达式matlab,正则表达式中一个word的匹配 @MATLAB - 优秀的Free OS(Linux)版 - 北大未名BBS...
  7. Win10系统hosts文件不见了的解决方法
  8. 添加用户到sudoers
  9. 用JavaScript添加选择按钮的背景颜色和juqery添加选择按钮的背景色
  10. DB9串口线定义的解析
  11. 响应“交通强国”战略,百度地图重构行业生态价值
  12. 全文检索——Lucene
  13. 深度学习进阶课程16---用ReL解决Vanishing Gradient问题
  14. 从C端市场延伸至B端业务拓展,流利说深耕行业英语价值几何?
  15. sql server 使用drop column 列名 删除列时报错,由于一个或多个对象访问此 列,ALTER TABLE DROP COLUMN stu_cou_num 失败
  16. C语言作业——歌手比赛系统
  17. 手机通讯原理的工作原理
  18. MySQL 联合索引(复合索引)详解
  19. 微信支付服务商的子商户在没有绑定appid,正常使用微信支付功能的方法
  20. matlab读数据写入excel文件路径,MATLAB读取和写入Excel文件

热门文章

  1. 网银支付 加密解密说明
  2. Java学习指南(15) 链表
  3. ASC18世界超算大赛的三大变化与一大不变丨Xtecher观察
  4. 蓝桥杯:合唱队形(C语言)
  5. C++经典编程题目(九)玩火柴棍游戏
  6. 敏捷史话(三):笃定前行的勇者——Ken Schwaber
  7. VMWare虚拟机启动img文件
  8. Unity3D基础知识——遍历子物体
  9. 云计算与大数据——数据中心
  10. 2017-2018 Petrozavodsk Winter Training Camp, Saratov SU Contest C.Cover the Paths 贪心+DFS