从梯度提升树到分布式机器学习算法

news/2025/10/10 23:10:42/文章来源:https://www.cnblogs.com/codeshare1135/p/19134051

从实习生到应用科学家:分布式机器学习算法的突破

在早期购物数据分析研究中,人们发现尿布和啤酒经常被同时购买。当时还是计算机科学本科生的Theodore Vasiloudis从教授那里听到这个案例后,对数据关联性产生了浓厚兴趣:“通过聚合多个用户的数据,能够提取出如此奇特且意想不到的规律,这让我非常着迷。”

这门课程激励Vasiloudis将学习方向转向机器学习。他于2012年离开希腊,前往瑞典斯德哥尔摩的KTH皇家理工学院学习,当时该校是欧洲少数开设机器学习硕士项目的院校之一。完成关于情境感知推荐的论文后,他在瑞典计算机科学学院任职期间攻读工业博士学位。

在博士最后几年,Vasiloudis在某中心完成了两次暑期实习。其中一次实习促成发表了获奖研究论文《块分布梯度提升树》。在这篇论文中,Vasiloudis与同事描述了开发的新算法,该算法能够大幅降低训练大规模稀疏数据集的通信成本。

梯度提升树算法的通信瓶颈

梯度提升树旨在处理非常大的数据集,是最流行的机器学习算法之一,在学术界和工业界得到广泛应用。然而,当处理超大规模数据集时,通常需要使用多台计算机。

以文本分类为例,假设文本是某人的贷款申请。如果文本中的每个可能单词都是一个特征,那么可能会有数百万个特征,因为词汇量实际上是无限的。因此,当尝试在多台计算机(可能是一百台、一千台甚至更多)之间共享模型训练时,经常会遇到问题,因为与数据集相比,它们都在竞争少量的带宽。

先前系统的通信效率不高,因为它们浪费了大量带宽传输冗余信息。许多真实世界的数据集非常稀疏。在稀疏数据集中,大多数特征实际上为零。以前的系统仍然通过网络发送这些零值,消耗了大量不必要的带宽。而如果只通过网络发送非零值,就能节省通信成本和带宽。这就是核心思想。

解决稀疏数据集的创新方案

需要解决两个问题:一个关于预测,另一个关于训练。可以将数据集想象成一个矩阵。它有一系列行(记录),例如贷款申请文档。每个记录都有许多特征,即文档中的单词。因此,可能有数百万个文档和数百万个特征。

在以前的系统中,它们只沿记录维度对数据集进行分区。它们会将一些文档放在一台计算机中,将另一些放在另一台计算机中,然后进行训练和同步。但是,如果想要真正加速这个过程,实际上可以将文档的一部分存储在一台计算机中,将另一部分存储在另一台计算机中。这称为块分布。

现在不是从同一矩阵中获取多行并将它们存储在同一计算机中,而是从该矩阵中获取一个块(几行和几列)并将其放入一台计算机中。这意味着需要进行一些额外的通信来进行预测。

为此使用了名为Quickscorer的现有算法,该算法最初设计用于完全不同的目的,即在本地加速预测过程。但完全相同的方法可以实现非常快速的分布式预测,并修改了该算法以适应具体用例。这就是预测问题的解决方案。

对于训练,采用了类似的方法,只发送给定块所需的记录数量和特征数量,然后使用聚合步骤来完成训练。这项工作为未来的生产系统提供了良好方向。超大型数据集的通信模式应该比当前使用的模式更加灵活。

实习经验与职业建议

在实习期间学到的关键一点是编写高质量代码的重要性。编写研究代码时的一个常见问题是,在没有确保一切以正式方式工作的情况下就继续推进。而为公司编写代码时,需要证明并确保代码在任何情况下都能正常工作。这是某中心领导原则之一:必须坚持最高标准。

对于希望获得全职工作的实习生来说,与招聘经理的定期沟通非常重要,因为需要不断了解自己是否在获得全职录用的正确轨道上。每两周与招聘经理进行一次沟通,可以确认是否应该做更多工作,是否在工作进度方面达到目标,以及是否在工作中体现了领导原则。

重视独立性和自我驱动能力。如果在实习结束时以发表论文为目标并追求发表,那是非常好的。例如,在实习结束后完成了论文写作,如果没有推动这件事,就不会发表这篇论文,也就不会获得这个奖项。与经理合作确保在完成实习前获得发表论文所需的所有必要批准非常重要,因为发表高质量论文对于科学家和博士生来说都是职业生涯中的重要一步。当能够访问某中心的基础设施和数据集时,这是一个独特的机会。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/934468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iPhone手机越狱后出现闪退的解决方法

unc0ver7.0.2越狱工具发布以来,很多 iPhone用户都在使用自己的设备越狱,这次发布的越狱工具支持系统有: iOS11到14.5.1版本。 可是!当前越狱不如以往越狱时代那么爽,首先不要说unc0ver越狱工具依赖证书掉签(最近没…

企业推行 OKR 的 10 个关键问题

在企业管理领域,OKR(目标与关键成果法)凭借其对目标聚焦和团队协同的强大推动作用,逐渐成为众多企业的选择。然而,在实际推行过程中,不少企业会遭遇各种难题,影响 OKR 的实施效果。以下为你梳理企业推行 OKR 的…

(四)React+.Net+Typescript全栈(错误处理) - 指南

(四)React+.Net+Typescript全栈(错误处理) - 指南2025-10-10 22:58 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; di…

读《构建之法》后的六个问题

《现代软件工程》课程|个人博客作业一 先说学校的教学与师生关系 读完邹老师的《对 IT 教育的反馈》和《课程特点》,我把自己这几年最直观的感受先摊开。多数课程还是“讲授驱动”的:老师给出标准答案与“正确做法”…

自动输入小程序

打字机模拟器 一个简单的Python工具,可以将输入的文本以模拟键盘打字的形式输出到当前光标位置,直接模拟键盘按键操作。可以用于尽可以复制而不能粘贴的情况,例如某一些学习平台任务,用来提高作业完成效率。 功能特…

实用指南:基于阿里云系列平台的python微服务设计与DevOps实践

实用指南:基于阿里云系列平台的python微服务设计与DevOps实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

学习意志:“柚子曲线”与圆的交点个数的代数证明

题目 已知 \(C_1:x^2+y^2=a\),\(C_2:x^2+xy+y^2=x^4+x^3y+x^2y^2+xy^3+y^4\),求 \(|C_1 \cap C_2|\)。(By \(\text{Geometry11}\)) 解答(by \(\text{2021hych}\)) 解:考虑一个线性变换 \(\rho :\mathbb{R}^2 \to \m…

Jenkins运维之路(共享库集成流水线发布) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

使用命令行删除 Windows 网络映射驱动器

前言 不得不吐槽一下,Windows 的体验真是依托答辩 我从大学时就在喷 Windows 垃圾,没想到现在还这么烂🤣最近升级了 NAS 之前这三个网络映射盘 (W:, X:, Y:) 是通过 SMB 映射到 TKL FileServer 现在迁移到 TrueNAS…

实验报告4(使用顺序表和单链表,进行有序表的合并)

一、实验目的: 熟练使用顺序表和单链表,进行有序表的合并。 二、实验仪器或设备: 操作系统:Windows11 编程环境:Dev-cpp 5.11 三、算法总体设计 (一)使用单链表进行有序表的合并 1. 打印链表 2. 合并两个有序链表 …

20232314 2025-2026-1 《网络与系统攻防技术》实验一实验报告

1.实验内容通过修改可执行文件,改变程序执行流程,跳转到getShell函数。 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。 注入一个自己制作的shellcode并运行这段shellcode。2.实验…

详细介绍:【Windows10】MySQL9.4安装配置

详细介绍:【Windows10】MySQL9.4安装配置pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

ChatTime的一些理解

我先在 ChatTime 目录里全局搜索与“文本/时间序列/提示/特殊标记”相关的关键词,锁定模型如何区分两类输入与输出的代码位置,然后打开关键文件精读以回答你的问题。 搜索 time series|timeseries|time-series|时间序…

ChatTS的一些理解

Dingxingdi: 请你仔细阅读/workspace/ChatTS里面的文件,理解他们的含义逻辑和结构。现在我需要你告诉我,ChatTS在处理一段既包含文本又包含时间序列的输入的时候,是怎么精确地分别哪些是文本哪些是时序,从而对两者…

2025秋_9

今天依旧Java

10月10日

上午英语课学第三单元,下午写数据结构作业

[P2201 数列编辑器 // HDU-4699 Editor] 题解

lougu 看不到,遂写博客 题目描述 小 Z 是一个爱好数学的小学生。最近,他在研究一些关于整数数列的性质。为了方便他的研究,小 Z 希望实现一个叫做 "Open Continuous Lines Processor" 的数列编辑器。 一开…

centos网络打流测试 - 指南

centos网络打流测试 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", …

一生一芯学习:基础设施(2)

一生一芯学习:基础设施(2)指令执行的踪迹 - itrace 首先写好一个环形缓冲区的代码,把反汇编的字符串存到环形缓冲区中,然后执行完代码在打印出来。 #include <stdio.h> #include <stdlib.h> #include &…

实验报告3(使用单链表简单实现图书管理系统)

一、实验目的: 使用单链表实现案例2.3的图书管理系统,要求实现查找、插入、删除和计数功能。要求包含主函数,用c语言或者c++实现。 二、实验仪器或设备: 操作系统:Windows11 编程环境:Dev-cpp 5.11 三、算法总体…