经典回顾:NNLM模型

NNLM模型通过连续空间编码解决N-gram模型的不足,增强语言模型的泛化能力。文章介绍了模型结构,包括投影层、隐藏层和输出层,以及训练过程中的参数更新。此外,详细阐述了模型的目标函数、预测过程和softmax的另一种表示形式。
摘要由CSDN通过智能技术生成

简介

NNLM模型是一种语言模型,即给定语料库后,向模型输入前n个单词,模型输出可能性最大的第n+1单词。

动机

尽管N-gram语言模型已经在多种任务中取得了不错的效果,N-gram是考虑到语料库中存在连续的单词段进行概率的计算,这就不可避免的会遇到一个无法解决的问题:当输入的句子中存在没有在语料库出现的单词段,就会导致最终的概率计算为0;并且由于N的一般取值较小,也会进一步降低上下文对预测的结果影响。为了解决这两个问题(增强语言模型的泛化能力),可以从以下两个方面入手:首先要考虑单词的相似性,其次要增加上下文的数量。基于这两点提出了基于连续空间编码+神经网络的NNLM模型。

连续空间编码

在nlp任务中,维度灾难是一个无法避免的问题,而这个问题的产生和单词的编码方式有着密切的关系。一般对于单词普遍采用one-hot编码方式,如果语料库的单词数目特别多,就会导致一个单词对应的one-hot编码维度十分庞大。如果一个语料库的有10000个单词,那么一个包含10个单词的句子就包含100000维度。并且one-hot编码并不能体现出各个单词之间的相似性,导致了语言模型的泛化能力很差。将one-hot编码转变为连续空间的编码是一种很好的做法,在连续空间中每个单词被映射为空间上的一个点,通过计算两个连续空间编码向量的余弦相似度可以计算两个单词的相似性,在减少编码单词所需要维度的同时,又增加了特征维度。这里有人会说离散空间(非one-hot)的编码也可以是实现上述要求,但是离散空间的点相比于连续空间能表示单词毕竟是有限的,并且对于神经网络来说,连续空间编码能学习到局部更加平滑的函数。因此对单词进行连续空间编码相比于one-hot编码既能解决单词相似性的问题,又能减少增加上下文带来的维度开销。

模型

在这里插入图片描述
整个结构共有3层(不包含输入层),分别为投影层,隐藏层,输出层。值得一提的是,训练过程中所有层的参数都会进行更新,因此该语言模型训练完成后,也产生了一个有效的对于词汇表中各个单词在连续空间的编码

变量解释:

V V V:表示单词表中的单词个数
m m m:表示单词在连续空间编码对应的维度
w t − 1 w_{t-1} wt1:表示已知的第t-1个单词(第t个单词为模型预测的输出)
C C C:表示投影层的参数矩阵,尺寸为V * m
C ( w t − 1 ) C(w_{t-1}) C(wt1):表示第t-1个单词经过投影层投影后的编码,尺寸为1*m
x x x:表示投影层输出拼接结果,尺寸为1 * (n-1)m
H H H:表示隐藏层参数矩阵,尺寸为h * (n-1)m
d d d:表示隐藏层偏置
z z z:表示隐藏层输出结果,尺寸为1 * h
U U U:表示输出层参数矩阵,尺寸为v * h
b b b:表示输出层偏置
W W W:表示可选的参数矩阵,可以全为0可以不全为0

目标函数:

函数表达:
L = 1 T Σ p ( w t ∣ w t − 1 , . . . , w t − n + 1 ) L=\frac{1}{T}Σp(w_t|w_{t-1},...,w_{t-n+1})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值