您的位置:首页 > 其它

读论文《A Neural Probabilistic Language Model》

2017-08-22 16:44 447 查看

读论文《A Neural Probabilistic Language Model》

原文地址:http://blog.csdn.net/qq_31456593/article/details/77482256

introduce

本文算是训练语言模型的经典之作,Bengio将神经网络引入语言模型的训练中,并得到了词嵌入这个副产物。词嵌入对后面深度学习在自然语言处理方面有很大的贡献,也是获取词的语义特征的有效方法。

论文的提出源于解决原词向量(one-hot表示)会照成维数灾难的问题,作者建议通过学习词的分布式表示来解决这个问题。作者基于n-gram模型,通过使用语料对神经网络进行训练,最大化上文的n个词语对当前词语的预测。该模型同时学到了(1)每个单词的分布式表示和(2)单词序列的概率分布函数。

该模型学习到的词汇表示,与传统的one-hot表示不同,它可通过词嵌入之间的距离(欧几里得距离、余弦距离等),表示词汇间的相似程度。如在:

The cat is walking in the bedroom

A dog was running in a room

中,cat和dog有着相似的语义

method

作者提出的网络模型如下图所示:



整个网络分为2部分,第一部分是利用词特征矩阵C获得词的分布式表示。第二部分是将表示context的n个词的分布式表示拼接起来,通过一个隐藏层和一个输出层,最后通过softmax输出当前p(wt|context)(当前上下文语言的概率分布,最大化要预测的那个词的概率,就可以训练此模型)。

第一部分词分布式表示的获取如下图所示:



其中第i行对应的是one-hot表示中第i项为1的词向量的分布式表示。词向量与矩阵相乘后就可以得到自己的分布式表示了。由于C是是神经网络的参数,所以词的分布式表示(词嵌入word embedding)会随着模型的训练不断得到优化。

在网络的第二部分中

表示context的n个word embedding通过隐藏层进行语言组合,最后经过输出层使用softmax输出预测的词向量,因为本模型是基于n-gram模型,所以只要最大化正确预测当前词即可。最后不但训练了一个用神经网络表示的语言模型,而且还获得此词语的分布式表示(存在矩阵C中)

从第二部分的输入到输出层有一个直连边,一般情况下该直连边的权重矩阵设为0,在最后的实验中,Bengio 发现直连边虽然不能提升模型效果,但是可以少一半的迭代次数。同时他也猜想如果没有直连边,可能可以生成更好的词向量。

该模型最终要最大化如下式子:



本文主要讲解论文思路,具体细节见原论文

my view

本文把神经网络引入了语言模型的构建中,和神经网络在其他领域的发展一样,其核心思想都是利用神经网络学习输入的特征表示,并对些特征表示进行组合,以完成相关任务。

我认为词的分布式表示,或者说word embedding与图像中的卷积很像,语言的基本单位是单词,而图像的基本单位就是各种图像特征,而深度学习的关键就是如何学习这些特征并利用。

神经网络的其实是特征空间的变换,人能理解自然语言或许可以认为自然语言的词汇在大脑构建的语言空间里是相关性的,而神经网络可以模拟大脑去找这种相关性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: