深度之眼Paper带读笔记NLP.26:大规模语料模型

前言

Exploring the limits of language model
探索语言模型的极限
作者:Rafal Jozefowicz,Oriol Vinyals,mike Schuster,Noam Shazeer,Yonghui Wu
单位:Google Brain团队
论文来源:ICML 2016
在线LaTeX公式编辑器
别人的讲解
本节将会向大家介绍一下语言模型的概念及计算方式,除此之外为了方便理解,我们还引入n-gram模型以及神经网络语言模型;之后会针对字符及卷积神经网络,也就是char CNN展开详细的介绍,便于大家在接下来的学习中脑子中有更宏观的印象;此外,还会简单介绍一下在学习本期课程之前需要做的一些知识储备,

第一课 论文导读

语言模型

语言模型:预测每个句子在语言中出现的概率。不会去理解句子的含义。
应用:机器翻译、语音识别、文本摘要
举例:机器翻译:价格高
P(high price)>P(large price)
在这里插入图片描述
举例:我 | 今天 | 下午 | 打羽 | 毛球
当说第一个词:我 的时候,我这个词只和当前词有关
当说第二歌词“今天”的时候,要考虑在我这个词出现的条件概率下,“今天”这个词出现的概率。“今天”这个词是建立在“我”这个词之上的。以此类推,“羽毛球”出现的要在前面所有词出现的条件概率下进行计算。
在这里插入图片描述
P(S)被称为语言模型,即用来计算一个句子概率的模型。
P ( w i ∣ w 1 , w 2 , . . . , w i − 1 ) = P ( w 1 , w 2 , . . . , w i ) / P ( w 1 , w 2 , . . . , w i − 1 ) P(w_i|w_1,w_2,...,w_{i-1})=P(w_1,w_2,...,w_i)/P(w_1,w_2,...,w_{i-1}) P(wiw1,w2,...,wi1)=P(w1,w2,...,wi)/P(w1,w2,...,wi1)
缺点:
1.数据过于稀疏(由于每个词都基于前面的所有词,这些词出现的次数其实是很少的。)
2.参数空间太大
解决方案:
基于马尔科夫假设:下一个词的出现仅依赖于它前面的一个或几个词。
·假设下一个词的出现依赖它前面的一个词,则有:
在这里插入图片描述
·假设下一个词的出现依赖它前面的两个词,则有:
在这里插入图片描述
n-gram模型:假设当前词的出现概率只与它前面的N-1个词有关。
如何选择n:
·更大的n:对下一个词出现的约束信息更多,具有更大的辨别力;
·更小的n:在训练语料库中出现的次数更多,具有更可靠的统计信息,具有更高的可靠性。
理论上,n越大越好,经验上,trigram用的最多,尽管如此,原则上,能用bigram解决,绝不使用trigram。n为1的时候叫unigram。
构造语言模型:最大似然估计。
P ( w i ∣ w 1 , w 2 , . . . , w i − 1 ) = C o u i n t ( w 1 , w 2 , . . . , w i − 1 , w i ) C o u n t ( w 1 , w 2 , . . . , w i − 1 ) P(w_i|w_1,w_2,...,w_{i-1})=\frac{Couint(w_1,w_2,...,w_{i-1},w_i)}{Count(w_1,w_2,...,w_{i-1})} P(wiw1,w2,...,wi1)=Count(w1,w2,...,wi1)Couint(w1,w2,...,wi1,wi)
Count(X):在训练语料库单词序列X在训练语料中出现的次数。为了避免出现参数为0的情况,这里要对最大似然进行平滑处理。
上面的ngram模型采用的是统计的方法(非参数化方法),当ngram上升到五元(这里应该是指n=5??)的时候,会出现很多稀疏化的问题,不好做统计也不好做平滑,要把所有语料都过一遍需要很大的存储空间。
因此考虑用参数化的方法来进行概率估计,模型训练好后,只要输入一个词,就可以通过模型计算出相应的概率
在这里插入图片描述
在这里插入图片描述

LSTM(略)

词向量(略)

One hot
Word embedding

char CNN简介

模型提出:《Character-Aware Neural Language Models》
三层架构:
1.Char CNN
2.Highway Network
3.LSTM
在这里插入图片描述
char CNN在处理低频词上效果很好,为什么?看下节

字符卷积嵌入模型

由于英文在字符层次上有很多联系,例如:名词变形容词只需要加ly后缀,两个词之间是有某种联系的,普通的神经网络没有办法捕捉这个联系,而字符CNN可以。
在这里插入图片描述
在这里插入图片描述

前期知识储备

语言模型:了解基本的语言模型知识,掌握语言模型的计算方法。
Char CNN:了解字符卷积神经语言模型的结构,掌握字符嵌入模型的实现方法。
Softmax:掌握softmax的实现原理,了解softmax的几种变体。
循环神经网络:了解循环神经网络的结构,掌握它的基本工作原理

第二课 论文精读

在这里插入图片描述
主要工作:探索了最近递归神经网络用于大规模语言模型上取得的进展
面对挑战:语料库和词汇量,以及语言复杂的、长期结构
如何做:字符的卷积神经网络,以及长短期记忆人工神经网络
模型效果:困惑度减小的同时参数也较少。
开源模型代码

语言模型的改进

softmax在大规模语料库中效率比较低,因此,要对其进行改进。

替代softmax策略

基于softmax的方法
·分层softmax
·分片softmax
·CNN-Softmax()
基于采样的方法
·重要性采样
·自适应重要性采样
·目标采样
·噪声对比估计
·负采样
·自标准化
·低频标准化
在这里插入图片描述

CNN Softmax

·softmax:
在这里插入图片描述
·CNNSoftmax只保留CNN模型的参数,不需要保存整个词向量矩阵
·增加了一个矫正因数 c o r r w corr_w corrw,M保证向量维度统一,这个东西是为了防止模型无法区分拼写相似,意思不一样的词语
在这里插入图片描述
在进入LSTM之前,先对每个单词做 char CNN
在这里插入图片描述

Char LSTM Prediction:

·取代word-level前一层h的输出
·每次预测输出词语的一个字母
·这个方法的性能并不令人满意(一次输入一个字母,导致模型中timestep太多)
·没有CNN Softmax效果好
在这里插入图片描述

实验和结果

实验设置

实验环境:Tensoflow
数据集:1B Word Bench Mark数据集(句子随机排列,且去重)
具体设置:
·设置字符输入长度为50
·LSTM层加入投影层(有利于减少反向传播的步数),每个LSTM的前后都加入了dropout
·Char CNN使用4096个特征(这个数字和投影层相匹配。)
·优化器:adagrad,学习速率0.2,batch size:128,32个GPU

实验评估标准——困惑度-Perplexity

困惑度:一种评判概率模型或概率分布预测的衡量指标,可用于评价语言模型的好坏。
核心思想:给测试集的句子赋予较高概率值的语言模型较好。
评价标准:从下面的公式可以看出:句子概率越大,困惑度越小,语言模型越好。
在这里插入图片描述
单个模型的实验结果:
在这里插入图片描述
集成模型的结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

A 总结合并了大规模语言模型的研究。
B.在CharCNN上提出了一种高效的softmax损失函数。
C.单模型和集成模型都获得了最先进的结果。
D.开源了所有代码。

作业

  1. 简述语言模型的任务和计算方式。
  2. 简述char cnn的原理。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldmao_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值