本文主要复述论文["Online Embedding Compression for Text Classification using Low Rank Matrix Factorization"] 的内容,以便自我回顾,也希望可以给大噶带来帮助~
此文为简略版,因此相比于之前的文章画风不太一样~
--------------------------------------------第一部分----------------------------------------------------
Background
在NLP任务中,通常向神经网络模型中输入的词embedding具有一定规模,使得网络计算量很大。例如为了表示大小为100K的词库,使用300维的向量来进行词特征表示,这样整个embedding矩阵就有60M的参数大小。根据以往研究调研,对于一个简单的情感分析任务来说,embedding对应的参数矩阵就占据了整个模型的98.8%。因此,如何有效缩小参数矩阵计算对网络模型产生的负担,可以成为模型优化的一个新思路。
Current Work
大多先前的工作在压缩embedding矩阵时候都采用的是在迭代循环之外,通过哈希或者量化方法实现一种线下的压缩方式。
Contributions
- 奇异值分解实现矩阵压缩
对模型初始的embedding矩阵,使用奇异值分解(SVD)来对当前矩阵进行压缩,并持续训练使得准确率下降的损失值最小。这使我们能够通过任意压缩率(p)来压缩深度NLP模型,该压缩率可以根据下游应用程序的限制和精度与内存之间的权衡来预先确定。 - 循环退火学习率
第二个贡献是提出了循环退火学习率(CALR),该方法扩展了之前关于循环学习率和随机超参数搜索的工作,在基于梯度下降的自学习率算法中表现良好。 - Results
该方法在文本分类任务中进行评测。
选择的数据集是Stanford Sentiment Treebank (SST2)与Books Intent Classification Dataset。
分别使用了两个网络模型LSTMs与DAN(Deep Averaging Network)进行结果对比。
结果在文本分类任务中表明有90%的模型大小在有最小准确率损失的情况下得到了压缩。
---------------------------------------第二部分------------------------------------------------
LMF方法实现网络模型压缩
上图描述了对于网络的某一层权重矩阵的压缩过程。也就是对初始输入的矩阵,使用SVD进行分解,得到两个矩阵分别为与,单独作为一层的参数进行训练。SVD分解的一系列等式如下:循环退火机制
使用循环退火机制得到的学习率(CALR),有两个阈值分为与,来控制循环过程中的LR的更新。下图为原始CLR方法与CALR的对比:
实验证明,CALR方法可以加快整个过程的收敛,也能够更好的规避局部最小值。具体的算法过程描述如下:
网友评论