读论文《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与图像中的卷积很像,语言的基本单位是单词,而图像的基本单位就是各种图像特征,而深度学习的关键就是如何学习这些特征并利用。
神经网络的其实是特征空间的变换,人能理解自然语言或许可以认为自然语言的词汇在大脑构建的语言空间里是相关性的,而神经网络可以模拟大脑去找这种相关性。

读论文《A Neural Probabilistic Language Model》相关推荐

  1. A Neural Probabilistic Language Model 论文阅读及实战

    1.词向量介绍 在NLP任务中,第一步首先将自然语言转化成数学符号表示.一般常用的词汇表示方法:one-hot表示,这种方法是将每个单词表示为一个很长的向量,这个向量的长度是词汇表的大小,其中绝大数元 ...

  2. 论文阅读:A Neural Probabilistic Language Model 一种神经概率语言模型

    A Neural Probabilistic Language Model 一种神经概率语言模型 目录 A Neural Probabilistic Language Model 一种神经概率语言模型 ...

  3. 文本生成(一)【NLP论文复现】Unified Language Model 文本生成从未如此轻松

    Unified Language Model 文本生成从未如此轻松 前言 UniLM How to build UniLM Get 2D MASK Send 2D MASK to Bert 使用Uni ...

  4. 读论文《Natural Language Processing (Almost) from Scratch》

    读论文<Natural Language Processing (Almost) from Scratch> 原文地址:http://blog.csdn.net/qq_31456593/a ...

  5. NLP——day37 读论文:自然语言处理中的文本表示研究(综述类 2022 软件学报)

    自然语言处理中的文本表示研究 资源下载地址(原论文和笔记) INTRODUCTION chap1文本表示基础 1.1 什么是文本表示? 1.2 为什么进行文本表示 chap2 主流技术和方法 文本的离 ...

  6. NLP问题特征表达基础 - 语言模型(Language Model)发展演化历程讨论

    1. NLP问题简介 0x1:NLP问题都包括哪些内涵 人们对真实世界的感知被成为感知世界,而人们用语言表达出自己的感知视为文本数据.那么反过来,NLP,或者更精确地表达为文本挖掘,则是从文本数据出发 ...

  7. 读论文《Recurrent neural network based language model 》

    读论文<Recurrent neural network based language model > 标签(空格分隔): 论文 introduce 本文将循环神经网络RNN引入了神经网络 ...

  8. 读论文系列(二)Convolutional Neural Networks over Tree Structures for Programming Language Processing

    系列文章目录 读论文系列(一)Automated software vulnerability detection with machine learning 文章目录 系列文章目录 Keywards ...

  9. 读论文2:SELFEXPLAIN: A Self-Explaining Architecture for Neural Text Classifiers

    SELFEXPLAIN: A Self-Explaining Architecture for Neural Text Classifiers Abstract:[上一篇:读论文1](https:// ...

最新文章

  1. redirect和forward的区别
  2. gentoo linux mldonkey 问题解决
  3. MongoDB在windows服务器安装部署及远程连接MongoDB
  4. 线性代数笔记:Hadamard积
  5. 【数据结构与算法】之深入解析“删除有序数组中的重复项”与“移除元素”的求解思路与算法示例
  6. es6 对象中是否有键值_干货| ES6/ES7好玩实用的特性介绍
  7. linux: 批量修改文件夹及文件夹下文件的名字
  8. 小数据作为解题关键:
  9. Mac系统如何通过自带的工具进行磁盘修复
  10. Linux虚拟文件系统之文件系统卸载(sys_umount())
  11. python采集直播间数据_利用Python爬虫爬取斗鱼直播间信息,以及直播的实际人数!...
  12. laravel框架跨域请求
  13. socket通信压力测试
  14. 什么是瑞利分布和准静态平坦衰落信道?
  15. math.abs() java_Java中使用Math.abs你入坑了?
  16. IGV变异可视化设置要点
  17. 以为精通Java 线程池,看到这些误区,还是年轻了
  18. 英雄对决服务器未响应,lol点开始游戏没反应怎么办 完整解决办法一览
  19. CreateThread和_beginthread区别及使用http://blog.csdn.net/wxq1987525/article/details/6620210
  20. matlab 矩阵3d显示,Matlab 3D视图矩阵

热门文章

  1. 什么是基金量化交易?投资者应该怎么玩?
  2. 这段代码,c 1秒,java 9秒,c# 14秒,而python。。。,java初级面试笔试题
  3. [Unity实践笔记] 俯视视角人物360°移动脚本
  4. 跑了这么久,物流机器人怎么还没跑进千家万户?
  5. 学习日本人的“虚伪”
  6. 追求最优选择的后果,往往是事与愿违,往往是善良的愿望,把人类带入了人间地狱
  7. (42)[ICCV17] Mask R-CNN
  8. 基于java的雷电游戏
  9. 【正点原子Linux连载】第十八章 Camera 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
  10. 百度腾讯QQ等网站注册自动提交表单源码2012最新