交大ACM班畢業(yè)生在Google的新工作:自動(dòng)寫(xiě)Excel的表格公式
表格版的公式生成器來(lái)了!交大ACM班畢業(yè)生,伯克利博士陳昕昀在Google帶來(lái)了她在ICML 2021的新工作,能夠自動(dòng)幫你補(bǔ)全公式,準(zhǔn)確率在測(cè)試階段已達(dá)57.4%。目前Google Sheets已上線該功能,快去試用吧!
Excel可以說(shuō)是最熟悉的陌生人了,每天都在使用,但高級(jí)用法卻說(shuō)不上來(lái)幾個(gè)。
寫(xiě)公式就是Excel的一個(gè)重要功能,公式可以讓用戶對(duì)數(shù)據(jù)進(jìn)行復(fù)雜的分析和轉(zhuǎn)換。但盡管表格中的公式語(yǔ)言比編程語(yǔ)言更容易學(xué)習(xí),但編寫(xiě)這些公式仍然很復(fù)雜,并且一個(gè)符號(hào)沒(méi)注意可能就會(huì)導(dǎo)致錯(cuò)誤。
Google在2014年時(shí)開(kāi)發(fā)了一個(gè)工具Smart Autofill,能夠自動(dòng)識(shí)別表格的pattern來(lái)填充每一列的缺失值,主要方法使用機(jī)器學(xué)習(xí)算法來(lái)預(yù)測(cè)新數(shù)據(jù)。
例如,一個(gè)表格中包含了所用車(chē)輛的四個(gè)特征:年份、英里數(shù)、車(chē)門(mén)數(shù)和車(chē)輛類(lèi)型(汽車(chē)或卡車(chē)),根據(jù)這四個(gè)特征制定車(chē)輛的價(jià)格。這是一個(gè)典型的數(shù)據(jù)分析預(yù)測(cè)的場(chǎng)景,可以使用算法根據(jù)表格內(nèi)已經(jīng)提供的數(shù)據(jù)(作為訓(xùn)練集)來(lái)估計(jì)缺失的價(jià)格。

這個(gè)工具雖好,但它卻無(wú)法學(xué)習(xí)到復(fù)雜的公式,并且人工修正也十分麻煩。
時(shí)間來(lái)到2021年,借助BERT在序列模型上的威力,Google在ICML 2021上提出了一個(gè)新模型,能夠基于目標(biāo)單元周?chē)纳舷挛淖詣?dòng)生成公式。

論文的第一作者是陳昕昀,目前是加州大學(xué)伯克利分校的在讀博士,由Dawn Song教授指導(dǎo)。本科畢業(yè)于上海交通大學(xué)ACM班,獲得計(jì)算機(jī)科學(xué)學(xué)士學(xué)位。目前是Deepmind的一名研究實(shí)習(xí)生,曾于2019年、2020年在Google Brain做實(shí)習(xí)生。主要研究興趣包括神經(jīng)網(wǎng)絡(luò)程序綜合和對(duì)抗機(jī)器學(xué)習(xí)。
當(dāng)用戶開(kāi)始在目標(biāo)單元格中編寫(xiě)帶有「=」符號(hào)的公式時(shí),系統(tǒng)通過(guò)學(xué)習(xí)歷史表格中公式的模式,為該單元格生成可能的相關(guān)公式。該模型使用目標(biāo)單元格的相鄰行和列中的數(shù)據(jù)以及標(biāo)題行作為上下文。
它首先將相鄰單元和標(biāo)題單元組成的表格的上下文結(jié)構(gòu)編碼為一個(gè)embedding,然后使用該上下文嵌入生成所需的表格公式。
公式生成部分包括兩個(gè)組件:
- 運(yùn)算符序列(例如,sum、if等);
- 應(yīng)用運(yùn)算符的表格范圍(例如A2:A10)。
目前Google Sheets 的用戶已經(jīng)可以正式使用這個(gè)功能了!

模型使用的架構(gòu)仍然是encoder-decoder,這個(gè)結(jié)構(gòu)也讓研究人員能夠靈活地將多種類(lèi)型的上下文信息(例如包含在相鄰行、列、標(biāo)題等中)嵌入到編碼器中,解碼器可以使用該結(jié)構(gòu)生成所需的公式。
為了計(jì)算表格上下文的embedding,它首先使用基于BERT的模型架構(gòu)對(duì)目標(biāo)單元附近的多行(以及標(biāo)題行)進(jìn)行編碼。每個(gè)單元格中的內(nèi)容包括其數(shù)據(jù)類(lèi)型(如數(shù)字、字符串等)和值,同一行中的單元格內(nèi)容被級(jí)聯(lián)到一個(gè)token序列中以便輸入到BERT encoder。
類(lèi)似地,模型還會(huì)對(duì)目標(biāo)單元格左側(cè)和右側(cè)的幾列進(jìn)行編碼,然后在兩個(gè) BERT 編碼器上執(zhí)行行和列卷積以計(jì)算上下文的聚合表示。
解碼器則使用LSTM生成所需的目標(biāo)公式作為token序列。首先模型預(yù)測(cè)出由公式運(yùn)算符組成的公式結(jié)構(gòu)(formula-sketch),然后使用與目標(biāo)單元格相關(guān)的單元格地址生成相應(yīng)的范圍。
模型還利用注意力機(jī)制來(lái)計(jì)算表頭和單元數(shù)據(jù)上的注意力向量,在做出預(yù)測(cè)之前,直接將這些注意力向量連接到LSTM輸出層。

除了利用相鄰行和列中的數(shù)據(jù)外,該模型還利用來(lái)自頂層工作表結(jié)構(gòu)(如標(biāo)題)的其他信息,使用tpu進(jìn)行模型預(yù)測(cè),從而保證了以低延遲的效果生成公式建議,并且能夠在較少的機(jī)器上處理更多的請(qǐng)求。

模型的訓(xùn)練數(shù)據(jù)集主要是一個(gè)由Google創(chuàng)建并與Google共享的電子表格語(yǔ)料庫(kù)。數(shù)據(jù)集包含4.6萬(wàn)張谷歌表格,其中4.2萬(wàn)張用于訓(xùn)練,2300張用于驗(yàn)證,1700張用于測(cè)試。
實(shí)驗(yàn)結(jié)果表明,該模型具有42.5%的完整公式精度和57.4%的完整公式框架精度,這兩個(gè)指標(biāo)的準(zhǔn)確率足夠高,足以支撐產(chǎn)品上線服務(wù)于初期用戶。并且隨著產(chǎn)品收集到更多數(shù)據(jù),精度肯定還會(huì)上升。
研究人員還進(jìn)行了一項(xiàng)消融實(shí)驗(yàn),通過(guò)去除不同的組件來(lái)測(cè)試模型的幾種簡(jiǎn)化版本,發(fā)現(xiàn)基于行和列的上下文嵌入以及標(biāo)題信息對(duì)模型的性能至關(guān)重要。

未來(lái)可能會(huì)有更多基于這方面的研究,包括設(shè)計(jì)新的模型架構(gòu)來(lái)合并更多表格結(jié)構(gòu),以及擴(kuò)展模型以支持電子表格中bug檢測(cè)和自動(dòng)圖表創(chuàng)建等更多應(yīng)用。