斯坦福大学2019自然语言处理CS224n,Lecture6:Language Models and Recurrent Neural Networks

内容大纲:

语言模型:

N-gram语言模型:

n-gram指的是n个连续的词。通过统计不同n-gram的词频信息来预测下一个词是什么。

假设前提:长文本的第X(t+1)这个词出现概率等于前面的n-1个词预测下一个词出现的概率,也就是说:

怎么求上面的概率呢?

在一个很大的语料文本中计算他们出现的次数做比例。

举个例子:

对于4-gram,我们忽略掉除了三个文本之前的词汇,然后分别计算连续三个词汇出现的次数,以及与空缺文本之前的三个词汇拼接的空缺个文本出现的概率。

这样可能会出现的稀疏问题:

分子项为0,也就是说没有对应的w。(平滑smoothing.:设置一个最小值k,对于文本语料|V|中每一个词。)

底数为0,也就是说语料库中寻找不到这三个词汇同时出现的情况。(backoff:三个不同时出现那我们就计算两个词,是在不行计算最近的一个词)

 

语料存储的问题:

我们需要计算大量词汇出现的次数,而且这些词汇组合非常多,需要大量存储空间。而且N越大组合的可能性就越大。

 

由于上面两个原因:不应该将N-gram的N设置比较大的数。

由于N-gram语言模型的特性,因此可以用来生成文本。

我们知道n-gram模型是基于一种计数的方式,增加n会导致稀疏问题,那能不能换一个模型来避免这种情况。

 

自然语言模型:

A fixed-window neural Language Model:

我们输入fixed window长度的词汇,通过词向量矩阵的一系列变换,最后得到一个向量用来预测下一个词的分布概率。

 

Softmax是将向量映射为概率分布。

对比前面的模型:

优点:

  1. 没有稀疏的问题。因为是通过softmax映射为|V|个词的概率分布。
  2. 不要存储所有的n-gram

缺点:

  1. Fixed window太小了。
  2. 但是会窗口大的话,W矩阵也会比较大。
  3. 窗口不能无限大。
  4. 不同的词汇x1,x2乘以W中不同的权重。对于不同的输入实际上会有不同的权重。(一个词学到的参数,没有办法共享给其他词汇;有一些词汇会有一些共性,实际中需要去学习所有词汇的权重,而不能共享一些权重,这样不高效)

由于自然语言模型只能处理固定长度,实际上我们希望能够处理任意长度的输入。

这个时候提出了一个新的模型—RNN。

Recurrent Neural Networks (RNN):

 

核心是使用了同一个权重举证W,因此可以处理任意长度的矩阵:(与N-gram不同,n-gram需要针对每一个词取一个权重)

输入的x1,x2.....会是一个序列。

RNN语言模型:

 

RNN语言模型的优点:

  1. 可以处理任意长度的输入。
  2. 模型的量级不会随着输入的增加而增加。
  3. 信息的复用,能有利用前面的信息。
  4. 使用的权重都一样,能够共享一些学习信息。

RNN语言模型的缺点:

  1. 循环的计算比较慢,没有办法并行处理。因为每次计算的依赖关系。
  2. 在实际应用场景中,很多层之前的信息很难利用到。(太远了记忆效果差)

训练RNN语言模型方法:

  1. 获得语料数据,将数据喂给RNN-LM。
  2. 预测出每一个步长的y
  3. 交叉熵损失函数

训练过程如下:

 

 

训练过程如下:

 

如果语料是几亿条的语料,那岂不是要算很久很久?

实际应用当中我们通常会控制训练预料的长度。(一个文档)

然后求偏导数,通过SGD来更新参数Wh,We。

那我们怎么通过反向传播更新权重:随步长的方向传播计算

可以用RNN模型来生成文本信息。

 

评估语言模型:

为什么需要语言模型?

语言模型是一个基础任务,帮我我们理解语言。

语言模型是很多自然语言处理任务的子模块。

 

RNN可以用在序列词性标注。

RNN在情感分类应用:

 

语音识别:

问答:

利用RNN语言模型将问题编码。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值