A Neural Probabilistic Language Model
本文提出通过学习单词的分布式表示来解决维度问题。模型通过训练语句对指数级语义相关的句子进行建模。同时学习(1)每个单词的分布式表示(2)单词序列的概率函数。泛化(Generalization)是指从未出现的单词序列,可以通过类似的词的组成的已经出现的句子来获得较高的概率。本文介绍了使用神经网络的概率函数的实验,改进了n-gram模型,可以利用更长的上下文,并在两个文本预料上都显示了很好的效果。
• 利用神经网络对高维离散的分布进行建模,对于学习$Z_{1} \ldots Z_{n}$的联合概率分布有很大用处 (Bengio and Bengio, 2000a,b)。在该模型 中,联合概率分布被分解为条件概率的乘积:
$$ \hat{P}\left(Z_{t}=z_{1}, \ldots, Z_{n}=z_{n}\right)=\prod_{i} \hat{P}\left(Z_{i}=z_{i} \mid g_{i}\left(Z_{i-1}=z_{i-1}, Z_{i-2}=z_{i-2}, \ldots, Z_{1}=z_{1}\right)\right) $$
模型:$f\left(w_{t}, \ldots, w_{t-n+1}\right)=\hat{P}\left(w_{t} \mid w_{1}^{t-1}\right)$
其中,训练集由 $w_{1} \ldots w_{t}$ 序列组成,$w_{t} \in V$,单词 $V$ 是有限的集合。将模型分解为两个部分:
● 将词汇表 $V$ 中的元素 $i$ 映射到实向量 $C(i) \in \mathbb{R}$ 中,该向量表示词汇表中每个词的分布式特征向量。 $C(i)$ 是一个大小为 $|V| \times m$ 的自 由参数矩阵。 ● 函数 $g$ 将上下文单词的特征向量 $\left(C\left(w_{t-n+1}\right), \ldots, C\left(w_{t-1}\right)\right)$作为输入序列,将它们映射为 $V$ 中下一个单词 $w_{t}$ 的条件概率分布。 $g$ 的输出是第 $i$ 个单词的估计概率向量 $\hat{P}\left(w_{t}=i \mid w_{1}^{t-1}\right)$ 。如下图所示

$$ f\left(i, w_{t-1}, \ldots, w_{t-n+1}\right)=g\left(i, C\left(w_{t-1}\right), \ldots, C\left(w_{t-n+1}\right)\right) $$
函数 $f$ 是映射 $C$ 和 $g$ 的组合,$C$ 在上下文所有单词间共享。矩阵 $C$ 的第 $i$ 行对应第 $i$ 个单词的特征向量 $C(i)$ 。函数 $g$ 通过带有参数 $w$ 的前馈或递归神经网络或其他参数化函数来实现。整体参数集 $\theta=(C, w)$。 训练通过最大化训练语料库的惩罚似然估计 $\theta$ 来实现:
$$ L=\frac{1}{T} \sum_{t} \log f\left(w_{t}, w_{t-1}, \ldots, w_{t-n+1} ; \theta\right)+R(\theta) $$
其中 $R(\theta)$ 是正则项。在模型中自由参数的数量至于单词数量 $V$ 线性相关 在本文的大部分实验中,神经网络具有一个隐藏层,单词特征到输出的直接连接是可选的。因此实际存在两层隐藏层:共享的单词特征层 $C$ ,和普通的双曲正切隐藏层。神经网络使用softmax输出层计算以下函数以保证正概率总和为1:
$$ \hat{P}\left(w_{t} \mid w_{t-1}, \ldots, w_{t-n+1}\right)=\frac{e^{y_{u_{t}}}}{\sum_{i} e^{y_{i}}} $$
$y_{i}$ 是对于每个输出单词 $i$ 计算的末归一化对数概率: