(57)【特許請求の範囲】
【請求項１】
多数のデータ・タイプを含むリレーショナル・データベースを適合させるためのコンピュータ実施方法であって、
前記リレーショナル・データベース内の非テキスト・トークンをテキスト形式に変換することと、
前記リレーショナル・データベース内のトークンの関係に基づいてテキストを生成することと、
事前トレーニングされた単語ベクトルのセットを取得することと、
前記リレーショナル・データベースと外部データベースとの両方に共通のトークンのために、事前トレーニングされた単語ベクトルの前記セットを初期化することと、
構造化照会言語（ＳＱＬ）クエリとして表現されるコグニティブ・インテリジェンス・クエリを作成するために事前トレーニングされたベクトルの前記セットを使用することと
を含む、コンピュータ実施方法。
【請求項２】
事前トレーニングされた単語ベクトルの前記セットを使用して、前記コグニティブ・インテリジェンス・クエリを、前記リレーショナル・データベースに適用することをさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記リレーショナル・データベースと前記外部データベースとの両方に共通のトークンのための事前トレーニングされた単語ベクトルの前記セットを初期化しながら、前記リレーショナル・データベースのコンテンツについてトレーニングすることをさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項４】
事前トレーニングされた単語ベクトルの前記セットは不変である、請求項１に記載のコンピュータ実施方法。
【請求項５】
事前トレーニングされた単語ベクトルの前記セットは、パラメータを介して制御される更新によって可変である、請求項１に記載のコンピュータ実施方法。
【請求項６】
複数の外部データベースからのテキストに基づいて、予備単語ベクトルの複数のセットを取得して、事前トレーニングされた単語ベクトルの前記セットを形成することと、
前記リレーショナル・データベースと、対応する外部データベースとの両方に共通のトークンのための予備単語ベクトルの各セットを初期化しながら、前記リレーショナル・データベースのコンテンツについてトレーニングすることと
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項７】
予備単語ベクトルの各セットを使用して生成されたクエリ結果に、重み付け値を適用することをさらに含む、請求項６に記載のコンピュータ実施方法。
【請求項８】
予備単語ベクトルの各セットを使用して生成されたクエリ結果のための前記重み付け値は、互いに異なる、請求項７に記載のコンピュータ実施方法。
【請求項９】
前記重み付け値は、予備単語ベクトルの対応するセットの古さにしたがって変動する、請求項８に記載のコンピュータ実施方法。
【請求項１０】
前記テキスト内のトークンに対して単一の単語埋め込みモデルを適用することによって、前記テキストに基づいて単語ベクトルのセットを生成することと、
単語ベクトルの前記セットを、事前トレーニングされた単語ベクトルの前記セットとマージして、単語ベクトルの包括的なセットを形成することと、
単語ベクトルの前記包括的なセットを使用して、前記コグニティブ・インテリジェンス・クエリを、前記リレーショナル・データベースに適用することと
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項１１】
コグニティブ・インテリジェンス・システムであって、
コンピュータ命令を記憶したメモリと、
前記メモリと動作可能に結合されプロセッサと
を備え、前記プロセッサは、請求項１ないし１０のいずれかに記載の方法を実行する、
コグニティブ・インテリジェンス・システム。
【請求項１２】
コンピュータ・プログラムであって、前記プログラムがコンピュータで実行されたとき、請求項１ないし１０のいずれかに記載の方法を実行するように適合されたプログラムコード手段を備えたコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に検索クエリ（search query）に関し、より詳細には、データベースの検索クエリで使用するために、多数のデータ・コーパスから単語ベクトル（word vector）を作成することに関する。
【背景技術】
【０００２】
大量の情報が、リレーショナル・データベース内に潜在的に残っている。たとえば、数値、画像、日付などの異なるタイプのデータを含むデータベース列は、列間（inter-column）および列内（intra-column）の関係の形で重要な潜在情報を有する。さらに、リレーショナル・データ・モデルでは、多くの列間または列内の関係が無視される。さらに、従来の構造化照会言語（ＳＱＬ）クエリは、基礎となる関係の全体像を欠いているため、データベース関係によってまとめて生成された意味関係（semantic relationship）を抽出して活用することはできない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、多数のデータ・タイプを含むリレーショナル・データベースを適合させるためのコグニティブ・インテリジェンス・システム等を提供することを目的とする。
【課題を解決するための手段】
【０００４】
様々な実施形態において、多数のデータ・タイプを含むリレーショナル・データベースを適合させるためのコグニティブ・インテリジェンス・システム（cognitive intelligence system）、コンピュータ・プログラム製品、およびコンピュータ実施方法が開示される。本発明のコンピュータ実施方法の実施形態は、リレーショナル・データベース内の非テキスト・トークンをテキスト形式に変換することと、リレーショナル・データベース内のトークンの関係に基づいてテキストを生成することと、テキストに基づいて事前トレーニングされた単語ベクトルのセットを取得することと、リレーショナル・データベースと外部データベースとの両方に共通のトークンのために事前トレーニングされた単語ベクトルのセットを初期化することと、構造化照会言語（ＳＱＬ）クエリとして表現されるコグニティブ・インテリジェンス・クエリを作成するために事前トレーニングされたベクトルのセットを使用することとを含む。
【０００５】
添付の図面中、同様の参照番号は、別々の図を通して同一または機能的に類似の要素を指し、以下の詳細な説明とともに本明細書に組み込まれてその一部を形成し、様々な実施形態をさらに例示し、本発明にしたがう様々な原理および利点すべてを説明するために役立つ。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施形態による動作環境の一例を例示するブロック図である。
【図２】本発明の実施形態による例示的なプロセスを図示する図である。
【図３】本発明の実施形態による図２のプロセスの例示的状態を図示する図である。
【図４】本発明の実施形態による、第１のリレーショナル・ビューを使用した例示的な顧客分析クエリ（customer analytics query）を図示する図である。
【図５】本発明の実施形態による、第２のリレーショナル・ビューを使用した別の例示的な顧客分析クエリを図示する図である。
【図６】本発明の一実施形態による、ＳＱＬコグニティブ・インテリジェンス（ＣＩ）クエリの例を図示する図である。
【図７】本発明の実施形態による例示的なＣＩリレーショナル・システムを図示する図である。
【発明を実施するための形態】
【０００７】
本発明のいくつかの実施形態は、コグニティブ学習を使用してリレーショナル・データベース内のクエリに対する応答を容易にする。たとえば、いくつかのコンピュータ実施方法の実施形態は、リレーショナル・データベースが、標準的なＳＱＬクエリおよび新たなクラスのＳＱＬベースのクエリであるコグニティブ・インテリジェンス（ＣＩ）クエリを使用して、意味論的文脈上の類似性を捉え、利用することを可能にする。
【０００８】
概要として、特定の会社の従業員についての情報を含むデータベースのような所与のリレーショナル・データベースについて、典型的なＳＱＬクエリは、クエリとの一致がある場合にのみ結果を返す。たとえば、クエリが、給与、役職などの従業員Ａの情報が必要な場合は、従業員Ａがいる場合にのみ回答が返される。しかし、本発明によれば、ＣＩクエリを使用して、データベースに埋め込まれた各単語の関係を調べることによって、回答が返され得る。従来のＳＱＬの目的では、名前、年齢、性別、役職などの属性は独立しており、この情報はクエリによって利用されない。
【０００９】
本発明のいくつかの実施形態は、潜在情報を抽出するために、自然言語処理（ＮＬＰ）からの教師なし機械学習技術である単語埋め込みを使用する。開示された技術は、多次元オンライン分析処理（ＭＯＬＡＰ）、Ｊａｖａ（Ｒ）Ｓｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）、拡張マークアップ言語（ＸＭＬ）、カンマ区切り値（ＣＳＶ）ファイル、スプレッド・シートなどの他のデータ・モデルにも適用可能であり得る。
【００１０】
単語埋め込みでは、ｄ次元ベクトル空間が固定される。テキスト・コーパス（たとえば、文書の集合）内の各単語は、実数の次元ｄベクトルに関連付けられている。ベクトルへの単語の割り当ては、ベクトルが、単語の意味を符号化できるようにする必要がある。理想的には、２つの単語が密接に関連している（すなわち、類似の意味を有する）場合、それらのベクトルは、同じ方向を向くべきである。言い換えれば、それらのベクトル間の余弦距離（cosine distance）は比較的大きくなければならない。密接に関連した単語とは、テキスト・コーパス内で頻繁にともに現れる（appear together）単語を意味する。ともに現れるとは、近接近を意味する。逆に、単語が無関係の場合、それらのベクトル間の余弦距離は比較的小さくあるべきである。近さの計算のいくつかの改良点は、近さを重み付ける、または文法規則を考慮する、あるいはその両方である。
【００１１】
過去数十年にわたって、ｗｏｒｄ２ｖｅｃまたはＧＩｏＶｅなどの自然言語での単語のベクトル表現を計算するためのいくつかの方法が導入されてきた。最近では、ｗｏｒｄ２ｖｅｃが、生成されたベクトルが、単語の構文上の（syntactic）性質と意味上の（semantic）性質を捉えたものとして注目を集めている。これらのベクトル表現は、単語の意味的な近さと同様に、単語および構文（たとえば、現在−過去、単数−複数）の近さを捉えているように思われる。ｗｏｒｄ２ｖｅｃで生成されたベクトルの１つの用途は、ベクトル代数計算を使って、王は男性のためのように、女性のためのものは？（答え：女王）のような類推問題を解決することにあった。
【００１２】
ベクトルは、データベース自体について学習することによって、または外部テキストを使用することによって、またはベクトル・ソースを使用することによって生成され得る。リレーショナル・データベースのコンテキストでは、ベクトルを生成する１つの手法は、データベースから生成されたトークン・シーケンスに単語埋め込み方法を適用することであり、各行は文に対応し、関係は文書に対応する。したがって、ベクトルは、データの二重表示、すなわち、リレーショナルおよび（意味のある）テキストを可能にする。次いで、単語埋め込みは、単語の関連付けおよび共起に関して潜在的意味情報を抽出し、それを単語ベクトルに符号化することができる。したがって、ベクトルは、行（文）内の最初の属性間および属性内の関係を捉えてから、文書全体でこれらの関係を集約して、集合的な意味関係を計算する。次いで、符号化された意味情報は、データベースに問い合わせる際に使用され得る。本発明のいくつかの実施形態は、単語埋め込み技術および機能を、従来のデータベース・システムに統合する。
【００１３】
図１は、本発明の実施形態による動作環境１００の一例を例示するブロック図である。動作環境１００は、本発明の実施形態にしたがって、コグニティブ・インテリジェンス・クエリとともに使用するために多数のデータ・タイプを含むリレーショナル・データベース１０６を適応させるコグニティブ・データ管理システムとして動作する。図示されるように、構造化照会システム内のコグニティブ・インテリジェンス・クエリ１０２は、機械学習モデル１０４を使用して、リレーショナル・テーブルなどの中の構造化データ・ソース１０６に関する構造化照会言語（ＳＱＬ）クエリに回答する。クエリに対する応答は、構造化結果１０８として返され、これもまたリレーショナル・テーブルの形式を採ることができる。機械学習モデル１０４は、照会されているソース、すなわち構造化データ・ソース１０６から、ＷＩＫＩＰＥＤＩＡ（ＴＭ）などの外部データ・ソース１１０から事前トレーニングされたものから、または１０６のテキスト・コーパスおよび外部ソースからのテキストから構築され得る。
【００１４】
単語ベクトルによって可能にされるコグニティブ能力を用いてシステム１００を強化するための例示的なステップが、図２を参照して説明される。これは、図３に図示されるプロセスの例示的な状態を参照してさらに説明されるであろう。
【００１５】
図２は、本発明の実施形態による例示的なプロセスを図示する。以下により詳細に説明される図３は、図２のプロセスの例示的状態を図示する。
【００１６】
以下の例への導入および概要（のみ）として、リレーショナル・データベースのフィールドは、たとえば会社の従業員に関する情報で埋められていると仮定する（たとえば、図３、３０２参照）。そして、各フィールドのトークン、つまりコンテンツは、データベースの行と列の配置によって関連付けられる。トークンは、文字列、文字列のセットまたはシーケンス、数値、画像または画像のセット（たとえば、ビデオ）、時系列、または日付、緯度および経度などの他のＳＱＬタイプであり得る。さらに（この例のみを目的として）、非見出し行は、特定の従業員に適用可能な情報を含み、各列は、各従業員について同じタイプの情報を含む（たとえば、図３、３０２、従業員番号（ｅｍｐＮｕｍ）、名（ｆｉｒｓｔＮａｍｅ）、姓（ｌａｓｔＮａｍｅ）など参照）と仮定される。
【００１７】
図２に戻ると、ステップ２０２において、データベース関係から、意味のあるデータが生成／抽出される。リレーショナル・データベース内の関連情報は、従来のＳｅｌｅｃｔ、Ｐｒｏｊｅｃｔ、およびＪｏｉｎ演算子を使用して生成された、基礎となる関係のビューによって決定され得る。データベース・ビューを使用すると、データベース・トークンから意味のあるテキストを生成できる。
【００１８】
どの行または列をテキスト化する（すなわち、一連のトークンにする）かは、標準的なリレーショナル演算を使用してビューを定義することによって制御され得る。単語（すなわち、トークン）の意味は、そのネイバーによって推測され得る。ネイバーの文脈は、単語の全体的な意味に寄与する。データベース・トークンの意味は、その行内の他のトークンから決定でき、行の列は、そのビューのスキーマによって決定できる。
【００１９】
たとえば、意味のあるデータを抽出し、マッピング、たとえばリレーショナル行を文に変換することによってモデルを作成することができる（図３、３０２、３０４参照）。データベース内のすべてのトークン発生が、モデルの構築に使用される訳ではないように、他のビューを定義することもできる。意味のあるテキスト・モデルの目的の１つは、列を跨ったトークン（単語、項目）間及び列内のトークン間の関係を捉えることである。
【００２０】
ステップ２０４において、テキスト内のすべての単語（トークン、項目）のための単語ベクトルを生成するために機械学習が使用される。たとえば、アルゴリズムは、意味のあるテキスト内のすべての単語について（オプションで、見出し語を除いて）単語ベクトル表現を計算することができる。いくつかの実施形態では、外部情報源（またはコーパス）もモデル・トレーニングに使用することができる（たとえば、図３、３０６を参照）。結果として得られる単語の低次元（たとえば、次元＝２００）の意味表現、すなわち「単語ベクトル」のセットは、それぞれ１つの単語（トークン）を表すことができる。この例では、「単語」が「トークン」の同義語として使用されているが、すべてのトークンが自然言語の意味で有効な単語であるとは限らない。トークンは、文字列、文字列のセットまたはシーケンス、数値、画像または画像のセット（たとえば、ビデオ）、時系列、または日付、緯度および経度などの他のＳＱＬタイプであり得る。単語ベクトルは、リレーショナル・テーブルまたはデータベースから潜在的な属性間／属性内関係を捉え、マルチ・モーダル・リレーショナル・データの統一された表現を提供する。２つの単語は、それらの単語ベクトルが距離メトリック（たとえば、余弦距離）に基づいてベクトル空間内で接近している場合、意味的に類似している（すなわち、類似の意味を有する）と見なすことができる。
【００２１】
ステップ２０６において、単語ベクトルは、クエリで使用するために記憶される。いくつかの実施形態では、単語ベクトルは、意味のあるテキスト内の各トークンのためのベクトルを含む。ステップ２０８において、他のテキスト・ソースから生成されたベクトル（たとえば、ステップ２０４および図３、３０６を参照）は、オプションで、単独でまたはデータベース・テキスタイル化テキストとともに使用され得る。
【００２２】
ステップ２１０において、コグニティブ・インテリジェンス（ＣＩ）クエリが、データベース関係結果を生成するために使用される。いくつかの実施形態において、ＣＩクエリは、標準的なＳＱＬを使用して表現され得る。いくつかの実施形態は、ユーザ定義関数（ＵＤＦ）として、ベクトル空間内の単語ベクトルを使用して、ＣＩクエリを可能にする。ステップ２１０が完了すると、プロセスは終了する。
【００２３】
図３は、本発明の実施形態にしたがって、図２のプロセスの例示的状態を図示する。図示するように、リレーショナル・データベース３０２内のトークンは、意味のあるテキスト文３０４に変換される。たとえば、リレーショナル・データベース３０２の最初の（非見出し）行は、「ｅｍｐＮｕｍ  １１９  名  ジョン  姓  スミス  給与  ９５  所属  マルチメディア  職務  「マネージャ、マルチメディア、エンタテイメント」  評価  「対人スキル良好、時間にルーズ、改善必要」」に変換することができる。意味のあるテキスト文３０４は、任意の、オプションの外部コーパス３０６とともに、機械学習２０４を使用して単語ベクトル３０８に変換される。ベクトル＿ジョン（０，・・・，１９９）、ベクトル＿マルチメディア（０，・・・，１９９）などの結果として得られる単語ベクトル３０８は、リレーショナル・データベース３１０を対象とした拡張ＳＱＬクエリ２１０によって使用され、従来のＳＱＬクエリを使用して、以前は使用できなかった拡張結果を提供する。いくつかの実施形態では、拡張ＳＱＬクエリ２１０は、たとえば外部データベースからの事前計算されたベクトル２０８の１つまたは複数の集合を反映することができる。
【００２４】
図４は、本発明の実施形態による、第１のリレーショナル・ビューを使用した例示的な顧客分析クエリを示す。図５は、本発明の実施形態による、第２のリレーショナル・ビューを使用した別の例示的な顧客分析クエリを示す。
【００２５】
図４および図５を参照すると、リレーショナル・データベース４０２が小売店での顧客の購入に関する情報を提供する例が提供されている。図４において、ビューは、データベース４０２内のすべての非見出しトークン発生を含むテキストを生成する。したがって、ベクトルはトークンごとに作成される。類似の顧客を識別するためのクエリは、各顧客（すなわち、ｃｕｓｔＡ，ｃｕｓｔＢ，ｃｕｓｔＣ，ｃｕｓｔＤ）の単語ベクトルを調べる。そのため、ｃｕｓｔＤの場合、関連行（タプル）４０４は「ｃｕｓｔＤ  ９／１６  ウォルマート  ニューヨーク  文房具  「クレヨン、ホルダ」  ２５」となる。ベクトル空間では、両方ともクレヨンを含む文房具を購入したため、ｃｕｓｔＤの単語ベクトルは、ｃｕｓｔＢの単語ベクトルにより類似している。同様に、ｃｕｓｔＡの単語ベクトルは、両方ともバナナを含む生鮮食品（fresh produce）を購入しているため、ｃｕｓｔＣの単語ベクトルにより類似している。
【００２６】
図５では、モデルが「ｃｕｓｔＩＤ、日付、住所、および金額」に、トークンのみを使用するようにビューが変更されている。ｃｕｓｔＤの行（タプル）５０２が、「ｃｕｓｔＤ  ９／１６  ニューヨーク  ２５」に変更された。単語ベクトルは、このビューからテキスト化されたテキスト上に生成される。この場合、類似の顧客を識別するためのクエリは、どちらもニューヨークで９／１６に同じ金額で商品を購入しているので、ｃｕｓｔＡは、ｃｕｓｔＤにより類似していると判定するだろう。同様に、どちらの商品も１０／１６に同じ金額で購入されたため、ｃｕｓｔＢは、ｃｕｓｔＣにより類似している。したがって、使用されるビューまたはモデルによっては、同じクエリのために異なる結果が返される可能性があることに注意されたい。
【００２７】
多数のデータ・タイプのためのサポート
テキストおよび基本的な数値に加えて、ＣＩクエリは、ＳＱＬタイプ（たとえば、日付）、および、画像、ビデオ、時系列、緯度および経度、化学構造などのような他の非ＳＱＬタイプのためにサポートされる。
【００２８】
実際のクエリ実行戦略（actual query execution strategy）については、２つのアプローチ、単一モデルとアンサンブル（ensemble）とがある。単一モデルアプローチでは、多数のデータ・タイプが、テキストに変換され、単一の単語埋め込みモデルが、すべてのトークンから生成される。アンサンブル・アプローチの場合、異なるデータ・タイプ（たとえば、緯度／経度、画像または時系列）のために、２つ以上の埋め込みモデルまたはクラスタリング戦略（後述）が使用される。デフォルトのクラスタリング・アプローチまたはユーザ提供の類似性関数を使用することができる。結果は、モデルまたはクラスタリング・グループごとに計算され、最終結果は、多数の結果セットをマージして計算される。最終結果は、各クラスタリング・グループの結果を表す行セット間の共通部分を発見することによってマージされる。デフォルトのクラスタリング・アプローチは、Ｋ−Ｍｅａｎｓなどの従来のクラスタリング・アルゴリズムを使用できる。あるいは、緯度および経度フィールドのために空間的類似性関数を使用するなど、特別なタイプのための特殊化された類似性関数を使用してもよい。
【００２９】
数値のためのサポート
数値トークンに意味のあるテキストを提供するための３つのアプローチがある。まず、数値は単純に「ｃｏｌｕｍｎ  ｈｅａｄｉｎｇ＿ｎｕｍｂｅｒ」形式の型付き文字列に変換される。たとえば、年次日付の列では、２０１６は「Ｙｅａｒ＿２０１６」となる。この時点から、プロセスは、リレーショナル・データベース情報を、意味のあるテキストに変換するために上述のように継続する。
【００３０】
第２の手法は、ユーザ制御分類を使用する。たとえば、数値は、低、中、高などの範囲に変換される。ユーザは、範囲内の値を定義する。列内の数値が「ｃｏｌｕｍｎ  ｈｅａｄｉｎｇ＿ｒａｎｇｅ」形式の文字列になるような範囲を使用して新たなトークンが作成される。したがって、食品中のチョコレートの割合に関する数値を有するリレーショナル・データベースでは、７５％が「ｃｈｏｃｏｌａｔｅ＿ｈｉｇｈ」になり、１８％が「ｃｈｏｃｏｌａｔｅ＿ｌｏｗ」になる。
【００３１】
第３のアプローチは、ユーザ制御クラスタリングを使用する。データをクラスタ化するために、任意の従来のクラスタ化アルゴリズム（たとえば、Ｋ−ｍｅａｎｓ、階層的クラスタ化など）を使用することができる。リレーショナル・データベースの列における各数値は、その番号を含むクラスタのＩＤに置き換えられる。たとえば、売上金額を表す数値を有するリレーショナル・データベースでは、実際の金額は、クラスタＩＤに変換され、「ｓａｌｅｓ＿ｃｌｕｓｔｅｒＩＤ」として表される。したがって、５０００である実際のトークン値は、「ｓａｌｅｓ＿２７２」として表され、ここで、２７２は、５０００を含むクラスタのクラスタＩＤである。
【００３２】
画像のためのサポート
画像をテキストに変換するために４つの異なる手法、画像タグ付け（imagetagging）、画像分類、バイナリ比較、またはユーザ指定の類似度関数を使用することができる。各アプローチは、単一モデル、または、アプローチのうちの１つまたは複数が、組み合わせて使用されるアンサンブル・クエリ実行戦略の両方で使用され得る。ＢＡＢＹＴＡＬＫ（ＴＭ）またはＡＬＣＨＥＭＹ  ＴＡＧＧＥＲ（ＴＭ）などの画像タグ付け装置を使用して、画像がタグに変換され得る。これらのテキスト・タグは、埋め込みモデルを生成するために使用され得る。あるいは、画像をクラスタに分類するために、ニューラル・ネットワーク分類モデルが使用され得る。画像は、それらの対応するクラスタ識別子と置き換えられ、埋め込みモデルは、クラスタ情報を使用して構築される。第３のアプローチは単に、バイナリ画像ファイルの類似性を比較することである。この場合、各バイナリ画像についてビットごとの比較が行われ、その結果が、バイナリ類似度尺度を使用して比較される。最後に、ユーザ指定の類似度関数を使用して、画像が、テキストへ変換され得る。ＢＡＢＹＴＡＬＫ（ＴＭ）またはＡＬＣＨＥＭＹ  ＴＡＧＧＥＲ（ＴＭ）などの既存のアプローチが、画像をテキストに変換するために使用され得る。画像がテキストに変換されると、ＣＩクエリを開発するために、上記の方法が使用され得る。
【００３３】
多数のデータ・コーパスからの単語ベクトルの作成
外部で生成された単語ベクトルは、概説する少なくとも４つの手法で利用され得る（当業者には他の可能性も明らかになるであろう）。（１）グーグル・ニュースの単語ベクトル集合によって生成されるもののような外部の事前トレーニングされたベクトルは、新たなモデルを開発する必要なしに、リレーショナル・データベース・コンテンツ上で使用され得る。（２）あるいは、データベース・コンテンツは、外部ソース・ベクトルに共通のトークンのためのベクトルを初期化しながらトレーニングされる。すなわち、共通トークンは、ソース・データベースと外部データベースとの両方に現れる。一般的な単語ベクトルは、学習率（learning rate）または最大変化などのパラメータを介して制御される更新によって不変または可変であり得る。（３）さらに別のオプションは以下の通りである。それぞれが次元Ｄ（ｉ）、ｉ＝１，・・・，ｋを有するｋ個の異なる外部ソースが与えられると、次元Ｄ＝Ｄ（１）＋・・・＋Ｄ（ｋ）のベクトルが合成される。最初のＤ（１）エントリは、最初のソースのＤ（１）エントリから初期化され、次のＤ（２）エントリは、２番目のソースのＤ（２）エントリから初期化されるという具合に、次に来る各ｊ番目の部分は、対応するｊ番目のソースで初期化される。個々のソースのためのエントリは重み付けされることができ、たとえば、より古い情報は、より信頼できると見なされ得るので、より高い重み付け値が、より古い情報に与えられ、より低い重み付け値が、より新しい情報に与えられ得る。（４）最後に、第３の手法（３）によって生成されたベクトルを使用して、第２の手法（２）が適用され得る。
【００３４】
さらに、データベース内の個々の列、たとえばｌａｓｔ＿ｎａｍｅを暗号化することができる。暗号化されている一般的な単語は、別の単語としても扱われるため、匿名化と同時により多くの情報が提供される。
【００３５】
類似性ＵＤＦ
２組のベクトルを比較するとき、スカラ類似性値を出力するために、類似性ＵＤＦが使用され得る。任意のベクトル対間の類似度は、余弦アルゴリズムと最大ノルム・アルゴリズムを使用して決定されるが、最大ノルムは、個々のベクトル・エントリの寄与に対する感度が高い。結果をランク付けするために、正確な距離が必要とされ得る。一対のベクトル間の距離と、多数の平均距離値とを計算して、全体の類似度値を決定する。
【００３６】
全体的な類似度の計算中に、単語の相対的な順序が保存されているか無視されているので、順序の認識が問題となる可能性がある。場合によっては、順序を意識した類似性が重要である。加えて、ｎ個のベクトルのペアワイズ距離計算のための正確なＯ（ｎ＾２）計算は、計算上高価である。実際には、サンプル実装は良好に機能する。ただし、ＧＰＵまたはＳＩＭＤ加速は、大規模なベクトル・セットのために必要であり得る。大規模なデータ・セットの場合は、ＬＳＨと正確な計算との組合せが必要である。
【００３７】
ＣＩクエリの例：世界食料事実データベース
世界食料事実データベース（ＷＦＦＤ）は、Ｋａｇｇｌｅからのオープン・ソース・データ・セットである。それは、様々な国からの食品に関する情報を記憶している。ＷＦＦＤはテキスト・フィールドと数値フィールドとの両方が豊富である。約５０ＭＢのテキストが含まれ、６５，０００行および１５０列を超える。列は、成分、カテゴリ、栄養素などの情報を含んでいる。
【００３８】
ＣＩクエリ用のＷＦＦＤを準備するために、栄養素が、グループ（ビタミン、アミノ酸など）に区分されている。数値は、Ｋ−ｍｅａｎｓを使用してクラスタにグループ化され、ｗｏｒｄ２Ｖｅｃモデルは、２００次元を使用してトレーニングされている。類似性クエリは、成分（テキスト）、栄養素（テキスト）、および国（テキスト）のために実行された。単一モデルとアンサンブル・アプローチとの両方が使用された。ＷＦＦＤ内の数値フィールドは、表１に示されている。
【００３９】
【表１】
0006902106.tif 000002
【００４０】
ＷＦＦＤに問合せするためのＳＱＬ  ＣＩクエリの例が、図６に示されている。ＳＱＬは、同様の成分と同様の栄養素を有する同様の国にある項目を要求する。従来のリレーショナル演算６０２が、国と成分のクエリのための値の一致および比較のために使用される一方、新たなコグニティブＵＤＦ  ６０４（すなわち、ｐｒｏｘｉｍｉｔｙＡｖｇＭｅｒｇｅｄＤａｔａ）が栄養素間の類似性を発見するために使用されることに留意されたい。さらに、値が特定のしきい値を超える場合はｐｒｏｘｉｍｉｔｙＡｖｇＭｅｒｇｅｄＤａｔａ  ＵＤＦを使用して類似性が検出され、特定のしきい値を下回る場合は非類似性が検出されることに留意されたい。
【００４１】
類似の国々において類似の成分および類似の栄養素を有する製品の結果を表２に示す。たとえば、ケロッグのＳｐｅｃｉａｌ  Ｋ  ｏｒｉｇｉｎａｌは、米国のＭａｒｋｅｔ  ＰａｎｔｒｙのＣｒｉｓｐｙ  Ｆｌａｋｅｓ  ｗｉｔｈ  Ｒｅｄ  Ｂｅｒｒｉｅｓ  Ｃｅｒｅａｌに類似している。
【００４２】
【表２】
0006902106.tif 000003
【００４３】
異なる国々において類似の成分および類似の栄養素を有する製品の結果が表３に示される。たとえば、米国のＮｕｔｅｌｌａ−Ｆｅｒｒｅｒｏは、仏国のＮｕｔｅｌｌａ−７５０ｇに類似している。
【００４４】
【表３】
0006902106.tif 000004
【００４５】
コグニティブ・インテリジェンス・クエリの使用ケース
ＣＩクエリは、購買パターン（たとえば、購入項目、頻度、費やされた金額など）に基づいて類似の顧客を発見するための顧客分析など、いくつかの小売ケースにおいて使用され得る。加えて、ＣＩクエリは、所与の商品と似ているが、成分、価格、栄養価などの機能が異なる代替商品を提案するための機能ベースの代替商品のために使用され得、従来のマーケット・バスケットの推奨よりも、よりインテリジェントな推奨が可能となる。ＣＩクエリはまた、現在販売されている関連項目または類似項目の売上げに基づいて、導入されている新たな項目の売上げを予測するために外部データを使用する高度な売上予測に使用され得る。ＣＩクエリはまた、たとえばソーシャル・メディア、リコール通知などからの入力を使用して、外部データを使用して過去の売上データを分析するためにも使用され得る。意味論的関連付けは、「パン：ヌテッラ：：チップ：？」、回答は、ある地域では「サルサ」、別の地域では「グアカモーレ」のような関係を決定するために、類推クエリによって実行され得る。
【００４６】
健康管理分野でも、ＣＩクエリは、様々な用途において使用され得る。たとえば、ＣＩクエリは、連邦薬物局（ＦＤＡ）ウェブサイトからの処方ラベル情報（たとえば、成分、副作用など）を使用して薬物−薬物相互作用の判定に役立ち、有害な薬物反応を同定することができる。患者類似性分析も、マルチ・モーダルＣＩクエリを使用して判定され得る。たとえば、潜在的に類似の投薬量を有する異なるブランド名（たとえば、ＡＤＶＩＬ（ＴＭ）、ＭＯＴＲＩＮ（ＴＭ））を有する類似の薬物を服用している患者が同定され得る。また、Ｘ線または磁気共鳴映像法（ＭＲＩ）スキャンなどの異なるスキャンを受けたが、同様の薬物療法を受けている患者は、テキスト、数値、および画像データのための単一のＣＩクエリを使用して同定され得る。心電図（ＥＣＧ）は異なるが、類似の薬物療法を受けている患者は、テキスト、数値、および時系列データのための単一のＣＩクエリを使用して同定され得る。ＣＩクエリは、食品を与えられた場合に、似たような成分で砂糖が少ない代替食品を発見するなど、栄養に関するアドバイスを提供するためにも使用され得る。リコール通知が患者に影響を与えたこと、または類似の薬の購入が確認されたことなど、外部データを使用して予測を提供することができる。
【００４７】
ＣＩクエリは、情報技術（ＩＴ）インシデント・チケット分析など、他の分野でも使用され、類似のチケット・パターン（たとえば、チケットのタイプ、解決ステータス、問題の原因など）を有するアカウントを発見することができる。金融分野（たとえば、消費者向け銀行業務、投資顧問など）では、ＣＩクエリを使用して、類似のトランザクションを有する顧客を発見し、所与の投資戦略のための類似の投資計画を識別し、または所与の顧客のためのトランザクションにおける異常を検出することができる。保険業界では、ＣＩクエリは、テキストおよび画像特徴を使用して、類似または非類似の請求を識別するため、または患者プロファイル（たとえば、症状、診断など）を分析することによって、リスク・プロファイルを評価するために使用され得る。モノのインターネット（ＩｏＴ）の場合、ＣＩクエリは、類似のエネルギ・パターンを有する世帯またはホテルの部屋を発見することを支援し得る。人事（ＨＲ）管理では、ＣＩクエリを使用して、類似したスキルを有し、類似または異なる雇用履歴を持つ従業員を発見することができる。ＣＩクエリは、顧客ケア、意味論的ウェブ、ログ分析、スマート・シティなどの他の業界でも使用され得る。これらは、本発明の実施形態を用いたＣＩクエリの多くの用途のうちのほんのいくつかにすぎない。
【００４８】
コグニティブ・インテリジェンス・サーバ
図７を参照して、本発明の実施形態で利用され得る情報処理システム７００を例示するブロック図が図示されている。情報処理システム７０２は、本発明の１つまたは複数の実施形態を実施するように構成された適切に構成された処理システム（たとえば、コグニティブ・データ管理システム１００）に基づいている。本発明の実施形態における情報処理システム７０２として、任意の適切に構成された処理システムが使用され得る。情報処理システム７０２の構成要素は、１つまたは複数のプロセッサまたは処理ユニット７０４、システム・メモリ７０６、およびシステム・メモリ７０６を含む様々なシステム構成要素をプロセッサ７０４に結合するバス７０８を含むことができるが、それらに限定されない。
【００４９】
バス７０８は、メモリ・バスまたはメモリ・コントローラ、周辺バス、加速グラフィック・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のうちの１つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス規格協会（ＶＥＳＡ）ローカル・バス、および周辺機器相互接続（ＰＣＩ）バスを含む。
【００５０】
図７には図示されていないが、メイン・メモリ７０６は、図１に図示される構造化データ・ソース１０６、コグニティブ・インテリジェンス・クエリ１０２、機械学習モデル１０４、および構造化結果１０８を含み得る。これらの構成要素のうちの１つまたは複数は、プロセッサ７０４内に存在するか、または別個のハードウェア構成要素であり得る。メイン・メモリ７０６は、ランダム・アクセス・メモリ（ＲＡＭ）７１０、またはキャッシュ・メモリ７１２、あるいはその両方などの揮発性メモリの形態のコンピュータ・システム可読媒体も含むことができる。情報処理システム７０２はさらに、他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータ・システム記憶媒体を含むことができる。ほんの一例として、記憶システム７１４は、１つまたは複数のソリッド・ステート・ディスク、または磁気媒体（典型的には「ハード・ドライブ」と呼ばれる）、あるいはその両方などの非リムーバブルまたはリムーバブルな不揮発性媒体から読み書きするために提供され得る。リムーバブルな不揮発性磁気ディスク（たとえば「フロッピー（Ｒ）ディスク」）との間で読み書きするための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光学媒体のようなリムーバブルな不揮発性光ディスクとの間で読み書きするための光ディスク・ドライブが提供され得る。そのような場合には、各々は、１つまたは複数のデータ媒体インターフェースによってバス７０８に接続することができる。メモリ７０６は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセットを有する少なくとも１つのプログラム製品を含むことができる。
【００５１】
プログラム・モジュール７１８のセットを有するプログラム／ユーティリティ７１６は、例として、限定ではなく、メモリ７０６に、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データとして記憶され得る。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、あるいはそれらの何らかの組合せのそれぞれは、ネットワーキング環境の実装を含み得る。プログラム・モジュール７１８は、一般に、本発明の実施形態の機能、または方法、あるいはその両方を実行する。
【００５２】
情報処理システム７０２はまた、１つまたは複数の外部デバイス７２０（キーボード、ポインティング・デバイス、ディスプレイ７２２など）、ユーザが情報処理システム７０２と対話することを可能にする１つまたは複数のデバイス、またはコンピュータ・システム／サーバ７０２、あるいはその両方が１つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（たとえば、ネットワーク・カード、モデムなど）と通信することができる。そのような通信は、Ｉ／Ｏインターフェース７２４を介して生じ得る。それでもなお、情報処理システム７０２は、ネットワーク・アダプタ７２６を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）、または公衆ネットワーク（たとえば、インターネット）、あるいはその組合せのような１つまたは複数のネットワークと通信することができる。図示されるように、ネットワーク・アダプタ７２６は、バス７０８を介して、情報処理システム７０２の他の構成要素と通信する。他のハードウェア、またはソフトウェア構成要素、あるいはその両方もまた、情報処理システム７０２とともに使用され得る。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、データ・アーカイブ・ストレージ・システムを含むが、これらに限定されない。図示されていないが、追加のグラフィック処理ユニット（ＧＰＵ）が、バス７０８の近傍にあり、コプロセッサとして機能し得る。
【００５３】
非限定的な実施形態
当業者に理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または、本明細書では「回路」、「モジュール」、または「システム」と呼ばれ得るソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形式を採用し得る。
【００５４】
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体（または複数の媒体）を含むことができる。
【００５５】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持し記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組合せであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読出専用メモリ（ＲＯＭ）、消去可能プログラマブル読出専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読出専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリー・スティック、フロッピー（Ｒ）・ディスク、パンチ・カードのような機械的に符号化されたデバイス、または記録された命令を有する溝の隆起構造、および上記の任意の適切な組合せを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波管または他の伝送媒体を伝播する電磁波（たとえば、光ファイバ・ケーブルを通過する光パルス）、または、ワイヤを介して送信される電気信号などの一時的な信号自体であると解釈されるべきではない。
【００５６】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング／処理デバイスへ、または、たとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、ワイヤレスネットワーク、あるいはその組合せのようなネットワークを介して、外部コンピュータまたは外部記憶デバイスへダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイア・ウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備え得る。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【００５７】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのようなオブジェクト指向プログラミング言語や、「Ｃ」プログラミング言語または類似のプログラミング言語のような手続型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードのいずれかであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上、部分的にユーザのコンピュータ上、独立型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータまたはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができるか、または（たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに接続することができる。いくつかの実施形態では、たとえばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実行するために、電子回路をパーソナル化するためにコンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行し得る。
【００５８】
本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図、またはブロック図、あるいはその両方を参照して本明細書で説明される。フローチャート図、またはブロック図、あるいはその両方の各ブロック、ならびにフローチャート図、またはブロック図、あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることを理解されよう。
【００５９】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供され、これによって、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置を介して実行する命令が、フローチャート、またはブロック図ブロックまたは複数のブロック、あるいはその組合せで指定された機能／動作を実施するための手段を作成できる機械を製造できるようになる。これらのコンピュータ可読プログラム命令は、特定の方式で機能するようにコンピュータ・プログラム可能データ処理装置、または他のデバイス、あるいはその両方に命令することができるコンピュータ可読記憶媒体に記憶され得、これによって、記憶された命令を有するコンピュータ読出可能な記憶媒体が、フローチャート、またはブロック図ブロックまたは複数のブロック、あるいはその組合せで指定された機能／動作の態様を実施する命令を含む製造物品を備えられるようになる。
【００６０】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ実施プロセスを生成するためにコンピュータ、他のプログラム可能な装置、または他のデバイス上において、一連の動作ステップを実行させ、これによって、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行される命令が、フローチャート、またはブロック図ブロックまたは多数のブロック、あるいはその組合せで指定された機能／動作を実行できるようになる。
【００６１】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を例示している。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を備えたモジュール、セグメント、または命令の一部を表し得る。いくつかの代替実装形態では、ブロックに示されている機能は、図に示されている順序とは異なる順序で生じ得る。たとえば、連続して図示されている２つのブロックは、実際には、実質的に同時に実行されてもよく、または関連する機能に応じて、しばしば逆の順序で実行されてもよい。ブロック図、またはフローチャート図の各ブロック、あるいはその両方、およびブロック図、またはフローチャート図、あるいはその両方におけるブロックの組合せは、指定された機能または動作を実行する専用ハードウェア・ベースのシステムによって実施され得るか、または、専用ハードウェアとコンピュータ命令の組合せを実行し得ることにも留意されたい。
【００６２】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、本発明を限定することを意図するものではない。本明細書で使用されるとき、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈が明らかにそうでないことを示さない限り、複数形も含むことが意図されている。本明細書で使用されるとき、「備える」、または「備えている」、あるいはその両方の用語は、述べられた特徴、完全体、ステップ、動作、要素、または構成要素、あるいはその組合せの存在を特定するが、１つまたは複数の他の特徴、完全体、ステップ、動作、要素、構成要素、またはそれらのグループ、あるいはその組合せの存在または追加を排除しないことがさらに理解されるだろう。
【００６３】
本発明の説明は、例示および説明の目的で提示されているが、網羅的であること、または開示された形態での本発明に限定されることを意図するものではない。本発明の範囲および思想から逸脱することなく、多くの変更および変形が当業者には明らかであろう。本実施形態は、本発明の原理および実際の応用を最もよく説明するため、そして企図される特定の用途に適するように様々な変更を加えた様々な実施形態について当業者が本発明を理解できるようにするために選択および説明された。
【符号の説明】
【００６４】
１００  動作環境
１０２  コグニティブ・インテリジェンス・クエリ
１０４  機械学習モデル
１０６  構造化データ・ソース
１０８  構造化結果
１１０  外部データ・ソース
【図１】
0006902106.tif 000005
【図２】
0006902106.tif 000006
【図３】
0006902106.tif 000007
【図４】
0006902106.tif 000008
【図５】
0006902106.tif 000009
【図６】
0006902106.tif 000010
【図７】
0006902106.tif 000011