社会焦点

一周论文 | 解读2016年最值得读的三篇NLP论文 + 在线Chat实录

字号+ 作者: 来源: 2017-03-27

一周论文 | 解读2016年最值得读的三篇NLP论文 + 在线Chat实录,nlp信念价值观视频,nlp简快心理疗法视频,nlp是什么意思,会计论文参考文献2016

本期 PaperWeekly 将继续分享和解读 3 篇 2016 年最值得读的自然语言处理领域 paper,分别是:

1. LightRNN Memory and Computation-Efficient Recurrent Neural Network

2. Text understanding with the attention sum reader network

3. Neural Machine Translation with Reconstruction

?

LightRNN: Memory and Computation-Efficient Recurrent Neural Networks

论文链接

https://papers.nips.cc/paper/6512-lightrnn-memory-and-computation-efficient-recurrent-neural-networks.pdf

作者

Xiang Li, Tao Qin, Jian Yang, Tie-Yan Liu

单位

Nanjing University of Science and Technology & Microsoft Research Asia

关键词

LightRNN, Word Embedding, Language Model

文章来源

NIPS 2016

问题

在词典规模比较大的情况下,传统 RNN 模型有着模型大训练慢的问题,本文提出的 LightRNN 模型通过采用两个向量组合在一起表示一个词的方法,降低实际训练向量的数目,进而解决上述问题。

模型

LightRNN 的核心思想是将一个词用两个共享的向量来表示。如下图所示,我们将所有的词分配到下面一个二维词表中,表中第i行所有词语的对应的行向量为 x(i,r),第 j 列词语对应的列向量为 x(j,c)。故第 i 行第 j 列的词语由 x(i,r)和 x(j,c)两部分共同表示,该方法在论文中被称为两部共享嵌入(2-Component shared embedding)。

每一行词语的行向量,每一列词语的列向量均是共享的,因此对于大小为 |V| 的词典,只需要 2√|V| 个不同的向量就可以表示所有词语,这大大缩小了模型的体积,加快模型的训练速度。

一周论文 | 解读2016年最值得读的三篇NLP论文 + 在线Chat实录

通过上面的介绍我们知晓了可以通过两个向量来表示一个词语,接下来将介绍如何将这种新奇的词表示方法引入到 RNN 模型中。本文的想法其实非常简单,如下图所示,将一个词的行向量和列向量按照顺序分别送入 RNN 中即可。以本文中的语言模型任务为例,为了计算下一个词是 w_t 的概率,我们需要先根据前文计算下一个词的行向量是 w_t 的行向量的概率,再根据前文和w_t 的行向量计算下一个词的列向量是w_t 的列向量的概率。行向量概率和列向量概率的乘积便是下一个词是w_t 的概率。

一周论文 | 解读2016年最值得读的三篇NLP论文 + 在线Chat实录

现在我们已经清楚了这种新颖的词语表示方法以及如何将这种词语表示方法应用到语言模型中。但仍然存在一个关键的问题,即如何生成上图中的二维词表。本文提出了一种 Bootstrap 过程的方法,具体步骤如下:1. 冷启动,随机将词语分配到二维词表中。2. 训练 Embedding 到 LightRNN 收敛为止。 3. 固定上述训练好的 Embedding,再重新分配词语在表中的位置来最小化损失函数。然后回到步骤 2。(该过程可以转化成最小权完美匹配问题,文中采用相关论文中的近似算法来解决该问题。)

通过一些在 ACLW 和 BillionW 数据集上的语言模型实验,可以观察到相比之前的语言模型,LightRNN 在训练速度上有两倍的提升,模型缩小了数十倍,且实验效果还略有提升。

资源

[ACLW]

https://www.dropbox.com/s/m83wwnlz3dw5zhk/large.zip?dl=0

[BillionW]

相关工作

语言模型相关工作

1. Blackout: Speeding up recurrent neural network language models with very large vocabularies

2. Character-aware neural language models

**本文采用的最小权完美匹配问题的近似算法**

Linear time 1/2-approximation algorithm for maximum weighted matching in general graphs

简评

  本文提出的 LightRNN 方法大幅度提升了模型的训练速度,缩小了模型的大小,对于苦于模型训练过慢、显存不足的人来说是一大福音。此外,本文提出的模型在一定程度上可以学到词语之间的一些共享信息,进而提升模型的效果。目前本文的方法仅在语言模型上进行了实验,显然此方法同样适合扩展到机器翻译、问答等任务上,期待该模型在其他任务上的应用。

完成人信息

王宝鑫,科大讯飞,destin.bxwang@gmail.com

  实录

问:从文中 Figure5 展示的图片来看,每一行的词可以看出存在一些语义或形式方面的共同之处,但是列向量之间很难看出有什么共性体现。那么关于列向量的作用如何理解?这是否跟网络的结构有关系?

答:这个问题很有意思,一开始我看到 Figure5 中的例子时,并没有想太多,很多论文中都有类似的展示,作者一般会把其中效果比较好的,可解释性比较强的部分拿出来给大家展示。所以一开始,我默认作者只是选择性把同一行语义相关性比较强的例子拿出来了,而同一列语义相关性比较强的则没有拿出来。 事实上,本文模型中的行向量和列向量作用确实有所不同,LightRNN 是先通过预测下一个词的行数来确定下一个词的大体范围,再预测下一个词的列数来确定下一个词具体是什么。也正是因为这个先后过程,导致了同一行的词语具有语义上的相似之处(范围相接近)。举个栗子来说,Barack Obama was born on <wt>,对于这个句子,预测下一个词 wt 的时候,模型会首先预测它的行数,这一行中会出现大量的时间类词语,接下来通过前文和行向量,模型再进一步预测 wt 的列数来确定是哪一个时间,August。上面简单解释了下行向量和列向量作用的不同之处,同时也说明了同一行之间语义相似会使模型效果更好。归根结底,真正使行中词语聚类的原因是通过 Bootstrap 过程来对词语重分配导致的,重分配词语来最小化损失函数,会倾向于使同一类词语聚集在一行。

问:除了梯度下降训练 Embedding 参数外,还需要不断地用 MCMF 重分配词语在二维表中的位置。是否有一些其他的策略可以改进或者加快这个训练过程?

转载请注明出处。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章