本发明实施例涉及计算机技术,尤其涉及一种基于增量学习的词向量生成方法和装置。
背景技术:
词向量是用一个向量来表示一个词,从而将自然语言符号数学化,以便计算机对自然语言进行处理。
GloVe算法是一种新的词向量生成的方法,其综合运用了词的全局统计信息和局部统计信息来生成语言模型和词的向量化表示。GloVe算法集合了传统的基于统计的词向量模型和基于预测的词向量模型的优点,训练过程更加简单高效,生成的词向量更能体现词与词之间的线性关系。
然而,GloVe算法并没有考虑增量学习的情况,当语料库发生增量变化的时候,全局共现矩阵发生了变化。GloVe算法只能合并原始语料库和增量部分语料库,得到合并后的语料库,然后从初始状态重新训练整个语料库,这样会导致生成词向量过程耗时较长。
技术实现要素:
本发明实施例提供一种基于增量学习的词向量生成方法和装置,以有效减少生成词向量过程所消耗的时长。
第一方面,本发明实施例提供一种基于增量学习的词向量生成方法,包括:
获取原始语料库的词共现矩阵、新增语料库的词共现矩阵和所述原始语料库的训练结果参数,所述训练结果参数包括梯度值和第一矩阵分解结果;
将所述原始语料库的训练结果参数作为所述新增语料库的初始训练参数;
使用所述新增语料库的初始训练参数、所述原始语料库的词共现矩阵和所述新增语料库的词共现矩阵采用梯度下降算法迭代优化总目标函数,获取第二矩阵分解结果,所述第二矩阵分解结果为使得所述总目标函数极小化的解;
根据所述第二矩阵分解结果获取多个词向量。
第二方面,本发明实施例提供一种基于增量学习的词向量生成装置,包括:
获取模块,用于获取原始语料库的词共现矩阵、新增语料库的词共现矩阵和所述原始语料库的训练结果参数,所述训练结果参数包括梯度值和第一矩阵分解结果;
初始化模块,用于将所述原始语料库的训练结果参数作为所述新增语料库的初始训练参数;
增量学习模块,用于使用所述新增语料库的初始训练参数、所述原始语料库的词共现矩阵和所述新增语料库的词共现矩阵采用梯度下降算法迭代优化总目标函数,获取第二矩阵分解结果,所述第二矩阵分解结果为使得所述总目标函数极小化的解;
词向量获取模块,用于根据所述第二矩阵分解结果获取多个词向量。
本发明实施例基于增量学习的词向量生成方法和装置,通过获取原始语料库的词共现矩阵、新增语料库的词共现矩阵和所述原始语料库的训练结果参数,将所述原始语料库的训练结果参数作为所述新增语料库的初始训练参数,使用所述新增语料库的初始训练参数、所述原始语料库的词共现矩阵和所述新增语料库的词共现矩阵采用梯度下降算法迭代优化总目标函数,获取第二矩阵分解结果,根据所述第二矩阵分解结果获取多个词向量,本实施例通过设置与新增语料库对应的增量目标函数,使得当语料库随着时间推移发生增量变化的时候,以原始语料库的训练结果参数为初始训练参数,进一步训练该新增语料库,从而可以有效减少词向量生成过程所消耗的时长。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于增量学习的词向量生成方法实施例一的流程图;
图2为本发明基于增量学习的词向量生成方法实施例一的流程图;
图3为本发明基于增量学习的词向量生成装置实施例一的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明基于增量学习的词向量生成方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
步骤101、获取原始语料库的词共现矩阵、新增语料库的词共现矩阵和所述原始语料库的训练结果参数,所述训练结果参数包括梯度值和第一矩阵分解结果。
其中,第一矩阵分解结果具体可以包括偏移向量和词向量。
具体的,本发明实施例将语料库分为原始语料库和新增语料库。根据原始语料库中的语料构造语料索引,进而建立原始语料库的词共现矩阵,采用相同的方式根据新增语料库建立新增语料库的词共现矩阵。原始语料库的训练结果参数具体是对原始语料库进行词向量训练过程,获取在词向量训练过程中最后一次迭代的梯度值和第一矩阵分解结果。
步骤102、将所述原始语料库的训练结果参数作为所述新增语料库的初始训练参数。
步骤103、使用所述新增语料库的初始训练参数、所述原始语料库的词共现矩阵和所述新增语料库的词共现矩阵采用梯度下降算法迭代优化总目标函数,获取第二矩阵分解结果,所述第二矩阵分解结果为使得所述总目标函数极小化的解。
其中,梯度下降算法即为现有技术中的优化算法,通常也称为最速下降法,最速下降法是用负梯度方向为搜索方向的。
具体的,步骤103的具体实施方式可以为:i分别取1至V,j分别取1至V,若Xij不等于0,则根据Xij、ΔXij和增量梯度函数确定和对应的梯度方向,使用所述新增语料库的初始训练参数、Xij和ΔXij沿所述梯度方向更新和直至根据2V个词向量确定的总目标函数的值极小,将所述2V个词向量作为所述第二矩阵分解结果中的词向量,其中,所述增量梯度函数是对增量目标函数求导。
其中,Xij是原始语料库的词共现矩阵中索引为i的词和索引为j的词的共现值,ΔXij是所述新增语料库的词共现矩阵中索引为i的词和索引为j的词的共现值。
其中,所述增量目标函数具体为:
其中,和是所述第二矩阵分解结果中的词向量,bi和bj是偏移向量,f0是权重函数,为权重变化函数。
若存在Xij等于0,则根据Xij、ΔXij和总梯度函数确定和对应的梯度方向,使用所述新增语料库的初始训练参数、Xij和ΔXij沿所述梯度方向更新和其中,所述总梯度函数是对总目标函数求导,所述总目标函数具体为:
步骤104、根据所述第二矩阵分解结果获取多个词向量。
其中,第二矩阵分解结果包括两个矩阵,两个矩阵的每一行为一个词向量。
本实施例,通过获取原始语料库的词共现矩阵、新增语料库的词共现矩阵和所述原始语料库的训练结果参数,将所述原始语料库的训练结果参数作为所述新增语料库的初始训练参数,使用所述新增语料库的初始训练参数、所述原始语料库的词共现矩阵和所述新增语料库的词共现矩阵采用梯度下降算法迭代优化总目标函数,获取第二矩阵分解结果,所述第二矩阵分解结果为使得所述总目标函数极小化的解,根据所述第二矩阵分解结果获取多个词向量,本实施例当语料库随着时间推移发生增量变化的时候,以原始语料库的训练结果参数为初始训练参数,进一步训练新增语料库,从而可以有效减少词向量生成过程所消耗的时长。
需要说明的是,本发明实施例中的“极小化”具体指以一定阈值逼近零,该阈值可以是ε,其具体取值可以根据精度需求进行灵活设置。
为了更加清楚的理解本发明实施例,现对图1所示实施例中的增量目标函数的得出过程进行详细说明。
在GloVe模型中,使用原始语料库W统计得到原始语料库的词共现矩阵X,优化目标函数如下:
和是词向量,bi和是偏移向量,Xij是词共现矩阵中的值。f0是权重函数。定义如下
梯度下降算法来逼近公式(2)的目标函数的最小值,其迭代的方式如下:其中:=表示的是赋值操作
假设原始语料库W和新增语料库ΔW,那么合并之后的语料库为W′=W∪ΔW,构造新的共现矩阵值为X′ij=Xij+ΔXij。
得到变化后的总目标函数J′,即为公式(2),根据新的语料库的规模调整权重函数。调整共现矩阵值
其中权重函数的变化如下
从公式(4)的目标函数中分离出公式(2)目标函数得到
其中
公式(5)的目标函数梯度下降的迭代的方式如下:
从而,根据公式(5)便可以确定增量目标函数(1),当Xij不为0的时候,只需要使用增量部分的梯度值,对词向量和偏移向量进行迭代训练。具体第一次迭代方式为:
当原始词共现矩阵中的值为0的时候,按照公式(2)的目标函数的梯度求得全部的梯度值,对词向量和偏移向量进行迭代训练。
下面采用一个具体的实施例,对上述方法实施例的技术方案进行详细说明。
图2为本发明基于增量学习的词向量生成方法实施例二的流程图,如图2所示,本实施例的方法可以包括:
步骤201、获取原始语料库的词共现矩阵、新增语料库的词共现矩阵和所述原始语料库的训练结果参数,所述训练结果参数包括梯度值和第一矩阵分解结果。
步骤202、将所述原始语料库的训练结果参数作为所述新增语料库的初始训练参数。
步骤203、i分别取1至V,j分别取1至V,判断Xij是否等于0,若否,则执行步骤204,若是,则执行步骤205。
步骤204、根据Xij、ΔXij和增量梯度函数确定和对应的梯度方向,使用所述新增语料库的初始训练参数、Xij和ΔXij沿所述梯度方向更新和
其中,增量目标函数具体为公式(1)。
具体的,步骤204的具体实施方式可以为:
设置迭代次数t;
当t=1时,采用下式更新bi′和
当t.>1时,采用下式更新bi′和
其中,和是所述第一矩阵分解结果中的词向量,b′i和b′j是偏移向量,η′为梯度下降算法的学习率。
步骤205、根据Xij、ΔXij和总梯度函数确定和对应的梯度方向,使用所述新增语料库的初始训练参数、Xij和ΔXij沿所述梯度方向更新和
其中,其所述总梯度函数是对总目标函数求导,所述总目标函数具体为公式(5)。
步骤206、直至根据2V个词向量确定的总目标函数的值极小,将所述2V个词向量作为所述第二矩阵分解结果中的词向量。
可选的,所述方法还可以包括:根据预先设定的滑动窗口统计所述新增语料库中相应数量的单词的共现次数;根据所述共现次数建立所述新增语料库的词共现矩阵。
可选的,所述方法还可以包括:创建多个训练线程;步骤204具体可以为:将所述新增语料库的初始训练参数、所述原始语料库的词共现矩阵和所述新增语料库的词共现矩阵划分给所述多个训练线程,由所述多个训练线程并行采用梯度下降算法迭代优化所述总目标函数,获取第二矩阵分解结果。
本实施例,通过获取原始语料库的词共现矩阵、新增语料库的词共现矩阵和所述原始语料库的训练结果参数,将所述原始语料库的训练结果参数作为所述新增语料库的初始训练参数,若Xij不等于0,则使用增量目标函数的梯度方向更新词向量,若Xij等于0,则使用总目标函数的梯度方向更新词向量,直至根据2V个词向量确定的总目标函数的值极小,将所述2V个词向量作为所述第二矩阵分解结果中的词向量,本实施例能够充分利用原始语料库的训练结果参数,当有新增语料库时,只需迭代训练该新增语料库,大大减少训练的时间代价。
图3为本发明基于增量学习的词向量生成装置实施例一的结构示意图,如图3所示,本实施例的装置可以包括:获取模块11、初始化模块12、增量学习模块13和词向量获取模块14,其中,获取模块11用于获取原始语料库的词共现矩阵、新增语料库的词共现矩阵和所述原始语料库的训练结果参数,所述训练结果参数包括梯度值和第一矩阵分解结果,初始化模块12用于将所述原始语料库的训练结果参数作为所述新增语料库的初始训练参数,增量学习模块13用于使用所述新增语料库的初始训练参数、所述原始语料库的词共现矩阵和所述新增语料库的词共现矩阵采用梯度下降算法迭代优化总目标函数,获取第二矩阵分解结果,所述第二矩阵分解结果为使得所述总目标函数极小化的解,词向量获取模块14用于根据所述第二矩阵分解结果获取多个词向量。
可选的,所述增量学习模块13用于使用所述新增语料库的初始训练参数、所述原始语料库的词共现矩阵和所述新增语料库的词共现矩阵采用梯度下降算法迭代优化总目标函数,具体可以包括:
i分别取1至V,j分别取1至V,若Xij不等于0,则根据Xij、ΔXij和增量梯度函数确定和对应的梯度方向,使用所述新增语料库的初始训练参数、Xij和ΔXij沿所述梯度方向更新和直至根据2V个词向量确定的总目标函数的值极小,将所述2V个词向量作为所述第二矩阵分解结果中的词向量,其中,所述增量梯度函数是对增量目标函数求导,所述增量目标函数具体为:其中,和是所述第二矩阵分解结果中的词向量,bi和bj是偏移向量,Xij是原始语料库的词共现矩阵中索引为i的词和索引为j的词的共现值,ΔXij是所述新增语料库的词共现矩阵中索引为i的词和索引为j的词的共现值,f0是权重函数,为权重变化函数。
可选的,所述增量学习模块13用于使用所述新增语料库的初始训练参数、Xij和ΔXij沿所述梯度方向更新和具体可以包括:
设置迭代次数t;
当t=1时,采用下式更新bi′和
当t.>1时,采用下式更新bi′和
其中,和是所述第一矩阵分解结果中的词向量,b′i和b′j是偏移向量,η′为梯度下降算法的学习率。
可选的,所述增量学习模块13还可以用于:若存在Xij等于0,则根据Xij、ΔXij和总梯度函数确定和对应的梯度方向,使用所述新增语料库的初始训练参数、Xij和ΔXij沿所述梯度方向更新和其中,所述总梯度函数是对总目标函数求导,所述总目标函数具体为:
可选的,所述装置还包括词共现矩阵生成模块15,用于根据预先设定的滑动窗口统计所述新增语料库中相应数量的单词的共现次数;根据所述共现次数建立所述新增语料库的词共现矩阵。
可选的,还可以创建多个训练线程;所述增量学习模块13用于新增语料库的初始训练参数、所述原始语料库的词共现矩阵和所述新增语料库的词共现矩阵采用梯度下降算法迭代优化总目标函数,获取第二矩阵分解结果,具体可以包括:将所述新增语料库的初始训练参数、所述原始语料库的词共现矩阵和所述新增语料库的词共现矩阵划分给所述多个训练线程,由所述多个训练线程并行采用梯度下降算法迭代优化所述总目标函数,获取第二矩阵分解结果。
本实施例的装置,可以用于上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。