(57)【要約】【課題】通信決定木の全体に亘って人工知能（ＡＩ）決定ノードを構成すること。【解決手段】決定ノードは、ＡＩモデルの連続的な反復をサポートするため、決定木を通る経路に対応する反復データを動的に定義することができる。【選択図】図１
2020057386.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実行される方法であって、
ジョブを割り当てるための決定木を表すデータ構造を呼び出すことを含み、前記決定木は、複数の連続決定ノードを含み、ワーカーの累進選別に対応する反復決定を実行するように構成され、１つ以上の経路の各々が前記複数の連続決定ノードのうち各決定ノードに延長することは、前記ジョブを実行するためのワーカーリクエストの構成に関する中間決定または最終決定をトリガし、
前記決定木の経路を開始することを含み、前記経路は、前記ジョブに割り当てられる可能性がある複数のワーカーに関連付けられ、
前記経路が前記決定木の前記複数の連続決定ノードのうち第１の決定ノードに到達したことを検出することと、
第１セットの訓練データを用いて第１の機械学習モデルを訓練することによって生成された第１セットのノード固有学習パラメータを取得することとを含み、前記第１セットのノード固有学習パラメータは、非構造化データを構造化特徴データに変換する方法を定義し、
複数セットのワーカー関連非構造化データを呼び出すことを含み、前記複数セットのワーカー関連非構造化データの各々は、前記複数のワーカーのうち各ワーカーに対応し且つ非構造化データを含み、
前記複数セットのワーカー関連非構造化データを用いて、前記第１セットのノード固有学習パラメータを用いて構成された前記第１の機械学習モデルの１回以上の第１の反復を実行することを含み、前記第１の機械学習モデルの前記１回以上の第１の反復の実行は、複数セットのワーカー特徴データを含む第１の結果を生成し、前記複数のワーカーのうち各ワーカーに対応し且つ前記ワーカー関連非構造化データセットが前記ワーカーに対応する対応度を示す前記複数セットのワーカー特徴データの各々は、一組の特徴の各々を表し、前記複数セットのワーカー特徴データの各々は、構造化データであり、前記複数の特徴は、前記第１セットのノード固有学習パラメータに基づいて定義され、
前記複数セットのワーカー特徴データに基づいて、前記ジョブのために継続的に評価するための前記複数のワーカーの部分セットを特定することと、
前記経路が前記決定木の前記複数の連続決定ノードのうち第２の決定ノードに到達したことを検出することと、
第２セットの訓練データを用いて第２の機械学習モデルを訓練することによって生成された第２セットのノード固有学習パラメータを取得することとを含み、前記第２セットのノード固有学習パラメータは、構造化データを変換する方法を定義し、
前記複数セットのワーカー特徴データの部分セットを用いて、前記第２セットのノード固有学習パラメータを用いて構成された第２の機械学習モデルの１回以上の第２の反復を実行することを含み、前記複数セットのワーカー特徴データの前記部分セットの各々は、前記複数のワーカーの前記部分セットの各ワーカーに対応し、前記第２の機械学習モデルの前記１回以上の第２の反復の実行は、前記ジョブと前記複数のワーカーの少なくとも１つの前記部分セットの各ワーカーとの間の推定の絶対的な対応度または相対的な対応度を示す第２の結果を生成し、
前記第２の結果を表す通信動作をトリガすることを含む、方法。
【請求項２】
複数のキーと値のペアを特定することをさらに含み、
前記複数のキーと値のペアの各々は、前記複数のワーカーの前記部分セットの各ワーカーに対応し、
前記第２の機械学習モデルの前記１回以上の第２の反復の実行は、前記複数のキーと値のペアをさらに使用し、
前記第１の機械学習モデルの１回以上の第１の反復の実行は、前記複数キーと値のペアを使用しない、請求項１に記載の方法。
【請求項３】
教師なし学習プロセスを用いて、前記第１セットのノード固有学習パラメータを学習することと、
教師あり学習プロセスを用いて、前記第２セットのノード固有学習パラメータを学習することとをさらに含む、請求項１に記載の方法。
【請求項４】
前記複数セットのワーカー特徴データの各ワーカー特徴データセットは、ベクトル、マトリックスまたはアレイを含み、
前記ベクトル、マトリックスまたはアレイは、所定の次元数を有する、請求項１に記載の方法。
【請求項５】
前記ジョブに対応する非構造化ジョブデータセットを呼び出すことと、
前記非構造化ジョブデータセットを用いて、前記第１セットのノード固有学習パラメータを用いて構成された前記第１の機械学習モデルの別の反復を実行することとをさらに含み、前記第１の機械学習モデルの前記別の反復の実行は、前記非構造化ジョブデータセットが前記一組の特徴の各々を表す程度を示すジョブ特徴データセットを生成し、
前記ワーカーに対応する前記ワーカー特徴データセットおよび前記ジョブ特徴データセットに基づいて、前記複数のワーカーのうち各ワーカーのジョブ比較メトリックを生成することをさらに含み、前記複数のワーカーの前記部分セットは、前記複数のワーカーのために生成された前記ジョブ比較メトリックに基づいて特定される、請求項１に記載の方法。
【請求項６】
前記第１セットの訓練データを用いて、前記第１セットのノード固有学習パラメータを学習するように前記第１の機械学習モデルを訓練することをさらに含み、
前記第１セットの訓練データは、他の非構造化データを含み、
前記第１セットのノード固有学習パラメータは、特定のセマンティック特性を経験レベル、スキル、またはジョブ特性に関連付ける、請求項１に記載の方法。
【請求項７】
前記経路が前記決定木の前記複数の連続決定ノードのうち第３の決定ノードに到達したことを検出することと、
前記複数セットのワーカー特徴データの少なくとも１つを用いて、第３セットのノード固有学習パラメータを用いて構成された第３の機械学習モデルの第３の反復を実行することとをさらに含み、前記第３の機械学習モデルの前記第３の反復の実行の第３の結果は、前記部分セットの特定のワーカーがジョブを実行するリクエストの受け入れをもたらすように推定された１つ以上のリクエスト構成を表し、前記リクエストは、前記１つ以上のリクエスト構成を用いて構成される、請求項１に記載の方法。
【請求項８】
前記通信動作をトリガすることは、前記第２の結果を含む通信をユーザ装置に送信することを含む、請求項１に記載の方法。
【請求項９】
クエリプロセスに参加することをリクエストした１つ以上のワーカーは、前記第２の結果に基づいて前記複数のワーカーから特定され、
前記方法は、前記クエリプロセスに参加するリクエストを前記１つ以上のワーカーの各ワーカーに関連付けられた装置に送信することをさらに含む、請求項１に記載の方法。
【請求項１０】
前記第２の結果は、前記複数のワーカーの前記部分セットの各ワーカーのランキングまたはスコアを含む、請求項１に記載の方法。
【請求項１１】
前記経路が前記決定木の前記複数の連続決定ノードのうち第２の決定ノードに到達したことを検出することと、
前記ジョブを実行するためのリクエストを与える特定のワーカーを特定することと、
前記特定のワーカーを特定するまたは前記特定のワーカーに送信される別の通信をトリガすることとをさらに含む、請求項１に記載の方法。
【請求項１２】
非一時的な機械可読記憶媒体に有形に具体化されたコンピュータプログラム製品であって、１つ以上のデータプロセッサに以下の動作を実行させるように構成された命令を含み、前記動作は、
ジョブを割り当てるための決定木を表すデータ構造を呼び出すことを含み、前記決定木は、複数の連続決定ノードを含み、ワーカーの累進選別に対応する反復決定を実行するように構成され、１つ以上の経路の各々が前記複数の連続決定ノードのうち各決定ノードに延長することは、前記ジョブを実行するためのワーカーリクエストの構成に関する中間決定または最終決定をトリガし、
前記決定木の経路を開始することを含み、前記経路は、前記ジョブに割り当てられる可能性がある複数のワーカーに関連付けられ、
前記経路が前記決定木の前記複数の連続決定ノードのうち第１の決定ノードに到達したことを検出することと、
第１セットの訓練データを用いて第１の機械学習モデルを訓練することによって生成された第１セットのノード固有学習パラメータを取得することとを含み、前記第１セットのノード固有学習パラメータは、非構造化データを構造化特徴データに変換する方法を定義し、
複数セットのワーカー関連非構造化データを呼び出すことを含み、前記複数セットのワーカー関連非構造化データの各々は、前記複数のワーカーのうち各ワーカーに対応し且つ非構造化データを含み、
前記複数セットのワーカー関連非構造化データを用いて、前記第１セットのノード固有学習パラメータを用いて構成された前記第１の機械学習モデルの１回以上の第１の反復を実行することを含み、前記第１の機械学習モデルの前記１回以上の第１の反復の実行は、複数セットのワーカー特徴データを含む第１の結果を生成し、前記複数のワーカーのうち各ワーカーに対応し且つ前記ワーカー関連非構造化データセットが前記ワーカーに対応する対応度を示す前記複数セットのワーカー特徴データの各々は、一組の特徴の各々を表し、前記複数セットのワーカー特徴データの各々は、構造化データであり、前記複数の特徴は、前記第１セットのノード固有学習パラメータに基づいて定義され、
前記複数セットのワーカー特徴データに基づいて、前記ジョブのために継続的に評価するための前記複数のワーカーの部分セットを特定することと、
前記経路が前記決定木の前記複数の連続決定ノードのうち第２の決定ノードに到達したことを検出することと、
第２セットの訓練データを用いて第２の機械学習モデルを訓練することによって生成された第２セットのノード固有学習パラメータを取得することとを含み、前記第２セットのノード固有学習パラメータは、構造化データを変換する方法を定義し、
前記複数セットのワーカー特徴データの部分セットを用いて、前記第２セットのノード固有学習パラメータを用いて構成された第２の機械学習モデルの１回以上の第２の反復を実行することを含み、前記複数セットのワーカー特徴データの前記部分セットの各々は、前記複数のワーカーの前記部分セットの各ワーカーに対応し、前記第２の機械学習モデルの前記１回以上の第２の反復の実行は、前記ジョブと前記複数のワーカーの少なくとも１つの前記部分セットの各ワーカーとの間の推定の絶対的な対応度または相対的な対応度を示す第２の結果を生成し、
前記第２の結果を表す通信動作をトリガすることを含む、コンピュータプログラム製品。
【請求項１３】
前記動作は、複数のキーと値のペアを特定することをさらに含み、
前記複数のキーと値のペアの各々は、前記複数のワーカーの前記部分セットの各ワーカーに対応し、
前記第２の機械学習モデルの前記１回以上の第２の反復の実行は、前記複数のキーと値のペアをさらに使用し、
前記第１の機械学習モデルの１回以上の第１の反復の実行は、前記複数キーと値のペアを使用しない、請求項１２に記載のコンピュータプログラム製品。
【請求項１４】
前記動作は、
教師なし学習プロセスを用いて、前記第１セットのノード固有学習パラメータを学習することと、
教師あり学習プロセスを用いて、前記第２セットのノード固有学習パラメータを学習することとをさらに含む、請求項１２に記載のコンピュータプログラム製品。
【請求項１５】
前記複数セットのワーカー特徴データの各ワーカー特徴データセットは、ベクトル、マトリックスまたはアレイを含み、
前記ベクトル、マトリックスまたはアレイは、所定の次元数を有する、請求項１２に記載のコンピュータプログラム製品。
【請求項１６】
前記動作は、
前記ジョブに対応する非構造化ジョブデータセットを呼び出すことと、
前記非構造化ジョブデータセットを用いて、前記第１セットのノード固有学習パラメータを用いて構成された前記第１の機械学習モデルの別の反復を実行することとをさらに含み、前記第１の機械学習モデルの前記別の反復の実行は、前記非構造化ジョブデータセットが前記一組の特徴の各々を表す程度を示すジョブ特徴データセットを生成し、
前記ワーカーに対応する前記ワーカー特徴データセットおよび前記ジョブ特徴データセットに基づいて、前記複数のワーカーの各ワーカーのジョブ比較メトリックを生成することをさらに含み、前記複数のワーカーの前記部分セットは、生成された前記複数のワーカーの前記ジョブ比較メトリックに基づいて特定される、請求項１２に記載のコンピュータプログラム製品。
【請求項１７】
前記動作は、前記第１セットの訓練データを用いて、前記第１セットのノード固有学習パラメータを学習するように前記第１の機械学習モデルを訓練することをさらに含み、
前記第１セットの訓練データは、他の非構造化データを含み、
前記第１セットのノード固有学習パラメータは、特定のセマンティック特性を経験レベル、スキル、またはジョブ特性に関連付ける、請求項１２に記載のコンピュータプログラム製品。
【請求項１８】
前記動作は、
前記経路が前記決定木の前記複数の連続決定ノードのうち第３の決定ノードに到達したことを検出することと、
前記複数セットのワーカー特徴データの少なくとも１つを用いて、第３セットのノード固有学習パラメータを用いて構成された第３の機械学習モデルの第３の反復を実行することとをさらに含み、前記第３の機械学習モデルの前記第３の反復の実行の第３の結果は、前記部分セットの特定のワーカーがジョブを実行するリクエストの受け入れをもたらすように推定された１つ以上のリクエスト構成を表し、前記リクエストは、前記１つ以上のリクエスト構成を用いて構成される、請求項１２に記載のコンピュータプログラム製品。
【請求項１９】
前記通信動作をトリガすることは、前記第２の結果を含む通信をユーザ装置に送信することを含む、請求項１２に記載のコンピュータプログラム製品。
【請求項２０】
システムであって、
１つ以上のデータプロセッサと、
命令を含む非一時的なコンピュータ可読記憶媒体とを備え、前記命令は、前記１つ以上のデータプロセッサ上で実行されると、前記１つ以上のデータプロセッサに以下の動作を実行させ、前記動作は、
ジョブを割り当てるための決定木を表すデータ構造を呼び出すことを含み、前記決定木は、複数の連続決定ノードを含み、ワーカーの累進選別に対応する反復決定を実行するように構成され、１つ以上の経路の各々が前記複数の連続決定ノードのうち各決定ノードに延長することは、前記ジョブを実行するためのワーカーリクエストの構成に関する中間決定または最終決定をトリガし、
前記決定木の経路を開始することを含み、前記経路は、前記ジョブに割り当てられる可能性がある複数のワーカーに関連付けられ、
前記経路が前記決定木の前記複数の連続決定ノードのうち第１の決定ノードに到達したことを検出することと、
第１セットの訓練データを用いて第１の機械学習モデルを訓練することによって生成された第１セットのノード固有学習パラメータを取得することとを含み、前記第１セットのノード固有学習パラメータは、非構造化データを構造化特徴データに変換する方法を定義し、
複数セットのワーカー関連非構造化データを呼び出すことを含み、前記複数セットのワーカー関連非構造化データの各々は、前記複数のワーカーのうち各ワーカーに対応し且つ非構造化データを含み、
前記複数セットのワーカー関連非構造化データを用いて、前記第１セットのノード固有学習パラメータを用いて構成された前記第１の機械学習モデルの１回以上の第１の反復を実行することを含み、前記第１の機械学習モデルの前記１回以上の第１の反復の実行は、複数セットのワーカー特徴データを含む第１の結果を生成し、前記複数のワーカーのうち各ワーカーに対応し且つ前記ワーカー関連非構造化データセットが前記ワーカーに対応する対応度を示す前記複数セットのワーカー特徴データの各々は、一組の特徴の各々を表し、前記複数セットのワーカー特徴データの各々は、構造化データであり、前記複数の特徴は、前記第１セットのノード固有学習パラメータに基づいて定義され、
前記複数セットのワーカー特徴データに基づいて、前記ジョブのために継続的に評価するための前記複数のワーカーの部分セットを特定することと、
前記経路が前記決定木の前記複数の連続決定ノードのうち第２の決定ノードに到達したことを検出することと、
第２セットの訓練データを用いて第２の機械学習モデルを訓練することによって生成された第２セットのノード固有学習パラメータを取得することとを含み、前記第２セットのノード固有学習パラメータは、構造化データを変換する方法を定義し、
前記複数セットのワーカー特徴データの部分セットを用いて、前記第２セットのノード固有学習パラメータを用いて構成された第２の機械学習モデルの１回以上の第２の反復を実行することを含み、前記複数セットのワーカー特徴データの前記部分セットの各々は、前記複数のワーカーの前記部分セットの各ワーカーに対応し、前記第２の機械学習モデルの前記１回以上の第２の反復の実行は、前記ジョブと前記複数のワーカーの少なくとも１つの前記部分セットの各ワーカーとの間の推定の絶対的な対応度または相対的な対応度を示す第２の結果を生成し、
前記第２の結果を表す通信動作をトリガすることを含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本願は、２０１７年９月２９日に出願された米国仮出願第６２／５６６０２６号の利益および優先権を主張する、２０１８年６月１３日に出願された米国出願第１６／００７６７７号の一部継続出願である。これらの出願の各々は、あらゆる目的のためにその全体が参照により本明細書に組み込まれる。
【背景技術】
【０００２】
背景
技術的進歩は、多くの種類の通信チャネルの利便性および複雑性を改善した。また、データ記憶およびネットワークの進歩は、記憶容量を増加している。これによって、より多くの量（および種類）のデータをデータソースに記憶することができ、将来に送信することができる。したがって、将来のいずれかの時間に多くの種類のデータを複数のデータチャネルの間に配信するようにデータソースを配置することができる。単一の配信ではなく、複数の関連コンテンツの配信を検討する場合、コンテンツを配信するための選択肢は、爆発的に増加する。多くの場合、コンテンツプロバイダーは、１つ以上の静的ルールを構成することによって、同じ通信チャネルを介して同じコンテンツを各データインタスターに無差別に提供する。異なるデータリクエストを受信するための通信仕様が異なる場合があるが、データリクエストに無差別に且つ矛盾なく応答するようにルールを構成することができる。この手法は、構成の簡素化および決定性操作を提供するが、データインジェスター全体の潜在的な変動に対応できず、リクエストを最適に処理することができない。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
いくつかの実施形態において、コンピュータ実施方法が提供される。データ構造にアクセスする。データ構造は、機械学習手法を用いて、個々の経路を動的に定義するように構成された通信決定木を表す。通信決定木を通る経路は、一連の通信仕様を示す。通信決定木は、複数の分岐ノードを含む。複数の分岐ノードの各分岐ノードは、所定の経路の方向を特定するように構成された動作ポイントに対応する。第１時間において、通信決定木を通る経路が複数の分岐ノードのうち第１の分岐ノードに到達したことが検出される。経路は、特定のユーザに関連付けられている。経路が第１の分岐ノードに到達したことの検出に応答して、機械学習技術を用いて第１のユーザデータを処理することによって生成された第１の学習データが取得される。第１のユーザデータは、複数の他のユーザのユーザ属性を含む。さらに、経路が第１の分岐ノードに到達したことの検出に応じて、特定のユーザに関連付けられた１つ以上の特定のユーザ属性が取得される。第１の学習データおよび１つ以上の特定のユーザ属性に基づいて１つ以上の第１の通信仕様が特定され、１つ以上の第１の通信仕様に従って、第１のコンテンツが特定のユーザに関連付けられたユーザ装置に送信される。第１の時間の後の第２の時間において、通信決定木を通る経路が複数の分岐ノードのうち第２の分岐ノードに到達したことが検出される。経路が第２の分岐ノードに到達したことの検出に応答して、機械学習技術を用いて第２のユーザデータを処理することによって生成された第２の学習データが取得される。第２のユーザデータは、第１のユーザデータに含まれない少なくとも一部のユーザ属性を含む。さらに、経路が第２の分岐ノードに到達したことの検出に応じて、第２の学習データおよび１つ以上の特定のユーザ属性の少なくとも一部に基づいて、１つ以上の第２の通信仕様が特定され、１つ以上の第２の通信仕様に従って、第２のコンテンツがユーザ装置に送信される。
【０００４】
いくつかの実施形態において、非一時的な機械可読記憶媒体に有形に具現化されたコンピュータプログラム製品が提供される。コンピュータプログラム製品は、本明細書に開示された１つ以上の方法の一部または全部の動作を１つ以上のデータプロセッサに実行させるように構成された命令を含むことができる。
【０００５】
いくつかの実施形態において、１つ以上のデータプロセッサと、１つ以上のデータプロセッサ上で実行されると、本明細書に開示された１つ以上の方法の一部または全部の動作を１つ以上のデータプロセッサに実行させる命令を含む非一時的なコンピュータ可読記憶媒体とを含むシステムが提供される。
【０００６】
以下、添付の図面を参照して、本発明の例示的な実施形態を詳細に説明する。
【図面の簡単な説明】
【０００７】
【図１】対話システムを示すブロック図である。
【図２】メール通信を生成するために使用されたテンプレートを示す図である。
【図３】アプリ通知通信を生成するために使用されたテンプレートを示す図である。
【図４】通信決定木の一例を示す図である。
【図５】ユーザ装置に対応し、通信決定木を通って延長する経路の一例を示す図である。
【図６】通信決定木を定義するための例示的なインターフェイスを示す図である。
【図７】切替アイコンの例示的なパラメータ定義インターフェイスを示す図である。
【図８】通信内の様々なコンテンツの表示にバイアスを与えるためのオプションを含む別の例示的なパラメータ定義インターフェイスを示す図である。
【図９】通信を送信するための様々な通信チャネルの使用にバイアスを与えるためのオプションを含む別の例示的なパラメータ定義インターフェイスを示す図である。
【図１０】本発明のいくつかの実施形態に従って、機械学習を用いて、通信決定木を通る経路の方向を指定するためのプロセスを示すフローチャートである。
【図１１】配置可能な視覚要素をサポートするインターフェイスを用いて、機械学習ベースの通信決定木を定義するためのプロセスを示すフローチャートである。
【図１２】本発明のいくつかの実施形態に従って、例示的な累進選別決定木を示す図である。
【図１３】本発明のいくつかの実施形態に従って、累進選別決定木の実装中に発生するデータ処理の例示的な表現を示す図である。
【図１４】本発明のいくつかの実施形態に従って、機械学習モデルを反復的に使用して、決定木を通る経路を前進させるプロセスを示すフローチャートである。
【発明を実施するための形態】
【０００８】
説明
いくつかの実施形態において、機械学習データを反復的に使用して、通信仕様を反復的に特定することを容易にするシステムおよび方法が提供される。より具体的には、複数のノードを含む通信決定木を生成する。各ノードは、例えば、検出されたイベントまたは分岐ノードに対応してもよい。分岐ノードは、通信仕様の決定に対応し、１つ以上の特定の通信仕様に対応する通信を示す複数の次のノードに連結される。通信決定木を通る個々の経路は、個々のユーザおよび／または１つ以上の特定のユーザ装置に対応してもよい。個々の経路は、複数のノードの特定の部分セットを通って延長することができる。部分セット内のノードは、ユーザによって開始された特定の動作および／または１つ以上の特定の装置のうち特定のユーザ装置上で開始された特定の動作、１つ以上の特定の装置のうち特定のユーザ装置に送信した通信の特性、および／または今後の通信の仕様に関する決定を示す。例えば、今後の通信の仕様は、送信時間、送信される装置、送信に使用される通信チャネルの種類、および／または送信されるコンテンツの種類を示すことができる。場合によって、自然言語処理を用いて、訓練セットに送信される１つ以上のコンテンツオブジェクトの各々におよび／または送信可能な１つ以上のコンテンツオブジェクトの各々に１つ以上のカテゴリを割り当てることができる。通信仕様は、送信されたコンテンツの特定のカテゴリを特定することができる。
【０００９】
ユーザおよび／または特定のユーザ装置に対応する現在データ、機械学習モデル、および機械学習モデルの１つ以上の学習パラメータに基づいて、各通信仕様を決定することができる。パラメータは、複数の他のユーザに関連し且つ複数の他のユーザの各ユーザの１つ以上の属性および／または複数のイベント（例えば、ユーザ始動動作またはユーザに送信した通信の特性）を示すユーザデータに基づいて、学習することができる。また、パラメータは、通信決定木内の特定のノードおよび／またはユーザによって開始された特定の動作に対応する（例えば、クライアントによって指定された）目標経路に基づいて、学習することができる。
【００１０】
複数の分岐ノードを含むように通信決定木を構成することができる。その結果、単一の経路に対して複数の通信仕様を決定することができる。場合によって、同じ種類の機械学習アルゴリズム（例えば、教師あり回帰アルゴリズム）を用いて、各決定を行う。しかしながら、各分岐ノードに異なるアルゴリズムを使用することもできる。これによって、分岐ノードは、例えば、各経路のために処理される入力の種類および／または経路に対応する入力を処理するために使用される学習パラメータに対して異なる。様々な場合において、（例えば、同じ目標ノードまたは異なる目標ノードの特定に基づいて）同じ変数または異なる変数を最適化するように、異なる分岐ノードのアルゴリズムを訓練することができる。分岐ノードがアルゴリズムによって処理される入力の種類に対して異なってもよく、特定のユーザのために処理される可能性のあるプロファイルデータの種類も異なってもよい（例えば、対話を監視することによって、プロファイルデータを経時的に累積することができる）。さらに、任意のノードに関連する学習データは、（継続および／または反復学習によって）経時的に変化する可能性がある。
【００１１】
一例として、ユーザに対応するプロファイルデータが少なくとも所定セットのフィールドの情報を含むことを検出すると、ユーザの経路を初期化することができる。プロファイルデータは、１つ以上のウェブサーバを用いて、ユーザに関連付けられた１つ以上のセッションから収集されてもよく、リモートデータソースから取得されてもよい。場合によって、ユーザ装置は、少なくとも一部のプロファイルデータを自動的に検出し、（例えば、通信に自動的に設定され、独特な装置識別子、ＭＡＣアドレス、ブラウザの種類、ブラウザのバージョン、オペレーティングシステムの種類、オペレーティングシステムのバージョン、装置の種類、装置の言語などを特定するためのヘッダ情報を介して）ウェブサーバに送信する。場合によって、通信は、ユーザ入力（例えば、ウェブフォームに入力されたテキスト、リンク選択およびページナビゲーション）を表すデータを含み、プロファイルデータとして記録されてもよい。
【００１２】
経路を初期化することは、通信決定木内の第１のノードを特定することを含むことができる。第１のノードは、第１の分岐ノードを含むことができる。第１の決定ノードは、複数のコンテンツオブジェクトのうち、メール通信でユーザ装置に送信されたコンテンツオブジェクトを特定する（例えば、ウェブサイトに関連する様々なグループのアイテムおよび／または情報を特定する）決定に対応してもよい。第１の決定ノードは、２日以内にメールを送信するタイミングに関する決定に対応してもよい。決定は、特定種類のユーザに対して、目標結果をもたらす可能性が最も高い種類のオブジェクトおよび／または通信時間を示す第１の学習データに基づいて行うことができる。例えば、目標結果は、ユーザがメール内のリンクをクリックすることによってウェブサイトのページを呼び出すこと、および／またはユーザが交換（例えば、ウェブサイトに示されたアイテムを購入すること）に対応する方法でウェブサイトと対話することを含むことができる。第１の学習データは、３つのコンテンツオブジェクトのうち、目標結果をより効果的にもたらすコンテンツオブジェクトに関する予測ファクタが、ユーザが（ラップトップまたはコンピュータに比べて）モバイル装置を最も頻繁に使用するか否か、ユーザの年齢、ユーザがクリックしたリンク上のコンテンツオブジェクトの種類に関する以前のメール操作指示を含むことを示すことができる。
【００１３】
メールが送信されると、経路は、次のイベントが検出されるまで、送信されたコンテンツを表すノードに延長することができる。次のイベントは、例えば、ウェブサイト内のリンクのアクティブ化を含み、ユーザがウェブサイト内の現在のセッションに参加していることを示すことができる。このようなイベントを検出すると、経路は、第２の決定ノードに延長し、リクエストされたウェブサイト上のウェブページを構成すること（例えば、動的コンテンツオブジェクトを含むか否かおよび／または様々なコンテンツオブジェクトをどのように配置するか）を決定することができる。この例では、第２の学習データは、特定のユーザに対して、同じ目標結果をもたらす可能性が最も高い構成を示している。例えば、第２の学習データは、４つの構成のうち、目標結果をより効果的にもたらす構成に関する予測ファクタが、ユーザが（ラップトップまたはコンピュータに比べて）モバイル装置を最も頻繁に使用するか否か、ブラウザの種類、ユーザ装置の現在位置、およびユーザ場所の現在時刻を含むことを示すことができる。（第２の決定ノードで行われた決定に従って構成された）ウェブページが送信されると、経路は、送信されたウェブページの構成を表すノードに延長することができる。様々なユーザ始動イベント、システム始動イベント、または外部イベント（例えば、前のイベントから所定時間の経過）を検出すると、経路は、延長し続けることができる。
【００１４】
この例では、目標結果は、複数の決定に亘って同様である。しかしながら、実行する動作の静的なワークフローを特定するの代わりにまたは実行する動作のユーザ定義シーケンスを決定するの代わりに、本明細書に開示された技術は、現在のプロファイルデータ、現在の学習データおよび現在のイベントの検出に基づいて、個々の動作に関する決定を行う。機械学習は、実行される断片的な動作を特定するように、特定の経路のライフサイクルの全体に亘って反復的に実行される。この方法は、（例えば、学習データおよび／またはプロファイルデータの拡張および／または進化を中間プロセスの決定に利用できるため）データを効率的に利用することによって、目標の達成を促進することができる。さらに、この方法は、（例えば、クライアントによって始動された）機械学習技術の定義および／または制約を変更することによって、（例えば、変更が既に開始されている経路に影響を与える可能性があるため）迅速な効果を得ることができる。例えば、クライアントは、目標を交換から、少なくともセッション期間においてユーザ装置をウェブサイトに保持するように変更することができる。様々な分岐ノードに関連する機械学習モデルのパラメータを変更し、すぐに有効にすることによって、その後ノードに到達する以前に開始された経路に影響を与えることができる。
【００１５】
通信（および／または通信決定木を通る方向）の決定は、匿名化データまたは部分匿名化データに基づくことができる。匿名化データまたは部分匿名化データのいずれかまたは両方は、１つ以上のプロバイダーまたはクライアントによって提供された匿名化データ、部分匿名化データまたは非匿名化データから構築することができる。例えば、リモートユーザデータ管理システムは、１つ以上のデータプロバイダーから、部分匿名化データまたは非匿名化データを受信し、データプライバシ規則に従って個々のレコードのフィールドを隠すまたは削除することができ、および／またはデータプライバシ規則に従って、ユーザ部分母集団（sub-population）のフィールド値を集計することができる。本明細書に記載のように、匿名化データまたは部分匿名化データは、一定の確率を超えて個々のデータ値を特定の人またはユーザに関連付けできないように、ＰＩＩを取り除いたデータおよび／または集約したデータである。したがって、匿名化データまたは部分匿名化データは、特定の人間を特定のユーザとして特定することまたは少なくとも一定の確率で特定の人間を特定のユーザとして特定することを防ぐために、十分なデータ値を有しないまたは隠している。例えば、匿名化データまたは部分匿名化データは、名前、メールアドレス、ＩＰアドレス、物理アドレスおよび／または電話番号をプロファイルデータに入れない場合がある。匿名化データまたは部分匿名化データは、特定の人口統計データ、例えば、年齢、都市、職業を含んでもよく、除外してもよい。場合によって、プライバシ規則、条例および法律に従って、匿名化データまたは部分匿名化データを収取することができ、一部のデータを処理することもできる。匿名化データまたは部分匿名化データは、個人を特定できる情報（ＰＩＩ）の流出を制限する様々なプライバシポリシーおよび法律に従って収集できるＩＰアドレス範囲、郵便番号、日付、以前のオンライン照会のカテゴリ、人種、性別、年齢、購入履歴および／または閲覧履歴などに基づいて、装置から収集された情報を含むことができる。
【００１６】
場合によって、匿名化データまたは部分匿名化データを用いて、個々の機械学習構成に関連する学習データ（例えば、１つ以上のパラメータ）を生成および／または更新することができる。このような訓練は、例えば、連絡先情報などのデータフィールドを利用または使用する必要がないため、データレコードからこれらのフィールドを除去することができる。別の例として、特定フィールドの値に基づいて１つ以上の部分母集団を生成し、その後、部分母集団の識別子を用いて当該フィールドの特定値を置換することができる。
【００１７】
場合によって、決定されている特定のユーザに対応するプロファイルデータは、匿名化データまたは部分匿名化データを含む。例えば、システムは、経路が分岐ノードに到達したことを検出することができ、（例えば、経路に関連する装置識別子または他の識別子を用いて）ユーザデータ管理システムからデータをリクエストすることができる。システムは、例えば、１つ以上の特定の非匿名化フィールド値、一般化された（例えば、カテゴリに割り当てられた）１つ以上のフィールド値、および／または削除されたフィールド値を含むプロファイルデータを返すことができる。非匿名化フィールド値が、（例えば、ウェブページに組み込まれたデータ収集機能を用いて収集することによっておよび／またはクライアントから送信することによって）決定されているクライアントによって提供されたときに、それ以外の場合（例えば、データ共有契約を介して）決定されているクライアントにアクセスできるときに、非匿名フィールドデータをプロファイルデータに含むことができる。また、システムは、フィールド値の間の関係を示す（例えば、経時的に学習および／または進化することができる）母集団データを返すことができる。この母集団データを用いて、欠損フィールドの値またはカテゴリを推定することができる。
【００１８】
図１は、対話システム１００のブロック図を示す。機械学習データプラットフォーム１０５は、１つ以上のクラウドサーバを含み、１つ以上のクライアントシステム１０５からユーザデータを受信するように構成することができる。ユーザデータは、（匿名化ユーザデータストア１１５に保存された）匿名化ユーザデータまたは部分匿名化ユーザデータおよび／または（クライアント利用できる安全なユーザデータストア１２０に保存された）クライアント利用できる安全なユーザデータを含むことができる。クライアント利用できる安全なユーザデータは、匿名化ユーザデータよりも低いレベルで匿名化されてもよく、または匿名化されなくてもよい。クライアント利用できる安全なユーザデータは、受信されると、クライアントの識別子に関連して安全に格納される。従って、他のクライアントは、このデータを呼び出すことができない。このデータは、マルチテナント型クラウドストレージシステムに保存することができる。よって、複数のクライアントは、中心場所にログインすることによって、１つのサーバまたは複数のサーバを呼び出すことができる。特定のデータへのアクセスは、クラウドストレージシステムに認証されたクライアントに従って制御される。匿名化ユーザデータまたは部分匿名化ユーザデータは、（例えば、クライアントが提供したデータおよび／またはクライアントに関連付けられたデータ共有契約に応じて）様々なクライアントに対して個別に構成されてもよく、個別に構成されなくてもよい。したがって、機械学習データプラットフォーム１０５のプロファイルデータポピュレータ１２２は、特定のクライアントのために、１人以上の個々のユーザに対応するプロファイルデータを生成することができ、個々のクライアントのために、プロファイルデータに含まれるフィールド値をカスタマイズすることができる。
【００１９】
場合によって、プロファイルデータポピュレータ１２２は、部分匿名化ユーザデータを用いて、クライアント利用できるユーザデータを補足することによって、プロファイルデータセットを強化することができる。これによって、特定のユーザのために、（クライアント固有学習データストア１３０に保存された）クライアント固有学習データを定義する（または集計する）ことができる。例えば、クライアントが利用できるデータのプロファイルデータを、匿名化ユーザデータまたは部分匿名化ユーザデータの１つ以上のデータセットにマッピングすることができる。これによって、機械学習分析により豊富なデータセットを使用することができる。重複するデータ（例えば、匿名化ユーザデータまたは部分匿名化ユーザデータに含まれるＩＰアドレス、購入時間、クライアントによって指定された擬似ランダムユーザ識別子）を用いて、マッピングを行うことができる。
【００２０】
機械学習モデルコンフィギュレータ１２３は、例えば、特定の目標結果、利用可能な訓練データ、１つ以上のクライアント指定制約、および／または通信決定木によっておよび／またはクライアントによって示された可能な動作に基づいて、所定の機械学習モデルを構成することができる。機械学習モデルを構成することは、モデルの特定のインスタンス（例えば、特定の分岐ノード、クライアントおよび／または期間に関連付けられたインスタンス）の１つ以上のパラメータを定義することを含む。
【００２１】
各パラメータは、（学習パラメータデータストア１２５に保存された）ユーザ属性間の関係および／または相関を示すことができる。パラメータは、第１のユーザ属性が第２のユーザ属性を推定する方法および／または度合いを示す重みまたは目標結果が発生したか否かおよび／または度合いに関する指示に対応する重みを含むことができる。重みは、離散値範囲または連続値範囲に沿って定義されてもよく、および／またはバイナリであってもよい。
【００２２】
一例として、パラメータは、属性セットのうち、特定種類の交換イベントの将来発生を推測できる属性を示すことができる。例えば、先月に「旅行」タグに関連するウェブページに３回以上アクセスすると、旅行鞄を購入すると推測されてもよい。別の例として、所定の日付に映画評論ウェブページを訪れると、後で映画のオンラインレンタルを購入すると推測されてもよい。間接的な関連性および傾向、例えば、ユーザの年齢と毎日オンラインの平均時間との間の逆相関を特定することを学習することができる。各パラメータは、関係の強度および／または信頼度に関連付けられてもよく、必要に応じて、収集されたデータポイントと下される結論との間の直接関連に関連付けられてもよい。各直接関連は、関連付けの開始時のデータが正確である確率および関連付け自体が正確である他の確率を含む。
【００２３】
必ずしも必要ではないが、クライアント利用できるプロファイルデータを用いて、構成を行うことによって、クライアント固有パラメータを生成することができる。クライアント固有パラメータは、例えば、匿名化プロファイルデータまたは部分匿名化プロファイルデータを用いて生成されたパラメータを修正したものである。
【００２４】
様々な機械学習技術を用いて、学習データを生成することができる。例えば、機械学習技術は、決定木学習、相関ルール学習、人工ニューラルネットワーク、深層学習、帰納論理プログラミング、サポートベクトルマシン、クラスタリング、ベイジアンネットワーク、強化学習、表現学習、類似度およびメトリック学習、スパース辞書学習、遺伝アルゴリズム、またはルールに基づく機械学習を使用することができる。場合によって、機械学習技術は、アンサンブル技術（ensemble technique）を含む。アンサンブル技術は、アンサンブル間の重みを学習して、様々な基礎技術（例えば、前述した２つ以上の技術）から生成された結果に適用する。アンサンブル間の重みは、例えば、基礎技術に関連する精度、速度および／またはリソース使用量に基づいて特定されてもよい。
【００２５】
（１つ以上のパラメータを特定するための）機械学習技術の訓練は、観察されている入力セット（例えば、マーケティングメールのコンテンツ、プロモーションのコンテンツおよび／またはウェブサイトの構成）と、対応する出力セット（例えば、対応するマーケティングメール、対応するプロモーションおよび／または対応するウェブサイト構成の結果、例えば、特定の交換イベントの有無）との間の関連を特定することを含むことができる。これらの観察結果を用いて、モデル化されている関係および／または傾向を特定することによって、事実情報に基づいて得られない事実情報候補（例えば、受信される次の推定入力または特定入力に基づく推定出力）を推定するという目的を達成することができる。各推定は、信頼度または確率を含み、一連の推定は、信頼度または確率の組み合せを含む。
【００２６】
したがって、機械学習モデルコンフィギュレータ１２３は、例えば、目標結果、クライアント固有プロファイルデータおよび／または機械学習技術に基づいて、特定のクライアントシステム１１０のモデルパラメータを特定することができる。必要に応じて、クライアント固有学習データは、基礎となるクライアント利用できるプロファイルデータを提供したクライアントシステムと共有されてもよい。クライアントシステム１１０は、１つ以上のウェブサイトおよび１つ以上のアプリをホストし、および／またはメールを送信するためのシステムを含むことができる。例えば、クライアントシステム１１０は、１つ以上のドメイン上のページに対するＨＴＴＰリクエストを受信および応答するためのウェブサーバ１３５と、メールをユーザのメールアドレスに配信するためのメールサーバ１４０とを含むことができる。クライアントシステム１１０は、追加的にまたは代替的に、ユーザ装置上で動作するアプリからリクエストを受信し、受信したリクエストに応答するためのアプリサーバ１４５を含むことができる。したがって、クライアントシステム１１０上の１つ以上のサーバは、１つ以上のユーザ装置１５０−１、１５０−２からのリクエストを検出し、および／または１つ以上のユーザ装置１５０−１、１５０−２にコンテンツを送信するように構成することができる。ユーザ装置１５０−１、１５０−２は、例えば、コンピュータ、スマートフォン、タブレットなどを含んでもよい。様々な状況において、単一のユーザ装置を単一のユーザまたは複数のユーザに関連付けることができる。さらに、単一のユーザを単一のユーザ装置または複数のユーザ装置に関連付けることができる。
【００２７】
ウェブサーバ１３５および／またはアプリサーバ１４５は、コンテンツライブラリ１５３からコンテンツ（例えば、ウェブページまたはアプリページ）を要求するためのリクエストを示す表示を、ユーザデータとしてクライアント管理ユーザデータストア１５０に保存することができる。保存されたデータは、リクエストに含まれた情報（例えば、装置識別子、ＩＰアドレス、リクエストされたウェブページ、ユーザ入力など）と共に、自動的に検出された情報（例えば、リクエスト時間）を含んでもよい。データの保存は、データを含むようにプロファイルを更新することを含むことができる。さらに、ウェブサーバ１３５、メールサーバ１４０および／またはアプリサーバ１４５は、（例えば、送信時間、ユーザ装置識別子、コンテンツ−オブジェクト識別子、および／または通信種類を特定することによって）特定のユーザ装置に配信されたコンテンツを示すデータを、クライアント管理ユーザデータストア１５０に格納することができる。
【００２８】
クライアントシステム１１０は、少なくとも一部ユーザデータをクライアント管理ユーザデータストア１５０から機械学習データプラットフォーム１０５に送信することができ、機械学習データプラットフォーム１０５は、そのデータをクライアント利用できる安全なユーザデータストア１２０に保存することができる。このようなデータは、クライアント固有学習データをリクエストする間に、一定の間隔で定期的に送信されてもよい。場合によって、クライアントシステム１１０は、ユーザデータを機械学習データプラットフォームに送信する前に、（例えば、少なくとも一部のフィールドの値を省くまたは隠すことによって）ユーザデータの一部または全てを少なくとも部分的に匿名化する。したがって、これらのデータは、匿名化ユーザデータまたは部分匿名化ユーザデータとしてプラットフォームに保存される。場合によって、データは、少なくとも部分的に匿名化されず、クライアント利用できる安全なユーザデータストア１２０に保存されるまたは機械学習データプラットフォーム１０５で少なくとも部分的に匿名化される。いくつかのデータセットに対して、匿名化データまたは部分匿名化データは、第三者から受信され、非匿名化データにもアクセスできないように、ＰＩＩを取り除いた後クライアントシステム１１０に保存される。いくつかの実施形態において、匿名化データまたは部分匿名化データは、ネイティブに匿名化または部分匿名化される。これらの実施形態において、ウェブサイトは、ウェブサイト上で埋め込まれたスクリプトを実行する。これらのスクリプトは、実行されると、ユーザによるウェブサイトのアクセスに関する匿名化データまたは部分匿名化データを収集する。スクリプトは、データクラウドに保存され、ユーザの個人情報を知らなくても収集することができる情報のみを収集する。これによって、一定の確率を超えてユーザＩＤを推測することができない。
【００２９】
クライアントシステム１１０は、機械学習データを機械学習データストア１５５に格納することができる。場合によって、機械学習データは、所定の経路の分岐ノードで行われた１つ以上の決定を示す表示、通信決定木および／または１つ以上のパラメータを用いて特定された１つ以上のコンテンツ仕様を含む。機械学習データは、機械学習プラットフォーム１０５からリクエストおよび受信することができ、および／または機械学習プラットフォーム１０５からのデータから導出することができる。例えば、場合によって、機械学習モデルコンフィギュレータ１２３は、クライアントのために生成されたおよび／またはクライアントに適用可能なパラメータをクライアントシステム１１０に送信することができる。別の例として、機械学習モデルインプリメンタ１５７は、特定のパラメータを用いて構成された機械学習モデルを特定のプロファイルデータに適用することによって、１つ以上の特定の通信仕様を特定し、プロファイルデータに対応するクライアント（および／または経路の次のノード）に対して行われる通信動作を定義することができる。機械学習モデルインプリメンタ１５７は、特定された通信動作および／または次のノードを示す表示を、経路、ユーザおよび／またはユーザ装置の識別子に関連して送信することができる。
【００３０】
次のノードおよび／または通信仕様を特定することは、特定のプロファイルデータおよび１つ以上の学習パラメータを用いて、（現在の分岐ノードに関連付けられた）機械学習モデルを実行することを含むことができる。結果は、例えば、様々なコンテンツ表示特性のうち、（例えば、閾値よりも）高い確率または最も高い確率で特定の目標結果（例えば、所望の交換）をもたらす特性を示すことができる。場合によって、分析は、最も高い確率で特定の交換結果をもたらす１つ以上のコンテンツ表示特性を特定することを含む。場合によって、分析は、特定の交換結果をもたらす確率と、様々なコンテンツ表示特性に関連する所定のコストメトリックとのバランスを保つ。
【００３１】
場合によって、（例えば、機械学習データプラットフォーム１０５またはクライアントシステム１１０において）パラメータを用いて機械学習モデルを実行することは、例えば、プロファイルデータおよびパラメータを用いて回帰分析を実行することによって、１つ以上の閾値と比較できる数値を生成することを含むことができる。１つ以上の閾値は、２つ以上の範囲（例えば、開放範囲または閉鎖範囲）を定義でき、各範囲は、特定の次のノードおよび／または通信動作に対応する。場合によって、パラメータを用いて機械学習モデルを実行することは、（例えば、差の計算またはコスト関数を使用したコストの計算を介して）少なくとも一部のプロファイルデータおよび少なくとも一部のパラメータを処理することによって、参照データ変数（例えば、単一値、ベクトル、行列、時系列）のセットの各変数と比較できる結果を生成することを含むことができる。各々の変数は、特定の次のノードおよび／または通信動作に関連付けられ、パラメータに少なくとも部分的に基づいて定義される。比較によって最も近い対応を示した参照データ変数に関連するノードまたは通信は、選択される。
【００３２】
動的コンテンツジェネレータ１４７は、選択された通信仕様に従って、コンテンツオブジェクトの提示をトリガすることができる。適切な命令を生成するために、動的コンテンツジェネレータ１４７は、まず、オブジェクトを送信するために使用される通信チャネル、送信されるオブジェクトの種類、送信されるコンテンツのバージョン、および／またはオブジェクトを送信する時間を特定する。特定は、例えば、機械学習モデルの実行結果、（例えば、１つ以上の選択を制限する可能性がある）機械学習モデルの構成、および／またはまたは１つ以上のパラメータに基づいて行われてもよい。
【００３３】
動的コンテンツジェネレータ１４７は、例えば、送信される通信の種類（例えば、メール、ＳＭＳメッセージ、ブラウザのポップアップウィンドウ、またはプッシュアプリアラート）を特定することができ、通信を送信するように、ウェブサーバ１３５、メールサーバ１４０および／またはアプリサーバ１４５のいずれに通知することができる。特定は、（例えば、機械学習の結果、パラメータ、および／または機械学習モデルの構成に基づいて）明示的に行うことができ、または（例えば、選択したコンテンツオブジェクトが特定種類を有することによって）暗黙的に行うことができる。
【００３４】
コンテンツオブジェクトを特定することは、既存のコンテンツオブジェクトからコンテンツオブジェクトを選択することを含んでもよく、または新しいコンテンツオブジェクトを生成することを含んでもよい。コンテンツオブジェクトは、例えば、ウェブページ、ウェブページ内のオブジェクト、画像、テキストメッセージ、メール、メールおよび／またはテキスト内のオブジェクトを含むことができる。場合によって、プロファイルデータを用いて構成された機械学習モデルを実行することによって得られた結果は、特定のコンテンツオブジェクトを特定する。場合によって、結果は、（例えば、特定のメタデータカテゴリを有する）コンテンツの特性を特定し、および／またはコンテンツを選択するための特定の技術を特定する。例えば、結果は、「ツール」を特徴としてコンテンツオブジェクトに加えること、および／または通信が４つの（未特定の）異なるカテゴリに対応する４つのコンテンツオブジェクトを含むことを示すことができる。この場合、動的コンテンツジェネレータ１４７は、例えば、機械学習の実行結果、パラメータ、および／または所定の設定によって示された選択技術を用いて、複数の可能なコンテンツオブジェクトからコンテンツオブジェクトを選択することができる。例えば、選択技術は、擬似ランダム選択技術、最近追加されたオブジェクトを特定する技術、複数の可能なコンテンツオブジェクトから（例えば、機械学習の結果に示された１つ以上の属性を有する）最も可能な交換オブジェクトを特定する技術を含むことができる。
【００３５】
場合によって、通信を送信する時間は、（例えば、機械学習結果、パラメータ、および／または機械学習モデルの構成に基づいて）明示的に特定される。例えば、現在時間で開始し、クライアントが指定した最大時間で終了する時間範囲を定義することができる。モデルは、時間範囲に規則的に分けられた複数の可能な送信時間を評価することができる。場合によって、各々の可能な送信時間は、コンテンツカテゴリまたは通信チャネルなどの他の可能な仕様と組み合わせて複数回考慮される。機械学習モデルの結果は、目標結果をもたらす確率が最も高い送信時間を特定することができる。特に、仕様の組み合わせを考慮する場合、送信時間は、最も高い確率に関連する時間の組み合わせを含むことができる。場合によって、機械学習の結果に関連付けられたユーザ装置から（例えば、所定のウェブサイトまたはアプリに対応する）コンテンツを要求する次のリクエストを受信することによって、または事前に定義された送信スケジュールに従って、通信を即座に送信する。
【００３６】
場合によって、（タスク中におよび／または機械学習モデル、機械学習構成、パラメータ、クライアント規則などを用いて）通信を送信するときにまたは通信を送信する前に、通信に対応する各仕様を特定する。したがって、通信および／またはその送信の全てまたは一部のクライアント制御構成は、通信を送信する前に実行することができる。場合によって、通信を送信した後に、（タスク中におよび／または機械学習モデル、機械学習構成、パラメータ、クライアント規則などを用いて）通信に対応する少なくとも１つの仕様を特定する。したがって、通信および／またはその送信の全てまたは一部のクライアント制御構成は、通信を送信した後に実行することができる。したがって、この送信後の設定は、通信の送信前には利用できなかった学習データおよび／またはプロファイルデータに基づくことができる。例えば、ユーザに対応する追加のプロファイルデータは、メールを送信した第１の時間と、メールを開いた第２の時間との間に利用可能になる。送信されたメールは、メールを開くときに実行するスクリプトを含むことができる。スクリプトは、レイアウトおよび／またはアプリケーション種類などの装置プロパティを特定するためのリクエストを発行させることができる。スクリプトは、これらのプロパティを、コンテンツを表示する特定のコンテンツの選択を指示するためのリクエストと共にサーバに渡すことができる。したがって、サーバは、特定の表示情報、現在のプロファイルデータおよび／または現在のパラメータに基づいて、コンテンツを選択しおよび／または１つ以上の表示構成を特定することができる。
【００３７】
追加的または代替的な例として、通信は、（例えば、ウェブブラウザで）開かれるとコンテンツを表示するページへの１つ以上の参照またはリンクを含むことができる。リンク先のページは、通信を生成する前にまたは通信を生成するときに、機械学習エンジンによって決定されたコンテンツを含むことができる。ページは、ページの表示を要求するためのクエストを検出したとき（例えば、スクリプトがリンクの実行を検出したとき）および／または（例えば、ページの読み込みの一部としてスクリプトの実行によって示すように）ページを生成または表示するときに選択されるまたは生成されるコンテンツを含むように構成することができる。場合によって、メール内のスクリプトは、メールが表示されているときまたはメールの表示がリクエストされるときのコンテンツ構成を特定する。場合によって、リンクされたページ上で実行するスクリプトは、コンテンツ構成を特定する。
【００３８】
一例として、クライアントシステムは、配達食品のオンライン購入を提供することができる。クライアントシステムは、特定のユーザが午後２時に特定のレストランのメニューを見たことを検出することができる。クライアントシステムは、ユーザのプロファイルデータからユーザ属性をクライアント管理ユーザデータとして取得することができる。クライアント固有学習データは、割引コードを含むメールが夕方にユーザに送信された場合、（例えば、他の種類の通信および他の時間に関連する低い可能性に比べて）ユーザがレストランから購入を行う可能性が７６％であることを示すことができる。７６％の可能性が割引を送信するための閾値６５％を超えているという判断に応答して、メールサーバ１４０は、メールをユーザ装置に送信する。このメールは、実行されると、レストランおよび割引を表示させるスクリプトを含む。ユーザは、翌日の午前１０時にメールを開く。コードが実行されると、クライアントシステムからレストランおよび割引をリクエストする。したがって、クライアントシステムは、最新の公開学習相関データを受信した。クライアントシステムは、学習データに基づいて構築された決定木に、時間、（現在勤務中の場合）ユーザの場所、および過去の購入情報を入力する。クライアントシステムは、（例えば、交換の可能性閾値を維持するために）割引が１０％であり、（例えば、交換の可能性を最大化するために）レストランがユーザの職場に近い惣菜屋であることを決定する。一方、ユーザが前夜にメールを開いた場合、異なるユーザ属性および学習データにより、（例えば、可能性を最大化するために）ユーザの家の近くにあるインド料理店から、（例えば、交換の可能性閾値を維持するための）１５％の割引が得られる。メールは、惣菜屋から注文するためのリンクを含む。ユーザがリンクをクリックすると、ウェブサーバは、表示するコンテンツ、具体的には推奨する食品を決定する。最新の公開学習相関データに基づいて、以前の選択が最近人気になったため（気候が暖かくなったため、人気になったと推定された）、スープおよび肉料理よりもサラダおよびサンドイッチを推奨すべきである。したがって、この例は、最新の学習データおよびユーザ属性に基づいて、特定のユーザのためにコンテンツを動的にカスタマイズすることを示している。
【００３９】
例えば、機械学習データプラットフォーム１０５は、（例えば、ワークフローの動作に応答して）ユーザ装置から受信した通信に基づいて、最新のクライアントデータを生成することができる。例えば、最新のクライアントデータは、受信した通信のヘッダまたはペイロードデータに基づいて生成された１つ以上の新しいフィールド、特定のイベントを検出したか否か（および検出時間）を示す表示、および／またはプロファイルを割り当てたワークフローの現在段階または最終段階を含むことができる。機械学習データプラットフォーム１０５は、最新のクライアントデータを（例えば、対応するプロファイル識別子と共に）クライアントシステム１１０に提供することができ、クライアントシステム１１０は、最新のデータをクライアント固有学習データストア１６５に保存することができる。必ずしも必要ではないが、クライアントシステム１１０は、最新のデータを基礎プロファイルと別々に保存する。
【００４０】
場合によって、機械学習データプラットフォームの一部または全部をクライアントシステム１１０に組み込むことができる。場合によって、クライアントシステム１１０は、通信決定木の反復中に機械学習データプラットフォームと通信する。例えば、クライアントシステム１１０（例えば、クライアントシステム１１０のウェブサーバ１３５またはアプリサーバ１４５）は、ユーザ装置から受信したウェブコンテンツまたはアプリコンテンツを要求するためのリクエストから、（例えば、ＵＲＬに含まれた）フラグを検出することができる。このフラグは、機械学習ベースのワークフローとの関連性を示す。次に、クライアントシステム１１０は、リクエストを機械学習モデルインプリメンタ１５７に通知することによって、経路を適切に更新することができる。
【００４１】
機械学習データプラットフォーム、クライアントシステム１１０、およびユーザ装置１５０−１、１５０−２は、例えばインターネット、ローカルエリアネットワークおよびワイドエリアネットワークを含み得るネットワーク１６０を介して、通信することができる。図示および説明された実施形態の様々な代替案も考えられる。例えば、クライアントシステム１１０は、一部または全部の機械学習を実行することができる。クライアントシステム１１０は、匿名化ユーザデータまたは部分匿名化ユーザデータを定期的に受信し、機械学習技術を用いて処理することができる。
【００４２】
通信決定木を使用および構成するための他の技術は、２０１８年６月１３日に出願された（「キャンバス上の連結された位置決め可能な要素に基づいて通信決定木を構成するための方法およびシステム」というタイトルを有する）米国出願第１６／００７７６２号および２０１８年６月１３日に出願された（「データ豊富化のために機械学習に基づいたデータの難読化解除処理」というタイトルを有する）米国出願第１６／００７７８７号に詳細に記載されている。これらの出願の各々は、あらゆる目的のためにその全体が参照により本明細書に組み込まれる。
【００４３】
図２および３は、表示プロセスを検出するときにまたは表示するときに部分的に構成される通信用のテンプレート２０２および３０２を構成するためのインターフェイス２００および３００を示す。構成は、モデルの現在の学習構成および現在のプロファイルデータを用いて、構成された機械学習モデルを実行することを含む。図２に示されたテンプレート２０２は、メール通信を生成するために使用されたテンプレートを含み、図３に示されたテンプレート３０２は、アプリ通知通信を生成するために使用されたテンプレートを含む。
【００４４】
テンプレート２０２は、静的テキスト（例えば、テキスト２０５）および対話特徴（例えば、ボタン２１０）を含む。テンプレート２０２は、テキスト２０５の上方に３つのアイテムを線状に配列する特定のレイアウトをさらに表す。また、テンプレート２０２は、メールの表示を要求するときにまたはメールを表示しているときに特定される動的コンポーネント（例えば、動的テキスト２１５および動的画像２２０）を含む。したがって、メール通信を送信するときに、静的コンポーネントは、（メールを表示するリクエストを検出するときに）現在のプロファイルデータの少なくとも一部をローカルに特定し、現在のプロファイルデータの少なくとも一部をリクエストし、動的コンポーネントの特定をリクエストし、（例えば、現在のプロファイルデータ、現在の匿名化データまたは部分匿名化データおよび／または現在の学習パラメータを用いて特定された）動的コンポーネントを受信または取得し、および／またはテンプレートと動的コンポーネントに基づいて完全なメールを生成するするように構成されたコードと共に送信されてもよい。その後、生成されたメールは、表示される。
【００４５】
テンプレート３０２は、静的レイアウトおよび複数の動的テキストコンポーネント（例えば、動的タイトル３１０）を含む。テンプレート３０２は、各動的テキストコンポーネントを動的に特定することを容易にするためのスクリプトと共に送信されるように構成されてもよい。（例えば、アプリを開くこと、通知アプリ要素をクリックすることに応じて）通知を表示するためのリクエストを検出すると、スクリプトは、例えば、現在のプロファイルデータの少なくとも一部をローカルに特定し、現在のプロファイルデータの少なくとも一部をリクエストし、動的テキストコンポーネントの特定をリクエストし、（例えば、現在のプロファイルデータ、現在の匿名化データまたは部分匿名化データおよび／または現在の学習パラメータを用いて特定された）動的テキストコンポーネントを受信または取得し、および／またはテンプレートおよび動的テキストコンポーネントに基づいて完全な通知を生成することができる。その後、生成されたメールを表示することができる。インターフェイス３００は、静的レイアウトおよび特定の動的テキストを含む動的に生成された通知３１５の例を示す。
【００４６】
図４は、通信決定木４００を示す。通信決定木４００は、各経路が開始する出発ノード４０５を含む。この例では、ユーザが２つの特定の動作を完了したこと（例えば、２つのウェブサイトセッションを初期化したこと、ウェブサイトから２つのアイテムを購入したこと、ウェブサイト上の少なくとも２つのウェブページをナビゲートしたこと）を検出すると、特定の経路を初期化することができる。
【００４７】
通信決定木４００は、３つの分岐ノード４１０、４１５および４２０を含む。各々の分岐ノードは、３つの異なる動作を表す３つのノードに連結するように分岐する。経路は、出発ノード４０５から第１の分岐ノード４１０に自動的に且つ即座に延長することができる。これによって、第１の決定をトリガする。具体的には、第１の決定は、ウェブサイト特徴のアラートを送信するために使用される通信チャネルを特定することを含む。アラートは、例えば、自動的に表示され、ウェブサイトに関連する製品または割引が（通常）利用可能であることを示す静的ヘッダを含むことができる。アラートは、通知を開くことを要求するためのリクエストを検出すると、第２の分岐ノード４１５で特定された（例えば、１つ以上の製品および／または割引を具体的に指定するための）動的コンテンツにさらに関連付けられてもよい。
【００４８】
第１の分岐ノード４１０は、メール通信チャネルを表す第１の動作ノード４２５ａ、ＳＭＳメッセージ通信チャネルを表す第２の動作ノード４２５ｂ、およびアプリベースの通信チャネル（この場合、通知は、ユーザ装置にインストールされたアプリにプッシュされるまたは当該アプリによってプッシュされる）を表す第３の動作ノード４２５ｃに連結される。
【００４９】
第１の決定は、１つ以上の第１のパラメータに基づいて構成された機械学習モデルを用いて、行うことができる。１つ以上の第１のパラメータは、匿名化および／または部分匿名化ユーザデータおよび／またはクライアント固有データに基づいて、動的に決定されてもよい。例えば、匿名化および／または部分匿名化ユーザデータは、（１つ以上のユーザ属性に基づいて定義された）様々なユーザ部分母集団ごとに、３種類の通信チャネルの各々を介して送信されたアラートが、（例えば、アラート内の追跡リンクに基づいて決定された）対応するウェブサイトのセッションを開始し、セッション中にトランザクションを完了するように、ユーザをトリガする効果を示すことができる。匿名化ユーザデータおよび／または部分匿名化ユーザデータは、多くの異なるウェブサイトおよび／または１つ以上の特定の特徴を有するウェブサイトに対応し得る。クライアント固有データは、特定のクライアントが関心のある特定のウェブサイトを追跡したデータを含むことができ、様々なアラートおよび結果を送信した各ユーザを具体的に特定するデータを含むことができる。したがって、クライアント固有データは、匿名化および／または部分匿名化データに比べていくつかの点でより豊富であるが、クライアント固有データで表されたユーザの数は、匿名化データおよび／または部分匿名化データで表されたユーザの数よりも少ない場合がある。さらに、クライアント固有データは、関連する属性の組み合わせを有しない場合がある。例えば、特定のクライアントが以前にアプリベースのアラートを使用しなかった場合、そのようなアラートの可能な影響を推定する機械学習モデルの精度が低下する可能性がある。
【００５０】
（第１のパラメータを用いて構成された）機械学習モデルは、経路に関連するプロファイルデータを用いて、ユーザへの通信チャネルを決定することができる。プロファイルデータは、（例えば、経路に関連付けられたユーザ装置からの以前のＨＴＭＬリクエストに関連するメタデータ、クッキー、および／または入力を用いて）クライアントによって収集されたプロファイルデータを含むことができる。プロファイルデータは、例えば、複数のウェブホストおよびクライアントからプロファイルデータを収集および管理するためのリモートユーザプロファイルデータストアから、要求および受信した他のプロファイルデータをさらに含むことができる。
【００５１】
通信チャネルを特定すると、経路は、対応する動作ノード（４２５ａ、４２５ｂまたは４２５ｃ）に延長する。次に、対応する通信チャネルを用いてアラートを送信する。アラートは、制限コンテンツを自動的に特定し、アラートを開くリクエストを検出すると、経路を第２分岐ノード４１０に延長するように構成することができる。次に、第２の分岐ノード４１０で決定を行い、アラートの本文に表示される特定のコンテンツを決定することができる。
【００５２】
したがって、第２の分岐ノード４１５は、ユーザがウェブサイト上で最後に閲覧した製品を特定するコンテンツを表す第１の通知コンテンツノード４３０ａ、（ユーザ全体が）先週にウェブサイト上で閲覧した４つの製品を特定するコンテンツを表す第２の通知コンテンツノード４３０ｂ、および割引の指定を含むコンテンツを表す第３の通知コンテンツノード４３０ｃに連結される。第２の決定は、１つ以上の第２のパラメータに基づいて構成された機械学習モデルを用いて行うことができる。したがって、いくつかの（全てではない）例において、（例えば、全ておよび／または一部の目標結果に考慮される様々なユーザ属性に与えられた重みを示す）特定の構成が異なる場合があるが、様々な分岐ノードで決定を行うために使用された一般的な機械学習モデルは、同じである。
【００５３】
１つ以上の第２のパラメータは、匿名化ユーザデータおよび／または部分匿名化ユーザデータおよび／またはクライアント固有データに基づいて動的に決定することができる。しかしながら、匿名化ユーザデータおよび／または部分匿名化ユーザデータおよび／またはクライアント固有データの各々は、第１の決定を行ってから変更される可能性がある。このことは、第１のパラメータと第２のパラメータとの間に差をもたらす。さらに、第２の分岐ノード４１５で実行される可能な動作は、第１の分岐ノード４１０で実行される可能な動作とは異なる。したがって、第１の構成と第２の構成とは、異なる可能性がある。さらに、第１の分岐ノードと第２の分岐ノードとの間に処理されるプロファイルデータは、異なる可能性がある。例えば、クライアント関連アプリケーションは、第１の分岐ノードで実行される処理と第２の分岐ノードで実行される処理との間に、ユーザ装置にインストールされた可能性がある。したがって、アプリケーションベースの通知は、例えば、第２の分岐ノードで通知されるが、第１の分岐ノードでは通知されない。
【００５４】
コンテンツを特定すると、経路は、対応するコンテンツノード（４３０ａ、４３０ｂまたは４３０ｃ）に延長する。対応するコンテンツは、ユーザ装置に送信され、ユーザ装置に表示される。
【００５５】
コンテンツは、ウェブサイト上のウェブページへの１つ以上の追跡リンクを含むことができる。追跡リンクがクリックされたことを検出すると、経路は、第３の分岐ノード４２０に延長することができる。その後、第３の分岐ノード４１５で決定を行い、リクエストされたウェブページ上で表示される特定のコンテンツを決定することができる。
【００５６】
したがって、第３の分岐ノード４２０は、異なるカテゴリに関連付けられた４つの代表的な製品を特定するためのコンテンツを表す第１のウェブページコンテンツノード４３５ａ、同じカテゴリに関連付けられた４つの代表的な製品を特定するためのコンテンツを表す第２のウェブページコンテンツノード４３５ｂ、および以前のウェブページ対話データに基づいて所定のユーザが関心すると推定された単一の製品を特定するためのコンテンツを表す第３のウェブページコンテンツノード４３５ｃに連結される。
【００５７】
第３の決定は、１つ以上の第３のパラメータに基づいて構成された機械学習モデルを用いて行うことができる。第３のパラメータは、匿名化ユーザデータ、部分匿名化ユーザデータおよび／またはクライアント固有データに対する一時的な変更および／または可能な動作の違いによって、第１のパラメータおよび／または第２のパラメータと異なる場合がある。さらに、第３の分岐ノード４２０で処理されるプロファイルデータは、（例えば、ユーザ装置から通信された新しいメタデータを検出したことおよび／またはプロファイルに対応する新しい情報をリモートシステムから受信したことによって）第１の分岐ノード４１０および／または第２の分岐ノード４１５で処理されるプロファイルデータとは異なる場合がある。
【００５８】
コンテンツを特定すると、経路は、対応するコンテンツノード（４３５ａ、４３５ｂまたは４３５ｃ）に延長する。対応するコンテンツは、ユーザ装置に送信され、ユーザ装置上で対応するウェブページに表示される。
【００５９】
図４に示された通信決定木４００において、各通信段階で（通知を送信するときに、通知の本文を表示するときに、およびウェブページを表示するときに）単一の決定を行うが、代わりに、機械学習モデルを用いて複数の決定を行うことができる。例えば、分岐ノード４１０において、（例えば、ある期間からまたは複数の可能な時間から時間を指定することによって）使用する通信チャネルおよび通知を送信する時間を決定することができる。別の例として、通信チャネルを決定する前または後に、送信時間を個別に決定することができる。したがって、複数の出力を生成するように機械学習モデルを構成することができ、複数の機械学習モデルは、複数の構成を有することができる（各機械学習モデルは、異なるパラメータおよび／またはハイパーパラメータに対応し、個別に訓練され、および／または異なる種類の出力を生成する）。
【００６０】
図５は、ユーザ装置に対応し、通信決定木４００を通って延長する経路５００の一例を示す。この場合、第１の分岐ノード４１０で行われた機械学習の結果は、メール通信チャネルが通知を送信するために使用されることを示す。したがって、経路５００は、第１の動作ノード４２５ａに延長する。その後、メール通知をユーザ装置に送信する。ユーザがメールを閲覧しようとしていることを示すメールコンテンツのリクエストが検出されたため、経路５００は、第２の分岐ノード４１５に延長し、割引の指定を含むコンテンツをメールに入れることを決定する。したがって、経路５００は、第３の通知コンテンツノード４３０ｃまで達し、対応するコンテンツをユーザ装置に送信する。
【００６１】
次いで、メール内の目標リンクに対応するウェブページを要求するリクエストが検出されると、経路５００は、第３の分岐ノード４２０まで達する。各々が異なるカテゴリに関連する４つの代表的な製品を特定するコンテンツをウェブページに入れることを示す機械学習結果が生成される。したがって、経路５００は、第１のメールコンテンツノード４３５ａまで達し、対応するウェブページコンテンツをユーザ装置に送信する。
【００６２】
図示の例において、第１の分岐ノード、第２の分岐ノードおよび第３の分岐ノードの決定は、初日の午後５時、２日目の午後１２時、および２日目の午後６時に行われたものとして示される。対応する動作は、すぐに実行される。なお、動作の時間は、機械学習モデルの実行、クライアント規則、または他の手法に従って、決定されてもよい。
【００６３】
さらに、機械学習ベースの決定を特定することは、１つ以上の追加の制約および／またはファクタを実装することを含むことができる。代替的または追加的に、機械学習ベースの決定は、１つ以上の追加の制約および／またはファクタに基づいて修正されてもよい。例えば、（あらゆる目的のために参照によりその全体が本明細書に組み込まれる）２０１５年７月１３日に出願された米国出願第１４／７９８２９３号は、本明細書に開示された機械学習技術に組み合わせることができる通信特性を動的に特定する追加の技術をさらに詳しく記載している。
【００６４】
いくつかの実施形態において、通信交換を部分的に規定するための一連の機械学習実装を容易に構成するためのキャンバスを利用するシステムおよび方法が提供される。より具体的には、個々の切替視覚要素および対応する複数の通信視覚要素を配置および連結することができるキャンバスを利用する。次に、配置および連結された複数の視覚要素に基づいて、通信決定木を生成することができる。キャンバスは、各通信視覚要素に関連する１つ以上の通信仕様を特定するように構成することができる。各切替視覚要素は、切替視覚要素に連結された複数の通信視覚要素から特定の通信視覚要素を選択するために使用され、訓練を通じて学習された特定のパラメータに関連する機械学習技術を表すことができる。キャンバスは、（例えば、各々または全ての視覚要素のために）機械学習の選択を指示できる（例えば、ユーザが開始したイベントまたは通信を表す）目標結果を特定するように構成することができる。したがって、機械学習技術を用いて選択された特定の通信視覚要素は、（例えば、通信決定木のイベント視覚要素として表すことができる）目標結果をもたらす可能性が比較的高い通信仕様に対応する。
【００６５】
機械学習モデルは、各切替視覚要素に対して定義することができる。機械学習モデルは、他の通信決定木に関する以前の経路を用いて訓練することができる（しかしながら、訓練されているモデル内の通信視覚要素によって表された通信仕様と類似または同様の通信仕様に対応する通信視覚要素を有する他の通信決定木を利用する）。例えば、特定の通信仕様を有する通信をトリガするようにルーティングされた経路の場合、これらの経路によって表された後続のユーザ始動イベント（および、クライアントが特定した目標結果の発生を表す経路の一部）を決定することによって、モデルを訓練することができる。追加的にまたは代替的に、生成された通信決定木に関連する経路が出現するときに、これらの経路を用いてモデルを訓練することができる。
【００６６】
場合によって、モデルは、以前のイベント（例えば、同じまたは異なる通信決定木を通る経路および／またはイベントシーケンスを示す他の表示）を反映するデータセットを用いて訓練することができ、新しいデータを用いて拡張することができる。新しいデータは、（例えば、新しく受信したフォーム入力またはメタデータ検出によって）最近利用可能になったものであってもよく、静的または推定可能に変化する変数型に対応してもよい。例えば、時間Ｘでユーザの年齢を特定した場合、時間Ｘ−３年のユーザの年齢を計算することができるが、長期間に亘って関心または場所の変化を遡及的に推定する場合、信頼性が低くなる。訓練は、新しいデータに表された様々な属性が特定のイベントの発生を予測できるか否かを判断することができる。
【００６７】
インターフェイスは、様々な機械学習段階に適用されるバイアスを示す表示を受け入れるように構成することができる。例えば、複数の特定の通信視覚要素に連結されている特定の切替要素に関して、クライアントは、第１の視覚要素に視覚的に関連付けられた制御スライダと対話することによって、第１の視覚要素に向かってまたは第１の視覚要素から離れて経路を選択することを示すことができる。対話に基づいて、機械学習モデルに与えるメタデータを設定することによって、対応するバイアスに影響を与えることができる。場合によって、メタデータは、学習パラメータ（重みなど）を調整または制約するために使用される未学習のハイパーパラメータに対応する。場合によって、メタデータを用いて、機械学習モデルによって生成された結果に適用される後処理調整を定義することができる。場合によって、（例えば、全ておよび／または特定の通信段階に関連する）要素によって表された通信仕様に対応する訓練データが比較的低い場合、クライアントまたはシステムは、特定の通信視覚要素にバイアスを与える。
【００６８】
場合によって、クライアントは、インターフェイスを用いて、通信決定木の構造を定義することができ、および／または各決定ノードで実行される機械学習モデルの１つ以上のハイパーパラメータを定義することができる。なお、機械学習モデルは、１つ以上のハイパーパラメータと１つ以上のパラメータに基づいて定義することができる。１つ以上のハイパーパラメータの各々は、機械学習モデルの訓練によって学習されていない変数を含み、１つ以上のパラメータは、機械学習モデルの訓練によって学習された１つ以上の変数を含む。したがって、例えば、クライアントが、個々の機械学習モデルの実行中に観察される分岐ノードの数、各分岐ノードに連結された各分岐に対応する動作、他のノード間の連結、または１つ以上の制約を示すハイパーパラメータを指定できるように、インターフェイスを構成することができる。
【００６９】
図６は、通信決定木を定義するための例示的なインターフェイス６００を示す。具体的には、インターフェイスは、様々なノードの表現を配置および連結できるキャンバス６０５を含む。インターフェイス６００は、キャンバス６０５上に配置され、特定の連続的な動作を表すように選択される複数のアイコンを含むことができる。複数のアイコンは、通信決定木の開始を表す開始アイコン６１０を含むことができる。開始アイコン６１０は、満たされると、通信決定木を通る経路を開始することを示す条件の定義を受け取ることができる構成ロジックに関連付けられる。
【００７０】
複数のアイコンは、終了アイコン６１５をさらに含むことができる。終了アイコン６１５に到達すると所定の経路が完了することを示すように、通信決定木を定義することができる。次に、クライアントは、開始アイコン６１０と終了アイコン６１５との間に配置された動作定義アイコンおよび／またはイベント検出アイコンを連結することによって、経路観測中に実行される様々な操作および評価を表すことができる。
【００７１】
複数のアイコンに含まれた動作定義アイコンは、切替アイコン６２０であってもよい。切替アイコン６２０は、分岐を選択するまたは「切り替える」ための分岐ノードに対応する。構成された機械学習モデルおよびプロファイルデータを用いて、分岐を選択することができる。多くの場合、切替アイコン６２０は、複数の可能な経路に連結される。可能な経路は、別のアイコン（例えば、通信アイコン、イベント検出アイコン、他の切替アイコンおよび／または終了アイコン）と交差してもよい。
【００７２】
通信アイコンの例として、ユーザ装置にメールを送信することを示すメールアイコン６２５と、ユーザ装置にテキストまたはＳＭＳメッセージを送信することを示すテキストメッセージアイコン６３０と、ユーザ装置にインストールされたアプリを介してアラートを表示することを示すアプリメッセージアイコン６３５とを含む。場合によって、可能な経路は、（通信アイコンを設けないことによって）動作を実行しないことを示す。図示のキャンバスにおいて、配置された切替アイコンは、３つの経路、すなわち、（例えば、異なるコンテンツおよび／または送信時間に関連する）２つのメール経路および１つの動作なし経路に連結されている。
【００７３】
複数のアイコンに含まれたイベント検出アイコンは、１つ以上の機械学習技術の目標結果に対応するイベントが検出されたことを表す目標検出アイコン６３７を含むことができる。目標検出アイコン６３７および／または別のイベント検出アイコンは、例えば、通知が開かれたこと、通知に含まれる目標リンクが実行されたこと、経路に関連付けられたユーザ装置がウェブサイトのセッションを開始したこと、ウェブサイト上で製品（例えば、任意の製品または特定の製品）を購入したこと、経路に対応する追加のプロファイル情報を提供したことを示すことができる。
【００７４】
インターフェイス６００は、複数のアイコンを指向性的に連結するための連結ツール６４０を含むことができる。各連結は、示された方向で経路が連結されたノードに亘って延長できるように通信決定木を構成したことを示すことができる。しかしながら、各連結に条件を付けることができる。したがって、経路は、条件が満たされた場合に、連結に亘って延長する。例えば、条件が満たされた場合に、（連結の一方端に連結された）分岐ノードで決定を行い、（連結の他方端に連結された）通信アイコンで表された動作を実行するように、連結を形成することができる。別の例として、経路関連ユーザ装置に関連する特定種類の対話を検出すると、条件が満たされるように条件を構成してもよい。
【００７５】
各動作定義アイコンは、経路がアイコンに到達したときに実行する動作を詳細に定義するための１つ以上の動作パラメータに関連することができる。例えば、パラメータ定義インターフェイスは、アイコンをクリックすると、インターフェイス６００の一部として表示されてもよい。また、パラメータ定義インターフェイスは、アイコンを右クリックおよび／またはダブルクリックすると、ポップアップウィンドウに開くように構成されてもよい。
【００７６】
場合によって、各動作定義アイコンおよび／またはイベント検出アイコンは、独立して実行できるウィジェットまたはコードに対応する。キャンバス６０５は、通信骨組（communication fabric）として動作することができる。したがって、１つのウィジェットによって生成された結果（例えば、切替アイコンに対応する機械学習モデルからの、特定の通信仕様に従って通信を送信することを示す表示）が、別のウィジェット（例えば、特定の通信仕様に対応する通信アイコンに対応するウィジェット）に利用されてもよい。したがって、キャンバス６０５は、ウィジェットの結果に応じて経路を延長することができ、通信交換の態様を調整することができる。
【００７７】
なお、図６には示されていないが、場合によって、キャンバス６０５上に複数の切替アイコン６２０を配置することができる。各切替アイコン６２０は、個別に構成および動作することができる機械学習モデルの個別のインスタンスに対応することができる。
【００７８】
図７は、切替アイコンの例示的なパラメータ定義インターフェイス７００を示す。パラメータ定義インターフェイス７００は、テキスト入力を受け入れるためのステージラベルフィールドを含む。テキスト入力は、インターフェイス内の関連アイコンの隣に表示され、通信決定木を説明する。テキスト入力を介して記述文を入力することもできる。記述文は、例えば、アイコンに関連するシングルクリックまたはダブルクリックの検出に応じて、インターフェイスに表示され、通信決定木を説明する。
【００７９】
パラメータ定義インターフェイス７００は、選択または動作仕様を特定するように構成された切替アイコンおよび／または機械学習モデルを実行するように構成された切替アイコンに対して、目標結果を定義するためのフィールドを含むことができる。例えば、プルダウンメニューは、追跡されており、目標結果として指定できる複数のイベントを特定することができる。目標結果は、ユーザ装置上で開始された動作、システムが発行した通知などを含む。例えば、目標結果は、ユーザ装置に提供された通信内のリンクがクリックされたこと、ユーザ装置に提供された通信が開かれたこと、通信によってユーザ装置に関連して購入（交換）を行ったこと、チャットセッションが開始されたこと、フォームが完了したことの検出を含むことができる。
【００８０】
パラメータ定義インターフェイス７００は、選択または動作仕様を特定するように構成された切替アイコンおよび／または機械学習モデルを実行するように構成された切替アイコンに対して、特定される可能な結果を示す１つ以上のフィールドをさらに含むことができる。例えば、インターフェイス７００は、アイコンから延長する３つの経路または分岐に対応するフィールドを含む。この場合、各経路に対して、別の動作定義アイコンのステージラベル名を指定する。場合によって、経路情報は、スイッチが通信決定木を定義するためのインターフェイス内の１つ以上の他のアイコンに連結されていることを検出すると、パラメータ定義インターフェイス７００において自動的に更新される。なお、パラメータ定義インターフェイス７００は、追加の経路を追加するまたは削除するためのオプションを含むこともできる。
【００８１】
場合によって、１つのパスをデフォルトパスとして指定することができる。例えば、機械学習モデルが、別のパスが少なくとも目標結果をもたらす高い確率を有することを予測しない限りまたは別のパスを通過する場合（例えば、後続予測の信頼度の改善を示す）閾値を有する追加のデータを生成することを予測しない限り、経路は、通常デフォルトパスにルーティングされる。場合によって、デフォルトパスの選択は、目標結果の発生確率に関連する信頼度に依存する（例えば、別のパスが少なくとも目標結果をもたらす６０％の確率を有し、その確率の信頼度が少なくとも５０％であると予測されない限り、デフォルトパスとして選択されない）。
【００８２】
場合によって、切替アイコンは、パスおよび／または次の動作（または動作の欠如）並びに次のアイコンまで経路を延長する（例えば、次の動作を実行する）時間を選択するように構成することができる。時間は、複数の時間および／または開放型連続時間または閉鎖型連続時間から選択することができる。図示された例において、パラメータ定義インターフェイス７００は、経路を次の動作定義アイコンに延長するための最大時間を含む。したがって、切替アイコンに関連して実行された決定ロジックが、別の期間がより有利であることを示す場合を除き、経路が切替アイコンに到達してから１日以内に、（目標結果を得る確率が高くなる、および／または訓練データが増加するため）経路を延長する必要がある。
【００８３】
機械学習技術および／または他の選択技術は、複数の可能なパスから、目標結果をもたらす確率が最も高いパスを特定するように構成することができる。場合によって、この技術は、ある程度のノイズおよび／または変動性をさらに導入する。したがって、必要に応じて、最適ではないパスを選択して、基礎モデルを継続的に訓練することができる。
【００８４】
場合によって、クライアントは、特定のパスの選択に対するバイアスを導入する必要がある。例えば、特定のパスは、別のパスに比べて（例えば、計算上および／または金銭上の）コストが高い場合がある。別の例として、特定のパスは、別のパスに比べて可用性が高い場合がある。さらに別の例として、クライアントは、後続のリソース割り当て決定を通知するために、所定のパスの有効性に関する情報を迅速に取得したい場合がある。
【００８５】
したがって、パラメータ定義インターフェイス７００は、個々のパスに対するバイアスを与えるための１つ以上のオプションを含むことができる。図示の例において、各パスにスライダーを提供する。スライダーを右側の「増加」側に配置すると、対応するパスに与えるバイアスを増加するようにパス選択を調整することができる。スライダーを左側の「制約」側に配置すると、対応するパスに与えるバイアスを減少するようにパス選択を調整することができる。このような増加および／または制限オプションに制限を課することができる。したがって、例えば、スライダーを最も左側の制約位置に移動しても、対応するパスの選択を妨げない。このような制限によって、機械学習モデルは、様々なオプションに関連するデータを収集し続け、学習を介して１つ以上のパラメータを変更し続けることができる。オプションが２つしかない場合、他方のオプションに対して、一方のオプションに与える相対的なバイアスを指定するための単一のインターフェイスコンポーネントを設けることができる。一方、３つ以上のオプションがある場合、増加／制約オプションは、オプションに応じてより直感的なコントロールを提供することができる。
【００８６】
図８は、通信内の様々なコンテンツの表示にバイアスを与えるためのオプションを含む別のパラメータ定義インターフェイス８００を示す。図示の例は、（各々が対応の製品を表す）９つのコンテンツアイテムを示している。各コンテンツアイテムの視覚表現に関連するスライダーが設けられる。スライダーを右側の「増加」側に配置すると、対応するコンテンツアイテムに与えるバイアスを増加するように、（例えば、異なるコンテンツを表す複数のパスの選択に対応するまたは通信チャネルを特定した後にコンテンツの選択に対応する）コンテンツ選択を調整することができる。スライダーを左側の「制約」側に配置すると、対応するアイテムに与えるバイアスを減少するように、コンテンツ選択を調整することができる。
【００８７】
図示の例において、スライダーを最も左側の位置に配置する場合、「提供しない」オプションが表示される。場合によって、［提供しない］オプションを選択しない場合、少なくとも第１のコンテンツアイテムが選択される。
【００８８】
スライダーによって示された相対的なバイアスおよび過去の通信カウントに基づいて、システムは、所定の日に個々のコンテンツアイテムを表示する回数を推定することができる。したがって、クライアントが１つ以上のスライダーを移動すると、インターフェイス８００は、スライダー位置に従って、（例えば、毎日に）個々のコンテンツアイテムを表示する回数に関する推定カウントを自動的に更新することができる。
【００８９】
理解すべきことは、異なる種類のバイアスをさらに指定し、与えることができることである。例えば、通信を送信する時間に関連してバイアスを示すように、１つ以上のスライダーを設けることができる。例えば、スライダーは、即時送信（および／または別の時間、例えば、完成時間における送信）に対する決定に与えるバイアスの度合いを示すことができる。
【００９０】
（例えば、通信チャネルの種類、特定種類のコンテンツの表示、または特定の時間における通信の送信に対する）バイアスを与えることは、例えば、１つまたは機械学習モデルの重みおよび／または１つ以上の閾値を変更することを含むことができる。場合によって、バイアスを与えることは、後処理（例えば、結果の一部を再配布して、通信属性の分布がバイアスに基づいて示されたターゲット分布と一致する程度を改善すること）を実行することを含む。
【００９１】
図９は、通信を送信するための様々な通信チャネルの使用にバイアスを与えるためのオプションを含むさらに別のパラメータ定義インターフェイス９００を示す。示された例において、３つの通信チャネル、すなわち、メール、アプリベースの通知、およびＳＭＳメッセージが示されている。各チャンネルの表現と視覚的に関連するスライダーが設けられる。スライダーを右側の「増加」側に配置すると、対応する種類のチャンネルの使用に与えるバイアスを増加するように、コンテンツ送信を調整することができる。スライダーを左側の「制約」側に配置すると、対応するチャンネルに与えるバイアスを減少するように、パス選択を調整することができる。
【００９２】
インターフェイス９００は、最近の期間に各チャネルを用いて送信した通信の数および今後の期間に各チャネルを用いて送信する予定の通信の数を示す時系列表現をさらに示している。現在の時刻は、垂直線で表される。通信は、（例えば、通信チャネルの選択に関連する同じまたは異なる機械学習モデルに含まれる可能性がある）複数の可能な送信時間からの選択に従って予定することができる。したがって、クライアントは、様々なチャネルに亘って予定された負荷を見ることができ、チャネルに対して与えられたバイアスを調整するか否かを決定することができる。
【００９３】
図１０は、本発明のいくつかの実施形態に従って、機械学習を用いて、通信決定木を通る経路の方向を指定するためのプロセス１０００を示すフローチャートである。プロセス１０００は、ブロック１００５から始まる。ブロック１００５において、通信決定木を表すデータ構造を呼び出す。通信決定木は、機械学習技術を用いて、一連の通信仕様を示すように、通信決定木を通る個々の経路を動的に定義するように構成することができる。より具体的には、通信決定木は、複数のノードを含むことができる。特定の経路を延長する必要を示すイベントの検出に応じて、特定の経路をノードの間に延長することができる。イベントは、例えば、ユーザイベントから特定種類の動作または通信を検出することを含むことができ、または経路管理システムまたは機械学習データプラットフォームで（ノードの特定に対応する）特定の決定を特定することができる。複数のノードは、複数の分岐ノードを含むことができる。複数の分岐ノードのうち各分岐ノードは、特定の経路の方向を特定するように構成された動作ポイント、または経路管理システムもしくは機械学習データプラットフォームで開始される特定の動作を特定するように構成された動作ポイントに対応してもよい。分岐ノードは、構成された機械学習モデルを用いて、方向または動作を特定するように構成することができる。
【００９４】
ブロック１０１０において、（特定のユーザおよび／または特定のユーザ装置に関連する）経路が通信決定木の分岐ノードに到達するように延長したことを検出する。特定のユーザは、（例えば、クライアントによって特定された１つ以上の所定の属性を有する）通信受信者または対象顧客層の対象グループに含まれた複数のユーザのうちいずれかである。通信受信者または対象顧客層の対象グループを静的に定義することができるが、静的に定義する必要がない。例えば、この対象グループは、様々な時刻で１つ以上の所定の属性の各々を表すプロファイルに対応する動的セットであってもよい。経路は、ユーザ装置で開始された特定種類のイベントを検出した結果（例えば、ユーザ装置がクライアント関連ウェブサイトのセッションに参加していることを示す通信、ユーザがプロフィールフォームを送信したことを示す通信）および／または特定のシステム始動動作を完了した結果に従って、分岐ノードに延長することができる。
【００９５】
ブロック１０１５において、他のユーザデータを処理することによって生成された学習データを取得する。他のユーザデータは、通信受信者および／または対象顧客層の対象グループの少なくとも一部に関連するデータに対応してもよい。学習データは、機械学習技術を訓練するときに生成されたデータを含んでもよい。訓練は、機械学習技術を用いて１つ以上の経路の方向を指定することとは別個の時間で実行されてもよく、または機械学習技術の訓練と利用は、同時に実行されてもよい。他のユーザデータは、同じまたは異なる通信決定木を通る１つ以上の経路に関連する経路データを含むことができる。例えば、他のユーザデータは、通信受信者の対象グループの少なくとも一部に対して、対応する経路が事前定義された（例えば、ワークフローの成功を示す）経路目標に指定された通信決定木の目標ノードに到達したことを示すことができる。目標ノードは、例えば、コンテンツとの対話、交換、または通信の応答を表すことができる。別の代替例または追加例として、他のユーザデータは、対象グループの少なくとも一部に対して、対応する経路が望ましくない結果（通信に応答しないこと、交換しないこと、またはコンテンツと対話しないこと）を表す特定のノードに到達したことを示すことができる。他のユーザデータは、１人以上のユーザに対応するプロファイルデータおよび／または属性を示すことができ、個々の経路に関連して検出および／または開始された様々なイベントを示すことができる。したがって、様々な状況が存在する場合、他のユーザデータは、（例えば、クライアントによって目標結果として指定された）特定種類のイベントを検出する確率を示すことができる。
【００９６】
ブロック１０２０において、（分岐ノードに延長したと検出された）経路に対応するユーザに関連する１つ以上のユーザ属性を取得する。ユーザ属性は、例えば、ユーザ装置の種類、ユーザ装置の地理位置、ユーザ装置に使用されているブラウザの種類、ユーザ装置に使用されているオペレーティングシステム、ユーザ装置と特定のウェブサイトとの対話の一部または全ての履歴、ユーザ装置と１つ以上の他のウェブサイトとの対話、ユーザ装置に関連するクッキーデータ、ユーザ装置で開かれる通知またはリンクの実行をもたらした通知の種類（メール、テキストメッセージおよび／またはアプリメッセージ）を示す履歴データを含むことができる。１つ以上の特定のユーザ属性を収集するおよび／またはローカルに取得するおよび／またはリモートソースからリクエストするおよび受信することができる。
【００９７】
ブロック１０２５において、学習データおよび１つ以上のユーザ属性に基づいて、１つ以上の通信仕様を特定する。例えば、学習データは、機械学習モデル（例えば、回帰モデル）の１つ以上のパラメータを含むことができる。また、１つ以上のハイパーパラメータに基づいて、機械学習モデルをさらに定義することができる。その後、パラメータ、ハイパーパラメータおよび／または基礎構造を用いて、ユーザ属性を処理するように機械学習モデルを構成することができる。モデルの実行結果は、複数の利用可能なオプションから、目標結果を達成する最も可能なオプションを特定することができる。複数の利用可能なオプションは、例えば、使用される異なる種類の通信チャネル、送信される異なる種類のコンテンツ、および／または異なる送信時間に対応することができる。場合によって、複数の利用可能なオプションは、１つ以上の他の通信仕様を共有する。
【００９８】
ブロック１０３０において、経路に関連するユーザ装置にコンテンツを送信する。コンテンツの送信は、１つ以上の通信仕様に従って実行される。
【００９９】
ブロック１０３５において、経路が通信決定木内の別の分岐ノードに到達するように延長したか否かを判断する。判断は、例えば、最後の通信を特定のユーザ（または対応する装置）に送信してから閾値時間が経過したか否かを判断すること、特定のユーザが当該特定のユーザ（または対応する装置）に送信された最後の通信と対話したか否かを判断すること、および／または目標コンテンツが特定のユーザ（または対応する装置）に送信された最後の通信の結果であるか否かに関係なく、特定のユーザが目標コンテンツと対話したか否かを判断することを含むことができる。場合によって、これらの２つ以上の判断の各々は、異なる分岐ノードの基準に関連している。ブロック１０３５は、経路が到達した他の分岐ノードを特定することを含むことができる。
【０１００】
経路が別の分岐ノードに到達するように延長したと判断された場合、プロセス１０００は、ブロック１０１５に戻り、ブロック１０１５〜１０３５を繰り返す。しかしながら、ブロック１０１５の反復実行は、（例えば、必ずしもではないが、少なくともいくつかのユーザデータと組み合わせて）他のユーザデータを処理することによって生成される異なる学習データを取得することを含む。異なる学習データは、（例えば、同じまたは異なる値および／または同じまたは異なる種類のパラメータおよび／またはハイパーパラメータを有する）同じまたは異なる構成の機械学習技術を用いて、生成されてもよい。ブロック１０２０の反復実行は、少なくとも１つの他のユーザ属性を取得することを含むことができる。ブロック１０２５の反復実行は、異なる学習データおよび少なくとも１つの他のユーザ属性に基づいて、（異なるセットの可能な通信仕様から）少なくとも１つの他の通信仕様を特定することを含むことができる。少なくとも１つの他の通信仕様は、同じまたは異なる種類の基礎モデルを用いて、特定することができる。ブロック１０３０の反復実行は、少なくとも１つの他の通信仕様に従って、他のコンテンツの送信をトリガすることを含むことができる。
【０１０１】
経路が別の分岐ノードに到達するように延長していないと判断された場合、プロセス１０００は、ブロック１０４０に進み、経路が完成したか否かを判断する。この判断は、経路の現在端が延長している連結端を有しない経路に連結しているか否かを判断することによって行うことができる。経路が完成したと判断された場合、経路の処理が終了する。経路が完成していないと判断された場合、プロセス１０００は、ブロック１０３５に戻り、（例えば、ユーザが開始した動作または外部イベントの結果によって）経路が別の分岐ノードに到達したか否かを判断することができる。
【０１０２】
したがって、プロセス１０００は、異なる構成の機械学習モデルを反復に用いて、通信交換の異なる段階に対応する仕様を特定することを容易にする。様々な段階において、モデルは、様々なプロファイルデータ（例えば、異なるフィールドの値または経時的に変化する値）および／または（例えば、モデルに関連する様々な入力および／または出力に基づいておよび／または一時的な変更に基づいて学習した）様々なモデルパラメータを使用することができる。機械学習モデルの反復実行は、個々のユーザの通信交換を動的に指示することができる。
【０１０３】
図１１は、配置可能な視覚要素をサポートするインターフェイスを用いて、機械学習ベースの通信決定木を定義するためのプロセス１１００を示すフローチャートである。プロセス１１００は、ブロック１１０５から始まる。ブロック１１０５において、複数の視覚要素と、要素を配置するためのキャンバスとを含むインターフェイスを利用する。複数の視覚要素の各々は、キャンバス上で配置することができる。例えば、ユーザが視覚要素の表現をクリックし、クリックを維持しながらカーソルをキャンバス上の別の位置にドラッグすることによって視覚要素を別の位置に配置することができるように、インターフェイスを構成することができる。別の例として、（例えば、クリックまたはダブルクリックによって）表現を選択し、カーソルが別の位置に移動したときに別の入力（例えば、別のクリックまたはダブルクリック）をすることによって、視覚要素を他の位置に配置することができる。
【０１０４】
複数の視覚要素は、複数の動作定義視覚要素を含むことができる。複数の動作定義視覚要素の各々は、特定の経路が動作定義視覚要素に延長したときに、実行される特定の動作であってもよい。複数の動作定義視覚要素は、機械学習技術を用いて通信仕様を特定するための（例えば、機械学習モデルを用いて行われた）決定動作を表す切替視覚要素を含むことができる。複数の動作定義視覚要素は、複数の通信視覚要素をさらに含むことができる。複数の通信視覚要素の各々は、特定の通信仕様（例えば、通信チャネルの種類、特定のコンテンツおよび送信時間）を表すことができる。また、複数の視覚要素は、配置された複数の視覚要素を指向性的に連結するように構成された連結視覚要素を含むことができる。配置された複数の視覚要素の各々は、複数の動作定義視覚要素のうち各動作定義視覚要素に対応してもよい。指向性連結は、配置された複数の視覚要素によって表された特定の動作が発生する順序を示すことができる。
【０１０５】
ブロック１１１０において、キャンバスの更新を検出する。更新されたキャンバスは、キャンバスの第１の位置に配置された切替視覚要素、キャンバスの第２の位置に配置された複数の通信視覚要素のうち第１の通信視覚要素、およびキャンバスの第３の位置に配置された複数の通信視覚要素のうち第２の通信視覚要素を含むことができる。第１の通信視覚要素は、特定の第１の通信仕様を表すことができ、第２の通信視覚要素は、特定の第２の通信仕様を表すことができる。
【０１０６】
更新されたキャンバスは、複数の連結視覚要素をさらに含むことができる。複数の連結視覚要素の各々は、連結視覚要素のインスタンスを含むことができる。複数の連結視覚要素のうち第１の連結は、切替視覚要素を第１の通信視覚要素に連結するように配置することができる。複数の連結視覚要素のうち第２の連結は、切替視覚要素を第２の通信視覚要素に連結するように配置することができる。複数の連結視覚要素は、切替視覚要素で機械学習技術を実行することによって得られた可能な結果が、特定の第１の通信仕様を有する通信伝送をトリガする第１の結果と、特定の第２の通信仕様を有する通信伝送をトリガする第２の結果とを含むことを示すことができる。
【０１０７】
ブロック１１１５において、更新されたキャンバスに基づいて、特定の通信決定木を定義する。ブロック１１２０において、特定のプロファイルデータに関連付けられた所定の経路が切替視覚要素によって表された特定の決定動作に延長したことを検出する。この検出に応答して、ブロック１１２５において、（学習パラメータデータおよび／または静的データを用いて構成された）機械学習技術を用いて特定のプロファイルデータを処理することによって、機械学習結果を生成する。学習パラメータデータは、他のユーザに関連する複数の経路および／または同じまたは異なる通信決定木に関連する複数の経路に基づいて、機械学習モデルの個別または継続的な訓練中に学習したデータを含むことができる。機械学習技術を用いて特定のプロファイルデータを処理することは、第１および第２の特定の通信仕様のうち、コンテンツ送信に適用した通信仕様を示すことができる。
【０１０８】
したがって、ブロック１１３０において、経路に関連するユーザ装置にコンテンツを送信する。送信は、機械学習結果に示された特定の第１および第２の通信仕様のうち１つに従って実行される。例えば、第１および第２の通信視覚要素は、異なる種類の通信チャネルに対応する場合がある。したがって、ブロック１１２５は、２種類の通信チャネルのうち１つを特定することを含んでもよく、コンテンツは、特定されたチャネルを介して送信されてもよい。
【０１０９】
したがって、キャンバスは、通信決定木の構成を定義することを容易にする。しかしながら、クライアントは、全てのユーザに適用される通信交換および／または１つ以上の決定性規則のみを含む通信交換を定義する必要はない。むしろ、インターフェイスは、一般に、様々な通信仕様の選択、通信イベントの順序および／または制約の特定をサポートする。機械学習技術を用いて、特定の通信仕様を自動的且つ動的に生成することができる。この方法によって、クライアントの優先順位に従うように通信システムを容易に構成することができると共に、通信システムを特定のユーザの特性、リソース負荷および最近の対話パターンなどに動的に適応させることができる。
【０１１０】
理解すべきことは、開示された技術の変形も考えられることである。例えば、分岐ノードは、機械学習モデルではない別の種類の人工知能モデルを用いて、通信に使用される通信仕様を選択することができる。別の例として、インターフェイスは、切替要素に対応する経路段階に使用される特定種類または通常種類の人工知能モデルの選択を受け入れるように構成することができる。さらに別の例として、インターフェイスは、（例えば、１つ以上の通信決定木、１つ以上の期間、および／または１つ以上のユーザ群セグメントに対応する点で）キャンバスに配置された１つ、複数または全ての切替要素に対応する機械学習モデルの訓練に使用されたデータを示すように構成することができる。
【０１１１】
理解すべきことは、本明細書に開示された技術を用いて、様々な種類の決定木をサポートすることができることである。例えば、場合によって、決定木内のノードおよび／またはキャンバス上の視覚要素は、ロジックに関連する要素に対応してもよい。これらのロジックは、所定の条件（例えば、特定種類の装置間通信を検出すること、クライアントに関連付けられていないアプリケーションが動作を実行したことを示すこと、特定の時間が経過したこと）が満たされているか否かを検出し、条件が満たされたことを検出する場合、特定の動作を実行する。ノードおよび／または視覚要素の部分セットに対して、条件付きの特定の動作は、プロファイルデータに基づいて機械学習モデルを実行することによって、連結された複数のノード（または視覚要素）からノード（または視覚要素）を選択することを含むことができる。これによって、選択したノード（または視覚要素）に関連する他の特定の動作を実行することができる。例えば、機械学習ベースの経路選択は、「If This Then That」環境に統合することができる。例えば、分岐は、通信仕様を特定するノードに分岐ノードを連結する代わりに、データを格納するために使用される様々なアプリケーションを特定することができる。したがって、決定フレームワークを確立することができ、人工知能アプレットおよび／またはプラグインは、１つ以上の他のアプレットと通信することができ、キャンバスを介して逆通信することができる。
【０１１２】
場合によって、技術は、特定のジョブを実行するためのリクエストを送信するワーカーを特定することに関連し得る。この技術は、追加的にまたは代替的に、例えばクエリプロセスに参加するリクエストを送信するワーカーおよび／または（例えば、特定のジョブを実行するおよび／またはクエリプロセスに参加する）１つ以上のリクエストの構成を特定することを含むことができる。
【０１１３】
場合によって、決定木を通って進行する反復に応じて、特定を行うことができる。決定木は、各決定ノードに有限の決定および／または一貫した可能な決定を含む必要がない。例えば、決定木は、累進選別決定木を含むことによって、２つ以上の決定ノードの各々において複数のワーカーを反復的に削減することができる。可能な決定の数は、特定の決定に応じて削減された全ての可能なワーカーの数に対応してもよい。必ずしも必要ではないが、特定の決定ノードは、削減された複数のワーカーに含まれたワーカーの数を制約または定義すること（例えば、複数のワーカーを５人のワーカーを含む部分セットに削減すること、複数のワーカーを８０％に削減すること、または複数のワーカーを２〜９人のワーカーを含む部分セットに削減すること）ができる。決定木の最終出力は、例えば、単一のワーカー、一定数のワーカー、および／または数値的に制約しないワーカーの特定を含む。
【０１１４】
決定木は、例えば、１つ以上のワーカーから受信した応答を反映することができる１つ以上のチャンスノードを含むことができる。例えば、決定ノードの実行に従って、ワーカーにリクエストを送信して、応答する（または応答しない）ことは、ワーカーがリクエストを受け入れたか否かを示すことがある。場合によって、ワーカーが（例えば、所定の期間内）リクエストを拒否するおよび／または受け入れない場合、そのワーカーは、現在検討中のワーカーのプールから除外される。
【０１１５】
いくつかの例において、決定木は、ジョブオファー（例えば、特定の職位および／または職業および／または特定の雇用者に対応する雇用を受け入れる通知）に対応する決定を表す。ジョブオファーは、ジョブ、理想的な候補者、決定のタイムライン、給与、場所などを説明する１つ以上のドキュメント、ファイルまたはデータセットに関連する。各ワーカーは、１つ以上の特定のジョブ、１つ以上の特定種類のジョブおよび／または全てのジョブを申請するための履歴書および／または申請を提出した人に対応する識別子を含むことができる。１つ以上の第１の決定ノードは、雇用者、採用担当者などがクエリプロセス（例えば、対面面接、電話面接またはウェブ面接）に招待するワーカーに関する決定に対応する。１つ以上の第２の決定ノードは、ジョブオファー（例えば、ジョブのリクエスト）を与えるワーカーに関する決定に対応する。１つ以上の第３の決定ノードは、ジョブを実行するためのリクエスト構成（例えば、給与、休暇、場所、および／またはジョブオファーの他の詳細）を特定することに対応する。特定の例として、第１の決定ノードは、ジョブに関する面接を提供する確率に対応する全てのワーカーのランキングを出力するように構成することができ、第２の決定ノードは、ジョブを提供する確率に対応する全て（またはその一部）のワーカーのランキングを出力するように構成することができる。別の特定の例として、第１の決定ノードは、ワーカーが内定通知を受け入れる（可能なオファー構成にもかかわらずジョブオファーを受け入れない）可能性に対応する出力を生成するように構成することができ、第２の決定ノードは、ワーカーの関心を引き付けるために必要な内容（給与、ボーナス、および／または報酬を定義するための詳細）を生成するように構成することができる。決定ノードの出力は、同時にまたは別々の時間に提示または送信することができる。
【０１１６】
理解すべきことは、必要ではないが、決定は、所定の経路の進行に応じて、各決定ノードで自動的に行うことができることである。例えば、全て（またはその一部）のワーカーを特定の数に選別するのではなく、（例えば、機械学習モデルの実行に依存する）自動処理は、全てのワーカーのランキングおよび／または各ワーカーのスコアを出力することができる。出力を（例えば、ユーザ装置に）提示および／または送信することによって、ユーザは、実際の選別および／または選択を示す決定を容易にすることができる。（例えば、ポータルインターフェイスに提供されたユーザ入力に応じて）選別および／または選択を伝達することによって、決定木の経路をさらに調整することができる。
【０１１７】
選別、ランキングおよび／またはスコアは、１つ以上の最適変数に基づいて行うことができる。１つ以上の最適変数は、決定木内の複数の決定または全ての決定に一貫して使用されてもよく、各決定ノードに対して具体的に定義されてもよい（例えば、一部または全ての決定ノードに対して異なってもよい）。最適変数は、ワーカーによって行われた決定（例えば、ワーカーがクエリプロセスに参加するリクエストを受け入れる確率および／またはワーカーがジョブを実行するリクエストを受け入れる確率）に対応してもよく、次のリクエストに関する決定（クエリプロセスに参加するリクエストを送信する確率および／またはジョブを実行するリクエストを送信する確率）に対応してもよく、および／または能力（例えば、ワーカーが所定の時間間隔においてジョブを実行し続ける確率、第三者によるワーカー能力の高い評価を達成する確率、および／または職務業績に基づいて高い報酬またはボーナスを確保する確率）に対応してもよい。
【０１１８】
いくつかの例において、ワーカー（例えば、初期セットのワーカーから選別された部分セット）のランキングは、能力データに基づいて行われる。例えば、ワーカーの属性および能力データを含む訓練データに基づいて、機械学習モデルを訓練することができる。したがって、（例えば、初期セットのワーカーから選別された部分セット内の）複数のワーカーの各々の属性およびジョブデータをモデルに入力することができる。出力は、複数のワーカーの各々の推定能力評価（例えば、ワーカーをジョブに割り当てる場合の能力の推定評価に対応する推定能力）に基づいて、複数のワーカーのランキングを示すことができる。出力は、例えば、数値ランキング（例えば、各ワーカーに割り当てる番号）、順序（例えば、ワーカーの特定の順序）、および各ワーカーの数値スコアまたはカテゴリスコア（例えば、これらのスコアに基づいて、ワーカーを順番付けできる）を含むことができる。モデルを訓練することによって、例えば、様々なワーカーの属性を推定能力に関連付ける１つ以上の重みを学習することができる。場合によって、ワーカーの属性に加えてジョブの仕様に基づいて能力の推定を調整するように、モデルを訓練することができる。
【０１１９】
モデルを訓練するために使用された能力データは、例えば、数値データ、カテゴリデータ、および／またはテキストデータを含むことができる。場合によって、能力データは、スケールに沿ったメトリックを含むことができ、および／または能力データを処理することによってスケールに沿ったメトリックを生成することができる。能力データは、１つ以上の時間で（例えば、毎年などの定期時間で、プルリクエストまたはプッシュレポートに応じて）、１人または複数のジョブ所有者（例えば、雇用主または面接官）から受信することができる。訓練データは、能力を評価しているジョブをワーカーに割り当てる時点（またはほぼその時点）のワーカーの属性および／またはワーカーの現在時間（例えば、能力を評価している時間に関して現在時間）の属性を含むことができる。特定時間の属性は、特定時間にワーカーが使用できる仕様データセットに基づいて確認できる。場合によって、保存された仕様データセットは、訓練に使用する属性を引き出す時間の経過に基づいて更新することができる。例えば、仕様データセットが年数−経験属性を含み、その属性が時刻ｔ−ｘに最初に保存されまたは最後に更新された場合、（例えば、ワーカーがｘ時間に関連するジョブを実行していると仮定するときに）属性にｘを追加することによって、属性を更新することができる。場合によって、１つ以上の関連するワーカー属性が所定の期間内に更新された場合に限り、能力データは、訓練データセットに含まれる。
【０１２０】
図１２は、本発明のいくつかの実施形態に従って、例示的な累進選別決定木１２００を示す図である。決定木は、特定のジョブに関連する複数のワーカーを評価することができる。場合によって、評価は、（各々が特定のワーカーを表すおよび／または特定のワーカーに対応する）複数のワーカーファイルおよび／または（例えば、ジョブおよび／またはジョブオファーを表す）ジョブファイルに対する評価を含む。ワーカーファイルは、ワーカー仕様データ構造（例えば、履歴書データ）を表すまたは含むことができる。ジョブファイルは、ジョブ仕様データ構造（例えば、ジョブ掲示データ）を表すまたは含むことができる。
【０１２１】
決定ノード１２０５において、ワーカーセットに含まれるワーカーを決定する。この決定は、複数のワーカーに対応する複数のファイルまたはデータ表現と、ジョブに対応するファイルまたはデータ表現との評価に基づいて行うことができる。具体的は、（ワーカーまたはジョブに対応する）各ファイルまたはデータ表現を処理して、特徴データセットに変換することができる。例えば、特徴データセットは、各要素で値を含む配列、行列またはベクトルを含むことができる。値は、対応するファイルまたはデータ表現が特定の特徴と一致する、特定の特徴を特定するまたは特定の特徴に対応する度合いを表すことができる。
【０１２２】
場合によって、各特徴は、ワードスペース内の特定のスペースであると定義される。簡単な例として、特徴は、（例えば、同義語および／または他の対応する単語を含むことができる）単語のクラスタを表すことができ、（必須ではないが）各単語に重みを割り当てることができる。別の例として、特徴は、分布を表すことができる。単語は、例えば、他の単語と意味上の類似性、および／または１つ以上の他の単語と同様の文書、ファイル、段落、フィールド値および／または文内で発生する確率に基づいて、多次元のワードスペースの全体に配置することができる。分布は、例えば、１つの次元、複数の次元または全ての次元の各々の中心または重心および重み（および／または歪み）に従って定義することができる。
【０１２３】
特徴データセットは、非構造化データ（例えば、文字数または単語数の点で可変長を有する複数の単語）を含むことができる仕様データ構造からのデータを用いて生成することができる。このデータを処理することによって、さらに処理される個別の単語を特定することができる。例えば、さらなる処理は、（例えば、「ｉｎｇ」、「ｅｄ」などの語尾を削除することによって）各単語を語幹に変換することを含むことができる。さらに、様々な単語（例えば、ストップワード、前置詞および連結詞など）を単語のセットから削除することができる。
【０１２４】
（例えば、処理された）単語セットを機械学習モデルまたは他の人工知能モデルに入力することによって、特徴データセットを特定することができる。一例として、ニューラルネットワーク言語モデルを含む機械学習モデルを用いて、特徴データセットを計算することができる。場合によって、対応するワーカー仕様データ構造内の単語の相対的な順序は、特徴の割り当てに影響を与える。機械学習モデルの例示的な種類は、２０１４年、中国北京に行われた第３１回機械学習に関する国際会議の会報、ＪＭＬＲ：Ｗ＆ＣＰ第３２巻に掲載されたLe, Quocによる論文「文と文書の分散表現」に開示されたものを含む。当該論文は、https://cs.stanford.edu/~quocle/paragraph_vector.pdfから入手可能であり、あらゆる目的のためにその全体が参照により本明細書に組み込まれる。例えば、doc2vecを用いて、単語のセットを含むテキスト入力を特徴データセットに変換することができる。
【０１２５】
別の例として、特徴の値は、例えば、特徴の特定のスペースに基づいて処理された単語セット内の各単語の重みを生成し、重みを平均することによって計算することができる。さらに別の例として、特徴の値は、仕様データ構造からのデータ内の特徴に関連する単語のグループの出現回数をカウントすること（およびこのカウントを他のカウントまたはデータ内の単語の総数に基づいて正規化することによって）によって計算できる。
【０１２６】
（例えば、個々のワーカーまたは個々のジョブの）個々の特徴データセットを保存することができる。各特徴データセットは、ワーカーまたはジョブの識別子および／または他の情報（例えば、対応する仕様データ構造からの１つ以上のキーと値のペア、対応する仕様データ構造からの他の情報、対応する仕様データ構造からの生データ）に関連して保存することができる。場合によって、特徴データセットおよび関連情報は、Solrデータベースに保存することができる。
【０１２７】
ワーカーセットに含まれるワーカーを決定することは、（例えば、複数のワーカーに含まれる）各ワーカーの特徴データセットをジョブの特徴データセットと比較すること、および比較に基づいて、複数のワーカーの部分セットを選択することを含むことができる。複数のワーカーは、例えば、（例えば、仕様データ構造の提出に応じて）ジョブを受け入れるた可能性があると特定されたワーカーを含むことができる。複数のワーカーは、動的であってもよい。すなわち、（例えば、ワーカーにジョブの割り当てまたは削除リクエストの受信に応答して）複数のワーカーからワーカーを動的に削除することができ、および／または（例えば、新しいワーカー仕様データ構造の受信に応じて）複数のワーカーからワーカーを動的に追加することができる。
【０１２８】
ワーカーの特徴データセットとジョブの特徴データセットとの間の比較の実行は、特徴データセットに基づいて比較メトリックを生成することを含むことができる。メトリックは、例えば、角度、点乗積および相関係数などを含むことができる。ワーカーの部分セットは、絶対閾値または相対閾値を超える点乗積または相関係数（または他の比較メトリック）に関連するワーカーを含むものとして定義することができる。相対閾値は、特定の数または特定の割合のワーカーを含む部分セットを特定するように構成することができる。
【０１２９】
決定ノード１２１０において、機械学習モデル、特徴データセットおよび追加情報の反復によって、複数のワーカーのランキングを付ける。換言すれば、機械学習モデルは、ワーカー特徴データセット、ジョブ特徴データセットおよび追加情報に対応する入力を処理するように実行することができる。追加情報は、（例えば、経験年数、教育レベルなどを表すまたは示す）ワーカー仕様データセットからの１つ以上のキーと値のペアを含むことができる。場合によって、追加情報は、追加的にまたは代替的に、ジョブ仕様データセットからの１つ以上のキーと値のペアを含むことができる。
【０１３０】
したがって、場合によって、初期段階に使用された機械学習モデルは、機械学習モデルによって後期段階に受信および／または処理されるワーカーデータの一部を受信および／または処理しない。例えば、後期段階の機械学習モデルは、様々なワーカーの１つ以上のキーと値のペアを受信および／または処理するが、初期段階の機械学習モデルは、様々なワーカーの１つ以上のキーと値のペアを受信および／または処理しない。逆の場合も同様である。例えば、初期段階のマシンは、未加工テキストを受信および／または処理するが、後期段階の機械学習モデルは、未加工テキストではなく、未加工テキストを処理したものを受信および／または処理する。
【０１３１】
決定木の反復の異なる段階において異なる種類の機械学習モデル、異なる種類の入力および／または異なる最適変数を使用することは、技術的な利点を有する。場合によって、異なる種類の入力を使用することによって、効率的な処理を容易にすることができる。例えば、後期段階において元のデータの代わりに処理したワーカーデータを使用することによって、処理を繰り返すことなく、有用な（または潜在的に有用な）情報を強調または選択するために実行できる過去のデータ処理および学習を利用することができる。また、初期段階の処理は、（必要ではないが）より大きなデータセットおよび／またはより多様なデータセットから学習することができるため、後期段階の学習よりも初期段階の学習に依存する場合、学習された次元削減処理は、よりロバストである。
【０１３２】
場合によって、後期段階でいくつかのデータを選択的に使用することによって、効率的な処理およびリソース消費を促進しながら、豊富なワーカーデータセットを利用することができる。例えば、巨大なワーカー集団は、数万または数百万のキーと値のペアに関連する場合がある。キーと値のペアの各追加カテゴリを検討する場合、可能なワーカー属性のスペースの大きさは、急激に増加する。一方、可能なワーカープールのサイズは、段階的に減少する可能性もあるため、後期段階において１つ以上のキーと値のペアを含むことによる絶対的な影響は、初期段階よりも小さくなる。換言すれば、場合によって、初期段階の計算を後期段階の計算に比べて比較的単純に設計することによって、コンピュータでこれらの手順を実行する効率性と実用可能性を改善することができる。
【０１３３】
機械学習モデルは、（ジョブ特徴データセットの参照ジョブ仕様データ構造が与えられた場合）様々な入力のランキングを出力するように構成されたモデルを含むことができる。例えば、機械学習モデルは、ランキング学習アルゴリズムを使用することができる。
【０１３４】
教師あり学習、半教師あり学習、または強化学習を使用するように機械学習モデルを実装することができる。一例として、機械学習モデルは、（xgboost実装を使用することによって）LambdaRankを使用することができる。様々なワーカーデータ（例えば、ワーカー仕様データ構造）が様々なジョブデータ（例えば、ジョブ仕様データ構造）に対応する程度を示す通信を用いて、機械学習モデルを訓練することができる。なお、個々のワーカーのランキングを出力しない他の種類の機械学習モデルを使用することもできる。例えば、機械学習モデルは、複数のワーカーの一部または全てに対して、ワーカーデータ（例えば、ワーカー特徴データセットおよび／またはワーカーに関連する追加情報）とジョブデータ（例えば、ジョブ特徴データセットおよび／またはジョブに関連する追加情報）との間の一致度を表す一致スコアを示す出力を生成するように構成することができる。
【０１３５】
場合によって、機械学習モデルの実行出力をさらに処理することができる。例えば、さらに他の処理は、所定のランキング閾値よりも低いランキングに関連するワーカーの部分セットを特定すること、および／または所定のスコア閾値よりも高い一致スコアに関連するワーカーの部分セットを特定することを含むことができる。
【０１３６】
決定ノード１２１５において、複数のワーカーの部分セットを決定する。この決定は、決定ノード１２１０からのランキング（または他の結果）に基づいて複数のワーカーを選別することによって、クエリプロセスに参加するリクエストを送信するワーカーを特定することを含むことができる。場合によって、決定は、自動的に実行する。例えば、規則は、最低（最高）のランキングを有する所定の数のワーカーを部分セットに含むことまたは所定の閾値を超えるスコアに関連する各ワーカーを部分セットに含むことを示すことができる。
【０１３７】
場合によって、部分セットに含まれるワーカーの決定に対応する通信の受信に基づいて、決定を実行する。通信は、ユーザ装置（例えば、採用担当者の装置）で受信した入力に基づいてまた受信した入力に応答して生成されてもよい。例えば、ノード１２１０でランキングを決定すると、対応するワーカーに関連するランキングを示す通信が生成されてもよい。通信は、インターフェイスを更新および／または生成させるようにまたユーザ装置上で表示させるように構成されてもよい。インターフェイスは、ランキングの一部または全てを含む。インターフェイスは、ランキングされたワーカーに関する情報をさらに含むおよび／またはさらに利用することができる。例えば、インターフェイスは、各ランキングに空間的に関連して、ワーカーの仕様データセットを閲覧するまたは画面上で表示するためのリンクを含むことができる。インターフェイスは、１つ以上の入力オプション（例えば、チェックボックス、プルダウンメニュー、リンク、ドラッグアンドドロップインターフェイスまたはラジオボタン）を含むことができる。オプションとの対話は、自動的に検出され、部分セットに含まれる特定のワーカーの決定に変換されることができる。
【０１３８】
一例として、インターフェイスは、各行が異なるワーカーを表すテーブルを含むことができる。１つの列は、ワーカーのランキングを示し、他の列は、ワーカーに関する他の情報（例えば、フィールドと値のペア、ワーカーＩＤ）を含むことができる。分割要素（例えば、移動可能な太線）を用いて、部分セットに含まれるワーカー（例えば、分割要素の上方のワーカー）を示すことができる。インターフェイスは、行を移動して並べ替えるためのドラッグアンドドロップ要素を含むことができる。別の例として、インターフェイスは、ワーカー固有情報およびワーカーのランキングを特定する視覚オブジェクト（例えば、小さなボックス）を含むことができる。各視覚オブジェクトは、チェックボックスを含むことができ、チェックボックスに空間的に関連することができる。チェックボックスをオンにすると、ワーカーを部分セットに含むことを示すことができる。
【０１３９】
場合によって、クエリプロセスに参加するためのリクエストは、部分セット内の各ワーカーに自動的に送信される（例えば、ジョブ割り当てシステム内のワーカーのポータルにメール送信されるまたは表示される）。場合によって、部分セット内のワーカーの特定情報（部分セット内のワーカーの連絡先を特定するためのキー値情報、例えば、メールアドレスまたは電話番号と共に）を表示または送信することによって、クエリプロセスに参加するためのリクエストの外部通信を容易にする。リクエストは、例えば、求人情報（例えば、役職および雇用主）、クエリプロセスに関連する場所（例えば、住所）、およびクエリプロセスの時間（または時間オプション）を含むことができる。
【０１４０】
場合によって、リクエストに対する応答を追跡することができる。例えば、メールまたはワーカーのポータルを介してリクエストを送信した場合、ワーカーがリクエストを受け入れるか否かおよび／またはワーカーがリクエストを拒否するか否かを示すように、１つ以上の応答オプションを提供することができる。別の例として、ユーザから、部分セット内の各ワーカーに関連する応答を示す通信を受信することができる。場合によって、（例えば、リクエストを送信したた時点から）所定の期間内に特定のワーカーから応答を受信しなかったという判断は、リクエストが拒否されたという仮想応答を生成することができる。部分セットをさらに選別することによって、リクエストを拒否した特定のワーカーを削除することができる。
【０１４１】
場合によって、決定ノード１２１０は、決定木１２００に含まれなくてもよい。部分セットに含まれるワーカーの特定は、機械学習モデルの反復を用いて実行することができる。機械学習モデルは、（例えば、複数のワーカーに対応する）ワーカー仕様データ構造、ジョブ仕様データ構造、および追加情報（例えば、複数のワーカーに関連するキーと値のペアおよび／またはジョブに関連するキーと値のペア）を処理することができる。機械学習モデルは、例えば、（部分セットに含まれるか否かに対応する）ランキング、スコアまたはバイナリ識別子を出力するように構成することができる。
【０１４２】
決定ノード１２２０において、ジョブリクエストの１つ以上のジョブ構成を決定し、決定ノード１２２５において、ジョブを実行するためのリクエストを送信するワーカーを決定する。様々な例において、ノード１２２０の決定および１２２５の決定を同時に行う。または、ノード１２２５の決定を行う前にノード１２２０の決定を行う。または、ノード１２２５の決定を行った後にノード１２２０の決定を行う。場合によって、ブロック１２２０およびブロック１２２５で行われた決定の一方または両方は、機械学習モデルを用いて行われる。
【０１４３】
ブロック１２２０の場合、機械学習モデルは、ワーカーの部分セットの各ワーカー、部分ワーカーまたは全てのワーカーに対して、ワーカーが（構成された）ジョブを受け入れることをもたらすのに十分（および／または最低）であると推定される１つ以上のジョブ構成を出力するように構成される。モデルはさらに、必要に応じて、ワーカーが構成に関係なくジョブを受け入れないと推定されることを示す結果を出力するように構成することができる。
【０１４４】
ブロック１２２５の場合、（同じまたは異なる）機械学習モデルは、ジョブを実行するためのリクエストを送信する１つ以上のワーカーの選択に関連する出力を生成するように構成される。出力は、例えば、１つ以上の出力値として、オファーを受け入れる可能性に関連するランキング、スコアおよび／または推定値、推定されたジョブ能力値、および／または推定された維持確率または期間を含むことができる。ジョブを実行するためのリクエストを送信するワーカーの決定は、リモートシステムおよび／またはユーザによって生成された決定を反映する通信に基づいて、自動的に行われてもよく、および／または行われてもよい。例えば、様々なデータ、例えば、ランキング、スコアまたは最小仕様データは、リクエストを送信するワーカーの部分セットの１つ以上のワーカーの選択を受け付けるインターフェイスに表示されてもよい。各リクエストは、必ずしも必要ではないが、ブロック１２２０で特定された対応する構成情報を用いて構成されてもよい。場合によって、リクエストは、デフォルト（または矛盾しないように、最小または最大）構成を用いて構成される。
【０１４５】
したがって、決定木１２００は、ジョブを割り当てるために、複数の決定ノードを用いて、ワーカープールを反復的に精練する方法を例示する。場合によって、（例えば、上記でジョブクエリプロセスに参加するリクエストに対する応答を追跡するための可能な手法に関して説明したように）ジョブリクエストに対する応答は、追跡される。１つ以上または全てのジョブリクエストが拒否された場合（例えば、および／またはデフォルト期間内に受け入れられない場合）、以前に選択した検討中のワーカーを削除すると共に、ブロック１２１５、１２２０および１２２５に関連する決定の１つまたは２つを繰り返すことができる。
【０１４６】
図１３は、本発明のいくつかの実施形態に従って、累進選別決定木の実装中に発生するデータ処理の例示的な表現を示す図である。
【０１４７】
図示の例において、第１の決定ノードで、変換要素１３０５（例えば、１つ以上の入力データオブジェクトを処理済みデータオブジェクトに変換するように構成されたコードブロック）は、複数のワーカーファイル１３１０および１つ以上のジョブを受け取る。各ワーカーファイル１３１０は、複数のワーカー仕様を含むワーカー仕様データ構造を含むことができる。各ジョブファイル１３１５は、複数のジョブ仕様を含むジョブ仕様データ構造を含むことができる。場合によって、変換要素１３０５は、ワーカーファイラーおよび／またはジョブファイルを受信する必要がなく、その代わりに、変換されるワーカー仕様データおよび／またはジョブ仕様データを特定することができる。例えば、仕様データは、（例えば、オンラインフォームエントリに対応する）入力の検出に応答して、個々のワーカー装置および／または他の装置から生成および送信された１つ以上の通信を介して受信されてもよい。
【０１４８】
変換要素１３０５は、各ワーカーファイル１３１０をワーカー特徴データセット１３２０に変換し、各ジョブファイル１３１５をジョブ特徴データセット１３２５に変換するように構成することができる。各ワーカー特徴データセット１３２０および各ジョブ特徴データセット１３２５は、特徴セットの各特徴が対応する（ジョブまたはワーカー）ファイルに示される度合いを示す値を含むことができる。各特徴は、セマンティックスペース１３３０の一部に対応することができる。場合によって、機械学習モデルは、（例えば、非構造化データを含む）訓練データセットを用いて、各特徴を定義することができる。機械学習モデルは、教師なし学習を介して訓練することができ、例えば、doc2vecを含むことができる。特徴は、単語および／またはフレーズの共起に基づいて定義されてもよく、構造分析（例えば、単語のグループ化、文および／または段落の検出）に基づいて定義されてもよい。場合によって、訓練中に（特徴セットを特定するために）使用された最適変数は、特徴間の直交性メトリックを含むことができる。すなわち、特徴セットは、各個々の特徴が他の特徴と直交する度合いおよび／または独立する度合いを最大化するように定義されてもよい。
【０１４９】
比較要素１３３５は、各ワーカー特徴データセット１３２０と各ジョブ特徴データセット１３２５とを比較することによって、各組み合わせペアの比較出力を生成することができる。場合によって、比較出力は、特徴データセット間のコサイン角を含む。場合によって、比較は、特徴データセット間の相関係数を生成すること、特徴データセット間の特徴差異に基づいて差異メトリック（例えば、平均値、中央値、最大値、または最小値）を生成することを含む。
【０１５０】
第１のフィルタ１３３５は、比較出力を処理することによって、各ジョブ特徴データセット１３２５に対して、ワーカー特徴データセット１３２０の部分セット１３４０を決定することができる。この処理は、例えば、複数のワーカーに対して生成された比較出力に基づいて、複数のワーカーから所定数のワーカーを決定することを含む。例えば、選別は、１００個の最高値を有する比較出力（高い値は、強い類似性を示す。代替的には、低い値が強い類似性を示すように比較出力を設定する場合、１００個の最低値を有する比較出力を決定してもよい）に対応する１００個のワーカー特徴データセットを選択することを含むことができる。場合によって、選別は、所定の閾値を超える（または代替的な出力構成において、所定の閾値未満の）比較出力に関連する各ワーカー特徴データセットを選択することを含む。
【０１５１】
第２の決定ノードにおいて、機械学習モデル１３４５は、ワーカー特徴データセット１３２０の部分セット１３４０および各ジョブ特徴データセット１３２５をさらに処理することができる。機械学習モデル１３４５は、教師あり学習を介して訓練することができる。機械学習モデル１３４５は、（例えば、所定の形式および／またはサイズを有する）構造化データを処理するように構成することができる。機械学習モデル１３４５は、ワーカー特徴データセットの部分セット１３４０の各々に対して、ジョブ特徴データセット１３２５に関連するジョブとの対応度を示す値（例えば、ランキングまたはスコア）を出力するように構成することができる。出力は、部分セット１３４０の１つ、一部または全てのワーカーの各ワーカーのランキング１３５０を含むことができる。機械学習モデルは、ランキング学習（learning-to-rank）モデルを含むことができる。場合によって、機械学習モデル１３４５は、ユーザから受信した入力に対応する最適変数に基づいて訓練される。入力は、過去の決定を特定する（例えば、１人以上の特定のワーカーに面接を提供したか否かおよび／または１人以上の特定のワーカーが面接を受け入れたか否か、１人以上の特定のワーカーにジョブを提供したか否かおよび／または１人以上の特定のワーカーがジョブを受け入れたか否かを特定する、および／または職務業績の評価を特定する）ことができる。
【０１５２】
特徴データセットに加えて、機械学習モデル１３４５は、部分セット１３４０に対応するワーカーファイル１３１０および／またはジョブ特徴データセット１３２５に対応するジョブファイル１３１５からのデータをさらに処理することができる。他のデータは、例えば、キーと値のデータおよび／または個別のフォームエントリを含み、実装された第２のフィルタ１３５５によって特定することができる。場合によって、特定のワーカー（またはジョブ）の他のデータは、対応するワーカー特徴データセット１３４０（またはジョブ特徴データセット１３２５）に集計（例えば、連結）することができ、連結されたデータは、モデルに入力することができる。
【０１５３】
ランキング１３５０は、例えば、複数のワーカーの部分セット１３４０を（例えば、所定のサイズに）さらに選別および縮小することができる第３の決定ノード１３５５によって処理されてもよい。場合によって、更なる選別は、最低ランキング値を有する所定数のワーカーを特定することを含む。場合によって、他の情報（例えば、特徴データセット、キーと値のペア）をさらに使用してもよい。場合によって、ランキングは、ユーザに提示され、更なる選別は、ユーザ装置からの１つ以上の通信によって示された１つ以上のワーカーの選択に対応する。場合によって、更なる選別は、（例えば、クエリプロセスの参加を要求した過去のワーカー、クエリプロセスへの参加を受け入れた過去のワーカー、職務業績に基づいて選択された過去のワーカー、ジョブを受け入れた過去のワーカーおよび／または過去の職務業績を最適変数として使用する）機械学習モデルによって実行される。さらに選別されたワーカーの部分セットは、例えば、クエリプロセスに参加するためのリクエストを送信するワーカーを含む。リクエストが拒否されたまたは応答されなかった場合、第３の決定ノード１３５５は、さらに選別された部分セットに含まれる別のワーカーを特定するように構成されてもよい。
【０１５４】
第４の決定ノード１３６０において、クエリプロセスからの結果を評価することによって、（例えば、ジョブを実行するための所定数のワーカー、例えば、単一のワーカーを特定するように）ワーカー部分セットをさらに選別することもできる。この決定は、（職務業績に基づいて選択された過去のワーカー、ジョブを受け入れた過去のワーカーおよび／または過去の職務業績を最適変数として使用する）機械学習モデルによって行われる。さらに選別されたワーカーの部分セットは、例えば、ジョブを実行するためのリクエストを送信するワーカーを含む。リクエストが拒否されたまたは応答されなかった場合、第４の決定ノード１３５５は、さらに選別された部分セットに含まれる別のワーカーを特定するように構成されてもよい。
【０１５５】
第５の決定ノード１３６５において、各ワーカーのジョブ仕様情報を決定することができる。例えば、１つ以上のワーカーの各々がジョブを受け入れるのに十分であると推定された下限閾値に対応する１つ以上のジョブ仕様を特定することができる。場合によって、決定ノード１３６０と決定ノード１３６５を合併してもよい。例えば、各ワーカーの閾値特定データを特定し、ユーザ装置に送信することができ、ユーザ装置は、さらに選別された部分セットに含まれるワーカーの選択に応答することができる。
【０１５６】
第３の決定ノード１３５５、第４の決定ノード１３６０および第５の決定ノード１３６５で行われた各決定は、機械学習モデル１３４５にフィードバックすることができる。追加のフィードバック１３７０は、例えば、個々のワーカーがクエリプロセスに参加するためのリクエストを受け入れたか否かおよび／またはジョブを実行するためのリクエストを受け入れたか否かおよび／またはワーカーに関連するジョブを実行した質を示すことができる。
【０１５７】
図１４は、本発明のいくつかの実施形態に従って、機械学習モデルを反復的に使用して、決定木を通る経路を前進させるプロセス１４００を示すフローチャートである。
【０１５８】
プロセス１４００は、ブロック１４０５から始まる。ブロック１４０５において、ジョブを割り当てるための決定木を表すデータ構造（例えば、データファイルまたはデータセット）を呼び出す。決定木の１つ以上の第１の決定ノードは、ワーカー情報またはジョブ情報の非構造化データを処理して意味のある構造化データに変換する方法に関する決定に対応してもよい。変換は、例えば、単語間の様々な関係および構造を検出し、その後、非構造化データ（例えば、テキストデータ）を特徴付けるために使用される特徴セットを定義するように訓練された教師なし機械学習モデルを用いて実行することができる。
【０１５９】
ブロック１４１０において、機械学習モデルを用いて、ジョブ特徴データセットを生成する。ジョブ特徴データセットは、（ジョブ情報に表示される様々な特徴を特定する度合いを示す表示を介して）ジョブの特徴を示す一連の数値を含むことができる。ジョブ特徴データセットは、例えば、オンラインポータルを介して受信したジョブ情報（例えば、ジョブオファーデータ）を処理することによって生成することができる。
【０１６０】
ブロック１４１５において、機械学習モデルを用いて、複数のワーカーの各々のワーカー仕様データセットを生成する。ワーカー特徴データセットは、ワーカーの特徴を示す一連の数値を含むことができる。ワーカー特徴データセットは、例えば、オンラインポータルを介して受信したワーカー情報（例えば、履歴書データ）を処理することによって生成することができる。ジョブ特徴データセットは、ワーカー情報のセマンティック分析を実行することによって生成することができる。
【０１６１】
（個々のワーカーおよび／またはジョブの）仕様データセットは、単一の決定ノードによって生成されてもよく、またはワーカー仕様データセットおよびジョブ仕様データセットは、（例えば、異なる学習パラメータに基づいて）別々の決定ノードによって生成されてもよい。
【０１６２】
ブロック１４２０において、決定木の反復に対応する経路が別の決定ノードに到達したことを検出する。他の決定ノードは、例えば、複数のワーカーを選別する（またはさらに選別する）方法および／またはワーカーに送信されるリクエストを構成する方法に関連する決定に対応してもよい。他の決定ノードは、機械学習モデル（例えば、特徴データセットの特徴を特定するために使用されるモデルとは異なる種類のモデル）を用いて入力データを処理することに基づいて決定を行うように、構成されてもよい。機械学習モデルは、例えば、ニューラルネットワークモデルを含むことができる。
【０１６３】
ブロック１４２５において、ノードに対応する学習パラメータを取得する。学習パラメータは、ニューラルネットワークの１つ以上の重みを含むことができる。学習パラメータは、訓練プロセス中に生成されてもよい。
【０１６４】
ブロック１４３０において、機械学習モデルを反復的に実行する。ノード固有学習パラメータを用いて、機械学習モデルを構成することができる。実行は、ジョブ関連特徴データセットと、１つ以上または全てのワーカー関連特徴データセットとを機械学習モデルに入力することを含む。場合によって、各ワーカー関連特徴データセットは、ジョブ関連特徴データセットと共に処理されるが、他のワーカー関連特徴データセットと共に処理されない（他のワーカー関連特徴データセットは、ジョブ関連特徴データセットと共に個別に処理される）。場合によって、全てのワーカー関連特徴データセットとジョブ関連特徴データセットは、モデルの特定の実行によって処理される。モデルの結果は、例えば、複数のワーカーを選別すること、複数のワーカーをランキングすること、および複数のワーカーの各々にスコアを割り当てることを含む。
【０１６５】
決定木が追加の決定ノードを含む場合、プロセス１４００は、ブロック１４２０に戻り、機械学習モデルを用いて、決定を行うまたは促進することができる。この機械学習モデルは、決定ノードに使用されたモデルと同じ種類であってもよく、異なる種類であってもよい。
【０１６６】
ブロック１４３５において、１つ以上の決定ノードで生成された機械学習結果を用いて生成された１つ以上の結果を表す１つ以上の通信動作をトリガする。例えば、通信は、クエリプロセスに参加するまたはジョブを受け入れるワーカーに送信されるリクエストを含んでもよい。別の例として、通信は、決定ノードで生成されたワーカーの部分セットに含まれる１つ以上のワーカーの特定を含んでもよい。さらに別の例として、通信は、１つ以上のワーカーの各々に対して、例えば、ワーカー仕様がジョブ仕様に対応する推定度合い、ワーカーがクエリプロセスに参加するためのリクエストを受け入れる推定度合い、ワーカーがジョブを実行するためのリクエストを受け入れる推定度合い、またはワーカーがジョブを正常に実行する推定度合いを表す機械学習モデルを用いて生成されたランキングまたはスコアを含んでもよい。
【０１６７】
上記に説明された特定の詳細は、実施形態の完全な理解を提供するために与えられる。理解すべきことは、これらの特定の詳細がなくても、実施形態を実施することができることである。例えば、不必要な詳細で実施形態を不明瞭にしないために、回路をブロック図で開示することができる。別の例として、実施形態を不明瞭にすることを避けるために、周知の回路、プロセス、アルゴリズム、構造、および技術を詳細に開示しない。
【０１６８】
上述した技術、ブロック、ステップおよび手段は、様々な方法で実装することができる。例えば、これらの技術、ブロック、ステップおよび手段は、ハードウェア、ソフトウェア、またはそれらの組み合わせに実装することができる。ハードウェア実装の場合、処理ユニットは、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、デジタル信号処理装置（ＤＳＰＤ）、プログラマブルロジック装置（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、上述した機能を実行するように設計された他の電子ユニット、および／またはそれらの組み合わせに実装されてもよい。
【０１６９】
また、留意すべきことは、各々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示された処理として説明されていることである。フローチャートは、操作を順次処理として説明しているが、多くの操作は、並行でまたは同時に実行することができる。さらに、操作の順序を再配置してもよい。処理は、その操作が完了した時点で終了するが、図に示されていない追加のステップを含んでもよい。処理は、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。処理が関数に対応する場合、その終了は、呼び出し関数またはメイン関数の戻りに対応することができる。
【０１７０】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実施されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードに実施される場合、必要な作業を実行するためのプログラムコードまたはコードセグメントは、機械可読媒体、例えば、記憶媒体に格納されてもよい。コードセグメントまたは機械実行可能な命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、もしくは命令、データ構造またはプログラム文の任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を転送および／または受信することによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータおよびデータなどは、メモリ共有、メッセージ転送、トークン転送、ネットワーク送信などの任意の適切な手段を介して、伝達され、転送され、または送信されてもよい。
【０１７１】
ファームウェアおよび／またはソフトウェア実装の場合、方法は、本明細書に説明された機能を実行するためのモジュール（例えば、プロシージャ、関数など）を用いて実装されてもよい。命令を有形に具体化する任意の機械可読媒体を用いて、本明細書に説明された方法を実装することができる。例えば、ソフトウェアコードをメモリに保存することができる。メモリは、プロセッサの内部またはプロセッサの外部に実装されてもよい。「メモリ」という用語は、本明細書に使用される場合、任意種類の長期記憶媒体、短期記憶媒体、揮発性記憶媒体、不揮発性記憶媒体、または他の記憶媒体を指し、特定の種類のメモリまたは特定の数のメモリまたはメモリを格納する媒体の種類に限定されない。
【０１７２】
さらに、本明細書に開示されたように、「記憶媒体」という用語は、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ＲＡＭ、コアメモリ、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置、および／または情報を格納するための他の機械可読媒体を含み、データを記憶するための１つ以上のメモリを表すことができる。「機械可読媒体」という用語は、移動可能および固定された記憶装置、光学記憶装置、ワイヤレスチャネル、および／または命令および／またはデータを含むまたは運ぶことができる他の様々な記憶媒体を含むが、これらに限定されない。
【０１７３】
特定の装置および方法に関連して上記で本開示の原理を説明したが、理解すべきことは、この説明は、例示のみであって、本開示の範囲を限定するものではないことである。
【図１】
2020057386.tif 000003
【図２】
2020057386.tif 000004
【図３】
2020057386.tif 000005
【図４】
2020057386.tif 000006
【図５】
2020057386.tif 000007
【図６】
2020057386.tif 000008
【図７】
2020057386.tif 000009
【図８】
2020057386.tif 000010
【図９】
2020057386.tif 000011
【図１０】
2020057386.tif 000012
【図１１】
2020057386.tif 000013
【図１２】
2020057386.tif 000014
【図１３】
2020057386.tif 000015
【図１４】
2020057386.tif 000016
【外国語明細書】
2020057386000001.pdf