(57)【要約】      （修正有）【課題】個人によるオンラインでの公開情報の取得および分析において、拡張性、公開情報の正確さまたは完全さの信頼性構築を可能にするため、テキストレビューおよびコメントの分析に基づきレーティングを予測するモデルを構築し適用する。【解決手段】予測エンジン１１０は、レーティングを予測するために、深層畳み込みニューラルネットワーク（ＣＮＮ）を用いる分散型並列モデル構築により、複数のモデルを同時に構築する。さらに、ユーザステータスおよびコンテキスト情報を含むユーザモーメント特徴データを組み入れて、より優れたパフォーマンスおよびより正確な予測を提供する。さらに、モデル構築のためにヒューリスティック教師なし事前訓練および／または適応型過剰適合低減を用いる。【選択図】図１
2018190396.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサによって実行される、コンピュータに実装される方法であって、前記方法は、
レーティングつきの複数のレビューを含む第１のレビューデータを、前記少なくとも１つのプロセッサによって受信するステップと、
前記第１のレビューデータに基づいて少なくとも１つの予測モデルを構築するために実行される複数のモデル構築トランザクションを、前記少なくとも１つのプロセッサによって決定するステップと、
少なくとも１つの深層畳み込みニューラルネットワーク（ＣＮＮ）を使用することにより、前記少なくとも１つのプロセッサによって前記少なくとも１つの予測モデルを構築するステップであって、複数の計算ノード上での並列実行のために前記複数のモデル構築トランザクションを分配することを含む、前記構築するステップと、
レーティングつきでない複数のレビューを含む第２のレビューデータを、前記少なくとも１つのプロセッサによって受信するステップと、
前記少なくとも１つの予測モデルを使用して、前記レーティングつきでない複数のレビューのそれぞれについて、レーティングを、前記少なくとも１つのプロセッサによって予測するステップと、
を含む、方法。
【請求項２】
前記複数のモデル構築トランザクションは、スケジューラにより、前記複数の計算ノードの負荷情報に基づき分配され、
前記負荷情報は、個々の計算ノード上でそれぞれ実行される複数の訓練マネージャから前記スケジューラにより受信される、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの予測モデルの前記構築は、絶対差係数および分布差異係数を含むヒューリスティック数式を用いるヒューリスティック教師なし事前訓練を含む、請求項１に記載の方法。
【請求項４】
前記少なくとも１つの予測モデルの前記構築は、複数のユーザモーメント特徴と、前記少なくとも１つの深層ＣＮＮから出力される複数の特徴とを組み合わせることによって統合された複数の特徴を提供する、ユーザモーメント特徴融合を含む、請求項１に記載の方法。
【請求項５】
前記少なくとも１つの予測モデルの前記構築は、前記統合された複数の特徴を削減する適応型過剰適合低減を含む、請求項４に記載の方法。
【請求項６】
前記適応型過剰適合低減は、１つ以上の反復において、
前記統合された特徴のサブセットをランダムにドロップアウトするステップと、
訓練データおよび検証データに適用される訓練反復の出力間の差に基づいて、強度パラメータを決定するステップと、
を含み、前記強度パラメータは、次の反復におけるランダムドロップアウトの量を示す、請求項５に記載の方法。
【請求項７】
前記少なくとも１つの深層ＣＮＮは、異なる範囲の複数の畳み込み層を含む、請求項１に記載の方法。
【請求項８】
前記複数の畳み込み層は、フレーズ特徴マップ群、センテンス特徴マップ群、パラグラフ特徴マップ群、およびコンテキスト特徴マップ群に対応する層を含む、請求項７に記載の方法。
【請求項９】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに通信結合されたメモリと、
を備えるシステムであって、前記メモリは、前記少なくとも１つのプロセッサによって実行されると前記少なくとも１つのプロセッサに動作を実行するよう命令する命令を記憶し、前記動作は、
レーティングつきの複数のレビューを含む第１のレビューデータを受信することと、
前記第１のレビューデータに基づいて少なくとも１つの予測モデルを構築するために実行される複数のモデル構築トランザクションを決定することと、
少なくとも１つの深層畳み込みニューラルネットワーク（ＣＮＮ）を使用することにより前記少なくとも１つの予測モデルを構築することであって、複数の計算ノード上での並列実行のために前記複数のモデル構築トランザクションを分配することを含む、前記構築することと、
レーティングつきでない複数のレビューを含む第２のレビューデータを受信することと、
前記少なくとも１つの予測モデルを使用して、前記レーティングつきでない複数のレビューのそれぞれについてレーティングを予測することと、
を含む、システム。
【請求項１０】
前記複数のモデル構築トランザクションは、スケジューラにより、前記複数の計算ノードの負荷情報に基づき分配され、
前記負荷情報は、個々の計算ノード上でそれぞれ実行される複数の訓練マネージャから前記スケジューラにより受信される、請求項９に記載のシステム。
【請求項１１】
前記少なくとも１つの予測モデルの前記構築は、絶対差係数および分布差異係数を含むヒューリスティック数式を用いるヒューリスティック教師なし事前訓練を含む、請求項９に記載のシステム。
【請求項１２】
前記少なくとも１つの予測モデルの前記構築は、複数のユーザモーメント特徴と、前記少なくとも１つの深層ＣＮＮから出力される複数の特徴とを組み合わせることによって統合された複数の特徴を提供する、ユーザモーメント特徴融合を含む、請求項９に記載のシステム。
【請求項１３】
前記少なくとも１つの予測モデルの前記構築は、前記統合された複数の特徴を削減する適応型過剰適合低減を含む、請求項１２に記載のシステム。
【請求項１４】
前記適応型過剰適合低減は、１つ以上の反復において、
前記統合された特徴のサブセットをランダムにドロップアウトすることと、
訓練データおよび検証データに適用される訓練反復の出力間の差に基づいて、強度パラメータを決定することと、
を含み、前記強度パラメータは、次の反復におけるランダムドロップアウトの量を示す、請求項１３に記載のシステム。
【請求項１５】
前記少なくとも１つの深層ＣＮＮは、異なる範囲の複数の畳み込み層を含む、請求項９に記載のシステム。
【請求項１６】
前記複数の畳み込み層は、フレーズ特徴マップ群、センテンス特徴マップ群、パラグラフ特徴マップ群、およびコンテキスト特徴マップ群に対応する層を含む、請求項１５に記載のシステム。
【請求項１７】
少なくとも１つのプロセッサによって実行されると前記少なくとも１つのプロセッサに動作を実行するよう命令する命令を記憶している１つ以上のコンピュータ可読ストレージ媒体であって、前記動作は、
レーティングつきの複数のレビューを含む第１のレビューデータを受信することと、
前記第１のレビューデータに基づいて少なくとも１つの予測モデルを構築するために実行される複数のモデル構築トランザクションを決定することと、
少なくとも１つの深層畳み込みニューラルネットワーク（ＣＮＮ）を使用することにより前記少なくとも１つの予測モデルを構築することであって、複数の計算ノード上での並列実行のために前記複数のモデル構築トランザクションを分配することを含む、前記構築することと、
レーティングつきでない複数のレビューを含む第２のレビューデータを受信することと、
前記少なくとも１つの予測モデルを使用して、前記レーティングつきでない複数のレビューのそれぞれについてレーティングを予測することと、
を含む、１つ以上のコンピュータ可読ストレージ媒体。
【請求項１８】
前記複数のモデル構築トランザクションは、スケジューラにより、前記複数の計算ノードの負荷情報に基づき分配され、
前記負荷情報は、個々の計算ノード上でそれぞれ実行される複数の訓練マネージャから前記スケジューラにより受信される、請求項１７に記載の１つ以上のコンピュータ可読ストレージ媒体。
【請求項１９】
前記少なくとも１つの予測モデルの前記構築は、絶対差係数および分布差異係数を含むヒューリスティック数式を用いるヒューリスティック教師なし事前訓練を含む、請求項１７に記載の１つ以上のコンピュータ可読ストレージ媒体。
【請求項２０】
前記少なくとも１つの予測モデルの前記構築は、複数のユーザモーメント特徴と、前記少なくとも１つの深層ＣＮＮから出力される複数の特徴とを組み合わせることによって統合された複数の特徴を提供する、ユーザモーメント特徴融合を含む、請求項１７に記載の１つ以上のコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、レーティング予測エンジンに関する。
【背景技術】
【０００２】
個人は、オンラインで情報を公開して、自分の旅行体験を記載したり、商品またはサービスの購入についてレビューをしたり、メディアコンテンツのレビューをしたり、訪問した場所について記載したりなどする。そうした情報は、ソーシャルメディア、サービスレビューサイト、ｅコマースアプリケーション、および／またはその他チャンネルで公開されることもある。組織は、公に利用可能な様々なチャンネルから公開情報を取得して、その情報を、傾向もしくはパターンを特定するためまたは他の目的のために分析することもある。個人によりオンラインで公開される情報量の増加を考えると、公開情報の取得および分析には、拡張性、公開情報の正確さまたは完全さの信頼性構築、および／または自動プロセス（例えばボット）ではない客観的な（例えば公開情報の対象製品またはサービスに関連しない）個人により情報が投稿されたことの信頼性構築に関する課題が伴うであろう。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上述のとおり、個人によりオンラインで公開される情報量の増加を考えると、公開情報の取得および分析には、拡張性、公開情報の正確さまたは完全さの信頼性構築、および／または自動プロセスではない客観的な個人により情報が投稿されたことの信頼性構築に関する課題が伴うであろう。
【課題を解決するための手段】
【０００４】
本開示の実装は、全般的に、レビューおよび／またはオンラインで公開されたその他情報のレーティング予測を対象とする。特に、実装は、公開された項目のレーティングを予測するために深層畳み込みニューラルネットワーク（ＣＮＮ：ｄｅｅｐ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）モデルを用いるエンジンを対象とする。
【０００５】
概して、本明細書に記載される主題の画期的な側面は、レーティングつきの複数のレビューを含む第１のレビューデータを受信するアクションと、第１のレビューデータに基づいて少なくとも１つの予測モデルを構築するために実行される複数のモデル構築トランザクションを決定するアクションと、少なくとも１つの深層畳み込みニューラルネットワーク（ＣＮＮ）を使用することにより少なくとも１つの予測モデルを構築するアクションであって、複数の計算ノード上での並列実行のために複数のモデル構築トランザクションを分配することを含む、構築するアクションと、レーティングつきでない複数のレビューを含む第２のレビューデータを受信するアクションと、少なくとも１つの予測モデルを使用して、レーティングつきでない複数のレビューのそれぞれについてレーティングを予測するアクションと、を含む方法において具現化できる。
【０００６】
実装は、任意選択で、以下の特徴のうちの１つ以上を含むことができる：複数のモデル構築トランザクションは、スケジューラにより、複数の計算ノードの負荷情報に基づき分配される、負荷情報は、個々の計算ノード上でそれぞれ実行される複数の訓練マネージャからスケジューラにより受信される、少なくとも１つの予測モデルの構築は、絶対差係数および分布差異係数を含むヒューリスティック数式を用いるヒューリスティック教師なし事前訓練を含む、少なくとも１つの予測モデルの構築は、複数のユーザモーメント特徴と少なくとも１つの深層ＣＮＮから出力される複数の特徴とを組み合わせることによって統合された複数の特徴を提供するユーザモーメント特徴融合を含む、少なくとも１つの予測モデルの構築は、統合された複数の特徴を削減する適応型過剰適合低減を含む、適応型過剰適合低減は、１つ以上の反復において、統合された特徴のサブセットをランダムにドロップアウトすることと、訓練データおよび検証データに適用される訓練反復の出力間の差に基づいて強度パラメータを決定することとを含み、強度パラメータは、次の反復におけるランダムドロップアウトの量を示す、少なくとも１つの深層ＣＮＮは、異なる範囲の複数の畳み込み層を含む、ならびに／または複数の畳み込み層は、フレーズ特徴マップ群、センテンス特徴マップ群、パラグラフ特徴マップ群、およびコンテキスト特徴マップ群に対応する層を含む。
【０００７】
上記のいずれかの側面の他の実装は、対応するシステム、装置、およびコンピュータストレージデバイス上にコード化され本方法のアクションを実行するよう構成されたコンピュータプログラムを含む。本開示はさらに、１つ以上のプロセッサに結合され命令が記憶されたコンピュータ可読ストレージ媒体を提供し、この命令は、１つ以上のプロセッサによって実行されると１つ以上のプロセッサに、本願明細書において提供される方法の実装に従った動作を実行させる。本開示は、本願明細書に提供された方法を実装するシステムをさらに提供する。システムは、１つ以上のプロセッサと、１つ以上のプロセッサに結合され命令が記憶されたコンピュータ可読ストレージ媒体とを含み、この命令は、１つ以上のプロセッサによって実行されると１つ以上のプロセッサに、本明細書において提供される方法の実装に従った動作を実行させる。
【０００８】
本開示の実装は、以前利用可能なシステムと比べて、以下の技術的利点および／または技術的改善のうちの１つ以上を提供する。モデル構築プロセスが複数の計算ノード（例えばＣＰＵおよび／またはＧＰＵ）上での並列実行のためにディスパッチされるディスパッチ可能な複数のトランザクションに分割される、分散型並列モデル構築により、実装は、以前に利用可能なモデル構築ソリューションに比べより高速かつより効率的なモデル構築を提供する。スケジューラは、利用可能な計算ノードのセットの中でディスパッチ可能なトランザクションの負荷のバランスをとることにより、確実に各ノードが効率的に使用されるようにしてもよい。したがって、実装は、従来のモデル構築手法を適用する以前利用可能なシステムと比較して、処理能力、アクティブメモリ、および／またはその他コンピューティング資源をより効率的に使用する。さらに、ユーザモーメント融合、適応型過剰適合低減、およびヒューリスティック教師なし事前訓練の使用により、実装は、従来構築されたモデルと比較してより正確な予測を提供する予測モデルをもたらす。
【０００９】
一部の実装において、本願明細書に記載される分散型並列モデル構築は、モデル構築トランザクションプロトコルを用いる。このプロトコルは、中央訓練スケジューラとローカル訓練マネージャとの間のネットワーク通信をサポートする。これは、１つのモデル構築タスクを、上述のように複数の計算ノード間で共有できるディスパッチ可能な複数のトランザクションに分割する。この分散型並列モデル構築は、以前利用可能であった手技と比べて様々な利点を提供する。例えば、ＣＰＵおよび／またはＧＰＵアーキテクチャに基づく異種計算ノードが、異なるオペレーティングシステム上で実行され、かつ／または異なる機械学習パッケージを使用してもよく、このプロトコルを適用することによって同時に管理できる。これは、高い拡張性を提供し、大規模モデル構築作業のための相当な設定労力を回避する。
【００１０】
一部の実装では、細かい管理粒度が提供される。上述のように、粒度は、モデル構築プロセス全体を複数の（例えばより細かい粒度の）モデル構築トランザクションに分割できることをもたらす。これは、進行監視、ならびにタスク進行のバックアップおよび復元のための管理可能な特徴を提供するものであり、これらは大規模モデル構築タスクに特に有用である。
【００１１】
実装は、様々なタイプの機械学習の使用をサポートし、サポートベクトルマシン（ＳＶＭ：Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）、ランダムフォレスト、ロジスティック回帰などの深層学習および他の従来の機械学習タスクを含む、任意の適切なタイプの深層機械学習をサポートする。実装は、任意の適切なタイプの応用のためのモデル構築に使用されてもよい。
【００１２】
一部の実装では、分散型並列モデル構築は、並列モデル構築フレームワークを用いる。モデル構築トランザクションプロトコルに基づいて、分散型計算をサポートする並列モデル構築フレームワークが用いられる。これは、拡張性の利点を含め、以前利用可能なソリューションと比較して様々な技術的利点を提供する。ノードの数を増加させることによりモデル構築に要する時間を短縮することができる。かかる特徴は、大規模モデル構築タスク、特にリアルタイム要件を有するものに特に有用である。分散型モデル構築フレームワークはさらに、単一タスクよりも優れた堅牢性を提供する。１つのノードに障害が発生した場合、タスクは他のノード（単数または複数）で回復できる。これは、重要なモデル構築タスクに特に有用である。モデル内部変数、学習方式、および／またはハイパーパラメータなどのモデル状態は、学習プロセス中にトランザクションレベルで直列化および記憶され、その結果、障害が発生してもタスクを迅速に回復できる。実装はさらに、リアルタイムの資源最適化を提供する。モデル構築トランザクションはミニバッチレベルで管理されるので、計算タスクは１秒または数秒の頻度でスケジュールできる。これにより、計算資源のリアルタイム最適化ができる。このことは、タスクがその場その場のタスク負荷に従ってノード間で迅速にシフトされ得ることを考慮すると、他の計算サービスと共有される既存の計算資源の再利用に特に有用である。
【００１３】
一部の実装において、分散型並列モデル構築はさらに、複数の学習方式をサポートする。例えば、一定学習速度、モメンタム学習方式、ネステロフ加速勾配、アダグラッド（Ａｄａｇｒａｄ）、アダデルタ（Ａｄａｄｅｌｔａ）、および／または他のものなどの１つ以上の適用可能な深層学習方式が、ローカル訓練マネージャによって組み合わされ、管理されてもよい。訓練マネージャは、モデル検証パフォーマンスと費やされる訓練時間とのバランスをとるために、学習設定パラメータを調節することができる。これは、最良方式の選択により、以前に利用可能なソリューションと比べて様々な技術的利益を提供する。適用可能な複数の深層学習方式がエンジンに統合されるため、適切な方式が容易に選択され、特定のモデル構築タスクのために使用され得る。実装は、深層ＣＮＮを含む深層学習タスク、およびノイズ除去オートエンコーダ、再帰的ニューラルネットワーク、制限ボルツマンマシンなどの他のタイプのモデルアーキテクチャに関係する様々な機械学習の使用をサポートする。
【００１４】
一部の実装では、上述のように、ヒューリスティック教師なし事前訓練が用いられる。これは、教師なし事前訓練のためにヒューリスティック数式を適用することを含んでもよい。この式は、教師なし事前訓練のコスト計算を定義することができる。この式はさらに、絶対差および分布の差異の両方に基づいて、深層ＣＮＮモデル構築全般のための自動処理を可能にする。かかる式を使用することにより、データセットの具体的な特性を考慮することなく、教師なし事前訓練を行うことができる。式のハイパーパラメータが、結果のパフォーマンスを改善するための微調節を可能にする。かかる教師なし事前訓練は、様々な深層ＣＮＮタスクに適用されてもよく、様々な応用におけるモデル構築のために使用されてもよい。
【００１５】
一部の実装では、上述のようにユーザモーメント特徴融合が用いられる。ユーザモーメント特徴融合は、モーメント特徴を使用することによって捕捉される購入段階、行動時間、および／または活動タイプに関連するユーザステータスコンテキストを適用してもよく、モーメント特徴は、モデルパフォーマンスを改善するためにモデル構築に融合される。ユーザモーメント融合は、モーメント特徴の捕捉を用いてパフォーマンス改善を提供する。例えば、レーティングおよび／または購入のユーザ決定プロセスに影響を及ぼし得る要因が、ユーザモーメント特徴融合により、従来のソリューションと比較してより良好に捕捉されてもよく、その結果、モデルパフォーマンスが改善されてもよい。ユーザモーメント特徴融合はさらに、モーメント識別を用いたより優れたターゲティングを提供する。検証精度が、どのモーメントが特定の決定により重要であるかを決定し、モデルパフォーマンスにより大きく寄与をするモーメントはより重要なものであると考えられ、したがって、より大きく考慮されるべきである。対象のモーメント（単数または複数）と期待される結果との間には強い相関関係があってもよい。ユーザモーメント特徴融合は、深層学習タスクに関係する様々な機械学習システムにおいて使用でき、さらに、いくらかの実装変更により他の機械学習方法に拡張されてもよい。ユーザモーメント特徴融合は、様々な応用を用いたモデル構築に使用されてもよい。
【００１６】
一部の実装では、上述したように適応型過剰適合低減が用いられる。過剰適合測定式は、訓練と検証パフォーマンスとの差を調べることによって、過剰適合のレベルを定量的に測定する。過剰適合低減は、入力データの特定のドメイン知識を必要とせずに、過剰適合レベルを測定する指標の定量的定義を提供する。これが過剰適合低減の評価および改善の基礎となる。適応型ドロップアウト強度式および自動調整は、上述したように、訓練−検証差の指標を確認することによってドロップアウトの強度を継続的に調整する。過剰適合低減は、特定のドメイン知識を必要とせずに過剰適合低減の自動プロセスを提供し、様々なタイプの深層ＣＮＮタスクで用いられてもよく、様々なタイプの応用のためのモデル構築に適用されてもよい。
【００１７】
一部の実装はさらに、深層ＣＮＮモデルにおいて、異なるサイズの複数の特徴マップ群を用いる。これは向上した学習能力を提供し、その結果、上述したように、フレーズレベル、センテンスレベル、パラグラフレベル、コンテキストレベル、および／または他のレベルでテキスト特徴を捕捉するようにモデルの学習能力が向上する。かかる特徴マップ群は、様々な深層ＣＮＮタスク、ならびにテキストおよび／またはイメージデータのモデル構築に適用されてもよい。
【００１８】
一部の実装はさらに、可変サイズの実行時畳み込み演算も用いる。かかる修正された畳み込み演算は、実行時に可変サイズの入力データをサポートすることができる。これは、可変長の入力データに対する実行時サポートを提供する。例えば、従来の畳み込み演算によって典型的に課せられる実行時入力データの長さ制限がなくなる。このような可変サイズの実行時畳み込み演算は、テキストおよび／またはイメージデータのモデル構築のために、様々な深層ＣＮＮタスクに適用されてもよい。
【００１９】
当然のことながら、本開示に従った方法は、本願明細書に記載される側面および特徴の任意の組み合せを含むことができる。すなわち、本開示に従った方法は、本願明細書に具体的に記載される側面および特徴の組み合わせに限定されず、提供される側面および特徴の任意の組み合わせも含む。
【００２０】
本開示の１つ以上の実装の詳細が、添付の図面および以下の説明に記載される。本開示の他の特徴および利点は、本記載および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００２１】
【図１】本開示の実装による、ネットワークレーティング予測のための例示のシステムおよびエンジンを示す。
【図２】本開示の実装による、レーティング予測の例示の応用の概略図を示す。
【図３】本開示の実装による、レーティング予測において用いられてもよい例示の言語処理の概略図を示す。
【図４】本開示の実装による、分散型並列モデル構築を用いる例示の深層畳み込みニューラルネットワーク構造の概略図を示す。
【図５】本開示の実装による、分散型並列モデル構築の例を示す概略図を示す。
【図６】本開示の実装による、分散型並列モデル構築の例示のシステムを示す。
【図７】本開示の実装による、モデルを訓練する例示のプロセスのフロー図を示す。
【図８】本開示の実装による、例示の教師なし事前訓練プロセスの概略図を示す。
【図９】図９Ａおよび図９Ｂは、それぞれ、本開示の実装による、ユーザモーメント特徴融合を用いない予測誤差分布、およびそれを用いる予測誤差分布の概略図を示す。
【図１０】本開示の実装による、ユーザモーメント特徴融合のための例示のプロセスの図を示す。
【図１１】本開示の実装による、適応型過剰適合低減のための例示のプロセスの図を示す。
【図１２】本開示の実装による、ネットワークレーティング予測のための例示のシステムを示す。
【図１３】本開示の実装による、レーティング予測のための例示のユースケースの図を示す。
【図１４】本開示の実装による、例示のコンピューティングシステムを示す。
【発明を実施するための形態】
【００２２】
本開示の実装は、モデルを構築および適用してテキストレビューおよびコメントからレーティングを予測するレーティング予測エンジンを対象とする。このエンジンは、深層畳み込みニューラルネットワーク（ＣＮＮ）を用いる分散型並列モデル構築により、複数の（例えば市場）セグメントに対する複数の精密ターゲットモデルを同時に構築することができる。
このエンジンはさらに、ユーザステータスおよびコンテキスト情報を組み入れて、モデル構築のための従来の方法と比較してより優れたパフォーマンスおよびより正確な予測を提供することができる。場合によっては、本願明細書に記載される手法は、推薦サービスにおいて、項目の元の作成者がレーティングを含めなかった場合および／またはパブリケーションチャンネルがレーティング入力のメカニズムを提供しない場合に、レビューまたはその他公開される項目について個人的レーティングを予測するために使用できる。本願明細書に記載される手法は、業務最適化サービスにおいて、サービスレベルの満足度を予測するために使用することができる。この手法はさらに、インバウンド戦略サービスにおいて観光資源およびインフラストラクチャを評価するため、および／またはその他の適切な利用シナリオにおいて使用できる。
【００２３】
図１は、本開示の実装による、ネットワークレーティング予測のための例示のシステムおよびエンジンを示す。図１の例に示されるとおり、本システムは、任意の適切な数およびタイプのコンピューティングデバイスの、１つ以上のサーバコンピューティングデバイス（単数または複数）１０４を含んでもよい。サーバコンピューティングデバイス（単数または複数）１０４は、予測エンジン１１０および１つ以上のデータインターフェース１０６を実行する。サーバコンピューティングデバイス（単数または複数）１０４はさらに、任意の適切なタイプのデータストレージ１０８を含むことができる。一部の実装において、データストレージ１０８は、サーバコンピューティングデバイス（単数または複数）１０４の外部にあって、１つ以上のネットワークを介してアクセス可能であってもよい。
【００２４】
データインターフェース（単数または複数）１０６は、レビューデータ１０２（１）およびレビューデータ１０２（２）を受信してもよい。レビューデータの各セットは、ソーシャルネットワーク、レビューサイト、ｅコマースサイト、および／または他の公開チャンネルに投稿された任意の適切な数の公開レビューを含んでもよい。例えば個人は、食事をしたレストラン、訪問した観光名所、および／または他の場所のレビューを書いて投稿してもよい。各レビューは、テキストデータを含む任意の適当な量のデータを含んでもよい。レビューデータ１０２（１）は、レビュー対象の場所での作成者の体験の定量的尺度を提供する１〜５個の星のレーティングなどの関連するレーティングとともに投稿されたレビューを含む。レビューデータ１０２（２）は、関連するレーティングなしで投稿されたレビューを含む。そのような事例では、作成者がレーティングを省略したのかもしれないし、さらに／またはレビューが投稿されたサイトが数値その他のタイプのレーティングの投稿をサポートしていないのかもしれない。レビューデータ１０２（１）および１０２（２）はさらに、作成者のユーザプロファイルデータ、作成者が購入した製品および／またはサービスについて説明する購入データ、レビューを投稿した作成者の地理的位置を記述する位置情報（例えばジオタグ）など、投稿されたレビューに関連する他の情報および／またはメタデータを含むこともある。
【００２５】
レビューデータ１０２（１）および１０２（２）は、データインターフェース（単数または複数）１０６により受信されてもよく、データインターフェースは、レビューデータ１０２（１）および１０２（２）をデータストレージ１０８に記憶する。データインターフェース（単数または複数）１０６は、レビューが公開されていたチャンネルからレビューをプルすること、レビューを探してチャンネルを検索すること、および／またはパブリケーションチャンネル（単数または複数）からのレビューデータの（例えばライブ、リアルタイム）フィードおよび／またはストリームをレビューすることを含め、レビューデータを受信するための様々な方法をサポートする。データストレージ１０８は、クラウドサービス、データウェアハウス、分散型ビッグデータプラットフォーム、リレーショナルおよび／または非リレーショナルデータベースなど、任意の適切なタイプのデータストレージとしてもよい。予測エンジン１１０は、レビューデータ１０２（１）およびレビューデータ１０２（２）をデータストレージ１０８から取得してもよい。あるいは、データストレージ１０８でのデータの中間的な記憶なしで、予測エンジン１１０はレビューデータ１０２（１）および／またはレビューデータ１０２（２）をデータインターフェース（単数または複数）１０６から受信してもよい。
【００２６】
予測エンジン１１０は、１つ以上の予測モデル１２０を構築し、その予測モデル（単数または複数）１２０を使用して予測結果１２２を生成してもよい。予測結果１２２は、サーバコンピューティングデバイス（単数または複数）１０４および／または他の場所に記憶されてもよく、マーケティング専門家などのデータコンシューマによる表示および使用のために１つ以上の予測出力デバイス１２４に伝送されてもよい。予測結果１２２は、レビューデータ１０２（２）中の各レビューに関して、仮に作成者がレーティングを含めたとしたら、および／または仮にパブリケーションチャンネルが投稿レビューとともにレーティングを提供することをサポートしていたら、作成者が含めたであろうレーティングの予測を含んでもよい。
よって、予測結果１２２は、以前レーティングされていない各レビューについて、レビューされる場所に関するレビュー作成者の満足度または不満度のレベルの定量的な尺度である予測されたレーティングを提供する。
【００２７】
実装は、ＣＮＮを用いた深層学習を使用する分散型並列モデル構築により予測モデル１２０を構築する、予測エンジン１１０を提供する。分散型並列モデル構築に関して、実装は、深層学習技術を使用して大規模モデルを並列構築するためのフレームワークを提供する。一部の実装では、予測エンジン１１０はさらに、ヒューリスティック教師なし事前訓練、ユーザモーメント特徴融合、および／または適応型過剰適合低減を用いてモデル（単数または複数）１２０を生成する。かかる特徴を適用するために、予測エンジン１１０は、事前訓練モジュール（単数または複数）１１４、特徴融合モジュール（単数または複数）１１６、および／または過剰適合低減モジュール（単数または複数）１１８などのモデル構築モジュール１１２を含む。ヒューリスティック教師なし事前訓練は、深層学習手法において、モデルの精度を向上させるために使用される。実装は、ヒューリスティック法を用いてこのプロセスを誘導し、従来の手法と比較して訓練プロセスの効率を向上させる。ユーザモーメント特徴融合は、（例えばデジタルマーケティングのコンテキストにおいて）カスタマイズされた特定の特徴（単数または複数）を活用する。本願明細書で使用するユーザモーメントとは、検索傾向、関心を示した製品またはトピックなど、個人のオンラインでの挙動に関係する個人の特性または属性である。適応型過剰適合低減は、自動調節メカニズムを提供して、モデル構築プロセスにおけるパフォーマンス対精度のバランスをとる。これら各側面、すなわち分散型並列モデル構築、ヒューリスティック教師なし事前訓練、ユーザモーメント特徴融合、および適応型過剰適合低減は、さらに詳しく後述される。
【００２８】
従来、深層学習の手法は、分類に焦点をあててきた。本願明細書に記載される実装は、深層学習の用途を回帰法に拡大する。実装は、大規模モデルを並行して築くことにより、従来のモデル生成手法と比較して、モデルを構築するために必要な時間を低減し、より正確な予測を生成するモデルを提供する。
【００２９】
予測されたレーティングは、様々なデータコンシューマに様々な状況で提供されてもよい。例えば、予測されたレーティングは、各個人に個人向けの推奨を生成しようとするマーケティング組織またはその他事業体に提供されてもよい。予測されたレーティングにより、提示される商品および／またはサービス、提案される旅行先、提案されるメディア消費のオプション、提案される訪問場所などに関して、より正確なおよび／またはより深く個人向けにされた推奨が各個人に対し生成できるようになってもよい。別の例として、予測されたレーティングは、ビジネスオーナーおよび／または他のサービスプロバイダに提供されて、そうした事業体が顧客の満足度レベルをより正確に把握できるようにしてもよい。別の例として、予測されたレーティングは、資源および／またはインフラストラクチャの評価および／または改善事業での使用のために公共部門の事業体に提供されてもよい。実装は、他の適切なユースケースもサポートする。
【００３０】
例示のユースケースでは、レーティング予測は、宣伝広告キャンペーンを評価および／または開発するために使用されてもよい。例えば、レビューデータ１０２（１）の中の第１セットのレビューは、投稿を行う個人により提供されるレーティングとともに投稿されてもよく、かかるレビューは、特定の宣伝広告キャンペーンへの反応として投稿されるものである。投稿されたレビューのレーティングが取得されて、予測モデル（単数または複数）を訓練するためにレビューのテキストとともに使用されてもよい。一部の実装では、予測モデル（単数または複数）は、同じまたは異なるチャンネル（例えばソーシャルネットワーク、ｅコマースサイト、レビューサイトなど）からの、レーティングありの過去の類似レビューを含むオフラインデータを使用して訓練される。新たに投稿されたレビューがレーティングとともに利用可能であれば、モデル（単数または複数）はかかるオンラインデータを用いてさらに増分的に訓練されてもよい。モデル（単数または複数）は、レビューデータ１０２（２）の中の第２セットのレビューに適用されてもよく、かかるレビューは、もともとは関連するレーティングとともに投稿されたものではなく、含まれた可能性のあるレーティングが予測される。一部の事例において、レビューデータ１０２（２）の予測されたレーティングを、レビューデータ１０２（１）のレーティングとともに、以前または現在のマーケティングキャンペーンの評価、新マーケティングキャンペーンの決定のための情報提供、および／またはその他目的に使用できる。
【００３１】
図２は、本開示の実装による、レーティング予測の例示の応用の概略図を示す。レビュー１０２（１）とともに投稿されたレーティングを使用して１つ以上のモデル１２０が訓練されてもよい。モデル（単数または複数）１２０は、当初はレーティングに関連付けられていない投稿されたレビュー１０２（２）についてレーティング１２２を予測するために用いられてもよい。示されている例では、以前にレーティングされていないレビュー１０２（２）は、第１の宣伝広告２０２（１）に反応してのコメントとして投稿されている。予測されたレーティング１２２は、後の１つ以上の宣伝広告２０２（２）を決定するために用いられてもよい。
【００３２】
図２に示されるとおり、一部の実装では、予測モデル（単数または複数）１２０は、同じまたは異なるチャンネル（例えばソーシャルネットワーク、ｅコマースサイト、レビューサイトなど）からの、レーティングありの過去の類似レビューを含むオフラインデータ１０２（１）（１）を使用して、オフラインモデル訓練２０６により初期に訓練される。初期モデル（単数または複数）１２０は、上述のとおり、レーティング１２２を予測するために使用されてもよい。新たに投稿されたレビュー、または他のタイプのレーティングつきデータ１０２（１）（２）が（例えばオンラインデータとして）利用可能になると、かかる情報が、オンラインモデル増分訓練２０４においてモデル（単数または複数）１２０を増分的に訓練（例えば更新）するために使用されてもよい。そのような更新は、モデル（単数または複数）がより正確な予測を提供するようにモデル（単数または複数）１２０を洗練してもよい。実装は、モデル（単数または複数）１２０がレーティングありの利用可能なデータ１０２（１）（２）に基づき増分的に更新される任意の適切な数の反復をサポートする。
【００３３】
一部の例において、レーティング予測は、キャンペーン最適化などのインタラクティブな応用で使用できる。キャンペーンセッションは、一連の宣伝広告（例えば広告）投稿を含むことがある。モデルが使用されて、様々なユーザのコメントおよび／またはその他レビューから定量的なレーティングが予測されてもよい。次に、予測されたレーティングが使用されて、次に続く広告投稿が調整され速いペースおよび／またはリアルタイムでプロモーション効果が最適化されてもよい。本願明細書に記載されるレーティング予測は、宣伝広告またはマーケティングに関係しない他のシナリオまたは環境においても使用されてもよい。
【００３４】
レーティング予測は、以前利用可能であったソリューションと比較して様々な利点を提供するかもしれない。マーケティング、ビジネス管理、政策決定、および／または他のコンテキストでは、ユーザ（例えば消費者）のレーティングは貴重なデータであり、通常は、レーティング情報が含まれない一般的に入手可能なレビューデータと比較して不足していて費用がかかる。実装は、（例えばビッグデータ）レビューのレーティング情報への変換を可能にし、そのサービスのレベルを定量化しようとする組織に付加価値をもたらす。インバウンドマーケティング担当者は、予測されたレーティングを使用して、以前レーティングされていないレビューデータから変換された、細かくセグメント化された顧客プリファレンス情報を取得することができ、これが、ニッチなインバウンド市場セグメントをもカバーし得るより優れた市場戦略の推奨に使用される。インバウンドビジネスのオーナーおよびサービスプロバイダは、個々のレーティングを集約することにより顧客満足度のレベルを（例えばリアルタイムで）監視することができ、その結果、より速いペースでそのビジネスプロセスを改善することができる。政府および公共団体の観光局は、観光資源およびインフラ環境を評価するために、さらに集約されたレーティングの提供を受けることができる。そのようなレーティング予測情報は、インバウンド政策決定その他の状況において使用されてもよい。デジタルマーケティング担当者は、広告投稿に反応して（例えば下方に）公開されるユーザコメントにモデルを適用することで予測される、広告投稿の定量的な効果測定結果を適時に得ることができる。そのような測定結果を使用してキャンペーンを最適化できる。
【００３５】
予測エンジンにより構築されたモデルを使用して、ユーザのコメントから広告投稿のレーティングを予測できる。その後、予測されたレーティングを使用して、次に続く広告投稿の最適化プロセスを誘導でき、その広告投稿は次に、その後の広告投稿を最適化するためレーティング予測により分析されてもよく、任意の適切な数の反復にわたって同様にされる。このアプローチはＡ／Ｂテストと組み合わせることもでき、その結果、広告に反応して公開されるユーザコメントに応答して迅速に効果が測定される。
【００３６】
図３は、本開示の実装による、レーティング予測において用いられてもよい例示の言語処理の概略図を示す。一部の実装において、予測エンジン１１０は、入力レビューデータを使用してモデル（単数または複数）を訓練する前の準備段階として、言語特有トークン化および／または単語埋め込みを用いる。各レビューの入力自然言語テキスト３０２がテキストセグメンテーションにより分析されて、各レビューのセグメント化バージョン３０４が生成されてもよい。セグメント化バージョンは、単語、フレーズ、ピクトグラム、および／またはその他もとのレビューに含まれるテキストの部分のリストであってもよい。次に単語埋め込みがセグメント化テキスト３０４に適用されて、レビューのベクトル化バージョン３０６が生成されてもよい。
【００３７】
深層学習に基づく手法を適用するために、自然言語テキストが（例えば形式の整った）ベクトル化データに変換される。かかるデータはｄｏｃイメージとも呼ばれる。準備プロセスは、形態素解析またはトークン化としても周知のテキストセグメンテーションおよび単語埋め込みを含む。深層学習における入力自然言語のベクトル変換に関して、実装は、テキストをｄｏｃイメージに変換できる任意の自然言語を使用して書かれたレビューの、任意の分析をサポートする。テキスト（例えばレビューまたは他の文書）の一部が、単語またはフレーズなどの意味のある単位のシーケンスにセグメント化される。これは、英語などの一部の言語では単純な場合もあり、または日本語、中国語などの文字ベースの言語ではより複雑な場合もある。統計モデルに基づいて、単語のセットが数値ベクトルのセットにマッピングされる。このような、文書のベクトル化データのシーケンスが、文書の２Ｄイメージであるｄｏｃイメージを構成する。その後、ベクトル化データは、モデルを生成するために後の処理で使用される。ベクトル化は、レーティング予測のためにモデル（単数または複数）に提供されるレーティングつきでないレビューの前処理にも使用される。
【００３８】
図４は、本開示の実装による、分散型並列モデル構築を用いる例示の深層ＣＮＮ構造の概略図を示す。本例に示されるように、この構造は、異なるレベルの特異性の畳み込みプーリング層４０２を含んでもよい。例えば層４０２は、フレーズ特徴マップ群、センテンス特徴マップ群、パラグラフ特徴マップ群、および／またはコンテキスト特徴マップ群を含んでもよい。入力レビューデータ１０２（２）を並列処理のために様々な層に分配して、時間を節約しかつ／またはコンピューティング資源をより効率的に使用することができる。スタック化層が、各層４０２からの出力として生成されてもよい。図４は、４つの層４０２が用いられる例を示しているが、実装は適宜、より多いまたはより少ない層４０２を含んでもよい。よって、同じ構造または異なる構造をもつ１つ以上のスタック化畳み込みおよび／またはプーリング層を、層４０２に追加的に挿入できる。畳み込みおよび／またはプーリング層４０２は、ヒューリスティック教師なし事前訓練を実装する。
【００３９】
スタック化層は、次のステップ、特徴統合および／または融合４０４において統合された特徴として組み合わされてもよい。特徴統合および／または融合４０４により、統合された特徴はさらに後述されるようにユーザモーメント特徴と組み合わされる。一部の実装において、組み合わされた特徴が過剰適合低減４０６により削減され、予測結果１２２を生成するために次に用いられる（例えば全）結合層４０８に提供される。
【００４０】
本願明細書の例は、予測されるレーティングを数値スケール（例えば１〜５個の星）のレーティングとして記載することもあるが、レーティングは他の形式とすることもできる。例えばモデル（単数または複数）は、分類（例えば賛成対反対または他の２値意見の分類）ならびに回帰（例えば５点レーティングの予測）のために使用できる。畳み込みニューロン層は、ＣＮＮにおいて特徴マップとも呼ばれる。例えばフレーズ、センテンス、パラグラフ、およびコンテキストなど、ＣＮＮの種々の層に対応する異なる４つの群が使用されて、入力テキストの種々の側面を特異性の種々の程度まで分析し、テキスト内の種々のレベルにおける意味を捕捉することができる。より広範な（例えば特異性がより低い）特徴マップは、より多数のニューロンに対応するより大量のコンピューティング資源を消費する。例えばコンテキスト特徴マップ層は、パラグラフ特徴マップ層よりも多くの資源を消費し、それ以外も同様である。
【００４１】
過剰適合低減ステップ４０６では、１つ以上の特徴がランダムにドロップアウトされ、さらなる処理から省略されてもよい。あるいは、特定の特徴がレーティングの焦点に依存してドロップアウトされる、焦点を絞った特徴削減が用いられてもよい。例えば焦点は、場所一般のレーティングではなく、特定の１つ以上のレストランに関係するレーティングを決定することであってもよく、したがって、場所関係の特徴はドロップアウトされてもよい。この焦点を絞った特徴削減は、保持された特徴に関係するより正確なレーティングにつながってもよい。一般に、過剰適合の低減は、精度とパフォーマンスとのトレードオフを伴う。特徴がより少ないと、モデルを訓練する際により高いパフォーマンスが提供されるかもしれないが、削減なしの場合に出力されるであろうモデルよりも少なくともいくつかの側面において精度が低いモデルが生成されるかもしれない。
【００４２】
従来の深層モデル構築プロセスは、一般に、連続したタスクの単一のセットを含む。例えば、従来のモデル構築プロセスでは、第１のエポックが連続的に（例えば順次）実行される第１のセットのミニバッチを含み、その後、連続的に実行される第２のセットのミニバッチを含む第２のエポックが続くなどし得る。各ミニバッチは、ミニバッチデータを取り出し、確率的勾配を計算し、モデルを更新する各ステップを含むこともある。すべてのエポックならびにエポックに含まれるミニバッチは、従来、１つのノード上で実行され、処理を行うノードに相当な負荷をもたらし、拡張性の欠如につながる。
【００４３】
図５は、本開示の実装による、分散型並列モデル構築の例を示す概略図を示す。図５の例では、任意の適切な数の計算ノード５０２が並列モデル構築のために用いられる。各ノード５０２は、任意の適切な数のトランザクション５０４を実行してもよく、各トランザクションは、ディスパッチ可能なモデル構築トランザクションである。トランザクション５０４は、モデル状態（例えばニューロン変数）、ミニバッチデータセット、学習設定（例えばハイパーパラメータ）などを含んでもよい。市場が高度にセグメント化されたシナリオでは、セグメント特有モデルが使用される。実装は、高い拡張性で複数の深層ＣＮＮモデルを同時に訓練できる分散型並列モデル構築パラダイムを用い、その結果、多数のセグメント特有モデル、および／または同じ訓練目的のものであるが異なるハイパーパラメータ設定をもつモデル（例えばグリッドサーチ法によって訓練されるもの）が同時に並列訓練されてもよい。分散型並列モデル構築パラダイムは拡張性が高く、モデル構築のためのその容量は、動的とすることができ、使用される計算ノード５０２の数を設定することによって調整される。
【００４４】
本願明細書に記載される実装では、分散型並列モデル構築が、訓練プロセスをディスパッチ可能な構築トランザクション５０４に分割することを可能にし、この構築トランザクション５０４を、並列処理およびノード５０２間のロードバランシングのためにノード５０２間に分散できる。特定のモデルのためのモデル構築タスクは、ノード間での並列化のため個別のモデル構築トランザクションに分割される。複数のノードは、異なるモデルを同時に並列訓練するためにも使用される。ノード間で様々なトランザクションをシフトして負荷のバランスをとり並列性を最適化するために、スケジューラが用いられてもよい。例えば、特定のノードに対する負荷が閾値処理負荷に達したかまたはそれを超えたと判断されれば、適切なトランザクションが他のノード（単数または複数）に移行されて、より多く使用されているノードの負荷を軽減してもよい。一部の事例では、設定された閾値を訓練スコアが上回るかまたは下回る場合、１つ以上の訓練タスクが予想よりも早期に（例えば計画された完了時間よりも早期に）終了することもある。一部の事例では、利用可能な計算資源の使用を最適化する追加の手法として、スケジューラは、そのような早期終了状況を（例えば即座に）検出し、早期終了したタスクが実行されていたノードに他のモデル構築トランザクションをスケジュールすることができる。
【００４５】
図６は、本開示の実装による、分散型並列モデル構築の例示のシステムを示す。一部の実装において、分散型並列モデル構築システムは、ディスパッチ可能なトランザクションパッケージを作成するモデル構築プランナ６０６と、計算ノード５０２間の訓練の進行を動的に調整するモデル構築スケジューラ６１０とを含む。各ノード５０２は、そのノード５０２上のローカル訓練プロセスを監視および制御するローカルマネージャを実行する。モジュール６０８および６１０ならびにノード５０２は、並列演算をサポートするデータプラットフォーム６１２（例えばビッグデータプラットフォームおよび／またはクラウドコンピューティング環境）上で実行される。
【００４６】
プランナ６０６は、セグメントデータ６０２および入力データセット６０４を受信し、ディスパッチ可能モデル構築トランザクションプール６０８にディスパッチ可能なトランザクションを準備する。ディスパッチ可能なトランザクションは、データセット６０４および／または（例えば市場）セグメントデータ６０２に基づいて準備されてもよい。例えば、最大並列レベルはＮＭであり、その一方で、モデル構築スケジューラ６１０によって管理される最も細かい粒度を有するエンティティであるスケジュール可能なトランザクションの最大数は、ＮＭ×ＮＥ×ＮＭＢであり、ＮＭは、訓練するモデルの数であり、ＮＥは、１つの訓練タスクに対するエポックの数であり、ＮＭＢは、１つのエポックのミニバッチの数である。スケジューラ６１０は、プール６０８からトランザクションを取得し、様々なノード５０２上にトランザクションの実行をスケジュールする。一部の実装において、スケジューラ６１０は、並列モデル構築プロセスにおける効率性を最大化するために計算ノード５０２間の構築負荷のバランスをとる。各ノード５０２上の各ローカルマネージャは、各ノード５０２の現在の負荷および／または未使用の処理能力を示すために、ステータスを監視してスケジューラ６１０と通信することができる。一部の実装において、ノード５０２は、ＣＰＵおよび／またはＧＰＵコンピュータインスタンスを含むことができ、それぞれが、モデル構築プロセスで使用される訓練トランザクションパッケージをキャッシュする適切なメモリ領域をもつ。
【００４７】
一部の実装において、分散型並列モデル構築を可能にするために、訓練データセット全体がモデル状態および学習設定とともに複数のディスパッチ可能なモデル構築トランザクションに分割されることが可能な、訓練パラダイムが用いられる。モデル構築プランナ６０６、モデル構築スケジューラ６１０、およびノード５０２のローカルマネージャは、それら自体の間で調整を行って、すべての計算ノード間の作業負荷を最適化する結果、モデル（単数または複数）を構築するのに必要な訓練時間を短縮する。
【００４８】
図７は、本開示の実装による、モデルを訓練する例示のプロセスのフロー図を示す。プロセスの動作は、サーバコンピューティングデバイス（単数または複数）１０４上または他の場所で実行される予測エンジン１１０、モデル構築モジュール（単数または複数）１１２、データインターフェース（単数または複数）１０６、および／または他のソフトウェアモジュール（単数または複数）によって実行できる。
【００４９】
モデルを訓練するため現在の訓練セッションが開始して（７０２）、ニューロン重みが初期化される（７０４）。一部の実装において、ニューロン重みはランダム値で初期化される。モデルは、教師なし訓練を使用して事前訓練される（７０６）。次に、教師あり訓練を使用してモデルが訓練される（７０８）。モデルが検証され（７１０）、そのパフォーマンスが確認される。その後、現在の訓練セッションが終了してもよい（７１２）。
【００５０】
深層学習における課題の１つは、ニューロンの重みの大域的最適解を効率的に発見する方法である。本願明細書に記載される実装では、この問題に対処するために、ヒューリスティック教師なし事前訓練方式が訓練プロセスに組み入れられる。従来の訓練プロセスは、教師あり訓練を使用して深層ＣＮＮモデルを訓練する場合もあり、最適解の発見を試みるために訓練を多数回、繰り返す場合もある。ヒューリスティック教師なし事前訓練ステップを訓練プロセスに組み込むことによって、実装は、訓練がより効率的に進行することを可能にする重要な特徴を、従来のプロセスで使用される反復なしに捕捉する。
【００５１】
図８は、本開示の実装による、例示の教師なし事前訓練プロセスの概略図を示す。図８のプロセスは、図７のプロセスの一部（例えばステップ７０６）として実行でき、分析される入力テキストの重要な特徴を保持するように動作してもよい。入力データ８０２（例えばレーティング情報のないラベルなしデータ）が、上述したベクトルのセットに変換され、エンコーダによって処理されて、特徴マップ８０４が求められてもよい。次いで、符号化された特徴マップがデコーダ８０６に提供されてもよく、ベクトルに基づいて復号データ８０８が生成される。乖離分析８１０が実行されて、元の入力データ８０２と、復号データ８０８の復元されたテキストとが比較されてもよい。２つの間の乖離（例えば差）が小さく、後述の乖離コスト関数の所定の閾値を下回る場合、事前訓練プロセスにより重要な特徴が捕捉されたと判断される。そうでない場合、別のベクトル化を試行でき、プロセスが繰り返されてもよい。乖離コスト関数が閾値を下回るまで、プロセスがこのように反復されてもよい。
【００５２】
図８に示すように、実装は、スタック化エンコーダ・デコーダアプローチを用いて教師なし事前訓練を実行し、特徴マップにラベルなしデータから重要な特徴を強制的に学習させる。１つの２次デコーダニューロン層が、モデルの各ニューロン層に対して作成される。入力と復号されたデータとの間の乖離が、事前訓練プロセスを誘導するために使用される。ヒューリスティックコスト関数は絶対差（例えば平均二乗誤差（ＭＳＥ：ｍｅａｎ  ｓｑｕａｒｅｄ  ｅｒｒｏｒ））および分布の差異（例えばカルバック・ライブラー（ＫＬ：Ｋｕｌｌｂａｃｋ−Ｌｅｉｂｌｅｒ）乖離）の両方を捕捉する。多層ＣＮＮの場合、事前訓練は層ごと（スタック化）の形で行われる。前の層の事前訓練の直後に次の層が事前訓練される。下記例示の式１は、用いられてもよい順方向畳み込みを用いる符号化関数の例を示す。下記例示の式２は、用いられてもよい逆方向畳み込みを用いる復号関数の例を示す。下記例示の式３は、乖離の尺度を提供するために用いられてもよいヒューリスティックコスト関数の例を示す。ヒューリスティックコスト関数のハイパーパラメータ（α，θ）は、このプロセスを微調節するのに役立つ。
【００５３】
【数１】
2018190396.tif 000003
【００５４】
ヒューリスティックコスト関数は、絶対差と分布の差異との両方を捕捉し、ラベルなしの入力データから重要な特徴を学習するようにモデルをより良好に誘導する。スケール重みαおよびバランス重みθを含むハイパーパラメータは、異なるドメインからの入力データを使用する応用のコスト関数を調整するのに役立つ。
【００５５】
図９Ａおよび図９Ｂは、それぞれ、本開示の実装による、ユーザモーメント特徴融合を用いない予測誤差分布、およびそれを用いる予測誤差分布の概略図を示す。一部の実装において、予測されるレーティングは、ユーザモーメントと呼ばれるユーザの特定のステータスおよび／またはコンテキストにも依存する。ユーザモーメントは、ユーザが従事したいアクションのタイプ（例えば観光、レストランでの食事など）、ユーザの関心など、ユーザ特性を示す１つ以上の特徴を含んでもよい。ユーザモーメント情報は、最近の検索語、ユーザ購入情報、ウェブブラウジング活動など、他のチャンネルを介して決定できる。ユーザモーメント情報を予測プロセスに組み入れることにより、予測精度をさらに向上させることができる。ユーザモーメント情報の変数はカテゴリ別であり、ＣＮＮの構造の柔軟性がそのような情報を容易に分析に組み入れることを可能にする。
【００５６】
示されている例では、モデル空間は４かける３行列のセグメントに配列され、各セグメント（例えば例示の行列の各セル）に対してモデルが構築される。図９Ａは、ユーザモーメント情報を用いない例を示す。最終結果において異なるモーメントに対応する誤差分布が混在するため、最終予測誤差は広範囲に分布する。図９Ｂの例に示されるように、モーメント情報を用いることで誤差分布の範囲を狭めることができる。
【００５７】
図１０は、本開示の実装による、ユーザモーメント特徴融合のための例示のプロセスの図を示す。任意の適切な数のモーメントカテゴリ変数１００８が定義されてもよい（１００２）。示されている例では、変数は、旅行の段階、時間モーメント、および活動モーメントを表現するカテゴリ変数にグループ化される。モーメント変数は、１つ以上のダミー変数１０１０によってモーメント特徴１０１２に変換される（１００４）。次にモーメント特徴１０１２は、ｄｏｃイメージ特徴１０１４と融合（１００６）され（例えば組み合わされ）、融合された特徴１０１６のセットが生成されてもよく、この融合された特徴１０１６のセットが後続の処理に用いられてもよい。
【００５８】
ユーザモーメントは、ドメイン知識および／または実践に基づいて定義できる。例えば、インバウンドマーケティングのシナリオにおいて、段階モーメント、時間モーメント、活動モーメントの３つのモーメントカテゴリが定義される。ユーザモーメント情報は、まずカテゴリ変数のセットにマッピングされ、変換器モジュールは、カテゴリモーメント変数をダミー数に変換する。ダミーモーメント変数は、ｄｏｃイメージデータから変換された統合された特徴と融合される追加のベクトルとして編成される。予測精度をさらに改善するために、ドメイン特有の情報および実践が深層学習ベースのモデル構築と組み合わされ、ユーザモーメント情報を深層ＣＮＮモデルに融合できる。
【００５９】
図１１は、本開示の実装による、適応型過剰適合低減のための例示のプロセスの図を示す。一部の実装では、適応型（例えばランダム）ドロップアウトメカニズムが用いられ、訓練プロセスに存在し得る過剰適合が低減される。過剰適合は、モデルがより有用な情報を学習せずに、ノイズおよび／または取るに足らない情報を誤って学習するときに発生する。ニューロンの数が典型的に非常に多い（例えば数百万）ことを考慮すると、深層学習応用は過剰適合の影響を特に受けやすいかもしれない。
【００６０】
ドロップアウトメカニズムを適用することによって、訓練データの比較的小さなセットを使用するときでさえも過剰適合が大幅に低減される。一方、トレードオフ効果としてＣＮＮモデルの学習能力もある程度弱まる。（例えばランダムな）ドロップアウトの強度を動的に調整するために適応型方式が用いられ、その結果、調節の労力が軽減される。訓練データセットが小さすぎると、反復する複数エポック訓練が、取るに足らない情報しか学習できない一部の特定のニューロン間にハードリンクを発生させるかもしれない。（例えばランダムな）ドロップアウトメカニズムが、各訓練ステップにて或る比率に従ってニューロンの一部を無効にする（例えば除去する）。その結果、ハードリンクが切断されてもよく、過剰適合が低減される。
【００６１】
訓練コストおよび検証コスト両方が、各訓練ステップの後に同時に計算されてもよく、２つのコスト間の差が過剰適合の指標として使用されてもよい。より大きな差は、モデルに過剰適合の高リスクがあることを示す。ハイパーパラメータは、ランダムドロップアウトの強度を制御する。検出された過剰適合レベルが高い場合、強度が増大される。そうでない場合、強度は同じ値に維持されても、または低減されてもよい。下記例示の式４が、訓練対検証の差を計算するために使用されてもよい：
例示の式４  −  訓練−検証の差
ｄＴ−Ｖ＝｜ｃｏｓｔｔｒａｉｎｉｎｇ−ｃｏｓｔｖａｌｉｄａｔｉｏｎ｜
【００６２】
下記例示の式５が、強度ハイパーパラメータを計算するために使用されてもよい。
例示の式５  −  強度適応
Ｓ＝ａ０＋ａ１ｄＴ−Ｖ＋ａ２ｄ’Ｔ−Ｖ
【００６３】
例示の式５において、ａ０、ａ１、ａ２は、それぞれバイアス係数、差分係数、差分変化率係数である。例えばドロップアウトがランダムである事例では、下記例示の式６が使用されてドロップアウトが決定されてもよい。
例示の式６  −  ランダムドロップアウトマスク
Ｍ〜Ｐ（Ｓ）
【００６４】
例示の式６において、Ｐ（Ｓ）は、ベルヌーイ分布Ｂ（１，Ｓ）などのランダムカーネル関数である。下記例示の式７が使用されて、ドロップアウト演算が実行されてもよい。
例示の式７  −  ドロップアウト演算
【００６５】
【数２】
2018190396.tif 000004
【００６６】
一部の実装では、ドロップアウトマスクが特徴マップに適用される。値ゼロをもつマスクのビットは、対応する位置における当該ニューロンのドロップアウトを示す。動的ドロップアウトメカニズムが過剰適合を低減するために用いられる。強度ハイパーパラメータは、訓練データのコストと検証データのコストとの差の測定に基づく。基礎をなすハイパーパラメータが、強度調整メカニズムの微調節に使用されてもよい。
【００６７】
図１１の例に示されるように、訓練データ１１０２および検証データ１１０４が訓練反復１１０６への入力として提供されてもよく、訓練反復１１０６は、差分確認モジュール１１０に送信される出力１１０８を提供する。差分確認モジュール１１１０は、訓練データおよび検証データに対する訓練反復の出力の差を分析し、強度ハイパーパラメータ１１１２を決定する。ランダムドロップアウトマネージャ１１１４は、強度ハイパーパラメータを用いて特定のニューロンをランダムにドロップアウトする（１１１６）。その後、プロセスは必要に応じて反復してもよい。
【００６８】
システムに存在する過剰適合の程度を追跡するために、実装は、実質的に真の入力データセットの模倣である検証データセットを用いる。入力データは、検証データおよび真のデータを含む。強度ハイパーパラメータは、どれだけのデータがドロップアウトされるべきかを示すものであり、重要パフォーマンス指標と表現されてもよい。一部の事例では、差が大きければＳが増大される。差が小さければＳは削減される。
【００６９】
図１２は、本開示の実装による、ネットワークレーティング予測のための例示のシステムを示す。サーバコンピューティングデバイス（単数または複数）１０４は、少なくとも２つのデバイス群、すなわちモデル構築群１２０２およびレーティング予測群１２０４を含んでもよい。モデル構築群１２０２は、ＣＰＵおよび／またはＧＰＵノードなどの上述の様々な計算ノード５０２を含む。群１２０２はさらに、訓練データセット１２０６およびスケジューラ６１０などのスケジューラ１２０８を含んでもよい。スケジューラ１２０８は、計算ノード５０２を使用して分散型並列モデル構築により構築されたモデル（単数または複数）１２０を出力してもよい。
【００７０】
レーティング予測群１２０４は、変換およびロード１２１０、レーティング予測１２１２、ならびに出力伝送１２１４のための動作を実行するデバイスを含んでもよい。入力データ１２１８（例えばレーティングつきでないレビューデータ１０２（２））は、ゲートウェイ１２１６（１）を介して受信され、変換およびロード１２１０コンポーネントに提供される。変換およびロードの出力は、モデル（単数または複数）１２０を用いて入力データ１２１８のレーティングを予測するレーティング予測に送られる。データは、予測されたレーティングとともに出力伝送１２１４に送られ、出力伝送１２１４はゲートウェイ１２１６（２）を介して１つ以上のデータ消費デバイス、プロセス、および／または他のエンティティに出力データ１２２０を伝送する。
【００７１】
図１３は、本開示の実装による、レーティング予測のための例示のユースケースの図を示す。上述のとおり、モデル構築１３０２は、レーティングありのレビューに基づいてモデル（単数または複数）を構築するように動作し、モデル（単数または複数）はレーティング予測１３０４に使用され、レーティング予測１３０４では、以前レーティングされていないレビューが予測レーティングに関連付けられる。その後、レーティング予測があるレビューは、任意の適切な目的のために使用されてもよい。示された例では、文化、自然、買い物、イベントなどの様々なカテゴリに関係するプロモーション戦略および／または強化戦略をより正確に指揮するために予測が使用される。
【００７２】
図１４は、本開示の実装による、例示のコンピューティングシステムを示す。システム１４００は、本願明細書で説明される様々な実装に関して記載された動作のいずれのためにも使用されてもよい。例えばシステム１４００は、少なくとも部分的に、サーバコンピューティングデバイス（単数または複数）１０４、予測出力デバイス（単数または複数）１２４、計算ノード（単数または複数）５０２、および／またはデータプラットフォーム６１２など、本願明細書に記載する様々なコンピューティングデバイス（単数または複数）および／またはコンピューティングシステム（単数または複数）に含めることができる。システム１４００は、１つ以上のプロセッサ１４１０、メモリ１４２０、１つ以上のストレージデバイス１４３０、および１つ以上の入出力（Ｉ／Ｏ：ｉｎｐｕｔ／ｏｕｔｐｕｔ）インターフェース１４４０を介して制御可能な１つ以上のＩ／Ｏデバイス１４５０を含んでもよい。様々なコンポーネント１４１０、１４２０、１４３０、１４４０、または１４５０は、少なくとも１つのシステムバス１４６０を介して相互接続されてもよく、これにより、システム１４００の様々なモジュールおよびコンポーネント間のデータ転送が可能であってもよい。
【００７３】
プロセッサ（単数または複数）１４１０は、システム１４００内で実行される命令を処理するように構成されてもよい。プロセッサ（単数または複数）１４１０は、シングルスレッドプロセッサ（単数または複数）、マルチスレッドプロセッサ（単数または複数）、または両方を含むことができる。プロセッサ（単数または複数）１４１０は、メモリ１４２０またはストレージデバイス（単数または複数）１４３０に記憶された命令を処理するように構成されてもよい。プロセッサ（単数または複数）１４１０は、１つ以上のコアをそれぞれが含むハードウェアベースのプロセッサ（単数または複数）を含んでもよい。プロセッサ（単数または複数）１４１０は、汎用プロセッサ（単数または複数）、専用プロセッサ（単数または複数）、または両方を含んでもよい。
【００７４】
メモリ１４２０は、システム１４００内で情報を記憶してもよい。一部の実装において、メモリ１４２０は１つ以上のコンピュータ可読媒体を含む。メモリ１４２０は、任意の数の揮発性メモリユニット、任意の数の不揮発性メモリユニット、または揮発性メモリユニットおよび不揮発性メモリユニットの両方を含んでもよい。メモリ１４２０は、読み取り専用メモリ、ランダムアクセスメモリ、または両方を含んでもよい。一部の例において、メモリ１４２０は、１つ以上の実行中のソフトウェアモジュールによって、アクティブメモリまたは物理メモリとして用いられてもよい。
【００７５】
ストレージデバイス（単数または複数）１４３０は、システム１４００の（例えば永続）大容量ストレージを提供するように構成されてもよい。一部の実装において、ストレージデバイス（単数または複数）１４３０は１つ以上のコンピュータ可読媒体を含んでもよい。例えばストレージデバイス（単数または複数）１４３０は、フロッピーディスクデバイス、ハードディスクデバイス、光学ディスクデバイス、またはテープデバイスを含んでもよい。ストレージデバイス（単数または複数）１４３０は、読み取り専用メモリ、ランダムアクセスメモリ、または両方を含んでもよい。ストレージデバイス（単数または複数）１４３０は、内蔵ハードドライブ、外部ハードドライブ、またはリムーバブルドライブのうちの１つ以上を含んでもよい。
【００７６】
メモリ１４２０またはストレージデバイス（単数または複数）１４３０の一方または両方は、１つ以上のコンピュータ可読ストレージ媒体（ＣＲＳＭ：ｃｏｍｐｕｔｅｒ−ｒｅａｄａｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉａ）を含んでもよい。ＣＲＳＭは、電子ストレージ媒体、磁気ストレージ媒体、光学ストレージ媒体、磁気光学ストレージ媒体、量子ストレージ媒体、機械式コンピュータストレージ媒体などのうちの１つ以上を含んでもよい。ＣＲＳＭは、データ構造、プロセス、アプリケーション、プログラム、他のモジュール、またはシステム１４００の動作のための他のデータを記述するコンピュータ可読命令のストレージを提供してもよい。一部の実装において、ＣＲＳＭは、コンピュータ可読命令または他の情報のストレージを非一時的形式で提供するデータストアを含んでもよい。ＣＲＳＭは、システム１４００に組み込まれてもよいし、システム１４００に対して外部にあってもよい。ＣＲＳＭは、読み取り専用メモリ、ランダムアクセスメモリ、または両方を含んでもよい。コンピュータプログラム命令およびデータを有形に具現化するのに適した１つ以上のＣＲＳＭは、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含むがこれらに限定されない、任意のタイプの不揮発性メモリを含んでもよい。一部の例において、プロセッサ（単数または複数）１４１０およびメモリ１４２０は、１つ以上の特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）によって補足されるか、それに組み込まれてもよい。
【００７７】
システム１４００は、１つ以上のＩ／Ｏデバイス１４５０を含んでもよい。Ｉ／Ｏデバイス（単数または複数）１４５０は、キーボード、マウス、ペン、ゲームコントローラ、タッチ入力デバイス、音声入力デバイス（例えばマイクロフォン）、ジェスチャ入力デバイス、触覚入力デバイス、イメージもしくはビデオキャプチャデバイス（例えばカメラ）、またはその他デバイスなど、１つ以上の入力デバイスを含んでもよい。一部の例において、Ｉ／Ｏデバイス（単数または複数）１４５０は、ディスプレイ、ＬＥＤ（単数または複数）、音声出力デバイス（例えばスピーカ）、プリンタ、触覚出力デバイスなどの１つ以上の出力デバイスも含んでもよい。Ｉ／Ｏデバイス（単数または複数）１４５０は、システム１４００の１つ以上のコンピューティングデバイスに物理的に組み込まれてもよいし、またはシステム１４００の１つ以上のコンピューティングデバイスに対して外部にあってもよい。
【００７８】
システム１４００は、システム１４００のコンポーネントまたはモジュールが、Ｉ／Ｏデバイス（単数または複数）１４５０を制御し、それとインターフェースで接続し、またはその他の形で通信することを可能にする１つ以上のＩ／Ｏインターフェース１４４０を含んでもよい。Ｉ／Ｏインターフェース（単数または複数）１４４０は、情報が、シリアル通信、パラレル通信、または他のタイプの通信を介して、システム１４００内もしくは外へ、またはシステム１４００のコンポーネント間で転送されることを可能にしてもよい。例えばＩ／Ｏインターフェース（単数または複数）１４４０は、シリアルポート用のＲＳ−２３２規格の或るバージョン、またはパラレルポート用のＩＥＥＥ１２８４規格の或るバージョンに準拠してもよい。別の例として、Ｉ／Ｏインターフェース（単数または複数）１４４０は、ユニバーサルシリアルバス（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）またはイーサネットを介した接続を提供するように構成されてもよい。一部の例において、Ｉ／Ｏインターフェース（単数または複数）１４４０は、ＩＥＥＥ１３９４規格の或るバージョンに準拠するシリアル接続を提供するように構成されてもよい。
【００７９】
Ｉ／Ｏインターフェース（単数または複数）１４４０は、システム１４００内のコンピューティングデバイス間またはシステム１４００と他のネットワーク接続コンピューティングシステムとの間の通信を可能にする１つ以上のネットワークインターフェースも含んでもよい。ネットワークインターフェース（単数または複数）は、１つ以上のネットワークインターフェースコントローラ（ＮＩＣ：ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  ｃｏｎｔｒｏｌｌｅｒ）または任意のネットワークプロトコルを使用して１つ以上のネットワーク上で通信を送受信するように構成された他のタイプのトランシーバデバイスを含んでもよい。
【００８０】
システム１４００のコンピューティングデバイスは、１つ以上のネットワークを使用して、相互に、または他のコンピューティングデバイスと通信してもよい。かかるネットワークは、インターネットなどのパブリックネットワーク、施設内もしくはパーソナルイントラネットなどのプライベートネットワーク、またはプライベートネットワークおよびパブリックネットワークの任意の組み合せを含んでもよい。ネットワークは、ローカルエリアネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ワイドエリアネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、無線ＷＡＮ（ＷＷＡＮ：ｗｉｒｅｌｅｓｓ  ＷＡＮ）、無線ＬＡＮ（ＷＬＡＮ：ｗｉｒｅｌｅｓｓ  ＬＡＮ）、モバイル通信ネットワーク（例えば３Ｇ、４Ｇ、Ｅｄｇｅなど）などを含むがこれらに限定されない、任意のタイプの有線または無線ネットワークを含んでもよい。一部の実装において、コンピューティングデバイス間の通信が暗号化されても、その他の形でセキュアにされてもよい。例えば通信は、セキュアソケット層（ＳＳＬ：Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）またはトランスポート層セキュリティ（ＴＬＳ：Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）プロトコルの任意のバージョンなどのセキュリティプロトコルによってサポートされる１つ以上の公開もしくは秘密暗号鍵、暗号、デジタル証明書、または他の証明書を用いてもよい。
【００８１】
システム１４００は、任意のタイプのコンピューティングデバイスを任意の数含んでもよい。コンピューティングデバイス（単数または複数）は、パーソナルコンピュータ、スマートフォン、タブレットコンピュータ、ウェアラブルコンピュータ、埋込型コンピュータ、モバイルゲームデバイス、電子書籍リーダ、自動車用コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ゲーム機、家庭用娯楽デバイス、ネットワークコンピュータ、サーバコンピュータ、メインフレームコンピュータ、分散型コンピューティングデバイス（例えばクラウドコンピューティングデバイス）、マイクロコンピュータ、システムオンチップ（ＳｏＣ：ｓｙｓｔｅｍ  ｏｎ  ａ  ｃｈｉｐ）、システムインパッケージ（ＳｉＰ：ｓｙｓｔｅｍ  ｉｎ  ａ  ｐａｃｋａｇｅ）などを含んでもよいが、これらに限定はされない。本明細書の例は、コンピューティングデバイス（単数または複数）を物理デバイス（単数または複数）として記載することもあるが、実装はそのように限定されない。一部の例において、コンピューティングデバイスは、１つ以上の物理コンピューティングデバイス上で実行される仮想コンピューティング環境、ハイパーバイザ、エミュレーション、または仮想マシンのうちの１つ以上を含んでもよい。一部の例において、２つ以上のコンピューティングデバイスは、ロードバランシング、フェイルオーバサポート、並列処理能力、共有ストレージ資源、共有ネットワーキング能力、または他の側面を提供するために各動作を連繋する複数のデバイスのクラスタ、クラウド、ファーム、またはその他集合を含んでもよい。
【００８２】
本明細書に記載される実装および機能動作のすべては、デジタル電子回路において、または本明細書で開示された構造およびその構造上の等価物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそのうちの１つ以上の組み合わせにおいて実現されてもよい。実装は、１つ以上のコンピュータプログラム製品として、すなわちデータ処理装置により実行されるよう、またはデータ処理装置の動作を制御するよう、コンピュータ可読媒体上にコード化されたコンピュータプログラム命令の１つ以上のモジュールとして、実現されてもよい。コンピュータ可読媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、メモリデバイス、機械可読伝播信号をもたらす物質の構成、またはその１つ以上の組み合わせとされてもよい。「コンピューティングシステム」という用語は、データを処理するすべての装置、デバイスおよび機械を包含し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む。この装置は、ハードウェアに加えて、対象のコンピュータプログラムの実行環境を作り出すコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはその１つ以上の組み合わせなどを構成するコードを含んでもよい。伝播信号とは、人工的に生成された信号、例えば適切な受信機装置に伝送される情報をコード化するために生成される機械生成された電気信号、光信号、または電磁信号である。
【００８３】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる）は、コンパイル型またはインタープリタ型言語を含む任意の適切な形態のプログラミング言語で書かれてもよく、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、あるいはコンピューティング環境用に適した他のユニットとしてを含む、任意の適切な形態で展開されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部（例えば、マークアップ言語ドキュメントに格納される１つ以上のスクリプト）、対象のプログラム専用の単一ファイル、または複数の連携ファイル（例えば１つ以上のモジュール、サブプログラム、またはコードの一部を格納する複数ファイル）に格納されてもよい。コンピュータプログラムは、１つのコンピュータ上または１つの場所に位置するかもしくは複数の場所に分散し通信ネットワークにより相互接続された複数のコンピュータ上で実行されるよう展開されてもよい。
【００８４】
本明細書に記載されたプロセスおよび論理フローは、入力データに作用し出力を生成することにより機能を実行する１つ以上のコンピュータプログラムを実行する１つ以上のプログラマブルプロセッサによって実行されてもよい。プロセスおよび論理フローはさらに、例えばＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ：フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）などの専用論理回路により実行されてもよく、装置はさらに、該専用論理回路として実装されてもよい。
【００８５】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用マイクロプロセッサの両方、ならびに任意の適切な種類のデジタルコンピュータの任意の１つ以上のプロセッサを含む。一般に、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信してもよい。コンピュータの構成要素は、命令を実行するプロセッサ、ならびに命令およびデータを記憶する１つ以上のメモリデバイスを含むことができる。一般に、コンピュータはさらに、磁気、光磁気ディスク、もしくは光ディスクなど、データを記憶する１つ以上の大容量ストレージデバイスを含んでもよく、またはそれからデータを受け取るよう、もしくはそれにデータを転送するよう動作可能に接合されてもよく、またはその両方でもよい。なお、コンピュータはそのようなデバイスを有する必要はない。さらにコンピュータは、ごく数例を挙げると、例えばモバイル電話、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、モバイルオーディオプレーヤ、衛星航法システム（ＧＰＳ：Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）受信機など、別のデバイスに組み込まれてもよい。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例として、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、例えば内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ  ＲＯＭおよびＤＶＤ−ＲＯＭディスクなどが含まれる。プロセッサおよびメモリは、専用論理回路により補完されてもよく、またはそれに組み込まれてもよい。
【００８６】
ユーザとの相互作用を提供するために、情報をユーザに表示するＣＲＴ（ｃａｔｈｏｄｅ  ｒａｙ  ｔｕｂｅ：陰極線管）またはＬＣＤ（ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ：液晶ディスプレイ）モニタなどのディスプレイデバイス、ならびにユーザがコンピュータに入力を提供してもよい例えばマウスまたはトラックボールなどのキーボードおよびポインティングデバイスを有するコンピュータ上で、実装が実現されてもよい。他の種類のデバイスが、同じくユーザとの対話を提供するために使用されてもよい。例えば、ユーザに提供されるフィードバックは、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の適切な形式の感覚フィードバックであってもよく、ユーザからの入力は、音響、スピーチ、または触覚入力を含め、任意の適切な形式で受信されてもよい。一部の事例では、入力および／または出力が、拡張現実および／または仮想現実システムを介して受信および／または提供されてもよい。
【００８７】
実装は、例えばデータサーバとしてなど、バックエンドコンポーネントを含むコンピューティングシステム、または、例えばアプリケーションサーバなど、ミドルウェアコンポーネントを含むコンピューティングシステム、または、例えばユーザが実装と相互作用できるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータなど、フロントエンドコンポーネントを含むコンピューティングシステム、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの１つ以上の、任意の適切な組み合わせにおいて実現されてもよい。システムのコンポーネントは、例えば通信ネットワークなど、任意の適切な形態または媒体のデジタルデータ通信により相互接続されてもよい。通信ネットワークの例は、ローカルエリアネットワーク（「ＬＡＮ」）、および例えばインターネットなどのワイドエリアネットワーク（「ＷＡＮ」）を含む。
【００８８】
コンピューティングシステムは、クライアントおよびサーバを含んでもよい。クライアントおよびサーバは、一般に、互いに遠隔にあり、典型的には通信ネットワークを介して対話する。クライアントおよびサーバの関係は、各コンピュータ上で実行され互いにクライアント−サーバ関係を有するコンピュータプログラムにより生じる。
【００８９】
本明細書は多数の詳細を含むが、これらは、本開示の範囲または特許請求の範囲に対する制限として解釈されるべきではなく、むしろ特定の実装に特有の特徴の記載として解釈されるべきである。別々の実装との関連で本明細書に記載されている特定の特徴はさらに、単一の実装に組み合わせて実装されることも可能である。逆に、単一の実装との関連で記載されている様々な特徴が、複数の実装において別々に、または任意の適切な一部組み合わせにおいて実装されてもよい。さらに、各特徴は、特定の組み合わせで動作するよう上記に記載されていることもあり、当初そのように請求されていることもあるが、一部の例では、請求されている組み合わせの１つ以上の特徴が、その組み合わせから削除されることが可能であり、請求されている組み合わせは、一部組み合わせまたは一部組み合わせの変形物を対象とすることができる。
【００９０】
同じく、各動作は、図面内に特定の順序で示されているが、これは、望ましい結果を達成するために、当該の動作が、示されている特定の順序もしくは順次的な順序で実行されること、または示されているすべての動作が実行されることを要求するものと理解されてはならない。特定の状況では、マルチタスクおよび並列処理が有利なこともある。
さらに、上述の実装における様々なシステムコンポーネントの分離は、すべての実装においてそのような分離を要求するものと理解されてはならず、当然のことながら、記載されているプログラムコンポーネントおよびシステムは、一般に、単一ソフトウェア製品に統合されても、または複数のソフトウェア製品にパッケージ化されてもよい。
【００９１】
いくつかの実装について記載したが、当然のことながら、本開示の意図および範囲から逸脱することなく、様々な変更が加えられてよい。例えば、ステップが並べ替え、追加、または削除された、上記のフローの種々の形態が使用されてもよい。よって、他の実装は、添付の特許請求の範囲に記載の範囲内にある。
【図１】
2018190396.tif 000005
【図２】
2018190396.tif 000006
【図３】
2018190396.tif 000007
【図４】
2018190396.tif 000008
【図５】
2018190396.tif 000009
【図６】
2018190396.tif 000010
【図７】
2018190396.tif 000011
【図８】
2018190396.tif 000012
【図９Ａ】
2018190396.tif 000013
【図９Ｂ】
2018190396.tif 000014
【図１０】
2018190396.tif 000015
【図１１】
2018190396.tif 000016
【図１２】
2018190396.tif 000017
【図１３】
2018190396.tif 000018
【図１４】
2018190396.tif 000019
【外国語明細書】
2018190396000001.pdf
2018190396000002.pdf
2018190396000003.pdf
2018190396000004.pdf