词向量压缩的方法和装置、获取词向量的方法和装置制造方法及图纸

技术编号:37100762 阅读:15 留言:0更新日期:2023-04-01 05:01
本申请提供了一种词向量压缩的方法和装置、获取词向量的方法和装置。该词向量压缩的方法包括:获取第一词向量,第一词向量包括N个元素,N≥2;将N个元素进行混合比特存储,其中N个元素中的第一元素与N个元素中的第二元素所占用的比特数不同。相应地,该获取词向量的方法包括:根据第一待处理词汇获取第一压缩词向量,第一压缩词向量包括第一数组,第一数组包括至少一个Q比特数据,其中至少一个Q比特数据所拼接形成的序列包括第一词向量所包括的N个元素拼接形成的第一序列;对第一数组进行解析,获取第一词向量中的N个元素。上述技术方案能够减少词向量存储所需的空间。能够减少词向量存储所需的空间。能够减少词向量存储所需的空间。

【技术实现步骤摘要】
词向量压缩的方法和装置、获取词向量的方法和装置


[0001]本申请涉及数据处理
,并且更具体地,涉及一种词向量压缩的方法和装置、获取词向量的方法和装置。

技术介绍

[0002]自然语言处理(natural language processing,NLP)任务中,一般包括词向量库和具体的任务处理模型。词向量库是由大量语料预先训练得到的<词:向量>映射关系库,用于将文本中的词转换为数值向量,以供后续任务处理模型进行处理。
[0003]基于减少时延、保护用户隐私和减少网络连接等方面的考虑,目前越来越多的自然语言处理任务由服务器转移到客户端设备(例如手机、平板、音箱、手环等)上处理。
[0004]客户端设备的存储空间往往较小,因此如何减小词向量库的存储空间,对于客户端设备侧NPL应用显得至关重要。

技术实现思路

[0005]本申请提供一种词向量压缩的方法和装置、获取词向量的方法和装置,能够减少词向量存储所需的空间。
[0006]第一方面,提供了一种词向量压缩的方法,包括:获取第一词向量,所述第一词向量包括N个元素,N≥2;将所述N个元素进行混合比特存储,其中所述N个元素中的第一元素与所述N个元素中的第二元素所占用的比特数不同。
[0007]本申请实施例中,将第一词向量进行混合比特存储,具体地,第一词向量中的元素在存储时所占用的比特数不完全相同,这样可以将较小的元素的值用较少的比特存储,较大的元素的值用较多的比特存储,避免将词向量中的全部元素使用较多的比特存储,从而可以减少存储词向量所需的空间。
[0008]结合第一方面,在一种可能的实现方式中,所述将所述N个元素进行混合比特存储,包括:将所述N个元素按顺序进行拼接,得到第一序列,其中所述第一元素在所述第一序列中占用P个比特,所述第二元素在所述第一序列中占用Q个比特,P<Q,所述第一元素的值属于P个比特能够表示的数值范围,所述第二元素的值属于Q个比特能够表示的数值范围但不属于P个比特能够表示的数值范围;将所述第一序列按照Q个比特一组进行切分,其中不足Q个比特时添0补齐,得到与所述第一词向量对应的第一数组。
[0009]第一词向量中的元素占用的比特数不完全相同,但可以通过拼接和切分以同一数据类型进行存储,可以在尽可能减少词向量语义精度损失的情况下,减少词向量的存储空间,并且可以兼容各种版本的编程语言和硬件平台,减低工程实现的难度。
[0010]结合第一方面,在一种可能的实现方式中,还包括:获取第二数组,所述第二数组包括N个标志位,所述N个标志位与所述N个元素一一对应,其中所述N个标志位中的一个标志位用于指示所述N个元素中一个元素在所述第一数组中的起始比特位和长度,所述N个标志位中的每个标志位在所述第二数组中占用1比特;将所述第一数组和所述第二数组作为
压缩后的词向量进行存储。
[0011]这样,在解析还原词向量时,可以根据标志位所指示的N个元素中的每个元素在第一数组中的起始比特位和长度,还原出第一词向量中的N个元素。
[0012]结合第一方面,在一种可能的实现方式中,所述获取第一词向量包括:当满足预设条件时,获取所述第一词向量;其中,所述预设条件包括:P*y+Q(N

y)+N*1<Q*N,和/或y/N>1/(Q

P);其中,y为所述第一词向量中包括的第一元素的数量,N

y为所述第一词向量中包括的第二元素的数量。
[0013]将满足预设条件的词向量进行混合比特存储,可以尽可能的减少词向量存储的空间。
[0014]结合第一方面,在一种可能的实现方式中,所述获取第一词向量包括:获取第一原始词向量,所述第一原始词向量包括N

个元素,所述N

个元素中的每个元素需要K比特的存储空间;将所述第一原始词向量进行低比特量化,得到所述第一词向量,其中所述第一词向量中的N个元素与所述第一原始词向量中的N

个元素一一对应,所述N个元素中的每个元素需要Q比特的存储空间,Q<K。
[0015]在低比特量化前,第一原始词向量中的每个元素需要K比特的存储空间,在低比特量化得到的第一词向量中,第一词向量中的每个元素需要Q比特的存储空间。由于Q<K,因此经过低比特量化后,词向量占用的存储空间减小。
[0016]结合第一方面,在一种可能的实现方式中,所述将所述第一原始词向量进行低比特量化,得到所述第一词向量,包括:根据公式3对所述第一原始词向量中的N

个元素分别进行计算,得到所述第一词向量中的N个元素;
[0017]其中公式3为:X2=round(X1/S
放缩因子
+Z
零点
);其中,X1为所述第一原始词向量中任意一个元素的值,X2为所述第一词向量中与X1对应的元素的值,S
放缩因子
为放缩因子,Z
零点
为零点,round()为取整函数;
[0018]所述S
放缩因子
根据公式1得到,公式1为:S
放缩因子
=(X1_max

X1_min)/(X_max

X_min);
[0019]所述Z
零点
根据公式2得到,公式2为:Z
零点
=X_max

X1_max/S
放缩因子

[0020]其中,X1_max为所述第一原始词向量所属的原始词向量库中所有元素的最大值,X1_min为所述第一原始词向量所属的原始词向量库中所有元素的最小值,X_max为Q比特能够表示的最大值,X_min为Q比特能够表示的最小值。
[0021]结合第一方面,在一种可能的实现方式中,还包括:获取第二原始词向量,所述第二原始词向量中的每个元素需要K比特的存储空间;将所述第二原始词向量进行低比特量化,得到第二词向量,所述第二词向量中的每个元素需要Q比特的存储空间,Q<K;其中,所述第二词向量中,数值属于P个比特能够表示的数值范围的元素个数占所述第二词向量中全部元素个数的比例不超过1/(Q

P),P<Q。
[0022]将满足预设条件的词向量进行混合比特存储,将不满足预设条件的词向量可以按照一般压缩方式进行,可以尽可能的减少词向量存储的空间。
[0023]结合第一方面,在一种可能的实现方式中,所述Q为32、16、8中的任意一个值;和/或所述P为7、6、5、4、3、2、1中的任意一个值。
[0024]第二方面,提供了一种获取词向量的方法,包括:根据第一待处理词汇获取所述第一待处理词汇对应的第一压缩词向量,所述第一压缩词向量包括第一数组,所述第一数组
包括至少一个Q比特数据,其中所述至少一个Q比特数据所拼接形成的序列包括第一词向量所包括的N个元素拼接形成的第一序列,其中所述N个元素中的第一元素在所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种词向量压缩的方法,其特征在于,包括:获取第一词向量,所述第一词向量包括N个元素,N≥2;将所述N个元素进行混合比特存储,其中所述N个元素中的第一元素与所述N个元素中的第二元素所占用的比特数不同。2.根据权利要求1所述的方法,其特征在于,所述将所述N个元素进行混合比特存储,包括:将所述N个元素按顺序进行拼接,得到第一序列,其中所述第一元素在所述第一序列中占用P个比特,所述第二元素在所述第一序列中占用Q个比特,P<Q,所述第一元素的值属于P个比特能够表示的数值范围,所述第二元素的值属于Q个比特能够表示的数值范围但不属于P个比特能够表示的数值范围;将所述第一序列按照Q个比特一组进行切分,其中不足Q个比特时添0补齐,得到与所述第一词向量对应的第一数组。3.根据权利要求2所述的方法,其特征在于,还包括:获取第二数组,所述第二数组包括N个标志位,所述N个标志位与所述N个元素一一对应,其中所述N个标志位中的一个标志位用于指示所述N个元素中一个元素在所述第一数组中的起始比特位和长度,所述N个标志位中的每个标志位在所述第二数组中占用1比特;将所述第一数组和所述第二数组作为压缩后的词向量进行存储。4.根据权利要求2或3所述的方法,其特征在于,所述获取第一词向量包括:当满足预设条件时,获取所述第一词向量;其中,所述预设条件包括:P*y+Q(N

y)+N*1<Q*N,和/或y/N>1/(Q

P);其中,y为所述第一词向量中包括的第一元素的数量,N

y为所述第一词向量中包括的第二元素的数量。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述获取第一词向量包括:获取第一原始词向量,所述第一原始词向量包括N

个元素,所述N

个元素中的每个元素需要K比特的存储空间;将所述第一原始词向量进行低比特量化,得到所述第一词向量,其中所述第一词向量中的N个元素与所述第一原始词向量中的N

个元素一一对应,所述N个元素中的每个元素需要Q比特的存储空间,Q<K。6.根据权利要求5所述的方法,其特征在于,所述将所述第一原始词向量进行低比特量化,得到所述第一词向量,包括:根据公式3对所述第一原始词向量中的N

个元素分别进行计算,得到所述第一词向量中的N个元素;其中公式3为:X2=round(X1/S
放缩因子
+Z
零点
);其中,X1为所述第一原始词向量中任意一个元素的值,X2为所述第一词向量中与X1对应的元素的值,S
放缩因子
为放缩因子,Z
零点
为零点,round()为取整函数;所述S
放缩因子
根据公式1得到,公式1为:S
放缩因子
=(X1_max

X1_min)/(X_max

X_min);所述Z
零点
根据公式2得到,公式2为:
Z
零点
=X_max

X1_max/S
放缩因子
;其中,X1_max为所述第一原始词向量所属的原始词向量库中所有元素的最大值,X1_min为所述第一原始词向量所属的原始词向量库中所有元素的最小值,X_max为Q比特能够表示的最大值,X_min为Q比特能够表示的最小值。7.根据权利要求1至6中任一项所述的方法,其特征在于,还包括:获取第二原始词向量,所述第二原始词向量中的每个元素需要K比特的存储空间;将所述第二原始词向量进行低比特量化,得到第二词向量,所述第二词向量中的每个元素需要Q比特的存储空间,Q<K;其中,所述第二词向量中,数值属于P个比特能够表示的数值范围的元素个数占所述第二词向量中全部元素个数的比例不超过1/(Q

P),P<Q。8.根据权利要求2至7中任一项所述的方法,其特征在于,所述Q为32、16、8中的任意一个值;和/或所述P为7、6、5、4、3、2、1中的任意一个值。9.一种获取词向量的方法,其特征在于,包括:根据第一待处理词汇获取所述第一待处理词汇对应的第一压缩词向量,所述第一压缩词向量包括第一数组,所述第一数组包括至少一个Q比特数据,其中所述至少一个Q比特数据所拼接形成的序列包括第一词向量所包括的N个元素拼接形成的第一序列,其中所述N个元素中的第一元素在所述第一序列中占用P个比特,所述N个元素中的第二元素在所述第一序列中占用Q个比特,P<Q,所述第一词向量为与所述第一压缩词向量对应的压缩之前的词向量;对所述第一数组进行解析,获取所述第一词向量中的N个元素,N≥2。10.根据权利要求9所述的方法,其特征在于,所述第一压缩词向量还包括第二数组,所述第二数组包括N个标志位,所述N个标志位与所述N个元素一一对应,其中所述N个标志位中的一个标志位用于指示所述N个元素中一个元素在所述第一数组中的起始比特位和长度,所述N个标志位中的每个标志位在所述第二...

【专利技术属性】
技术研发人员:兰国兴白立勋孟亚洲赵磊许娟婷
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1