神经网络概率语言模型(NPLM)阅读笔记
神经网络结构
Bengio 使用了一个三层的神经网络来构建语言模型,本质上是对 n-gram 模型的改进。
通过前 $n-1$ 个词即 $w_{t-n+1}, \…, w_{t-2}, w_{t-1}$ 来预测第 $n$ 个词即 $w_t$。
网络结构描述
网络的第一层(输入层)是将 $C(w_{t-n+1}), \…, C(w_{t-2}), C(w_{t-1})$ 拼接在一起,形成的向量为 $x$,维度为 $(n-1)m$。
网络的第二层(隐藏层)如同普通神经网络,直接使用 $d + Hx$ 计算得到。$d$ 是一个偏置项。在此之后,使用 \tanh 作为激活函数。
网络的第三层(输出层)一共有 $|V|$ 个节点,每个节点 $y_i$ 表示下一个词为 $i$ 的未归一化 log 概率。最后使用 \text{softmax} 激活函数将输出值 $y$ 归一化成概率。最终,$y$ 的计算公式为:
$$y = b + Wx + U \tanh(d + Hx)$$
式子中的 $U$ ($|V| \times h$ 的矩阵) 是隐藏层到输出层的参数,整个模型的多数计算集中在 $U$ 和隐藏层的矩阵乘法中。
式子中还有一个矩阵 $W$ (维度为 $|V| \times (n-1)m$),这个矩阵包含了从输入层到输出层的直连边。如果不需要直连边的话,将 $W$ 置为 0 就可以了。


