NLP模型能够表示文本,那能够识别数字吗?本系列旨在介绍NLP模型中的数字表示,参考的是南加州大学在NAACL2021发表的文章:Representing Numbers in NLP: a Survey and a Vision
论文链接:https://arxiv.org/pdf/2103.13136v1.pdf
好久没有在公众号上更新文章了,希望能把阅读文章和总结的习惯继续捡起来。本文是 Numbers在NLP模型中的表示 综述的第一部分,后续还需继续更新。本文第一部分介绍的是测试各种模型计算能力的任务(模型的数学考试任务)和目前使用的方法,第二部分则是介绍各种模型是如何进行数字表达的(模型中的数字表示方法)以及目前使用的方法。
背景介绍
数字在自然语言中是很普遍的存在。日常交流中同样经常使用到数字,比如买菜的时候和大妈讨价还价,这时候你不但需要通过理解大妈的话揣测她心里的最低价位,还需要在心里对比自己的心理价位,并用话术使二者无限逼近。菜市场不愧是现代心理学和博弈论的实践战场。
如果让AI来和菜市场大妈讨价还价是否可能呢? AI目前对于自然语言中的纯文本理解已经达到了一个很高的水平,但是对于数字的理解水平还不太够。
以往的工作在文本预处理的时候把数字直接丢弃。BERT一类模型中用的BPE[1]和WordPiece[2]不会丢弃数字,但是会把数字拆开,比如1234->12-34或者1-234。
最近的一些工作指出了前人研究中对数字处理的不合理之处,比如在AI2提出的DROP问答数据集中,当答案是一个数字而不是一段文本时,BERT的表现变差了5倍[3]。但是如果把数字从sub-words level转换到word level,或者使用科学计数法表示数字,又能提升模型的效果[4][5]。那到底模型应该如何表示数字,以及如何判别模型识别数字的能力呢?
模型的数学考试任务
从认知科学的角度出发,本文介绍论文中提到的通过两个维度来设计测试模型计算能力的任务:
(1)程度;程度主要分为表示精确(Exact)的程度(birds have two legs)和表示大致(Approx)的程度(Jon is about 180 cms tall);
(2)单位;单位主要分为抽象(Abstract)单位(2+3=5)和现实(Grounded)单位(2个苹果+3个苹果=5个苹果)。对于抽象单位的数学任务很容易创建数据集,但现实单位的数字不同,因为它们的理解通常需要结合单词的上下文。比如“ I woke up at 11 ” 和 “ I earn $11 per month ”中的“ 11 ”就不是一个意思,需要结合上下文理解。
现有工作
表1根据测试任务的分类,分别作为横纵坐标整理了7类现有工作:
Simple Arithmetic(简单的算术):指的是单独对数字进行加法、减法等运算的任务。通过一些现有的语言模型[4][6]可以很方便的构建数据集。
Numeration(数值计算):指的是将字符串形式映射为其具体数值的任务。比如将string类型的19表示为float 19.0。该任务在NLP中通常使用相应embedding的freeze(static[7]和contextualized[8])结合基于线性回归分类作为probing task来验证模型相应的能力。
Magnitude:数量级比较。指的是一种判断两个(或多个)数字中哪个更大的能力。该任务同样可以建模为一个二分类任务[7][8],例如,给定23和32,选择标签1表示32 > 23。
AWP:算术应用题(AWP)是从学校教科书中获取的基本算术的数据,例如,“玛丽有两块饼干,她送了一块,她还剩多少?”。数学应用题的NLP数据集有很多[9][10]。
ExactFacts(客观事实):ExactFacts在计算中涉及常识,比如骰子有6面,鸟有两条腿。近似的数量感觉在这里没有什么用,因为像骰子有5张脸,鸟有3条腿这样的叙述实际上是不正确的。数字常识事实的两个最新数据集是Numbergame[11]和NumerSense[12](别问我是不是少了个b)。
Measurement Estimation:指的是心理学中的一项任务,受试者被要求在特定的维度上近似猜测物体的测量值,例如西瓜里的种子数量或手机的重量等等。VerbPhysics[13]是各种物理对象属性的二分类比较基准,例如,在大小的比较方面,ball<tiger。DoQ[14]是一个来源于互联网的数量分布数据集,可以作为测量语言模型估计能力的benchmark。MC-TACO[15]是特定于时间度量估计的数据集,例如,放假的时间跨度为几天/几周。
Numerical Language Modeling:数值语言模型是一种训练方式,类似于词汇的mask语言模型。其他任务可以建模为数值语言模型,例如,算术(2+3=[MASK])和测量估计(狮子的重量[MASK]磅)。在实践中,数值语言模型是指为未标记的、自然产生文本进行数值预测的任务。
Downstream Applications(下游应用):Dubey等人[16]基于数字检测推文中的讽刺现象。Chen等人[17]使用可替换的数字表示、数字理解和分类的辅助任务识别财务文件中的债权。同时应用简单的算术和数学文字问题作为辅助任务可以提高GenBERT [4]在DROP QA基准测试中的分数。
模型中的数字表示方法
本文介绍的表示方法仅限于编码(number->embeddings)和解码(embedding->numbers)两种。实验中采用的是BERT模型,并假设在BERT中存在一个独立的将词映射到embdding的过程。
本文将讨论两种表示方式:String-based和Real-based。String-based表示法看到的是string形式的数字;Real-based表示法会执行一些涉及真实数值的计算。
默认情况下,语言模型将数字视为普通的字符串。然而,在字符串表示中,可以对数字做一些简单的修改:
该情况下,通常使用两种方式解析数字:
现有工作
上一节在描述了数字不同的表示方式之后,又描述了以前工作中使用的一些String-based(字符串数字)和Real-based(真实的数字)的方法。下表将这些方法进行整理,前三列显示了它们在分类法中的位置。最后七列对应七个任务,每个单元格表示引入它的代表性工作。
上表是NLP中数字表示的概述:每一行都代表一种方法,按照的上一节的分类(字符串和实数形式)分成两部分,每个部分进一步细分为三个维度。最后七列对应于计算的七个子任务,按照精确和近似的不同粒度进行划分。这些单元格指向在给定任务(列)上使用给定方法(行)进行试验的代表性工作。
小结
本文介绍了数字在NLP模型中的各种表示方法。第一部分介绍了一些测试模型数学能力的测试方法,就像让模型参加数学测验,看看模型到底会些什么。还介绍了目前常用的测试方法。第二部分则是分类介绍了目前的模型通常是怎么表示数字的,一种是直接认为是纯文本,另一种则是将数字进行某些映射变成抽象的数字或向量。
参考文献
[1]Rico Sennrich, et al. Neural machine translation of rare words with subword units. ACL 2016.
[2]Yonghui Wu, et al. Google’s neural machine translation system: Bridging the gap between human and machine translation. 2016.
[3]Dheeru Dua, et al.DROP: A reading comprehension benchmark requiring discrete reasoning over paragraphs. ACL 2019.
[4]Mor Geva, et al. Injecting numerical reasoning skills into language models. ACL 2020.
[5]Xikun Zhang, et al. Do language embeddings capture scales? EMNLP 2020.
[6]Tom B. Brown, et al. Language models are few-shot learners. 2020.
[7]Aakanksha Naik, et al. Exploring numeracy in word embeddings. ACL 2019.
[8]Eric Wallace, et al. Do NLP models know numbers? probing numeracy in embeddings. EMNLP 2019.
[9]Aida Amini, et al. MathQA: Towards interpretable math word problem solving with operation-based formalisms. NAACL 2019.
[10]David Saxton, et al. Analysing mathematical reasoning abilities of neural models. ICLR 2019.
[11]Swaroop Mishra et al. Towards question format-independent numerical reasoning: A set of prerequisite tasks. 2020.
[12]Bill Yuchen Lin, et al. Birds have four legs?! NumerSense: Probing Numerical Commonsense Knowledge of Pre-Trained Language Models. EMNLP 2020.
[13]Maxwell Forbes and Yejin Choi. Verb physics: Relative physical knowledge of actions and objects. ACL 2017.
[14]Yanai Elazar, et al. How large are lions? inducing distributions over quantitative attributes. ACL 2019.
[15]Ben Zhou, et al. Temporal common sense acquisition with minimal supervision. ACL 2020.
[16]Abhijeet Dubey, et al. “when numbers matter!”: Detecting sarcasm in numerical portions of text. NAACL 2019.
[17]Chung-Chi Chen, et al. Numclaim: Investor’s fine-grained claim detection. CIKM 2020.
[18]Rodrigo Nogueira, et al. Investigating the limitations of the transformers with simple arithmetic tasks. 2021.
[19]Georgios P. Spithourakis and Sebastian Riedel. Numeracy for language models: Evaluating and improving their ability to predict numbers. 2018.
[20]Dhanasekar Sundararaman, et al. Methods for numeracy preserving word embeddings. EMNLP 2020.
[21]Taylor Berg-Kirkpatrick and Daniel Spokoyny. An empirical investigation of contextualized number prediction. EMNLP 2020.
[22]Chengyue Jiang, et al. Learning Numeral Embedding. EMNLP 2020.