词向量训练方法及装置与流程

文档序号:12733627阅读:264来源:国知局
词向量训练方法及装置与流程

本发明涉及机器学习技术领域,尤其涉及一种词向量训练方法及装置。



背景技术:

在机器学习技术中,为了使机器理解人类语言的含义,神经网络语言模型的词表示工具将人类语言中的每个词汇都转换成词向量的形式,使得计算机能够通过词向量学习到人类语言中每个词汇的含义。

采用现有技术,当词汇库中加入新的词汇后,通常需要重新学习新的词汇库中的所有的词汇,以得到各个词汇新的词向量。但是,采用该方式使得词向量的训练效率较低。



技术实现要素:

本发明提供一种词向量训练方法及装置,提高了词向量的训练效率。

本发明实施例提供一种词向量训练方法,包括:

获取新增词汇库,所述新增词汇库中的词汇与旧词汇库中的词汇构成新词汇库,所述旧词汇库中的词汇对应有旧词向量;

对所述新词汇库中的词汇进行初始化处理,使得所述新词汇库中属于所述旧词汇库中的词汇的词向量为旧词向量,所述新词汇库中属于所述新增词汇库中的词汇词向量为随机词向量;

根据所述新词汇库对应的第一哈夫曼树和所述旧词汇库对应的第二哈夫曼树分别对所述新词汇库中词汇的词向量进行更新。

在本发明一实施例中,所述根据所述新词汇库对应的第一哈夫曼树和所述旧词汇库对应的第二哈夫曼树分别对所述新词汇库中词汇的词向量进行更新,包括:

获取所述第一词汇对应的预设目标函数,所述第一词汇为所述新词汇库中的词汇;

根据所述第一词汇在所述第一哈夫曼树的属性和在所述第二哈夫曼树的属性对所述预设目标函数进行梯度处理,得到所述第一词汇对应的词向量。

在本发明一实施例中,所述获取所述第一词汇对应的预设目标函数,包括:

若所述第一词汇属于所述旧词汇库,则根据Skip-gram模型的原始目标函数对所述第一词汇进行因式分解,得到所述第一词汇对应的预设目标函数;

若所述第一词汇属于所述新增词汇库,则所述第一词汇对应的预设目标函数为所述Skip-gram模型的原始目标函数。

在本发明一实施例中,所述获取所述第一词汇对应的预设目标函数,包括:

若所述第一词汇属于所述旧词汇库,则根据CBOW模型的原始目标函数对所述第一词汇进行因式分解,得到所述第一词汇对应的预设目标函数;

若所述第一词汇属于所述新增词汇库,则所述第一词汇对应的预设目标函数为所述CBOW模型的原始目标函数。

在本发明一实施例中,根据Skip-gram模型的原始目标函数对所述第一词汇进行因式分解,得到所述第一词汇对应的预设目标函数,包括:

若所述第一词汇属于所述旧词汇库,则根据对所述第一词汇进行因式分解,得到所述第一词汇对应的预设目标函数;

若所述第一词汇属于所述新增词汇库,则所述第一词汇对应的预设目标函数为Skip-gram模型的原始目标函数

其中,w表示所述第一词汇,W表示所述旧词汇库,ΔW表示所述新增词汇库,C(w)表示w上下文对应的词汇构成的词汇库,u表示w上下文对应的词汇,代表非叶子结点w在第二哈夫曼树和在第一哈夫曼树上匹配的哈夫曼编码的长度,i表示所述第一词汇为所述第二哈夫曼树上的第i个节点,j表示所述第一词汇为所述第二哈夫曼树上的第j个节点,表示u对应的第一哈夫曼路径上第j-1个节点的词向量,表示u代表的第二哈夫曼路径上第j个节点的哈夫曼编码,表示激活函数,v(w)表示w对应的词向量。

在本发明一实施例中,所述根据CBOW模型的原始目标函数对所述第一词汇进行因式分解,得到所述第一词汇对应的预设目标函数,包括:

若所述第一词汇属于所述旧词汇库,则根据对所述第一词汇进行因式分解,得到所述第一词汇对应的预设目标函数;

若所述第一词汇属于所述新增词汇库,则所述第一词汇对应的预设目标函数为CBOW模型的原始目标函数

其中,表示w代表的第二哈夫曼路径上第j个节点的哈夫曼编码,表示C(w)中所有词汇对应的词向量相加之和。

在本发明一实施例中,所述根据所述第一词汇在所述第一哈夫曼树的属性和在所述第二哈夫曼树的属性对所述预设目标函数进行梯度处理,得到所述第一词汇对应的词向量,包括:

若所述第一词汇属于所述旧词汇库,且所述第一词汇在所述第一哈夫曼树的编码与在所述第二哈夫曼树的编码具有相同前缀部分,则对所述第一词汇在所述第二哈夫曼树上的哈夫曼编码的不同部分对应节点的向量根据执行随机梯度上升处理;对所述第一词汇在所述第一哈夫曼树上的哈夫曼编码的不同部分对应在所述第二哈夫曼树上节点的向量根据执行随机梯度下降处理;

若所述第一词汇属于所述新增词汇库,则对所述第一词汇根据执行随机梯度上升处理,得到所述第一词汇对应的词向量;

其中,η'表示学习率。

在本发明一实施例中,所述根据所述第一词汇在所述第一哈夫曼树的属性和在所述第二哈夫曼树的属性对所述预设目标函数进行梯度处理,得到所述第一词汇对应的词向量,包括:

若所述第一词汇属于所述旧词汇库,且所述第一词汇在所述第一哈夫曼树的编码与在所述第二哈夫曼树的编码具有相同前缀部分,则对所述第一词汇在所述第二哈夫曼树上的哈夫曼编码的不同部分对应节点的向量根据执行随机梯度上升处理;对所述第一词汇在所述第一哈夫曼树上的哈夫曼编码的不同部分对应在所述第二哈夫曼树上节点的向量根据执行随机梯度下降处理;

若所述第一词汇属于所述新增词汇库,则对所述第一词汇根据执行随机梯度上升处理,得到所述第一词汇对应的词向量;

其中,表示w对应的第一哈夫曼路径上第i-1个节点的词向量。

本发明实施例还提供一种词向量训练装置,包括:

获取模块,用于获取新增词汇库,所述新增词汇库中的词汇与旧词汇库中的词汇构成新词汇库,所述旧词汇库中的词汇对应有旧词向量;

初始化模块,用于对所述新词汇库中的词汇进行初始化处理,使得所述新词汇库中属于所述旧词汇库中的词汇的词向量为旧词向量,所述新词汇库中属于所述新增词汇库中的词汇词向量为随机词向量;

更新模块,用于根据所述新词汇库对应的第一哈夫曼树和所述旧词汇库对应的第二哈夫曼树分别对所述新词汇库中词汇的词向量进行更新。

在本发明一实施例中,所述更新模块,具体用于获取所述第一词汇对应的预设目标函数,所述第一词汇为所述新词汇库中的词汇;根据所述第一词汇在所述第一哈夫曼树的属性和在所述第二哈夫曼树的属性对所述预设目标函数进行梯度处理,得到所述第一词汇对应的词向量。

本发明实施例提供的词向量训练方法及装置,通过获取新增词汇库,并对新词汇库中的词汇进行初始化处理,使得新词汇库中属于旧词汇库中的词汇的词向量为旧词向量,新词汇库中属于新增词汇库中的词汇词向量为随机词向量;再根据新词汇库对应的第一哈夫曼树和旧词汇库对应的第二哈夫曼树分别对新词汇库中词汇的词向量进行更新,提高了词向量的训练效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种词向量训练方法的流程示意图;

图2为本发明实施例提供的一种对新词汇库中词汇的词向量进行更新的流程示意图;

图3为本发明实施例提供的一种词向量训练装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例,例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。

图1为本发明实施例提供的一种词向量训练方法的流程示意图,该词向量训练方法可以由词向量训练装置执行,该词向量训练装置可以集成在处理器中,也可以单独设置,在此,本发明不做具体限制。具体地,请参见图1所示,该词向量训练方法可以包括:

S101、获取新增词汇库。

其中,新增词汇库中的词汇与旧词汇库中的词汇构成新词汇库,旧词汇库中的词汇对应有旧词向量。

在本发明实施例中,旧词汇库中的词汇已被训练为对应的旧词向量,新增词汇库的词汇未训练相对应的词向量。例如:旧词汇库中为现有的已训练词向量的词汇库,新增词汇库包括新增的词汇,此时将已训练词向量的旧词汇库中的词汇与新增的词汇合并为新词汇库。

S102、对新词汇库中的词汇进行初始化处理,使得新词汇库中属于旧词汇库中的词汇的词向量为旧词向量,新词汇库中属于新增词汇库中的词汇词向量为随机词向量。

示例的,在本发明实施例中,记旧词汇库为W,其中,旧词汇库中的词汇已训练得到对应的词向量记为v(w),新增词汇库为ΔW,则新词汇库为W'=W+ΔW,记旧词汇库W对应的第二哈夫曼树为T,新词汇库W'对应的第一哈夫曼树为T'。则判断新词汇库中的第一词汇w,若w在旧词汇库W中,证明w已经在旧词汇库中训练过对应的词向量,则不再对该词进行训练,而是继承原有的v(w);若新词汇库中的第一词汇w在新增词汇库中,即属于新增词汇,则随机初始化w对应的词向量。

例如,以第一词汇为例,第一词汇为新词汇库中的任一词汇,第一词汇在第一哈夫曼树上的分布可以包括两种情况。第一种情况:第一词汇为第一哈夫曼树上的叶子节点;第二种情况:第一词汇为第一哈夫曼树上的非叶子节点。

第一种情况:若第一词汇为第一哈夫曼树上的叶子节点,则可以根据如下公式1对该第一词汇进行初始化:

其中,w表示第一词汇,v(w)表示w在第二哈夫曼树T上的词向量;v'(w)表示w在第一哈夫曼树T'上的词向量。

结合公式1可以看出,若第一词汇属于旧词汇库W,此时第一词汇的词向量为第一词汇在旧词汇库中对应的旧词向量,若第一词汇不属于旧词汇库W,即第一词汇为新增的词汇,此时,可以对该第一词汇的词向量进行随机初始化,即词向量此时第一词汇的词向量为随机词向量。

第二种情况:若第一词汇为第一哈夫曼树上的非叶子节点,该非叶子结点都有一个参数向量。为了区分参数向量,我们设置W1在对应第一哈夫曼路径上第i个节点上的参数向量为W2在对应第一哈夫曼路径上第i个节点上的参数向量为当W1和W2对应树上同一个节点时,有假设一个词汇w在第二哈夫曼树上的编码为“0010”而在第一哈夫曼树上的编码变为“00011”,由于二者的哈夫曼编码具有相同前缀“00”,此相同前缀“00”对应的节点上的向量保持不变。这里同时需要设置标识Lw和L'w分别表示第一词汇w在第二哈夫曼树上的编码长度和第一词汇w在第一哈夫曼树上的编码长度。则可以根据如下公式2对该第一词汇进行初始化:

其中,表示非叶子节点w代表的第一哈夫曼路径上第i个节点的哈夫曼编码,表示非叶子节点w代表的第二哈夫曼路径上第i个节点的哈夫曼编码。此时,可以把非叶子结点w在第一哈夫曼树上对应的哈夫曼编码划分为前缀匹配部分和其他节点代表非叶子结点w在第二哈夫曼树和在第一哈夫曼树上匹配的哈夫曼编码的长度。

结合公式2可以看出,若第一词汇为第一哈夫曼树上的非叶子节点,则第一词汇在第一哈夫曼树上与在第二哈夫曼树上匹配的前缀部分对应的向量即为现有的参数向量而不匹配编码部分对应的向量,将其初始化为零向量。

值得说明的是,在本发明实施例中,对于第一词汇而言,若第一词汇为第一哈夫曼树上的叶子节点,则采用随机初始化;若为非叶子结点,则初始化为零向量,具体为:这样可以使初始词向量落入区间其中,m指的是词向量的长度。

在对新词汇库中的词汇进行初始化处理之后,就可以对该新词汇库中的词汇对应的词向量进行更新。

S103、根据新词汇库对应的第一哈夫曼树和旧词汇库对应的第二哈夫曼树分别对新词汇库中词汇的词向量进行更新。

本发明实施例提供的词向量训练方法,通过获取新增词汇库,并对新词汇库中的词汇进行初始化处理,使得新词汇库中属于旧词汇库中的词汇的词向量为旧词向量,新词汇库中属于新增词汇库中的词汇词向量为随机词向量;再根据新词汇库对应的第一哈夫曼树和旧词汇库对应的第二哈夫曼树分别对新词汇库中词汇的词向量进行更新,提高了词向量的训练效率。

可选的,在本发明实施例中,S103根据新词汇库对应的第一哈夫曼树和旧词汇库对应的第二哈夫曼树分别对新词汇库中词汇的词向量进行更新可以通过以下可能的实现,具体请参见图2所示,图2为本发明实施例提供的一种对新词汇库中词汇的词向量进行更新的流程示意图。

S201、获取第一词汇对应的预设目标函数。

其中,第一词汇为新词汇库中的词汇。

可选的,S201获取第一词汇对应的预设目标函数,可以通过以下两种模型获取:

对于第一种Skip-gram模型而言,若第一词汇属于旧词汇库,则根据Skip-gram模型的原始目标函数对第一词汇进行因式分解,得到第一词汇对应的预设目标函数;若第一词汇属于新增词汇库,则第一词汇对应的预设目标函数为Skip-gram模型的原始目标函数。

示例的,在本发明实施例中,若第一词汇属于旧词汇库,则根据汇编码相同的部分和不同的部分对W中的每个词进行因式分解就可以得到第一词汇对应的预设目标函数,即:根据对第一词汇进行因式分解,得到第一词汇对应的预设目标函数;

若第一词汇属于新增词汇库,则第一词汇对应的预设目标函数为Skip-gram模型的原始目标函数:

其中,w表示第一词汇,W表示旧词汇库,ΔW表示新增词汇库,C(w)表示w上下文对应的词汇构成的词汇库,u表示w上下文对应的词汇,代表非叶子结点w在第二哈夫曼树和在第一哈夫曼树上匹配的哈夫曼编码的长度,i表示第一词汇为第二哈夫曼树上的第i个节点,j表示第一词汇为第二哈夫曼树上的第j个节点,表示u对应的第一哈夫曼路径上第j-1个节点的词向量,表示u代表的第二哈夫曼路径上第j个节点的哈夫曼编码,表示激活函数,v(w)表示w对应的词向量,表示相同前缀编码的总和,表示新词汇库中的其他词汇继承和初始化为零的非叶子结点的总和。

对于第二种CBOW模型而言,若第一词汇属于旧词汇库,则根据CBOW模型的原始目标函数对第一词汇进行因式分解,得到第一词汇对应的预设目标函数;若第一词汇属于新增词汇库,则第一词汇对应的预设目标函数为CBOW模型的原始目标函数。

示例的,在本发明实施例中,若第一词汇属于旧词汇库,则根据第一词汇,则根据编码相同的部分和不同的部分对W中的每个词进行因式分解就可以得到第一词汇对应的预设目标函数,即:

根据对第一词汇进行因式分解,得到第一词汇对应的预设目标函数。

若第一词汇属于新增词汇库,则第一词汇对应的预设目标函数为CBOW模型的原始目标函数l(w,i):

其中,表示w代表的第二哈夫曼路径上第j个节点的哈夫曼编码,表示C(w)中所有词汇对应的词向量相加之和。

值得说明的是,在本发明实施例中,通过根据编码相同的部分和不同的部分对W中的每个词进行因式分解,可以节省词向量过程中的计算量,从而提高了计算效率。

在获取到第一词汇对应的预设目标函数之后,就可以根据第一词汇在第一哈夫曼树的属性和在第二哈夫曼树的属性对预设目标函数进行梯度处理,从而得到第一词汇对应的词向量。

S202、根据第一词汇在第一哈夫曼树的属性和在第二哈夫曼树的属性对预设目标函数进行梯度处理,得到第一词汇对应的词向量。

请结合步骤S201,可以通过如下两种模型实现:

对于第一种Skip-gram模型而言,若第一词汇属于旧词汇库,且第一词汇在第一哈夫曼树的编码与在第二哈夫曼树的编码具有相同前缀部分,则对第一词汇在第二哈夫曼树上的哈夫曼编码的不同部分对应节点的向量根据执行随机梯度上升处理;对第一词汇在第一哈夫曼树上的哈夫曼编码的不同部分对应在第二哈夫曼树上节点的向量根据执行随机梯度下降处理。

若第一词汇属于新增词汇库,则对第一词汇根据执行随机梯度上升处理,得到第一词汇对应的词向量;其中,η'表示学习率。

例如:可以表示为:

对于第二种CBOW模型而言,若第一词汇属于旧词汇库,且第一词汇在第一哈夫曼树的编码与在第二哈夫曼树的编码具有相同前缀部分,则对第一词汇在第二哈夫曼树上的哈夫曼编码的不同部分对应节点的向量根据执行随机梯度上升处理;对第一词汇在第一哈夫曼树上的哈夫曼编码的不同部分对应在第二哈夫曼树上节点的向量根据执行随机梯度下降处理。

若第一词汇属于新增词汇库,则对第一词汇根据执行随机梯度上升处理,得到第一词汇对应的词向量。

其中,表示w对应的第一哈夫曼路径上第i-1个节点的词向量。

例如,可以表示为:

其中,η'表示的是学习率。示例的,设置初始学习率η0=0.025,每处理完1000个词,按照以下公式对学习率进行一次调整:

其中,word_count_actual表示当前已处理词数,train_words+1是为了防止分母为零。同时引入一个阈值ηmin=10-40,即η最小为ηmin,防止出现学习率过小的情况。在增量学习发过程中,词数统计器需要加上原始语料的词数并结合ηmin的限制来计算η。

图3为本发明实施例提供的一种词向量训练装置30的结构示意图,当然,本发明实施例只是以图3为例进行说明,但并不代表本发明仅局限于此。请参图3所示,该词向量训练装置30可以包括:

获取模块301,用于获取新增词汇库,新增词汇库中的词汇与旧词汇库中的词汇构成新词汇库,旧词汇库中的词汇对应有旧词向量.

初始化模块302,用于对新词汇库中的词汇进行初始化处理,使得新词汇库中属于旧词汇库中的词汇的词向量为旧词向量,新词汇库中属于新增词汇库中的词汇词向量为随机词向量。

更新模块303,用于根据新词汇库对应的第一哈夫曼树和旧词汇库对应的第二哈夫曼树分别对新词汇库中词汇的词向量进行更新。

可选的,更新模块303,具体用于获取第一词汇对应的预设目标函数,第一词汇为新词汇库中的词汇;根据第一词汇在第一哈夫曼树的属性和在第二哈夫曼树的属性对预设目标函数进行梯度处理,得到第一词汇对应的词向量。

本发明实施例所示的词向量训练装置30,可以执行上述方法实施例所示的词向量训练方法对应的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1