分析|阿里工程师如何评价微软亚洲研究院提出的LightRNN?
社群用户来源包含:麻省理工学院 斯坦福大学 牛津大学 卡内基梅隆大学 剑桥大学 加州大学伯克利分校 苏黎世联邦理工学院 新加坡国立大学 普林斯顿大学 多伦多大学 帝国理工学院 墨尔本大学 香港科技大学 加州大学洛杉矶分校 清华大学 洛桑联邦理工学院 香港大学 爱丁堡大学 东京大学 香港中文大学 北京大学 复旦大学 武汉大学 南开大学 中科院等数百所名牌大学的研究生、博士以及教授;NVidia Facebook Line 微软 IBM 谷歌 Bosch Amazon Tesla Motors 百度 华为 英特尔 腾讯 阿里巴巴 蚂蚁金服 科大讯飞 旷视科技 碳云智能 地平线 软银投资 红杉资本等上千家全球一流AI相关企业的工程师以及技术专家。
作者:唐家声 来源:知乎 https://www.zhihu.com/question/54351238/answer/145821679
个人很喜欢这篇工作,可以说是16年读过的论文里面我非常喜欢的一篇了。里面的想法很简单同时很有效,并且有一些很有趣的结论。
总结一下LightRNN,模型方面:核心的想法就是通过修改常见的word embedding为2-Component (2C) shared embedding,即对某一词向量变为。其中,2C体现在分解词向量为两部,shared embedding体现在这样的分解向量是放在一个二维表中,其中每一行由一个向量表示(上角标 r),每一列由另一个向量表示(上角标 c)。根据一个词在二维表中的位置,该词可由行向量和列向量联合表示(这里注意一下,下角标因此分别用不同的符号表示)。“因为该表中同一行里的所有词共享相同的行向量,同一列的所有词共享相同的列向量,所以LightRNN仅仅需要2√|V|个向量来表示有|V|个词的词汇表,远远少于标准的RNN所需要的向量数|V|。这种词嵌入的做法被称做两部共享嵌入”。
预测阶段,这样在一个大词表的RNN语言模型中为了预测下一个词,LightRNN需要首先基于前面所有的词预测其行向量,然后基于前面所有的词和已经预测出来的行向量预测其列向量。虽然这样会将一个句子的预测长度翻了倍,但是实际中,因为词表的规模极大地减小,根据论文,在One Billion数据集上,“标准的RNN的模型参数个数为16-41亿,而LightRNN的模型参数个数仅为4千万,达到了40-100倍的压缩比”,模型训练时间快了一倍。一次预测的平均时间论文中没有给出(个人比较关心,因为关系到部署,实际能不能上线还是跟这个时间关系很大的),个人经验的结论是:虽然预测时长度变为2倍,但是因为最后Softmax显著减小了,总时间应该是少了的,但是有没有到一个显著的程度需要实验验证。
另外值得一提的是,这个二维词表在训练过程中是如何分配行列向量呢?这是一个很关键的问题。LightRNN的做法是:初始阶段,随机初始化;训练RNN直到模型收敛,收敛后,固定好学到的embedding参数,但是词需要被重新地分配到词表中合适的位置。语言模型的训练目标是最大化对数似然。类似地,词表重分配也应该满足这样的一个过程。(省略公式推导细节)通过一些简单的推导,这个重分配问题最终变为最小割最大流问题(见下图),求解这个问题完成一次词表的分配。完成一次重新分配,按照新的位置和参数继续训练RNN到收敛。论文中表示大概经历3-4次词表重分配就可以完成整个的训练了;而且虽然求一次重分配要花时间,但是相对于整个训练时间来讲这个开销还是很低的。
相关结论中:与标准的RNN进行单模型比对,LightRNN还达到了更好的PPL。这个可能是通过shared embedding的参数减少带来的。除了前面提到的模型大小、训练时间等问题,一个很有趣的现象是:LightRNN发现了词表中的一些语义。比如某一行或者某一列的词有着近似的表达;“其次,通过让有语义关联的词共享行或列向量,可以使低频的词的向量表达得到更充分的训练”(这一点是我第一次读这个论文没有注意到的点)。
最后简单评价一下:
LightRNN的优点中,模型大小的显著减小在嵌入式设备中的意义更大(考虑到ngram模型动辄几个几十个G的大小,对于Server类任务这个大小无所谓);而对于多GPU的训练也是能减小通讯开销(但是这一点个人认为意义不是特别大,因为当下及未来对于RNN的训练的问题会越来越小,训练时间往往大家不是特别在意,堆机器堆数据对大公司是家常便饭)。当然,“它使得单GPU训练超大词表的语料库成为现实”(对于穷人意义还是很大的!)。
进一步的研究可能是存在的:词的二部共享嵌入得到了一些有趣的语义上的结果(包括近似单词在一行/一列,以及低频词的向量表达),是不是有进一步研究的可能?(个人不会完全乐观于论文中挑出来的那些语义相近的例子);另外就是如果做k(>2)部分解呢?
这样的论文还是非常有趣的!
答案中带引号的句子引用了MSRA自己的评价
参见:http://weibo.com/ttarticle/p/show?id=2309404057398770837152;
论文链接:https://arxiv.org/abs/1610.09893
❈
全球人工智能近期经典文章推荐
重磅|百度宣布PaddlePaddle和Kubernetes 兼容:开发者可便捷做大规模深度学习训练
重磅|物理学家最新发现:神经网络效率 受限热力学第二定律
干货|不同的损失函数会对深度神经网络带来什么样的影响?
重磅 | 机器学习首次成功预测 金属间化合物缺陷
在你学习AI的路上 该如何提出别人乐于帮助解决的 好问题
分析软件破解神经网络黑盒子 将在"汉诺威"展示
Deep mind:给人工智能一个工作存储器,将会发生什么?
机器学习算法之决策树用法详解(使用Scikit-learn模块)
反向传播的意义及c++实现
匹兹堡赌场的赌神——扑克牌机器人背后的理论
❈