Injecting Numerical Reasoning Skills into Language Models

本文提出了一种通用的方法,通过自动生成大量的数据并进行预训练,来向语言模型直接注入数值推理的能力。其首先通过模板生成两类数据:

(1) Numerical Data,全部由数值计算构成的问答文本,例如Q:max(100, 200),A:200;

(2) Textual Data,包含上下文的问答文本,这些文本包含一段上下文以及几个数值相关的问题和答案。

基于这些自动生成的问答样本,本文构造了一个简单的基于BERT的生成模型进行继续预训练。为了防止模型丢失原本的语言知识,本文在继续预训练阶段加入了原始的MLM损失。实验证明,该方法可以有效提升模型在数值推理任务上的表现,成功向模型注入了数值计算的能力。

贡献

一种方法: 将数值推理技巧融入到预训练语言模型中。

一种架构: 具有提取和生成能力的预训练语言模型架构。

一种框架: 为数值推理生成数字和文本合成数据的框架。

文本的数值推理

方法

  1. A Symbolic approach: 模型输入为文本和问题,输出为数值表达式,然后通过一个额外的符号计算器去计算答案。

    缺点:

    • 因为数值表达式是离散的,且空间是组合增长的,模型必须学会使用不可微分的操作在空间中搜索,所以会导致很难优化。
    • 数值表达式仅限于数值答案,但是在DROP数据集中很多问题需要进行数值计算,但是最终的答案是一段文本跨度。
  2. A distributed approach: 模型直接给出答案。如果答案是一个文本跨度,模型直接在输入文本中进行抽取;如果答案是输入文本中没有的数字,那就需要模型去生成答案。

    优点:

     训练简单.

    缺点:

     模型必须学会在相对较小的目标数据集上进行数值计算。会导致性能下降。

  3. A hybrid approach: 用专用模块去处理有限的数值计算,增强标准的抽取式问答模型。

    1. 输入含有 n 1 n_1 n1 个token的 q q q 和含有 n 2 n_2 n2 个token的 c c c

    2. 模型使用预训练语言模型计算输入的上下文表示< [CLS] q [SEP] c [SEP] >。
      L = L M ( q , c ) L = LM(q,c) L=LM(q,c)

    3. L L L 传入多个 h e a d head head 中估计给定输入并以 h h h 作为条件的答案概率 p ( a ∣ q , c , h ) p(a|q,c,h) p(aq,c,h) h e a d head head 对应于不同的答案类型。

      • Context head head: 使用一个前馈神经网络 F F c ( L ) FF_c(L) FFc(L) 计算所有在context 中的跨度分布。
      • Question span head: 使用一个前馈神经网络 F F q ( L ) FF_q(L) FFq(L)计算所有在question 中的跨度分布。
      • Count head: 使用一个前馈神经网络 F F c n t ( L ) FF_{cnt}(L) FFcnt(L) 计算数字{0,…,9}的分布。
      • Arithmetic head: 使用一个前馈神经网络 F F c m b ( L ) FF_{cmb}(L) FFcmb(L) 计算在context 上所有数字的组合分布。
    4. 为了决定对input 使用哪个head ,设置type head 使用一个前馈神经网络 F F t y p ( L ) FF_{typ}(L) FFtyp(L) 计算 p h e a d ( h ∣ a , c ) p_{head}(h|a,c) phead(ha,c)

    5. 模型最终的答案概率为:
      p ( a ∣ q , c ) = ∑ h ∈ h e a d s p h e a d ( h ∣ c , q ) ⋅ p ( a ∣ c , q , h ) p(a|q,c) = \sum_{h \in heads} p_{head}(h|c,q)\cdot p(a|c,q,h) p(aq,c)=hheadsphead(hc,q)p(ac,q,h)
      训练是通过列举所有的头得到的答案完成的,然后最大化边缘概率。

现存模型的不足

  1. 输出空间限制模型只能计数到 9
  2. 扩展数值计算的空间是不可取的,因为训练涉及到边缘化所有导致正确答案的表达式。而且由于数值表达式空间呈指数型增长,会导致模型在空间搜索困难。
  3. 把数值计算放在额外的计算器上会导致建模困难,因为文本和数值计算之间可能会有互动。

GenBERT: A BERT-based Model for Generating Arbitrary Outputs

本质上是一个在内部进行数值计算的简单的基于Bert的生成模型,在内部执行数值计算。模型的encoder是一个标准的transformer encoder,用Bert权重进行初始化。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NTYSW4H3-1651060181583)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220426151851300.png)]

将encoder 和decoder的权重结合,这样decoder也能用到encoder的表示。

由于encoder和decoder权重捆绑在一起,为了使得模型学习到不同的表示,所以添加一个全连接层 F F e n c FF{enc} FFenc 将encoder上下文表示* L e n c L_{enc} Lenc转换为 H e n c H_{enc} Henc
H e n c = l a y e r − n o r m ( g e l u ( W ⋅ L e n c ) ) H_{enc} = layer-norm(gelu(W \cdot L_{enc})) Henc=layernorm(gelu(WLenc))
相同的,在decoder也添加一个 F F d e c FF_{dec} FFdec 。为了进一步区分encoder和decoder,对input和outputs采用不同的开始与结束tokens。输入长度为m的 a = ( a 1 , . . . , a m ) a = (a_1,...,a_m) a=(a1,...,am),输出为长度为m+2的
< [SOS] a [EOS] >* 。输出被传送给decoder和 F F d e c FF_{dec} FFdec 得到 H d e c H_{dec} Hdec

最终答案的概率为
p d e c ( < a > ∣ c , q ) = ∏ i = 0 m p d e c ( a i + 1 ∣ a 0 , . . . a i , c , q ) p_{dec}(<a>|c,q) = \prod_{i = 0}^{m}p_{dec}(a_{i+1}|a_0,...a_i,c,q) pdec(<a>c,q)=i=0mpdec(ai+1a0,...ai,c,q)
为了提升对数字数据的预训练,做了两个额外的修改。

Digit Tokenization (DT)

传统的分词标记对数字的处理与其他标记没有区别。但是,在计算值的时候直接使用数字会更加简单。所有,本工作逐位标记数字。

Random shift (RS)

原始的transformer对每个token使用绝对位置嵌入。但是当训练类似*“1086.1-2.54+343.8”* 类似的短输入时,模型可能会过拟合,导致只有数字位于输入序列开头时才进行数值计算。为了避免这种情况,当输入长度 n 1 + n 2 + 3 < 512 n_1 + n_2 +3 < 512 n1+n2+3<512 时,将所有位置随机移动一个整数 ( 0 , 1 , . . . , 512 − ( n 1 + n 2 + 3 ) ) (0,1,...,512-(n_1 +n_2 +3)) (0,1,...,512(n1+n2+3))

Training

损失 L m o d e l L_{model} Lmodel
L m o d e l = − l o g ( p d e c ⋅ p d e c ( < a > ) + ∑ h ∈ q , c p h ⋅ ∑ ( i , j ) ∈ S p h ( i , j ) ) L_{model} = -log(p_{dec} \cdot p_{dec(<a>)} + \sum_{h \in q,c}p_h \cdot \sum_{(i,j) \in S}p_h(i,j)) Lmodel=log(pdecpdec(<a>)+hq,cph(i,j)Sph(i,j))
在DROP对模型的数值推理能力进行评估,获得EM 46.1% ,F1 49.3 ,比之前的模型低了20个百分点。所以仅由DROP数据集学习数值推理技巧时困难的。

为了解决上述问题,本工作将自动生成训练数据,在对模型进行DROP训练之前,学习数值推理技巧。

Pre-training Tasks for Numerical Skills

Generating Numerical Data(ND)

集中于学习数值表达式和数值操作,不涉及文本内容。以下是设置的数据模板。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5FcxHKqM-1651060181584)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427175024967.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PJlxj82x-1651060181584)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220426213520694.png)]

Generating Textual Data(TD)

框架自动生成样本。提取描述容器拥有的实体数量变化的模板,并从这些模板自动生成问题上下文对。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gvQbeUFp-1651060181584)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427175037644.png)]

生成 TD 数据如下:

Template extraction

使用Hosseini等人描述的过程将其标记抽象为以下类别:数字(NUM)、实体(ENT)、容器(CONT)和属性(ATTR)。此外,动词被抽象为六类,每一类对应容器拥有的实体数量的不同变化。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E2H0ODLl-1651060181585)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427094114248.png)]

计算抽取的模板在数据中出现的频率,使用 top-12 生成段落。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RQaq2DAp-1651060181585)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427175338810.png)]

Passage generation

使用抽取模板生成句子。

  1. 构建一个小词汇表(<100个单词),它将类别映射到特定于领域的单词,并使用以下程序生成段落。

  2. 对3-6个模板进行替换,逐个实例化。每个模板的实例化都是通过从词汇表(概率为1 - p)和之前生成的句子(概率为p)中均匀抽样来实现的。

  3. 为了避免不相关句子的集合,使用之前使用过的值的概率设为p = 0.7

Question generation

创建了13个问题模板。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cujzj0Z4-1651060181585)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427100120175.png)]

Training GenBERT on Synthetic Data

生成1M 训练样本,10K 验证样本对 ND 数据进行预训练。

生成2.5M* 训练样本,10K 验证样本对 TD 数据进行训练。

对于两个数据集,采用 L m o d e l L_{model} Lmodel 计算损失。

为了确保模型不会失去其语言理解能力,采用了一个 multi-task,并包括一个来自BERT的标准 **masked LM **目标.

  1. 给定一个 masked token sequence <m> ,计算上下文表示 L e n c L_{enc} Lenc

  2. 传给 F F m l m FF_{mlm} FFmlm ,对每一个token索引,输出原始token( a i a_i ai)的概率 p ( a i ∣ i , < m > ) p(a_i|i,<m>) p(aii,<m>)

  3. MLM 损失
    L m l m ( < m > ) = m e a n i ∈ m a s k e d − l o g ( p ( a i ∣ i , < m > ) ) L_{mlm}(<m>) = mean_{i \in masked} - log(p(a_i|i,<m>)) Lmlm(<m>)=meanimaskedlog(p(aii,<m>))

  4. 在对ND和TD预训练的同时,对目标进行优化
    L m o d e l ( X N D ) + L m o d e l ( X T D ) + λ ⋅ L m l m ( X M L M ) L_{model}(X_{ND}) + L_{model}(X_{TD}) + \lambda \cdot L_{mlm}(X_{MLM}) Lmodel(XND)+Lmodel(XTD)+λLmlm(XMLM)

Experimental Evaluation

模型

  • G E N B E R T + N D GENBERT_{+ND} GENBERT+ND: trained on numerical data.

  • G E N B E R T + N D − L M GENBERT_{+ND-LM} GENBERT+NDLM​:trained on ND without the additional MLM loss.

  • G E N B E R T + N D − L M − D T GENBERT_{+ND-LM-DT} GENBERT+NDLMDT​:trained on ND usin gwordpiece tokenization, without the MLM loss.

  • G E N B E R T + N D − L M − R S GENBERT_{+ND-LM-RS} GENBERT+NDLMRS​:trained on ND without MLM loss and random shift (RS).

  • G E N B E R T + T D GENBERT_{+TD} GENBERT+TD:trained on textual data (TD).

  • G E N B E R T + N D + T D GENBERT_{+ND+TD} GENBERT+ND+TD G E N B E R T + N D GENBERT_{+ND} GENBERT+ND trained on both ND and TD.

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zANwkpxY-1651060181586)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427104323806.png)]

Pre-training Performance

  1. ND、TD、ND+TD 情况下,模型准确率达到 **96% **。所以一个预训练语言模型确实可以从生成的数据中学习技能。
  2. ND - LM - DT 模型上并没有学到解决数值数据任务。结果表明了在传统分词上使用DT的有效性。(与 ND - LM 对比)

Numerical Reasoning Performance

Results on DROP

  引入的技巧是否健壮?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Urx0g0UB-1651060181586)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427112117021.png)]

  • G E N B E R T + N D GENBERT_{+ND} GENBERT+ND G E N B E R T + T D GENBERT_{+TD} GENBERT+TD 的结果都比 G E N B E R T GENBERT GENBERT 好,表明ND和TD的有效性。而 G E N B E R T + N D + T D GENBERT_{+ND+TD} GENBERT+ND+TD 结果更好,表明 TDND 是互补的。
  • G E N B E R T + N D − L M GENBERT_{+ND-LM} GENBERT+NDLM G E N B E R T + N D − L M − R S GENBERT_{+ND-LM-RS} GENBERT+NDLMRS 的结果表明 MLM 损失的重要性及RS的有效性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yH0nCvdl-1651060181586)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427112134377.png)]

  • 在spans类型问题上, M T M S N B A S E MTMSN_{BASE} MTMSNBASE G E N B E R T + N D + T D GENBERT_{+ND+TD} GENBERT+ND+TD 好是因为 M T M S N MTMSN MTMSN 有专门的模块处理这类问题。
Generalization to MWP (zero-shot)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i7Pjz9Ge-1651060181586)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427155355396.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rhLTPwXV-1651060181587)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427155433555.png)]

G E N B E R T + N D + T D GENBERT_{+ ND + TD} GENBERT+ND+TD在2到3个词之间的性能下降明显小于 G E N B E R T + N D GENBERT_{+ ND} GENBERT+ND G E N B E R T + T D GENBERT_{+ TD} GENBERT+TD。 这表明NDTD均可用于提高鲁棒性。

Error analysis
  1. 问题没有涵盖在预训练的模板中,或不涉及数字。
  2. 模型预测不准确。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4HWmzcwA-1651060181587)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427155516922.png)]

Reading Comprehension Performance

在SQuAD上对模型进行评估。 G e n B E R T + T D + N D GenBERT_{+TD+ND} GenBERT+TD+ND B E R T BERT BERT 结果几乎一样。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HoywBR5E-1651060181587)(C:\Users\37183\AppData\Roaming\Typora\typora-user-images\image-20220427155826126.png)]

GenBERT With Other Architectures

经验表明,可以将数值推理技能注入到预训练的LM中,从而在DROP和MWP上获得良好的性能,同时在标准RC数据集上保持高性能。此外,得到的权重可用于初始化数值推理模型。

Conclusions

  • GENBERT is able to solve pre-training tasks for numerical reasoning.
  • Pre-training on these tasks provides GENBERT with 1) skills to reach performance that matches state-of-the-art models of comparable size on DROP, a standard numerical reasoning dataset, as well as 2) the ability to generalize to math word problem (MWP) datasets.
  • GENBERT learns these numerical skills while maintaining high performance on SQuAD, a standard reading comprehension dataset.
  • Initializing models for numerical reasoning with GENBERT’s weights improves their original performance.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值