文章目录

  • 前言
  • 第一课 论文导读
  • 语言模型
  • LSTM(略)
  • 词向量(略)
  • char CNN简介
  • 字符卷积嵌入模型
  • 前期知识储备
  • 第二课 论文精读
  • 语言模型的改进
  • 替代softmax策略
  • CNN Softmax
  • Char LSTM Prediction:
  • 实验和结果
  • 实验设置
  • 实验评估标准——困惑度-Perplexity
  • 总结
  • 作业


前言

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)

大规模语言在计算机视觉中的应用 在大规模的语料中_卷积


举例:我 | 今天 | 下午 | 打羽 | 毛球

当说第一个词:我 的时候,我这个词只和当前词有关

当说第二歌词“今天”的时候,要考虑在我这个词出现的条件概率下,“今天”这个词出现的概率。“今天”这个词是建立在“我”这个词之上的。以此类推,“羽毛球”出现的要在前面所有词出现的条件概率下进行计算。

大规模语言在计算机视觉中的应用 在大规模的语料中_大规模语言在计算机视觉中的应用_02


P(S)被称为语言模型,即用来计算一个句子概率的模型。

大规模语言在计算机视觉中的应用 在大规模的语料中_大规模语言在计算机视觉中的应用_03

缺点:

1.数据过于稀疏(由于每个词都基于前面的所有词,这些词出现的次数其实是很少的。)

2.参数空间太大

解决方案:

基于马尔科夫假设:下一个词的出现仅依赖于它前面的一个或几个词。

·假设下一个词的出现依赖它前面的一个词,则有:

大规模语言在计算机视觉中的应用 在大规模的语料中_卷积_04


·假设下一个词的出现依赖它前面的两个词,则有:

大规模语言在计算机视觉中的应用 在大规模的语料中_语言模型_05


n-gram模型:假设当前词的出现概率只与它前面的N-1个词有关。

如何选择n:

·更大的n:对下一个词出现的约束信息更多,具有更大的辨别力;

·更小的n:在训练语料库中出现的次数更多,具有更可靠的统计信息,具有更高的可靠性。

理论上,n越大越好,经验上,trigram用的最多,尽管如此,原则上,能用bigram解决,绝不使用trigram。n为1的时候叫unigram。

构造语言模型:最大似然估计。

大规模语言在计算机视觉中的应用 在大规模的语料中_大规模语言在计算机视觉中的应用_06

Count(X):在训练语料库单词序列X在训练语料中出现的次数。为了避免出现参数为0的情况,这里要对最大似然进行平滑处理。

上面的ngram模型采用的是统计的方法(非参数化方法),当ngram上升到五元(这里应该是指n=5??)的时候,会出现很多稀疏化的问题,不好做统计也不好做平滑,要把所有语料都过一遍需要很大的存储空间。

因此考虑用参数化的方法来进行概率估计,模型训练好后,只要输入一个词,就可以通过模型计算出相应的概率

大规模语言在计算机视觉中的应用 在大规模的语料中_大规模语言在计算机视觉中的应用_07


大规模语言在计算机视觉中的应用 在大规模的语料中_语言模型_08

LSTM(略)

词向量(略)

One hot
Word embedding

char CNN简介

模型提出:《Character-Aware Neural Language Models》

三层架构:

1.Char CNN

2.Highway Network

3.LSTM

大规模语言在计算机视觉中的应用 在大规模的语料中_卷积_09


char CNN在处理低频词上效果很好,为什么?看下节

字符卷积嵌入模型

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

大规模语言在计算机视觉中的应用 在大规模的语料中_卷积_10


大规模语言在计算机视觉中的应用 在大规模的语料中_大规模语言在计算机视觉中的应用_11

前期知识储备

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

第二课 论文精读

大规模语言在计算机视觉中的应用 在大规模的语料中_语言模型_12


主要工作:探索了最近递归神经网络用于大规模语言模型上取得的进展

面对挑战:语料库和词汇量,以及语言复杂的、长期结构

如何做:字符的卷积神经网络,以及长短期记忆人工神经网络

模型效果:困惑度减小的同时参数也较少。

开源模型代码

语言模型的改进

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

替代softmax策略

基于softmax的方法

·分层softmax

·分片softmax

·CNN-Softmax()

基于采样的方法

·重要性采样

·自适应重要性采样

·目标采样

·噪声对比估计

·负采样

·自标准化

·低频标准化

大规模语言在计算机视觉中的应用 在大规模的语料中_大规模语言在计算机视觉中的应用_13

CNN Softmax

·softmax:

大规模语言在计算机视觉中的应用 在大规模的语料中_语言模型_14


·CNNSoftmax只保留CNN模型的参数,不需要保存整个词向量矩阵

·增加了一个矫正因数大规模语言在计算机视觉中的应用 在大规模的语料中_卷积_15,M保证向量维度统一,这个东西是为了防止模型无法区分拼写相似,意思不一样的词语

大规模语言在计算机视觉中的应用 在大规模的语料中_卷积_16


在进入LSTM之前,先对每个单词做 char CNN

大规模语言在计算机视觉中的应用 在大规模的语料中_Soft_17

Char LSTM Prediction:

·取代word-level前一层h的输出

·每次预测输出词语的一个字母

·这个方法的性能并不令人满意(一次输入一个字母,导致模型中timestep太多)

·没有CNN Softmax效果好

大规模语言在计算机视觉中的应用 在大规模的语料中_卷积_18

实验和结果

实验设置

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

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

困惑度:一种评判概率模型或概率分布预测的衡量指标,可用于评价语言模型的好坏。

核心思想:给测试集的句子赋予较高概率值的语言模型较好。

评价标准:从下面的公式可以看出:句子概率越大,困惑度越小,语言模型越好。

大规模语言在计算机视觉中的应用 在大规模的语料中_大规模语言在计算机视觉中的应用_19


单个模型的实验结果:

大规模语言在计算机视觉中的应用 在大规模的语料中_卷积_20


集成模型的结果:

大规模语言在计算机视觉中的应用 在大规模的语料中_卷积_21


大规模语言在计算机视觉中的应用 在大规模的语料中_大规模语言在计算机视觉中的应用_22


大规模语言在计算机视觉中的应用 在大规模的语料中_卷积_23

总结

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

作业

  1. 简述语言模型的任务和计算方式。
  2. 简述char cnn的原理。