窝牛号

利用机器学习预测电子表格中的公式,大大提升excel处理数据能力

数以亿计的人使用电子表格,这些电子表格中的公式允许用户对其数据执行复杂的分析和转换。尽管公式语言比通用编程语言更简单,但编写这些公式仍然很乏味且容易出错,尤其是对于最终用户而言。Google以前开发过工具来理解电子表格数据中的模式以自动填充列中的缺失值,但它们的构建并不是为了支持编写公式的过程。

在ICML 2021 上发表的“ SpreadsheetCoder:来自半结构化上下文的公式预测”中,Google描述了一种新模型,该模型学习基于目标单元格周围的丰富上下文自动生成公式。当用户开始在目标单元格中??编写带有“=”符号的公式时,系统会通过学习历史电子表格中的公式模式为该单元格生成可能的相关公式。该模型使用存在于目标单元格的相邻行和列中的数据以及标题行作为上下文。它首先嵌入电子表格表格的上下文结构(由相邻单元格和标题单元格组成),然后使用此上下文嵌入生成所需的电子表格公式。该公式由两个组成部分生成:1) 运算符的序列(例如,SUM、IF 等),以及 2)应用运算符的相应范围(例如,“A2:A10”)。通常可供Google 表格用户使用。

假设用户打算在单元格 B7、C7 和 D7 中输入公式,系统会自动推断用户可能想在这些单元格中写入的最可能的公式。

给定目标单元格 (D4),模型使用标题和周围单元格值作为上下文来生成由相应的运算符序列和范围组成的目标公式。

模型架构

该模型使用编码器-解码器架构,允许灵活地在编码器中嵌入多种类型的上下文信息(例如包含在相邻行、列、标题等中的信息),解码器可以使用这些信息生成所需的公式. 为了计算表格上下文的嵌入,它首先使用BERT-基于架构对目标单元格上方和下方的几行(连同标题行)进行编码。每个单元格中的内容包括其数据类型(如数字、字符串等)及其值,同一行中的单元格内容连接在一起形成一个令牌序列,然后使用 BERT 编码器进行嵌入。类似地,它对目标单元格左侧和右侧的几列进行编码。最后,它在两个 BERT 编码器上执行行和列卷积以计算上下文的聚合表示。

解码器使用长短期记忆(LSTM) 架构通过首先预测公式草图(由没有范围的公式运算符组成)然后使用相对于目标细胞。它还利用注意力机制来计算头部和单元数据上的注意力向量,这些向量在进行预测之前连接到 LSTM 输出层。

公式预测模型的整体架构

除了存在于相邻行和列中的数据之外,该模型还利用来自高级工作表结构的其他信息,例如标题。使用TPU进行模型预测,Google确保生成公式建议的延迟很低,并且能够在更少的机器上处理更多的请求。

利用高级电子表格结构,该模型可以学习跨越数千行的范围。

在论文中,Google在由 Google 员工创建并与 Google 员工共享的电子表格语料库上训练模型。Google将带有公式的 46k 谷歌表格分成 42k 用于训练,2.3k 用于验证,1.7k 用于测试。该模型实现了 42.5% 的top-1完整公式准确度和 57.4% 的 top-1 公式草图准确度,Google发现这两者都足够高,在Google最初的用户研究中非常有用。Google进行了一项消融研究,其中Google通过删除不同的组件来测试模型的几种简化,并发现具有基于行和列的上下文嵌入以及标题信息对于模型的良好执行很重要。

随着目标公式长度的增加,Google模型的不同消融的性能。

Google的模型说明了学习表示电子表格表格的二维关系结构以及高级结构信息(例如表格标题)以促进公式预测的好处。有几个令人兴奋的研究方向,包括设计新模型架构以合并更多表格结构以及扩展模型以支持更多应用程序,例如错误检测和电子表格中的自动图表创建。Google也期待看到用户如何使用此功能并从反馈中学习以进行未来改进。

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除

窝牛号 wwww.93ysy.com   沪ICP备2021036305号-1