IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特表2024-519722ユーザナビゲーション推奨のための人間可読説明の作成
<>
  • 特表-ユーザナビゲーション推奨のための人間可読説明の作成 図1
  • 特表-ユーザナビゲーション推奨のための人間可読説明の作成 図2
  • 特表-ユーザナビゲーション推奨のための人間可読説明の作成 図3
  • 特表-ユーザナビゲーション推奨のための人間可読説明の作成 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-21
(54)【発明の名称】ユーザナビゲーション推奨のための人間可読説明の作成
(51)【国際特許分類】
   G06F 3/048 20130101AFI20240514BHJP
   G06N 20/00 20190101ALI20240514BHJP
   G06N 3/044 20230101ALI20240514BHJP
   G06N 3/045 20230101ALI20240514BHJP
【FI】
G06F3/048
G06N20/00
G06N3/044
G06N3/045
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023568069
(86)(22)【出願日】2022-04-13
(85)【翻訳文提出日】2023-12-18
(86)【国際出願番号】 US2022024687
(87)【国際公開番号】W WO2022235404
(87)【国際公開日】2022-11-10
(31)【優先権主張番号】17/302,429
(32)【優先日】2021-05-03
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】レザイーアン,アミール・ホセイン
(72)【発明者】
【氏名】ポッレーリ,アルベルト
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA79
5E555BA02
5E555BB02
5E555BC17
5E555CC03
5E555EA19
5E555FA00
(57)【要約】
ナビゲーション推奨のための人間可読説明(本明細書において「理由」とも呼ばれる)を生成するための技術が開示されている。人間可読説明を作成することは、次いでナビゲーション推奨のための人間可読説明を生成するために分析され、組み合わされ、再配置され、修正され、または除去される単語またはフレーズを個々に選択することを含む。デコーダは、機械学習モデルを訓練し、(1)過去の推奨ベクトルおよび(2)推奨ベクトルに関連した過去の人間可読理由に基づいて、ナビゲーション推奨のための人間可読理由を生成する。システムは、推奨のための人間可読理由のディクショナリを生成し、ディクショナリの各々のエントリは、(1)推奨されるナビゲーションターゲットに関連した推奨識別子(ID)、(2)推奨のための特定の理由に関連した理由識別子(ID)および(3)理由IDに関連した人間可読理由を含む。
【特許請求の範囲】
【請求項1】
1つまたは複数のハードウェアプロセッサによって実行されたときオペレーションの実行を引き起こす命令を含む非一時的コンピュータ可読媒体であって、前記オペレーションは、
ターゲットユーザインターフェースナビゲーション推奨のための人間可読理由を生成するために機械学習モデルを訓練するステップを含み、
前記機械学習モデルを訓練するステップは、
過去のユーザインターフェースナビゲーション情報の訓練データセットを取得するステップを含み、前記訓練データセットは、
特定のユーザインターフェースナビゲーション推奨を表す第1のベクトルと、
前記特定のユーザインターフェースナビゲーション推奨のための人間可読理由を表す第2のベクトルと、を含み、
前記機械学習モデルを訓練するステップは、
前記第1のベクトルに基づいて、前記特定のユーザインターフェースナビゲーション推奨のための特定の人間可読理由を構成する単語の順序付けられたシーケンスを表す出力ベクトルのシーケンスを生成するステップを含み、
前記出力ベクトルのシーケンスを生成するステップは、
入力ベクトルのシーケンスを生成するステップと、
前記出力ベクトルのシーケンスのそれぞれの出力ベクトルを生成するために前記機械学習モデルに前記入力ベクトルのシーケンスの各々の入力ベクトルを提供するステップと、を含み、
前記入力ベクトルのシーケンスにおける第1の入力ベクトルは、前記第1のベクトルの第1のベクトル値に基づいて生成され、
前記入力ベクトルのシーケンスにおける後続の入力ベクトルは、(1)前記第1のベクトルおよび(2)前記出力ベクトルのシーケンスにおける以前に生成された1つまたは複数の出力ベクトルに基づいて生成され、
前記機械学習モデルを訓練するステップは、
前記出力ベクトルのシーケンスを、前記特定のユーザインターフェースナビゲーション推奨のための前記人間可読理由を表す前記第2のベクトルと比較することに基づいて、前記機械学習モデルを訓練するステップと、
前記ターゲットユーザインターフェースナビゲーション推奨のための前記人間可読理由を生成するために、前記ターゲットユーザインターフェースナビゲーション推奨に前記機械学習モデルを適用するステップと、を含む、非一時的コンピュータ可読媒体。
【請求項2】
前記ターゲットユーザインターフェースナビゲーション推奨は、複数のターゲットユーザインターフェースナビゲーション推奨を含み、
前記ターゲットユーザインターフェースナビゲーション推奨のための前記人間可読理由は、前記複数のターゲットユーザインターフェースナビゲーション推奨のための複数の人間可読理由を含み、
前記命令は、さらに、
前記複数のターゲットユーザインターフェースナビゲーション推奨のための前記複数の人間可読理由を生成するために前記機械学習モデルに前記複数のターゲットユーザインターフェースナビゲーション推奨を適用するステップと、
理由ペアの複数のセットを記憶するステップと、を引き起こし、前記理由ペアの各々のセットは、
前記複数のユーザインターフェースナビゲーション推奨の中の、1つのターゲットユーザインターフェースナビゲーション推奨と、
前記1つのターゲットユーザインターフェースナビゲーション推奨のための前記複数の人間可読理由のうちの1つまたは複数と、を含む、請求項1に記載の媒体。
【請求項3】
前記出力ベクトルのシーケンスを生成するステップは、
前記入力ベクトルのシーケンスにおける前記第1の入力ベクトルのために、
前記第1のベクトルにおける第1の複数のベクトル値のための重み付けられた値の第1のセットを生成するステップと、
前記第1のベクトルに前記重み付けられた値の第1のセットを適用することに基づいて前記第1の入力ベクトルを生成するステップと、を含み、
前記入力ベクトルのシーケンスにおける後続の入力ベクトルのために、
前記第1のベクトルにおける前記第1のベクトル値のための重み付けられた値の第2のセットを生成するステップと、
前記後続の入力ベクトルを生成するために前記出力ベクトルのシーケンスにおける以前に生成された出力ベクトルのベクトル値に前記重み付けられた値の第2のセットを適用するステップと、を含む、請求項1に記載の媒体。
【請求項4】
前記第1のベクトルは、ユーザインターフェースナビゲーション推奨を生成するための機械学習モデルの隠れ層である、請求項1に記載の媒体。
【請求項5】
前記出力ベクトルのシーケンスを生成するステップは、さらに、
前記入力ベクトルのシーケンスにおける前記第1の入力ベクトルのために、
対応する出力ベクトルの第1の複数のシーケンスのための第1の複数の確率を計算し、前記第1の複数の確率は、前記対応する第1の複数のシーケンスが前記入力ベクトルに対応する確率を指定しており、
前記出力ベクトルの第1の複数のシーケンスの第1のサブセットを、前記入力ベクトルに対応する最も高い確率を有するものとして選択し、かつ
前記出力ベクトルの第1の複数のシーケンスの選択された前記第1のサブセットに基づいて前記出力ベクトルのシーケンスにおける第1の出力ベクトルを生成することによって、
出力ベクトルの1つまたは複数のシーケンスの第1のセットを生成するステップと、
前記入力ベクトルのシーケンスにおける後続の入力ベクトルのために、
対応する出力ベクトルの第2の複数のシーケンスのための第2の複数の確率を計算し、前記第2の複数の確率は、前記対応する第2の複数のシーケンスが前記後続の入力ベクトルに対応する確率を指定しており、
前記出力ベクトルの第2の複数のシーケンスの第2のサブセットを、前記後続の入力ベクトルに対応する最も高い確率を有するものとして選択し、かつ
前記出力ベクトルの第2の複数のシーケンスの選択された前記第2のサブセットに基づいて前記出力ベクトルのシーケンスにおける後続の出力ベクトルを生成することによって、
出力ベクトルの1つまたは複数のシーケンスの第2のセットを生成するステップと、を含む、請求項1に記載の媒体。
【請求項6】
前記第2のベクトルは、前記第1のベクトルに関連した前記ユーザインターフェースナビゲーション推奨のための前記人間可読理由にword-to-vector機械学習モデルを適用することによって生成される、請求項1に記載の媒体。
【請求項7】
前記第2のベクトルは、前記第1のベクトルに関連した前記ユーザインターフェースナビゲーション推奨のための前記人間可読理由にword-to-vector機械学習モデルを適用することによって生成され、
前記第1のベクトルは、ユーザインターフェースナビゲーション推奨を生成するための機械学習モデルの隠れ層であり、
前記ターゲットユーザインターフェースナビゲーション推奨は、複数のターゲットユーザインターフェースナビゲーション推奨を含み、
前記ターゲットユーザインターフェースナビゲーション推奨のための前記人間可読理由は、前記複数のターゲットユーザインターフェースナビゲーション推奨のための複数の人間可読理由を含み、
前記命令は、さらに、
前記複数のターゲットユーザインターフェースナビゲーション推奨のための前記複数の人間可読理由を生成するために前記機械学習モデルに前記複数のターゲットユーザインターフェースナビゲーション推奨を適用するステップと、
理由ペアの複数のセットを記憶するステップと、を引き起こし、前記理由ペアの各々のセットは、
前記複数のユーザインターフェースナビゲーション推奨の中の1つのターゲットユーザインターフェースナビゲーション推奨と、
前記1つのターゲットユーザインターフェースナビゲーション推奨のための前記複数の人間可読理由のうちの1つまたは複数と、を含み、
前記出力ベクトルのシーケンスを生成するステップは、さらに、
前記入力ベクトルのシーケンスにおける前記第1の入力ベクトルのために、
前記第1のベクトルにおける第1の複数のベクトル値のための重み付けられた値の第1のセットを生成するステップと、
前記重み付けられた値の第1のセットを前記第1のベクトルに適用することに基づいて前記第1の入力ベクトルを生成するステップと、を含み、
前記入力ベクトルのシーケンスにおける後続の入力ベクトルのために、
前記第1のベクトルにおける前記第1のベクトル値のための重み付けられた値の第2のセットを生成するステップと、
後続の入力ベクトルを生成するために、前記出力ベクトルのシーケンスにおける以前に生成された出力ベクトルのベクトル値に前記重み付けられた値の第2のセットを適用するステップと、を含み、
前記出力ベクトルのシーケンスを生成するステップは、さらに、
前記入力ベクトルのシーケンスにおける前記第1の入力ベクトルのために、
対応する出力ベクトルの第1の複数のシーケンスのための第1の複数の確率を計算し、前記第1の複数の確率は、前記対応する第1の複数のシーケンスが前記入力ベクトルに対応する確率を指定しており、
前記出力ベクトルの第1の複数のシーケンスの第1のサブセットを、前記入力ベクトルに対応する最も高い確率を有するものとして選択し、かつ
前記出力ベクトルの第1の複数のシーケンスの選択された前記第1のサブセットに基づいて前記出力ベクトルのシーケンスにおける第1の出力ベクトルを生成することによって、
出力ベクトルの1つまたは複数のシーケンスの第1のセットを生成するステップと、
前記入力ベクトルのシーケンスにおける前記後続の入力ベクトルのために、
対応する出力ベクトルの第2の複数のシーケンスのための第2の複数の確率を計算し、前記第2の複数の確率は、前記対応する第2の複数のシーケンスが前記後続の入力ベクトルに対応する確率を指定しており、
前記出力ベクトルの第2の複数のシーケンスの第2のセットを、前記後続の入力ベクトルに対応する最も高い確率を有するものとして選択し、かつ
前記出力ベクトルの第2の複数のシーケンスの選択された前記第2のサブセットに基づいて前記出力ベクトルのシーケンスにおける後続の出力ベクトルを生成することによって、
出力ベクトルの1つまたは複数のシーケンスの第2のセットを生成するステップと、を含む、請求項1に記載の媒体。
【請求項8】
請求項1~請求項7のいずれか1項に記載のオペレーションを含む方法。
【請求項9】
ハードウェアプロセッサを含み、請求項1~請求項7のいずれか1項に記載のオペレーションを実行するように構成されたシステム。
【請求項10】
請求項1~請求項7のいずれか1項に記載のオペレーションを実行するための手段を含むシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願:参照による組み込み
本願は、参照により本明細書に組み込まれる、2021年5月3日に出願された米国特許出願第17/302,429号に関する。
【0002】
本開示は、ユーザナビゲーション推奨のための人間可読説明(human readable explanation)を作成することに関する。特に、本開示は、ユーザナビゲーション推奨のための人間可読説明を作成するための、ユーザナビゲーション推奨を生成するニューラルネットワークの生成物を使用することに関する。
【背景技術】
【0003】
背景
様々なユーザインターフェースアプリケーションは、サービスへナビゲートするためにユーザが選択することができる推奨をユーザに提供する。ナビゲーション推奨に基づいてユーザが選択を行うことを支援するために、アプリケーションは、ナビゲーション推奨のための理由を示す場合がある。例えば、アプリケーションは、ユーザが近い過去において類似の選択を行ったまたは他の類似のユーザが推奨された選択を行ったことを示す場合がある。一般的に、アプリケーションは、推奨のための説明としてユーザに提供することができる理由の幾つかのカテゴリしか含まない。理由の制限された、静的なセットは、一般的に、開発者によってプログラムされている。
【0004】
本セクションに記載されているアプローチは、追求することができるアプローチであるが、必ずしも、前に着想または追及されたアプローチではない。したがって、別段の指示がないかぎり、本セクションに記載されたアプローチのいずれも、単に本セクションにおけるそれらの包含のみによって従来技術としての資格があると仮定されるべきではない。
【0005】
実施形態は、添付の図面において、限定としてではなく例示として示されている。本開示において「an」または「1つの」実施形態への言及は、必ずしも同じ実施形態への言及ではなく、少なくとも1つを意味することに留意すべきである。
【図面の簡単な説明】
【0006】
図1】1つまたは複数の実施形態によるシステムを示す図である。
図2】1つまたは複数の実施形態によるユーザインターフェースナビゲーション推奨のための人間可読理由を生成するためのオペレーションの例示的なセットを示す図である。
図3】1つまたは複数の実施形態によるユーザインターフェースナビゲーションのための人間可読理由を生成するために機械学習モデルを訓練するためのオペレーションの例示的なセットを示す図である。
図4】1つまたは複数の実施形態によるコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0007】
詳細な説明
以下の記載において、説明の目的で、十分な理解を提供するために複数の特定の詳細が示されている。1つまたは複数の実施形態は、これらの特定の詳細なしに実施されてよい。1つの実施形態に記載された特徴は、異なる実施形態に記載された特徴と組み合わされてよい。幾つかの例において、周知の構造および装置は、本発明を不必要に曖昧にすることを回避するためにブロック図形式を参照して記載されている。
【0008】
1.全体的概要
2.システムアーキテクチャ
3.ユーザインターフェースナビゲーション推奨のための人間可読理由の作成
4.sequence-to-sequence機械学習モデルの訓練
5.コンピュータネットワークおよびクラウドネットワーク
6.雑則;拡張
7.ハードウェア概要
【0009】
1.全体的概要
ナビゲーションプラットフォームは、複数の異なるアプリケーションおよびサービスへのアクセスをユーザに提供する。各々のアプリケーションおよびサービスは、多くの異なる機能を含んでよい。これらの機能の各々は、機能を実行するためにナビゲーションプラットフォーム内へユーザがナビゲートしてよい潜在的なナビゲーションターゲットである。
【0010】
1つまたは複数の実施形態は、ナビゲーション推奨のための人間可読説明(本明細書において「理由」とも呼ばれる)を作成する。人間可読説明を作成することは、単語またはフレーズを個々に選択することを含み、単語またはフレーズは、次いで、分析され、組み合わされ、再配置され、修正され、または除去され、ナビゲーション推奨のための人間可読説明を生成する。
【0011】
システムは、訓練されたニューラルネットワークを条件のセットに適用することによってナビゲーション推奨を生成する。条件のセットは、例えば、以前のユーザ活動、ナビゲーションプラットフォームにおける現在位置、現在の日時を含んでよい。訓練されたニューラルネットワークを適用する際、システムは、条件のセットをエンコードする初期ベクトルを生成する。初期ベクトル(本明細書では「層」とも呼ばれる)は、ナビゲーション推奨にマッピングされてよい最終ベクトルが生成されるまで追加のベクトル(追加の「層」)を順次に生成するために再帰的に処理される。1つの実施形態において、ナビゲーション推奨を生成するためにニューラルネットワークのアプリケーションによって生成されたベクトルのうちの1つは、ナビゲーション推奨のための人間可読説明を作成する際に使用するために抽出される。ニューラルネットワークによって生成され、人間可読説明を作成する際に使用するために抽出されたベクトルは、本明細書において「推奨ベクトル」と呼ばれてよい。
【0012】
1つの実施形態において、デコーダは、(1)過去の推奨ベクトル、および(2)推奨ベクトルに関連した過去の人間可読理由、に基づいてナビゲーション推奨のための人間可読理由を生成するために機械学習モデルを訓練する。システムは、推奨のための人間可読理由のディクショナリを生成し、ディクショナリの各々のエントリは、(1)推奨されるナビゲーションターゲットに関連した推奨識別子(ID)、(2)推奨のための特定の理由に関連した理由識別子(ID)、および(3)理由IDに関連した人間可読理由、を含む。1つまたは複数の実施形態において、ナビゲーション推奨のための人間可読理由を生成する機械学習モデルは、sequence-to-sequence(seq2seq)機械学習モデルである。
【0013】
1つまたは複数の実施形態において、機械学習モデルは、入力として推奨ベクトルを受信しかつ出力として初期単語を生成することによってナビゲーション推奨のための人間可読理由を生成する。推奨ベクトルおよび初期単語は、入力として機械学習モデルに提供され、ナビゲーション推奨のための人間可読理由における次の単語を生成する。ナビゲーション推奨のための人間可読理由における各々の単語が生成されるまで、プロセスは反復される。機械学習モデルによって生成された単語は、単語またはフレーズに関連した埋め込まれたベクトルとして表されてよい。デコーダは、埋め込まれたベクトルに関連した単語またはフレーズを識別し、ナビゲーション推奨のための人間可読理由を生成する。
【0014】
訓練された後、機械学習モデルは、特定のユーザに対してカスタマイズされた、あらゆる数のユーザナビゲーション推奨のための人間可読理由を生成してよい。例えば、2人のユーザに、同じユーザインターフェースナビゲーション推奨のための異なる理由が提供されてよい。加えて、同じユーザに、異なる時点で推奨のための異なる理由が提供されてよい。人間可読理由が機械学習モデルによって生成されるので、人間可読理由の数は、オペレータによってシステムに入力される理由に制限されない。加えて、オペレータは、特定の推奨のための特定の人間可読理由を表示するために特定のルールを入力することを要求されない。その代わりに、機械学習モデルは、ユーザ属性のセットおよびナビゲーションターゲット属性のセットに基づいて、カスタマイズされた推奨のためのカスタマイズされた人間可読理由を生成する。
【0015】
本明細書に記載されかつ/または請求項に列挙された1つまたは複数の実施形態は、この一般的概要のセクションに含まれていない場合がある。
【0016】
2.システムアーキテクチャ
図1は、1つまたは複数の実施形態によるシステム100を示す。図1に示されているように、システム100は、ナビゲーションプラットフォーム110、エンコーダ120、デコーダ130およびデータリポジトリ110を含む。
【0017】
ナビゲーションプラットフォーム110は、アプリケーションおよびサービスのスイートへのアクセスを提供するプログラムまたはプログラムのセットであってよい。ナビゲーションプラットフォーム110は、ユーザインターフェース111およびナビゲーションターゲット112を含む。
【0018】
1つまたは複数の実施形態において、ユーザインターフェース111は、ユーザとナビゲーションプラットフォーム110との間の通信を容易にするように構成されたハードウェアおよび/またはソフトウェアを指す。インターフェース111は、ユーザインターフェースエレメントをレンダリングし、ユーザインターフェースエレメントを介して入力を受信する。インターフェースの例は、グラフィカルユーザインターフェース(GUI)、コマンドラインインターフェース(CLI)、触覚インターフェース、および音声コマンドインターフェースを含む。ユーザインターフェースエレメントの例は、チェックボックス、ラジオボタン、ドロップダウンリスト、リストボックス、ボタン、トグル、テキストフィールド、日時セレクタ、コマンドライン、スライダ、ページ、およびフォームを含む。
【0019】
実施形態において、インターフェース111の異なる構成要素は、異なる言語で指定されている。ユーザインターフェースエレメントの挙動は、JavaScript(登録商標)などのダイナミックプログラミング言語で指定されている。ユーザインターフェースエレメントの内容は、ハイパーテキストマークアップ言語(HTML)またはXMLユーザインターフェース言語(XUL)などのマークアップ言語で指定されている。ユーザインターフェースエレメントのレイアウトは、カスケーディングスタイルシート(CSS)などのスタイルシート言語で指定されている。代替的に、インターフェース111は、Java(登録商標)、C、C++などの1つまたは複数のその他の言語で指定されている。
【0020】
ナビゲーションターゲット112は、アプリケーション、ドキュメント、および実行可能なファイルを含む。ナビゲーションターゲットの例は、会計アプリケーションにおいて請求書をレビューするためのプログラム;会計アプリケーションにおいて経費報告書を記憶、編集および表示するためのプログラム;顧客獲得アプリケーションにおいて顧客およびリードコンタクト情報を記憶、編集および表示するためのプログラム;営業活動アプリケーションにおいて販売データを検索し、販売予測を生成および表示するためのプログラム;プロジェクト管理アプリケーションにおいてプロジェクトのワークフロー情報を記憶、編集および表示するためのプログラム;人事アプリケーションにおいて従業員情報を記憶、編集および表示するためのプログラム;および政府規制に対するコンプライアンスのためのコンプライアンスデータを検索および表示するためのプログラムを含む。上記のナビゲーションターゲットは、例として提供されているが、これらは、可能なナビゲーションターゲットの排他的リストではない。実施形態は、ナビゲーションプラットフォームにおいて情報を検索しかつ/または機能を実行するためにユーザがナビゲートしてよいあらゆるプログラムおよびあらゆるアプリケーションを包含する。1つまたは複数の実施形態において、ナビゲーションプラットフォーム110は、ユーザがユーザインターフェースエレメントを選択してナビゲーションターゲット112へアクセスすることを可能にするために、ユーザインターフェース111のGUIにおいてユーザインターフェースエレメントを生成する。
【0021】
各々のナビゲーションターゲット112は、アプリケーション113に関連している。多くの異なるナビゲーションターゲットは、同じアプリケーションに属していてよい。例えば、会計アプリケーションは、経費報告書を作成すること、財務予測を作成すること、給与情報を作成すること等を含む、会計アプリケーションにおける異なる機能に対応するナビゲーションターゲットを含む。別の例として、人事アプリケーションは、従業員リストを閲覧すること、従業員情報を閲覧および編集すること、休暇を申請すること、従業員業績報告書を作成すること、組織図を閲覧すること等を含むナビゲーションターゲットを含む。各々のナビゲーションターゲット112は、ナビゲーションターゲット属性を含む。
【0022】
1つまたは複数の実施形態において、ナビゲーションプラットフォーム110は、ユーザインターフェース111のGUIにおいて、ユーザがナビゲーションターゲット112の対応するセットへナビゲートすることを可能にするためにユーザインターフェースエレメントのセットを表示する。表示されるユーザインターフェースエレメントは、異なるアプリケーション113に関連したナビゲーションターゲット112に属してよい。加えて、または代替的に、表示されるユーザインターフェースエレメントは、同じアプリケーション内の異なるドキュメントまたは実行可能なファイルに属してよい。
【0023】
エンコーダ120は、データリポジトリ140からユーザ属性データ141およびナビゲーションターゲット属性データ142を取得する。代替的に、ユーザ属性データ141およびナビゲーションターゲット属性データ142は、ナビゲーションプラットフォーム110から取得されてよい。例えば、ユーザは、ナビゲーションプラットフォーム110にログインし、ユーザ属性データを含むユーザプロファイルを生成してよい。ユーザ属性データ141は、特定のユーザについてのデータを含む。ユーザ属性データ141の例は、ジョブ名、役割、地位、ロケーション、および事業単位を含む。上記のユーザ属性は、例として提供されているが、これらは、可能なユーザ属性の排他的リストではない。実施形態は、ユーザの属性を識別するために、ユーザに関連し得るあらゆる情報を包含する。ナビゲーションターゲット属性データは、ナビゲーションターゲットについてのデータを含む。ナビゲーションターゲット属性の例は、application stripe、product family、view ID、menu ID、taskflow ID、WebAppName、contextualAreaWidth、RecentItemsID、ObjectCode、CreationDate、LastUpdateLogin、LastUpdataDate、EnterpriseID、ParentID、SourceFileを含む。上記のナビゲーションターゲット属性は、例として提供されているが、これらは、可能なナビゲーションターゲット属性の排他的リストではない。実施形態は、ナビゲーションターゲットの属性を識別するために、ナビゲーションターゲットに関連し得るあらゆる情報を包含する。
【0024】
1つまたは複数の実施形態において、データリポジトリ140は、データを記憶するためのあらゆるタイプの記憶装置および/またはデバイス(例えば、ファイルシステム、データベース、表の集合、またはあらゆるその他の記憶機構)である。さらに、データリポジトリ140は、複数の異なる記憶装置および/またはデバイスを含んでよい。複数の異なる記憶装置および/またはデバイスは、同じタイプであっても、そうでなくてもよく、同じ物理的部位に配置されていても、そうでなくてもよい。さらに、データリポジトリ140は、ナビゲーションプラットフォーム110、エンコーダ120またはデコーダ130と同じコンピューティングシステムにおいて実装されてよいまたは実行してよい。代替的に、または追加的に、データリポジトリ140は、ナビゲーションプラットフォーム110、エンコーダ120またはデコーダ130とは別のコンピューティングシステムにおいて実装または実行されてよい。データリポジトリ140は、直接接続を介してまたはネットワークを介してナビゲーションプラットフォーム110、エンコーダ120またはデコーダ130に通信可能に結合されていてよい。
【0025】
ユーザ属性データ141、ナビゲーションターゲット属性データ142、過去の訓練データ114およびソートされたリスト117を記述する情報は、システム100内の構成要素のいずれかを横断して実装されてよい。しかしながら、この情報は、分かりやすくするためおよび説明のためにデータリポジトリ140内に示されている。
【0026】
エンコーダ120は、ユーザ属性データ141およびナビゲーションターゲット属性データ142に基づいて入力ベクトルを生成する。エンコーダは、ユーザ属性データ141およびナビゲーションターゲット属性データ142を数値およびベクトル値に変換してよい。エンコーダは、変換されたユーザ属性データ141およびナビゲーションターゲット属性データ142を連結し、入力ベクトルを生成してよい。エンコーダは、入力ベクトルを機械学習エンジン121へ提供し、推奨ベクトル122を生成する。機械学習エンジン121は、入力ベクトルを受信し、入力ベクトルに基づいて1つまたは複数の推奨ナビゲーションターゲットを生成するように訓練された、訓練された機械学習モデルを含んでよい。1つまたは複数の実施形態において、機械学習モデルは、コンテキスト多腕バンディットタイプ機械学習モデルである。
【0027】
1つまたは複数の実施形態において、エンコーダ120は、推奨ベクトル122を推奨エンジン123に提供し、入力ベクトルに基づいて1つまたは複数の推奨ナビゲーションターゲットを生成する。エンコーダ120は、推奨ベクトル122を推奨エンジン123に提供する前にSoftMax層を使用して推奨ベクトル122を確率分布に変換してよい。推奨エンジン123は、推奨ベクトル122における情報に基づいて、ユーザのための1つまたは複数の推奨ナビゲーションターゲットを識別する。各々のナビゲーションターゲットは、一意の推奨ID124によって表されている。推奨エンジン123は、推奨ベクトル122の対応するリストのための推奨ID124の順序付けられたリストを生成してよい。
【0028】
エンコーダ120は、また、推奨ベクトル122をデコーダ130に提供し、別の機械学習モデルを訓練して、ユーザインターフェースナビゲーション推奨のための人間可読理由を生成する。推奨ベクトル122は、ユーザ属性データと、ナビゲーションターゲット属性データと、推奨ユーザインターフェースナビゲーションと、推奨のための理由との関係に基づいて、機械学習エンジン121によって生成されたベクトル値を有する多次元ベクトルである。推奨ベクトル122は、推奨のための特定の理由に関連した特定の推奨のコンテキスト情報を含む。したがって、推奨ベクトル122は、特定のナビゲーション推奨に関連した単語のシーケンスのコンテキスト情報を含む。単語のシーケンスのコンテキスト情報を含む推奨ベクトル122は、機械学習エンジン132に提供され、機械学習エンジン132は、推奨ベクトルに含まれる単語のシーケンスのコンテキスト情報から学習するように機械学習モデル132aを訓練し、ナビゲーション推奨のための人間可読理由に対応する出力ベクトル134のシーケンスを順次に生成する。
【0029】
1つまたは複数の実施形態において、機械学習モデル132aは、双方向sequence-to-sequence(seq2seq)機械学習モデル132aであり、入力シーケンスは、推奨ベクトル122内でエンコードされる。1つまたは複数の実施形態において、機械学習モデル132aは、長・短期記憶(LTSM)タイプモデル、ゲート付き再帰型ユニット(GRU)タイプモデル、または拡張再帰型ニューラルネットワーク(RNN)タイプモデルを含む。
【0030】
機械学習エンジン132は、(1)推奨ベクトル122、および(2)推奨ベクトル122に関連した理由IDのための単語の埋め込まれたベクトル131に基づいて、推奨のための人間可読理由を生成するように機械学習モデル132aを訓練する。デコーダ130は、推奨ベクトル122のコンテキスト情報に含まれる推奨のための理由を識別する理由IDロジック138を含む。理由IDロジックは、理由を理由IDに関連付け、理由IDは、推奨のための人間可読理由に関連した一意の識別子である。
【0031】
推奨ベクトル122は、入力ベクトルとして機械学習モデル132aに提供され、出力ベクトル134のシーケンスの第1の出力ベクトルYを生成する。第1の出力ベクトルYは、特定の理由IDのための単語を表す埋め込まれたベクトル131のセットの中から生成されてよい。第1の出力ベクトルYおよび推奨ベクトル122は、入力ベクトルとして機械学習モデル132aに提供され、出力ベクトル134のシーケンスの次の出力ベクトルYを生成する。出力ベクトル134の各々は、推奨のための人間可読理由を構成する単語134のシーケンスにおける1つの単語の埋め込まれたベクトルを表す。機械学習モデル132aは、以前に生成された出力ベクトルおよび推奨ベクトル122を入力ベクトルとして提供するプロセスを繰り返し、各々の出力ベクトルY~Yが生成されるまでシーケンス134における次の出力ベクトルを生成する。次いで、デコーダ130は、出力ベクトルY~Yのシーケンス134を使用して推奨のための人間可読理由を生成する。
【0032】
機械学習エンジン132は、データリポジトリ140に記憶された過去の訓練データ144に基づいて機械学習モデル132aを訓練する。過去の訓練データ144は、(1)過去の推奨ベクトル145、(2)過去の推奨ベクトル145に関連した推奨ID146、(3)過去の推奨ベクトル145に関連した理由ID、(4)理由属性データ148、および(5)テキストコーパス149を含む。テキストコーパス116は、ナビゲーション推奨のための人間可読理由を生成するために前に使用された単語、およびディクショナリなどのあらゆるその他のソースからの単語を含んでよい。例えば、過去の訓練データ144は、1000の理由ID147およびそれぞれの理由ID147に対応する単語の1000のシーケンスを含んでよい。デコーダ130は、対応する過去の推奨ベクトル145に含まれる理由のための特定の理由ID147に関連する単語のシーケンスを、単語の埋め込まれたベクトル131に変換する。
【0033】
過去の訓練データ144の所定のサブセットのために、機械学習モデル132aは、過去の推奨ベクトル145に関連する過去の理由ID147のための単語の人間可読シーケンスに対応する出力ベクトル134のシーケンスを生成する。機械学習エンジン132は、機械学習モデル132aを訓練するために、単語の生成されている人間可読シーケンスを、過去の理由ID147に関連した単語のシーケンスと比較してよい。
【0034】
1つまたは複数の実施形態において、機械学習エンジン132は、アテンションエンジン135を含む。入力ベクトル133のシーケンスにおける、推奨ベクトル122以外の各々の入力ベクトルに対して、アテンションエンジン135は、推奨ベクトル122のベクトル値に重みを適用して、機械学習モデル132aを推奨のための理由における単語に集中させる。1つの実施形態において、アテンションエンジンは、(1)特定の理由IDの単語を表すベクトルY~Yのセット、および(2)推奨ベクトル122においてドット積オペレーションを実行し、スカラー値を生成する。アテンションエンジン135は、ベクトルY~Yのためのスカラー値に基づいてアテンション分配を生成する。アテンションエンジン135は、アテンション分配をベクトルに変換し、ベクトルを推奨ベクトル122に適用する。その結果、機械学習モデル132aは、理由IDに関連した単語を表す埋め込まれたベクトルの中の特定の埋め込まれたベクトルY~Yによって表される、特定の単語により大きな重みを適用する。
【0035】
1つまたは複数の実施形態において、デコーダ130は、機械学習モデル132aによって出力ベクトルY~Yの生成の効率を高めるためにビームサーチエンジン136を含む。入力ベクトルY~Yのシーケンス133における、推奨ベクトル122以外の各々の入力ベクトルに対して、ビームサーチエンジン136は、推奨のための理由における次の単語である最も高い可能性を有するものとして識別される単語のk個のセットを生成する。例えば、ビームサーチエンジン136は、単語の4つのセットを識別してよく、各々のセットは、出力ベクトルY~Yのシーケンス134に対応する単語のシーケンスにおける次の3つの単語である最も高い可能性を有する、3つの単語のシーケンスから構成されている。ビームサーチエンジン136は、単語のk個のセットを機械学習モデル132aに提供し、シーケンスにおける次の単語である最も高い可能性を有する単語のセットに基づいて出力ベクトルY~Yを生成するように機械学習モデル132aに影響する。例えば、機械学習エンジン132は、特定の単語または単語のセットに対応する出力ベクトルを生成するためにニューラルネットワークに影響するためのニューラルネットワーク内のニューロンのための係数値であってよい。
【0036】
訓練されると、機械学習モデル132aは、与えられた入力推奨ベクトル122に対して、(1)ユーザのためのナビゲーションターゲットのための推奨に対応する推奨ID、(2)ナビゲーション推奨を提供するための特定の理由に対応する理由ID、および(3)推奨を提供するための理由を記述する単語のシーケンスを含む、推奨のための人間可読理由、のセット137を生成する。1つまたは複数の実施形態において、人間可読理由の単語は、ナビゲーションプラットフォーム110によって単語に変換されたベクトル値Y~Yとして記憶されてよい。
【0037】
システム100は、ナビゲーション推奨のための推奨ID、理由ID、および人間可読理由のソートされたリスト143を生成してよい。ユーザがユーザインターフェース111にログインしたときまたは新たなユーザプロファイルがナビゲーションプラットフォーム110によって入力されたとき、エンコーダは、ユーザのユーザ属性データ141に基づいて推奨ベクトル122を生成してよい。加えて、推奨エンジン123は、推奨ベクトル122に基づいて1つまたは複数の推奨ID124を生成してよい。対応する理由IDが、ソートされたリストに存在する場合、ナビゲーションプラットフォーム110は、ソートされたリスト117からナビゲーション推奨のための人間可読理由を取得してよい。代替的に、または加えて、デコーダ130は、新たな理由IDと、新たな理由IDに基づく推奨のための新たな人間可読理由を生成してよい。ナビゲーションプラットフォーム110は、ユーザインターフェース111において、ナビゲーション推奨のための推奨されるナビゲーションターゲットおよび人間可読理由に対応するユーザインターフェースエレメントを表示する。
【0038】
1つまたは複数の実施形態において、エンコーダ120、デコーダ130およびナビゲーションプラットフォーム110は、ユーザインターフェースナビゲーション推奨のための人間可読理由を作成するための、本明細書に記載されたオペレーションを実行するように構成されたハードウェアおよび/またはソフトウェアを指す。ユーザインターフェースナビゲーション推奨のための人間可読理由を作成するためのオペレーションの例は、以下に図2を参照して記載される。
【0039】
実施形態において、エンコーダ120、デコーダ130およびナビゲーションプラットフォーム110のうちの1つまたは複数は、1つまたは複数のデジタルデバイス上に実装されている。「デジタルデバイス」という用語は、一般的に、プロセッサを含むあらゆるハードウェアデバイスを指す。デジタルデバイスは、アプリケーションを実行する物理的デバイスまたは仮想マシンを指す場合がある。デジタルデバイスの例は、コンピュータ、タブレット、ラップトップ、デスクトップ、ネットブック、サーバ、ウェブサーバ、ネットワークポリシーサーバ、プロキシサーバ、ジェネリックマシン、特定機能ハードウェアデバイス、ハードウェアルータ、ハードウェアスイッチ、ハードウェアファイアウォール、ハードウェアファイアウォール、ハードウェアネットワークアドレストランスレータ(NAT)、ハードウェアロードバランサ、メインフレーム、テレビジョン、コンテントレシーバ、セットトップボックス、プリンタ、モバイルハンドセット、スマートフォン、パーソナルデジタルアシスタント(「PDA」)、ワイヤレス受信機および/または送信機、基地局、通信マネジメントデバイス、ルータ、スイッチ、コントローラ、アクセスポイント、および/またはクライアントデバイスを含む。
【0040】
1つまたは複数の実施形態において、システム100は、図1に示された構成要素よりも多いまたは少ない構成要素を含んでよい。図1に示された構成要素は、互いにローカルまたはリモートであってよい。図1に示された構成要素は、ソフトウェアおよび/またはハードウェアにおいて実装されてよい。各々の構成要素は、複数のアプリケーションおよび/またはマシンに分散されていてよい。複数の構成要素は、1つのアプリケーションおよび/またはマシンに組み合わされてよい。1つの構成要素に関連して記載されたオペレーションは、代わりに、別の構成要素によって実行されてよい。
【0041】
コンピュータネットワークに関連する追加的な実施形態および/または例は、「コンピュータネットワークおよびクラウドネットワーク」というタイトルのセクション5において以下に記載されている。
【0042】
3.ナビゲーションターゲット推奨のための人間可読理由の作成
図2は、1つまたは複数の実施形態によるユーザインターフェースナビゲーション推奨のための人間可読理由を作成するためのオペレーションの例示的なセットを示す。図2に示された1つまたは複数のオペレーションは、修正、再配置、または完全に省略されてよい。したがって、図2に示されたオペレーションの特定のシーケンスは、1つまたは複数の実施形態の範囲を限定するものとして解釈されるべきではない。
【0043】
1つまたは複数の実施形態において、エンコーダは、ユーザ属性データおよびナビゲーション属性データを含むベクトルを訓練された機械学習モデルに提供することによって、ユーザインターフェースナビゲーション推奨を生成する(オペレーション202)。例えば、エンコーダは、ユーザ属性値およびナビゲーション属性データ値を数値およびベクトル値に変換してよい。エンコーダは、変換されたユーザ属性値およびナビゲーションデータ値に基づいて、訓練されたモデルのための入力ベクトルを生成してよい。1つの例において、訓練された機械学習モデルは、コンテキスト多腕バンディットタイプ機械学習モデルである。
【0044】
ユーザインターフェースナビゲーション推奨を生成する前に、エンコーダは、モデルから推奨ベクトルを抽出する(オペレーション204)。推奨ベクトルは、推奨ユーザインターフェースナビゲーションおよび推奨のための対応する理由のコンテキスト情報を含む。1つの実施形態において、エンコーダは、推奨ベクトルを、SoftMax層を有する確率分布に変換する前に推奨ベクトルを抽出する。次いで、エンコーダは、ナビゲーション推奨を生成し、確率分布を使用して、推奨を推奨IDに関連付けてよい。推奨ベクトルは、ユーザインターフェースナビゲーション推奨および関連する推奨IDを生成する前に生成される機械学習モデル内の隠れ層である。
【0045】
エンコーダは、推奨ベクトルをデコーダに供給する(オペレーション206)。デコーダは、推奨ベクトルに関連した理由IDを識別する。理由IDは、特定のナビゲーション推奨のための理由を与える単語の人間可読シーケンスに対応する。デコーダは、理由IDに関連した単語に対応する埋め込まれたベクトルのセットを生成する。
【0046】
デコーダは、機械学習モデルを使用して推奨ベクトルにおいて推奨のための人間可読理由を生成する(オペレーション208)。1つの実施形態において、機械学習モデルは、双方向ディープラーニングsequence-to-sequenceモデルである。例えば、機械学習モデルは、長-短期記憶(LTSM)タイプモデル、ゲートリカレントユニット(GRU)タイプモデル、または拡張リカレントニューラルネットワーク(RNN)タイプモデルであってよい。機械学習モデルは、入力シーケンスとして、推奨ベクトルにおけるコンテキスト情報を受信してよく、出力シーケンスとして、単語を表す一連の埋め込まれたベクトルを生成してよい。単語のシーケンスは、推奨ベクトルに関連したユーザインターフェースナビゲーション推奨のための理由を記述する。デコーダは、機械学習モデルへの入力ベクトルとして、推奨ベクトルおよび以前に生成された1つまたは複数の出力ベクトルを提供することによって、人間可読理由を生成する。言い換えれば、機械学習モデルは、推奨ベクトルに基づいて初期出力ベクトルを生成する。機械学習モデルは、(1)推奨ベクトルおよび(2)以前に生成された少なくとも1つの出力ベクトルに基づいて各々の後続の出力ベクトルを生成する。1つまたは複数の実施形態において、ナビゲーション推奨のための理由の単語を表す埋め込まれたベクトルは、ベクトルのセットを定義し、その中から出力ベクトルが生成される。例えば、機械学習エンジンは、埋め込まれたベクトルの中から、入力ベクトルに対応する最も高い確率を有する埋め込まれたベクトルを識別してよい。
【0047】
デコーダは、理由IDおよび推奨IDと共に推奨のための生成された人間可読理由を記憶する(オペレーション210)。デコーダは、ユーザナビゲーション推奨のための理由の順序付けられたリストを生成してよく、その中で、各々のエントリは、(1)推奨ナビゲーションターゲットに関連した推奨ID、(2)推奨ナビゲーションターゲットに関連した理由ID、および(3)理由IDに関連した人間可読理由、を含む。
【0048】
エンコーダから推奨ベクトルを受信する前に、デコーダは、機械学習モデルを訓練する。モデルは、(1)過去の推奨ベクトル、および(2)過去の推奨ベクトルに関連した理由IDに関連した理由の単語を表す埋め込まれたベクトル、に基づいて訓練される。
【0049】
機械学習モデルを訓練した後、システムは、ユーザプロファイルを識別する(212)。ユーザプロファイルは、記憶されたユーザプロファイル、新たに生成されたユーザプロファイル、システムにログインするユーザのユーザプロファイル、またはあらゆるその他の手段によって生成されたユーザプロファイルであってよい。ユーザプロファイルは、ユーザについての属性情報を含む。例えば、システムは、ユーザがシステムにログインされることを要求することなく、アプリケーションまたはサービスにアクセスするためにシステムを使用するために登録されたあらゆるユーザのためのナビゲーション推奨のセットおよびナビゲーション推奨のための人間可読理由を生成してよい。加えて、または代替的に、システムは、ユーザログインを検出してよく、ユーザログインの検出に基づいて、ナビゲーション推奨のセットおよびナビゲーション推奨のための人間可読理由を生成してよい。別の例において、システムは、特定のグラフィカルユーザインターフェースへのユーザナビゲーションに基づいて、ナビゲーション推奨のセットおよびナビゲーション推奨のための人間可読理由を生成してよい。実施形態は、あらゆる所定のイベントまたはトリガに基づいてナビゲーション推奨のセットおよびナビゲーション推奨のための人間可読理由を生成するシステムを包含する。
【0050】
エンコーダは、ユーザプロファイルにおけるユーザ属性情報およびユーザに関連したあらゆるナビゲーション属性情報を使用して推奨ベクトルを生成する(オペレーション214)。エンコーダは、例えば、訓練されたコンテキスト多腕バンディットタイプ機械学習モデルを使用して推奨ベクトルを生成してよい。
【0051】
システムは、推奨ベクトルに関連した推奨IDおよび理由IDを識別する。例えば、システムは、確率分布を生成するためにSoftMax層を通じて推奨ベクトルを動作させてよい。システムは、確率分布に基づいて推奨IDを生成してよい。デコーダは、推奨ベクトルに関連した理由IDを識別してよい。システムは、推奨IDおよび理由IDに関連した人間可読理由が既に存在するかどうかを決定する(オペレーション216)。特に、システムは、人間可読理由が既に存在するかどうかを決定するために、(1)推奨ID、(2)理由ID、および(3)推奨に関連した人間可読理由、のセットを記憶するディクショナリを参照してよい。推奨IDおよび理由IDに関連した人間可読理由が、前に生成されかつ記憶されているならば、システムは、ナビゲーション推奨のための人間可読理由を記憶するディクショナリから人間可読理由を検索する(オペレーション218)。
【0052】
システムが、人間可読理由が推奨IDおよび理由IDのためにまだ生成されていないことを決定すると、エンコーダは、デコーダの訓練された機械学習モデルに推奨ベクトルを提供する(オペレーション220)。訓練されたモデルは、推奨のための人間可読理由のための単語を順次生成する。システムは、推奨のための以前に生成された人間可読理由のディクショナリにおいて、推奨に関連した推奨ID、理由ID、および人間可読理由のセットを記憶してよい。
【0053】
システムは、理由IDに関連した推奨のための人間可読理由と共に、推奨IDに関連したナビゲーション推奨を表示する(オペレーション222)。例えば、ユーザは、1つまたは複数のアプリケーションまたはサービスへナビゲートするためにグラフィカルユーザインターフェースにアクセスしてよい。システムは、グラフィカルユーザインターフェースに、ナビゲーションのためのナビゲーション推奨および対応する人間可読理由を表示してよい。
【0054】
1つまたは複数の実施形態において、単語の特定のシーケンスに関連した理由IDは、単語の特定のシーケンスのためのランキングに関する情報を含んでよい。例えば、システムは、特定のナビゲーションターゲットが、各々が推奨のための異なる人間可読理由に関連している3つの別々の理由IDに基づいて推奨されることを決定してよい。システムは、推奨のための人間可読情報を表示するために、最高ランクの推奨のみを選択してよい。代替的に、システムは、推奨のための2つのみまたはそれ未満の理由など、推奨のための所定の数の人間可読理由のみを選択してよい。
【0055】
1つまたは複数の実施形態において、推奨ベクトルは、特定の属性を有する特定のユーザのために表示されてよい人間可読理由を制限する情報を含んでよい。組織は、機密または秘密でありえる情報に関連したナビゲーションターゲットにあるクラスのユーザがナビゲートすることを一般的なメンバーシップが知って欲しくない場合がある。例えば、企業が競争相手を買収しようとしている場合、法務部は、競争相手に関連するターゲットにナビゲートする必要がある場合がある。システムは、「法務」以外の値を有するユーザ属性「部署」を有するユーザが、競争相手に関連した推奨IDをもたらす推奨ベクトル、または競争相手に関連したナビゲーションターゲットへナビゲートするものとしてその他の従業員を識別する人間可読理由を生成することをブロックしてよい。同様に、システムは、給与、退職、身体障害、個人的休暇、育児休暇または医療給付に関連するナビゲーションターゲットにアクセスするユーザなど、秘密情報を公開するその他のユーザのサーチを識別する人間可読理由を制限してよい。1つの実施形態において、システムは、特定の推奨のための人間可読理由の生成を阻止してよい。別の実施形態において、システムは、人間可読理由の生成を許可してよいが、システムは、推奨との人間可読理由の使用または表示を阻止するランキングまたは指示子を有する記憶された人間可読理由を割り当ててよい。したがって、システム管理者は、機密または秘密人間可読理由を生成する推奨のタイプを識別してよい。
【0056】
4.sequence-to-sequence機械学習モデルの訓練
図3は、1つまたは複数の実施形態による、ユーザインターフェースナビゲーション推奨のための人間可読理由のための単語を順次に生成するために機械学習モデルを訓練するためのオペレーションの例示的なセットを示す。図3に示された1つまたは複数のオペレーションは、修正、再配置、または全てが省略されてよい。したがって、図3に示されたオペレーションの特定のシーケンスは、1つまたは複数の実施形態の範囲を限定するものと解釈されるべきではない。
【0057】
機械学習エンジンは、過去のユーザナビテーションデータを取得する(オペレーション302)。ユーザナビゲーションデータは、ユーザおよびユーザナビゲーションに関連したユーザインターフェース推奨ベクトル、ナビゲーション推奨に関連した過去の理由ID、および理由IDに関連した人間可読理由を含む。例えば、ナビゲーションプラットフォームは、多くの異なるアプリケーション、ならびに各々のアプリケーション内の多くの異なるプロセス、ドキュメントおよび機能へのアクセスをユーザに与えてよい。ユーザによってアクセスされてよい各々のプロセス、ドキュメントおよび機能は、別々のナビゲーションターゲットであってよい。推奨ベクトルは、訓練された機械学習エンジンによって生成され、過去のユーザナビゲーションデータのコンテキスト情報を含み、このコンテキスト情報は、ナビゲーションプラットフォームによって提供される各々のアプリケーションにおける各々のプロセス、ドキュメントおよび機能に各々のユーザがどれくらい頻繁にアクセスするかについての情報を含む。
【0058】
機械学習エンジンは、推奨ベクトル、推奨ID、および推奨のための対応する人間可読理由の訓練セットを生成する(オペレーション304)。訓練セットは、推奨IDによって表される特定のユーザナビゲーション推奨と、理由IDによって表される関連する人間可読理由とを含む。
【0059】
機械学習エンジンは、訓練セットを使用して、機械学習モデルを訓練し、ユーザナビゲーション推奨のための人間可読理由を生成する(オペレーション306)。機械学習エンジンは、推奨のための特定の人間可読理由に対応する特定の推奨ベクトルを選択する(オペレーション308)。機械学習エンジンは、人間可読理由の単語を、埋め込まれたベクトルに変換する(オペレーション310)。1つの実施形態において、機械学習エンジンは、過去のデータにおける全てのユーザナビゲーション推奨のための全ての人間可読理由の単語を含むテキストコーパスにおける全ての単語と共に訓練された、予め訓練されたword-to-vector(word2vec)モデルを含む。機械学習エンジンは、推奨のための特定の理由の単語を、word2vecモデルによって生成されたベクトルに変換する。
【0060】
機械学習エンジンは、推奨ベクトルを別の機械学習モデルに入力し、初期出力ベクトルを生成する(オペレーション312)。例えば、機械学習モデルは、双方向sequence-to-sequence(seq2seq)機械学習モデルであってよい。モデルは、長-短期記憶(LTSM)タイプモデル、ゲートリカレントユニット(GRU)タイプモデル、または拡張リカレントニューラルネットワーク(RNN)タイプモデルであってよい。1つの実施形態において、初期出力ベクトルは、推奨ベクトルに関連した推奨のための過去の人間可読理由に関連した単語を表す埋め込まれたベクトルの中から選択される。代替的に、初期出力ベクトルは、(1)推奨のための過去の人間可読理由に関連した単語、および(2)word2vecモデルにおいて、過去の人間可読理由における単語に関連するものとして識別された単語のセット、の組み合わされたセットの中から選択されてよい。
【0061】
機械学習エンジンは、初期出力ベクトルおよび推奨ベクトルを取得し、2つのベクトルを人間可読理由生成モデルに入力し、推奨のための理由の人間可読単語を表す出力ベクトルのシーケンスにおける次の単語を生成する(オペレーション314)。機械学習エンジンは、以前に生成された出力ベクトルおよび推奨ベクトルを取得し、2つのベクトルをモデルに入力し、次の出力ベクトルを生成する(オペレーション316)。
【0062】
1つの実施形態において、機械学習エンジンは、アテンションエンジンを含む。アテンションエンジンは、推奨ベクトルのベクトル値に重みを適用し、人間可読理由生成機械学習モデルを、推奨のための理由における特定の次の単語に集中させる(オペレーション320)。1つの実施形態において、アテンションエンジンは、(1)推奨のための過去の人間可読理由に関連した単語を表す埋め込まれたベクトル、および(2)推奨に関連した推奨ベクトル、においてドット積オペレーションを実行し、スカラー値を生成する。アテンションエンジンは、埋め込まれたベクトルのためのスカラー値に基づいてアテンション分布を生成する。アテンションエンジンは、アテンション分布をベクトルに変換し、ベクトルを推奨ベクトルに適用する。その結果、機械学習エンジンは、推奨に関連した単語を表す埋め込まれたベクトルの中の特定の埋め込まれたベクトルによって表される特定の単語に、より大きな重みを適用する。
【0063】
1つの実施形態において、機械学習エンジンは、ビームサーチエンジンも含む。出力ベクトルおよび推奨ベクトルが入力として人間可読理由生成機械学習モデルに適用される各々のステージにおいて、ビームサーチエンジンは、推奨のための理由における単語に対応する、次の出力ベクトルである最も高い確率を有するものとして識別される、出力ベクトルのk個のセットを生成する(オペレーション322)。例えば、ビームサーチエンジンは、出力ベクトルの4つのセットを識別してよく、各々のセットは、機械学習モデルによって生成された出力ベクトルのシーケンスにおける次の出力ベクトルである最も高い確率を有する、3つの出力ベクトルのシーケンスから構成されている。ビームサーチエンジンは、出力ベクトルのk個のセットを機械学習エンジンに提供し、シーケンスにおける次の出力ベクトルである最も高い確率を有する特定の出力ベクトルを生成するように機械学習モデルに影響する。
【0064】
機械学習エンジンは、以前に生成された出力ベクトルを推奨ベクトルと一緒に入力として機械学習モデルに提供するプロセスを反復し、推奨のための人間可読理由における全ての単語が生成されるまで次の出力ベクトルを生成する(オペレーション318)。
【0065】
1つの実施形態において、生成された出力ベクトルは、それらの単語の対応するシーケンスに変換され、単語のシーケンスは、ユーザへ出力される。ユーザは、単語のシーケンスに関するフィードバックを提供する(オペレーション324)。例えば、ユーザは、単語のシーケンスの中で意味をなさない単語、順序が合っていない単語、またはシーケンスにおいて不要なまたはシーケンスから失われた単語を識別してよい。1つまたは複数の実施形態において、機械学習エンジンは、word2vecモデルによって単語の間で識別された関係に基づいて1つまたは複数の交互の単語をユーザに提供してよい。
【0066】
1つまたは複数の実施形態において、ユーザは、特定のユーザ属性を有する特定のユーザに基づいて特定の人間可読理由が生成されるべきではないことを示す場合がある。例えば、理由は、その他のユーザのナビゲーションについての機密または秘密の情報を公開する場合がある。
【0067】
機械学習エンジンは、ユーザフィードバックに基づいて機械学習モデルを更新する(オペレーション326)。例えば、ユーザが、不正確な順序であるものとして単語を示す場合、機械学習エンジンは、特定の単語が特定の位置において生じる確率を高めるようにアテンションエンジンを調整してよい。ユーザが、シーケンスから省略されるものとして1つまたは複数の単語を示す場合、機械学習エンジンは、1つまたは複数の出力ベクトルをシーケンスに追加してよい。ユーザが、単語がシーケンスにおいて不要であることを示す場合、機械学習エンジンは、シーケンスから出力ベクトルを省略してよい。ユーザが、特定の理由が生成されるべきでないことを示す場合、機械学習モデルは、特定の推奨ベクトルのための人間可読理由を生成することを控える場合がある。
【0068】
5.コンピュータネットワークおよびクラウドネットワーク
1つまたは複数の実施形態において、コンピュータネットワークは、ノードのセットの中での接続性を提供する。ノードは、互いにローカルおよび/またはリモートであってよい。ノードは、リンクのセットによって接続されている。リンクの例は、同軸ケーブル、非シールドツイストケーブル、銅ケーブル、光ファイバ、および仮想リンクを含む。
【0069】
ノードのサブセットは、コンピュータネットワークを実装する。このようなノードの例は、スイッチ、ルータ、ファイアウォール、およびネットワークアドレストランスレータ(NAT)を含む。ノードの別のサブセットは、コンピュータネットワークを使用する。このようなノード(「ホスト」とも呼ばれる)は、クライアントプロセスおよび/またはサーバプロセスを実行してよい。クライアントプロセスは、コンピューティングサービス(特定のアプリケーションの実行、および/または特定の量のデータの記憶など)のためのリクエストを行う。サーバプロセスは、リクエストされたサービスを実行することによっておよび/または対応するデータを戻すことによって応答する。
【0070】
コンピュータネットワークは、物理的リンクによって接続された物理的ノードを含む、物理的ネットワークであってよい。物理的ノードは、あらゆるデジタルデバイスである。物理的ノードは、ハードウェアスイッチ、ハードウェアルータ、ハードウェアファイアウォール、およびハードウェアNATなどの特定機能ハードウェアデバイスであってよい。追加的または代替的に、物理的ノードは、それぞれの機能を実行する様々な仮想マシンおよび/またはアプリケーションを実行するように構成されているジェネリックマシンであってよい。物理的リンクは、2つ以上の物理的ノードを接続する物理的媒体である。リンクの例は、同軸ケーブル、非シールドツイストケーブル、銅ケーブル、および光ファイバを含む。
【0071】
コンピュータネットワークは、オーバーレイネットワークであってよい。オーバーレイネットワークは、別のネットワーク(物理的ネットワークなど)の上に実装された論理ネットワークである。オーバーレイネットワークにおける各々のノードは、下側にあるネットワークにおけるそれぞれのノードに対応している。これにより、オーバーレイネットワークにおける各々のノードは、(オーバーレイノードへアドレス指定するための)オーバーレイアドレスおよび(オーバーレイノードを実装するアンダーレイノードをアドレス指定する)アンダーレイアドレスの両方に関連している。オーバーレイノードは、デジタルデバイスおよび/またはソフトウェアプロセス(仮想マシン、アプリケーションインスタンス、またはスレッドなど)であってよい。オーバーレイノードを接続するリンクは、下側にあるネットワークを通過するトンネルとして実行されている。トンネルのいずれかの端部におけるオーバーレイノードは、それらの間の下側にあるマルチホップパスを単一の論理リンクとして処理する。トンネリングは、カプセル化および非カプセル化を介して実行される。
【0072】
実施形態において、クライアントは、コンピュータネットワークにローカルであるおよび/またはコンピュータネットワークからリモートであってよい。クライアントは、プライベートネットワークまたはインターネットなど、その他のコンピュータネットワーク上のコンピュータネットワークにアクセスしてよい。クライアントは、Hypertext Transfer Protocol(HTTP)などの通信プロトコルを使用してコンピュータネットワークへリクエストを伝達してよい。リクエストは、クライアントインターフェース(ウェブブラウザなど)、プログラムインターフェース、またはアプリケーションプログラミングインターフェース(API)などのインターフェースを介して伝達される。
【0073】
実施形態において、コンピュータネットワークは、クライアントとネットワークリソースとの間の接続性を提供する。ネットワークリソースは、サーバプロセスを実行するように構成されたハードウェアおよび/またはソフトウェアを含む。ネットワークリソースの例は、プロセッサ、データストレージ、仮想マシン、コンテナ、および/またはソフトウェアアプリケーションを含む。ネットワークリソースは、複数のクライアントの中で共有される。クライアントは、互いに独立してコンピュータネットワークからのサービスを計算することをリクエストする。ネットワークリソースは、オンデマンド方式でダイナミックにリクエストおよび/またはクライアントに割り当てられる。各々のリクエストおよび/またはクライアントに割り当てられたネットワークリソースは、例えば、(a)特定のクライアントによってリクエストされるコンピューティングサービス、(b)特定のテナントによってリクエストされる集合コンピューティングサービス、および/または(c)コンピュータネットワークのリクエストされた集合コンピューティングサービス、に基づいてスケールアップまたはスケールダウンされてよい。このようなコンピュータネットワークは、「クラウドネットワーク」と呼ばれてよい。
【0074】
実施形態において、サービスプロバイダは、クラウドネットワークを1つまたは複数のエンドユーザに提供する。これらに限定されないが、Software-as-a-Service(SaaS)、Platform-as-a-Service(PaaS)、およびInfrastructure-as-a-Service(IaaS)を含む、様々なサービスモデルがクラウドネットワークによって実装されてよい。SaaSにおいて、サービスプロバイダは、エンドユーザに、ネットワークリソースにおいて実行しているサービスプロバイダのアプリケーションを使用する能力を提供する。PaaSにおいて、サービスプロバイダは、エンドユーザに、カスタムアプリケーションをネットワークリソースへ展開する能力を提供する。カスタムアプリケーションは、プログラミング言語、ライブラリ、サービス、およびサービスプロバイダによってサポートされるツールを使用して生成されてよい。IaaSにおいて、サービスプロバイダは、エンドユーザに、処理、ストレージ、ネットワーク、およびネットワークリソースによって提供されるその他の基本的コンピューティングリソースを準備する能力を提供する。オペレーティングシステムを含むあらゆる任意のアプリケーションは、ネットワークリソース上で展開されてよい。
【0075】
実施形態において、様々な展開モデルは、これらに限定されないが、プライベートクラウド、パブリッククラウド、およびハイブリッドクラウドを含む、コンピュータネットワークによって実装されてよい。プライベートクラウドにおいて、ネットワークリソースは、1つまたは複数のエンティティの特定のグループによる排他的使用のために準備されている(本明細書において使用されている「エンティティ」という用語は、企業、組織、個人またはその他のエンティティを指す)。ネットワークリソースは、エンティティの特定のグループの敷地にローカルおよび/または敷地からリモートであってよい。パブリッククラウドにおいて、クラウドリソースは、互いに独立した複数のエンティティ(「テナント」または「カスタマー」とも呼ばれる)のために準備されている。コンピュータネットワークおよびそのネットワークリソースは、異なるテナントに対応するクライアントによってアクセスされる。このようなコンピュータネットワークは、「マルチテナントコンピュータネットワーク」と呼ばれてよい。幾つかのテナントは、異なる時点におよび/または同時に同じ特定のネットワークリソースを使用してよい。ネットワークリソースは、テナントの敷地にローカルであるおよび/または敷地からリモートであってよい。ハイブリッドクラウドにおいて、コンピュータネットワークは、プライベートクラウドおよびパブリッククラウドを含む。プライベートクラウドとパブリッククラウドとの間のインターフェースは、データおよびアプリケーションポータビリティを可能にする。プライベートクラウドに記憶されたデータおよびパブリッククラウドに記憶されたデータは、インターフェースを介して交換されてよい。プライベートクラウドにおいて実装されているアプリケーションおよびパブリッククラウドにおいて実装されているアプリケーションは、互いに依存性を有してよい。プライベートクラウドにおけるアプリケーションからパブリッククラウドにおけるアプリケーション(およびその逆)へのコールは、インターフェースを介して実行されてよい。
【0076】
実施形態において、マルチテナントコンピュータネットワークのテナントは、互いに独立している。例えば、1つのテナントのビジネスまたはオペレーションは、別のテナントのビジネスまたはオペレーションとは別個であってよい。テナントが異なれば、コンピュータネットワークに求められるネットワーク要件も異なる場合がある。ネットワーク要件の例は、処理速度、データストレージの量、セキュリティ要件、パフォーマンス要件、スループット要件、レイテンシ要件、レジリエンシー要件、Quality of Service(QoS)要件、テナントアイソレーション、および/またはコンシステンシーを含む。同じコンピュータネットワークは、異なるテナントによって要求される異なるネットワーク要件を実装する必要があってよい。
【0077】
1つまたは複数の実施形態において、マルチテナントコンピュータネットワークにおいて、テナントアイソレーションは、異なるテナントのアプリケーションおよび/またはデータが互いに共有されないことを保証するために実装されている。様々なテナントアイソレーションアプローチが使用されてよい。
【0078】
実施形態において、各々のテナントは、テナントIDに関連している。マルチテナントコンピュータネットワークの各々のネットワークリソースは、テナントIDがタグ付けされている。テナントは、テナントおよび特定のネットワークリソースが同じテナントIDに関連付けられている場合にのみ、特定のネットワークリソースへのアクセスを許可される。
【0079】
実施形態において、各々のテナントは、テナントIDに関連している。コンピュータネットワークによって実装される各々のアプリケーションは、テナントIDがタグ付けされている。加えてまたは代替的に、コンピュータネットワークによって記憶されている各々のデータ構造および/またはデータセットは、テナントIDがタグ付けされている。テナントは、テナントおよび特定のアプリケーション、データ構造、および/またはデータセットが同じテナントIDに関連付けられている場合にのみ、特定のアプリケーション、データ構造、および/またはデータセットへのアクセスが許可される。
【0080】
一例として、マルチテナントコンピュータネットワークによって実装されている各々のデータベースは、テナントIDがタグ付けされていてよい。対応するテナントIDに関連付けられたテナントのみが、特定のデータベースのデータにアクセスしてよい。別の例として、マルチテナントコンピュータネットワークによって実装されているデータベースにおける各々のエントリは、テナントIDがタグ付けされていてよい。対応するテナントIDに関連付けられたテナントのみが、特定のエントリのデータにアクセスしてよい。しかしながら、データベースは、複数のテナントによって共有されてよい。
【0081】
実施形態において、サブスクリプションリストは、どのテナントがどのアプリケーションにアクセスするための権限を有するかを示す。各々のアプリケーションのために、アプリケーションにアクセスすることが許可されたテナントのテナントIDのリストが記憶されている。テナントは、テナントのテナントIDが、特定のアプリケーションに対応するサブスクリプションリストに含まれている場合にのみ、特定のアプリケーションへアクセスすることが許可される。
【0082】
実施形態において、異なるテナントに対応するネットワークリソース(デジタルデバイス、仮想マシン、アプリケーションインスタンス、およびスレッドなど)は、マルチテナントコンピュータネットワークによって維持される特定テナントオーバーレイネットワークに隔離されている。例として、テナントオーバーレイネットワークにおけるあらゆるソースデバイスからのパケットは、同じテナントオーバーレイネットワーク内の他のデバイスのみに送信されてよい。カプセル化トンネルは、テナントオーバーレイネットワークにおけるソースデバイスから他のテナントオーバーレイネットワークにおけるデバイスへのあらゆる送信を禁じるために使用される。特に、ソースデバイスから受信されたパケットは、外側パケット内にカプセル化される。外側パケットは、第1のカプセル化トンネルエンドポイント(テナントオーバーレイネットワークにおけるソースデバイスと通信している)から第2のカプセル化トンネルエンドポイント(テナントオーバーレイネットワークにおける宛先デバイスと通信している)へ送信される。第2のカプセル化トンネルエンドポイントは、ソースデバイスによって送信された元のパケットを取得するために外側パケットをカプセル化解除する。元のパケットは、第2のカプセル化トンネルエンドポイントから同じ特定のオーバーレイネットワークにおける宛先デバイスへ送信される。
【0083】
7.雑則;拡張
実施形態は、ハードウェアプロセッサを含みかつ本明細書に記載されかつ/または後述の請求項のいずれかに列挙されたオペレーションのいずれかを実行するように構成されている1つまたは複数のデバイスを有するシステムに関する。
【0084】
実施形態において、非一時的コンピュータ可読記憶媒体は、1つまたは複数のハードウェアプロセッサによって実行されたとき、本明細書に記載されかつ/または請求項のいずれかに列挙されたオペレーションのうちのいずれかの実行を引き起こす命令を含む。
【0085】
本明細書に記載された特徴および機能のあらゆる組合せは、1つまたは複数の実施形態に従って使用されてよい。前記明細書において、実施形態は、実装ごとに変化してよい多数の特定の詳細を参照して記載されている。明細書および図面は、したがって、限定的な意味ではなく、例示的な意味において見なされるべきである。発明の範囲の唯一の排他的な指標、および発明の範囲であると出願人によって意図されているものは、あらゆる後の補正を含む、このような請求項が生じる特定の形式において、本願から生じる請求項のセットの文字通りのおよび均等の範囲である。
【0086】
8.ハードウェア概要
1つの実施形態によれば、本明細書に記載された技術は、1つまたは複数の専用コンピューティングデバイスによって実装されている。専用コンピューティングデバイスは、技術を実行するために配線で接続されてよいか、または1つまたは複数の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または技術を実行するように持続的にプログラムされているネットワーク処理ユニット(NPU)などのデジタル電子デバイスを含んでよいか、またはファームウェア、メモリ、その他のストレージ、または組合せにおいてプログラム命令に準じる技術を実行するようにプログラムされた1つまたは複数の汎用ハードウェアプロセッサを含んでよい。このような専用コンピューティングデバイスは、技術を達成するために、カスタム配線ロジック、ASIC、FPGA、またはNPUをカスタムプログラミングと組み合わせてもよい。専用コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワークデバイス、または技術を実装するために配線および/またはプログラムロジックを組み込んだあらゆるその他のデバイスであってよい。
【0087】
例えば、図4は、発明の実施形態が実装されてよいコンピュータシステム400を示すブロック図である。コンピュータシステム400は、情報を伝達するためのバス402またはその他の通信機構、および情報を処理するための、バス402と結合されたハードウェアプロセッサ404を含む。ハードウェアプロセッサ404は、例えば、汎用マイクロプロセッサであってよい。
【0088】
コンピュータシステム400は、情報およびプロセッサ404によって実行される命令を記憶するための、バス402に結合された、ランダムアクセスメモリ(RAM)またはその他のダイナミック記憶装置などのメインメモリ406も含む。メインメモリ406は、プロセッサ404によって実行される命令の実行中に一時的変数またはその他の中間情報を記憶するために使用されてもよい。このような命令は、プロセッサ404にアクセス可能な非一時的記憶媒体に記憶されると、コンピュータシステム400を、命令において指定されたオペレーションを実行するようにカスタマイズされた専用マシンにする。
【0089】
コンピュータシステム400は、プロセッサ404のためのスタティック情報および命令を記憶するための、バス402に結合された読み出し専用メモリ(ROM)408またはその他のスタティック記憶装置をさらに含む。磁気ディスクまたは光学ディスクなどの記憶装置410は、情報および命令を記憶するために提供され、バス402に結合されている。
【0090】
コンピュータシステム400は、情報をコンピュータユーザに表示するために、バス402を介して、陰極線管(CRT)などのディスプレイ412に結合されていてよい。英数字およびその他のキーを含む入力装置414は、情報およびコマンド選択をプロセッサ404に伝達するためにバス402に結合されている。別のタイプのユーザ入力装置は、指示情報およびコマンド選択をプロセッサ404へ伝達しかつディスプレイ412上のカーソルの動きを制御するための、マウス、トラックボールまたはカーソルディレクションキーなどの、カーソルコントロール416である。この入力装置は、一般的に、装置が平面における位置を指定することを可能にする、2つの軸、つまり第1の軸(例えば、x)および第2の軸(例えば、y)における2つの自由度を有する。
【0091】
コンピュータシステム400は、コンピュータシステムとの組合せにおいてコンピュータシステム400が専用マシンであるようにするまたはプログラムする、カスタマイズされた配線ロジック、1つまたは複数のASICまたはFPGA、ファームウェアおよび/またはプログラムロジックを使用して本明細書に記載された技術を実装してよい。1つの実施形態によれば、本明細書における技術は、メインメモリ406に含まれる1つまたは複数の命令の1つまたは複数のシーケンスを実行するプロセッサ404に応答してコンピュータシステム400によって実行される。このような命令は、記憶装置410などの別の記憶媒体からメインメモリ406に読み込まれてよい。メインメモリ406に含まれる命令のシーケンスの実行により、プロセッサ404は、本明細書に記載されたプロセスステップを実行する。代替的な実施形態において、配線された回路は、ソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて使用されてよい。
【0092】
本明細書において使用される「記憶媒体」という用語は、マシンを特定の形式で動作させるデータおよび/または命令を記憶するあらゆる非一時的媒体を指す。このような記憶媒体は、不揮発性媒体および/または揮発性媒体を含んでよい。不揮発性媒体は、例えば、記憶装置410などの、光学または磁気ディスクを含む。揮発性媒体は、メインメモリ406などのダイナミックメモリを含む。記憶媒体の一般的な形態は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、またはあらゆるその他の磁気データ記憶媒体、CD-ROM、あらゆるその他の光学データ記憶媒体、ホールのパターンを有するあらゆる物理的媒体、RAM、PROM、およびEPROM、FLASH-EPROM、NVRAM、あらゆるその他のメモリチップまたはカートリッジ、コンテントアドレッサブルメモリ(CAM)、および三値コンテントアドレッサブルメモリ(TCAM)を含む。
【0093】
記憶媒体は、伝送媒体とは別個であるが、伝送媒体に関連して使用されてよい。伝送媒体は、記憶媒体間で情報を伝達することに関与する。例えば、伝送媒体は、同軸ケーブル、銅ワイヤ、および光ファイバを含み、バス402を含むワイヤを含む。伝送媒体は、電波および赤外線データ通信中に生成されるものなど、音波または光波の形態を取ることもできる。
【0094】
様々な形態の媒体が、実行のためにプロセッサ404へ1つまたは複数の命令の1つまたは複数のシーケンスを保持することに関与してよい。例えば、命令は、最初、リモートコンピュータの磁気ディスクまたはソリッドステートドライブ上に保持されてよい。リモートコンピュータは、命令をダイナミックメモリにロードし、モデムを使用して電話線上で命令を送信することができる。コンピュータシステム400にローカルのモデムは、電話線上でデータを受信し、データを赤外線信号に変換するために赤外線送信機を使用することができる。赤外線検出器は、赤外線信号に保持されたデータを受信することができ、適切な回路は、データをバス402に配置することができる。バス402は、データをメインメモリ402へ運び、そこからプロセッサ404が命令を検索および実行する。メインメモリ406によって受信された命令は、選択的に、プロセッサ404による実行の前または後に記憶装置410に記憶されてよい。
【0095】
コンピュータシステム400は、バス402に結合された通信インターフェース418も含む。通信インターフェース418は、ローカルネットワーク422に接続されたネットワークリンク420に結合するツーウェイデータ通信を提供する。例えば、通信インターフェース418は、総合デジタル通信網(ISDN)カード、ケーブルモデム、サテライトモデム、または対応するタイプの電話線へのデータ通信接続を提供するためのモデルであってよい。別の例として、通信インターフェース418は、コンパチブルLANへのデータ通信接続を提供するためのローカルエリアネットワーク(LAN)カードであってよい。無線リンクが実装されてもよい。あらゆるこのような実装において、通信インターフェース418は、様々なタイプの情報を表すデジタルデータストリームを保持する電気的、電磁気的または光学的信号を送信および受信する。
【0096】
ネットワークリンク420は、一般的に、1つまたは複数のネットワークを介して他のデータ装置へデータ通信を提供する。例えば、ネットワークリンク420は、ローカルネットワーク422を介して、ホストコンピュータ424への、またはインターネットサービスプロバイダ(ISP)426によって動作されるデータ機器への接続を提供してよい。ISP426自体は、現在では「インターネット」428と一般的に呼ばれる世界規模のパケットデータ通信ネットワークを通じてデータ通信サービスを提供する。ローカルネットワーク422およびインターネット428のどちらも、デジタルデータストリームを保持する電気的、電磁気的または光学的信号を使用する。コンピュータシステム400との間でデジタルデータを伝送する、様々なネットワークを介する信号およびネットワークリンク420上の、通信インターフェース418を介する信号は、伝送媒体の例示的な形態である。
【0097】
コンピュータシステム400は、ネットワーク、ネットワークリンク420および通信インターフェース418を介して、メッセージを送信しかつプログラムコードを含むデータを受信することができる。インターネットの例において、サーバ430は、インターネット428、ISP426、ローカルネットワーク422および通信インターフェース418を介して、アプリケーションプログラムのためのリクエストされたコードを送信してよい。
【0098】
受信されたコードは、受信されるときにプロセッサ404によって実行されてよく、および/または後の実行のために記憶装置410、またはその他の不揮発性ストレージに記憶されてよい。
【0099】
前記明細書において、発明の実施形態は、実装ごとに変化してよい多数の特定の詳細を参照して記載されている。したがって、明細書および図面は、限定的な意味ではなく例示的な意味において見なされるべきである。発明の範囲の唯一の排他的な指示子、および発明の範囲であることを出願人によって意図されたものは、あらゆる後の補正を含む、このような請求項が生じる特定の形式において、本願から生じる請求項のセットの文字通りのおよび均等な範囲である。
図1
図2
図3
図4
【国際調査報告】