logo好方法网

一种语言序列模型解码方法


技术摘要:
本发明涉及一种语言序列模型解码方法,包括:初始化:基于序列模型,利用贪心算法生成初始语言序列,通过构建有向图,分别得到初始语言序列中起点到终点当前最短路径长度、当前顶点到起点的最短路径长度;扩展:在序列模型中输入当前顶点信息,生成语言序列,根据语言  全部
背景技术:
现如今使用机器学习进行自然语言处理已经是一种主流的实践方法,由于序列模 型能够对语音数据、文本数据、视频数据等一系列具有连续关系的有序数据队列进行学习、 预测,使得这类模型在实际中具有很广的应用范围。比较常见的序列模型应用包括:语音识 别、图像摘要、音乐发生器、机器翻译、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次(因为“。”表示 结束,不会被选择作为输入参数),第三个单词元素的所有条件概率分布则需要一亿次,以 此类推。 三、可选的语言序列的深度未知,可能由几十个单词组成,也可能只有个位数的单 词,存在很大的不确定性。 4 CN 111581946 A 说 明 书 2/12 页 以上特点均使得求解过程存在计算时间长、计算复杂度高的问题,不利于快速进 行解码。 目前很多应用中解码过程均是采用贪心算法生成语言序列,即每次都选择概率分 布中概率值最大的单词元素“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开始新一轮求解。 5 CN 111581946 A 说 明 书 3/12 页 进一步地,所述步骤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、选择当前顶点所在语言序列的上一级顶点作为新的当前顶点,并删除旧的当 6 CN 111581946 A 说 明 书 4/12 页 前顶点,之后执行步骤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为实施例一中本发明方法的第二轮选择过程示意图; 7 CN 111581946 A 说 明 书 5/12 页 图10为实施例一中本发明方法的第三轮求解过程示意图; 图11为实施例一中本发明方法的第四轮求解过程示意图; 图12为实施例一中本发明方法的第五轮求解过程示意图; 图13为实施例一中本发明方法的第六轮求解过程示意图。
下载此资料需消耗2积分,
分享到:
收藏