(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-19
(45)【発行日】2022-10-27
(54)【発明の名称】深層適応的意味論論理ネットワーク
(51)【国際特許分類】
G06N 20/00 20190101AFI20221020BHJP
G06N 5/02 20060101ALI20221020BHJP
【FI】
G06N20/00
G06N5/02 120
(21)【出願番号】P 2019561177
(86)(22)【出願日】2018-05-08
(86)【国際出願番号】 US2018031645
(87)【国際公開番号】W WO2018208813
(87)【国際公開日】2018-11-15
【審査請求日】2021-03-31
(32)【優先日】2017-05-09
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】501228071
【氏名又は名称】エスアールアイ インターナショナル
【氏名又は名称原語表記】SRI International
【住所又は居所原語表記】333 Ravenswood Avenue, Menlo Park, California 94025, U.S.A.
(74)【代理人】
【識別番号】100098899
【氏名又は名称】飯塚 信市
(74)【代理人】
【識別番号】100163865
【氏名又は名称】飯塚 健
(72)【発明者】
【氏名】バーンズ, ジョン
(72)【発明者】
【氏名】ローワー, リチャード
【審査官】武田 広太郎
(56)【参考文献】
【文献】特表2013-536484(JP,A)
【文献】特表2013-537655(JP,A)
【文献】特開2013-008221(JP,A)
【文献】特開2015-130194(JP,A)
【文献】特開平06-119175(JP,A)
【文献】特開平06-332706(JP,A)
【文献】特開平08-286922(JP,A)
【文献】特開平09-330306(JP,A)
【文献】特開2000-137616(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 5/02
(57)【特許請求の範囲】
【請求項1】
知識表現および推論のための適応的意味論学習を使用する1以上の機械学習モデルを作成するため互いに連携するように構成された2以上のモジュールを含む人工知能エンジン、を備えた装置であって、
前記人工知能エンジンの前記2以上のモジュールは、特定の分野の1以上の人間ソースによって使用される専門用語を有するその分野の1以上のソースからの前記表現および推論を、制約として働き第1の機械学習モデルによって理解可能なネットワークにグラフ化されるルールのセットへとエンコードすることを生じさせるよう連携し、
前記モジュールは、前記エンコードされたルールのセットを解釈するように構成され、前記エンコードされたルールの前記解釈は、異なる関数および述語に関連する前記ネットワークの前記ルールのセットおよびパラメータの異なる定数に関連するベクトルを適応させて、可能な限り前記ルールを真にさせる最適な解釈を得るように前記ネットワークをトレーニングすることによって、変化し得り、
前記解釈は、クエリサポートモジュールを介して問い合わせることができ、前記モジュールは、ソフトウェアにおいてコード化された任意の命令を実行する1以上のプロセッサを利用し、前記人工知能エンジンの1以上のメモリに記憶される、装置。
【請求項2】
前記2以上のモジュールは、
専門知識データベースおよび/または直接ユーザ入力を含む1以上のソースから、前記表現および推論の入力を可能にするように構成された、理論モジュールと、
機械学習を使用するために前記モジュールによって使用される計算アルゴリズムに理解可能なように、前記表現および推論から導出された、述語、関数、および定数を含むアサーションをエンコードするように構成された、理論表現モジュールと、
をさらに含む、請求項1に記載の人工知能エンジン。
【請求項3】
前記2以上のモジュールが、
前記1以上のソースからの前記表現および推論の入力を可能にするための理論モジュールと、理論表現モジュールと、
をさらに含み、
前記理論表現モジュールは、前記ネットワークをまとめて前記第1の機械学習モデルを生成するように構成され、前記理論表現モジュールから生成された前記作成された第1の機械学習モデルは、i)前記1以上のソースから提供され前記理論モジュールを介して供給された前記表現および推論から導出された前記ルールのセットと、ii)データでの反復トレーニングから導出された機械学習アサーションとの両方でトレーニングされ、
前記人工知能エンジンは、i)前記表現および推論から導出された前記ルールのセットと、ii)それらのルールの解釈の修正形態であって前記トレーニングデータのみを使用して単に学習することよりも少ないトレーニング周期および計算時間の消費を可能にする前記トレーニングデータを備えた前記機械学習から導出された前記修正形態と、の両方を使用するように構成されている、請求項1に記載の人工知能エンジン。
【請求項4】
前記クエリサポートモジュールは、前記クエリサポートモジュールを介して、ブールクエリ、自然言語検索クエリ、説明要求、公理補正、およびこれらの任意の組合せから成るグループから選択された様々な人間相互作用をサポートし、次いで、前記第1の機械学習モデル内のニューラルネットワークによって決定がどのように行われるかの説明をディスプレイに提示してクエリ結果に説明可能性を与えるようにさらに構成され、前記説明可能性は、前記クエリサポートモジュールを介して前記知識表現および推論において表現されたプロパティをユーザが問い合わせるとき、前記クエリサポートモジュールが、信頼性スコアと、1)その分野の1以上のソースから前記表現および推論において供給された定数、記号、関数、および述語への前記プロパティのマッピング、および2)前記マッピングに関連する前記論理ステップの提供のうちの少なくとも1つと、を有するクエリ結果を生成するように構成されるような態様である、請求項3に記載の人工知能エンジン。
【請求項5】
前記2以上のモジュールは、
前記表現および推論から導出された前記記号、定数、関数、および述語のインベントリを含むように構成された、言語モジュールと、
前記モジュールは、i)前記第1の機械学習モデルのトレーニングのために使用される前記データ内で発見された意味論的に類似の専門用語が前記モジュールによって論理的に関連付けられることを可能にすること、ii)前記1以上のソースから供給された意味論的に類似の用語のリストが前記人工知能エンジンの前記モジュールによって論理的に関連付けられることを可能にすること、あるいはiii)意味論的に類似の用語を論理的に関連付けるために前記モジュールによって使用されることになるこれら2つの任意の組合せによってエンコードされたルールのセットの前記解釈を適応させるようにも構成され、及び、
前記表現および推論から導出された前記記号を取得しネットワーク内でそれらの各々を関連付けるように構成されたモデル表現モジュールであって、前記モデル表現モジュールは、前記表現および推論から導出された前記定数を取得しそれらを前記ネットワークへの入力として意味論的ベクトルにマップするようにも構成され、前記モデル表現モジュールは、前記表現および推論から導出された前記述語を取得しそれらを前記ネットワークにマップするようにも構成され、前記モデル表現モジュールは、各ネットワークおよびそれの学習されたベクトルにアノテートするようにも構成される、モデル表現モジュールと、
をさらに含む、請求項1に記載の人工知能エンジン。
【請求項6】
前記2以上のモジュールは、さらに、
前記エンコードされた表現および推論を経て、各ステートメントの部分をそのステートメント内の定数、記号、述語、および/または関数のカテゴリへと解析するように構成された、パーサーモジュールと、
各定数をパラメータ化されたベクトルにマップするように構成された前記人工知能エンジンの第1のモジュールであって、各定数は、ノードのサブグラフへの入力としてマップされ、前記人工知能エンジンの前記第1のモジュールは、各述語および/または関数をパラメータ化されたネットワークにマップするようにも構成された、第1のモジュールと、
解析木から全ネットワークを構築するように構成された前記人工知能エンジンの第2のモジュールであって、前記パーサーモジュールおよび言語モジュールは、前記ステートメントの前記定数が後でベクトルと関連付けられる深層ネットワークの構造を定義するために、アサートされた知識を表す論理公式の解析木を作成するよう連携し、モデル表現モジュールは、前記表現および推論のアサーションを真にすること、ならびに、より最適な解釈を伝達するために信頼性スコアによって指示される前記第1の機械学習モデルのトレーニングのために使用される前記データと一致させることを目的として、前記定数に関連するベクトル値を適応させると共に前記ネットワークのパラメータを適応させるように構成された、第2のモジュールと、
を含む、請求項1に記載の人工知能エンジン。
【請求項7】
前記2以上のモジュールは、さらに、
各前記ルール内の各述語および関数の変数を対象とするように構成された前記人工知能エンジンの第3のモジュールであって、前記第3のモジュールは、1以上のコスト関数を使用してエラーを最小化し、かつ、前記理論表現モジュールから前記第1の機械学習モデルのためのこれらのコスト関数を供給してトレーニングデータから導出された統計主導の結論を導き前記ルールを可能な限り真にさせる前記より最適な解釈に寄与するように構成された、第3のモジュールを含み、
前記人工知能エンジンの前記理論表現モジュールは、前記ステートメントの前記セット内の前記表現および推論を表すグラフの前記ネットワークを前記第1の機械学習モデルへと自動的にまとめるように構成され、前記理論表現モジュールは、前記第1の機械学習モデルにおいて利用される前記知識表現および推論を表す前記ルールのセットの前記解釈を適応させるために、パラメータを学習し前記モデル内の前記ネットワークのトレーニングからのフィードバックを提供するようにも構成される、請求項6に記載の人工知能エンジン。
【請求項8】
前記2以上のモジュールは、さらに、
前記機械学習モデルをトレーニングするために使用される前記データでのトレーニングの反復に基づく定数とは関連していない前記ルールのセットおよび/またはベクトルの一部を構成する異なる定数に関連するベクトルに対する修正をサポートするように構成された、定量化サポートモジュールを含む、請求項1に記載の人工知能エンジン。
【請求項9】
前記2以上のモジュールは、さらに、
前記適応的意味論学習が、ネットワーク化されたトポロジーにエンコードされた前記表現および推論を表す第1の機械学習モデルへと自動的にまとめられるように、意味論的ベクトル、ネットワーク、およびカスタム構造を使用するように構成された、モデル表現モジュールと、
前記ルールのセット内の前記定数を前記モデル表現モジュールに送って前記トレーニング可能な意味論ベクトルを各前記定数に割り当てるように構成された、言語モジュールであって、前記エンコードされたルールのセットの前記解釈は、i)前記第1の機械学習モデルのトレーニングのために使用される前記データ内で発見された意味論的に類似の専門用語が前記モジュールによって論理的に関連付けられることを可能にすること、ii)前記1以上のソースから供給された意味論的に類似の用語のリストが前記人工知能エンジンの前記モジュールによって論理的に関連付けられることを可能にすること、およびiii)意味論的に類似の用語を論理的に関連付けるために前記モジュールによって使用されることになるこれら2つの任意の組合せ、によって適応可能である、言語モジュールと、を含み、
前記言語モジュールは、また、前記ルールのセット内の前記記号を前記モデル表現モジュールに送って微分関数を適用するように構成され、前記言語モジュールは、また、述語および関数を前記モデル表現モジュールに送ってトレーニング可能なマルチレイヤパーセプトロン(MLP)ネットワークを使用するように構成された、請求項1に記載の人工知能エンジン。
【請求項10】
前記モデル表現モジュールは、さらに、仕様モジュールの参照に基づいて前記ネットワークに入る関数および述語の任意のパラメータを適応させるように構成され、前記モデル表現モジュールは、そして、前記ネットワークを取り込みそれらを前記理論表現モジュールに送ってそれらのすべてを前記第1の機械学習モデル内に構築するように構成される、請求項9に記載の人工知能エンジン。
【請求項11】
人工知能エンジンのための方法であって、
知識表現および推論のための適応的意味論学習を使用する1以上の機械学習モデルを作成するために人工知能エンジンの2以上のモジュールを互いに連携させるステップと、
特定の分野の1以上の人間ソースによって使用される専門用語を有するその分野の1以上のソースからの前記表現および推論を、制約として働き第1の機械学習モデルによって理解可能なネットワークにグラフ化されたルールのセットにエンコードすることを生じさせる前記人工知能エンジンの2以上のモジュールと連携するステップと、
前記エンコードされたルールのセットの解釈を適応させるステップであって、前記エンコードされたルールの解釈は、異なる関数および述語に関連する前記ネットワークの前記ルールのセットおよびパラメータの異なる定数に関連するベクトルを適応させて、可能な限り前記ルールを真にさせるより最適な解釈を得るように、前記ネットワークをトレーニングすることによって変化し得る、ステップと、
クエリ結果に説明可能性を与えるために前記第1の機械学習モデル内の前記ネットワークによってどのように決定が行われるかを提示するためにクエリサポートモジュールを介して前記第1の機械学習モデルが問い合わせられることを可能にするステップと、
を含む、方法。
【請求項12】
専門知識データベースおよび/または直接ユーザ入力を含む前記1以上のソースから、前記表現および推論の入力を可能にするステップと、
機械学習を使用するために前記モジュールによって使用される計算アルゴリズムに理解可能になるように、前記表現および推論から導出された、述語、関数、および定数を含むアサーションをエンコードするステップと、
をさらに含む、請求項11に記載の方法。
【請求項13】
前記1以上のソースから前記表現および推論を入力するために理論モジュールを使用するステップと、
ネットワークをまとめて前記第1の機械学習モデルを生成するために理論表現モジュールを使用するステップであって、前記まとめられたネットワークは、前記表現および推論から導出される、ステップと、をさらに含み、
前記理論表現モジュールから生成された前記作成された第1の機械学習モデルは、i)制約として働き前記表現および推論から導出された前記ルールのセットと、ii)前記トレーニングデータを用いた前記機械学習から導出されたそれらのルールの解釈の修正形態との両方でトレーニングされている、請求項11に記載の方法。
【請求項14】
前記第1の機械学習モデルのブールクエリ、自然言語検索クエリ、説明要求、公理補正、およびこれらの任意の組合せから成るグループから選択された様々な人間相互作用のクエリを可能にし、次いで、クエリ結果に説明可能性を与えるために前記第1の機械学習モデル内のネットワークによって決定がどのように行われるかをディスプレイに提示するステップをさらに含み、前記説明可能性は、ユーザが前記クエリサポートモジュールを介して前記知識表現および推論において表現されたプロパティを問い合わせるとき、前記クエリサポートモジュールが、信頼性スコアと、1)その分野の1以上のソースから前記表現および推論において供給された前記定数、記号、関数、および述語への前記プロパティのマッピングおよび2)前記マッピングに関連する前記論理ステップの提供のうちの少なくとも1つと、を有するクエリ結果を生成するように構成されるような態様である、請求項13に記載の方法。
【請求項15】
前記表現および推論から導出された前記記号、定数、関数、および述語のインベントリを記憶するステップと、
i)前記第1の機械学習モデルのトレーニングのために使用される前記データ内で発見された意味論的に類似の専門用語が前記モジュールによって論理的に関連付けられることを可能にすること、ii)前記1以上のソースから供給された意味論的に類似の用語のリストが前記人工知能エンジンの前記モジュールによって論理的に関連付けられることを可能にすること、あるいはiii)意味論的に類似の用語を論理的に関連付けるために前記モジュールによって使用されることになるこれら2つの任意の組合せによって、エンコードされたルールのセットの前記解釈を適応させるステップと、並びに、
前記表現および推論から導出された前記記号を取得するステップであって、ネットワーク内でそれらの各々を関連付ける、ステップ、前記表現および推論から導出された前記定数を取得するステップであって、それらを前記ネットワークへの入力として意味論的ベクトルにマップする、ステップ、前記表現および推論から導出された前記述語を取得するステップであって、それらを前記ネットワークにマップする、ステップ、及び、各ネットワークおよびそれの学習されたベクトルにアノテートするステップと、
をさらに含む、請求項11に記載の方法。
【請求項16】
ステートメントのセット内の前記エンコードされた表現および推論を経るステップであって、各ステートメントの部分をそのステートメント内の定数、記号、述語、および/または関数のカテゴリに解析する、ステップと、
各定数をパラメータ化されたベクトルにマップするステップであって、各定数は、ノードのサブグラフへの入力としてマップされ、前記人工知能エンジンの前記第1のモジュールは、各述語および/または関数をパラメータ化されたネットワークにマップするようにも構成される、ステップと、
解析木から全ネットワークを構築するステップと、
前記ステートメントの前記定数が後でベクトルと関連付けられる深層ネットワークの構造を定義するために、アサートされた知識を表す論理公式の解析木を作成するステップと、
前記表現および推論のアサーションを真にすること、ならびに、前記より最適な解釈を伝達するために信頼性スコアによって指示される前記第1の機械学習モデルのトレーニングのために使用される前記データと一致させることを目的として、前記定数に関連するベクトル値を適応させると共に前記ネットワークのパラメータを適応させるステップと、
をさらに含む、請求項11に記載の方法。
【請求項17】
各前記ルール内の各述語および関数の変数を目標とするステップと、トレーニングデータから導出される統計主導の結論を導きかつ前記第1の機械学習モデルのためにこれらのコスト関数を供給するようエラーを最小化する1以上のコスト関数を使用するステップと、
前記第1の機械学習モデル内に前記ステートメントのセット内の前記表現および推論を表すグラフの前記ネットワークを自動的にまとめるステップと、
パラメータを学習するステップであって、前記第1の機械学習モデルにおいて利用される前記知識表現および推論を表すルールのセットの前記解釈を適応させるために、前記モデル内の前記ネットワークのトレーニングからのフィードバックを提供する、ステップと、
をさらに含む、請求項16に記載の方法。
【請求項18】
導くための前記機械学習モデルをトレーニングするために使用されるデータでのトレーニングの反復に基づいて前記ルールのセットの一部を構成する異なる定数に関連するベクトルに対する修正をサポートするステップ、ならびに、前記機械学習モデルをトレーニングするために使用される前記データでのトレーニングの反復に基づく定数とは関連しないベクトルを適応させるステップをさらに含む、請求項11に記載の方法。
【請求項19】
i)前記機械学習モデルをトレーニングするために使用される前記データ内で発見された意味論的に類似の専門用語が前記モジュールによって論理的に関連付けられることを可能にすること、ii)専門家によって供給された意味論的に類似の用語のリストが前記人工知能エンジンの前記モジュールによって論理的に関連付けられることを可能にすること、および、iii)意味論的に類似の用語を論理的に関連付けるために前記モジュールによって使用されることになるこれら2つの任意の組合せによって、前記エンコードされたルールのセットの前記解釈もまた適応させるステップと、
前記適応的意味論学習が前記第1の機械学習モデルに自動的にまとめられてネットワーク化されたトポロジーにエンコードされた前記表現および推論を表すように、意味論ベクトル、ネットワーク、およびカスタム構造を採用するステップと、
前記ルールのセット内の各前記定数に前記トレーニング可能な意味論ベクトルを割り当てるステップ、微分関数を前記ルールのセット内の前記記号に適用するステップ、および前記ルールのセット内の前記述語および関数のためにトレーニング可能なマルチレイヤパーセプトロン(MLP)ニューラルネットワークを使用するステップと、
をさらに含む、請求項18に記載の方法。
【請求項20】
仕様モジュールの参照に基づいて前記ネットワークに入る関数および述語の任意のパラメータを適応させるステップと、
前記ネットワークを取り込みそれらを前記理論表現モジュールに送って前記第1の機械学習モデル内に前記ネットワークを構築するステップと、
をさらに含む、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連技術の相互参照
本出願は、その開示の全体が参照により本明細書に組み込まれる、2017年5月9日に出願した米国仮特許出願第62/503,809号、表題「Deep adaptive semantic logic network」に対して米国特許法第119条に基づく優先権を主張する。
【0002】
本開示の実施形態は、概して、深層適応的意味論論理(deep adaptive semantic logic)ネットワークデバイス、システム、および方法を使用する人工知能エンジンに関する。
【背景技術】
【0003】
一般に、ユーザに利用可能な2つの種類の人工知能アプリケーション、すなわち、推論に優れているが範囲が非常に狭い、知識に基づくものと、学習に優れているが、特定のデータセット向けにカスタム設計される必要があり、合理的な結果を生み出すために非常に大量のデータをしばしば必要とする、データに基づくものとが、現在存在している。必要とされているのは、この両方を行うことができる人工知能である。
【0004】
いくつかの現在の機械推論技法は、アサーションの数の急増と次の各実験の欠けている部分を満たすための終わりのない努力とを必要とする、専門用語の正確性および使用に関する厳しい要件を課し得る。その一方で、他の機械学習技法は、主題の専門知識を全く無視するか、あるいは、狭い範囲の外ではほとんど役に立たないカスタム統計モデルへの少量の専門知識の労働集約型のエンコードを必要とする。
【発明の概要】
【発明が解決しようとする課題】
【0005】
科学的知識および仮説は、時に、多くの現代技術によって提供される大量の科学的データを処理することを要求される機械学習アーキテクチャ内で表現することが現在は難しい宣言型の論理形式において、非常に容易に表現することができる。必要とされているのは、論理仕様から機械学習アーキテクチャを自動的に生成することによってこの問題に対処する技術である。
【課題を解決するための手段】
【0006】
人工知能エンジンのための様々な方法、装置、およびシステムが本明細書で提供される。
【0007】
人工知能エンジンは、知識表現(knowledge representations)および推論(reasoning)のための適応的意味論学習(adaptive semantic learning)を使用する1以上の機械学習モデルを作成するために、2以上のモジュールを互いに連携させる。人工知能エンジンは、2以上のモジュールを連携させて、制約として働き第1の機械学習モデルによって理解可能なネットワークにグラフ化されるルールのセットへの、特定の分野の1以上の人間ソースによって使用される専門用語を有するその分野の1以上のソースからの表現および推論のエンコードをもたらす。モジュールは、エンコードされたルールのセットを解釈するように構成される。人工知能エンジンはまた、初期セットのルールの異なる定数に関連するベクトルを修正することによって、エンコードされたルールの初期セットの解釈を修正する。人工知能エンジンは、ルールのセットの異なる定数に関連するベクトルおよび異なる関数および述語に関連するネットワークのパラメータを適応させ、ルールを可能な限り真にする最適な解釈を得る。もう1つの実施形態では、人工知能エンジンは、制約として働き第1の機械学習モデルによって理解可能なネットワークにグラフ化されるルールのセットを使用し、そしてまた、トレーニングデータから導出された統計主導の結論を使用してベクトルを適応させる。
【0008】
エンコードされたルールの解釈は、異なる関数および述語に関連するネットワークのルールのセットおよびパラメータの異なる定数に関連するベクトルを適応させるようにネットワークをトレーニングすることによって変化して、可能な限りルールを真にさせる最適な解釈を得ることができる。人工知能エンジンは、定数に関連するベクトル値を適応させ、ならびに、表現および推論のアサーションを真にすること、ならびに、より最適な解釈を伝達するために信頼性スコアによって指示される第1の機械学習モデルのトレーニングのために使用されるデータと一致させることを目的としてニューラルネットワークのパラメータを適応させる。より高い信頼性スコアは、推論は真であり、また第1の機械学習モデルのトレーニングのために使用されたデータと一致させることを伝える。
【0009】
知識表現および推論を表すエンコードされたルールの解釈が、機械学習モデルにおいて使用され得る。人工知能エンジンは、クエリ結果に説明可能性を与えるために機械学習モデルにおけるニューラルネットワークによって決定がどのように行われるかを提示するために、クエリサポートモジュールを介して機械学習モデルが問い合わせされることを可能にする。
【0010】
これらのおよび多数の他の実施形態が説明される。
【図面の簡単な説明】
【0011】
【
図1】知識表現および推論のための深層適応的意味論学習ニューラルネットワークを使用する1以上の機械学習モデルを作成するために互いに連携するように構成された2以上のモジュールを含む人工知能エンジンの一実施形態のブロック図である。
【
図2】知識表現および推論のための深層適応的意味論学習ニューラルネットワークを使用する機械学習モデルを作成するために互いに連携するモジュールを含む人工知能エンジンの一実施形態のブロック図である。
【
図3】理論モジュールによってエンコードされるおよびパーサーモジュールによって解析されることになる例示的セットのルールおよび述語の一実施形態の図である。
【
図4】モジュールはまた、供給されたステートメント内のすべての述語を取り込むおよびそれらをニューラルネットワークのサブグラフにマップする、および次いでステートメントの解析木から全ネットワークを構築するように構成される、ステートメント内のすべての定数を取り込むおよびそれらをニューラルネットワークのサブグラフへの入力として意味論的ベクトルにマップするように構成された、タルスキーモデル、モデル表現モジュールおよび/または言語モジュールなどの、モジュールの一実施形態のブロック図である。
【
図5】パーサーモジュールはまた、ノードモジュールの有向アクリルグラフと連携して各ステートメントを経て各ステートメントをそれ自体の木構造のノードに、次いでそのステートメント内の各述語および/または関数のノードのレイヤに変えるように構成される、各ステートメントを解析してそのステートメント内の定数、記号、述語および/または関数のカテゴリへの解析ストリームを生み出すように構成されたパーサーモジュールの一実施形態の図である。
【
図6】パーサーモジュールはまた、ノードモジュールの有向アクリルグラフと連携して各ステートメントを経て各ステートメントをそれ自体の木構造のノードに、次いでそのステートメント内の各述語および/または関数のノードのレイヤに変えるように構成される、各ステートメントを解析してそのステートメント内の定数、記号、述語および/または関数のカテゴリへの解析ストリームを生み出すように構成されたパーサーモジュールの一実施形態の図である。
【
図7】i)機械学習モデルをトレーニングするために使用されるデータ内で発見された意味論的に類似の専門用語がモジュールによって論理的に関連付けられることを可能にすることと、ii)ユーザによって供給された意味論的に類似の用語のリストが人工知能エンジンのモジュールによって論理的に関連付けられることを可能にすることと、iii)意味論的に類似の専門用語を論理的に関連付けるためにモジュールによって使用されることになるこれらの2つの任意の組合せとによって、エンコードされたルールの初期セットを修正するように構成された1以上のモジュールの一実施形態のブロック図である。
【
図8】専門家によって第1のステートメントから導出されたおよびパーサーモジュールによって解析されたすべての記号、定数、関数、および述語のインベントリを含むように構成された言語モジュールの一実施形態のブロック図である。
【
図9】人工知能エンジンの一実施形態によるネットワーク環境において互いに通信するいくつかの電子システムおよびデバイスの図である。
【
図10】本明細書で説明される人工知能エンジンおよびその関連モデルに関連するシステムの一部になり得る1以上のコンピューティングデバイスの一実施形態の図である。
【
図11】i)理論モジュールを介して専門知識から提供された表現および推論における知識アサーションと、ii)データでの反復トレーニングから導出された機械学習アサーションとの両方でトレーニングされている深層適応的意味論論理ネットワークの概念の一実施形態をグラフィックで示す図である。
【0012】
設計は、様々な修正形態、同等物、および代替形式を仮定するが、その特定の実施形態が、例として図に示されており、ここで詳細に説明されることになる。設計は、開示される特定の実施形態に限定されず、反対に、特定の実施形態を用いるすべての修正形態、同等物、および代替形式を対象とすることが意図されていることを理解されたい。
【発明を実施するための形態】
【0013】
以下の記述では、本設計の完全な理解を実現するために、特定のデータ信号、名前を付けられた構成要素、フレームの数などの例など、多くの具体的詳細が明記され得る。しかしながら、本設計はこれらの具体的詳細なしに実施され得ることが、当業者には明らかであろう。他の場合には、よく知られている構成要素または方法は、本設計を不必要に分かりにくくすることを避けるために、詳しく説明はされずに、ブロック図にある。さらに、第1のサーバなどの特定の番号の参照が行われ得る。しかしながら、特定の番号の参照は、文字通りの順番として解釈されるべきではなくて、第1のサーバは第2のサーバとは異なると解釈されるべきである。したがって、説明される具体的詳細は、単に例示であり得る。具体的詳細は、変更することができ、それでもなお、本設計の趣旨および範囲内にあることが意図されている。「連結された」という用語は、構成要素に直接または別の構成要素を介して構成要素に間接的に接続されることを意味するものとして定義される。
【0014】
図1は、知識表現(knowledge representations)および推論(reasoning)のために深層適応的意味論学習(deep adaptive semantic learning)ニューラルネットワークを使用する1以上の機械学習モデルを作成するために互いに連携するように構成された2以上のモジュールを含む人工知能エンジンの一実施形態のブロック図である。
【0015】
人工知能エンジン100は、知識表現および推論のために深層適応的意味論学習ニューラルネットワークを使用する1以上の機械学習モデルを作成するために、互いに連携するように構成された2以上のモジュールを含む。人工知能エンジン100の2以上のモジュールは、特定の分野の1以上の人間ソースによって使用される専門用語を有するその分野の1以上のソースからの表現および推論を、制約として働き第1の機械学習モデルによって理解可能なネットワークにグラフ化された1セットのルールにエンコードするために連携する。モジュールは、i)機械学習モデルをトレーニングするために使用されるデータ内で発見された意味論的に類似の専門用語がモジュールによって論理的に関連付けられることを可能にすることと、ii)専門家によって供給された意味論的に類似の用語のリストが人工知能エンジンのモジュールによって論理的に関連付けられることを可能にすることと、iii)意味論的に類似の専門用語を論理的に関連付けるためにモジュールによって使用されることになるこれらの2つの任意の組合せとによって、エンコードされたルールのセットの理解を適応させる、ように構成される。(
図7も参照。)モジュールはまた、初期セットのルールの異なる定数に関連するベクトルを修正することによって、たとえば、トレーニングデータから導出された統計主導の結論を使用することによって、エンコードされたルールのセットの理解を適応させるように構成される。すべての適応は、クエリサポートモジュールを介して問い合わせることができる機械学習モデルにおいて利用される知識表現および推論を表すエンコードされたルールのセットの理解を生み出すために、結合することに留意されたい。
【0016】
2以上のモジュールは、定量化(quantifier)サポートモジュール、学習アルゴリズムのデータベースを含む学習アルゴリズムモジュール、言語モジュール、パーサー(parser)モジュール、理論入力モジュール、タルスキーモデル、モデル表現モジュール、ノードモジュールの有向アクリルグラフ、クエリサポートモジュール、理論表現モジュール、および仕様モジュールを含み得る。モジュールは、ソフトウェアにおいてコード化された任意の命令を実行するために、1以上のプロセッサを使用し、人工知能エンジンの1以上のメモリに記憶される、ことに留意されたい。1つのモジュールにおいて実行される機能は、反復、結合、または別のモジュールに移植することができる。様々なモジュールは、互いに参照するおよび他の方法で通信することができる。
【0017】
理論モジュールは、専門知識データベースおよび/または個別の専門用語の直接ユーザ入力を含む1以上のソースから、人間が述べた知識表現および推論の入力を可能にすることができる。知識表現および推論は、機械学習モデルに関連するシステムを科学者が説明および理解することを可能にする用語集を提供するための構造体の定性的および定量的要素にラベルを付けるために導入することができる。理論モジュールは、パーサーモジュールを介してアサーションならびに言語モジュールに知識表現および推論から導出される述語、関数および定数の原子論理式をエンコードし、送ることができる。定数は、たとえば、エンティティ、オブジェクト、名前、人々、物事などを含み得る、ことに留意されたい。
【0018】
言語モジュールは、その他のモジュールと連携して機械学習を使用して表現および推論内の専門用語に関連する意味の分散型ベクトル表現を発見することによって、計算アルゴリズムにセミフォーマル科学言語を理解可能にするために、1次論理要素を使用することができる。科学者は、理論モジュールを介してその特定の分野のよく知られた(しかし、フォーマルな)言語で複雑な背景知識および仮説を提供することができる。理論モジュールを介するAIエンジン100は、任意の公式と連動することができる。また、人間の専門家および/または既存のデータベースは、知識基盤を提供する専門家でもよい。
【0019】
理論モジュールは、専門家によって供給された知識からのアサーションが言語モジュール内の1次論理要素を使用するルールのセットとしてエンコードされることを可能にするように構成することができる。
【0020】
理論モジュールは、知識を有する抽象的アサーションとデータを有する具体的アサーションとに分けることができる。アサーションは、論理定数ならびに原子論理式に進むことができる。その分野/技術の専門家からの知識が、フォーマルステートメントのセットとして理論入力モジュールから入力される。この入力された知識は、データでの作成された機械学習モデルトレーニングにおいて生じるその後の学習に制約として働くルールを作成するために使用される。したがって、物事どのように機能するかの理論が、その分野/技術の一般的な言語で専門家によって入力され、機械学習モジュール内の機械がそれに基づいて動作することができるルールのセットにエンコードされる。有利には、AIエンジン100は、ユーザ/専門家がルールを設定することと、コンピューティングデバイスによって理解可能なフォーマル言語にAIエンジン100によってエンコードされた、知識表現および推論を介する、定数、述語/プロパティを指示することとを可能にする。しかしながら、このセットのルールを用いても、専門用語が何を意味するかおよびルールがどのように適用されるかの解釈にはまだ余地があることになる。AIエンジン100は、その用語が何を意味するかおよびルールがどのように適用されるかの理解を、そのセットのルールにおいて、調整するために、データトレーニングで機械学習の第2の部分を用いる、ことに留意されたい。
【0021】
図11は、i)理論モジュールを介して専門知識から提供された表現および推論における知識アサーションと、ii)データでの反復トレーニングから導出された機械学習アサーションとの両方でトレーニングされている深層適応意味論的論理ネットワークの概念の一実施形態の図をグラフィックで示す。ステートメントのセットは、機械学習モデルの構造を作成するならびに表現および理由を最初に検査するためのルールのセットを作成する。続いて、トレーニングされているデータが、ルールのセットの現在の解釈を作成するために、そのルールのセットで使用される言語/専門用語の理解を訂正するためのフィードバックとして使用される。
【0022】
図1に戻って参照すると、理論モジュールおよび言語モジュールは、1次の論理を使用してルールのセットを作成する知識表現および推論に基づいてフォーマル言語でステートメントのセットを専門家が書くことを可能にするために連携することができる。ルールのセットは、フォーマルプログラミング言語でエンコードされた1セットのステートメントである。(たとえば、
図3にグラフィックで示された例示的ルールを参照。)
【0023】
パーサーモジュールは、そのステートメント内の定数、記号、述語、および/または関数のカテゴリ内への解析ストリームを生み出すために、ステートメントを解析することができる。パーサーモジュールは、各ステートメントをそれ自体の木構造のノードに、次いでそのステートメント内の各述語および/または関数のノードのレイヤに向けるために、ノードモジュールの有向アクリルグラフと連携して各ステートメントを経由することができる。(
図8、ならびに
図3、4、および5の解析された例示的カテゴリをグラフィックで参照。)
【0024】
言語モジュールはまた、専門家のステートメントから導出されたおよびパーサーモジュールによって解析されたすべての記号、定数、関数、および述語のインベントリを含むように構成され得る。
【0025】
タルスキーモデルまたはマルチレイヤパーセプトロン(MLP:multilayer perceptron)ネットワークは、解析木(parse tree)および言語の周りに何らかの中間組織を提供することができる。
【0026】
人工知能エンジン100のモデル表現モジュールは、すべての解析木から全ニューラルネットワークを構築することができる。モデル表現モジュールは、意味の学習可能ベクトル表現をオントロジにおける定数/エンティティに、およびそれの関数および述語に学習可能なモデルを割り当てることができる。モデル表現モジュールは、定数に関連するベクトル値を適応させ、ならびに表現および推論のアサーションを真にすることおよび機械学習モデルをトレーニングするために使用されるデータと一致することを目的としてニューラルネットワークのパラメータを適応させることができる。オントロジは、それらのプロパティおよびそれらの間の関係を示す対象エリアまたは領域内の概念およびカテゴリのセットでもよい。モジュール表現は、機械学習モデルに入るパラメータをフラッシュアウトすることができる。ニューラルネットワークは、次いで、変数を学習することになる。
【0027】
理論表現モジュールは、この情報のすべてをまとめ、次いで、ルールのセットに従って大きなニューラルネットワークを有するまとめられた機械学習モデルを作成する。理論表現モジュールにおいて、意味論的推論が、これらの表現に関して直接に実行され得、そして、表現が、知識基盤によっておよびユーザによって供給されたアサーションとの呼応を最大化するために学習されることになる。
【0028】
また、モデル表現モジュールは、単一の固定のモデル表現の使用に対するモデル表現の複数の異なる変形を使用することができる。
【0029】
仕様モジュールは、様々なタルスキーモデル、ファクタディメンション、ニューラルパラメータ、および最適化パラメータを含み得る。仕様モジュールは、一般に使用されるおよびデフォルトの値のシンタックスを提供することができ、そこで、ユーザはデフォルト値をオーバーライドする能力を有する。たとえば、ベクトルディメンションの仕様が与えられ得る。いくつのレイヤおよびいくつのノードのニューラルパラメータがコスト関数のアルゴリズムを用いて仕様モジュールならびに最適化パラメータにおいて設定され得るか、および、どのタイプの最適化が使用されるべきか。トレーニングデータでの反復トレーニングは、トレーニングデータから導出される統計主導の結論を導くことになる。学習アルゴリズムのための初期重みの仕様は、仕様モジュールにおいて設定することができる。モデル表現モジュールなどの様々なモジュールは、仕様モジュールを参照することができる。
【0030】
理論表現モジュールは、ニューラルネットワークをまとめ、機械学習モデルを生成することができる。人工知能エンジン100の理論表現モジュールは、ステートメントのセット内の表現および推論を表すグラフのネットワークを機械学習モデル内に自動的にまとめるようにコード化される。理論表現モジュールは、機械学習モデルにおいて利用される知識表現および推論を表す現在の訂正されたセットのルールを作成するために、パラメータを学習し、モデル内のニューラルネットワークのトレーニングからのフィードバックを提供することができる。
【0031】
定量化サポートモジュールは、機械学習モデルをトレーニングするために使用されるデータでのトレーニングの反復に基づいてルールのセットの一部を構成する異なる定数に関連するベクトルに対する修正をサポートすることができる。
【0032】
学習アルゴリズムモジュールは、まとめられた機械学習モデルのトレーニングに適用することができるいくつかの異なる学習アルゴリズムを含む。人工知能エンジン100の学習アルゴリズムモジュールは、それぞれのルール内の各述語および関数の変数を対象とするように構成され得る。学習アルゴリズムモジュールは、エラーを最小限に抑えるために、ならびに理論表現モジュールによってまとめられた機械学習モデルのためのこれらのコスト関数を供給するために、1以上のコスト関数を使用する。これらのコスト関数は、現在の解釈がルールおよびデータをいかによく満たすかを示す信頼性スコアを提供するために使用することができる。意味論ベクトルは、両方のソース、i)ルールのセットにおける知識表現および推論と機械学習モデルをトレーニングするために使用されるデータでの反復トレーニングから出されたいずれかの結論、との呼応を最大化することによって、学習される。
【0033】
理論表現モジュールから生成された作成された機械学習モデルは、i)理論モジュールを介して専門知識から提供される表現および推論のアサーションと、ii)データでの反復トレーニングから導出された機械学習アサーションとの両方でトレーニングされている。専門知識は、ルールのセットのデータ組織のフレームワークを提供し、データは、命令を参照してパターンを説明する。人工知能エンジン100は、知識表現および推論から導出されたルールのセットをともに使用し、次いで、単独でトレーニングデータを使用する単なる学習より少ないトレーニング周期および計算時間の消費を可能にするために、トレーニングデータから導出されたそれらのルールの理解を適応させる。
【0034】
機械学習モデルについては、既存のシミュレータまたは他のデータソースがトレーニングデータを提供することができる。
【0035】
クエリ結果に説明可能性を与えるために決定が機械学習モデルにおけるニューラルネットワークによってどのように行われるかを提示するように構成されたクエリサポートモジュール。ブールクエリ、自然言語検索クエリ、説明要求、公理補正、およびこれらの任意の組合せからなるグループから選択された様々な人間相互作用を、クエリサポートモジュールを介して、サポートし、次いで、クエリ結果に説明可能性を与えるために、機械学習モデルにおけるニューラルネットワークによって決定がどのように行われるかを提示するように構成されたクエリサポートモジュール。結果の説明可能性は、科学者が、次いで、クエリサポートモジュールを介して知識表現および推論において表現されたプロパティを問い合わせるとき、クエリサポートモジュールが、理論モジュール内の知識表現および推論によって供給された定数、記号、関数、および述語に相互に関連付けし返され得る、トレーニングに説明可能性を与える、結果を掘り下げて結果がなぜこの形であるかを判定する能力でクエリ結果を生成するように構成されるというようなことである。他の実施形態では、それは、掘り下げである必要はなく、そうではなくて、説明が、質問に応答して、提供される。説明可能性は、クエリサポートモジュールを介する知識表現および推論において表現されたプロパティをユーザが問い合わせる場合、次いで、クエリサポートモジュールが、信頼性スコアと、1)その分野の1以上のソースから表現および推論において供給された定数、記号、関数、および述語へのプロパティのマッピングおよび2)そのマッピングに関連する論理ステップの提供のうちの少なくとも1つと、を有するクエリ結果を生成するように構成される。
【0036】
したがって、専門家は、物事がどのように動作するかの用語、公式などを含む彼らの知識基盤を供給する。この設計の副次的利益は、ユーザが、ルールを作成するために使用された供給された用語の初期セット内にない用語または公式を使用する、新しい質問をした場合、ユーザは、多くのより容易な動作を再使用することができる、すなわち、ユーザはトレーニングまたは適応を行う必要はなく、機械学習モジュールの新しいネットワークをただまとめ直し、それを評価する、ということである、ことに留意されたい。
【0037】
次に、AIモデルは、専門家の知識基盤によって設定されたルールセットの制約を使用して、次いで、そのルールのセットでトレーニングし、次いで、分析されているデータ、および学習に基づいて、ルールのセット内の各定数/エンティティ、関数および述語の理解を調整する。それらの定数、関数および述語を使用するデータの反復使用およびトレーニングを介して、次いで、AIエンジン100はまた、意味論的に関係する様々な用語がどのように互いに関係しているかを確かめることができる。これは、それらの異なる用語の反復使用およびトレーニングを介して生じる。
【0038】
AIエンジンは、それの機械学習および推論システムを介して科学的知識のデータ駆動型の発見を加速することになる。この深層適応意味論的論理ネットワークは、「ボトムアップの」データ駆動型モデリングを「トップダウンの」理論的推論と統合する(
図11を参照)。この手法は、生体細胞などの動的システムのモデリング、基本的物理特性に関する純粋に定量的な処置にはあまりに複雑すぎる試み、に必須の定性的推論および定量的推論の両方を統合する。そのような動的システムは、制御可能な工学変数に応答して動作の安定領域の間の遷移に関してモデリングされなければならない。個別の専門用語が定性的および定量的要素にラベルを付けるために導入される。
【0039】
科学者は、楽にそのようなセミフォーマル技術言語を彼らの間で使用して仮説を公式化するおよび新しい実験のアイディアを説明する。生産性を最大化するために、科学者は、そのような用語で通信することができる自動論理推論システムによってサポートされるべきであるが、現在の知識表現および推論方法は、そのような通信が実行可能なオプションであることは滅多にない厳格で徹底的な詳細においてオントロジおよび宣言型知識を指定することを必要とする。さらに、自動化は、高性能のデータ収集技術を開発した生物学、神経科学、および他の分野において現在研究される高度に複雑な動的システムを理解するために必要とされる規模でのデータ処理に必須の統計機械学習ツールでより高いレベルの理論的知識に関する機械推論を支援すべきである。
【0040】
深層適応的意味論論理ネットワークは、科学的進歩のペースを大きく加速する、まさにそのようなシステムを提供することになる。このシステムの新機軸は、実際にシームレスに機械推論に機械学習を支援し、専門用語の使用に適合する意味の分散された(ベクトル)表現を発見するために機械学習を使用することによってセミフォーマル科学言語を計算アルゴリズムに理解可能にさせることである。この方法で、科学および工学に重要な区別は発見および維持される一方で、逆に、無関係の詳細は無視され、形式主義の負荷は減らされ、推論はそらされない。加えて、システムは、理解を危うくなくさせるように/ステートメントが最初にどのように設定されるかに応じて、用語に関連する意味の異なる理解に適応させる。
【0041】
設計者は、ゼロまたはより調整可能なパラメータを有するカスタムメイドの特殊目的のモデルであるいはニューラルネットワークなどの市販の機械学習モデルでこれらのモジュールを実装するオプションを有すること、に留意されたい。パラメータは、事前知識および/またはデータの任意の使用可能な組合せから学習することができる。両方が、それらの表現に必要な論理深度を使用する論理レイヤを介して提示される。データは、通常は、ほとんどまたは全く必要とせず、その場合、形式主義は、機械学習の通常の形でそれを処理することまで縮小し、一方で、知識はより精巧に表現される。学習は、機能モジュールのみならず、それらが動作するエンティティの分散型ベクトル意味論的表現もまた調整し、それにより、データおよび事前知識における黙示的意味を捉える。
【0042】
AIエンジン100は、論理的に構成された学習を使用する。システムは、複雑な科学的理論、実験プロトコル、およびデータをこれに応じた精巧な機械学習アーキテクチャに急速に構成および再構成することを可能にする機械学習にモデル理論的知識表現を組み込む。科学的知識および仮説は、様々な機械学習モジュール、および、使用可能な場合には、静的または調節可能な特殊な領域モデル、によって表される論理の述語および関数で、論理アサーションとしてまとめられる。これらは、論理公式を実装する複雑な機械学習モデルに自動的にまとめられ、次いで、所与の実験データおよび述べられた理論的知識との互換性を最大化するようにトレーニングされる。
【0043】
AIエンジン100は、学習された論理意味論を使用する。システムは、推論が行われる基本的エンティティの意図された意味を学習するためにベクトル空間の意味論的方法を活用する形を使用する。この意味論的適応は、関数および述語の学習に加えて、およびこれらと協調して、行われる。意味論的区別は、それが論理的に記載されるようにそれらが科学に物質的影響をもたらす程度まで単に表され得る。これは、同等に重要なものとしてすべての詳細を衒学的に扱うことから推論プロセスを解放し、機械推論システムにおいて現在可能なものを遥かに超える論理頑健性をもたらす。
【0044】
図2は、知識表現および推論のための深層適応意味論的学習ニューラルネットワークを使用する機械学習モデルを作成するために互いに連携するモジュールを含む人工知能エンジンの一実施形態のブロック図である。
【0045】
理論モジュールは、専門知識データベースおよび/または個別の専門用語の直接ユーザ入力を含む1以上のソースから、人間が述べる知識表現および推論の入力を可能にする。表現および推論は、科学者がシステムを説明および理解することを可能にする用語集を提供するための構造体の定性的および定量的要素にラベルを付けるために導入される。理論モジュールは、アサーションと述語、関数および定数/エンティティの原子論理式とをエンコードし、パーサーモジュールを介して言語モジュールに送るように構成される。言語モジュールは、その他のモジュールと連携して機械学習を使用して専門用語に関連する意味の分散型ベクトル表現を発見することによって、セミフォーマル科学言語を計算アルゴリズムに理解可能にさせるために、1次論理要素を使用する。言語モジュールによって使用される1次論理要素は、ルールが1次の論理、たとえば、次の3つのうちのいずれか、において表現可能なように、論理定数、述語、関数、およびエンティティを含み得る:i)オントロジまたは知識基盤、ii)OWL、KIF、SWRL、および、iii)形式化することができる構造化された知識(たとえば、流れ図)。
【0046】
言語モジュールはまた、専門家のステートメントから導出されたおよびパーサーモジュールによって解析されたすべての記号、定数、関数および述語のインベントリを含むように構成される。
【0047】
モデル表現モジュールは、ステートメント内のすべての記号を取り込み、それらの各々をニューラルネットワークのそれら自体のサブグラフと関連付けるように構成される。モデル表現モジュールはまた、ステートメント内のすべての定数を取り込むおよびそれらをニューラルネットワークのサブグラフへの入力として意味論的ベクトルにマップするように構成される(グラフィックで、
図4および5を参照)。モデル表現モジュールはまた、供給されたステートメント内のすべての述語を取り込むおよびそれらをニューラルネットワークのサブグラフにマップするように構成される(グラフィックで、
図4および5を参照)。モデル表現モジュールはまた、供給されたステートメント内のすべての関数を取り込み、それらをニューラルネットワークのサブグラフにマップするように構成される。モデル表現モジュールもまた、各ニューラルネットワークおよびそれの学習されたベクトルにアノテーションするように構成される。
【0048】
深層適応的意味論学習ニューラルネットワークが、第1の機械学習モデルに自動的にまとめられて、それのニューラルネットワークトポロジにエンコードされた表現および推論を表すことができるように、モデル表現モジュールは、意味論的ベクトル、ニューラルネットワーク、およびカスタム構造を用いることができる。
【0049】
言語モジュールは、ルールのセット内の定数をモデル表現モジュールに送って、トレーニング可能な意味論ベクトルをそれぞれの定数に割り当てることができる。言語モジュールはまた、ルールのセット内の記号をモデル表現モジュールに送って固定の微分関数を適用するように構成される。言語モジュールはまた、述語および関数をモデル表現モジュールに送ってトレーニング可能なマルチレイヤパーセプトロン(MLP)ニューラルネットワークを使用するように構成される。
【0050】
モデル表現モジュールはまた、仕様モジュールの参照に基づいてニューラルネットワーク内に進む任意のパラメータをフラッシュアウトすることができる。
【0051】
一実施形態において、タルスキーモデルが、記号、定数、関数、および述語をマップするために使用される。タルスキーモデルは、それのニューラルネットの各記号および定数をマップするための何らかの論理を有する。
【0052】
理論表現モジュールは、次いで、すべてのニューラルネットワークを取り込むおよびそれらを理論表現モジュールに送って機械学習モデルにおいてそれらのすべてを構築するように構成される。
【0053】
理論表現モジュールからのまとめられた機械学習モデルは、推論が行われる定数/エンティティの意図された意味を学習するために、ベクトル空間意味論的方法を活用することができる。この意味論的適応は、関数および述語の学習に加えて、およびこれらに協調して、行われる。理論表現モジュールは、理論モジュールにおいて専門家によって行われたアサーションを表すグラフのネットワークを含む機械学習モデルを自動的にまとめる。専門知識が、解析ネットワークトポロジにおいてエンコードされる。
【0054】
人工知能エンジン200は、合意オントロジ内への異種の知識ソースのマッピングから、ならびにこのオントロジ内へのユーザ入力のマッピングから必ず生じる誤りにもかかわらず、そのシステム機能を賢く守る。
【0055】
人工知能エンジン200は、専門知識からの推論およびデータからの学習がともに行われることを可能にすることになる人工知能を提供し、知識およびデータの両方の入力要件を最小限にし、推論を今日利用可能なものより頑強にする。
【0056】
人工知能エンジン200は、それらの大まかな意味からそれらの知識表現および推論の専門家の意図した意味を学習し、次いで、関連データでの反復トレーニングからそれらの意味を精緻化する。知識駆動型およびデータ駆動型の機械推論の組合せは、人工知能のアプリケーションが基本のおよび適用される発見の速度を数桁増やすことを可能にすることになる。
【0057】
図3は、理論モジュールによってエンコードされるおよびパーサーモジュールによって解析されることになる例示的セットのルールおよび述語の一実施形態の図を示す。
【0058】
理論モジュールは、コンピューティングデバイスによって理解可能なセミフォーマル言語での知識表現および推論に対応し、ユーザがルール302を設定するおよび定数、述語/プロパティを指示することを可能にする。
【0059】
理論モジュールおよび言語モジュールは、ユーザ/専門家が1次の論理(ルールのセット302と呼ばれる)においてフォーマル言語で1セットのステートメントを書くことを可能にするために連携する。ルールのセット302は、セミフォーマルプログラミング言語でエンコードされた1セットのステートメントである。たとえば、図に示されたルール302を参照。例示的なルールの初期セット302は:
(∀x,y)(friends(x,y)→friends(y,x))
(∀x,y)((smokes(x)∧friends(x,y))→smokes(y))
(∀x)(smokes(x)→hasCancer(x))
xおよびyベクトルがルールにおいて変化するとき、それらのルールの解釈は変化する。
【0060】
加えて、ステートメントからの、ボブ、ピーター、ヒューイ、またはルイなど、各定数は、ステートメントから、癌である、喫煙、友達であるなどの述語304および/または関数を有することができる。例示的述語304は、癌である、喫煙、友達であるなどを含む。
【0061】
図4は、ステートメント内のすべての定数を取り込むおよびそれらをニューラルネットワークのサブグラフへの入力として意味論的ベクトルにマップするように構成された、タルスキーモデル、モデル表現モジュールおよび/または言語モジュールなどの、モジュールの一実施形態のブロック図を示し、モジュールはまた、供給されたステートメント内のすべての述語を取り込み、それらをニューラルネットワークのサブグラフにマップし、次いで、ステートメントの解析木から全ネットワークを構築するように構成される。
【0062】
説明されたように、人工知能エンジン400のパーサーモジュールは、1セットのステートメント内のエンコードされた表現および推論を経て、ステートメントの部分をそのステートメントにおける定数、記号、述語、および/または関数のカテゴリに解析することができる。(
図3、5、および8も参照)。パーサーモジュールは、ステートメントのこれらの異なる部分がどのカテゴリに入るかをシンタックスから知るように構成され得る。断定された知識を表す論理公式の解析木は、開示の領域の定数が実数ベクトルによって表される深層ニューラルネットワークの基本構造を生成する。
【0063】
次に、人工知能エンジンの、タルスキーモデル、モデル表現モジュールおよび/または言語モジュールなどの、モジュールは、各定数(たとえば、エンティティ/オブジェクト/人/名前)をパラメータ化されたベクトルにマップするように構成され得る。ボブ、ピーター、ヒューイ、およびルイなど、各定数は、ノードのサブグラフに入力としてマップされる。人工知能エンジンのモジュールはまた、喫煙、癌である、または友達であるなどの各述語または関数をパラメータ化されたニューラルネットワークにマップするように構成される。理論入力モジュールからステートメントとして入力された知識からの各述語/関数は、ノード/パラメータ化されたニューラルネットワークの独自のサブグラフを有する。(
図5も参照)
【0064】
人工知能エンジン400の、モデル表現モジュールおよび/または有向アクリルグラフモジュールなどの、別のモジュールは、公式解析木から全ニューラルネットワークを構築するように構成され得る。説明されたように、パーサーモジュールおよび言語モジュールは、ステートメントの定数が後でベクトルと関連付けられる深層ニューラルネットワークの構造を定義するために、断定された知識を表す論理公式の解析木を作成するために連携することができる。モデル表現モジュールは、表現および推論のアサーションを真にすることならびに機械学習モデルをトレーニングするために使用されるデータと一致することを目的として、ニューラルネットワークのベクトル値ならびにパラメータを適応させることができる。
【0065】
ルールのセット内のすべてのステートメントの解析木を使用して、AIエンジンは、科学的理論の全意味論を実装する対応する機械学習モデルを自動的に構築することになる。適応意味論的学習を使用する深層ニューラルネットワーク(DASL:deep neural network using adaptive semantic learning)の証明論的生成の本例では、モデリング構築プロセスは:
1.各人をパラメータ化されたベクトルにマップする、
2.各述語/関数をパラメータ化されたネットワークにマップする、
3.全ネットワークを公式解析木から構築する、
4.各ルールの定数の述語および関数の各データカラムの変数を対象とする
(
図3のカラムを参照)、
5.パラメータを学習する(ネットワークをトレーニングする)、および、
6.ネットワークの定数ならびにパラメータのベクトル値が、ルールのセット内のアサーションを真とさせるおよび機械学習モデルをトレーニングするために使用されているデータと一致させるように適合される。
【0066】
図5および6は、各ステートメントを解析してそのステートメント内の定数、記号、述語および/または関数のカテゴリへの解析ストリームを生み出すように構成されたパーサーモジュールの一実施形態の図を示し、パーサーモジュールはまた、ノードモジュールの有向アクリルグラフと連携して各ステートメントを経て各ステートメントをそれ自体の木構造のノードに、次いでそのステートメント内の各述語および/または関数のノードのレイヤに向けるように構成される。
【0067】
ステートメントからの、ボブ、ピーター、ヒューイ、またはルイなどの、各定数500は、ステートメントからの、癌である、喫煙、友達であるなどの述語および/または関数を有することができる。パーサーモジュールは、専門家によって供給された知識から解析された異なる述語/関数の解析木を作成する。エンジンのモジュールは、喫煙、癌であるまたは友達であるなどのパラメータ化されたネットワークに各述語/関数をマップすることができる。エンジンのモジュールのモジュールは、ボブ、ピーターなどの定数のグラフへの入力を行うことができる。また、各定数は、ノードのグラフの独自のセットを有することができる。
【0068】
図6は、解析ストリームの喫煙(S)、友達(F)および癌である(C)のネットワーク600の全セットの一例を示す。
【0069】
図7は、i)機械学習モデルをトレーニングするために使用されるデータ内で発見された意味論的に類似の専門用語がモジュールによって論理的に関連付けられることを可能にすること、ii)ユーザによって供給された意味論的に類似の用語のリストが人工知能エンジンのモジュールによって論理的に関連付けられることを可能にすること、およびiii)意味論的に類似の専門用語を論理的に関連付けるためにモジュールによって使用されることになるこれらの2つの任意の組合せによって、エンコードされたルールのセットを適応させる、ように構成された1以上のモジュールの一実施形態のブロック図である。モジュールはまた、トレーニングデータから導出された統計主導の結論を使用する初期セットのルールの異なる定数に関連するベクトルを修正することによってエンコードされたルールの初期セットを修正するように構成される。
【0070】
ステートメントの初期セットにおいて見つけられるおよび/またはトレーニングデータにおいて見つけられる1セットの用語は、意味論的に類似の用語でもよい。たとえば、「女性」、「女王」、および「妃殿下」は、トレーニングされている特定のデータおよび/またはステートメントの初期セットにおいて、すべて意味論的に類似の用語でもよい。いくつかのファクタに基づいて、ある特定の用語が、より類似するベクトルを、故に関係を有することになる。図示された例では、猫と犬は、コンピュータと犬と比べてより類似するベクトル700を有する。本例では、類似の用語、猫と犬は、互いに近いベクトル700を有する。本明細書で、意味論は、ルールの解釈を指す。
【0071】
実施形態において、ステートメントにおいてまたはトレーニングデータにおいて見つけられた用語の各インスタンスは、その用語の総合的ベクトルを決定するために、次いで数学的に要約または平均化される独自のベクトルを割り当てられる。加えて、意味論的に類似の用語は、特定の用語の総合的ベクトルに重み付け/因数分解され得る。
【0072】
類似の意味(動作)を有するエンティティの間で、それらが同じ名前を有するかどうかにかかわらず、論理統一が生じるように、類似のやり方で動作するエンティティは、類似のベクトルを取得し、論理推論が、これらのベクトルに関して実行される。この手法は、アサーションがどのように述べられるかに極端な規範を課すことなくシステムが機能することを可能にする。
【0073】
システムは、エンティティのベクトルメトリクスを比較し、異なる表現についてベクトルメトリクスがどのくらい近いかを確かめることができる。
【0074】
AIエンジンは、学習された意味論的ベクトル表現を人、機関、職位などのエンティティに割り当てることによって、存在論的厳格性に対する頑健性を達成する。知識基盤によって提供され得るように、適切なデータが入手可能であるときに初期化のために標準方法を使用することができるが、言語資料内の共起統計に基づく標準方法とは対照的に、すべてモデルパラメータであるものとして、論理アサーションおよびデータとの呼応を最大化することによって、意味論的ベクトルが学習される。
【0075】
AIエンジンは、専門用語と、それらが互いにどのように関係するかに注目する。モデル表現モジュールは、学習されたそれらに割り当てされたベクトルを有する定数の調整可能なパラメータを調整することができる。用語のベクトル意味論は、AIエンジンによって割り当てられて、類似の単語を類似のベクトルと関連付けることによって学習を支援する。AIエンジンは、統計資料および使用状況から用語および導出された意味を描くことができる。AIエンジンは、ファクタとして共用プロパティに注目して、意味論的に類似のベクトルを決定し、浅い推論を可能にし、これ故に、より少ない計算を可能にする。AIエンジンはまた、フォーマル推論システムにおいて記号のベクトル意味論を学習することができる。AIエンジンは、フォーマルシステムのルールによってのみ提供されるより強固な推理能力を達成することができる。
【0076】
AIエンジンは、フォーマル推論システムにおいて記号のベクトル意味論を学習することになる。AIエンジンは、フォーマルシステムのルールによってのみ提供可能なものよりもさらに強固な推理能力を達成することになる。
【0077】
図8は、専門家によって第1のステートメントから導出されたおよびパーサーモジュールによって解析されたすべての記号、定数、関数、および述語のインベントリを含むように構成された言語モジュールの一実施形態のブロック図である。
【0078】
知識は、「(forall x)[B(x)implies F(x)」などおよび示された「isAbove(a,b)」および「a=b:isRed(a)」など、論理フォーマットで断定することができる。
【0079】
これらの公式の構造は、学習可能なパラメータを有するネットワークに直接変換される。AIエンジン750は、ユーザ入力を可能にするサブネットワークを設計する、および/またはデフォルトネットワーク構造のファミリからグラフ構造を選択する。パラメータは、次いで、深層ニューラルネットワーク技法を使用し、推定することができる。トレーニングの目的は、すべての論理アサーションおよびすべての入手可能なデータ評価を「真」にすることである。
【0080】
したがって、知識表現が、理論モジュールに入力され得る:「世界について語る」。ステートメント内の言語は、世界の可能なオブジェクトに対応する定数「a」および「b」を含み得る。ステートメント内の言語は、g(・,・)、f(・)などの関数記号をさらに含み得る。ステートメント内の言語は、オブジェクト間の関係を示す、述語記号isAbove(・,・)、isRed(・)をさらに含み得る。ステートメント内の言語は、原子論理式をさらに含み得る:「isAbove(a,b)」および「a=b:isRed(a)」。原子論理式は、論理結合子を適用することによって、構築することができる。
ネットワーク
【0081】
図9は、人工知能エンジンの一実施形態によるネットワーク環境において互いに通信するいくつかの電子システムおよびデバイスの図である。ネットワーク環境800は、通信ネットワーク820を有する。ネットワーク820は、光ネットワーク、セルラネットワーク、インターネット、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、衛星ネットワーク、ファイバネットワーク、ケーブルネットワーク、およびその組合せから選択される1以上のネットワークを含み得る。一実施形態において、通信ネットワーク820は、インターネットである。図示するように、多数のサーバコンピューティングシステムと、通信ネットワーク820を介して互いに接続された多数のクライアントコンピューティングシステムとが存在し得る。しかしながら、たとえば、単一クライアントコンピューティングシステムはまた単一サーバコンピューティングシステムに接続され得ることを理解されたい。したがって、サーバコンピューティングシステムおよびクライアントコンピューティングシステムの任意の組合せが、通信ネットワーク820を介して互いに接続し得る。
【0082】
通信ネットワーク820は、少なくとも第1のサーバコンピューティングシステム804Aおよびa第2のサーバコンピューティングシステム804Bから選択された1以上のサーバコンピューティングシステムを、互いに、そしてさらに少なくとも1以上のクライアントコンピューティングシステムに、接続することができる。サーバコンピューティングシステム804Aは、たとえば、1以上のサーバシステム220でもよい。サーバコンピューティングシステム804Aおよび804Bは、データベース806Aおよび806Bなどの系統的なデータ構造体を任意選択で各々含み得る。1以上のサーバコンピューティングシステムの各々は、1以上の仮想サーバコンピューティングシステムを有することができ、複数の仮想サーバコンピューティングシステムは、設計によって実装され得る。1以上のサーバコンピューティングシステムの各々は、データ完全性を保護するために、1以上のファイヤーウォールを有することができる。
【0083】
少なくとも1以上のクライアントコンピューティングシステムは、第1のモバイルコンピューティングデバイス802A(たとえば、アンドロイドベースのオペレーティングシステムを有するスマートフォン)、第2のモバイルコンピューティングデバイス802E(たとえば、iOSベースのオペレーティングシステムを有するスマートフォン)、第1のウェアラブル電子デバイス802C(たとえば、スマートウォッチ)、第1のポータブルコンピュータ802B(たとえば、ラップトップコンピュータ)、第3のモバイルコンピューティングデバイスまたは第2のポータブルコンピュータ802F(たとえば、アンドロイドまたはiOSベースのオペレーティングシステムを有するタブレット)、第1のスマート自動車802Dに組み込まれたスマートデバイスまたはシステム、第1のスマート自転車802Gに組み込まれたスマートデバイスまたはシステム、第1のスマートテレビジョン802H、第1の仮想現実または拡張現実ヘッドセット804Cなどから選択することができる。クライアントコンピューティングシステム802Bは、たとえば、1以上のクライアントシステム210のうちの1つでもよく、その他のクライアントコンピューティングシステム(たとえば、802A、802C、802D、802E、802F、802G、802H、および/または804C)のうちのいずれか1以上は、たとえば、ソフトウェアアプリケーション、またはトレーニングされたAIモデルをその中に配備することができるハードウェアベースのシステムを含むことができる。1以上のクライアントコンピューティングシステムの各々は、データ完全性を保護するための1以上のファイヤーウォールを有することができる。
【0084】
「クライアントコンピューティングシステム」および「サーバコンピューティングシステム」という用語の使用は、一般に通信を開始するシステムおよび一般に通信に応答するシステムを示すことが意図されていることを理解されたい。たとえば、クライアントコンピューティングシステムは、一般に通信を開始することができ、サーバコンピューティングシステムは、一般に通信に応答する。明示的に記述されていない限り、階層は暗示されていない。両方の機能は、単一通信システムまたはデバイス内でもよく、その場合、クライアント-サーバおよびサーバ-クライアントの関係はピアツーピアとしてみることができる。したがって、第1のポータブルコンピュータ802B(たとえば、クライアントコンピューティングシステム)およびサーバコンピューティングシステム804Aが両方とも通信を開始し、これに応答することができる場合、それらの通信は、ピアツーピアと見ることができる。加えて、サーバコンピューティングシステム804Aおよび804Bは、ネットワーク820を通して互いに通信することを可能にする回路およびソフトウェアを含む。サーバ804Bは、たとえば、シミュレータデータをサーバ804Aに送ることができる。
【0085】
サーバコンピューティングシステムのいずれか1以上は、クラウドプロバイダでもよい。クラウドプロバイダは、クラウド(たとえば、インターネットなどのネットワーク820)内にアプリケーションソフトウェアをインストールし、動作させることができ、クラウドユーザは、クライアントコンピューティングシステムのうちの1以上からアプリケーションソフトウェアにアクセスすることができる。一般に、クラウド内にクラウドベースのサイトを有するクラウドユーザは、アプリケーションソフトウェアが動作するクラウドインフラストラクチャまたはプラットフォームを1人で管理することはできない。したがって、サーバコンピューティングシステムおよびその系統的なデータ構造体は、共用リソースでもよく、各クラウドユーザは、共用リソースのある特定の量の専用使用を与えられる。各クラウドユーザのクラウドベースのサイトは、クラウド内の仮想量の専用空間および帯域幅を与えられ得る。クラウドアプリケーションは、変化する作業需要を満たすために実行時間に複数の仮想機械にタスクをコピーすることによって達成することができる、拡張可能性で他のアプリケーションとは異なり得る。ロードバランサは、仮想機械のセットで作業を分散する。このプロセスは、単一アクセスポイントのみを見るクラウドユーザに対して透過的である。
【0086】
クラウドベースのリモートアクセスは、クライアントコンピューティングシステムに常駐するウェブブラウザアプリケーションなどのクライアントコンピューティングシステム上のアプリケーションとの要求および応答周期に従事するためにハイパーテキスト転送プロトコル(「HTTP」)などのプロトコルを使用するためにコード化することができる。クラウドベースのリモートアクセスは、いつでもおよび/またはどこでも、スマートフォン、デスクトップコンピュータ、タブレット、または任意の他のクライアントコンピューティングシステムによってアクセスされ得る。クラウドベースのリモートアクセスは、1)すべてのウェブブラウザベースのアプリケーションからの要求および応答周期と、3)専用オンラインサーバからの要求および応答周期と、4)クライアントデバイス上に常駐するネイティブアプリケーションと、別のクライアントコンピューティングシステムへのクラウドベースのリモートアクセスとの間の直接の要求および応答周期と、5)これらの組合せとに従事するようにコード化される。
【0087】
一実施形態において、サーバコンピューティングシステム804Aは、サーバエンジン、ウェブページ管理構成要素または直接アプリケーション構成要素、コンテンツ管理構成要素、およびデータベース管理構成要素を含み得る。サーバエンジンは、基本の処理およびオペレーティング-システムレベルタスクを実行することができる。ウェブページ管理構成要素は、ブラウザを介して、デジタルコンテンツおよびデジタル広告の受信および提供に関連するウェブページまたは画面の作成および表示またはルーティングを処理することができる。同様に、直接アプリケーション構成要素は、ユーザのデバイスに常駐するクライアントアプリと連動することができる。ユーザ(たとえば、クラウドユーザ)は、それに関連するユニフォームリソースロケータ(「URL」)を用いてサーバコンピューティングシステムのうちの1以上にアクセスすることができる。コンテンツ管理構成要素は、本明細書に記載の実施形態において機能のほとんどを処理することができる。データベース管理構成要素は、データベースに関する記憶および取得タスクと、データベースへのクエリと、データの記憶とを含み得る。
【0088】
一実施形態において、サーバコンピューティングシステムは、ウインドウ、ウェブページなどに情報を表示するように構成され得る。任意のプログラムモジュール、アプリケーション、サービス、プロセス、および、たとえばサーバコンピューティングシステム804Aで、実行されると実行可能な他の類似のソフトウェアを含む、アプリケーションは、サーバコンピューティングシステム804Aに表示画面空間の一部においてウインドウおよびユーザインターフェース画面を表示させることができる。
【0089】
各アプリケーションは、所望の情報の詳細を取得するためのフィールドの提示など、実行するためにソフトウェア構成要素がコード化される機能を実行するために記述されたコードを有する。たとえばサーバコンピューティングシステム804A内の、アルゴリズム、ルーチン、およびエンジンは、提示フィールドから情報を取得し、データベース(たとえば、データベース806A)などの適切な記憶媒体にその情報を配置することができる。比較ウィザードは、データベースを参照するために記述することができ、そのようなデータの使用を行うことができる。アプリケーションは、たとえば、サーバコンピューティングシステム804Aでホストされてもよく、たとえば、クライアントコンピューティングシステム802Bの、特定のアプリケーションまたはブラウザに供されてもよい。アプリケーションは、そのとき、詳細の入力を可能にするウインドウまたはページを供する。
コンピューティングシステム
【0090】
図10は、本明細書で説明される人工知能エンジンおよびその関連モデルに関連するシステムの一部でもよい1以上のコンピューティングデバイス900の一実施形態の図を示す。コンピューティングデバイスは、命令を実行するための1以上のプロセッサまたは処理ユニット920、情報を記憶するための1以上のメモリ930~932、コンピューティングデバイス900のユーザからデータ入力を受け付けるための1以上のデータ入力構成要素960~963、管理モジュールを含む1以上のモジュール、コンピューティングデバイス外部の他のコンピューティングデバイスと通信するための通信リンクを確立するためのネットワークインターフェース通信回路970、センサからの出力が特定のトリガ条件を検知してこれに応じて1以上の事前にプログラムされたアクションを生成するために使用される、1以上のセンサ、1以上のメモリ930~932および他の構成要素に記憶された情報の少なくとも一部を表示するための表示画面991を含み得る。ソフトウェア944、945、946に実装されたこのシステムの部分は、1以上のメモリ930~932に記憶されてもよく、1以上のプロセッサ920によって実行される、ことに留意されたい。
【0091】
システムメモリ930は、読み取り専用メモリ(ROM)931およびランダムアクセスメモリ(RAM)932などの揮発性および/または不揮発性メモリの形でコンピュータ記憶媒体を含む。これらのコンピューティング機械可読媒体は、コンピューティングシステム900によってアクセスされ得る任意の入手可能な媒体でもよい。一例として、但し限定ではなく、コンピューティング機械可読媒体の用途は、コンピュータ可読命令、データ構造体、他の実行可能ソフトウェア、または他のデータなどの情報の記憶を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは、所望の情報を記憶するために使用することができるおよびコンピューティングデバイス900によってアクセスすることができる任意の他の有形媒体を含むが、これらに限定されない。ワイヤレスチャネルなどの一時的媒体は、機械可読媒体に含まれない。通信媒体は、通常は、コンピュータ可読命令、データ構造体、他の実行可能ソフトウェア、または他の移送機構を実施し、任意の情報配信媒体を含む。
【0092】
システムはさらに、起動中など、コンピューティングシステム900内の要素間での情報の転送を助けるおよび通常はROM931に記憶される基本ルーチンを含む基本入力/出力システム933(BIOS)を含む。RAM932は、通常は、処理ユニット920に直ちにアクセス可能なおよび/または処理ユニット920によって現在動作させられているデータおよび/またはソフトウェアを含む。一例として、そして限定ではなく、RAM932は、オペレーティングシステム934の一部分、アプリケーションプログラム935、他の実行可能ソフトウェア936、およびプログラムデータ937を含み得る。
【0093】
コンピューティングシステム900はまた、他の取り外し可能な/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体も含み得る。単に一例として、システムは、ソリッドステートメモリ941を有する。ソリッドステートメモリ941は通常は、インターフェース940などの取り外し不可能なメモリインターフェースを介してシステムバス921に接続され、USBドライブ951は通常は、インターフェース950などの取り外し可能なメモリインターフェースによってシステムバス921に接続される。
【0094】
ユーザは、キーボード、タッチ画面、またはソフトウェアもしくはハードウェア入力ボタン962、マイクロフォン963、マウス、トラックボールもしくはタッチバッドなどのポインティングデバイスおよび/またはスクロール入力構成要素など、入力デバイスを介してコンピューティングシステム900にコマンドおよび情報を入力することができる。これらのおよび他の入力デバイスは、システムバス921に連結されたユーザ入力インターフェース960を介して処理ユニット920にしばしば接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)など、他のインターフェースおよびバス構造体によって接続することができる。表示モニタ991または他のタイプの表示画面デバイスはまた、表示インターフェース990などのインターフェースを介してシステムバス921に接続される。モニタ991に加えて、コンピューティングデバイスはまた、出力周辺インターフェース995を介して接続され得る、スピーカ997、振動器999、および他の出力デバイスなどの他の周辺出力デバイスを含み得る。
【0095】
コンピューティングシステム900は、リモートコンピューティングシステム980などの1以上のリモートコンピュータ/クライアントデバイスへの論理接続を使用するネットワーク化された環境において動作することができる。リモートコンピューティングシステム980は、パーソナルコンピュータ、モバイルコンピューティングデバイス、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードでもよく、通常は、コンピューティングシステム900に関連して前述した要素の多数またはすべてを含む。論理接続は、パーソナルエリアネットワーク(PAN)972(たとえば、Bluetooth(登録商標))、ローカルエリアネットワーク(LAN)971(たとえば、Wi-Fi)、およびワイドエリアネットワーク(WAN)973(たとえば、セルラネットワーク)を含むことができるが、パーソナルエリアネットワーク(たとえば、Bluetooth(登録商標))などの他のネットワークも含み得る。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは普通に存在する。ブラウザアプリケーションは、コンピューティングデバイスに常駐し得、メモリに記憶され得る。
【0096】
LANネットワーク環境において使用されるとき、コンピューティングシステム900は、たとえばBluetooth(登録商標)またはWi-Fiアダプタでもよい、ネットワークインターフェース970を介してLAN971に接続される。WANネットワーク環境(たとえば、インターネット)において使用されるとき、コンピューティングシステム900は通常は、WAN973を介する通信を確立するための何らかの手段を含む。モバイル電気通信技術に関して、たとえば、内部または外部でもよい無線インターフェースは、ネットワークインターフェース970、または他の適切な機構を介して、システムバス921に接続され得る。ネットワーク化された環境では、コンピューティングシステム900に関連して図示された他のソフトウェア、またはその部分は、リモートメモリストレージデバイスに記憶され得る。一例として、そして限定ではなく、システムは、リモートコンピューティングデバイス980に常駐するものとしてリモートアプリケーションプログラム985を有する。図示されたネットワーク接続は、使用され得るコンピューティングデバイス間の通信リンクの確立の例および他の手段であることが理解されよう。
【0097】
説明されたように、コンピューティングシステム900は、処理ユニット920、メモリ(たとえば、ROM931、RAM932など)、コンピューティングデバイスに電力を供給するための内蔵型バッテリ、バッテリを充電するためのAC電源入力、表示画面、ネットワークに接続されたリモートコンピューティングデバイスとワイヤレスで通信するための内蔵型Wi-Fi回路を有するモバイルデバイスを含み得る。
【0098】
本設計は、本明細書に示されることに関して記述されたものなどのコンピューティングシステムで実施され得ることに留意されたい。しかしながら、本設計は、サーバ、メッセージ処理専用のコンピューティングデバイス、あるいは本設計の異なる部分が分散型コンピューティングシステムの異なる部分で実施される分散型システムで実施することができる。
【0099】
一部の実施形態では、本明細書で説明されるアルゴリズムを円滑化するために使用されるソフトウェアは、非一時的機械可読媒体に組み込まれ得る。機械可読媒体は、機械(たとえば、コンピュータ)によって読み取り可能な形で情報を記憶する任意の機構を含む。たとえば、非一時的機械可読媒体は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、デジタル多用途ディスク(DVDの)、EPROM、EEPROM、フラッシュメモリ、磁気または光カード、または、電子命令の記憶に適した任意のタイプの媒体を含み得る。
【0100】
本明細書に記載のアプリケーションは、ソフトウェアアプリケーション、モバイルアプリケーション、およびオペレーティングシステムアプリケーションの一部であるプログラムを含むが、これらに限定されない、ことに留意されたい。本記述のいくらかの部分は、コンピュータメモリ内のデータビットでの動作のアルゴリズムおよび象徴的表現に関して提示される。これらのアルゴリズム的記述および表現は、データ処理技術の当業者によって他の当業者に彼らの作業の要旨を最も効果的に伝達するために使用される手段である。アルゴリズムは、ここでは、そして一般に、所望の結果をもたらすステップの自己矛盾のないシーケンスであると考えられている。ステップは、物理量の物理的操作を必要とするものである。通常は、但し必ずではなく、これらの物理量は、記憶、転送、結合、比較、および他の方法で操作することができる電気または磁気信号の形を取る。それは、主に共通使用を理由として、これらの信号をビット、値、要素、記号、文字、用語、数などとして参照することが、時には便利であると証明した。これらのアルゴリズムは、C、C+、HTTP、Java、Python、または他の類似の言語などのいくつかの異なるソフトウェアプログラミング言語で書かれ得る。また、アルゴリズムは、ソフトウェア内のコードライン、ソフトウェア内の構成された論理ゲート、またはその両方の組合せにおいて実装され得る。一実施形態において、論理は、ブール論理のルールに従う電子回路、命令のパターンを含むソフトウェア、またはその両方の任意の組合せから成る。ソフトウェアに実装されるアルゴリズムの任意の部分が、メモリの一部において実行可能なフォーマットで記憶され得、1以上のプロセッサによって実行される。
【0101】
しかしながら、これらのおよび類似の用語のすべては、適切な物理量に関連付けられることになり、これらの物理量に適用される単に便宜的ラベルである、ことに留意されたい。具体的に別段の指示のない限り、前述の論考から明らかなように、本明細書を通して、「処理」または「計算」または「算出」または「決定」または「表示」などの用語を使用する論考は、コンピュータシステムまたはコンピュータシステムのレジスタおよびメモリ内の物理(電子)物理量として表されたデータを操作し、コンピュータシステムメモリもしくはレジスタまたは他のそのような情報記憶、伝送もしくは表示デバイス内の物理量として同様に表される他のデータに変換する、類似の電子コンピューティングデバイスのアクションおよびプロセスを参照することが理解されよう。
【0102】
電子ハードウェア構成要素によって実行される多数の機能は、ソフトウェアエミュレーションによって重複して行われ得る。したがって、それらの同じ機能を達成するために書かれたソフトウェアプログラムは、入力-出力回路内のハードウェア構成要素の機能をエミュレートすることができる。したがって、前述のシステムのコンピューティングデバイス上の1以上のプロセッサによって実行されるときに、本明細書に記載のように概説される動作をコンピューティングデバイスに実行させる、命令およびデータを記憶するように構成された1以上の非一時的機械可読媒体が、本明細書では提供される。
【0103】
本明細書における「実施形態」、「例」などの参照は、記載された実施形態または例が特定の特徴、構造、または特性を含み得ることを示すが、あらゆる実施形態が特定の特徴、構造、または特性を必ずしも含まなくてもよい。そのような語句は、必ずしも同じ実施形態を参照していなくてもよい。さらに、特定の特徴、構造、または特性が一実施形態に関して記載されるとき、それは、明示的に指示されていてもいなくても、他の実施形態に関するそのような特徴、構造、または特性に影響を及ぼすことが当業者の知識内にあると考えられる。
【0104】
前述の設計およびその実施形態は、かなり詳細に提供されてあるが、本明細書で提供される設計および実施形態についての本出願の意図は制限することではない。追加の適応および/または修正形態が可能であり、そして、より広い側面では、これらの適応および/または修正形態もまた含まれる。したがって、以下の特許請求の範囲によって与えられる範囲を逸脱せずに前述の設計および実施形態からの逸脱が行われ得、その範囲は、適切に解釈されるとき、特許請求の範囲によってのみ制限される。