一种基于字符对编码的词向量存储空间压缩的方法技术

技术编号:21224826 阅读:26 留言:0更新日期:2019-05-29 05:34
本发明专利技术提出一种基于字符对编码的词向量存储空间压缩的方法,具体方式为:步骤1,选取预处理完毕的语料,获得所述语料中每个词语的子词构成,在所述语料中的词语后插入它相对应的子词表示,构成一个新语料集;步骤2,使用所述新语料集训练出每个词语词向量集{Wi}与子词的词向量集{Si};步骤3,使用所述子词的词向量集S作为基词向量集,为每一个原词语训练出基于所述基词向量集的线性组合,使用该线性组合结果作为原词向量的表达。

A Compression Method of Word Vector Storage Space Based on Character Pair Coding

The present invention proposes a method of compressing the storage space of word vector based on character pair coding. The method is as follows: step 1, select the pre-processed corpus, obtain the sub-word structure of each word in the corpus, insert the corresponding sub-word representation after the words in the corpus, and form a new corpus; step 2, train each word with the new corpus. Vector set {Wi} and subword vector set {Si}; Step 3, using the subword vector set S as the base word vector set, a linear combination based on the base word vector set is trained for each primitive word, and the result of the linear combination is used as the expression of the primitive vector.

【技术实现步骤摘要】
一种基于字符对编码的词向量存储空间压缩的方法
本专利技术涉及一种自然语言处理中的词向量压缩方法,主要涉及一种基于字符对编码的词向量存储空间压缩的方法。
技术介绍
词向量是自然语言处理(NLP)中的一组语言建模和特征学习技术的统称,其中来自词汇表的单词或短语被映射到实数的向量。从概念上讲,它涉及从每个单词一维的空间到具有更低维度的连续向量空间的数学嵌入。在语言学中,在分布语义学的研究领域中讨论了词嵌入。它旨在基于语言数据的大样本中的分布属性来量化和分类语言项之间的语义相似性。词向量最基本的性质就是,如果两个词语较为语义相近,那么他们在向量空间中的距离也较为相近。很多场景需要对词向量进行压缩,诸如手机收入法中的语言模型,需要预训练的词向量进行初始化,在移动存储设备中,词向量的存储空间不能太大,太大的存储空间意味着更多的外磁盘,内存等存储资源消耗。现有技术压缩词向量存储空间的算法,在语料集出现的词语中,选取词频极高的词语以及它们的词向量构成基词向量集,再使用算法为剩余的低频词语训练出稀疏向量表示集。这样通过矩阵乘法操作作为转换的稀疏矩阵,这样使用向量表示集与基词向量集,即可复原出原本的词向量集,但是高频词语构成的基词向量集加上低频词语的稀疏向量表示集的存储大小,远小于原本的词向量集,达到压缩词向量存储空间的目的。现有技术另一种常用方法是训练自编码器,使用自编码器达到矩阵降维的作用。现有技术存在的问题:1.算法训练速度慢,现有的词向量压缩算法得到的压缩后的词向量集,由高频词语构成的基词向量集加上低频词语的稀疏向量表示集两部分组成。对于低频词语的稀疏向量表示,是使用基词向量集中所有词向量W的线性组合Wx来获得一个最接近原低频词词向量xe的结果,Xe=Wx,这个线性组合x就是该低频词的向量表示。但向量x的维度等于基词向量集的数量模||W||,因此从极高维的解空间中训练出一个最佳的基向量线性组合会花费大量的时间。2.使用压缩算法得到的词向量无法应对没有在语料中出现的罕见词,压缩后的词向量中只包含了有限个词语的词向量,一些没有出现在中的词向量表中的词语,就无法获得对应的词向量。深度学习及神经网络技术为我们的生活带来的许多变化。然而一个神经网络的运行依赖一定规模的训练参数,这些参数会占用大量的存储空间,这对将神经网络移植到移动端带来挑战,因此压缩网络存储空间就显得尤为重要。对于自然语言处理相关的神经网络,绝大多数存储空间都被词向量所占用,现阶段也有了一些压缩词向量存储空间的算法,但他们有一些不可忽视的问题。一是使用小规模词向量的线性组合,来表示余下大量的低频词词向量,这种线性组合训练任务解空间复杂,难以找到最优解,这种复杂性也让压缩算法得到的词向量与原词向量有一定的差距;二是词向量的规模有限,囊括所有词语的词向量不现实,对于一些罕见词就无法获取它对应的词向量。
技术实现思路
针对以上问题,本专利技术提出一种基于字符对编码的词向量存储空间压缩的方法,在保证词向量性质基本不受影响的情况下,达到大幅压缩词向量的存储空间的目标,同时提升了依据原词向量训练出压缩后词向量的训练速度,并解决了无法获得罕见词语磁向量的问题。本专利技术的有益效果为:一是引入子词(subword)的思想。将一个词语看作由多个子词构成,例如单语“sunshine”可以拆分成“sun”和“shine”。对子词进行词向量训练,从而将传统的词向量转化为子词向量,对于一些罕见词,可以将其拆分成多个子词部分,用子词词向量的线性表示来间接获取罕见词的词向量,从而在一定程度上缓解了无法获取罕见词词向量的问题;二是由高频词的基词向量集训练低频词的线性组合表示的时候,为线性组合设置一个初始解,从而在训练阶段可以使用梯度下降方法快速找到最优解。附图说明图1为本专利技术的整体流程图;图2为本专利技术的步骤1的具体流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。如图1所示,本专利技术获取压缩词向量集的方法流程为步骤1,选取一定规模的、预处理完毕的语料,使用BPE算法,获得语料中每个词语的子词构成,将原语料中的词语后插入它相对应的子词表示,构成一个新语料集。如图2所示为步骤1的具体流程图。在步骤1中具体实现为:步骤1-1,首先根据空格切分原训练语料,因此需要先分词,以统计词语与词频。将每个词语变成单个词如’word’变为{w,o,r,d</w>},根据词频进行排序,形成{(w,o,r,d):1}类似的词语词频字典。步骤1-2,将排序字典中每个key进行前后组后,统计词频,如{(w,o,r,d):1}则变为{wo:1,or:1,rd:1}。生成词语词频统计结果。步骤1-3,基于指定生成子词的数目N,每次选择频率出现最高的词语,将词语词频字典中对应的两个词合并成一个词,如‘a”b’出现的合并为’ab’,并将其写入字符编码对里。并将与之相关的统计结果进行更新,如‘abcb’,如果ab合并,则对应的’bc’统计次数减少。最后将‘ab’的统计次数置为0。不断循环迭代,直至生成指定数目的字词N。步骤2,使用glove算法依据上述新语料训练出每个词语词向量集{Wi}与子词的词向量集{Si},每个词向量维度为n维,这里注意到子词的数量||S||远小于词语的总数量||W||。同时由于子词和原词语在一起进行训练,两者之间的词向量差距很小,不会使得词向量的性质受到较多损失。所述glove算法为统计语料库(文本)中词与词之间的共现(co-occurrence)信息,即在一个窗口中共同出现的次数,比如“我去北京上大学”在大小为3的窗口范围内,我-与共现次数为1,我-北京共现次数为1,去-北京共现次数为1,去-上共现次数为一等等,构成一个共现矩阵:我去北京上大学我11100去11110北京11111上01111大学00111其中共现矩阵的每一项为xij,函数f()根据词共现矩阵中不同数值大小,给予的误差进行不同程度的放缩。使用如上的损失函数,用随机梯度下降方法进行求解优化,具体的步骤如下,随机初始化V(词向量)和b(偏执项),然后使用梯度下降算法迭代优化,最后得到的Vi就是对应词i的词向量。步骤3,得到词语词向量集与子词词向量集后,使用子词词向量集作为基词向量集,为每一个原词语都训练出一个基于基词向量集S的线性组合SxT,使得Wi≈SxT,来表示出原词向量。先将x赋上一个可信的初始值,从而能加速优化过程。设计的损失函数中包含了x的l2正则化,正则化可以让词向量达到稀疏的目的。由于这里的向量表示是稀疏的,即线性方程组的解x中有大量的元素都是0,这样的解向量在存储中只会占用很少的空间。训练方法使用随机梯度下降方法,采用Adagrad优化器,损失函数采用MSE,及让复原的词向量尽可能的接近。构建损失函数对于此损失函数使用优化器,通过梯度下降方法,迭代求解,使得损失函数最小化,直到损失函数达到设定的阈值,或者训练轮数达到设定的目标轮数。通过损失函数使得loss函数最小化,具体的步骤描述如本文档来自技高网
...

【技术保护点】
1.一种基于字符对编码的词向量存储空间压缩的方法,其特征在于,具体方式为:步骤1,选取预处理完毕的语料,获得所述语料中每个词语的子词构成,在所述语料中的词语后插入它相对应的子词表示,构成一个新语料集;步骤2,使用所述新语料集训练出每个词语词向量集{Wi}与子词的词向量集{Si};步骤3,使用所述子词的词向量集S作为基词向量集,为每一个原词语训练出基于所述基词向量集的线性组合,使用该线性组合结果作为原词向量的表达。

【技术特征摘要】
1.一种基于字符对编码的词向量存储空间压缩的方法,其特征在于,具体方式为:步骤1,选取预处理完毕的语料,获得所述语料中每个词语的子词构成,在所述语料中的词语后插入它相对应的子词表示,构成一个新语料集;步骤2,使用所述新语料集训练出每个词语词向量集{Wi}与子词的词向量集{Si};步骤3,使用所述子词的词向量集S作为基词向量集,为每一个原词语训练出基于所述基词向量集的线性组合,使用该线性组合结果作为原词向量的表达。2.如权利要求1所述的方法,其特征在于,所述步骤1具体步骤为,步骤1-1,首先根据空格切分原训练语;步骤1-2,将排序字典中每个分词单元进行前后组后,生成词语词频统计结果;步骤1-3,基于指定生成子词的数目,每次选择频率出现最高的词语,将词语词频字典中对应的两个词合并成一个新词,将所述新...

【专利技术属性】
技术研发人员:李建欣包梦蛟谢一凡彭浩胡春明
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1