[论文解读] Improving Neural Language Models with a Continuous Cache
本文为神经语言模型新增一个轻量级的过去隐藏状态的连续缓存,使其能够针对最近上下文进行在线适应而无需重新训练,并在包括 LAMBADA 在内的多个数据集上显示出显著的困惑度提升。
We propose an extension to neural network language models to adapt their prediction to the recent history. Our model is a simplified version of memory augmented networks, which stores past hidden activations as memory and accesses them through a dot product with the current hidden activation. This mechanism is very efficient and scales to very large memory sizes. We also draw a link between the use of external memory in neural network and cache models used with count based language models. We demonstrate on several language model datasets that our approach performs significantly better than recent memory augmented networks.
研究动机与目标
- 在动态情境中,说明需要将神经语言模型适应最近历史。
- 提出一种轻量级神经缓存,用于存储过去的隐藏激活并通过点积匹配检索预测。
- 证明可以在不进行 memory transformer 训练的情况下,在预训练语言模型之上添加缓存,成本很低。
- 在多个语言建模基准上评估该方法,以量化困惑度的提升。
提出的方法
- 将最近的隐藏状态 h_i 及相应的下一个词 x_{i+1} 作为内存条目存储(h_i, x_{i+1})。
- 通过对存储的键 h_i 进行基于点积的查找来计算 p_cache(w | h_{1..t}, x_{1..t}),其中一个类似温度的参数 theta 控制锐度。
- 将最终预测定义为线性插值 p(w|h_{1..t},x_{1..t}) = (1-λ)p_vocab(w|h_t) + λ p_cache(w|h_{1..t},x_{1..t}),或对词汇表和缓存条目进行全局 softmax,并用 alpha 控制缓存权重。
- 按常规训练基础的循环语言模型;仅在测试时应用缓存;在验证集上调整 theta 和 alpha/λ。
实验结果
研究问题
- RQ1将连续神经缓存添加到预训练神经语言模型上且不重新训练时,是否能改善词语预测?
- RQ2缓存大小如何影响从小型到大型数据集的困惑度?
- RQ3线性插值与对缓存和基础语言模型预测进行全局归一化相比,有何差异?
- RQ4是否可以在计算成本几乎为零的情况下实际使用大规模缓存(数千条目)?
主要发现
- 与基线和记忆增强网络相比,神经缓存能在多个数据集上提升困惑度。
- 在 Penn Tree Bank 上,神经缓存的线性插值在测试集困惑度为 72.1,相较于基础模型 86.9,以及其他方法的最佳插值 74.6。
- 在 wikitext2 上,神经缓存的困惑度为 81.6(大小 100)和 68.9(大小 2,000),优于基础 LSTM 及更小的缓存。
- 在 wikitext103 上,使用大型缓存(大小 2,000)的神经缓存达到了 40.8 的困惑度。
- 在 Lambada 数据集上,神经缓存显著优于 LSTM 基线;神经缓存模型的开发集困惑度约为 138,控制困惑度约为 129。
- 该缓存方法可扩展到数千个内存单元,计算开销很小,并且可以在预训练模型之上应用,而无需微调。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。