CN111581946A - 一种语言序列模型解码方法 - Google Patents
一种语言序列模型解码方法 Download PDFInfo
- Publication number
- CN111581946A CN111581946A CN202010316825.XA CN202010316825A CN111581946A CN 111581946 A CN111581946 A CN 111581946A CN 202010316825 A CN202010316825 A CN 202010316825A CN 111581946 A CN111581946 A CN 111581946A
- Authority
- CN
- China
- Prior art keywords
- vertex
- sequence
- word element
- language sequence
- current vertex
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种语言序列模型解码方法,包括:初始化:基于序列模型,利用贪心算法生成初始语言序列,通过构建有向图,分别得到初始语言序列中起点到终点当前最短路径长度、当前顶点到起点的最短路径长度;扩展:在序列模型中输入当前顶点信息,生成语言序列,根据语言序列中每个单词元素的条件概率,筛选得到临时顶点;裁剪:根据临时顶点的存在与否,筛选得到普通顶点;选择:从普通顶点中选择新的当前顶点,若该新的当前顶点对应单词元素为终点的单词元素,则起点到该新的当前顶点之间最短路径所对应语言序列即为全局最大发生概率序列,否则返回扩展阶段开始新一轮求解。与现有技术相比,本发明能够在解码过程中快速、准确求解得到全局最优解。
Description
技术领域
本发明涉及自然语言处理技术领域,尤其是涉及一种语言序列模型解码方法。
背景技术
现如今使用机器学习进行自然语言处理已经是一种主流的实践方法,由于序列模型能够对语音数据、文本数据、视频数据等一系列具有连续关系的有序数据队列进行学习、预测,使得这类模型在实际中具有很广的应用范围。比较常见的序列模型应用包括:语音识别、图像摘要、音乐发生器、机器翻译、DNA序列分析、命名实体识别等。其中,对于语音识别来说,其输入数据和输出数据都是序列数据,输入数据X是按时序播放的音频片段,输出Y是一单词序列;对于图像摘要来说,只有输出数据是序列数据,即输入数据X是一幅图片数据,输出Y则是一单词序列;对于音乐生成来说,只有输出是序列数据,即输入数据可以是空集,也可以是单一整数(指代音乐风格)。
序列模型存在标准传统神经网络和循环神经网络两种神经网络架构。其中使用标准传统的神经网络存在着诸如:序列长度不同使得模型难以统一、无法共享特征等一系列问题,而使用循环神经网络(RNN)可以有效避免这些问题,这也使得循环神经网络(RNN)成为序列模型中主要的神经网络架构。
但循环神经网络(RNN)的本质思想使得当前输出不仅依赖于当前的输入,还依赖于以前的输入。假设语言序列模型具有10000个单词元素,其中第10000个单词是“。”,用于表述一条语言序列的结束。在我们输入元素“X”以及状态“s1”(状态“s1”中包含元素“X”的所有祖先节点的信息)后,训练好的循环神经网络(RNN)会输出10000个单词元素的概率分布“P(x1,…,x10000)”、以及新状态“s2”(此时状态“s2”中包含元素“X”和其所有祖先节点的信息)。一条语言序列的发生过程,即解码过程,就是每次选择合适的单词元素“X”作为下一次输入的单词元素,直到选择的单词元素“X”是“。”的概率最大时结束,此时就得到了一组“单词序列”,这一过程就是语言序列的解码过程,这个解码过程存在如下几个特点:
一、每次可选择的单词元素数量巨大,如果全部存储的话会消耗极大的存储资源。例如:假设语言序列模型具有10001个单词元素,那么只包含一个单词元素的语言序列就有10000种可能(因为“。”表示结束,不会被选择作为输入参数),如果包含n个单词元素,则一共有10000的n次方种可能的语言序列。
二、下一个单词元素的概率分布不仅依赖于当前单词元素,还依赖于过往的所有单词元素,如果采用广度优先遍历方法,其所需的计算量在现阶段也是无法承受的。例如:假设语言序列模型具有10001个单词元素,计算语言序列第一个单词元素的概率分布只需要一次,计算语言序列第二个单词元素的所有条件概率分布就需要10000次(因为“。”表示结束,不会被选择作为输入参数),第三个单词元素的所有条件概率分布则需要一亿次,以此类推。
三、可选的语言序列的深度未知,可能由几十个单词组成,也可能只有个位数的单词,存在很大的不确定性。
以上特点均使得求解过程存在计算时间长、计算复杂度高的问题,不利于快速进行解码。
目前很多应用中解码过程均是采用贪心算法生成语言序列,即每次都选择概率分布中概率值最大的单词元素“X”作为下一次的输入,但是这样得到的一条序列只是一个局部最优解,并不能说明这样生成的语言序列的发生概率是最大的。例如,存在这样两组简单的单词序列:
1、“一个”、“人”、“。”
2、“一颗”、“树”、“。”
设定以下5个事件:
A.第一个节点选择单词“一个”;
B.第一个节点选择单词“一颗”;
C.第二个节点选择单词“人”;
D.第二个节点选择单词“树”;
E.第三个节点选择单词“。”;
假设:P(A)=0.6;P(B)=0.4;P(C|A)=0.4;P(D|B)=0.8;P(E|AC)=0.5;P(E|BD)=0.5;此时可以知道语言序列“一棵/树/。”的发生概率为P(BDE)=0.16,语言序列“一个/人/。”的发生概率为P(ACE)=0.12,
从发生概率最大的角度,我们应该选择单词序列“一棵/树/。”作为我们生成的语言序列,但是从贪心算法的角度则会选择“一个/人/。”作为我们生成的语言序列,因为第一个节点处出现“一个”这个单词的发生概率是最高的。
另一个基于贪心算法改进的解码算法是Beam Search算法,该算法在每次选择中选择概率值大小排序中前k个单词元素作为下一次的输入,最后通过比较找出整体概率值较大的语言序列。这样得到的语言序列可能优于使用贪心算法解码得到的语言序列,但是这种方法本质上还是贪婪算法,因此这种方法也无法保证得到的语言序列整体概率值是最大的。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种语言序列模型解码方法,以解决现有技术无法获得全局最优解的问题。
本发明的目的可以通过以下技术方案来实现:一种语言序列模型解码方法,包括以下步骤:
S1、初始化:基于序列模型,利用贪心算法生成初始语言序列,通过构建有向图,分别得到初始语言序列中起点到终点当前最短路径长度、当前顶点到起点的最短路径长度;
S2、扩展:在序列模型中输入当前顶点信息,生成语言序列,根据语言序列中每个单词元素的条件概率,筛选得到临时顶点;
S3、裁剪:根据临时顶点的存在与否,筛选得到普通顶点;
S4、选择:从普通顶点中选择新的当前顶点,若该新的当前顶点对应单词元素为终点的单词元素,则起点到该新的当前顶点之间最短路径所对应语言序列即为全局最大发生概率序列,否则返回步骤S2开始新一轮求解。
进一步地,所述步骤S1具体包括以下步骤:
S11、基于序列模型,利用贪心算法,从起始点出发,生成初始语言序列,并记录该初始语言序列的发生概率;
S12、以起始点作为源点,以结束点作为终点,使用有向边进行连接,构建有向图,其中,源点作为弧尾,终点作为弧头,使用弧连接方式得到有向图;
S13、根据初始语言序列的发生概率,计算得到初始语言序列中起点到终点当前最短路径长度;
S14、以起始点作为初始当前顶点,得到初始语言序列中当前顶点到起点的最短路径长度。
进一步地,所述步骤S13中初始语言序列中起点到终点最短路径长度具体为:
L0=(-ln(P0))
其中,L0为起点到终点当前最短路径长度,P0为语言序列的发生概率;
所述步骤S14中初始序列语言中当前顶点到起点的最短路径长度具体为:
L1=0
其中,L1为当前顶点到起点的最短路径长度。
进一步地,所述步骤S2具体包括以下步骤:
S21、在序列模型中输入当前顶点信息,生成新的语言序列,并得到该语言序列中当前顶点下一级所有单词元素的条件概率分布,其中,该条件概率分布包含各个单词元素的条件概率;
S22、根据步骤S21中的条件概率分布,计算新的语言序列中每个单词元素对应顶点与当前顶点的路径长度;
S23、若单词元素对应顶点与当前顶点的路径长度满足预设筛选条件,则该单词元素对应顶点即为临时顶点。
进一步地,所述步骤S23中预设筛选条件具体为:
(-ln(P(X)))<(L0-L1)
其中,P(X)为单词元素X的条件概率,(-ln(P(X)))为单词元素X对应顶点与当前顶点的路径长度。
进一步地,所述步骤S3具体包括以下步骤:
S31、判断是否存在临时顶点,若判断为是,则执行步骤S32,否则执行步骤S37;
S32、判断临时顶点对应单词元素是否为终点单词元素,若判断为是,则执行步骤S33,否则执行步骤S36;
S33、从条件概率分布中找到并记录终点单词元素条件概率,同时删除对应单词元素条件概率小于终点单词元素条件概率的临时顶点;
S34、以终点单词元素对应的临时顶点为弧尾,以终点为弧头,构建弧长为0的有向图;
S35、根据终点单词元素条件概率,计算得到更新后起点到终点的最短路径长度;
S36、遍历所有临时顶点,以当前顶点为弧尾,以临时顶点为弧头,使用弧连接方式进行连通,得到普通顶点,之后执行步骤S4;
S37、选择当前顶点所在语言序列的上一级顶点作为新的当前顶点,并删除旧的当前顶点,之后执行步骤S38;
S38、判断新的当前顶点的出度是否为0,若判断为是,则返回步骤S37,否则将该新的当前顶点重置为普通顶点,之后执行步骤S4。
进一步地,所述步骤S35更新后起点到终点的最短路径长度具体为:
L0=L1+P(<end>)
其中,P(<end>)为终点单词元素条件概率。
进一步地,所述步骤S4具体包括以下步骤:
S41、选择出度为0且与起点之间路径最短的普通顶点作为当前顶点;
S42、更新当前顶点到起点的最短路径长度;
S43、判断该当前顶点对应单词元素是否为终点单词元素,若判断为是,则执行步骤S44,否则返回步骤S2开始新一轮求解;
S44、输出起点到该当前顶点最短路径所对应的语言序列,即求解得到全局最大发生概率序列。
进一步地,所述步骤S43中判断该当前顶点对应单词元素是否为终点单词元素的等价条件为:步骤S42中更新后当前顶点到起点的最短路径长度是否等于步骤S35中更新后起点到终点的最短路径长度,若等于,则表明该当前顶点对应单词元素是否为终点单词元素,若不等于,则表明该当前顶点对应单词元素不为终点单词元素。
与现有技术相比,本发明具有以下优点:
一、本发明将贪心算法获得的语言序列的整体概率值作为一个阈值,得到一个信赖域,然后基于迪杰斯特拉(Dijkstra)算法思想在信赖域中生成一副有向无环图,当有向图完成时,最大发生概率的语言序列就已经确定,以此完成解码,保证了解码得到的语言序列的整体发生概率最大,即能够求解得到全局最优解,从而非常适用于深度学习序列模型的推理过程。
二、本发明以贪心算法得到的路径长度作为信赖域,并且顶点生成受到概率分布的控制,这使得元素标签无论是何种概率分布,总能够只取出概率较大的元素生成顶点,并且不需要大规模的计算量,这在极大程度上减少了有向图中生成顶点数量与计算量,本发明还通过顶点裁剪的方式,采用递归删除以进一步缩减顶点数量,有利于加快求解过程、降低计算复杂度。
附图说明
图1为本发明的方法流程示意图;
图2为实施例一中贪心算法解码过程示意图;
图3为实施例一中本发明方法的初始化过程示意图;
图4为实施例一中本发明方法的第一轮扩展过程示意图;
图5为实施例一中本发明方法的第一轮裁剪过程示意图;
图6为实施例一中本发明方法的第一轮选择过程示意图;
图7为实施例一中本发明方法的第二轮扩展过程示意图;
图8为实施例一中本发明方法的第二轮裁剪过程示意图;
图9为实施例一中本发明方法的第二轮选择过程示意图;
图10为实施例一中本发明方法的第三轮求解过程示意图;
图11为实施例一中本发明方法的第四轮求解过程示意图;
图12为实施例一中本发明方法的第五轮求解过程示意图;
图13为实施例一中本发明方法的第六轮求解过程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例一
如图1所示,一种语言序列模型解码方法,包括以下步骤:
S1、初始化:基于序列模型,利用贪心算法生成初始语言序列,通过构建有向图,分别得到初始语言序列中起点到终点当前最短路径长度、当前顶点到起点的最短路径长度;
S2、扩展:在序列模型中输入当前顶点信息,生成语言序列,根据语言序列中每个单词元素的条件概率,筛选得到临时顶点;
S3、裁剪:根据临时顶点的存在与否,筛选得到普通顶点;
S4、选择:从普通顶点中选择新的当前顶点,若该新的当前顶点对应单词元素为终点的单词元素,则起点到该新的当前顶点之间最短路径所对应语言序列即为全局最大发生概率序列,否则返回步骤S2开始新一轮求解。
所有完整语言序列都是从(<start>)作为起始输入开始,以输出的概率分布中顶点(<end>)发生概率最大时作为结束,本发明提出的整体解码方法具体如下:
第一阶段(初始化):
1-1、在语言模型中从起始点(<start>)出发,使用贪心算法获得一条初始的语言序列,并将该序列的发生概率记为P0;
1-2、将起始点(<start>)作为有向图的源点,将结束点(<end>)作为有向图的终点,中间使用一条有向边进行连接,源点作为弧尾,终点作为弧头,使用弧长为(-ln(P0))的弧进行连接,对应表示贪心算法获得的语言序列;
1-3、记录起点到终点最短路径长度,记为L0=(-ln(P0));
1-4、选择起始点(<start>)作为当前顶点;
1-5、记录当前顶点到起点的最短路径长度,记为L1=0,进入第二阶段;
第二阶段(扩展):
2-1、在语言模型中输入当前顶点信息,获取语言序列中当前顶点信息下一级单词元素的条件概率分布F1;
2-2、计算每个单词元素条件概率P(X)的(-ln(P(X)))值,即每个单词元素对应顶点与当前顶点的路径长度;
2-3、选择(-ln(P(X)))小于(L0–L1)的单词元素,分别记为临时顶点,进入第三阶段;
第三阶段(裁剪):
3-1、判断是否存在至少一个临时顶点,如果是,继续3-2,否则转至3-7;
3-2、判断所有临时顶点中是否存在临时顶点对应的单词元素包含“(<end>)”;如果是,继续3-3,否则,转至3-6;
3-3、记下一单词为“<end>”的条件概率为P(<end>),删除临时顶点中对应的单词元素条件概率P(X)小于P(<end>)的临时顶点;
3-4、以单词元素“(<end>)”对应的临时顶点为弧尾,以终点为弧头,使用弧长为0的弧进行连接;
3-5、更新起点到终点的最短路径L0=L1+P(<end>);
3-6、遍历所有临时顶点,以当前顶点为弧尾,临时顶点为弧头,弧长为(-ln(P(X))),进行连通,进入第四阶段;
3-7、选择当前顶点所在语言序列的上一个顶点作为新的当前顶点,并删除旧的当前顶点;
3-8、判断当前顶点是否出度为0,如果是,转至3-7,否则进入第四阶段;
第四阶段(选择):
4-1、选择出度为0且到起点路径最短的顶点作为当前顶点;
4-2、更新当前顶点到起点的最短路径长度(只有一条路径):L1;
4-3、判断当前顶点对应单词元素是否为“<end>”,如果是,继续4-4,否则回到第二阶段开始新一轮扩展;
4-4、输出起点到当前顶点最短路径所对应的语言序列,并记路径长度L,即为所求的全局最大发生概率序列,对应发生概率为exp(L);
通过这四个步骤阶段,最后得到的语言序列即为全局最大概率对应的语言序列,并且很容易使用反证法证明。
本实施例以“A,B,C,E(<end>)”这一单词元素集合为例,对本发明提出的语言序列模型解码方法进行详细说明,其中“E”表示序列的终止,解码目的是使用语言序列模型生成一条语言序列。
传统采用贪心算法进行解码,过程中用到的概率分布表如表1~表5所示,其中,表1为当前顶点(O)所在序列的下一级元素条件概率分布,表2为当前顶点(A)所在序列的下一级元素条件概率分别,表3为当前顶点(AC)所在序列的下一级元素条件概率分别,表4为当前顶点(ACB)所在序列的下一级元素条件概率分别,表5为当前顶点(ACBA)所在序列的下一级元素条件概率分别,贪心算法每次都选择概率最大的单词作为下一单词元素,这只会得到一条局部最优的序列,如图2所示。
表1
(A|O) | (B|O) | (C|O) | (E|O) | |
P(x) | 0.7831 | 0.0140 | 0.1612 | 0.0147 |
-ln(P(x)) | 0.2445 | 3.1935 | 1.8254 | 4.2206 |
表2
(A|A) | (B|A) | (C|A) | (E|A) | |
P(x) | 0.3078 | 0.1063 | 0.4191 | 0.1668 |
-ln(P(x)) | 1.1782 | 2.2412 | 0.8697 | 1.7912 |
表3
(A|AC) | (B|AC) | (C|AC) | (E|AC) | |
P(x) | 0.2951 | 0.3281 | 0.0460 | 0.3308 |
-ln(P(x)) | 1.1145 | 1.1062 | 3.0792 | 1.2205 |
表4
(A|ACB) | (B|ACB) | (C|ACB) | (E|ACB) | |
P(x) | 0.4066 | 0.0627 | 0.1791 | 0.3516 |
-ln(P(x)) | 0.9000 | 2.7691 | 1.7200 | 1.0452 |
表5
(A|ACBA) | (B|ACBA) | (C|ACBA) | (E|ACBA) | |
P(x) | 0.2497 | 0.1266 | 0.2088 | 0.4149 |
-ln(P(x)) | 1.3875 | 2.0665 | 1.5665 | 0.8796 |
由图2可知贪心算法求解的结果为“OACBAE”,通过计算可得这条序列整体概率P为0.0183,(-ln(P))值为4,这表示通过序列模型生成的所有序列中,序列“OACBAE”出现的概率为0.0183。
采用本发明提出的方法进行求解,第一步,初始化阶段,同样如图2所示,利用贪心算法得到序列“OACBAE”的整体概率的(-ln(P))值为4,得到如图3所示的基础有向图,表示当前只有“OACBAE”这一条起点O至终点E最短且唯一的路径),其中弧<O,E>长度为4,表示该最短路径长度为4。
之后,进行第一轮的扩展(如图4和表6所示)、裁剪(如图5所示)、选择(如图6所示)阶段,表6为当前顶点(O)所在序列的下一元素条件概率分布,从第一轮求解过程可知,由于选择的当前顶点不是终点,不符合终止条件,因此继续第二轮求解,进行第二轮扩展(如图7和表7所示)、裁剪(如图8所示)、选择(如图9所示)过程,表7为当前顶点(A|O)所在序列的下一元素条件概率分布,从第二轮求解可知,贪心算法得到的序列“OACBAE”整体出现的概率为0.0183,而通过第二轮已经得到了另一条比“OACBAE”整体概率值更大的序列,这条序列“OAE”整体概率值P=exp(-2.4857)=0.0833,大约是序列“OACBAE”整体出现概率的4-5倍之间。
表6
表7
但是第二轮选择的当前顶点依然不是终点,不符合终止条件,说明还可能存在更短的路径,即整体概率值更大的最短序列。因此将继续循环,直到选择的当前顶点为(<end>)时停止,第三轮的扩展、裁剪、选择过程如图10和表8所示,表8为当前顶点(C|A)所在序列的下一元素条件概率分布。
表8
在第三轮循环求解过程中,又出现了一条更短的路径,对应序列为“OACE”,该序列整体概率值P=exp(-2.3347)=0.0968,而且选择的当前顶点依然不是终点,这表明最短路径(最大概率序列)的寻找过程还未结束,本实施例继续进行了第四轮的扩展、裁剪、选择过程(如图11和表9所示),表9为当前顶点(A|A)所在序列的下一元素条件概率分布;第五轮的扩展、裁剪、选择过程(如图12和表10所示)和第六轮的扩展、裁剪、选择过程(如图13和表11所示),表10为当前顶点(C|AA)所在序列的下一元素条件概率分布,表11为当前顶点(C|O)所在序列的下一元素条件概率分布。
表9
表10
表11
经过六次循环求解过程,得到了选择的当前顶点为(<end>),这说明最短路径已经找到了,并且不存在更短的最短路径了,找到的最短路径长度为L0=2.0353,对应的语言序列为:“OAACE”,其出现的整体概率值为P=exp(-2.0353)=0.1306。而贪心算法得到的序列“OACBAE”整体出现的概率为0.0183,显然实际上“OAACE”出现的概率是“OACBAE”出现的概率的7-8倍,此时选择“OAACE”作为语言序列模型的输出结果明显更为合理。
因为L0表示当前最短路径,即最短路径长度;而L1表示当前顶点长度,比当前顶点到起点路径更短的顶点,本发明提出的方法已经全部寻找过了,不存在一条从起点出发到终点结束的路径。所以L0也能表示最短路径的上界,L1表示最短路径的下界,当选择的当前节点为E<end>时,L0=L1,最短路径上界与下界重合,即此时O到E路径必为最短路径。
实施例二
为进一步验证本发明的有效性,本实施例使用已经训练好的语言序列模型,分别利用基于贪心算法的解码算法解码与本发明提出的基于Dijkstra算法解码得到结果序列做对比,得到如表12~表14所示的对比结果:
表12
表13
表14
由表12~表14的对比结果可知,基于贪心算法的解码只能得到一个局部最优解的序列,而本发明基于Dijkstra算法思想的解码得到的序列整体概率值是基于贪心算法的解码得到的序列概率值的几倍甚至十几倍,这也说明本发明解码结果的可靠性大于基于贪心算法的解码结果的可靠性。
综上所述,本发明提出的解码方法具有三个显著优点,第一点是能够保证解码得到的语言序列的整体发生概率最大,是一个全局最优解,这是一般的基于贪心算法无法达到的效果,也是本发明方法的初衷;
第二点是该方法生成解码图的思想与Dijkstra搜索最短路径的思想几乎一致,并且时间复杂度为O(N^3),空间复杂度为O(N),其中N为顶点的数量。而通过以贪心算法得到的路径长度作为信赖域,并且顶点生成受到概率分布的控制,这使得元素标签无论是何种概率分布,总能够只取出概率较大的元素生成顶点,并且不需要大规模的计算量,这在极大程度上减少了图中生成顶点数量与计算量。例如对于一个具有25000个单词元素的序列模型,在实际计算中仅仅生成了一百多个顶点,并且其中大部分顶点还会再裁剪阶段,得到了进一步的缩减。因此该算法的时间复杂度以及空间复杂度都是足够满足大部分序列模型的工程要求。
第三点该方法非常适合应用于基于深度学习的序列模型的推理解码阶段,具有实际价值。因为一个训练好的模型,无论其有多少个元素标签,这些元素标签每一次选择都是依赖概率分布的,这是基于深度学习的序列模型一个显著特点,这也恰好使得本发明对于计算需求与存储需求的要求并不高,甚至存在可能所需资源消耗比现在通用的BeamSearch方法需要的资源消耗更少,从而加快求解速度和效率。
Claims (10)
1.一种语言序列模型解码方法,其特征在于,包括以下步骤:
S1、初始化:基于序列模型,利用贪心算法生成初始语言序列,通过构建有向图,分别得到初始语言序列中起点到终点当前最短路径长度、当前顶点到起点的最短路径长度;
S2、扩展:在序列模型中输入当前顶点信息,生成语言序列,根据语言序列中每个单词元素的条件概率,筛选得到临时顶点;
S3、裁剪:根据临时顶点的存在与否,筛选得到普通顶点;
S4、选择:从普通顶点中选择新的当前顶点,若该新的当前顶点对应单词元素为终点的单词元素,则起点到该新的当前顶点之间最短路径所对应语言序列即为全局最大发生概率序列,否则返回步骤S2开始新一轮求解。
2.根据权利要求1所述的一种语言序列模型解码方法,其特征在于,所述步骤S1具体包括以下步骤:
S11、基于序列模型,利用贪心算法,从起始点出发,生成初始语言序列,并记录该初始语言序列的发生概率;
S12、以起始点作为源点,以结束点作为终点,使用有向边进行连接,构建有向图,其中,源点作为弧尾,终点作为弧头,使用弧连接方式得到有向图;
S13、根据初始语言序列的发生概率,计算得到初始语言序列中起点到终点当前最短路径长度;
S14、以起始点作为初始当前顶点,得到初始语言序列中当前顶点到起点的最短路径长度。
3.根据权利要求2所述的一种语言序列模型解码方法,其特征在于,所述步骤S13中初始语言序列中起点到终点最短路径长度具体为:
L0=(-ln(P0))
其中,L0为起点到终点当前最短路径长度,P0为语言序列的发生概率;
所述步骤S14中初始序列语言中当前顶点到起点的最短路径长度具体为:
L1=0
其中,L1为当前顶点到起点的最短路径长度。
4.根据权利要求3所述的一种语言序列模型解码方法,其特征在于,所述步骤S2具体包括以下步骤:
S21、在序列模型中输入当前顶点信息,生成新的语言序列,并得到该语言序列中当前顶点下一级所有单词元素的条件概率分布,其中,该条件概率分布包含各个单词元素的条件概率;
S22、根据步骤S21中的条件概率分布,计算新的语言序列中每个单词元素对应顶点与当前顶点的路径长度;
S23、若单词元素对应顶点与当前顶点的路径长度满足预设筛选条件,则该单词元素对应顶点即为临时顶点。
5.根据权利要求4所述的一种语言序列模型解码方法,其特征在于,所述步骤S23中预设筛选条件具体为:
(-ln(P(X)))<(L0-L1)
其中,P(X)为单词元素X的条件概率,(-ln(P(X)))为单词元素X对应顶点与当前顶点的路径长度。
6.根据权利要求5所述的一种语言序列模型解码方法,其特征在于,所述步骤S3具体包括以下步骤:
S31、判断是否存在临时顶点,若判断为是,则执行步骤S32,否则执行步骤S37;
S32、判断临时顶点对应单词元素是否为终点单词元素,若判断为是,则执行步骤S33,否则执行步骤S36;
S33、从条件概率分布中找到并记录终点单词元素条件概率,同时删除对应单词元素条件概率小于终点单词元素条件概率的临时顶点;
S34、以终点单词元素对应的临时顶点为弧尾,以终点为弧头,构建弧长为0的有向图;
S35、根据终点单词元素条件概率,计算得到更新后起点到终点的最短路径长度;
S36、遍历所有临时顶点,以当前顶点为弧尾,以临时顶点为弧头,使用弧连接方式进行连通,得到普通顶点,之后执行步骤S4;
S37、选择当前顶点所在语言序列的上一级顶点作为新的当前顶点,并删除旧的当前顶点,之后执行步骤S38;
S38、判断新的当前顶点的出度是否为0,若判断为是,则返回步骤S37,否则将该新的当前顶点重置为普通顶点,之后执行步骤S4。
7.根据权利要求6所述的一种语言序列模型解码方法,其特征在于,所述步骤S35更新后起点到终点的最短路径长度具体为:
L0=L1+P(<end>)
其中,P(<end>)为终点单词元素条件概率。
8.根据权利要求7所述的一种语言序列模型解码方法,其特征在于,所述步骤S4具体包括以下步骤:
S41、将满足预设选择条件的普通顶点作为当前顶点;
S42、更新当前顶点到起点的最短路径长度;
S43、判断该当前顶点对应单词元素是否为终点单词元素,若判断为是,则执行步骤S44,否则返回步骤S2开始新一轮求解;
S44、输出起点到该当前顶点最短路径所对应的语言序列,即求解得到全局最大发生概率序列。
9.根据权利要求8所述的一种语言序列模型解码方法,其特征在于,所述步骤S41具体是选择出度为0且与起点之间路径最短的普通顶点作为当前顶点。
10.根据权利要求8所述的一种语言序列模型解码方法,其特征在于,所述步骤S43中判断该当前顶点对应单词元素是否为终点单词元素的等价条件为:步骤S42中更新后当前顶点到起点的最短路径长度是否等于步骤S35中更新后起点到终点的最短路径长度,若等于,则表明该当前顶点对应单词元素是否为终点单词元素,若不等于,则表明该当前顶点对应单词元素不为终点单词元素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010316825.XA CN111581946B (zh) | 2020-04-21 | 2020-04-21 | 一种语言序列模型解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010316825.XA CN111581946B (zh) | 2020-04-21 | 2020-04-21 | 一种语言序列模型解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111581946A true CN111581946A (zh) | 2020-08-25 |
CN111581946B CN111581946B (zh) | 2023-10-13 |
Family
ID=72111572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010316825.XA Active CN111581946B (zh) | 2020-04-21 | 2020-04-21 | 一种语言序列模型解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111581946B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113113083A (zh) * | 2021-04-09 | 2021-07-13 | 山东大学 | 集体细胞突变数据和蛋白质网络的肿瘤驱动通路预测*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255956A (zh) * | 2017-12-21 | 2018-07-06 | 北京声智科技有限公司 | 基于历史数据及机器学习自适应获取词库的方法及*** |
WO2019050968A1 (en) * | 2017-09-05 | 2019-03-14 | Forgeai, Inc. | METHODS, APPARATUS, AND SYSTEMS FOR TRANSFORMING UNSTRUCTURED NATURAL LANGUAGE INFORMATION IN TO COMPUTER-PROCESSED STRUCTURED DATA |
CN110348636A (zh) * | 2019-07-12 | 2019-10-18 | 南方科技大学 | 路径规划预测方法、装置、设备和计算机可读存储介质 |
CN110609849A (zh) * | 2019-08-27 | 2019-12-24 | 广东工业大学 | 一种基于sql语法树节点类型的自然语言生成方法 |
-
2020
- 2020-04-21 CN CN202010316825.XA patent/CN111581946B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019050968A1 (en) * | 2017-09-05 | 2019-03-14 | Forgeai, Inc. | METHODS, APPARATUS, AND SYSTEMS FOR TRANSFORMING UNSTRUCTURED NATURAL LANGUAGE INFORMATION IN TO COMPUTER-PROCESSED STRUCTURED DATA |
CN108255956A (zh) * | 2017-12-21 | 2018-07-06 | 北京声智科技有限公司 | 基于历史数据及机器学习自适应获取词库的方法及*** |
CN110348636A (zh) * | 2019-07-12 | 2019-10-18 | 南方科技大学 | 路径规划预测方法、装置、设备和计算机可读存储介质 |
CN110609849A (zh) * | 2019-08-27 | 2019-12-24 | 广东工业大学 | 一种基于sql语法树节点类型的自然语言生成方法 |
Non-Patent Citations (2)
Title |
---|
李伟;吴及;吕萍;: "基于前后向语言模型的语音识别词图生成算法", 计算机应用, no. 10 * |
黄书力;胡大裟;蒋玉明;: "经过指定的中间节点集的最短路径算法", 计算机工程与应用, no. 11 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113113083A (zh) * | 2021-04-09 | 2021-07-13 | 山东大学 | 集体细胞突变数据和蛋白质网络的肿瘤驱动通路预测*** |
CN113113083B (zh) * | 2021-04-09 | 2022-08-09 | 山东大学 | 集体细胞突变数据和蛋白质网络的肿瘤驱动通路预测*** |
Also Published As
Publication number | Publication date |
---|---|
CN111581946B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740398B2 (en) | Structuring incoherent nodes by superimposing on a base knowledge graph | |
CN107301170B (zh) | 基于人工智能的切分语句的方法和装置 | |
CN109325040B (zh) | 一种faq问答库泛化方法、装置及设备 | |
JPH0782544B2 (ja) | マルチテンプレートを用いるdpマツチング方法及び装置 | |
WO2016078368A1 (zh) | 一种基于k-核的社区搜索算法 | |
US11461317B2 (en) | Method, apparatus, system, device, and storage medium for answering knowledge questions | |
CN117217315A (zh) | 一种利用大语言模型生成高质量问答数据的方法及装置 | |
CN111581946A (zh) | 一种语言序列模型解码方法 | |
CN114239237A (zh) | 一种支持数字孪生的配电网仿真场景生成***与方法 | |
CN111813916B (zh) | 一种智能问答方法、装置、计算机设备和介质 | |
CN109144498A (zh) | 一种面向对象实例化任务的api自动推荐方法及装置 | |
JP7367473B2 (ja) | 推薦生成方法、装置及びプログラム | |
WO2023093909A1 (zh) | 一种工作流节点推荐方法及装置 | |
CN116340507A (zh) | 一种基于混合权重和双通道图卷积的方面级情感分析方法 | |
CN114328961A (zh) | 客服领域知识图谱构建方法、装置、计算机设备及介质 | |
CN110287977A (zh) | 内容聚类方法及装置 | |
CN110442690B (zh) | 一种基于概率推理的询问优化方法、***和介质 | |
CN108962271B (zh) | 多加权有限状态转换器合并方法、装置、设备及存储介质 | |
Bartels et al. | Creating non-minimal triangulations for use in inference in mixed stochastic/deterministic graphical models | |
CN112580803B (zh) | 模型获取方法、装置、电子设备、存储介质和程序产品 | |
CN109657456B (zh) | Tcam验证方法及*** | |
CN115438193B (zh) | 一种路径推理模型的训练方法及路径推理方法 | |
CN109101570A (zh) | 一种基于图摘要的图模式挖掘方法 | |
CN114490928B (zh) | 一种语义搜索的实现方法、***、计算机设备和存储介质 | |
JP4587283B2 (ja) | 無限木探索方法、装置及び処理プログラム並びに該プログラムを記録した記録媒体 |
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 |