神经网络为什么可以表示语言模型

最初对语言模型的理解源于n-gram语言模型,但后来出现了RNNLM等一众神经网络语言模型,就有了这个疑问:神经网络为什么可以表示语言模型?

首先,语言模型本质上是概率分布

A statistical language model is a probability distribution over sequences of words.

语言模型的建模也比较直观,序列 \(w_1, w_2, \ldots w_m\) 的出现概率可以表示为:

\[P(w_1, w_2, \ldots w_m) = \prod^{m}_{i = 1}{P(w_i|w_1, w_2, \ldots w_{i-1})}\]

问题就变成了神经网络是否可以拟合任意概率分布?之前看到 一篇文章 提到了这点:

Neural networks are universal function approximators that can approximate any functions to arbitrary precisions

进一步看到了通用近似定理 # Universal approximation theorem:

In the mathematical theory of artificial neural networks, universal approximation theorems are results that establish the density of an algorithmically generated class of functions within a given function space of interest. Typically, these results concern the approximation capabilities of the feedforward architecture on the space of continuous functions between two Euclidean spaces, and the approximation is with respect to the compact convergence topology.

这个理论说明了神经网络可以在欧氏空间以任意精度拟合任意函数,但坏消息是这个理论只能证明它存在,并没有构造对应神经网络的方法。

通用近似定理为神经网络学习复杂函数的能力奠定了理论基础,也是神经网络可以用来拟合和表示语言模型的原因。