説明

グラフベースのネットワークを横断するための方法及びシステム

【課題】ネットワークの状態のシーケンスに対応するネットワークのアークの入力ラベルを文法要素のシーケンスに対応するアークの出力文法要素のリストに変換する方法及びシステムを提供する。
【解決手段】ネットワークは、重み付き有限状態変換器(WFST)と組み合わされた複数の音声認識モデルを含む。トラバーサルは、アクティブアーク横断を含むことができ、また、アクティブアーク伝播を含むことができる。アークは、複数のソース状態を起源とし且つ共通の目的状態に向けられるアークを含め、並列に処理され得る。状態に関連するセルフループは状態の退出アーク内でモデル化されてもよく、それにより同期化処理が削減され得る。タスクを、対応するデータオブジェクトに関する別のタスクが以前にスレッドに割り当てられていたかに少なくとも部分的に基づいて、処理スレッドに関連付けるように、タスクはキャッシュデータ位置との関係で順序付けられ得る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、グラフベースのネットワークを横断(トラバース)するための方法及びシステムに関する。
【背景技術】
【0002】
音声ストリームを表す特徴ベクトルのストリームを生成するために、音声特徴抽出器が開発されている。
【0003】
音声ベースの特徴ベクトルを書き言葉の単語シーケンスに関連付けるために、グラフベースの音声認識ネットワークが開発されている。
【0004】
対応する単語シーケンスを特定するために、音声ベースの特徴ベクトルのストリームに応答して、グラフベースの音声認識ネットワークの複数の状態間を繰り返し行き来するように、推論(インファレンス)エンジンが開発されている。
【0005】
音声認識システムは、大語彙連続音声認識(large vocabulary continuous speech recognition;LVCSR)システムを含む重み付き有限状態変換器(Weighted Finite State Transducer;WFST)を用いて開発されてきた。
【0006】
状態ベースのネットワーク横断(トラバーサル)技術は、マルチスレッド的且つ単一命令複数データ(single instruction,multiple data;SIMD)的に実装されてきた。音声認識ネットワークの状態は、対応する状態への追加の到来ループとして従来から取り扱われているセルフループを含み得る。マルチスレッドSIMD処理環境においては、故に、状態がセルフループに加えて唯一の到来アークを含む場合であっても、同期化が必要となり得る。さらに、状態ベースのSIMD横断技術は、SIMD処理レーンを完全に利用することができないことがあり、それにより、ベクトル非効率性がもたらされ得る。これは、SIMD処理の利益を相殺してしまい得る。
【0007】
包括的な動的タスクスケジューリング技術がマルチプロセッサシステム用に開発されている。そのような包括的な技術は、例えば音声認識ネットワークの横断などの一部の用途では最適でないことがある。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の実施形態は、グラフベースのネットワークを横断するための方法及びシステムを提供する。
【課題を解決するための手段】
【0009】
一態様に従って、ネットワークのアークの入力ラベルを、前記アークの出力文法要素のリストに変換する方法及びシステムが提供される。当該方法及びシステムは、特徴ベクトルのストリームに応答してネットワークを繰り返し横断することを含む。ネットワークの状態のシーケンスに対応するネットワークのアークの入力ラベルが、文法要素のシーケンスに対応する前記アークの出力文法要素のリストに変換される。当該方法及びシステムは更に、データオブジェクトに関するタスクを、該データオブジェクトに関する先行タスクが割り当てられた処理スレッドに基づいて順序付けることを含む。
【図面の簡単な説明】
【0010】
【図1】グラフベースネットワーク及び推論エンジンを示すブロック図である。
【図2】グラフベースネットワークを横断する方法を示す処理フローチャートである。
【図3】推論エンジンがアクティブアーク横断システムを含む図1のシステムを示すブロック図である。
【図4】アクティブアークを処理する方法を示す処理フローチャートである。
【図5】グラフベースネットワークの目的状態を更新する方法を示す処理フローチャートである。
【図6】対応する状態の退出アーク内でセルフループ情報がモデル化される別のグラフベースネットワーク及び推論エンジンを示すブロック図である。
【図7】ネットワークのアークの少なくとも一部内でセルフループ情報がモデル化されるときの、ネットワークを横断する方法を示す処理フローチャートである。
【図8】セルフループ固有尤度情報を含むようにネットワークのアークの一部の固有尤度情報が変更されるときの、ネットワークを横断する方法を示す処理フローチャートである。
【図9】セルフループ固有尤度情報とセルフループ固有尤度情報の存在を指し示すものとを保持するようにネットワークのアークが複数のフィールドを含むときの、ネットワークを横断する方法を示す処理フローチャートである。
【図10】タスク待ち行列内のタスク群を順序付けるキューマネジャと、複数の処理スレッド間でタスク待ち行列からのタスク群をスケジューリングする動的タスクマネジャとを含む、黙示的なキャッシュ認識環境を示すブロック図である。
【図11】データ局所情報をデータオブジェクトと関連付けるキャッシュ認識システムと、少なくとも部分的にデータ局所情報に基づいて、タスクを処理スレッドに割り当てる動的タスクマネジャとを含む、明示的なキャッシュ認識環境を示すブロック図である。
【図12】データ局所情報に基づいてタスク群を順序付ける方法を示す処理フローチャートである。
【図13】少なくとも部分的にデータ局所情報に基づいてタスクを処理スレッドに割り当てる方法を示す処理フローチャートである。
【図14】グラフベースネットワークを横断するように構成されたコンピュータシステムを示すブロック図である。 図面において、参照符号の1桁目は、その参照符号が最初に現れる図を指し示す。
【発明を実施するための形態】
【0011】
図1は、グラフベースネットワーク102と推論エンジン104とを含むシステム100のブロック図である。
【0012】
ネットワーク102は、複数の状態106と、状態106間のアーク108とを含んでおり、ネットワークの一連の状態に対応するアーク108の入力ラベルを、一連の文法要素に対応するアーク108の出力文法要素のリストに変換する。
【0013】
推論エンジン104は、特徴ベクトル110のストリームに応答して、ネットワーク102を繰り返し横断するように構成されている。
【0014】
特徴ベクトル110は、連続音声、例えばビデオフレームのシーケンス又はビデオクリップなどの画像シーケンス、並びに連続テキストのうちの1つ以上を表し得る。特徴ベクトル110は、音響信号内に埋め込まれた音声、ビデオ信号内に埋め込まれた視覚映像、及びコンピュータ読み取り可能な信号内に埋め込まれたテキスト文字及びフォーマット情報のうちの1つ以上を含み得る1つ以上の連続信号及び/又は不連続信号から生成され得る。オーディオベースの特徴ベクトル110は、言葉、単語の一部又は音波を表し得る。ビデオベースの特徴ベクトル110は、動き、色、物体、及び/又はフレーム間でのそれらの変化のうちの1つ以上を表し得る。各特徴ベクトル110は、信号の対応する部分又はフレームに付随する情報を保持するために複数のフィールド(場)を含み得る。
【0015】
文法は、ヒトが読み取り可能な言語又はコンピュータが読み取り可能な言語のうちの1つ以上を含み得る書き言葉に相当し得る。
【0016】
システム100は、オーディオ及び/又はビデオを書き言葉に変換する音声及び/又は映像認識システムに相当し得る。それに代えて、あるいは加えて、システム100は、第1の書き言葉を第2の書き言葉へと変換する言語翻訳システムに相当してもよい。第1及び第2の書き言葉のうちの1つ以上は、話された言葉及び/又はコンピュータ読み取り可能言語に相当してもよい。
【0017】
推論エンジン104は、特徴ベクトル110のストリームに応答して、状態106の1つ以上のシーケンスと、ここではパスとも称する対応するアーク108とを特定し、それらを繰り返しリファインするように構成され得る。特徴ベクトルストリーム110に潜在的に対応するとして所与の繰り返し中に特定された状態106及び/又はアーク108のことを、ここでは、その繰り返しのアクティブ状態106及びアクティブアーク108と呼ぶ。
【0018】
所与の繰り返しにおいて、複数組のアクティブアーク108を介して到達可能なアクティブ状態106の組が特定されてもよい。換言すれば、複数のパスが、同一でない組のアーク108に沿って横断される1つの共通する組の状態106を含み得る。
【0019】
推論エンジン104は、状態106及びアーク108が特徴ベクトルストリーム110に対応する尤度を表す可能性指標を、状態106及びアーク108に関連付けるように構成され得る。
【0020】
推論エンジン104は、1つ以上のデータオブジェクトを用いて状態106及び/又はアーク108を表すように構成されることができ、また、ネットワーク102が横断されるときに対応するデータオブジェクトを更新するように構成され得る。状態106及び/又はアーク108の処理は、対応するデータオブジェクトを処理することを含み得る。
【0021】
アーク108の起源となる状態106のことを、ここでは、起源状態106と称する。アーク108が向けられる状態106のことを、ここでは、目的状態106と称する。
【0022】
システム100は、指数関数的な順列及び単語間の未知の境界セグメンテーションを含み得る比較的大きい語彙から単語を認識する大語彙連続音声認識(LVCSR)に相当し得る。
【0023】
一組の可能性ある単語シーケンスWが与えられるとき、観測されたオーディオ特徴Oに関して最も可能性の高い単語シーケンス:
【0024】
【数1】

は、数学的に:
【0025】
【数2】

として表され得る。
【0026】
オーディオ特徴と単語シーケンスWの従前の尤度との積であるP(O|W)P(W)は、例えばビタビ(Viterbi)探索アルゴリズムを用いるなど、動的プログラミング再帰を用いて計算され得る。
【0027】
時間tに単語シーケンスwtjを有する状態jにある横断プロセスの尤度は、先行状態での尤度から:
【0028】
【数3】

として導出され得る。ここで、atjは状態i(s)から状態j(s)への遷移確率であり、b(O;m)は状態i(s)から状態j(s)への遷移時のコンテキスト依存状態k(m)の観測確率である。
【0029】
推論エンジン104は、一連の時間ステップにわたってアルゴリズムを繰り返し処理することができ、各時間ステップにおける単語又は文法要素シーケンスの尤度は、先行する時間ステップで計算された尤度に依存する。各繰り返しにおいて、特徴ベクトル110の最も可能性ある選択すべき解釈を表す多数の、恐らくは何千もの、アクティブ状態106が存在し得る。最も可能性ある状態106の組が、特徴ベクトル110のストリームの最後で選択され得る。
【0030】
ネットワーク102は、重み付き有限状態変換器(WFST)に従って生成され得る。WFSTは、各々が例えば後述するもののような複数の特性を含むアーク群108のリストによって表されるMealyの有限状態マシン(FSM)である。
【0031】
ネットワーク102は、隠れマルコフモデル(Hidden Markov Model;HMM)音響モデルH、コンテキストモデルC、単語の発音辞書L、及びここではHレベルネットワークと称するH−C−L−G型WFSTに構成され得る言語モデルGのうちの1つ以上を含み得る複数の階層的な知識源又はモデルを含み得る。結合されたWFSTが、FSM最小化技術を用いて最適化されて、認識ネットワークのフラット化されたFSM表現として用いられてもよい。WFSTは、ランタイムにて横断すべく、階層的な知識源をオフラインで単一階層のFSMへとフラット化することによって、認識処理を単純化し得る。
【0032】
HレベルWFSTにおいて、個々のアーク108は、対応する文法要素に関連付けられ得る。推論エンジン104は、アーク上の入力ラベルのリストとしてのHMM状態のシーケンスを、アーク上の出力ワードのリストとしての単語のシーケンスに変換し得る。
【0033】
HレベルWFSTにおいて、1つ以上のアーク108は:
アーク108が横断されるときに消費される入力ラベル又はシンボル;
入力ラベルが変換された結果の出力ラベル又は単語;
ソース状態;
目的状態;及び
ソース状態からのアークに従う固有尤度;
を含み得る。
【0034】
1つ以上の状態106は:
状態106からの第1の退出アーク108へのポインタ;
状態106からの退出アークの数を指し示すもの;及び
状態106からの退出イプシロンアークの数を指し示すもの;
を含み得る。
【0035】
イプシロンアークについては図2に関連して後述する。
【0036】
アーク群108は、配列にて管理され、起源状態106によってグループ分けされ得る。
【0037】
WFSTに基づく探索において、入力シンボル又は特徴ベクトル110の組に対して、ネットワーク102を通り抜ける最も可能性あるパスの組が辿られる。各パスの情報は、該パスの先頭に結合され得る。この情報は、例えば潜在的に特徴ベクトル110に一致するとして特定された単語などの、そのパスに沿った出力シンボルの組と、そのパスの対応する累積尤度とを含み得る。
【0038】
この情報は、出力シンボルの組へのポインタ及び累積尤度の値を含み得るデータ構造内で管理され得る。データ構造は、例えば1つ以上の状態106がセルフループ114を含む場合など、状態106に関連付けられ得る。他の例では、データ構造は、例えば図6−9に関連して後述するようにセルフループ情報が1つ以上のアーク108内でモデル化される場合など、対応するアーク108に関連付けられ得る。
【0039】
WFSTベースの推論エンジンは、用途にとらわれるものではなく、例えばテキスト処理や画像処理などのその他のドメインでも採用され得る。
【0040】
アーク108は、図1にそれぞれ破線及び実線で示すイプシロンアーク及び非イプシロンアークを含み得る。イプシロンアークは、如何なる入力シンボルをも消費することなく横断される。非イプシロンアークは、状態遷移を実行するために1つの入力シンボルを消費する。HレベルWFST認識ネットワークでは、ネットワーク102の入力ラベルは、コンテキスト依存のHMM状態を表す。
【0041】
図2は、或る1つの繰り返し中に入力フレーム又は特徴ベクトル110に応答してネットワーク102を横断する方法200の処理フローチャートである。
【0042】
ステップ202にて、ネットワーク102の入力シンボルに関して観測確率が決定される。観測確率は、例えば距離関数を計算することによる、音響入力シンボルに合致する入力特徴ベクトルの尤度指標を含み得る。観測確率は、コンテキスト依存状態のガウシアン混合モデルに従って決定され得る。ステップ202での観測確率の決定は、アクティブ状態の退出アーク上で入力シンボルを計算することを含むことができ、本質的あるいは専ら該計算で構成され得る。観測確率の決定は、ネットワーク102の音響モデルを参照することを含んでいてもよい。
【0043】
ステップ204にて、非イプシロンアークが処理される。非イプシロンアークの処理は:
ステップ202で計算された現入力b(O;m)の観測確率;
ネットワーク102から参照される横断されているアークaijの遷移確率又は重み;及び
時間t−1での先行する繰り返しにて計算された先行シーケンスの尤度、すなわち、ソース状態コスト:
【0044】
【数4】

の同時確率を計算することを含み得る。
【0045】
同時確率はステップ204において、観測確率、遷移確率、及び尤度の積として決定され得る。同時確率はステップ204において、対数で表された値の加算として決定されてもよい。
【0046】
ステップ206にて、イプシロンアークが処理される。イプシロンアークは入力シンボルを有しないため、確率は、遷移確率及び先行シーケンスの尤度の積として計算され得る。
【0047】
ステップ204及び/又は206において、目的状態のコストは、その状態に関して最も可能性の高い、対応する到来非イプシロン及びイプシロンアークのコストを用いて更新され得る。コストはビタビ近似に従って決定され得る。
【0048】
ネットワーク102は、例えば図1のイプシロンアーク108−7及び108−10などの、連続したイプシロンアークの連鎖を含み得る。ステップ206でのイプシロンアークの処理は、退出イプシロンアークを伴わない状態に到達するまで、各目的状態から全ての退出イプシロンアークを横断することを含み得る。
【0049】
ステップ202では、観測確率を計算するために、例えば何千もの入力シンボルといった多数の入力シンボルが用いられ得る。ステップ204での非イプシロンアークの処理及びステップ206でのイプシロンアークの処理においては、ネットワーク全体で、例えば何万ものアーク遷移といった多数のアーク遷移が横断され得る。
【0050】
方法200は、更なる入力フレーム又は特徴ベクトル110に対して繰り返され得る。
【0051】
横断技術
推論エンジン104は、アクティブ状態及び/又はアクティブアークに関してネットワーク102を横断するように構成され得る。
【0052】
アクティブ状態横断は、状態毎を基本にして動作する。アクティブ状態の横断は、ここではアクティブ状態伝播と称するように、アクティブ状態106の退出アーク108に関して実行され得る。それに代えて、あるいは加えて、アクティブ状態の横断は、ここではアクティブ状態集約と称するように、次の繰り返しの候補アクティブ状態106の到来アーク108に関して実行され得る。状態106は、その状態への到来アーク108が現在の繰り返しのアクティブ状態106を起源とするとき、次の繰り返しの候補アクティブ状態として定められ得る。
【0053】
アクティブ状態伝播の場合、アクティブ状態106ごとに、退出アーク108が評価され、対応する目的状態106に結果が伝播される。
【0054】
アクティブ状態集約の場合、候補アクティブ状態106の到来アーク108が評価され、対応する候補アクティブ状態106が評価結果に従って更新される。
【0055】
アクティブアーク横断は、アーク毎を基本にして動作し、アクティブアーク108が、対応する起源状態から取り出されたパラメータを用いて更新され、更新されたアクティブアーク108が、対応する目的状態106を更新するために用いられる。アクティブアーク横断は、ここではアクティブアーク伝播と称するようにアクティブ状態の退出アークに関して、あるいは、ここではアクティブアーク集約と称するように候補アクティブ状態の到来アークに関して実行され得る。アクティブアーク横断を実行する方法及びシステムについては、図3−5に関連して後述する。
【0056】
並列処理技術
推論エンジン104は、例えば単一命令複数データ(SIMD)環境においてのようなデータレベルの並列化、及び/又は例えばマルチプロセッサ若しくはマルチコア環境においてのようなスレッドレベルの並列化を用いて、ネットワーク102を繰り返し横断するように構成され得る。
【0057】
SIMD環境におけるアクティブ状態横断では、状態106に関連付けられたアーク108は、SIMD作業単位又はベクトルに関連付けられることができ、アーク108は並列SIMD処理レーンで処理され得る。WFSTベースの探索グラフにおいては、一部の状態は、その他の状態が比較的少数の退出アークを有しながら、比較的多数の退出アークを有し得る。これは、比較的低い、且つ/或いは一貫性のない、SIMD利用をもたらし得る。
【0058】
SIMD環境におけるアクティブアーク横断では、複数のアーク108が、対応するソース状態又は目的状態106とは関係なく、SIMD作業単位又はベクトルに関連付けられ得る。これは、比較的一貫性のあるSIMDベクトル単位の効率性を提供し得る。
【0059】
マルチスレッド環境におけるアクティブ状態横断では、第1のアクティブ状態106に関連付けられたアーク108は、複数の処理スレッドのうちの第1のスレッドに割り当てられることができ、第2のアクティブ状態106に関連付けられたアーク108は、複数の処理スレッドのうちの第2のスレッドに割り当てられることができ、これら第1及び第2のスレッドが並列に処理され得る。
【0060】
マルチスレッド環境におけるアクティブアーク横断では、アクティブアーク108は、対応する状態106とは関係なく、処理スレッドに割り当てられ得る。
【0061】
スレッドレベルの並列化の場合、タスクはランタイムに先立って特定のスレッドに事前割当てされ得る。それに代えて、あるいは加えて、図9−12を参照して後述するように、少なくとも部分的にデータ位置情報に基づいて、実行時にタスクをスレッドに割り当てるように動的タスクマネジャが構成されてもよい。
【0062】
同期化
SIMD環境及び/又はマルチスレッド環境においてのようにアクティブ状態又はアクティブアークが並列に伝播される場合、及び複数のアークが共通の目的状態に向けられる場合、例えばアトミックアップデートなどの、書込競合の解消が、基礎となるプラットフォームから提供され得る。同期化が必要とされ得る場合を削減する方法及びシステムについては、図6−8に関連して後述する。
【0063】
アクティブ状態106の到来アーク108が並列に集約される場合、該アクティブ状態の対応する更新は、到来アーク108の評価結果の削減を含み得る。この削減は、基礎となるプラットフォームからの書込競合の解消支援が不要となるよう、更なるアルゴリズム的ステップを用いて、潜在的な書込競合を明示的に管理し得る。
【0064】
アクティブアーク横断
図3は、ネットワーク102のアクティブアーク108上を横断あるいは反復するアクティブアーク横断システム302を推論エンジン104が含む場合のシステム100のブロック図である。更に後述するように、アクティブアーク横断システム302は、複数のアクティブ状態からのアーク群にわたるSIMD計算を用いてアクティブアークを横断するように構成されることができ、それにより、非常に広いベクトルユニットであっても、該ユニットの実質的に完全な使用を可能にし得る。
【0065】
図4は、アクティブアークを処理する方法400の処理フローチャートである。ここでは、方法400は、図3に示したシステム100に関連して説明される。しかしながら、方法400は図3の例に限定されるものではない。
【0066】
ステップ402にて、特徴ベクトル110が推論エンジン104で受信される。
【0067】
ステップ404にて、ネットワーク102のアクティブアーク108が、アクティブアーク横断システム302によって特定される。アクティブアークは、アクティブ状態の退出アーク、又はアクティブアーク伝播として、且つ/或いは、候補アクティブ状態の到来アーク、又はアクティブアーク集約として特定され得る。
【0068】
ステップ406にて、特定されたアクティブアーク108の目的状態106が、ステップ402で受信された特徴ベクトル110に応答して、アクティブアーク横断システム302によって更新される。
【0069】
ステップ408にて、1つ以上の更なる特徴ベクトル110を受信するため、処理はステップ402へと戻る。
【0070】
ステップ410にて、特徴ベクトル110の処理が完了したとき、最も高い尤度のネットワーク102を通り抜けるパスに対応する文法要素のシーケンスが、推論エンジン104によって出力される。
【0071】
図5は、ステップ406に関連して上述したような目的状態106を更新する方法500の処理フローチャートである。
【0072】
ステップ502にて、アクティブアーク108の起源状態106から、起源状態106に関する尤度の指標を含む情報が取り出される。
【0073】
ステップ504にて、ステップ502で取り出された対応する情報と、ステップ402で受信された1つ以上の特徴ベクトルとを用いて、アクティブアークが更新される。
【0074】
推論エンジン104は、アクティブアーク108をSIMD的に処理するように構成され得る。例えば、ステップ502での情報の取り出し、及びステップ504でのアクティブアークの更新は、複数のアークに関してSIMD的に実行され得る。複数のアーク108を、一組のSIMD処理レーンにて処理される作業の単位として関連付けるように、作業単位マネジャが構成され得る。複数のソース状態106から共通の目的状態に向けられた複数のアーク108がSIMD的に処理され得る。
【0075】
SIMD的なアクティブアークの処理は、対応するベクトルユニットの実質的に完全なる使用を可能にし、SIMD的なアクティブ状態の処理より高いベクトル効率を提供し得る。
【0076】
退出アーク内でのセルフループのモデル化
図1においては、複数のアクティブ状態106及び/又はアクティブアーク108は、横断の一度の繰り返し中に、共通の目的状態106に情報を伝播し得る。複数のアクティブ状態106及び/又はアクティブアーク108が、例えばスレッドレベル及び/又はデータレベルの並列処理などにて、同時あるいは並列に処理されるとき、対応する目的状態の更新の同期化が必要となり得る。
【0077】
ネットワーク102の1つ以上の状態106はセルフループ114を含み得る。WFST探索グラフは、例えば基礎となる隠れマルコフモデル(HMM)の特徴のために、セルフループ114を含むことがある。
【0078】
セルフループ114は、状態106が唯一の到来アクティブアーク108を有する場合にも状態106の更新の同期化を必要とさせ得る対応する状態の到来アークとして処理され得る。
【0079】
同期化は、アトミックアップデートハードウェアと協働して実行され得る。それに代えて、あるいは加えて、プライベート化スキームが採用されてもよい。プライベート化スキームは、プライベートな結果を融合するための追加処理を伴い得る。同期化及びプライベート化の処理は、処理資源及び処理時間を消費し得る。
【0080】
一実施形態において、セルフループ114は、1つ以上の状態106から削除あるいは除去され、1つ以上の対応する退出アーク108内でモデル化され得る。
【0081】
セルフループ114は、例えば唯一の到来アーク108を有する状態106からなど、セルフループ114を有する全ての状態106、又はその部分集合(サブセット)から削除あるいは除去されてもよい。セルフループ114は、非イプシロンアーク108内でのみモデル化され得る。唯一の到来アーク108を有する状態106からのセルフループ114の除去又は削除は、状態106の更新を同期化する必要性を低減あるいは排除し得る。
【0082】
退出アーク108内でのセルフループ114のモデル化は、セルフループ情報を格納するように、アーク108に関連付けられたデータ構造を変更することを含み得る。
【0083】
セルフループ情報は、固有の尤度又は確率の情報を含み得る。セルフループ固有尤度情報は、例えば退出アーク108の固有尤度情報をセルフループ固有尤度情報で変更することによって等、退出アーク108内で黙示的にモデル化され得る。他の例では、セルフループ固有尤度情報は、例えばアーク108がセルフループ情報を含むかを指し示すものを格納するためのフィールドと、セルフループ情報を格納するための1つ以上の更なるフィールドとを含むように退出アーク108を変更することによって等、退出アーク108内で明示的にモデル化されてもよい。
【0084】
対応するネットワークの横断は、退出アーク108内のセルフループ情報を処理するために、各繰り返し中に1つ以上の追加計算を含み得る。追加計算は、例えば図6−9に関連して後述するようにして、対応する退出アーク108を処理するときに実行され得る。
【0085】
先ず、複数のセルフループ114を有するネットワーク102が生成され、複数のセルフループ114のうちの1つ以上が除去されて、対応する退出アーク108内で再モデル化され得る。ネットワーク102は、セルフループ情報の除去及び退出アーク108内でのセルフループ情報の再モデル化の後に最適化されてもよい。この後の最適化は比較的多数の状態106を融合することができ、それにより横断効率が向上され得る。最適化は、上述のような1つ以上のFSM最小化技術を含み得る。
【0086】
他の例では、明示的なセルフループ114を用いずに、退出アーク108内でモデル化されたセルフループ情報を用いて、手始めにH変換器が生成されてもよい。そして、WFSTネットワーク102を提供するように、組み立て手順及び/又はその他の最適化手順が実行され得る。最適化は比較的多数の状態106を融合し得る。
【0087】
図6は、対応する状態606の退出非イプシロンアーク608−1乃至608−5、608−8及び608−11内でセルフループ情報がモデル化されたネットワーク602を含む、グラフベースネットワーク及び推論エンジン600のブロック図である。図1のセルフループ114は対応する状態606から削除されている。
【0088】
推論エンジン104は、例えば図7−9のうちの1つ以上に関連して後述するようにしてネットワーク602のアーク内でモデル化されたセルフループ情報を更新するアークベースのセルフループ更新システム604を含み得る。
【0089】
図7は、ネットワークのアークの少なくとも一部内でセルフループ情報がモデル化されるときの、ネットワークを横断する方法700の処理フローチャートである。
【0090】
ステップ702にて、少なくとも、内部にモデル化されたセルフループ固有尤度情報を有するアークに関して、累積尤度情報が更新される。故に、図9に関連して後述するように、例えば図6のイプシロンアーク608−6、608−7及び608−8など一部のアーク108は、ステップ702での更新から省略され得る。
【0091】
ステップ704にて、更新されたアークの目的状態が、対応する更新後のアークに従って更新される。ステップ704での目的状態の更新は、ステップ702での更新の後に実行され得る。ステップ704で目的状態が複数の到来アークに応答して更新されるべき場合、ステップ704での更新は、更新の同期化を含み得る。
【0092】
ステップ706にて、イプシロンアークが更新され得る。
【0093】
ステップ708にて、ステップ704で更新された目的状態を起源とするアークが、更新後の目的状態に従って更新される。ステップ708でのアークの更新は、ステップ704での全ての目的状態の更新の後に実行され得る。
【0094】
図8は、セルフループ固有尤度情報を含むようにアークの少なくとも一部の固有尤度情報が変更されるときの、ネットワークを横断する方法800の処理フローチャートである。
【0095】
ステップ802にて、現在の繰り返しのアクティブアークが特定される。
【0096】
ステップ804にて、全てのアクティブアークの累積尤度情報、又は全てのアクティブな非イプシロンアークの累積尤度情報が、対応する固有尤度情報に基づいて更新される。これは基本的に、セルフループ固有尤度情報を含むアークに関してセルフループ更新を実行する。
【0097】
ステップ806にて、アクティブアークの目的状態の累積尤度情報が、対応するアクティブアークの更新後の累積尤度情報を用いて更新される。
【0098】
方法800が、例えばスレッドレベル及び/又はデータレベルの並列処理環境などの並列処理環境で実行される場合、また、状態が複数の到来アクティブアークに応答して更新される場合、ステップ806での目的状態の更新は、複数の到来アークに関する更新を同期化することを含み得る。セルフループ情報は状態ではなくアーク内でモデル化されているので、同期化は、単一の到来アークに応答して更新される状態に関しては省略され得る。
【0099】
ステップ808にて、イプシロンアークが更新される。
【0100】
ステップ806での累積尤度情報の更新は、更新された目的状態の1つ以上の退出アークをアクティブにし得る。そのようなアークにことを、ここでは、新たにアクティブにされたアークと称する。ステップ810にて、新たにアクティブにされたアークの累積尤度情報が、ステップ806で更新された対応する目的状態の更新後の累積情報を用いて更新される。ステップ810での新たにアクティブにされたアークの更新は、ステップ806での全てのアクティブアークの処理の後に実行され得る。
【0101】
方法800又はその一部は、全てのアクティブアーク及び対応する目的状態が更新されるまで、反復的に繰り返され得る。その後の繰り返しにおいて、ステップ804及び806でのアクティブアークの処理は、ステップ812での先行の繰り返しにて特定された、新たにアクティブにされたアークを含み得る。
【0102】
1つ以上のアクティブアークは、新たにアクティブにされたアークを含めて、例えば対応する累積尤度の値が閾値未満であるとき等には、その後の繰り返しにおける更なる処理から省略されてもよい。
【0103】
図9は、セルフループ固有尤度情報とセルフループ固有尤度情報の存在を指し示すもの(インジケーション)とを保持するようにネットワークのアークが複数のフィールドを含むときの、ネットワークを横断する方法900の処理フローチャートである。
【0104】
ステップ902にて、現繰り返しのアクティブアークが特定される。
【0105】
ステップ904にて、セルフループ固有尤度情報の存在のインジケーションを含むアクティブアークの累積尤度情報が、該アーク内の対応するセルフループ固有尤度情報に基づいて更新される。これは基本的に、セルフループ固有尤度情報の存在のインジケーションを含むアークに関してのみセルフループ更新を実行する。
【0106】
ステップ906にて、全てのアクティブアーク、又は少なくとも全てのアクティブ非イプシロンアークの目的状態の累積尤度情報が、対応するアクティブアークの更新後の累積尤度情報を用いて更新される。
【0107】
方法800に関して上述したように、ステップ906での目的状態の更新は、複数の到来アークに関する更新を同期化することを含み得る。
【0108】
ステップ908にて、イプシロンアークが更新され得る。
【0109】
ステップ910にて、ステップ810に関して上述したようにして、新たにアクティブにされたアークの累積尤度情報が、ステップ906で更新された対応する目的状態の更新後の累積情報を用いて更新される。
【0110】
方法900又はその一部は、方法800に関して上述したように、全てのアクティブアーク及び対応する目的状態が更新されるまで、反復的に繰り返され得る。
【0111】
キャッシュ認識動的タスクオーダリング
マルチプロセッサ環境においては、複数の処理スレッド間で作業負荷を平衡させるために、動的タスクスケジューリングが利用され得る。
【0112】
従来のタスクスケジューラ発見的問題解決法(ヒューリスティックス)は、例えばWFSTに基づく探索などの一部の環境では最適でないことがある。例えば、アクティブ状態又はアクティブアークなどのデータオブジェクトが現在の繰り返し又はフレームで処理されるべきで、該データオブジェクトが先行の繰り返しで処理されていた場合、該データオブジェクトに付随するデータは、該データオブジェクトが以前に処理されたスレッドに関連付けられた位置にキャッシュされたままとなり得る。このデータオブジェクトを現繰り返しの同一スレッドにて処理することは有用である。既存のキャッシュデータが、キャッシュデータの再取出し又は再計算の必要性を低減あるいは排除し得るためである。しかしながら、従来の動的スケジューラ発見的問題解決法は、データオブジェクトを、該データオブジェクトが以前に割り当てられていたのと同一のスレッドに割り当てようとはしていない。
【0113】
ここでは、データの場所に基づいてタスクを順序付ける方法及びシステムを開示する。ここでは、これを動的キャッシュ認識タスクオーダリングと称する。動的キャッシュ認識タスクオーダリングは、対応するデータオブジェクトのデータキャッシュ位置に少なくとも部分的に基づいて、タスクをスレッドに関連付ける。
【0114】
ここではまた、ここで開示する動的キャッシュ認識タスクオーダリングを用いてWFSTベースネットワークを探索する方法及びシステムを開示する。
【0115】
キャッシュ認識動的タスクオーダリングは、黙示的なキャッシュ認識タスクスケジューリング、又は明示的なキャッシュ認識タスクスケジューリングを含み得る。
【0116】
黙示的なキャッシュ認識タスクスケジューリングは、黙示的あるいは間接的に動的タスクマネジャに特定のスレッドへのタスクの割り当てを行わせるように、待ち行列内のタスクを順序付け得る。待ち行列の順序付けは、例えば図10及び12に関連して後述するように、タスクマネジャの発見的問題解決に基づき得る。
【0117】
明示的なキャッシュ認識タスクスケジューリングは、例えば図11及び13に関連して後述するように、データオブジェクトが以前に処理されたスレッドを特定し、該データオブジェクトに関する新たなタスクを同一のスレッドに明示的に割り当て得る。
【0118】
図10は、タスク待ち行列1006内のタスク1002を順序付けるキューマネジャ1004と、複数の処理スレッド1010間でタスク待ち行列1006からのタスク1002をスケジューリングする動的タスクマネジャ1008とを含む、黙示的なキャッシュ認識環境1000のブロック図である。
【0119】
タスク1002はアクティブ状態106及び/又はアクティブアーク108と関連付けられ得る。タスク1002の処理中、スレッド1010は次の繰り返しのアクティブ状態106及び/又はアクティブアーク108のリスト1012を生成し得る。対応する新たなタスク1002が、リスト1012内で特定されたアクティブ状態106及び/又はアクティブアーク108に関して定義される。
【0120】
リスト1012内で特定された次の繰り返しのアクティブ状態106及び/又はアクティブアーク108のうちの少なくとも一部は、対応するスレッド1010を用いて現繰り返しにおいて既にアクティブになっている。
【0121】
キューマネジャ1004は、対応する状態106及び/又はアーク108が特定されたリスト1012に基づいて、動的タスクマネジャ1008にタスク1002を、該タスク1002を開始したスレッド1010に割り当てさせるように、待ち行列1006内のタスク1002を配列するように構成され得る。故に、状態106及び/又はアーク108が連続した繰り返し内でアクティブである場合、対応するタスク1002は同一のスレッド1010に割り当てられ得る。
【0122】
例えば、アーク108に関連付けられたタスク1002が、現繰り返しにおいてスレッド1010−1に割り当てられ得る。現繰り返しにおいてタスク1002を処理する際、スレッド1010−1は、該アーク108が次の繰り返しにおいてアクティブであるべきことを指し示すようにリスト1012−1を生成し得る。該アーク108に対応する新たなタスク1002が次の繰り返しで呼び出され、キューマネジャ1004は、動的タスクスケジューラに該新たなタスク1002をスレッド1010−1に割り当てさせるように、待ち行列1006内の該新たなタスク1002を配置し得る。
【0123】
キューマネジャ1004は、動的タスクマネジャ1008のスレッド割当てに影響を及ぼすために、動的タスクマネジャ1008によって使用される経験則に従って待ち行列1006内のタスク1002を順序付ける経験則(ヒューリスティック)システム1014を含み得る。
【0124】
例えば、タスクマネジャ1008は、タスク1002をスレッド1010に総当たり的に割り当てるように構成されることができ、循環的に、第1のタスク1002がスレッド1010−1に割り当てられ、第2のタスク1002がスレッド1010−2に割り当てられ、後続のタスク1002が後続のスレッド1010に割り当てられる。同様に、キューマネジャ1004は、待ち行列1006内のタスク群1002を、リスト1012に従って総当たり的に配置するように構成され得る。例えば、リスト1012−1からの1つのタスク1002が最初に待ち行列1006に割り当てられ、リスト1012−2からの1つのタスク1002が続けられ、後続のリスト1012からの後続のタスク1002が続けられ得る。
【0125】
他の一例として、動的タスクマネジャ1008は、待ち行列1006からタスク群1002を取り出し、該タスク群1002を複数組の連続タスク群1002に分離し、且つ各組の連続タスク群1002を順次、総当たり的にスレッド群1010に割り当てるように構成されてもよい。例えば、待ち行列1006が8個のタスク1002(A乃至H)を含み、且つスレッド1010が4個のスレッド1010−1乃至1010−4を含む場合、動的タスクマネジャ1008は、タスクA及びBをスレッド1010−1に、タスクC及びDをスレッド1010−2に、タスクE及びFをスレッド1010−3に、そしてタスクG及びHをスレッド1010−4に割り当て得る。キューマネジャ1004は、待ち行列1006内のタスクA乃至Hを、タスクA乃至Hを開始する元となったリスト1012を考慮して配列するように構成され得る。
【0126】
図11は、データ局所情報を管理するキャッシュ認識システム1104と、少なくとも部分的にデータ局所情報に基づいて、タスク1102を処理スレッド1110に割り当てる動的タスクマネジャ1108とを含む、明示的なキャッシュ認識環境1100のブロック図である。
【0127】
キャッシュ認識システム1104は、タスク1102がスレッド1110に割り当てられるときに動的タスクマネジャ1108からデータ局所情報1108を受信する記録システム1106を含み得る。データ局所情報1108は、タスク1102が割り当てられたスレッド1110を特定し得る。これは、対応するデータオブジェクト1116に付随するデータがキャッシュされたキャッシュ位置に相当し得る。
【0128】
記録システム1106は、タスク1102が対象とするデータオブジェクト1116にデータ局所情報1108を関連付けるように構成され得る。データオブジェクト1116は、状態106及び/又はアーク108を表すことができ、対応するデータ局所情報1108を記録するフィールドを含み得る。
【0129】
キャッシュ認識システム1104は、データオブジェクト1116に関するタスク1102がスレッド1110に割り当てられるべきときに、該データオブジェクト1116に関連付けられたデータ局所情報1108を取り出す検索システム1112を含み得る。
【0130】
動的タスクマネジャ1108は、取り出されたデータ局所情報1114に少なくとも部分的に基づいてタスク1102をスレッド1110に割り当てるように構成され得る。
【0131】
動的タスクマネジャ1108は、タスク1102をスレッド1110に割り当てるに際して、例えばスレッド1110間で処理負荷を平衡化することなど、1つ以上のその他の因子を考慮に入れるように構成されてもよい。
【0132】
キャッシュ認識システム1104及び動的タスクマネジャ1108は、別々に実装されてもよいし、ともに一体化されて実装されてもよい。
【0133】
図12は、データ局所情報に少なくとも部分的に基づいてタスクを順序付ける方法1200の処理フローチャートである。方法1200は、図10に関連して上述したようにして実行され得る。しかしながら、方法1200は図10の例に限定されるものではない。
【0134】
ステップ1202にて、次の繰り返しのアクティブデータオブジェクトのリストが、複数の処理スレッドの各々から受信される。データオブジェクトはグラフベースネットワークのアーク及び/又は状態を表し得る。
【0135】
ステップ1204にて、次の繰り返しのアクティブデータオブジェクトに関するタスクが受信される。
【0136】
ステップ1206にて、タスクが、対応するデータオブジェクトが特定された上記リストに基づいて、処理スレッドに関連付けられる。
【0137】
ステップ1208にて、タスクを関連付けられた処理スレッドへと向けるために、タスクがタスクマネジャ経験則に従って順序付けられる。タスクは、タスクマネジャがタスクをスレッドに割り当てる元となったタスク待ち行列内で順序付けられてもよい。
【0138】
図13は、少なくとも部分的にデータ局所情報に基づいてタスクを処理スレッドに割り当てる方法1300の処理フローチャートである。方法1300は、図11に関連して上述したようにして実行され得る。しかしながら、方法1300は図11の例に限定されるものではない。
【0139】
ステップ1302にてタスクが受信される。タスクは、グラフベースネットワークの状態及び/又はアークを表すデータオブジェクトに関連付けられ得る。
【0140】
ステップ1304にて、データオブジェクトがスレッドに関連付けられているかについて決定が為される。これは、例えばスレッド識別子などのキャッシュデータ局所情報がデータオブジェクトに関連付けられているかを決定することを含み得る。
【0141】
データオブジェクトがスレッドに関連付けられていない場合、後述するように、処理はステップ1306へと進む。
【0142】
タスクがスレッドに関連付けられている場合、ステップ1308にて更なる決定が為される。
【0143】
ステップ1308にてスレッドがそのタスクを受け入れることができる場合、ステップ1310にてタスクはそのスレッドに割り当てられる。スレッドがそのタスクを受け入れることができない場合、又は1つ以上のその他の考慮に基づいて別のスレッドの方がそのタスクに適している場合には、処理はステップ1306へと進む。
【0144】
ステップ1306にて、1つ以上のその他の因子に基づいて、データオブジェクトがスレッドに割り当てられ、対応するキャッシュデータ局所情報が該データオブジェクトに関連付けられる。キャッシュデータ局所情報は、該タスクが割り当てられるスレッドの識別子を含み得る。
【0145】
その後、そのデータオブジェクトがステップ1302での別のタスクの対象となるとき、そのタスクはステップ1310にて同一のスレッドに割り当てられ得る。
【0146】
アクティブアークに基づく横断、アーク内でモデル化されたセルフループ情報の処理、キャッシュ認識動的タスクオーダリングは、単独で実行されてもよいし、且つ/或いは相互に様々に組み合わされて実行されてもよい。
【0147】
ここで説明した1つ以上の機能は、ディスクリートロジック及び集積回路ロジック、特定用途向け集積回路(ASIC)ロジック、並びにマイクロコントローラを含むハードウェア、ソフトウェア、ファームウェア及びそれらの組み合わせにて実装されてもよいし、特定ドメイン向けの集積回路パッケージ又は複数の集積回路パッケージの組み合わせの一部として実装されてもよい。ここでは、ソフトウェアという用語は、ここで開示した1つ以上の機能及び/又はそれらの組み合わせをコンピュータシステムに実行させるコンピュータプログラムロジックを格納したコンピュータ読み取り可能媒体を含むコンピュータプログラムの製造物を意味する。
【0148】
図14は、グラフベースネットワークを横断するように構成されたコンピュータシステム1400のブロック図である。
【0149】
コンピュータシステム1400は、コンピュータプログラムロジックを実行する1つ以上のコンピュータ命令処理ユニット(ここではプロセッサ又はコア1402として示す)を含み得る。
【0150】
コンピュータシステム1400は更に、プロセッサ1402に1つ以上の機能を実行させるコンピュータプログラムロジック又は命令1406を格納したコンピュータ読み取り可能媒体を含め、キャッシュ、メモリ及び/又はストレージ(以下、“メモリ”)1404を含み得る。
【0151】
メモリ1404は更に、命令1406を実行する際にプロセッサ1402によって使用される、且つ/或いは命令1406の実行に応答してプロセッサ1402によって生成される、データ1408を含んでいる。
【0152】
図14の例において、ロジック1406は、上述の1つ以上の例にて説明したようにプロセッサ1402にグラフベースネットワーク1412を横断させる推論エンジンロジック1410を含んでいる。ネットワーク1412は、図1のネットワーク102又は図6のネットワーク602に相当し得る。ネットワーク1412は、当該ネットワーク1412の状態及びアークのうちの1つ以上を表すデータオブジェクト1414を含み得る。
【0153】
推論エンジンロジック1410は、図1−5のうちの1つ以上に関連して上述したようにプロセッサ1402にネットワーク1412のアクティブアークを横断させるアクティブアーク横断ロジック1416を含み得る。
【0154】
セルフループ情報がネットワーク1412のアーク内でモデル化される場合、推論エンジンロジック1410は、図6−9のうちの1つ以上に関連して上述したようにプロセッサ1402にセルフループ情報を更新させるアークベースのセルフループ更新ロジック1418を含み得る。
【0155】
コンピュータシステム1400は、実行時にタスクのスケジューリング又はタスクの処理スレッドへの割り当てを行う動的タスクマネジャ1422を含み得る。動的タスクマネジャ1422は、図10の動的タスクマネジャ1008及び図11の動的タスクマネジャ1108のうちの1つ以上に対応し得る。
【0156】
コンピュータシステム1400が動的タスクマネジャ1422を含む場合、推論エンジンロジック1410は、データオブジェクトに関連するタスクを、該データオブジェクトに関する先行タスクが割り当てられた処理ロジックに基づいて順序付けることをプロセッサ1402に行わせるキャッシュ認識オーダリングロジック1420を含み得る。キャッシュ認識オーダリングロジック1420は、図10及び12のうちの1つ以上に関連して上述したようにタスクマネジャ1422の経験則に従ってスレッドを順序付け且つタスクマネジャ1422にタスクの対応するスレッドへの割当てを行わせるロジックを含み得る。キャッシュ認識オーダリングロジック1420は、図10のキューマネジャ1004に対応し得る。キャッシュ認識オーダリングロジック1420は、推論エンジンロジック1410の外部に実装されてもよいし、推論エンジンロジック1410とは独立に実装されてもよい。
【0157】
他の例では、図11及び13のうちの1つ以上に関連して上述したように、動的タスクマネジャ1422は明示的に、データオブジェクト1414に関連付けられたデータ局所情報に基づいてタスクをスレッドに割り当てるように構成されてもよく、コンピュータシステム1400は更に、データ局所情報をデータオブジェクト1414に関連付け且つデータ局所情報を取り出して動的タスクマネジャ1422に提供するデータ位置管理システム1424を含んでいてもよい。データ位置管理システム1424は、図11のキャッシュ認識システム1104に対応し得る。データ位置管理システム1424は、ハードウェア、ソフトウェア、ファームウェア、ロジック1406及びこれらの組み合わせにて実装され得る。
【0158】
コンピュータシステム1400は、当該コンピュータシステム1400内に1つ以上の通信パスを提供する情報通信基盤1426を含み得る。
【0159】
コンピュータシステム1400は、当該コンピュータシステム1400と1つ以上のその他のシステムとの間に1つ以上の通信パスを提供する入力/出力コントローラ1428を含み得る。
【0160】
ここでは、機能、特徴及びそれらの関係を示す機能構築ブロックの助けを借りて方法及びシステムを開示した。これらの機能構築ブロックの境界のうちの少なくとも一部は、説明の便宜のためにここで自由に定めたものである。代替的な境界が定められてもよい。
【0161】
ここでは様々な実施形態を説明したが、理解されるように、これらの実施形態は、限定としてではなく単に例として提示したものである。当業者に明らかなように、ここで開示した方法及びシステムの精神及び範囲を逸脱することなく、形態及び細部の様々な変更が為され得る。故に、請求項の広さ及び範囲は、ここで開示した実施形態例の何れにも限定されるべきでない。
【符号の説明】
【0162】
100、600 システム
102、602 グラフベースネットワーク
104 推論エンジン
106、606 状態
108、608 アーク(パス)
110 特徴ベクトル
112 文法要素
114 セルフループ
302 アクティブアーク横断システム
604 アークベースセルフループ更新システム
1000、1100 キャッシュ認識環境
1002、1102 タスク
1004 キューマネジャ
1006 待ち行列
1008 動的タスクマネジャ
1010 スレッド
1012 アクティブオブジェクトのリスト
1010、1110 スレッド
1014 経験則システム

1104 キャッシュ認識システム
1106 記録システム
1108 動的タスクマネジャ
1108、1114 データ局所性情報
1112 検索システム
1116 データオブジェクト
1400 コンピュータシステム
1402 プロセッサ
1404 キャッシュ/メモリ/ストレージ
1406 コンピュータプログラムロジック/命令
1408 データ
1410 推論エンジンロジック
1412 グラフベースネットワーク
1414 データオブジェクト
1416 アクティブアーク横断ロジック
1418 アークベースセルフループ更新ロジック
1420 キャッシュ認識タスクオーダリングロジック
1422 タスクマネジャ
1424 キャッシュ認識システム
1426 通信基盤
1428 入力/出力コントローラ

【特許請求の範囲】
【請求項1】
ネットワークのアークの入力ラベルを、前記アークの出力文法要素のリストに変換する方法であって:
特徴ベクトルのストリームに応答してネットワークを繰り返し横断するステップであり、前記ネットワークの状態のシーケンスに対応する前記ネットワークのアークの入力ラベルを、文法要素のシーケンスに対応する前記アークの出力文法要素のリストに変換する、横断するステップ;及び
データオブジェクトに関するタスクを、該データオブジェクトに関する先行タスクが割り当てられた処理スレッドに基づいて順序付けるステップ;
を有する方法。
【請求項2】
前記順序付けるステップは:
前記処理スレッドの各々から、次の繰り返しのアクティブデータオブジェクトのリストを受信するステップ;
前記次の繰り返しの前記アクティブデータオブジェクトに関するタスクの識別子を受信するステップ;
前記タスクの各々を、対応するデータオブジェクトが特定された前記リストに基づいて、前記処理スレッドのうちの1つに関連付けるステップ;及び
前記タスクを関連付けられた処理スレッドに向けるため、タスクマネジャの経験則に従って前記タスクを順序付けるステップ;
を含む、請求項1に記載の方法。
【請求項3】
前記順序付けるステップは:
現在の繰り返しにて、データオブジェクトに関する第1のタスクを、前記処理スレッドのうちの第1の処理スレッドに割り当てるステップ;
前記第1の処理スレッドの識別子を前記データオブジェクトに関連付けるステップ;
前記データオブジェクトに関する第2のタスクを受信するステップ;及び
前記データオブジェクトに関連付けられた前記第1の処理スレッドの前記識別子に少なくとも部分的に基づいて、前記第2のタスクを前記第1の処理スレッドに割り当てるステップ;
を含む、請求項1に記載の方法。
【請求項4】
前記繰り返し横断するステップは:
前記ネットワークのアクティブアークを伝播するステップであり、特徴ベクトルに応答して前記アクティブアークの目的状態を更新することを含む、アクティブアークを伝播するステップ;
を含む、請求項1に記載の方法。
【請求項5】
前記アクティブアークを伝播するステップは:
前記アクティブアークの起源状態に関する情報であり、前記起源状態に関する尤度指標を含む情報、を取り出すステップ;
前記アクティブアークを、対応する起源状態の前記尤度指標と前記特徴ベクトルとを用いて更新するステップ;及び
更新されたアクティブアークに従って、対応する目的状態を更新するステップ;
を含む、請求項4に記載の方法。
【請求項6】
複数の前記状態の各々に対応するセルフループ情報を、対応する状態の1つ以上の退出アーク内でモデル化するステップ;
を更に含む、請求項1に記載の方法。
【請求項7】
前記セルフループ情報は固有の尤度情報を含み、前記モデル化するステップは:
前記セルフループ固有の尤度情報を用いて退出アークの固有尤度情報を変更するステップ
を含む、請求項6に記載の方法。
【請求項8】
前記セルフループ情報は固有の尤度情報を含み、前記モデル化するステップは:
前記セルフループの尤度情報と、前記セルフループの尤度情報の存在のインジケーションとを保持するための複数のフィールドを含むように、退出アークを表すデータオブジェクトを変更するステップ
を含む、請求項6に記載の方法。
【請求項9】
前記アークは固有の尤度情報を含み、前記アークの少なくとも一部は更にセルフループ固有の尤度情報を含み、前記横断するステップは:
一組のアクティブアークを特定するステップ;
前記セルフループ固有の尤度情報を含む前記一組のアクティブアークのうちの少なくともサブセットの累積尤度情報を、少なくとも対応するセルフループ固有の尤度情報に基づいて更新するステップ;
前記累積尤度情報の更新の後に、第1の伝播段階において、前記一組のアクティブアークの累積尤度情報を伝播するステップ;
前記第1の伝播段階の後の第2の伝播段階において、新たにアクティブにされたアークに累積尤度情報を伝播するステップであり、前記新たにアクティブにされたアークは、前記第1の伝播段階において更新された1つ以上の状態の1つ以上の退出アークを含む、ステップ;
前記新たにアクティブにされたアークを含むように、且つ閾値未満の累積尤度の値を有するアークを削除するように、前記一組のアクティブアークを組み直すステップ;及び
組み直されたアクティブアークの組に関して、前記更新するステップ、前記第1の伝播段階及び前記第2の伝播段階を繰り返すステップ;
を含む、請求項1に記載の方法。
【請求項10】
前記アークの前記一部の固有の尤度情報は、対応するセルフループ固有の尤度情報を含むように変更され、前記更新するステップは:
前記一組のアクティブアーク内の全てのアクティブアークの累積尤度情報を、対応するアークの固有の尤度情報に基づいて更新するステップ
を含む、請求項9に記載の方法。
【請求項11】
前記ネットワークの少なくとも非イプシロンアークの各々は、該アーク固有の尤度情報を保持する1つ以上のフィールドの第1の組と、セルフループ固有の尤度情報を保持する1つ以上のフィールドの第2の組と、前記1つ以上のフィールドの第2の組にセルフループ固有の尤度情報が存在するときにセルフループインジケーションを保持するセルフループインジケータフィールドとを含み、前記更新するステップは:
現在の前記一組のアクティブアーク内の前記サブセットのアークを、前記セルフループインジケーションを含むアークとして特定するステップ;及び
特定された前記サブセットのアクティブアークに関してのみ、累積セルフループ尤度情報を更新するステップ;
を含む、請求項9に記載の方法。
【請求項12】
ネットワークのアークの入力ラベルを、前記アークの出力文法要素のリストに変換するシステムであって:
ネットワークの状態のシーケンスに対応する前記ネットワークのアークの入力ラベルを、文法要素のシーケンスに対応する前記アークの出力文法要素のリストに変換するネットワーク;及び
特徴ベクトルのストリームに応答して前記ネットワークのアクティブアークを繰り返し伝播する推論エンジンであり、前記特徴ベクトルに応答して前記アクティブアークの目的状態を更新することを含む推論エンジン;
を有するシステム。
【請求項13】
前記推論エンジンは:
前記アクティブアークの起源状態に関する情報であり、前記起源状態に関する尤度指標を含む情報、を取り出し;
前記アクティブアークを、対応する起源状態の前記尤度指標と前記特徴ベクトルとを用いて更新し;且つ
更新されたアクティブアークに従って、対応する目的状態を更新する;
ように構成されている、請求項12に記載のシステム。
【請求項14】
データオブジェクトに関するタスクを、該データオブジェクトに関する先行タスクが割り当てられた処理スレッドに基づいて順序付ける順序付けシステム;
を更に含む請求項12に記載のシステム。
【請求項15】
前記アークは固有の尤度情報を含み、前記アークの少なくとも一部は更にセルフループ固有の尤度情報を含み、前記推論エンジンは:
一組のアクティブアークを特定し;
前記セルフループ固有の尤度情報を含む前記一組のアクティブアークのうちの少なくともサブセットの累積尤度情報を、少なくとも対応するセルフループ固有の尤度情報に基づいて更新し;
前記累積尤度情報の更新の後に、第1の伝播段階において、前記一組のアクティブアークの累積尤度情報を伝播し;
前記第1の伝播段階の後の第2の伝播段階において、新たにアクティブにされたアークに累積尤度情報を伝播し、ただし、前記新たにアクティブにされたアークは、前記第1の伝播段階において更新された1つ以上の状態の1つ以上の退出アークを含み;
前記新たにアクティブにされたアークを含むように、且つ閾値未満の累積尤度の値を有するアークを削除するように、前記一組のアクティブアークを組み直し;且つ
組み直されたアクティブアークの組に関して、前記更新、前記第1の伝播段階及び前記第2の伝播段階を繰り返す;
ように構成されている、請求項12に記載のシステム。
【請求項16】
ネットワークの状態のシーケンスに対応する前記ネットワークのアークの入力ラベルを、文法要素のシーケンスに対応する前記アークの出力文法要素のリストに変換するシステムであって、前記アークは固有の尤度情報を含み、前記アークの少なくとも一部は更にセルフループ固有の尤度情報を含み、当該システムは:
一組のアクティブアークを特定する手段;
前記セルフループ固有の尤度情報を含む前記一組のアクティブアークのうちの少なくともサブセットの累積尤度情報を、少なくとも対応するセルフループ固有の尤度情報に基づいて更新する手段;
前記累積尤度情報の更新の後に、第1の伝播段階において、前記一組のアクティブアークの累積尤度情報を伝播する手段;
前記第1の伝播段階の後の第2の伝播段階において、新たにアクティブにされたアークに累積尤度情報を伝播する手段であり、前記新たにアクティブにされたアークは、前記第1の伝播段階において更新された1つ以上の状態の1つ以上の退出アークを含む、手段;
前記新たにアクティブにされたアークを含むように、且つ閾値未満の累積尤度の値を有するアークを削除するように、前記一組のアクティブアークを組み直す手段;及び
組み直されたアクティブアークの組に関して、前記更新するステップ、前記第1の伝播段階及び前記第2の伝播段階を繰り返す手段;
を有する、システム。
【請求項17】
前記アークの前記一部の固有の尤度情報は、対応するセルフループ固有の尤度情報を含むように変更され、前記更新する手段は:
前記一組のアクティブアーク内の全てのアクティブアークの累積尤度情報を、対応するアークの固有の尤度情報に基づいて更新する手段
を含む、請求項16に記載のシステム。
【請求項18】
前記ネットワークの少なくとも非イプシロンアークの各々は、該アーク固有の尤度情報を保持する1つ以上のフィールドの第1の組と、セルフループ固有の尤度情報を保持する1つ以上のフィールドの第2の組と、前記1つ以上のフィールドの第2の組にセルフループ固有の尤度情報が存在するときにセルフループインジケーションを保持するセルフループインジケータフィールドとを含み、前記更新する手段は:
現在の前記一組のアクティブアーク内の前記サブセットのアークを、前記セルフループインジケーションを含むアークとして特定する手段;及び
特定された前記サブセットのアクティブアークに関してのみ、累積セルフループ尤度情報を更新する手段;
を含む、請求項16に記載のシステム。
【請求項19】
データオブジェクトに関するタスクを、該データオブジェクトに関する先行タスクが割り当てられた処理スレッドに基づいて順序付ける手段;
を更に含む請求項16に記載のシステム。
【請求項20】
前記ネットワークのアクティブアークを伝播する手段であり、特徴ベクトルに応答して前記アクティブアークの目的状態を更新する手段を含む、伝播する手段;
を更に含む請求項16に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2011−123494(P2011−123494A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2010−276067(P2010−276067)
【出願日】平成22年12月10日(2010.12.10)
【出願人】(593096712)インテル コーポレイション (931)
【Fターム(参考)】