语言模型与RNN

本文介绍了语言模型的概念及其在预测下一个单词的应用,并详细对比了n-gram模型与神经网络语言模型的特点。文中还探讨了如何利用神经网络建立语言模型,包括其优势与局限性,以及循环神经网络在此领域的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:cs224n

语言模型:一个用来预测下一个单词的系统模型 用公式可以表示为: $P(x^{(t+1)}=w_j |x^{(t)},...,x^{(1)})$ 这里$w_j$是一个位于词汇表V={$w_1,...,w_{|V|}$}中的词。
一、最初用的语言模型被称为n-gram Langurage Models ![这里写图片描述](https://img-blog.csdn.net/20180818110441514?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob3VrYWl5aW5faHphdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

n-gram model 引入HMM假设:x(t+1)x^{(t+1)}x(t+1)只依赖于前面的n-1个词
即:P(x(t+1)=wj∣x(t),...,x(1))=P(x(t+1)=wj∣x(t),...,x(t−n−2))=P(x(t+1),x(t),...,x(t−n+2))P(x(t),...,x(t−n+2))P(x^{(t+1)}=w_j |x^{(t)},...,x^{(1)})=P(x^{(t+1)}=w_j |x^{(t)},...,x^{(t-n-2)}) =\frac{P(x^{(t+1)},x^{(t)},...,x^{(t-n+2)})}{P(x^{(t)},...,x^{(t-n+2)})}P(x(t+1)=wjx(t),...,x(1))=P(x(t+1)=wjx(t),...,x(tn2))=P(x(t),...,x(tn+2))P(x(t+1),x(t),...,x(tn+2))

用频率逼近概率得:
$=\frac{count(x{(t+1)},x{(t)},…,x{(t-n+2)})}{count(x{(t)},…,x^{(t-n+2) } ) } $

例:
这里写图片描述

n-gram langurage model 存在的问题 ![这里写图片描述](https://img-blog.csdn.net/20180818111727732?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob3VrYWl5aW5faHphdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) ![这里写图片描述](https://img-blog.csdn.net/20180818111817499?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob3VrYWl5aW5faHphdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
二、那么如何建立一个神经网络语言模型呢? 首先想到的当然是与n-gram langurage model类似的窗口模型。 ![这里写图片描述](https://img-blog.csdn.net/20180818112246521?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob3VrYWl5aW5faHphdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

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

三、引入循环神经网络 ![这里写图片描述](https://img-blog.csdn.net/20180818112823505?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob3VrYWl5aW5faHphdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

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

这里写图片描述

对总的交叉熵去均值作为最终损失函数:
这里写图片描述

其模型表示为:
这里写图片描述

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

Question: J(t)(θ)J^{(t)}(\theta)J(t)(θ)WhW_hWh的导数?

由链式法则:
这里写图片描述
因此:
这里写图片描述

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

这里写图片描述

六、评价语言模型

用perplexity评价语言模型

这里写图片描述

这里写图片描述

欢迎加入人工智能学习圈:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值