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

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

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



背景技术:

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

现有技术中,词表示工具通过学习词汇库中的所有的词汇得到各个词汇的词向量。

采用现有技术,当词汇库中加入新的词汇后,由于每个词出现的频率发生了变化,需要重新学习新的词汇库中的所有的词汇,以得到各个词汇新的词向量,训练词向量时的计算量较大。



技术实现要素:

本发明提供一种词向量训练方法和装置,减少了词向量训练时的计算量。

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

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

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

根据所述旧词汇库对应的噪声分布和所述新词汇库对应的噪声分布分别对所述新词汇库中词汇的词向量进行更新。

在本发明一实施例中,所述根据所述旧词汇库对应的噪声分布和所述新词汇库对应的噪声分布分别对所述新词汇库中词汇的词向量进行更新,包括:

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

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

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

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

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

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

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

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

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

对所述第一词汇因式分解,其中,w表示所述第一词汇,W表示所述新词汇库,NEG(w)表示处理所述第一词汇w时生成的负样本子集,表示w的上下文,l(w,u)表示所述第一词汇w的目标函数,Context(w)表示所述对应的词汇库。

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

对所述第一词汇因式分解,其中,w表示所述第一词汇,W表示所述新词汇库,NEG(w)表示处理所述第一词汇w时生成的负样本子集,l(w,u)表示所述第一词汇w的目标函数。

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

获取所述第一词汇在旧词汇库中的权重参数len(w)和所述第一词汇在所述新词汇库中的权重参数len'(w),获取D(u)=sgn(len'(w)-len(w)),其中,

D为根据W构造的词典。D'为根据W'构造的词典,counter(w)表示w在新词汇库中出现的次数,当D(u)为-1时,通过随机梯度下降抵消所述第一词汇重复出现的贡献,当D(u)为1时,通过梯度上升来恢复所述第一词汇的噪声分布,并根据得到所述第一词汇对应的词向量,Lw(u)表示是否命中,参数v'(w)表示所述第一词汇的词向量,θu表示参数向量,η'表示学习率。

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

获取所述第一词汇在旧词汇库中的权重参数len(w)和所述第一词汇在所述新词汇库中的权重参数len'(w),获取D(u)=sgn(len'(w)-len(w)),其中,

D为根据W构造的词典。D'为根据W'构造的词典,counter(w)表示w在新词汇库中出现的次数,当D(u)为-1时,通过随机梯度下降抵消所述第一词汇重复出现的贡献,当D(u)为1时,通过梯度上升来恢复所述第一词汇的噪声分布,并根据得到所述第一词汇对应的词向量,Lw(u)表示是否命中,参数表示所述第一词汇上下文中单词向量相加之和,v'(w)表示所述第一词汇的词向量,θu表示参数向量,η'表示学习率。

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

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

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

更新模块,所述更新模块用于根据所述旧词汇库对应的噪声分布和所述新词汇库对应的噪声分布分别对所述新词汇库中词汇的词向量进行更新。

在本发明一实施例中,所述更新模块具体用于,

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

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

本发明提供一种词向量训练方法和装置,其中词向量训练方法包括:获取新增词汇库,新增词汇库中的词汇与旧词汇库中的词汇构成新词汇库,旧词汇库中的词汇对应有旧词向量;对新词汇库中的词汇进行初始化处理,使得新词汇库中属于旧词汇库中的词汇的词向量为旧词向量,新词汇库中属于新增词汇库中的词汇词向量为随机词向量;根据旧词汇库对应的噪声分布和新词汇库对应的噪声分布分别对新词汇库中词汇的词向量进行更新。本发明提供的词向量训练方法和装置,减少了训练词向量时的计算量。

附图说明

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

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

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

具体实施方式

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

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

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

本发明词向量训练方法和装置都应用于基于Negative Sampling负采样模型的word2vec词表示系统。

图1为本发明词向量训练方法实施例一的流程示意图,如图1所示,本实施例词向量训练方法包括以下步骤:

S101:获取新增词汇库,新增词汇库中的词汇与旧词汇库中的词汇构成新词汇库,旧词汇库中的词汇对应有旧词向量。

具体地,旧词汇库中的词汇已被训练为对应的旧词向量,新增词汇库的词汇未训练相对应的词向量。例如:旧词汇库中为现有的已训练词向量的词汇库,新增词汇库包括新增的词汇,此时将已训练词向量的旧词汇库中的词汇与新增的词汇合并为新词汇库。

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

例如:记旧词汇库为W,其中,旧词汇库中的词汇已训练得到对应的词向量记为v(w),新增词汇库为△W,则新词汇库为W’=W+△W,记旧词汇库W的噪声分布为T,新词汇库W’的噪声分布为T’。则判断新词汇库中的第一词汇w,若w在旧词汇库W中,证明w已经在旧词汇库中训练过对应的词向量,则不再对该词进行训练,而是继承原有的v(w);若新词汇库中的第一词汇w在新增词汇库中,即属于新增词汇,则随机初始化w对应的词向量。即:

其中,v'(w)是新词汇库中的词汇对应的词向量,v(w)是旧词汇库中的词汇对应的词向量。新词汇库中的每个词汇都对应一个参数向量,此时也和词向量一起进行初始化,其中,若w在旧词汇库W中,则继承原有的参数向量;若w在新增词汇库中,则将参数向量初始化为零向量。即:

其中,θ'w是新词汇库中的词汇对应的参数向量,θw是旧词汇库中的词汇对应的参数向量。

S103:根据旧词汇库对应的噪声分布和新词汇库对应的噪声分布分别对新词汇库中词汇的词向量进行更新。

具体地,分别获取旧词汇库对应的噪声分布和新词汇库对应的噪声分布,其中,噪声分布即为词向量训练过程中,每个词在词汇库中的分布。第二旧词汇库中的词汇已训练得到对应的词向量,新增词汇库中的词汇为新增词汇,未训练对应的词向量,由于新词汇库中与旧词汇库中有相同的词汇的词频都发生了改变,而词频越高的词汇越容易在词向量训练过程中被采样,噪声分布对词频的细微变化十分敏感,则需要将新增词汇库与旧词汇库合并为新词汇库后,通过新词汇库计算新词汇库中每一个词汇对应的词向量。

本实施例中,通过旧词汇库对应的噪声分布和新词汇库对应的噪声分布更新得到新词汇库中的词汇对应的词向量,从而不需要重新训练得到新词汇库中的词汇对应的词向量,减少了训练词向量时的计算量。其中,新增词汇库中词汇数量越少,则词向量的训练过程越快,和现有技术中将新词汇库整体训练词向量的方法相比可以达到60倍的加速比。

进一步地,在上述实施例中,S103包括:获取第一词汇对应的预设目标函数,第一词汇为新词汇库中的词汇;根据第一词汇在旧词汇库的属性和在新词汇库的属性对预设目标函数进行梯度处理,得到第一词汇对应的词向量。

其中,获取第一词汇对应的预设目标函数一种可能的实现方式为:若第一词汇属于旧词汇库,则根据Ski-gram模型的原始目标函数对第一词汇进行因式分解,得到第一词汇对应的预设目标函数;若第一词汇属于新增词汇库,则第一词汇对应的预设目标函数为Ski-gram模型的原始目标函数。

具体地,根据Ski-gram模型的原始目标函数对第一词汇进行因式分解包括:将第一词汇切分为W’=W∪△W,并根据编码相同的部分和不同的部分通过如下公式对W中的每个词进行因式分解:

其中,J'SG表示因式分解的结果,NEG(w)为处理词汇w时生成的负样本子集,具体地,表示w的上下文,Context(w)表示在对应的词汇库,Lw(u)表示是否命中,v(w)表示词向量,θu表示参数向量。

具体地,在新词汇库中的第一词汇在进行词向量训练时,若第一词汇属于旧词汇库,则不需要重复训练之前的全量计算负采样的部分,即公式三的第一部分;若第一词汇在旧词汇库和新增词汇库合并后的负采样权重系数不变则不需要再进行多余的计算,否则根据公式三和公式四计算得到的权重系数如果增大,则进行梯度上升,根据公式三和公式四计算得到的权重系数如果减小,则梯度下降;若第一词汇仅在新增词汇库中出现,则使用Ski-gram模型的原始目标函数,并执行梯度上升。

则在本实施例中,根据第一词汇在旧词汇库的属性和在新词汇库的属性对预设目标函数进行梯度处理,得到第一词汇对应的词向量,包括:

根据第一词汇在新词汇库对应的噪声分布和旧词汇库对应的噪声分布对预设目标函数进行梯度处理,得到第一词汇对应的词向量包括:计算负采样过程中的权重参数,根据权重参数确定梯度上升或提取下降,并通过确定的梯度上升或梯度下降的方式更新S102中初始化的词向量v'(w)和参数向量θ'w,以得到最终的新词汇库中的词汇对应的词向量。

具体地,通过以下公式计算负采样过程中的权重参数:当w∈W时,

当w∈W'时,

其中,D为根据W构造的词典。D'为根据W'构造的词典,counter(w)表示w在新词汇库中出现的次数。

记D(u)=sgn(len'(w)-len(w)),其中,D(u)为正采样或负采样的标识,用于标识使用梯度上升或梯度下降的方式更新初始化的词向量v'(w)。其中,当权重参数满足len(w)>len'(w),即D(u)为-1时,需要随机梯度下降抵消第一词汇重复出现的贡献;反之当权重参数满足len(w)<len'(w),即D(u)为1时,通过梯度上升来恢复噪声分布。

词向量v'(w)和参数向量θ'w的更新公式为:

θ'u=θ'u+D(u)·η'[Lw(u)-σ(v'(w)Tθ'u)]v'(w)——公式六

进一步地,在上述实施例中,获取第一词汇对应的预设目标函数另一种可能的实现方式为:若第一词汇属于旧词汇库,则根据CBOW模型的原始目标函数对第一词汇进行因式分解,得到第一词汇对应的预设目标函数;若第一词汇属于新增词汇库,则第一词汇对应的预设目标函数为CBOW模型的原始目标函数。

具体地,根据CBOW模型的原始目标函数对第一词汇进行因式分解包括:将第一词汇切分为W’=W∪△W,并根据编码相同的部分和不同的部分通过如下公式对W中的每个词进行因式分解:

其中,J'CBOW表示因式分解的结果,NEG(w)为处理词汇w时生成的负样本子集,具体地,XW表示上下文中单词向量相加之和,Lw(u)表示是否命中,v(w)表示词向量,θu表示参数向量。

具体地,在新词汇库中的第一词汇在进行词向量训练时,若第一词汇属于旧词汇库,则不需要重复训练之前的全量计算负采样的部分,即公式八的第一部分;若第一词汇在旧词汇库和新增词汇库合并后的负采样权重系数不变则不需要再进行多余的计算,否则根据公式四和公式五计算得到的权重系数如果增大,则进行梯度上升,根据公式四和公式五计算得到的权重系数如果减小,则梯度下降;若第一词汇仅在新增词汇库中出现,则使用CBOW模型的原始目标函数,并执行梯度上升。

则在本实施例中,根据第一词汇在旧词汇库的属性和在新词汇库的属性对预设目标函数进行梯度处理,得到第一词汇对应的词向量,包括:

根据第一词汇在新词汇库对应的噪声分布和旧词汇库对应的噪声分布对预设目标函数进行梯度处理,得到第一词汇对应的词向量包括:计算负采样过程中的权重参数,根据权重参数确定梯度上升或提取下降,并通过确定的梯度上升或梯度下降的方式更新S102中初始化的词向量v'(w)和参数向量θ'w,以得到最终的新词汇库中的词汇对应的词向量。

具体地,通过以下公式计算负采样过程中的权重参数:当w∈W时,

当w∈W'时,

其中,D为根据W构造的词典。D'为根据W'构造的词典,counter(w)表示w在新词汇库中出现的次数。

记D(u)=sgn(len'(w)-len(w)),其中,D(u)为正采样或负采样的标识,用于标识使用梯度上升或梯度下降的方式更新初始化的词向量v'(w)。其中,当权重参数满足len(w)>len'(w),即D(u)为-1时,需要随机梯度下降抵消第一词汇重复出现的贡献;反之当权重参数满足len(w)<len'(w),即D(u)为1时,通过梯度上升来恢复噪声分布。

词向量v'(w)和参数向量θ'w的更新公式为:

具体地,在公式六、公式七、公式九和公式十中,η'表示学习率。初始学习率η0=0.025,在每训练完1000个词的词向量后,按照公式十一对学习率进行调整:

其中,word_count_actual表示当前已经处理的词汇数量,train_words=∑w∈Dcounter(w),counter(w)表示w在新词汇库中出现的次数。counter(w)表示w在新词汇库中出现的次数。train_words需要加1是工程上放置分母为零。同时对公式十一引入阈值ηmin=10-4·η0防止出现学习率过小的情况。

图2为本发明词向量训练装置实施例一的结构示意图。如图2所示,本实施例词向量训练装置包括:获取模块201、初始化模块202和更新模块203。其中,获取模块201用于获取新增词汇库,新增词汇库中的词汇与旧词汇库中的词汇构成新词汇库,旧词汇库中的词汇对应有旧词向量;初始化模块202用于对新词汇库中的词汇进行初始化处理,使得新词汇库中属于旧词汇库中的词汇的词向量为旧词向量,新词汇库中属于新增词汇库中的词汇词向量为随机词向量;更新模块203用于根据旧词汇库对应的噪声分布和新词汇库对应的噪声分布分别对新词汇库中词汇的词向量进行更新。

进一步地,在上述实施例中,更新模块具体用于,获取第一词汇对应的预设目标函数,第一词汇为新词汇库中的词汇;根据第一词汇在旧词汇库的属性和在新词汇库的属性对预设目标函数进行梯度处理,得到第一词汇对应的词向量。

本实施例的装置对应地可用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

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

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

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