嵌入向量能否理解数字?BERT竟不如ELMo?

对自然语言文本执行数字推理是端到端模型的长期难题,来自艾伦人工智能研究所、北京大学和加州大学欧文分校的研究者尝试探索「开箱即用」的神经 NLP 模型是否能够解决该问题,以及如何解决。

  • 论文:Do NLP Models Know Numbers? Probing Numeracy in Embeddings
  • 论文地址:https://arxiv.org/pdf/1909.07940.pdf

理解和处理数字(识数)的能力对于很多复杂的推理任务而言非常关键。目前,大部分自然语言处理模型对文本中数字的处理方式与其他 token 相同:将数字看作分布式向量。但是这足以捕捉数字吗?

来自艾伦人工智能研究所、北京大学和加州大学欧文分校的研究者调查了当前最优问答模型在 DROP 数据集上的数字推理能力,发现该模型擅长解决需要数字推理的问题,也就是说它已经能够捕捉数字。

为了了解该能力的来源,研究者在综合列表最大值(synthetic list maximum)、数字解码和加法任务上测试了 token 嵌入方法,如 BERT、GloVe。令人惊讶的是,标准嵌入方法天然具备相当高程度的识数能力。例如,GloVe 和 word2vec 能够准确编码的数字高达上千。字符级嵌入甚至更加准确——在所有预训练方法中,ELMo 的数字捕捉能力最强大,而使用子词单元的 BERT 模型准确率不如 ELMo。

图 1:研究者训练了一个 probing model,基于词嵌入对 [-500, 500] 区间内随机 80% 的整数进行数字解码,如「71」→ 71.0。

研究者绘制了模型对 [-2000, 2000] 区间中所有数字的预测结果。该模型准确解码了训练区间中的数字(蓝色),即预训练嵌入(如 GloVe 和 BERT)能够捕捉数字。但是,该 probing model 无法处理较大的数字(红色)。Char-CNN (e) and Char-LSTM (f) 均使用 probing model 联合训练而成。

NLP 模型「识数」的重要性

对自然语言执行数字推理的第一步是识数:理解和处理数值或文本形式数字。例如,你必须理解「23」比「twentytwo」数值大。在一个数值出现时(可能是隐式出现),推理算法可以处理文本,如提取射门得分列表并计算其最大值(图 2 的第一个问题)。对仅具备问答监督信号的段落执行数字推理是端到端模型的长期难题,而该研究尝试探索「开箱即用」的神经 NLP 模型是否已经学习以及如何学习解决该难题。

图 2:三个需要数字推理的 DROP 问题,当前最优的 NAQANet 模型准确回答了每一个问题。(每个问题的可能答案已用下划线标出,模型预测结果均以粗体显示。

研究者首先在 DROP 数据集上分析了当前最优的 NAQANet 模型,在数字推理问题子集上进行了模型测试。令人惊讶的是,该模型展现出优秀的数字推理能力。在阅读和理解自然语言时,该模型成功地计算出得分列表最大值/最小值,提取最高级实体(superlative entity,argmax 推理),以及对比数值。

例如,尽管 NAQANet 在整个验证集上仅获得了 49 F1 分数,但它在数值对比问题上获得了 89 F1 的分数。研究者还通过扰乱验证段落执行模型测试,并发现了一种失败模式:模型难以推断训练区间外的数字。

研究者对该模型学习数字的能力非常好奇,即该模型如何基于嵌入了解数值?该模型使用标准嵌入(GloVe a 和 Char-CNN),并未接收数字大小/排序方面的直接监督信号。为了了解它如何掌握识数能力,研究者在综合列表最大值、数字解码和加法任务中探索了 token 嵌入方法(如 BERT 和 GloVe)。

研究发现,所有广泛应用的预训练嵌入方法(如 ELMo、BERT 和 GloVe)都可以捕捉数字:数字大小可呈现在嵌入中,即使是上千的数字。在所有嵌入中,字符级方法要比词级、子词级方法具备更强大的识数能力,如 ELMo 胜过 BERT。在综合任务上直接学得的字符级模型整体是最强的。最后,研究者调查了 NAQANet 难以处理外推的原因,是模型问题还是嵌入问题?研究者重复实施探索(probing)任务,并对模型外推进行了测试,发现神经网络在预测训练区间外数字时存在困难。

嵌入的识数本领有多大?

研究者使用综合数值任务探索 token 嵌入的识数能力,共考虑了 3 个综合任务(见图 3)。

图 3:探索设置。研究者将数字输入到预训练嵌入模型中(如 BERT、GloVe),训练 probing model 来解决数值任务,如找出列表最大值、解码数字或加法。

如果 probing model 可泛化至留出数字(held-out number),则预训练嵌入一定包含数字信息。研究者提供了数字的几种形式:单词、数值(9)、浮点(9.1)或负数(-9)。

  • 列表最大值:给出包含 5 个数字的嵌入列表,该任务就是预测其中最大值的索引。

  • 解码:探索是否识别数字大小。

  • 加法:该任务需要数值运算:给出两个数字的嵌入,该任务即预测二者之和。

研究者评估了多种 token 嵌入方法:

  • 词向量:使用 300 维 GloVe 和 word2ve 向量。

  • 语境嵌入:使用 ELMo 和 BERT 嵌入。

  • NAQANet 嵌入:在 DROP 数据集上训练 NAQANet 模型,从中提取 GloVe 嵌入和 Char-CNN。

  • 预训练嵌入:使用字符级 CNN (Char-CNN) 和字符级 LSTM (Char-LSTM)。

  • 把数值作为嵌入:将数字的嵌入直接映射至数值。

结果:嵌入的识数能力

研究者发现所有预训练嵌入均包含关于数量和排序的细粒度信息。研究者首先探究了整数(见表 4):

表 4:使用整数(如 18)插值。所有预训练嵌入方法(如 GloVe 和 ELMo)均能够捕捉数字。probing model 在随机打乱的 80% 整数区间上训练,在剩余 20% 的数字上测试。

最后,研究者探究了词形式数字、浮点数和负数的嵌入,发现这些输入的趋势与整数相同:预训练模型展示出自然的数学理解能力,学到强大的嵌入(见表 5、6 和 10)。

表 5:列表最大值任务中使用浮点数(如 18.1)的插值。预训练嵌入识别浮点数。probing model 在随机打乱的 80% 整数区间上训练,在剩余 20% 的数字上进行测试。

表 6:列表最大值任务中使用负数(如-18)进行插值。预训练嵌入识别负数。

probing model 难以执行外推

之前,综合实验通常在与训练数据同一范围内的留出数值上进行评估。但现在,研究者在特定整数范围上训练模型,在比最大训练数字更大和比最小训练数字更小的数字范围内进行测试。

列表最大值任务的准确率接近插值环境下的模型。但是,它们仍然存在差距。表 7 展示了在整数范围 [0,150] 上训练、在 [151,160]、[151,180] 和 [151,200] 范围内测试的模型的准确率,所有方法均效果不好,尤其是 token 向量。

表 7:在列表最大值任务上的外推结果。probing model 在整数范围 [0,150] 上训练,在 [151,160]、[151,180] 和 [151,200] 整数范围上评估。

入门自然语言处理BERTELMo词向量嵌入式
暂无评论
暂无评论~