一种词向量训练方法和服务器与流程

文档序号:18900768发布日期:2019-10-18 21:54阅读:305来源:国知局
一种词向量训练方法和服务器与流程
本发明涉及计算机
技术领域
,尤其涉及一种词向量训练方法和服务器。
背景技术
:sg(skip-gram)模型是目前通用的词向量学习模型,在实际的工业环境中得到了广泛使用。在大规模语料的基础上,sg模型可以得到质量较高的词向量模型,在配合使用负采样(negativesampling)计算技术的时候,可以高效快速地计算词向量,因此可以同时保证计算效率和结果的质量。现有技术中,sg模型可以通过建立一个词与其周边其他词的关系。具体地,在一个给定的语料中,针对一个词序列片段,sg模型会针对其中每一对词学习它们之间的关系,即预测在给定一个词作为输入的情况下,输出其它词的概率。最终通过优化这些概率值来更新每个词的向量。虽然目前的sg模型可以有效训练词向量,但是现有技术依然存在一些相应的缺点。例如,sg模型对每个目标词的上下文窗口内的任何词语都同等对待,因此目标词中的上下文结构信息并不能反映在目标词的向量中,一个词周围的所有词对于该词的重要程度是同等的,因此通过sg模型学习得到的词向量是无法体现上下文结构信息,通过现有技术得到的词向量对于目标词的位置信息不敏感,无法有效适用于自然语言处理的语义和句法任务。技术实现要素:本发明实施例提供了一种词向量训练方法和服务器,用于将方向信息集成到词向量中,可以满足自然语言处理的语义和句法任务的需求。为解决上述技术问题,本发明实施例提供以下技术方案:第一方面,本发明实施例提供一种词向量训练方法,包括:根据训练样本文本中的单词获取对应的输入词向量;根据所述训练样本文本中与所述单词对应的上下文词语获取对应的原始输出词向量;根据所述原始输出词向量生成目标输出词向量,所述目标输出词向量携带有用于指示所述上下文词语相对于所述单词的位置方向的方向信息;使用所述输出词向量和所述目标输出词向量对词向量学习模型进行训练。第二方面,本发明实施例还提供一种服务器,包括:输入词向量获取模块,用于根据训练样本文本中的单词获取对应的输入词向量;输出词向量获取模块,用于根据所述训练样本文本中与所述单词对应的上下文词语获取对应的原始输出词向量;输出词向量重配置模块,用于根据所述原始输出词向量生成目标输出词向量,所述目标输出词向量携带有用于指示所述上下文词语相对于所述单词的位置方向的方向信息;模型训练模块,用于使用所述输出词向量和所述目标输出词向量对词向量学习模型进行训练。在第二方面中,服务器的组成模块还可以执行前述第一方面以及各种可能的实现方式中所描述的步骤,详见前述对第一方面以及各种可能的实现方式中的说明。第三方面,本发明实施例提供一种服务器,该服务器包括:处理器、存储器;存储器用于存储指令;处理器用于执行存储器中的指令,使得服务器执行如前述第一方面中任一项的方法。第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。从以上技术方案可以看出,本发明实施例具有以下优点:在本发明实施例中,首先根据训练样本文本中的单词获取对应的输入词向量,根据训练样本文本中与单词对应的上下文词语获取对应的原始输出词向量,接下来根据原始输出词向量生成目标输出词向量,目标输出词向量携带有用于指示上下文词语相对于单词的位置方向的方向信息,使用输出词向量和目标输出词向量对词向量学习模型进行训练。由于本发明实施例中通过分别对输入词在不同位置方向上的上下文建模,将上下文词语的结构信息融入词向量学习中,因此通过该词向量模型学习得到的词向量可以体现上下文结构信息,通过本发明实施例提供的词向量学习模型得到的词向量可以适用于自然语言处理的各类任务,尤其是语义和句法相关任务。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种词向量训练方法的流程方框示意图;图2为本发明实施例提供的词向量训练方法的一种应用场景示意图;图3为本发明实施例提供的词向量学习模型为sg模型的示意图;图4为本发明实施例提供的联合优化的示意图;图5为本发明实施例提供的词向量学习模型为ssg模型的示意图;图6-a为本发明实施例提供的一种服务器的组成结构示意图;图6-b为本发明实施例提供的一种输出词向量重配置模块的组成结构示意图;图6-c为本发明实施例提供的一种模型训练模块的组成结构示意图;图6-d为本发明实施例提供的另一种输出词向量重配置模块的组成结构示意图;图7为本发明实施例提供的词向量训练方法应用于服务器的组成结构示意图。具体实施方式本发明实施例提供了一种词向量训练方法和服务器,用于将方向信息集成到词向量中,可以满足自然语言处理的语义和句法任务的需求。为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。以下分别进行详细说明。本发明实施例中提供的词向量训练方法使用上下文的方向信息实现词向量学习模型的训练,该词向量学习可以是上下文带有方向指向的sg(skip-gram)模型,为便于描述,将本发明实施例中采用的上下文带有方向指向的sg模型称为dsg(directionalskip-gram)模型,本发明实施例提供的dsg模型可以帮助学习词向量。其中,sg模型是使用词到上下文的关系建立模型,本发明实施例提出的dsg模型,考虑到词语的序列信息在任何语言中都是非常重要的指示信号,针对所有的输入和输出词对(pair),通过在输出词向量中引入方向信息来指示目标词在输入词的左右方向(及上下方向),加强了目标词对输入词的指导作用,由此习得更好的词向量。本发明实施例中通过分别对目标词的上文和下文建模,将文本的结构信息融入词向量学习中。因此通过dsg模型学习得到的词向量可以体现上下文结构信息,通过上下文的方向信息可以加强当前词向量的语义表达能力,并同时增加句法能力,因此通过本发明实施例得到的词向量可以适用于自然语言处理的语义和句法任务。本发明实施例中提供的词向量训练方法,具体可以应用于词向量学习场景中,该方法可应用于服务器,服务器可包括处理器和存储器,其中,通过服务器中的存储装置来存储输入词向量、目标输出词向量,该目标输出词向量携带有用于指示上下文词语相对于单词的位置方向的方向信息。例如通过服务器的内存来存储输入词向量、目标输出词向量,处理器可以从存储器读取程序,来执行本发明实施例提供的词向量训练方法。请参阅图1所示,本发明一个实施例提供的词向量训练方法,可以包括如下步骤:101、根据训练样本文本中的单词获取对应的输入词向量。本发明实施例中,语料库中存储有训练样本文本,该训练样本文本可以包括一段词汇,其中每个词汇都可以是一个单词,则该单词对应有上下文词语,例如该训练样本文本中包括:连续的一段词汇:abc,则对于单词b来说,单词a和单词c构成该b的上下文词语。首先从训练样本文本中获取单词以及该单词的上下文词语,根据训练样本文本中的单词获取对应的输入词向量,其中输入词向量中包括有单词,该输入向量可以输入到词向量学习模型中,该输入向量可以在模型训练过程中不断更新,即可以从语料库中不断读取新的单词写入到该输入向量中。102、根据训练样本文本中与单词对应的上下文词语获取对应的原始输出词向量。在本发明实施例中,从训练样本文本中获取单词以及单词的上下文词语之后,还可以获取到上下文词语对应的原始输出词向量,该原始输出词向量中包括有单词对应的上下文词语,该输出词向量是词向量学习模型预测输出的标准取值,当输入向量在模型训练过程中不断更新时,可以从语料库中不断读取新的单词对应的上下文词语写入到该原始输出词向量中。需要说明的是,本发明实施例上下文词语对应的输出词向量可以描述为“原始输出词向量”,在本发明实施例中在获取到输入词向量和输出词向量之后,并不能直接进行词向量学习模型的训练,而是需要对该原始输出词向量进行重新配置,以在输出词向量中携带上下文词语相对于单词的位置方向。103、根据原始输出词向量生成目标输出词向量,目标输出词向量携带有用于指示上下文词语相对于单词的位置方向的方向信息。在本发明实施例中,在获取到原始输出词向量之后,还需要根据原始输出词向量生成目标输出词向量,该目标输出词向量携带有用于指示上下文词语相对于单词的位置方向的方向信息,即对该原始输出词向量进行重新配置,以在原始输出词向量中携带上下文词语相对于单词的位置方向,为便于区别描述,将原始输出词向量重配置之后得到的输出词向量称为“目标输出词向量”。在本发明实施例中,目标输出词向量中携带有指示上下文词语相对于单词的位置方向的方向信息。其中,该位置方向表示的是上下文词语出现在单词的哪个方向,方向信息可以是为指示上述位置方向的一维数组。例如上下文词语相对于单词的位置方向可以包括:上下文词语出现在单词的上文(即左方向)或者下文(即右方向),若单词的上下文词语出现在该单词的上文(即左方向),则该方向信息可以取值为1,若单词的上下文词语出现在该单词的下文(即右方向),则该方向信息可以取值为0。在本发明的一些实施例中,步骤103根据原始输出词向量生成目标输出词向量,包括:根据上下文词语出现在单词的上文或者下文生成方向向量,方向向量用于指示上下文词语出现在单词的上文或者下文;通过原始输出词向量和方向向量获取到目标输出词向量,目标输出词向量包括:原始输出词向量和方向向量。其中,词语的序列信息在任何语言中都是非常重要的指示信号,通过语料库中某个单词的上下文词语可以指示该单词对应的序列信息,使用方向向量指示上下文词语出现在单词的上文或者下文,通过该原始输出词向量和方向向量获取到目标输出词向量,则在本发明实施例提供的词向量学习模型中每个单词可以有三个向量,一个是用于作为输入词的输入词向量,一个是用于预测输出的上下文词语的原始输出词向量,还有一个是用于指示上下文词语出现在单词的上文或者下文的方向向量。通过引入一个方向向量指示目标词在输入词的左方向或右方向,加强目标词对输入词的指导作用,由此习得更好的词向量。在本发明的一些实施例中,步骤103根据原始输出词向量生成目标输出词向量,包括:根据上下文词语出现在单词的上文,从原始输出词向量中获取到上文输出词向量;根据上下文词语出现在单词的下文,从原始输出词向量中获取到下文输出词向量;通过上文输出词向量和下文输出词向量获取到目标输出词向量,目标输出词向量包括:上文输出词向量和下文输出词向量。其中,区别于前述实施例中在目标输出词向量中携带方向向量的实现方式,本发明实施例中还可以采用隐含携带方向信息的方式,即可以设计两组的输出词向量,分别用于表达任何输入词的上文词语和下文词语。这样,每个单词均有三个向量,一个用于表达该词作为输入词语的输入词向量、一个用于表达作为上文的上文输出词向量,最后一个用于表达作为下文的下文输出词向量。因此,当计算词向量的时候,针对任何输入词,它的上文词语可以使用它们的上文输出词向量、下文词语使用下文输出词向量与输入词的输入词向量计算对数概率似然估计。本发明实施例中的这种实现方案也可以在词向量的学习过程中主动区分词语的上下文,因为每次只可能单独作为上文或下文进行更新,每个词语的输出向量将只有一半的概率得到更新。104、使用输出词向量和目标输出词向量对词向量学习模型进行训练。在本发明实施例中,在分别获取到输出词向量和目标输出词向量之后,可以使用输出词向量和目标输出词向量对词向量学习模型进行训练,本发明实施例提供的词向量学习模型可以是采用的上下文带有方向指向的sg模型,简称为dsg模型,由于目标输出词向量携带有用于指示上下文词语相对于单词的位置方向的方向信息,因此通过对词向量学习模型的训练,可以将上下文词语的结构信息融入词向量学习中,因此通过该词向量模型学习得到的词向量可以体现上下文结构信息,通过本发明实施例提供的词向量学习模型得到的词向量可以适用于自然语言处理的语义和句法任务。本发明实施例中使用方向信息来扩展现有的词向量学习模型,可以针对不同使用场景得到多种模型变种,进而适用不同的任务,并能得到更高质量的词向量。在本发明的一些实施例中,在目标输出词向量包括:原始输出词向量和方向向量的情况下,步骤104使用输出词向量和目标输出词向量对词向量学习模型进行训练,包括:根据输入词向量和方向向量获取交互函数计算结果,并根据交互函数计算结果对输入词向量和方向向量进行迭代更新;根据输入词向量和原始输出词向量获取条件概率计算结果,并根据条件概率计算结果对输入词向量和原始输出词向量进行迭代更新;根据交互函数计算结果和条件概率计算结果对词向量学习模型的最优目标进行估计。其中,本发明实施例中可以使用输入词向量和方向向量来计算出交互函数的结果,即获取到交互函数计算结果,例如可以使用softmax函数计算输入词向量和方向向量之间的交互关系,以实现将该方向信息集成到最终词向量中的目的。并通过上述交互函数计算结果同步更新输入词向量和方向向量的值,使得上述交互函数计算结果符合预期的结果,例如使用softmax函数计算输入词向量和方向向量之间的交互关系,保证当上下文词语在单词的左侧的时候交互函数计算结果的取值趋于1,当上下文词语在单词的右侧的时候交互函数计算结果的取值趋于0。本发明实施例中除了需要计算输入词向量和方向向量之间的交互函数,还需要同步计算单词与上下文词语之间的条件概率,即可以根据输入词向量和原始输出词向量获取条件概率计算结果,例如通过sg模型计算词语之间的条件概率,从而实现对词汇之间的语义关系进行建模。通过前述步骤分别获取到交互函数计算结果和条件概率计算结果之后,可以根据交互函数计算结果和条件概率计算结果进行联合优化,即可以对词向量学习模型的最优目标进行估计,因此每个单词的优化目标都可以通过交互函数计算结果和条件概率计算结果分别完成迭代更新,在该词向量学习模型训练完成后,该词向量学习模型可以获取到输入单词的高质量的词向量。可选的,在本发明的一些实施例中,以交互函数为softmax函数为例,根据输入词向量和方向向量获取交互函数计算结果,包括:通过如下方式计算输入词向量和方向向量之间的交互函数,其中,其中,g(ωt+i,ωt)表示交互函数计算结果,δωt+i表示上下文词语为ωt+i时的方向向量,vωt表示单词为ωt时的输入向量,v表示语料库中的所有词语集合。上述公式中,exp表示e函数,t表示转置。可选的,在本发明的一些实施例中,根据交互函数计算结果对输入词向量和方向向量进行迭代更新,包括:通过如下方式对输入词向量和方向向量进行迭代更新,其中,其中,表示更新后的单词为ωt时的输入向量,表示更新前的输入向量,γ表示学习率,δωt+i表示上下文词语为ωt+i时的方向向量,vωt表示单词为ωt时的输入向量,σ(vωttδωt+i)表示上下文词语相对于单词的位置方向预测值,d表示上下文词语相对于单词的位置方向标记值,表示更新后的上下文词语为ωt+i时的方向向量,表示更新前的上下文词语为ωt+i时的方向向量。在上述公式中,上标(new)用于指示更新之后的向量,上标(old)用于指示更新之前的向量,γ是学习率,学习率是在词向量的训练中是随着训练过程的进展不断降低的数值变量,例如学习率可以定义为未训练文本大小和总文本大小的比值。可选的,上述位置方向标记值d满足如下条件:其中,当i<0时,表示上下文词语相对于单词的位置方向为上文,当i>0时,表示上下文词语相对于单词的位置方向为下文。例如,d是上下文词语在输入词的左右方向的标记信息,如前所述,有两种取值:i<0对应上文中的词汇,i>0对应下文中的词汇,在每个训练样本中,d的取值是根据训练时词语的位置自动获得的标记。可选的,在本发明的一些实施例中,根据交互函数计算结果和条件概率计算结果对词向量学习模型的最优目标进行估计:通过如下方式计算全局对数最大似然估计f(ωt+i,ωt),其中,f(ωt+i,ωt)=p(ωt+i|ωt)+g(ωt+i,ωt),(公式五)其中,g(ωt+i,ωt)表示交互函数计算结果,p(ωt+i|ωt)表示条件概率计算结果。通过如下方式计算单词到上下文词语的概率的联合对数似然估计lsg,其中,其中,v表示语料库中的所有词语集合,上下文词语为ωt+i,单词为ωt,c表示上下文窗口大小。例如,通过上述公式五可以优化全局对数最大似然估计,因此本发明实施例中对词向量学习模型的最优目标估计可以转化为对两个相关函数的联合优化问题,从而实现了对对词向量学习模型的最优目标估计。通过以上实施例对本发明实施例的描述可知,首先根据训练样本文本中的单词获取对应的输入词向量,根据训练样本文本中与单词对应的上下文词语获取对应的原始输出词向量,接下来根据原始输出词向量生成目标输出词向量,目标输出词向量携带有用于指示上下文词语相对于单词的位置方向的方向信息,使用输出词向量和目标输出词向量对词向量学习模型进行训练。由于本发明实施例中通过分别对输入词在不同位置方向上的上下文建模,将上下文词语的结构信息融入词向量学习中,因此通过该词向量模型学习得到的词向量可以体现上下文结构信息,通过本发明实施例提供的词向量学习模型得到的词向量可以适用于自然语言处理的各类任务,尤其是语义和句法任相关的任务。为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。本发明实施例使用的词向量学习模型可以是改进的sg模型(后续称为dsg模型),该sg模型是一种通过建立一个词与其周边其他词的关系的词向量学习模型。具体地,在一个给定的语料中,针对一个词序列片段,sg模型会针对其中每一对词学习它们之间的关系,即预测在给定一个词作为输入的情况下,输出其它词的概率。最终通过优化这些概率值来更新每个词的向量。本发明提供的方法可以增强sg模型的语义能力,同时增加句法能力。本发明实施例提供的词向量训练方法作为基础算法,可使用于所有自然语言相关的应用场景及其所需要的处理技术和产品中。使用方式一般是使用本发明提出的词向量学习模型生成或者更新词向量,并交付所生成的向量应用于后续自然语言处理任务中。例如,生成的词向量可以使用在分词和词性标注系统中,以期提高分词及词性标注的准确率,进而带来后续处理能力的提升。又如,在搜索及其相关场景中往往需要对得到的搜索结果排序,该排序结果经常需要计算各个结果对于搜索查询语句(query)的语义相似度。这类相似度的度量可以通过词向量的相似性计算完成,因此向量的质量将很大程度决定这类语义相似度计算方法的效果。除了上述任务之外,由于通过本发明实施例训练的词向量有效结合和区分了不同词语的上下文信息,尤其可以针对语义和句法类型的任务(例如词性标注、组块分析、结构句法分析和依存句法分析等)有更好的性能。如图2所示,为本发明实施例提供的词向量训练方法的一种应用场景示意图。本发明实施例提供的词向量训练方法中,人类语言具有线性特点,即表达任何语言的词汇往往遵循一定的序列关系,因此词汇之间的搭配会形成某些相对固定的前后顺序关系,例如在一句话里,某个词可能经常出现在另一个词的左侧,尤其对于中文这种对于语序要求比句法要求更高的语言更是如此。基于上述分析,本发明实施例中使用另外的途径分别针对输入词语的上文(左边文本)和下文(右边文本)关系建模,以反映一个词的上下文所构成的语序关系。本发明实施例在sg模型的基础上,为每个词语引入一个额外的方向向量δ,用于表达和计算其作为某个上下文词语在输入词语左侧或者右侧出现的情况。为此,定义一个softmax函数g,如前述的公式一,计算上下文词语的方向向量和当前输入词语的词向量的交互关系,以实现将该方向信息集成到最终词向量中的目的。具体地,交互函数用于计算针对输入词wt的上下文词语wt+i的顺序信息,并通过该公式一的计算结果同步更新δ和v的值,保证当wt+i在wt的左侧的时候g的取值趋于1,当wt+i在wt的右侧的时候g的取值趋于0。为了达到这个效果,δ和v的更新方式可以如前述实施例中的公式二和公式三,其中上标(new)用于指示更新之后的向量,(old)用于指示更新之前的向量,学习率是在词向量的训练中是随着训练过程的进展不断降低的一个数值变量,通常定义为未训练文本大小和总文本大小的比值。这里d是上下文词语在输入词语左右的标记信息,如前所述,有两种取值,如前述实施例中的公式四,i<0对应上文中的词汇,i>0对应下文中的词汇,在每个训练样本中,d的取值按照上文和下文来区分,是根据训练时词语的位置自动获得的标记。上述公式一种定义的g函数可以认为是对上下文的结构信息进行建模的有效手段,除了g函数,本发明实施例中还需要使用sg模型计算词语之间的条件概率,用于对词汇之间的语义关系进行建模。如图3所示,为本发明实施例提供的词向量学习模型为sg模型的示意图。其中,w0是当前词,w-2,w-1,w1和w2是w0的上下文词语,sg模型利用w0作为输入,最大化w0到其他词语的概率,因此在整个语料上sg模型的优化目标是最大化每个词wt到它的上下文的概率的联合对数似然估计(log-likelihood),例如可以通过前述公式六进行估计。为了方便后续方法的阐述,公式六可以使用f函数来表达wt的概率模型,在sg模型中,f(wt+i,wt)定义为一个通过词向量表达的softmax函数,例如如下公式七:其中,vwt指wt的输入向量表达,v’wt+i指wt+i的输出向量表达,依此类推。sg模型中每个词有两个向量,一个用于作为输入词(标记为v),另一个则用于预测输出的上下文词语(标记为v’)。因此,sg模型通过在整个语料上持续迭代地计算公式七和更新各个词语的向量,增加公式六中联合似然估计的值,并在指定迭代次数之后输出所有词的向量。如图4所示,为本发明实施例提供的联合优化的示意图。本发明实施例中dsg模型的优化目标与公式六定义的函数一致,优化全局对数最大似然估计,例如采用前述实施例中的公式五。因此本发明中,可以认为是对两个相关函数的联合优化问题,每个词的优化目标可以表达为图4所示形式,其中实线箭头代表预测关系,虚线箭头代表输入词的向量更新过程。在前述实现过程中,本发明实施例提供的方法对硬件没有特殊需求,与词向量学习模型(例如sg模型)一致,使用普通的处理器即可完成计算,并且单线程或者多线程均可。本发明涉及到的词向量和方向向量在计算过程中存贮于内存(random-accessmemory,ram)中,计算完成之后输出到磁盘上或其他载体保存。本发明实施例中整个算法只需要给定一个训练语料即可根据预先定义的窗口大小、迭代次数等参数计算该语料内包含的词语的向量。本发明实施例还提供一种结构化sg(structuredskip-gram,ssg),ssg模型考虑了输入词的上下文词语,同时还考虑了这些上下文词语的位置对输入词的影响,上下文词语的位置是指该上下文词语和输入词在语料库中的相对位置关系,并且针对每个不同的位置单独预测这些上下文词语的概率。ssg模型的结构类似sg模型,如图5所示,不同的是,ssg模型针对每个上下文词语使用了不同的参数估计它们在某个对应位置的概率,这些参数在图2中用o-2、o-1、o1和o2表示,以区别于图3所示的使用统一的o预测不同的词。其中,o是预测关系的指代,同样的o表示同样的预测关系,带有不同角标的o表示不同的预测关系。在本发明实施例中,ssg模型的优化目标与sg模型一致,都是最大化整个语料的联合对数似然估计。唯一的不同在于,在ssg模型中存在多个对应不同位置的输出向量,因此f定义为如下的公式八。其中,r是相对位置,c是上下文窗口大小,其余物理量含义与前述的公式相同,这里一个上下文词语wt+i对输入词的概率需要考虑它在wt的不同位置出现的可能性的总和,因此ssg模型在形式上为每个上下文词语定义了一系列不同的“角色”(prototypes),以区分这些词语在不同位置上出现的时候对输入词的影响。相比于sg模型,区分不同位置的上下文词语使得ssg模型能够对上下文的结构信息(这里指词语的排列和序列关系等信息)进行一定程度的建模,因此可以学习到比sg更丰富的词语之间的相互关系。通过前述实施例对sg模型、dsg模型和ssg模型的举例说明可知,虽然各种方法都可以有效训练词向量,但是它们在很多方面依然存在一些区别。例如,sg模型并不区分不同类型的上下文,对每个目标词输入词的上下文窗口内的任何词语都是同等对待。因此目标词中的上下文结构信息并不能反映在目标词的向量中,一个词周围的所有词对于该词的重要程度是同等的,很多搭配信息(尤其是固定的前向搭配或者后向搭配)无法体现在向量的学习过程中。相比之下ssg模型解决了sg模型对于上下文的区分问题,保证了每个位置的上下文词语都有具体和独特的作用,然而,这样却显著增加了计算复杂度,对于使用同样大小的语料进行训练,ssg可能要花数倍于sg的时间。表1列举了sg和ssg模型的时间和空间复杂度,其中d表示词向量的维度(例如50,100,200等),s是用于训练词向量的语料大小(总token数),其中,token可以翻译成“词”,表示语料库中词的个数,但是会与词表中的词概念是不相同的,比如一个语料库含有1万个词,可能不同的词(即词表)只有100个,这里token就是指1万个词。v是语料库中所有词汇集合,o是进行一次向量更新所需操作的时间,n是负采样的负样本数量(negativesampling),负采样是词向量计算中一种有效减少计算复杂度的算法,从下表1中可以看出,当上下文窗口增大的时候,ssg模型的空间和时间复杂度将以窗口大小c的倍数高于sg模型,以词向量计算通常使用的5个词的上下文窗口大小为例,训练一个ssg模型将需要大约5倍于sg模型的空间和时间。表1.各个不同模型的时空复杂度分析方法空间复杂度时间复杂度sg2|v|d2cs(n+1)ossg(2c+1)|v|d4c2s(n+1)odsg3|v|d2cs(n+2)o其中,时空复杂度越低,越容易实现,对处理器的硬件要求就越少。dsg模型与sg模型和ssg模型相比,其模型的时空复杂度也列于表1中第三行。相比sg模型和ssg模型,该dsg模型能够兼顾学习一定程度上下文的结构信息,同时相比sg模型不显著增加计算复杂度。前述ssg模型相比于dsg模型具有更高的计算复杂度,并且由于不同位置词语出现的稀疏性,ssg模型很难在实际计算中将其扩展到更大上下文窗口环境,而dsg模型相比于ssg模型更少受到数据稀疏问题的影响。考虑到中文的表达特性,对于语序相较于句法更加敏感,因此dsg模型更适用于中文词向量的学习,更有利于中文环境的语义理解和对于中文词汇的进一步处理。本发明提供的词向量训练方法中,使用dsg模型引入了一组额外的方向向量用于表达上下文词语对于输入词的位置信息,这使得该方法可以学习上下文的结构信息,与sg模型相比,dsg模型只增加有限的时空复杂度,并且dsg模型与ssg模型相比具有极低的时空复杂度。例如,与sg和ssg模型相比,dsg模型需要的空间复杂度是传统sg模型的1.5倍,时间复杂度接近于传统sg模型,均远低于ssg模型,尤其是空间复杂度不受上下文窗口大小的影响,时间复杂度与窗口大小呈线性比例关系,而ssg模型呈平方关系。在本申请实施例中,由于引入了一组额外的方向向量,这组额外的向量可以单独输出,可以直接用于计算某个词和另一个词的位置关系,例如直接计算方向向量和词向量的余弦,sim=cosine(v1,d2)这里v1是指词1的词向量,d2是指词2的方向向量。通过某个词的位置向量和另一个词的词向量计算相似度,简化了位置信息的表达,只区分上文和下文。同时由于上下文的顺序信息被集成进了词向量表达中,因此通过前述的dsg模型学习得到的词向量具有某种句法适应性,也即最终词向量隐式地包含了文本结构信息,因此对于自然语言处理的语义和句法相关任务(例如词性标注、组块识别、依存句法分析等)会有一定程度的帮助。由于本发明中对上下文的区分性,通过该方法学习得到的词向量可以得到更为准确的词类区分能力。这是因为语言结构的特点,属于某些类别的词语往往服从一定程度的组织形式、例如形容词往往在名词前面、动词前后的副词功能不同等等(同前述的句法适应性)。因此,当使用dsg学习得到的词向量计算相似词的时候,(相比于sg模型)更容易得到同类型的词语,同时与ssg这样的复杂模型比,可以更高效地计算具有这样能力的词向量。不限定的是,本发明实施例提供的词向量训练方法中,负采样算法可以被替代成层次化softmax(hierarchicalsoftmax)算法来计算目标词语的概率以及预测目标词语。相比负采样,层次化softmax在训练数据较小的时候可以得到更好的结果,但是当训练数据增大以后,其需要的计算空间显著增加。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。请参阅图6-a所示,本发明实施例提供的一种服务器600,可以包括:输入词向量获取模块601、输出词向量获取模块602、输出词向量重配置模块603、模型训练模块604,其中,输入词向量获取模块601,用于根据训练样本文本中的单词获取对应的输入词向量;输出词向量获取模块602,用于根据所述训练样本文本中与所述单词对应的上下文词语获取对应的原始输出词向量;输出词向量重配置模块603,用于根据所述原始输出词向量生成目标输出词向量,所述目标输出词向量携带有用于指示所述上下文词语相对于所述单词的位置方向的方向信息;模型训练模块604,用于使用所述输出词向量和所述目标输出词向量对词向量学习模型进行训练。在本申请的一些实施例中,请参阅图6-b所示,所述输出词向量重配置模块603,包括:方向向量生成模块6031,用于根据所述上下文词语出现在所述单词的上文或者下文生成方向向量,所述方向向量用于指示所述上下文词语出现在所述单词的上文或者下文;第一目标输出词向量生成模块6032,用于通过所述原始输出词向量和所述方向向量获取到所述目标输出词向量,所述目标输出词向量包括:所述原始输出词向量和所述方向向量。在本申请的一些实施例中,请参阅图6-c所示,所述模型训练模块604,包括:交互函数计算模块6041,用于根据所述输入词向量和所述方向向量获取交互函数计算结果,并根据所述交互函数计算结果对所述输入词向量和所述方向向量进行迭代更新;条件概率计算模块6042,用于根据所述输入词向量和所述原始输出词向量获取条件概率计算结果,并根据所述条件概率计算结果对所述输入词向量和所述原始输出词向量进行迭代更新;目标估计模块6043,用于根据所述交互函数计算结果和所述条件概率计算结果对所述词向量学习模型的最优目标进行估计。进一步的,在本申请的一些实施例中,所述交互函数计算模块6041,具体用于通过如下方式计算所述输入词向量和所述方向向量之间的交互函数,其中,其中,所述g(ωt+i,ωt)表示所述交互函数计算结果,所述δωt+i表示所述上下文词语为ωt+i时的方向向量,所述vωt表示所述单词为ωt时的输入向量,所述v表示语料库中的所有词语集合。进一步的,在本申请的一些实施例中,所述交互函数计算模块6041,具体用于通过如下方式对所述输入词向量和所述方向向量进行迭代更新,其中,其中,所述表示更新后的所述单词为ωt时的输入向量,所述表示更新前的输入向量,所述γ表示学习率,所述δωt+i表示所述上下文词语为ωt+i时的方向向量,所述vωt表示所述单词为ωt时的输入向量,所述σ(vωttδωt+i)表示所述上下文词语相对于所述单词的位置方向预测值,所述d表示所述上下文词语相对于所述单词的位置方向标记值,所述表示更新后的所述上下文词语为ωt+i时的方向向量,所述表示更新前的所述上下文词语为ωt+i时的方向向量。在本申请的一些实施例中,所述位置方向标记值d满足如下条件:其中,当i<0时,表示所述上下文词语相对于所述单词的位置方向为上文,当i>0时,表示所述上下文词语相对于所述单词的位置方向为下文。进一步的,在本申请的一些实施例中,所述目标估计模块6043,用于通过如下方式计算全局对数最大似然估计f(ωt+i,ωt),其中,f(ωt+i,ωt)=p(ωt+i|ωt)+g(ωt+i,ωt),所述g(ωt+i,ωt)表示所述交互函数计算结果,所述p(ωt+i|ωt)表示所述条件概率计算结果;通过如下方式计算所述单词到所述上下文词语的概率的联合对数似然估计lsg,其中,所述v表示语料库中的所有词语集合,所述上下文词语为ωt+i,所述单词为ωt,所述c表示上下文窗口大小。在本申请的一些实施例中,请参阅图6-d所示,所述输出词向量重配置模块603,包括:上文输出词向量生成模块6033,用于根据所述上下文词语出现在所述单词的上文,从所述原始输出词向量中获取到上文输出词向量;下文输出词向量生成模块6034,用于根据所述上下文词语出现在所述单词的下文,从所述原始输出词向量中获取到下文输出词向量;第二目标输出词向量生成模块6035,用于通过所述上文输出词向量和所述下文输出词向量获取到所述目标输出词向量,所述目标输出词向量包括:所述上文输出词向量和所述下文输出词向量。通过以上对本发明实施例的描述可知,首先根据训练样本文本中的单词获取对应的输入词向量,根据训练样本文本中与单词对应的上下文词语获取对应的原始输出词向量,接下来根据原始输出词向量生成目标输出词向量,目标输出词向量携带有用于指示上下文词语相对于单词的位置方向的方向信息,使用输出词向量和目标输出词向量对词向量学习模型进行训练。由于本发明实施例中通过分别对输入词在不同位置方向上的上下文建模,将上下文词语的结构信息融入词向量学习中,因此通过该词向量模型学习得到的词向量可以体现上下文结构信息,通过本发明实施例提供的词向量学习模型得到的词向量可以适用于自然语言处理的语义和句法任务。图7是本发明实施例提供的一种服务器结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。上述实施例中由服务器所执行的词向量训练方法的步骤可以基于该图7所示的服务器结构。另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1