CS224N-语言模型介绍

定义

预测下一个单词

语言模型是指根据给定序列预测下一个单词的任务,其形式化表达为:给定单词序列X(1), X(2), … , X(t),然后预测单词X(t+1)的概率分布:
在这里插入图片描述
在这里插入图片描述

为文本分配概率

语言模型的另一种定义是给给定文本序列分配概率(这个概率代表了该文本序列出现的可能性大小)。
例如,给定一段文本X(1), X(2), … , X(t),那么这段文本出现的概率为:
在这里插入图片描述
语言模型在现实生活中具有非常广泛的应用,例如输入法和搜索引擎的输入联想功能。

语言模型实现

N-gram 语言模型

N-grams指的是长度为n的连续单词序列,常用的包括unigrams、bigrams、tri-grams、4-grams。
N-gram语言模型的实现基于马尔科夫假设,即单词X(t+1)仅仅依赖于前面的n-1个单词。因此上述公式可以改写为:
在这里插入图片描述
实际计算中,使用n-gram在语料出现的频率代替实际的概率,如下所示:
在这里插入图片描述
语言模型主要存在数据稀疏的问题(sparsity problem)。这个问题可以从两方面分析。
首先,如果x(t+1), x(t),…,x(t-n+2)从未在语料出现过,那么根据根据上述公式计算得到的概率直接为0。为了避免这种情况,可以采用smoothing的方法,即给分子添加一个小的θ。
其次,如果x(t),…,x(t-n+2)从未在语料出现过,那么就无法根据上述公式进行计算。对于这种情况,可以采取backoff的方法,即使用count(x(t-1),…,x(t-n+2)) 来代替count(x(t),…,x(t-n+2))。
数据稀疏问题会随着n的增加而变得更加严重,因此在实际应用时,n一般不超过5。
除了数据稀疏问题之外,n-gram 语言模型还存在存储空间过大的问题。由于n-gram语言模型在计算时需要保存语料中所有n-gram出现的次数,因此模型的大小会随着n和语料的增加而增大。

神经网络语言模型

Bengio, et al在《A Neural Probabilistic Language Model》中首次将神经网络引入到语言模型任务。在这篇论文中,Y. Bengio, et al使用一个固定窗口的深度神经网络来实现语言模型,其结构如图所示:
在这里插入图片描述
NNLM虽然成功解决了n-gram模型的数据稀疏和存储问题,但是也存在一些其它问题:
(1)模型中设定的窗口尺寸设定比较小。
(2)模型中的权重矩阵W随窗口尺寸增大而增大,因此窗口尺寸只能局限于一定范围。
(3)输入处理方式不对称,即输入单词在计算中会分别与W中的不同权重相乘。

RNN语言模型

RNN应用到语言模型中主要有以下优势:
(1)可以处理任意长度的输入序列;
(2)理论上在计算t时刻的状态时可以应用前面时刻获得的信息;
(3)模型的大小不受输入序列长度影响;
(4)每一个时间步对输入的计算可以共享相同权重;

RNN的缺陷在于:
(1)计算速度过慢
(2)在实际应用,由于梯度消失问题,RNN无法捕捉长距离依赖特征。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值