语言身高预测实验注意事项_香侬读 | 用上文K最近邻特征表示增强语言模型

c7fd8a815e0cfc741c035195cfeaf26d.png

论文标题:Generalization through Memorization: Nearest Neighbor Language Models

论文作者:Urvashi Khandelwal, Omer Levy, Dan Jurafsky, Luke Zettlemoyer, Mike Lewis

论文链接:https://arxiv.org/abs/1911.00172


本文提出kNN-LMs,把上文的语义编码特征向量的k最近邻和一般的语言模型结合从而显著提高语言模型的效果。本方法在WIKITEXT-103上取得15.79的ppl(将最好效果提高2.9个点),这表明了学习文本间相似度比预测下一个token更为简单。

概述

语言模型(Language Model, LM)指的是利用链式法则给出一个句子的概率,主要要解决两个问题:(1)得到上文表示;(2)用上文表示预测下一个token。这两个问题一般使用一个autoregressive模型解决。使用AR模型去进行语言建模的一个普遍问题是:难以充分建立长距离依赖。由此出发,本文提出通过计算上文表示的k最近邻去结合语言模型从而更好地捕捉上下文之间的语义关系。总的来说,本文贡献如下:

  • 提出一个kNN-LM去结合训练集中上文向量表示的k最近邻和当前语言模型的预测概率,方法相当简单有效;
  • 在若干数据集上取得显著效果提升;
  • 通过ablation study表明了该方法的有效性

最近邻语言模型

给定上文

,语言模型的任务是估计下一个token的概率
。现在我们有一个预训练的语言模型
,它能得到一个定长向量表示。对训练集
,对其中任意的
,我们能定义一个key-value对
,其中
,而
。这样我们就能存下训练集中所有的对,存入Datastore里:

上面是我们的准备工作。现在我们有一个要学习的语言模型

,当我们有上文
要去预测
的时候,我们首先在
里找出
的k最近邻
,这里使用平方距离
。然后通过这k个最近邻计算一个目标token的分布,再把相同的目标token聚合起来:

最后,把这个概率和语言模型的概率结合起来:

下图是流程图,看起来更加清晰。

c9411335e4dc9358c0d1a6c876f7e844.png

现在还有一个问题是,如果训练集

比较大,那么在
中找最近邻就会难以承受。为此,本文使用了FAISS (Johnson et al. 2017) 来快速找最近邻。此外,本文还使用了 (Grave et al.)(2017c) 中的cache方法,实验表明这能够稍微提高效果。

实验

本文在四个数据集上实验:WIKITEXT-103,BOOKS,WIKI-3B,WIKI-100M。本文使用了和 (Baevski&Auli)(2019) 同样的模型结构作为语言模型,该模型有16层,每层16个heads,1024的向量维度和4096的FFN维度,约247M的参数量。另外,本文预训练了一个Transformer Decoder LM来得到

,这里取其最后一层输入到FFN的1024维的向量。其他设置详见论文。

下面四个表中的前两个是在WIKITEXT-103,BOOKS。可以看到,加了kNN之后,ppl有了显著的降低(注意到kNN是在对应训练集上使用预训练模型得到的,没有增强额外数据量,也没有对要训练的kNN-LM模型产生直接影响)。

acab5da00737fb8875c957ed61fdcf83.png

这是在同一个训练集上使用kNN得到的,那么在不同的数据集上使用kNN又如何呢?本文接着使用WIKI-3B作为Datastore,在WIKI-100M训练kNN-LM,将它和直接在WIKI-3B与WIKI-100M上得到的LM比较,结果如上图表三。显然,在更大数据(WIKI-3B)上训练的LM肯定比小数据(WIKI-100M)上训练的LM好不少,但是用大数据作为Datastore去补充小数据训练的LM却能超越直接在数据上训练的LM,这说明了去取最近邻比直接训练要好

上图最后一个表是domain adaptation的表现。在WIKI-3B上训练的模型在BOOKS上测试表现很差(34.84),但是在这个基础上使用BOOKS作为Datastore可以大幅提高约14点的表现。这说明kNN-LM还有比较好的domain adaptation能力。

下图是选取不同位置作为

的不同结果。可以看到,选取
FFN input after layer norm效果最好,而使用 model output效果很差。

5c281705d01a14771280b0e0cf9a3b17.png

下面图一(a)显示,只使用WIKI-3B中的1.6B的kNN-LM就超过了在整个3B上训练的LM,而图一(b)又表明,当Datastore越大,kNN就越重要。这是因为,模型学习语义表示比直接预测下一个token更加容易。

下图二是不同的

值的影响,显然,
越大效果越好;图三是不同数据集上插值系数的影响,在BOOKS上的in-domain系数为0.25时效果最好,而在domain adaptation时系数为0.65表现最好。

3eebe8baa412deeaa0bc7d71474cb203.png

上图四是使用n gram作为插值和kNN作为插值结果的比较。可以看到,n再大也没太大用,这表明使用神经网络

去得到向量表示是必要的。

图五探究在预训练模型中使用dropout和不使用dropout的区别。不使用dropout会导致模型过拟合,在验证集上得到28.59的ppl;而使用dropout会极大缓解过拟合,在验证集上得到17.96ppl。这表明了Transformer LM能够记住训练集,但也要防止过拟合。

下表是一个具体的例子。在这个例子中,要训练的LM给目标token的概率比较低,为0.124,而预训练的LM给了很高的0.998。

00540e6b84da0e386cef1d7fee3ee98a.png

小结

本文提出了kNN-LM模型,通过结合标准的语言模型和训练集中的k最近邻向量表示取得显著效果提升。该方法可以用到多个NLP任务上。该方法在语言模型上的成功可以初步说明,模型学习语义相似度比直接预测下一个token更加简单,也能取得更好的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值