首页 / 专利库 / 专利权 / 在先检索 / 遍历基于图的网络的方法和系统

遍历基于图的网络的方法和系统

阅读:962发布:2020-06-22

专利汇可以提供遍历基于图的网络的方法和系统专利检索,专利查询,专利分析的服务。并且一种方法和系统将与网络状态序列的网络相对应的弧的输入标签转换成与语法元素序列相对应的弧的输出语法元素的列表。该网络可包括与加权有限状态机变换器(WFST)组合的多个 语音识别 模 块 。遍历可包括活动弧遍历,并且可包括活动弧传播。可并行处理多个弧,包括始自多个源状态以且指向公共目标状态的弧。与状态相关联的自循环可在状态的传出弧内建模,其可减少同步操作。可相关于高速缓存数据 位置 来将任务排序,从而至少部分地基于与对应数据对象相关联的另一任务是否先前已被分配给该线程来将任务与处理线程相关联。,下面是遍历基于图的网络的方法和系统专利的具体信息内容。

1.一种将网络的弧的输入标签转换成所述弧的输出语法元素的列表的方法,包括:
响应于特征向量迭代地遍历网络,从而将与所述网络的状态序列相对应的所述网络的弧的输入标签转换成与语法元素序列相对应的所述弧的输出语法元素的列表;以及基于向哪个处理线程分配了与所述数据对象相关联的在先任务来将与数据对象相关联的任务排序。
2.如权利要求1所述的方法,其特征在于,所述迭代地遍历包括:
传播所述网络的活动弧,包括响应于特征向量更新所述活动弧的目标状态。
3.如权利要求2所述的方法,其特征在于,所述活动弧的所述传播包括:
检索与所述活动弧的起始状态相关联的信息,其包括与所述起始状态相关联的似然度量;
用所述对应起始状态的所述似然度量和所述特征向量来更新所述活动弧;以及根据所更新的活动弧来更新所述对应的目标状态。
4.如权利要求1所述的方法,其特征在于,还包括:
在所述对应状态的一个或多个传出弧内建模与多个所述状态的各个状态相对应的自循环信息。
5.如权利要求1所述的方法,其特征在于,所述弧包括固有似然信息,其中所述弧的至少一部分还包括自循环固有似然信息,且其中遍历包括:
标识活动弧的集合;
至少部分地基于对应自循环固有似然信息来更新包括所述自循环固有似然信息的所述活动弧的集合的至少一个子集的累积似然信息;
在更新所述累积似然信息之后的第一传播阶段期间,传播所述活动弧集合的累积似然信息;
在所述第一传播阶段之后的第二传播阶段中将累积似然信息传播给新激活弧,其中所述新激活弧包括在所述第一传播阶段期间更新的一个或多个状态的一个或多个传出弧;
修改所述活动弧的集合以包括所述新激活的弧,并略去具有低于阈值的累积似然值的弧;以及
对于经修改的活动弧集合,重复所述更新、所述第一传播阶段、以及所述第二传播阶段。
6.一种用于将网络的弧的输入标签转换成所述弧的输出语法元素的列表的系统,包括:
用于响应于特征向量流迭代地遍历网络,以将与所述网络的状态序列相对应的所述网络的弧的输入标签转换成与语法元素序列相对应的所述弧的输出语法元素的列表的装置;
以及
用于基于向哪个处理线程分配了与所述数据对象相关联的所述在先任务来将与数据对象相关联的任务排序的装置。
7.如权利要求6所述的系统,其特征在于,所述用于迭代遍历的装置包括:
用于传播所述网络的活动弧的装置,其包括用于响应于特征向量更新所述活动弧的目标状态的装置。
8.如权利要求7所述的系统,其特征在于,所述用于传播所述活动弧的装置包括:
用于检索与所述活动弧的起始状态相关联的信息的装置,包括与所述起始状态相关联的似然度量;
用于用所述对应起始状态的所述似然度量和所述特征向量来更新所述活动弧的装置;
以及
用于根据经更新的活动弧来更新所述对应目标状态的装置。
9.如权利要求6所述的系统,其特征在于,还包括:
用于在所述对应状态的一个或多个传出弧内建模与多个所述状态的各个状态相对应的自循环信息的装置。
10.如权利要求6所述的系统,其特征在于,所述弧包括固有似然信息,其中所述弧的至少一部分还包括自循环固有似然信息,且其中用于遍历的装置包括:
用于标识活动弧的集合的装置;
用于至少部分地基于对应自循环固有似然信息来更新包括所述自循环固有似然信息的所述活动弧的集合的至少一个子集的累积似然信息的装置;
用于在更新所述累积似然信息之后的第一传播阶段期间,传播所述活动弧的集合的累积似然信息的装置;
用于在所述第一传播阶段之后的第二传播阶段中将累积似然信息传播给新激活弧的装置,其中所述新激活弧包括在所述第一传播阶段期间更新的一个或多个状态的一个或多个传出弧;
用于修改所述活动弧集合以包括所述新激活的弧,且略去具有低于阈值的累积似然值的弧的装置;以及
用于对于所修改的活动弧集合,重复所述更新、所述第一传播阶段、以及所述第二传播阶段的装置。

说明书全文

遍历基于图的网络的方法和系统

背景技术

[0001] 语音特征提取器已发展成生成表示音频流特征向量流。
[0002] 基于图的语音识别网络已发展成使基于语音的特征向量流与书面语言字词序列相关联。
[0003] 推断引擎已发展成响应于基于语音的特征向量流迭代地遍历基于图的语音识别网络的状态,以标识对应字词序列。
[0004] 语音识别系统已发展成使用包括大词汇量连续语音识别(LVCSR)系统的加权有限状态变换器(WFST)。
[0005] 基于状态的网络遍历技术已按照多线程方式以及单指令多数据(SIMD)方式实现。语音识别网络的状态可包括自循环,其通常被视为至对应状态的附加传入循环。在多线程和SIMD处理环境中,甚至在其中一状态仅包括一个传入弧加自循环时,同步化由此也可能是必要的。此外,基于状态的SIMD遍历技术可能不能充分利用SIMD处理巷道,其可导致向量效率低下。这可能抵消SIMD处理的好处。
[0006] 已为多处理器系统开发了通用动态任务调度技术。这种通用技术对于诸如语音识别网络遍历的一些应用中,可能并非是最优的。
[0007] 附图简述
[0008] 图1是基于图的网络和推断引擎的框图
[0009] 图2是遍历基于图的网络的方法的处理流程图
[0010] 图3是图1系统的框图,其中该推断引擎包括活动弧遍历系统。
[0011] 图4是处理活动弧的方法的处理流程图。
[0012] 图5是更新基于图的网络的目标状态的方法的处理流程图。
[0013] 图6是另一基于图的网络和推断系统的框图,其中自循环信息在对应状态的传出弧内建模。
[0014] 图7是当在网络弧的至少一部分内建模自循环信息时遍历网络的方法的处理流程图。
[0015] 图8是当网络的一部分弧的固有似然信息被修改成包括自循环固有似然信息时遍历网络的方法的处理流程图。
[0016] 图9是当网络的弧包括用以保持自循环固有似然信息的多个字段以及自循环固有似然信息的存在性的指示时遍历网络的方法的处理流程图。
[0017] 图10是隐式高速缓存感知环境的框图,其包括用以将任务队列中的任务排序的队列管理器,以及用以在多个处理线程中对来自任务队列的任务进行调度的动态任务管理器。
[0018] 图11是显式高速缓存感知环境的框图,其包括用以将数据位置信息与数据对象相关联的高速缓存感知系统,以及用以至少部分地基于数据位置信息向处理线程分配任务的动态任务管理器。
[0019] 图12是基于数据位置信息将任务排序的方法的处理流程图。
[0020] 图13是至少部分地基于数据位置信息向处理线程分配任务的方法的处理流程图。
[0021] 图14是配置成遍历基于图的网络的计算机系统的框图。
[0022] 在附图中,附图标记的最左边的一个或多个数字标识该附图标记首次出现的附图。

具体实施方式

[0023] 图1是系统100的框图,系统100包括基于图的网络102和推断引擎104。
[0024] 网络102包括多个状态106和状态106之间的弧108,从而将与网络状态序列的弧108相对应的输入标签转换成与语法元素序列的弧108相对应的输出语法元素列表。
[0025] 推断引擎104被配置成响应于特征向量110的流迭代地遍历网络102。
[0026] 特征向量110可表示连续语音、诸如视频序列或视频剪辑的图像序列、以及连续文本的一个或多个。特征向量100可从一个或多个连续和/或离散的信号生成,其可包括嵌入于声信号中的语音、嵌入于视频信号中的可视图像、以及嵌入于计算机可读信号中的文本字符和格式化信息的一个或多个。基于音频的特征向量110可表示话语、词的一部分、或者声音。基于视频的特征向量110可表示动作、色彩、对象,和/或帧之间这些的改变中的一个或多个。各个特征向量110可包括用以保持与信号的对应部分或帧相关联的信息的多个字段。
[0027] 语法可对应于书面语言,其可包括人类可读语言和计算机可读语言中的一种或多种。
[0028] 系统100可对应于语音和/或视频识别系统以将音频和/或视频转换成书面语言。替代地或者另外地,系统100可对应于用以从第一书面语言翻译到第二书面语言的语言翻译系统。第一和第二书面语言的一种或多种可对应于口头语言和/或计算机可读语言。
[0029] 推断引擎104可被配置成响应于特征向量110的流来标识和迭代地优化状态106的一个或多个序列及其对应弧108,在本文中这两者被合称为路径。在给定迭代期间被标识成潜在地对应于特征向量流110的状态106和/或弧108在本文中被称作该迭代的活动状态106和活动弧108。
[0030] 在给定迭代期间,活动状态106的集合可被标识成是通过活动弧108的多个集合可达的。换言之,多条路径可包括沿着弧108的非相同集合遍历的状态106的公共集合。
[0031] 推断引擎104可被配置成将概率度量与状态106和弧108相关联,以表示状态106和弧108对应于特征向量流110的似然性。
[0032] 推断引擎104可被配置成用一个或多个数据对象表示状态106和/或弧108,且被配置成当网络102被遍历时更新对应数据对象。状态106和/或弧108的处理可包括处理对应数据对象。
[0033] 弧108起始的状态106在本文中被称作起始状态106。弧108指向的状态106在本文中被称作目标状态106。
[0034] 系统100可对应于用以从相对大的词汇表中识别字词的大词汇量连续语音识别(LVCSR),其可包括字词间的指数置换以及未知边界分段。
[0035] 给定可能的字词序列集合W时,所观测的音频特征O序列的最大可能字词序列可按照以下数学方式表示:
[0036]
[0037] 可使用诸如用维特比(Viterbi)搜索算法的动态编程复现来计算音频特征和词单序列W的先前似然的乘积P(O|W)P(W)。
[0038] 在时间t处具有字词序列wtj的状态j之中的遍历处理的似然可从在前状态中的似然中导出,如:
[0039]
[0040] 其中aij是从状态i(si)到状态j(si)的转换概率,且b(Ot;mk)是关于从状态i(si)转换到状态j(sj)的上下文相关状态k(mk)的观察概率。
[0041] 推断引擎104可随着时间步骤序列迭代地处理该算法,其中各个时间步骤中的字词或语法元素序列的似然取决于在前时间步骤中所计算的似然。各个迭代中可存在多个、或许是数千个状态106,其可表示特征向量110的最可能的替代解释。可在特征向量110的流的末尾处选择状态106的最可能集合。
[0042] 可根据加权有限状态变换器(WFST)生成网络102。WFST是由弧108的列表所表示的米列(Mealy)有限状态机(FSM),每个弧包括如下文中进一步描述的多个性能。
[0043] 网络102可包括多个分层知识源或者模,其可包括隐尔可夫模型(HMM)声模型H、上下文模型C、字词发音词典L、以及语言模型G中的一个或多个,其可被配置成本文中称作H级网络的H-C-L-G WFST。该组合WFST可利用FSM最小化技术优化,且可用作用于识别网络的平坦化FSM表示。WFST可通过将分级知识源离线平坦化成单级FSM以在运行时间遍历来简化识别处理。
[0044] 在H级WFST中,单个弧108可与对应语法元素相关联。推断引擎104可将作为弧上的输入标签的列表的HMM状态序列转换成作为弧上的输出字词的列表的字词序列。
[0045] 在H级WFST中,一个或多个弧108可包括:
[0046] 当弧108被遍历时所消耗的输入标签或符号;
[0047] 输入标签所转换成的输出标签或字词;
[0048] 源状态;
[0049] 目标状态;以及
[0050] 跟踪始自源状态的弧的固有似然。
[0051] 一个或多个状态106可包括:
[0052] 指向始自状态106的第一传出弧的指针
[0053] 始自状态106的传出弧108的数量的指示;以及
[0054] 始自状态106的厄普西隆(epsilon)传出弧的数量的指示。
[0055] 下文中参考图2描述厄普西隆弧。
[0056] 弧108可被保持在阵列中,且可按起始状态106分组。
[0057] 在基于WFST的搜索期间,可针对输入符号或者特征向量110的集合跟踪贯穿网络102的最可能路径的集合。各条路径的信息可与对应路径的首部相关联。该信息可包括沿该路径的输出符号的集合,诸如被标识成潜在匹配特征向量110的字词,以及路径的对应累积似然。
[0058] 该信息可被保持在数据结构中,其可包括指向输出符号集合的指针以及累积似然值。该数据结构可与状态106相关联,诸如其中一个或多个状态106包括自循环114。替代地,该数据结构可与对应弧108相关联,诸如下文中参考图6-9所描述的其中在一个或多个弧108内建模自循环信息。
[0059] 基于WFST的推断引擎可能是应用无关的,使得其可在诸如文本和图像处理的其他领域中采用。
[0060] 图1中分别用虚线和实线示出的弧108可包括厄普西隆弧和非厄普西隆弧。在不消耗任何输入符号的情况下遍历厄普西隆弧。非厄普西隆弧消耗一个输入符号以执行状态转换。对于H级WFST识别网络而言,网络102的输入标签表示上下文相关HMM状态。
[0061] 图2是在迭代期间响应于输入帧或特征向量110遍历网络102的方法200的处理流程图。
[0062] 在202,相对于网络102的输入符号确定观察概率。该观察概率可包括诸如通过计算距离函数而对匹配声输入符号的输入特征向量的似然测量。可根据上下文相关状态的高斯(Gaussian)混合模型来确定观察概率。在202的观察概率的确定可包括计算活动状态的传出弧上的输入符号,以及可实质上或者仅仅包括对活动状态的传出弧上的输入符号进行计算。观察概率的确定可包括参考网络102的声模型。
[0063] 在204,处理非厄普西隆弧。非厄普西隆弧的处理可包括计算以下概率的联合概率:
[0064] 在202计算的当前输入b(Ot;mk)的观察概率;
[0065] 从网络102所涉及的要遍历的弧aij的转换概率或者权重;以及
[0066] 在时间t-1处的在前迭代中所计算的先前序列的似然或者源状态成本[0067] 在204可确定作为观察概率、转换概率和似然的乘积的联合概率。在204可作为对数值相加来确定联合概率。
[0068] 在206,处理厄普西隆弧。因为厄普西隆弧不具有输入符号,所以概率可被计算为转换概率和先前序列的似然的乘积。
[0069] 在204和/或206,可用那个状态的最可能的对应非厄普西隆和厄普西隆传入弧的成本来更新目标状态成本。可根据维特比近似来确定该成本。
[0070] 网络102可包括一系列的连续厄普西隆弧,诸如图1中的厄普西隆弧108-7和108-10。在206的厄普西隆弧的处理可包括遍历始自各个目标状态的所有厄普西隆传出弧直到到达不具有厄普西隆传出弧的状态。
[0071] 诸如数千个输入符号的多个输入符号可被用于在202计算观察概率。诸如数万个弧转换的多个弧转换可在204和206处理非厄普西隆弧期间遍历网络102。
[0072] 可对附加输入帧或者特征向量110重复方法200。
[0073] 遍历技术
[0074] 推断引擎104可被配置成相关于活动状态和/或活动弧遍历网络102。
[0075] 活动状态的遍历在逐个状态的基础上操作。可相关于活动状态106的传出弧108执行活动状态遍历,本文中称作活动状态传播。替代地或者另外地,可相关于下一迭代的候选活动状态106的传入弧108执行活动状态遍历,本文中称作活动状态集聚。当至状态的传出弧108从当前迭代的活动状态106起始时,状态106可被定义为下一迭代的候选活动状态。
[0076] 在活动状态传播的情况下,评价各个活动状态106的传出弧108,且结果被传播到对应目标状态106。
[0077] 在活动状态集聚的情况下,评价候选活动状态106的传入弧108,且根据该评价的结果来更新对应候选活动状态106。
[0078] 活动弧遍历在逐个弧的基础上进行,其中用从对应起始状态检索的参数来更新活动弧108,且该经更新的活动弧108用于更新对应目标状态106。可相关于活动状态的传出弧来执行活动弧遍历,本文中称作活动弧传播,或者相关于候选活动状态的传入弧来执行活动弧遍历,本文中称作活动弧集聚。在下文中参考图3-5描述执行活动弧遍历的方法和系统。
[0079] 并行处理技术
[0080] 推断引擎104可被配置成迭代地用诸如单指令多数据(SIMD)环境中的数据级并行和/或诸如多处理器或多核环境中的线程级并行来迭代地遍历网络102。
[0081] 在SIMD环境中进行活动状态遍历的情况下,与状态106相关联的弧108可与SIMD工作单元或向量相关联,且这些弧108可在并行SIMD处理巷道中处理。在基于WFST的搜索图中,一些状态可具有相对大量的传出弧,而其他状态可具有相对少量的传出弧。这可能导致相对低和/或不一致的SIMD利用。
[0082] 在SIMD环境中进行活动弧遍历的情况下,多个弧108可与SIMD工作单元或向量相关联,而与对应源状态或目标状态106无关。这可提供相对一致的SIMD向量单元效率。
[0083] 在多线程环境中进行活动状态遍历的情况下,与第一活动状态106相关联的弧108可被分配到多个处理线程的第一线程,与第二活动状态106相关联的弧108可被分配到多个处理线程的第二线程,且该第一和第二线程可被并行处理。
[0084] 在多线程环境中进行活动弧遍历的情况下,活动弧108可被分配给处理线程而与对应状态106无关。
[0085] 在线程级并行的情况下,在运行时间之前可向特定线程预分配任务。替代地或另外地,动态任务管理器可被配置成在运行时至少部分地基于数据位置信息向线程分配任务,如下文中参考图9-12所描述地。
[0086] 同步化
[0087] 当诸如在SIMD环境和/或多线程环境中活动状态或活动弧并行传播时,且在其中多个弧指向公共目标状态时,可从底层平台提供诸如原子更新的写冲突解决方案。在下文中参考附图6-8揭示可能需要同步化的用于减少实例的方法和系统。
[0088] 当活动状态106的传入弧108并行集聚时,活动状态的对应更新可包括减少传入弧108的评价结果。该减少可用附加算法步骤显式管理潜在的写冲突,从而不需要来自底层平台的写冲突解决支持。
[0089] 活动弧遍历
[0090] 图3是系统100的框图,其中推断引擎104包括用以遍历或者迭代网络102的活动弧的活动弧遍历系统302。如下文中的进一步描述,活动弧遍历系统302可被配置成利用跨越始自多个活动状态的弧的SIMD计算来遍历活动弧,其可允许基本上完全地利用甚至非常宽的向量单元。
[0091] 图4是处理活动弧的方法400的处理流程图。参照图3所示的系统100在下文中描述方法400。但是方法400不限于图3的示例。
[0092] 在402,在推断引擎104处接收特征向量110。
[0093] 在404,由活动弧遍历系统302标识网络102的活动弧108。活动弧可被标识成活动状态的传出弧、或者活动弧传播,和/或候选活动状态的传入弧、或者活动弧集聚。
[0094] 在406,由活动弧遍历系统302响应于在402接收的特征向量110来更新所标识活动弧108的目标状态106。
[0095] 在408,处理可返回至402以接收一个或多个附加特征向量110。
[0096] 在410,当完成特征向量110的处理时,由推断引擎104输出与贯穿网络102的最高似然路径相对应的语法元素112的序列。
[0097] 图5是诸如以上参照406的描述的更新目标状态106的方法500的处理流程图。
[0098] 在502,从活动弧108的起始状态106检索信息,该信息包括与起始状态106相关联的似然度量。
[0099] 在504,用在502检索的对应信息和在402接收的一个或多个特征向量110来更新活动弧。
[0100] 推断引擎104可被配置成以SIMD方式处理活动弧108。举例而言,可相关于多个弧以SIMD方式执行在502的信息提取和在504的活动弧更新。工作单元管理器可被配置成将多个弧108关联为工作单元,以跨越SIMD处理巷道的集合进行处理。可按照SIMD方式处理始自多个源状态106且指向公共目标状态的弧108。
[0101] 以SIMD方式处理活动弧可使基本上完全地利用对应向量单元,且可提供相对于以SIMD方式处理活动状态更佳的向量效率。
[0102] 传出弧内的自循环建模
[0103] 在图1中,多个活动状态106和/或活动弧108在遍历迭代期间可将信息传播至公共目标状态106。当多个活动状态106和/或活动弧108被同步地或并行地处理时,诸如在线程级和/或数据级并行处理中,对应目标状态的更新的同步化是必要的。
[0104] 网络102的一个或多个状态106可包括自循环114。例如由于底层隐马尔可夫模型(HMM)的特性,WFST搜索图可包括自循环114。
[0105] 自循环114可作为对应状态106的传入弧处理,甚至在其中状态106仅具有一个传入活动弧108时其可使对状态106的更新的同步成为必要。
[0106] 可与原子更新硬件一起执行同步。替代地或者另外地,可采用私有化方案。私有化方案可涉及用以合并私有结果的附加处理。同步化和私有化操作可消耗处理资源和时间。
[0107] 在一个实施例中,自循环114可从一个或多个状态106中略去或者移除,且在一个或多个对应传出弧108内建模。
[0108] 可从所有具有自循环114的状态106中或者诸如仅具有一个传入弧108的状态106的其子集中,省略或移除自循环114。可仅在非厄普西隆弧108内建模自循环114。从仅具有一个传入弧108的状态106中移除或者省略自循环114可减少或者消除对状态106的更新进行同步的必要。
[0109] 在传出弧108内建模自循环114可包括修改与弧108相关联的数据结构以存储自循环信息。
[0110] 自循环信息可包括固有似然或者概率信息。自循环固有似然信息可在传出弧108内被隐式建模,诸如通过用自循环固有似然信息来修改传出弧108的固有似然信息。替代地,自循环固有似然信息可在传出弧108内被显式建模,诸如通过将传出弧108修改成包括用于存储该弧108是否包括自循环信息的指示的字段,以及用以存储自循环信息的一个或多个附加字段。
[0111] 遍历对应网络可包括在每个迭代期间的用以处理传出弧108内的自循环信息的一个或多个附加计算。诸如以下参考图6-9所描述,当处理对应传出弧108时可执行附加计算。
[0112] 网络102最初可生成为具有多个自循环114,且一个或多个自循环114可在对应传出弧108内移除或重新建模。网络102可在传出弧108内移除和重新建模自循环信息之后优化。该后续优化可合并相对大量的状态106,这可改善遍历效率。优化可包括诸如如上所述的一种或多种FSM最小化技术。
[0113] 替代地,H变换器在开始时可生成为不具有显式自循环114,且具有在传出弧108内建模的自循环信息。然后可执行组合和/或其它优化过程以提供WFST网络102。优化可合并相对大量的状态106。
[0114] 图6是基于图的网络和包括网络602的推断系统600的框图,其中可在对应状态606的非厄普西隆传出弧608-1至608-5、608-8以及608-11内建模自循环信息。从对应状态606省略图1的自循环114。
[0115] 推断引擎604可包括用以更新在网络602的弧内建模的自循环信息的基于弧的自循环更新系统604,如下文中参考图7至图9进行的描述。
[0116] 图7是当在网络弧的至少一部分内建模自循环信息时遍历网络的方法700的处理流程图。
[0117] 在702,至少相关于具有在其中建模的自循环固有似然信息的弧来更新累积似然信息。如以下参考图9所描述地,诸如图6的厄普西隆弧608-6、608-7、以及608-8的一些弧108可不包括自循环信息,且因此可从702的更新中被略去。
[0118] 在704,可根据对应更新弧来更新所更新弧的目标状态。在702的更新之后,在704执行目标状态的更新。其中在704响应于多个传入弧来更新目标状态,在704的更新可包括更新的同步化。
[0119] 在706,可更新厄普西隆弧。
[0120] 在708,始自在704更新的目标状态的弧可根据所更新的目标状态来更新。在704更新所有目标状态之后,可在708执行弧的更新。
[0121] 图8是当至少一部分弧的固有似然信息被修改成包括自循环固有似然信息时遍历网络的方法800的处理流程图。
[0122] 在802,标识当前迭代的活动弧。
[0123] 在804,基于对应固有似然信息更新所有活动弧或者至少所有活动非厄普西隆弧的累积似然信息。这实质上对于包括自循环固有似然信息的弧执行自循环更新。
[0124] 在806,用对应活动弧的经更新的累积似然信息来更新活动弧的目标状态的累积似然信息。
[0125] 当方法800在诸如线程级和/或数据级并行处理环境的并行处理环境中实现时,以及在其中响应于多个传入活动弧来更新状态时,在806更新目标状态可包括同步化与多个传入弧相关联的更新。因为自循环信息在弧内而非状态内建模,所以与响应于单个传入活动弧更新相关的状态可略去同步化。
[0126] 在808,可更新厄普西隆弧。
[0127] 在806的累积似然信息的更新可激活经更新目标状态的一个或多个传出弧。这种弧在本文中称作新激活弧。在810,用在806更新的对应目标状态的更新累积信息来更新新激活弧的累积似然信息。可在806处理所有活动弧之后,在810执行新激活弧的更新。
[0128] 可迭代地重复方法800或者其一部分直到所有活动弧和对应目标状态被更新。在后续的迭代中,在804和806的活动弧的处理可包括在812的先前迭代中所标识的新激活弧。
[0129] 诸如当对应累积似然值比阈值低时,可从后续迭代中的进一步处理略去包括新激活弧的一个或多个活动弧。
[0130] 图9是当网络的弧包括用以保持自循环固有似然信息的多个字段和自循环似然信息存在性的指示时遍历网络的方法900的处理流程图。
[0131] 在902,标识当前迭代的活动弧。
[0132] 在904,基于该弧内的对应自循环固有似然信息来更新包括自循环固有似然信息存在性的指示的活动弧的累积似然信息。这仅相关于包括自循环固有似然信息存在性的指示的弧来实质上执行自循环更新。
[0133] 在906,用对应活动弧的经更新累积似然信息来更新所有活动弧或者至少所有活动非厄普西隆弧的目标状态的累积似然信息。
[0134] 在906的目标状态的更新可包括同步与多个传入弧相关联的更新,如以上参考方法800所述。
[0135] 在908,可更新厄普西隆弧。
[0136] 在910,用在906更新的对应目标状态的经更新累积信息来更新新激活弧的累积似然信息,如以上参考810所述。
[0137] 可迭代地重复方法900或者其一部分直到所有活动弧和对应目标状态被更新,如以上参考方法800所述。
[0138] 高速缓存感知动态任务排序
[0139] 在多处理器环境中,可利用动态任务调度来平衡多个处理线程中的工作负荷。
[0140] 在诸如基于WFST的搜索的一些环境中,常规任务调度器试探法可能不是最佳的。举例而言,在其中诸如活动状态或活动弧的数据对象要在当前迭代或者帧中处理时,且其中该数据对象在先前迭代中作了处理时,与数据对象相关联的数据可仍然缓存在与先前曾处理该数据对象的线程相关联的位置处。在当前迭代中在同一线程中处理数据对象将有帮助,因为现有的缓存数据可减少或者消除重新检索或者重新计算所缓存数据的需求。但是,常规动态任务调度器试探法不会尝试将一数据对象分配给先前分配到该数据对象的同一线程。
[0141] 本文中所揭示的方法和系统用于基于数据位置来将任务排序,本文中称作动态高速缓存感知任务排序。动态高速缓存感知任务排序至少部分地基于对应数据对象的数据高速缓存位置将任务和线程相关联。
[0142] 本文中还揭示用于使用本文中所揭示的动态高速缓存感知任务排序技术来搜索基于WFST的网络的方法和系统。
[0143] 高速缓存感知动态任务排序可包括隐式高速缓存感知任务调度或者显式高速缓存感知任务调度。
[0144] 隐式高速缓存感知任务调度可将队列中的任务排序以隐式地或者间接地使动态任务管理器将任务分配给特定线程。队列排序可基于任务管理器的试探法,诸如以下参考图10和12所述。
[0145] 显式高速缓存感知任务调度可标识先前处理数据对象的线程,且显式地将与数据对象相关联的新任务分配给同一线程,如以下参考图11和13所述。
[0146] 图10是隐式高速缓存感知环境1000的框图,其包括用于将任务队列1006中的任务1002排序的队列管理器1004、以及用于在多个处理线程1010之间调度来自任务队列1006的任务1002的动态任务管理器1008。
[0147] 任务1002可与活动状态106和/或活动弧108相关联。在任务1002的处理期间,线程1010可生成后续迭代的活动状态106和/或活动弧108的列表1012。可相关于列表1012中所标识的活动状态105和/或活动弧108来定义对应新任务1002。
[0148] 如列表1012中所标识的后续迭代的至少一部分活动状态106和/或活动弧108可能已经在具有对应线程1010的当前迭代中活动。
[0149] 队列管理器1004可被配置成基于在其中标识对应状态106和/或弧108的列表1012来安排队列1006内的任务1002,从而使动态任务管理器1008将任务1002分配给发起任务1002的线程1012。因此,当状态106和/或弧108在连续迭代中活动时,对应任务
1002可被分配给同一线程1010。
[0150] 举例而言,在当前迭代期间与弧108相关联的任务1002可被分配给线程1010-1。在当前迭代期间处理任务1002时,线程1010-1可生成列表1012-1以指示该弧108要在后续迭代中活动。针对后续迭代可调用对应于弧108的新任务1002,且队列管理器1004可在队列1006中放置新任务1002,从而使动态任务调度器将新任务1002分配给线程1010-1。
[0151] 队列管理器1004可包括试探系统1014,用以根据动态任务管理器1008所使用的试探法来将队列1002中的任务1002进行排序,从而影响动态任务管理器1008的线程分配。
[0152] 举例而言,任务管理器1008可被配置成以循环方式将任务1002分配给线程1010,其中以循环方式将第一任务1002分配给线程1010-1,将第二任务1002分配给线程
1010-2,以及将后续任务1002分配给后续线程1010。类似地,队列管理器1004可被配置成以循环方式以及根据列表1012将任务1002放置在队列1006中。举例而言,首先可将来自列表1012-1的任务1002分配给队列1006,然后是来自列表1012-2的任务1002、然后是来自后续列表1012的后续任务1002。
[0153] 作为另一示例,动态任务管理器1008可被配置成从队列1006检索一组任务1002,从而将该组任务1002分离成相邻任务1002的多个集合,且从而以循环方式将任务1002的各个相邻集合相继地分配给线程1010。举例而言,当队列1006包括A至H的8个任务1002时,且其中线程1010包括1010-1至1010-4的四个线程时,动态任务管理器108可将任务A和B分配给线程1010-1,将任务C和D分配给线程1010-2,将任务E和F分配给线程1010-3,以及将任务G和H分配给线程1010-4。鉴于从其发起任务A至H的列表1012,队列管理器1004可被配置成将任务A至H安排在队列1006中。
[0154] 图11是显式高速缓存感知环境1100的框图,其包括用于管理数据位置信息的高速缓存感知系统1104、以及用于至少部分地基于数据位置信息将任务1002分配给处理线程1110的动态任务管理器1008。
[0155] 高速缓存感知系统1104可包括记录系统1106,用于在将任务1102分配给线程1110时从动态任务管理器1108接收数据位置信息1108。数据位置信息1108可标识向其分配任务1102的线程1110,其可对应于与对应数据对象1116相关联的数据存储在其中的高速缓存位置。
[0156] 记录系统1106可被配置成将数据位置信息1108与数据对象1116相关联,任务1102指向该数据对象1116。数据对象1116可表示状态106和/或弧108,且可包括用以记录对应数据位置标识1108的字段。
[0157] 高速缓存感知系统1104可包括检索系统1112,用于当与数据对象1116相关联的任务1102被分配给线程1110时检索与数据对象1116相关联的数据位置信息1114。
[0158] 动态任务管理器1108可被配置成至少部分地基于检索到的数据位置信息1114将任务1102分配到线程1110。
[0159] 动态任务管理器1108可被配置成将任务1102分配给线程1110时考虑一个或多个其它因素,诸如用于在线程1110之间平衡处理负荷。
[0160] 高速缓存感知系统1104和动态任务管理器1108可分别实现或者可能集成在一起。
[0161] 图12是至少部分地基于数据位置信息来将任务排序的方法1200的处理流程图。可如以上参考图10所述地实现方法1200。但是方法1200不限于图10的示例。
[0162] 在1202,从多个处理线程的各个线程中提取后续迭代中的活动数据对象的列表。该数据对象可表示基于图的网络的弧和/或状态。
[0163] 在1204,接收后续迭代中的与活动数据对象相关联的任务。
[0164] 在1206,基于列表将任务与处理线程相关联,在该列表中标识对应数据对象。
[0165] 在1208,根据任务管理器试探法将任务进行排序,从而将任务引向相关联的处理线程。该任务可在任务队列内被排序,该任务管理器从该任务队列中将任务分配到线程。
[0166] 图13是至少部分地基于数据位置信息将任务分配给处理线程的方法1300的处理流程图。可如以上参考图11所述地实现方法1300。但是方法1300不限于图11的示例。
[0167] 在1302,接收任务。该任务可与代表基于图的网络的状态或弧的数据对象相关联。
[0168] 在1304,作出是否该数据对象与该线程相关联的确定。这可包括确定诸如线程标识的高速缓存数据位置信息是否与该数据对象相关联。
[0169] 下文中描述当该数据对象与线程不关联时处理前进至1306。
[0170] 当任务与线程相关联时,在1308作出另一确定。
[0171] 在1308,如果线程可容纳该任务,则在1310该任务被分配给该线程。如果线程不能容纳该任务,或者基于一个或多个其它考虑另一线程更适合于该任务时,则处理前进至1306。
[0172] 在1306,基于一个或多个其它因素该数据对象被分配给线程,且将对应高速缓存数据位置信息与数据对象相关联。该高速缓存数据位置信息可包括向哪个线程分配了任务的指示。
[0173] 此后,在1302该数据对象是另一任务的主题时,在1310该任务可被分配给同一线程。
[0174] 基于活动弧的遍历、在弧内建模的自循环信息的处理、高速缓存感知动态任务排序可单独地和/或以彼此间的各种组合来实现。
[0175] 本文中所揭示的一个或多个特征可在包括分立和集成电路逻辑、专用集成电路(ASIC)逻辑、以及微控制器的硬件、软件固件、以及其组合中实现,且可作为域特定集成电路封装或者集成电路封装的组合的一部分而实现。本文中所使用的“软件”这一术语指示包括计算机可读介质的计算机程序产品,该计算机可读介质具有存储于其中的计算机程序逻辑以使计算机系统执行本文中所揭示的一个或多个特征和/或特征的组合。
[0176] 图14是被配置成遍历基于图的网络的计算机系统1400的框图。
[0177] 计算机系统1400可包括在本文中例示为处理器或者核1402的一个或多个计算机指令处理单元,用于执行计算机程序逻辑。
[0178] 计算机系统1400可进一步包括具有计算机可读介质的高速缓存、存储器、和/或存储装置(下文中称作“存储器”)1404,该计算机可读介质具有存储于其中的计算机程序产品逻辑或指令1406以使处理器1402对其作出响应来执行一个或多个功能。
[0179] 存储器1404还包括在执行指令1406时由处理器1402使用的、和/或响应于指令1406的执行由处理器1402所生成的数据1408。
[0180] 在图14的示例中,逻辑1406包括推断引擎逻辑1410,用于使处理器1404遍历如以上的一个或多个示例所描述的基于图的网络1412。网络1412可对应于图1中的网络102,或者图6中的网络602。网络1412可包括用于表示网络1412的一个或多个状态和弧的数据对象1414。
[0181] 推断引擎逻辑1410可包括活动弧遍历逻辑1416,用于使处理器1402遍历如以上参考图1-5的一个或多个所描述的网络1412的活动弧。
[0182] 当自循环信息在网络1410的弧内建模时,推断引擎逻辑1410可包括基于弧的自循环更新逻辑1418,用于使处理器1402更新自循环信息,如以上参考图6-9的一个或多个所述。
[0183] 计算机系统1400可包括用于在运行时调度任务或将任务分配给处理线程的动态任务管理器1420。动态任务管理器1422可对应于图10中的动态任务管理器1008以及图11中的动态任务管理器1108的一个或多个。
[0184] 当计算机系统1400包括动态任务管理器1422时,推断引擎逻辑1410可包括高速缓存感知排序逻辑1420,用于使处理器1402基于向哪个处理线程分配了与数据对象相关联的在先任务来将与数据对象相关联的任务排序。高速缓存感知排序逻辑1420可包括如以上参考图10和12的一个或多个所述的,用于根据任务管理器1422的试探法将线程进行排序、用于使任务管理器1422向对应线程分配任务的逻辑。高速缓存感知排序逻辑1418可对应于图10中的队列管理器1004。高速缓存感知排序逻辑1418可在推断引擎1410的外部实现,且可独立于推断引擎1410而实现。
[0185] 替代地,动态任务管理器1422可被显式配置成基于与数据对象1414相关联的数据位置信息将任务分配给线程,且计算机系统1400可进一步包括数据位置管理系统1424,用于将数据位置信息与数据对象1414相关联,并索引数据位置信息且提供给动态任务管理器1422,如以上参考图11和图13的一个或多个所述。数据位置管理系统1424可对应于图11中的高速缓存感知系统1104。数据位置管理系统1424可在硬件、固件、逻辑1406、以及其组合中实现。
[0186] 计算机系统1400可包括通信基础结构1426,用以提供计算机系统1400内的一个或多个通信路径。
[0187] 通信系统1400可包括输入/输出控制器(I/O)1428,用以提供计算机系统1400和一个或多个其它系统之间的一个或多个通信路径。
[0188] 在这里,各种方法和系统是借助于示出其功能、特征和关系的功能性构造框来公开的。在本文中为便于描述,任意地限定了这些功能性构造框的至少一些边界。可定义替代边界。
[0189] 虽然本文中揭示了各种实施例,要理解它们仅以示例方式被呈现,而非限制。在其中可作出形式上以及细节上的各种改变而不背离本文所揭示的方法和系统的精神和范围对于本领域普通技术人员是显而易见的。因此,本权利要求的广度和范围不应由本文中所揭示的任何示例性实施例所限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈