[关闭]
@songying 2018-10-04T14:17:49.000000Z 字数 1584 阅读 1435

A Neural Probabilistic Language Model

language-models

前言

A Neural Probabilistic Language Model是Bengio在2003年发布的关于语言模型的文章,是Word Embedding的开山之作。

模型初探

观察上图,假设有一组词序列:,其中 ,V 是所有单词的集合。我们的输入是一个词序列,而我们的输出是一个概率值,表示根据context预测出下一个词是 的概率。用数学来表示,我们最终是要训练一个模型:


其中有:

  • 表示这个词序列中的第 个单词, 表示输入长度为n的词序列中的第一个单词
  • 表示从第1个单词到第 个单词组成的子序列

该模型需要满足两个约束条件:


其中有:

  • 表示词表的大小

模型的前向传播

该模型结构分为三层,分别是输入层,一层隐层,输出层。在整个结构中涉及到的参数包括以下几个:

参数 维度 说明
b |V| 维向量 输出层偏置
d h维向量 隐藏层偏置
U |V| *h 隐藏层到输出层权重
W |V| * (n-1)m 词特征层到输出层的权重
H h * (n-1)m 隐藏层权重

最后,一目了然, 是输入, 是输出,需要更新的参数包括:

模型的训练

首先,损失函数为:


其中,R是正则化项。训练使用SGD算法,更新原则为:

其中, 为学习速度。

最后

其实,如果单从word embedding 的角度来看,词向量无非是在训练神经语言模型最后得到的副产物(如上面的C),这也意味着如果要想获得更棒的词向量,我们训练所用的语料库必须足够的大。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注