(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-03-15
(54)【発明の名称】意味空間内のベクトル表示にタームをマッピングするためのシステム及び方法
(51)【国際特許分類】
G06F 16/33 20190101AFI20230308BHJP
【FI】
G06F16/33
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022542376
(86)(22)【出願日】2021-01-19
(85)【翻訳文提出日】2022-09-07
(86)【国際出願番号】 US2021013897
(87)【国際公開番号】W WO2021146694
(87)【国際公開日】2021-07-22
(32)【優先日】2020-01-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519102141
【氏名又は名称】エヌフェレンス,インコーポレイテッド
【氏名又は名称原語表記】NFERENCE,INC
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】バーベ,ラケッシュ
(72)【発明者】
【氏名】アナンド,アカッシュ
(72)【発明者】
【氏名】プラニク,アージュン
(72)【発明者】
【氏名】アラヴァムダン,ムラリ
(72)【発明者】
【氏名】サウンダララジャン,ヴェンカタラマナン
(72)【発明者】
【氏名】スリニヴァサン,アービンド
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175HB03
(57)【要約】
タームを意味空間内のベクトル表示にマッピングするための方法及びシステムが提供される。提供される技術は、新たな関心のあるタームである或いは、さもなければベクトル表示が事前計算されるタームのセットに含まれないクエリタームに関するベクトル表示の効率的且つ正確な決定を可能にする。
【特許請求の範囲】
【請求項1】
文書コーパスにアクセスするステップと、
前記文書コーパスに現われる複数の予測クエリタームを含むタームの第1のセットを特定するステップと、
タームの第2のセットを特定するステップであって、前記第2のセットが前記第1のセットのサブセットである、ステップと、
タームの前記第2のセットに関してベクトル表示のセットを計算するステップと、
タームの前記第1のセットに関する相関データをデータ構造に記憶するステップであって、前記相関データが前記ベクトル表示の前記セットの前記計算中に生成される、ステップと、
ランタイム動作中にタームの前記第1のセットの中のクエリタームのベクトル表示を決定するランタイム埋め込みエンジンに前記データ構造を与えるステップと、
を含む方法。
【請求項2】
タームの第1のセットを特定する前記ステップは、
前記文書コーパス内の1つ以上の文に関する依存関係解析を生成するステップと、
タームの前記第1のセットに含まれる少なくとも1つの多語タームを選択するために前記依存関係解析に1つ以上のヒューリスティック規則を適用するステップと、
を含む、請求項1に記載の方法。
【請求項3】
クエリタームを受信するステップと、
前記クエリタームがタームの前記第1のセットに含まれると決定するステップと、
前記データ構造から前記クエリタームに対応する相関データを検索するステップと、
前記クエリタームとタームの前記第2のセット内の1つ以上のタームとの間の相関に基づいて前記クエリタームに関するベクトル表示を決定するステップであって、前記相関が前記相関データに基づいて決定される、ステップと、
を更に含む、請求項1に記載の方法。
【請求項4】
前記クエリタームに対応する前記ベクトル表示を決定する前記ステップは、
前記相関データに基づいて、タームMultiAdj(t)のリストを生成するステップであって、前記タームMultiAdj(t)のリストが、前記文書コーパス内のクエリタームに近接して現われる前記第2のセット内の各タームの1つ以上のコピーを含み、前記1つ以上のコピーの数が、前記第2のセット内の各タームが前記文書コーパス内のクエリタームに近接して現われる回数に基づいて決定される、ステップと、
前記タームMultiAdj(t)のリスト内のそれぞれのタームsごとに、
前記タームsに対応するベクトル表示v
sを決定するステップと、
分布U´に基づいてタームの前記第2のセットから複数のタームt
iをサンプリングするステップと、
前記複数のタームt
iのそれぞれに対応する複数のベクトル表示
を決定するステップと、
以下の方程式を解くステップであって、
ここで、w
tが前記クエリタームに対応するベクトル表示である、ステップと、
を含む、請求項3に記載の方法。
【請求項5】
前記相関データは、前記ベクトル表示の前記計算中に生成される中間結果又は中間結果の集約に対応する、請求項1に記載の方法。
【請求項6】
前記相関データは、少なくとも1つのタームが前記コーパス内の少なくとも1つの他のタームに近接して現われる頻度を示す集約メトリックを含む、請求項1に記載の方法。
【請求項7】
前記コーパスは、生物医学トピックに関連する文書のセットに対応する、請求項1に記載の方法。
【請求項8】
タームの第1のセットを特定する前記ステップは、頻度ベースの技術を使用してタームを選択するステップを含む、請求項1に記載の方法。
【請求項9】
タームの前記第2のセットは、そのカウント又は頻度が第1の閾値を超える少なくとも1つの単語ターム及び/又は少なくとも1つの二語タームを含む、請求項1に記載の方法。
【請求項10】
タームの前記第2のセットは、そのカウント又は頻度が第2の閾値を超える少なくとも1つの三語タームを含む、請求項9に記載の方法。
【請求項11】
クエリタームを受信するステップと、
前記クエリタームがタームの前記第1のセットに含まれないと決定するステップと、
前記クエリタームに対応する相関データを決定するステップと、
前記クエリタームとタームの前記第2のセット内の1つ以上のタームとの間の相関に基づいて前記クエリタームに関するベクトル表示を決定するステップであって、前記相関が前記相関データに基づいて決定される、ステップと、
を更に含む、請求項1に記載の方法。
【請求項12】
前記クエリタームに関するベクトル表示を決定する前記ステップは、前記クエリタームに関する豊富度及び/又は豊富度クラスを決定するステップを含む、請求項11に記載の方法。
【請求項13】
前記クエリタームに対応する前記相関データは、前記文書コーパス内の前記クエリタームの各出現の周りにn語ウィンドウを設定して各n語ウィンドウ内に現われるタームの頻度又はカウントを特定することによってランタイムで決定される、請求項11に記載の方法。
【請求項14】
クエリタームを受信するステップと、
前記クエリタームがタームの前記第2のセットに含まれると決定するステップと、
前記データから前記クエリタームに関する前記ベクトル表示を検索するステップと、
を、更に含む、請求項1に記載の方法。
【請求項15】
モジュールを記憶するメモリと、
前記メモリに記憶される前記モジュールを実行するように構成されるプロセッサであって、前記モジュールが、前記プロセッサに、
文書コーパスにアクセスするステップと、
前記文書コーパスに現われる複数の予測クエリタームを含むタームの第1のセットを特定するステップと、
タームの第2のセットを特定するステップであって、前記第2のセットが前記第1のセットのサブセットである、ステップと、
タームの前記第2のセットに関するベクトル表示のセットを計算するステップと、
タームの前記第1のセットに関する相関データをデータ構造に記憶するステップであって、前記相関データが、タームの前記第2のセットに関するベクトル表示の前記セットの計算中に生成される、ステップと、
ランタイム動作中にタームの前記第1のセットの中のクエリタームのベクトル表示を決定するランタイム埋め込みエンジンに前記データ構造を与えるステップと、
を行なわせるように構成される、プロセッサと、
を備えるシステム。
【請求項16】
タームの第1のセットを特定する前記ステップは、
前記文書コーパス内の1つ以上の文に関する依存関係解析を生成するステップと、
タームの前記第1のセットに含まれる少なくとも1つの多語タームを選択するために前記依存関係解析に1つ以上のヒューリスティック規則を適用するステップと、
を含む、請求項15に記載のシステム。
【請求項17】
前記プロセッサは、
クエリタームを受信し、
前記クエリタームがタームの前記第1のセットに含まれると決定し、
前記データ構造から前記クエリタームに対応する相関データを検索し、
前記クエリタームとタームの前記第2のセット内の1つ以上のタームとの間の相関に基づいて前記クエリタームに関するベクトル表示を決定し、前記相関が前記相関データに基づいて決定される、
ように更に構成される、請求項15に記載のシステム。
【請求項18】
1つ以上のハードウェアプロセッサによって実行されるときに、前記1つ以上のハードウェアプロセッサに、
文書コーパスにアクセスするステップと、
前記文書コーパスに現われる複数の予測クエリタームを含むタームの第1のセットを特定するステップと、
タームの第2のセットを特定するステップであって、前記第2のセットが前記第1のセットのサブセットである、ステップと、
タームの前記第2のセットに関するベクトル表示のセットを計算するステップと、
タームの前記第1のセットに関する相関データをデータ構造に記憶するステップであって、前記相関データが、タームの前記第2のセットに関するベクトル表示の前記セットの計算中に生成される、ステップと、
ランタイム動作中にタームの前記第1のセットの中のクエリタームのベクトル表示を決定するランタイム埋め込みエンジンに前記データ構造を与えるステップと、
を含む動作を実行させる命令を記憶する持続性コンピュータ可読媒体。
【請求項19】
タームの前記第1のセットを特定する前記ステップは、
前記文書コーパス内の1つ以上の文に関する依存関係解析を生成するステップと、
タームの前記第1のセットに含まれる少なくとも1つの多語タームを選択するために前記依存関係解析に1つ以上のヒューリスティック規則を適用するステップと、
を含む、請求項18に記載の持続性コンピュータ可読媒体。
【請求項20】
前記動作は、
クエリタームを受信するステップと、
前記クエリタームがタームの前記第1のセットに含まれると決定するステップと、
前記データ構造から前記クエリタームに対応する相関データを検索するステップと、
前記クエリタームとタームの前記第2のセット内の1つ以上のタームとの間の相関に基づいて前記クエリタームに関するベクトル表示を決定するステップであって、前記相関が前記相関データに基づいて決定される、ステップと、
を更に含む、請求項18に記載の持続性コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この出願は、参照によりその全体が本願に組み入れられる「SYSTEMS AND METHODS FOR MAPPING A TERM TO A VECTOR REPRESENTATION IN A SEMANTIC SPACE(意味空間内のベクトル表示にタームをマッピングするためのシステム及び方法)」と題される2020年1月17日に出願された米国仮特許出願第62/962,433号に対する35U.S.C.§119(e)に基づく利益を主張する。
【0002】
この出願は、一般に、テキストデータのデジタル解析に関し、具体的には、タームを意味空間のベクトル表示にマッピングするための技術に関する。
【背景技術】
【0003】
人間は、テキスト(例えば、英数字、記号、絵文字の配列として表わされるワード、フレーズ、及び、他のターム)の形式で提示される情報の意味を理解することができるが、コンピュータ技術は、一般に、人間が読める形式のテキストの意味論的意味を理解することができない。代わりに、タームに意味を割り当てるために、コンピュータ技術は、一般に、意味空間内、例えば、所定のタームの意味論的意味が数値のセットで符号化されるベクトル空間内のベクトルとしてタームを表わす。このとき、意味空間内のターム間の距離に基づいてタームの対間の類似度又は相違度を決定することができる(例えば、それらのコサイン類似度)。例えば、関連タームのクラスタを、意味空間におけるそれらの近接度に基づいて特定することができる。
【0004】
自然言語処理(NLP)は、タームがベクトルとして頻繁に表わされる例示的なタイプのコンピュータアプリケーションである。NLP処理パイプラインでは、文書(例えば、各ワード、フレーズ、文など)内の各トークンが意味空間内の対応するベクトル表示にマッピングされる埋め込みプロセスが含まれることが多い。文書に関するベクトル表示のセットが決定された時点で、様々なタイプのデジタル解析を実行することができる。例えば、文書を分類し、文書に関連性スコアを割り当て、文書内のエンティティ(例えば、人々の名前、日付、国)を特定するなどのために、ベクトル表示のセットをニューラルネットワークモデルへの入力として与えることができる。
【0005】
したがって、タームを意味空間内のそれらの対応するベクトル表示にマッピングするための改善された技術を開発することが望ましい。
【図面の簡単な説明】
【0006】
【
図1】幾つかの実施形態に係るタームを意味空間内のベクトル表示にマッピングするためのシステムの簡略図である。
【
図2】幾つかの実施形態に係るタームを意味空間内のベクトル表示にマッピングするためのデータフローの簡略図である。
【
図3】幾つかの実施形態に係るベクトル表示データ構造の簡略図である。
【
図4】幾つかの実施形態に係る相関データ構造の簡略図である。
【
図5】幾つかの実施形態に係る文書コーパスに基づいて1つ以上の事前計算されたデータ構造を生成するための方法の簡略図である。
【
図6】幾つかの実施形態に係るクエリタームのベクトル表示を決定するための方法の簡略図である。
【
図7】幾つかの実施形態に係る相関データに基づいてクエリタームのベクトル表示を決定するための方法の簡略図である。
【発明を実施するための形態】
【0007】
開示された主題の様々な目的、特徴、及び、利点は、同様の参照番号が同様の要素を特定する以下の図面に関連して考慮されるときに開示された主題の以下の詳細な説明を参照してより完全に理解され得る。
【0008】
タームを意味空間内のベクトル表示にマッピングすることは困難であり得る。一般に、ベクトル表示は、テキスト(例えば、テキスト文書の集合)のコーパスを解析してコーパスに現われる様々なターム間の関係を決定することによって決定され得る。ターム間の関係に基づいて、タームのそれぞれが意味空間内のベクトル表示にマッピングされるように意味空間がポピュレートされる。これらのマッピングされたタームのそれぞれは、ベクトル表示がタームをエンティティとして特徴付けるため、「名前付きエンティティ」と考えることができる。例えば、タームの対は、それらがコーパス内で互いに近接して現われる(例えば、それらが互いに直接に隣接して現われる又は同じn語サイズのウィンドウ内に現われる)ことが多い場合、相関があると見なされ得る。2つのターム間又は3つ以上のターム間の他のタイプの関係(例えば、文法的関係)が検出されてもよく、これらの関係は、それらの対応するベクトル表示に捕捉されてもよい。
【0009】
ベクトル表示のセットが決定された後、アプリケーションから及び/又はユーザからクエリタームが受信されてもよい。対応するベクトル表示が予め決定されているタームのセットにクエリタームが含まれる場合には、例えば、ベクトル表示のセットを記憶するデータ構造に関してルックアップ操作を実行することによって、クエリタームのベクトル表示を効率的に検索することができる。一方、対応するベクトル表示が予め決定されているタームのセットにクエリタームが含まれない場合には、クエリタームのベクトル表示を決定することは困難及び/又は非効率的となり得る。
【0010】
タームのセットをそれらの対応するベクトル表示にマッピングするための様々な技術は、意味空間が単一パスでセット内のそれぞれのタームごとにベクトル表示でポピュレートされるように、バッチモードで動作する。続いて、元のマッピングの一部ではなかった新たなタームに関してベクトル表示を決定することが望まれる場合には、新たなタームを含む更新されたタームのセットを使用してマッピングが再び実行される。初期マッピング中に生成された中間結果は、もしあれば、後の使用のために記憶されない或いはさもなければ後続のマッピングを容易にするために使用されない。バッチモードでベクトル表示を決定するための技術の例示的な実例としては、word2vec(Mikolov et al.,´´Efficient Estimation of Word Representations in Vector Space,´´arXiv preprint arXiv:1301.3781,2013),GloVe(Pennington et al.,´´GloVe:Global Vectors for Word Representation,´´in Proceedings of EMNLP,2014),and fasttext(Joulin et al.,´´Bag of tricks for efficient text classification,´´arXiv preprint arXiv:1607.01759,2016;Bojanowski et al.,´´Enriching Word Vectors with Subword Information,´´Transactions of the Association for Computational Linguistics,2017)が挙げられる。
【0011】
バッチモードでベクトル表示を決定することは、様々な非効率性又は不正確さをもたらし得る。例えば、タームのセットが変化するたびに(例えば、タームのセットに含まれないクエリタームが受信されるたびに)ベクトル表示の全セットを再計算すると、かなりの計算リソースを消費する場合がある。更に、ベクトル表示を繰り返し再計算することを回避するために、アプリケーションは、ベクトル表示が事前計算されていないクエリタームを無視するように構成されてもよい。同様に、アプリケーションは、そのようなクエリタームをデフォルトベクトルにマッピングすることができる。これらの手法のいずれも、あまり正確でない解析をもたらす場合がある。これは、クエリタームの意味がそのベクトル表示に捕捉されないからである。バッチモード手法の制限に対処するための別の手法は、ベクトル表示が過度に包括的であるように事前計算されるタームのセットを、そのセットがクエリタームとして後に現われる可能性が高いよりも多くのタームを含むように構成することであってもよい。そのような手法は、所定のクエリタームが事前計算されたベクトル表示を有する可能性を高め得るが、ベクトル表示が事前計算されるタームの多くが使用される可能性が低いことを考えると、この手法におけるコンピュータリソースの使用は非効率的であり得る。
【0012】
更に、ベクトル表示が事前計算されるタームのセットは、新たな関心のあるタームを含む可能性が低い。例えば、新たな関心のあるタームは、新たに又は最近に作られたターム、例えば、コーパス内の新たな又は最近の文書に最初に現われるタームに対応し得る。「新たに作られたターム」は「名前付きエンティティ」と呼ばれることもでき、新たに作られたターム及び名前付きエンティティはいずれも、新しく又は最近作成されたタームのみに限定されない。新たに作られたターム及び名前付きエンティティの両方をエンティティと見なすことができ、したがって、当該分野の著者、研究者、実務家にとって関心のあるタームのセットのリストに追加される。同様に、新たな関心のあるタームは、著者、研究者、実務家などによる採用を得ている過程に未だあるタームを含むことができる。それらの局所的な関連性を考慮すると、新たな関心のあるタームは、クエリタームとして現われる可能性が最も高いものの1つであり得る。それにもかかわらず、これらのタームは、ベクトル表示が事前計算されるタームのセットの中に含まれる可能性が低い場合がある。例えば、ベクトル表示は、コーパス内の最も頻繁に発生するタームに関して又は手動でキュレートされたタームのセット(例えば、タームのコミュニティキュレートされたデータベース)に関して事前計算することができる。しかしながら、新たな関心のあるタームは、コーパス内で最も頻繁に発生するタームのうちの1つとなり得る可能性は低く(例えば、これらのタームは古い文献にはまれにしか現われない可能性がある)、タームのセットを手動でキュレートする管理しているコミュニティによって事前に知られる可能性も低い(例えば、それらの重要性は、キュレートされたタームリストが作成された後に認識される場合がある)。
【0013】
したがって、タームを意味空間内のベクトル表示にマッピングするための改善された技術、特に、新たな関心のあるタームである或いはさもなければベクトル表示が事前計算されるタームのセットに含まれないクエリタームに関してベクトル表示の効率的且つ正確な決定を可能にする技術を開発することが望ましい。
【0014】
図1は、幾つかの実施形態に係るタームを意味空間内のベクトル表示にマッピングするためのシステム100の簡略図である。システム100は、ネットワーク110を介して通信可能に結合される複数のデバイス101~109を含む。デバイス101~109は、一般に、パーソナルコンピュータ、モバイルデバイス、サーバなどのコンピュータデバイス又はシステムを含む。ネットワーク110は、1つ以上のローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、有線ネットワーク、無線ネットワーク、インターネットなどを含むことができる。例示的に、デバイス101~109は、TCP/IPプロトコル又は他の適切なネットワークプロトコルを使用してネットワーク110を介して通信することができる。
【0015】
デバイス101~109のうちの1つ以上は、ネットワーク110を介してデジタル文書121~129を記憶する及び/又はデジタル文書121~129にアクセスすることができる。例えば、
図1に示されるように、デバイス101,102及び109はデジタル文書121,122及び129をそれぞれ記憶し、また、デバイス103は、ネットワーク110を介してデジタル文書121~129にアクセスする。デジタル文書121~129は、ウェブページ、デジタルファイル、デジタル画像(ビデオ又はアニメーションの1つ以上のフレームを含む)などを含むことができる。例示的に、デジタル文書121~129は、HTML/CSS文書、PDF文書、ワードプロセッシング文書(例えば、Word文書)、テキスト文書、スライドショープレゼンテーション(例えば、パワーポイントの提示)、画像ファイル(例えば、JPEG、PNG、又はTIFF画像)などとしてフォーマットすることができる。デジタル文書121~129は、異種(例えば、異なるフォーマット又はファイルタイプのもの)又は同種(例えば、同じフォーマット又はファイルタイプのもの)とすることができ、構造化データ又は非構造化データを含むことができる。一般に、デジタル文書121~129は、英数字、記号、絵文字、テキストの画像表示などを含むことができるテキストデータを含む。ネットワーク110を介した効率的な記憶及び/又は送信のために、文書121~129は、ネットワーク110を介した送信前又は送信中に圧縮されてもよい。暗号化、認証(多要素認証を含む)、SSL、HTTPS、及び他のセキュリティ技術などのセキュリティ手段も適用することができる。
【0016】
幾つかの実施形態によれば、デバイス103は、デバイス101,102、109からデジタル文書121~129をダウンロードすることによって、デジタル文書121~129のうちの1つ以上にアクセスすることができる。更に、デバイス101,102又は109のうちの1つ以上は、デジタル文書121~129をデバイス103にアップロードすることができる。デジタル文書121~129は、様々な時点で更新されてもよい。したがって、デバイス103は、最新のコピーを取得するために、様々な間隔で(例えば、周期的に)複数回デジタル文書121~129にアクセスすることができる。
【0017】
図1に示されるように、デバイス103は、メモリ140(例えば、1つ以上の持続性メモリ)に結合されたプロセッサ130(例えば、1つ以上のハードウェアプロセッサ)を含む。メモリ140は、前処理プログラム152及びランタイムプログラム154に対応する命令及び/又はデータを記憶する。プロセッサ130によって実行されると、前処理プログラム152及びランタイムプログラム154はそれぞれ、タームを意味空間内のベクトル表示にマッピングすることに関連する動作をプロセッサ130に実行させる。幾つかの実施形態において、前処理プログラム152は、
図2を参照して以下で更に詳細に説明するように、マッピングを実行するときにランタイムプログラム154によってその後にアクセスされ得る1つ以上の事前計算されたデータ構造を生成又は更新することができる。
【0018】
前処理プログラム152及び/又はランタイムプログラム154の実行中に、プロセッサ130は、1つ以上のニューラルネットワークモデル160を実行することができる。ニューラルネットワークモデル160は、入力データに基づいて予測(例えば推論)を行うようにトレーニングされる。ニューラルネットワークモデル160は、ニューラルネットワークモデル160の複数の層及び層間の関係を規定するコンフィギュレーション162を含む。層の例示的な例としては、入力層、出力層、畳み込み層、密結合層、マージ層などが挙げられる。幾つかの実施形態において、ニューラルネットワークモデル160は、入力層と出力層との間に少なくとも1つの隠れ層を有するディープニューラルネットワークとして構成されてもよい。層間の接続は、フィードフォワード接続又は反復接続を含むことができる。
【0019】
ニューラルネットワークモデル160の1つ以上の層は、トレーニングされたモデルパラメータ164に関連付けられる。トレーニングされたモデルパラメータ164は、機械学習プロセスに従って学習されたパラメータのセット(例えば、人工ニューロンの重み及びバイアスパラメータ)を含む。機械学習プロセス中、標識化されたトレーニングデータがニューラルネットワークモデル160への入力として与えられ、トレーニングされたモデルパラメータ164の値は、ニューラルネットワーク160によって生成された予測が対応する標識と所望のレベルの精度で一致するまで反復的に調整される。
【0020】
性能を向上させるために、プロセッサ130は、グラフィック処理ユニット、テンソル処理ユニット、特定用途向け集積回路などを使用してニューラルネットワークモデル160を実行することができる。
【0021】
デバイス103は、データベース170に通信可能に結合することができる。例えば、データベース170は、スキーマ又は他の論理的関係(例えば、リレーショナルデータベース)に従って編成されたコンテンツを有する構造化データベースとして構成されてもよい。幾つかの実施形態において、データベース170は、非リレーショナルデータベース、非構造化データベース、キーバリューストアなどとして構成されてもよい。データベース170は、デバイス103に直接結合されるものとして示されているが、様々な他の構成も可能であることが理解されるべきである。例えば、データベース170は、メモリ103に記憶されてもよく、ネットワーク110を介してアクセスされてもよい。
【0022】
図2は、幾つかの実施形態に係るタームを意味空間内のベクトル表示にマッピングするためのデータフロー200の簡略図である。
図1と一致する幾つかの実施形態では、データフロー200は、以下で更に説明するように、システム100の様々な構成要素及び/又は特徴を使用して実施することができる。
【0023】
コーパス210は、1つ以上のテキスト文書の集合に相当する。例えば、コーパス210は、デバイス101~109から受信した文書121~129に対応してもよく、及び/又は、デバイス103によってローカルに記憶された文書を含んでもよい。幾つかの実施形態において、コーパス210は、メモリ140、データベース170、オンチップメモリ(例えば、キャッシュ)などに記憶することができる。コーパス210内の文書は、ネイティブフォーマットで(例えば、デバイス101~109から受信したフォーマットで)記憶することができ、又は、受信した文書に対して様々な前処理動作を実行して文書の内容又はフォーマットを修正することができる。例えば、非テキストデータ(例えば、画像データ)及び/又はメタデータが文書から除去されてもよく、テキストデータが文書から(例えば、光学文字認識によって)抽出されてもよいなどである。文書121~129のフォーマットは、統一されたフォーマットに変換されてもよく、又は、文書121~129からのデータを使用してデータベース(例えば、データベース170)をポピュレートしてもよい。幾つかの実施形態では、コーパス210が動的に更新されてもよい。
【0024】
コーパス210の内容は、一般的な主題(例えば、様々なトピックをカバーするニュース記事又はWikipediaエントリのコレクション)又はドメイン固有の主題に関連することができる。例示的に、コーパス210は、生物医学の主題に関連し得る。例えば、コーパス210は、生物医学分野に関連する雑誌記事、参照教科書、特許出願、ウェブサイトなどからのテキストを含むことができる。コーパス210は、分子データベース、科学文献、保険文書、製薬会社のウェブサイト、ニュースフィード、規制情報(臨床試験、SEC提出、知財)などの多種多様なソースから引き出すことができる。
【0025】
図2に示されるように、ターム220は、コーパス210に現われる全てのタームの理想化されたセットに対応する。ターム220の例は、単語、多語フレーズ、文、段落などを含むことができるが、これらに限定されない。多語タームは、隣接するワードの組み合わせ又は他のワードによって分離されるワードの組み合わせを含むことができる。また、ターム220は、ワード及びフレーズに類似した関数を与えることができるコーパス210に含まれる数字、オブジェクト(例えば、方程式)、記号、及び、様々な他の情報を含むこともできる。トークン化(例えば、コーパス210のテキストを余白、句読点などの位置に基づいてタームに分割する)、ステミング又はレミング(例えば、ベース又はルートを修飾語から特定する)などを含む様々なプロセスを使用して、コーパス210からターム220を抽出することができる。
【0026】
ターム220は、目標セット230を含む様々なサブセットに分割することができる。目標セット230は、ベクトル表示が望まれるクエリタームとして後に使用されるターム220の中の理想化された前向きのタームのセットに対応する。目標セット230内のタームが対応するベクトル表示にマッピングされる後続のアプリケーションのランタイム効率を改善するために、一般に、目標セット230内のそれぞれのタームごとにベクトル表示を事前計算することが望ましい。しかしながら、目標セット230内のタームは事前には知られていない。
【0027】
目標セット230は事前には知られていないが、目標セット230内のタームを予測するために様々な技術が使用され得る。これらの技術を使用して、予測セット240が生成され、また、予測セット240は目標セット230に含まれると予測されるタームを含む。一般に、予測セット240は、目標セット230と可能な限り厳密に一致することが望ましい。例えば、一致の近さは、リコールのターム(例えば、予測セット240にも含まれる目標セット230内のタームの数又は割合)及び精度(例えば、目標セット230にも含まれる予測セット240内のタームの数又は割合)に関して測定することができる。
図2の標識化領域を参照すると、リコールは、領域B及びDにおけるタームの組み合わせ数と領域Aにおけるタームの数との比較に対応することができる。精度は、領域B及びDにおけるタームの組み合わせ数とタームの数領域Cとの比較に対応することができる。
【0028】
例示的に、予測セット240は、以下のうちの1つ以上によって特徴付けられるターム220のサブセットを含むことができる。(1)ターム220の中の各単語ターム;(2)コーパス210において頻繁に発生すると特定されるターム220の中の連続する多語ターム;及び(3)1つ以上のタームデータベースに現われるターム220の中のターム。
【0029】
幾つかの実施形態において、連続する多語ターム(上記のサブセット(2))を選択することは、コーパス210内の頻度が第1の所定の閾値を超えるタームを特定することを含むことができる。例えば、コーパス210が1000個のワードを含み且つ所定の多語タームが15回現われる場合、頻度は0.015である。第1の所定の閾値が0.01である場合、頻度は閾値を超え、タームは予測セット240に含まれる。幾つかの実施形態において、第1の所定の閾値は、調整可能なハイパーパラメータであってもよい。
【0030】
これに加えて又は代えて、頻繁に発生する多語ターム(上記のサブセット(2))を特定することは、その構成タームの頻度に対するコーパス210内の頻度が第2の所定の閾値を超える多語タームを特定することを含むことができる。第1の所定の閾値と同様に、第2の所定の閾値は、調整可能なハイパーパラメータであってもよい。例えば、コーパス210が1000個のワードを含み、所定の二語タームが15回出現し、二語ターム内の第1のワードが30回出現し、二語ターム内の第2のワードが50回現われる場合、二語タームの相対頻度(例えば、二語タームの頻度をその構成タームの積で除算することによって得られる割合である)は0.01である。第2の所定の閾値が0.005である場合、相対頻度は閾値を超え、二語タームは予測セット240に含まれる。幾つかの実施形態では、複数の手法の組み合わせを使用して、コーパス210内の頻出する多語タームを特定することができる。
【0031】
幾つかの実施形態において、タームのデータベース(上記のサブセット(3))に現われるコーパス210内のタームを特定することは、コミュニティキュレートされたデータベースにアクセスすることを含むことができる。例えば、生物医学的用途との関連で、タームのデータベースは、生物医学的用途に関心があるとしてコミュニティへの貢献者によって手動で選択されたタームを含むコミュニティキュレートされた生物医学データベースを含み得る。幾つかの実施形態において、タームのデータベースは、過去の検索で使用された過去のクエリタームを特定する検索ログに対応することができる。
【0032】
前述したように、予測セット240内のタームの少なくとも一部は、頻度ベースの技術(例えば、サブセット(2))及び/又はデータベースベースの技術(例えば、サブセット(3))を使用して予測することができる。しかしながら、そのような技術を単独で使用することは、包括的でない場合がある(例えば、予測セット240は、低いリコールを有することができる)。例えば、これらの技術は、新たな関心のあるターム、例えば、コーパス210にまれにしか現われないが、最近の関心の急増などの要因によりクエリタームとして使用される可能性が不釣り合いに高いタームを含む可能性が低い。新たな関心のあるタームは、一般に、コーパス210においてまれにしか出現しないため、頻度ベースの技術を使用して予測される可能性は低い。新たな関心のあるタームは、既知のタームの過去の検索ログ又はデータベースにも現われない可能性があるため、データベースベースの技術を使用して予測される可能性も低い。
【0033】
そのような新たな関心のあるタームは、それらがいつ多語フレーズを含むかを予測することが特に困難であり得る。例えば、コーパス210内の多語フレーズの総数は、タームの組み合わせが考慮されるときに多語フレーズの数が組み合わせ的に増加するため、コーパス210内の単語タームの数よりも著しく多くなり得る。その結果、(例えば、しらみつぶしで)コーパス210に現われる各単語タームを予測セット240に含めることが可能であり得るが、計算リソースの制限により、多語フレーズを含む、予測セット240におけるコーパス210に現われる各多語フレーズを含めることは非現実的になり得る。
【0034】
説明のために、「クイックブラウンフォックス(quick brown fox)」というフレーズを考える。ターム「ブラウンフォックス」(例えば、連続する二語ターム)は、予測セット240に含まれ得る。一方、ターム「クイックフォックス」(例えば、連続していない二語ターム)は、前述した手法を使用して予測セット240に含まれなくてもよい。しかしながら、「クイック」及び「フォックス」というタームは文法的に関連しており、単語の論理的なグループ(例えば、「クイック」は、「フォックス」を説明する形容詞である)を形成しているため、「クイックフォックス」が後にクエリタームとして使用される可能性があることはもっともらしい。したがって、そのような文法的に関連する非連続的な多語ターム(及び/又はまれにしか生じないが文法的に関連する連続的な多語ターム)を含むように予測セット240を増強することが望ましい場合がある。
【0035】
そのようなタームのリコールを増加させるために、様々な技術を使用して予測セット240を増強することができる。これらの技術は、前述した頻度ベース及び/又はデータベースベースの技術と組み合わせることができ、又はそれらを置き換えることができる。幾つかの実施形態では、コーパス210は、ニューラルネットワークモデル160などのニューラルネットワークモデルへの入力として与えられてもよい。ニューラルネットワークモデルは、コーパス210内の各文の依存関係解析を生成するようにトレーニングされる依存関係解析器として構成することができる。依存関係解析器は、タームをそれらの品詞(例えば、名詞、動詞、形容詞など)でタグ付けし、文内のターム語間の関係(例えば、主題、オブジェクト、修飾因子など)を特定する。依存関係解析器の出力は、目標セット230にある可能性が高いことから予測セット240に含まれるべきタームを特定するために、1つ以上のヒューリスティック規則に従って解析することができる。このようにして、ヒューリスティック規則の数及び種類は、包括的な予測セット240(例えば、高いリコール、低い精度)を達成するように構成され得る。すなわち、
図2の標識化領域を参照すると、ヒューリスティック規則は、領域A内のタームの数が領域B、C、及びDと比較して少なくなるように構成され得る。
【0036】
過度に包括的な予測セット240を生成することにより、事前に予測することが困難な目標セット230内のターム(例えば、新たな関心のあるターム)であっても、予測セット240に含まれる可能性が高い。対照的に、あまり包括的でない予測セット240を特定する技術(例えば、頻度ベースの技術又はデータベースベースの技術のみ)は、目標セット230内のタームの適切なリコールを達成する可能性が低い。
【0037】
予測セット240が特定された時点で、予測セット240内のタームに基づいて、1つ以上の事前計算データ構造260を生成又は更新することができる。幾つかの実施形態では、事前計算されたデータ構造260の生成及び更新は、前処理プログラム152によって実行されてもよい。
【0038】
一般に、事前計算されたデータ構造260は、予測セット240内のタームの意味空間内の対応するベクトル表示へのマッピングを容易にする。例えば、事前計算されたデータ構造260は、予測セット240内の1つ以上のタームの事前計算されたベクトル表示を含むベクトル表示データ構造262を含むことができる。ベクトル表示データ構造262に対してルックアップ操作を実行して、特定のタームのベクトル表示を決定することができる。
【0039】
一方、特に予測セット240が過度に包括的である或いはさもなければ多数のタームを含むように構成される場合、予測セット240内の各タームに関するベクトル表示を事前計算することは、計算集約的であり得る。したがって、予測セット240が目標セット230にない多数のタームを含み得る(例えば、それらのタームがクエリタームとしてその後に現われる可能性が低い)ことを考えると、予測セット240内のそれぞれのタームごとにベクトル表示を事前計算するために計算リソースを使用することが望ましくない場合がある。
【0040】
幾つかの実施形態では、予測セット240内のそれぞれのタームごとにベクトル表示を事前計算するのではなく、事前計算されたベクトル表示が決定される予測セット240のより小さいサブセットを選択することができる。このサブセットは、
図2では事前計算されたセット250として特定される。事前計算されたセット250は、予測セット240よりも著しく少ない数のタームを含むことができる。例えば、事前計算されたセット250は、予測セット240よりも一桁以上小さい大きさ(10倍)であってもよい。例示的には、事前計算されたセット250内のタームは、頻度ベースの技術を使用して、例えば、予測されたターム240の中で最も頻繁に発生するn個のタームを選択することによって、ターム予測セット240から選択され得る。予測されたタームのセット240とは異なり、事前計算されたセットは、高いリコールを有していなくてもよい。すなわち、
図2の標識化領域を参照すると、領域D内のタームの数は、領域A及びB内のタームの合計数に対して少なくてもよい。
【0041】
幾つかの実施形態において、事前計算されたデータ構造260は、予測セット240(例えば、事前計算されたセット250にないタームを含む)内のそれぞれのタームごとに事前計算された相関データを含む相関データ構造264を含むことができる。幾つかの実施形態において、相関データは、事前計算されたセット250内のタームに関するベクトル表示の計算中に特定される相関に基づいて集約され得る。例えば、所定のタームをベクトル表示にマッピングするための幾つかの技術(バッチモードで動作するものを含む)は、中間ステップとして、コーパス210内の他のタームに対するタームの近接度などの相関を決定することができる。所定のタームについて、近接データは、コーパス210内のタームの各出現の周りにn語ウィンドウを設定してウィンドウ内に現われるタームの頻度又はカウントを特定することによって決定され得る。例えば、ウィンドウのサイズ三語である場合、関心のあるタームに中心付けられる各ウィンドウは、中心タームに隣接して現われるタームを捕捉する。しかしながら、そのような技術は、一般に、中間相関データを集約、記憶、又は別の方法で後に使用するように構成されていない。一方、データフロー200では、相関データを集約し、相関データ構造264に記憶することができ、相関データ構造はその後、後続のアクセスのために持続する(例えば、メモリ140、データベース170、キャッシュメモリなどにおいて)。
【0042】
幾つかの実施形態において、予測セット240内の各タームは、事前計算されたデータ構造260内に少なくとも1つの対応するエントリを有することができる。しかしながら、幾つかのタームは省略され及び/又はデフォルト値に割り当てられてもよい。例えば、数字、ストップワード(例えば、「a」、「the」、「of」などの一般的に見られるターム)、固有名詞などのタームは、ベクトル表示データ構造262内のデフォルトエントリに割り当てられてもよい。
【0043】
次に、アプリケーション280が実行される。アプリケーション280は、クエリターム282が(ランタイム埋め込みエンジン284によって)意味空間に埋め込まれ、クエリターム282の結果として得られるベクトル表示が更なる解析のために解析エンジン286に提供される多種多様なアプリケーションに対応することができる。例えば、クエリターム282は、コーパス210の意味的検索中にユーザによって提供された検索タームに対応することができ、解析エンジン286は、ニューラルネットワークモデル(例えば、ニューラルネットワークモデル160)を使用して、検索タームと一致するコーパス210内の文書を特定又はランク付けすることができる。幾つかの実施形態では、ランタイム埋め込みエンジン284は、ランタイムプログラム154によって実行されてもよい。
【0044】
クエリターム282は、一般に、目標セット230(例えば、ある時点でクエリタームとして使用されるコーパス210内の理想化された前向きのタームのセット)の一部である。したがって、クエリターム282は、目標セット230の領域A、B、又はDのいずれかに見出すことができる。クエリターム282が領域Dにあるとき、クエリターム282は、事前計算されたベクトル表示がベクトル表示データ構造262に記憶されている事前計算されたセット250のタームの中にある。したがって、領域D内のクエリターム282について、ランタイム埋め込みエンジン284は、ベクトル表示データ構造262内のクエリターム282を検索し、対応するベクトル表示を検索することができる。
【0045】
クエリターム282が領域Bにあるとき、クエリターム282は、事前に計算された相関データが相関データ構造264に記憶されている予測セット240内のタームの中にある。したがって、領域B内のクエリターム282について、ランタイム埋め込みエンジン284は、相関データ構造264内のクエリターム282を検索し、対応する相関データを検索することができる。検索された相関データに基づいて、ランタイム埋め込みエンジン284は、クエリターム282をその対応するベクトル表示にマッピングすることができる。相関データに基づいてクエリターム282をその対応するベクトル表示にマッピングするための例示的な技術は、
図6を参照して以下で更に詳細に説明される。
【0046】
クエリターム282が領域Aにあるとき、クエリターム282は、事前計算されたセット250又は予測されたセット240のいずれにもなく、したがって、クエリターム282は、事前計算されたデータ構造260に対応するエントリを有していない。したがって、領域A内のクエリターム282について、ランタイム相関データエンジン290は、コーパス210を解析又は走査することによってランタイムで相関データを決定することができる。結果として得られるランタイム相関データは、一般に、相関データ構造264に記憶された事前計算された相関データと同じであってもよいが、ランタイム相関データは、事前計算されたデータ構造260の使用に関連する効率利得を利用しないため、取得に時間がかかる場合がある。
【0047】
図3は、幾つかの実施形態に係るベクトル表示データ構造300の簡略図である。幾つかの実施形態では、ベクトル表示データ構造300を使用して、ベクトル表示データ構造262を実装することができる。複数のターム301~309(例えば、事前に計算されたセット250内のタームのそれぞれ)のそれぞれについて、対応する事前計算されたベクトル表示311~319が与えられる。
【0048】
図4は、幾つかの実施形態に係る相関データ構造400の簡略図である。幾つかの実施形態では、相関データ構造400を使用して相関データ構造264を実装することができる。複数のターム401~409のそれぞれごとに(例えば、予測セット240内のタームのそれぞれごとに)対応する相関データが与えられる。例示として、相関データは、コーパス(例えば、コーパス210)内の各ターム401~409に近接して現われるターム411~419のリストを含むことができる。カウント421~420又は別の適切なメトリック(例えば、正規化された頻度値)など、コーパス内のターム401~409に近接してターム411~419が現われる頻度を示す集約メトリックも与えられ得る。
【0049】
ベクトル表示データ構造300及び相関データ構造400の上記の説明は非限定的であり、様々な特徴を追加、削除、修正、置換、又は再配置することができる。データ構造300及び400は、表形式の表示(例えば、行及び列を成して配置される)を使用して示されるが、様々な非表形式又は表示を使用することができる。同様に、代替構成の表形式を使用することができる。幾つかの実施形態において、ターム301~309、401~409、及び/又は411~419は、テキスト文字列、インデックス値、ハッシュ値などとして表すことができる。
【0050】
図5は、幾つかの実施形態に係る文書コーパスに基づいて1つ以上の事前計算されたデータ構造を生成するための方法500の簡略図である。幾つかの実施形態において、方法500は、前処理プログラム(例えば、前処理プログラム152)の実行中に、1つ以上のプロセッサ(例えば、プロセッサ130)によって実行されてもよい。幾つかの実施形態において、1つ以上の事前計算されたデータ構造は、ベクトル表示データ構造(例えば、ベクトル表示データ構造262)、相関データ構造(例えば相関データ264)、又はその両方を含むことができる。
【0051】
プロセス510において、文書コーパス(例えば、コーパス210)がアクセスされる。幾つかの実施形態において、文書コーパスは、特定の主題、例えば生物医学トピックに関連するデジタル文書のセットに対応することができる。文書コーパスは、手動で及び/又は自動化技術を使用してコンパイルされ得る。幾つかの実施形態において、文書コーパスは、異種文書、例えば、異なるファイルフォーマットの文書(例えば、pdf、スキャン画像、ワードプロセッシングドキュメント、ウェブページなどである)を含み得る。文書コーパスにアクセスする前及び/又はアクセス中に、テキストをデジタル文書から抽出し、統一形式に変換することができる。文書コーパスには、例えばトークン化、レミング、品詞タグ付け、名前付きエンティティ認識などの様々な前処理技術を適用することができる。各トークン(例えば、ワード、文など)は、トークンの1つ以上の表示(例えば、プレーンテキスト、インデックス値など)、トークンに関連付けられたルート、コーパス内のトークンの位置、トークンに関連付けられた頻度データなど、トークンに関連付けられた様々なデータ及び/又はメタデータを含むデータ構造を使用して提供され得る。幾つかの実施形態において、文書コーパスの内容は、ネイティブファイルフォーマットで、プレーンテキストとして、符号化表示として、又は他の適切な表示としてアクセスされてもよく、様々な表示間で変換されてもよい。
【0052】
プロセス520において、文書コーパスに現われる複数の予測クエリタームを含むタームの第1のセット(例えば、予測セット240)が特定される。一般に、タームの第1のセットの目標は、後にクエリタームとして使用されるが事前には知られていないタームの目標セット(例えば、目標セット230)を一致させることである。タームの第1のセットは、リコール(例えば、第1のセットによってカバーされる目標セット内のタームの数又は割合)及び/又は精度(例えば、目標セット内のタームの中にある第1のセット内のタームの数又は割合)に関して測定することができる。幾つかの実施形態において、タームの第1のセットは、低い精度を犠牲にしても、高いリコールであるように選択される。例えば、タームの第1のセットは、文書コーパスに現われる各単語タームを含むことができる。幾つかの実施形態において、第1のセット内のタームの少なくとも一部は、頻度ベースの技術を使用して選択され得る。例えば、頻度ベースの技術を適用して、多語タームを選択することができる。幾つかの実施形態では、データベースベースの技術を使用して、第1のセット内のタームの少なくとも一部を選択することができる。例えば、以前の検索タームの検索ログ又はタームのキュレートされたデータベースに現われるタームが選択されてもよい。更に、第1のセット内のタームの少なくとも一部は、多語タームにおけるワード間の文法的関係に基づいて決定されてもよい。例えば、ニューラルネットワークモデル(例えば、ニューラルネットワークモデル170)を適用して、文書コーパス内の文の依存関係解析を生成することができる。続いて、ヒューリスティック規則を依存関係解析に適用してタームを選択することができる。次いで、ヒューリスティック規則の数、タイプ、及びパラメータを、タームの第1のセットにおける所望のレベルのリコールを達成するように構成することができる。
【0053】
プロセス530において、タームの第2のセット(例えば、事前計算されたセット250)が特定され、第2のセットは第2のセットのサブセットである。第1のセットは、一般に、高いリコールを達成するために選択されたタームの過度に包括的なセットを含むが、第2のセットは、一般に、著しく小さく、あまり包括的でない場合がある(例えば、低いリコール)。幾つかの実施形態において、第2のセットは、頻度ベースの技術を第1のセットに適用することによって選択することができ、技術は、選択されるタームの長さに基づいて変化し得る。例えば、第2のセットは、第1のセット内の各単語ターム(ユニグラム)、そのカウント又は頻度が第1の閾値を超える二語ターム(ビグラム)、そのカウント又は頻度が第2の閾値を超える三語ターム(トリグラム)などを含むことができる。異なる長さのタームに使用される閾値は、同じであっても異なっていてもよい。幾つかの実施形態において、第1のセットからタームの第2のセットを選択するために使用される技術及び/又はパラメータ(例えば、カウント閾値又は頻度閾値)は、タームの第2のセット内の所望数のタームを達成するように構成され得る。例えば、第2のセット内の所望数のタームは、第2のセット内のタームのベクトル表示を計算するために利用可能な計算リソースを反映することができる。
【0054】
プロセス540において、タームの第2のセットに関するベクトル表示のセットが計算される。幾つかの実施形態において、ベクトル表示のセットは、前述したword2vec、GloVe、及びfasttext技術などの、意味空間内のベクトル表示にタームをマッピングするための様々な技術を使用して計算することができる。これらの技術は、一般に、意味空間が単一のパスでそれぞれのタームごとにベクトル表示でポピュレートするされるように、バッチモードで動作することができる。セットに含まれるタームを調整する(例えば、セットに新たなタームを追加する)ことは、ベクトル表示のそれぞれを再計算することを伴い得る。ベクトル表示の次元は、設定可能であり得るが、異なるタームの意味における豊富な多様性を捕捉するために、一般に高次元(例えば、300次元以上)である。幾つかの実施形態において、ベクトル表示のセットは、ベクトル表示データ構造(例えば、ベクトル表示データ構造262及び/又は300)に記憶することができる。ベクトル表示データ構造は、効率的及び/又は安全な通信及び記憶を容易にするために、符号化、圧縮、暗号化などを更に行うことができる。
【0055】
プロセス550において、タームの第1のセットに関する相関データが相関データ構造(例えば、相関データ構造264及び/又は400)に記憶される。相関データは、プロセス540におけるベクトル表示のセットの計算中に生成される。幾つかの実施形態において、相関データは、ベクトル表示の計算中に生成される中間結果又は中間結果の集約に対応することができる。例えば、プロセス540においてベクトル表示のセットを計算するための幾つかの技術(バッチモードで動作するものを含む)は、中間ステップとして、文書コーパス内の他のタームに対する所定のタームの近接度などの相関を決定することができる。そのような近接データは、文書コーパス内のタームの各出現の周りにn語ウィンドウを設定してウィンドウ内に現われるタームの頻度又はカウントを特定することによって決定され得る。次いで、ウィンドウ内に現われるタームの頻度又はカウントを集約して相関データ構造に記憶することができる。幾つかの実施形態において、相関データ構造は、効率的及び/又は安全な通信及び記憶を容易にするために、符号化、圧縮、暗号化などされてもよい。
【0056】
プロセス560において、ベクトル表示データ構造、相関データ構造、又はその両方は、ランタイム動作中にクエリターム(例えば、クエリターム282)のベクトル表示を決定するランタイム埋め込みエンジン(例えば、埋め込み284)に与えられる。幾つかの実施形態において、クエリタームは、タームの第1のセット、タームの第2のセット、又は、タームの両方のセットの中にあってもよい。しかしながら、クエリタームは、タームの第1のセット又はタームの第2のセットのいずれにも含まれなくてもよい。以下、
図6を参照して、クエリタームのベクトル表示を決定するための例示的な技術について更に詳しく説明する。
【0057】
図6は、幾つかの実施形態に係るクエリタームのベクトル表示を決定するための方法600の簡略図である。幾つかの実施形態において、方法600は、ランタイムプログラム(例えば、ランタイムプログラム154)の実行中に1つ以上のプロセッサ(例えば、プロセッサ130)によって実行されてもよい。
図5と一致する幾つかの実施形態において、方法600は、方法500のプロセス560から継続することができる。これに関して、方法600は、ベクトル表示データ構造、相関データ構造、又はその両方を備えたランタイム埋め込みエンジン(例えば、ランタイム埋め込みエンジン284)を使用して実行することができる。
【0058】
プロセス610では、クエリターム(例えば、クエリターム282)が受信される。幾つかの実施形態では、クエリタームがユーザによって与えられてもよい。例えば、意味的検索アプリケーションでは、クエリタームがユーザによって与えられた検索タームに対応することができる。幾つかの実施形態において、クエリタームは、例えば、文書が文書コーパス(例えば、コーパス210)内の文書と比較されている或いはさもなければ自然言語処理及び/又は機械学習技術を使用して文書が解析されているアプリケーションにおいて、文書から抽出されたタームに対応することができる。幾つかの実施形態において、クエリタームは、プレーンテキスト、インデックス値、ハッシュ値、符号化表示、又は別の適切な表示として受信されてもよく、様々な表示間で変換されてもよい。
【0059】
プロセス620において、クエリタームがタームの第2のセット(例えば、事前計算されたセット250)に含まれるかどうかが決定される。例えば、タームの第2のセット及びそれらの対応する事前計算されたベクトル表示を含むベクトル表示データ構造(例えば、ベクトル表示データ構造262及び/又は300)に対して検索又は検索操作を実行することができる。
図2の標識化領域を参照すると、クエリタームがタームの第2のセットに含まれるかどうかを決定することは、クエリタームが領域Dにあるかどうかを決定することに対応することができる。クエリタームがタームの第2のセットに含まれる場合、方法600は、クエリタームのベクトル表示を検索するためのプロセス630に進むことができる。クエリタームがタームの第2のセットに含まれない場合、方法600は、クエリタームがタームの第1のセットに含まれるかどうかを決定するためのプロセス640に進むことができる。
【0060】
プロセス630において、クエリタームがタームの第2のセットに含まれるとの決定に応じて、クエリタームのベクトル表示がベクトル表示データ構造から検索される。第2のセットに含まれるタームに関して、ベクトル表示は、事前に計算されて、ベクトル表示データ構造に記憶されるため、検索を効率的に実行することができる。幾つかの実施形態では、検索中に、ベクトル表示データ構造(又はその一部)を復号、解凍、解読などすることができる。ベクトル表示が検索された後、方法600は、ベクトル表示を解析エンジンに与えるためのプロセス680に進むことができる。
【0061】
プロセス640において、クエリタームがタームの第2のセットに含まれないとの決定に応じて、クエリタームがタームの第1のセット(例えば、予測セット240)に含まれるかどうかが決定される。例えば、タームの第1のセット及びそれらの対応する相関データを含む相関データ構造(例えば、相関データ構造264及び/又は400)に対して検索又は検索操作を実行することができる。
図2の標識化領域を参照すると、クエリタームがタームの第1のセットに含まれるかどうかを決定することは、クエリタームが領域Bにあるかどうか或いはクエリタームが領域Aにあるかどうかを決定することに対応することができる。クエリタームがタームの第一1のセット(領域B)に含まれる場合、方法600は、相関データ構造からクエリタームに対応する相関データを検索するためのプロセス650に進むことができる。クエリタームがタームの第1のセットに含まれない場合(領域A)、方法600は、ランタイムにおいてクエリタームに対応する相関データを決定するためのプロセス660に進むことができる。
【0062】
プロセス650において、クエリタームがタームの第1のセットに含まれるとの決定に応じて、クエリタームに対応する相関データが相関データ構造から検索される。第1のセットに含まれるタームに関して、ベクトル表示は、事前に計算されて、相関データ構造に記憶されるため、検索を効率的に実行することができる。幾つかの実施形態では、検索中に、相関データ構造(又はその一部)を復号、解凍、解読などすることができる。相関データが検索された後、方法600は、相関データに基づいてクエリタームに対応するベクトル表示を決定するためのプロセス670に進むことができる。
【0063】
プロセス660において、クエリタームがタームの第1のセットに含まれないとの決定に応じて、クエリタームに対応する相関データがランタイムにおいて決定される。プロセス660で決定された相関データは、一般に、プロセス650で検索された相関データと同じである。しかしながら、第1のセットにないタームに関する相関データは事前に計算されて相関データ構造に記憶されないため、プロセス660で決定された相関は、ランタイムで文書コーパス(例えば、コーパス210)にアクセスして走査するべくランタイム相関データエンジン(例えば、ランタイム相関データエンジン290)を用いて決定されてもよい。例えば、相関データが文書コーパス内の他のタームに対する所定のタームの近接度を含む場合、ランタイムに相関データを決定することは、文書コーパスを走査して、文書コーパス内のタームの各出現の周りにn語ウィンドウを設定し、ウィンドウ内に現われるタームの頻度又はカウントを特定することを含むことができる。相関データが決定された後、方法600は、相関データに基づいてクエリタームに対応するベクトル表示を決定するためのプロセス670に進むことができる。
【0064】
プロセス670において、クエリタームに対応するベクトル表示は、クエリタームとタームの第2のセット内の1つ以上のタームと間の相関に基づいて決定され、相関は、プロセス650又は660において特定された相関データに基づいて決定される。幾つかの実施形態では、タームの第2のセット内のタームのベクトル表示を再計算することなく、クエリタームのベクトル表示を決定することができる。むしろ、タームの第2のセットに関する事前計算されたベクトル表示(例えば、ベクトル表示データ構造に記憶されたベクトル表示)を使用して、クエリタームのベクトル表示を推定することができる。このようにして、タームの第2のセットに関するベクトル表示が再計算される手法と比較して、プロセス670でクエリタームのベクトル表示を決定するために使用される計算リソースを大幅に少なくすることができる。関係に基づいてクエリタームに対応するベクトル表示を決定するための例示的な技術は、
図7を参照して以下で更に詳細に説明される。ベクトル表示が決定された後、方法600は、ベクトル表示を解析エンジンに与えるためのプロセス680に進むことができる。
【0065】
プロセス680において、クエリタームのベクトル表示は、そのベクトル表示に基づいてクエリタームを解析する解析エンジン(例えば、解析エンジン286)に与えられる。例えば、意味的検索アプリケーションでは、解析エンジンは、検索クエリと一致する文書コーパス内の文書を特定又はランク付けするニューラルネットワークモデル(例えば、ニューラルネットワークモデル160)を含むことができる。幾つかの実施形態において、解析エンジンは、ランタイムプログラムの一部として実装されてもよい。これに加えて又は代えて、解析エンジンは、その後に及び/又はクエリタームのベクトル表示を決定するために使用されるランタイムプログラムとは異なるコンピューティングリソースを使用して実行されてもよい。
【0066】
図7は、幾つかの実施形態に係る相関データに基づいてクエリタームのベクトル表示を決定するための方法700の簡略図である。幾つかの実施形態において、方法700は、ランタイムプログラム(例えば、ランタイムプログラム154)の実行中に1つ以上のプロセッサ(例えば、プロセッサ130)によって実行されてもよい。
図6と一致する幾つかの実施形態において、方法700は、方法600のプロセス670を実施するために使用され得る。
【0067】
プロセス710では、タームMultiAdj(t)のリストが生成され、タームMultiAdj(t)のリストは、文書コーパス(例えば、コーパス210)内のクエリターム(例えば、クエリターム282)に近接して現われる第2のセット(例えば、事前計算されたセット250)における各タームの1つ以上のコピーを含む。1つ以上のコピーの数は、第2のセット内の各タームが文書コーパス内のクエリタームに近接して現われる回数に基づいて決定される(例えば、タームは、クエリタームを中心とする同じn語サイズのウィンドウに現われる)。例えば、第2のセット内の所定のタームが文書コーパス内で3つの出来事でクエリタームに近接して現われる場合、タームMultiAdj(t)のリストはタームの3つのコピーを含むことができる。幾つかの実施形態において、タームMultiAdj(t)のリストは、相関データ構造264及び/又は400などの相関データ構造に記憶された相関データに基づいて生成することができる。例えば、相関データ構造は、タームがクエリタームに近接して現われる回数のカウントと共に、クエリタームに近接して現われるタームの第2のセット内の各タームを特定するクエリタームのエントリを含むことができる。
【0068】
次に、以下のプロセス720~740を、タームMultiAdj(t)のリスト内のそれぞれのタームsごとに繰り返すことができる。
【0069】
プロセス720において、タームsに対応するベクトル表示vsが決定される。幾つかの実施形態では、タームsがタームの第2のセット内にあるため、ベクトル表示vsはベクトル表示データ構造(例えば、ベクトル表示データ構造262及び/又は300)から検索され得る。タームsが、ベクトル表示が既に検索されているタームMultiAdj(t)のリスト内の別のタームのコピーである場合、ベクトル表示vsは、以前に検索されたベクトル表示に基づいて決定され得る。
【0070】
プロセス730では、分布U´に基づいてタームの第2のセットから複数のタームtiがサンプリングされる。幾つかの実施形態において、分布U´は、第2のセット内の各タームが文書コーパスに現われる頻度に基づいて取得されたタームごとのコーパス分布Uに基づいて決定されてもよい。幾つかの実施形態において、タームごとのコーパス分布U内の各確率は、0.75の累乗(又は別の適切な累乗)に上げられ、確率分布U´を取得するために正規化され得る。幾つかの実施形態では、複数のタームtiをランダム且つ独立してサンプリングすることができる。サンプリングされる複数のタームtiの数は、kiと指定されてもよく、デフォルト値(例えば、5)に設定されてもよく、経験的に調整されてもよい。変数kiのハイパーパラメータ調整を実行する1つの方法は、第2のセット(例えば、既知のベクトル表示が既に存在するターム)からのトレーニングデータサンプルとして使用することである。このトレーニングデータを使用して、プロセス720~750をkiの異なる値に対して繰り返して、第2のセットからのサンプルの事前計算されたベクトル表示に最もよく一致する動的に計算されたベクトル表示をもたらすkiの値を決定することができる。
【0071】
プロセス740では、複数のタームt
iのそれぞれに対応する複数のベクトル表示
が決定される。幾つかの実施形態では、タームt
iがタームの第2のセット内にあるため、対応するベクトル表示
をベクトル表示データ構造(例えば、ベクトル表示データ構造262及び/又は300)から検索することができる。
【0072】
プロセス750では、変数wtについて以下の式が解かれる。
【0073】
【0074】
ここで、w
tはクエリタームに対応するベクトル表示であり、σ()は活性化関数(例えば、シグモイド関数)である。幾つかの実施形態では、Adamオプティマイザなどの適切な最適化ツールを使用して、式をw
tについて解くことができる。幾つかの実施形態では、w
tをランダムに初期化し、反復的に更新して方程式を解くことができる。幾つかの実施形態では、式を解くときにベクトル表示v
s及び
が反復的に更新され得るバッチモードの手法とは対照的に、事前に計算されたベクトル表示v
s及び/又は
は、各反復で固定されて保持され得る。ベクトル表示w
tが決定された後、プロセス680に記載されるように、ベクトル表示w
tを、そのベクトル表示に基づいてクエリタームを解析する解析エンジン(例えば、解析エンジン286)に与えることができる。更に、ベクトル表示w
tの反復決定は、豊富度及び豊富度クラスに関連する追加の利点をもたらす。例えば、反復ベクトル表示w
tを使用して、どのベクトルがベクトル空間内のクエリタームのベクトル表示に近いか又はその近傍にあるかを解析することによって、クエリタームに関連する豊富タームを決定することができる。ベクトル空間内の近接度は、コーパスのみの検査に基づいて明らかではない2つのターム間の関連付けを明らかにすることができる。例えば、コーパスでは、タームAはタームBに近接して表示され、タームCはタームDに近接して表示されるが、タームAとDは互いに近接して表示されない。しかしながら、ベクトル空間において、タームA及びDのベクトル表示は、互いに近接していてもよく、又は互いに近傍にあってもよく、これは、タームAとDとの間の関連性を示唆する。ベクトル空間において互いに近いベクトル表示は、より強い関連性を示唆する。上記の例では、タームAはタームDにおいて豊富にされていると言われ、タームAは豊富度(すなわち、Dターム)を有すると言われる。豊富度クラスはまた、どの豊富度がクエリタームに関連付けられているかに基づいて決定することができ、したがって、幾つかの実施形態では、クエリタームの関連付けの更なる情報を提供する。幾つかの実施形態では、反復ベクトル表示w
tがどの1つ以上の豊富度クラスで豊富にされているかを決定することによって、ベクトル表示の次の反復は、それらの1つ以上の豊富度クラス内のタームのベクトルを使用して、クエリタームのベクトル表示をより迅速且つより正確に計算することができる。これは、クエリタームが、そのタームに関するより少ない情報が利用可能である新たに作られたたターム/名前付きエンティティである場合に特に有益であり得る(例えば、タームのクラス、他のタームとの関係など)。更に、反復ベクトル表示のw
t豊富度を使用して、後続の検索で新たに作られたタームを明示的に含まない他のクエリの結果を返すことができる。
【0075】
本明細書に記載の主題は、本明細書に開示された構造的手段及びその構造的均等物を含むデジタル電子回路、又はコンピュータソフトウェア、ファームウェア、又はハードウェア、又はそれらの組み合わせで実装することができる。本明細書に記載の主題は、データ処理装置(例えば、プログラム可能なプロセッサ、コンピュータ、又は複数のコンピュータ)によって実行される、又はその動作を制御するために、情報キャリア(例えば、機械可読記憶装置において、)に有形に具現化された、又は伝播信号に具現化された1つ以上のコンピュータプログラムなどの、1つ以上のコンピュータプログラムプロダクトとして実装することができる。コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとしても知られている)は、コンパイル言語又はインタプリタ言語を含む任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、又はモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適した他のユニットとして、を含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルに対応しているとは限らない。プログラムは、他のプログラム又はデータを保持するファイルの一部、問題のプログラム専用の単一のファイル、又は複数の協調ファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、又は1つのサイトの複数のコンピュータ上で実行されるように、又は複数のサイトにわたって分散され、通信ネットワークによって相互接続されるように展開することができる。
【0076】
本明細書に記載の主題の方法ステップを含む、本明細書に記載のプロセス及び論理フローは、入力データを操作し、出力を生成することによって、本明細書に記載の主題の機能を実行する1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行することができる。プロセス及び論理フローはまた、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)などの専用論理回路によって実行することができ、本明細書に記載の主題の装置は、専用論理回路として実装することができる。
【0077】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用及び専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ又はランダムアクセスメモリ又はその両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ、並びに命令及びデータを記憶するための1つ以上のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つ以上の大容量記憶装置、例えば、磁気、光磁気ディスク、又は光ディスクを含むか、それらからデータを受信するか、それらにデータを転送するか、それらの両方を行うように動作可能に結合される。コンピュータプログラム命令及びデータを具現化するのに適した情報キャリアは、例として半導体メモリデバイス(例えば、EPROM、EEPROM、及びフラッシュ・メモリ・デバイス)を含む、あらゆる形態の不揮発性メモリ、磁気ディスク(例えば、内蔵ハードディスク又はリムーバブルディスク)、光磁気ディスク、及び、光ディスク(例えば、CD及びDVDディスク)を含む。プロセッサ及びメモリは、専用論理回路によって補完され得るか、又は専用論理回路に組み込まれ得る。
【0078】
ユーザとの対話を提供するために、本明細書に記載の主題は、情報をユーザに表示するためのディスプレイ装置、例えばCRT(陰極線管)又はLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を提供することができるキーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)とすることができ、ユーザからの入力は、音響、音声、又は触覚入力を含む任意の形態で受信することができる。
【0079】
本明細書に記載の主題は、バックエンド構成要素(例えば、データサーバ)、ミドルウェア構成要素(例えば、アプリケーションサーバ)、もしくはフロントエンド構成要素(例えば、ユーザが本明細書に記載の主題の実装と対話することができるグラフィカルユーザインターフェース又はウェブブラウザを有するクライアントコンピュータ)、又はそのようなバックエンド、ミドルウェア、及びフロントエンド構成要素の任意の組み合わせを含むコンピューティングシステムに実装することができる。システムの構成要素は、任意の形態又は媒体のデジタルデータ通信、例えば通信ネットワークによって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)及びワイドエリアネットワーク(「WAN」)、例えばインターネットが含まれる。
【0080】
本発明は、その適用において、以下の説明に記載される又は図面に示される構成の詳細及び構成要素の配置に限定されるべきでない。開示された主題は、他の実施形態が可能であり、様々な方法で実施及び実行することができる。最後に、本明細書中で使用される表示及びタームは、説明目的のためのものであり、本明細書が本発明を特に限定しない限り、限定と見なされるべきではないことが理解されるべきである。
【0081】
したがって、当業者であれば分かるように、本開示の基礎となる概念は、開示された主題の幾つかの目的を実行するための他の構造、方法、及びシステムの設計の基礎として容易に利用され得る。したがって、特許請求の範囲は、開示された主題の趣旨及び範囲から逸脱しない限り、そのような同等の構成を含むと見なされることが重要である。
【0082】
開示された主題を前述の例示的な実施形態で説明及び図示してきたが、本開示は例としてのみなされており、開示された主題の趣旨及び範囲から逸脱することなく、開示された主題の実装の詳細における多くの変更がなされ得ることが理解され、これは以下の特許請求の範囲によってのみ限定される。
【国際調査報告】