Exploring the limits of language model阅读笔记

Introduction

LM可以处理很多NLP任务如机器翻译, 语音识别, 文本总结,问答系统,视频生产等,理解语义, 不仅能够编码语法结构还能提取预料上下文信息。他可以帮助提高上述任务的表现,。

N-元模型至今表现很好,但是RNN+N元表现更好,因为两者可以表达不通的语言结构。

小语料库如PTB不会出现容易出现过拟合问题,大语料库不容易出现,但是比较难扩充数据集。现代GPU的发展以及网上大量的文本可以直接构建大语料库LM。所以我们想在研究大语料库。

使用One Billion Word 为基线。希望可以帮助提高语言模型。

2.相关工作

语言模型就是计算输入序列的概率分布,分为有参数模型对数线性不行或者无参数模型,n元模型。rnn解决了序列的长期依赖问题。本文使用的语料库,对于n元模型属于中等大小,对于nn模型属于很大。正如计算机领域一样,大模型大语料库有助于理解自然语言。我们使用了,回归状态空间方法最小化计算代价。

把单词拆成字母级别,通过CNN网络嵌入模型,发现在词性标注,情感分析中表现很好。

大词汇的softmax,由于词汇量大,计算很难,importance sampling在众多解决方法中是较好的一个。

3.改进

NCE和IS

受到character CNN embedding 启发,计算ew时不通过V*H矩阵(该矩阵列对应行),通过卷积生成ew

结构和character CNN embedding 一样。

传统softmax层的另一种改进是受到Kim[3]的论文启发,Kim对输入词向量vw采用了字符级别的CNN模型。相反,Jozefowicz在2016年将同样的方法用于输出词向量v′w,并将这种方法称为CNN-Softmax。如图4所示,如果我们在输入端和输出端加上CNN模型,输出端CNN生成的向量v′w与输入端CNN生成的向量必然不相同,因为输入和输出的词向量矩阵就不一样。图4:CNN-Softmax (Jozefowicz et al. (2016))尽管这个方法仍需要计算常规softmax的标准化,但模型的参数却大大的减少:只需要保留CNN模型的参数,不需要保存整个词向量矩阵dx|V|

。在测试阶段,输出词向量v′w可以提前计算,所以性能损失不大。但是,由于字符串是在连续空间内表示,模型倾向于用平滑函数将字符串映射到词向量,因此基于字符的模型往往无法区分拼写相似但是含义不同的词语。为了消除上述影响,论文的作者增加了一个矫正因数,显著地缩小了CNN-Softmax与传统方法的性能差距。

通过调整矫正因数的维度,作者可以方便地取舍模型的大小与计算性能。

论文的作者还提到,前一层h的输出可以传入字符级别的LSTM模型,这个模型每次预测输出词语的一个字母。但是,这个方法的性能并不令人满意

4.experiment

在tensoeflow环境下建模

数据集为1B wordbRNCHMARK ,句子随机排列,去除重复的,0.3%OOV用UNK表示。

利用困惑度评价语言模型, 设置字符输入长度为50,每一个词加入开始符和截止符,并且pad到50长度。总共有256个字符。非ASCII符号,用字节序列代替。

LSTM层加入projection layer.有利于减小BPTT的步数。每一个LSTMlayer之前和之后都加入dropout., Character embedding CNN使用4096个feature, 结果匹配projection layer, 有利于减少参数。

训练使用adagrad optimizer 学习速率0.2, batch size128,使用了clip gradients.一个32个GPU。使用importance sampling 估计,noise样本8192.减少了100倍的计算代价。

本文做了该文的详细PPT,需要的可以留言分享

猜你喜欢

转载自blog.csdn.net/yang_daxia/article/details/86008677
今日推荐