【论文研读】NNLM—A Neural Probabilistic Language Model

1.问题:

统计语言建模的一个目标是学习语言中单词序列的联合概率函数。这在本质上是困难的,因为维数的诅咒:测试模型的word序列很可能与训练中看到的所有单词序列不同。

我们建议通过学习一个分布式的词表示来克服维数的诅咒,它允许每个训练句子向模型告知一个指数数量的语义相邻句子

N-gram它不考虑1到2个单词以外的上下文,1秒内它不考虑单词之间的“相似性”。

2.介绍

使用这些思想的实现依赖于共享参数的多层神经网络。本文的另一个贡献是关于如何将如此庞大的神经网络(包含数百万个参数)训练成非常庞大的数据集(包含数百万或数千万个示例)。

用分布式表示对抗维数的诅咒:

1. 为在词表中的每一个词分配一个分布式的词特征向量

2. 词序列中出现的词的特征向量表示的词序列的联合概率函数

3.学习词特征向量和概率函数的参数

特征向量表示单词的不同方面:每个单词都与向量空间中的一个点相关联。特征的数量(如实验中m=30、60或100)远远小于词汇量的大小(如17000)。概率函数表示为在给定前一个词的情况下下一个词的条件概率的乘积(例如,在实验中使用多层神经网络来预测给定前一个词的下一个词)。该函数具有可迭代调整的参数,以最大化训练数据的对数似然或正则化准则,例如,通过添加权重衰减惩罚。2学习与每个单词相关联的特征向量,但可以使用语义特征的先验知识对其进行初始化。

使用神经网络来模拟高维离散分布的想法已经被发现对学习z1···Zn的联合概率是有用的

3.模型:

训练集是一个词序列w1,…,wT,其中wt∈V,词表V是一个大但是有限的集合。模型的目标是要学到一个好的函数来估计条件概率:

我们把函数分解为两个部分:

1. 一个映射C,从词表中的任意元素i到实向量C(i)∈Rm。它代表关联词表中词的分布特征向量。在实践中,C被表示成一个|V|×m的自由参数矩阵。

2. 词上的概率函数,用C表达:一个函数g,从输入序列的词的上下文特征向量,(C(wt-n+1),…,C(wt-1)),到词表中下一个词i的条件概率分布。g的输出是一个向量,向量的第i个元素估计概率

,如下图

【论文研读】NNLM—A Neural Probabilistic Language Model_第1张图片

  • 网络的第一层(输入层)是将C(wt-n+1),...,C(wt-2),C(wt-1)这已知的n-1和单词的词向量首尾相连拼接起来,形成(n-1)w的向量,下面用x表示。
  • 网络的第二层(隐藏层)直接用d+Hx计算得到,d是一个偏置项。之后,用tanh作为激活函数。
  • 网络的第三层(输出层)一共有|V|个节点,每个节点yi表示下一个单词i的未归一化log概率。最后使用softmax函数将输出值y归一化成概率,最终y的计算公式如下:
    y = b + Wx + Utanh(d+Hx)
  • 最后,用随机梯度下降法把这个模型优化出来就可以了。

4.结果:

解决:

1.稀疏性:因为n-gram模型只能对文本中出现的单词或者单词组进行建模,当新的文本中出现意义相近但是没有在训练文本中出现的单词或者单词组的时候,传统离散模型无法正确计算这些训练样本中未出现的单词的应有概率,他们都会被赋予0概率预测值。这是非常不符合语言规律的事情。举个例来讲,在一组汽车新闻中,“SUV”和“吉普”是同义词,可以交替出现,但是假设整个训练集中没有出现过“吉普”这个单词,那么在传统模型中对于“吉普”这个词的出现概率会输出接近于0的结果。

2.泛化能力差:除了对未出现的单词本身进行预测非常困难之外,离散模型还依赖于固定单词组合,需要完全的模式匹配,否则也无法正确输出单词组出现的概率。继续前述例子,假设新闻中一段话是“作为翻山越岭常用的SUV”,这句话和“作为越野用途的吉普”本身意思相近,一个好的语言模型是应该能够识别出后面这句话与前面那句无论从语法还是语义上都是非常近似,应该有近似的概率分布,但是离散模型是无法达到这个要求的。这就使得此类模型的泛化能力不足。

通过使用词向量的映射,前馈神经网络模型能解决稀疏性的问题。

一些在训练集中没有遇到过单词由于其与上下文同时出现的关系,在词向量的空间中会与相类似的单词处于相近的位置,从而降低出现接近于0的条件概率的问题。

该模型在实际应用过程中表现出了一定的泛化能力,但是该模型没有明确地对超出观察窗口的上下文信息进行处理。

你可能感兴趣的:(论文研读,自然语言处理)