从实习生到应用科学家:分布式机器学习算法的突破
在早期购物数据分析研究中,人们发现尿布和啤酒经常被同时购买。当时还是计算机科学本科生的Theodore Vasiloudis从教授那里听到这个案例后,对数据关联性产生了浓厚兴趣:“通过聚合多个用户的数据,能够提取出如此奇特且意想不到的规律,这让我非常着迷。”
这门课程激励Vasiloudis将学习方向转向机器学习。他于2012年离开希腊,前往瑞典斯德哥尔摩的KTH皇家理工学院学习,当时该校是欧洲少数开设机器学习硕士项目的院校之一。完成关于情境感知推荐的论文后,他在瑞典计算机科学学院任职期间攻读工业博士学位。
在博士最后几年,Vasiloudis在某中心完成了两次暑期实习。其中一次实习促成发表了获奖研究论文《块分布梯度提升树》。在这篇论文中,Vasiloudis与同事描述了开发的新算法,该算法能够大幅降低训练大规模稀疏数据集的通信成本。
梯度提升树算法的通信瓶颈
梯度提升树旨在处理非常大的数据集,是最流行的机器学习算法之一,在学术界和工业界得到广泛应用。然而,当处理超大规模数据集时,通常需要使用多台计算机。
以文本分类为例,假设文本是某人的贷款申请。如果文本中的每个可能单词都是一个特征,那么可能会有数百万个特征,因为词汇量实际上是无限的。因此,当尝试在多台计算机(可能是一百台、一千台甚至更多)之间共享模型训练时,经常会遇到问题,因为与数据集相比,它们都在竞争少量的带宽。
先前系统的通信效率不高,因为它们浪费了大量带宽传输冗余信息。许多真实世界的数据集非常稀疏。在稀疏数据集中,大多数特征实际上为零。以前的系统仍然通过网络发送这些零值,消耗了大量不必要的带宽。而如果只通过网络发送非零值,就能节省通信成本和带宽。这就是核心思想。
解决稀疏数据集的创新方案
需要解决两个问题:一个关于预测,另一个关于训练。可以将数据集想象成一个矩阵。它有一系列行(记录),例如贷款申请文档。每个记录都有许多特征,即文档中的单词。因此,可能有数百万个文档和数百万个特征。
在以前的系统中,它们只沿记录维度对数据集进行分区。它们会将一些文档放在一台计算机中,将另一些放在另一台计算机中,然后进行训练和同步。但是,如果想要真正加速这个过程,实际上可以将文档的一部分存储在一台计算机中,将另一部分存储在另一台计算机中。这称为块分布。
现在不是从同一矩阵中获取多行并将它们存储在同一计算机中,而是从该矩阵中获取一个块(几行和几列)并将其放入一台计算机中。这意味着需要进行一些额外的通信来进行预测。
为此使用了名为Quickscorer的现有算法,该算法最初设计用于完全不同的目的,即在本地加速预测过程。但完全相同的方法可以实现非常快速的分布式预测,并修改了该算法以适应具体用例。这就是预测问题的解决方案。
对于训练,采用了类似的方法,只发送给定块所需的记录数量和特征数量,然后使用聚合步骤来完成训练。这项工作为未来的生产系统提供了良好方向。超大型数据集的通信模式应该比当前使用的模式更加灵活。
实习经验与职业建议
在实习期间学到的关键一点是编写高质量代码的重要性。编写研究代码时的一个常见问题是,在没有确保一切以正式方式工作的情况下就继续推进。而为公司编写代码时,需要证明并确保代码在任何情况下都能正常工作。这是某中心领导原则之一:必须坚持最高标准。
对于希望获得全职工作的实习生来说,与招聘经理的定期沟通非常重要,因为需要不断了解自己是否在获得全职录用的正确轨道上。每两周与招聘经理进行一次沟通,可以确认是否应该做更多工作,是否在工作进度方面达到目标,以及是否在工作中体现了领导原则。
重视独立性和自我驱动能力。如果在实习结束时以发表论文为目标并追求发表,那是非常好的。例如,在实习结束后完成了论文写作,如果没有推动这件事,就不会发表这篇论文,也就不会获得这个奖项。与经理合作确保在完成实习前获得发表论文所需的所有必要批准非常重要,因为发表高质量论文对于科学家和博士生来说都是职业生涯中的重要一步。当能够访问某中心的基础设施和数据集时,这是一个独特的机会。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
公众号二维码
公众号二维码