论文阅读:A Neural Probabilistic Language Model 一种神经概率语言模型

A Neural Probabilistic Language Model

一种神经概率语言模型


目标:如果了解一个句子的基本结构,那么其就能通过可互换短语替代原句的一部分而创造一个新句子(Bengio et al., 2003)。
挑战:主要的瓶颈是 计算输出层的激活函数,因为该输出层是一个由 softmax 激活函数组成的全连接层。
描述
本文于 2003年第一次用神经网络来解决语言模型的问题,虽然在当时并没有得到太多的重视,却为后来深度学习在解决语言模型问题甚至很多别的nlp问题时奠定了坚实的基础,后人站在 Yoshua Bengio的肩膀上,做出了更多的成就。包括 Word2Vec的作者 Tomas MikolovNNLM的基础上提出了 RNNLM和后来的 Word2Vec。文中也较早地提出将 word表示一个低秩的向量,而不是 one-hotword embedding作为一个 language model的副产品,在后面的研究中起到了关键作用,为研究者提供了更加宽广的思路。
本文最大的贡献在于 用多层感知器(MLP)构造了语言模型
模型一共三层, 第一层是映射层,将n个单词映射为对应word embeddings的拼接,其实这一层就是MLP的输入层; 第二层是隐藏层,激活函数用tanh; 第三层是输出层,因为是语言模型,需要根据前n个单词预测下一个单词,所以是一个多分类器,用softmax。整个模型最大的计算量集中在最后一层上,因为一般来说 词汇表都很大,需要计算每个单词的条件概率,是整个模型的计算瓶颈。
这里,需要注意的是需要提前 初始化一个word embedding矩阵,每一行表示一个单词的向量。词向量也是训练参数,在每次训练中进行更新。这里可以看出词向量是语言模型的一个附属品,因为语言模型本身的工作是为了估计给定的一句话有多像人类的话,但从后来的研究发现,语言模型成了一个非常好的工具。
softmax是一个非常低效的处理方式, 需要先计算每个单词的概率,并且还要计算指数,指数在计算机中都是用级数来近似的,计算复杂度很高,最后再做归一化处理。此后很多研究都针对这个问题进行了优化,比如层级softmax,比如softmax tree。
当然 NNLM的效果在现在看来并不算什么,但对于后面的相关研究具有非常重要的意义。文中的 Future Work提到了用RNN来代替MLP作为模型可能会取得更好的效果,在后面 Tomas Mikolov的博士论文中得到了验证,也就是后来的RNNLM。

摘要

统计语言模型建模(Statistical Language Modeling) 目标是学习一种语言中单词序列的联合概率函数。因为维数灾难,这是其本质难点:将被模型测试的单词序列很可能是与在训练中见过的所有单词的序列都不相同。 传统的但非常成功的基于n-gram的方法通过将出现在训练集很短的重叠序列连接得到泛化。为了解决维数灾难的问题,我们提出学习词的分布式表示,这种方法允许每一个训练语句给模型提供关于语义相邻句子的指数级别数量的信息。根据刚才的描述,该模型同时学习 (1)每个词的分布式表示与(2)词序列的概率函数。 模型可以得到泛化(Generalization) 是因为一个从未出现的词序列,如果它是由与它相似的词(在其附近的一个代表性的意义上)组成过已经出现的句子的话,那么它获得较高的概率。在合理的时间内训练这样的大型模型(以百万计的参数)本身就是一个显著的挑战。我们报告介绍了使用神经网络的概率函数的实验,改进了n-gram模型,可以利用更长的上下文,并在两个文本语料库上都显示了很好的效果

关键词:统计语言模型,人工神经网络,分布式表示,维数灾难

1.介绍

使语言建模和其他学习问题困难的一个根本的问题是维数灾难。当一个人想对很多离散随机变量(如在句子中的单词或者数据挖掘任务中的离散分布)建立联合分布模型时,这个问题尤其明显。例如,如果一个人想要对自然语言中单词表大小为100000的10个相连的词建立联合分布模型,将会有10000010−1 = 1050–1个自由参数。当对连续变量建立模型时,我们更容易得到泛化(如光滑的类的函数像多层神经网络或Gaussian混合模型),因为要学习的函数可以被期望将有一些LO- CAL的平滑性。对于离散的空间,泛化结构并不明显:这些离散随机变量的任何变化可能对要估计的函数的值产生极大的影响,并且当每个离散的变量取值范围很大时,大多数观察到的对象在汉明距离上是几乎无穷远的。
一个有用的方法来可视化不同的学习算法如何泛化,从启发的观点非参数密度估计,就是考虑初始集中的概率质量在训练点上(例如,训练句)以较大的体积分布,通常以某种形式训练点周围的邻居。在高维中,分配概率是很重要的质量,而不是均匀地在每个训练点周围的各个方向。我们将说明本文所提出的方法是一种基本的推广方法不同于以前最先进的统计语言建模方法概括。
根据给定的前t−1个词,统计语言模型可以由第t个词的条件概率表示
1

其中,wt是第t个词,将子序列写为wji=(wi,wi+1,…,wj−1,wj)。这种统计语言模型被证明在设计自然语言的许多技术应用中非常有用,如语音识别、语言翻译和信息检索
在建立统计语言模型时,一个可以考虑的降低模型困难的方法是词序列中更靠近的词更加具有依赖性。因此,n-gram模型建立了一个给定前n-1个词,第n个词的条件概率表示
2
我们只考虑在训练集中出现的连续词的组合,或者出现足够频繁的词。对于语料库中未出现的n元单词新组合,为避免为其分配零概率,考虑back-off trigram models (Katz, 1987)或者smoothed (or interpolated) trigram models(Jelinek and Mercer, 1980)中使用的方法:使用更小的语料进行概率预测。获得新的单词序列的方法主要是与插值(interpolated)或者n元回退(backoff n-gram)模型相关的生成模型,通过“粘合(gluing)”训练数据中短且重复的长度为1,2甚至n个频繁出现的单词来生成新的单词序列。
当在语料中未见过的n个词的新组合出现时,将发生什么?我们不想为它们分配为0的概率,因为这样的组合确实有可能发生。一个简单的解决办法是使用更小的上下文,即使用tri-gram或者平滑后的tri-gram。本质上来说,一个新的词序列是通过“粘合”非常短的重叠的在训练语料中出现频繁的字片段组成。获得下一个片段的概率的规则是隐式的回退或者打折后的n-gram算法。研究者使用典型的n=3的tri-gram,并且获得了世界领先水平的结果。显然的是直接出现在词前面的序列携带的信息要比仅仅之前的一小段序列携带的信息多。我们在本论文中提出的方法至少在两个特点上面显著的提高了上面的问题。第一点,上面的方法没有考虑超过1或2个词的上下文;第二点,上面的方法没有考虑词与词之间的相似性。例如,在语料库中已经观测到了序列“The cat is walking in the bedroom”,可以帮助我们生成序列“A dog was running in a room”,因为“dog”和“cat”有相似的语义和语法角色。
有很多被提出来的方法可以解决这两个问题,我们在1.2节给出简洁的解释。我们首先将讨论被提出方法的基本思想。更加形式化的介绍将在2节中给出。这些思想的实现使用的是同享参数的多层神经网络。这篇论文的另一个贡献是介绍了对大量数据训练如此大的神经网络的高效方法。最后,一个重要的贡献是说明了训练如此大规模的模型是昂贵但是值得的
这片论文的很多运算使用矩阵符号,使用小写字母v代表列向量,v’代表它的转置,Aj表示矩阵A的第j行,x.y代表x’y。

1.1使用分布式表示解决维度灾难

简单来讲,本方法的思想可以被概括成以下3个步骤
1. 为在词表中的每一个词分配一个分布式的词特征向量
2. 词序列中出现的词的特征向量表示的词序列的联合概率函数
3.学习词特征向量和概率函数的参数
词特征向量代表了词的不同的方面:每个词关联向量空间的一个点。特征的数量远远小于词表的大小。概率函数被表达成给定前面的词后面一个词的条件概率的乘积(例如,在实验中,使用多层神经网络,给定前面的词预测下一个词)。这个函数有一些参数,可以通过迭代的方式调整这些参数来最大化对数似然函数。这些与词关联的特征向量可以被学习得当,但是他们可以使用先验的语义特征知识来初始化
为什么这样有效?在前面的例子中,如果我们知道 “ dog”和“cat”扮演相似的角色(语义的或者句法的),类似的对于(the,a),(bedroom,room),(is,was),(running,walking),我们自然地可以由
The cat is walking in the bedroom
生成
A dog was running in a room
或者
The cat is runing in a room
A dog is walking in a bedroom
The dog was walking in the room

或者更多的其他组合。在本模型中,这些可以被生成因为相似的词被期望有相似的特征向量,也因为概率函数是一个这些特征值的平滑的函数,在特征中的小的改变将在概率中产生小的变化。因此,上述这些句子其中一个在语料库中的出现,将增加这些句子的概率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南有芙蕖

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值