注:cs224n

语言模型:一个用来预测下一个单词的系统模型
用公式可以表示为:
P(x(t+1)=wj|x(t),...,x(1))
这里wj是一个位于词汇表V={w1,...,w|V|}中的词。

一、最初用的语言模型被称为n-gram Langurage Models
语言模型与RNN

n-gram model 引入HMM假设:x(t+1)只依赖于前面的n-1个词
即:P(x(t+1)=wj|x(t),,x(1))=P(x(t+1)=wj|x(t),,x(tn2))=P(x(t+1),x(t),,x(tn+2))P(x(t),,x(tn+2))

用频率逼近概率得:
=count(x(t+1),x(t),...,x(tn+2))count(x(t),...,x(tn+2))

例:
语言模型与RNN

n-gram langurage model 存在的问题
语言模型与RNN
语言模型与RNN

二、那么如何建立一个神经网络语言模型呢?
首先想到的当然是与n-gram langurage model类似的窗口模型。
语言模型与RNN

该模型是一个限定窗口长度的语言模型。相比于传统的n-gram langurage model 他的优势是:
一、不存在向量稀疏问题
二、模型复杂度为O(n)
而该模型得缺点在于
一、固定窗口往往太小
二、若增加窗口 W得维度将增加(w维度与窗口大小成正比)
语言模型与RNN

三、引入循环神经网络
语言模型与RNN

RNN的优缺点:
语言模型与RNN
Training RNN langurage Model
1、将预料库中的序列输入RNN-LM计算每一个时刻输出结果的分布情况。
2、通常选用交叉熵来计算损失

语言模型与RNN

对总的交叉熵去均值作为最终损失函数:
语言模型与RNN

其模型表示为:
语言模型与RNN

注:在整个corpus上计算交叉熵的复杂度太高,通常采用随机梯度下降来计算。即在一个batch上计算交叉熵。

Question: J(t)(θ)Wh的导数?

由链式法则:
语言模型与RNN
因此:
语言模型与RNN

这里原本是对Wh求导,但在求和的时候是对每一个时刻的w求导原因是:

语言模型与RNN

六、评价语言模型

用perplexity评价语言模型

语言模型与RNN

语言模型与RNN

相关文章:

  • 2022-12-23
  • 2021-11-01
  • 2021-04-30
  • 2021-11-13
  • 2021-04-07
  • 2022-01-07
  • 2021-12-18
  • 2022-12-23
猜你喜欢
  • 2021-04-15
  • 2021-08-15
  • 2021-05-19
  • 2021-08-26
  • 2022-12-23
  • 2021-07-29
相关资源
相似解决方案