CN108415888A - 用于神经网络语言模型的压缩方法和系统 - Google Patents

用于神经网络语言模型的压缩方法和系统 Download PDF

Info

Publication number
CN108415888A
CN108415888A CN201810145363.2A CN201810145363A CN108415888A CN 108415888 A CN108415888 A CN 108415888A CN 201810145363 A CN201810145363 A CN 201810145363A CN 108415888 A CN108415888 A CN 108415888A
Authority
CN
China
Prior art keywords
language model
term vector
vector matrix
neural network
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810145363.2A
Other languages
English (en)
Inventor
俞凯
石开宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AI Speech Ltd
Original Assignee
Shanghai Jiaotong University
AI Speech Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University, AI Speech Ltd filed Critical Shanghai Jiaotong University
Priority to CN201810145363.2A priority Critical patent/CN108415888A/zh
Publication of CN108415888A publication Critical patent/CN108415888A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification

Abstract

本发明公开用于神经网络语言模型的压缩方法和系统,方法包括:将训练数据输入神经网络语言模型进行预训练;对输入和/或输出所述语言模型的词向量矩阵分别进行基分解和聚类量化操作,以对所述词向量矩阵进行压缩;再次将所述训练数据输入经过所述词向量矩阵压缩后的神经网络语言模型,以对所述语言模型进行微调。本发明提出了一种新颖有效的基于乘积量化的结构化单词嵌入框架,用以对输入/输出词向量矩阵进行压缩,在不损害NN LM性能的情况下,可以获得显著的内存减少率。

Description

用于神经网络语言模型的压缩方法和系统
技术领域
本发明属于语言模型压缩技术领域,尤其涉及用于神经网络语言模型的压缩方法和系统。
背景技术
在自动语音识别(ASR,Automatic Speech Recognition)中,语言模型(LM,Language Model)是结合给定语言的句法和语义约束的核心组件。传统的带有平滑的N元退避语言模型虽然在ASR中得到了广泛的应用,但是它的语境长度有限,词汇量大的内存要求也很大。最近,基于神经网络的语言模型(NN LM,Neural Network Language Model)由于其对单词语境历史和内存效率的有效编码而引起了极大的兴趣。在基于神经网络的语言模型中,单词语境和目标单词都被投影到连续的空间中。由变换矩阵表示的投影在训练期间被学习。投影的连续单词向量也被称为单词嵌入。前馈神经网络语言模型(FNNLM,FeedForward Neural Network)通过有效的单词语境编码,实现了对于ASR的更好的PPL(Perplexity,困惑度)和词错误率(WER)。在FNNLM之后,提出递归神经网络(RNN,RecurrentNeural Network)和长短时记忆(LSTM,Long Short-Term Memory)LM来处理句子中的长语境历史。它们已经在各种数据集上取得了最先进的成果。
包括FNNLM、RNNLM和其他变型的NN LM从单词到连续向量空间共享相同的嵌入映射。这种方法需要大量的用于单词嵌入的参数。这在许多情况下是不利的。首先,在资源受限系统中部署NN LM时,内存消耗成为一个主要问题。其次,由于每个单词被赋予一个独特的嵌入向量,由于数据的稀疏性,NN LM不太可能为不频繁的单词学习有意义的嵌入。值得注意的是,将子单词特征结合到RNNLM中的单词嵌入中,并且胜过直接的单词嵌入,但是对于额外的神经网络结构,内存成本增加。
NN LM的模型压缩近年来吸引了很多研究兴趣。NN LM中有两个基本压缩组件,即递归层和单词嵌入。在大多数情况下,NN LM中的大部分参数都在单词嵌入中。现有技术探索了LSTM的递归层中的神经元的独立性,并获得了最新的结果,同时在LSTM层获得了2.5×的压缩率。本文对输入和输出嵌入都没有进行研究,因此整个模型的内存成本仍然很高。LightRNN通过将单词嵌入分解成行嵌入和列嵌入来解决该问题。嵌入在固定数量的单词之间共享,导致巨大的内存减少。然而,LightRNN很难实现,并且相对较小的数据集可能会观察到显著的性能下降。在现有技术中,不频繁单词的嵌入通过稀疏线性组合由频繁单词的嵌入表示。它解决了上述两个问题,但是在微小的词汇量下,内存减少率是微不足道的(当|V|=10K时为20%)。另外,架构很复杂,因为它会在输出层中调用一个附加层。
发明内容
本发明实施例提供一种用于神经网络语言模型的压缩方法、系统及电子设备,用于至少解决上述技术问题之一。
第一方面,本发明实施例提供一种一种用于神经网络语言模型的压缩方法,包括:将训练数据输入神经网络语言模型进行预训练;对输入和/或输出所述语言模型的词向量矩阵分别进行基分解和聚类量化操作,以对所述词向量矩阵进行压缩;以及再次将所述训练数据输入经过所述词向量矩阵压缩后的神经网络语言模型,以对所述语言模型进行微调。
第二方面,本发明实施例提供一种用于神经网络语言模型的压缩系统,包括:预训练模块,配置为将训练数据输入神经网络语言模型进行预训练;压缩模块,配置为对输入和/或输出所述语言模型的词向量矩阵分别进行基分解和聚类量化操作,以对所述词向量矩阵进行压缩;以及微调模块,配置为再次将所述训练数据输入经过所述词向量矩阵压缩后的神经网络语言模型,以对所述语言模型进行微调。
第三方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的用于神经网络语言模型的压缩方法的步骤。
第四方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行本发明任一实施例的用于神经网络语言模型的压缩方法的步骤。
本发明的方法和系统本发明提出了一种新颖有效的基于乘积量化的结构化单词嵌入框架,用以对输入/输出词向量矩阵进行压缩,在不损害神经网络语言模型性能的情况下,可以获得显著的内存减少率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种用于神经网络语言模型的压缩方法的流程图;
图2为本发明一实施例提供的另一种用于神经网络语言模型的压缩方法的流程图;
图3a和图3b为本发明一实施例提供的一种用于神经网络语言模型的压缩方法的原理图;
图4为本发明一实施例提供的一种用于神经网络语言模型的压缩方法的压缩步骤示意图;
图5a和图5b为本发明一实施例提供的一种用于神经网络语言模型的压缩方法的低秩分解中的U和V;
图6为本发明一实施例提供的一种用于神经网络语言模型的压缩系统的框图;
图7是本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面,先介绍本申请的实施方式,之后将用实验数据证实本申请的方案与现有技术相比有什么不同,能实现什么有益效果。
请参考图1,其示出了本发明的用于神经网络语言模型的压缩方法一实施例的流程图,本实施例的用于神经网络语言模型的压缩方法可以适用于将神经网络语言模型用于存储空间较小的设备。
如图1所示,在步骤101中,将训练数据输入神经网络语言模型进行预训练;
在步骤102中,对输入和/或输出语言模型的词向量矩阵分别进行基分解和聚类量化操作,以对词向量矩阵进行压缩;
在步骤103中,再次将训练数据输入经过词向量矩阵压缩后的神经网络语言模型,以对语言模型进行微调。
在本实施例中,对于步骤101,神经网络语言模型压缩系统将训练数据输入神经网络语言模型进行预训练,通过预训练,可以对后续的词向量矩阵进行初始化,便于后续的压缩和训练。之后,对于步骤102,对输入和/或输出语言模型的词向量矩阵分别进行基分解和聚类量化操作,以对词向量矩阵进行压缩,通过对输入词向量矩阵和输出词向量矩阵分别进行压缩,可以极大地减少神经网络语言模型需要的存储空间,从而可以将神经网络语言模型移植到存储空间较小的设备上,例如便携式移动设备,可以仅对输入或输出的词向量矩阵进行压缩,或者都进行压缩,本申请在此没有限制。最后,对于步骤103,压缩系统将之前的训练数据再次输入神经网络语言模型中,此时神经网络语言模型已经能对输入和/或输出的词向量举证进行压缩,再次输入能够对压缩后的语言模型的各项参数进行微调,从而可以降低对语言模型性能的影响。需要说明的是,预训练和微调存在的意义各不相同,不经过第一步的预训练无法得到合适的基础词向量,那么在做聚类的时候就无法把意义相近的词聚在一起,造成性能损失。在量化的过程中对词向量矩阵的结构做了改变,如果不进行微调的话也会导致性能降低。因此,如果完全不考虑对性能的影响,本发明的方案只有基分解和聚类的步骤也是可以实现的,只是性能会很低,不符合我们的预期。
进一步参考图2,其示出了其示出了本发明的用于神经网络语言模型的压缩方法另一实施例的流程图,本实施例的用于神经网络语言模型的压缩方法可以适用于将神经网络语言模型用于存储空间较小的设备。本实施例的流程主要是对图1中步骤102的喜欢步骤。
如图2所示,在步骤201中,将输入和/或输出词向量矩阵按照预定基数g进行分解以得到与词向量矩阵对应的g个子矩阵;
在步骤202中,将与词向量矩阵对应的多个子矩阵按照预定类别数c聚类成c个类别,其中,每一个词向量矩阵由对应的g个经过聚类的子矩阵表示。
在本实施例中,对于步骤201,压缩系统首先对输入/输出词向量矩阵进行基分解,即按照预定基数g将一个词向量矩阵分解或切分成g个子矩阵,然后相同的子矩阵就能由同一个码本向量表示,词向量矩阵可以通过索引向量对应至一个或多个码本。其中,每一个单独的词就对应一个词向量,所有的词向量组成词向量矩阵。神经网络语言模型中输入的时候需要把词转换为向量,在输出的时候需要一个反向的操作,所以也需要一个矩阵。词向量的词数越大,相同的子矩阵越多,一个码本向量所能表示的子矩阵就越多,而索引向量占用的空间又非常小,从而可以极大地节省存储空间。之后,对于步骤202,再对子矩阵进行聚类,对于每一个子矩阵,子矩阵又可以看作许多向量,距离近的向量在聚类的过程中会被分到同一类中,对于同一类的(子矩阵中的)向量可以随机的采用该聚类的任一个词表示,如此多个词便可共享同一向量,达到模型压缩的效果,并且可以使词向量矩阵通过码本和索引向量快速地恢复成原来的词向量。
本实施例中,通过将一个向量看作多个向量的笛卡尔积的形式,从而大大增加了词向量表达空间的多样性,也大大减少了聚类中出现的冲突情况。在有限的词与词冲突的情形中,我们认为这样的冲突是因为词之间有很强的相互替代关系,可以随意替代。
在进一步的实施例中,在压缩阶段,采用乘积量化将词向量矩阵压缩到索引矩阵和码本张量其中,e是嵌入尺寸,|V|是词汇大小。从而可以更好地对词向量矩阵进行压缩、量化表示和还原。
进一步地,预定基数包括4-10。预定类别数包括词向量数量的1/50-1/20。从而可以对词向量矩阵进行更好地压缩而又不对神经网络语言模型的性能产生太大的影响。
进一步参考图3a和图3b,其示出了本发明一实施例的原理图。
本发明想要解决的问题是:在大词表连续语言识别系统中,神经网络语言模型中的词嵌入(word embedding)消耗内存过大。
现有技术中,一般采用向量量化的方式解决上述问题,向量量化也就是聚类,把一些距离比较近的向量看作一类,这样可以用一个向量代替N个向量。由于需要存储的向量数量减少,所以需要的内存空间就大大降低了。但是现有技术中的该方式导致最终语言模型的性能指标(PPL)非常差,语音识别的结果不通顺。发明人发现:现有技术之所以会出现上述问题,是因为不同的词共享同一个向量,所以很多量化之后词与词之间的区别被抹掉,无法有效区分。
现有技术中还可能采取以下方式解决上述技术问题:1)减少隐层大小2)低秩分解or SVD 3)标量量化4)聚类(k-均值)
本发明实施例提出的方法是介于标量量化与聚类之间的一种中间方法。或者也可以把标量量化和聚类看作本方法的特殊情况。这种方法目前在语音识别领域没有被研究过,同时由于词嵌入对误差的敏感性,所以当前没有人从向量量化的角度来解决语言模型的压缩问题。
在本实施例中,通过先训练普通的语言模型,然后对语言模型中的输入和输出的词向量矩阵分别进行基分解+聚类量化操作。之后再使用原始数据进行模型参数的微调,最后得到与原始模型性能指标基本相同的压缩模型。
提出的方法涉及到两个额外参数的选择,可以根据实际设备的内存情况进行选择。
在进行基分解时,需要指定基的数量,即分为多少个子矩阵。一般来说是4~10个。
在进行聚类量化步骤时,需要指定类别数量,一般来说是词数的1/20~1/50。
由于语言模型中有两个词嵌入的矩阵,分别是输入和输出。发明人在实现本发明的过程中,首先做了只对输入的矩阵采用本方法进行压缩的实验,最后的性能会稍好,但是压缩率很低。
本方法能够直接达到的效果是减少了语言模型内存的消耗,更深层次,由于内存消耗降低,有如下好处:
1、在嵌入式、手机等平台上可以使用更加强大、效果更好、词表更大的语言模型,提升性能和用户体验(基分解)。
2、在手机等移动终端进行语言模型的获取时,可以减少模型更新的流量消耗,以及手机app的空间占用(聚类量化)。
3、模型训练时对显卡或者服务器的内存要求也大大降低,减少模型的开发成本(聚类量化)。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
接下来,以一个具体的示例来论述本发明的实现过程和效果。
本文提出了一种新颖有效的基于乘积量化的结构化单词嵌入框架,以节省NN LM内存。单词嵌入被分割成子嵌入,每个子嵌入被量化并由码本和索引表示。因此,在输出和输入单词嵌入中,每个单词与其他单词部分共享嵌入。共享关系是由单词之间的句法和语义相似性自动决定的。实验表明,在不损害NN LM性能的情况下,可以获得显著的内存减少率。
LSTM LM的内存消耗
在本节中,将回顾LSTMLM的体系结构。然后我们讨论传统的LSTMLM中的内存问题。
LSTM LM可以看作是三个主要部分,即输入嵌入、LSTM编码器和输出嵌入。在本节的以下部分中,xt表示时间t处的x。Wn表示W的第n行,其中W是权重矩阵。V是词汇,|V|是词汇大小。e是嵌入维度,h是LSTM的单元大小。
输入嵌入是由表示的查找表,将单词索引W映射到单词嵌入x。
LSTM编码器将输入序列[x1,...,xT]编码为隐藏状态序列[h1,...,hT]。等式2中描述了细节
其中(f,i,o,c)分别为忘记、输入、输出、单元门。
对应的权重矩阵h是馈入下一层的隐藏状态。输出嵌入是由表示的投影层,接着是softmax操作。它将LSTM h的隐藏状态转换为单词概率分布P。
其中Pn是第n个单词的概率。
W(in)或W(out)中的每一行都可以被视为相应单词(即单词嵌入)的连续向量表示。
LSTM LM(Long Short-Term Memory Language Model,长短时记忆语言模型)可以使用“沿时间反向传播”(BPTT,Backpropagation through time)算法进行训练。由于概率在V之间被归一化,因此计算成本最高的是W(out)上的传播。
LSTM LM中的内存问题
LSTM LM的内存消耗已成为近来由于数据集规模迅速增长而引起的严重问题。忽略偏差,LSTM LM中的参数θ可以分为两部分:嵌入中的参数θe={W(in),W(out)}和LSTM层中的参数θlstm={Wf,Wi,Wo,Wc}。给定相应的词汇表V、嵌入大小e和LSTM单元大小h,可以容易地计算参数的总数。这里我们用|θ|表示θ中的参数总数。
|θ|=|θe|+θlstm|=|V|e+|V|h+4h(h+e)
=(|V|+4h)(h+e) (4)
在语言模型中广泛使用的数据集是OneBillionWord(OBW),其中|V|=793K。为了对如此数量的单词进行建模,嵌入部分在OBW上的小嵌入尺寸如e=h=200时将花费将近1.2GB的内存空间,这对于便携式设备来说通常太大。同时,对应配置的单层LSTM仅需要大约1M的内存空间。|V|在ClueWeb09中为100M,即使GPU或工作站也不能在本机内存中保存这些模型。
参数的数量随着词汇大小、嵌入大小和LSTM大小而线性增加。我们将在|V|≥10,000、h,e≤1,000的假设下讨论内存问题,这在大多数大型的词汇语言模型中是合理的。实际上,较小的e或h可以大大减少参数,因为系数|V|足够大。但是由于表示能力较差,性能会随着e或h的下降而急剧下降。截断词汇可能是一个解决方法,但仍然表现糟糕。传统嵌入的内存问题的主要原因是缺乏利用单词之间相似关系的结构。目前的嵌入框架将每个单词分别作为嵌入矩阵W的一行来处理,因此所有的嵌入是完全独立的。一旦将新词w添加到词汇表中,完整的行向量xw将被附加到嵌入矩阵W。
通常使用低秩分解来减少矩阵中的参数。全秩矩阵W由具有较低秩的两个矩阵U、V分解。该方法的压缩率可以通过秩值来控制。但是在高压缩率下性能会急剧下降,说明朴素的低秩在嵌入中不能充分利用底层结构。向量量化也可以使用。它通过利用这些点的全局结构来压缩向量,并已成功地用于语音识别、计算机视觉。然而,朴素向量量化方法需要高维空间中的全局结构以获得良好的性能,这在现实世界中很少得到满足。
也有近期提出的其他有前途的方法来利用单词之间的相似性。它们明确定义了单词嵌入的共享原则,所以这些方法在语言模型任务中超越了传统的方法。
LightRNN假设一个单词w可以用行嵌入和列嵌入来表示,而不是单个嵌入xw。为了将所有的单词分配到一个方形的表格中,在lightRNN中存在另一个强有力的假设:恰好存在行和列嵌入,每行或列嵌入恰好在单词之间共享。在这些假设下,lightRNN将|V|嵌入压缩为个嵌入。lightRNN的缺点在于第二个假设,这只是相对较小的词汇而已。如表4所示,尽管压缩率最高,但在实际应用中性能是不可接受的。而且,在给定词汇的情况下,lightRNN的压缩率是固定的。
现有技术探索了一种结构化嵌入的不同方法。假设单词可以用词汇中的其他单词表示。具体而言,词汇分为频繁单词和罕见单词。通过对频繁单词的嵌入矩阵W(r)=TW(f)的线性变换得到罕见单词的嵌入矩阵W(r)。变换矩阵T定义为稀疏的非负矩阵,从而实现参数的减少。这种方法是一种特别的方法,因为分隔罕见单词和频繁单词的阈值是由直觉指定的。
具有乘积量化的结构化嵌入
乘积结构化嵌入(PSE,Product Structured Embedding)的引入旨在通过在类似单词之间共享部分嵌入来减少语言模型的内存消耗,假定一个单词用不同的单词共享不同的基础属性。在这种结构中,除了权重矩阵W中的行之外,单词嵌入由来自压缩嵌入结构的部分嵌入候选组成。
如前文所述,朴素的VQ(矢量量化,vector quantization)通常会伤害到性能。为了缓解这个问题,乘积量化通过将空间分解成低维子空间的笛卡尔乘积和分别量化每个子空间来探索向量空间中的冗余。使用乘积量化,在CNN(卷积神经网络,ConvolutionalNeural Network)中实现了低性能下降的图像任务的高压缩率。
为充分利用单词间的部分相似性,我们使用乘积量化来压缩嵌入。如图4所示,乘积量化方法调用两个基本步骤,将嵌入矩阵分解成几个子空间(本文也称为组),并量化每个子空间中的向量。分解到子空间确保了表示能力,而量化大大减少了参数和内存成本。
在我们的模型中,我们首先训练一个具有传统嵌入的朴素语言模型。然后,输入和输出嵌入矩阵被乘积量化(PQ,product quantization)单独压缩,然后对整个模型进行微调或完全重新训练以获得最佳性能。
通过乘积量化压缩
图1.乘积量化方法的简单说明
在压缩阶段,输入嵌入和输出嵌入是独立压缩的。两个嵌入操作是完全相同的,所以我们以输入嵌入为例。乘积量化需要两个超参数,聚类数c和组数g。在压缩阶段,采用乘积量化将矩阵压缩到索引矩阵和码本张量其中e是嵌入尺寸,|V|是词汇大小,表示实数域。应该指出的是,在我们目前的工作中,矩阵被等分为g个片断,所以e必须被g除尽,这是不必要的。
在分解步骤中,将原始矩阵W简单地划分为沿着第二维的g个组:
W=[W1,W2,…,Wg] (5)
之后,子矩阵Wi逐个量化。在本文中,子矩阵Wi中的行向量通过Kmeans聚类,K=c。K均值算法使用质心(即码本)来表示所有向量。它维护一个向量中心映射,即索引,指示哪个质心最接近每个向量。
每个子矩阵Wi被压缩成一个索引向量和码本因此原始矩阵W被压缩为索引矩阵和码本张量
PSE中的参数θPSE由码本中的参数θC和索引矩阵θQ组成。根据矩阵大小,参数的总数是|θPSE|=|θC|+|θQ|=ec+|V|g。一个典型的设置是|V|=10K,e=200,g=8,c=400,因此压缩率由下式计算
请注意,索引是非负整数,因此我们可以通过仅使用所需的位来获得更高的压缩率。
解释为低秩分解
我们可以把乘积量化看作一个特殊的低秩分解W=UV,其中U的值是固定的,在训练过程中只有V被更新。固定U有助于减少朴素低秩分解的冗余。
图5a表示低秩分解中的U,以及图5b表示低秩分解中的V。
如图5a和图5b所示,U中的行是从Q中的行获得的,其中,1≤j≤g时,V是一个块对角矩阵,其中第i个块是码本Vi=Ci
此外,我们的模型可以被认为是增加一个中间层,其中一个单词由多个单向向量而不是单个单向向量来表示。
实验
在PTB和SWB数据集上评估PSE模型。选择数据集时的主要关注点是词汇量。使用简单的LSTM LM,其详细配置如表1所示。模型经过GTX1080、Intel Xeon E5-2620V4、CUDA-8.0和Pytorch框架的训练和测试。
嵌入矩阵被顺序地分块成第二维的g个块,然后是从向量量化的sklearn中的简单的K-means。k-means算法用“k-means++”方法进行初始化,并运行10次以获得最佳结果。
表1.模型配置
表2.乘积结构化嵌入PTB的不同初始化方法的性能。
表现和表示能力
我们的方法首先在PTB上进行研究。我们固定了超参数g(in)=g (out)=8,c(in)=c(out)=400,并测试了各种初始化方法在PTB上的性能,结果如表2所示。预先训练表示使用预先训练的嵌入矩阵进行乘积量化,否则使用随机初始化矩阵。绑定输出和输入的嵌入也被用来改善嵌入质量,被称为绑定。注意到,无论初始化方法如何,我们模型中的结构化输入和输出嵌入都不受限制。而且我们在只知道单词间的相似性的情况下也进行了研究,即码本C是随机初始化的,而索引Q是通过一些先验知识(这里简单的是预先训练的嵌入)初始化的,这就表示为码本。
随机初始化的模型(PSE-R)没有先验单词的相似性知识,因为单词嵌入是未初始化的。部分嵌入在随机选取的单词之间共享,导致压缩后的性能不佳(165)。同时,PSE-W通过对预先训练好的嵌入权重矩阵进行聚类,得到可接受的性能。我们也尝试基于绑定嵌入来进行乘积量化。当与码本初始化(PSEWT+)结合时,它给了我们最好的结果。它得出的结论是,在LSTM LM中,绑定权重可以产生更好的单词相似性嵌入。在最佳性能模型PSE-WT+上,我们在嵌入中实现了12.5倍的参数减少,几乎没有性能损失。
还探讨了不同PQ配置对g和c的影响。如表3所示,PPL随g和c的增加而下降。较大的g有助于发现局部相似性,c有助于区分不同的属性。但是当这些数字足够大的时候,
表3.在PTB上的PSE-WT+的网格搜索结果,如果同时计算输入和输出,尺寸应该加倍。
表4.PTB上各种嵌入压缩方法的比较
1当g=1时,矢量量化等于PSE-WT+;
2我们遵循https://github.com/Microsoft/CNTK/tree/master/Examples/Text/LightRNN中的示例配置,除了嵌入大小和隐藏大小都设置为200;
3g=4;c=50
在索引尺寸和码本尺寸线性增长的同时,性能增益并不明显。对于g=10,c=1000,我们得到比基线(97)更好的PPL(94),同时在嵌入中仍然达到6.7倍的压缩。它改善了共享部分嵌入不伤害单词嵌入的表示能力。
我们也在交换机上测试了我们的方法。语言模型是在交换机的转录上进行训练,词汇由出现3次以上的单词组成,总共约30K个单词。根据经验,我们设定c(in)=c(out)=1000,g(in)=4,g(out)=6。在这个任务中,我们只用预先训练的LSTMLM基线初始化索引矩阵Q,码本C被随机初始化。所提出的模型给出了与基线几乎相同的性能,同时在嵌入中实现了20倍的压缩率,在整个模型中实现了11.7倍的压缩率。
与其他方法比较
表4给出了不同压缩方法之间的比较。为了得到相似的压缩率,在朴素低秩分解中将秩设置为20,并且在向量量化中将聚类的数量设置为400。为了与lightRNN进行比较,我们使用了一个更小的模型sPSE-WT+,其中压缩率是完全一样的。
LightRNN具有最高的压缩率,但性能最差。而且,lightRNN的压缩率是固定的。为了与lightRNN进行比较,我们构建了一个名为sPSE-WT+的较小模型,具有相同的压缩率。sPSE-WT+的PPL比lightRNN更低。与朴素低秩和向量量化相比,所提出的模型PSE-WT+以最小的内存成本实现了最佳的PPL,因为它利用了更深的单词嵌入结构。
结论和未来的工作
在这项工作中,输入和输出嵌入被乘积结构化嵌入所取代。原始模型和压缩模型之间的性能差距在PPL和WER方面可以忽略不计,而压缩模型在输入和输出嵌入时需要的参数。
由于时间的限制,我们没有在词汇量较大的数据集上评估我们的模型。但是当词汇量越大,压缩率就越大,因为模型更容易发现部分相似性。
请参考图6,其示出了本发明一实施例提供的用于神经网络语言模型的压缩系统的框图。
如图6所示,本发明的用于神经网络语言模型的压缩系统600,包括预训练模块601、压缩模块602和微调模块603。
其中,预训练模块601,配置为将训练数据输入神经网络语言模型进行预训练;压缩模块602,配置为对输入和/或输出语言模型的词向量矩阵分别进行基分解和聚类量化操作,以对词向量矩阵进行压缩;以及微调模块603,配置为再次将训练数据输入经过词向量矩阵压缩后的神经网络语言模型,以对语言模型进行微调。
在一些可选的实施例中,压缩模块包括基分解模块和聚类模块。其中,基分解模块(图中未示出),配置为将输入和/或输出词向量矩阵按照预定基数g进行分解以得到与词向量矩阵对应的g个子矩阵;以及聚类模块(图中未示出),配置为将与词向量矩阵对应的多个子矩阵按照预定类别数c聚类成c个类别,其中,每一个词向量矩阵由对应的g个经过聚类的子矩阵表示。
应当理解,图6中记载的诸模块与参考图1和图2中描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征以及相应的技术效果同样适用于图6中的诸模块,在此不再赘述。
值得注意的是,本公开的实施例中的模块并不用于限制本公开的方案,例如存储模块可以描述为在所述词图的每一条边上存储一个输出词的模块。另外,还可以通过硬件处理器来实现相关功能模块,例如存储模块也可以用处理器实现,在此不再赘述。
在另一些实施例中,本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的用于神经网络语言模型的压缩方法;
作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
将训练数据输入神经网络语言模型进行预训练;
对输入和/或输出所述语言模型的词向量矩阵分别进行基分解和聚类量化操作,以对所述词向量矩阵进行压缩;
再次将所述训练数据输入经过所述词向量矩阵压缩后的神经网络语言模型,以对所述语言模型进行微调。
作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的用于神经网络语言模型的压缩方法对应的程序指令/模块。一个或者多个程序指令存储在非易失性计算机可读存储介质中,当被处理器执行时,执行上述任意方法实施例中的用于神经网络语言模型的压缩方法。
非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于神经网络语言模型的压缩装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至用于神经网络语言模型的压缩装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行上述任一项用于神经网络语言模型的压缩方法。
图7是本发明实施例提供的电子设备的结构示意图,如图7所示,该设备包括:一个或多个处理器710以及存储器720,图7中以一个处理器710为例。用于神经网络语言模型的压缩方法的设备还可以包括:输入装置730和输出装置740。处理器710、存储器720、输入装置730和输出装置740可以通过总线或者其他方式连接,图7中以通过总线连接为例。存储器720为上述的非易失性计算机可读存储介质。处理器710通过运行存储在存储器720中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例用于神经网络语言模型的压缩方法。输入装置730可接收输入的数字或字符信息,以及产生与信息投放装置的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
作为一种实施方式,上述电子设备应用于神经网络语言模型中,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
将训练数据输入神经网络语言模型进行预训练;
对输入和/或输出所述语言模型的词向量矩阵分别进行基分解和聚类量化操作,以对所述词向量矩阵进行压缩;
再次将所述训练数据输入经过所述词向量矩阵压缩后的神经网络语言模型,以对所述语言模型进行微调。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种用于神经网络语言模型的压缩方法,包括:
将训练数据输入神经网络语言模型进行预训练;
对输入和/或输出所述语言模型的词向量矩阵分别进行基分解和聚类量化操作,以对所述词向量矩阵进行压缩;
再次将所述训练数据输入经过所述词向量矩阵压缩后的神经网络语言模型,以对所述语言模型进行微调。
2.根据权利要求1所述的方法,其中,所述对输入和/或输出所述语言模型的词向量矩阵分别进行基分解和聚类量化操作包括:
将输入和/或输出词向量矩阵按照预定基数g进行分解以得到与所述词向量矩阵对应的g个子矩阵;
将与所述词向量矩阵对应的多个子矩阵按照预定类别数c聚类成c个类别,其中,每一个词向量矩阵由对应的g个经过聚类的子矩阵表示。
3.根据权利要求2所述的方法,其中,在压缩阶段,采用乘积量化将词向量矩阵压缩到索引矩阵和码本张量其中,e是嵌入尺寸,|V|是词汇大小,表示实数域。
4.根据权利要求2或3所述的方法,其中,所述预定基数包括4-10。
5.根据权利要求2或3所述的方法,其中,所述预定类别数包括词向量数量的1/50-1/20。
6.一种用于神经网络语言模型的压缩系统,包括:
预训练模块,配置为将训练数据输入神经网络语言模型进行预训练;
压缩模块,配置为对输入和/或输出所述语言模型的词向量矩阵分别进行基分解和聚类量化操作,以对所述词向量矩阵进行压缩;
微调模块,配置为再次将所述训练数据输入经过所述词向量矩阵压缩后的神经网络语言模型,以对所述语言模型进行微调。
7.根据权利要求6所述的系统,其中,所述压缩模块包括:
基分解模块,配置为将输入和/或输出词向量矩阵按照预定基数g进行分解以得到与所述词向量矩阵对应的g个子矩阵;
聚类模块,配置为将与所述词向量矩阵对应的多个子矩阵按照预定类别数c聚类成c个类别,其中,每一个词向量矩阵由对应的g个经过聚类的子矩阵表示。
8.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至5任一项所述方法的步骤。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
CN201810145363.2A 2018-02-12 2018-02-12 用于神经网络语言模型的压缩方法和系统 Pending CN108415888A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810145363.2A CN108415888A (zh) 2018-02-12 2018-02-12 用于神经网络语言模型的压缩方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810145363.2A CN108415888A (zh) 2018-02-12 2018-02-12 用于神经网络语言模型的压缩方法和系统

Publications (1)

Publication Number Publication Date
CN108415888A true CN108415888A (zh) 2018-08-17

Family

ID=63128487

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810145363.2A Pending CN108415888A (zh) 2018-02-12 2018-02-12 用于神经网络语言模型的压缩方法和系统

Country Status (1)

Country Link
CN (1) CN108415888A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109978144A (zh) * 2019-03-29 2019-07-05 联想(北京)有限公司 一种模型压缩方法和系统
CN110096697A (zh) * 2019-03-15 2019-08-06 华为技术有限公司 词向量矩阵压缩方法和装置、及获取词向量的方法和装置
CN110347860A (zh) * 2019-07-01 2019-10-18 南京航空航天大学 基于卷积神经网络的深度图像描述方法
CN111274816A (zh) * 2020-01-15 2020-06-12 湖北亿咖通科技有限公司 一种基于神经网络的命名实体识别方法和车机
CN111352926A (zh) * 2018-12-20 2020-06-30 北京沃东天骏信息技术有限公司 数据处理的方法、装置、设备及可读存储介质
CN111667069A (zh) * 2020-06-10 2020-09-15 中国工商银行股份有限公司 预训练模型压缩方法、装置和电子设备
CN111814448A (zh) * 2020-07-03 2020-10-23 苏州思必驰信息科技有限公司 预训练语言模型量化方法和装置
CN113037482A (zh) * 2021-04-13 2021-06-25 山东新一代信息产业技术研究院有限公司 一种基于rnn的模型压缩加密方法
CN114118085A (zh) * 2022-01-26 2022-03-01 云智慧(北京)科技有限公司 一种文本信息的处理方法、装置及设备
US11620435B2 (en) 2019-10-10 2023-04-04 International Business Machines Corporation Domain specific model compression
CN117033641A (zh) * 2023-10-07 2023-11-10 江苏微皓智能科技有限公司 一种大型预训练语言模型的网络结构优化微调方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105184362A (zh) * 2015-08-21 2015-12-23 中国科学院自动化研究所 基于参数量化的深度卷积神经网络的加速与压缩方法
CN105578183A (zh) * 2015-12-16 2016-05-11 西安交通大学 一种基于高斯混合模型的压缩传感视频编解码方法
CN107004157A (zh) * 2015-01-22 2017-08-01 高通股份有限公司 模型压缩和微调

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107004157A (zh) * 2015-01-22 2017-08-01 高通股份有限公司 模型压缩和微调
CN105184362A (zh) * 2015-08-21 2015-12-23 中国科学院自动化研究所 基于参数量化的深度卷积神经网络的加速与压缩方法
CN105578183A (zh) * 2015-12-16 2016-05-11 西安交通大学 一种基于高斯混合模型的压缩传感视频编解码方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
百度NLP: ""神经网络模型压缩技术"", 《HTTPS://BAIJIAHAO.BAIDU.COM/S?ID=1571422806169703&WFR=SPIDER&FOR=PC》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352926A (zh) * 2018-12-20 2020-06-30 北京沃东天骏信息技术有限公司 数据处理的方法、装置、设备及可读存储介质
CN111352926B (zh) * 2018-12-20 2024-03-08 北京沃东天骏信息技术有限公司 数据处理的方法、装置、设备及可读存储介质
CN110096697A (zh) * 2019-03-15 2019-08-06 华为技术有限公司 词向量矩阵压缩方法和装置、及获取词向量的方法和装置
CN110096697B (zh) * 2019-03-15 2022-04-12 华为技术有限公司 词向量矩阵压缩方法和装置、及获取词向量的方法和装置
CN109978144B (zh) * 2019-03-29 2021-04-13 联想(北京)有限公司 一种模型压缩方法和系统
CN109978144A (zh) * 2019-03-29 2019-07-05 联想(北京)有限公司 一种模型压缩方法和系统
CN110347860B (zh) * 2019-07-01 2021-07-09 南京航空航天大学 基于卷积神经网络的深度图像描述方法
CN110347860A (zh) * 2019-07-01 2019-10-18 南京航空航天大学 基于卷积神经网络的深度图像描述方法
US11620435B2 (en) 2019-10-10 2023-04-04 International Business Machines Corporation Domain specific model compression
CN111274816A (zh) * 2020-01-15 2020-06-12 湖北亿咖通科技有限公司 一种基于神经网络的命名实体识别方法和车机
CN111667069A (zh) * 2020-06-10 2020-09-15 中国工商银行股份有限公司 预训练模型压缩方法、装置和电子设备
CN111667069B (zh) * 2020-06-10 2023-08-04 中国工商银行股份有限公司 预训练模型压缩方法、装置和电子设备
CN111814448A (zh) * 2020-07-03 2020-10-23 苏州思必驰信息科技有限公司 预训练语言模型量化方法和装置
CN111814448B (zh) * 2020-07-03 2024-01-16 思必驰科技股份有限公司 预训练语言模型量化方法和装置
CN113037482A (zh) * 2021-04-13 2021-06-25 山东新一代信息产业技术研究院有限公司 一种基于rnn的模型压缩加密方法
CN114118085B (zh) * 2022-01-26 2022-04-19 云智慧(北京)科技有限公司 一种文本信息的处理方法、装置及设备
CN114118085A (zh) * 2022-01-26 2022-03-01 云智慧(北京)科技有限公司 一种文本信息的处理方法、装置及设备
CN117033641A (zh) * 2023-10-07 2023-11-10 江苏微皓智能科技有限公司 一种大型预训练语言模型的网络结构优化微调方法

Similar Documents

Publication Publication Date Title
CN108415888A (zh) 用于神经网络语言模型的压缩方法和系统
Wang et al. Wide compression: Tensor ring nets
Nakkiran et al. Compressing deep neural networks using a rank-constrained topology
Wang et al. Cnnpack: Packing convolutional neural networks in the frequency domain
Hrinchuk et al. Tensorized embedding layers for efficient model compression
CN111712836A (zh) 作为问答的多任务学习
EP3794469A1 (en) Multitask learning as question answering
CN110263913A (zh) 一种深度神经网络压缩方法及相关设备
Robert et al. Hybridnet: Classification and reconstruction cooperation for semi-supervised learning
CN104951791B (zh) 数据分类方法和装置
US10515301B2 (en) Small-footprint deep neural network
CN110298446B (zh) 面向嵌入式系统的深度神经网络压缩和加速方法及系统
CN109977250A (zh) 融合语义信息和多级相似性的深度哈希图像检索方法
CN110288029A (zh) 基于Tri-LSTMs模型的图像描述方法
CN109448706A (zh) 神经网络语言模型压缩方法及系统
Wei et al. Compact MQDF classifiers using sparse coding for handwritten Chinese character recognition
CN113407663B (zh) 基于人工智能的图文内容质量识别方法和装置
Chen et al. Distilled binary neural network for monaural speech separation
CN111767697B (zh) 文本处理方法、装置、计算机设备以及存储介质
CN110992943B (zh) 基于词混淆网络的语义理解方法及系统
Moriya et al. Evolution-strategy-based automation of system development for high-performance speech recognition
Thakker et al. Rank and run-time aware compression of NLP applications
KR20210058059A (ko) 문장 임베딩 기반의 비지도 학습 문서 요약 방법 및 이를 이용한 문서 요약용 디바이스
CN105260736A (zh) 基于归一化非负稀疏编码器的图像快速特征表示方法
Xie et al. A residual network of water scene recognition based on optimized inception module and convolutional block attention module

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200624

Address after: 215123 14 Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou, Jiangsu.

Applicant after: AI SPEECH Co.,Ltd.

Applicant after: Shanghai Jiaotong University Intellectual Property Management Co.,Ltd.

Address before: 215123 14 Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou, Jiangsu.

Applicant before: AI SPEECH Co.,Ltd.

Applicant before: SHANGHAI JIAO TONG University

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201027

Address after: 215123 14 Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou, Jiangsu.

Applicant after: AI SPEECH Co.,Ltd.

Address before: 215123 14 Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou, Jiangsu.

Applicant before: AI SPEECH Co.,Ltd.

Applicant before: Shanghai Jiaotong University Intellectual Property Management Co.,Ltd.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province

Applicant after: Sipic Technology Co.,Ltd.

Address before: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province

Applicant before: AI SPEECH Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180817