论文浅尝 | LightRNN:存储和计算高效的 RNN

640?wx_fmt=png

链接:https://arxiv.org/pdf/1610.09893.pdf

动机

NLP任务中使用RNN已经被证明是很有用的模型方法。但是传统的RNNNLP中的应用有一个很大的限制:RNN的输出输入Embedding占用的空间太大,比如102410M词表大小的Embedding矩阵就要占掉40GB,这在大部分的GPU上都是不可训练的。本文的目标就是解决Embedding过大和参数过多的问题。

亮点

文章的亮点主要包括:

1. 通过二维Embedding使得参数所占空间和数量大幅减少,训练更快,使得手机甚至嵌入式训练成为可能

2. 由于单词安排的形式语义性表达更丰富,在NLP任务上能够不输于甚至超过一维的情形

概念

  1. 2-ComponentShared Embedding:维度共享的Embedding.

  • 每个word的词向量划分为行向量和列向量,同一行的词共享行向量,同一列也如此

  • 两个Embedding 矩阵的大小减为

640?wx_fmt=png640?wx_fmt=png

方法

⒈ 新的RNN以适应新的Embedding形式

640?wx_fmt=png

相较于传统RNN

a. t时刻的输入拆成两个(行列向量)由于矩阵U在两个小RNN中都一样,也可以看成传统的RNN交替输入行列向量

b. 显然只有都知道当前的行列向量才能预测下一个词,所以预测的行列向量跟输入错开了一个单元。

c. 由于错开,最后一次没得原始输入,需要将最后一个预测出来的行向量接过来

640?wx_fmt=png

行列向量的softmax.最终的概率为二者相乘.

Bootstrap for Word Allocation,重新分配词表中单词的位置

a.随机分配词表中单词的位置

b.训练模型得到embedding.

c. 调整单词的位置,使得最小化训练集中所有句子的NegativeLog Likelihood.

640?wx_fmt=png

其中lr(w,r(w))表示单词w安排在r(w)行时出现在位置r的概率. lc则是列. 现在将单词w换到其他行或者列中,得到lr(w,i), 再重新计算此NLL,比如:

位置

1

2

3

1

I

you

dislike

2

NUAA

PKU

love

3

hate

we

ZJU

 

     对于I love ZJUZJU对应的lr(w,r(w))即为-log(3,3),其中(3,3)表示第三行出现在句子的第三个位置的概率。现在将ZJU换到第二行, 对应的lr(w,2)= -log(2,3).其实也就是改为计算I Love Love这句话的概率,而任意的概率lr(w,i)lc(w,j)已经在RNN模型的softmax中计算过了。直接带入即可.

640?wx_fmt=png

最后,因为ZJU占据了Love的位置,Love也要找下一个位置,所以这个问题是所有的单词全部重新排列,选取最小的NLL。这是个二分图的最小权值匹配问题.有现成的算法可以计算.

640?wx_fmt=png


实验

                                                                            

. 比较的指标:PPL

T是预料中的所有token数量。

640?wx_fmt=png

. 各数据集的情况:(token数和词典大小)

640?wx_fmt=png

     (3) BillonW数据集的结果:

640?wx_fmt=png


可以看出在BillionW中不仅超越了stateof art的模型性能,而且大幅减少了训练参数的数量和空间大小.

总结                                                  

本文提出了一种可以大幅减少RNNNLP中应用时的Embedding矩阵的大小和数量,同时又不削减性能的方法。

 

论文笔记整理:吴杨,浙江大学硕士,研究方向为知识图谱、自然语言处理。



OpenKG.CN


中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

640?wx_fmt=jpeg

点击阅读原文,进入 OpenKG 博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里最全Java面试100题汇总:涵盖天猫、蚂蚁金服等面试题!含答案~

【阿里天猫、蚂蚁、钉钉面试题目】 1、微信红包怎么实现。 2、海量数据分析。 3、测试职位问的线程安全和非线程安全。 4、HTTP2.0、thrift。 5、面试电话沟通可能先让自我介绍。 6、分布式事务一致性。 7、nio的底层实现。 8、jvm基础是必问的,jvm GC原理&a…

ACL2020 奇葩论文标题大赏

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 灵魂写手rumor酱编 | 不拖更的夕小瑶又是一年一度的ACL,之前通过卖萌屋Arxiv服务已经零零碎碎看了一些,还是准备刷一下论文list,看看哪篇能让我的模型效果一飞冲天。…

字符串匹配算法(BF RK)

文章目录1. BF(Brute Force)暴力匹配BF代码2. RK(Rabin-Karp)算法RK代码3. 思考题:(二维匹配)1. BF(Brute Force)暴力匹配 BF算法的思想,在主串中&#xff0…

用Python寻找最优投资组合

原文地址:https://www.jianshu.com/p/2a25dfd465e9 现代投资组合理论(Modern Portfolio Theory,MPT)告诉我们投资者应该分散投资来实现最小化风险最大化投资回报。大邓刚开始学习这方面知识,用了将近一天的时候才搞懂M…

技术动态 | 事理图谱,下一代知识图谱

本文转载自公众号:DataHorizon。 人工智能与认知智能当前人工智能时代下,机器与人类之间的博弈一直在进行着。如图1所示,从1926年达特茅斯会议的召开标志人工智能诞生到深度学习模型在…

头条Java后台3面(含答案):事务+List集合+慢查询SQL+Redis+秒杀设计

头条Java一面 1.讲讲jvm运行时数据库区 2.讲讲你知道的垃圾回收算法 3.jvm内存模型jmm 4.内存泄漏与内存溢出的区别 5. select、epoll 的区别?底层的数据结构是什么? 6.mysql数据库默认存储引擎,有什么优点 7.优化数据库的方法&#xf…

CNN卷积神经网络(吴恩达《卷积神经网络》笔记一)

CNN 卷积网络说明卷积 Convolution填充 Padding步长 StrideRGB图像卷积池化 Pooling完整CNN为什么人们喜欢用卷积神经网络?实例分析说明 关于CNN的基础知识:卷积、填充、步长、池化、完整的深度CNN网络可以参考 链接: AI学习笔记——卷积神经网络&#…

字符串匹配算法(BM)

文章目录1. BM(Boyer-Moore)算法1.1 坏字符规则1.2 好后缀规则1.3 两种规则如何选择2. BM算法代码实现2.1 坏字符2.2 好后缀2.3 完整代码2.4 调试3. 总结1. BM(Boyer-Moore)算法 思想:有模式串中不存在的字符&#xf…

SQL 数据分析常用语句

1 基础查询 • 2 字符串数字日期时间 • 3 聚合数据查询 • 4 子查询 • 5 联接组合查询 • 6 高级查询 • 7 更新数据 阅读提醒:点击图片放大可看清晰的 1 基础查询 2 字符串数字日期时间 3 聚合数据查询 4 子查询 5 联接组合查询 6 高级查询 7 更新数据 参考资料 …

开源词法分析工具LAC重大升级!打造属于自己的个性化分词器!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 匿名大佬编 | 北大小才女小轶本文将为大家介绍如何使用百度开源的词法分析工具LAC实现个性化分词(附代码),并展示LAC在各数据集上惊艳的性能表现。背景介绍分词是中文…

老刘说NLP:这几年的NLP历程回顾,以及关于NLP(知识图谱等)落地的思考

得语言者,得天下。得语言资源者,分天下。得语言逻辑者,争天下。 前言 只有把自己所思考的,所认识的东西,以文字的方式记录下来,才是对自己成长最好的记录方式。 是的,距离上一次动手写博客或者…

Redis系列教程(一):Redis缓存的设计、性能、应用与数据集群同步

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上…

论文浅尝 | 提取计数量词丰富知识库

OpenKG 祝各位读者新年快乐!论文标题:Enriching Knowledge Bases with Counting Quantifiers论文链接:https://link.springer.com/content/pdf/10.1007%2F978-3-030-00671-6_11.pdf发表会议:ISWC 2018论文源码:https:/…

RNN循环神经网络(吴恩达《序列模型》笔记一)

1、为什么选择序列模型 2、数学符号 用1来代表人名,0来代表非人名,句子x便可以用y[1 1 0 1 1 0 0 0 0]来表示 3、循环网络模型 值得一提的是,共享特征还有助于减少神经网络中的参数数量,一定程度上减小了模型的计算复杂度。 …

字符串匹配算法(KMP)

文章目录1. KMP由来2. KMP算法基本原理3. 代码4. Leetcode 28. 实现 strStr()1. KMP由来 上一节说的BM算法是最高效、最常用的字符串匹配算法。最知名的却是KMP,它3位作者(D.E.Knuth,J.H.Morris,V.R.Pratt)&#xff0…

常用的SQL语句

常用的SQL语句 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server 1 --- 创建 备份数据的 device 2 3   USE master 4 5   EXEC sp_addumpdevice disk, te…

论文浅尝 | 用对抗学习做知识表示(NAACL2018)

论文链接:https://arxiv.org/pdf/1711.04071.pdf代码链接:https:// github.com/cai-lw/KBGAN 本文针对在生成负样本时有大部分负样本可以很好地和正样本区分开,对训练的影响不大,提出了使用生成对抗网络(GANs&#xff…

为什么搜索与推荐场景用AUC评价模型好坏?

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 吴海波在互联网的排序业务中,比如搜索、推荐、广告等,AUC(Area under the Curve of ROC)是一个非常常见的评估指标。网上关于AUC的资料很多,知…

Redis系列教程(九):Redis的内存回收原理,及内存过期淘汰策略详解

Redis内存回收机制 Redis的内存回收主要围绕以下两个方面: 1.Redis过期策略:删除过期时间的key值 2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据 Redis的过期策略和内存淘汰策略不是一件事,实际研发中不要弄混淆了,下面会…

字符串匹配算法(Trie树)

文章目录1. Trie树概念2. Trie树操作2.1 存储2.2 查找2.3 插入2.4 删除2.5 打印3. 完整代码4. Trie树与散列表、红黑树的比较4.1 思考题参考文章5. 练习题1. Trie树概念 Trie树,也叫字典树,它是一个树形结构。是一种专门处理字符串匹配的数据结构&#…