传统神经网络语言模型与word2vec 篇(一)

神经网络语言模型NNLM(Neural Network Language Model)
用神经网络来训练语言模型的思想来源于2003年Bengjo发表的《A Neural Probabilistic Language Model》,下面我们来详细分析传统的神经网络模型—神经概率模型,即上面提到的Bengjo发表的NPLM的模型结构(包括输入层,隐藏层,输出层)。
整体模型:
在这里插入图片描述
在训练过程中,输入是一串词序列,输出是该序列下一个词的概率值。假设有一组序列: w 1 , w 2 , ⋅ ⋅ ⋅ , w t w_{1},w_{2},\cdot \cdot \cdot ,w_{t} w1,w2,,wt , 其中 w i ϵ v , v w_{i} \epsilon v, v wiϵv,v为所有单词的集合,最终训练的模型公式如下:
f ( w t , w t − 1 , ⋅ ⋅ ⋅ , w t − n + 1 ) = P ( w t = i / c o n t e n x t ) = P ( w t / w 1 t − 1 ) f(w_{t},w_{t-1},\cdot \cdot \cdot ,w_{t-n+1}) = P(w_{t}=i/contenxt)=P(w_{t}/w^{t-1}_{1}) f(wt,wt1,,wtn+1)=P(wt=i/contenxt)=P(wt/w1t1)
参数解释:
w t w_{t} wt为序列中的第t个word, w t − n + 1 w_{t-n+1} wtn+1为输入序列长度为n时的第一个单词。 w 1 t − 1 w^{t-1}_{1} w1t1为输入序列从第一个word到第t-1个word的子序列。
该模型需要满足如下两个条件,即所求概率值大于0,所有word出现的概率之和为1
f ( w t , w t − 1 , ⋯   , w t − n + 2 , w t − n + 1 ) > 0 f\left(w_{t}, w_{t-1}, \cdots, w_{t-n+2}, w_{t-n+1}\right)>0 f(wt,wt1,,wtn+2,wtn+1)>0
∑ i = 1 ∣ V ∣ f ( i , w t − 1 , ⋯   , w t − n + 2 , w t − n + 1 ) = 1 \sum_{i=1}^{|V|} f\left(i, w_{t-1}, \cdots, w_{t-n+2}, w_{t-n+1}\right)=1 i=1Vf(i,wt1,,wtn+2,wtn+1)=1

输入层: 从one hot embedding映射到distribution representation
把输入word的0,1稀疏embedding通过权重矩阵映射到低纬度的实数矩阵。
在这里插入图片描述
C实际上就是一个 |V| x m的自由参数矩阵,|V| 表示词表的大小, m 表示每个词的维度。
C ϵ R ∣ V ∣ ∗ m C \epsilon R^{|V|*m} CϵRVm为映射矩阵,将输入的每个词映射为一个特征向量。 C ( i ) ϵ R m C(i) \epsilon R^{m} C(i)ϵRm表示词典中第i个词对应的特征向量,其中m表示特征向量的维度。最后得到的是一个(n-1) x m维向量。

隐藏层
在这里插入图片描述
参数解释:
h为隐藏层神经元的个数, H ϵ R h ∗ ( n − 1 ) m H\epsilon R^{h*(n-1)m} HϵRh(n1)m为输入层到隐藏层的权重矩阵, d ϵ R h d\epsilon R^{h} dϵRh是隐藏层的偏置矩阵。

输出层
输出层受到隐藏层输出a和输入层输出x的影响。在这里插入图片描述
输入为 x = ( C ( w t − n + 1 ) , . . . , C ( w t − 1 ) ) x=(C(w_{t-n+1}),...,C(w_{t-1})) x=(C(wtn+1),...,C(wt1)) W ϵ R ∣ V ∣ ∗ ( n − 1 ) m W\epsilon R^{|V|*(n-1)m} WϵRV(n1)m是可选参数,,如果输入层与输出层没有直接相连(如图中绿色虚线所示),则可令W=0 。 U ϵ R ∣ V ∣ ∗ h U \epsilon R^{|V|*h} UϵRVh是隐含层到输出层的权重矩阵。 d ϵ R h d\epsilon R^{h} dϵRh b ϵ R ∣ V ∣ b\epsilon R^{|V|} bϵRV是隐藏层的偏置矩阵。

模型的训练
损失函数为:
在这里插入图片描述
参数解释:
Θ \Theta Θ为模型的所有参数, R ( Θ ) R(\Theta) R(Θ)为正则化项, 使用梯度下降法更新模型参数

按照自己的理解,梳理了一下整个流程的维度变化:
在这里插入图片描述
下图中第一层蓝框为映射层,即输入层。第二层蓝框为隐藏层。第三层蓝框为输出层。
在这里插入图片描述
nnlm与word2vec区别:
nnlm是根据前文生成下一个单词,而word2vec分为根据上下文预测中间词,或根据某一个词预测上下文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值