一种基于双层attention机制的词嵌入方法、设备及存储设备与流程

文档序号:18475427发布日期:2019-08-20 20:58阅读:276来源:国知局
一种基于双层attention机制的词嵌入方法、设备及存储设备与流程

本发明涉及自然语言处理领域,尤其涉及一种基于双层attention机制的词嵌入方法、设备及存储设备。



背景技术:

wordembedding(词嵌入)的目的是将词汇嵌入到连续的低维稠密的向量空间中。作为nlp(自然语言处理)中的预训练模型的基础,wordembedding在语言模型、文本分类、阅读理解、机器翻译、qa等方面都得到了广泛的应用。

由于wordembedding在nlp中的重要性,近年来涌现了大量有关wordembedding的工作。word2vec作为wordembedding的经典代表,包括cbow(continuousbag-of-wordsmodel:由上下文预测当前词)和skip-gram(continuousskip-grammodel:由当前词预测上下文)两种模型,其基本思想是:具有相似上下文的词汇应该相互靠近。但是wor2vec由于词汇稀疏性的限制,导致低频词难以得到充分的训练。为了解决这个问题,其中一部分学者通过利用词汇的内部信息来作为词汇的语义补充,如,利用词汇的形态学信息(前缀/词根/后缀)以及进行字符级别的嵌入等。在中文方面还考虑了字符内部的偏旁部首,组成结构以及笔画笔顺等信息。另一部分学者则考虑到了使用外部知识来辅助训练词向量,如图像信息以及一些外部的语义知识库(如同义词词林、wordnet、babelnet、conceptnet、hownet等)。

wordembedding在将词汇嵌入到统一的语义空间的同时保留了词与词之间的语义相关性。但是wordembedding同时也存在明显的语义混淆缺陷,将一个词汇的所有语义表示在了同一个向量中。为了弥补这样的不足,就需要对词汇的不同语义进行单独的建模,从而克服词嵌入的语义混淆缺陷。wordsensedisambiguation(wsd)的目的在于在不同的上下文中对词汇的不同语义进行区分,可粗略的分为无监督的方法和基于知识的方法。

sememe-encodedwordrepresentationlearningmodel(se-wrl)是一种基于语义知识库的wordembedding模型,同时也是基于知识的wsd模型。se-wrl模型基于skip-gram模型框架,通过建模hownet中的词汇、语义以及义原的结构(一个词汇可能存在多种不同的语义,而语义又由不同的义原构成,如图5所示),来描述词汇的内部语义信息。

义原是语义描述的不可分割的最小单位,义原能够深入到词汇的语义内部,从而可以对词汇的语义进行精确的表达。hownet是一种类似于wordnet的中文词概念知识库,其基本组成单位为义原。hownet的组织结构为:word(词汇)、sense(语义)、sememe(义原)。一个词汇可能由多种不同的语义组成,而义原则用来描述语义的内部信息。如图5所示,苹果包含两种语义:sense1_applebrand;sense2_apple。sense1_applebrand的义原为:sememe1_电脑(computer),sememe2_样式值(pattervalue),sememe3_能(able),sememe4_携带(bring)和sememe5_特定牌子(spebrand)。sense2_apple的义原为:sememe1_水果(fruit)。如图5所示,hownet中义原的组织形式为层级树状的结构(如sense1_applebrand中所示的义原组织形式)。由于hownet特殊的义原组织形式,使得可以深入到词汇的语义内部来对词汇进行描述。

但是在se-wrl模型中,认为同一语义下的每一个义原是相互等价的,这样的假设显然存在不合理性。同一语义下的不同义原应该是不等价的,即每个不同的义原在构成语义时,义原对形成语义的贡献应该是不同的。如图5所示,造成义原的不等价性很大的一部分原因是由于义原的层级树状结构引起的,处于不同层次不同分支下的义原通常情况下是不等价的;其次即使是同一层次同一分支下的义原在面对不同的上下文时也应该是不等价的。



技术实现要素:

为了解决上述问题,本发明提供了一种基于双层attention机制的词嵌入方法、设备及存储设备,一种基于双层attention机制的词嵌入方法,主要包括以下步骤:

s101:利用hownet语义知识库,找出分完词的待处理语料中的各个词汇,对应的语义和语义的义原,从而生成各词汇的词汇-语义-义原的对应关系,进而根据所述对应关系初始化所有词汇的向量表示和各词汇对应的所有语义的义原的向量表示;

s102:根据所有词汇的向量表示和所有词汇对应的所有语义的义原的向量表示,使用义原级别的attention得到各词汇在同一语义下不同义原的权重;

s103:根据各词汇在同一语义下不同义原的权重,对各词汇的各个语义对应的所有义原进行加权计算得到各词汇的各个语义的向量表示;

s104:根据各词汇的各个语义的向量表示,使用语义级别的attention得到各词汇的各个语义的权重;

s105:根据各词汇的各个语义的权重,对各词汇的所有语义进行加权计算,得到所述语料的各词汇的向量表示。

进一步地,一种用于skip-gram中上下文词的基于双层attention机制的词嵌入方法,其特征在于,包括如下步骤:

s201:利用hownet语义知识库,找出分完词的待处理语料中的各个词汇,对应的语义和语义的义原,从而生成各词汇的词汇-语义-义原的对应关系,进而根据所述对应关系初始化所有词汇的向量表示和各词汇对应的所有语义的义原的向量表示;

s202:根据所有词汇的向量表示和所有词汇对应的所有语义的义原的向量表示,使用义原级别的attention得到各词汇在同一语义下不同义原的权重,如公式(1)所示:

上式中,表示第t个目标词汇wt的第c个上下文词汇wc的第i个语义si对应的第j个义原的权重,其中,a≤t≤w-a,w为分完词的待处理语料中的词汇总个数,a为上下文窗口大小,为预设值,且t-a≤c≤t+a,c≠t;表示第t个目标词汇wt的第c个上下文词汇wc的第i个语义对应的第k个义原,为目标词汇wt的上下文词汇wc的第i个语义对应的所有义原的集合;为目标词汇wt的第i个语义si的第j个义原为目标词汇wt的上下文词汇wc对应的所有语义的集合;

s203:根据各词汇在同一语义下不同义原的权重,对各词汇的各个语义对应的所有义原进行加权计算得到各词汇的各个语义的向量表示;如公式(2)所示:

上式中,为目标词汇wt的上下文词汇wc的第i个语义的向量表示;为目标词汇wt的上下文词汇wc的第i个语义si的第j个义原的向量表示,为目标词汇wt的上下文词汇wc的第i个语义对应的所有义原的集合;

s204:根据各词汇的各个语义的向量表示,使用语义级别的attention得到各词汇的各个语义的权重;如公式(3)所示:

上式中,为目标词汇wt的上下文词汇wc的第i个语义对应的权重;为目标词汇wt的上下文词汇wc的第i个语义的向量表示,为目标词汇wt的上下文词汇wc对应的所有语义的集合;

s205:根据各词汇的各个语义的权重,对各词汇的所有语义进行加权计算,得到目标词汇wt对应的上下文词wc的向量表示,如公式(4)所示:

上式中,wc为目标词汇wt的上下文词汇wc的向量表示;为步骤s201中初始化的目标词汇wt的上下文词汇wc的第i个语义,为目标词汇wt的上下文词汇wc对应的所有语义的集合;

循环执行步骤s202至s205,直到分完词的待处理语料中的所有词汇的向量表示均被更新。

进一步地,一种用于skip-gram中目标词的基于双层attention机制的词嵌入方法,其特征在于,包括如下步骤:

s301:利用hownet语义知识库,找出分完词的待处理语料中的各个词汇,对应的语义和语义的义原,从而生成各词汇的词汇-语义-义原的对应关系,进而根据所述对应关系初始化所有词汇的向量表示和各词汇对应的所有语义的义原的向量表示;

s302:根据初始化得到的所有词汇的向量表示,采用公式(5)计算得到各个词汇对应的上下文的向量表示,由上下文窗口中的所有词汇的向量的均值得到:

上式中,wcontext为第t个词汇wt对应的上下文的向量表示;a为上下文窗口大小,为预设值;wj为第t个上下文词汇对应的第j个词汇的向量表示,t-a≤j≤t+a,j≠t;a≤t≤w-a,w为分完词的待处理语料中的词汇总个数;

s303:根据所有词汇的向量表示和所有词汇对应的所有语义的义原的向量表示,使用义原级别的attention得到各词汇在同一语义下不同义原的权重;如公式(6)所示:

上式中,为使用wcontext对wt的第i个语义中的第j个义原进行attention计算的权重,为wt的第i个语义的所有义原的集合,k的取值范围和j相同;为目标词汇wt对应的所有语义的集合;

s304:根据各词汇在同一语义下不同义原的权重,对各词汇的各个语义对应的所有义原进行加权计算得到各词汇的各个语义的向量表示;如公式(7)所示:

上式中,为目标词汇wt的第i个语义的向量表示;为目标词汇wt的第i个语义si的第j个义原的向量表示;

s305:根据各词汇的各个语义的向量表示,使用语义级别的attention得到各词汇的各个语义的权重;如公式(8)所示:

上式中,为目标词汇wt的第i个语义对应的权重;为目标词汇wt的第i个语义的向量表示,为目标词汇wt的所有语义的集合;

s306:根据各词汇的各个语义的权重,对各词汇的所有语义进行加权计算,得到所述语料的各词汇的向量表示;如公式(9)所示:

上式中,wt为第t个词汇对应的向量表示;为步骤s301中初始化的目标词汇wt的第i个语义的向量表示;

循环执行步骤s302至s306,直到分完词的待处理语料中的所有词汇的向量表示均被更新。

一种存储设备,所述存储设备存储指令及数据用于实现一种基于双层attention机制的词嵌入方法。

一种基于attention机制和义原信息的词嵌入设备,包括:处理器及所述存储设备;所述处理器加载并执行所述存储设备中的指令及数据用于实现一种基于双层attention机制的词嵌入方法。

本发明提供的技术方案带来的有益效果是:本发明所提出的技术方案创新性地引入attention机制来捕捉词汇内部的语义权重以及语义内部的义原权重,可以更加深入和准确的描述词汇内部的语义随上下文的变化,从而能够更好的对词汇在上下文中的语义进行表达。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明实施例中一种基于双层attention机制的词嵌入方法的流程图;

图2是本发明实施例中一种基于双层attention机制的词嵌入方法的模型图;

图3是本发明实施例中一种用于skip-gram中上下文词的基于双层attention机制的词嵌入方法的模型图;

图4是本发明实施例中一种用于skip-gram中目标词的基于双层attention机制的词嵌入方法的模型图;

图5是本发明实施例中采用hownet对词汇建模的示例图;

图6是本发明实施例中硬件设备工作的示意图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。

本发明的实施例提供了一种基于双层attention机制的词嵌入方法。

请参考图1,图1是本发明实施例中一种基于双层attention机制的词嵌入方法的流程图,其特征在于,所述一种基于双层attention机制的词嵌入方法,具体包括如下步骤:

s101:利用hownet语义知识库,找出分完词的待处理语料中的各个词汇,对应的语义和语义的义原,从而生成各词汇的词汇-语义-义原的对应关系,进而根据所述对应关系初始化所有词汇的向量表示和各词汇对应的所有语义的义原的向量表示;

s102:根据所有词汇的向量表示和所有词汇对应的所有语义的义原的向量表示,使用义原级别的attention(sememe-levelattention)得到各词汇在同一语义下不同义原的权重;

s103:根据各词汇在同一语义下不同义原的权重,对各词汇的各个语义对应的所有义原进行加权计算得到各词汇的各个语义的向量表示;

s104:根据各词汇的各个语义的向量表示,使用语义级别的attention(sense-levelattention)得到各词汇的各个语义的权重;

s105:根据各词汇的各个语义的权重,对各词汇的所有语义进行加权计算,得到所述语料的各词汇的向量表示。

本发明的实施例中的一种基于双层attention机制的词嵌入方法的模型图如图2所示;采用了双层attention的架构,包括sense-levelattention和sememe-levelattention,采用双层attention机制的意义在于:1)捕捉语义随上下文的权重变化。一个词汇可能拥有多种不同的语义,而这些语义的变化是通过不同的上下文表现出来的,但这并不意味着词汇在特定上下文中的语义就是唯一的。我们认为,词汇在特定上下文中存在特定的语义倾向,同时应该是多种不同语义的融合。随着上下文的改变,语义的权重也在发生着相应的变化。2)捕捉义原随上下文的权重变化。在现有模型中,认为构成语义的每一个义原是相互等价的,但是这样的假设存在不合理的地方,义原在构成一个词汇的语义时,不同的义原对语义的贡献值应该是不同的。于是通过attention机制来捕获义原随上下文的权重变化。

请参考图3,图3是本发明实施例中一种用于skip-gram中上下文词的基于双层attention机制的词嵌入方法的模型图;其中,w,s和x分别代表词汇集合,语义集合和义原集合,对于每一个词w∈w,对应的有多个s(w)表示词w对应的sense集合;对于每一个对应的有多个不同的表示词w对应的第i个sense的sememe集合;c(w)表示词w对应的上下文集合。采用w、s和x对应的粗体形式w、s和x表示词汇(word)、语义(sense)和义原(sememe)的嵌入(向量表示);该方法将所述一种基于双层attention机制的词嵌入方法用于skip-gram模型的上下文词汇中,即将目标词嵌入作为attention指导上下文词汇的语义生成,其特征在于,所述一种用于skip-gram中上下文词的基于双层attention机制的词嵌入方法,具体包括如下步骤:

s201:利用hownet语义知识库,找出分完词的待处理语料中的各个词汇,对应的语义和语义的义原,从而生成各词汇的词汇-语义-义原的对应关系,进而根据所述对应关系初始化所有词汇的向量表示和各词汇对应的所有语义的义原的向量表示;

s202:根据所有词汇的向量表示和所有词汇对应的所有语义的义原的向量表示,使用义原级别的attention得到各词汇在同一语义下不同义原的权重,如公式(1)所示:

上式中,表示第t个目标词汇wt的第c个上下文词汇wc的第i个语义si对应的第j个义原的权重,其中,a≤t≤w-a,w为分完词的待处理语料中的词汇总个数,a为上下文窗口大小,为预设值,且t-a≤c≤t+a,c≠t;表示第t个目标词汇wt的第c个上下文词汇wc的第i个语义对应的第k个义原,为目标词汇wt的上下文词汇wc的第i个语义对应的所有义原的集合;为目标词汇wt的第i个语义si的第j个义原为目标词汇wt的上下文词汇wc对应的所有语义的集合;

s203:根据各词汇在同一语义下不同义原的权重,对各词汇的各个语义对应的所有义原进行加权计算得到各词汇的各个语义的向量表示;如公式(2)所示:

上式中,为目标词汇wt的上下文词汇wc的第i个语义的向量表示;为目标词汇wt的上下文词汇wc的第i个语义si的第j个义原的向量表示,为目标词汇wt的上下文词汇wc的第i个语义对应的所有义原的集合;

s204:根据各词汇的各个语义的向量表示,使用语义级别的attention得到各词汇的各个语义的权重;如公式(3)所示:

上式中,为目标词汇wt的上下文词汇wc的第i个语义对应的权重;为目标词汇wt的上下文词汇wc的第i个语义的向量表示,为目标词汇wt的上下文词汇wc对应的所有语义的集合;

s205:根据各词汇的各个语义的权重,对各词汇的所有语义进行加权计算,得到目标词汇wt对应的上下文词wc的向量表示,如公式(4)所示:

上式中,wc为目标词汇wt的上下文词汇wc的向量表示;为步骤s201中初始化的目标词汇wt的上下文词汇wc的第i个语义,为目标词汇wt的上下文词汇wc对应的所有语义的集合;

循环执行步骤s202至s205,直到分完词的待处理语料中的所有词汇的向量表示均被更新。

请参考图4,图4是本发明实施例中一种用于skip-gram中目标词的基于双层attention机制的词嵌入方法的模型图;其中,w,s和x分别代表词汇集合,语义集合和义原集合,对于每一个词w∈w,对应的有多个s(w)表示词w对应的sense集合;对于每一个对应的有多个不同的表示词w对应的第i个sense的sememe集合;c(w)表示词w对应的上下文集合。采用w、s和x对应的粗体形式w、s和x表示词汇(word)、语义(sense)和义原(sememe)的嵌入(向量表示);该方法将所述一种基于双层attention机制的词嵌入方法用于skip-gram模型中的目标词汇上,即将上下文词汇嵌入作为attention来指导目标词在上下文词汇中的语义生成,其特征在于,所述一种用于skip-gram中目标词的基于双层attention机制的词嵌入方法,具体包括如下步骤:

s301:利用hownet语义知识库,找出分完词的待处理语料中的各个词汇,对应的语义和语义的义原,从而生成各词汇的词汇-语义-义原的对应关系,进而根据所述对应关系初始化所有词汇的向量表示和各词汇对应的所有语义的义原的向量表示;

s302:根据初始化得到的所有词汇的向量表示,采用公式(5)计算得到各个词汇对应的上下文的向量表示,由上下文窗口中的所有词汇的向量的均值得到:

上式中,wcontext为第t个词汇wt对应的上下文的向量表示;a为上下文窗口大小,为预设值;wj为第t个上下文词汇对应的第j个词汇的向量表示,t-a≤j≤t+a,j≠t;a≤t≤w-a,w为分完词的待处理语料中的词汇总个数;

s303:根据所有词汇的向量表示和所有词汇对应的所有语义的义原的向量表示,使用义原级别的attention得到各词汇在同一语义下不同义原的权重;如公式(6)所示:

上式中,为使用wcontext对wt的第i个语义中的第j个义原进行attention计算的权重,为wt的第i个语义的所有义原的集合,k的取值范围和j相同;为目标词汇wt对应的所有语义的集合;

s304:根据各词汇在同一语义下不同义原的权重,对各词汇的各个语义对应的所有义原进行加权计算得到各词汇的各个语义的向量表示;如公式(7)所示:

上式中,为目标词汇wt的第i个语义的向量表示;为目标词汇wt的第i个语义si的第j个义原的向量表示;

s305:根据各词汇的各个语义的向量表示,使用语义级别的attention得到各词汇的各个语义的权重;如公式(8)所示:

上式中,为目标词汇wt的第i个语义对应的权重;为目标词汇wt的第i个语义的向量表示,为目标词汇wt的所有语义的集合;

s306:根据各词汇的各个语义的权重,对各词汇的所有语义进行加权计算,得到所述语料的各词汇的向量表示;如公式(9)所示:

上式中,wt为第t个词汇对应的向量表示;为步骤s301中初始化的目标词汇wt的第i个语义的向量表示;

循环执行步骤s302至s306,直到分完词的待处理语料中的所有词汇的向量表示均被更新。

请参见图6,图6是本发明实施例的硬件设备工作示意图,所述硬件设备具体包括:一种基于attention机制和义原信息的词嵌入设备601、处理器602及存储设备603。

一种基于attention机制和义原信息的词嵌入设备601:所述一种基于attention机制和义原信息的词嵌入设备601实现所述一种基于双层attention机制的词嵌入方法。

处理器602:所述处理器602加载并执行所述存储设备603中的指令及数据用于实现所述一种基于双层attention机制的词嵌入方法。

存储设备603:所述存储设备603存储指令及数据;所述存储设备603用于实现所述一种基于双层attention机制的词嵌入方法。

本发明的有益效果是:本发明所提出的技术方案创新性地引入attention机制来捕捉词汇内部的语义权重以及语义内部的义原权重,可以更加深入和准确的描述词汇内部的语义随上下文的变化,从而能够更好的对词汇在上下文中的语义进行表达。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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