神经语言模型

Posted zhiyong_will

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经语言模型相关的知识,希望对你有一定的参考价值。

1. 语言模型

什么是语言模型?通俗的来讲是判断一句话是否符合人说话的模型,如可以说”猫有四条腿“,却不能说”四条腿有猫“。因为”四条腿有猫“这样的表述不符合人们的正常语言规范。在语言模型的发展过程中,分别出现了专家语法规则模型,统计语言模型,神经网络语言模型三个阶段。其中,专家语法规则模型出现在语言模型的初始阶段,我们知道,每一种语言都有其特定的语法规则,因此在早期,人们设法通过归纳出的语法规则来对语言建模;统计语言模型则是对句子的概率分布建模,通过对大量语料的统计发现,符合人们正常语言规范的句子出现的概率要大于不符合语言规范的句子,如上述的“猫有四条腿”出现的概率要大于“四条腿有猫”的概率;神经网络语言模型是在统计语言模型的基础上,通过神经网络模型对句子的概率分布建模的方法。下面将从统计语言模型开始讲起。

2. 统计语言模型

2.1. 统计语言模型

统计语言模型(statistical language modeling)通过对大量语料的统计预测出句子的分布。用形式表述,即对于一段文本序列 S = w 1 , w 2 , ⋯   , w T S=w_1,w_2,\\cdots ,w_T S=w1,w2,,wT,它的概率可以表示为

P ( S ) = P ( w 1 , w 2 , ⋯   , w T ) P\\left ( S \\right )=P\\left ( w_1,w_2,\\cdots ,w_T \\right ) P(S)=P(w1,w2,,wT)

通过概率中的链式法则,可以求得上述句子的概率值:

P ( w 1 , w 2 , ⋯   , w T ) = P ( w 1 ) ⋅ P ( w 2 ∣ w 1 ) ⋯ P ( w T ∣ w 1 , w 2 , ⋯ w T − 1 ) P\\left ( w_1,w_2,\\cdots ,w_T \\right )=P\\left ( w_1 \\right )\\cdot P\\left ( w_2\\mid w_1 \\right )\\cdots P\\left ( w_T\\mid w_1,w_2,\\cdots w_T-1 \\right ) P(w1,w2,,wT)=P(w1)P(w2w1)P(wTw1,w2,wT1)

其中, P ( w i ∣ w 1 , ⋯   , w i − 1 ) P\\left ( w_i\\mid w_1,\\cdots ,w_i-1 \\right ) P(wiw1,,wi1)表示的是在词 w 1 , ⋯   , w i − 1 w_1,\\cdots ,w_i-1 w1,,wi1出现的条件下词 w i w_i wi出现的概率,对于以上的统计语言模型,每一个词的概率便是模型的参数,如上述的 P ( w 1 ) P\\left ( w_1 \\right ) P(w1) P ( w 2 ∣ w 1 ) P\\left ( w_2\\mid w_1 \\right ) P(w2w1)等。为了计算模型的参数,需要统计每个词出现的概率,如对于词 w i w_i wi,可以通过以下的方式统计得到:

P ( w i ∣ w 1 , ⋯   , w i − 1 ) = N ( w 1 , w 2 , ⋯   , w i ) N ( w 1 , w 2 , ⋯   , w i − 1 ) P\\left ( w_i\\mid w_1,\\cdots ,w_i-1 \\right )=\\fracN_\\left ( w_1,w_2,\\cdots ,w_i \\right )N_\\left ( w_1,w_2,\\cdots ,w_i-1 \\right ) P(wiw1,,wi1)=N(w1,w2,,wi1)N(w1,w2,,wi)

其中, N ( w 1 , w 2 , ⋯   , w i ) N_\\left ( w_1,w_2,\\cdots ,w_i \\right ) N(w1,w2,,wi)表示的在文本语料中出现文本序列 w 1 , w 2 , ⋯   , w i w_1,w_2,\\cdots ,w_i w1,w2,,wi的次数。

在实际的过程中,如果文本的长度比较长,要估算 P ( w i ∣ w 1 , ⋯   , w i − 1 ) P\\left ( w_i\\mid w_1,\\cdots ,w_i-1 \\right ) P(wiw1,,wi1)是非常困难的,主要体现在以下的两个方面:

  1. 需要计算的参数过多。假设词库 V V V的大小为100000,对于包含10个词的序列,潜在的参数个数为 10000 0 10 − 1 100000^10-1 100000101
  2. 数据极度稀疏,长序列的出现频次较低;

2.2. n-gram模型

为了简化上述的问题,通常在估算条件概率时,距离大于等于 n n n的上文词会被忽略,即所谓的n-gram模型。n-gram模型是基于马尔科夫假设,即当前词出现的概率仅依赖前 n − 1 n−1 n1个词

P ( w i ∣ w 1 , ⋯   , w i − 1 ) ≈ P ( w i ∣ w i − n + 1 , ⋯   , w i − 1 ) P\\left ( w_i\\mid w_1,\\cdots ,w_i-1 \\right )\\approx P\\left ( w_i\\mid w_i−n+1,\\cdots ,w_i-1 \\right ) P(wiw1,,wi1)P(wiwin+1以上是关于神经语言模型的主要内容,如果未能解决你的问题,请参考以下文章

神经语言模型

神经语言模型

理解n-gram及神经网络语言模型

如何在R语言中进行神经网络模型的建立

用 C 语言训练的神经网络模型?

R语言neuralnet包构建神经网络模型:基于乳腺癌数据集