统计语言模型

时间:2021-08-31 01:43:05

1. 统计语言模型

  • 句子 W=wT1=(w1,w2,,wT),wT1 表示句子的第一个词语到第T个词语。
  • P(W)=P(wT1)=P(w1,w2,,wT)=P(w1)×P(w2|w1)×P(w3|w21)××P(wT|wT1)
  • 句子长度为 T,词典 D 的大小为 N ,存在 NT 种句子,每个句子需要 T 个参数,共 T×NT 个参数(其中有重复的)。
  • 下面讨论两种计算参数的方法:n-gram模型、神经网络。

2. n-gram 模型

  • n-1 阶的 Markov 假设: 一个词出现的概率,仅与前 n-1 个词语有关,即
    P(wk|wk11)P(wk|wk1kn+1)
  • 在语料库C足够大时,
    P(wk|wk1kn+1)count(wkkn+1)count(wk1kn+1)
  • 理论上,n 越大越好,参数越多,模型的可区别性越好;但n较大时,由于语料库的限制,每个参数的实例变少,可靠性降低;一般最大 n=3
  • 平滑技术。
  • n-gram 主要统计语料中各种词串出现的次数,以及做平滑处理。需要计算某个句子的概率时,找到相关的参数连乘即可。

3. 神经概率语言模型

两种求参方法
  • 目标函数
    L=wCP(w|context(w))
    其中,C 为语料库,context(w) 为 w 的上下文。
    比如在 n-gram 模型中, context(wt)=wt1tn+1 ,即词 w 的前 n-1个词。
  • 方法一:最大对数似然
    L=wClogP(w|context(w))
    求得最优参数 θ
  • 方法二:把概率视为一个关于 wcontext(w) 的函数 F ,即
    P(w|context(w))=F(w,context(w),θ)
    一旦求得最优解 θ 后, F 也被唯一确定,则概率 P(w|context(w)) 可以通过函数 F(w,context(w),θ) 来计算。
  • 不需要保存所有的概率值,而是通过 F() 直接计算。
  • 通过选取合适的模型,可使得 F() 的参数个数远小于 n-gram 模型中参数的个数。
神经网络构造 F()
  • 词向量:对于词典 D 中的任意一个词 w|D|=Nv(w)Rmm 为词向量长度。
  • 训练样本: (context(w),w) context(w)=wt1tn+1
    统计语言模型

  • 输入层 n1 个结点,每个结点为一个词向量

    v(wi)Rmi=1,,n1
    在通常的监督学习中,输入是已知的;但在这个模型中,输入的词向量未知,需要随机初始化,并通过训练得到。

  • 投影层 (n1)×m 个结点,

    xwR(n1)×m
    v(wt1),v(wt2),,v(wtn+1) 首尾相接

  • 隐藏层

    zw=tanh(Wxw+p)zwRnhWRnh×(n1)mpRnh
    其中, nh 为超参数。

  • 输出层

    yw=Uzw+qywRNURN×nhqRN
    其中, yw=(yw,1,yw,2,,yw,N)T

  • Softmax yw 不能表示概率,想要 yw 的第 i 个分量 ym,i 表示上下文为 context(w) 时下一个词是词典 D 中第 i 个词的概率,需要把 N 个输出通过 Softmax 归一化,即
    P(w|context(w))=eyw,iwNi=1eyw,i
    其中, iw 表示词 w 在词典 D 中的索引。
  • 优势1:神经概率语言模型假定词义相近的词的词向量也相似(欧氏距离小或者内积大),词向量中的小变化对概率的影响也是小的。
  • 优势2:不需要做平滑处理, Sotfmax 保证了概率值不会为0或1。
  • 词向量有两种表示方法:one-hot representation(维数灾难,没有考虑词与词的相关性);distributed representation(低维表示,引入距离表示词之间的相似性)。