自然网络语言模型(NNLM)

"该博客探讨了如何使用神经网络语言模型(NNLM)进行文本序列中的词汇预测。通过将前n个词汇转化为d维向量并输入到神经网络中,经过tanh层和sigmoid层处理,计算条件概率P(w_t|w_{t-1}
摘要由CSDN通过智能技术生成

在一语料库中, 假设有长度为 T 的文本序列 S : = w 1 , w 2 , ⋯   , w T S:=w_{1},w_{2}, \cdots, w_{T} S:=w1w2,,wT. 如果选子序列 S : = w t − 1 , w t − 2 , ⋯   , w t − n + 1 S:=w_{t-1},w_{t-2}, \cdots, w_{t-n+1} S:=wt1wt2,,wtn+1, 想预估 词汇 w t w_t wt 出现的概率, 即计算条件概率
P ( w t ∣ w t − 1 , w t − 2 , ⋯   , w t − n + 1 ) . P(w_t| w_{t-1},w_{t-2}, \cdots, w_{t-n+1}). P(wtwt1wt2,,wtn+1).
可以使用 NNLM 的方法, 其工作流程见下图在这里插入图片描述
我们先假定语料库生成的 词汇共有 v 个, 则 每个词汇的 1-hot 为 v-维行向量.
第一步, 将 词向量 w i w_i wi, i = t − 1 , ⋯   , t − n + 1 i=t-1,\cdots,t-n+1 i=t1,,tn+1, 投放到 d-维向量空间, d由个人选定. 此处使用的是 v × d v \times d v×d 矩阵C. 输出为 w i C w_i C wiC, 将 n-1 个输出按顺序拼接成 ( n − 1 ) d (n-1)d (n1)d-维 行向量 x.

第二步, 将 x 输入到 tanh层中, 这是一个隐含层, 神经元个数可以自己选定设为 h. 于是有一 h × ( n − 1 ) d h \times (n-1)d h×(n1)d 的转移 矩阵, 设为 H. 这个层的输出为 h-维 向量 y’=tanh(xH+ b’).

第三步, 将 x , y ′ x,y' x,y 输入sigmoid 层, 输出为 一个行向量 y_t, 输出的维度是 v. 这里 两个转移矩阵 W ( n − 1 ) d × v W_{(n-1)d \times v} W(n1)d×v, U h × v U_{h \times v} Uh×v.
y t = s i g m o i d ( b + x W + y ′ U ) . y_t=sigmoid(b +xW + y'U). yt=sigmoid(b+xW+yU).

使用最大似然估计计算 参数的值.
假定 w t w_t wt 的索引是 i t i_t it, 令 y t ( i t ) y_t(i_t) yt(it) 表示 y t y_t yt 的第 i t i_t it个分量, 也即预测为 w t w_t wt 的概率. 希望 ∏ t = 1 T y t ( i t ) \prod_{t=1}^T y_t(i_t) t=1Tyt(it) 取最大值,
使用 log 后, 取均值, 变成希望
L ( H , b ′ , W , b , C ) : = 1 T ∑ l o g   y t ( i t ) L(H,b',W,b,C):=\frac{1}{T} \sum log \, y_t(i_t) L(H,b,W,b,C):=T1logyt(it)

取最值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值