CN113761934B - 一种基于自注意力机制的词向量表示方法及自注意力模型 - Google Patents

一种基于自注意力机制的词向量表示方法及自注意力模型 Download PDF

Info

Publication number
CN113761934B
CN113761934B CN202110866398.7A CN202110866398A CN113761934B CN 113761934 B CN113761934 B CN 113761934B CN 202110866398 A CN202110866398 A CN 202110866398A CN 113761934 B CN113761934 B CN 113761934B
Authority
CN
China
Prior art keywords
matrix
word vector
vector sequence
word
self
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
Application number
CN202110866398.7A
Other languages
English (en)
Other versions
CN113761934A (zh
Inventor
张鹏
王宁宁
甘国兵
魏俊秋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110866398.7A priority Critical patent/CN113761934B/zh
Publication of CN113761934A publication Critical patent/CN113761934A/zh
Application granted granted Critical
Publication of CN113761934B publication Critical patent/CN113761934B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种基于自注意力机制的词向量表示方法及自注意力模型,可应用于自然语言处理领域,包括:将第一词向量序列进行聚类,得到词向量所属的簇信息,之后将具备簇信息的第一词向量序列重新进行排序,使得排序后的词向量序列中语义相近的词向量排在一起,并基于排序后的第一词向量序列调整矩阵K、V、Q中词向量的排序,再将排序后的K、V、Q进行分块处理,从而将相似度高的词向量限制在同一个块中,并在各个块中进行词向量与词向量两两之间的相似度比较(即将自注意力限制在各个块中),减少了传统自注意力机制中的冗余信息,使得自注意力模型能够更加关注有效的自注意力并且学到有效的聚类方式,提高了自注意力模型的性能与计算速度。

Description

一种基于自注意力机制的词向量表示方法及自注意力模型
技术领域
本申请涉及自然语言处理领域,尤其涉及一种基于自注意力机制的词向量表示方法及自注意力模型。
背景技术
自注意力(self attention,SA)机制在自然语言处理(natural languageprocessing,NLP)领域有着非常广泛的应用,采用自注意力机制的软/硬件则可称为自注意力模型,自注意力模型是NLP领域当前最流行的模型Transformer的主要组成部分。
自注意力机制的基本原理是:通过计算一个序列数据(如图1中的自然语言序列“华为手机很不错。”)中词与词两两之间的依赖关系(也可称为相似度),将词编码成为若干向量表示,使得输出的词向量包含其上下文(即句子中其他的词)的语义信息,该词向量在深度学习(deep learning)中也称为隐状态。如图1所示,自然语言序列“华为手机很不错。”中各个词的初始词向量表示为x1,x2,…,x8,自注意力模型将这些初始词向量进一步优化成为更好的表示,优化得到输出的词向量表示为h1,h2,…,h8
然而,现有的自注意力模型的局限性在于:1、时间复杂度高,若输入的词向量序列长度为N,每个词向量的维度为d,则模型的复杂度为O(N2d),模型在建模长序列的任务时,复杂度是N的平方级。例如序列长度为64K,则注意力矩阵是64K×64K矩阵,在32浮点数中需要16GB内存;2、冗余注意力信息:模型建模了词向量序列中所有词向量两两之间的注意力,对注意力的建模有冗余。
发明内容
本申请实施例提供了一种基于自注意力机制的词向量表示方法及自注意力模型,用于通过聚类方式将输入的词向量序列中的词向量重新进行排序,使得排序后的词向量序列中语义相近的词向量排在一起,之后将排序后的词向量序列进行分块处理,从而将相似度高的词向量限制在同一个块中,并在各个块中进行词向量与词向量两两之间的相似度比较(即将自注意力限制在各个块中),减少了传统自注意力机制中的冗余信息,使得自注意力模型能够更加关注有效的自注意力并且学到有效的聚类方式,提高自注意力模型的性能与计算速度。
基于此,本申请实施例提供以下技术方案:
第一方面,本申请实施例首先提供一种基于自注意力机制的词向量表示方法,可应用于自然语言处理领域中,该方法包括:首先,对第一词向量序列进行聚类操作,从而得到第一词向量序列中的词向量所属的簇信息,其中,一个簇信息对应一个聚类,且该第一词向量序列是基于初始词向量序列得到,在本申请实施例中,初始词向量序列为向自注意力模型输入的词向量序列。在得到第一词向量序列中的词向量的簇信息之后,将进一步根据该第一词向量序列中的词向量所属的簇信息对第一词向量序列中的词向量重新进行排序,得到的排序后的第一词向量序列可称为第二词向量序列,其中,第二词向量序列中属于相同簇的词向量处于相邻位置。在得到第二词向量序列之后,基于该第二词向量序列中的每个词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,从而得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q。需要注意的是,矩阵K、矩阵V、矩阵Q为初始词向量序列分别与第一权重矩阵、第二权重矩阵、第三权重矩阵做矩阵乘法得到的矩阵,而第一权重矩阵、第二权重矩阵、第三权重矩阵则分别为训练后的第一神经网络、训练后的第二神经网络、训练后的第三神经网络的权重矩阵。在得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q之后,将进一步对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自分块,从而分别得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,其中,m≥2。之后,基于这m个矩阵块K、m个矩阵块V、m个矩阵块Q进行点积自注意力操作,得到目标词向量序列。在本申请上述实施方式中,通过聚类方式将输入的词向量序列中的词向量重新进行排序,使得排序后的词向量序列中语义相近的词向量排在一起,之后将排序后的词向量序列进行分块处理,从而将相似度高的词向量限制在同一个块中,并在各个块中进行词向量与词向量两两之间的相似度比较(即将自注意力限制在各个块中),减少了传统自注意力机制中的冗余信息,使得自注意力模型能够更加关注有效的自注意力并且学到有效的聚类方式,提高自注意力模型的性能与计算速度。
在第一方面的一种可能的实现方式中,对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自分块的方式包括但不限于:(1)对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自分别均等分块,分别得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,其中,每个矩阵块K、矩阵块V、矩阵块Q中包括的词向量的数量相同;(2)将排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自属于相同簇的词向量分在一个矩阵块中,分别得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,其中,每个矩阵块K、矩阵块V、矩阵块Q中包括的词向量都属于同一簇。
在本申请上述实施方式中,具体阐述了的几种分块方式,可基于实际应用自行选择分块方式,从而具备可选择性以及灵活性。
在第一方面的一种可能的实现方式中,对第一词向量序列进行聚类操作以得到第一词向量序列中的词向量所属的簇信息的方式可以通过如下方式:首先,将该第一词向量序列中的每个词向量各自投影为目标空间的一个投影点,其中,一个词向量对应一个投影点,且第一词向量序列中的词向量的维度与该目标空间的维度相同,之后,对各个投影点进行聚类,得到n个簇,n≥1,一个簇对应一个簇信息,即得到每个投影点各自属于哪个簇的信息,得到了每个投影点各自属于哪个簇也就知道了该第一词向量序列中每个词向量各自属于哪个簇。这里需要注意的是,由于投影点的数量是与第一词向量序列中词向量的数量对应的(即上述所述的一个词向量对应一个投影点),假设第一词向量序列中只有一个词向量,那么得到的投影点就是一个,得到每个投影点各自属于哪个簇的信息就是指:这一个投影点所属于的簇信息;假设第一词向量序列中有多个词向量,那么得到的投影点就有多个,得到每个投影点各自属于哪个簇的信息就是指:这多个投影点中的每一个投影点各自所属于的簇信息。具体本申请对第一词向量序列中词向量的数量不做限定。
在本申请上述实施方式中,具体阐述了对第一词向量序列中的词向量进行聚类的一种实现方式,具备可实现性。
在第一方面的一种可能的实现方式中,基于m个矩阵块K、m个矩阵块V、m个矩阵块Q进行点积自注意力操作,得到目标词向量序列的方式可以是:将m个矩阵块K、m个矩阵块V、m个矩阵块Q各自分别组合成三阶张量K、三阶张量V、三阶张量Q。并基于该三阶张量V、该三阶张量K以及三阶张量Q,通过点积自注意力操作,得到目标词向量序列。
在本申请上述实施方式中,具体阐述了一种基于m个矩阵块K、m个矩阵块V、m个矩阵块Q进行点积自注意力操作,得到目标词向量序列的实现方式,该实现方式是将二维的多个矩阵块分别组合为三阶张量,然后将得到的三个三阶张量作为一个整体进行点积自注意力操作得到目标词向量序列,由于矩阵块K、矩阵块V、矩阵块Q的数量相同,切块的方式也相同,因此可保证在对该三阶张量V、三阶张量K以及三阶张量Q进行点积自注意力操作的过程中,是在各个矩阵块中进行词向量与词向量两两之间的相似度比较(即将自注意力限制在各个块中),减少了传统自注意力机制中的冗余信息。
在第一方面的一种可能的实现方式中,对三阶张量V、三阶张量K以及三阶张量Q进行点积自注意力操作可以是:首先,计算三阶张量K以及三阶张量Q的乘积,得到一个注意力矩阵,之后,将该注意力矩阵与三阶张量V相乘,并利用softmax函数对得到的相乘结果进行处理,从而得到三阶张量的处理结果,最后再根据得到的三阶张量的处理结果得到目标词向量序列。在本申请实施例中,对分块后再组合的三阶张量V、三阶张量K以及三阶张量Q进行自注意力操作的效果等价于将不同的分块中的词向量按块之间的排列顺序分别输入自注意力模型中,并且得到相应输出的该分块中的词向量序列,然后将各个分块经过自注意力模型后得到的词向量序列进行拼接,并最终得到输出的目标词向量序列。
在本申请上述实施方式中,通过将整体的词向量序列参与自注意力机制的计算划分为小块参与到自注意力机制的计算中,块与块之间不进行自注意力机制的计算,减少了每个词的关联数,进而减少了整体的计算量。相比于已有方式计算词向量序列中词向量两两之间的相似度的方式,本申请实施例的计算复杂度为O(N*m*d+m*(N/m)2*d)(均等分块的情况下),其中,N/m为每个矩阵块中词向量的数量,当m取
Figure BDA0003187469730000031
时,模型的计算复杂度最低为
Figure BDA0003187469730000032
相比于已有方式的复杂度O(N2d),复杂度被大大降低。
在第一方面的一种可能的实现方式中,根据三阶张量的处理结果得到目标词向量序列的具体实现方式可以是:将得到的三阶张量的处理结果拆分为与m个矩阵块K、m个矩阵块V或m个矩阵块Q对应的m个目标矩阵块,并对得到的m个目标矩阵块在二维尺度上进行合并,得到目标矩阵,即将三阶张量表示的处理结果按照逆操作的方式降回二维尺度上的矩阵表示,之后,再根据矩阵K、矩阵V、矩阵Q中的词向量的排列顺序(即初始的词向量的排序)对该目标矩阵中词向量的排列顺序进行调整,得到最终输出的目标词向量序列。
在本申请上述实施方式中,由于得到的三阶张量的处理结果是调整了词向量的排序的三阶张量处理结果,因此要降维,并需要把这些词向量的排列顺序调整回到其在原句中的顺序,得到的才是最终输出的目标词向量序列,从而保证了输出的目标词向量序列的准确性。
在第一方面的一种可能的实现方式中,第一词向量序列基于初始词向量序列得到的方式包括但不限于如下方式:(1)将初始词向量序列输入训练后的目标神经网络,从而得到第一词向量序列;(2)将初始词向量序列作为第一词向量序列。
在本申请上述实施方式中,具体阐述了可以有多种方式得到第一词向量序列,第一种方式是经由训练后的目标神经网络对初始词向量序列进行预处理,得到的第一词向量序列为更加适合聚类的词向量序列,可以提高后续聚类的准确度。而第二种方式是直接对初始词向量序列进行后续的聚类操作,可节约时间,提高了处理效率。
在第一方面的一种可能的实现方式中,在目标神经网络为第一神经网络(第一神经网络为对初始词向量序列进行处理得到矩阵K的神经网络)的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第一神经网络,得到的第一词向量序列就为该矩阵K。在这种情况下,第二词向量序列则为排序后的矩阵K。因此,在本申请实施例中,基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q的过程则为:基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵V、排序后的矩阵Q(使得排序后的矩阵V、排序后的矩阵Q中每个词向量在各自序列中所处的顺序与第二词向量序列中每个词向量所处的顺序保持一致),这是因为在这种情况下,第一词向量序列为自注意力机制中的矩阵K,第二词向量序列为排序后的矩阵K。
在本申请上述实施方式中,在该目标神经网络为第一神经网络的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第一神经网络,得到的第一词向量序列就为该矩阵K。在这种情况下,第二词向量序列则为排序后的矩阵K,后续无需再次计算,节约了计算资源。
在第一方面的一种可能的实现方式中,在该目标神经网络为第二神经网络(第二神经网络为对初始词向量序列进行处理得到矩阵V的神经网络)的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第二神经网络,得到的第一词向量序列就为该矩阵V。在这种情况下,第二词向量序列则为排序后的矩阵V。因此,在本申请实施例中,基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q的过程则为:基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵Q(使得排序后的矩阵K、排序后的矩阵Q中每个词向量在各自序列中所处的顺序与第二词向量序列中每个词向量所处的顺序保持一致),这是因为在这种情况下,第一词向量序列为自注意力机制中的矩阵V,第二词向量序列为排序后的矩阵V。
在本申请上述实施方式中,在该目标神经网络为第二神经网络的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第二神经网络,得到的第一词向量序列就为该矩阵V。在这种情况下,第二词向量序列则为排序后的矩阵V,后续无需再次计算,节约了计算资源。
在第一方面的一种可能的实现方式中,在该目标神经网络为第三神经网络(第三神经网络为对初始词向量序列进行处理得到矩阵Q的神经网络)的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第三神经网络,得到的第一词向量序列就为该矩阵Q。在这种情况下,第二词向量序列则为排序后的矩阵Q。因此,在本申请实施例中,基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q的过程则为:基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V(使得排序后的矩阵K、排序后的矩阵V中每个词向量在各自序列中所处的顺序与第二词向量序列中每个词向量所处的顺序保持一致),这是因为在这种情况下,第一词向量序列为自注意力机制中的矩阵Q,第二词向量序列为排序后的矩阵Q。
在本申请上述实施方式中,在该目标神经网络为第三神经网络的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第三神经网络,得到的第一词向量序列就为该矩阵Q。在这种情况下,第二词向量序列则为排序后的矩阵Q,后续无需再次计算,节约了计算资源。
本申请实施例第二方面还提供一种自注意力模型,该自注意力模型具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请实施例第三方面提供一种计算机设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请实施例第一方面或第一方面任意一种可能实现方式的方法。
本申请实施例第四方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的方法。
本申请实施例第五方面提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任意一种可能实现方式的方法。
本申请实施例第六方面提供了一种芯片,该芯片包括至少一个处理器和至少一个接口电路,该接口电路和该处理器耦合,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,至少一个处理器用于运行计算机程序或指令,其具有实现如上述第一方面或第一方面任意一种可能实现方式的方法的功能,该功能可以通过硬件实现,也可以通过软件实现,还可以通过硬件和软件组合实现,该硬件或软件包括一个或多个与上述功能相对应的模块。此外,该接口电路用于与该芯片之外的其它模块进行通信,例如,该接口电路可将芯片上处理器得到的目标词向量序列发送给各种终端设备(如,手机、个人电脑等)、可穿戴设备(如,智能手环、智能手表等)、智能行驶(如,无人驾驶、辅助驾驶等)的智能体进行应用。
附图说明
图1为本申请实施例提供的自注意力机制的基本原理的一个示意图;
图2为本申请实施例提供的目前计算自注意力的方式的一个示意图;
图3为本申请实施例提供的自注意力模型的一个示意图;
图4为本申请实施例提供的词表示学习模块工作的一个示意图;
图5为本申请实施例提供的神经聚类模块工作的一个示意图;
图6为本申请实施例提供的分块操作模块工作的一个示意图;
图7为本申请实施例提供的神经聚类自注意力模块工作的一个示意图;
图8为本申请实施例提供的基于自注意力机制的词向量表示方法的一个流程示意图;
图9为本申请实施例提供的对第一词向量序列进行聚类操作的一个示意图;
图10为本申请实施例提供的质心的一个示意图;
图11为本申请实施例提供的基于前序质心更新当前质心并基于当前质心对当前的第一词向量序列进行聚类操作的一个示意图;
图12为本申请实施例提供的对第一词向量序列进行排序得到第二词向量序列的一个示意图;
图13为本申请实施例提供的对词向量序列进行均等分块的一个示意图;
图14为本申请实施例提供的基于簇信息对词向量序列进行分块的一个示意图;
图15为本申请实施例提供的对三阶张量V、三阶张量K以及三阶张量Q进行点积自注意力操作的一个示意图;
图16为本申请实施例提供的自注意力模型的一个示意图;
图17为本申请实施例提供的计算机设备的一个结构示意图;
图18为本申请实施例提供的芯片的一种结构示意图。
具体实施方式
本申请实施例提供了一种基于自注意力机制的词向量表示方法及自注意力模型,用于通过聚类方式将输入的词向量序列中的词向量重新进行排序,使得排序后的词向量序列中语义相近的词向量排在一起,之后将排序后的词向量序列进行分块处理,从而将相似度高的词向量限制在同一个块中,并在各个块中进行词向量与词向量两两之间的相似度比较(即将自注意力限制在各个块中),减少了传统自注意力机制中的冗余信息,使得自注意力模型能够更加关注有效的自注意力并且学到有效的聚类方式,提高自注意力模型的性能与计算速度。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请实施例涉及了许多关于自注意力、词向量序列等相关的知识,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。应理解的是,相关的概念解释可能会因为本申请实施例的具体情况有所限制,但并不代表本申请仅能局限于该具体情况,在不同实施例的具体情况可能也会存在差异,具体此处不做限定。
(1)自注意力(self attention,SA)机制
近年来,自注意力机制被广泛应用到基于深度学习的自然语言处理各个任务中,自注意力机制的本质来自于人类视觉注意力机制。人类视觉在感知东西的时候一般不会是一个场景从到头看到尾每次全部都看,而往往是根据需求观察注意特定的一部分。而且当人们发现一个场景经常在某部分出现自己想观察的东西时,人们会进行学习在将来再出现类似场景时把注意力放到该部分上。
自注意力机制一般通过注意力(attention)函数实现,attention函数的本质可以被描述为一个查询矩阵(query,Q)到一系列矩阵(键(key,K)-值(value,V))对的映射。在计算Attention时主要分为三步:第一步是将query和每个key进行相似度计算得到权重,常用的相似度函数有点积、拼接、感知机等;第二步一般是使用一个softmax函数对这些权重进行归一化处理;第三步是将权重和相应的键值value进行加权求和,得到最后的Attention。在本申请实施例中,得到的Attention就是指最后输出的目标词向量序列。
为便于理解上述计算Attention的步骤,下面举例进行示意:假设自注意力模型的输入是一个词向量序列,该序列包含若干个向量,如图1中x1,x2,…,x8,每一个xi都是一个向量,每个向量对应一个词,如图1中x1对应“华”。整个词向量序列则对应输入的句子,如对应图1中的“华为手机很不错。”,通过计算该词向量序列中词向量与词向量之间的相似度,输出一个词向量序列,如图1中的h1,h2,…,h8,每一个hi都是一个向量,该输出的词向量序列中的每一个词向量也对应原句中的一个词,如图1中h1对应“华”,整个输出的词向量序列也对应原句子。具体实现过程可如图2所示,若句子序列长度为N,每个词的维度为d(d可自定义,如,可取256,如何定义词的维度d是现有技术,此处不予赘述),则输入自注意力模型的词向量序列就构成了一个
Figure BDA0003187469730000071
的矩阵,这个矩阵会分别和三个矩阵Wk、Wv、/>
Figure BDA0003187469730000072
做矩阵乘法(即线性变换(linear transformer)),从而得到三个矩阵K、V、/>
Figure BDA0003187469730000073
作为自注意力模型进行点积自注意力操作(dot-product attention)的初始数据,其中,Wk、Wv、Wq为各自为三个训练后的神经网络的权重矩阵,是通过对神经网络进行训练确定的矩阵。自注意力模型进行点积自注意力操作的过程则是:首先计算计算矩阵K和矩阵Q的乘积,从而得到一个N×N的注意力矩阵(attention matrix,AM),表示输入词向量序列中各个元素(即词向量)两两之间的依赖,最终将这个注意力矩阵与矩阵V相乘并经过softmax,转换成为一个/>
Figure BDA0003187469730000074
的词向量序列(即最终输出的词向量序列,也就是得到的最后的Attention),该词向量序列包含N个d维的向量。自注意力机制由于将每个输入词向量xi和其他所有词向量的相似度信息融入了hi,即hi对该句子每个输入词向量的信息都有依赖,因此称计算得到的自注意力(即输出的词向量序列)包含了全局信息,然而这种计算自注意力的方式会存在大量冗余注意力信息。
基于此,本申请实施例改进了目前计算注意力的方式,具体请参阅下述实施例。
(2)自注意力模型(self attention model,SAM)
自注意力模型则是指基于自注意力机制,将一个序列数据有效编码为若干多维的向量,方便进行数运算,该多维向量融合了序列中每个元素的相互之间的相似度信息(该相似度也被称为自注意力,也可称为依赖度)。
这里需要说明的是,自注意力模型输入的一个序列数据可以是文本序列数据,有可以是图像序列数据,还可以是音频序列数据,本申请实施例对序列数据的类型不做限定。为便于阐述,在本申请实施例中,以处理的序列数据为文本数据为例进行阐述,后续不再赘述。
(3)语料(corpus)
语料也称为自由文本,可以是字、词语、句子、片段、文章及其任意组合,本申请对此不作限定。
(4)神经网络
神经网络可以是由神经单元组成的,具体可以理解为具有输入层、隐含层、输出层的神经网络,一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。其中,具有很多层隐含层的神经网络则称为深度神经网络(deep neural network,DNN)。神经网络中的每一层的工作可以用数学表达式
Figure BDA0003187469730000081
来描述,从物理层面,神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由/>
Figure BDA0003187469730000082
完成,4的操作由“+b”完成,5的操作则由“a()”来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合,其中,W是神经网络各层的权重矩阵,该矩阵中的每一个值表示该层的一个神经元的权重值。该矩阵W决定着上文所述的输入空间到输出空间的空间变换,即神经网络每一层的W控制着如何变换空间。训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
(5)损失函数
在训练神经网络的过程中,因为希望神经网络的输出尽可能的接近真正想要预测的值,可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重矩阵(当然,在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重矩阵让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss的过程。
(6)反向传播算法
在神经网络的训练过程中,可以采用误差反向传播(back propagation,BP)算法修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中的参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
首先,在介绍本申请实施例之前,先对本申请实施例涉及的系统架构进行介绍,使得后续便于理解本申请实施例。具体请参阅图3,图3为本申请实施例提供的自注意力模型的一个示意图,自注意力模型300具体可以包括4个模块,分别为:词表示学习模块301、神经聚类模块302、分块操作模块303以及神经聚类自注意力模块304,其中,输入该自注意力模型300的词向量序列可称为初始词向量序列,该自注意力模型300输出的词向量序列则称为目标词向量序列。下面对本申请实施例中自注意力模型300涉及的这些模块的作用分别进行阐述:
(1)词表示学习模块
如图4所示,图4为本申请实施例提供的词表示学习模块工作的一个流程示意图,词表示学习模块301可以包括一些具体功能的神经网络,例如,可以包括本申请实施例所涉及的与矩阵K对应的第一神经网络、与矩阵V对应的第二神经网络、与矩阵Q对应的第三神经网络或者其他功能的一些神经网络,该词表示学习模块301的作用在于对输入自注意力模型300的词向量序列(即初始词向量序列)进行词向量表示的学习,即对每个词向量,通过其中包括的一个或多个神经网络各自将其映射成为一个或多个新的词向量(一个神经网络对应映射一个新的词向量),此处的映射的方式包括但是不限于卷积、直接相加等。
为便于理解,下面以词表示学习模块301包括本申请实施例所述的第一神经网络、第二神经网络以及第三神经网络为例进行说明:初始词向量序列输入到该词表示学习模块301(假设已经训练过),该词表示学习模块301中训练后的第一神经网络、训练后的第二神经网络以及训练后的第三神经网络分别对该输入的初始词向量序列进行处理,分别得到三个中间词向量序列,这分别输出的三个中间词向量序列就为自注意力机制中的矩阵K、矩阵V、矩阵Q。例如,假设输入的初始词向量序列的序列长度为N,该初始词向量序列中每个词向量的维度为d,那么该输入的初始词向量序列就构成了一个
Figure BDA0003187469730000091
的矩阵,这个矩阵会分别和三个权重矩阵Wk、Wv、/>
Figure BDA0003187469730000092
做矩阵乘法(即线性变换),从而得到三个矩阵K、V、
Figure BDA0003187469730000101
作为后续模块的输入。其中,这三个权重矩阵Wk、Wv、Wq分别为训练后的第一神经网络、训练后的第二神经网络、训练后的第三神经网络的权重矩阵。
在本申请的另一些实施方式中,若该词表示学习模块301还包括其他的神经网络,如第四神经网络,那么对于输入的初始词向量序列,经由训练后的第四神经网络的处理,会对应得到与第四神经网络的中间词向量序列,以此类推,词表示学习模块301中包括的每个神经网络对可对输入的初始词向量序列进行对应处理,从而得到对应的中间词向量序列,此处不予赘述,图4仅为示意。
(2)神经聚类模块
神经聚类模块302用于将词表示学习模块301输出的某个中间词向量序列(例如,可以是矩阵K、V、Q中的任意一个,此处不做限定)中的词向量进行聚类操作,将词向量分为若干个簇,并得到该中间词向量序列中每个词向量所属的簇信息,即得到词向量的聚类信息。其中,被选出的这个用来进行聚类操作的中间词向量序列可称为目标中间词向量序列。
需要说明的是,在本申请的一些实施方式中,如图5所示,该神经聚类模块302还可以进一步包括质心维护子模块3021和相似度计算子模块3022两个子模块,分别用来维护和更新每个簇对应的质心以及计算各个词向量与每个质心的相似度从而决定每个词所属的簇,并最终得到选出的该目标中间词向量序列中每个词向量所属的簇信息(可称为词向量的聚类信息)。该神经聚类模块302的计算同样可以由神经网络完成,其中包含若干可训练的参数。
(3)分块操作模块
如图6所示,基于神经聚类模块302得到的词向量的聚类信息,分块操作模块303对该目标中间词向量序列重新排序,得到排序后的目标中间词向量序列(也可称为第二词向量序列),使得排序后的目标中间词向量序列中属于相同簇的词向量处于相邻位置。之后,基于排序后的目标中间词向量序列中的词向量的排列顺序分别调整词表示学习模块301输出的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q,并对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自分块,分别得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,m≥2。
(4)神经聚类自注意力模块
如图7所示,该神经聚类自注意力模块304接收了分块后的词向量序列,将不同的分块中的词分别进行点积自注意力操作,得到相应输出的该分块中的词向量序列,然后将各个分块经过点积自注意力操作后得到的词向量序列进行拼接,并最终按照这些词在原句中的顺序进行排列输出,从而输出最终的目标词向量序列。
值得注意的,图3仅是本申请实施例提供的一种自注意力模型的示意图,图3中所示模块之间的位置关系不构成任何限制。本申请的一些实施例中,例如图3中,各个模块之间是各自独立的,在实际应用中,也可将各模块拆分为功能更加细化的子模块,也可以将若干个模块合并为一个更大的模块,可基于需要对各模块进行调整,本申请对此不做限定。
基于上述所述的系统架构,下面对本申请实施例提供的基于自注意力机制的词向量表示方法进行说明,具体请参阅图8,图8为本申请实施例提供的基于自注意力机制的词向量表示方法的一个流程示意图,具体可以包括如下步骤:
801、对第一词向量序列进行聚类操作,得到第一词向量序列中的词向量所属的簇信息,该第一词向量序列基于初始词向量序列得到。
首先,通过自注意力模型对第一词向量序列进行聚类操作,从而得到第一词向量序列中的词向量所属的簇信息,其中,一个簇信息对应一个聚类,且该第一词向量序列是基于初始词向量序列得到,在本申请实施例中,初始词向量序列为向自注意力模型输入的词向量序列。
这里需要注意的是,由于自注意力模型中包括若干神经网络结构,这些神经网络需要经过训练才能被应用,因此在本申请实施例中,自注意力模型为训练后的自注意力模型,训练方式与常规神经网络的训练方式类似,此处不予赘述。
需要说明的是,在本申请实施例中,第一词向量序列基于初始词向量序列得到的方式包括但不限于如下方式:
(1)将初始词向量序列输入训练后的目标神经网络,得到第一词向量序列。
一种实现方式是将初始词向量序列输入训练后的目标神经网络,从而得到第一词向量序列。这种方式就是经由训练后的目标神经网络对初始词向量序列进行预处理,得到的第一词向量序列为更加适合聚类的词向量序列,可以提高后续聚类的准确度。
这里需要注意的是,该目标神经网络可以是上述图3所述的自注意力模型300中词表示学习模块301包括的任意一个神经网络,例如,可以是第一神经网络,也可以是第二神经网络,还可以是第三神经网络,还可以是其他所包括的神经网络,具体此处对目标神经网络的类型不做限定。
(2)将初始词向量序列作为第一词向量序列。
另一种实现方式是将初始词向量序列作为第一词向量序列。这种方式就是直接对初始词向量序列进行后续的聚类操作,好处在于节约时间,提高了处理效率,但聚类效果不如第一种预处理后的方式。
还需要说明的是,在本申请的一些实施方式中,对第一词向量序列进行聚类操作以得到第一词向量序列中的词向量所属的簇信息的方式可以通过如下方式:首先,将该第一词向量序列中的每个词向量各自投影为目标空间的一个投影点,其中,一个词向量对应一个投影点,且第一词向量序列中的词向量的维度与该目标空间的维度相同(只有维度一致才能使得词向量投影为空间中的一个点),之后,对各个投影点进行聚类,得到n个簇,一个簇对应一个簇信息,即得到每个投影点各自属于哪个簇的信息,得到了每个投影点各自属于哪个簇也就知道了该第一词向量序列中每个词向量各自属于哪个簇。
为便于理解上述对第一词向量序列进行聚类操作得到一词向量序列中的词向量所属的簇信息的过程,下面举例进行示意:具体请参阅图9,图9为本申请实施例提供的对第一词向量序列进行聚类操作的一个示意图,假设该第一词向量序列A包括20个词向量(即第一词向量序列的序列长度N=20),且假设每个词向量的维度d=3,那么该第一词向量序列A中的每个词向量可投影为三维空间中的投影点,一个词向量对应投影为一个投影点,则在该三维空间中一共可得到20个投影点,之后,可基于已有的聚类方式(如,K均值(K–Means)聚类算法、均值漂移聚类算法、层次聚类算法、自组织映射神经网络(self organizingmaps,SOM)聚类算法等,此处不予赘述)对这20个投影点进行聚类,假设聚类后共得到4个簇(即n=4),分别为簇1、簇2、簇3、簇4,那么每个簇的簇信息就可以分别是簇1、簇2、簇3、簇4。这里需要说明的是,每个簇的簇信息就是指每个簇的标识信息,用来区分各个不同的簇,因此在本申请的一些实施方式中,簇信息也可以是额外的命名,可以是不同字母,也可以是不同符号,还可以是不同语言的单词或文字,例如,假设根据预设的命名方式分别将这4个簇命名为A、B、C、D,那么每个簇的簇信息就分别为A、B、C、D,只要能实现对不同簇进行区分的目的都可作为本申请所述的簇信息,具体本申请对此不作限定。
需要注意的是,在图9中,是以第一词向量序列中词向量的维度d=3为例进行说明的,在实际应用中,若d为其他维度,则对应就是投影到对应d的维度空间,投影方式与上述图9对应的实施例中所述的方式类似,此处不予赘述。
需要说明的是,在本申请上述实施方式中,是针对当前输入的第一词向量序列进行聚类操作,该聚类操作过程仅与当前输入的该第一词向量序列有关。而在实际应用中,输入自注意力模型的词向量序列不会只是一个,因此该族注意力模型当前正在处理的第一词向量序列可称为当前的第一词向量序列,已被处理的前序若干个词向量序列则可以称为前序的第一词向量序列。因此在本申请的一些实施方式中,为了进一步提高聚类的准确率,在对当前的第一词向量序列进行聚类操作的过程中,还可以基于前序的第一词向量序列聚类操作得到的质心(即每个簇的中心,也可称为原型)来更新当前聚类操作的质心,在本申请实施例中,基于前序的第一词向量序列聚类操作得到的质心可称为前序质心,当前聚类操作的质心则可称为当前质心,一个质心对应一个簇,并基于当前质心对当前的第一词向量序列进行聚类操作。在本申请实施例中,若后续还有新的第一词向量序列输入,则又将该得到的当前质心作为前序质心,重复执行基于前序质心得到当前质心的过程(即更新当前质心的过程),得到每次当前的第一词向量序列对应的当前质心,更新过程类似,下面具体阐述。
在介绍如何基于前序的第一词向量序列聚类操作得到的质心来更新当前聚类操作的质心之前,先对簇的质心进行介绍,具体如图10所示,图10为本申请实施例提供的质心的一个示意图,假设基于第一词向量序列一共聚类得到3个簇,分别为簇1、簇2、簇3,每个簇的质心坐标为各自对应簇所包括的投影点在投影空间中坐标的平均值,例如,簇1的质心为c1,c1的坐标则是对应簇的5个投影点坐标取平均值得到,c2、c3的坐标的获取方式是类似的。这里需要注意的是,当第一词向量序列为前序的第一词向量序列时,则c1、c2、c3均为前序质心;当第一词向量序列为当前的第一词向量序列时,则c1、c2、c3均为当前质心。
下面介绍如何基于前序质心更新当前质心并基于当前质心对当前的第一词向量序列进行聚类操作的过程,具体请参阅图11,图11为本申请实施例提供的基于前序质心更新当前质心并基于当前质心对当前的第一词向量序列进行聚类操作的一个示意图,在本申请实施例中,前序质心可表示为一个k*d的矩阵A,其中,k为质心数量(在图10对应实施例中,k=3),d为质心的维度,其维度与第一词向量序列中每个词向量的维度相同,当前的第一词向量序列则可以表示为一个N*d的矩阵,该N*d的矩阵可以是矩阵K、V、Q中的任意一个,也可以是基于初始词向量序列得到的其他矩阵,此处不做限定,这里将该矩阵统称为矩阵X,首先,将表示前序质心的矩阵A与表示当前的第一词向量序列的矩阵X做点乘,得到一个相似度矩阵,该相似度矩阵可称为第一相似度矩阵,然后对该第一相似度矩阵进行缩放、归一化等处理,得到一个新的相似度矩阵(可称为第二相似度矩阵,图11中未示出),并将该第二相似度矩阵作为词向量权重更新前序质心,得到当前质心,该当前质心可表示为一个k*d的矩阵B,表示当前质心的矩阵B再与表示当前的第一词向量序列的矩阵X做点乘,得到一个相似度矩阵(可称为第三相似度矩阵),也就是当前的第一词向量序列中的每个词向量和当前质心做点乘,点乘后的结果用于表征该词向量与该当前质心的相似度,最后基于该第三相似度矩阵判断当前的第一词向量序列中的每个词向量各自属于这k个簇中的哪一个簇。
为便于理解上述过程,可继续参阅图10,假设当前的第一词向量序列中的某个词向量投影到投影空间的投影点x1为图10所示,计算该词向量与该当前质心(此时假设c1、c2、c3已经更新为当前质心)的相似度的过程就是比较投影点x1与各个质心c1、c2、c3之间的距离,由图10可知,投影点x1距离簇2的质心c2最近,那么就认为投影点x1对应的该词向量的簇信息为簇2,类似地,当前的第一词向量序列中的每个词向量都可基于类似的方式得到每个词向量各自对应的簇信息,此处不予赘述。
802、根据第一词向量序列中的词向量所属的簇信息对第一词向量序列中的词向量进行排序,得到第二词向量序列,其中,第二词向量序列中属于相同簇的词向量处于相邻位置。
在得到第一词向量序列中的词向量的簇信息之后,将进一步根据该第一词向量序列中的词向量所属的簇信息对第一词向量序列中的词向量重新进行排序,得到的排序后的第一词向量序列可称为第二词向量序列,其中,第二词向量序列中属于相同簇的词向量处于相邻位置。
为便于理解,下面以图12为例进行示意,图12为本申请实施例提供的对第一词向量序列进行排序得到第二词向量序列的一个示意图,假设该第一词向量序列包括16个词向量,这16个词向量在原句中的排列顺序如图12中第一行所示,其中0-15的数用于区分不同位置的词向量。在对该第一词向量序列进行上述步骤801中所述的聚类操作后,得到每个词向量所属的簇信息(如图12中的第二行所示),在图12中,不同的颜色表示第一词向量序列中词向量各自所属的簇不同,之后,再根据每个词向量所属的簇不同将属于同一簇的词向量排在一起,从而得到第二词向量序列(如图12中的第三行)。
需要说明的是,在本申请实施例中,不限定第二词向量序列中簇与簇之间的排列顺序,假设图12中得到的4个簇分别为簇1、簇2、簇3、簇4,那么可以按照簇1、簇2、簇3、簇4的方式依次排列组成第二词向量序列,也可以按照簇4、簇3、簇2、簇1的方式依次排列组成第二词向量序列,还可以按照簇3、簇1、簇4、簇2的方式排列组成第二词向量序列,还可以随机进行排列组成第二词向量序列,具体本申请实施例对如何排列不同簇之间的词向量序列不做限定。
还需要说明的是,在本申请实施例中,属于同一个簇的词向量序列也不限定排列顺序,例如,在图12中,原来处于第一词向量序列中0、4、5、9号位置的词向量均属于同一簇,这4个词向量在该簇中的位置可以随意排列,也可以按照原来所处位置的前后顺序排列(如图12中的排列所示),具体本申请对此不作限定。
还需要说明的是,在本申请的一些实施方式中,可以通过建立索引矩阵实现对第一词向量序列重新排序的目的,具体地,可继续参阅图11,在基于第三相似度矩阵判断当前的第一词向量序列中的每个词向量各自属于这k个簇中的哪一个簇之后,还可进一步得到与当前的第一词向量序列中每个词向量具有最大相似度的当前质心的索引矩阵,再根据索引矩阵重新排序表示该当前的第一词向量序列的矩阵B,得到表示排序后的第一词向量序列的矩阵C,在该矩阵C中,属于相同簇的词向量被排列到相邻位置。
803、基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q。
在得到第二词向量序列之后,基于该第二词向量序列中的每个词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,从而得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q。需要注意的是,矩阵K、矩阵V、矩阵Q为初始词向量序列分别与第一权重矩阵、第二权重矩阵、第三权重矩阵做矩阵乘法得到的矩阵,而第一权重矩阵、第二权重矩阵、第三权重矩阵则分别为训练后的第一神经网络、训练后的第二神经网络、训练后的第三神经网络的权重矩阵。例如,假设输入的初始词向量序列的序列长度为N,该初始词向量序列中每个词向量的维度为d,那么该输入的初始词向量序列就构成了一个
Figure BDA0003187469730000141
的矩阵,这个矩阵会分别和三个权重矩阵Wk、Wv、/>
Figure BDA0003187469730000142
做矩阵乘法(即线性变换),从而得到三个矩阵K、V、/>
Figure BDA0003187469730000143
作为后续模块的输入。其中,这三个权重矩阵Wk、Wv、Wq分别为训练后的第一神经网络、训练后的第二神经网络、训练后的第三神经网络的权重矩阵(即所述的第一权重矩阵、第二权重矩阵以及第三权重矩阵)。
需要说明的是,在本申请实施例中,由于第一词向量序列是基于初始词向量序列得到的,即可以是将初始词向量序列输入训练后的目标神经网络,得到第一词向量序列;也可以是将初始词向量序列直接作为第一词向量序列。在本申请的一些实施方式中,若第一词向量序列是将初始词向量序列输入训练后的目标神经网络得到的,则该目标神经网络可以是上述图3所述的自注意力模型300中词表示学习模块301包括的任意一个神经网络,例如,可以是第一神经网络,也可以是第二神经网络,还可以是第三神经网络,还可以是其他所包括的神经网络,目标神经网络选取的方式不同,则基于该第二词向量序列中的每个词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序的方式也各不相同,下面分别进行阐述:
(1)目标神经网络为第一神经网络的情况,第一神经网络与矩阵K对应。
在该目标神经网络为第一神经网络的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第一神经网络,得到的第一词向量序列就为该矩阵K。在这种情况下,第二词向量序列则为排序后的矩阵K。因此,在本申请实施例中,基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q的过程则为:基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵V、排序后的矩阵Q(使得排序后的矩阵V、排序后的矩阵Q中每个词向量在各自序列中所处的顺序与第二词向量序列中每个词向量所处的顺序保持一致),这是因为在这种情况下,第一词向量序列为自注意力机制中的矩阵K,第二词向量序列为排序后的矩阵K。其中,由于第一词向量序列为自注意力机制中的矩阵K,第二词向量序列为排序后的矩阵K,此处无需多次计算。
(2)目标神经网络为第二神经网络的情况,第二神经网络与矩阵V对应。
在该目标神经网络为第二神经网络的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第二神经网络,得到的第一词向量序列就为该矩阵V。在这种情况下,第二词向量序列则为排序后的矩阵V。因此,在本申请实施例中,基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q的过程则为:基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵Q(使得排序后的矩阵K、排序后的矩阵Q中每个词向量在各自序列中所处的顺序与第二词向量序列中每个词向量所处的顺序保持一致),这是因为在这种情况下,第一词向量序列为自注意力机制中的矩阵V,第二词向量序列为排序后的矩阵V。其中,由于第一词向量序列为自注意力机制中的矩阵V,第二词向量序列为排序后的矩阵V,此处无需多次计算。
(3)目标神经网络为第三神经网络的情况,第三神经网络与矩阵V对应。
在该目标神经网络为第三神经网络的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第三神经网络,得到的第一词向量序列就为该矩阵Q。在这种情况下,第二词向量序列则为排序后的矩阵Q。因此,在本申请实施例中,基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q的过程则为:基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V(使得排序后的矩阵K、排序后的矩阵V中每个词向量在各自序列中所处的顺序与第二词向量序列中每个词向量所处的顺序保持一致),这是因为在这种情况下,第一词向量序列为自注意力机制中的矩阵Q,第二词向量序列为排序后的矩阵Q。其中,由于第一词向量序列为自注意力机制中的矩阵Q,第二词向量序列为排序后的矩阵Q,此处无需多次计算。
(4)目标神经网络为第四神经网络的情况下,第四神经网络均不与矩阵K、矩阵V、矩阵Q对应。
在该目标神经网络为第四神经网络的情况下,该第四神经网络为本申请实施例构建的自注意力模型中的除了上述第一神经网络至第三神经网络之外的其他神经网络,该第四神经网络用于就是用于对初始词向量序列进行预处理,得到更加适合聚类的第一词向量序列,并便于后续进一步得到包括了每个词向量的簇信息的第二词向量序列,再基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q,使得排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q中每个词向量在各自序列中所处的顺序与第二词向量序列中每个词向量所处的顺序保持一致。这种方式就是额外借助一个除第一神经网络至第三神经网络的其他神经网络来获取词向量的簇信息,由于这个额外加入的第四神经网络仅用于得到适合聚类的第一词向量序列,因此其的训练目的更加明确,使得得到的第一词向量序列更加适合聚类,提高了聚类的准确度。
804、对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q分别分块,得到m个矩阵块K、m个矩阵块V、m个矩阵块Q。
在得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q之后,将进一步对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自分块,从而分别得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,其中,m≥2。
需要说明的是,在本申请实施例中,对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自分块的方式包括但不限于:
(1)对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自均等分块。
一种分块方式是对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自均等分块,分别得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,其中,每个矩阵块K、矩阵块V、矩阵块Q中包括的词向量的数量相同。
为便于理解,下面以图13为例对如何均等分块进行示意,假设排序后的矩阵V对应的词向量序列为图13所示,该词向量序列一共包括16个词向量,又假设m=4,由于排序后的矩阵V已经使得属于相同簇的词向量排在了相邻位置,那么基于m=4进行均等分块,可得到4个矩阵块V,每个矩阵块V中包括4个词向量。类似地,排序后的矩阵K、排序后的矩阵Q也可基于类似的方式进行均等分块,从而也可分别得到4个矩阵块K以及4个矩阵块Q,其中,每个矩阵块K中包括4个词向量,每个矩阵块Q中包括4个词向量,分块方式与对排序后的矩阵V分块的方式类似,此处不予赘述。
这里需要说明的是,在本申请实施例中,m可自定义,例如,也可使得m=2、m=8等,优选地,m的取值可基于词向量序列中簇信息的种类数量确定,例如,该矩阵V中一共包括4个簇信息,则可使得m=4。在本申请的另一些实施方式中,m也可基于需求自行设定,本申请实施例对此不做限定。
(2)将排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q中各自属于相同簇的词向量分在一个矩阵块中。
另一种分块方式是将排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自属于相同簇的词向量分在一个矩阵块中,分别得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,其中,每个矩阵块K、矩阵块V、矩阵块Q中包括的词向量都属于同一簇。
为便于理解,下面以图14为例对这种方式的分块进行示意,假设排序后的矩阵V对应的词向量序列为图14所示,该词向量序列一共包括16个词向量,且这16个词向量共被分为4个簇,则将这16个词向量分为4个矩阵块V,每个矩阵块V中的词向量均属于同一簇。
类似地,排序后的矩阵K、排序后的矩阵Q也可基于类似的方式进行分块,从而也可分别得到4个矩阵块K以及4个矩阵块Q,其中,每个矩阵块K中包括的词向量均属于同一簇,分在不同块中的词向量则属于不同簇,同样地,每个矩阵块Q中包括的词向量均属于同一簇,分在不同块中的词向量则属于不同簇,分块方式与对排序后的矩阵V分块的方式类似,此处不予赘述。
805、基于m个矩阵块K、m个矩阵块V、m个矩阵块Q进行点积自注意力操作,得到目标词向量序列。
在分块过程中,排序后的矩阵K、排序后的矩阵V以及排序后的矩阵Q原先为N*d的二维张量,其中N为输入的初始词向量序列中词向量的数量,d是每一个词向量的维度,在分块后,则各自得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,之后,再基于m个矩阵块K、m个矩阵块V、m个矩阵块Q进行点积自注意力操作,得到目标词向量序列。这里需要说明的是,基于m个矩阵块K、m个矩阵块V、m个矩阵块Q进行点积自注意力操作的实现方式包括但不限于:
(1)将m个矩阵块K、m个矩阵块V、m个矩阵块Q各自分别组合成三阶张量K、三阶张量V、三阶张量Q,并基于三阶张量V、三阶张量K以及三阶张量Q,通过点积自注意力操作得到目标词向量序列。
在这种实现方式中,是将m个矩阵块K、m个矩阵块V、m个矩阵块Q各自分别组合成三阶张量K(可记为KO)、三阶张量V(可记为VO)、三阶张量Q(可记为QO)。假设分块方式为均等分块,则KO、VO、QO分别为m*w*d的三维张量,其中w是每一块中词向量的数量,即
Figure BDA0003187469730000171
在得到三阶张量V、三阶张量K以及三阶张量Q之后,再基于该三阶张量V、三阶张量K以及三阶张量Q,通过点积自注意力操作得到目标词向量序列。具体地,在本申请的一些实施方式中,基于三阶张量V、三阶张量K以及三阶张量Q进行点积自注意力操作可以是:首先,计算三阶张量K以及三阶张量Q的乘积,得到一个注意力矩阵,之后,将该注意力矩阵与三阶张量V相乘,并利用softmax函数对得到的相乘结果进行处理,从而得到三阶张量的处理结果,最后再根据得到的三阶张量的处理结果得到目标词向量序列。
需要说明的是,在本申请的一些实施方式中,由于得到的三阶张量的处理结果是调整了词向量的排序的三阶张量处理结果,因此要降维,并需要把这些词向量的排列顺序调整回到其在原句中的顺序,得到的才是最终输出的目标词向量序列。因此,根据三阶张量的处理结果得到目标词向量序列的具体实现方式可以是:将该三阶张量的处理结果拆分为与m个矩阵块K、m个矩阵块V或m个矩阵块Q对应的m个目标矩阵块,即三阶张量K、三阶张量V、三阶张量Q是怎么由m个矩阵块K、矩阵块V、矩阵块Q组合得到的,这里就是怎么将三阶张量的处理结果拆分成m个目标矩阵块的,具体请参阅上述分块、组合过程,此处不予赘述。之后,对得到的m个目标矩阵块在二维尺度上进行合并(即线性合并,直接将各个目标矩阵块按照矩阵块的先后顺序进行拼接),得到目标矩阵,即将三阶张量表示的处理结果按照逆操作的方式降回二维尺度上的矩阵表示,最后,再根据矩阵K、矩阵V、矩阵Q中的词向量的排列顺序(即初始的词向量的排序)对该目标矩阵中词向量的排列顺序进行调整,得到最终输出的目标词向量序列。
为便于理解上述过程,下面以图15为例进行说明,图15为本申请实施例提供的对三阶张量V、三阶张量K以及三阶张量Q进行点积自注意力操作的一个示意图,首先,自注意力模型中用于进行点积自注意力操作的模块(如,图3中的神经聚类自注意力模块304)接收到分块后重新组合的三阶张量QO、KO、VO,并对三阶张量QO、KO、VO进行上述所述的点积自注意力操作,该操作的效果等价于将不同的分块中的词向量按块之间的排列顺序分别输入自注意力模型中,并且得到相应输出的该分块中的词向量序列,然后将各个分块经过自注意力模型后得到的词向量序列进行拼接,最终输出得到N个词的词向量序列(Output),接下来该模块会按照这些词在原句中的顺序进行排列后输出,即输出的是最终的目标词向量序列。
(2)将m个矩阵块K、m个矩阵块V、m个矩阵块Q按照矩阵块的先后顺序各自对应,得到m个块集合,每个块集合中包括一个矩阵块K、一个矩阵块V、一个矩阵块Q,对每个块集合进行一次点积自注意力操作,得到m个操作结果,最后基于这m个操作结果得到目标词向量序列。
与上述将m个矩阵块K、m个矩阵块V、m个矩阵块Q各自分别组合成三阶张量K(可记为KO)、三阶张量V(可记为VO)、三阶张量Q(可记为QO)的方式不同。在这种实现方式中,是以集合块为单位进行点积自注意力操作,一共需要进行m次点积自注意力操作,再基于这m个操作结果得到目标词向量序列。
为便于理解上述实现方式,此处举例进行示意:假设m=3,则经过上述步骤可得到3个矩阵块K(按照分块的先后顺序分别记为矩阵块K1、矩阵块K2、矩阵块K3)、3个矩阵块V(按照分块的先后顺序分别依次记为矩阵块V1、矩阵块V2、矩阵块V3)、3个矩阵块Q(按照分块的先后顺序分别记为矩阵块Q1、矩阵块Q2、矩阵块Q3),由于矩阵块K矩阵块V和矩阵块Q的分块方式以及其中的词向量的排列顺序是一样的,因此,矩阵块K1、矩阵块V1、矩阵块Q1组合为一个块聚合,可称为M1;类似地,矩阵块K2、矩阵块V2、矩阵块Q2组合为一个块聚合,可称为M2;矩阵块K3、矩阵块V3、矩阵块Q3组合为一个块聚合,可称为M3。再依次对得到的这3个块集合进行点积自注意力操作,那么一共需要进行3次点积自注意力操作,得到3次的操作结果,每次的操作结果也是矩阵,也可称为目标矩阵块,之后,对得到的目标矩阵块按照分块的先后顺序进行合并,得到目标矩阵,最后再根据矩阵K、矩阵V、矩阵Q中的词向量的排列顺序(即初始的词向量的排序)对该目标矩阵中词向量的排列顺序进行调整,得到最终输出的目标词向量序列。
在本申请上述实施例中,通过将整体的词向量序列参与自注意力机制的计算划分为小块参与到自注意力机制的计算中,块与块之间不进行自注意力机制的计算,减少了每个词的关联数,进而减少了整体的计算量。相比于已有方式计算词向量序列中词向量两两之间的相似度的方式,本申请实施例的计算复杂度为O(N*m*d+m*(N/m)2*d)(均等分块的情况下),其中,N/m为每个矩阵块中词向量的数量,当m取
Figure BDA0003187469730000191
时,模型的计算复杂度最低为
Figure BDA0003187469730000192
相比于已有方式的复杂度O(N2d),复杂度被大大降低。
在本申请上述实施方式中,通过聚类方式将输入的词向量序列中的词向量重新进行排序,使得排序后的词向量序列中语义相近的词向量排在一起,之后将排序后的词向量序列进行分块处理,从而将相似度高的词向量限制在同一个块中,并在各个块中进行词向量与词向量两两之间的相似度比较(即将自注意力限制在各个块中),减少了传统自注意力机制中的冗余信息,使得自注意力模型能够更加关注有效的自注意力并且学到有效的聚类方式,提高了自注意力模型的性能与计算速度。
在上述实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的自注意力模型,具体参阅图16,图16为本申请实施例提供的一种自注意力模型的示意图,该自注意力模型1600具体可以包括:聚类模块1601、排序模块1602、调整模块1603、分块模块1604以及自注意力模块1605,其中,聚类模块1601,用于对第一词向量序列进行聚类操作,从而得到第一词向量序列中的词向量所属的簇信息,其中,一个簇信息对应一个聚类,且该第一词向量序列是基于初始词向量序列得到,在本申请实施例中,初始词向量序列为向自注意力模型输入的词向量序列。排序模块1602,用于在聚类模块1601得到第一词向量序列中的词向量的簇信息之后,根据该第一词向量序列中的词向量所属的簇信息对第一词向量序列中的词向量重新进行排序,得到的排序后的第一词向量序列可称为第二词向量序列,其中,第二词向量序列中属于相同簇的词向量处于相邻位置。调整模块1603,用于在排序模块1602得到第二词向量序列之后,基于该第二词向量序列中的每个词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,从而得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q。需要注意的是,矩阵K、矩阵V、矩阵Q为初始词向量序列分别与第一权重矩阵、第二权重矩阵、第三权重矩阵做矩阵乘法得到的矩阵,而第一权重矩阵、第二权重矩阵、第三权重矩阵则分别为训练后的第一神经网络、训练后的第二神经网络、训练后的第三神经网络的权重矩阵。例如,假设输入的初始词向量序列的序列长度为N,该初始词向量序列中每个词向量的维度为d,那么该输入的初始词向量序列就构成了一个
Figure BDA0003187469730000193
的矩阵,这个矩阵会分别和三个权重矩阵Wk、Wv、/>
Figure BDA0003187469730000194
做矩阵乘法(即线性变换),从而得到三个矩阵K、V、/>
Figure BDA0003187469730000195
作为后续模块的输入。其中,这三个权重矩阵Wk、Wv、Wq分别为训练后的第一神经网络、训练后的第二神经网络、训练后的第三神经网络的权重矩阵(即所述的第一权重矩阵、第二权重矩阵以及第三权重矩阵)。分块模块1604,用于对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自分块,从而分别得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,并将得到的m个矩阵块K、m个矩阵块V、m个矩阵块Q各自分别组合成三阶张量K、三阶张量V、三阶张量Q,其中,m≥2。自注意力模块1605,用于基于该m个矩阵块K、m个矩阵块V、m个矩阵块Q进行点积自注意力操作,得到目标词向量序列。在本申请上述实施方式中,自注意力模型1600首先通过聚类模块1601将输入的词向量序列进行聚类,之后通过排序模块1602将聚类后具备簇信息的词向量序列中的词向量重新进行排序,使得排序后的词向量序列中语义相近的词向量排在一起,并通过调整模块基于簇信息调整矩阵K、V、Q中词向量的排序,再通过分块模块1604将排序后的K、V、Q中词向量序列进行分块处理,从而将相似度高的词向量限制在同一个块中,并在各个块中进行词向量与词向量两两之间的相似度比较(即将自注意力限制在各个块中),减少了传统自注意力机制中的冗余信息,使得自注意力模型1600能够更加关注有效的自注意力并且学到有效的聚类方式,提高了自注意力模型的性能与计算速度。
在一种可能的设计中,分块模块1604,具体用于:对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q分别均等分块,得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,其中,每个矩阵块K、矩阵块V、矩阵块Q中包括的词向量的数量相同;或,将排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自属于相同簇的词向量分在一个矩阵块中,分别得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,其中,每个矩阵块K、矩阵块V、矩阵块Q中包括的词向量都属于同一簇。
在本申请上述实施方式中,具体阐述了分块模块1604的几种分块方式,可基于实际应用自行选择分块方式,从而具备可选择性以及灵活性。
在一种可能的设计中,聚类模块1601,具体用于:将该第一词向量序列中的每个词向量各自投影为目标空间的一个投影点,其中,一个词向量对应一个投影点,且第一词向量序列中的词向量的维度与该目标空间的维度相同,之后,对各个投影点进行聚类,得到n个簇,n≥1,一个簇对应一个簇信息,即得到每个投影点各自属于哪个簇的信息,得到了每个投影点各自属于哪个簇也就知道了该第一词向量序列中每个词向量各自属于哪个簇。
在本申请上述实施方式中,具体阐述了聚类模块1601对第一词向量序列中的词向量进行聚类的一种实现方式,具备可实现性。
在一种可能的设计中,自注意力模块1605,具体还用于:将m个矩阵块K、m个矩阵块V、m个矩阵块Q各自分别组合成三阶张量K、三阶张量V、三阶张量Q,并基于该三阶张量V、该三阶张量K以及三阶张量Q,通过点积自注意力操作得到最终输出的目标词向量序列。
在本申请上述实施方式中,自注意力模块1605是将二维的多个矩阵块分别组合为三阶张量,然后将得到的三个三阶张量作为一个整体进行点积自注意力操作得到目标词向量序列,由于矩阵块K、矩阵块V、矩阵块Q的数量相同,切块的方式也相同,因此可保证在对该三阶张量V、三阶张量K以及三阶张量Q进行点积自注意力操作的过程中,是在各个矩阵块中进行词向量与词向量两两之间的相似度比较(即将自注意力限制在各个块中),减少了传统自注意力机制中的冗余信息。
在一种可能的设计中,自注意力模块1605,具体用于:首先,计算三阶张量K以及三阶张量Q的乘积,得到一个注意力矩阵,之后,将该注意力矩阵与三阶张量V相乘,并利用softmax函数对得到的相乘结果进行处理,从而得到三阶张量的处理结果,最后再根据得到的三阶张量的处理结果得到目标词向量序列。自注意力模块1605对分块后再组合的三阶张量V、三阶张量K以及三阶张量Q进行自注意力操作的效果等价于将不同的分块中的词向量按块之间的排列顺序分别输入自注意力模型中,并且得到相应输出的该分块中的词向量序列,然后将各个分块经过自注意力模型后得到的词向量序列进行拼接,并最终得到输出的目标词向量序列。
在本申请上述实施方式中,自注意力模块1605通过将整体的词向量序列参与自注意力机制的计算划分为小块参与到自注意力机制的计算中,块与块之间不进行自注意力机制的计算,减少了每个词的关联数,进而减少了整体的计算量。相比于已有方式计算词向量序列中词向量两两之间的相似度的方式,本申请实施例的计算复杂度为O(N*m*d+m*(N/m)2*d)(均等分块的情况下),其中,N/m为每个矩阵块中词向量的数量,当m取
Figure BDA0003187469730000211
时,模型的计算复杂度最低为/>
Figure BDA0003187469730000212
相比于已有方式的复杂度O(N2d),复杂度被大大降低。
在一种可能的设计中,自注意力模块1605,具体还用于:将得到的三阶张量的处理结果拆分为与m个矩阵块K、m个矩阵块V或m个矩阵块Q对应的m个目标矩阵块,并对得到的m个目标矩阵块在二维尺度上进行合并,得到目标矩阵,即将三阶张量表示的处理结果按照逆操作的方式降回二维尺度上的矩阵表示,之后,再根据矩阵K、矩阵V、矩阵Q中的词向量的排列顺序(即初始的词向量的排序)对该目标矩阵中词向量的排列顺序进行调整,得到最终输出的目标词向量序列。
在本申请上述实施方式中,由于得到的三阶张量的处理结果是调整了词向量的排序的三阶张量处理结果,因此要降维,并需要把这些词向量的排列顺序调整回到其在原句中的顺序,得到的才是最终输出的目标词向量序列,从而保证了输出的目标词向量序列的准确性。
在一种可能的设计中,聚类模块1601,具体还用于:将初始词向量序列输入训练后的目标神经网络,从而得到第一词向量序列;或,将初始词向量序列作为第一词向量序列。
在本申请上述实施方式中,聚类模块1601可以有多种方式得到第一词向量序列,第一种方式是经由训练后的目标神经网络对初始词向量序列进行预处理,得到的第一词向量序列为更加适合聚类的词向量序列,可以提高后续聚类的准确度。而第二种方式是直接对初始词向量序列进行后续的聚类操作,可节约时间,提高了处理效率。
在一种可能的设计中,在目标神经网络为第一神经网络(第一神经网络为对初始词向量序列进行处理得到矩阵K的神经网络)的情况下,调整模块1603,具体用于:基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵V、排序后的矩阵Q(使得排序后的矩阵V、排序后的矩阵Q中每个词向量在各自序列中所处的顺序与第二词向量序列中每个词向量所处的顺序保持一致),这是因为在这种情况下,第一词向量序列为自注意力机制中的矩阵K,第二词向量序列为排序后的矩阵K。
在本申请上述实施方式中,在该目标神经网络为第一神经网络的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第一神经网络,得到的第一词向量序列就为该矩阵K。在这种情况下,第二词向量序列则为排序后的矩阵K,后续无需再次计算,节约了计算资源。
在一种可能的设计中,在目标神经网络为第二神经网络(第二神经网络为对初始词向量序列进行处理得到矩阵V的神经网络)的情况下,调整模块1603,具体用于:基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵Q(使得排序后的矩阵K、排序后的矩阵Q中每个词向量在各自序列中所处的顺序与第二词向量序列中每个词向量所处的顺序保持一致),这是因为在这种情况下,第一词向量序列为自注意力机制中的矩阵V,第二词向量序列为排序后的矩阵V。
在本申请上述实施方式中,在该目标神经网络为第二神经网络的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第二神经网络,得到的第一词向量序列就为该矩阵V。在这种情况下,第二词向量序列则为排序后的矩阵V,后续无需再次计算,节约了计算资源。
在一种可能的设计中,在目标神经网络为第三神经网络(第三神经网络为对初始词向量序列进行处理得到矩阵Q的神经网络)的情况下,调整模块1603,具体用于:基于第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V(使得排序后的矩阵K、排序后的矩阵V中每个词向量在各自序列中所处的顺序与第二词向量序列中每个词向量所处的顺序保持一致),这是因为在这种情况下,第一词向量序列为自注意力机制中的矩阵Q,第二词向量序列为排序后的矩阵Q。
在本申请上述实施方式中,在该目标神经网络为第三神经网络的情况下,将初始词向量序列输入训练后的目标神经网络得到第一词向量序列实质就是:将初始词向量序列输入训练后的第三神经网络,得到的第一词向量序列就为该矩阵Q。在这种情况下,第二词向量序列则为排序后的矩阵Q,后续无需再次计算,节约了计算资源。
需要说明的是,自注意力模型1600中各模块/单元之间的信息交互、执行过程等内容,与本申请中图8对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供了一种计算机设备,请参阅图17,图17是本申请实施例提供的计算机设备的一种结构示意图,为便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。计算机设备1700上可以部署有图16对应实施例中所描述的自注意力模型的模块,用于实现图16对应实施例中自注意力模型1600的功能,具体的,计算机设备1700由一个或多个服务器实现,计算机设备1700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1722(例如,一个或一个以上中央处理器)和存储器1732,一个或一个以上存储应用程序1742或数据1744的存储介质1730(例如一个或一个以上海量存储设备)。其中,存储器1732和存储介质1730可以是短暂存储或持久存储。存储在存储介质1730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备中的一系列指令操作。
更进一步地,中央处理器1722可以设置为与存储介质1730通信,在计算机设备1700上执行存储介质1730中的一系列指令操作。例如,中央处理器1722可以通过自注意力模型对第一词向量序列进行聚类操作,从而得到第一词向量序列中的词向量所属的簇信息,其中,一个簇信息对应一个聚类,且该第一词向量序列是基于初始词向量序列得到,在本申请实施例中,初始词向量序列为向自注意力模型输入的词向量序列。在得到第一词向量序列中的词向量的簇信息之后,将进一步根据该第一词向量序列中的词向量所属的簇信息对第一词向量序列中的词向量重新进行排序,得到的排序后的第一词向量序列可称为第二词向量序列,其中,第二词向量序列中属于相同簇的词向量处于相邻位置。在得到第二词向量序列之后,基于该第二词向量序列中的每个词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,从而得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q。需要注意的是,矩阵K、矩阵V、矩阵Q为初始词向量序列分别与第一权重矩阵、第二权重矩阵、第三权重矩阵做矩阵乘法得到的矩阵,而第一权重矩阵、第二权重矩阵、第三权重矩阵则分别为训练后的第一神经网络、训练后的第二神经网络、训练后的第三神经网络的权重矩阵。在得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q之后,将进一步对排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q各自分块,从而分别得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,其中,m≥2。之后,基于这m个矩阵块K、m个矩阵块V、m个矩阵块Q进行点积自注意力操作,得到目标词向量序列。
计算机设备1700还可以包括一个或一个以上电源1726,一个或一个以上有线或无线网络接口1750,一个或一个以上输入输出接口1758,和/或,一个或一个以上操作系统1741,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
在本申请实施例中,上述各图对应的实施例中所述的方法可以基于该图17所示的结构实现,具体此处不予赘述。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述所示实施例描述的方法中的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述所示实施例描述的方法中的步骤。
本申请实施例提供的计算机设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使计算机设备执行上述所示实施例描述的方法,或者,执行设备内的芯片执行上述所示实施例描述的图像处理方法或音频处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体的,请参阅图18,图18为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 200,NPU 200作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路2003,通过控制器2004控制运算电路2003提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路2003内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路2003是二维脉动阵列。运算电路2003还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路2003是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器2002中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器2001中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)2008中。
统一存储器2006用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)2005,DMAC被搬运到权重存储器2002中。输入数据也通过DMAC被搬运到统一存储器2006中。
BIU为Bus Interface Unit即,总线接口单元2010,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)2009的交互。
总线接口单元2010(Bus Interface Unit,简称BIU),用于取指存储器2009从外部存储器获取指令,还用于存储单元访问控制器2005从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器2006或将权重数据搬运到权重存储器2002中或将输入数据数据搬运到输入存储器2001中。
向量计算单元2007包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元2007能将经处理的输出的向量存储到统一存储器2006。例如,向量计算单元2007可以将线性函数和/或非线性函数应用到运算电路2003的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元2007生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路2003的激活输入,例如用于在神经网络中的后续层中的使用。
控制器2004连接的取指存储器(instruction fetch buffer)2009,用于存储控制器2004使用的指令;
统一存储器2006,输入存储器2001,权重存储器2002以及取指存储器2009均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,上述所示的第一神经网络中各层的运算、第二神经网络各层的运算以及这两个神经网络的联合迭代训练过程可以由运算电路2003或向量计算单元2007执行。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的计算机设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

Claims (23)

1.一种基于自注意力机制的词向量表示方法,其特征在于,包括:
对第一词向量序列进行聚类操作,得到所述第一词向量序列中的词向量所属的簇信息,其中,一个簇信息对应一个聚类,所述第一词向量序列基于初始词向量序列得到;
根据所述簇信息对所述第一词向量序列中的词向量进行排序,得到第二词向量序列,其中,所述第二词向量序列中属于相同簇的词向量处于相邻位置;
基于所述第二词向量序列中的词向量的排列顺序分别调整所述自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q;
对所述排序后的矩阵K、所述排序后的矩阵V、所述排序后的矩阵Q分别分块,得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,其中,m≥2;
基于所述m个矩阵块K、所述m个矩阵块V、所述m个矩阵块Q进行点积自注意力操作,得到目标词向量序列。
2.根据权利要求1所述的方法,其特征在于,所述对所述排序后的矩阵K、所述排序后的矩阵V、所述排序后的矩阵Q分别分块包括:
对所述排序后的矩阵K、所述排序后的矩阵V、所述排序后的矩阵Q分别均等分块,其中,每个矩阵块中包括的词向量的数量相同;
或,
将所述排序后的矩阵K、所述排序后的矩阵V、所述排序后的矩阵Q中各自属于相同簇的词向量分在一个矩阵块中。
3.根据权利要求1所述的方法,其特征在于,所述对第一词向量序列进行聚类操作,得到所述第一词向量序列中的词向量所属的簇信息包括:
将所述第一词向量序列中的词向量投影为目标空间的投影点,一个词向量对应一个投影点,所述目标空间与所述第一词向量序列中的词向量的维度相同;
对所述投影点进行聚类,得到n个簇,一个簇对应一个簇信息,n≥1;
根据每个投影点所属的簇得到所述第一词向量序列中的词向量所属的簇信息。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述基于所述m个矩阵块K、所述m个矩阵块V、所述m个矩阵块Q进行点积自注意力操作,得到目标词向量序列包括:
将所述m个矩阵块K、所述m个矩阵块V、所述m个矩阵块Q各自分别组合成三阶张量K、三阶张量V、三阶张量Q;
基于所述三阶张量V、所述三阶张量K以及所述三阶张量Q,通过点积自注意力操作,得到目标词向量序列。
5.根据权利要求4所述的方法,其特征在于,所述基于所述三阶张量V、所述三阶张量K以及所述三阶张量Q,通过点积自注意力操作,得到目标词向量序列包括:
计算所述三阶张量K以及所述三阶张量Q的乘积,得到注意力矩阵;
将所述注意力矩阵与所述三阶张量V相乘,并利用softmax函数对得到的相乘结果进行处理,得到三阶张量的处理结果;
根据所述三阶张量的处理结果得到目标词向量序列。
6.根据权利要求5所述的方法,其特征在于,所述根据所述三阶张量的处理结果得到目标词向量序列包括:
将所述三阶张量的处理结果拆分为与所述m个矩阵块K、所述m个矩阵块V或所述m个矩阵块Q对应的m个目标矩阵块,并对所述m个目标矩阵块在二维尺度上进行合并,得到目标矩阵;
根据所述矩阵K、所述矩阵V或所述矩阵Q中的词向量的排列顺序对所述目标矩阵中词向量的排列顺序进行调整,得到目标词向量序列。
7.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一词向量序列基于初始词向量序列得到包括:
将初始词向量序列输入训练后的目标神经网络,得到所述第一词向量序列;
或,
将所述初始词向量序列作为所述第一词向量序列。
8.根据权利要求7所述的方法,其特征在于,所述基于所述第二词向量序列中的词向量的排列顺序分别调整所述自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q包括:
在所述目标神经网络为第一神经网络的情况下,基于所述第二词向量序列中的词向量的排列顺序分别调整所述自注意力机制中的矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵V、排序后的矩阵Q,其中,所述第一词向量序列为所述自注意力机制中的矩阵K,所述第二词向量序列为排序后的矩阵K,所述第一神经网络为对所述初始词向量序列进行处理得到所述矩阵K的神经网络。
9.根据权利要求7所述的方法,其特征在于,所述基于所述第二词向量序列中的词向量的排列顺序分别调整所述自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q包括:
在所述目标神经网络为第二神经网络的情况下,基于所述第二词向量序列中的词向量的排列顺序分别调整所述自注意力机制中的矩阵K、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵Q,其中,所述第一词向量序列为所述自注意力机制中的矩阵V,所述第二词向量序列为排序后的矩阵V,所述第二神经网络为对所述初始词向量序列进行处理得到所述矩阵V的神经网络。
10.根据权利要求7所述的方法,其特征在于,所述基于所述第二词向量序列中的词向量的排列顺序分别调整所述自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q包括:
在所述目标神经网络为第三神经网络的情况下,基于所述第二词向量序列中的词向量的排列顺序分别调整所述自注意力机制中的矩阵K、矩阵V中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V,其中,所述第一词向量序列为所述自注意力机制中的矩阵Q,所述第二词向量序列为排序后的矩阵Q,所述第三神经网络为对所述初始词向量序列进行处理得到所述矩阵Q的神经网络。
11.一种自注意力模型,其特征在于,所述自注意力模型为装置,包括:
聚类模块,用于对第一词向量序列进行聚类操作,得到所述第一词向量序列中的词向量所属的簇信息,其中,一个簇信息对应一个聚类,所述第一词向量序列基于初始词向量序列得到;
排序模块,用于根据所述簇信息对所述第一词向量序列中的词向量进行排序,得到第二词向量序列,其中,所述第二词向量序列中属于相同簇的词向量处于相邻位置;
调整模块,用于基于所述第二词向量序列中的词向量的排列顺序分别调整自注意力机制中的矩阵K、矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V、排序后的矩阵Q;
分块模块,用于对所述排序后的矩阵K、所述排序后的矩阵V、所述排序后的矩阵Q分别分块,得到m个矩阵块K、m个矩阵块V、m个矩阵块Q,其中,m≥2;
自注意力模块,用于基于所述m个矩阵块K、所述m个矩阵块V、所述m个矩阵块Q进行点积自注意力操作,得到目标词向量序列。
12.根据权利要求11所述的模型,其特征在于,所述分块模块,具体用于:
对所述排序后的矩阵K、所述排序后的矩阵V、所述排序后的矩阵Q分别均等分块,其中,每个矩阵块中包括的词向量的数量相同;
或,
将所述排序后的矩阵K、所述排序后的矩阵V、所述排序后的矩阵Q中各自属于相同簇的词向量分在一个矩阵块中。
13.根据权利要求11所述的模型,其特征在于,所述聚类模块,具体用于:
将所述第一词向量序列中的词向量投影为目标空间的投影点,一个词向量对应一个投影点,所述目标空间与所述第一词向量序列中的词向量的维度相同;
对所述投影点进行聚类,得到n个簇,一个簇对应一个簇信息,n≥1;
根据每个投影点所属的簇得到所述第一词向量序列中的词向量所属的簇信息。
14.根据权利要求11-13中任一项所述的模型,其特征在于,所述自注意力模块,具体用于:
将所述m个矩阵块K、所述m个矩阵块V、所述m个矩阵块Q各自分别组合成三阶张量K、三阶张量V、三阶张量Q;
基于所述三阶张量V、所述三阶张量K以及所述三阶张量Q,通过点积自注意力操作,得到目标词向量序列。
15.根据权利要求14所述的模型,其特征在于,所述自注意力模块,具体还用于:
计算所述三阶张量K以及所述三阶张量Q的乘积,得到注意力矩阵;
将所述注意力矩阵与所述三阶张量V相乘,并利用softmax函数对得到的相乘结果进行处理,得到三阶张量的处理结果;
根据所述三阶张量的处理结果得到目标词向量序列。
16.根据权利要求15所述的模型,其特征在于,所述自注意力模块,具体还用于:
将所述三阶张量的处理结果拆分为与所述m个矩阵块K、所述m个矩阵块V或所述m个矩阵块Q对应的m个目标矩阵块,并对所述m个目标矩阵块在二维尺度上进行合并,得到目标矩阵;
根据所述矩阵K、所述矩阵V或所述矩阵Q中的词向量的排列顺序对所述目标矩阵中词向量的排列顺序进行调整,得到目标词向量序列。
17.根据权利要求11-13中任一项所述的模型,其特征在于,所述聚类模块,具体还用于:
将初始词向量序列输入训练后的目标神经网络,得到所述第一词向量序列;
或,
将所述初始词向量序列作为所述第一词向量序列。
18.根据权利要求17所述的模型,其特征在于,所述调整模块,具体用于:
在所述目标神经网络为第一神经网络的情况下,基于所述第二词向量序列中的词向量的排列顺序分别调整所述自注意力机制中的矩阵V、矩阵Q中的词向量的排列顺序,得到排序后的矩阵V、排序后的矩阵Q,其中,所述第一词向量序列为所述自注意力机制中的矩阵K,所述第二词向量序列为排序后的矩阵K,所述第一神经网络为对所述初始词向量序列进行处理得到所述矩阵K的神经网络。
19.根据权利要求17所述的模型,其特征在于,所述调整模块,具体用于:
在所述目标神经网络为第二神经网络的情况下,基于所述第二词向量序列中的词向量的排列顺序分别调整所述自注意力机制中的矩阵K、矩阵Q中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵Q,其中,所述第一词向量序列为所述自注意力机制中的矩阵V,所述第二词向量序列为排序后的矩阵V,所述第二神经网络为对所述初始词向量序列进行处理得到所述矩阵V的神经网络。
20.根据权利要求17所述的模型,其特征在于,所述调整模块,具体用于:
在所述目标神经网络为第三神经网络的情况下,基于所述第二词向量序列中的词向量的排列顺序分别调整所述自注意力机制中的矩阵K、矩阵V中的词向量的排列顺序,得到排序后的矩阵K、排序后的矩阵V,其中,所述第一词向量序列为所述自注意力机制中的矩阵Q,所述第二词向量序列为排序后的矩阵Q,所述第三神经网络为对所述初始词向量序列进行处理得到所述矩阵Q的神经网络。
21.一种计算机设备,包括处理器和存储器,所述处理器与所述存储器耦合,其特征在于,
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得所述计算机设备执行如权利要求1-10中任一项所述的方法。
22.一种计算机可读存储介质,包括程序,当其在计算机上运行时,使得计算机执行如权利要求1-10中任一项所述的方法。
23.一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行如权利要求1-10中任一项所述的方法。
CN202110866398.7A 2021-07-29 2021-07-29 一种基于自注意力机制的词向量表示方法及自注意力模型 Active CN113761934B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110866398.7A CN113761934B (zh) 2021-07-29 2021-07-29 一种基于自注意力机制的词向量表示方法及自注意力模型

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110866398.7A CN113761934B (zh) 2021-07-29 2021-07-29 一种基于自注意力机制的词向量表示方法及自注意力模型

Publications (2)

Publication Number Publication Date
CN113761934A CN113761934A (zh) 2021-12-07
CN113761934B true CN113761934B (zh) 2023-03-31

Family

ID=78788191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110866398.7A Active CN113761934B (zh) 2021-07-29 2021-07-29 一种基于自注意力机制的词向量表示方法及自注意力模型

Country Status (1)

Country Link
CN (1) CN113761934B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797196A (zh) * 2020-06-01 2020-10-20 武汉大学 一种结合注意力机制lstm和神经主题模型的服务发现方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149695B1 (en) * 2000-10-13 2006-12-12 Apple Computer, Inc. Method and apparatus for speech recognition using semantic inference and word agglomeration
JP6842167B2 (ja) * 2017-05-08 2021-03-17 国立研究開発法人情報通信研究機構 要約生成装置、要約生成方法及びコンピュータプログラム
CN109710762B (zh) * 2018-12-26 2023-08-01 南京云问网络技术有限公司 一种融合多种特征权重的短文本聚类方法
CN111291165B (zh) * 2020-05-09 2020-08-14 支付宝(杭州)信息技术有限公司 训练词向量嵌入模型的方法及装置
CN112182154B (zh) * 2020-09-25 2023-10-10 中国人民大学 一种利用个人词向量消除关键词歧义的个性化搜索模型

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797196A (zh) * 2020-06-01 2020-10-20 武汉大学 一种结合注意力机制lstm和神经主题模型的服务发现方法

Also Published As

Publication number Publication date
CN113761934A (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
US11568258B2 (en) Operation method
CN113449857B (zh) 一种数据处理方法和数据处理设备
US11307865B2 (en) Data processing apparatus and method
EP3627397B1 (en) Processing method and apparatus
US20180260710A1 (en) Calculating device and method for a sparsely connected artificial neural network
CN112883149B (zh) 一种自然语言处理方法以及装置
US11775832B2 (en) Device and method for artificial neural network operation
CN114503125A (zh) 结构化剪枝方法、系统和计算机可读介质
JP7417679B2 (ja) 情報抽出方法、装置、電子機器及び記憶媒体
CN113449859A (zh) 一种数据处理方法及其装置
CN112580369B (zh) 语句复述方法、训练语句复述模型的方法及其装置
CN113240079A (zh) 一种模型训练方法及装置
US20240135174A1 (en) Data processing method, and neural network model training method and apparatus
CN113065997A (zh) 一种图像处理方法、神经网络的训练方法以及相关设备
CN111652349A (zh) 一种神经网络的处理方法及相关设备
CN112132281A (zh) 一种基于人工智能的模型训练方法、装置、服务器及介质
CN113761934B (zh) 一种基于自注意力机制的词向量表示方法及自注意力模型
EP4375872A1 (en) Image classification method and related device
CN111860824A (zh) 一种数据处理方法及相关产品
CN114707643A (zh) 一种模型切分方法及其相关设备
CN114707070A (zh) 一种用户行为预测方法及其相关设备
CN115879524A (zh) 一种模型训练方法及其相关设备
CN113642654A (zh) 图像特征的融合方法、装置、电子设备和存储介质
CN111198714B (zh) 重训练方法及相关产品
CN113705801A (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