"A Neural Probabilistic Language Model"--论文模型解释

目录

1.神经概率语言模型

2.模型的表示

3.模型的求解


1.神经概率语言模型

One-hot方式的word表示能够简单的将词进行向量化表示,但是随着词汇表(Vocabulary)的增大表示一个词的向量成为一个高维的超稀疏向量(只有一个维度为1,其他维值都为0)。这样的词表示方法不仅占用大量内存,而且不能对词之间的想似关系进行度量。分布式表示方法能够应对这样的维度灾难(curse of dimensionality),不仅可以将词映射到低维的词向量空间,而且向量间的夹角代表了词之间的相似性。论文中所提到的模型形式化如下公式,在模型中  \hat P(w_t|w^{t-1}_{1})=\hat P(w_t|w_{t-1},w_{t-2},...,w_1)

Model:f(w_t,w_{t-1},...,w_{t-n+1})=\hat P(w_t|w^{t-1}_{1})

Constraint(1): \sum_{i=1}^{|V|}f(i,w_{t-1},...,w_{t-n+1})=1

Constraint(2):f>0

模型表示求在w^{t-1}_1的上下文(context)情况下w_t出现的条件概率。约束条件有两个:

  1. w^{t-1}_1上下文情况下,词汇表中所有词出现的条件概率之和为1。
  2. 由于f(.)表示的是条件概率,所以必须大于0。

2.模型的表示

Figure 1. 模型图示

模型分为5层:

  1. 输入层为1:输入上下文w^{t-1}_{t-n+1}的索引,比如可以为词的one-hot表示。
  2. 使用映射函数(Mapping Function)C,将第1层的输入--词的索引映射为词的word feature vector(即为需要的词的分布式表示)得到第2层,即上下文w^{t-1}_{t-n+1}的word feature vector组成的输入x。映射函数C可以简单的直接是词汇表中每个词的word feature vector组成的矩阵即C_{|V| \times m}|V|为词汇表中词的数量,m表示设定的word feature vector 的维数。映射函数C的第j行代表索引为j的词的word feature vector。
  3. 第3层为一个简单的隐藏层。
  4. 第4层为非归一化概率y_{|V| \times 1},它由加和第二层全连接与第三层双曲正切操作得到。
  5. 第5层由第四层经softmax(.)操作后得到条件概率。

将模型形式化可表示为:

x=(C(w_{t-1}), C(w_{t-2}),...,C(w_{t-n+1}))   

将上下文w^{t-1}_{t-n+1}映射为其word feature vector的组合,x代表第二层。

y=b+Wx+Utanh(d+Hx) 

表示模型从2-->4的操作,d+Hx表示从2-->3,Wx+b表示第2层直接与非归一化概率层y的连接。整个公式表示y由第二层的直接连接再加上第三层的双却正切操作后的连接。

\hat P(w_t|w^{t-1}_{t-n+1})=\frac{e^{y_{w_t}}}{\sum_{i}e^{y_i}}

将非归一化概率y使用softmax变为条件概率。

3.模型的求解

使用正则化对数似然函数作为模型的损失函数:

Loss function:    \frac{1}{T}\sum_{t}logf(w_t,w_{t-1},...,w_{t-n+1})+R(\theta )

其中f(.)表示条件概率,损失函数中参数\theta=\{b,W,U,d,H,C\},C即表示需要的词汇表中词的分布式表示。使用随机梯度下降就可求解该模型:

\theta\leftarrow \theta +\varepsilon \frac{\partial log \hat P(w_t|w_{t-1},...,w_{t-n+1})}{\partial \theta}

在参数求解中,C中所有行并不是都会改变,之后改变输入的w^{t-1}_{t-n+1}对应的行。

 

**个人理解,欢迎讨论**

你可能感兴趣的:(NLP)