(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-13
(54)【発明の名称】機械学習技術を用いた通信ワークフローのための強化された処理
(51)【国際特許分類】
G06Q 50/10 20120101AFI20230406BHJP
G06F 16/9032 20190101ALI20230406BHJP
【FI】
G06Q50/10
G06F16/9032
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022551017
(86)(22)【出願日】2021-02-25
(85)【翻訳文提出日】2022-10-06
(86)【国際出願番号】 US2021019636
(87)【国際公開番号】W WO2021173815
(87)【国際公開日】2021-09-02
(32)【優先日】2020-02-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】カルリ,スダカール
(72)【発明者】
【氏名】ドゥブリ,ベンカタ・チャンドラシェカール
【テーマコード(参考)】
5B175
5L049
【Fターム(参考)】
5B175DA10
5B175HB03
5B175KA11
5L049CC12
(57)【要約】
本開示は、概して、機械学習技術を使用して、タスクからなる通信ワークフローを評価することに関する。より具体的には、本開示は、通信ワークフローのタスク結果の予測を生成し、通信ワークフローを完了するために部分的な通信ワークフローに追加するための1つ以上のタスクの推奨を生成し、通信ワークフローのベクトル表現を生成するための、システムおよび方法に関する。
【特許請求の範囲】
【請求項1】
コンピュータにより実現される方法であって、
シーケンシャルな順序で配置された1つ以上のタスクを含む通信ワークフローにアクセスすることを含み、前記通信ワークフローは、ユーザデバイスのセットとの対話を容易にするよう構成され、前記1つ以上のタスクの各タスクは、実行時に、前記ユーザデバイスのセットに関連付けられる機能を実行する実行可能コードを含み、前記通信ワークフローは、前記通信ワークフローの前記1つ以上のタスクの各タスクを特徴付ける1つ以上のパラメータに関連付けられ、前記方法はさらに、
前記通信ワークフローを表す複合特徴ベクトルを生成することを含み、前記複合特徴ベクトルは、前記通信ワークフローの前記1つ以上のタスクの各タスクの特徴ベクトルを使用して生成され、前記1つ以上のタスクの各タスクの前記特徴ベクトルは、前記タスクを特徴付ける前記1つ以上のパラメータを使用して1つ以上の機械学習技術を実行することによって生成され、前記方法はさらに、
トレーニングされた機械学習モデルに前記通信ワークフローの前記複合特徴ベクトルを入力することを含み、前記トレーニングされた機械学習モデルは、通信ワークフローの性能値の予測を生成するようにトレーニングされており、前記トレーニングされた機械学習モデルは、1つ以上の以前に実行された通信ワークフローを表すトレーニングデータセットと、前記1つ以上の以前に実行された通信ワークフローの各々の対応する以前の性能値とを使用してトレーニングされており、前記方法はさらに、
前記トレーニングされた機械学習モデルを使用して出力を生成することを含み、前記出力は、前記通信ワークフローの性能値を予測する、コンピュータにより実現される方法。
【請求項2】
前記方法はさらに、
前記通信ワークフローの構造を判断することを含み、前記構造は、木構造の複数のノードによって表され、前記木構造の前記複数のノードのうちの2つのノードは、1つ以上のステージによって接続され、前記通信ワークフローの前記1つ以上のタスクの各タスクは、前記複数のノードのうちのあるノードまたは前記1つ以上のステージのうちのあるステージに対応し、前記方法はさらに、
前記トレーニングデータセットを評価して、前記通信ワークフローの前記構造が、前記1つ以上の以前に実行された通信ワークフローのうちの少なくとも1つの以前に実行された通信ワークフローの構造に一致するかどうかを判定することを含む、請求項1に記載のコンピュータにより実現される方法。
【請求項3】
前記方法はさらに、
前記通信ワークフローの前記構造が、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちの、ある以前に実行された通信ワークフローのグループの構造に一致する、と判断することと、
前記通信ワークフローの前記複合特徴ベクトルを、ドメイン空間において、前記ある以前に実行された通信ワークフローのグループの各以前に実行された通信ワークフローの複合特徴ベクトルと比較することと、
閾値および前記比較の結果に基づいて、前記ある以前に実行された通信ワークフローのグループのサブグループを選択することと、
前記以前に実行された通信ワークフローのサブグループの各以前に実行された通信ワークフローについて、以前の性能値を識別することと、
前記以前に実行された通信ワークフローのサブグループに関連付けられる前記以前の性能値の組み合わせを判断することによって、前記通信ワークフローの前記性能値を予測する前記出力を生成することとを含む、請求項2に記載のコンピュータにより実現される方法。
【請求項4】
前記方法はさらに、
前記通信ワークフローの前記構造は、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちの、ある以前に実行された通信ワークフローのグループに関連付けられる構造に一致する、と判断することを含み、前記トレーニングデータセットの生成中に、
以前に実行された通信ワークフローの1つ以上のサブセットが判断され、前記1つ以上のサブセットの各サブセットは、共通の構造を共有する2つ以上の以前に実行された通信ワークフローに対応し、
クラスタリング動作が、前記以前に実行された通信ワークフローの1つ以上のサブセットの各サブセットに対して実行され、以前に実行された通信ワークフローの各サブセットは、以前に実行された通信ワークフローの1つ以上のクラスタに関連付けられ、前記1つ以上のクラスタは、ドメイン空間において前記以前に実行された通信ワークフローのサブセットに関連付けられる前記複合特徴ベクトルを使用して前記クラスタリング動作を実行することによって形成され、クラスタに含まれる各以前に実行された通信ワークフローは、そのクラスタ内の他の以前に実行された通信ワークフローの前記複合特徴ベクトルに対応する複合特徴ベクトルと関連付けられ、前記方法はさらに、
前記通信ワークフローの前記性能値を予測する前記出力を生成することを含み、前記生成することは、
構造が前記通信ワークフローの前記構造に対応する、前記トレーニングデータセットの前記1つ以上のサブセットのうちの特定のサブセットを識別することと、
前記通信ワークフローの前記複合特徴ベクトルと、前記1つ以上のクラスタの各クラスタに関連付けられる前記複合特徴ベクトルとの比較に基づいて、前記通信ワークフローを、前記特定のサブセットに対応する前記1つ以上のクラスタのうちの特定のクラスタに割り当てることと、
前記通信ワークフローが割り当てられる前記特定のクラスタに関連付けられる前記以前に実行された通信ワークフローに関連付けられる前記以前の性能値の組み合わせを判断することとによって行われる、請求項2に記載のコンピュータにより実現される方法。
【請求項5】
前記方法はさらに、
前記通信ワークフローの前記構造は、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちの、ある以前に実行された通信ワークフローのグループに関連付けられる構造に一致する、と判断することを含み、前記トレーニングデータセットの生成中に、
以前に実行された通信ワークフローの1つ以上のサブセットが識別され、前記1つ以上のサブセットの各サブセットは、共通の構造を共有する2つ以上の以前に実行された通信ワークフローに対応し、
教師あり機械学習モデルが、前記以前に実行された通信ワークフローの1つ以上のサブセットの各サブセットに対してトレーニングされ、前記方法はさらに、
前記通信ワークフローの前記性能値を予測する前記出力を生成することを含み、前記生成することは、
対応する構造が前記通信ワークフローの前記構造に一致する、前記トレーニングデータセットの前記1つ以上のサブセットのうちの特定のサブセットを識別することと、
前記通信ワークフローの前記複合特徴ベクトルを、前記特定のサブセットに対応する前記教師あり機械学習モデルに入力することと、
前記通信ワークフローの前記性能値を予測する前記出力を生成することとによって行われる、請求項2に記載のコンピュータにより実現される方法。
【請求項6】
前記方法はさらに、
前記通信ワークフローの前記構造が、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちのいずれの以前に実行された通信ワークフローの構造とも一致しないと判断することと、
前記通信ワークフローの前記性能値を予測する前記出力を生成することとを含み、前記生成することは、
前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローの各以前に実行された通信ワークフローを、複数の以前に実行されたサブワークフローにセグメント化することと、
前記通信ワークフローの前記構造を、前記トレーニングデータセットの各以前に実行された通信ワークフローの前記複数のサブワークフローの各サブワークフローと比較することと、
前記複数の以前に実行されたサブワークフローのうち、前記通信ワークフローの前記構造に一致する、以前に実行されたサブワークフローのグループを識別することと、
前記通信ワークフローの前記複合特徴ベクトルを、ドメイン空間において、前記以前に実行されたサブワークフローのグループの各以前に実行されたサブワークフローの複合特徴ベクトルと比較することと、
閾値および前記比較の結果に基づいて、前記以前に実行されたサブワークフローのグループのサブグループを選択することと、
前記選択された、以前に実行されたサブワークフローのサブグループに関連付けられる前記以前の性能値に基づいて、前記通信ワークフローの予測される性能値を判断することとによって行われる、請求項2に記載のコンピュータにより実現される方法。
【請求項7】
前記通信ワークフローは、
前記通信ワークフローの構造と、
通信ワークフローに含まれる各タスクと、
前記通信ワークフローの前記1つ以上のタスクのうちのあるタスクを表す各特徴ベクトルとを記述するメタデータを含むリストによって定義され、前記メタデータのリストは、1つ以上の機能を実行するために解析される、請求項1に記載のコンピュータにより実現される方法。
【請求項8】
システムであって、
1つ以上のプロセッサと、
命令を含む非一時的なコンピュータ可読記憶媒体とを備え、前記命令は、前記1つ以上のプロセッサ上で実行されると前記1つ以上のプロセッサに動作を実行させ、前記動作は、
シーケンシャルな順序で配置された1つ以上のタスクを含む通信ワークフローにアクセスすることを含み、前記通信ワークフローは、ユーザデバイスのセットとの対話を容易にするよう構成され、前記1つ以上のタスクの各タスクは、実行時に、前記ユーザデバイスのセットに関連付けられる機能を実行する実行可能コードを含み、前記通信ワークフローは、前記通信ワークフローの前記1つ以上のタスクの各タスクを特徴付ける1つ以上のパラメータに関連付けられ、前記動作はさらに、
前記通信ワークフローを表す複合特徴ベクトルを生成することを含み、前記複合特徴ベクトルは、前記通信ワークフローの前記1つ以上のタスクの各タスクの特徴ベクトルを使用して生成され、前記1つ以上のタスクの各タスクの前記特徴ベクトルは、前記タスクを特徴付ける前記1つ以上のパラメータを使用して1つ以上の機械学習技術を実行することによって生成され、前記動作はさらに、
トレーニングされた機械学習モデルに前記通信ワークフローの前記複合特徴ベクトルを入力することを含み、前記トレーニングされた機械学習モデルは、通信ワークフローの性能値の予測を生成するようにトレーニングされており、前記トレーニングされた機械学習モデルは、1つ以上の以前に実行された通信ワークフローを表すトレーニングデータセットと、前記1つ以上の以前に実行された通信ワークフローの各々の対応する以前の性能値とを使用してトレーニングされており、前記動作はさらに、
前記トレーニングされた機械学習モデルを使用して出力を生成することを含み、前記出力は、前記通信ワークフローの性能値を予測する、システム。
【請求項9】
前記動作はさらに、
前記通信ワークフローの構造を判断することを含み、前記構造は、木構造の複数のノードによって表され、前記木構造の前記複数のノードのうちの2つのノードは、1つ以上のステージによって接続され、前記通信ワークフローの前記1つ以上のタスクの各タスクは、前記複数のノードのうちのあるノードまたは前記1つ以上のステージのうちのあるステージに対応し、前記動作はさらに、
前記トレーニングデータセットを評価して、前記通信ワークフローの前記構造が、前記1つ以上の以前に実行された通信ワークフローのうちの少なくとも1つの以前に実行された通信ワークフローの構造に一致するかどうかを判定することを含む、請求項8に記載のシステム。
【請求項10】
前記動作はさらに、
前記通信ワークフローの前記構造が、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちの、ある以前に実行された通信ワークフローのグループの構造に一致する、と判断することと、
前記通信ワークフローの前記複合特徴ベクトルを、ドメイン空間において、前記ある以前に実行された通信ワークフローのグループの各以前に実行された通信ワークフローの複合特徴ベクトルと比較することと、
閾値および前記比較の結果に基づいて、前記ある以前に実行された通信ワークフローのグループのサブグループを選択することと、
前記以前に実行された通信ワークフローのサブグループの各以前に実行された通信ワークフローについて、以前の性能値を識別することと、
前記以前に実行された通信ワークフローのサブグループに関連付けられる前記以前の性能値の組み合わせを判断することによって、前記通信ワークフローの前記性能値を予測する前記出力を生成することとを含む、請求項9に記載のシステム。
【請求項11】
前記動作はさらに、
前記通信ワークフローの前記構造は、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちの、ある以前に実行された通信ワークフローのグループに関連付けられる構造に一致する、と判断することを含み、前記トレーニングデータセットの生成中に、
以前に実行された通信ワークフローの1つ以上のサブセットが判断され、前記1つ以上のサブセットの各サブセットは、共通の構造を共有する2つ以上の以前に実行された通信ワークフローに対応し、
クラスタリング動作が、前記以前に実行された通信ワークフローの1つ以上のサブセットの各サブセットに対して実行され、以前に実行された通信ワークフローの各サブセットは、以前に実行された通信ワークフローの1つ以上のクラスタに関連付けられ、前記1つ以上のクラスタは、ドメイン空間において前記以前に実行された通信ワークフローのサブセットに関連付けられる前記複合特徴ベクトルを使用して前記クラスタリング動作を実行することによって形成され、クラスタに含まれる各以前に実行された通信ワークフローは、そのクラスタ内の他の以前に実行された通信ワークフローの前記複合特徴ベクトルに対応する複合特徴ベクトルと関連付けられ、前記動作はさらに、
前記通信ワークフローの前記性能値を予測する前記出力を生成することを含み、前記生成することは、
構造が前記通信ワークフローの前記構造に対応する、前記トレーニングデータセットの前記1つ以上のサブセットのうちの特定のサブセットを識別することと、
前記通信ワークフローの前記複合特徴ベクトルと、前記1つ以上のクラスタの各クラスタに関連付けられる前記複合特徴ベクトルとの比較に基づいて、前記通信ワークフローを、前記特定のサブセットに対応する前記1つ以上のクラスタのうちの特定のクラスタに割り当てることと、
前記通信ワークフローが割り当てられる前記特定のクラスタに関連付けられる前記以前に実行された通信ワークフローに関連付けられる前記以前の性能値の組み合わせを判断することとによって行われる、請求項9に記載のシステム。
【請求項12】
前記動作はさらに、
前記通信ワークフローの前記構造は、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちの、ある以前に実行された通信ワークフローのグループに関連付けられる構造に一致する、と判断することを含み、前記トレーニングデータセットの生成中に、
以前に実行された通信ワークフローの1つ以上のサブセットが識別され、前記1つ以上のサブセットの各サブセットは、共通の構造を共有する2つ以上の以前に実行された通信ワークフローに対応し、
教師あり機械学習モデルが、前記以前に実行された通信ワークフローの1つ以上のサブセットの各サブセットに対してトレーニングされ、前記動作はさらに、
前記通信ワークフローの前記性能値を予測する前記出力を生成することを含み、前記生成することは、
対応する構造が前記通信ワークフローの前記構造に一致する、前記トレーニングデータセットの前記1つ以上のサブセットのうちの特定のサブセットを識別することと、
前記通信ワークフローの前記複合特徴ベクトルを、前記特定のサブセットに対応する前記教師あり機械学習モデルに入力することと、
前記通信ワークフローの前記性能値を予測する前記出力を生成することとによって行われる、請求項9に記載のシステム。
【請求項13】
前記動作はさらに、
前記通信ワークフローの前記構造が、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちのいずれの以前に実行された通信ワークフローの構造とも一致しないと判断することと、
前記通信ワークフローの前記性能値を予測する前記出力を生成することとを含み、前記生成することは、
前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローの各以前に実行された通信ワークフローを、複数の以前に実行されたサブワークフローにセグメント化することと、
前記通信ワークフローの前記構造を、前記トレーニングデータセットの各以前に実行された通信ワークフローの前記複数のサブワークフローの各サブワークフローと比較することと、
前記複数の以前に実行されたサブワークフローのうち、前記通信ワークフローの前記構造に一致する、以前に実行されたサブワークフローのグループを識別することと、
前記通信ワークフローの前記複合特徴ベクトルを、ドメイン空間において、前記以前に実行されたサブワークフローのグループの各以前に実行されたサブワークフローの複合特徴ベクトルと比較することと、
閾値および前記比較の結果に基づいて、前記以前に実行されたサブワークフローのグループのサブグループを選択することと、
前記選択された、以前に実行されたサブワークフローのサブグループに関連付けられる前記以前の性能値に基づいて、前記通信ワークフローの予測される性能値を判断することとによって行われる、請求項9に記載のシステム。
【請求項14】
前記通信ワークフローは、
前記通信ワークフローの構造と、
通信ワークフローに含まれる各タスクと、
前記通信ワークフローの前記1つ以上のタスクのうちのあるタスクを表す各特徴ベクトルとを記述するメタデータを含むリストによって定義され、前記メタデータのリストは、1つ以上の機能を実行するために解析される、請求項8に記載のシステム。
【請求項15】
処理装置に動作を実行させるよう構成された命令を含む、非一時的な機械可読記憶媒体において有形に具現化されたコンピュータプログラム製品であって、前記動作は、
シーケンシャルな順序で配置された1つ以上のタスクを含む通信ワークフローにアクセスすることを含み、前記通信ワークフローは、ユーザデバイスのセットとの対話を容易にするよう構成され、前記1つ以上のタスクの各タスクは、実行時に、前記ユーザデバイスのセットに関連付けられる機能を実行する実行可能コードを含み、前記通信ワークフローは、前記通信ワークフローの前記1つ以上のタスクの各タスクを特徴付ける1つ以上のパラメータに関連付けられ、前記動作はさらに、
前記通信ワークフローを表す複合特徴ベクトルを生成することを含み、前記複合特徴ベクトルは、前記通信ワークフローの前記1つ以上のタスクの各タスクの特徴ベクトルを使用して生成され、前記1つ以上のタスクの各タスクの前記特徴ベクトルは、前記タスクを特徴付ける前記1つ以上のパラメータを使用して1つ以上の機械学習技術を実行することによって生成され、前記動作はさらに、
トレーニングされた機械学習モデルに前記通信ワークフローの前記複合特徴ベクトルを入力することを含み、前記トレーニングされた機械学習モデルは、通信ワークフローの性能値の予測を生成するようにトレーニングされており、前記トレーニングされた機械学習モデルは、1つ以上の以前に実行された通信ワークフローを表すトレーニングデータセットと、前記1つ以上の以前に実行された通信ワークフローの各々の対応する以前の性能値とを使用してトレーニングされており、前記動作はさらに、
前記トレーニングされた機械学習モデルを使用して出力を生成することを含み、前記出力は、前記通信ワークフローの性能値を予測する、コンピュータプログラム製品。
【請求項16】
前記動作はさらに、
前記通信ワークフローの構造を判断することを含み、前記構造は、木構造の複数のノードによって表され、前記木構造の前記複数のノードのうちの2つのノードは、1つ以上のステージによって接続され、前記通信ワークフローの前記1つ以上のタスクの各タスクは、前記複数のノードのうちのあるノードまたは前記1つ以上のステージのうちのあるステージに対応し、前記動作はさらに、
前記トレーニングデータセットを評価して、前記通信ワークフローの前記構造が、前記1つ以上の以前に実行された通信ワークフローのうちの少なくとも1つの以前に実行された通信ワークフローの構造に一致するかどうかを判定することを含む、請求項15に記載の非一時的な機械可読記憶媒体。
【請求項17】
前記動作はさらに、
前記通信ワークフローの前記構造が、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちの、ある以前に実行された通信ワークフローのグループの構造に一致する、と判断することと、
前記通信ワークフローの前記複合特徴ベクトルを、ドメイン空間において、前記ある以前に実行された通信ワークフローのグループの各以前に実行された通信ワークフローの複合特徴ベクトルと比較することと、
閾値および前記比較の結果に基づいて、前記ある以前に実行された通信ワークフローのグループのサブグループを選択することと、
前記以前に実行された通信ワークフローのサブグループの各以前に実行された通信ワークフローについて、以前の性能値を識別することと、
前記以前に実行された通信ワークフローのサブグループに関連付けられる前記以前の性能値の組み合わせを判断することによって、前記通信ワークフローの前記性能値を予測する前記出力を生成することとを含む、請求項16に記載の非一時的な機械可読記憶媒体。
【請求項18】
前記動作はさらに、
前記通信ワークフローの前記構造は、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちの、ある以前に実行された通信ワークフローのグループに関連付けられる構造に一致する、と判断することを含み、前記トレーニングデータセットの生成中に、
以前に実行された通信ワークフローの1つ以上のサブセットが判断され、前記1つ以上のサブセットの各サブセットは、共通の構造を共有する2つ以上の以前に実行された通信ワークフローに対応し、
クラスタリング動作が、前記以前に実行された通信ワークフローの1つ以上のサブセットの各サブセットに対して実行され、以前に実行された通信ワークフローの各サブセットは、以前に実行された通信ワークフローの1つ以上のクラスタに関連付けられ、前記1つ以上のクラスタは、ドメイン空間において前記以前に実行された通信ワークフローのサブセットに関連付けられる前記複合特徴ベクトルを使用して前記クラスタリング動作を実行することによって形成され、クラスタに含まれる各以前に実行された通信ワークフローは、そのクラスタ内の他の以前に実行された通信ワークフローの前記複合特徴ベクトルに対応する複合特徴ベクトルと関連付けられ、前記動作はさらに、
前記通信ワークフローの前記性能値を予測する前記出力を生成することを含み、前記生成することは、
構造が前記通信ワークフローの前記構造に対応する、前記トレーニングデータセットの前記1つ以上のサブセットのうちの特定のサブセットを識別することと、
前記通信ワークフローの前記複合特徴ベクトルと、前記1つ以上のクラスタの各クラスタに関連付けられる前記複合特徴ベクトルとの比較に基づいて、前記通信ワークフローを、前記特定のサブセットに対応する前記1つ以上のクラスタのうちの特定のクラスタに割り当てることと、
前記通信ワークフローが割り当てられる前記特定のクラスタに関連付けられる前記以前に実行された通信ワークフローに関連付けられる前記以前の性能値の組み合わせを判断することとによって行われる、請求項16に記載の非一時的な機械可読記憶媒体。
【請求項19】
前記動作はさらに、
前記通信ワークフローの前記構造は、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちの、ある以前に実行された通信ワークフローのグループに関連付けられる構造に一致する、と判断することを含み、前記トレーニングデータセットの生成中に、
以前に実行された通信ワークフローの1つ以上のサブセットが識別され、前記1つ以上のサブセットの各サブセットは、共通の構造を共有する2つ以上の以前に実行された通信ワークフローに対応し、
教師あり機械学習モデルが、前記以前に実行された通信ワークフローの1つ以上のサブセットの各サブセットに対してトレーニングされ、前記動作はさらに、
前記通信ワークフローの前記性能値を予測する前記出力を生成することを含み、前記生成することは、
対応する構造が前記通信ワークフローの前記構造に一致する、前記トレーニングデータセットの前記1つ以上のサブセットのうちの特定のサブセットを識別することと、
前記通信ワークフローの前記複合特徴ベクトルを、前記特定のサブセットに対応する前記教師あり機械学習モデルに入力することと、
前記通信ワークフローの前記性能値を予測する前記出力を生成することとによって行われる、請求項16に記載の非一時的な機械可読記憶媒体。
【請求項20】
前記動作はさらに、
前記通信ワークフローの前記構造が、前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローのうちのいずれの以前に実行された通信ワークフローの構造とも一致しないと判断することと、
前記通信ワークフローの前記性能値を予測する前記出力を生成することとを含み、前記生成することは、
前記トレーニングデータセットの前記1つ以上の以前に実行された通信ワークフローの各以前に実行された通信ワークフローを、複数の以前に実行されたサブワークフローにセグメント化することと、
前記通信ワークフローの前記構造を、前記トレーニングデータセットの各以前に実行された通信ワークフローの前記複数のサブワークフローの各サブワークフローと比較することと、
前記複数の以前に実行されたサブワークフローのうち、前記通信ワークフローの前記構造に一致する、以前に実行されたサブワークフローのグループを識別することと、
前記通信ワークフローの前記複合特徴ベクトルを、ドメイン空間において、前記以前に実行されたサブワークフローのグループの各以前に実行されたサブワークフローの複合特徴ベクトルと比較することと、
閾値および前記比較の結果に基づいて、前記以前に実行されたサブワークフローのグループのサブグループを選択することと、
前記選択された、以前に実行されたサブワークフローのサブグループに関連付けられる前記以前の性能値に基づいて、前記通信ワークフローの予測される性能値を判断することとによって行われる、請求項16に記載の非一時的な機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願に対する相互参照
本開示は、2020年2月25日に提出された「Enhanced Processing For Communication Workflows Using Machine- Learning Techniques」に対する米国特許出願連続番号第16/800,869号に対して優先権を主張し、その全体をここに引用により援用する。
【0002】
技術分野
本開示は、概して、機械学習技術を使用して、タスクからなる通信ワークフローを評価することに関する。より具体的には、本開示は、機械学習または人工知能を使用して通信ワークフローのタスク結果の予測を生成し、ワークフローを完了するために部分的通信ワークフローに追加するための1つ以上のタスクの推奨を生成し、通信ワークフローのベクトル表現を生成するための、システムおよび方法に関する。
【背景技術】
【0003】
背景
ワークフローは、ある時間にユーザへの通信の送信をトリガするよう構成され得る。たとえば、コードは、所与の時間に通信チャネルを介してユーザデバイスに1つ以上の通信をトリガするために実行され得る。異なる通信チャネルを介した複数の通信は、個々のユーザに関与するよう、ワークフローにおいて調整され得る。しかしながら、ユーザによって実行されるターゲットアクションをもたらすタスクの見込みを評価することは、ワークフローの複雑さに起因して、ビッグデータスケールでの技術的課題である。ワークフローにどのタスクを含めるかの決定は、以前のワークフローを活用することなく手動で行われることが多い。さらに、さまざまなワークフローにおけるタスク構成の複雑さを考えると、ワークフローを互いに対して評価することは、非効率的であり、計算上煩わしい。
【発明の概要】
【0004】
概要
本開示のいくつかの態様および特徴は、機械学習または人工知能を使用して通信ワークフローを処理することに関する。通信ワークフローは、1つ以上のタスクの順序付けられたシーケンスを含んでもよい。通信ワークフローを実行することは、1つ以上のタスクを順序付けられたシーケンスで実行することを含んでもよい。たとえば、通信ワークフローのタスクを実行することは、サーバに、通信チャネルを介してユーザデバイスのターゲットグループに通信(たとえば、デジタルメッセージ)を送信させることを含んでもよい。通信は、ターゲットグループのユーザデバイスを操作するユーザが1つ以上のアクションを実行する(例えば、通信に含まれるリンクを選択する)ことを可能にするよう構成されてもよい。ユーザデバイスにおいて実行されたアクションの指示は、クラウドベースのアプリケーションにおいて受信されてもよい。通信ワークフローのタスクが実行されると、クラウドベースのアプリケーションは、通信ワークフローのタスク結果を判断してもよい。タスク結果は、通信ワークフローの全体的な性能メトリックを表してもよい。たとえば、全体的な性能メトリックは、通信ワークフローのすべてのタスクにわたって集約されるターゲットアクションを実行した(例えば、通信に含まれるリンクを選択した)(ユーザデバイスのターゲットグループのうちの)ユーザデバイスのパーセンテージを含んでもよい。
【0005】
非限定的な例としてのみ例示するために、通信ワークフローは、2つのタスクのシーケンスを含んでもよく;第1のタスクは電子メール通信タスクであり、(後続の)第2のタスクはテキストメッセージタスクである。電子メールタスクは、モバイルデバイスのターゲットグループに電子メール通信を送信することを含んでもよい。テキストメッセージタスクは、後で、モバイルデバイスのターゲットグループのサブセットにテキストメッセージ(例えば、ショートメッセージサービス(SMS))を送信することを含んでもよい。電子メール通信がモバイルデバイスのターゲットグループにおいて受信される場合、電子メール通信は、選択可能なリンクを含んでもよい。テキストメッセージがモバイルデバイスのターゲットグループのサブセットにおいて受信される場合、テキストメッセージも、選択可能リンクを含んでもよい。クラウドベースのアプリケーションは、電子メール通信を通じて、またはテキストメッセージを通じて、モバイルデバイスのターゲットグループにおいてリンクが選択されたかどうかの指示を受信してもよい。クラウドベースのアプリケーションは、通信ワークフローのタスク結果(例えば、両方のタスクの全体的な性能メトリック)を、電子メール通信またはテキストメッセージのいずれかを通じてリンクを選択したユーザの割合として判断してもよい。別の例として、クラウドベースのアプリケーションは、通信ワークフローの電子メール通信タスクおよびテキストメッセージタスクの各々について部分的な送信カウント(たとえば、送信された通信の数)を加算してもよい。クラウドベースのアプリケーションはまた、電子メール通信タスクおよびテキストメッセージタスクの各々について部分的なリンク選択カウント(たとえば、選択されたリンクの数)を加算してもよい。クラウドベースのアプリケーションは、次いで、総伝送カウントに対する総リンク選択カウントの比率を判断することによって、通信ワークフローのタスク結果を判断してもよい。
【0006】
本明細書に記載のいくつかの態様によれば、通信ワークフローのタスク結果は、通信ワークフローを表現する複合特徴ベクトルを生成し、その複合特徴ベクトルを機械学習モデルに入力することによって、予測することができる。機械学習モデルは、以前に実行された通信ワークフローおよびそれらの以前に実行された通信ワークフローの対応するタスク結果を使用してトレーニングされてもよい。加えて、いくつかの態様および特徴は、部分的通信ワークフローを完了するために部分的通信ワークフローに追加するようタスクの推奨を生成するために機械学習技術を使用することに関連してもよい。部分的通信ワークフローを完了するためのタスクのセットは、部分的通信ワークフローの複合特徴ベクトルを機械学習モデルに入力し、以前に実行された通信ワークフローのタスク結果の特定の値(例えば、閾値を上回るタスク結果の値)をもたらしたタスクを表す出力を生成することによって、推奨することができる。いくつかの態様および特徴はまた、通信ワークフローのベクトル表現を計算効率の良い態様で生成するためにニューラルネットワーク(たとえば、Graph2Vecモデル)を使用することに関係してもよい。ベクトル表現は、様々な関数を実行するために様々な機械学習モデルに入力することができる。本開示のいくつかの態様によれば、ベクトル表現は、構造、タスク、およびタスクの内容を含む、通信ワークフロー全体を表してもよい。
【0007】
いくつかの実現例では、クラウドベースのアプリケーションは、以前に実行された個々の通信ワークフローのタスクを表す複合特徴ベクトルを生成してもよい。複合特徴ベクトルは、多次元機械学習特徴ベクトル(例えば、特異値分解(SVD))を使用して生成されてもよい。複合特徴ベクトルを機械学習モデルに入力して、新たな通信ワークフローのタスク結果(例えば、通信を受信するユーザによって実行されているターゲットアクションの全体的な性能メトリックまたは全体的なレート)を予測する出力、または新たな部分的もしくは不完全な通信ワークフローに含めるタスクの推奨を表す出力を生成することができる。
【0008】
いくつかの例では、通信ワークフローは、マーケティングキャンペーンオーケストレーション(MCO)であってもよい。通信ワークフローは、タスクの順序付けられたシーケンスを含んでもよい。タスクは、デジタル通信をターゲットユーザデバイスのグループ(たとえば、視聴者)に送信するよう構成されてもよい。いくつかの例では、複合特徴ベクトルは、通信ワークフローのタスク、パラメータ、ターゲットユーザ、およびコンテンツを表す、通信ワークフローの標準化された表現として使用されてもよい。複合特徴ベクトルを生成するために、多次元機械学習特徴ベクトルを生成してもよい。通信ワークフローにおけるタスクの順序付けられたシーケンスの各タスクは、タスクベクトル(例えば、特徴ベクトル)によって表されてもよい。タスクの実行の結果として通信を受信するようターゲットとされるターゲットユーザデバイスのグループは、グループベクトルによって表されてもよい。いくつかの例では、通信ワークフローの構造とコンポーネントタスクベクトルとを組み合わせて、通信ワークフローを表す複合特徴ベクトルを生成してもよい。
【0009】
通信ワークフローに含まれるタスクの順序付けられたシーケンスは、ワークフローの構造を表してもよい。各通信ワークフローの構造は、例えば1つ以上の枝によって互いに接続される1つ以上のノード(例えば、開始ノード、分割ノードおよび終了ノード)または1つ以上のステージ(例えば、ユーザデバイスのセットに電子メールを送信するなどのタスク)を含むことができる。枝は、タスク(例えば、フィルタタスク、送信タスク、または遅延タスク)のシーケンスの流れを含んでもよい。たとえば、ノードは、ユーザデバイスのターゲットグループが2つ以上のサブグループに分割される分割タスクを表してもよい。いくつかの例では、通信ワークフローの構造は、根ノード(例えば、通信ワークフローの開始を示す開始タスク)、中間ノード(例えば、実行されると、電子メールなどの通信をユーザデバイスに送信する通信タスク)、および葉ノード(例えば、通信ワークフローの終了を示す終了ノード)を含んでもよい。各木枝は、1つ以上のタスクのシーケンスを含んでもよい。複合特徴ベクトルは、通信ワークフローの全体構造、タスク、および各タスクの通信の内容を表すように生成されることができる。
【0010】
いくつかの実現例では、クラウドベースのアプリケーションは、通信ワークフローのタスク結果を予測する出力を生成するために、通信ワークフローの複合特徴ベクトルを機械学習モデルに入力してもよい。タスク結果は、たとえば、通信ワークフローによってターゲットとされるユーザのターゲットグループのクリック率または変換率を含む、通信ワークフローの性能を表してもよい。いくつかの実現例では、新たな部分的通信ワークフロー(例えば、開発中であり、まだ完成していないもの)が与えられると、以前に実行されたワークフローの部分的部分の複合特徴ベクトルおよび新たな部分的通信ワークフローの複合特徴ベクトルは、機械学習モデルを使用して評価されることができる。これらの実現例によれば、機械学習モデルは、新たな部分的通信ワークフローを完了するために新たな部分的通信ワークフローに追加するための1つ以上のタスクの推奨を表す出力を生成してもよい。
【0011】
いくつかの実現例では、通信ワークフローは、グラフ内の各ノードの根付きサブグラフを学習するために機械学習技術(たとえば、Graph2Vec)を使用してグラフとして分析され得る。機械学習技術は、通信ワークフローの構造を通信ワークフローの複合特徴ベクトルから分離することなく、ワークフロー全体のベクトル表現を生成してもよい。ベクトル表現は、これらの実現例によれば、構造、タスク、およびタスクコンテンツを含む通信ワークフロー全体を表すn次元ベクトルを生成してもよい。非限定的な例として、Graph2Vecモデルのニューラルネットワークを実行して、教師なしの態様で通信ワークフローの根付きサブグラフ埋め込みを学習してもよい。結果として生じるベクトル表現は、上述のように、新たな通信ワークフローのタスク結果の予測を生成するために、または部分的通信ワークフローを完了するために部分的通信ワークフローに追加するためのタスクの推奨を生成するために、機械学習モデルに入力されてもよい。
【0012】
幾つかの実現例では、1つ以上のコンピュータからなるシステムは、システムにインストールされ、動作中にシステムにアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを有することによって、特定の動作またはアクションを実行するように構成することができる。1つ以上のコンピュータプログラムは、データ処理装置によって実行されるとデータ処理装置にアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するように構成することができる。1つの一般的な態様は、コンピュータにより実現される方法を含み、本方法は、シーケンシャルな順序で調整された1つ以上のタスクを含むワークフローにアクセスすることを含み、上記ワークフローは、ユーザデバイスのセットとの対話を容易にするよう構成され、上記1つ以上のタスクの各タスクは、実行時に、上記ユーザデバイスのセットに関連付けられる機能(分割、フィルタ、送信)を実行する実行可能コードを含み、上記ワークフローは、上記ワークフローの上記1つ以上のタスクの各タスクを特徴付ける1つ以上のパラメータ(トピックモデリングのための語彙、コンテンツ画像など)に関連付けられ、本方法はさらに、上記ワークフローを表す複合特徴ベクトルを生成することを含み、上記複合特徴ベクトルは、上記ワークフローの上記1つ以上のタスクの各タスクの特徴ベクトルを使用して生成され、上記1つ以上のタスクの各タスクの上記特徴ベクトルは、上記タスクを特徴付ける上記1つ以上のパラメータを使用して1つ以上の機械学習技術を実行することによって生成され、本方法はさらに、トレーニングされた機械学習モデルに上記ワークフローの上記複合特徴ベクトルを入力することを含み、上記トレーニングされた機械学習モデルは、ワークフローの性能値の予測を生成するようにトレーニングされており、上記トレーニングされた機械学習モデルは、1つ以上の以前に実行されたワークフローを表すトレーニングデータセットと、上記1つ以上の以前に実行されたワークフローの各々の対応する以前の性能値とを使用してトレーニングされており、本方法はさらに、上記トレーニングされた機械学習モデルを使用して出力を生成することを含み、上記出力は、上記ワークフローの性能値を予測することを含む。この態様の他の実施形態は、対応するコンピュータシステム、装置、および非一時的コンピュータ可読記憶媒体に記憶された実行可能コードを含み、各々、方法の動作を実行するよう構成される。
【0013】
実現例は、以下の特徴のうちの1つ以上を含んでもよい。コンピュータにより実現される方法は、さらに、上記ワークフローの構造を判断することを含み、上記構造は、木構造の複数のノードによって表され、上記木構造の上記複数のノードのうちの2つのノードは、1つ以上のステージによって接続され、上記ワークフローの上記1つ以上のタスクの各タスクは、上記複数のノードのうちのあるノードまたは上記1つ以上のステージのうちのあるステージに対応し、本方法はさらに、上記トレーニングデータセットを評価して、上記ワークフローの上記構造が、上記1つ以上の以前に実行されたワークフローのうちの少なくとも1つの以前に実行されたワークフローの構造に一致するかどうかを判定することを含む。コンピュータにより実現される方法は、さらに、上記ワークフローの上記構造が、上記トレーニングデータセットの上記1つ以上の以前に実行されたワークフローのうちの、ある以前に実行されたワークフローのグループの構造に一致する(たとえば、同じである)、と判断することを含む。コンピュータにより実現される方法はまた、上記ワークフローの上記複合特徴ベクトルを、ドメイン空間において、上記ある以前に実行されたワークフローのグループの各以前に実行されたワークフローの複合特徴ベクトルと比較することを含んでもよい。コンピュータにより実現される方法はまた、閾値および上記比較の結果に基づいて、上記ある以前に実行されたワークフローのグループのサブグループを選択することを含んでもよい。コンピュータにより実現される方法はまた、上記以前に実行されたワークフローのサブグループの各以前に実行されたワークフローについて、以前の性能値を識別することを含んでもよい。コンピュータにより実現される方法はまた、上記以前に実行されたワークフローのサブグループに関連付けられる上記以前の性能値の組み合わせを判断することによって、上記ワークフローの上記性能値を予測する上記出力を生成することを含んでもよい。コンピュータで実施される方法は、さらに、上記ワークフローの上記構造が、上記トレーニングデータセットの上記1つ以上の以前に実行されたワークフローのうちの、ある以前に実行されたワークフローのグループの構造に一致する、と判断することを含む。上記トレーニングデータセットの生成中、以前に実行されたワークフローの1つ以上のサブセットが判断され、上記1つ以上のサブセットの各サブセットは、共通の構造を共有する2つ以上の以前に実行されたワークフローに対応する。コンピュータで実施される方法はまた、クラスタリング動作(k平均クラスタリング)が、上記以前に実行されたワークフローの1つ以上のサブセットの各サブセットに対して実行され、以前に実行されたワークフローの各サブセットは、以前に実行されたワークフローの1つ以上のクラスタに関連付けられ、上記1つ以上のクラスタは、ドメイン空間において上記以前に実行されたワークフローのサブセットの上記複合特徴ベクトル上で上記クラスタリング動作を実行することによって形成され、クラスタに含まれる各以前に実行されたワークフローは、そのクラスタ内の他の以前に実行されたワークフローの上記複合特徴ベクトルに対応する複合特徴ベクトルと関連付けられてもよく、本方法はさらに、上記ワークフローの上記性能値を予測する上記出力を生成することを含み、上記生成することは、対応する構造が上記ワークフローの上記構造に対応する、上記トレーニングデータセットの上記1つ以上のサブセットのうちの特定のサブセットを識別することによって行われてもよい。コンピュータにより実現される方法はまた、上記ワークフローの上記複合特徴ベクトルと、上記1つ以上のクラスタの各クラスタの特徴ベクトルとの比較に基づいて、上記ワークフローを、上記特定のサブセットに対応する上記1つ以上のクラスタのうちの特定のクラスタに割り当てることを含んでもよい。コンピュータにより実現される方法はまた、上記ワークフローが割り当てられる上記特定のクラスタに関連付けられる上記以前に実行されたワークフローに関連付けられる上記以前の性能値の組み合わせを判断することを含んでもよい。コンピュータで実施される方法は、さらに、上記ワークフローの上記構造は、上記トレーニングデータセットの上記1つ以上の以前に実行されたワークフローのうちの、ある以前に実行されたワークフローのグループの構造に一致する、と判断することを含み、上記トレーニングデータセットの生成中に、以前に実行されたワークフローの1つ以上のサブセットが識別され、上記1つ以上のサブセットの各サブセットは、共通の構造を共有する2つ以上の以前に実行されたワークフローに対応する。コンピュータにより実現される方法はまた、教師あり機械学習モデルが、上記以前に実行されたワークフローの1つ以上のサブセットの各サブセットに対してトレーニングされ、本方法はさらに、上記ワークフローの上記性能値を予測する上記出力を生成することを含み、上記生成することは、対応する構造が上記ワークフローの上記構造に一致する、上記トレーニングデータセットの上記1つ以上のサブセットのうちの特定のサブセットを識別することと、上記ワークフローの上記複合特徴ベクトルを、上記特定のサブセットに対応する上記教師あり機械学習モデルに入力することと、上記ワークフローの上記性能値を予測する上記出力を生成することとによって行われてもよい。コンピュータで実施される方法は、さらに、上記ワークフローの上記構造が、上記トレーニングデータセットの上記1つ以上の以前に実行されたワークフローのうちのいずれの以前に実行されたワークフローの構造とも一致しないと判断することと、上記ワークフローの上記性能値を予測する上記出力を生成することを含み、上記生成することは、上記トレーニングデータセットの上記1つ以上の以前に実行されたワークフローの各以前に実行されたワークフローを、複数の以前に実行されたサブワークフローにセグメント化することとによって行われる。コンピュータにより実現される方法はまた、上記ワークフローの上記構造を、上記トレーニングデータセットの上記1つ以上の以前に実行されたワークフローの各以前に実行されたワークフローの上記複数のサブワークフローの各サブワークフローと比較することを含んでもよい。コンピュータにより実現される方法はまた、上記複数の以前に実行されたサブワークフローのうち、上記ワークフローの上記構造に一致する、以前に実行されたサブワークフローのグループを識別することを含んでもよい。コンピュータにより実現される方法はまた、上記ワークフローの上記複合特徴ベクトルを、ドメイン空間において、上記以前に実行されたサブワークフローのグループの各以前に実行されたサブワークフローの複合特徴ベクトルと比較することを含んでもよい。コンピュータにより実現される方法はまた、閾値および上記比較の結果に基づいて、上記以前に実行されたサブワークフローのグループのサブグループを選択することを含んでもよい。コンピュータにより実現される方法はまた、上記選択された、以前に実行されたサブワークフローのサブグループに関連付けられる上記以前の性能値に基づいて、上記ワークフローの予測される性能値を判断することを含んでもよい。コンピュータにより実現される方法は、上記ワークフローが、上記ワークフローの上記構造を記述するメタデータを含むリストによって定義される。コンピュータにより実現される方法はまた、上記ワークフローに含まれる各タスクを含んでもよい。コンピュータにより実現される方法はまた、上記ワークフローの上記1つ以上のタスクのうちのあるタスクを表す各特徴ベクトルを含んでもよい。コンピュータにより実現される方法はまた、上記リストが1つ以上の機能を実行するよう解析される場合を含んでもよい。説明される技術の実現例は、ハードウェア、方法もしくはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含んでもよい。
【0014】
幾つかの実現例では、1つ以上のコンピュータからなるシステムは、システムにインストールされ、動作中にシステムにアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを有することによって、特定の動作またはアクションを実行するように構成することができる。1つ以上のコンピュータプログラムは、データ処理装置によって実行されるとデータ処理装置にアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するように構成することができる。1つの一般的な態様は、コンピュータにより実現される方法を含み、本方法は、ユーザがワークフローを定義することを可能にするインターフェイスを提供することを含み、上記ワークフローは、ユーザデバイスのセットとの対話を容易にするタスクのセットを含むよう構成可能であり、上記タスクのセットの各タスクは、実行時に、上記ユーザデバイスのセットに関連付けられる機能(例えば、分割、フィルタリング、送信)を実行する実行可能コードを含み、本方法はさらに、上記インターフェイスで、上記タスクのセットから1つ以上のタスクの選択に対応する入力を受信することを含み、上記1つ以上のタスクは部分的ワークフローを定義し、上記部分的ワークフローは、上記部分的ワークフローの上記1つ以上のタスクの各タスクを特徴付ける1つ以上のパラメータ(トピックモデリングのための語彙、コンテンツ画像など)に関連付けられ、本方法はさらに、上記部分的ワークフローの構造を識別することを含み、上記部分的ワークフローの上記構造は、1つ以上のノードおよび/または1つ以上のステージ上記部分的ワークフローの上記1つ以上のタスクの各タスクは、上記1つ以上のノードのうちのあるノードまたは上記1つ以上のステージのうちのあるステージに対応し、本方法はさらに、上記部分的ワークフローを表す複合特徴ベクトルを生成することを含み、上記複合特徴ベクトルは、上記ワークフローの上記1つ以上のタスクの各タスクの特徴ベクトルを使用して生成され、上記1つ以上のタスクの各タスクの上記特徴ベクトルは、上記タスクを特徴付ける上記1つ以上のパラメータを使用して1つ以上の機械学習技術を実行すること(例えば、新たな部分的ワークフローのノードおよび/またはタスクのパラメータに基づいて機械学習特徴ベクトルを構築すること)によって生成され、本方法はさらに、以前に実行された部分的ワークフローのセットにアクセスすることを含み、上記以前に実行された部分的ワークフローの各以前に実行された部分的ワークフローは、構造、複合特徴ベクトル、および性能値によって表される。コンピュータにより実現される方法はまた、上記以前に実行された部分的ワークフローのセットのサブセットを選択することを含み、上記以前に実行された部分的ワークフローのサブセットは、上記部分的ワークフローと同じ構造を共有する。コンピュータにより実現される方法はまた、上記以前に実行された部分的ワークフローのサブセットから、上記部分的ワークフローに類似する1つ以上の以前に実行された部分的ワークフローを判断することを含み、上記類似性は、上記サブセットの各以前に実行された部分的ワークフローの複合特徴ベクトルと上記部分的ワークフローの上記複合特徴ベクトルとの間の比較に基づき、本方法はさらに、上記部分的ワークフローを完了するための推奨を生成することを含み、上記推奨は、上記部分的ワークフローを完了する1つ以上の推奨されるタスクを含み、上記1つ以上の推奨されるタスクは、上記部分的ワークフローと同じ構造を共有し、上記部分的ワークフローに類似していると判断される、上記1つ以上の以前に実行された部分的ワークフローのうちのある以前に実行された部分的ワークフローの1つ以上の残りのタスクから選択され、上記選択は、上記部分的ワークフローと同じ構造を共有し、上記部分的ワークフローに類似すると判断される、上記1つ以上の以前に実行された部分的ワークフローの上記以前の性能値に基づき、本方法はさらに、上記推奨を上記インターフェイス上に表示することを含む。この態様の他の実施形態は、対応するコンピュータシステム、装置、および非一時的コンピュータ可読記憶媒体に記憶された実行可能コードまたは命令(たとえばコンピュータプログラム製品)を含み、各々、方法の動作を実行するよう構成される。
【0015】
実現例は、以下の特徴のうちの1つ以上を含んでもよい。コンピュータにより実現される方法は、部分的ワークフローと同じ構造を共有する、以前に実行された部分的ワークフローのサブセットからの各以前に実行された部分的ワークフローの複合特徴ベクトルを、上記部分的ワークフローの複合特徴ベクトルと比較することは、各以前に実行された部分的ワークフローについて、ドメイン空間において、上記以前に実行された部分的ワークフローの上記複合特徴ベクトルと上記部分的ワークフローの上記複合特徴ベクトルとの間の距離を計算することと、上記距離を閾値と比較し、上記距離が上記閾値以下である場合、上記以前に実行された部分的ワークフローは上記部分的ワークフローに類似していると判定し、上記距離が上記閾値より大きい場合、上記以前に実行された部分的ワークフローは上記部分的ワークフローに類似していないと判定することとを含む。コンピュータにより実現される方法は、さらに、上記部分的ワークフローと同じ構造を共有し、上記部分的ワークフローに類似すると判断された1つ以上の以前に実行された部分的ワークフローを、上記1つ以上の以前に実行された部分的ワークフローを最高性能値から最低性能値に並べることによって、順序付けることを含む。コンピュータにより実現される方法は、さらに、上記部分的ワークフローを完了するための1つ以上の推奨されるタスクの選択に対応する追加の入力を上記インターフェイスで受信することを含む。コンピュータにより実現される方法はまた、上記追加の入力を受信することに応答して、上記1つ以上の推奨されるタスクを上記1つ以上のタスクに順次追加して完全なワークフローを表すことを含んでもよい。コンピュータで実施される方法は、さらに、上記インターフェイスで追加の入力を受信することを含み、上記追加の入力は、上記1つ以上の推奨されるタスクのうちの少なくとも1つの推奨されるタスクおよび上記1つ以上の推奨されるタスクに含まれない少なくとも1つのタスクの選択に対応し、上記少なくとも1つの推奨されるタスクおよび上記1つ以上の推奨されるタスクに含まれない上記少なくとも1つのタスクの上記選択は、上記部分的ワークフローを完了させる。コンピュータにより実現される方法はまた、上記追加の入力の受信に応答して、上記少なくとも1つの推奨されるタスクと、上記1つ以上の推奨されるタスクに含まれない上記少なくとも1つのタスクとを、上記1つ以上のタスクに順次追加して、完全なワークフローを表すことを含んでもよい。コンピュータにより実現される方法は、部分的または完全なワークフローが、上記ワークフローの上記構造、上記ワークフローに含まれる各タスク、および上記ワークフローに含まれる上記タスクのセットのうちのあるタスクを表す各特徴ベクトルを記述するメタデータを含むリストによって定義される。コンピュータにより実現される方法は、さらに、1つ以上の機能を実行するために上記リストを解析することを含む。説明される技術の実現例は、ハードウェア、方法もしくはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含んでもよい。
【0016】
幾つかの実現例では、1つ以上のコンピュータからなるシステムは、システムにインストールされ、動作中にシステムにアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを有することによって、特定の動作またはアクションを実行するように構成することができる。1つ以上のコンピュータプログラムは、データ処理装置によって実行されるとデータ処理装置にアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するように構成することができる。1つの一般的な態様は、コンピュータにより実現される方法を含み、本方法は、シーケンシャルな順序で調整された1つ以上のタスクを含むワークフローにアクセスすることを含み、上記ワークフローは、ユーザデバイスのセットとの対話を容易にするよう構成され、上記1つ以上のタスクの各タスクは、実行時に、上記ユーザデバイスのセットに関連付けられる機能(分割、フィルタ、送信)を実行する実行可能コードを含み、上記ワークフローは、上記ワークフローの上記1つ以上のタスクの各タスクを特徴付ける1つ以上のパラメータ(トピックモデリングのための語彙、コンテンツ画像など)に関連付けられ、本方法はさらに、上記ワークフローの木構造を定義することを含み、上記木構造は、複数のノードのおよび1つ以上のステージを含み、上記木構造の上記複数のノードのうちの2つのノードは、上記1つ以上のステージのうちの少なくとも1つのステージによって接続され、上記ワークフローの上記1つ以上のタスクの各タスクは、上記複数のノードのうちのあるノードまたは上記1つ以上のステージのうちのあるステージに対応し、本方法はさらに、上記木構造を機械学習モデル(例えば、グラフ対ベクトルモデル)に入力することを含み、上記機械学習モデルへの上記木構造の上記入力は、上記ワークフローの上記木構造の1つ以上の部分木構造をサンプリングすることをもたらし、本方法はさらに、上記ワークフローの上記木構造のベクトル表現を生成することを含む。この態様の他の実施形態は、対応するコンピュータシステム、装置、および非一時的コンピュータ可読記憶媒体に記憶された実行可能コードを含み、各々、方法の動作を実行するよう構成される。
【0017】
実現例は、以下の特徴のうちの1つ以上を含んでもよい。コンピュータにより実現される方法は、さらに、以前に実行されたワークフローのセットにアクセスすることと、上記以前に実行されたワークフローのセットの各以前に実行されたワークフローについて木構造を定義することと、上記以前に実行されたワークフローのセットの各以前に実行されたワークフローの上記木構造を機械学習モデルに入力することと、上記以前に実行されたワークフローのセットの各以前に実行されたワークフローの上記木構造を表すベクトル表現を生成することと、各以前に実行されたワークフローの上記ベクトル表現をトレーニングデータセットに格納することとを含む。コンピュータにより実現される方法は、上記木構造の上記ベクトル表現は、上記木構造の上記複数のノードの個々のノードまたは上記1つ以上のステージの個々のステージのベクトル表現を評価することなく生成される。コンピュータにより実現される方法は、上記木構造の上記複数のノードの各ノードまたは上記1つ以上のステージの各ステージが、上記ワークフローの上記タスクまたは一部を特徴付けるよう使用されるメタデータに関連付けられる。コンピュータにより実現される方法は、各ノードまたはステージに関連付けられる上記メタデータが、それぞれ上記ノードまたはステージに関連付けられるタスクによって実行される関数を表す。コンピュータにより実現される方法は、上記機械学習技術が、上記ワークフローの上記木構造の埋め込みを学習するよう構成されるニューラルネットワークである。コンピュータにより実現される方法は、上記木構造の上記1つ以上のノードの評価が、さらに、上記ワークフローの上記木構造の上記複数のノードの各ノードまたは上記1つ以上のステージの各ステージについて1つ以上の根付き部分木構造を抽出することを含み、上記1つ以上の根付き部分木構造の各根付き部分木構造は、上記ノードまたはステージから1つ以上のホップだけ離れたノードのセットを含む。コンピュータにより実現される方法はまた、上記1つ以上の根付き部分木構造を使用して上記機械学習モデルをトレーニングすることを含んでもよい。説明される技術の実現例は、ハードウェア、方法もしくはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含んでもよい。
【0018】
本明細書は、添付の図面を参照するが、異なる図における同様の参照番号の使用は、同様または類似の構成要素を示すことを意図している。
【図面の簡単な説明】
【0019】
【
図1】本開示のいくつかの態様による、ネットワーク環境の例を示すブロック図である。
【
図2】本開示のいくつかの態様による、ネットワーク環境の別の例を示すブロック図である。
【
図3】本開示のいくつかの態様による、通信ワークフローのタスク結果の予測を生成するためのプロセスフローの一例を示す。
【
図4】本開示のいくつかの態様による、部分的通信ワークフローを完了するようタスクの推奨を生成するためのプロセスフローの一例を示す。
【
図5】本開示のいくつかの態様による、通信ワークフローのタスク結果の予測を生成するための例示的なプロセスを示すフローチャートである。
【
図6】本開示のいくつかの態様による、部分的通信ワークフローを完了するようタスクの推奨を生成するための例示的なプロセスを示すフローチャートである。
【
図7】本開示のいくつかの態様による、通信ワークフローのベクトル表現を生成するための例示的なプロセスを示すフローチャートである。
【
図8】実施形態の1つを実現するための分散システムを示す簡略図である。
【
図9】システム環境の1つ以上のコンポーネントを示す簡略化されたブロック図である。
【
図10】本発明の様々な実施形態が実現され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0020】
詳細な説明
クラウドベースのアプリケーションは、クラウドネットワーク上でホストされるデータ管理プラットフォームを含んでもよい。データ管理プラットフォームは、ユーザがデータレコードに対して特定の機能を実行することを可能にするよう構成されてもよい。例えば、データレコードは、1つ以上のデータフィールドを含むユーザプロファイルであってもよい。データレコードのデータフィールドは、ユーザプロファイルに関連付けられたユーザを特徴付ける値を含むことができる。データフィールドは、ユーザによって操作されるブラウザとウェブサーバとの間の対話など、以前の対話に基づいて生成されてもよい。
【0021】
通信ワークフローは、特定のデータレコードを処理するためにクラウドベースのアプリケーションによって(または場合によっては、クラウドネットワークの外部の1つ以上のサーバによって)実行されてもよい。非限定的な例として、通信ワークフローは、ユーザプロファイルのターゲットグループに対して1つ以上のタスクの協調されたシーケンスを実行する(例えば、ユーザに関与するデジタルメッセージを送信する)よう構成されてもよい。タスクは、サーバによって実行されると、サーバに、通信チャネルを介して、ユーザプロファイルに関連付けられたユーザデバイスに通信を送信させてもよい。通信の内容、および通信を送信するために選択される通信チャネルは、タスクの構成および通信ワークフローに基づいて判断されてもよい。通信ワークフローにユーザデバイスのターゲットグループを含めることは、ワークフローに含まれるタスクに、通信チャネルを介して、ターゲットグループの各ユーザデバイスに、通信を送信させてもよい。タスクの構成は、通信の内容と、通信の送信を容易にするために選択される通信チャネルのタイプとを定義することができる。通信チャネルの非限定的な例は、SMSメッセージング、電子メール、電話、ウェブページを閲覧している間のポップアップメッセージ、および他の好適な通信チャネルを含む。
【0022】
通信ワークフローの複雑さが増大するにつれ、通信ワークフローの構成および実行は技術的課題である。実際の適用例として、本開示のいくつかの態様および特徴は、通信ワークフローのベクトル表現を生成し、様々な新たな通信ワークフローと以前に実行された通信ワークフローとを比較する計算効率を高めて、新たな通信ワークフローの性能を予測し、部分的な通信ワークフローを完了するためのタスクを推奨する。したがって、本開示のいくつかの態様および特徴は、クラウドベースのデータ管理プラットフォームが、通信ワークフローの構造および内容を表すようベクトル(例えば、複合特徴ベクトル、またはグラフ対ベクトルモデルを使用して生成されたベクトル)を使用した計算効率の良い方法で様々な通信ワークフローを比較および評価することを可能にすることによって、クラウドベースのデータ管理プラットフォームの技術を改善する。
【0023】
本開示のいくつかの実現例は、通信ワークフローのベクトル表現を生成するよう構成されるクラウドベースのアプリケーションを含む。ベクトル表現は、トピックモデリングのための潜在的ディリクレ配分法(LDA)および Word2Vec モデルなどの機械学習技術を使用して、通信ワークフローのタスクおよびタスクの内容を評価することによって生成されてもよい。特徴ベクトルは、通信ワークフローに含まれるタスクごとに生成されてもよい。通信ワークフローの様々なタスクの特徴ベクトルは、複合特徴ベクトルを生成するよう連結されてもよい。次いで、複合特徴ベクトルを機械学習モデルに入力して、通信ワークフローのタスク結果の予測を生成することができる。複合特徴ベクトルはまた、ワークフローを完了するために通信ワークフローに含めるための1つ以上のタスクの推奨を生成するために、機械学習モデルに入力されてもよい。
【0024】
図1は、クラウドベースのアプリケーション120などのデータ管理プラットフォームを使用してデータレコードを処理するためのネットワーク環境100の一例を示すブロック図である。クラウドネットワーク110は、1つ以上のクラウドベースのサーバおよび1つ以上のクラウドベースのデータベースを含む、任意のクラウドベースのネットワークであってもよい。クラウドネットワーク110の1つ以上のクラウドベースサーバは、クラウドベースアプリケーション120をホストする少なくとも1つのアプリケーションサーバを、少なくとも1つのデータベースサーバとともに、含んでもよい。例えば、クラウドベースのアプリケーション120は、データレコードの1つ以上のデータセットに関連付けられる機能を実行するよう構成されるデータ管理プラットフォームであってもよい。いくつかの実現例では、データレコードは、1つ以上のデータフィールドを含むユーザプロファイルを表してもよい。1つ以上のデータフィールドの各データフィールドは、ユーザデバイスが以前の対話中にネイティブアプリケーションまたはウェブサーバと対話することに応答して生成された値を含んでもよい。たとえば、ユーザデバイスがウェブサーバにアクセスしてユーザデバイス上にウェブページをロードするとき、ウェブサーバは、ウェブページをロードするためのユーザデバイスからの要求に関連付けられる1つ以上のユーザ特徴(例えば、ウェブページをロードするための発信要求の位置)を抽出してもよい。様々なユーザ特徴が、ユーザプロファイルにおいて経時的に収集されてもよい。
【0025】
クライアントシステム130は、クライアント(例えば、企業などのエンティティ)に関連付けられる1つ以上のサーバおよびデータベースのネットワークを含むことができる。いくつかの実現例では、クライアントシステム130内のネットワークは、1つ以上のウェブページをホストするウェブサーバ、またはクライアントによって動作させられるかもしくはクライアントに関連付けられるネイティブアプリケーションをホストするアプリケーションサーバを含んでもよい。ユーザデバイス140は、クライアントシステム130のウェブサーバに通信を送信することによって、クライアントシステム130と対話してもよい。例えば、通信は、ユーザデバイス140上で動作するブラウザ上にウェブページをロードする要求であってもよい。同様に、ユーザデバイス150は、ユーザデバイス150のブラウザ上においてウェブページをロードすることを要求する通信をクライアントシステム130に送信してもよい。任意の数のユーザデバイスおよび任意のタイプのコンピューティングデバイス(例えば、デスクトップコンピュータ、タブレットコンピュータ、電子キオスクなど)がクライアントシステム130と通信してもよいことが理解されよう。
【0026】
いくつかの実現例では、クライアントシステム130は、ユーザデバイスと通信するための1つ以上のワークフローを定義してもよい。通信ワークフローは、MCOなどの1つ以上のタスクの編成されたシーケンスであってもよい。タスクは、サーバによる実行時に、クライアントシステム130に、通信チャネルを介してユーザデバイスに通信を送信させる実行可能コードを含んでもよい。通信の内容、および通信を送信するために選択される特定の通信チャネルは、タスクの実行可能コードによって定義されてもよい。例えば、タスクは、特定のターゲットユーザに関与するよう設計されたデジタルメッセージであってもよい。ワークフローは、定義された時間間隔の過程にわたって、個々のユーザプロファイルのために1つ以上のタスクのシーケンスを編成する。ワークフローは、特定の商品またはサービスに関連してユーザを関与させるのに有効な役割を果たしてもよい。例示的な例として、クライアントシステム130は、少なくとも2つのワークフローを記憶してもよい。第1のワークフローは、ユーザデバイス140のために2つのタスクを含んでもよく、第2のワークフローは、ユーザデバイス150のために3つのタスクを含んでもよい。第1のワークフローは、第1の時間にテキストメッセージング通信チャネルを使用してユーザデバイス140に通信を送信する第1のタスクと、後の第2の時間に電子メール通信チャネルを使用してユーザデバイス140に通信を送信する第2のタスクとを含んでもよい。第2のワークフローは、第1の時間に電子メール通信チャネルを使用してユーザデバイス150に通信を送信する第1のタスクと、後の第2の時間にソーシャルメディア通信チャネルを使用して(例えば、ソーシャルメディアプラットフォームを使用してユーザのアカウントにメッセージを送信することによって)ユーザデバイス150に通信を送信する第2のタスクと、後の第3の時間に別の電子メール通信チャネルを使用してユーザデバイス150に通信を送信する第3のタスクとを含んでもよい。ユーザデバイスにおいて受信された通信は、ユーザデバイスを操作するユーザが1つ以上のアクションを実行することを可能にしてもよい。例えば、通信は、選択可能なリンクを含んでもよい。ユーザは、リンクを選択してもよいし、選択しなくてもよい。ユーザがアクションを実行すると、クライアントシステム130はそのアクションを検出してもよく、なぜならば、信号がクライアントシステム130に返信されているかもしれないからである(または規定された期間内に信号が受信されない)。いくつかの実現例では、クライアントシステム130は、クラウドネットワーク110上でホストされるクラウドベースのアプリケーション120に信号を送信してもよい。信号は、通信の受信に応答してユーザデバイスから受信された応答を含んでもよい。上記の例を続けると、クライアントシステム130は、ユーザデバイス140が第1のタスクおよび第2のタスクの各々に応答するとき、ならびに同様に、ユーザデバイス150が第1のタスク、第2のタスク、および第3のタスクの各々に応答するとき、クラウドベースのアプリケーション120に信号を送信してもよい。他の実現例では、クラウドベースのアプリケーション120は、タスク実行を実行するクライアントシステム130の代わりに、ワークフローのタスクを実行してもよい。
【0027】
いくつかの実現例では、クライアントシステム130は、クラウドベースのアプリケーション120にアクセスして、通信ワークフローを作成、設計、または生成してもよい。例えば、クラウドベースのアプリケーション120は、クライアントシステム130に関連付けられるエンドユーザ上にインターフェイスを表示させるインターフェイスデータを生成してもよい。インターフェイスは、ユーザがタスクの順序付けられたシーケンスを作成し、順序付けられたシーケンスを通信ワークフローとして保存することを可能にしてもよい。各タスクは、ユーザデバイスのターゲットグループをサブグループに分割すること、またはユーザデバイスのターゲットグループに通信を送信することなどの機能を実行するよう構成されてもよい。クラウドベースのアプリケーション120は、クライアントシステム130に関連付けられるエンドユーザが、通信ワークフローを表す複合特徴ベクトルを生成することを可能にしてもよい。複合特徴ベクトルは、次いで、トレーニングされた機械学習モデルに入力され、通信ワークフローのタスク結果(例えば、通信ワークフローにおけるすべてのタスクの全体的な性能または予測される成功)を予測する出力を生成することができる。クラウドベースのアプリケーション120はまた、トレーニングされた機械学習モデルに複合特徴ベクトルを入力して、(通信ワークフローが部分的なワークフローである場合に)ワークフローを完了するために通信ワークフローに追加または含めるための1つ以上のタスクの推奨を生成することもできる。クラウドベースのアプリケーション120はまた、1つ以上のニューラルネットワークを実行して、通信ワークフローのサブグラフ埋め込みを学習して、通信ワークフローをベクトル表現に変換してもよい。
【0028】
図2は、本開示のいくつかの態様による、クラウドネットワーク110の別の例を示すブロック図である。クラウドベースのアプリケーション120は、クラウドベースのサーバおよびデータベースのネットワークを含んでもよい。いくつかの実現例では、クラウドベースのアプリケーション120のネットワークは、ワークフロー構造生成部210と、特徴ベクトル生成部220と、ワークフロー表現システム230と、ワークフロー性能予測部240と、部分的ワークフロー予測部250と、機械学習モデル260とを含んでもよい。機械学習モデル260は、トレーニングデータセット270を使用してトレーニングされてもよい。
【0029】
ワークフロー構造生成部210は、通信ワークフローの構造を生成するコードを記憶し、潜在的に実行するよう構成される、任意のサーバ、プロセッサ、および/またはデータベースであってもよい。ワークフロー構造生成部210は、クラウドベースのアプリケーション120にアクセスするユーザから入力を受信してもよい。入力は、新たな通信ワークフローに含める1つ以上のタスクの、ユーザによる選択を表してもよい。1つ以上のタスクは、ユーザによって決定される順序付けられたシーケンスで配置されてもよい。タスクの順序付けられたシーケンスは、通信ワークフローを表してもよい。ワークフロー構造生成部210は、入力が受信されると、タスクの順序付けられたシーケンスを評価して、通信ワークフローの構造を生成してもよい。構造は、複数のノードを含む木構造であってもよい。各ノードはタスクを表してもよい。例示的な例として、ワークフロー構造生成部210は、通信ワークフローを通して開始タスク(例えば、通信ワークフローを開始するタスク)を検索することによって構造を生成してもよい。ワークフロー構造生成部210は、階層データ構造を作成し、開始タスクを根ノードとして使用してもよい。ワークフロー構造生成部210は、次のタスクについて通信ワークフローを検索し続けてもよく、それは電子メールタスク(例えば、ユーザデバイスに電子メールを送信するタスク)であってもよい。ワークフロー構造生成部210は、電子メールタスクを表すステージ(例えば、子ノード)を階層データ構造の根ノードに追加してもよい。次のタスクは、ユーザデバイスのターゲットグループが2つ以上のサブグループに分割される分割タスクであってもよい。ワークフロー構造生成部210は、分割タスクを表すために階層データ構造に別のノードを追加してもよい。ワークフロー構造生成部210は、通信ワークフローが終了タスク(例えば、通信ワークフローを完了するタスク)に到達するまで、階層データ構造にステージ(例えば、ノード)を追加し続けてもよい。結果として生じる階層データ構造は、通信ワークフローの構造を表してもよい。生成された構造は、ワークフロー構造生成部210に格納されてもよい。
【0030】
特徴ベクトル生成部220は、通信ワークフローの各タスクについてタスクベクトルを生成するよう構成される任意のサーバ、プロセッサ、および/またはデータベースであってもよい。例えば、あらゆる目的のためにその全体が参照により本明細書に組み込まれる、2019年2月26日に提出された米国連続番号第16/286,297号には、通信ワークフローのタスクを表すベクトルを生成するためのプロセスが記載されている。次いで、特徴ベクトル生成部220は、たとえば、通信ワークフローのタスクベクトルを連結してもよい。結果として生じるタスクベクトルの連結は、通信ワークフローの複合特徴ベクトルを表してもよい。
【0031】
いくつかの実現例では、特徴ベクトル生成部220は、通信ワークフローに含まれるタスクのコンテンツおよびメタデータの表現を生成してもよい。例示的な例として、電子メールタスクについて、特徴ベクトル生成部220は、電子メール通信の様々なパラメータの表現を生成してもよい。パラメータは、電子メールに関連付けられるメタデータの数値変数およびカテゴリ変数(例えば、製品カテゴリ、タスクタイプ等)を含んでもよい。この例では、電子メールメタデータの表現は、そのまま残されるか、スケーリングされるか、次元が縮小されるか、または別の方法で処理されてもよい。パラメータはまた、電子メール件名および電子メール本文を含んでもよい。この場合、テキストをテキストのベクトル表現に変換するために、自然言語処理(NLP)、単語頻度行列、単語頻度-逆文書頻度(TF-IDF)、トピックモデリングなどが実行されてもよい。パラメータはまた、電子メールコンテンツ(例えば、画像データ)を含んでもよい。この場合、特徴ベクトル生成部220は、たとえば次元縮小技術(例えば、非負行列因数分解(NMF)、特異値分解(SVD)、主成分分析(PCA)、および他の好適な技術)を使用して、またはニューラルネットワークの中間出力として、生の画像ベクトルをタスクベクトルに変換してもよい。
【0032】
特徴ベクトル生成部220はまた、通信ワークフローの1つ以上の通信を受信するユーザデバイスの1つ以上のターゲットグループを表す1つ以上のベクトルを生成してもよい。非限定的な例として、ユーザデバイスのターゲットグループに含まれる各ユーザデバイスが特徴ベクトル(例えば、ユーザデバイスの特性のベクトル表現)によって表されると仮定すると、ターゲットグループは、ターゲットグループベクトルをターゲットグループの構成メンバーの特徴ベクトルの平均(たとえば、重心)として定義することによって、要約されてもよい。しかしながら、本開示はこの技術に限定されない。例示すると、通信ワークフローは、電子メール通信タスクおよびテキストメッセージタスクを含んでもよい。電子メール通信タスクは、ユーザデバイスの第1のターゲットグループの各々に電子メールを送信するよう構成されてもよい。テキストメッセージタスクは、ユーザデバイスの第2のターゲットグループの各々にテキストメッセージを送信するよう構成されてもよい。この場合、特徴ベクトル生成部220は、ユーザデバイスの第1および第2のターゲットグループの各々のためのベクトルを生成してもよい。
【0033】
ワークフロー表現システム230は、通信ワークフローのグラフ埋め込みを学習するためにニューラルネットワークを実行することによって通信ワークフローのベクトル表現を生成するよう構成される任意のサーバ、プロセッサ、および/またはデータベースであってもよい。例えば、ワークフロー表現システム230は、通信ワークフローのn次元ベクトル表現を生成するために、(例えば、ワークフロー構造生成部210によって判断される)通信ワークフローの構造を Graph2Vec モデルに入力してもよい。
【0034】
ワークフロー性能予測部240は、入力として通信ワークフローのベクトル表現を受信し、出力として通信ワークフローのタスク結果の予測を生成するよう構成される、任意のサーバ、プロセッサ、および/またはデータベースであってもよい。いくつかの実現例では、ベクトル表現は、特徴ベクトル生成部220によって生成される複合特徴ベクトルである。他の実現例では、ベクトル表現は、ワークフロー表現システム230によって生成される、通信ワークフローのn次元ベクトル表現である。ワークフロー性能予測部240は、通信ワークフローのベクトル表現を機械学習モデル(例えば、以前に実行されたワークフローの既知の全体的性能値等のラベル付けされたデータでトレーニングされた教師あり学習モデル)に入力してもよい。機械学習モデルは、教師あり、半教師あり、または教師なし(例えば、k平均クラスタリング)モデルであってもよい。機械学習モデルの出力は、通信ワークフローの性能の予測を表してもよい。いくつかの例では、通信ワークフローの全体的な性能は、タスク結果によって表されてもよく、それは、通信を受信したことに応答してターゲットユーザ実行アクションのレート(例えば、変換率、デジタルメッセージに含まれるリンクを選択するクリック率、通信に含まれるリンクからウェブページを開くオープン率など)を表す。
【0035】
アクションは、必ずしも通信に含まれるリンクに関連付けられるアクションでなくてもよいことが理解されよう。ユーザデバイスは、リンクとの通信を受信してもよいが、ユーザは、商品またはサービスを購入するために独立してウェブページにアクセスしてもよい。ターゲットアクションはリンクの選択であってもよいが、それにもかかわらず、例えばリンクが、ユーザが商品またはサービスを購入することを可能にしたウェブページにユーザをナビゲートしたかもしれない場合、商品またはサービスの購入はターゲットアクションと見なされてもよい。
【0036】
ワークフロー性能予測部240は、タスク結果を予測する出力を生成してもよく、この出力は、通信ワークフロー内のすべてのタスクにわたる通信を受信することに応答してユーザによって実行されるターゲットアクションの予測されるレートを表す値としてもよい。タスク結果は、以前に実行された通信ワークフローの既知のタスク結果を評価する(例えば、新たな通信ワークフローと同じ構造を有し、ベクトル空間において類似していると判定される、以前に実行された通信ワークフローの既知のタスク結果の平均を計算する)ことによって予測されてもよい。以前に実行された通信ワークフローは、タスクが以前に実行された通信ワークフローであってもよい。以前に実行された通信ワークフローは、以前に関与した通信、またはユーザデバイスのターゲットグループに送信された通信を有してもよい。以前に実行された通信ワークフローは、トレーニングデータセット270に記憶されてもよい。クラウドベースのアプリケーション120は、各以前に実行された通信ワークフローに関連付けられるタスク結果を記憶していてもよい。
【0037】
いくつかの実現例では、ワークフロー性能予測部240は、通信ワークフローの構造と同じ構造を有する、以前に実行された通信ワークフローのセットを識別してもよい。以前に実行された通信ワークフローのセット内で、ワークフロー性能予測部240は、当該通信ワークフローに類似する1つ以上の以前に実行された通信ワークフローを識別してもよい。類似性は、以前に実行された通信ワークフローの複合特徴ベクトルの多次元空間内で測定されてもよい。例えば、対応する複合特徴ベクトルが当該通信ワークフローの複合特徴ベクトルから閾値距離内にある所与の構造の以前に実行された通信ワークフローは、当該通信ワークフローに類似すると判断されてもよい。いくつかの例では、通信ワークフローのタスク結果は、当該通信ワークフローに類似すると判断された、以前に実行された通信ワークフローの既知のタスク結果の組み合わせ(例えば、平均、加重平均など)に基づいて予測されてもよい。いくつかの例では、通信ワークフローの予測されたタスク結果の周りの信頼区間は、当該通信ワークフローに類似していると判断され、かつ新たな通信ワークフローと同じ構造を有すると判断される、以前に実行された通信ワークフローの既知のタスク結果の計算された分散に基づいて構築され得る。
【0038】
いくつかの実現例では、以前に実行された通信ワークフローは、構造によってセグメント化されてもよい。所与の構造について、グループ化された、以前に実行された通信ワークフローの複合特徴ベクトルは、以前に実行された通信ワークフローの1つ以上のクラスタを形成するように、k平均クラスタリング等の機械学習技術を使用して、評価されてもよい。クラスタリングは、以前に実行された通信ワークフローの複合特徴ベクトルに基づいて実行されてもよい。次いで、ワークフロー性能予測部240は、通信ワークフローを、当該通信ワークフローの複合特徴ベクトルと各クラスタに関連付けられる複合特徴ベクトルとの比較に基づいて、あるクラスタに割り当て得る。通信ワークフローがクラスタに割り当てられた後、通信ワークフローのタスク結果は、クラスタ内の以前に実行された通信ワークフローの既知のタスク結果の組み合わせ(例えば、平均、加重平均など)に基づいて、予測されてもよい。いくつかの例では、通信ワークフローの予測されたタスク結果の周りの信頼区間は、クラスタ内の以前に実行された通信ワークフローの既知のタスク結果の計算された分散に基づいて構築され得る。
【0039】
いくつかの実現例では、以前に実行された通信ワークフローは、構造によってセグメント化されてもよい。各ワークフロー構造について、ワークフロー性能予測部240は、その構造を有する、以前に実行された通信ワークフローの複合特徴ベクトルを使用して、機械学習モデル(例えば、教師あり学習分類または回帰)をトレーニングしてもよい。通信ワークフローの複合特徴ベクトルを、通信ワークフローの構造に関連付けられる機械学習モデルに入力して、タスク結果の予測を生成してもよい。いくつかの例では、通信ワークフローの予測されるタスク結果の周りの信頼区間は、特定のモデルタイプ(例えば、線形回帰、ランダムフォレスト回帰など)に基づいて判断することができる。
【0040】
いくつかの例では、以前に実行された通信ワークフローのいずれも、通信ワークフローと同じ構造を共有しないことがある。ワークフロー性能予測部240は、通信ワークフローと同じ構造を有する、以前に実行された通信ワークフローの部分的部分のセットを識別してもよい。次いで、ワークフロー性能予測部240は、以前に実行された通信ワークフローの部分的部分のセットの複合特徴ベクトルを評価して、上記で説明した技術(例えば、通信ワークフローの複合特徴ベクトルから閾値距離内の複合特徴ベクトルを識別すること)を使用して、どの部分的部分が通信ワークフローに類似しているかを判断してもよい。上記の技術と同様に、以前に実行されたワークフローの部分的部分のセットの既知のタスク結果を組み合わせて(例えば、平均を求めて)、通信ワークフローのタスク結果の予測を判断してもよい。いくつかの実現例では、通信ワークフローは、各部分的ワークフローが以前に実行された通信ワークフローの構造に対応するように、部分的ワークフローにセグメント化されてもよい。上記で説明された技術を使用して、各部分的ワークフローのタスク結果は、部分的ワークフローと同じ構造を共有する、以前に実行された通信ワークフローの既知のタスク結果に基づいて、判定されることができる。次いで、各部分的ワークフローの予測されたタスク結果を組み合わせて(例えば、平均または合計)、完全な通信ワークフローの予測されたタスク結果を判断してもよい。
【0041】
部分的ワークフロー予測部250は、通信ワークフローを完了するように1つ以上のタスクの推奨を生成するよう構成される、任意のサーバ、プロセッサ、および/またはデータベースであってもよい。クラウドベースのアプリケーション120は、ユーザが通信ワークフローを作成することを可能にするインターフェイスを生成してもよい。ユーザが部分的通信ワークフローを作成した(例えば、ユーザはまだ終了ノードを設定していない)場合、部分的ワークフロー予測部250は、部分的通信ワークフローを完了するためにどのタスクを追加すべきかの、ユーザへの推奨を生成するよう構成されてもよい。新たな部分的通信ワークフローを与えられると、部分的ワークフロー予測部250は、上記で説明された技術に基づいて、新たな部分的通信ワークフローの複合特徴ベクトルを生成してもよい。次いで、部分的ワークフロー予測部250は、新たな部分的通信ワークフローと同じ構造を有する、以前に実行された通信ワークフローの部分的部分のセットを識別してもよい。部分的ワークフロー予測部250は、上述のように、ドメイン空間における複合特徴ベクトルの比較に基づいて、新たな部分的通信ワークフローに類似する、以前に実行された通信ワークフローの部分的部分を判断してもよい。部分的ワークフロー予測部250は、以前に実行された通信ワークフローの既知のタスク結果に基づいて、新たな部分的通信ワークフローに類似する、以前に実行された通信ワークフローの部分的部分のセットを、降順でランク付けしてもよい。次いで、部分的ワークフロー予測部250は、最上位にランク付けされた、以前に実行された通信ワークフローの1つ以上の部分的部分の、以前に実行された通信ワークフロー全体を推奨してもよい。この推奨は、以前に実行された通信ワークフローの部分的部分の残りのタスクを含んでもよい。
【0042】
機械学習モデル260は、機械学習または人工知能モデルを生成、トレーニング、または実行するよう構成される、任意のサーバ、プロセッサ、および/またはデータベースであってもよい。例えば、機械学習モデルは、マルチラベル分類器のアンサンブル(例えば、教師ありまたは教師なし学習)、人工ニューラルネットワーク(逆伝播、ボルツマンマシンなどを含む)、ベイジアン統計(例えば、ベイジアンネットワークまたはナレッジベース)、ランキング学習技術、ロジスティックモデル木、決定木モデル、サポートベクターマシン、情報ファジーネットワーク、隠れマルコフモデル、階層クラスタリング(教師なし)、自己組織化マップ、クラスタリング技術、および他の好適な機械学習技術(教師あり、半教師あり、または教師なし)などの、1つ以上の機械学習アルゴリズムを使用して生成してもよい。
【0043】
特徴ベクトル生成部220は、通信ワークフローの構造表現(例えば、「ノード」および「枝」を含む通信ワークフローの木ベース表現)を通信ワークフローのベクトル表現(例えば、タスクベクトルとユーザデバイスのターゲットグループを表すベクトルとの連結)から分離してもよい。さらに、機械学習モデル260は、以前に実行された通信ワークフローの構造ごとのモデルを生成してもよい(例えば、1つの機械学習モデルが生成され、通信ワークフローの各個々の構造に対する性能値、各構造に対する1つの事前計算されたクラスタセットなどに対してトレーニングされてもよい)。別途の構造表現は、新たな通信ワークフロー(例えば、まだ実行されていないものまたは現在実行されているもの)と同じ構造を有する、以前に実行された通信ワークフローのトレーニングデータセット270のサブセットを選択するために、使用されてもよい。しかしながら、いくつかの実現例では、代替の手法は、通信ワークフロー全体を記述するメタデータの1つ以上のリスト(たとえば、単一のリスト)を生成することであってもよいことが諒解されよう。クラウドベースのアプリケーション120は、リストを通して解析するコードを実行して、通信ワークフローの構造、通信ワークフローに含まれるタスク、通信ワークフローに含まれる各タスクのタスク特徴、通信ワークフローの複合特徴ベクトル、および他の適切な情報項目を含む、通信ワークフローの完全な記述を判断してもよい。いくつかの実現例では、リストは、通信ワークフローを表すデータ構造であってもよい。例えば、以前に実行された通信ワークフローのリストは、所与の通信ワークフローと同じ構造を有する、以前に実行された通信ワークフローを識別するために、自動的に解析されてもよい。リストはまた、所与の通信ワークフローに類似する(例えば、(i)同じ構造を有し、(ii)構成タスクのタスクベクトルの多次元ドメイン空間において類似するなど)、以前に実行された通信ワークフローを検出するために、自動的に解析されてもよい。クラウドベースのアプリケーション120は、(例えば、ランダムフォレストモデルをトレーニングし適用する)木ベースの機械学習モデルの入力としての役割を果たすことができる複合通信ワークフロー単位ベクトルとして、リストを評価してもよい。
【0044】
非限定的な例としてのみ例示するために、通信ワークフローは、4つのタスクから構成されてもよい。通信ワークフローの構造は、4つの「ノード」(例えば、「開始」、「分割」、「終了枝1」および「終了枝2」)を含んでもよい。この通信ワークフローのリストは、以下のデータ構造によって表してもよい:[ num_nodes = 4, node_type = “start”, num_tasks = 3, task_type = “filter”, filter_type, filter_input = [<target_group_vector for “target group 0”>], task_type = “email_communication”, communication_input = [<target_group_vector for “target group 1”>], communication_task_vector = [<concatenated task content and context task vector of “task 1”>], task_type = “delay”, delay_input = [<target_group_vector for “target group 1”>], delay_value = T1, node_type = “split”, split_type, split_input = [<target_group_vector for “target group 1”>], num_split_outputs = 2, num_tasks_split_output_1 = 0, node_type = “end”, end_input = [<target_group_vector for “target group 2”>], num_tasks_split_output_2 = 1, task_type = “sms_communication”, communication_input = [<target_group_vector for “target group 3”>], communication_task_vector = [<concatenated task content and context task vector of “task 2”>], task_type = “end”, end_input = [<target_group_vector for “target group 3”>] ]。
【0045】
図3は、本開示のいくつかの態様による、通信ワークフローのタスク結果(たとえば、全体的な性能)の予測を生成するためのプロセスフロー300の例を示す図である。プロセスフロー300は、少なくとも部分的に、たとえば、
図1~
図2で説明した任意のコンポーネントによって実行されてもよい。さらに、プロセスフロー300は、新たな通信ワークフローのタスク結果を予測する出力を生成するために実行されてもよい。
【0046】
プロセスフロー300は、ユーザがクラウドベースのアプリケーション120によって提供されるインターフェイスを操作して新たな通信ワークフロー310を作成する場合に開始してもよい。例示的な例として、新たな通信ワークフロー310は、タスク1~5の順序付けられたシーケンスを含んでもよく、タスク1は、ワークフローを開始する開始タスクであり、タスク2は、ユーザデバイスのターゲットグループを2つのサブグループに分割する分割タスクであり、タスク3は、タスク3に関連付けられるユーザデバイスのサブグループに電子メールを送信する通信タスクであってもよく、タスク4は、ワークフローを終了する終了ノードであってもよく、タスク5は、タスク5に関連付けられるユーザデバイスの他のサブグループにテキストメッセージを送信する通信タスクであってもよく、タスク6は、ワークフローを終了する終了ノードであってもよい。クラウドベースのアプリケーション120は、ワークフロー構造生成部210を使用して、新たな通信ワークフロー310の構造を生成してもよい。
【0047】
新たな通信ワークフロー310は、予測される性能値を生成するために、ワークフロー性能予測部240に入力されてもよい。予測される性能値は、タスク3または5などのワークフローに含まれるタスクによってトリガされた通信を受信したことに応答してターゲットアクションを実行するユーザのパーセンテージなど、新たな通信ワークフロー310の予測されるタスク結果を表してもよい。ワークフロー性能予測部240は、特徴ベクトル生成部220によって生成された新たな通信ワークフロー310の複合特徴ベクトルを受信し、その複合特徴ベクトルを、機械学習モデル260に記憶されるトレーニングされた機械学習モデルに入力してもよい。新たな通信ワークフロー310の複合特徴ベクトルを受信することに応答して、トレーニングされた機械学習モデルは、新たな通信ワークフロー310の予測される性能の出力を生成してもよい。
【0048】
図4は、本開示のいくつかの態様による、部分的通信ワークフローに含めるためのタスクの推奨を生成するためのプロセスフロー400の例を示す図である。プロセスフロー400は、たとえば、
図1~
図2で説明した任意のコンポーネントによって少なくとも部分的に実行されてもよい。さらに、プロセスフロー400は、部分的通信ワークフローに含めるべき1つ以上のタスクの推奨を生成するよう実行されてもよい。
【0049】
プロセスフロー400は、ユーザがクラウドベースのアプリケーション120によって提供されるインターフェイスを操作して新たな部分的ワークフロー410を作成する場合に開始してもよい。例示的な例として、新たな部分的ワークフロー410は、タスク1~3の順序付けられたシーケンスを含んでもよく、タスク1は、ワークフローを開始する開始タスクであり、タスク2は、ユーザデバイスのターゲットグループを2つのサブグループに分割する分割タスクであり、タスク3は、タスク3に関連付けられるユーザデバイスのサブグループに電子メールを送信する通信タスクであってもよい。クラウドベースのアプリケーション120は、ワークフロー構造生成部210を使用して、新たな部分的ワークフロー410の構造を生成してもよい。
【0050】
新たな部分的ワークフロー410は、新たな部分的ワークフロー410を完了するであろう1つ以上のタスクの推奨を生成するよう、部分的ワークフロー予測部250に入力されてもよい。部分的ワークフロー予測部250は、特徴ベクトル生成部220によって生成された新たな部分的ワークフロー410の複合特徴ベクトルを受信してもよい。部分的ワークフロー予測部250は、新たな部分的ワークフロー410と同じ構造を有する、トレーニングデータセット270に記憶された、以前に実行された通信ワークフローの部分的部分のセットを識別してもよい。部分的ワークフロー予測部250は、次いで、上述の類似性検出技術を使用して、新たな部分的ワークフロー410の複合特徴ベクトルに類似する、以前に実行された通信ワークフローの1つ以上の部分的部分を判断してもよい。部分的ワークフロー予測部250は、性能によって類似すると判断された、以前に実行された通信ワークフローの部分的部分をランク付けしてもよい。例えば、以前に実行された通信ワークフローのトップ実行部分的部分が選択されてもよい。以前に実行された通信ワークフローのその選択された部分的部分の残りのタスクは、新たな部分的ワークフロー410を完了するために推奨されてもよい。図示の例として、タスク4およびタスク5を、完全なワークフロー420を生成するために、新たな部分的なワークフロー410に含めることを推奨してもよい。
【0051】
図5は、本開示のいくつかの態様による、通信ワークフローのタスク結果を予測する出力を生成するためのプロセス500の例を示すフローチャートである。いくつかの実現例では、プロセス500は、
図1~
図2で説明した任意のコンポーネントによって実行されてもよい。たとえば、プロセス500は、クラウドベースのアプリケーション120および対応するサブコンポーネントのいずれかによって実行されてもよい。さらに、非限定的な例として、プロセス500は、機械学習技術を使用してユーザデバイスのターゲットグループのために通信ワークフローを実行することの予測されたタスク結果を表す値の予測を生成するために実行されてもよい。
【0052】
例えば、プロセス500は、ブロック510で開始してもよく、クラウドベースのアプリケーション120は、1つ以上のタスクの順序付けられたシーケンスを含む通信ワークフローを受信するかまたはそれにアクセスしてもよい。タスクの順序付けられたシーケンスは、階層木構造などの構造を表してもよい。クラウドベースのアプリケーション120は、タスクを選択し、それらのタスクを順序付けられたシーケンスで配列することによって、ユーザが通信ワークフローを作成することを可能にする、インターフェイスを生成してもよい。
【0053】
ブロック520において、特徴ベクトル生成部220は、選択されたタスクおよび順序付けられたタスクのシーケンスを評価して、通信ワークフローを表す複合特徴ベクトルを生成してもよい。たとえば、特徴ベクトル生成部220は、Word2Vec、トピックモデリング、特異値分解(SVD)、(例えば、タスクが画像を含むメッセージである例における)画像表現のためのニューラルネットワーク、および他の好適な技術などの技術を使用して、各タスクを表すようベクトルを生成してもよい。次いで、特徴ベクトル生成部220は、タスクごとに生成されたベクトルの組合せに基づいて複合特徴ベクトルを生成してもよい。
【0054】
ブロック530において、ワークフロー性能予測部240は、通信ワークフローの複合特徴ベクトルを、機械学習モデル260に記憶されたトレーニングされた機械学習モデルに入力してもよい。いくつかの例では、トレーニングされた機械学習モデルは、線形回帰モデル、サポートベクターマシン(SVM)、ロジスティック回帰、ナイーブベイズ、決定木モデル、k最近傍モデル、ニューラルネットワーク、類似性学習、および他の好適なモデルなどの教師あり学習モデルであってもよい。教師あり学習モデルは、ラベル付けされたデータを使用してトレーニングされてもよい。例えば、各以前に実行された通信ワークフローは、それの既知のタスク結果に基づいて、それの対応する性能値(例えば、クリック率)でラベル付けされてもよい。教師あり学習モデルは、通信ワークフローの性能値を分類または予測するように学習してもよい。ブロック540において、ワークフロー性能予測部240は、通信ワークフローの性能値の予測に対応する出力を生成してもよい。
【0055】
図6は、本開示のいくつかの態様による、新たな部分的通信ワークフローに含めるタスクの推奨を生成するためのプロセス600の例を示すフローチャートである。いくつかの実現例では、プロセス600は、
図1~
図2で説明した任意のコンポーネントによって実行されてもよい。たとえば、プロセス600は、クラウドベースのアプリケーション120および対応するサブコンポーネントのいずれかによって実行されてもよい。さらに、非限定的な例として、プロセス600は、新たな部分的通信ワークフローに追加するための1つ以上のタスクの、ユーザへの推奨を生成するよう、実行されてもよい。
【0056】
例えば、プロセス600は、ブロック610で開始してもよく、クラウドベースのアプリケーション120は、ユーザが通信ワークフローを定義することを可能にするインターフェイスを生成し、その表示を容易にしてもよい。ブロック620において、ユーザは、タスクを選択するためにインターフェイスをナビゲートし、選択されたタスクを、不完全であるかまたは部分的な通信ワークフローを表す順序付けられたシーケンスで配置してもよい。インターフェイスは、部分的通信ワークフローに対応するユーザ入力を受信してもよい。部分的通信ワークフローは、部分的通信ワークフローの1つ以上のタスクの各タスクを特徴付ける1つ以上のパラメータに関連付けられてもよい。例えば、パラメータは、トピックモデリングのための語彙、デジタルメッセージのコンテンツ画像、およびタスクの他の好適な特性を含んでもよい。
【0057】
ブロック630において、ワークフロー構造生成部210は、部分的通信ワークフローを評価して、部分的通信ワークフローの構造を識別または生成してもよい。たとえば、構造は、根ノード、1つ以上の中間ノード、および1つ以上の葉ノードを含む階層木構造であってもよい。根ノードは、部分的通信ワークフローを開始する開始タスクを表してもよい。中間ノードは、ユーザデバイスのターゲットグループを2つ以上のサブグループに分割する分割タスク、ユーザデバイスのターゲットグループをフィルタリングするフィルタタスク、ユーザデバイスのターゲットグループに通信を送信する通信タスクなど、任意のタイプのタスクであってもよい。葉ノードは、通信ワークフローの終了を表す終了ノードであってもよい。部分的通信ワークフローは、ワークフローが部分的または不完全であるため、終了ノードをまだ含まない場合がある。いくつかの例では、部分的通信ワークフローの構造は、1つ以上のノードおよび/または1つ以上のステージによって表されてもよい。部分的ワークフローの1つ以上のタスクの各タスクは、1つ以上のノードのうちのあるノードまたは1つ以上のステージのうちのあるステージに対応してもよい。
【0058】
ブロック640において、特徴ベクトル生成部220は、選択されたタスクおよび順序付けられたタスクのシーケンスを評価して、部分的通信ワークフローを表す複合特徴ベクトルを生成してもよい。たとえば、特徴ベクトル生成部220は、Word2Vec、トピックモデリング、特異値分解(SVD)、(例えば、タスクが画像を含むメッセージである例における)画像表現のためのニューラルネットワーク、および他の好適な技術などの技術を使用して、各タスクを表すようベクトルを生成してもよい。次いで、特徴ベクトル生成部220は、タスクごとに生成されたベクトルの組合せに基づいて複合特徴ベクトルを生成してもよい。
【0059】
ブロック650において、部分的ワークフロー予測部250は、トレーニングデータセット270の以前に実行された部分的ワークフローのセットにアクセスしてもよい。以前に実行された部分的ワークフローのセットの各以前に実行された部分的ワークフローは、構造、複合特徴ベクトル、および性能値(例えば、タスク結果)によって表されてもよい。ブロック660において、部分的ワークフロー予測部250は、以前に実行された部分的ワークフローのセットのサブセットを選択してもよい。選択される、以前に実行された部分的ワークフローのサブセットは、部分的ワークフローと同じ構造を共有してもよい。部分的ワークフロー予測部250は、以前に実行された部分的ワークフローのサブセットから、当該部分的ワークフローに類似する1つ以上の以前に実行された部分的ワークフローを判断してもよい。類似性は、サブセットの各以前に実行された部分的ワークフローの複合特徴ベクトルと当該部分的ワークフローの複合特徴ベクトルとの間の比較、または
図2に関して上記で説明された任意の他の類似性判定技術に基づいて判定されてもよい。
【0060】
ブロック670において、部分的ワークフロー予測部250は、当該部分的ワークフローを完了するために1つ以上の推奨されるタスクの推奨を生成してもよい。1つ以上の推奨されるタスクは、当該部分的ワークフローと同じ構造を共有し、当該部分的ワークフローに類似していると判断され、最も高い性能値を有する、1つ以上の以前に実行された部分的ワークフローのうちのある以前に実行された部分的ワークフローの1つ以上の残りのタスクから選択されてもよい。推奨されるタスクの選択は、当該部分的ワークフローと同じ構造を共有し、当該部分的ワークフローに類似すると判断される、1つ以上の以前に実行された部分的ワークフローの以前の性能値に基づいてもよい。
【0061】
図7は、本開示のいくつかの態様による、通信ワークフローのベクトル表現を生成するためのプロセス700の例を示すフローチャートである。いくつかの実現例では、プロセス700は、
図1~
図2で説明した任意のコンポーネントによって実行されてもよい。たとえば、プロセス700は、クラウドベースのアプリケーション120および対応するサブコンポーネントのいずれかによって実行されてもよい。さらに、非限定的な例として、プロセス700は、グラフベースの学習モデル(たとえば、Graph2Vec)を使用して通信ワークフローのベクトル表現を生成するよう実行されてもよい。グラフベースの学習モデルは、ニューラルネットワークを使用して、通信ワークフローの構造およびタスクの多次元ベクトル表現を生成してもよい。プロセス700によって生成されるような通信ワークフローのベクトル表現は、それぞれ、性能予測およびタスク推奨を生成するために、ワークフロー性能予測部240および部分的ワークフロー予測部250に入力されてもよい。
【0062】
例えば、プロセス700は、ブロック710で開始してもよく、クラウドベースのアプリケーション120は、トレーニングデータセット270の各以前に実行されたワークフローについてグラフを生成してもよい。通信ワークフローの構造を表すグラフが与えられると、ワークフロー表現システム230は、グラフの異なるノードの周囲のいくつかの根付きサブグラフをサンプリングしてもよい。ブロック720において、ワークフロー表現システム230は、サンプリングされた根付きサブグラフを使用して、n次元ニューラルネットワークをトレーニングしてもよい。いくつかの例では、根付きサブグラフは、ノードが根ノードとして選択されたサブグラフの表現を含んでもよく、その選択されたノードから生じる1つ以上の枝が学習されてもよい。通信ワークフローの木構造のノードは、各根付きノードから生じる様々な枝を学習するために、ニューラルネットワークのための根ノードとして反復的に選択されてもよい。ブロック730において、ニューラルネットワークをトレーニングすることは、トレーニングデータセット270の各以前に実行された通信ワークフローの各ノードのサブグラフ埋め込みを学習することを含んでもよい。さらに、ニューラルネットワークを使用してサブグラフ埋め込みを学習することは、木構造の構造およびメタデータを維持しながら、通信ワークフローを表す木構造のノードおよびステージをベクトル空間に変換してもよい。ベクトル表現は、グラフベースの学習モデルを使用して、トレーニングデータセット270の各以前に実行された通信ワークフローについて生成されてもよい。次いで、トレーニングデータセット270に記憶されたベクトル表現は、本明細書で説明される方法およびプロセスを実行するために、新たな通信ワークフローのベクトル表現に対して評価されてもよい。
【0063】
図8は、実施形態の1つを実現するための分散型システム800の簡略図を示す。図示の実施形態では、分散型システム800は、1つ以上のクライアントコンピューティングデバイス802,804,806,および808を含み、これらは、1つ以上のネットワーク810を介してウェブブラウザ、所有権付きクライアント(たとえば、Oracle Forms)などのクライアントアプリケーションを実行し動作させるよう構成される。サーバ812は、ネットワーク810を介してリモートクライアントコンピューティングデバイス802,804,806,および808と通信可能に結合されてもよい。
【0064】
種々の実施形態では、サーバ812は、システムのコンポーネントのうちの1つ以上によって提供される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。いくつかの実施形態では、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして、またはソフトウェア・アズ・ア・サービス(SaaS)モデルの下で、クライアントコンピューティングデバイス802、804、806、および/または808のユーザに対して提供されてもよい。クライアントコンピューティングデバイス802、804、806、および/または808を動作させるユーザは、次いで、1つ以上のクライアントアプリケーションを利用してサーバ812と対話して、これらのコンポーネントによって提供されるサービスを利用してもよい。
【0065】
図に示される構成では、システム800のソフトウェアコンポーネント818,820および822は、サーバ812上で実現されるものとして示される。他の実施形態では、システム800のコンポーネントおよび/またはこれらのコンポーネントによって提供されるサービスのうちの1つ以上はまた、クライアントコンピューティングデバイス802、804、806、および/または808のうちの1つ以上によって実現されてもよい。クライアントコンピューティングデバイスを動作させるユーザは、次いで、1つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを用いてもよい。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現されてもよい。分散型システム800とは異なってもよいさまざまな異なるシステム構成が可能であることが理解されるべきである。したがって、図に示される実施形態は、実施形態のシステムを実現するための分散型システムの一例であり、限定することを意図するものではない。
【0066】
クライアントコンピューティングデバイス802,804,806および/または808は、携帯可能なハンドヘルドデバイス(たとえば、iPhone(登録商標)、セルラー電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA))またはウェアラブルデバイス(たとえば Google Glass(登録商標)頭部装着型ディスプレイ)であってもよく、Microsoft Windows Mobile(登録商標)などのソフトウェア、および/もしくは、 iOS, Windows Phone, Android, BlackBerry 10, Palm OS などのさまざまなモバイルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス(SMS)、Blackberry(登録商標)、または他の有効にされた通信プロトコルであってもよい。クライアントコンピューティングデバイスは、例として、様々なバージョンの Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、および/もしくはLinux (登録商標)オペレーティングシステムを実行するパーソナルコンピュータならびに/またはラップトップコンピュータを含む汎用パーソナルコンピュータとすることができる。クライアントコンピューティングデバイスは、例えば Google Chrome OS などの様々な GNU/Linux オペレーティングシステムを含むがこれに限定されない、様々な市販の UNIX(登録商標)または UNIX のようなオペレーティングシステムのいずれかを実行するワークステーションコンピュータとすることができる。代替として、または加えて、クライアントコンピューティングデバイス802,804,806,および808は、ネットワーク810を介して通信することが可能な、シンクライアントコンピュータ、インターネット対応ゲームシステム(例えば、Kinect(登録商標)ジェスチャ入力装置を伴うかまたは伴わない Microsoft Xbox ゲームコンソール)、および/またはパーソナルメッセージングデバイス等の任意の他の電子デバイスであってもよい。
【0067】
例示の分散型システム800は、4つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなど、他のデバイスがサーバ812と対話してもよい。
【0068】
分散型システム800内のネットワーク810は、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、AppleTalk などを含むがこれらに限定されない様々な市販のプロトコルのいずれかを使用してデータ通信をサポートすることができる、当業者によく知られている任意のタイプのネットワークであってもよい。単なる例として、ネットワーク810は、イーサネット(登録商標)、トークンリングなどに基づくものなどのローカルエリアネットワーク(LAN)であり得る。ネットワーク810は、ワイドエリアネットワークおよびインターネットであり得る。それは、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、無線ネットワーク(例えば、米国電気電子学会(IEEE)802.11プロトコル一式、Bluetooth(登録商標)、および/もしくは任意の他の無線プロトコルのいずれかの下で動作するネットワーク)を含むがこれらに限定されない仮想ネットワーク;ならびに/またはこれらおよび/もしくは他のネットワークの任意の組み合わせを含むことができる。
【0069】
サーバ812は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、または任意の他の適切な構成および/もしくは組合せから構成されてもよい。種々の実施形態では、サーバ812は、前述の開示で説明される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。例えば、サーバ812は、本開示のある実施形態に従って上記で説明された処理を実行するためのサーバに対応してもよい。
【0070】
サーバ812は、上述のもののいずれかを含むオペレーティングシステム、および任意の市場で入手可能なサーバオペレーティングシステムを実行してもよい。サーバ812はまた、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまなさらに他のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行してもよい。例示的なデータベースサーバは、Oracle, Microsoft, Sybase, IBM(登録商標)(インターナショナルビジネスマシンズ)などから市場で入手可能なものを含むが、それらに限定されるものではない。
【0071】
いくつかの実現例では、サーバ812は、クライアントコンピューティングデバイス802,804,806,および808のユーザから受信されたデータフィードおよび/またはイベント更新を分析および整理統合するための1つ以上のアプリケーションを含んでもよい。一例として、データフィードおよび/またはイベント更新は、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などに関連するリアルタイムのイベントを含んでもよい、1つ以上の第三者情報源および連続データストリームから受信される、Twitter(登録商標)フィード、Facebook(登録商標)更新またはリアルタイムの更新を含んでもよいが、それらに限定されるものではない。サーバ812はまた、クライアントコンピューティングデバイス802,804,806,および808の1つ以上のディスプレイデバイスを介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含んでもよい。
【0072】
分散型システム800は、1つ以上のデータベース814および816も含んでもよい。データベース814および816は、様々な場所に存在してもよい。例として、データベース814および816のうちの1つ以上は、サーバ812にローカルな(および/または常駐する)非一時的記憶媒体上に常駐してもよい。代替として、データベース814および816は、サーバ812から遠隔にあり、ネットワークベースの接続または専用の接続を介してサーバ812と通信してもよい。一組の実施形態では、データベース814および816は、ストレージエリアネットワーク(SAN)内に常駐してもよい。同様に、サーバ812に帰する機能を実行するための任意の必要なファイルが、適宜、サーバ812上にローカルに、および/または遠隔で、記憶されてもよい。一組の実施形態では、データベース814および816は、SQLフォーマット化されたコマンドに応答してデータを記憶、更新、および検索するように適合される、Oracle によって提供されるデータベース等のリレーショナルデータベースを含んでもよい。
【0073】
図9は、本開示の一実施形態による、実施形態のシステムの1つ以上のコンポーネントによって提供されるサービスをクラウドサービスとして提供してもよいシステム環境900の1つ以上のコンポーネントの簡略ブロック図である。図示される実施形態では、システム環境900は、クラウドサービスを提供するクラウドインフラストラクチャシステム902と対話するためにユーザによって使用されてもよい、1つ以上のクライアントコンピューティングデバイス904,906,および908を含む。クライアントコンピューティングデバイスは、クラウドインフラストラクチャシステム902によって提供されるサービスを使用するためにクラウドインフラストラクチャシステム902と対話するためにクライアントコンピューティングデバイスのユーザによって使用されてもよい、ウェブブラウザ、知的所有権下にあるクライアントアプリケーション(たとえば、Oracle Forms)、または何らかの他のアプリケーションなどのクライアントアプリケーションを動作させるよう構成されてもよい。
【0074】
図示のクラウドインフラストラクチャシステム902は、図示されるコンポーネント以外のコンポーネントを有していてもよいことを理解されたい。さらに、図に示す実施形態は、本発明の実施形態を組み込んでもよいクラウドインフラストラクチャシステムの一例にすぎない。いくつかの他の実施形態では、クラウドインフラストラクチャシステム902は、図に示されるよりも多いまたは少ないコンポーネントを有してもよく、2つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配列を有してもよい。
【0075】
クライアントコンピューティングデバイス904,906,および908は、802,804,806,および808について上で説明されたものと同様のデバイスであってもよい。
【0076】
例示的なシステム環境900は3つのクライアントコンピューティングデバイスとともに示されるが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなどの、他のデバイスが、クラウドインフラストラクチャシステム902と対話してもよい。
【0077】
ネットワーク910は、クライアント904,906,および908とクラウドインフラストラクチャシステム902との間のデータの通信および交換を容易にしてもよい。各ネットワークは、ネットワーク810について上で説明されたものを含む、様々な市販のプロトコルのいずれかを使用してデータ通信をサポートすることができる、当業者によく知られている任意のタイプのネットワークであってもよい。
【0078】
クラウドインフラストラクチャシステム902は、サーバ812について上述したものを含んでもよい1つ以上のコンピュータおよび/またはサーバを含んでもよい。
【0079】
ある実施形態では、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータストレージおよびバックアップソリューション、ウェブベースの電子メールサービス、ホストされたオフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理された技術サポートサービス等、オンデマンドでクラウドインフラストラクチャシステムのユーザに利用可能にされるサービスのホストを含んでもよい。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすように動的にスケーリングすることができる。クラウドインフラストラクチャシステムによって提供されるサービスの特定のインスタンス化は、本明細書では「サービスインスタンス」と呼ばれる。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザに利用可能にされる任意のサービスは、「クラウドサービス」と呼ばれる。典型的には、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なる。例えば、クラウドサービスプロバイダのシステムは、アプリケーションをホストしてもよく、ユーザは、インターネット等の通信ネットワークを介して、オンデマンドで、そのアプリケーションを注文および使用してもよい。
【0080】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャ内のサービスは、ストレージ、ホストされたデータベース、ホストされたウェブサーバ、ソフトウェアアプリケーション、またはクラウドベンダによってユーザに提供されるかもしくは当技術分野で公知の他のサービスへの、保護されたコンピュータネットワークアクセスを含んでもよい。例えば、サービスは、インターネットを介したクラウド上のリモートストレージへのパスワード保護されたアクセスを含むことができる。別の例として、サービスは、ウェブサービスベースのホストされたリレーショナルデータベースと、ネットワーク化された開発者による私的使用のためのスクリプト言語ミドルウェアエンジンとを含むことができる。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含むことができる。
【0081】
ある実施形態では、クラウドインフラストラクチャシステム902は、セルフサービスであり、サブスクリプションベースであり、弾性的にスケーラブルであり、信頼性があり、高い可用性があり、セキュリティ保護のある態様で顧客に配信される、アプリケーション、ミドルウェア、およびデータベースサービス提供の一式を含んでもよい。そのようなクラウドインフラストラクチャシステムの例は、本譲受人によって提供される Oracle Public Cloud である。
【0082】
さまざまな実施形態において、クラウドインフラストラクチャシステム902は、クラウドインフラストラクチャシステム902によって提供されるサービスに対する顧客のサブスクリプションを自動的にプロビジョニングし、管理し、追跡するように適合されてもよい。クラウドインフラストラクチャシステム902は、異なる展開モデルを介してクラウドサービスを提供してもよい。例えば、サービスは、クラウドインフラストラクチャシステム902が(例えば、Oracle によって所有される)クラウドサービスを販売する組織によって所有され、サービスが一般公衆または異なる業界企業に利用可能にされる、公衆クラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム902が単一の組織に対してのみ動作し、その組織内の1つ以上のエンティティにサービスを提供してもよいプライベートクラウドモデルの下で提供してもよい。クラウドサービスはまた、クラウドインフラストラクチャシステム902およびクラウドインフラストラクチャシステム902によって提供されるサービスが関連するコミュニティ内のいくつかの組織によって共有されるコミュニティクラウドモデルの下で提供されてもよい。クラウドサービスはまた、2つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で提供されてもよい。
【0083】
いくつかの実施形態では、クラウドインフラストラクチャシステム802によって提供されるサービスは、サービスとしてのソフトウェア(SaaS)カテゴリ、サービスとしてのプラットフォーム(PaaS)カテゴリ、サービスとしてのインフラストラクチャ(IaaS)カテゴリ、またはハイブリッドサービスを含むサービスの他のカテゴリの下で提供される1つ以上のサービスを含んでもよい。顧客は、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスを、サブスクリプション注文を介して注文してもよい。次いで、クラウドインフラストラクチャシステム902は、顧客のサブスクリプション注文におけるサービスを提供するための処理を実行する。
【0084】
いくつかの実施形態では、クラウドインフラストラクチャシステム902によって提供されるサービスは、アプリケーションサービス、プラットフォームサービス、およびインフラストラクチャサービスを含んでもよいが、それらに限定はされない。いくつかの例では、アプリケーションサービスは、SaaSプラットフォームを介して、クラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに該当するクラウドサービスを提供するよう構成されてもよい。例えば、SaaSプラットフォームは、統合された開発および展開プラットフォーム上でオンデマンドアプリケーションの一式を構築および配信するための能力を提供してもよい。SaaSプラットフォームは、SaaSサービスを提供するための基底のソフトウェアおよびインフラストラクチャを管理ならびに制御してもよい。SaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステム上で実行するアプリケーションを利用することができる。顧客は、別途のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得することができる。様々な異なるSaaSサービスが提供されてもよい。例としては、販売実績管理、企業統合、および大規模組織のための事業柔軟性のためのソリューションを提供するサービスが挙げられるが、それらに限定されない。
【0085】
いくつかの実施形態では、プラットフォームサービスは、PaaSプラットフォームを介して、クラウドインフラストラクチャシステムによって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに該当するクラウドサービスを提供するよう構成されてもよい。プラットフォームサービスの例は、組織(Oracle 等)が共有の共通アーキテクチャ上で既存のアプリケーションを統合することを可能にするサービス、およびプラットフォームによって提供される共有サービスを活用する新たなアプリケーションを構築する能力を含んでもよいが、それらに限定されない。PaaSプラットフォームは、PaaSサービスを提供するための基底のソフトウェアおよびインフラストラクチャを管理ならびに制御してもよい。顧客は、顧客が別途のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステムによって提供されるPaaSサービスを取得することができる。プラットフォームサービスの例は、Oracle Java Cloud Service(JCS)、Oracle Database Cloud Service(DBCS)などを含むが、これらに限定されない。
【0086】
PaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを採用することができ、展開されたサービスを制御することもできる。いくつかの実施形態では、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス(例えば、Oracle Fusion Middleware サービス)、およびJava クラウドサービスを含んでもよい。一実施形態では、データベースクラウドサービスは、組織がデータベースリソースをプールし、顧客にサービスとしてのデータベースをデータベースクラウドの形で提供することを可能にする共有サービス展開モデルをサポートしてもよい。ミドルウェアクラウドサービスは、顧客が様々なクラウドアプリケーションを開発および展開するためのプラットフォームを提供してもよく、Java クラウドサービスは、顧客がクラウドインフラストラクチャシステムにおいてJava アプリケーションを展開するためのプラットフォームを提供してもよい。
【0087】
様々な異なるインフラストラクチャサービスが、クラウドインフラストラクチャシステムにおいてIaaSプラットフォームによって提供されてもよい。インフラストラクチャサービスは、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のためにストレージ、ネットワーク、および他の基本的なコンピューティングリソース等の基底のコンピューティングリソースの管理ならびに制御を促進する。
【0088】
ある実施形態では、クラウドインフラストラクチャシステム902はまた、クラウドインフラストラクチャシステムの顧客に様々なサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース930を含んでもよい。一実施形態では、インフラストラクチャリソース930は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するためにサーバ、ストレージ、およびネットワーキングリソースなどのハードウェアの事前統合され最適化された組合せを含んでもよい。
【0089】
いくつかの実施形態では、クラウドインフラストラクチャシステム902におけるリソースは、複数のユーザによって共有され、需要ごとに動的に再割り当てされてもよい。加えて、リソースは、異なる時間帯においてユーザに割り当てられてもよい。たとえば、クラウドインフラストラクチャシステム930は、第1の時間帯における第1の組のユーザがクラウドインフラストラクチャシステムのリソースを指定された時間数にわたって利用することを可能にし、次いで、異なる時間帯にいる別の組のユーザに同じリソースを再割り当てることを可能にし、それによってリソースの利用を最大にしてもよい。
【0090】
ある実施形態では、クラウドインフラストラクチャシステム902の異なるコンポーネントまたはモジュールによって、およびクラウドインフラストラクチャシステム902によって提供されるサービスによって共有されるいくつかの内部共有サービス932が提供されてもよい。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含んでもよいが、これらに限定されない。
【0091】
特定の実施形態では、クラウドインフラストラクチャシステム902は、クラウドインフラストラクチャシステムにおけるクラウドサービス(例えば、SaaS、PaaS、およびIaaSサービス)の包括的な管理を提供してもよい。一実施形態では、クラウド管理機能は、クラウドインフラストラクチャシステム902によって受信された顧客のサブスクリプションをプロビジョニングし、管理し、追跡するための能力などを含んでもよい。
【0092】
一実施形態では、図に示すように、クラウド管理機能は、注文管理モジュール920、注文オーケストレーションモジュール922、注文プロビジョニングモジュール924、注文管理および監視モジュール926、ならびにアイデンティティ管理モジュール928などの1つ以上のモジュールによって提供されてもよい。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、もしくは任意の他の適切な構成および/もしくは組み合わせであってもよい1つ以上のコンピュータならびに/もしくはサーバを含むか、またはそれらを使用して提供されてもよい。
【0093】
例示的な動作934において、クライアントデバイス904、906または908などのクライアントデバイスを使用する顧客は、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスを要求し、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスのサブスクリプションの注文を出すことによって、クラウドインフラストラクチャシステム902と対話してもよい。ある実施形態では、顧客は、クラウドユーザインターフェイス(UI)、クラウドUI912、クラウドUI914、および/またはクラウドUI916にアクセスし、これらのUIを介してサブスクリプション注文を行ってもよい。顧客が注文を行うことに応答してクラウドインフラストラクチャシステム902によって受信される注文情報は、顧客と、顧客が加入しようとする、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスとを識別する情報を含んでもよい。
【0094】
顧客によって注文が行われた後、クラウドUI912、914および/または916を介して注文情報が受信される。
【0095】
動作936において、注文は注文データベース918に記憶される。注文データベース918は、クラウドインフラストラクチャシステム918によって操作され他のシステム要素と関連して操作されるいくつかのデータベースのうちの1つであることができる。
【0096】
動作938において、注文情報は注文管理モジュール920に転送される。いくつかの例では、注文管理モジュール920は、注文を検証し、検証されると注文を記帳するなど、注文に関連する料金請求および経理機能を実行するよう構成されてもよい。
【0097】
動作940において、注文に関する情報は、注文オーケストレーションモジュール922に通信される。注文オーケストレーションモジュール922は、注文情報を利用して、顧客によって行われた注文に対してサービスおよびリソースのプロビジョニングをオーケストレーションしてもよい。いくつかの例では、注文オーケストレーションモジュール922は、注文プロビジョニングモジュール924のサービスを使用して、サブスクライブされたサービスをサポートするためにリソースのプロビジョニングをオーケストレーションしてもよい。
【0098】
特定の実施形態では、注文オーケストレーションモジュール922は、各注文に関連付けられるプロセスの管理を可能にし、論理を適用して、注文がプロビジョニングに進むべきかどうかを判断する。動作942において、新たなサブスクリプションの注文を受信すると、注文オーケストレーションモジュール922は、リソースを割り当て、サブスクリプション注文を満たすのに必要とされるリソースを構成するよう、要求を注文プロビジョニングモジュール924に送信する。注文プロビジョニングモジュール924は、顧客によって注文されたサービスに対するリソースの割り当てを可能にする。注文プロビジョニングモジュール924は、クラウドインフラストラクチャシステム900によって提供されるクラウドサービス間の抽象化のレベル、および要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理実装レイヤを提供する。したがって、注文オーケストレーションモジュール922は、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか、または事前にプロビジョニングされ、要求に応じてのみ割り振られる/割り当てられるかどうかなど、実現の詳細から隔離されてもよい。
【0099】
動作944において、サービスおよびリソースがプロビジョニングされると、提供されたサービスの通知が、クラウドインフラストラクチャシステム902の注文プロビジョニングモジュール924によってクライアントデバイス904、906および/または908上の顧客に送信されてもよい。
【0100】
動作946において、顧客のサブスクリプション注文は、注文管理および監視モジュール926によって管理ならびに追跡されてもよい。いくつかの事例では、注文管理および監視モジュール926は、使用されるストレージの量、転送されるデータの量、ユーザの数、ならびにシステム起動時間およびシステム停止時間の量など、サブスクリプション注文におけるサービスについて使用統計を収集するよう構成されてもよい。
【0101】
ある実施形態では、クラウドインフラストラクチャシステム900は、アイデンティティ管理モジュール928を含んでもよい。アイデンティティ管理モジュール928は、クラウドインフラストラクチャシステム900におけるアクセス管理および認可サービスなどのアイデンティティサービスを提供するよう構成されてもよい。いくつかの実施形態では、アイデンティティ管理モジュール928は、クラウドインフラストラクチャシステム902によって提供されるサービスを利用することを望む顧客に関する情報を制御してもよい。そのような情報は、そのような顧客のアイデンティティを認証する情報、およびそれらの顧客が様々なシステムリソース(例えば、ファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してどのアクションを実行する権限を与えられるかを記述する情報を含むことができる。アイデンティティ管理モジュール928はまた、各顧客についての記述情報、ならびにその記述情報にアクセスしそれを変更することができる方法および人についての記述情報の管理も含んでもよい。
【0102】
図10は、本発明の様々な実施形態が実現されてもよい例示的なコンピュータシステム1000を示す。システム1000は、上記で説明されるコンピュータシステムのうちのいずれかを実現するために使用されてもよい。図に示されるように、コンピュータシステム1000は、バスサブシステム1002を介していくつかの周辺サブシステムと通信する処理ユニット1004を含む。これらの周辺サブシステムは、処理加速ユニット1006、I/Oサブシステム1008、ストレージサブシステム1018、および通信サブシステム1024を含んでもよい。ストレージサブシステム1018は、有形のコンピュータ可読記憶媒体1022およびシステムメモリ1010を含む。
【0103】
バスサブシステム1002は、コンピュータシステム1000の種々のコンポーネントおよびサブシステムを意図されるように相互に通信させるための機構を提供する。バスサブシステム1002は、単一のバスとして概略的に示されるが、バスサブシステムの代替実施形態は、複数のバスを利用してもよい。バスサブシステム1002は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカルバス、およびIEEE P1386.1規格に従って製造される中二階バスとして実現され得る周辺コンポーネントインターコネクト(PCI)バスを含んでもよい。
【0104】
処理ユニット1004は、1つ以上の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実現することができ、コンピュータシステム1000の動作を制御する。1つ以上のプロセッサが処理ユニット1004に含まれてもよい。これらのプロセッサは、シングルコアプロセッサまたはマルチコアプロセッサを含んでもよい。特定の実施形態では、処理ユニット1004は、シングルコアプロセッサもしくはマルチコアプロセッサが各処理ユニットに含まれる1つ以上の独立した処理ユニット1032および/または1034として実現されてもよい。他の実施形態では、処理ユニット1004はまた、2つのデュアルコアプロセッサを単一のチップに統合することによって形成されるクワッドコア処理ユニットとして実現されてもよい。
【0105】
様々な実施形態では、処理ユニット1004は、プログラムコードに応答して様々なプログラムを実行することができ、複数の同時に実行されるプログラムまたはプロセスを維持することができる。任意の所与の時間に、実行されるべきプログラムコードの一部またはすべてが、プロセッサ1004、および/またはストレージサブシステム1018に常駐することができる。好適なプログラミングを通して、プロセッサ1004は、上記で説明される種々の機能性を提供することができる。コンピュータシステム1000は、デジタル信号プロセッサ(DSP)、特殊目的プロセッサなどを含み得る処理加速ユニット1006をさらに含んでもよい。
【0106】
I/Oサブシステム1008は、ユーザインターフェイス入力デバイスおよびユーザインターフェイス出力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴う音声入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、例えば、ユーザが、ジェスチャおよび発話コマンドを使用して、ナチュラルユーザインターフェイスを通して、Microsoft Xbox(登録商標)360ゲームコントローラ等の入力デバイスを制御し、それと対話することを可能にする、Microsoft Kinect(登録商標)モーションセンサ等のモーション感知および/またはジェスチャ認識デバイスを含んでもよい。ユーザインターフェイス入力デバイスはまた、ユーザからの眼の活動(例えば、写真を撮っている間および/またはメニュー選択を行っている間に「瞬きする」)を検出し、入力デバイス(例えば、Google Glass(登録商標))への入力として眼のジェスチャを変換する、Google Glass(登録商標)瞬き検出器等の眼のジェスチャ認識デバイスを含んでもよい。加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(たとえば Siri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含んでもよい。
【0107】
ユーザインターフェイス入力デバイスは、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚/視覚デバイスも含んでもよいが、それらに限定されるものではない。加えて、ユーザインターフェイス入力デバイスは、例えば、コンピュータ断層撮影、磁気共鳴撮像、ポジトロン断層撮影、医療用超音波検査装置等の医療用撮像入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスはまた、例えば、MIDIキーボード、デジタル楽器等の音声入力デバイスを含んでもよい。
【0108】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイス等の非視覚的ディスプレイを含んでもよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般に、「出力デバイス」という語の使用は、コンピュータシステム1000からユーザまたは他のコンピュータに情報を出力するためのすべての考えられ得るタイプのデバイスおよび機構を含むよう意図される。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなどの、テキスト、グラフィックスならびに音声/映像情報を視覚的に伝えるさまざまな表示デバイスを含んでもよいが、それらに限定されるものではない。
【0109】
コンピュータシステム1000は、現在のところシステムメモリ1010内に位置しているものとして示されているソフトウェア要素を含むストレージサブシステム1018を備えてもよい。システムメモリ1010は、処理ユニット1004上でロード可能および実行可能なプログラム命令、ならびにこれらのプログラムの実行中に生成されるデータを記憶してもよい。
【0110】
コンピュータシステム1000の構成およびタイプに応じて、システムメモリ1010は、揮発性(ランダムアクセスメモリ(RAM)など)および/または不揮発性(読み出し専用メモリ(ROM)、フラッシュメモリなど)であってもよい。RAMは、典型的には、処理ユニット1004に即座にアクセス可能である、ならびに/もしくは処理ユニット1004によって現在操作および実行されている、データならびに/またはプログラムモジュールを含む。いくつかの実現例では、システムメモリ1010は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)など、複数の異なるタイプのメモリを含んでもよい。いくつかの実現例では、起動中などにコンピュータシステム1000内の要素間で情報を転送するのに役立つ基本的なルーチンを含むベーシックインプット/アウトプットシステム(BIOS)が、典型的には、ROMに記憶されてもよい。限定ではなく例として、システムメモリ1010はまた、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含んでもよいアプリケーションプログラム1012、プログラムデータ1014、およびオペレーティングシステム1016も示す。例として、オペレーティングシステム1016は、様々なバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/もしくは Linux(登録商標)オペレーティングシステム、様々な市販の UNIX(登録商標)もしくは UNIX のようなオペレーティングシステム(様々な GNU/Linux オペレーティングシステム、 Google Chrome(登録商標)OSなどを含むが、これらに限定されない)、ならびに/または iOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)10OS、および Palm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含んでもよい。
【0111】
ストレージサブシステム1018はまた、いくつかの実施形態の機能性を提供する基本的なプログラミングおよびデータ構造を記憶するための有形のコンピュータ可読記憶媒体も提供してもよい。プロセッサによって実行されると上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が、ストレージサブシステム1018に格納されてもよい。これらのソフトウェアモジュールまたは命令は、処理ユニット1004によって実行されてもよい。ストレージサブシステム1018はまた、本発明に従って使用されるデータを記憶するためのリポジトリを提供してもよい。
【0112】
ストレージサブシステム1018はまた、コンピュータ可読記憶媒体1022にさらに接続され得るコンピュータ可読記憶媒体リーダ1020を含んでもよい。システムメモリ1010とともに、およびオプションとして、システムメモリ1010と組み合わせて、コンピュータ可読記憶媒体1022は、コンピュータ可読情報を、一時的および/またはより恒久的に収容、記憶、伝送、および検索するために、遠隔の、ローカルな、固定された、および/またはリムーバブルなストレージデバイスに記憶媒体を加えたものを包括的に表してもよい。
【0113】
コードまたはコードの一部を含むコンピュータ可読記憶媒体1022はまた、限定はしないが、情報の記憶および/または伝送のための任意の方法または技術で実現される揮発性および不揮発性の、リムーバブルおよび非リムーバブル媒体などの、記憶媒体ならびに通信媒体を含む、当技術分野で公知であるかまたは使用される任意の適切な媒体を含むことができる。これは、RAM、ROM、電子的に消去可能プログラマブルROM(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体等の有形のコンピュータ可読記憶媒体を含むことができる。これはまた、データ信号、データ伝送、または所望の情報を伝送するために使用することができ、コンピューティングシステム1000によってアクセスすることができる、任意の他の媒体等の非有形のコンピュータ可読媒体を含むことができる。
【0114】
例として、コンピュータ可読記憶媒体1022は、非リムーバブル不揮発性磁気媒体に対して読み書きするハードディスクドライブ、リムーバブル不揮発性磁気ディスクに対して読み書きする磁気ディスクドライブ、ならびにCD ROM、DVDおよび Blu-Ray(登録商標)ディスクなどのリムーバブル不揮発性光ディスクまたは他の光学媒体に対して読み書きする光ディスクドライブを含んでもよい。コンピュータ可読記憶媒体1022は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含んでもよいが、これらに限定されない。コンピュータ可読記憶媒体1022はまた、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含んでもよい。ディスクドライブおよびそれらに関連付けられるコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶をコンピュータシステム1000に提供してもよい。
【0115】
通信サブシステム1024は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1024は、他のシステムとコンピュータシステム1000との間のデータの送受のためのインターフェイスとして働く。例えば、通信サブシステム924は、コンピュータシステム1000がインターネットを介して1つ以上のデバイスに接続することを可能にしてもよい。いくつかの実施形態では、通信サブシステム1024は、(たとえば、セルラー電話技術、3G、4GもしくはEDGE(グローバル進化のための高速データレート)などの先進データネットワーク技術、WiFi(IEEE1202.11ファミリー規格、もしくは他のモバイル通信技術、またはそれらのいずれかの組み合わせを用いて)無線音声および/もしくはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、ならびに/または他のコンポーネントを含むことができる。いくつかの実施形態では、通信サブシステム1024は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続性(例えば、イーサネット(登録商標))を提供することができる。
【0116】
いくつかの実施形態では、通信サブシステム1024はまた、コンピュータシステム1000を使用してもよい1人以上のユーザの代わりに、構造化されたおよび/または構造化されていないデータフィード1026、イベントストリーム1028、イベント更新1030等の形式で入力通信を受信してもよい。
【0117】
例として、通信サブシステム1024は、Twitter(登録商標)フィード、Facebook(登録商標)更新、Rich Site Summary(RSS)フィードなどのウェブフィード、および/もしくは1つ以上の第三者情報源からのリアルタイム更新など、ソーシャルネットワークならびに/または他の通信サービスのユーザからリアルタイムでデータフィード1026を受信するよう構成されてもよい。
【0118】
加えて、通信サブシステム1024はまた、連続データストリームの形式でデータを受信するよう構成されてもよく、これは、明示的な終端を伴わない、本質的に連続的または無限であってもよい、リアルタイムイベントのイベントストリーム1028および/またはイベント更新1030を含んでもよい。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などが含まれてもよい。
【0119】
通信サブシステム1024はまた、構造化されたおよび/または構造化されていないデータフィード1026、イベントストリーム1028、イベント更新1030などを、コンピュータシステム1000に結合される1つ以上のストリーミングデータソースコンピュータと通信してもよい1つ以上のデータベースに出力するよう構成されてもよい。
【0120】
コンピュータシステム1000は、ハンドヘルドポータブルデバイス(例えば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む、種々のタイプの1つとすることができる。
【0121】
常に変化するコンピュータおよびネットワークの性質のため、図に示されるコンピュータシステム1000の記載は、単に具体的な例として意図される。図示されるシステムより多いまたは少ないコンポーネントを有する、多くの他の構成が可能である。たとえば、カスタマイズされたハードウェアも使用されるかもしれず、および/または、特定の要素が、ハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、または組み合わせで実現されるかもしれない。さらに、ネットワーク入力/出力デバイス等の他のコンピューティングデバイスへの接続が採用されてもよい。本明細書に提供される開示および教示に基づいて、当業者は、種々の実施形態を実現するための他の態様および/または方法を理解するであろう。
【0122】
前述の明細書においては、本発明の局面が、その特定の実施形態を参照して説明されているが、当業者は、本発明がそれに限定されないことを認識するであろう。上記の発明のさまざまな特徴および局面は、個々に、または一緒に用いられてもよい。さらに、実施形態は、本明細書の、より広い精神および範囲から逸脱することなく、本明細書に説明されるものを超えて、任意の数の環境および用途において利用されることができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
【国際調査報告】