CN111291165B - 训练词向量嵌入模型的方法及装置 - Google Patents
训练词向量嵌入模型的方法及装置 Download PDFInfo
- Publication number
- CN111291165B CN111291165B CN202010384236.5A CN202010384236A CN111291165B CN 111291165 B CN111291165 B CN 111291165B CN 202010384236 A CN202010384236 A CN 202010384236A CN 111291165 B CN111291165 B CN 111291165B
- Authority
- CN
- China
- Prior art keywords
- word
- context
- word vector
- matrix
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Machine Translation (AREA)
Abstract
本说明书实施例提供一种训练词向量嵌入模型的方法,该方法包括多次迭代更新,其中任一次包括:先从训练语句对应的词语序列中,确定中心词语和对应的多个上下文词语;接着,根据第一词向量矩阵,确定该中心词语对应的中心词向量,以及根据第二词向量矩阵,确定该多个上下文词语对应的多个上下文词向量;然后,基于该多个上下文词向量彼此之间的相似度,确定其对应的多个注意力权重;再利用该多个注意力权重,对该多个上下文词向量进行加权求和,得到中心词语的上下文表示向量;再然后,计算该中心词向量与该上下文表示向量之间的第一相似度;最后,至少以增大该第一相似度为目标,更新上述第一词向量矩阵和第二词向量矩阵。
Description
技术领域
本说明书实施例涉及将机器学习技术应用到文本处理领域,具体地,涉及一种训练词向量嵌入模型的方法及装置。
背景技术
词向量技术通过将词语映射为实数向量,解决计算机难以理解人类语言语义的问题。比如说,人可以轻易地判断出“猫”和“猫咪”是两个语义很接近的词语,但计算机很难刻画出这两个词语的语义相似度。对此,可以利用词向量算法为“猫”和“猫咪”各生成一个词向量,进而通过计算词向量之间的相似度,确定“猫”和“猫咪”之间的语义相似度。因此,词向量算法的准确度决定了计算机的语义理解能力。
然而,目前的词向量算法较为单一,难以满足多种需求,例如,在为大批量词语快速生成词向量的同时,保证确定出的词向量具有较高的准确度。因此,需要一种方案,可以快速、准确地确定出海量词语的词向量。
发明内容
在本说明书描述的训练词向量嵌入模型的方法中,借鉴词向量训练框架CBOW,并引入自注意力机制,可以实现在快速训练出海量词向量的同时,有效提高训练出的词向量的准确度。
根据第一方面,提供一种训练词向量嵌入模型的方法,所述词向量嵌入模型包括,第一词向量矩阵和第二词向量矩阵;所述方法包括多次迭代更新,其中任一次迭代更新包括:从训练语句对应的词语序列中,确定中心词语和所述中心词语的k个上下文词语,其中k为大于1的整数;根据第一词向量矩阵,确定所述中心词语对应的中心词向量;根据第二词向量矩阵,确定所述k个上下文词语对应的k个上下文词向量;基于所述k个上下文词向量彼此之间的相似度,确定其对应的k个注意力权重;利用所述k个注意力权重,对所述k个上下文词向量进行加权求和,得到所述中心词语的上下文表示向量;计算所述中心词向量与所述上下文表示向量之间的第一相似度;至少以增大所述第一相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵;所述多次迭代更新后的第一词向量矩阵用于查询目标词语的目标词向量。
在一个实施例中,在所述多次迭代更新之前,所述方法还包括:获取训练语料,其中包括多条训练语句;对各条训练语句进行分词,根据分词结果,得到所述训练语料对应的词汇表,以及各训练语句对应的所述词语序列;根据所述词汇表,初始化所述第一词向量矩阵和第二词向量矩阵,其中每个矩阵的一行或一列对应于所述词汇表中的一个词语。
在一个具体的实施例中,其中根据分词结果,得到所述训练语料对应的词汇表,包括:根据所述分词结果进行词频统计,得到多个不同分词的词频;从所述多个不同分词中去除词频低于预定阈值的低频分词,得到所述词汇表。
在一个实施例中,从训练语句对应的词语序列中,确定中心词语和所述中心词语的k个上下文词语,包括:采用预设宽度的滑窗,沿所述词语序列滑动,将任一时刻下,所述滑窗中心位置对应的词语确定为所述中心词语,将所述滑窗内除所述中心词语之外的词语,作为所述k个上下文词语。
在一个实施例中,基于所述k个上下文词向量彼此之间的相似度,确定其对应的k个注意力权重,包括:基于所述k个上下文词向量,确定k阶相似度方阵,其中第i行第j列元素表示第i个上下文词向量与第j个上下文词向量之间的相似度,其中i和j为不大于k的正整数;对所述k阶相似度方阵中的各行分别进行归一化处理,得到k阶自注意力分数方阵;分别求取所述k阶自注意力分数方阵中各列的平均值,得到所述k个自注意力权重。
在一个具体的实施例中,基于所述k个上下文词向量,确定k阶相似度方阵,包括:计算所述第i个上下文词向量和第j个上下文词向量之间的点积,作为所述k阶相似度方阵中的第i行第j列元素。
在另一个具体的实施例中,其中对所述k阶相似度方阵中的各行分别进行归一化处理,得到k阶自注意力分数方阵,包括:利用softmax函数对所述各行分别进行归一化处理,得到所述k阶自注意力分数方阵。
在一个实施例中,其中计算所述中心词向量与所述上下文表示向量之间的第一相似度,包括:计算所述中心词向量和所述上下文表示向量之间的点积,作为所述第一相似度。
在一个实施例中,其中至少以增大所述第一相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵,包括:从所述第一词向量矩阵中随机抽取某个第一词向量;计算所述某个第一词向量和所述上下文表示向量之间的第二相似度;以增大所述第一相似度和减小所述第二相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵。
根据第二方面,提供一种训练词向量嵌入模型的装置,所述词向量嵌入模型包括,第一词向量矩阵和第二词向量矩阵;所述装置包括迭代更新单元,用于执行多次迭代更新,所述迭代更新单元通过以下模块执行其中任一次迭代更新:
词语确定模块,配置为从训练语句对应的词语序列中,确定中心词语和所述中心词语的k个上下文词语,其中k为大于1的整数。词向量确定模块,配置为根据第一词向量矩阵,确定所述中心词语对应的中心词向量;根据第二词向量矩阵,确定所述k个上下文词语对应的k个上下文词向量。权重确定模块,配置为基于所述k个上下文词向量彼此之间的相似度,确定其对应的k个注意力权重。加权求和模块,配置为利用所述k个注意力权重,对所述k个上下文词向量进行加权求和,得到所述中心词语的上下文表示向量。相似度计算模块,配置为计算所述中心词向量与所述上下文表示向量之间的第一相似度。矩阵更新模块,配置为至少以增大所述第一相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵;所述多次迭代更新后的第一词向量矩阵用于查询目标词语的目标词向量。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所描述的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所描述的方法。
在本说明书实施例披露的上述方法和装置中,通过引入自注意力机制,确定多个上下文词向量的自注意力权重,实现对多个上下文词向量之间的相互影响、内在关联的刻画,进而求取多个上下文词向量的加权向量作为中心词的上下文表示向量,如此,相较于直接求取多个上下文词向量的平均向量作为上下文表示向量,可以提高上下文表示向量的准确度,从而提高更新后的词向量矩阵的准确度,进而提高最终确定出的词嵌入向量的准确度。
附图说明
为了更清楚地说明本说明书披露的多个实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书披露的多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的词嵌入模型中两个词向量矩阵的示意图;
图2示出根据一个实施例的基于词语序列选取中心词和上下文词的示意图;
图3示出根据一个实施例的基于图2中的选取词和图1中的词向量矩阵训练词嵌入模型的架构示意图;
图4示出根据一个实施例的训练词向量嵌入模型的方法中的训练语料处理流程示意图;
图5示出根据一个实施例的训练词向量嵌入模型的方法中的迭代更新流程示意图;
图6示出根据一个实施例的训练词向量嵌入模型的装置结构示意图。
具体实施方式
下面结合附图,对本说明书披露的多个实施例进行描述。
本说明书实施例披露一种训练词向量嵌入模型的方法。下面,首先对发明人提出所述方法的发明构思进行介绍,具体如下:
词向量算法用于将一个词语映射到一个固定维度的向量上,使得该向量的数值可以表示该词语的语义信息。目前训练词向量的常见框架有两种,分别为Skigram和CBOW(Continuous Bag-of-Words Model,连续词袋模型)。基于Skigram框架确定出的词向量准确度更高,但训练速度会慢很多倍。在一些数据量非常大的场景下,更需要CBOW框架,但基于其确定出的词向量准确度有限。
基于此,发明人提出一种训练词向量嵌入模型的方法,通过借鉴CBOW框架,并引入自注意力(SelfAttention)机制,实现在快速完成超大规模文本的词向量训练的同时,有效提高训练出的词向量的准确度。
具体地,上述词向量嵌入模型中包括针对相同的多个词语建立的两个词向量矩阵,为便于区分描述,分别称为第一词向量矩阵和第二词向量矩阵。在一个实施例中,图1示出根据一个实施例的词嵌入模型中两个词向量矩阵的示意图,图1中示出对应于N(为大于1的整数)个词语的第一词向量矩阵和第二词向量矩阵。在训练上述词向量嵌入模型的方法中,包括多次迭代更新,在每次迭代更新中都对第一词向量矩阵和第二词向量矩阵进行更新,进一步地,在迭代预定次数或者迭代至收敛后,将最后一次迭代中更新后的第一词向量矩阵包含的N个词向量,确定为N个词语最终的词向量。
在一个实施例中,对于上述多次迭代更新中的任意一次可以包括:首先,从训练语句对应的词语序列中,选取中心词和对应的多个上下文词语,例如,从图2中示出词语序列中选取中心词t和2b个上下文词,该2b个上下文词对应集合{上下文词i|i∈[t-b,t+b],i≠t};接着,从第一词向量矩阵中获取中心词的第一词向量,作为中心词向量,以及从第二词向量矩阵中获取多个上下文词的多个第二词向量,作为多个上下文词向量;然后,引入自注意力机制,基于多个上下文词向量,对多个上下文词进行自注意力打分,进而得到其中各个上下文词的权重,并利用该权重对多个上下文词向量进行加权求和,得到针对中心词的上下文表示向量,例如,如图3所示,基于2b个上下文词向量,确定2b个自注意力权重,再利用2b个自注意力权重对2b个上下文词向量进行加权求和,得到中心词的上下文表示向量;最后,基于上述中心词向量和上下文表示向量,确定损失,用于更新第一词向量矩阵和第二词向量矩阵,例如,如图3所示,利用中心词向量和上下文表示向量计算训练损失,用于调整两个词向量矩阵。如此,可以实现对两个词向量矩阵的迭代更新。
采用上述方法,通过引入自注意力机制,确定多个上下文词向量的自注意力权重,实现对多个上下文词向量之间的相互影响、内在关联的刻画,进而求取多个上下文词向量的加权向量作为中心词的上下文表示向量,如此,相较于直接求取多个上下文词向量的平均向量作为上下文表示向量,可以提高上下文表示向量的准确度,从而提高更新后的词向量矩阵的准确度,进而提高最终确定出的词嵌入向量的准确度。
下面结合具体的实施例,描述上述方法的实施步骤。具体地,上述方法的执行主体可以为任何具有计算、处理能力的装置、设备、系统、服务器集群等。在上述方法中,首先包括,通过处理训练语料,建立词汇表,进而初始化对应的第一词向量矩阵和第二词向量矩阵,并且,确定多个训练语句对应的多个词语序列,用于后续对第一词向量矩阵和第二词向量矩阵进行多次迭代更新。为便于理解,先对训练语料的处理进行介绍,再对多次迭代更新的过程进行介绍。
图4示出根据一个实施例的训练词向量嵌入模型的方法中的训练语料处理流程示意图。如图4所示,所述训练语料的处理流程中包括以下步骤:
步骤S410,获取训练语料,其中包括多条训练语句;步骤S420,对各条训练语句进行分词,根据分词结果,得到所述训练语料对应的词汇表,以及各训练语句对应的所述词语序列;步骤S430,根据所述词汇表,初始化所述第一词向量矩阵和第二词向量矩阵,其中每个矩阵的一行或一列对应于所述词汇表中的一个词语。
以上步骤具体如下:
首先在步骤S410,获取训练语料,其中包括多条训练语句。
在一个实施例中,可以从网站中爬取大量文本作为训练语料。在另一个实施例中,可以获取工具书,如词典等的电子文本作为训练语料。进一步地,在一个实施例中,可以对训练语料进行断句处理,得到上述多条训练语句。其中断句处理可以为根据常用标点符号,如逗号、句号、分号、感叹号等,对文本进行断句。在另一个实施例中,可以对一篇文本中的符号进行去除,将保留的文字作为一条训练语句。在一个具体的实施例中,对于从社交网络平台爬取的用户动态,可以去除其中的标签、标签、空格等符号,将剩余文字作为对应的训练语句。
如此,可以获取训练语料中包括的多条训练语句。接着,在步骤S420,对多条训练语句进行分词,并根据分词结果确定出词汇表和多条词语序列。
具体地,分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。本步骤中的分词可以采用已有的分词方式或分词工具实现。例如,其中分词方式可以包括正向最大匹配、最小切分、基于N元文法模型(N-gram)的分词等,其中分词工具可以包括THULAC词法工具、NLPIR分词系统等。
上述分词结果中包括对各条训练语句进行分词后得到的多个分词。基于此,可以确定出多个不同的分词,构建上述词汇表。同时,对各条训练语句进行分词,可以得到对应的分词序列,作为词语序列,由此得到多条训练语句对应的多条词语序列。
在一个实施例中,根据分词结果中包含的多个分词,可以进行词频统计,得到多个不同分词的词频,并将其中词频低于预定阈值的低频分词进行去除,利用保留下来的分词构建上述词汇表。需要说明,上述词频是指词语的出现次数,其中预定阈值可以根据实际需要设定,如10或20等。在另一个实施例中,还可以根据词频对不同分词进行排名,然后将排在最末几位(如倒数5或10位)的分词进行抛弃处理,利用剩余分词构建上述词汇表。相应地,对于上述各个分词序列,同样需要去除上述低频词,得到对应的词语序列。由此可以得到去除低频词后的多条词语序列。
以上,可以确定出词汇表和多条词语序列。需要理解,词语序列中的词语都存在于词汇表中,而词汇表中的词语,会出现在若干词语序列中,也可能在某条词语序列中出现多次。
然后在步骤S430,根据所述词汇表,初始化所述第一词向量矩阵和第二词向量矩阵,其中每个矩阵的一行或一列对应于所述词汇表中的一个词语。
具体地,可以将词汇表中的每个词语映射到固定维度的向量,作为该每个词语的词向量,因此,词汇表中各个词语对应的词向量,可以共同构成词向量矩阵。假定词汇表中包括N个词语,将其中每个词语映射到M维向量上,可以得到N*M维矩阵。参见图1,其中建立两个词向量矩阵,分别为第一词向量矩阵和第二词向量矩阵。需要理解,词向量可以作为矩阵的行向量或列向量,相应地,矩阵中的一行或一列对应于词汇表中的一个词语。
在构建第一词向量矩阵和第二词向量矩阵的同时,可以完成对其的初始化。在一个实施例中,可以采用随机算法,对其中的矩阵元素进行初始赋值。在另一个实施例中,可以由工作人员任意指定矩阵元素的具体数值,例如,对于图1中示出的和,可以将其中第i(i∈[1,N])行第i个元素设置为1,其余元素设置为0。需要理解,初始化后的第一词向量矩阵和第二词向量矩阵可以相同,也可以不同,在后续迭代更新过程中,二者通常会出现差异。如此,可以是实现对两个词向量矩阵的初始化。
由上,基于图4中示出的步骤,可以根据训练语料,确定出各条训练语句对应的词语序列,同时,确定出词汇表,进而完成第一词向量矩阵和第二词向量矩阵的构建和初始化。
进一步地,在上述词向量嵌入模型的训练方法中,可以基于各条训练语句对应的词语序列和初始化后的两个词向量矩阵,进行多次迭代更新。具体地,图5示出根据一个实施例的训练词向量嵌入模型的方法中的迭代更新流程示意图。如图5所示,其中任一次迭代更新可以包括以下步骤:
步骤S510,从训练语句对应的词语序列中,确定中心词语和所述中心词语的k个上下文词语,其中k为大于1的整数;步骤S520,根据第一词向量矩阵,确定所述中心词语对应的中心词向量;根据第二词向量矩阵,确定所述k个上下文词语对应的k个上下文词向量;步骤S530,基于所述k个上下文词向量彼此之间的相似度,确定其对应的k个注意力权重;步骤S540,利用所述k个注意力权重,对所述k个上下文词向量进行加权求和,得到所述中心词语的上下文表示向量;步骤S550,计算所述中心词向量与所述上下文表示向量之间的第一相似度;步骤S560,至少以增大所述第一相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵;所述多次迭代更新后的第一词向量矩阵用于查询目标词语的目标词向量。
以上步骤具体如下:
首先,在步骤S510,从训练语句对应的词语序列中,确定中心词语和所述中心词语的k个上下文词语。
在一个实施例中,本步骤中可以包括:采用预设宽度的滑窗,沿所述词语序列滑动,将任一时刻下,所述滑窗中心位置对应的词语确定为所述中心词语,将所述滑窗内除所述中心词语之外的词语,作为所述k个上下文词语。在一个具体的实施例中,如图2所示,可以将滑窗宽度设定为2b+1,相应地,可以将任一时刻下,滑窗中心位置,2b+1个词语中的第b+1个词语作为忠祠内词语,而将其他的2b个词语,作为k(=2b)个上下文词语。需要说明,对于其中采用的滑窗取词方式,可以依次将词语序列中的各个词语顺序作为中心词,对于滑窗内词语缺省的情况,比如滑窗以词语序列的首词为滑窗中心,此时将首词作为中心词后,其在词语序列中不存在在先的上文词语,此时,可以利用预设向量进行补足,比如,将b个预设向量作为首词的b个上文词语的词向量,其余情况可以类推。如此,可以通过滑窗取词的方式,确定出中心词语和对应的k个上下文词语。
在另一个实施例中,可以从词语序列中随机选取某个词语作为中心词,再选取与其邻近的k个词语作为k个上下文词语。例如,假定k为3,此时,在选取中心词后,可以选取与其在前邻近的1个词语和在后邻近的2个词语,作为其3个上下文词语。
以上,可以基于词语序列,确定中心词和其k个上下文词语。接着,在步骤S520,根据第一词向量矩阵,确定所述中心词语对应的中心词向量;并且,根据第二词向量矩阵,确定k个上下文词语对应的k个上下文词向量。
具体地,如前所述,第一词向量矩阵和第二词向量矩阵是基于词汇表而进行初始化的,词语表中的词语与第一词向量矩阵中第一词向量的第一映射关系,以及与第二词向量矩阵中第二词向量的第二映射关系,随之建立。而中心词语和上下文词语都是词汇表中的词语,由此,可以根据第一映射关系,确定中心词对应的第一词向量,作为上述中心词向量,并且,根据第二映射关系,确定k个上下文词语对应的k个第二词向量,作为上述k个上下文词向量。根据一个实施例,可以在图1示出的词汇表中查找中心词,并确定其在词汇表中的下标(如,下标2),再根据该下标在第一词向量矩阵中查找到对应的第一词向量(如,向量w2)。同时,还可以在图1示出的词汇表中查找k个上下文词,并确定对应的k个下标(如其中包括下标N),再根据k个下标在第二词向量矩阵中查找到对应的k个第二词向量(如其中包括向量cN)。
如此,可以确定出中心词对应的中心词向量和k个上下文词语对应的k个上下文词向量。然后,在步骤S530,基于其中k个上下文词向量彼此之间的相似度,确定其对应的k个注意力权重。
在一个实施例中,本步骤中可以包括:首先,基于所述k个上下文词向量,确定k阶相似度方阵;接着,对所述k阶相似度方阵中的各行分别进行归一化处理,得到k阶自注意力分数方阵;然后,分别求取所述k阶自注意力分数方阵中各列的平均值,得到所述k个自注意力权重。
进一步地,对于上述k阶相似度方阵,其中第i行第j列元素表示第i个上下文词向量与第j个上下文词向量之间的相似度,需要理解,i和j为不大于k的正整数。在具体实施例中,可以计算这两个词向量之间的点积、欧式距离或余弦距离,作为二者之间的相似度,进而将其确定为k阶相似度方阵中的第i行第j列元素。
对于上述归一化处理,在一个具体的实施例中,可以利用softmax函数对k阶相似度方阵中的各行分别进行归一化处理。如此可以得到k阶自注意力分数方阵,进而求取其中各列分数的平均值,作为对应的自主力权重。需要理解,k列中的各列分别对应各个上下文词向量,由此可以得到与k个上下文词向量对应的k个自注意力权重。
在另一个实施例中,本步骤中可以包括:首先,计算k个上下文词向量中任意两个词向量之间的相似度,由此可以得到个相似度,其中是排列组合中的符号,表示从k个不同元素中任取2个作为一组,可以得到的组数;接着,针对其中任一个上下文词向量,计算其他词向量与其之间的相似度的和值,进而得到k个和值;然后,对k个和值进行归一化处理,得到上述k个自注意力权重。需要说明,对于其中相似度计算和归一化处理的描述,可以参见前述中的相关描述,不作赘述。
由上可以得到与k个上下文词向量对应的k个自注意力权重。接着在步骤S540,利用所述k个注意力权重,对所述k个上下文词向量进行加权求和,得到所述中心词语的上下文表示向量。在一个实施例中,参见图3,其中示出2b个上下文词向量和2b个自注意力权重,由此可以计算出中心词的上下文表示向量:
需要说明,式(1)中的下标i是基于图2中滑窗内词语的顺序排列而言的,或者说,是基于k个上下文词语而言的,不同于图1中词汇表中的词语下标。另外,是中心词的下标,表示,除中心词以外,依次指向每一个上下文词语;表示k个上下文词向量中的第i个上下文词向量,表示对应的第k个自注意力权重。
由此,通过加权求和,可以得到中心词语的上下文表示向量。然后在步骤S550,计算所述中心词向量与所述上下文表示向量之间的第一相似度。在具体实施例中,可以计算中心词向量和上下文表示向量之间的点积、或余弦距离或欧式距离等,作为所述第一相似度。基于此,在步骤S560,至少以增大所述第一相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵。
在一个实施例中,本步骤中可以包括:从所述第一词向量矩阵中随机抽取某个第一词向量,计算所述某个第一词向量和所述上下文表示向量之间的第二相似度;然后,以增大所述第一相似度和减小所述第二相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵。如此,可以进一步提高更新后的词向量矩阵的准确度。需要说明,对于其中第二相似度的计算,可以采用对计算向量间相似度的描述,在此不作赘述。
在一个具体的实施例中,其中训练损失可以采用以下公式计算:
上式(2)中,表示上述训练损失,表示上述中心词向量,表示上述中心词的上下文表示向量,表示与之间的点积,表示上述随机抽取的某个第一词向量,表示与之间的点积,是一个超参数,例如可以设定为0.01等,表示常用于神经网络中的激活函数,如tanh函数或sigmoid函数等。如此,可以基于第一相似度和第二相似度确定训练损失,进而根据训练损失更新两个词向量矩阵。
需要说明,根据训练损失更新两个词向量矩阵可以包括:根据训练损失,确定两个词向量矩阵中相关元素的损失梯度,然后利用该相关元素中各个元素的当前值,减去对应的损失梯度与学习步长(超参,如设定为0.05)之间的乘积,得到更新后的元素值,从而实现对两个词向量矩阵的更新。
以上,可以实现对上述第一词向量矩阵和第二词向量矩阵的更新。需要说明,上述步骤S510至步骤S560,描述任一次迭代更新的过程。通过重复执行上述步骤S510至步骤S560,可以实现多次迭代更新,进而将多次迭代更新后的第一词向量矩阵作为上述词汇表对应的词向量查询矩阵,用于查询目标词语的目标词向量。在一个具体的实施例中,某个搜索引擎在接收到用户对目标词语的查询指令后,可以从上述词向量查询矩阵中查询出该目标词语对应的目标词向量,进而根据目标词向量,从内容数据库中确定用于向用户反馈的相关内容。
综上,采用本说明书实施例披露的训练词向量嵌入模型的方法,通过引入自注意力机制,确定多个上下文词向量的自注意力权重,实现对多个上下文词向量之间的相互影响、内在关联的刻画,进而求取多个上下文词向量的加权向量作为中心词的上下文表示向量。如此,相较于直接求取多个上下文词向量的平均向量作为上下文表示向量,可以提高上下文表示向量的准确度,从而提高更新后的词向量矩阵的准确度,进而提高最终确定出的词嵌入向量的准确度。
与上述训练方法相对应的,本说明书实施例还披露一种训练装置。具体地,图6示出根据一个实施例的训练词向量嵌入模型的装置结构示意图,其中词向量嵌入模型中包括第一词向量矩阵和第二词向量矩阵,该装置可以通过任何具有计算、处理能力的计算节点或服务器集群实现。
如图6所示,所述装置600包括迭代更新单元610,用于执行多次迭代更新,所述迭代更新单元通过以下模块执行其中任一次迭代更新:
词语确定模块611,配置为从训练语句对应的词语序列中,确定中心词语和所述中心词语的k个上下文词语,其中k为大于1的整数。
词向量确定模块612,配置为根据第一词向量矩阵,确定所述中心词语对应的中心词向量;根据第二词向量矩阵,确定所述k个上下文词语对应的k个上下文词向量。
权重确定模块613,配置为基于所述k个上下文词向量彼此之间的相似度,确定其对应的k个注意力权重。
加权求和模块614,配置为利用所述k个注意力权重,对所述k个上下文词向量进行加权求和,得到所述中心词语的上下文表示向量。
相似度计算模块615,配置为计算所述中心词向量与所述上下文表示向量之间的第一相似度。
矩阵更新模块616,配置为至少以增大所述第一相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵;所述多次迭代更新后的第一词向量矩阵用于查询目标词语的目标词向量。
在一个实施例中,上述装置600还包括:语料获取单元620,配置为获取训练语料,其中包括多条训练语句;分词单元630,配置为对各条训练语句进行分词,根据分词结果,得到所述训练语料对应的词汇表,以及各训练语句对应的所述词语序列;初始化单元640,配置为根据所述词汇表,初始化所述第一词向量矩阵和第二词向量矩阵,其中每个矩阵的一行或一列对应于所述词汇表中的一个词语。
在一个具体的实施例中,其中分词单元630具体配置为:根据所述分词结果进行词频统计,得到多个不同分词的词频;从所述多个不同分词中去除词频低于预定阈值的低频分词,得到所述词汇表。
在一个实施例中,其中词语确定模块611具体配置为:采用预设宽度的滑窗,沿所述词语序列滑动,将任一时刻下,所述滑窗中心位置对应的词语确定为所述中心词语,将所述滑窗内除所述中心词语之外的词语,作为所述k个上下文词语。
在一个实施例中,其中权重确定模块613具体配置为:基于所述k个上下文词向量,确定k阶相似度方阵,其中第i行第j列元素表示第i个上下文词向量与第j个上下文词向量之间的相似度,其中i和j为不大于k的正整数;对所述k阶相似度方阵中的各行分别进行归一化处理,得到k阶自注意力分数方阵;分别求取所述k阶自注意力分数方阵中各列的平均值,得到所述k个自注意力权重。
在一个实施例中,其中相似度计算模块615具体配置为:计算所述中心词向量和所述上下文表示向量之间的点积,作为所述第一相似度。
在一个实施例中,其中矩阵更新模块616具体配置为:从所述第一词向量矩阵中随机抽取某个第一词向量;计算所述某个第一词向量和所述上下文表示向量之间的第二相似度;以增大所述第一相似度和减小所述第二相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵。
综上,采用本说明书实施例披露的训练词向量嵌入模型的装置,通过引入自注意力机制,确定多个上下文词向量的自注意力权重,实现对多个上下文词向量之间的相互影响、内在关联的刻画,进而求取多个上下文词向量的加权向量作为中心词的上下文表示向量。如此,相较于直接求取多个上下文词向量的平均向量作为上下文表示向量,可以提高上下文表示向量的准确度,从而提高更新后的词向量矩阵的准确度,进而提高最终确定出的词嵌入向量的准确度。
如上,根据又一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图4或图5所描述的方法。
根据又一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图4或图5所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书披露的多个实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书披露的多个实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书披露的多个实施例的具体实施方式而已,并不用于限定本说明书披露的多个实施例的保护范围,凡在本说明书披露的多个实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书披露的多个实施例的保护范围之内。
Claims (11)
1.一种训练词向量嵌入模型的方法,所述词向量嵌入模型包括,第一词向量矩阵和第二词向量矩阵;所述方法包括多次迭代更新,其中任一次迭代更新包括:
从训练语句对应的词语序列中,确定中心词语和所述中心词语的k个上下文词语,其中k为大于1的整数;
根据第一词向量矩阵,确定所述中心词语对应的中心词向量;根据第二词向量矩阵,确定所述k个上下文词语对应的k个上下文词向量;
基于所述k个上下文词向量,确定k阶相似度方阵,其中第i行第j列元素表示第i个上下文词向量与第j个上下文词向量之间的点积,其中i和j为不大于k的正整数;利用softmax函数对所述k阶相似度方阵中的各行分别进行归一化处理,得到k阶自注意力分数方阵;分别求取所述k阶自注意力分数方阵中各列的平均值,得到k个自注意力权重;
利用所述k个注意力权重,对所述k个上下文词向量进行加权求和,得到所述中心词语的上下文表示向量;
计算所述中心词向量与所述上下文表示向量之间的第一相似度;
至少以增大所述第一相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵;所述多次迭代更新后的第一词向量矩阵用于查询目标词语的目标词向量。
2.根据权利要求1所述的方法,在所述多次迭代更新之前,所述方法还包括:
获取训练语料,其中包括多条训练语句;
对各条训练语句进行分词,根据分词结果,得到所述训练语料对应的词汇表,以及各训练语句对应的所述词语序列;
根据所述词汇表,初始化所述第一词向量矩阵和第二词向量矩阵,其中每个矩阵的一行或一列对应于所述词汇表中的一个词语。
3.根据权利要求2所述的方法,其中,根据分词结果,得到所述训练语料对应的词汇表,包括:
根据所述分词结果进行词频统计,得到多个不同分词的词频;
从所述多个不同分词中去除词频低于预定阈值的低频分词,得到所述词汇表。
4.根据权利要求1所述的方法,其中,从训练语句对应的词语序列中,确定中心词语和所述中心词语的k个上下文词语,包括:
采用预设宽度的滑窗,沿所述词语序列滑动,将任一时刻下,所述滑窗中心位置对应的词语确定为所述中心词语,将所述滑窗内除所述中心词语之外的词语,作为所述k个上下文词语。
5.根据权利要求1所述的方法,其中计算所述中心词向量与所述上下文表示向量之间的第一相似度,包括:
计算所述中心词向量和所述上下文表示向量之间的点积,作为所述第一相似度。
6.根据权利要求1所述的方法,其中至少以增大所述第一相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵,包括:
从所述第一词向量矩阵中随机抽取某个第一词向量;
计算所述某个第一词向量和所述上下文表示向量之间的第二相似度;
以增大所述第一相似度和减小所述第二相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵。
7.一种训练词向量嵌入模型的装置,所述词向量嵌入模型包括,第一词向量矩阵和第二词向量矩阵;所述装置包括迭代更新单元,用于执行多次迭代更新,所述迭代更新单元通过以下模块执行其中任一次迭代更新:
词语确定模块,配置为从训练语句对应的词语序列中,确定中心词语和所述中心词语的k个上下文词语,其中k为大于1的整数;
词向量确定模块,配置为根据第一词向量矩阵,确定所述中心词语对应的中心词向量;根据第二词向量矩阵,确定所述k个上下文词语对应的k个上下文词向量;
权重确定模块,配置为基于所述k个上下文词向量,确定k阶相似度方阵,其中第i行第j列元素表示第i个上下文词向量与第j个上下文词向量之间的点积,其中i和j为不大于k的正整数;利用softmax函数对所述k阶相似度方阵中的各行分别进行归一化处理,得到k阶自注意力分数方阵;分别求取所述k阶自注意力分数方阵中各列的平均值,得到k个自注意力权重;
基于所述k个上下文词向量彼此之间的相似度,确定其对应的k个注意力权重;
加权求和模块,配置为利用所述k个注意力权重,对所述k个上下文词向量进行加权求和,得到所述中心词语的上下文表示向量;
相似度计算模块,配置为计算所述中心词向量与所述上下文表示向量之间的第一相似度;
矩阵更新模块,配置为至少以增大所述第一相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵;所述多次迭代更新后的第一词向量矩阵用于查询目标词语的目标词向量。
8.根据权利要求7所述的装置,还包括:
语料获取单元,配置为获取训练语料,其中包括多条训练语句;
分词单元,配置为对各条训练语句进行分词,根据分词结果,得到所述训练语料对应的词汇表,以及各训练语句对应的所述词语序列;
初始化单元,配置为根据所述词汇表,初始化所述第一词向量矩阵和第二词向量矩阵,其中每个矩阵的一行或一列对应于所述词汇表中的一个词语。
9.根据权利要求7所述的装置,其中矩阵更新模块具体配置为:
从所述第一词向量矩阵中随机抽取某个第一词向量;
计算所述某个第一词向量和所述上下文表示向量之间的第二相似度;
以增大所述第一相似度和减小所述第二相似度为目标,更新所述第一词向量矩阵和所述第二词向量矩阵。
10.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-6中任一项的所述的方法。
11.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-6中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010384236.5A CN111291165B (zh) | 2020-05-09 | 2020-05-09 | 训练词向量嵌入模型的方法及装置 |
PCT/CN2021/092009 WO2021227935A1 (zh) | 2020-05-09 | 2021-05-07 | 训练词向量嵌入模型 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010384236.5A CN111291165B (zh) | 2020-05-09 | 2020-05-09 | 训练词向量嵌入模型的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291165A CN111291165A (zh) | 2020-06-16 |
CN111291165B true CN111291165B (zh) | 2020-08-14 |
Family
ID=71018198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010384236.5A Active CN111291165B (zh) | 2020-05-09 | 2020-05-09 | 训练词向量嵌入模型的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111291165B (zh) |
WO (1) | WO2021227935A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291165B (zh) * | 2020-05-09 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 训练词向量嵌入模型的方法及装置 |
CN112131864A (zh) * | 2020-09-10 | 2020-12-25 | 上海交通大学 | 一种基于自注意机制的中文词向量训练方法 |
CN112699666A (zh) * | 2020-12-29 | 2021-04-23 | 北京秒针人工智能科技有限公司 | 一种预测关键词声量的方法、系统、设备及存储介质 |
CN113761934B (zh) * | 2021-07-29 | 2023-03-31 | 华为技术有限公司 | 一种基于自注意力机制的词向量表示方法及自注意力模型 |
CN114298024A (zh) * | 2021-12-23 | 2022-04-08 | 中国电信股份有限公司 | 文本数据增强方法及装置、电子设备、存储介质 |
US12073432B2 (en) * | 2022-01-31 | 2024-08-27 | Walmart Apollo, Llc | Systems and methods for contextual targeting optimization |
CN115292504B (zh) * | 2022-09-29 | 2022-12-06 | 北京如炬科技有限公司 | 实体关系分类方法、装置、设备及存储介质 |
CN115329742B (zh) * | 2022-10-13 | 2023-02-03 | 深圳市大数据研究院 | 基于文本分析的科研项目产出评价验收方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109255118A (zh) * | 2017-07-11 | 2019-01-22 | 普天信息技术有限公司 | 一种关键词提取方法及装置 |
CN109948165A (zh) * | 2019-04-24 | 2019-06-28 | 吉林大学 | 基于混合注意力网络的细粒度情感极性预测方法 |
CN111026848A (zh) * | 2019-12-17 | 2020-04-17 | 电子科技大学 | 一种基于相似上下文和强化学习的中文词向量生成方法 |
US20200134019A1 (en) * | 2018-10-25 | 2020-04-30 | Intuit Inc. | Method and system for decoding user intent from natural language queries |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10339214B2 (en) * | 2011-11-04 | 2019-07-02 | International Business Machines Corporation | Structured term recognition |
CN109308353B (zh) * | 2018-09-17 | 2023-08-15 | 鼎富智能科技有限公司 | 词嵌入模型的训练方法及装置 |
CN109165288B (zh) * | 2018-09-17 | 2019-08-27 | 北京神州泰岳软件股份有限公司 | 一种多语义监督的词向量训练方法及装置 |
CN110209823B (zh) * | 2019-06-12 | 2021-04-13 | 齐鲁工业大学 | 一种多标签文本分类方法及系统 |
CN111291165B (zh) * | 2020-05-09 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 训练词向量嵌入模型的方法及装置 |
-
2020
- 2020-05-09 CN CN202010384236.5A patent/CN111291165B/zh active Active
-
2021
- 2021-05-07 WO PCT/CN2021/092009 patent/WO2021227935A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109255118A (zh) * | 2017-07-11 | 2019-01-22 | 普天信息技术有限公司 | 一种关键词提取方法及装置 |
US20200134019A1 (en) * | 2018-10-25 | 2020-04-30 | Intuit Inc. | Method and system for decoding user intent from natural language queries |
CN109948165A (zh) * | 2019-04-24 | 2019-06-28 | 吉林大学 | 基于混合注意力网络的细粒度情感极性预测方法 |
CN111026848A (zh) * | 2019-12-17 | 2020-04-17 | 电子科技大学 | 一种基于相似上下文和强化学习的中文词向量生成方法 |
Non-Patent Citations (2)
Title |
---|
CBOW模型;丹之;《https://www.jianshu.com/p/d2f0759d053c》;20181011;第1-5页 * |
基于词向量多维度注意力的卷积神经网络短文本语义相似度检测算法;艾阳坤;《中国优秀硕士学位论文全文数据库 信息科技辑》;中国学术期刊(光盘版)电子杂志社;20190515(第5期);第I138-1883页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111291165A (zh) | 2020-06-16 |
WO2021227935A1 (zh) | 2021-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111291165B (zh) | 训练词向量嵌入模型的方法及装置 | |
CN109783817B (zh) | 一种基于深度强化学习的文本语义相似计算模型 | |
CN112368697B (zh) | 经由对偶分解评估损失函数或损失函数的梯度的系统和方法 | |
CN106547737B (zh) | 基于深度学习的自然语言处理中的序列标注方法 | |
CN109726389B (zh) | 一种基于常识和推理的中文缺失代词补全方法 | |
CN109508379A (zh) | 一种基于加权词向量表示和组合相似度的短文本聚类方法 | |
CN109446414B (zh) | 一种基于神经网络分类的软件信息站点快速标签推荐方法 | |
CN106202030B (zh) | 一种基于异构标注数据的快速序列标注方法及装置 | |
CN104765728B (zh) | 训练神经网络的方法和装置以及确定稀疏特征向量的方法 | |
CN110472062B (zh) | 识别命名实体的方法及装置 | |
JP6291443B2 (ja) | 接続関係推定装置、方法、及びプログラム | |
CN107220368B (zh) | 图像检索方法及装置 | |
CN110826298B (zh) | 一种智能辅助定密系统中使用的语句编码方法 | |
CN113220865B (zh) | 一种文本相似词汇检索方法、系统、介质及电子设备 | |
CN109086463B (zh) | 一种基于区域卷积神经网络的问答社区标签推荐方法 | |
CN110197252A (zh) | 基于距离的深度学习 | |
CN116720519B (zh) | 一种苗医药命名实体识别方法 | |
CN109299291B (zh) | 一种基于卷积神经网络的问答社区标签推荐方法 | |
CN116935057A (zh) | 目标评价方法、电子设备和计算机可读存储介质 | |
IL274559B1 (en) | A system and method for learning from a small number of examples | |
CN115063604B (zh) | 特征提取模型训练、目标重识别方法及装置 | |
CN116092138A (zh) | 基于深度学习的k近邻图迭代静脉识别方法及系统 | |
CN115148292A (zh) | 基于人工智能的dna模体预测方法、装置、设备及介质 | |
CN114757189A (zh) | 事件抽取方法、装置、智能终端及存储介质 | |
CN114742045A (zh) | 一种语义文本相似度的计算方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |