基于rnn结构下的字母级别语言模型的研究与实现

上传人:小** 文档编号:34096992 上传时间:2018-02-20 格式:DOC 页数:6 大小:89.50KB
返回 下载 相关 举报
基于rnn结构下的字母级别语言模型的研究与实现_第1页
第1页 / 共6页
基于rnn结构下的字母级别语言模型的研究与实现_第2页
第2页 / 共6页
基于rnn结构下的字母级别语言模型的研究与实现_第3页
第3页 / 共6页
基于rnn结构下的字母级别语言模型的研究与实现_第4页
第4页 / 共6页
基于rnn结构下的字母级别语言模型的研究与实现_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《基于rnn结构下的字母级别语言模型的研究与实现》由会员分享,可在线阅读,更多相关《基于rnn结构下的字母级别语言模型的研究与实现(6页珍藏版)》请在金锄头文库上搜索。

1、基于 RNN 结构下的字母级别语言模型的研究与实现 刘辰 郭邵忠 殷乐 信息工程大学四院 摘 要: 本文设计实现了一种 neural language model, 它的输入只有字母, 输出为所预测的单词。该模型是一种 recurrent neural net-work language model (RNN-LM) , 具体实现方面应用了较为成熟的 long short-term memory (LSTM) 结构, 并在字符输入模块后使用了 highway net-work 技术, 提高了该模型的性能, 该模型在 English Penn Treebank 上测试结果达到了上游水平。并且训练

2、出的模型的空间大小比传统 DNN 模型小的多。该模型在语意理解方面综合来说略微低于 word level 模型, 但更加容易理解变形词汇, 通过少量的模型变换可以转换成为 word level 模型, 适应性较强。关键词: RNN; 语言模型; 自然语言处理; 神经网络; 0 引言随着人工智能技术的发展, RNN 模型被广泛应用在语音识别, 机器翻译和文本生成等领域, 并取得了举世瞩目的效果。Recurrent Neural Network (RNN) 是一种能学习向量到向量之间映射关系的强力模型, 它适用于时序数据集上。但由梯度爆炸和梯度消失的问题的存在, 使得 RNN 结构难于训练。在学者

3、们的努力下, 提出了 Long Short-Term Memory (LSTM) 模型, 解决了梯度消失的问题。梯度爆炸问题相对梯度消失复杂的多, Mikolov 与 Pascanu 通过强制约束梯度范数解决了该问题。Cho 等人提出名为 lstm 的一种新的改进型 Gated Recurrent Unit (GRU) , 在语言模型的实际应用背景中, 两种实现方法效果不分伯仲。在 natural language processing (NLP) 任务中, 语言模型是一项基础工作。语言模型是一个单纯的、统一的、抽象的形式系统, 语言客观事实经过语言模型的描述, 比较适合于电子计算机进行自动处

4、理, 因而语言模型对于自然语言的信息处理具有重大的意义。神经语言模型 Neural Language Models (NLM) 通过将词的参数化作为向量, 并将其用作神经网络的输入, 取得了很好的效果。虽然 NLM 比以往的基于统计的语言模型性能表现出色, 但是该模型不能分辨出词根, 词缀或者分词等信息, 例如 like 和 unlike 两词应在 embedding 时候空间位置距离比较接近, 这个功能上述模型无法实现。因此, 训练集中没有或者出现几率特别小的词, 模型无法理解。实际应用中, 尤其在俄文语境下, 词态变化繁复, 使得模型训练成本增大, 性能下滑。为了克服上述不足, 本文设计了

5、一种 char-level 语言模型, 该模型的输入是一个个字符。同 Botha and Blunsom 2014;Lu-ong, Socher, and Manning2013 相比下, 我们的模型不需要词素标注, 将字母一个个输入模型就可以。同 Dos Santosand Zadrozny 2014比较, 我们的模型不需要 word-embedding, 只需要 char-embedding。我们的模型适用于多种语言, 中文的汉字也可以视为 char, 此时在 softmax 函数中加入分层功能, 运行速度会明显提高。1 模型1.1 循环神经网络语言模型若 V 是所有 word 的集合,

6、w 是 V 中的任意一个元素 (1 个 word) , 语言模型可以描述如下:若 wi:t=w1, , wt是历史出现的 word 序列, 那么语言模型就是描述 wt+1出现可能和各个可能的概率情况的工具。数据首先经过向量化操作 (char-embedding) , 而后经过 Highway 层, 再经过RNN 层后会通过一个 softmax 函数, 它将计算输出端的各个可能性大小, 并通过评价函数和同训练数据相匹配的正确结果来复核评估网络输出, 最后通过 bp算法来校正网络参数。如图 1。图 1 模型各模块情况 下载原图1.2 循环神经网络层循环神经网络是一种节点定向连接成环的人工神经网络。

7、这种网络的内部状态可以展示动态时序行为。不同于前馈神经网络的是, RNN 可以利用它内部的记忆来处理任意时序的输入序列, 这让它可以更容易处理如不分段的手写识别、语音识别等。神经网络专家如 Jordan, Pineda.Williams, Elman 等于上世纪80 年代末提出的一种神经网络结构模型。即循环神经网络 (Recurrent Neural Network, RNN) 。这种网络的本质特征是在处理单元之间既有内部的反馈连接又有前馈连接。从系统观点看, 它是一个反馈动力系统, 在计算过程中体现过程动态特性, 比前馈神经网络具有更强的动态行为和计算能力。在每个时间脉冲 t, 需要输入一个

8、向量 Xt, 并结合上一时间脉冲 t-1 的隐藏状态向量 ht-1, 计算出当前时间脉冲下的输出向量 ht。这里描述的模型叫做 vanilla RNN 模型 都是线性函数的参数。f (x) 是一个线性变换函数, 具体在 torch 框架下实现起来就是在理论上, RNN 可以追溯所有的历史隐藏状态向量 ht, 并以之计算当前时间脉冲输出。在实际应用时候, 使用上述 vanilla RNN 模型由于梯度下降和梯度爆炸等问题的存在, 难以学习到 long-range dependencies。也就是说, 这种模型在短句语义理解上较为出色, 而且实现简单, 计算量小, 但是遇到较长句, 就容易丢失前序

9、信息。Long short-term memory (LSTM) 应运而生。该模型具体思想就是在 vanilla RNN 模型内加入一个 cell 向量 , 这样, 每一个时间脉冲下, LSTM 模型就获得了 3 个输入向量:x t, ht-1, ct-1。简明表达LSTM 每个时间脉冲计算公式如下:这里的 Sigmoid 运算符在 torch 框架上对应 nn.Sigmoid, Tanh 运算符对应nn.Tanh, *运算符对应 nn.CMul Table () () , ct等式中运算符+对应 nn.CAdd Table () () 。1.3Highway Network当语言模型输入端为

10、字符时, 在 RNN 模型的基础上使用 Highway Network 可以很大程度提高精度, 当语言模型输入为 word 时无明显效果。在本文中, 我们采用 1 或 2 层的 Highway Network, 具体公式如下:2 实验设定语言模型评价函数如下:NNL 是在网络训练过程产生的评价数据, T 为训练时间。English Penn Treebank (PTB) , 是一个标准的英语语言模型测试集, 我们将在这个测试级上评估实验结果。表 1 PTB 测试集情况 下载原表 实验数据集如表 1 所示, 其中|V|是语料中的总词汇量, |C|是字符数目, T 是训练集中的 token 数量。

11、Data-s 是 Peen Treebank 库, Data-L 是 News-Commentary 库, 该库中有一些非英语符号, 所以字符种类较多。表 2 各个网络层参数配置 下载原表 表 2 所示为实验模型各层次网络参数设置。Small 模型采用 1 层的 Highway 激活函数是 Relu () , 而后通过 LSTM 模块 (2 层, 每层 300 单元) 。Large 模型Highway 模块设为 2 层, 激活函数不变, LSTM 模块也是 2 层, 每层设为 600 单元。只有 2G 显卡情况下, large 数据集上 lstm 个数每层最大不能超过 600, 实验结果也证实

12、了每层 600 个 lstm 单元已经能够满足实验需要, 盲目加大数目对结果的影响不明显。本文考虑实验的灵活性, 将输入模块设计为两种输入模式:字符模式和单词模式。该模型可以转换为 word-level 语言模型, 只需更新参数转换输入, 而后进行单词级别的语言模型训练。实验优化。在试验中, 遍历 25epochs 训练集, 在 Data-S 训练集中使用 batch-size=20, 在 Data-L 中使用 batch-size=100, 这两组数字都是其他论文中使用该数据集的经验数字, 在本次试验中效果良好。在参数初始化阶段, 采取了随机初始化, 并且控制参数初始化的范围在-0.05,

13、0.05这样可以避免产生的模型偏激, 难以训练。在 LSTM 的 input-to-hidden (highway 之后) 和 hidden-to-output (softmax () 之前) 使用了dropout 规则, 设定参数为 0.5, 这样提高了训练精度。我们限定梯度更新的速率, 避免训练结果偏激, 若梯度更新的 L2 范数大于 5 那么更新时最大可用更新幅度设为 5.0。3 实验结果图 2 是训练 loss 与测试 loss 对比图 (LSTM-Char in Data-S) , 图中可见训练过程中参数收敛正常, 测试收敛正常, 训练效果显著, 在最后的全集测试中, 取得 (PPL

14、=92.418545711755) 的评价结果。图 2 训练以及测试曲线 下载原图表 3 训练结果 下载原表 表 3 所示为最终实验结果 (PPL 数值越小越好) 。其中前四行为本文所做工作, 最后两行为现阶段经典模型实验结果。从模型的评价来看, 我们实现的 LSTM-Word-Large 模型稍逊色于 LSTM-2 (Zaremba 2014) 但我们使用的 lstm 单元个数少于他们。整体结果来看, 我们模型实现已经达到了上游水平。4 结论本文实现了一种 char-level 的语言模型, 语言模型是自然语言处理的一个基础工作, 是学习深度学习框架入门的良好课题。一些 trciks 在提高

15、结果精度显得特别重要, 可以说有些操作直接影响到了结论。想要做一个好用的语言模型比较困难, 具体应用的语境下必须取得好的数据, 再结合结构的研究和一些技巧才能达到可用的要求, 而好用的要求更需要深入的研究和探索。本实验更换输入数据也会输出一些有意思的东西, 例如输入唐诗 300 首, 也可以自动做唐诗, 其结果也是刚刚达到了说人话的水平。下一步的改进目标是尝试在模型中加入更多网络信息, 类似于 Net Embedding 的做法。Word Embedding 与 Net Embedding 相互借鉴是一个趋势。参考文献1Bengio Y, Simard P, Frasconi P.Learni

16、ng long-term dependencies with gradient descent is difficult.J.IEEE Transactions on Neural Networks, 1994. 2Surhone L M, Tennoe M T, Henssonow S F.Long Short Term MemoryJ.Betascript Publishing, 2010. 3Pascanu R, Mikolov T, Bengio Y.On the difficulty of training recurrent neural networksC/International Conference on International Conference on Machine Learning.JMLR.org, 2013. 4Chung J, Gulcehre C, Cho K H, et al.Empirical Evalua

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号