当前位置: 首页 > 科技观察

交大ACM班毕业生谷歌新工作:自动编写Excel表格公式的公式生成器

时间:2023-03-18 20:44:21 科技观察

表格版来了!交大ACM班毕业生陈馨云,伯克利陈馨云博士带来了ICML2021的新工作谷歌,可以自动为你补全公式,测试准确率达到57.4%阶段。目前GoogleSheets已经上线了这个功能,快去试试吧!Excel可以说是最熟悉的陌生人了。天天用,高级用法不多。写公式是Excel的一个重要功能。公式允许用户执行复杂的数据分析和转换。但是,尽管表格中的公式语言比编程语言更容易学习,但编写这些公式仍然很复杂,未注意到的单个符号可能会导致错误。谷歌在2014年开发了一个工具SmartAutofill,可以自动识别表格的模式来填充每一列的缺失值。主要方法使用机器学习算法来预测新数据。例如,一张表包含使用车辆的四个特征:年份、里程、门数和车辆类型(轿车或卡车),车辆的价格是根据这四个特征确定的。这是一个典型的数据分析和预测场景。算法可用于根据表中已提供的数据(作为训练集)估算缺失的价格。这个工具虽然好,但是复杂的公式学不会,手动批改也很麻烦。时间到了2021年,借助BERT在序列模型上的威力,谷歌在ICML2021上提出了一种新模型,可以根据目标单元周围的上下文自动生成公式。论文第一作者陈新云,目前在加州大学伯克利分校攻读博士学位,师从DawnSong教授。毕业于上海交通大学ACM班,获计算机学士学位。目前在Deepmind实习研究,2019年和2020年在GoogleBrain实习。主要研究兴趣包括神经网络程序合成和对抗机器学习。当用户开始在目标单元格中??编写带有“=”符号的公式时,系统会通过学习历史表中公式的模式为该单元格生成可能的相关公式。该模型使用目标单元格的相邻行和列中的数据以及标题行作为上下文。它首先将由相邻单元格和标题单元格组成的表格的上下文结构编码成一个嵌入,然后使用这个上下文嵌入来生成所需的表格公式。公式生成部分由两部分组成:运算符序列(例如,sum、if等);以及应用运算符的表格范围(例如,A2:A10)。目前GoogleSheets用户可以正式使用此功能!该模型使用的架构仍然是encoder-decoder。这种结构还允许研究人员灵活地将多种类型的上下文信息(例如包含在相邻的行、列、标题等中)嵌入到编码器中。解码器可以使用这种结构生成所需的公式。为了计算表格上下文的嵌入,它首先使用基于BERT的模型架构对目标单元格附近的多行(和标题行)进行编码。每个单元格中的内容包括其数据类型(如数字、字符串等)和值,同一行的单元格内容被拼接成一个token序列,输入到BERT编码器。类似地,该模型还对目标单元格左右两侧的几列进行编码,然后在两个BERT编码器上执行行和列卷积以计算上下文的聚合表示。解码器使用LSTM生成所需的目标公式作为标记序列。首先,模型预测由公式运算符组成的公式结构(formula-sketch),然后使用与目标单元格相关的单元格地址生成对应的范围。该模型还利用注意力机制计算标题和单元格数据上的注意力向量,并在进行预测之前将这些注意力向量直接连接到LSTM输出层。除了利用相邻行和列中的数据,该模型还利用来自顶级表结构(例如标题)的附加信息,使用TPU进行模型预测,这保证了公式建议的低延迟生成和处理能力更少的机器上的更多请求。该模型的训练数据集主要是由Google创建并与Google共享的电子表格语料库。该数据集包含46,000个GoogleSheets,其中42,000个用于训练,2,300个用于验证,1,700个用于测试。实验结果表明,该模型的公式完整准确率为42.5%,公式框完整准确率为57.4%。这两个指标的准确度足够高,足以支持产品上线和服务初始用户。随着产品收集更多数据,准确性肯定会提高。研究人员还进行了一项消融实验,通过删除不同的组件来测试模型的几个简化版本,并发现基于行和列的上下文嵌入以及标题信息对模型的性能至关重要。未来可能会有更多基于此的研究,包括设计新的模型架构以包含更多表格结构,以及扩展模型以支持更多应用程序,例如电子表格中的错误检测和自动图表创建。