神经网络语言模型中,词向量为什么可以随着模型的迭代而改变?

在神经网络语言模型中,通常我们认为词向量是模型的输入。

对此不太熟悉的朋友可以参考博客:自然语言处理NLP(3)——神经网络语言模型、词向量

神经网络语言模型的架构是这个样子的:
神经网络语言模型
然而,在模型训练的过程中,输入层的词向量可以随着模型的迭代而改变,就像调整上图中的权重: W , U , H W,U,H W,U,H一样。

可能很多人有同样的疑问:词向量作为模型的输入,怎么能改变呢?
朋友们可以先仔细思考一下这个问题~

(强行分割线……)

实际上完全不矛盾,因为神经网络语言模型真正的输入根本就不是词向量。

其实,神经网络语言模型真正的输入是各个词的one-hot向量,上图中的look-up表 C C C 将其转化为词向量之后才输入网络中。而真正的输入:one-hot向量是完全不变的。

如果还是有些疑惑的话,我们来举个例子:

假设词汇表中有20w个词,词向量的维度为100维。
简单起见,我们只将一个词 w w w 输入网络。

很明显,词 w w w 可以表示为一个1*20w的one-hot向量,其中只有一位值为1,其他维度的值均为0。
经过了一个大小为20w*100的look-up表之后, w w w 被表示成了1*100的向量——也就是我们通常所说的词向量。
在模型训练过程中,可以随着模型迭代而逐渐变化的是这个100维的词向量,更深一步地说,逐渐变化的其实是这个大小为20w*100的look-up表。
其实,在这个描述中,look-up表和网络中的权重在意义上完全相同!

推广到多个词,过程完全相同,只是在将各个词转化为词向量之后需要进行拼接或者其他操作即可。

理解了上面的过程,对这个问题就有了答案:
在模型训练过程中,真正的输入是表示各个词的one-hot向量,look-up表类似一个权重矩阵,将one-hot向量转化为词向量,再进行后续操作。可以将look-up表看作一个特殊的权值矩阵,在模型迭代过程中,表中的权值可以变化,以更好地拟合模型输出。

如果本文中某些表述或理解有误,欢迎各位大神批评指正。

谢谢!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值