RNNLM,鉴于RNN天生的结构就存在有长期依赖,特别适合于序列的数据,解决了NNLM的不能获得长期依赖的问题(窗口固定导致),RNNLM还能通过BiRNN获得任意上下文的依赖。下面我们学习。本文仅仅学习理论知识,操作实践留给后面的博文。

一:RNNLM

是一个根据上下文,预测下一个词语概率的模型。

这个模型更加贴近于语言模型的定义,得到语言模型中每个因数参数的计算。
图示如下:

一般训练的时候,使用LSTM,GRU单元Cell的多层双向BiRNN。这里只是用最简单的单层单向的RNN做个模型演示。

模型解读:
1:整个词库的大小是V,且为了统一方便,我们增加了“BOF”,“EOF”,“UNK”三个词汇,分别代表句子开始词,句子结束词,未知的词。

2:图中的蓝色长框代表词嵌入层,word Embedding层,黄色长框代表最后输出的softmax层。

3:以句子S=“[BOF] My cat is cute”为例,输入顺序如图所示。
T=1的时候在输入“BOF”的one-hot向量,经过嵌入层得到嵌入向量,经过隐藏层计算,softmax输出后,得到词库每个词语的输出概率(P(w1),P(w2),…,P(wn))。预期是“My”

T=2的时候在输入“My”的one-hot向量,经过嵌入层得到嵌入向量,经过隐藏层计算,softmax输出后,得到词库每个词语的输出概率(P(w1),P(w2),…,P(wn)),注意此时的概率可以认为是条件概率了,因为是在给定具体输入词的情况下得到的输入O,所以可以理解成本时刻输出各个词汇概率是(P(w1|My),P(w2|My),…,P(wn|My))。预期是“Cat”

T=3的时候,输入是“cat”的one-hot向量,输出是各个词汇概率(P(w1|My cat),P(w2|My cat),…,P(wn|My cat))。

以此类推即可。

其实这个就是一个根据上下文,预测下一个词语概率的模型,所以以后想要预测某个句子S的概率,就可以按照模型计算多个时刻的P,相乘,即可得到句子的概率。很巧妙,不得不说RNN确实是NLP里面的是非优秀的模型啊,最贴近于语言模型的定义。

损失函数如下:
由于输出层输出的是softmax,最后对应于每个词语的概率,所以定义损失函数是交叉熵损失函数,如下:

至此:在预料库中将每个句子进行模型计算和训练,通过如上损失函数进行训练,即可得到RNNLM。

===============================================
二:模型序列采样
这里是个随机漫步的过程,如下图所示:

我们训练完了一个RNNLM后,我们如果想知道它训练出来是个什么样子的话,怎么做呢?
就按照图中所示的办法,给一个“BOF”作为启动,每一时刻的计算结果O,按照结果O的概率分布,直接输入到下一时刻的输入层,以此类推,这样一来,这个随机漫步过程就启动了,这个过程中我们将看到这个模型学会了哪些合理的句子。

甚至这个过程也可以当用来自动生成文本,自动写诗歌话剧,自动写散文新闻等,也是挺有意思的一件事儿了。根据各种类型预料库的学习,可以得到各类型的文章。

再比如,如果你拿唐诗宋词,各种文言文,论文,诗经去训练,说不定你就能写出媲美李杜的诗句哦。

===============================================
三:RNNLM的优缺点
优点:
1:天生的结构能处理任意长度的序列的依赖,可以不用人为限制模型输入长度
2:理论上能获得更长期的依赖,如果使用BiRNN模型,则能获取后面下文的依赖。

缺点:
1:计算和训练时间长。

NLP《语言模型(三)-- 基于循环神经网络的RNNLM语言模型》相关推荐

  1. 机器学习笔记之马尔可夫链蒙特卡洛方法(四)吉布斯采样

    机器学习笔记之马尔可夫链蒙特卡洛方法--吉布斯采样 引言 回顾:MH采样算法 基于马尔可夫链的采样方式 细致平衡原则与接收率 MH采样算法的弊端 吉布斯采样方法 吉布斯采样的采样过程 吉布斯采样的推导 ...

  2. NLP《词汇表示方法(三)word2vec》

    Word2Vec是2013年Google发布的工具,也可以说是一个产生词向量的一群模型组合,关于词向量,也就是嵌入词向量的解释之前也解释了,这里不赘述.该工具主要包含两个词向量的生成模型,跳字模型(s ...

  3. 深入理解深度学习——Word Embedding(六):负采样(Negative Sampling)优化

    分类目录:<深入理解深度学习>总目录 相关文章: · Word Embedding(一):word2vec · Word Embedding(二):连续词袋模型(CBOW, The Con ...

  4. 负采样Negative Sampling

    1.噪声对比估计(Noise contrastive estimation) 语言模型中,根据上下文c,在整个语料库V中预测某个单词w的概率,一般采用softmax形式,公式为: NCE:将softm ...

  5. 自然语言处理中的负采样

    目录 word2vec出现的背景 跳字模型(skip-gram) 连续词袋模型(CBOW) 小结 负采样 具体训练过程 word2vec出现的背景 我们都知道,自然语言处理需要对文本进行编码,将语言中 ...

  6. NLP《词汇表示方法(四)负采样》

    一:负采样 在CBOW和Skip-Gram模型中,最后输出的都是词汇的one-hot向量,假如我们的词汇表的数量是10000,嵌入空间的维度是300,再假设此时是以Skip-Gram模型只预测cont ...

  7. 花书+吴恩达深度学习(二四)蒙特卡罗方法(重要采样,MCMC)

    文章目录 0. 前言 1. 重要采样 2. 马尔可夫链蒙特卡罗 MCMC 3. 不同峰值之间的混合挑战 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 花书+吴恩达深度学习( ...

  8. 【NLP】word2vec负采样

    一.理解负采样之前,需要先回顾一下word2vec的训练流程: 1.初始化一个embedding权重矩阵W1(N*D)→2.根据输入单词直接挑出W1矩阵中对应的行向量→3.相加并求平均得一个向量(1* ...

  9. [nlp] 负采样 nce_loss

    论文:http://demo.clab.cs.cmu.edu/cdyer/nce_notes.pdf 参考:求通俗易懂解释下nce loss? - 知乎 参考:(三)通俗易懂理解--Skip-gram ...

  10. NLP-词向量(Word Embedding)-2013:Word2vec模型(CBOW、Skip-Gram)【对NNLM的简化】【层次Softmax、负采样、重采样】【静态表示;无法解决一词多义】

    一.文本的表示方法 (Representation) 文本是一种非结构化的数据信息,是不可以直接被计算的.因为文本不能够直接被模型计算,所以需要将其转化为向量. 文本表示的作用就是将这些非结构化的信息 ...

最新文章

  1. Yahoo为啥赚不到钱
  2. luogu P1199 【三国游戏】
  3. git操作代码文件的颜色变化
  4. SharePoint PowerShell使用Export-SPWeb和Import-SPWeb指令来导出和导入网站
  5. 这个高仿真框架AI2-THOR,想让让强化学习快速走进现实世界
  6. Python for Infomatics 第12章 网络编程四(译)
  7. python为啥叫屁眼_python的递归
  8. linux进程加载和运行,linux进程管理之可执行文件的加载和运行
  9. 尔雅 科学通史(吴国盛) 个人笔记及课后习题 2018 第三章 中古时代的欧洲和阿拉伯
  10. 桌面计算机图标带虚线框,桌面图标出现虚线框,win10桌面图标带有虚线方框
  11. 南京邮电大学离散数学实验一利用真值表求主析取范式和主合取范式
  12. 关于文件变化监听, 你了解多少?
  13. tplink软件升级有用吗_tplink路由器固件更新的方法
  14. 佳能打印机 出现5100错误怎么办
  15. Socket编程之聊天室
  16. 在JS中使用时间对象获取月份getMonth()时比实际的月份少一
  17. Zlib 1.2.11 Windows 编译
  18. Eclipse全局搜索 文件搜索 IDEA全局搜索 快捷键Ctrl+Shit+F冲突 Ctrl+Alt+0 全局查询
  19. 提升职场表现力:讯飞智能录音笔SR901实力优选
  20. 数字IC设计 - 逻辑综合简介与Design Compiler使用(GUI方式)

热门文章

  1. Unity3D的LightProbe动态光探头用法介绍
  2. 查询类网站或成站长淘宝客新金矿
  3. MATLAB学习笔记(二) -- 矩阵和数组
  4. andriod手机客户端自动化测试工具整理
  5. asp.net弹出alert提示框
  6. 一个flash网页图片播放器
  7. Ucloud香港1h1g云服务器低至126元一年而且可开3年限时
  8. Jenkins之Log Parse的使用
  9. 【JAVA 第三章 流程控制语句】课后习题 三角形面积计算
  10. MQTT在线测试网站