一种基于频域变换的词向量压缩方法及装置

文档序号:1831767 发布日期:2021-11-12 浏览:10次 >En<

阅读说明:本技术 一种基于频域变换的词向量压缩方法及装置 (Word vector compression method and device based on frequency domain transformation ) 是由 冯旻伟 尹竞成 杨晓倩 杨萌 阮良 于 2021-08-05 设计创作,主要内容包括:本公开的实施方式提供了一种基于频域变换的词向量压缩方法。该方法包括:将待压缩的词向量进行傅里叶变换,得到与所述词向量对应的频域向量;计算所述频域向量中各个元素的模值,并基于所述模值的数值大小对所述频域向量中的元素进行排序;从排序后的所述频域向量中选取若干元素,并基于所述选取出的若干元素构建压缩后的词向量。通过以上技术方案,既不改变词向量原有的表达能力,又可以按词向量各元素的重要性进行排序,因此,不仅能够处理高度非线性分布的语言中的词汇,还可以去除不重要的元素,仅保留代表词向量中关键信息的元素,从而实现对词向量的压缩,降低了词向量的维护成本。(The embodiment of the disclosure provides a word vector compression method based on frequency domain transformation. The method comprises the following steps: carrying out Fourier transform on the word vector to be compressed to obtain a frequency domain vector corresponding to the word vector; calculating the modulus value of each element in the frequency domain vector, and sequencing the elements in the frequency domain vector based on the numerical value of the modulus value; and selecting a plurality of elements from the sorted frequency domain vectors, and constructing a compressed word vector based on the selected elements. Through the technical scheme, the original expression capacity of the word vector is not changed, and sequencing can be performed according to the importance of each element of the word vector, so that the vocabulary in the language with highly nonlinear distribution can be processed, unimportant elements can be removed, and only the elements representing the key information in the word vector are reserved, thereby realizing compression of the word vector and reducing the maintenance cost of the word vector.)

一种基于频域变换的词向量压缩方法及装置

技术领域

本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方 式涉及一种基于频域变换的词向量压缩方法、装置、存储介质以及电子设 备。

背景技术

本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上 下文。此处的描述不因为包括在本部分中就承认是现有技术。

词向量,是指用数学中的向量形式来表示语言中的词汇,即,将词汇 映射到向量空间中,并用向量表示。

例如,“苹果”可以表示为[0.343434,-0.88749,0.992112…,0.232432]。

其中,上述词向量中的元素分别可以用于表示“苹果”出现在哪些句 子里,出现的时候“苹果”之前经常是哪些词,之后经常是哪些词,“苹 果”通常出现在句子的什么位置,以及“苹果”出现的句子的长度等信息。

通常,可以采用word2vec、glove等方法,基于语料库中百亿数量级 的海量语料,通过神经网络模型训练获得词向量,表示出某个词汇在语料 库中的信息。

为了提高词向量的表示效果,可以通过增加词向量的维度来表示更多 的信息,而百亿数量级的语料库中通常包含了相当多的信息,因此,为包 含这些信息,词向量的长度需要尽可能的长。

在实际应用中,词汇总量往往很大,例如中文的词汇量大概在50万, 假设每个词汇对应的词向量长度都为200,则总计需要约1亿个向量元素 来表示中文的所有词汇,这必然导致词向量占用存储空间过大的问题,同 时还会导致对词向量进行处理时计算量过大的问题,最终增加了词向量的 维护成本。

发明内容

为此,非常需要一种改进的词向量压缩方案,以使在不降低词汇量的 同时,能准确的对高度非线性分布的人类语言词汇进行压缩,实现降低词 向量维护成本的目的。

在本上下文中,本公开的实施方式期望提供一种基于频域变换的词向 量压缩方法及装置。

在本公开实施方式的第一方面中,提供了一种基于频域变换的词向量 压缩方法,包括:

将待压缩的词向量进行傅里叶变换,得到与所述词向量对应的频域向 量;

计算所述频域向量中各个元素的模值,并基于所述模值的数值大小对 所述频域向量中的元素进行排序;

从排序后的所述频域向量中选取若干元素,并基于所述选取出的若干 元素构建压缩后的词向量。

在本公开的一个实施例中,所述对待压缩的词向量进行傅里叶变换所 使用的傅里叶变换算法包括离散傅里叶变换;

所述将待压缩的词向量进行傅里叶变换,包括:

基于如下公式对所述待压缩的词向量进行离散傅里叶变换:

其中,[X0,X1,…,XN-1]T表示所述待压缩的词向量,[Y0,Y1,…,YN-1]T表示所述频域向量,Yk=ak+bki,i2=-1,0≤k≤N-1,WN表示大小 为N×N因子矩阵,

其中,ωN表示因子,ωN=e^(-2πi/N)。

在本公开的一个实施例中,所述对待压缩的词向量进行傅里叶变换所 使用的傅里叶变换算法包括快速傅里叶变换;

所述将待压缩的词向量进行傅里叶变换,包括:

基于如下公式对所述待压缩的词向量进行快速傅里叶变换:

其中,表示大小为的单位矩阵,表示大小为的对角矩阵,

表示大小为的因子矩阵,

其中,表示因子,

在本公开的一个实施例中,所述从排序后的所述频域向量中选取若干 元素,包括:

当排序策略为所述模值的数值从大到小排序时,选取所述排序结果中 靠前的若干元素。

在本公开的一个实施例中,该方法还包括:

获取所述若干元素在排序前的频域向量中对应的位置信息。

在本公开的一个实施例中,所述基于选取出的若干元素构建压缩后的 词向量,包括:

将所述若干元素对应的位置信息,以及所述若干元素的模值分别作为 新的元素,基于所述若干元素的排序,构建出所述压缩后的词向量;

或者,

将所述若干元素对应的位置信息,以及所述若干元素的模值的平方分 别作为新的元素,基于所述若干元素的排序,构建出所述压缩后的词向量;

或者,

将所述若干元素对应的位置信息、所述若干元素的实部,以及所述若 干元素的虚部分别作为新的元素,基于所述若干元素的排序,构建出所述 压缩后的词向量。

在本公开的一个实施例中,所述位置信息包括所述若干元素在排序前 的频域向量中对应的位置信息的倒数。

在本公开实施方式的第二方面中,提供了一种装置,包括:

变换模块,将待压缩的词向量进行傅里叶变换,得到与所述词向量对 应的频域向量;

排序模块,计算所述频域向量中各个元素的模值,并基于所述模值的 数值大小对所述频域向量中的元素进行排序;

构建模块,从排序后的所述频域向量中选取若干元素,并基于所述选 取出的若干元素构建压缩后的词向量。

在本公开实施方式的第三方面中,提供了一种介质;其上存储有计算 机指令,该指令被处理器执行时实现如下所述方法的步骤:

将待压缩的词向量进行傅里叶变换,得到与所述词向量对应的频域向 量;

计算所述频域向量中各个元素的模值,并基于所述模值的数值大小对 所述频域向量中的元素进行排序;

从排序后的所述频域向量中选取若干元素,并基于所述选取出的若干 元素构建压缩后的词向量。

在本公开实施方式的第四方面中,提供了一种计算设备,包括:

处理器;以及,用于存储处理器可执行指令的存储器;

其中,所述处理器通过运行所述可执行指令以实现如下所述方法的步 骤:

将待压缩的词向量进行傅里叶变换,得到与所述词向量对应的频域向 量;

计算所述频域向量中各个元素的模值,并基于所述模值的数值大小对 所述频域向量中的元素进行排序;

从排序后的所述频域向量中选取若干元素,并基于所述选取出的若干 元素构建压缩后的词向量。

本公开以上的实施方式,至少具有如下的有益效果:

通过傅里叶变换将视为信号波的词向量变换到频域空间,得到长度相 同的频域向量,再计算频域向量各元素的模值,并基于模值的大小进行排 序,从而选取出若干元素构建压缩后的词向量。通过以上技术方案,一方 面,由于在对词向量进行压缩时并不降低词汇量,因此并不改变词向量原 有的表达能力;另一方面,由于将词向量变换到频域空间后,可以基于频 域向量中各元素模值的大小进行排序,实现按词向量各元素的重要性进行排序,因此,不仅能够处理高度非线性分布的语言中的词汇,还可以去除 不重要的元素,仅保留代表词向量中关键信息的元素,从而实现对词向量 的压缩,降低了词向量的维护成本。

附图说明

通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以 及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制 性的方式示出了本公开的若干实施方式,其中:

图1示意性地示出了根据本公开实施方式的一种基于频域变换的词向 量压缩方法的流程图;

图2示意性地示出了根据本公开实施方式的一种基于频域变换的词向 量压缩装置的框图;

图3示意性地示出了根据本公开实施方式的一种基于频域变换的词向 量压缩介质的示意图;

图4示意性地示出了根据本公开实施方式的一种能够实现上述方法的 电子设备的示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理 解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而 实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施 方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传 达给本领域的技术人员。

本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、 设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式, 即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者 硬件和软件结合的形式。

根据本公开的实施方式,提出了一种基于频域变换的词向量压缩方法、 介质、装置和计算设备。

在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限 制,以及任何命名都仅用于区分,而不具有任何限制含义。

目前,通常采用基于聚类和主成分分析的词向量矩阵压缩方法,对词 向量矩阵的行数和列数分别进行降维,实现对词向量的压缩,从而降低词 向量的维护成本。

例如,对于待压缩的词向量,可以先对词向量进行聚类,去除语义相 似的词汇,从而减少了词向量矩阵的行数,再对词向量的特征进行主成分 分析,仅保留词向量中的主要特征,从而减少了词向量矩阵的列数,实现 对词向量的压缩。

然而,一方面,在进行词向量的行压缩时,由于语言中词汇量的丰富 性和多样性,导致聚类的结果不一定准确,而且由于聚类后的词汇总量减 少,导致压缩后的词汇的表达能力有限;另一方面,在进行词向量的列压 缩时,基于主成分分析的压缩本质上是一种线性降维技术,通常适用于空 间分布呈高斯分布的情形,而实际语言中词汇的分布通常呈现出高度的非 线性,导致基于主成分分析得到的结果不一定准确。

接下来以一个较为简单的例子说明上述词向量的压缩过程。请参见下 表1,假设词汇表中的词汇量为4个,每个词向量的长度为10,现需要对

表1所示的词向量进行压缩。

词汇 词向量
高兴 [0.8966,0.8534,…,0.9001]
欢喜 [0.7902,0.9432,…,0.8349]
悲伤 [0.1731,0.2419,…,0.3453]
忧愁 [0.2285,0.2943,…,0.3717]

表1 可以根据表1获得一个4*10维的待压缩矩阵M1:

采用基于聚类和主成分分析的词向量矩阵压缩方法的具体过程如下:

首先,对待压缩矩阵M1中的词汇进行聚类,例如k-means聚类、层 次聚类等算法,通过以词向量间的欧氏距离作为相似度衡量指标来进行分 类。

继续举例,对于表1而言,可以将聚类算法中的超参数,即类别数k 设定为2,由于“高兴”、“欢喜”对应词向量的欧式距离远小于“高兴”、 “悲伤”对应词向量的欧氏距离,因而可以将“高兴”、“欢喜”分为一 类,同理,可以基于欧氏距离将“悲伤”、“忧愁”为另一类,聚类结果 可以如下表2所示。

表2

其次,从聚类结果选出每一类别的代表词以及类别中心,通常可以选 取词频达到预设频率的词作为代表词,即常用词,而类别中心就是代表词 对应的词向量。

继续举例,选取出的代表词以及类别中心可以如下表3所示:

类别 代表词 词向量
1 高兴 [0.8966,0.8534,…,0.9001]
2 悲伤 [0.1731,0.2419,…,0.3453]

表3 此时,可以用矩阵M2表示表3中的词向量:

其中,矩阵M2是通过聚类算法对矩阵M1进行词向量的行压缩后所 获得的新的词向量矩阵,在矩阵M2中,每个词向量的长度仍为10,需要 进一步对词向量的列数进行压缩。

接下来,对初步压缩后的词向量所包含的特征进行主成分分析,通过 选取前n个主成分,得到最终压缩后的矩阵M3。

继续举例,假设对M2的词向量进行主成分分析后,选取前5个主成 分得到的矩阵M3为:

则表3中可以更新为下表4所示:

类别 代表词 词向量
1 高兴 [0.7845,0.8435,0.8642,0.6983,0.9300]
2 悲伤 [0.2312,0.3892,0.4319,0.3875,0.2488]

表4

即,矩阵M3即为基于聚类和主成分分析得到的最终压缩后的矩阵, 此时,要存储的词向量矩阵从4*10维的M1,压缩到了2*5维的M3。

由上述过程可以想象,在面对语言中巨大的词汇量时,对词汇量压缩 的重要性。而通过聚类和主成分分析两个角度对词向量进行压缩时,一方 面,由于语言中词汇量的丰富性和多样性,导致聚类算法中的超参数k难 以选取,使得在进行词向量的行压缩时,聚类的结果不一定准确,而且由 于聚类后的词汇总量减少,导致压缩后的词汇的表达能力有限;

另一方面,在进行词向量的列压缩时,基于主成分分析的压缩本质上 是一种线性降维技术,通常适用于空间分布呈高斯分布的情形,而实际语 言中词汇的分布通常呈现出高度的非线性,导致基于主成分分析得到的结 果不一定准确,并不是词向量元素选取的最优解。

下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精 神。

发明概述

如前所述,本公开人发现,在采用聚类算法进行词向量的行压缩时, 由于通过减少词汇量的方式进行压缩,会导致压缩后的词向量表达能力受 限,而基于主成分分析进行词向量的列压缩时,由于采用了线性降维技术, 并不适用于语言中词汇的高度非线性分布,导致得到的主成分并不准确。

有鉴于此,本说明书提供一种将词向量变换为频域向量,并基于变换 后的频域向量的模值的大小进行排序,进而基于排序结果获取词向量中的 关键元素,再基于关键元素构建新的词向量,从而在不减少词汇量的前提 下,实现了对呈高度非线性分布的词汇进行词向量压缩,进而降低了词向 量的维护成本的技术方案。

本说明书的核心技术构思在于:

词向量可以视为一段长度有限的信号波,各元素可以视为对该信号在 连续时域上的等间隔采样后,获得的离散时间上的信号采样值,而在使用 傅里叶变换后,可以将时域上的离散信号转换为频域上的离散信号。

通过傅里叶变换将视为信号波的词向量变换到频域空间,得到长度相 同的频域向量,再计算频域向量各元素的模值,并基于模值的大小进行排 序,从而选取出若干元素构建压缩后的词向量。

通过以上技术方案,一方面,由于在对词向量进行压缩时并不降低词 汇量,因此并不改变词向量原有的表达能力;另一方面,由于将词向量变 换到频域空间后,可以基于频域向量中各元素模值的大小进行排序,实现 按词向量各元素的重要性进行排序,因此,不仅能够处理高度非线性分布 的语言中的词汇,还可以去除不重要的元素,仅保留代表词向量中关键信 息的元素,从而实现对词向量的压缩,降低了词向量的维护成本。

在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制 性实施方式。

应用场景总览

自然语言处理任务的核心在于通过语言模型对词汇进行表示,例如, 词汇的含义、词汇在上下文中的语义等。而词向量可以用来表征词的特征 信息,通常,词向量可以表示如表1所示的向量形式,多个词向量可以构 成形如M1的词向量矩阵。

因此,基于海量语料库构建出的词向量矩阵,可以广泛应用于自然语 言处理场景,例如基于用户收藏的歌曲,向用户推荐与该歌曲的歌词语义 相似的其他歌曲;又如,基于资讯类客户端中用户针对某条资讯的评论, 确定并收集用户的情绪,等等。

但由于语言中词汇量巨大,以及语法复杂的特点,往往需要大量的特 征进行描述,导致生成的词向量矩阵体积庞大,占据相当大的存储空间, 因此,需要提供有效的词向量矩阵压缩方法。

需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理 而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施 方式可以应用于适用的任何场景。

示例性方法

下面将通过具体的实施例对本说明书的技术构思进行详细描述。

本公开旨在提供一种将词向量变换为频域向量,并基于变换后的频域 向量的模值的大小进行排序,进而基于排序结果获取词向量中的关键元素, 再基于关键元素构建新的词向量,从而在不减少词汇量的前提下,实现了 对呈高度非线性分布的词汇进行词向量压缩,进而降低了词向量的维护成 本的技术方案。

在实现时,可以将待压缩的词向量进行傅里叶变换,得到与所述词向 量对应的频域向量;

例如,可以将待压缩的词向量视为信号波,通过离散傅里叶变换或者 快速傅里叶变换,将待压缩的词向量变换到频域空间,得到与所述词向量 对应的频域向量。

在得到频域向量之后,可以计算所述频域向量中各个元素的模值,并 基于所述模值的数值大小对所述频域向量中的元素进行排序;

例如,可以对频域向量中的各个元素分别计算模值,并按照计算出的 模值的数值大小,从大到小对频域向量中的各个元素进行排序。

在排序完成之后,可以从排序后的所述频域向量中选取若干元素,并 基于所述选取出的若干元素构建压缩后的词向量;

例如,从上述排序策略为模值的数值从大到小排序时,可以选取排序 结果中靠前的若干元素;同时,还可以获取这些若干元素在在排序前的频 域向量中对应的位置信息;进一步的,可以将若干元素对应的位置信息, 以及若干元素的模值分别作为新的元素,基于若干元素模值的数值大小的 排序,构建出压缩后的词向量。

通过以上技术方案,一方面,由于在对词向量进行压缩时并不降低词 汇量,因此并不改变词向量原有的表达能力;另一方面,由于将词向量变 换到频域空间后,可以基于频域向量中各元素模值的大小进行排序,实现 按词向量各元素的重要性进行排序,因此,不仅能够处理高度非线性分布 的语言中的词汇,还可以去除不重要的元素,仅保留代表词向量中关键信 息的元素,从而实现对词向量的压缩,降低了词向量的维护成本。

请参见图1,图1是一示例性实施例提供的一种基于频域变换的词向 量压缩方法的流程图,所述方法包括以下步骤:

步骤101,将待压缩的词向量进行傅里叶变换,得到与所述词向量对 应的频域向量。

上述待压缩的词向量可以用浮点数表示,例如,“苹果”可以表示为 [0.343434,-0.88749,0.992112,…,0.232432]。

假设上述待压缩的词向量的向量长度为N,可以将该词向量视为一段 信号波,各元素可以视为对该信号在连续时域上的等间隔采样后,获得的 在离散时间上的信号采样值。

例如,词向量[X0,X1,…,XN-1]T中的各个元素表示在时刻分别为0, 1,...,N-1时的信号值。

进一步的,通过傅里叶变换,将视为信号波的词向量变换到频域空间, 得到长度相同的频域向量。

继续举例,上述词向量对应的频域向量可以是[Y0,Y1,…,YN-1]T

值得说明的是,频域向量中的每个元素都复数的形式,即, Yk=ak+bki,i2=-1,0≤k≤N-1。

具体的,

其中,i表示虚数单位,即

在示出的一种实施方式中,所述对待压缩的词向量进行傅里叶变换所 使用的傅里叶变换算法可以包括离散傅里叶变换;

进一步的,可以基于如下公式对所述待压缩的词向量进行离散傅里叶 变换:

其中,[X0,X1,…,XN-1]T表示所述待压缩的词向量,[Y0,Y1,…,YN-1]T表示所述频域向量,Yk=ak+bki,i2=-1,0≤k≤N-1,WN表示大小 为N×N因子矩阵,

其中,ωN表示因子,ωN=e^(-2πi/N)。

在计算机处理中,降低时间复杂度可以加快算法运行的速度,提高运 行效率。由离散傅里叶变换的计算公式可知,采用离散傅里叶变换的时间 复杂度为O(N2),为进一步降低时间复杂度,可以采用快速傅里叶变换, 通过不断的将词向量划分成两个新的词向量,且新的词向量的长度为原来 长度的一半的方式来减小计算量,采用快速傅里叶变换的时间复杂度为 O(NlogN)。

例如,假设N=8时,将待压缩的词向量,即时域向量[X0,X1,…,X7]T转 换为频域向量[Y0,Y1,…,Y7]T的离散傅里叶变换的计算式为:

其中,ωN-e^(-2πi/N)。

由于上述函数包含了指数函数、单位虚数,可联系欧拉公式 eix=cosx+isinx,得出以下性质:

周期性:

对称性:

依据以上性质,并按照奇偶项划分,可以将频域向量的前一半元素和 后一半元素分开计算:

其中,

由上述公式可知,对长度为8的时域向量的离散傅里叶变换,可以转 换为两个长度为4的向量分别做离散傅里叶变换;如果进一步划分奇数项 和偶数项,则相当于对四个长度为2的向量分别做离散傅里叶变换;再进 一步划分,可以将要做离散傅里叶变换的向量长度减小到1。

可见,通过依次对词向量进行奇数项、偶数项的划分将词向量的长度 逐渐减少,直至为1,在此过程中,只需进行logN次,而每次求出两个长 度为N/2的向量对应的傅里叶变换之后,我们都能在O(N)时间内求出长 度为N的向量对应的傅里叶变换,因而总时间复杂度只需O(NlogN)。

例如,若词向量长度N=200,采用离散傅里叶变换的时间复杂度为 40000,而采用快速傅里叶变换的时间复杂度则降到了460,减少了几乎两 个量级。

在示出的另一种实施方式中,所述对待压缩的词向量进行傅里叶变换 所使用的傅里叶变换算法可以包括快速傅里叶变换;

进一步的,基于如下公式对所述待压缩的词向量进行快速傅里叶变换:

其中,表示大小为的单位矩阵,表示大小为的对角矩阵,

表示大小为的因子矩阵,

其中,表示因子,

值得说明的是,上述矩阵变换为前述快速傅里叶变换的等价形式。

另外,由于快速傅里叶变换需要不断的划分奇数项和偶数项,因此,N需要满足2m,m需要为正整数。

因此,在一个例子中,在进行快速傅里叶变换之前,需要先判断所述 待压缩的词向量的长度N是否满足N=2m

如果满足,则进行快速傅里叶变换;

如果不满足,则需要确定满足N<2m的最小m值,将(2m-N)个0 作为新元素填充至所述待压缩的词向量,并对填充后的词向量进行快速傅 里叶变换。

无论是上述离散傅里叶变换,还是快速傅里叶变换,都可以实现词向 量到频域向量的转换,本领域技术人员可以根据实际需要自行选择。

步骤102,计算所述频域向量中各个元素的模值,并基于所述模值的 数值大小对所述频域向量中的元素进行排序。

通过前述说明可知,任何信号波都可以分解为一系列正弦波的叠加和 或积分的形式,使用傅里叶变换,可以找到一段有限长的离散时间信号所 含有的各个频率的正弦波分量,而对时域向量进行傅里叶变换后得到的频 域向量中的各个元素都可以用复数的形式表示,这些复数表示了频域空间 中各正弦波分量对应的幅值,显而易见,幅值越大,则该幅值对应的正弦 波的影响越大。

因此,可以通过计算频域向量中各个元素的模值,确定出各正弦波的 幅值,并基于模值的数值大小进行排序,从而实现对频域向量中的各个元 素进行排序。

值得说明的是,形如z=a+bi的数称为复数,其中,i是虚数单位,i2=-1, a,b是任意实数,a作为复数的实部,b作为复数的虚部,而复数z的模

步骤103,从排序后的所述频域向量中选取若干元素,并基于所述选 取出的若干元素构建压缩后的词向量。

在本说明书中,在基于模值的数值大小对频域向量中的元素进行排序 后,可以根据预设的选取规则,从排序后频域向量中选取若干元素,作为 构建新的词向量的元素。

例如,可以选取模值最大的几个元素作为新的元素构建压缩后的词向 量,元素的具体个数可以基于实际需要,由本领域技术人员自行确定,本 公开对此不做限定。

在示出的一种实施方式中,当排序策略为所述模值的数值从大到小排 序时,选取所述排序结果中靠前的若干元素。

例如,在一个例子中,可以将模值的计算结果按数值从大到小排列, 从该一维数组中选取前Q个元素;

当然,在另一个例子中,也可以将模值的计算结果按数值从小到大排 列,从该一维数组中选取后Q个元素。

在示出的一种实施方式中,还可以获取所述若干元素在排序前的频域 向量中对应的位置信息。

例如,假设按模值的数值从大到小排序后,选取排序靠前的5个元素, 并获取这5个元素在排序前的频域向量中对应的位置信息。

在一个例子中,由于频域向量中的元素可以用Yk=ak+bki表示,即k 可以表示各元素在排序前的频域向量中对应的位置信息。

继续举例,假设上述选取出的5个元素,按模值的数值从大到小的排 序分别为Y12、Y33、Y1、Y4和Y91,则获取到的各元素在排序前的频域 向量中对应的位置信息分别为12、33、1、4和91。

在示出的一种实施方式中,可以基于以下任一方式构建压缩后的词向 量:

在一个例子中,可以将所述若干元素对应的位置信息,以及所述若干 元素的模值分别作为新的元素,基于所述若干元素的排序,构建出所述压 缩后的词向量;

例如,对于确定出的频域向量中的元素Y12、Y33、Y1、Y4和Y91, 可以基于这五个元素对应的位置信息12、33、1、4和91,以及这五个元 素的模值分别 作为新的元素,并基于这五个元素的按模值大小的排序结果,构建如下所 示的压缩后的词向量:

在另一个例子中,可以将所述若干元素对应的位置信息,以及所述若 干元素的模值的平方分别作为新的元素,基于所述若干元素的排序,构建 出所述压缩后的词向量;

例如,对于确定出的频域向量中的元素Y12、Y33、Y1、Y4和Y91, 可以基于这五个元素对应的位置信息12、33、1、4和91,以及这五个元 素的模值的平方分别 作为新的元素,并基于这五个元素的按模值大小的排序结果,构建如下所 示的压缩后的词向量:

在另一个例子中,可以将所述若干元素对应的位置信息、所述若干元 素的实部,以及所述若干元素的虚部分别作为新的元素,基于所述若干元 素的排序,构建出所述压缩后的词向量。

例如,对于确定出的频域向量中的元素Y12、Y33、Y1、Y4和Y91, 可以基于这五个元素对应的位置信息12、33、1、4和91,以及这五个元 素的实部和虚部分别作为新的元素,并基于这五个元素的按模值大小的排 序结果,构建如下所示的压缩后的词向量:

由于待压缩的词向量的长度一般都很大,所以上述重新构建的词向量 中,可能会出现表示位置信息的元素数值过大的情况,可以对位置信息进 行处理后再用于构建压缩后的词向量。

在示出的一种实施方式中,所述位置信息包括所述若干元素在排序前 的频域向量中对应的位置信息的倒数。

例如,对于确定出的频域向量中的元素Y12、Y33、Y1、Y4和Y91, 可以将位置信息取为1/12,1/33,1,1/4和1/91,并用于构建压缩后的词 向量。其中,构建方式可以参照前述的三种方式,这里不再赘述。

在以上实施例中,通过傅里叶变换将视为信号波的词向量变换到频域 空间,得到长度相同的频域向量,再计算频域向量各元素的模值,并基于 模值的大小进行排序,从而选取出若干元素构建压缩后的词向量。通过以 上技术方案,一方面,由于在对词向量进行压缩时并不降低词汇量,因此 并不改变词向量原有的表达能力;另一方面,由于将词向量变换到频域空 间后,可以基于频域向量中各元素模值的大小进行排序,实现按词向量各元素的重要性进行排序,因此,不仅能够处理高度非线性分布的语言中的 词汇,还可以去除不重要的元素,仅保留代表词向量中关键信息的元素, 从而实现对词向量的压缩,降低了词向量的维护成本。

示例性装置

在介绍了本公开示例性实施方式的方法之后,接下来,请参见图2, 图2是一示例性实施例提供的一种基于频域变换的词向量压缩装置的框图。

下述装置中各个模块的功能和作用的实现过程具体详见上述方法中 对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本 对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。

如图2所示,基于频域变换的词向量压缩装置200可以包括:变换模 块201、排序模块202和构建模块203。其中:

变换模块201被配置为将待压缩的词向量进行傅里叶变换,得到与所 述词向量对应的频域向量;

排序模块202被配置为计算所述频域向量中各个元素的模值,并基于 所述模值的数值大小对所述频域向量中的元素进行排序;

构建模块203被配置为从排序后的所述频域向量中选取若干元素,并 基于所述选取出的若干元素构建压缩后的词向量。

在一实施例中,所述对待压缩的词向量进行傅里叶变换所使用的傅里 叶变换算法包括离散傅里叶变换;

所述变换模块201进一步:

基于如下公式对所述待压缩的词向量进行离散傅里叶变换:

其中,[X0,X1,…,XN-1]T表示所述待压缩的词向量,[Y0,Y1,…,YN-1]T表示所述频域向量,Yk=ak+bki,i2=-1,0≤k≤N-1,WN表示大小 为N×N因子矩阵,

其中,ωN表示因子,ωN=e^(-2πi/N)。

在一实施例中,所述对待压缩的词向量进行傅里叶变换所使用的傅里 叶变换算法包括快速傅里叶变换;

所述变换模块201进一步:

基于如下公式对所述待压缩的词向量进行快速傅里叶变换:

其中,表示大小为的单位矩阵,表示大小为的对角矩阵,

表示大小为的因子矩阵,

其中,表示因子,

在一实施例中,所述所述构建模块203进一步:

当排序策略为所述模值的数值从大到小排序时,选取所述排序结果中 靠前的若干元素。

在一实施例中,所述装置200还包括:

位置模块204,获取所述若干元素在排序前的频域向量中对应的位置 信息。

在一实施例中,所述构建模块203进一步:

将所述若干元素对应的位置信息,以及所述若干元素的模值分别作为 新的元素,基于所述若干元素的排序,构建出所述压缩后的词向量;

或者,

将所述若干元素对应的位置信息,以及所述若干元素的模值的平方分 别作为新的元素,基于所述若干元素的排序,构建出所述压缩后的词向量;

或者,

将所述若干元素对应的位置信息、所述若干元素的实部,以及所述若 干元素的虚部分别作为新的元素,基于所述若干元素的排序,构建出所述 压缩后的词向量。

在一实施例中,所述位置信息包括所述若干元素在排序前的频域向量 中对应的位置信息的倒数。

上述基于频域变换的词向量压缩装置200的各个模块的具体细节已经 在之前描述基于频域变换的词向量压缩方法流程中进行了详细的描述,因 此,此处不再赘述。

应当注意,尽管在上文详细描述中提及基于频域变换的词向量压缩装 置200的若干模块或者单元,但是这种划分并非强制性的。实际上,根据 本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可 以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的 特征和功能可以进一步划分为由多个模块或者单元来具体化。

示例性介质

在介绍了本公开示例性实施方式的装置之后,接下来,请参见图3, 图3是一示例性实施例提供的一种基于频域变换的词向量压缩介质的示意 图。

在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其 上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中, 本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码, 当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备 执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实 施例的步骤。

参考图3所示,描述了根据本公开的实施例的用于实现上述方法的程 序产品30,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代 码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品 不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形 介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可 以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于 电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以 上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个 或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存 储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧 凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意 合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的 数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种 形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信 号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、 传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用 的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限 于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开 操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如 Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的 程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用 户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分 在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括 局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到 外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

示例性计算设备

在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来, 请参见图4,图4是一示例性实施例提供的一种能够实现上述方法的电子 设备的示意图。

下面参照图4来描述根据本公开的这种实施例的电子设备400。图4 显示的电子设备400仅仅是一个示例,不应对本公开实施例的功能和使用 范围带来任何限制。

如图4所示,电子设备400以通用计算设备的形式表现。电子设备400 的组件可以包括但不限于:上述至少一个处理单元401、上述至少一个存 储单元402、连接不同系统组件(包括存储单元402和处理单元401)的总线 403。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理 单元401执行,使得所述处理单元401执行本说明书上述各种实施例的步 骤。

存储单元402可以包括易失性存储单元形式的可读介质,例如随机存 取存储单元(RAM)4021和/或高速缓存存储单元4022,还可以进一步包括 只读存储单元(ROM)4023。

存储单元402还可以包括具有一组(至少一个)程序模块4025的程序/ 使用工具4024,这样的程序模块4025包括但不限于:操作系统、一个或 者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某 种组合中可能包含网络环境的现实。

总线403可以为表示几类总线结构中的一种或多种,包括存储单元总 线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多 种总线结构中的任意总线结构的局域总线。

电子设备400也可以与一个或多个外部设备404(例如键盘、指向设备、 蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备400交互 的设备通信,和/或与使得该电子设备400能与一个或多个其它计算设备进 行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通 过输入/输出(I/O)接口405进行。并且,电子设备400还可以通过网络适配 器406与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器406通过总线403与电子 设备400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设 备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、 冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备 份存储系统等。

通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的 示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来 实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出 来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U 盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是 个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例 的方法。

应当注意,尽管在上文详细描述中提及了装置的若干单元/模块或子单 元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公 开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个 单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以 进一步划分为由多个单元/模块来具体化。

此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这 并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全 部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤, 将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应 该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意 味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方 便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等 同布置。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于生成会议纪要的方法、装置、设备、介质和产品

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!