文本词向量模型的训练方法、电子设备及计算机存储介质与流程

文档序号:17442566发布日期:2019-04-17 04:58阅读:157来源:国知局
文本词向量模型的训练方法、电子设备及计算机存储介质与流程

本申请涉及计算机处理技术领域,具体而言,本申请涉及一种文本词向量模型的训练方法、电子设备及计算机存储介质。



背景技术:

近年来,词向量在自然语言处理领域中有着越来越广泛的应用,例如,词性标注、情感分类、文本分类、关键词提取和语义相似度等等。词向量是指将一个字或者词转化为一个一维向量的表示,普通的词向量训练方法有word2vec(词向量)、fasttext(快速文本)等。

文本分类是对文本按照不同的类别(例如体育、娱乐等)进行分类,现有文本分类的常用方法,比如bi-lstm(双向长短期记忆循环神经网络)、text-cnn(文本卷积神经网络)等深度学习算法,一般适合用于小数据量的有标注数据,而且在一定程度上依赖于词向量的预训练,但是现有的词向量训练方法,例如word2vec、fasttext等,虽然适合大规模语料数据,但是并不能直接用于文本分类,因为其对于电影、电视剧、导演、演员等语境相近的词的区分性较低,即这些词经过词向量训练后较为接近,导致使用普通的词向量训练方法训练词向量之后,再用深度学习的方法进行文本分类学习时,两者之前存在衔接不紧密的问题。



技术实现要素:

本申请的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:

第一方面,提供了一种文本词向量模型的训练方法,文本词向量模型包括语义词向量子模型与文本分类子模型,该方法包括:

根据各个训练语句中包括的语句标签,确定各个训练语句分别对应的子模型,语句标签用于指示训练语句对应的子模型;

通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,来更新文本词向量模型的第一词向量矩阵,以使得通过更新第一词向量矩阵来训练所述文本词向量模型。

在一种实现方式中,通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,包括:

通过包括与语义词向量子模型对应的语句标签以及分词后的第一语句文本的任一训练语句,对语义词向量子模型进行训练;以及,

通过包括与文本分类子模型对应的语句标签、文本分类子模型的子模型类型标签、训练语句的文本类别以及分词后的第二语句文本的任一训练语句,对文本分类子模型进行训练。

在另一种实现方式中,通过各个训练语句对相应的语义词向量子模型进行训练,来更新文本词向量模型的第一词向量矩阵,包括:

根据各个训练语句中分词后的第一语句文本,分别生成相应的训练样本;

基于训练样本,确定语义词向量子模型的第一梯度向量;

根据第一梯度向量更新第一词向量矩阵与第二词向量矩阵,语义词向量子模型包括第一词向量矩阵与第二词向量矩阵。

在另一种实现方式中,根据各个训练语句中分词后的第一语句文本,分别生成相应的训练样本,包括:

对任一训练语句中分词后的第一语句文本中的任一分词,通过遍历任一分词在分词后的第一语句文本中前后预设个数的分词,生成任一分词对应的正样本;

对任一训练语句中分词后的第一语句文本中的任一分词,通过负采样的方式生成任一分词对应的负样本;

其中,任一正样本或任一负样本均包括第一样本词、第二样本词及样本标签,样本标签标识训练样本为正样本或负样本。

在另一种实现方式中,基于训练样本,确定语义词向量子模型的第一梯度向量,包括:

针对任一正样本或任一负样本,根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找第一样本词的词向量,并在第二词向量矩阵中查找第二样本词的词向量;

根据第一样本词的词向量、第二样本词的词向量及相应的样本标签,确定语义词向量子模型的第一梯度向量。

在另一种实现方式中,根据第一样本词的词向量、第二样本词的词向量及相应的样本标签,确定语义词向量子模型的第一梯度向量,包括:

确定第一样本词的词向量与第二样本词的词向量间的乘积,并对该乘积进行预定函数运算,得到第一运算结果;

确定相应的样本标签与第一运算结果之间的差值,并计算预定参数与该差值的乘积,得到第二运算结果;

根据第二运算结果与第二样本词的词向量之间的乘积,得到第一样本词的梯度向量;

根据第二运算结果与第一样本词的词向量之间的乘积,得到第二样本词的梯度向量;

其中,第一梯度向量包括第一样本词的梯度向量与第二样本词的梯度向量。

在另一种实现方式中,根据第一梯度向量更新第一词向量矩阵与第二词向量矩阵,包括:

根据第一样本词的梯度向量更新第一词向量矩阵;

根据第二样本词的梯度向量更新第二词向量矩阵。

在另一种实现方式中,通过各个训练语句对相应的文本分类子模型进行训练,来更新文本词向量模型的第一词向量矩阵,包括:

根据各个训练语句中文本分类子模型的子模型类型标签,确定各个训练语句分别对应的文本分类子模型的类型;

通过各个训练语句对相应类型的文本分类子模型进行训练,来更新文本词向量模型的第一词向量矩阵。

在另一种实现方式中,通过各个训练语句对相应类型的文本分类子模型进行训练,来更新文本词向量模型的第一词向量矩阵,包括:

确定任一训练语句的目标类别与负采样类别;

根据第三样本词及第四样本词,分别确定相应的隐藏层向量,第三样本词为目标类别对应的至少一个训练语句的分词后的第二语句文本,第四样本词为负采样类别对应的至少一个训练语句的分词后的第二语句文本;

基于目标类别、负采样类别及隐藏层向量,确定文本分类子模型的第二梯度向量;

根据第二梯度向量更新第一词向量矩阵与文本类别矩阵。

在另一种实现方式中,确定任一训练语句的目标类别与负采样类别,包括:

根据任一训练语句的文本类别,确定该任一训练语句的目标类别;

计算第一平方根结果与第二平方根结果的比值,得到任一文本类别的采样比例,并依据采样比例,将任一文本类别确定为任一训练语句的负采样类别;

其中,第一平方根结果为多个训练语句中任一文本类别的总数的平方根,第二平方根结果为多个训练语句中各个文本类别的总数的平方根之和。

在另一种实现方式中,根据第三样本词及第四样本词,分别确定相应的隐藏层向量,包括:

根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找各个第三样本词分别对应的第一词向量,以及在第一词向量矩阵中查找各个第四样本词分别对应的第二词向量;

将各个第一词向量依据对应维度相加,得到第一隐藏层向量;

将各个第二词向量依据对应维度相加,得到第二隐藏层向量;

隐藏层向量包括第一隐藏层向量与第二隐藏层向量。

在另一种实现方式中,确定文本分类子模型的第二梯度向量,包括:

确定目标类别对应的第二梯度向量,目标类别对应的第二梯度向量包括第一词梯度向量和第一类别梯度向量;

其中,根据第二梯度向量更新第一词向量矩阵与文本类别矩阵,包括:

根据第一词梯度向量更新第一词向量矩阵,并根据第一类别梯度向量更新文本类别矩阵。

在另一种实现方式中,确定文本分类子模型的第二梯度向量,包括:

确定负采样类别对应的第二梯度向量,负采样类别对应的第二梯度向量包括第二词梯度向量和第二类别梯度向量;

其中,根据第二梯度向量更新第一词向量矩阵与文本类别矩阵,包括:

根据第二词梯度向量更新第一词向量矩阵,并根据第二类别梯度向量更新文本类别矩阵。

在另一种实现方式中,基于目标类别、负采样类别及隐藏层向量,确定文本分类子模型的第二梯度向量,包括:

确定第一隐藏层向量与第一类别向量之间的乘积,并对该乘积进行预定函数运算,得到第三运算结果,第一类别向量是依据文本类别与类别向量之间的预设映射关系,通过查找文本类别矩阵得到的目标类别的类别向量;

确定目标类别的类别标签与第三运算结果之间的差值,并计算预定参数与该差值的乘积,得到第四运算结果;

确定第一类别向量与第一分词总数的比值,并计算第四运算结果与该比值的乘积,得到各个第三样本词的第一词梯度向量,第一分词总数为第三样本词的总数;

根据第四运算结果与第一隐藏层向量的乘积,得到目标类别的第一类别梯度向量;

其中,第二梯度向量包括第一词梯度向量与第一类别梯度向量。

在另一种实现方式中,基于目标类别、负采样类别及隐藏层向量,确定文本分类子模型的第二梯度向量,包括:

确定第二隐藏层向量与第二类别向量之间的乘积,并对该乘积进行预定函数运算,得到第五运算结果,第二类别向量是依据文本类别与类别向量之间的预设映射关系,通过查找文本类别矩阵得到的负采样类别的类别向量;

确定负采样类别的文本标签与第五运算结果之间的差值,并计算预定参数与该差值的乘积,得到第六运算结果;

确定第二类别向量与第二分词总数的比值,并计算第六运算结果与该比值的乘积,得到各个第四样本词的第二词梯度向量,第二分词总数为第四样本词的总数;

根据第六运算结果与第二隐藏层向量的乘积,得到负采样类别的第二类别梯度向量;

其中,第二梯度向量包括第二词梯度向量与第二类别梯度向量。

第二方面,提供了一种文本词向量模型的训练装置,文本词向量模型包括语义词向量子模型与文本分类子模型,该装置包括:

模型确定模块,用于根据各个训练语句中包括的语句标签,确定各个训练语句分别对应的子模型,语句标签用于指示训练语句对应的子模型;

模型训练模块,用于通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,来更新文本词向量模型的第一词向量矩阵,以使得通过更新第一词向量矩阵来训练文本词向量模型。

在一种实现方式中,模型训练模块具体用于通过包括与语义词向量子模型对应的语句标签以及分词后的第一语句文本的任一训练语句,对语义词向量子模型进行训练;以及,用于通过包括与文本分类子模型对应的语句标签、文本分类子模型的子模型类型标签、训练语句的文本类别以及分词后的第二语句文本的任一训练语句,对文本分类子模型进行训练。

在另一种实现方式中,模型训练模块包括样本生成子模块、第一确定子模块与更新子模块;

样本生成子模块,用于根据各个训练语句中分词后的第一语句文本,分别生成相应的训练样本;

第一确定子模块,用于基于训练样本,确定语义词向量子模型的第一梯度向量;

更新子模块,用于根据第一梯度向量更新第一词向量矩阵与第二词向量矩阵,语义词向量子模型包括第一词向量矩阵与第二词向量矩阵。

在另一种实现方式中,样本生成子模块包括正样本生成单元与负样本生成单元;

正样本生成单元,用于对任一训练语句中分词后的第一语句文本中的任一分词,通过遍历任一分词在分词后的第一语句文本中前后预设个数的分词,生成任一分词对应的正样本;

负样本生成单元,用于对任一训练语句中分词后的第一语句文本中的任一分词,通过负采样的方式生成任一分词对应的负样本;

其中,任一正样本或任一负样本均包括第一样本词、第二样本词及样本标签,样本标签标识训练样本为正样本或负样本。

在另一种实现方式中,第一确定子模块包括词向量查找单元与梯度向量确定单元;

词向量查找单元,用于针对任一正样本或任一负样本,根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找第一样本词的词向量,并在第二词向量矩阵中查找第二样本词的词向量;

梯度向量确定单元,用于根据第一样本词的词向量、第二样本词的词向量及相应的样本标签,确定语义词向量子模型的第一梯度向量。

在另一种实现方式中,梯度向量确定单元具体用于确定第一样本词的词向量与第二样本词的词向量间的乘积,并对该乘积进行预定函数运算,得到第一运算结果;以及确定相应的样本标签与第一运算结果之间的差值,并计算预定参数与该差值的乘积,得到第二运算结果;以及根据第二运算结果与第二样本词的词向量之间的乘积,得到第一样本词的梯度向量;以及根据第二运算结果与第一样本词的词向量之间的乘积,得到第二样本词的梯度向量;

其中,第一梯度向量包括第一样本词的梯度向量与第二样本词的梯度向量。

在另一种实现方式中,更新子模块具体用于根据第一样本词的梯度向量更新第一词向量矩阵;以及根据第二样本词的梯度向量更新第二词向量矩阵。

在另一种实现方式中,模型训练模块包括第二确定子模块与训练子模块;

第二确定子模块,用于根据各个训练语句中文本分类子模型的子模型类型标签,确定各个训练语句分别对应的文本分类子模型的类型;

训练子模块,用于通过各个训练语句对相应类型的文本分类子模型进行训练,来更新文本词向量模型的第一词向量矩阵。

在另一种实现方式中,训练子模块包括第一确定单元、第二确定单元、

第三确定单元与更新单元;

第一确定单元,用于确定任一训练语句的目标类别与负采样类别;

第二确定单元,用于根据第三样本词及第四样本词,分别确定相应的隐藏层向量,第三样本词为目标类别对应的至少一个训练语句的分词后的第二语句文本,第四样本词为负采样类别对应的至少一个训练语句的分词后的第二语句文本;

第三确定单元,用于基于目标类别、负采样类别及隐藏层向量,确定文本分类子模型的第二梯度向量;

更新单元,用于根据第二梯度向量更新第一词向量矩阵与文本类别矩阵。

在另一种实现方式中,第一确定单元具体用于根据任一训练语句的文本类别,确定该任一训练语句的目标类别;以及计算第一平方根结果与第二平方根结果的比值,得到任一文本类别的采样比例,并依据采样比例,将任一文本类别确定为任一训练语句的负采样类别;

其中,第一平方根结果为多个训练语句中任一文本类别的总数的平方根,第二平方根结果为多个训练语句中各个文本类别的总数的平方根之和。

在另一种实现方式中,第二确定单元具体用于根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找各个第三样本词分别对应的第一词向量,以及在第一词向量矩阵中查找各个第四样本词分别对应的第二词向量;以及将各个第一词向量依据对应维度相加,得到第一隐藏层向量;以及将各个第二词向量依据对应维度相加,得到第二隐藏层向量;

隐藏层向量包括第一隐藏层向量与第二隐藏层向量。

在另一种实现方式中,第三确定单元具体用于确定目标类别对应的第二梯度向量,目标类别对应的第二梯度向量包括第一词梯度向量和第一类别梯度向量;

其中,更新单元具体用于根据第一词梯度向量更新第一词向量矩阵,并根据第一类别梯度向量更新文本类别矩阵。

在另一种实现方式中,第三确定单元具体用于确定负采样类别对应的第二梯度向量,负采样类别对应的第二梯度向量包括第二词梯度向量和第二类别梯度向量;

其中,更新单元具体用于根据第二词梯度向量更新第一词向量矩阵,并根据第二类别梯度向量更新文本类别矩阵。

在另一种实现方式中,第三确定单元具体用于确定第一隐藏层向量与第一类别向量之间的乘积,并对该乘积进行预定函数运算,得到第三运算结果,第一类别向量是依据文本类别与类别向量之间的预设映射关系,通过查找文本类别矩阵得到的目标类别的类别向量;以及确定目标类别的类别标签与第三运算结果之间的差值,并计算预定参数与该差值的乘积,得到第四运算结果;以及确定第一类别向量与第一分词总数的比值,并计算第四运算结果与该比值的乘积,得到各个第三样本词的第一词梯度向量,第一分词总数为第三样本词的总数;以及根据第四运算结果与第一隐藏层向量的乘积,得到目标类别的第一类别梯度向量;

其中,第二梯度向量包括第一词梯度向量与第一类别梯度向量。

在另一种实现方式中,第三确定单元具体用于确定第二隐藏层向量与第二类别向量之间的乘积,并对该乘积进行预定函数运算,得到第五运算结果,第二类别向量是依据文本类别与类别向量之间的预设映射关系,通过查找文本类别矩阵得到的负采样类别的类别向量;以及确定负采样类别的文本标签与第五运算结果之间的差值,并计算预定参数与该差值的乘积,得到第六运算结果;以及确定第二类别向量与第二分词总数的比值,并计算第六运算结果与该比值的乘积,得到各个第四样本词的第二词梯度向量,第二分词总数为第四样本词的总数;以及根据第六运算结果与第二隐藏层向量的乘积,得到负采样类别的第二类别梯度向量;

其中,第二梯度向量包括第二词梯度向量与第二类别梯度向量。

第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的文本词向量模型的训练方法。

第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的文本词向量模型的训练方法。

本申请实施例提供的文本词向量模型的训练方法,根据各个训练语句中包括的语句标签,确定各个训练语句分别对应的子模型,为后续基于各个训练语句分别对相应的子模型进行训练提供前提保障,通过语句标签指示各个训练语句分别对应的子模型为语义词向量子模型或文本分类子模型,使得能够准确判断混合在一起的各个训练语句分别对应的子模型,提高了训练语句与子模型之间的匹配准确度;通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,来更新文本词向量模型的第一词向量矩阵,使得每当完成语义词向量子模型或文本分类子模型的一次训练后,能够第一时间更新语义词向量子模型与文本分类子模型所共用的第一词向量矩阵,从而通过对第一词向量矩阵的更新,实现了对文本词向量模型的训练,进而使得词向量训练方法与文本分类方法之间的紧密衔接与融合,增强了词向量的表征能力。

本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为现有技术中普通skip-gram词向量训练模型的流程示意图;

图2为本申请实施例的文本词向量模型的训练方法的流程示意图;

图3为本申请实施例的训练语句的语句格式的示意图;

图4为本申请实施例的样本词到词向量矩阵中词向量的映射示意图;

图5为本申请实施例的隐藏层向量的计算过程示意图;

图6为本申请实施例的文本词向量模型的训练过程的基本示意图;

图7为本申请实施例的文本词向量模型的训练装置的基本结构示意图;

图8为本申请实施例的文本词向量模型的训练装置的详细结构示意图;

图9为本申请实施例的电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其它特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其它元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

现有的词向量训练,能够基于大规模语料数据集,快速训练出词向量。其中,在语义词向量方面表现较好的是skip-gram(连续跳跃元语法)方式,在语法词向量方面表现较好的是cbow(continuousbag-of-words,连续词袋模型)方式,skip-gram与cbow都是在word2vec(词向量)中用于将文本进行向量表示的实现方法。常规的词向量训练的优点是适合大规模语料数据,相应的缺点是不能直接作为文本分类来用,虽然改进的线性模型fasttext(快速文本)可以用于文本分类,但是对于小规模、短文本数据容易过拟合。其中,word2vec和fasttext中采用的普通skip-gram词向量训练模型,可用如图1所示的流程图表示。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

本申请的一个实施例提供了一种文本词向量模型的训练方法,其中,文本词向量模型包括语义词向量子模型与文本分类子模型,如图2所示,该方法包括:

步骤s210,根据各个训练语句中包括的语句标签,确定各个训练语句分别对应的子模型,语句标签用于指示训练语句对应的子模型。

具体地,在构建训练语句集的过程中,可以预先在各个训练语句中增加相应的语句标签,使得训练语句集中的各个训练语句均包括相应的语句标签,例如aa、bb等,该语句标签用于指示训练语句对应的子模型为语义词向量子模型或者文本分类子模型,例如aa指示训练语句对应的子模型为语义词向量子模型,bb指示训练语句对应的子模型为文本分类子模型,即包括aa这一语句标签的训练语句用于对语义词向量子模型进行训练,包括bb这一语句标签的训练语句用于对文本分类子模型进行训练。

进一步地,计算设备可以通过读取训练语句集中的至少一个训练语句的方式,获得相应的训练语句,并根据获得的各个训练语句中包括的语句标签,确定各个训练语句分别对应的子模型,从而为后续基于各个训练语句对相应的语义词向量子模型或文本分类子模型进行训练提供前提保障。

步骤s220,通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,来更新文本词向量模型的第一词向量矩阵,以使得通过更新第一词向量矩阵来训练文本词向量模型。

具体地,计算设备根据获得的各个训练语句中包括的语句标签,确定各个训练语句分别对应的子模型之后,基于各个训练语句对相应的语义词向量子模型或文本分类子模型进行训练,例如,使用包括aa这一语句标签的训练语句对语义词向量子模型进行训练,使用包括bb这一语句标签的训练语句对文本分类子模型进行训练。

进一步地,每当计算设备基于各个训练语句对相应的语义词向量子模型或文本分类子模型完成一次训练,便会对文本词向量模型的词向量矩阵(即上述的第一词向量矩阵)进行一次更新,其中,语义词向量子模型与文本分类子模型共用文本词向量模型的第一词向量矩阵,使得词向量训练方法与文本分类训练方法之间能够紧密衔接。

本申请实施例提供的文本词向量模型的训练方法,与现有技术相比,根据各个训练语句中包括的语句标签,确定各个训练语句分别对应的子模型,为后续基于各个训练语句分别对相应的子模型进行训练提供前提保障,通过语句标签指示各个训练语句分别对应的子模型为语义词向量子模型或文本分类子模型,使得能够准确判断混合在一起的各个训练语句分别对应的子模型,提高了训练语句与子模型之间的匹配准确度;通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,来更新文本词向量模型的第一词向量矩阵,使得每当完成语义词向量子模型或文本分类子模型的一次训练后,能够第一时间更新语义词向量子模型与文本分类子模型所共用的第一词向量矩阵,从而通过对第一词向量矩阵的更新,实现了对文本词向量模型的训练,进而使得词向量训练方法与文本分类方法之间的紧密衔接与融合,增强了词向量的表征能力。

在一种可能的实现方式中,通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,包括:通过包括与语义词向量子模型对应的语句标签以及分词后的第一语句文本的任一训练语句,对语义词向量子模型进行训练。

其中,步骤s220包括步骤s2201(图中未标注)、步骤s2202(图中未标注)与步骤s2203(图中未标注),其中,

步骤s2201:根据各个训练语句中分词后的第一语句文本,分别生成相应的训练样本;

步骤s2202:基于训练样本,确定语义词向量子模型的第一梯度向量;

步骤s2203:根据第一梯度向量更新第一词向量矩阵与第二词向量矩阵,语义词向量子模型包括第一词向量矩阵与第二词向量矩阵。

具体地,步骤s2201具体包括步骤s22011(图中未标注)与步骤s22012(图中未标注),其中,

步骤s22011:对任一训练语句中分词后的第一语句文本中的任一分词,通过遍历任一分词在分词后的第一语句文本中前后预设个数的分词,生成任一分词对应的正样本;

步骤s22012:对任一训练语句中分词后的第一语句文本中的任一分词,通过负采样的方式生成任一分词对应的负样本;

其中,任一正样本或任一负样本均包括第一样本词、第二样本词及样本标签,样本标签标识训练样本为正样本或负样本。

具体地,步骤s2202具体包括步骤s22021(图中未标注)与步骤s22022(图中未标注),其中,

步骤s22021:针对任一正样本或任一负样本,根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找第一样本词的词向量,并在第二词向量矩阵中查找第二样本词的词向量;

步骤s22022:根据第一样本词的词向量、第二样本词的词向量及相应的样本标签,确定语义词向量子模型的第一梯度向量。

进一步地,根据第一样本词的词向量、第二样本词的词向量及相应的样本标签,确定语义词向量子模型的第一梯度向量,包括:

确定第一样本词的词向量与第二样本词的词向量间的乘积,并对该乘积进行预定函数运算,得到第一运算结果;

确定相应的样本标签与第一运算结果之间的差值,并计算预定参数与该差值的乘积,得到第二运算结果;

根据第二运算结果与第二样本词的词向量之间的乘积,得到第一样本词的梯度向量;

根据第二运算结果与第一样本词的词向量之间的乘积,得到第二样本词的梯度向量;

其中,第一梯度向量包括第一样本词的梯度向量与第二样本词的梯度向量。

进一步地,根据第一梯度向量更新第一词向量矩阵与第二词向量矩阵,包括:

根据第一样本词的梯度向量更新第一词向量矩阵;

根据第二样本词的梯度向量更新第二词向量矩阵。

下面对本实现方式中涉及的关于训练语义词向量子模型的方法进行如下详细介绍:

具体地,本实现方式中用于训练语义词向量子模型的任一训练语句包括与语义词向量子模型对应的语句标签以及分词后的第一语句文本,换言之,本实现方式中的各个训练语句中均包括相应的语句标签,该语句标签用于指示各个训练语句分别对应的子模型为语义词向量子模型或文本分类子模型,即不同训练语句通过语句标签进行区分,即通过语句标签判断该训练语句是用于训练语义词向量子模型,还是用于训练文本分类子模型。其中,训练语句的语句格式如图3所示,图3中的skip与cls为语句标签,skip指示训练语句用于训练语义词向量子模型,cls指示训练语句用于训练文本分类子模型,其中,用于训练语义词向量子模型的任一训练语句包括与语义词向量子模型对应的语句标签(例如第一列的skip)以及分词后的第一语句文本(例如第二列的分词后的语句文本)。

进一步地,根据训练语句中包括的语句标签(skip),确定出用于训练语义词向量子模型的各个训练语句后,将基于该确定出的各个训练语句对语义词向量子模型进行训练,其中,具体的训练过程如下所示:

具体地,可以根据各个训练语句中分词后的语句文本(即上述的第一语句文本),分别生成相应的训练样本,训练样本包括正样本与负样本。其中,在生成正样本的过程中,可以对任一训练语句中分词后的语句文本中的任一分词,通过遍历该任一分词在分词后的语句文本中前后预设个数的分词,生成该任一分词对应的正样本。假如任一训练语句为{skip今天我在北方旅游},其中,skip为语句标签,文本“今天我在北方旅游”为分词后的语句文本(即上述的第一语句文本),在生成该训练语句的训练样本的过程中,对文本“今天我在北方旅游”中的每个分词,在该文本中依次遍历前后预设个数(比如1、2等)的词,形成每个分词的正样本。如果预设个数为1,则在该文本中遍历到“在”字时,即任一分词为“在”时,可以生成“在”这一分词对应的正样本:{在,我,1},{在,北方,1},如果预设个数为2,则在该文本中遍历到“在”字时,除了生成上述两个正样本外,还可以生成“在”这一分词对应的如下正样本:{在,今天,1},{在,旅游,1}。其中,上述的正样本均为{第一样本词,第二样本词,样本标签}的表示形式,在正样本的表示形式中,“在”为上述的第一样本词,“我”、“北方”、“今天”及“旅游”等为上述的第二样本词,“1”为样本标签,标识训练样本为正样本。

其中,在生成负样本的过程中,可以对任一训练语句中分词后的语句文本中的任一分词,通过负采样的方式生成该任一分词对应的负样本。假如任一训练语句为{skip今天我在北方旅游},任一分词为“在”,此时可以通过负采样的方式生成“在”这一分词对应的负样本,例如{在,被子,0}、{在,书本,0}等,其中“被子”和“书本”为在字典中通过随机采样获得的样本词。其中,上述的负样本也为{第一样本词,第二样本词,样本标签}的表示形式,其中,在负样本的表示形式中,“在”为上述的第一样本词,“被子”和“书本”为上述的第二样本词,“0”为样本标签,标识训练样本为负样本。

进一步地,在得到任一训练语句的训练样本(包括正样本与负样本)之后,可以根据该训练样本确定语义词向量子模型的梯度向量(即上述的第一梯度向量),在确定梯度向量的过程中,可以针对上述的任一正样本或任一负样本,根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找第一样本词的词向量,并在第二词向量矩阵中查找第二样本词的词向量,得到两个样本词的词向量。例如,针对任一正样本{在,我,1},第一样本词为“在”,第二样本词为“我”,此时根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找“在”的词向量,比如为vector1,并在第二词向量矩阵中查找“我”的词向量,比如为vector2。又例如,针对任一负样本{在,书本,0},第一样本词为“在”,第二样本词为“书本”,此时根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找“在”的词向量,比如为vector1,并在第二词向量矩阵中查找“书本”的词向量,比如为vector3。

需要说明的是,在对文本词向量模型(包括语义词向量子模型与文本分类子模型)进行训练之前,已经预先通过随机小数对第一词向量矩阵与第二词向量矩阵分别进行相应的初始化,即得到了初始的第一词向量矩阵与初始的第二词向量矩阵,后续随着对文本词向量模型的训练,将不断更新第一词向量矩阵与第二词向量矩阵。其中,在通过随机小数对第一词向量矩阵与第二词向量矩阵进行初始化的同时,建立语料数据集中各个样本词到词向量矩阵中每个词向量的映射表(即预设映射关系),具体如图4所示。

进一步地,在确定任一正样本或任一负样本的第一样本词的词向量与第二样本词的词向量之后,可以根据该任一正样本或任一负样本的第一样本词的词向量、第二样本词的词向量及相应的样本标签,确定语义词向量子模型的梯度向量。下面以正样本{在,我,1}为例,简要介绍确定语义词向量子模型的梯度向量的过程:

(1)确定第一样本词的词向量与第二样本词的词向量间的乘积,并对该乘积进行预定函数运算,得到第一运算结果,即确定“在”的词向量vector1与“我”的词向量vector2之间的乘积,假如记作dowval_1,即dowval_1=vector1*vector2,并对该乘积dowval_1进行预定函数运算,例如进行sigmoid函数运算,从而得到第一运算结果,假如将第一运算结果记作score_1,则score_1=sigmoid(dowval_1)。

其中,在得到第一运算结果score之后,可以根据样本标签与该score_1得到相应的模型损失loss,如果样本标签为1(代表正样本),则loss=-log(score_1),如果样本标签为0(代表负样本),则loss=-log(1-score_1),loss是用来评价语义词向量子模型的优劣的,loss越小表示语义词向量子模型越好。其中,还可以依据loss来更新语义词向量子模型的预定参数(例如learnrate_1),即通过loss与预定参数learnrate_1的配合,对语义词向量子模型进行调整与训练。

(2)确定相应的样本标签与第一运算结果之间的差值,并计算预定参数与该差值的乘积,得到第二运算结果,即确定样本标签“1”与score_1之间的差值,并计算预定参数(例如learnrate_1)与该差值的乘积,得到第二运算结果,假如将第二运算结果记作alpha_1,则alpha_1=learnrate_1*(1-score_1)。其中,预定参数learnrate_1最初为一个设定的参数,其会随着训练的进度逐渐减小,整个训练结束时减小为0。

(3)根据第二运算结果与第二样本词的词向量之间的乘积,得到第一样本词的梯度向量,假如将第一样本词的梯度向量记作grad(word1),则grad(word1)为alpha_1与vector2之间的乘积,即grad(word1)=alpha_1*vector2。

(4)根据第二运算结果与第一样本词的词向量之间的乘积,得到第二样本词的梯度向量,假如将第二样本词的梯度向量记作grad(word2),则grad(word2)为alpha_1与vector1之间的乘积,即grad(word2)=alpha_1*vector1。

其中,语义词向量子模型的梯度向量包括上述的第一样本词的梯度向量与第二样本词的梯度向量。

进一步地,在完成语义词向量子模型的梯度向量的计算之后,根据第一样本词的梯度向量更新第一词向量矩阵,根据第二样本词的梯度向量更新第二词向量矩阵,即将grad(word1)更新到第一词向量矩阵中,将grad(word2)更新到第二词向量矩阵中,从而完成文本词向量模型的第一词向量矩阵的更新以及第二词向量矩阵的更新,至此便完成了一次语义词向量子模型的训练。

需要说明的是,上述只是以任意一个训练语句的任意一个正样本为例,给出了语义词向量子模型的梯度向量的计算过程、以及第一词向量矩阵与第二词向量矩阵的更新过程。对于该任意一个训练语句中的其它正样本及负样本,也均采用上述(1)、(2)、(3)与(4)的描述过程,来得到语义词向量子模型的梯度向量,直到根据该任意一个训练语句的所有正样本与所有负样本,均完了成语义词向量子模型的梯度向量的计算、以及第一词向量矩阵与第二词向量矩阵的更新。另外,在根据上述任意一个训练语句的所有正样本与所有负样本,完成语义词向量子模型的梯度向量的计算过程、以及第一词向量矩阵与第二词向量矩阵的更新过程之后,还需要根据其它的训练语句的正样本与负样本,采用上述(1)、(2)、(3)与(4)的描述过程,进行语义词向量子模型的梯度向量的计算,并完成第一词向量矩阵与第二词向量矩阵的更新,直到根据所有的训练语句的正样本与负样本,均完成语义词向量子模型的梯度向量的计算、以及对第一词向量矩阵与第二词向量矩阵的更新。

在另一种可能的实现方式中,通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,包括:通过包括与文本分类子模型对应的语句标签、文本分类子模型的子模型类型标签、训练语句的文本类别以及分词后的第二语句文本的任一训练语句,对文本分类子模型进行训练。

其中,步骤s220包括步骤s2204(图中未标注)与步骤s2205(图中未标注,其中,

步骤s2204:根据各个训练语句中文本分类子模型的子模型类型标签,确定各个训练语句分别对应的文本分类子模型的类型。

步骤s2205:通过各个训练语句对相应类型的文本分类子模型进行训练,来更新文本词向量模型的第一词向量矩阵。

具体地,步骤s2205包括步骤s22051(图中未标注)、步骤s22052(图中未标注)、步骤s22053(图中未标注)及步骤s22054(图中未标注),其中,

步骤s22051:确定任一训练语句的目标类别与负采样类别;

步骤s22052:根据第三样本词及第四样本词,分别确定相应的隐藏层向量,第三样本词为目标类别对应的至少一个训练语句的分词后的第二语句文本,第四样本词为负采样类别对应的至少一个训练语句的分词后的第二语句文本;

步骤s22053:基于目标类别、负采样类别及隐藏层向量,确定文本分类子模型的第二梯度向量;

步骤s22054:根据第二梯度向量更新第一词向量矩阵与文本类别矩阵。

进一步地,确定任一训练语句的目标类别与负采样类别,包括:

根据任一训练语句的文本类别,确定该任一训练语句的目标类别;

计算第一平方根结果与第二平方根结果的比值,得到任一文本类别的采样比例,并依据采样比例,将任一文本类别确定为任一训练语句的负采样类别;

其中,第一平方根结果为多个训练语句中任一文本类别的总数的平方根,第二平方根结果为多个训练语句中各个文本类别的总数的平方根之和。

进一步地,根据第三样本词及第四样本词,分别确定相应的隐藏层向量,包括:

根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找各个第三样本词分别对应的第一词向量,以及在第一词向量矩阵中查找各个第四样本词分别对应的第二词向量;

将各个第一词向量依据对应维度相加,得到第一隐藏层向量;

将各个第二词向量依据对应维度相加,得到第二隐藏层向量;

隐藏层向量包括第一隐藏层向量与第二隐藏层向量。

进一步地,确定文本分类子模型的第二梯度向量,包括:

确定目标类别对应的第二梯度向量,目标类别对应的第二梯度向量包括第一词梯度向量和第一类别梯度向量;

其中,根据第二梯度向量更新第一词向量矩阵与文本类别矩阵,包括:

根据第一词梯度向量更新第一词向量矩阵,并根据第一类别梯度向量更新文本类别矩阵。

进一步地,确定文本分类子模型的第二梯度向量,包括:

确定负采样类别对应的第二梯度向量,负采样类别对应的第二梯度向量包括第二词梯度向量和第二类别梯度向量;

其中,根据第二梯度向量更新第一词向量矩阵与文本类别矩阵,包括:

根据第二词梯度向量更新第一词向量矩阵,并根据第二类别梯度向量更新文本类别矩阵。

进一步地,基于目标类别、负采样类别及隐藏层向量,确定文本分类子模型的第二梯度向量,包括:

确定第一隐藏层向量与第一类别向量之间的乘积,并对该乘积进行预定函数运算,得到第三运算结果,第一类别向量是依据文本类别与类别向量之间的预设映射关系,通过查找文本类别矩阵得到的目标类别的类别向量;

确定目标类别的类别标签与第三运算结果之间的差值,并计算预定参数与该差值的乘积,得到第四运算结果;

确定第一类别向量与第一分词总数的比值,并计算第四运算结果与该比值的乘积,得到各个第三样本词的第一词梯度向量,第一分词总数为第三样本词的总数;

根据第四运算结果与第一隐藏层向量的乘积,得到目标类别的第一类别梯度向量;

其中,第二梯度向量包括第一词梯度向量与第一类别梯度向量。

进一步地,基于目标类别、负采样类别及隐藏层向量,确定文本分类子模型的第二梯度向量,包括:

确定第二隐藏层向量与第二类别向量之间的乘积,并对该乘积进行预定函数运算,得到第五运算结果,第二类别向量是依据文本类别与类别向量之间的预设映射关系,通过查找文本类别矩阵得到的负采样类别的类别向量;

确定负采样类别的文本标签与第五运算结果之间的差值,并计算预定参数与该差值的乘积,得到第六运算结果;

确定第二类别向量与第二分词总数的比值,并计算第六运算结果与该比值的乘积,得到各个第四样本词的第二词梯度向量,第二分词总数为第四样本词的总数;

根据第六运算结果与第二隐藏层向量的乘积,得到负采样类别的第二类别梯度向量;

其中,第二梯度向量包括第二词梯度向量与第二类别梯度向量。

下面对本实现方式中涉及的关于训练文本分类子模型的有关内容进行如下详细介绍:

具体地,本实现方式中用于训练文本分类子模型的任一训练语句包括与文本分类子模型对应的语句标签、文本分类子模型的子模型类型标签,所述任一训练语句的文本类别以及分词后的第二语句文本。换言之,本实现方式中的各个训练语句中均包括相应的语句标签,该语句标签用于指示各个训练语句分别对应的子模型为语义词向量子模型或文本分类子模型,即不同训练语句通过语句标签进行区分,即通过语句标签判断该训练语句是用于训练语义词向量子模型,还是用于训练文本分类子模型。其中,训练语句的语句格式如图3所示,图3中的skip与cls为语句标签,skip指示训练语句用于训练语义词向量子模型,cls指示训练语句用于训练文本分类子模型。其中,用于训练文本分类子模型的任一训练语句包括与文本分类子模型对应的语句标签(例如第一列的clc)、文本分类子模型的子模型类型标签(例如第二列为文本分类标签,用于区分不同的文本分类模型),任一训练语句的文本类别(例如第三列的文本类别)以及分词后的第二语句文本(例如第四列的分词后的语句文本)。

进一步地,根据训练语句中包括的语句标签(clc),确定出用于训练文本分类子模型的各个训练语句后,将基于该确定出的各个训练语句对文本分类子模型进行训练。由于文本分类子模型通常包括若干类型的文本分类子模型,例如x型的文本分类子模型、y型的文本分类子模型及t型的文本分类子模型等等,因此,在基于该确定出的各个训练语句对文本分类子模型进行训练之前,需要根据各个训练语句中文本分类子模型的子模型类型标签,确定各个训练语句分别对应的文本分类子模型的类型,例如第1-3个训练语句用于训练x型的文本分类子模型、第4-8个训练语句用于训练y型的文本分类子模型等等。其中,各个类型的文本分类子模型的训练过程是相同的,针对任一类型的文本分类子模型,例如x型的文本分类子模型,具体的训练过程如下所示:

具体地,可以针对用于训练x型的文本分类子模型的所有训练语句中的任一训练语句,确定该任一训练语句的目标类别与负采样类别,其中,目标类别与负采样类别分别采用不同的类别标签进行标识,例如用类别标签“1”标识目标类别,用类别标签“0”标识负采样类别。

对于目标类别,由于各个训练语句中均包括训练语句的文本类别(例如图3中第三列的文本类别),因此,可以根据该任一训练语句的文本类别,确定该任一训练语句的目标类别,换言之,该任一训练语句的文本类别即为该训练语句的目标类别。

对于负采样类别,为了保证高比例类别样本(即出现频率较高的文本类别的样本)有较多的负样本,在选取负采样类别时,需要参考不同样本的文本类别的采样比例,采样比例的计算公式可以为:

其中,为用于训练x型的文本分类子模型的所有训练语句中,任一文本类别i的总数的平方根;为用于训练x型的文本分类子模型的所有训练语句中,各个文本类别的总数的平方根之和;ratei为任一文本类别i的采样比例。

在选取负采样类别时,可以依据上述的采样比例ratei,将该任一文本类别i确定为该任一训练语句的负采样类别,即计算第一平方根结果与第二平方根结果的比值,得到任一文本类别的采样比例,并依据该采样比例,将该任一文本类别确定为该任一训练语句的负采样类别,其中,第一平方根结果为多个训练语句中该任一文本类别的总数的平方根,第二平方根结果为多个训练语句中各个文本类别的总数的平方根之和。

进一步地,同一目标类别对应的训练语句可能有多个,同一负采样类别对应的训练语句也可能有多个,可以将确定出的目标类别对应的至少一个训练语句的分词后的语句文本(即上述的第二语句文本),分别记作第三样本词,将确定出的负采样类别对应的至少一个训练语句的分词后的语句文本,分别记作第四样本词。

进一步地,可以根据各个第三样本词及各个第四样本词,分别确定相应的隐藏层向量,其中,可以将根据各个第三样本词确定的隐藏层向量记作第一隐藏层向量,例如vector(隐藏层1),将根据各个第四样本词确定的隐藏层向量记作第二隐藏层向量,例如vector(隐藏层2),即隐藏层向量包括第一隐藏层向量与第二隐藏层向量。

进一步地,第一隐藏层向量的计算过程具体可以为:先根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找各个第三样本词分别对应的第一词向量,接着将各个第一词向量依据对应维度相加,得到第一隐藏层向量。同样的,第二隐藏层向量的计算过程具体可以为:先根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找各个第四样本词分别对应的第二词向量,接着将各个第二词向量依据对应维度相加,得到第二隐藏层向量。其中,图5为隐藏层向量计算的一个过程示意图。

进一步地,在确定相应的隐藏层向量之后,可以接着基于目标类别、负采样类别及隐藏层向量,确定x型的文本分类子模型的梯度向量(即上述的第二梯度向量)。在确定x型的文本分类子模型的梯度向量时,可以将目标类别与负采样类别分开,分别单独计算相应的梯度向量,从而得到目标类别对应的梯度向量与负采样类别对应的梯度向量,即x型的文本分类子模型的梯度向量包括目标类别对应的梯度向量与负采样类别对应的梯度向量。其中,目标类别对应的梯度向量与负采样类别对应的梯度向量均包括词梯度向量与类别梯度向量,为了便于区分及描述,可以将目标类别对应的梯度向量包括的词梯度向量与类别梯度向量,分别记作第一词梯度向量与第一类别梯度向量,将负采样类别对应的梯度向量包括的词梯度向量与类别梯度向量,分别记作第二词梯度向量与第二类别梯度向量。

进一步地,在确定目标类别对应的第一词梯度向量与第一类别梯度向量后,可以根据该第一词梯度向量更新第一词向量矩阵,并根据该第一类别梯度向量更新文本类别矩阵。同样的,在确定负采样类别对应的第二词梯度向量与第二类别梯度向量后,可以根据该第二词梯度向量更新第一词向量矩阵,并根据该第二类别梯度向量更新文本类别矩阵。

进一步地,以确定目标类别对应的梯度向量为例,简要介绍基于目标类别、负采样类别及隐藏层向量,确定x型的文本分类子模型的梯度向量的基本过程,具体如下所示:

(5)确定第一隐藏层向量与第一类别向量间的乘积,并对该乘积进行预定函数运算,得到第三运算结果。假如第一隐藏层为vector(隐藏层1),第一类别向量为vector(类别1),第一隐藏层向量与第一类别向量间的乘积记作dowval_2,则dowval_2=vector(隐藏层1)*vector(类别1),并对该乘积dowva_2l进行预定函数运算,例如进行sigmoid函数运算,从而得到第三运算结果,假如将第三运算结果记作score_2,则score_2=sigmoid(dowval_2)。

具体地,第一类别向量(例如vector(类别1))是依据文本类别与类别向量之间的预设映射关系,通过查找文本类别矩阵得到的目标类别的类别向量。其中,在对文本词向量模型(包括语义词向量子模型与文本分类子模型)进行训练之前,已经预先通过随机小数对文本类别矩阵进行相应的初始化,即得到了初始的文本类别矩阵,后续随着对文本词向量模型的训练,将不断更新该文本类别矩阵。其中,在通过随机小数对文本类别进行初始化的同时,建立语料数据集中各个文本类别到文本类别矩阵中每个类别向量的映射表(即预设映射关系)。

进一步地,在得到第三运算结果score_2之后,可以根据类别标签与该score得到相应的模型损失loss,如果类别标签为1(代表目标类别),则loss=-log(score_2),如果类别标签为0(代表负采样类别),则loss=-log(1-score_2),该loss是用来评价x型的文本分类子模型的优劣的,loss越小表示x型的文本分类子模型越好。

进一步地,还可以依据loss来更新x型的文本分类子模型的预定参数(例如learnrate_2),即通过loss与预定参数learnrate_2的配合,对x型的文本分类子模型进行调整与训练。

(6)确定目标类别的类别标签与第三运算结果之间的差值,并计算预定参数与该差值的乘积,得到第四运算结果。即计算类别标签“1”与score_2之间的差值,并计算预定参数(例如learnrate_2)与该差值的乘积,得到第四运算结果,假如将第四运算结果记作alpha,则alpha_2=learnrate_2*(1-score_2)。其中,预定参数learnrate_2最初为一个设定的参数,其会随着训练的进度逐渐减小,整个训练结束时减小为0。

(7)确定第一类别向量与第一分词总数的比值,并计算第四运算结果与该比值的乘积,得到各个第三样本词的第一词梯度向量,其中,第一分词总数为第三样本词的总数,第一分词总数可以记作num(word1),word1表示第三样本词,各个第三样本词的第一词梯度向量可以记作grad_1(word[i]),即grad_1(word[i])=alpha_2*vector(类别1)/num(word1)。

(8)根据第四运算结果与第一隐藏层向量的乘积,得到目标类别的第一类别梯度向量,假如将目标类别的第一类别梯度向量记作grad_1(类别1),则grad_1(类别1)为alpha_2与vector(隐藏层1)之间的乘积,即grad_1(类别1)=alpha_2*vector(隐藏层1)。

上述(5)、(6)、(7)与(8)即为基于目标类别确定x型的文本分类子模型的梯度向量的基本过程,也即确定目标类别对应的梯度向量的基本过程,可以看出,目标类别对应的梯度向量包括第一词梯度向量grad_1(word[i])与第一类别梯度向量grad_1(类别1),其中,在根据第二梯度向量更新第一词向量矩阵与文本类别矩阵时,可以将grad_1(word[i])更新到第一词向量矩阵,将grad_1(类别1)更新到文本类别矩阵,从而完成文本词向量模型的第一词向量矩阵的更新以及文本类别矩阵的更新。

进一步地,基于负采样类别确定x型的文本分类子模型的梯度向量的基本过程,即确定负采样类别对应的梯度向量的基本过程,与上述(5)、(6)、(7)与(8)的确定目标类别对应的梯度向量的基本过程相同,只要将目标类别涉及到的相关内容对应替换为负采样类别对应的相关即可。确定负采样类别对应的梯度向量的基本过程,可以概述为:

(9)确定第二隐藏层向量与第二类别向量间的乘积,并对该乘积进行预定函数运算,得到第五运算结果。假如第二隐藏层为vector(隐藏层2),第二类别向量为vector(类别2),第二隐藏层向量与第二类别向量间的乘积记作dowval_3,则dowval_3=vector(隐藏层2)*vector(类别2),并对该乘积dowval_3进行预定函数运算,例如进行sigmoid函数运算,从而得到第三运算结果,假如将第三运算结果记作score_3,则score_3=sigmoid(dowval_3)。

具体地,第二类别向量(例如vector(类别2))是依据文本类别与类别向量之间的预设映射关系,通过查找文本类别矩阵得到的目标类别的类别向量。在得到第三运算结果score_3之后,可以根据类别标签与该score_3得到相应的模型损失loss,如果类别标签为1(代表目标类别),则loss=-log(score_3),如果类别标签为0(代表负采样类别),则loss=-log(1-score_3),该loss是用来评价x型的文本分类子模型的优劣的,loss越小表示x型的文本分类子模型越好。其中,还可以依据loss来更新x型的文本分类子模型的预定参数(例如learnrate_3),即通过loss与预定参数learnrate_3的配合,对x型的文本分类子模型进行调整与训练。

(10)确定负采样类别的类别标签与第五运算结果之间的差值,并计算预定参数与该差值的乘积,得到第六运算结果。即计算类别标签“0”与score_3之间的差值,并计算预定参数(例如learnrate_3)与该差值的乘积,得到第六运算结果,假如将第六运算结果记作alpha_3,则alpha_3=learnrate_3*(0-score_3)。其中,预定参数learnrate_3最初为一个设定的参数,其会随着训练的进度逐渐减小,整个训练结束时减小为0。

(11)确定第二类别向量与第二分词总数的比值,并计算第六运算结果与该比值的乘积,得到各个第四样本词的第二词梯度向量,其中,第二分词总数为第四样本词的总数,第二分词总数可以记作num(word2),word2表示第四样本词,各个第四样本词的第二词梯度向量可以记作grad_2(word[i]),即grad_2(word[i])=alpha_3*vector(类别2)/num(word2)。

(12)根据第六运算结果与第二隐藏层向量的乘积,得到负采样类别的第二类别梯度向量,假如将负采样类别的第二类别梯度向量记作grad_2(类别2),则grad_2(类别2为alpha_3与vector(隐藏层2)之间的乘积,即grad_2(类别2)=alpha_3*vector(隐藏层2)。

可以看出,负采样类别对应的梯度向量包括第二词梯度向量grad_2(word[i])与第二类别梯度向量grad_2(类别2),其中,在根据第二梯度向量更新第一词向量矩阵与文本类别矩阵时,可以将grad_2(word[i])更新到第一词向量矩阵,将grad_2(类别2)更新到文本类别矩阵,从而完成文本词向量模型的第一词向量矩阵的更新以及文本类别矩阵的更新。

经过上述将grad_1(word[i])更新到第一词向量矩阵、将grad_1(类别1)更新到文本类别矩阵,以及将grad_2(word[i])更新到第一词向量矩阵、将grad_2(类别2)更新到文本类别矩阵,便完成了一次文本分类子模型的训练。

需要说明的是,上述只是以任意一个训练语句的目标类别及负采样类别为例,给出了x型的文本分类子模型的梯度向量的计算过程、以及第一词向量矩阵与文本类别矩阵的更新过程,对于其它用于训练x型的文本分类子模型的训练语句,也均需要采样上述(5)、(6)、(7)与(8)的描述过程及(9)、(10)、(11)与(12)的描述过程,来对x型的文本分类子模型进行训练,即计算x型的文本分类子模型的梯度向量,并对应更新第一词向量矩阵与文本类别矩阵。另外,对于其它类型的文本分类子模型,例如y型的文本分类子模型,也采样上述x型的文本分类子模型的训练过程。

通过上述对本申请实施例的文本词向量模型的训练方法的描述,可以看出本申请实施例的文本词向量模型(包括语义词向量子模型与文本分类子模型)的训练过程,如图6所示,可以概述为:根据训练语句(包括语句标签、文本类别及分词后的语句文本等)中的语句标签,确定各个训练语句分别对应的子模型为语义词向量子模型或文本分类子模型,确定出各个训练语句分别对应的子模型之后,即可根据上述的语义词向量子模型的训练过程(图6左侧部分)、以及文本分类子模型的训练过程(图6右侧部分)进行相应训练,最终完成整个文本词向量模型的训练。

需要说明的是,本申请实施例的文本词向量模型并不仅限于包括语义词向量子模型与文本分类子模型,还可以包括其它的子模型,例如m子模型,即在现有语义词向量子模型与文本分类子模型的基础上,还可以增加其它相应子模型,例如m子模型,此时只需在训练语句集中增加用于训练m子模型的相应训练语句即可,该增加的训练语句同样包括用于指示训练语句对应的子模型为m子模型的语句标签,例如cc,便于后续根据包括cc这一语句标签的训练语句对m子模型进行训练。

由此可见,本申请实施例的文本词向量模型易于扩展,可以在语义词向量子模型与文本分类子模型的基础上,额外增加其它子模型,此时只需简单修改相应的配置信息,并将带有新语句标签的训练语句加入已有训练语句集,即可根据新语句标签对增加的子模型进行训练。因此,本申请实施例的文本词向量模型具有高扩展性、易调参、适应大规模语料等特点。

本申请的另一个实施例提供了一种文本词向量模型的训练装置,文本词向量模型包括语义词向量子模型与文本分类子模型,如图7所示,该装置70可以包括模型确定模块71与模型训练模块72,其中,

模型确定模块71用于根据各个训练语句中包括的语句标签,确定各个训练语句分别对应的子模型,语句标签用于指示训练语句对应的子模型;

模型训练模块72用于通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,来更新文本词向量模型的第一词向量矩阵,以使得通过更新第一词向量矩阵来训练文本词向量模型。

在一种实现方式中,模型训练模块72具体用于通过包括与语义词向量子模型对应的语句标签以及分词后的第一语句文本的任一训练语句,对语义词向量子模型进行训练;以及,用于通过包括与文本分类子模型对应的语句标签、文本分类子模型的子模型类型标签、训练语句的文本类别以及分词后的第二语句文本的任一训练语句,对文本分类子模型进行训练。

在另一种实现方式中,模型训练模块72包括样本生成子模块721、第一确定子模块722与更新子模块723,如图8所示,其中,

样本生成子模块721用于根据各个训练语句中分词后的第一语句文本,分别生成相应的训练样本;

第一确定子模块722用于基于训练样本,确定语义词向量子模型的第一梯度向量;

更新子模块723用于根据第一梯度向量更新第一词向量矩阵与第二词向量矩阵,语义词向量子模型包括第一词向量矩阵与第二词向量矩阵。

在另一种实现方式中,样本生成子模块721包括正样本生成单元7211与负样本生成单元7212,如图8所示,其中,

正样本生成单元7211用于对任一训练语句中分词后的第一语句文本中的任一分词,通过遍历任一分词在分词后的第一语句文本中前后预设个数的分词,生成任一分词对应的正样本;

负样本生成单元7212用于对任一训练语句中分词后的第一语句文本中的任一分词,通过负采样的方式生成任一分词对应的负样本;

其中,任一正样本或任一负样本均包括第一样本词、第二样本词及样本标签,样本标签标识训练样本为正样本或负样本。

在另一种实现方式中,第一确定子模块722包括词向量查找单元7221与梯度向量确定单元7222,如图8所示,其中,

词向量查找单元7221用于针对任一正样本或任一负样本,根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找第一样本词的词向量,并在第二词向量矩阵中查找第二样本词的词向量;

梯度向量确定单元7222用于根据第一样本词的词向量、第二样本词的词向量及相应的样本标签,确定语义词向量子模型的第一梯度向量。

在另一种实现方式中,梯度向量确定单元7222具体用于确定第一样本词的词向量与第二样本词的词向量间的乘积,并对该乘积进行预定函数运算,得到第一运算结果;以及确定相应的样本标签与第一运算结果之间的差值,并计算预定参数与该差值的乘积,得到第二运算结果;以及根据第二运算结果与第二样本词的词向量之间的乘积,得到第一样本词的梯度向量;以及根据第二运算结果与第一样本词的词向量之间的乘积,得到第二样本词的梯度向量;

其中,第一梯度向量包括第一样本词的梯度向量与第二样本词的梯度向量。

在另一种实现方式中,更新子模块723具体用于根据第一样本词的梯度向量更新第一词向量矩阵;以及根据第二样本词的梯度向量更新第二词向量矩阵。

在另一种实现方式中,模型训练模块包括第二确定子模块724与训练子模块725,如图8所示,其中,

第二确定子模块724用于根据各个训练语句中文本分类子模型的子模型类型标签,确定各个训练语句分别对应的文本分类子模型的类型;

训练子模块725用于通过各个训练语句对相应类型的文本分类子模型进行训练,来更新文本词向量模型的第一词向量矩阵。

在另一种实现方式中,训练子模块725包括第一确定单元7251、第二确定单元7252、第三确定单元7253与更新单元7254,如图8所示,其中,

第一确定单元7251用于确定任一训练语句的目标类别与负采样类别;

第二确定单元7252用于根据第三样本词及第四样本词,分别确定相应的隐藏层向量,第三样本词为目标类别对应的至少一个训练语句的分词后的第二语句文本,第四样本词为负采样类别对应的至少一个训练语句的分词后的第二语句文本;

第三确定单元7253用于基于目标类别、负采样类别及隐藏层向量,确定文本分类子模型的第二梯度向量;

更新单元7254用于根据第二梯度向量更新第一词向量矩阵与文本类别矩阵。

在另一种实现方式中,第一确定单元7251具体用于根据任一训练语句的文本类别,确定该任一训练语句的目标类别;以及计算第一平方根结果与第二平方根结果的比值,得到任一文本类别的采样比例,并依据采样比例,将任一文本类别确定为任一训练语句的负采样类别;

其中,第一平方根结果为多个训练语句中任一文本类别的总数的平方根,第二平方根结果为多个训练语句中各个文本类别的总数的平方根之和。

在另一种实现方式中,第二确定单元7252具体用于根据样本词与词向量之间的预设映射关系,在第一词向量矩阵中查找各个第三样本词分别对应的第一词向量,以及在第一词向量矩阵中查找各个第四样本词分别对应的第二词向量;以及将各个第一词向量依据对应维度相加,得到第一隐藏层向量;以及将各个第二词向量依据对应维度相加,得到第二隐藏层向量;

隐藏层向量包括第一隐藏层向量与第二隐藏层向量。

在另一种实现方式中,第三确定单元7253具体用于确定目标类别对应的第二梯度向量,目标类别对应的第二梯度向量包括第一词梯度向量和第一类别梯度向量;

其中,更新单元7254具体用于根据第一词梯度向量更新第一词向量矩阵,并根据第一类别梯度向量更新文本类别矩阵。

在另一种实现方式中,第三确定单元7253具体用于确定负采样类别对应的第二梯度向量,负采样类别对应的第二梯度向量包括第二词梯度向量和第二类别梯度向量;

其中,更新单元7254具体用于根据第二词梯度向量更新第一词向量矩阵,并根据第二类别梯度向量更新文本类别矩阵。

在另一种实现方式中,第三确定单元7253具体用于确定第一隐藏层向量与第一类别向量之间的乘积,并对该乘积进行预定函数运算,得到第三运算结果,第一类别向量是依据文本类别与类别向量之间的预设映射关系,通过查找文本类别矩阵得到的目标类别的类别向量;以及确定目标类别的类别标签与第三运算结果之间的差值,并计算预定参数与该差值的乘积,得到第四运算结果;以及确定第一类别向量与第一分词总数的比值,并计算第四运算结果与该比值的乘积,得到各个第三样本词的第一词梯度向量,第一分词总数为第三样本词的总数;以及根据第四运算结果与第一隐藏层向量的乘积,得到目标类别的第一类别梯度向量;

其中,第二梯度向量包括第一词梯度向量与第一类别梯度向量。

在另一种实现方式中,第三确定单元7253具体用于确定第二隐藏层向量与第二类别向量之间的乘积,并对该乘积进行预定函数运算,得到第五运算结果,第二类别向量是依据文本类别与类别向量之间的预设映射关系,通过查找文本类别矩阵得到的负采样类别的类别向量;以及确定负采样类别的文本标签与第五运算结果之间的差值,并计算预定参数与该差值的乘积,得到第六运算结果;以及确定第二类别向量与第二分词总数的比值,并计算第六运算结果与该比值的乘积,得到各个第四样本词的第二词梯度向量,第二分词总数为第四样本词的总数;以及根据第六运算结果与第二隐藏层向量的乘积,得到负采样类别的第二类别梯度向量;

其中,第二梯度向量包括第二词梯度向量与第二类别梯度向量。

本申请实施例提供的装置,与现有技术相比,根据各个训练语句中包括的语句标签,确定各个训练语句分别对应的子模型,为后续基于各个训练语句分别对相应的子模型进行训练提供前提保障,通过语句标签指示各个训练语句分别对应的子模型为语义词向量子模型或文本分类子模型,使得能够准确判断混合在一起的各个训练语句分别对应的子模型,提高了训练语句与子模型之间的匹配准确度;通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,来更新文本词向量模型的第一词向量矩阵,使得每当完成语义词向量子模型或文本分类子模型的一次训练后,能够第一时间更新语义词向量子模型与文本分类子模型所共用的第一词向量矩阵,从而通过对第一词向量矩阵的更新,实现了对文本词向量模型的训练,进而使得词向量训练方法与文本分类方法之间的紧密衔接与融合,增强了词向量的表征能力。

本申请的另一个实施例提供了一种电子设备,如图9所示,图9所示的电子设备900包括:处理器901和存储器903。其中,处理器901和存储器903相连,如通过总线902相连。进一步地,电子设备900还可以包括收发器904。需要说明的是,实际应用中收发器904不限于一个,该电子设备900的结构并不构成对本申请实施例的限定。

其中,处理器901应用于本申请实施例中,用于实现图7或图8所示的模型确定模块与模型训练模块的功能。

处理器901可以是cpu,通用处理器,dsp,asic,fpga或者其它可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器901也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

总线902可包括一通路,在上述组件之间传送信息。总线902可以是pci总线或eisa总线等。总线902可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器903可以是rom或可存储静态信息和指令的其它类型的静态存储设备,ram或者可存储信息和指令的其它类型的动态存储设备,也可以是eeprom、cd-rom或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。

存储器903用于存储执行本申请方案的应用程序代码,并由处理器901来控制执行。处理器901用于执行存储器903中存储的应用程序代码,以实现图7或图8所示实施例提供的文本词向量模型的训练装置的动作。

本申请实施例提供的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,与现有技术相比,可实现:根据各个训练语句中包括的语句标签,确定各个训练语句分别对应的子模型,为后续基于各个训练语句分别对相应的子模型进行训练提供前提保障,通过语句标签指示各个训练语句分别对应的子模型为语义词向量子模型或文本分类子模型,使得能够准确判断混合在一起的各个训练语句分别对应的子模型,提高了训练语句与子模型之间的匹配准确度;通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,来更新文本词向量模型的第一词向量矩阵,使得每当完成语义词向量子模型或文本分类子模型的一次训练后,能够第一时间更新语义词向量子模型与文本分类子模型所共用的第一词向量矩阵,从而通过对第一词向量矩阵的更新,实现了对文本词向量模型的训练,进而使得词向量训练方法与文本分类方法之间的紧密衔接与融合,增强了词向量的表征能力。

本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现实施例一所示的方法。与现有技术相比,根据各个训练语句中包括的语句标签,确定各个训练语句分别对应的子模型,为后续基于各个训练语句分别对相应的子模型进行训练提供前提保障,通过语句标签指示各个训练语句分别对应的子模型为语义词向量子模型或文本分类子模型,使得能够准确判断混合在一起的各个训练语句分别对应的子模型,提高了训练语句与子模型之间的匹配准确度;通过各个训练语句对相应的语义词向量子模型和文本分类子模型分别进行训练,来更新文本词向量模型的第一词向量矩阵,使得每当完成语义词向量子模型或文本分类子模型的一次训练后,能够第一时间更新语义词向量子模型与文本分类子模型所共用的第一词向量矩阵,从而通过对第一词向量矩阵的更新,实现了对文本词向量模型的训练,进而使得词向量训练方法与文本分类方法之间的紧密衔接与融合,增强了词向量的表征能力。

本申请实施例提供的计算机可读存储介质适用于上述方法的任一实施例。在此不再赘述。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其它的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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