A Neural Probabilistic Language Model论文阅读记录

A Neural Probabilistic Language Model

这篇论文是Begio等人在2003年发表的,可以说是词表示的鼻祖。

Abstract

统计语言建模的一个目标是学习语言中单词序列的联合概率函数。遇到的困难包括 curse of dimensionality维数灾难:用于测试模型的单词序列很可能与训练中看到的所有单词序列不同. 传统方法n-gram提高泛化性。

本文提出学习单词的分布式表达来接维数问题,这种方法允许每一个训练语句给模型提供关于语义相邻句子的指数级别数量的信息。他的模型同时学习(1)每个单词的分布表示(2)以这些表示表示的单词序列的概率函数。

所提出的方法显著改进了最先进的n-gram模型,并且所提出的方法允许利用更长的上下文。

Conclusion

本文提出的方法比目前2003年)最先进的方法(英文表达state-of-the-art)——平滑三词组合(smoothed trigram)的困惑度要高得多,差异在10%到20%之间。作者认为原因是分布式表达每个训练句子都会告知模型其它句子的组合情况。

这里提出的工作为统计语言模型的改进打开了大门,它通过基于分布式表示的更紧凑和更平滑的表示来取代 “条件概率表”,可以容纳更多条件变量。

Introduction

当建模连续变量时,我们更容易获得泛化(例如光滑的函数类,如多层神经网络或高斯混合模型),因为要学习的函数可以预期具有一些局部平滑特性。

对于离散空间,泛化结构并不明显:这些离散变量的任何变化都可能对要估计的函数值产生巨大的影响,当每个离散变量可以取的值的数量很大时,大多数被观察的对象之间的汉明距离(在信息理论中,Hamming Distance 表示两个等长字符串在对应位置上不同字符的数目,我们以d(x, y)表示字符串x和y之间的汉明距离。从另外一个方面看,汉明距离度量了通过替换字符的方式将字符串x变成y所需要的最小的替换次数。)几乎是最大的。

受非参数密度估计的启发,可视化不同学习算法如何泛化的一个有用方法是思考最初集中在训练点(如训练句子)上的概率质量如何在更大的范围内分布,通常是在训练点周围的某种形式的邻域。在高维度上,关键是将概率质量分布在重要的地方,而不是均匀地分布在每个训练点周围的各个方向。我们将在本文中表明,这里提出的方法的泛化方式与之前最先进的统计语言建模方法的泛化方式有根本的不同。

在本文之前的方法(n-gram)没有考虑超过1或2个单词的上下文,其次,它没有考虑到单词之间的“相似性”。例如,在训练语料库中看到“ The cat is walking in The bedroom”这个句子应该有助于我们理解“ a dog was running in a room”这个句子,因为“ dog”和“ cat”("the"和 “a”。“room”和“bedroom”等等。.)有相似的语义和语法角色。

本文思想的实现依赖于共享参数多层神经网络

提出方法可以总结为A Neural Probabilistic Language Model论文阅读记录_第1张图片

1.将词汇表中的每个单词关联到一个分布式单词特征向量,2。将单词序列的联合概率函数表示为序列中这些单词的特征向量3。同时学习单词的特征向量和概率函数的参数

训练后相似的单词有着相似的特征向量,并且因为概率函数是这些特征值的平滑函数,所以特征值的一个小变化也会引起概率的一个小变化。因此,训练数据中只要出现某个句子,就会增加该句子的概率,而且也会增加句子空间中“相邻”的句子组合(用特征向量序列表示)的概率。

本文专注于学习单词序列分布的统计模型,而不是学习单词在句子中的作用。

A Neural Model

A Neural Probabilistic Language Model论文阅读记录_第2张图片

A Neural Probabilistic Language Model论文阅读记录_第3张图片

两个映射,C(单词到分布特征向量),g(输入的单词向量到输出)

A Neural Probabilistic Language Model论文阅读记录_第4张图片

模型一共三层,第一层是映射层,将n个单词映射为对应word embeddings的拼接,其实这一层就是MLP的输入层;第二层是隐藏层,激活函数用tanh;第三层是输出层,因为是语言模型,需要根据前n个单词预测下一个单词,所以是一个多分类器,用softmax。整个模型最大的计算量集中在最后一层上,因为一般来说词汇表都很大,需要计算每个单词的条件概率,是整个模型的计算瓶颈。

这里,需要注意的是需要提前初始化一个word embedding矩阵,每一行表示一个单词的向量。词向量也是训练参数,在每次训练中进行更新。这里可以看出词向量是语言模型的一个附属品,因为语言模型本身的工作是为了估计给定的一句话有多像人类的话,但从后来的研究发现,语言模型成了一个非常好的工具。

对于实验部分,因为年限太久远,没有细看。

但从后来的研究发现,语言模型成了一个非常好的工具。

对于实验部分,因为年限太久远,没有细看。

你可能感兴趣的:(语言模型,深度学习,自然语言处理)