(57)【要約】本出願の実施形態において、機械学習の技術分野に関する分散クラスタ型訓練方法及びその装置が提供される。方法は、少なくとも１つのサンプルデータを含むサンプル集合を読み込むことと、クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバにより発行される収集命令を受信する前に、サンプルデータ及び現行の重みを使用して反復訓練のターゲットモデル訓練関数に代入し、第１の勾配を取得することであって、収集命令を受信する前に訓練の複数反復が存在する場合、第１の重みは、前回の訓練で取得された第１の勾配に基づいて生成され、反復訓練の後続反復の現行の重みとして使用される、サンプルデータ及び現行の重みを使用して反復訓練のターゲットモデル訓練関数に代入し、第１の勾配を取得することと、収集命令が受信されると、第１の勾配を、各第１の勾配を収集して第２の重みを計算するアグリゲーションサーバへ送信することと、アグリゲーションサーバにより送信される第２の重みを受信して、現行の重みを更新することと、を含む。本出願は、ネットワーク通信量を削減し、スイッチへの影響を低減し、クラスタ全体の使用への悪影響を回避する。
2019511054.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのサンプルデータを含むサンプル集合を読み込むことと、
クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバにより発行される収集命令を受信する前に、前記サンプルデータ及び現行の重みを使用して反復訓練のターゲットモデル訓練関数に代入し、第１の勾配を取得することであって、前記収集命令を受信する前に前記訓練の複数反復が存在する場合、第１の重みは、前回の訓練で取得された第１の勾配に基づいて生成され、前記反復訓練の後続反復の現行の重みとして使用される、前記サンプルデータ及び前記現行の重みを使用して前記反復訓練の前記ターゲットモデル訓練関数に代入し、前記第１の勾配を取得することと、
収集命令が受信されると、前記第１の勾配を、各第１の勾配を収集して第２の重みを計算するアグリゲーションサーバへ送信することと、
前記アグリゲーションサーバにより送信される前記第２の重みを受信して、現行の重みを更新することと、
を含む、分散クラスタ型訓練方法。
【請求項２】
前記クラスタシステム環境が前記閾値条件を満たす時に前記スケジューリングサーバが前記収集命令を発行することは、クラスタ全体のクラスタネットワーク利用率が第１の閾値条件を満たす時に前記スケジューリングサーバが前記収集命令を発行すること、及び／または前記クラスタ全体のクラスタ障害率が第２の閾値条件を満たす時に前記スケジューリングサーバが前記収集命令を発行することを含む、請求項１に記載の方法。
【請求項３】
前記第１の閾値条件には、前記クラスタネットワーク利用率が前記第１の閾値未満であることが含まれ、
前記第２の閾値条件には、前記クラスタ障害率が前記第２の閾値未満であることが含まれる、
請求項２に記載の方法。
【請求項４】
前記サンプルデータは時間情報を含み、前記サンプル集合を読み込んだ後、前記方法はさらに、
各サンプルデータの時間情報を用いて、前記サンプルデータの第３の重みを計算することと、
関連する第３の重みが第３の閾値未満である場合、対応する１つのサンプルデータを破棄することと、
を含む、請求項１に記載の方法。
【請求項５】
各サンプルデータの前記時間情報を使用して前記サンプルデータの前記第３の重みを計算することは、各サンプルデータの前記時間情報を指数関数の負の指数パラメータに代入して、前記第３の重みを計算することを含む、請求項４に記載の方法。
【請求項６】
各サンプルデータの前記時間情報を使用して前記サンプルデータの前記第３の重みを計算する前に、前記方法はさらに、
前記サンプル集合内の様々なサンプルデータを統合することと、
前記統合サンプルデータに関して、前記サンプルデータのそれぞれの統合数を記録することと、
を含む、請求項４に記載の方法。
【請求項７】
各サンプルデータの前記時間情報を使用して前記サンプルデータの前記第３の重みを計算することは、
各サンプルデータの前記時間情報を使用して、重み低減係数を計算することと、
前記重み低減係数と前記それぞれの統合数との積を計算して、前記第３の重みを取得することと、
を含む、請求項６に記載の方法。
【請求項８】
前記方法はさらに、前記収集命令を受信すると、各サンプルデータの前記第３の重みを集約して取得される第１の係数を、前記アグリゲーションサーバへ送信することを含み、
前記アグリゲーションサーバが各第１の勾配を集約して前記第２の重みを計算することは、
重み付け計算を行って、各第１の勾配と各第１の勾配に対応する第１の係数に基づく第２の勾配を取得することと、
前記第２の勾配から前記第２の重みを計算することと、
を含む、請求項４に記載の方法。
【請求項９】
前記アグリゲーションサーバが各第１の勾配を集約して前記第２の重みを計算した後、前記方法はさらに、前記アグリゲーションサーバが、新たに取得された前記第２の重みをバックアップすることを含む、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記アグリゲーションサーバが、新たに取得された前記第２の重みをバックアップすることは、
前記アグリゲーションサーバが、新たに取得された前記第２の重みと前のバックアップの第２の重みとの変化量が、変化閾値を超えるか否かを判定することと、
前記変化閾値を超える場合、新たに取得された前記第２の重みをバックアップすることと、
を含む、請求項９に記載の方法。
【請求項１１】
前記アグリゲーションサーバが、新たに取得された前記第２の重みをバックアップした後、前記方法はさらに、前記第２の重みをターゲットモデルに代入して、サービスサーバへ出力することを含む、請求項９に記載の方法。
【請求項１２】
少なくとも１つのサンプルデータを含むサンプル集合を読み込むために使用されるサンプル読み込みモジュールと、
クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバにより発行される収集命令を受信する前に、前記サンプルデータ及び現行の重みを使用して反復訓練のターゲットモデル訓練関数に代入し、第１の勾配を取得するために使用される反復訓練モジュールであって、前記収集命令を受信する前に前記訓練の複数反復が存在する場合、第１の重みは、前回の訓練で取得された第１の勾配に基づいて生成され、前記反復訓練の後続反復の現行の重みとして使用される、前記反復訓練モジュールと、
収集命令が受信されると、前記第１の勾配を、各第１の勾配を収集して第２の重みを計算するアグリゲーションサーバへ送信するために使用される結果送信モジュールと、
前記アグリゲーションサーバにより送信される前記第２の重みを受信して現行の重みを更新するために使用される更新モジュールと、
を備える、分散クラスタ型訓練装置。
【請求項１３】
前記クラスタシステム環境が前記閾値条件を満たす時に前記スケジューリングサーバが前記収集命令を発行することは、クラスタ全体のクラスタネットワーク利用率が第１の閾値条件を満たす時に前記スケジューリングサーバが前記収集命令を発行すること、及び／または前記クラスタ全体のクラスタ障害率が第２の閾値条件を満たす時に前記スケジューリングサーバが前記収集命令を発行することを含む、請求項１２に記載の装置。
【請求項１４】
前記第１の閾値条件には、前記クラスタネットワーク利用率が前記第１の閾値未満であることが含まれ、
前記第２の閾値条件には、前記クラスタ障害率が前記第２の閾値未満であることが含まれる、
請求項１３に記載の装置。
【請求項１５】
前記サンプル読み込みモジュールの後、前記装置はさらに、
各サンプルデータの時間情報を用いて前記サンプルデータの第３の重みを計算するために使用される第３の重み計算モジュールと、
関連する第３の重みが第３の閾値未満である場合、対応する１つのサンプルデータを破棄するために使用されるサンプル破棄モジュールと、
を備える、請求項１２に記載の装置。
【請求項１６】
前記第３の重み計算モジュールは、各サンプルデータの前記時間情報を指数関数の負の指数パラメータに代入して、前記第３の重みを計算するために使用される指数計算モジュールを備える、請求項１５に記載の装置。
【請求項１７】
前記第３の重み計算モジュールの前に、前記装置はさらに、
前記サンプル集合内の様々なサンプルデータを統合するために使用される統合モジュールと、
前記統合サンプルデータに関して、前記サンプルデータのそれぞれの統合数を記録するために使用される統合記録モジュールと、
を備える、請求項１５に記載の装置。
【請求項１８】
前記第３の重み計算モジュールは、
各サンプルデータの前記時間情報を使用して、重み低減係数を計算するために使用される低減係数計算モジュールと、
前記重み低減係数と前記それぞれの統合数との積を計算して、前記第３の重みを取得するために使用される第１計算モジュールと、
を備える、請求項１７に記載の装置。
【請求項１９】
前記収集命令を受信すると、各サンプルデータの前記第３の重みを集約して取得される第１の係数を、前記アグリゲーションサーバへ送信するために、前記結果送信モジュールがさらに使用され、前記アグリゲーションサーバは、
重み付け計算を行って、各第１の勾配と各第１の勾配に対応する第１の係数に基づく第２の勾配を取得するために使用される第１の重み集約モジュールと、
前記第２の勾配から前記第２の重みを計算するために使用される第２の重み計算モジュールと、
を備える、請求項１５に記載の装置。
【請求項２０】
前記アグリゲーションサーバはさらに、新たに取得された前記第２の重みをバックアップするために使用されるバックアップモジュールを備える、請求項１２〜１９のいずれか１項に記載の装置。
【請求項２１】
前記バックアップモジュールは、
前記アグリゲーションサーバが、新たに取得された前記第２の重みと前のバックアップの第２の重みとの変化量が、変化閾値を超えるか否かを判定するために使用される変化計算モジュールと、
前記変化閾値を超える場合、新たに取得された前記第２の重みをバックアップするために使用される第１バックアップモジュールと、
を備える、請求項９に記載の装置。
【請求項２２】
前記バックアップモジュールの後、前記装置はさらに、前記第２の重みをターゲットモデルに代入してサービスサーバへ出力するために使用される出力モジュールを備える、請求項２０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、機械訓練技術の分野に関し、特に分散クラスタ型訓練方法及び装置に関する。
【背景技術】
【０００２】
本出願は、２０１６年３月２６日に出願された“Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｌｕｓｔｅｒ  Ｔｒａｉｎｉｎｇ  Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ”と題する中国特許出願第２０１６１０１８０３９３．８号に対する優先権を主張し、その全体が参照により本明細書に組み込まれるものとする。
【０００３】
ビッグデータの適用に伴い、ユーザの商品の好みを予測するターゲットモデルなど、ビッグデータに基づいた数多くのターゲットモデルの全てにおいて、ターゲットモデルにおける重みは、対応するサンプルデータを用いて訓練されることを要する。重みは、ターゲットモデルのそれぞれのパラメータとして理解され得る。例えば、ｙ＝ａｘ１＋ｂｘ２＋ｃｘ３という単純モデルにおいて、ａ、ｂ、及びｃは重みであり、ｘ１、ｘ２、及びｘ３は入力量であり、ｙは出力量である。上記のターゲットモデルは全て、訓練に機械学習の使用を要する。
【０００４】
一般に機械学習訓練には、独立型訓練及びクラスタ型訓練が含まれる。独立型訓練は全てのサンプルを使用して、Ｆ（Ｘ）の勾配：▽Ｆ（Ｘｔ−１)を計算し（Ｆは損失関数であり、Ｘは重みである）、その後、収束に達するまで重みは反復的に更新される：Ｘｔ＝Ｘｔ−１−α▽Ｆ（Ｘｔ−１）。クラスタ型訓練は最初に、あるルールに従って、勾配を計算する各マシンに訓練サンプルを分配し（各マシンにおけるデータは同一ではない）、次に縮小法を用いて勾配を集約し、重みの更新を行う。上記のプロセスは、収束に達するまで反復される。事実上、大量のデータを扱うことから、クラスタ型訓練は、業界標準となっている。
【０００５】
一方、訓練が独立型マシン上で行われ、サンプルのデータ量がメモリにロードできないほど大きい場合、訓練を行うことができない。独立型マシン上の訓練は、通信（ネットワーク）費用が発生しないが、ビッグデータに対応することができない（過去２週間の全ユーザに関連するログデータを閲覧するなど）。
【０００６】
独立型訓練の上記の問題に基づいて、既存技術は、分散クラスタを用いて機械学習の実行タスクを取り入れる。クラスタ型訓練の既存の解決策には、以下が含まれる。（１）あるルールに従ってデータ集合ＴをＮ部分に分割して、Ｔ＝｛Ｔ１、Ｔ２、・・・、Ｔｎ｝を取得する。（２）各訓練サーバによりデータの一部を取得し、Ｔｘとして設定する。（３）取得したデータを用いて、各訓練サーバにより対応勾配▽ＦＴｘを計算する。（４）勾配集約を行って、総勾配を取得する：総勾配＝Σ１ｎＦｉ。（５）ルールに従って重みを更新し（独立型訓練の重み更新方法と同様）、全てのマシンに新たな重みを再送する。（６）訓練が完了したか否かを判定し、完了していない場合には、第３のステップへ戻る。
【０００７】
より良い予測結果を獲得するために、クラスタ型訓練は、より多くの訓練データを使用することができる。毎回勾配が計算された後に勾配は集約されるため、通信トラフィックは非常に多く頻繁であり、クラスタ内のネットワークトラフィックはその許容容量を上回ることがあり、よってスイッチ、さらにはクラスタ全体の使用にも悪影響が及ぶ。
【発明の概要】
【０００８】
上記の問題を考慮して、本出願の実施形態は、上記の問題を克服する、または上記の問題を少なくとも部分的に解決する分散クラスタ型訓練方法及び対応する分散クラスタ型訓練装置を提供する。
【０００９】
上記の問題を解決するために、本出願は分散クラスタ型訓練方法を開示し、当方法は、少なくとも１つのサンプルデータを含むサンプル集合を読み込むことと、クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバにより発行される収集命令を受信する前に、サンプルデータ及び現行の重みを使用して反復訓練のターゲットモデル訓練関数に代入し、第１の勾配を取得することであって、収集命令を受信する前に訓練の複数反復が存在する場合、第１の重みは、前回の訓練で取得された第１の勾配に基づいて生成され、反復訓練の後続反復の現行の重みとして使用される、取得することと、収集命令が受信されると、第１の勾配を、各第１の勾配を収集して第２の重みを計算するアグリゲーションサーバへ送信することと、アグリゲーションサーバにより送信される第２の重みを受信して、現行の重みを更新することと、を含む。
【００１０】
本出願はまた、分散クラスタ型訓練装置を開示し、当装置は、少なくとも１つのサンプルデータを含むサンプル集合を読み込むために使用されるサンプル読み込みモジュールと、クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバにより発行される収集命令を受信する前に、サンプルデータ及び現行の重みを使用して反復訓練のターゲットモデル訓練関数に代入し、第１の勾配を取得するために使用される反復訓練モジュールであって、収集命令を受信する前に訓練の複数反復が存在する場合、第１の重みは、前回の訓練で取得された第１の勾配に基づいて生成され、反復訓練の後続反復の現行の重みとして使用される、反復訓練モジュールと、収集命令が受信されると、第１の勾配を、各第１の勾配を収集して第２の重みを計算するアグリゲーションサーバへ送信するために使用される結果送信モジュールと、アグリゲーションサーバにより送信される第２の重みを受信して現行の重みを更新するために使用される更新モジュールと、を含む。
【００１１】
本出願の実施形態は、以下の利点を含む。
【００１２】
本出願の実施形態において、訓練サーバは、収集命令を受信する前に、訓練サーバが読み込んだサンプル集合を使用して、サンプル集合内のサンプルデータ及び現行の重みを用いて第１の勾配を反復的に訓練し続けることができる。同時に、スケジューリングサーバは、閾値条件が満たされるか否か、クラスタシステム環境を監視することができる。クラスタシステム環境が閾値条件を満たしたことが検出されると、システムは、各訓練サーバへ収集命令を送信することができ、各訓練サーバは、訓練から取得した第１の勾配を、アグリゲーションサーバへ送信する。アグリゲーションサーバは、第１の勾配を集約し、第２の重みを計算する。各訓練サーバが自身のサンプルデータの訓練を終える前に、第２の重みが各訓練サーバへ送信され、その現行の重みが更新される。このようにして、システムは、システム環境を監視して、収集命令が発行される時を制御し、相応して訓練サーバは、プロセス全体を通して毎回訓練終了時にサーバへ訓練結果を送信することなく、収集命令を受信した後に第１の勾配をアグリゲーションサーバへ送信し、これにより、ネットワークトラフィックは削減され、スイッチへの影響は低減され、クラスタ全体の使用への悪影響は防止される。
【図面の簡単な説明】
【００１３】
【図１】本出願の分散クラスタ型訓練方法の実施形態のフローチャートである。
【図２】本出願の分散クラスタ型訓練方法の別の実施形態のフローチャートである。
【図３】本出願の分散クラスタ型訓練方法の別の実施形態のフローチャートである。
【図４】本出願の分散クラスタ型訓練方法の別の実施形態のフローチャートである。
【図５】本出願の分散クラスタ型訓練装置の実施形態の構造ブロック図である。
【図６】本出願の分散クラスタ型訓練システムの実施形態の構造ブロック図である。
【発明を実施するための形態】
【００１４】
本出願の前記の目的、特徴、及び利点をより理解しやすくするために、本出願は、添付図面及び具体的な実施態様に関連して、本明細書に詳しく説明される。
【００１５】
本出願の実施形態の中核概念のうちの１つとして、クラスタ内のターゲットモデルが既存技術で訓練される場合、クラスタ内の訓練サーバにより訓練される勾配は毎回訓練後に直接収集されるため、これにより頻繁に大量のトラフィックが生み出され、クラスタ内のネットワークトラフィックはその許容容量を上回ることがあり、よってスイッチ、さらにはクラスタ全体の使用にも悪影響が及ぶことが挙げられる。本出願の実施形態において、訓練サーバは、収集命令を受信する前に、訓練サーバが読み込んだサンプル集合を使用して、サンプル集合内のサンプルデータ及び現行の重みを用いて第１の勾配を反復的に訓練し続けることができる。同時に、システムは、閾値条件が満たされるか否か、クラスタシステム環境を監視することができ、閾値条件は、ネットワークトラフィックがクラスタシステム環境内のその許容容量に到達することが起こらないようにすることができる。クラスタシステム環境が閾値条件を満たしたことが検出されると、システムは、各訓練サーバへ収集命令を送信することができ、各訓練サーバは、訓練から取得した第１の勾配を、アグリゲーションサーバへ送信する。アグリゲーションサーバは、様々な第１の勾配を集約し、第２の重みを計算する。各訓練サーバがそのサンプルデータの訓練を終える前に、第２の重みが各訓練サーバへ送信され、その現行の重みが更新される。このようにして、システムは、システム環境を監視して、収集命令が発行される時を制御する。相応して、訓練サーバは、プロセス全体を通して毎回訓練終了時にサーバへ訓練結果を送信することなく、収集命令を受信した後に第１の勾配をアグリゲーションサーバへ送信し、これにより、ネットワークトラフィックは削減され、スイッチへの影響は低減され、よってクラスタ全体の使用への悪影響は防止される。
【００１６】
第１の実施形態
図１を参照すると、本出願の分散クラスタ型方法の実施形態のフローチャートが示され、これは具体的に以下のステップを含み得る。
【００１７】
ステップ１１０：少なくとも１つのサンプルデータを含むサンプル集合が読み込まれる。
【００１８】
本出願の実施形態において、クラスタ全体は、複数の訓練サーバと、少なくとも１つスケジューリングサーバと、少なくとも１つのアグリゲーションサーバとを含み得る。訓練サーバは、反復訓練に関与するサンプル集合を取得して、第１の勾配を取得することができる。スケジューリングサーバは、システム全体のクラスタシステム環境を監視して、クラスタシステム環境に応じて、訓練サーバへ収集命令を発行するか否かを判定することができる。アグリゲーションサーバは、各訓練サーバにより送信される第１の勾配を受信し、第２の重みを計算し得る。
【００１９】
本出願の実施形態において、訓練サーバと、スケジューリングサーバと、アグリゲーションサーバとの間の通信データは、クラスタ内のスイッチを通して送信される。
【００２０】
本出願の実施形態におけるスケジューリングサーバは、各訓練サーバにより取得される必要のあるサンプル集合の取得パラメータを、訓練サーバへ送信し得ることが、理解されよう。取得パラメータを取得後、訓練サーバは、取得パラメータに従って、指定された場所から必要とされるサンプル集合を読み込み得る。例えば、パラメータにより特定されるトランザクションログデータの集合が、トランザクションログサーバから、サンプル集合として取得される。明らかに、本出願の実施形態はまた、他のサーバからも対応するサンプル集合を取得することができ、要件に従って設定され得る。本出願の実施形態には、いずれの制限も存在しない。
【００２１】
ステップ１２０：クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバにより発行される収集命令を受信する前に、サンプルデータ及び現行の重みは反復訓練のターゲットモデル訓練関数に入力され、第１の勾配が取得され、収集命令を受信する前に訓練の複数反復が存在する場合、前回の訓練に基づいて生成された第１の重みは、反復訓練の後続反復の現行の重みとして使用される。
【００２２】
訓練サーバＡでは、サンプル集合を読み込んだ後、ターゲットモデルの様々な現行の重みは最初、事前に経験的に決定される第２の重みＸ０に設定される。この時点で、複数のサンプルデータがサンプル集合から順次に抽出され、訓練サーバＡに属する第１の勾配を訓練するために、訓練のターゲットモデルに入力され得る。
【００２３】
訓練サーバＡは、収集命令を受信する前に、反復訓練のためサンプルデータを読み込み続けることができる。実用において、明らかに、各訓練サーバは、それの全ての訓練サンプルを読み込み、ローカルに記憶し、次いで訓練を行うことができる。例えば、サンプルデータＭ１及び第１回の現行の重みＸ０をターゲットモデル訓練関数に入力して、第１の勾配▽Ｆ（Ｘ０）は訓練され、次いで▽Ｆ（Ｘ０）は、重みＸ１を計算するために用いられ、Ｘ１は、第２回訓練の現行の重みとして機能する。次に、サンプルデータＭ２及び現行の重みＸ１をターゲットモデル訓練関数に入力して、第１の勾配▽Ｆ（Ｘ１）は訓練され、収集命令が受信されるまで、同様に繰り返される。Ｘｉ（ｉ＝１、２、３、・・・・・・）は、多次元ベクトルであり、各次元は、ターゲットモデルにおけるパラメータに該当する。ターゲットモデル訓練関数は、前述に説明されるように、損失関数Ｆ（Ｘ）であり得る。
【００２４】
実用において、前述のプロセスは一例とみなされる。第１回目、第１のサンプルデータは、Ｘが現行の重みである損失関数Ｆ（Ｘ）に代入される。次いでＦ（Ｘ）の勾配▽Ｆ（Ｘ）が計算され、第１の勾配▽Ｆ（Ｘ１）は、式Ｘｔ＝Ｘｔ-１-α▽Ｆ（Ｘｔ−１）に従って更新される。損失関数Ｆ（Ｘ）は実際の状況に応じて設定することができ、既存の技術はその詳細のプロセスを有しているため、ここでは繰り返し記載しない。同様のプロセスが第２回目に行われる。訓練サーバは、第３回目まで訓練を行い、第１の勾配▽Ｆ（Ｘ２）を取得することが想定される。この時、スケジューリングサーバにより送信される収集命令が受信されると、第１の勾配▽Ｆ（Ｘ２）は、スイッチを介してアグリゲーションサーバに直接送信され得る。
【００２５】
本出願の実施形態において、訓練サーバは、前回の収集後から第１の勾配の訓練回数を記録する。収集命令を送信する時、スケジューリングサーバは、何回目の第１の勾配を訓練サーバが送信したかを管理する。スケジューリングサーバは、Ｎがゼロより大きい整数である時、収集命令を送信する前に各訓練サーバがＮ回の訓練を実行するように制御し得る。例えば、訓練サーバは、収集命令を受信する前に、３回の訓練のみを実行するように通知され、３回の訓練を完了すると、スケジューリングサーバの命令を待つ。明らかに、実用において、Ｎは制限することができ、Ｎの値はまた、実要件の訓練の精度誤差に基づいて設定することができる。実要件の訓練の精度誤差は、過去の訓練結果の経験に基づいて設定することができる。
【００２６】
本出願の実施形態において、各訓練サーバへスケジューリングサーバにより送信される収集命令には、指定回数が含まれる。各訓練サーバは次いで、対応回数の訓練から取得される第１の勾配を、アグリゲーションサーバへ送信する。
【００２７】
本出願の実施形態において、各訓練サーバの反復訓練中、スケジューリングサーバは、クラスタシステム環境を監視する。クラスタシステム環境が閾値条件を満たす場合、スケジューリングサーバは、各訓練サーバへ収集命令を発行する。閾値条件は、訓練サーバの送信頻度を、ネットワーク輻輳を生じるほど高くなりすぎないように、制限し得る。閾値条件の一例としては、ネットワーク利用が３０％未満であることが挙げられる。
【００２８】
本出願の別の望ましい実施形態において、クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバが収集命令を発行することは、クラスタ全体のクラスタネットワーク利用が第１の閾値条件を満たす時にスケジューリングサーバが収集命令を発行することを含む。
【００２９】
本出願の実施形態において、スケジューリングサーバは、例えば各サーバのネットワークカードが発行及び受信したパケットの量を取得して、クラスタ全体のクラスタネットワーク利用を監視することができ、ネットワークカード自体は１００Ｍなどの最大フロー制限を有する。各ネットワークカードが発行及び受信したパケットの量は特定され、全ネットワークカードの総フロー制限により割られる。よって、クラスタネットワーク利用を取得することができる。明らかに、各サーバのネットワークカードの利用を計算することも可能であり、そこで各ネットワークカードの利用は重み付け及び平均されて、クラスタネットワーク利用が取得される。この場合、第１の閾値条件には、クラスタネットワーク利用が第１の閾値未満であることが含まれる。例えば、第１の閾値は、３０％に設定される。次いで、クラスタネットワーク利用が３０％未満であることをスケジューリングサーバが監視及び検出すると、収集命令が各訓練サーバへ送信され得る。
【００３０】
本出願の別の望ましい実施形態において、クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバが収集命令を発行することは、クラスタ全体のクラスタ障害率が第２の閾値条件を満たす時にスケジューリングサーバが収集命令を発行することを含む。
【００３１】
本出願の実施形態において、クラスタ全体における各サーバは落ちることがある。従って、本出願の実施形態は、各サーバの障害を監視し、次いで障害サーバの数をクラスタ全体におけるサーバの数で割ることにより、クラスタの障害率を取得し得る。明らかに、本出願の実施形態において、訓練サーバの障害の第１の数のみが監視され、次いで第１の数は、クラスタ全体に関連する数により割られて、クラスタ障害率が取得される。明らかに、第１の数は、全訓練サーバの数によっても割られて、クラスタ障害率が取得され得る。この場合、第２の閾値条件には、クラスタ障害率が第２の閾値未満であることが含まれる。例えば、第２の閾値が５％に設定された場合、クラスタ障害率が５％未満の時に、スケジューリングサーバは各訓練サーバへ収集命令を発行し得る。
【００３２】
前述に説明されたサーバ障害には、クラッシュによるサーバからの無応答、及びある時間を超えるサーバの応答遅延が含まれることに留意されたい。本出願の実施形態において、スケジューリングサーバは定期的に、各サーバへテスト命令を送信し得る。サーバが特定の時間より前に応答しない場合、サーバにおいて障害が発生したものとみなされ得る。
【００３３】
明らかに、本出願の実施形態において、スケジューリングサーバは、収集命令を発行する前に、各訓練サーバの訓練状態も監視し得る。例えば、前回の収集命令が送信されて以来、各訓練サーバが少なくとも１回の訓練を完了したことが監視された後、前述の閾値要件（複数可）が満たされると、収集命令が発行される。
【００３４】
ステップ１３０：収集命令が受信されると、第１の勾配はアグリゲーションサーバへ送信される。
【００３５】
ステップ１４０：アグリゲーションサーバは、各第１の勾配を収集し、第２の重みを計算する。
【００３６】
本出願の実施形態において、収集命令が受信されると、訓練サーバは、最後に更新された第１の勾配をアグリゲーションサーバへ送信し得る。
【００３７】
収集命令は訓練回数を有するため、各訓練サーバは、同じ回の第１の勾配をアグリゲーションサーバへ送信する。
【００３８】
本出願の実施形態において、複数のアグリゲーションサーバが存在する場合、各訓練サーバは、事前に設定されたアグリゲーションサーバとの対応関係に従って、各自の第１の勾配を、対応するアグリゲーションサーバへ送信し得る。各アグリゲーションサーバは、受信した第１勾配の部分を収集し、次に各アグリゲーションサーバは、収集した第１の勾配をアグリゲーションサーバへ再送し、そしてこのアグリゲーションサーバが、最終収集を行い、最終的に収集された第１の勾配に基づいて第２の重みを計算する。
【００３９】
全訓練サーバの第１の勾配を受信後、アグリゲーションサーバは、第１の勾配を集約し、次いで集約結果に従って第２の重みを計算し得る。
【００４０】
この時、アグリゲーションサーバは、各訓練サーバが訓練を完了したか否かを判定することができ、訓練が完了していない場合、第２の重みが各訓練サーバへ送信される。
【００４１】
実用において、各訓練サーバは、第１の勾配が送信された時に、サンプル集合の全サンプルデータの訓練が完了したか否かを示す第１の識別子を送信し得ることが理解されよう。第１の識別子がｎｏである場合、訓練は完了していないことを示す。第１の識別子がｙｅｓである場合、訓練は完了したことを示す。アグリゲーションサーバは、識別子に基づいて、各訓練サーバがサンプル集合の全てのサンプルデータを訓練したか否かを判定することができる。明らかに、実用において、アグリゲーションサーバは、本出願の実施形態に限定されない他の手段で、各訓練サーバがサンプル集合の全サンプルデータを訓練したか否かを判定することができる。
【００４２】
ステップ１５０：アグリゲーションサーバにより送信される第２の重みが受信され、現行の重みが更新される。
【００４３】
訓練サーバは、サンプルデータの訓練が完了する前に、アグリゲーションサーバにより送信される第２の重みを受信することができる。この場合、訓練サーバは、第２の重みで現行の重みを更新し、それから次の回の訓練の後続のサンプルデータを読み込み得る。明らかに、サンプルデータがローカルに読み込まれた場合、次の回の訓練でも、次の回のサンプルデータはローカルに読み込まれ得る。
【００４４】
本出願の実施形態において、訓練サーバは、収集命令を受信する前に、訓練サーバが読み込んだサンプル集合を使用して、サンプル集合内のサンプルデータ及び現行の重みを用いて第１の勾配を反復的に訓練し続け得る。同時に、システムは、クラスタシステム環境が閾値条件を満たすか否かを監視し得る。閾値条件は、ネットワークトラフィックが、クラスタシステム環境におけるその許容容量に達することを防ぎ得る。クラスタシステム環境が閾値条件を満たしたことをシステムが監視すると、収集命令が各訓練サーバへ送信され得、各訓練サーバは、訓練から取得した第１の勾配を、アグリゲーションサーバへ送信する。アグリゲーションサーバは、各第１の勾配を集約し、第２の重みを計算し、各訓練サーバが自身のサンプルデータの訓練を完了して自身の現行の重みを更新する前に、第２の重みを各訓練サーバへ送信する。従って、システムは、システム環境を監視し、収集命令を送信するタイミングを制御し、訓練サーバは、収集命令を受信した後にのみ、アグリゲーションサーバへ第１の勾配を送信する。よって、プロセス全体を通して毎回訓練終了時に訓練結果がサーバへ送信されることはなく、従ってネットワークトラフィックは削減され、スイッチへの影響は低減され、クラスタ全体の使用への悪影響は回避される。
【００４５】
第２の実施形態
図２を参照すると、本出願の分散クラスタリング方法の別の実施形態のフローチャートが示され、これは具体的に以下のステップを含み得る。
【００４６】
ステップ２１０：少なくとも１つのサンプルデータを含むサンプル集合が読み込まれ、１つのサンプルデータは時間情報を含む。
【００４７】
本出願の実施形態において、ユーザＩＤ、ユーザトランザクション活動、収集活動データ、及び閲覧活動データなどの従来のデータに加えて、１つのサンプルデータに追加データが加えられる。このような追加データは、例えば最も近日のトランザクションデータ、過去二日のトランザクションデータといった、１つのサンプルデータの生成時間を記録する。
【００４８】
ステップ２２０：各サンプルデータの時間情報を用いて、サンプルデータの第３の重みが計算される。
【００４９】
本出願の実施形態において、サンプルデータがより新しくある程、ユーザの実際の興味及び意向がより反映され、サンプルデータにより訓練されるモデルはより正確となる。本出願は、各サンプルデータの時間情報を用いて、サンプルデータの第３の重みを計算し得る。第３の重みは、各サンプルデータの時間情報が現在時刻により近い程、より大きい重みを示す。逆の場合、重みはより小さくなる。
【００５０】
本出願の別の望ましい実施形態において、各サンプルデータの時間情報を用いて、サンプルデータの第３の重みを計算することは、以下を含む。
【００５１】
サブステップ２２１：第３の重みを計算するために、指数関数の負の指数パラメータに、各サンプルデータの時間情報が代入される。
【００５２】
本出願の実施形態において、現在時刻を基にした時間情報は、デジタル情報に変換され得る。例えば、１つのサンプルデータＮ１の時間情報は１であり、これは現在時刻から１つのサンプルデータＮ１の間隔が１日であることを示し、１つのサンプルデータＮ２の時間情報は３であり、これは現在時刻から１つのサンプルデータＮ２の間隔が３日であることを示す。明らかに、時間情報をデジタル情報に変換するために、本出願の実施形態に限定されない他の方法が使用されてもよい。
【００５３】
本出願の実施形態において、指数関数の基数は、自然数ｅに設定され得る、または１より大きい他の数に設定され得る。自然数ｅを採用することが好ましくある。次に本出願は、ｘが時間情報である時、ｅ‐ｘを用いて第３の重みを計算し得る。例えば、Ｎ１の場合には第３の重みはｅ‐１となることなどが挙げられる。明らかに、指数関数の基数として、２などの他の基数を使用することもできる。この場合、基数関数は、２‐ｘとなる。
【００５４】
ステップ２３０：第３の重みが第３の閾値未満である場合、対応する１つのサンプルデータが破棄される。
【００５５】
例えば、第３の閾値は、０．００１に設定される。第３の重みが第３の閾値未満である場合、これは、関連する１つのサンプルデータが、現在時刻から離れすぎていることを示す。このような１つのサンプルデータは、ユーザの興味及び意向にほとんど影響を及ぼさないため、破棄され得る。これにより、計算量が削減され、システムのリソースが節約される。
【００５６】
ステップ２４０：クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバにより発行される収集命令を受信する前に、サンプルデータ及び現行の重みを使用して反復訓練のターゲットモデル訓練関数に代入し、第１の勾配が取得され、収集集約命令を受信する前に複数回の反復訓練が存在する場合、前回の訓練で取得された第１の勾配に基づいて生成された第１の重みは、反復訓練の後続回の現行の重みとして使用される。
【００５７】
ステップ２５０：収集命令を受信すると、第１の勾配はアグリゲーションサーバへ送信され、各サンプルデータのそれぞれの第３の重みを集約して取得された第１の係数が、アグリゲーションサーバへ送信される。
【００５８】
本出願の実施形態において、サンプル集合のデータを訓練する前に、訓練サーバは、各サンプルデータの第３の重みを計算し得、次いで保持された各サンプルデータの第３の重みを集約して、第１の係数を取得し得る。
【００５９】
ステップ２６０：アグリゲーションサーバは、各第１の勾配及び各第１の勾配に対応する第１の係数に基づいて重み付け計算を行い、第２の勾配を取得する。
【００６０】
ステップ２７０：アグリゲーションサーバは、第２の勾配に基づいて第２の重みを計算する。
【００６１】
例えば、訓練サーバＡは、第１の勾配▽Ｆ（Ｘ１）Ａと共に、第１の係数０．８を送信する。訓練サーバＢは、第１の勾配▽Ｆ（Ｘ１）Ｂと共に、第１の係数０．７を送信する。訓練サーバＣは、第１の勾配▽Ｆ（Ｘ１）Ｃと共に、第１の係数０．５を送信する。よって、第２の勾配は、（０．８▽Ｆ（Ｘ１）Ａ＋０．７▽Ｆ（Ｘ１）Ｂ＋０．５▽Ｆ（Ｘ１）Ｃ）である。
【００６２】
次いで、第２の勾配から第２の重みが計算される。
【００６３】
第１の実施形態において説明されたように、その後第２の重みは、訓練を完了していない各訓練サーバへ送信され得る。
【００６４】
ステップ２８０：アグリゲーションサーバにより送信される第２の重みが受信され、現行の重みが更新される。
【００６５】
本出願の実施形態において、訓練サーバは、収集命令を受信する前に、訓練サーバが読み込んだサンプル集合を使用して、サンプル集合内のサンプルデータ及び現行の重みを用いて第１の勾配を反復的に訓練し続け得る。同時に、システムは、クラスタシステム環境が閾値条件を満たすか否かを監視し得る。閾値条件は、ネットワークトラフィックが、クラスタシステム環境におけるその許容容量に達することを防ぎ得る。クラスタシステム環境が閾値条件を満たしたことをシステムが監視すると、収集命令が各訓練サーバへ送信され得、各訓練サーバは、訓練から取得した第１の勾配を、アグリゲーションサーバへ送信する。アグリゲーションサーバは、各第１の勾配を集約し、第２の重みを計算し、各訓練サーバが自身のサンプルデータの訓練を完了して自身の現行の重みを更新する前に、第２の重みを各訓練サーバへ送信する。従って、システムは、システム環境を監視し、収集命令を送信するタイミングを制御し、相応して訓練サーバは、収集命令を受信した後にのみ、アグリゲーションサーバへ第１の勾配を送信する。よって、プロセス全体を通して毎回訓練終了時に訓練結果がサーバへ送信されることはなく、従ってネットワークトラフィックは削減され、スイッチへの影響は低減され、クラスタ全体の使用への悪影響は回避される。
【００６６】
さらに、本出願の実施形態は、データの適時性に基づいて、１つの新しいデータの重みの増大、１つの古いデータの重みの低減、及びいくつかの古いデータの破棄を、自動で行うことができるため、ターゲットモデルは、ユーザの現在の行動により適し、計算量を削減することができる。
【００６７】
第３の実施形態
図３を参照すると、本出願の分散クラスタリング方法の別の実施形態のフローチャートが示され、これは具体的に以下のステップを含み得る。
【００６８】
ステップ３１０：少なくとも１つのサンプルデータを含むサンプル集合が読み込まれ、１つのサンプルデータは時間情報を含む。
【００６９】
ステップ３１２：サンプル集合内の様々なサンプルデータが統合される。
【００７０】
ステップ３１４：統合サンプルデータに関して、統合されたサンプルデータの数が記録される。
【００７１】
本出願の実施形態において、同じコンテンツを有する複数のサンプルデータは、同じ期間に従って、統合され得る。例えば、ユーザＡは、２０１５年１２月１２日の午前１０時に商品Ａを買い、２０１５年１２月３１日の午後３時に商品Ａを買ったとする。ユーザＡが２０１５年１２月３１日に商品Ａを購入したため、これらの２つのサンプルデータは統合され得、統合数は２となる。
【００７２】
実際には、サンプルデータに対して統合数の列も追加することができ、統合数はこの列に書き込まれる。
【００７３】
ステップ３１６：各サンプルデータの情報を用いて、重み低減係数が計算される。
【００７４】
本出願の実施形態において、各サンプルデータの時間情報を使用して、重み低減係数が計算され得る。現在時刻に近い程、重み低減係数はより大きい。逆の場合、重み低減係数はより小さい。
【００７５】
本出願の別の望ましい実施形態において、各サンプルデータの時間情報を用いて、重み低減係数を計算することは、以下を含む。
【００７６】
サブステップＣ１１：重み低減係数を計算するために、指数関数の負の指数パラメータに、各サンプルデータの時間情報が代入される。
【００７７】
本出願の実施形態において、現在時刻を基にした時間情報は、デジタル情報に変換され得る。例えば、１つのサンプルデータＮ１の時間情報は１であり、これは現在時刻から１つのサンプルデータＮ１の間隔が１日であることを示し、１つのサンプルデータＮ２の時間情報は３であり、これは現在時刻から１つのサンプルデータＮ２の間隔が３日であることを示す。明らかに、時間情報をデジタル情報に変換するために、本出願の実施形態に限定されない他の方法が使用されてもよい。
【００７８】
従って本出願は、ｘが時間情報である時、ｅ‐ｘを用いて重み低減係数を計算し得る。例えば、Ｎ１の場合には重み低減係数はｅ‐１となることなどが挙げられる。明らかに、指数関数の基数として、２などの他の基数を使用することもできる。この場合、基数関数は、２‐ｘとなる。
【００７９】
ステップ３１８：重み低減係数と統合数との積を計算して、第３の重みが取得される。
【００８０】
本出願の実施形態において、サンプルデータが統合された場合、サンプル集合内のサンプルデータは統合サンプルデータとなり、次いでサンプルデータの統合データは、その重み低減係数により割られ、第３の重みが取得され得る。
【００８１】
ステップ３１６〜３１８は、第２の実施形態におけるステップ２２０の望ましいステップであり得ることが理解されよう。
【００８２】
ステップ３２０：第３の重みが第３の閾値未満である場合、対応する１つのサンプルデータは破棄される。
【００８３】
ステップ３２２：クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバにより発行される収集命令を受信する前に、サンプルデータ及び現行の重みを使用して反復訓練のターゲットモデル訓練関数に代入し、第１の勾配が取得され、収集集約命令を受信する前に複数回の反復訓練が存在する場合、前回の訓練で取得された第１の勾配に基づいて生成された第１の重みは、反復訓練の後続回の現行の重みとして使用される。
【００８４】
ステップ３２４：収集命令を受信すると、第１の勾配はアグリゲーションサーバへ送信され、各サンプルデータのそれぞれの第３の重みを集約して取得された第１の係数が、アグリゲーションサーバへ送信される。
【００８５】
ステップ３２６：アグリゲーションサーバは、各第１の勾配及び各第１の勾配に対応する第１の係数に基づいて重み付け計算を行い、第２の勾配を取得する。
【００８６】
ステップ３２８：アグリゲーションサーバは、第２の勾配に基づいて第２の重みを計算する。
【００８７】
本出願の実施形態において、システムは、システム環境を監視し、収集命令を送信するタイミングを制御し、相応して訓練サーバは、収集命令を受信した後にのみ、アグリゲーションサーバへ第１の勾配を送信する。よって、プロセス全体を通して毎回訓練終了時に訓練結果がサーバへ送信されることはなく、従ってネットワークトラフィックは削減され、スイッチへの影響は低減され、クラスタ全体の使用への悪影響は回避される。
【００８８】
さらに、本出願の実施形態は、複数のサンプルデータを統合し、訓練されるサンプルの数を削減し、従って訓練速度を向上させる。
【００８９】
さらに、本出願の実施形態は、データの適時性に基づいて、１つの新しいデータの重みの増大、１つの古いデータの重みの低減、及びいくつかの古いデータの破棄を、自動で行うことができるため、ターゲットモデルは、ユーザの現在の行動により適し、計算量を削減することができる。
【００９０】
第４の実施形態
図４を参照すると、本出願の分散クラスタリング方法の別の実施形態のフローチャートが示され、これは具体的に以下のステップを含み得る。
【００９１】
ステップ４１０：訓練サーバは、少なくとも１つのサンプルデータを含むサンプル集合を読み込み、１つのサンプルデータは時間情報を含む。
【００９２】
ステップ４１２：訓練サーバは、サンプル集合内の様々なサンプルデータを統合する。
【００９３】
ステップ４１４：訓練サーバは、統合サンプルデータに関して、サンプルデータの統合数を記録する。
【００９４】
ステップ４１６：訓練サーバは、各サンプルデータの時間情報を用いて、重み低減係数を計算する。
【００９５】
ステップ４１８：訓練サーバは、重み低減係数と統合数との積を計算して、第３の重みを取得する。
【００９６】
ステップ４１６〜４１８は、第２の実施形態におけるステップ２２０の望ましいステップであり得ることが理解されよう。
【００９７】
ステップ４２０：第３の重みが第３の閾値未満である場合、訓練サーバは、対応する１つのサンプルデータを破棄する。
【００９８】
ステップ４２２：収集命令を受信する前に、訓練サーバは、サンプルデータ及び現行の重みを使用して反復訓練のターゲットモデル訓練関数に代入し、第１の勾配を取得し、収集集約命令を受信する前に複数回の反復訓練が存在する場合、前回の訓練で取得された第１の勾配に基づいて生成された第１の重みは、反復訓練の後続回の現行の重みとして使用される。
【００９９】
ステップ４２４：クラスタシステム環境が閾値条件を満たす場合、スケジューリングサーバは、収集命令を発行し、スケジューリングサーバは、各訓練サーバへ収集命令を送信する。
【０１００】
ステップ４２６：収集命令を受信すると、訓練サーバは、第１の勾配はアグリゲーションサーバへ送信し、各サンプルデータのそれぞれの第３の重みを集約して取得された第１の係数を、アグリゲーションサーバへ送信する。
【０１０１】
ステップ４２８：アグリゲーションサーバは、各第１の勾配及び各第１の勾配に対応する第１の係数に基づいて重み付け計算を行い、第２の勾配を取得する。
【０１０２】
ステップ４３０：アグリゲーションサーバは、第２の勾配に基づいて第２の重みを計算する。
【０１０３】
ステップ４３２：アグリゲーションサーバは、新たに取得した第２の重みのバックアップを記憶し、新たな第２の重みを各訓練サーバへ送信する。
【０１０４】
本出願の実施形態において、新たな第２の重みが取得された後、アグリゲーションサーバは、第２の重みのバックアップを保存し得る。
【０１０５】
本出願の別の望ましい実施形態において、アグリゲーションサーバにより、新たに取得された第２の重みのバックアップを記憶することは、以下を含む。
【０１０６】
ステップＤ１１：アグリゲーションサーバは、新たに取得された第２の重みと前のバックアップの第２の重みとの変化量が、変化閾値を超えるか否かを判定する。
【０１０７】
ステップＤ１２：変化閾値を超える場合、新たに取得された第２の重みはバックアップされる。
【０１０８】
本出願の実施形態において、アグリゲーションサーバは、新たな第２の重みを取得し、例えば第２の重みと前のバックアップの最後の重みとの変化量が５％などの変化閾値未満であるか否か、前のバックアップのうち少なくとも１つのバックアップの第２の重みに関して変化量を計算する。５％未満である場合、新たな第２の重みは破棄される。５％以上である場合、第２の重みはバックアップされる。よって、バックアップ回数を削減することができる。ステップＣ１３にて、外部サービスサーバのターゲットモデルは更新されなくてもよく、これにより、テストといったサービスサーバによるターゲットモデルの使用への不必要な影響が回避される。
【０１０９】
重みはバックアップされたため、ある時点で訓練全体が失敗した場合、スケジューリングサーバはアグリゲーションサーバに、訓練が再開される時に訓練サーバへバックアップの最新の第２の重みを送信するように通知することができ、これにより、訓練サーバは、最新の第２の重みを現行の重みの初期値として使用して、前のサンプルと合わせて訓練を続けることができ、従って訓練効率は向上することが理解されよう。
【０１１０】
明らかに、本出願の実施形態において、訓練が失敗した後、訓練はまた第１のサンプルから開始され得るが、現行の重みはバックアップの最新の第２の重みである。
【０１１１】
アグリゲーションサーバは、最新の第２の重みを、各訓練サーバへ送信する。
【０１１２】
ステップ４３４：訓練サーバは、アグリゲーションサーバにより送信される第２の重みを受信し、現行の重みを更新する。
【０１１３】
本出願の別の望ましい実施形態において、アグリゲーションサーバが新たに取得された第２の重みをバックアップした後、方法はさらに以下を含む。
【０１１４】
サブステップＣ１３：アグリゲーションサーバは、第２の重みをターゲットモデルに代入し、サービスサーバへ出力する。
【０１１５】
本出願の実施形態において、バックアップの第２の重みは、ターゲットモデルに直接代入され、サービスサーバに出力され得るため、サービス組織は、複数の用途でターゲットモデルを直接使用することができる。
【０１１６】
本出願は、以下の利点を有する。
【０１１７】
（１）遅延通信構造：各回の訓練で集約が行われることによりネットワークの使用が最大限に達し得ることを回避するために、全てのマシンが重み集約動作を行う必要があるか否かに関して、クラスタ環境及び反復状況に応じて、自動で判定が行われる。
【０１１８】
（２）重みバックアップ構造：ルールに従って、重みは自動でバックアップされる。ある機構が一旦問題を有すると、前の重みをバックアップから引き戻すことができ、訓練を継続することができ、従って訓練を最初から行うことなく、訓練効率を向上させることができる。
【０１１９】
（３）データ区分装置：データの適時性に応じて、１つの新しいデータの重みは自動で増大され、１つの古いデータの重みは自動で低減され、いくつかの古いデータは自動で破棄される。
【０１２０】
方法の実施形態は、簡素な説明のため、一連の動作の組み合わせで全て表されることに留意されたい。しかしながら、あるステップは本出願の実施形態に従って別の順序で、または同時に行われてもよいため、本出願の実施形態は、説明される動作の順序に限定されないことが、当業者には理解されよう。さらに、明細書において説明される実施形態は、全て望ましい実施形態であり、それに関わる動作は、必ずしも本出願の実施形態において必要であるとは限らないことも、当業者には理解されよう。
【０１２１】
図５を参照すると、本出願の分散クラスタ型訓練装置の実施形態の構造ブロック図が示され、これは具体的に以下のモジュールを含み得る。
【０１２２】
サンプル読み込みモジュール５１０は、少なくとも１つのサンプルデータを含むサンプル集合を読み込むために使用される。
【０１２３】
反復訓練モジュール５２０は、クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバにより発行される収集命令を受信する前に、サンプルデータ及び現行の重みを使用して反復訓練のターゲットモデル訓練関数に代入し、第１の勾配を取得するために使用され、収集命令を受信する前に訓練の複数反復が存在する場合、第１の重みは、前回の訓練で取得された第１の勾配に基づいて生成され、反復訓練の後続反復の現行の重みとして使用される。
【０１２４】
結果送信モジュール５３０は、収集命令が受信されると、第１の勾配を、各第１の勾配を収集して第２の重みを計算するアグリゲーションサーバへ送信するために使用される。
【０１２５】
更新モジュール５４０は、アグリゲーションサーバにより送信される第２の重みを受信して、現行の重みを更新するために使用される。
【０１２６】
本出願の別の望ましい実施形態において、クラスタシステム環境が閾値条件を満たす時にスケジューリングサーバが収集命令を発行することは、クラスタ全体のクラスタネットワーク利用率が第１の閾値条件を満たす時にスケジューリングサーバが収集命令を発行すること、及び／またはクラスタ全体のクラスタ障害率が第２の閾値条件を満たす時にスケジューリングサーバが収集命令を発行することを含む。
【０１２７】
本出願の実施形態において、第１の閾値条件には、クラスタネットワーク利用率が第１の閾値未満であることが含まれる。
【０１２８】
第２の閾値条件には、クラスタ障害率が第２の閾値未満であることが含まれる。
【０１２９】
本出願の別の望ましい実施形態において、サンプル読み込みモジュールの後、装置はさらに、各サンプルデータの時間情報を用いて各サンプルデータの第３の重みを計算するために使用される第３の重み計算モジュールと、関連する重みが第３の閾値未満である場合、対応する１つのサンプルデータを破棄するために使用されるサンプル破棄モジュールと、を含む。
【０１３０】
本出願の別の望ましい実施形態において、第３の重み計算モジュールは、各サンプルデータの時間情報を指数関数の負の指数パラメータに代入して、第３の重みを計算するために使用される指数計算モジュールを含む。
【０１３１】
本出願の別の望ましい実施形態において、第３の重み計算モジュールの前に、装置はさらに、サンプル集合内の様々なサンプルデータを統合する統合モジュールと、統合サンプルデータに関して、サンプルデータの統合数を記録するために使用される統合記録モジュールと、を含む。
【０１３２】
本出願の別の望ましい実施形態において、第３の重み計算モジュールは、各サンプルデータの時間情報を用いて、重み低減係数を計算するために使用される重み低減係数計算モジュールと、重み低減係数と統合数との積を計算して、第３の重みを取得するために使用される第１計算モジュールと、を含む。
【０１３３】
本出願の別の望ましい実施形態において、収集命令を受信すると、各サンプルデータの第３の重みを集約して取得される第１の係数を、アグリゲーションサーバへ送信するために、結果送信モジュールがさらに使用される。
【０１３４】
アグリゲーションサーバは、重み付け計算を行って、各第１の勾配と各第１の勾配に対応する第１の係数に基づく第２の勾配を取得するために使用される第１の重み集約モジュールと、第２の勾配に従って第２の重みを計算するために使用される第２の重み計算モジュールと、を含む。
【０１３５】
本出願の別の望ましい実施形態において、アグリゲーションサーバはさらに、新たに取得された第２の重みをバックアップするために使用されるバックアップモジュールを含む。
【０１３６】
本出願の別の望ましい実施形態において、バックアップモジュールは、新たに取得された第２の重みと前のバックアップの第２の重みとの変化量が、変化閾値を超えるか否かを判定するために、アグリゲーションサーバにより使用される変化計算モジュールと、変化閾値を超える場合に、新たに取得された第２の重みをバックアップするために使用される第１バックアップモジュールと、を含む。
【０１３７】
本出願の別の望ましい実施形態において、バックアップモジュールの後、装置はさらに、第２の重みをターゲットモデルに代入してサービスサーバへ出力するために使用される出力モジュールを含む。
【０１３８】
本出願は、以下の利点を有する。
【０１３９】
（１）遅延通信構造：各回の訓練で集約が行われることによりネットワークの使用が最大限に達し得ることを回避するために、全てのマシンが重み集約動作を行う必要があるか否かに関して、クラスタ環境及び反復状況に応じて、自動で判定が行われる。
【０１４０】
（２）重みバックアップ構造：ルールに従って、重みは自動でバックアップされる。ある機構が一旦問題を有すると、前の重みをバックアップから引き戻すことができ、訓練を継続することができ、従って訓練を最初から行うことなく、訓練効率を向上させることができる。
【０１４１】
（３）データ区分装置：データの適時性に応じて、１つの新しいデータの重みは自動で増大され、１つの古いデータの重みは自動で低減され、いくつかの古いデータは自動で破棄される。
【０１４２】
装置の実施形態は方法の実施形態と基本的な類似点を有するため、装置の実施形態の説明は、比較的に簡潔であり、関連部分は、方法の実施形態の説明を参照することができる。
【０１４３】
第５の実施形態
図６を参照すると、本出願の分散クラスタ型訓練装置の実施形態の構造ブロック図が示され、これは具体的に以下のモジュールを含み得る。
【０１４４】
スケジューリングサーバ６１０と、アグリゲーションサーバ６２０と、複数の訓練サーバ６３０とが含まれる。
【０１４５】
スケジューリングサーバ６１０は、クラスタシステム環境が閾値条件を満たすか否かを監視して、条件を満たす場合に各訓練サーバ６３０へ収集命令を送信するように構成されたクラスタ監視モジュール６１１を含む。
【０１４６】
本出願の別の望ましい実施形態において、クラスタ監視モジュール６１１は具体的に、クラスタ全体のクラスタネットワーク利用率が第１の閾値条件を満たす時に収集命令を発行するように、及び／またはクラスタ全体のクラスタ障害率が第２の閾値条件を満たす時に収集命令を発行するように構成される。
【０１４７】
本出願の実施形態において、第１の閾値条件には、クラスタネットワーク利用率が第１の閾値未満であることが含まれる。
【０１４８】
第２の閾値条件には、クラスタ障害率が第２の閾値未満であることが含まれる。
【０１４９】
訓練サーバ６３０は、少なくとも１つのサンプルデータを含むサンプル集合を読み込むように構成されたサンプル読み込みモジュール６３１と、収集命令を受信する前に、サンプルデータ及び現行の重みを使用してターゲットモデル訓練関数に反復訓練を行い、第１の勾配を取得するように構成された反復訓練モジュール６３２であって、収集集約命令を受信する前に複数回の反復訓練が存在する場合、前回の訓練で取得された第１の勾配に基づいて生成された第１の重みは、反復訓練の後続回の現行の重みとして使用される、反復訓練モジュール６３２と、収集命令が受信されると、第１の勾配をアグリゲーションサーバへ送信するように構成された結果送信モジュール６３３と、第２の重みを受信して、現行の重みを更新するように構成された更新モジュール６３４と、を含む。
【０１５０】
本出願の別の望ましい実施形態において、サンプル読み込みモジュール６３１の後、装置はさらに、各サンプルデータの時間情報を用いてサンプルデータの第３の重みを計算するように構成された第３の重み計算モジュールと、関連する第３の重みが第３の閾値未満である場合、対応する１つのサンプルデータを破棄するように構成されたサンプル破棄モジュールと、を含む。
【０１５１】
本出願の別の望ましい実施形態において、第３の重み計算モジュールは、各サンプルデータの時間情報を指数関数の負の指数パラメータに代入して、各第３の重みを計算するように構成された指数計算モジュールを含む。
【０１５２】
本出願の別の望ましい実施形態において、第３の重み計算モジュールの前に、装置はさらに、サンプル集合内の様々なサンプルデータを統合する統合モジュールと、統合サンプルデータに関して、サンプルデータの統合数を記録するために使用される統合記録モジュールと、を含む。
【０１５３】
本出願の別の望ましい実施形態において、第３の重み計算モジュールは、各サンプルデータの時間情報を用いて、重み低減係数を計算するために使用される重み低減係数計算モジュールと、重み低減係数と統合数との積を計算して、第３の重みを取得するために使用される第１計算モジュールと、を含む。
【０１５４】
本出願の別の望ましい実施形態において、結果送信モジュール６３３はさらに、収集命令を受信すると、各サンプルデータの第３の重みを集約して取得される第１の係数を、アグリゲーションサーバへ送信するように構成される。
【０１５５】
アグリゲーションサーバ６２０は、各第１の勾配を集約して第２の重みを計算するように構成された収集計算モジュール６２１と、最新の第２の重みを各訓練サーバへ送信するように構成された第２の重み送信モジュール６２２と、を含む。
【０１５６】
本出願の別の望ましい実施形態において、アグリゲーションサーバは、重み付け計算を行って、各第１の勾配と各第１の勾配に対応する第１の係数に基づく第２の勾配を取得するように構成された第１の重み集約モジュールと、第２の勾配に従って第２の重みを計算するように構成された第２の重み計算モジュールと、を含む。
【０１５７】
本出願の別の望ましい実施形態において、アグリゲーションサーバはさらに、新たに取得された第２の重みをバックアップするバックアップモジュールを含む。
【０１５８】
本出願の別の望ましい実施形態において、バックアップモジュールは、新たに取得された第２の重みと前のバックアップの第２の重みとの変化量が、変化閾値を超えるか否かをアグリゲーションサーバにより判定するように構成された変化計算モジュールと、変化閾値を超える場合に、新たに取得された第２の重みをバックアップするように構成された第１バックアップモジュールと、を含む。
【０１５９】
本出願の別の望ましい実施形態において、バックアップモジュールの後、装置はさらに、第２の重みをターゲットモデルに代入してサービスサーバへ出力するように構成された出力モジュールを含む。
【０１６０】
本明細書における各実施形態は、漸進的に説明され、各実施形態は、他の実施形態の重点とは異なる重点を有する。実施形態における同一または類似部分は、互いに参照することができる。
【０１６１】
本出願の実施形態は、方法、装置、またはコンピュータプログラム製品として提供され得ることが、当業者には理解されよう。従って、本出願の実施形態は、完全なハードウェア実施形態、完全なソフトウェア実施形態、またはソフトウェアとハードウェアの組み合わせである実施形態の形態を取り得る。さらに、本出願の実施形態は、コンピュータ使用可能プログラムコードを自身に取り入れた１つ以上のコンピュータ使用可能記憶媒体（磁気記憶デバイス、ＣＤ−ＲＯＭ、光学記憶デバイスなどを含むがこれに限定されない）の形態で実装されたコンピュータプログラム製品の形態を取り得る。
【０１６２】
典型的な構成のコンピューティングデバイスは、１つ以上のプロセッサ（ＣＰＵ）と、入出力インターフェースと、ネットワークインターフェースと、メモリとを備える。メモリは、揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ）、及び／または不揮発性メモリ、例えば読出専用メモリ（ＲＯＭ）もしくはフラッシュＲＡＭなど、コンピュータ可読媒体の形態を含み得る。メモリは、コンピュータ可読媒体の一例である。コンピュータ可読媒体には、任意の方法または技術を利用して情報の記憶を達成し得る、揮発性もしくは不揮発性の、着脱可能もしくは着脱不可な媒体が含まれ得る。情報には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータが含まれ得る。コンピュータ記憶媒体の例には、相変化メモリ（ＰＲＡＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）、他の種類のランダムアクセスメモリ（ＲＡＭ）、読出専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読出専用メモリ（ＥＥＰＲＯＭ）、高速フラッシュメモリもしくは他の内部記憶技術、コンパクトディスク読出専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学記憶デバイス、磁気カセットテープ、磁気ディスク記憶デバイスもしくは他の磁気記憶デバイス、またはコンピューティングデバイスによりアクセスされ得る情報を記憶するために使用され得るその他の非伝達媒体が含まれるが、これらに限定されない。本明細書において定義されるように、コンピュータ可読媒体に、変調データ信号及び搬送波などの一時的媒体は含まれない。
【０１６３】
本出願の実施形態による方法、端末デバイス（システム）、及びコンピュータプログラム製品のフローチャート及び／またはブロック図を参照して、本出願の実施形態は説明される。フローチャート及び／またはブロック図における各フロー及び／またはブロック、並びにフローチャート及び／またはブロック図におけるフロー及び／またはブロックの組合せは、コンピュータプログラム命令により実施され得ることを理解されたい。コンピュータプログラム命令は、汎用コンピュータのプロセッサ、専用コンピュータ、組み込みプロセッサ、またはマシンを生じる他のプログラム可能データ処理端末デバイスに提供されてもよく、よって、コンピュータのプロセッサまたは他のプログラム可能データ処理端末デバイスが命令を実行することにより、装置は、フローチャートの１つ以上のフロー及び／またはブロック図の１つ以上のブロックで特定される機能を実施するように作られる。
【０１６４】
これらのコンピュータプログラム命令はまた、コンピュータまたは他のプログラム可能データ処理端末デバイスに特定の方法で作動するように命令することが可能なコンピュータ可読記憶デバイスに記憶されてもよく、よって、コンピュータ可読記憶デバイスに記憶される命令は、命令装置を含む製品を生じる。命令装置は、フローチャートの１つ以上のフロー及び／またはブロック図の１つ以上のブロックで特定される機能を実施する。
【０１６５】
これらのコンピュータプログラム命令はまた、コンピュータまたは他のプログラム可能データ処理端末デバイスにロードされてもよく、よって、一連の動作ステップがコンピュータまたは他のプログラム可能端末デバイス上で実行され、コンピュータ実施プロセスが生じる。コンピュータまたは他のプログラム可能端末デバイスにおいて実行される命令は、フローチャートの１つ以上のフロー及び／またはブロック図の１つ以上のブロックで特定される機能を実施するステップを提供する。
【０１６６】
本出願の実施形態のうちの望ましい実施形態が説明されたが、当業者は、基本的発明構想を一度理解すれば、これらの実施形態に対し、追加の変更及び修正を行うことができる。よって、添付の特許請求の範囲は、望ましい実施形態、並びに本出願の実施形態の範囲に入る全ての変更及び修正を含むように解釈されることを意図する。
【０１６７】
最後に、第１、第２などの関係を示す用語は、提示文において１つのエンティティまたは動作を別のエンティティまたは動作と区別するためにのみ使用され、これらの動作間またはエンティティ間にいずれのそのような関係性または順序を必ずしも要求または意味するわけではないことにも留意されたい。さらに、用語「ｉｎｃｌｕｄｅ（含む）」、「ｃｏｎｔａｉｎ（含む）」、またはこれらの任意の他の変形には、非排他的包含を対象とする意図があり、よって、一連の要素を含むプロセス、方法、製品、または端末デバイスは、これらの要素を含むだけでなく、明示的に列挙されていない他の要素も含む、あるいはこのようなプロセス、方法、製品、または端末デバイスに固有の要素も含む。さらなる任意の制約なしに、記述「〜を含む」により定義される要素は、要素を含むプロセス、方法、製品、または端末デバイスが、別の同じ要素をさらに含むことを除外しない。
【０１６８】
本出願において提供される分散クラスタ型訓練方法及び分散クラスタ型訓練装置が、前述において詳しく説明された。本文は、具体的な実施例を用いて、本出願の原理及び実施態様を例示する。上記の実施形態の説明は、単に本出願の方法及び中核概念の理解を促進するために用いられる。同時に、当業者は、本出願の概念に基づいて、特定の実施態様及び適用範囲に変更を加えることができる。要するに、本明細書の内容は、本出願に対する限定として解釈されるべきではない。
【図１】
2019511054.tif 000003
【図２】
2019511054.tif 000004
【図３】
2019511054.tif 000005
【図４】
2019511054.tif 000006
【図５】
2019511054.tif 000007
【図６】
2019511054.tif 000008
【国際調査報告】
2019511054.tif 000009
2019511054.tif 000010
2019511054.tif 000011
2019511054.tif 000012