Google BigQuery 中的机器学习

文 / 纽约市 Google AI 研究员 Umar Syed 和 Sergei Vassilvitskii

来源 | 谷歌开发者 Google_Developers

Google BigQuery 支持大型数据集的交互式分析,可协助企业轻松分享有意义的数据分析,并基于客户分析开发相应解决方案。不过,许多企业虽采用 BigQuery,却未借助机器学习来更有效地理解企业产生的各项数据。原因在于,精通 SQL 的数据分析师可能不具备应用机器学习技术所需的传统数据科学背景。

今天,我们宣布推出 BigQuery ML,这是 BigQuery 内含的一项功能,可让数据科学家和分析师根据大规模结构化或半结构化数据集构建并部署机器学习模型。BigQuery ML 是一组简单的 SQL 语言扩展程序,支持用户利用热门的 ML 功能,执行预测性分析(例如预测销售额)以及在已有数据存储的源头处创建客户细分。此外,BigQuery ML 还会自动设置智能默认选项及执行数据转换,以出色结果提供无缝顺畅的使用体验。

在设计 BigQuery ML 后端时,开发团队曾面临窘境。在将大量数据从 BigQuery 服务器传输至运行机器学习算法的专用服务器时,整个过程不仅耗时,而且会因安全和隐私方面的问题产生间接费用。然而,由于梯度下降法(机器学习算法工作负载的优化方法)的核心组件可通过常见的 SQL 操作来实现*,因此我们得以将现有的 BigQuery SQL 处理引擎改作 BigQuery ML 之用。

BigQuery 引擎的设计宗旨在于有效扫描大型数据集,而非从中随机抽取小型样本,因此 BigQuery ML 是以标准(批量)梯度下降法为基础,而非随机梯度下降法。在当今的大规模机器学习系统中,随机梯度下降法虽更为常见,但批量梯度下降法却具有诸多实用优势。

例如,基于随机梯度下降法的数据库内机器学习系统可逐一处理示例,而在数据次优排序时的表现却不尽如人意。但是,BigQuery 通常在磁盘上分配数据,以便优化常规 SQL 查询的性能,而为支持随机机器学习算法对数据进行的连续再分配,却会带来高昂的计算成本。相比之下,批量梯度下降法不会受到磁盘数据排序和分区的干扰,因此可以完全规避该问题。此外,批量梯度下降法还可结合使用经典优化法中的线搜索方法,进而产生更稳定且需更少微调的学习算法。而线搜索与随机梯度下降法的结合则更为复杂。我们还实现了对正则化和预处理的支持。如需了解更多详情,请参阅我们的论文。

希望您能了解,BigQuery ML 可用于执行诸多预测分析任务。如需试用,请访问 BigQuery 控制台,并遵照用户指南中的相关指示。创建模型易如反掌: CREATE MODEL dataset.model_name OPTIONS(model_type=’linear_reg’, input_label_cols=[‘input_label’]) AS SELECT * FROM input_table; 注:BigQuery 控制台链接 console.cloud.google.com/bigquery?pl… 用户指南链接 cloud.google.com/bigquery/do…

今后,我们计划在实施梯度下降时与 BigQuery 基础架构进一步整合,以实现更显著的性能提升。我们还将继续探索其他机器学习算法,以便用户能够轻松高效地实施这些算法,并借助 BigQuery 的强大功能应对大型问题。

猜你喜欢

转载自juejin.im/post/5b88fa875188254303670f8f