(58)【調査した分野】(Int.Cl.,DB名)
当該サーバには、前記モデルを利用する前に、前記少なくとも1つのモデル(A1,...,AK)が割り当てられ、割り当てることは、ランダムモデルまたは既知のモデルのうちの1つを選択することを含む、請求項8に記載のサーバ。
【背景技術】
【0002】
クライアント−サーバシステムは、システムのタスクがサービスのプロバイダ、すなわちサーバとサービス要求者、すなわちクライアントとの間で分割される構造である。サーバは、そのリソースをクライアントと共有する1つ以上のプログラムを実行することができる。一方、クライアントはそのリソースのいかなるものも共有せず、サーバのコンテンツやサービス機能を要求する。クライアント、すなわち、携帯電話、タブレットなどのユーザ装置は、各クライアントがデータのソースであるので、そのようなクライアント−サーバシステムにおいて使用される機械学習プロセスの重要な部分であり、そのデータは、機械学習プロセスにおいて使用されるモデルを構築し、モデルから結果を生成するために使用される。
【0003】
結果は、例えば、クライアントのユーザにとって関心のある特定のアイテムが1つまたは複数のモデルによって予測される、より大きなアイテムのセットから取られた、1つまたは複数の特定のアイテムの推奨とすることができる。アイテムは、例えば、視聴に利用可能なビデオ、ダウンロードに利用可能なアプリケーション、または購入に利用可能な衣服のような物理オブジェクトである。クライアントとアイテムは、いわゆるクライアント−アイテム行列に収集することができる。
【0004】
機械学習プロセスは、例えば、履歴およびトランザクションデータに見い出されるパターンを利用することによって、予測作成に使用され得る複雑なモデルおよびアルゴリズムを作成することを含む。予測作成にはいくつかの技法があるが、1つの共通する特徴は、例えば、ビデオクリップ、衣服などのより大きな要素セット内の個々の要素に対して、レーティングのような予測スコアを適用することである。予測は、ユーザがビデオを視聴し、アプリケーションをダウンロードし、または衣服を購入する確率を示し、その後、ユーザへの推奨を生成するために使用され得る。
【0005】
効率的な機械学習プロセスを達成することは困難である。なぜなら、パターンを見つけることが困難であり、しばしば利用可能である十分な訓練データがないためである。その結果、機械学習プロセスは送達に失敗することが多い。したがって、機械学習プロセスに可能な限り多くのデータが利用可能であることが重要である。クライアント−サーバシステムの場合、これは、できるだけ多くのクライアントおよびそれらのデータへのアクセス権を持つサーバに変換される。各クライアントは、携帯電話、タブレットなどのユーザデバイスであり、機械学習プロセスで使用されるモデルを構築するために使用されるデータのソースであるだけでなく、最も高いスコアを得たビデオクリップまたは衣服をクライアントのユーザに推奨するなど、モデルの結果を配信するための媒体でもある。
【0006】
このようなモデル構築に対する従来技術のアプローチは、ユーザデータを中央サーバに送信することを含み、データを処理し、モデルを構築し、推奨の形式で結果を生成するために異なるアルゴリズムが使用される。推奨は、個別および個人的であるべきであり、データが個人的であるほど、推奨は良好になる。
【0007】
携帯電話、タブレットなどのクライアントは、異なる種類の個人的なユーザデータ、例えば、非常に機密性の高い個人的なデータと考えられることがあるクライアント位置、および特に機密性の高い個人的なデータとは考えられないことがあるダウンロードされたアプリケーションを含む。機密性のレベルにかかわらず、データは依然として個人的なユーザデータと考えられる。
【0008】
例えば、2018年にEU諸国で施行されるGDPR(General Data Protection Regulation)や、企業がどのようにしてユーザデータを収集し、保管し、使用するかについての一般的な精査は、パーソナライズされた推薦を生成することをより困難にする問題であり、ユーザのデータを収集し、保管し、処理するために明示的なユーザのオプトイン同意が要求されるときには不可能でさえあるかもしれない。オプトイン率が20%と低いことを開示している調査では、このようなパーソナライズされた推奨を生成しようとすることは、もはや有益ではないことがある。
【0009】
さらに、多数のクライアントのために毎日ギガバイトのユーザデータを収集し、データをセキュアに保管および使用するには、高価なインフラストラクチャおよび管理ソリューションが必要である。
【0010】
クライアントのユーザにパーソナライズされた推奨のような結果を提供することは、例えば、すでに視聴したビデオクリップであることにより、関心のないコンテンツをフィルタリングしながら、例えば、視聴を楽しめるビデオクリップをユーザが見つける手助けをすることによって、ユーザをサービスに関与させる重要な手段である。
【発明の概要】
【0011】
これは、改良されたクライアント、サーバ、およびクライアント−サーバシステムを提供することを目的とする。
【0012】
前述および他の目的は、独立請求項の特徴によって達成される。さらなる実施態様の形式は、従属クレーム、明細書および図面から明らかである。
【0013】
第1の態様によれば、クライアントのユーザのためにパーソナライズされたアイテムの推奨を生成するように適合されたクライアントであって、クライアントは、アイテムのグローバルセットおよび少なくとも1つのモデルを利用するサーバに接続されており、クライアントは、サーバからダウンロードした少なくとも1つのモデルを利用することと、ダウンロードしたモデルの少なくとも1つおよびクライアントに記憶されたローカル・クライアント・データセットを用いて、アイテムの少なくとも1つを含む推奨セットを生成することと、をするように構成されている、クライアントが提供される。
【0014】
これらの特徴を含むクライアントは、パーソナライズされたアイテムの推奨を生成するために必要な計算の一部がクライアントで実行され、計算で使用されるデータの一部がクライアントに記憶されるため、効率的で安全なパーソナライズされたアイテムの推奨の生成を可能にする。
【0015】
第1の態様の可能な実施態様の形式では、モデルは、異なるタイプの使用のために十分に確立されたモデルである、協調フィルタリング、予測モデリング、および/または深層学習モデルを含む。
【0016】
第1の態様のさらなる可能な実施態様の形式では、クライアント・データセットは、暗黙的なユーザフィードバックおよび/または明示的なユーザフィードバックを含み、パーソナライズされたアイテムの推奨を生成するために使用される推定値が、ユーザの行動に基づいて計算されることを可能にするとともに、ユーザのレビューが計算において考慮されることを可能にする。
【0017】
第1の態様のさらなる可能な実施態様の形式では、推奨セットは、2つのモデルの組み合わせとクライアント・データセットを用いて生成され、一方のモデルは協調フィルタリングであり、他方のモデルは予測モデリングであり、それらが組み合わされると、パーソナライズされたアイテムの推奨の高い効率的な生成を可能にする。
【0018】
第1の態様のさらなる可能な実施態様の形式では、勧告セットは、1つのモデルおよびクライアント・データセットを用いて生成された第1の推奨セットと、さらなるモデル、第1の推奨セットおよびクライアント・データセットを用いて生成された第2の推奨セットとを含み、第1の推奨セットが改善されることを可能にする。
【0019】
第1の態様のさらなる可能な実施態様の形式では、第2の推奨セットを生成することは、第1の推奨セットの個々のアイテムを選択し、スコアリングすることを含み、より小さい、および/または、より正確な推奨セットを生成することを可能にする。
【0020】
第1の態様のさらなる可能な実施態様の形式では、クライアントは、ダウンロードしたモデルおよびローカル・クライアント・データセットを用いて更新モデルを計算することと、更新モデルをサーバにアップロードすることであって、更新モデルは、サーバが新しい更新モデルを計算するために使用される、アップロードすることと、サーバから新しい更新モデルをダウンロードすることと、新しい更新モデルおよびローカル・クライアント・データセットを用いて、少なくとも1つの更なる更新モデルを計算することと、を用いて各ダウンロードされたモデルを更新するように構成されている。
【0021】
これらの機能を含むクライアントは、サーバに接続されたすべてのクライアントのクライアントデータへのアクセス権を有するため、効率的であり、個々のクライアントに関するクライアントデータがまったく同じままであるので、安全である機械学習プロセスを可能にする。クライアントに接続されたサーバは、大量のクライアントデータを収集または記憶する必要がないため、このプロセスは、時間的にもコスト的にも効果的である。
【0022】
第1の態様のさらなる可能な実施態様の形式では、クライアントは、ローカル・クライアント・データセットを用いて、各ダウンロードされたモデルに対する更新を計算することと、更新をサーバにアップロードすることであって、更新は、サーバが更新モデルを計算するために使用される、アップロードすることと、更新モデルをサーバからダウンロードすることと、ローカル・クライアント・データセットを用いて、更新モデルに対する新しい更新を計算することと、更新モデル、新しい更新およびローカル・クライアント・データセットを用いて、少なくとも1つのさらなる更新モデルを計算することと、を用いて各モデルに対する少なくとも1つの更新を計算するように構成されている。
【0023】
上述したように、これらの機能を含むクライアントは、効率的で安全な機械学習プロセスを可能にする。クライアントは、サーバからモデル全体をダウンロードまたはアップロードしなくてもよいため、このプロセスは特に効果的である。
【0024】
第1の態様のさらなる可能な実施態様の形式では、更新を計算することは、関数f(i,j)を用いて各アイテムの値を計算することを含み、任意の個人的な顧客データから解放された値を計算することを可能にする。
【0025】
第1の態様のさらなる可能な実施態様の形式では、クライアントは、さらなる更新モデルおよびローカル・クライアント・データセットを用いて推奨セットを生成するようにさらに構成され、可能な限り多くのクライアントデータを使用することを可能にする。
【0026】
第2の態様によれば、クライアントで、クライアントのユーザのためのパーソナライズされたアイテムの推奨を生成するのを支援するように適合されたサーバであって、サーバは、アイテムのグローバルセットおよび少なくとも1つのモデルを利用するように構成されており、サーバは、複数のクライアントに接続されており、各クライアントは、モデルをダウンロードし、モデルに対する更新モデルまたは更新を生成するように構成されており、サーバは、さらに、クライアントの少なくとも1つによってアップロードされた更新モデルまたは更新を用いて新しい更新モデルを生成することと、複数のクライアントに新しい更新モデルを送信することと、をするように構成されており、クライアントに記憶された新しい更新モデルおよびローカル・クライアント・データセットは、各クライアントがパーソナライズされたアイテムの推奨を生成するために使用される、サーバが提供される。
【0027】
これらの特徴を含むサーバは、パーソナライズされたアイテムの推奨を生成するために必要な計算の一部がクライアントで実行され、計算に使用されるデータの一部がクライアントに記憶されるため、パーソナライズされたアイテムの推奨の効率的で安全な生成を可能にする。
【0028】
第2の態様の可能な実施態様の形式では、サーバには、モデルを利用する前に少なくとも1つのモデルが割り当てられ、割り当てることは、ランダムモデルまたは既知のモデルのうちの1つを選択することを含む、新しいモデルまたは以前に使用されたモデルのうちのいずれかを計算の出発点として使用することを可能にする。
【0029】
第2の態様のさらなる可能な実施態様の形式では、サーバは、クライアントのうちのいくつかを決定することであって、各決定されたクライアントは、ダウンロードしたモデルおよびローカル・クライアント・データセットを用いて更新モデルを計算し、更新モデルをサーバにアップロードするように構成されている、決定することと、決定されたクライアントの少なくとも1つによってアップロードされた更新モデルを受信することと、受信した更新モデルを平均することによって、新しい更新モデルを計算することと、を用いて新しい更新モデルを生成するように構成されている。
【0030】
これらの機能を含むサーバは、サーバに接続されたすべてのクライアントのクライアントデータへのアクセス権を有するため、効率的であり、個々のクライアントに関するクライアントデータがまったく同じままであるため、安全である機械学習プロセスを可能にする。クライアントに接続されたサーバは、大量のクライアントデータを収集または記憶する必要がないため、このプロセスは、時間的にもコスト的にも効果的である。
【0031】
第2の態様のさらなる可能な実施態様の形式の形式では、サーバは、クライアントのうちのいくつかを決定することであって、各決定されたクライアントは、ローカル・クライアント・データセットによって各モデルに対する更新を計算し、更新をサーバにアップロードするように構成されている、決定することと、決定されたクライアントの少なくとも1つによってアップロードされた更新を受信することと、モデルおよび受信した更新の集合を用いて、新しい更新モデルを計算することと、を用いて新しい更新モデルを生成するように構成されている。
【0032】
上述のように、これらの機能を有するサーバは、効率的で安全な機械学習プロセスを可能にする。クライアントは、サーバからモデル全体をダウンロードまたはアップロードしなくてもよいため、このプロセスは特に効果的である。
【0033】
第3の態様によれば、クライアントのユーザに対してパーソナライズされたアイテムの推奨を生成するように構成された機械学習クライアント−サーバシステムであって、上述の複数のクライアントと、上述のサーバとを含む、クライアント−サーバシステムが提供される。これらの機能を含むクライアント−サーバシステムは、パーソナライズされたアイテムの推奨を生成するために必要な計算の一部がクライアントで実行され、計算で使用されるデータの一部がクライアントに記憶されるので、効率的で安全なパーソナライズされたアイテムの推奨の生成を可能にする。
【0034】
これらおよび他の態様は、以下に説明する実施形態から明らかであろう。
【発明を実施するための形態】
【0037】
背景の項で述べたように、クライアント−サーバシステムとは、システムのタスクが、サービス提供者、すなわちサーバと、サービス依頼者、すなわち、携帯電話、タブレット端末などのクライアントとに分割される構造である。提供されるべきサービスは、ビデオサービスであってもよく、ビデオサービスに関連するユーザデータのすべてがサーバに記憶される。
【0038】
従来技術のモデル構築は、データが処理され、モデルが構築され、結果が生成され、クライアントに返送される中央サーバにクライアントから個人的なユーザデータを送信することを含む。結果は、例えば、より大きなアイテムのセットから取得された、1つまたは複数の特定のアイテムの推奨を生成するために使用される推定値でもよく、特定のアイテムは、クライアントのユーザにとって関心があると、1つまたは複数のモデルによって予測される。アイテムは、例えば、視聴に利用可能なビデオ、ダウンロードに利用可能なアプリケーション、または購入に利用可能な衣服のような物理的オブジェクトである。
【0039】
クライアントの数および使用可能なアイテムは、通常、非常に多く、クライアント−アイテム行列
【数1】
において好ましくは収集され、Nは、サーバに接続されたクライアントiの最大数であり、Mは、サーバで利用可能なアイテムjの最大数である。
【0040】
クライアントの数Nは数百万であり、アイテムの数Mは数千であることを考えると、クライアント−アイテム行列Rは、多くの要素r
ijが特定されていないスパースである可能性がある。本開示の1つの目的は、そのような特定されていない要素をそれらの推定値
【数2】
で置き換えることである。
【0041】
従来技術とは対照的に、また、クライアントの計算能力の一般的な増加のような技術的進歩により、本開示は、依然としてクライアント上のすべての個人的なユーザデータを維持しつつ、すなわち、個人ユーザデータは、中央サーバで使用も保存もされないが、そのような推定値を生成する。従って、サーバに転送されて記憶されるデータの量が減り、データ収集とユーザのプライバシーに関する問題が回避される。要素r
ijとその推定値
【数3】
は、パーソナライズされたアイテムの推奨を生成するために使用される。
【0042】
上記は、部分的に、協調フィルタリングによって達成される。要するに、協調フィルタリングでは、モデルは、以前に購入または選択されたアイテム、および/または、ユーザによってそれらのアイテムに与えられた数値評価、ならびに、他のユーザによってなされた同様の決定のような、ユーザの過去の行動から構築される。次いで、このモデルは、ユーザがどの他のアイテムに関心を持つかを予測するために使用される。協調フィルタリングは、単独で、または他のタイプのモデル、例えば、予測モデリングと組み合わせて、ユーザのための推奨を生成するために最も使用されるモデルの1つである。予測モデリングは、好ましくは、上述の推定値
【数4】
に対して、評価のような予測スコアを適用するために使用される。
【0043】
従来技術では、これらのモデルは両方とも、集中サーバで収集されるモデルの構築に使用されるすべてのデータを収集する必要がある。
【0044】
前述したように、クライアントの数とアイテムの数は、通常、非常に多いため、モデルの組み合わせを使用して、特定のクライアントiのユーザに関連性のあるパーソナライズされたアイテムの推奨のみを提供することができる。一例として、
図2にも示されているように、協調フィルタリングモデルA1が、第1のセットのアイテムの推奨R1
ij、前述の要素r
ijおよび推定値
【数5】
のすべてではない場合、いくつかを含むいわゆる候補セットを生成するために使用されてもよく、予測モデリングモデルA2が、最初に推奨されたアイテムR1
ijをスコアリングし、それらを重みで分類することによって、最終的な使用可能な推奨R2
ijを生成するために使用されてもよい。
【0045】
推定値
【数6】
は、特定のクライアントだけでなく複数のクライアント、一実施形態においてはすべての可能なクライアントからの暗黙的および/または明示的なフィードバックに基づいてもよい。暗黙的なフィードバックは、例えばアプリケーションをダウンロードするなど、ユーザによって取られるアクションを含む。明示的なフィードバックは、アイテムのユーザレビューを含む。協調フィルタリングは、これら2種類のデータのみを使用するが、上述の予測モデリングは、人口統計学、行動データ、アイテムがどこで、いつ、アイテムが相互作用したか、およびどのような種類の装置が使用されたかのような他のユーザ活動関連データ、名前およびログインデータのような個人的なユーザデータ等の追加の種類の明示的なフィードバックを使用してもよい。
【0046】
すべての協調フィルタリング・リコメンダ・システムの基本は、前述のクライアント−アイテム行列
【数7】
である。簡単のために、以下の説明では、クライアントiをそのユーザ、アイテムjをダウンロード可能なアプリケーションと同一視することがある。
【0047】
協調フィルタリングでは、値r
ijは、ユーザレビューなどの明示的なフィードバックから導き出され、例えば、
【数8】
である。
【0048】
例えば、ユーザがアプリケーションをダウンロードするような暗黙的なフィードバックの場合、ユーザ/クライアントiがアプリケーション/アイテムjをダウンロードしたとき、r
ij=1であり、そうでなければ、r
ijは特定されず、1≦i≦Nおよび1≦j≦Mである。
【0049】
協調フィルタリングは、特定されていないr
ijをそれらの推定値
【数9】
で置き換えるために、例えば、行列因数分解を用いて使用される。行列因数分解は、各クライアントiに対してクライアント・ファクタ・ベクトル
【数10】
、
【数11】
と、各アイテムjに対してアイテム・ファクタ・ベクトル
【数12】
、
【数13】
と、を生成することを伴う。kは、ファクタの数であり、通常、MとNの両方よりもはるかに小さい。特定されていないr
ijの推定値は、
【数14】
で与えられる。
【0050】
第1のモデルA1は、複数のクライアント・ファクタ・ベクトル(x
i)を含むファクタ行列A1=X(i,k)であり、第2のモデルA2は、複数のアイテム・ファクタ・ベクトル(y
j)を含むファクタ行列A2=Y(j,k)である。
【0051】
クライアント・ファクタ・ベクトルは、行列
【数15】
に収集され、X=(x
1,x
2,...,x
i,...,x
M)であり、アイテム・ファクタ・ベクトルは、行列
【数16】
に収集され、Y=(y
1,y
2,...,y
j,...,y
N)である。クライアント−アイテム行列Rはまた、言い換えると
【数17】
で定義される。
【0052】
明示的なフィードバックの場合、バイナリ変数p
ijのセットは、ユーザ/クライアントiがアプリケーション/アイテムjを評価したかどうかを示すために導入され、
【数18】
である。値p
ij>0は、アプリケーション/アイテムjが評価されていることを意味し、値p
ij=0は、ユーザがアプリケーション/アイテムjを評価しなかったか、または単にアプリケーション/アイテムjが存在することに気づいていないことを意味する。
【0053】
暗黙的なフィードバックの場合、バイナリ変数p
ijのセットは、アプリケーション/アイテムjに対するユーザ/クライアントiの嗜好を示すために導入され、
【数19】
である。値p
ij=0は、ユーザ/クライアントiがアプリケーション/アイテムjに関心がないか、またはアプリケーション/アイテムjが存在することに気づいていないことを含めて、多くの解釈を有することができる。これを説明するために、信頼パラメータc
ijが導入され、
【数20】
として定義され、α>0である。暗黙的なフィードバック問題は、言い換えると、信頼レベルc
ijを考慮に入れる必要があるという点で、標準の明示的なフィードバック問題とは異なる。
【0054】
すべての更新は、ダウンロードjがあるクライアントiではなく、すべてのクライアントiとすべてのアイテムjを通して行われる。
【0055】
従来技術の協調フィルタリングモデルでは、x
iは、式
【数21】
を用いて更新され、Y、
【数22】
は、アイテム・ファクタ・ベクトルの前述の行列であり、C
iは、
【数23】
である対角行列であり、Iは、単位行列であり、
【数24】
は、クライアントiに対するバイナリ嗜好変数ベクトルである。
【0056】
同様に、y
jは、式
【数25】
を用いて、更新され、X、
【数26】
は、前述のクライアント・ファクタ・ベクトルの行列であり、C
iは、
【数27】
である対角行列であり、
【数28】
は、クライアントiに対するバイナリ嗜好変数ベクトルである。
【0057】
要約すると、上述の従来技術の方法は、Xを計算するためにYを使用し、Yを計算するためにXを使用し、少なくとも適切な収束基準が満たされるまで、2つの方程式の間で繰り返し、交互に使用する。収束基準は、あらかじめ定義された制限値、たとえば1%とされる。Cおよびpは、ユーザ/クライアントデータに基づいており、XおよびYの両方を計算するために使用され、すべてのユーザデータは、XおよびYと同じ場所、すなわちサーバに配置されなければならない。これは、協調フィルタリングのためのALS(Alternating Least Squares)法と呼ばれ、従来技術において頻繁に使用されている。
【0058】
図1に概略的に示す本開示の実施形態は、Yを計算するために異なるアプローチがとられるようなALS法の適応を含み、この適応は、計算がクライアントに配布されることを可能にし、従って、クライアントデータをサーバに転送する必要性を回避する。すべてのアイテム・ファクタ・ベクトル
【数29】
はサーバに配置され、サーバで更新され、その後、各クライアントiに配布される。すべてのクライアント・ファクタ・ベクトル
【数30】
はクライアントiにとどまり、ローカル・クライアント・データu
iとサーバからのアイテム・ファクタ・ベクトルとを使用してクライアントで更新される。更新は、各クライアントiのアイテムjから計算され、サーバに送信され、集約され、y
jが更新される。
【0059】
【数31】
を計算をするのに必要な値はすべて、アイテム・ファクタ・ベクトル
【数32】
の現在のセットがクライアントiにダウンロードされている限り、クライアントiで利用可能であり、Yはアイテム・ファクタ・ベクトルの行列、C
iは、
【数33】
である対角行列であり、λは、正則化ファクタであり、Iは、単位行列であり、
【数34】
は、クライアントiに対するバイナリ嗜好変数ベクトルである。さらに、これらの値はすべて、任意の他のクライアントiの対応する値から独立している。従って、ALSアルゴリズムの第1ステップに対応するものは、他のクライアントを参照することなく、各個々のクライアントiで計算することができる。
【0060】
しかし、ALS法を使用するときに、y
j、
【数35】
は、クライアント・ファクタ・ベクトルの行列Xを必要とし、この更新は、すべてのクライアントデータが利用可能なサーバで行わなければならない。ALS法におけるように、y
jの更新を直接計算するのではなく、本開示は、勾配降下アプローチを適用して、サーバで更新されたy
jを計算する。より具体的には、本開示は、式
【数36】
を用いて更新y
j、すなわち、更新行列Yを計算し、Yはゲイン関数であり、∂J/∂y
jは、式
【数37】
を用いて計算される。
【0061】
上述の式∂J/∂y
jは、コスト関数J、
【数38】
に由来し、λは、正則化ファクタである。コスト関数Jは、クライアント・ファクタ・ベクトル行列Xとアイテム・ファクタ・ベクトル行列Yの計算を交互に行うことによって最小化される。コスト関数Jを最小化するための第一段階は、∂J/∂x
iおよび∂J/∂y
jを用いて、すべてクライアントiに対するx
iおよびすべてのアイテムjに対するy
jについて、Jを微分することである。
【0062】
ALS法のように、x
iの初期開始値が、
【数39】
、
【数40】
により直接計算することが可能であり、前述のように、必要な値がクライアントiで利用可能である。
【0063】
一方、∂J/∂y
jは、すべてのクライアントiに対する合計である成分を含み、合計はf(i,j)と定義される。f(i,j)は、クライアントデータのみに基づいて、
【数41】
を用いて計算される、すなわち、f(i,j)は、他のすべてのクライアントとは独立に、各クライアントiで計算される。
【0064】
各クライアントiは、各アイテムjに対して計算された値f(i,j)の評価をサーバに報告し、その後、すべてのクライアント評価がサーバで、
【数42】
を用いて合計され、その後、
【数43】
に適用される。
【0065】
本開示は、言い換えると、少なくとも1つのモデル、例えば、協調フィルタリングモデルA1を訓練することに関し、クライアントからサーバにユーザデータを転送する必要はなく、同時に、モデルA1を使用して、クライアント−アイテム行列Rの特定されていない要素の推定値
【数44】
を計算し、推定値は、パーソナライズされた推奨を生成するために使用される。
図1に示すように、機械学習モデルA1は、最初に、集中サーバに配置され、各ユーザ装置/クライアントiに配布される。初期モデルA1は、モデルA1およびクライアントに配置されるクライアントデータu
iを使用して、各クライアントで更新される。各ユーザ装置/クライアントで生成された更新dA1
i、または完全更新モデルA12
iは、サーバに返送され、すべての決定されたクライアントを横断して集約され、新しいモデルコンポーネントA12を生成し、これが次にクライアントiにダウンロードされ、モデルA13
iを形成するように更新される。
【0066】
「モデル」によって、モデル全体またはモデルの部分のいずれかが意味される。後者の場合、モデルは少なくとも2つの部分A1、A2を含む。1つの個々の部分A1
iは、クライアントに割り当てられ、1つの部分A2は、サーバからクライアントiにダウンロードされる。個々の部分A1
iは、ダウンロードされたサーバ部分およびローカル・クライアント・データu
iの要素によって更新され、更新された個々の部分A12
iをもたらす。各アイテムjに対する個々の値は、ダウンロードしたサーバ部分A2、更新された個々の部分A12
i、およびローカル・クライアント・データu
iの要素を使用してクライアントで計算される。値の評価は、各クライアントからサーバにアップロードされ、サーバ部分は、そのような評価の集合体を用いて更新され、更新サーバ部分A22を形成することができる。更新サーバ部分A22は、クライアントにダウンロードされ、さらに、ダウンロードした更新サーバ部分A22およびローカル・クライアント・データu
iの要素を用いて、クライアントでさらに更新された個々の部分A13
iが計算される。その後、クライアント−アイテム行列Rの少なくとも1つの特定されていない要素は、さらに更新された個々の部分A13
iおよび更新サーバ部分A22を用いて、特定されていない要素をその推定値で置き換えることによって、更新され得る。
【0067】
クライアントiにローカルに記憶されたモデルA13
iとクライアントデータu
iは、クライアント−アイテム行列Rの特定されていない要素を置き換える推定値を計算するために使用される。したがって、クライアントデータu
iはクライアントから離れることはない。更新クライアント−アイテム行列Rは、言い換えると、第1の推奨セットR1
ijを生成するために使用される。
【0068】
予測モデリングのようなさらなるモデルが使用されて、第1の推奨セットR1
ijを選択し、再スコアリングし、ソートし、その後絞り込んで、第2の推奨セットR2
ijにする。
【0069】
本開示の一態様は、クライアントiのユーザのためにパーソナライズされたアイテムの推奨を生成するように適合されたクライアントに関する。クライアントは、アイテムj
1,...,j
Mのグローバルセットおよび少なくとも1つのモデルA1,...,AKを利用するサーバに接続される。クライアントiは、
図1に示すように、サーバからダウンロードした少なくとも1つのモデルA1,...,AKを利用し、ダウンロードしたモデルA1,...,AKの少なくとも1つおよびクライアントiに記憶されたローカル・クライアント・データセットu
iを用いて、アイテムj
1,...,j
Mの少なくとも1つを含む推奨セットR
ijを生成するように構成されている。
【0070】
モデルA1,...,AKは、協調フィルタリング、予測モデリング、および/または深層学習モデルを含む。クライアント・データセットは、暗黙的なユーザフィードバックおよび/または明示的なユーザフィードバックを含む。
【0071】
推奨セットR
ijは、2つのモデルA1、A2の組み合わせとクライアント・データセットu
iを用いて生成され、一方のモデルA1は、協調フィルタリングであり、他方のモデルA2は予測モデリングである。
【0072】
推奨セットR
ijは、1つのモデルA1、A12、A13およびクライアント・データセットu
iによって生成された第1の推奨セットR1
ijと、さらなるモデルA2、A22、第1の推奨セットR1
ij、およびクライアント・データセットu
iによって生成された第2の推奨セットR2
ijを含む。これは、
図2に模式的に示される。
【0073】
第2の推奨セットR2
ijを生成することは、第1の推奨セットR1
ijの個々のアイテムj
pを選択し、スコアリングすることを含む。
【0074】
クライアントiは、
図1および
図2に概略的に示される、以下のステップを用いて、各ダウンロードされたモデルを更新するように構成され得る。
A.ダウンロードしたモデルA1,...,AK、およびローカル・クライアント・データセットu
iを用いて、更新モデルA12
i,...,AK2
iを計算する。
B.更新モデルA12
i,...,AK2
iをサーバにアップロードし、更新モデルA12
i,...,AK2
iは、サーバが新しい更新モデルA12,...,AK2を計算するために使用される。
C.新しい更新モデルA12,...,AK2をサーバからダウンロードする。
D.新しい更新モデルA12,...,AK2およびローカル・クライアント・データセットu
iを用いて少なくとも1つのさらなる更新モデルA13
i,...,AK3
iを計算する。
【0075】
モデルAは、上記のステップAおよびDに記載されるように、クライアントで更新され得る。モデルが協調フィルタリングモデルであるときに、式
【数45】
を用いて、更新が実行され、p(i)は、クライアントiに対するバイナリ嗜好変数ベクトル、R
iは、クライアントiに対する既知の入力のベクトル、Iは、単位行列であり、λは、正規化パラメータである。
【0076】
モデルAは、上記のステップBに記載されるように、サーバで更新され得る。更新は、ステップBにおいても、サーバにアップロードされた更新モデルを平均化することによって実行される。
【0077】
クライアント(i)は、さらに、以下のステップによって、各モデルに対して少なくとも1つの更新を計算するように構成され得る。
A.ローカル・クライアント・データセットu
iを用いて、各ダウンロードしたモデルA1,...,AKに対する更新dA1
i,...,dAK
iを計算する。
B.更新dA1
i,...,dAK
iをサーバにアップロードし、更新dA1
i,...,dAK
iは、サーバが更新モデルA12,...,AK2を計算するために使用される。
C.更新モデルA12,...,AK2をサーバからダウンロードする。
D.ローカル・クライアント・データセットu
iを用いて、更新モデルA12,...,AK2に対する新しい更新dA12
i,...,dAK2
iを計算する。
E.更新モデルA12,...,AK2、新しい更新dA12
i,...,dAK2
i、およびローカル・クライアント・データセットu
iを用いて、少なくとも1つのさらなる更新モデルA13
i,...,AK3
iを計算する。
更新dA1i
1,...,dAK
i、dA12i
1,...,dAK2
iを計算することは、関数f(i,j)を用いて、各アイテムj
1,...,j
Mの値を計算することを含む。
【0078】
モデルAは、上記のステップA、D、およびEに記載されているように、クライアントで更新され得る。モデルが協調フィルタリングモデルであるときに、式
【数46】
を用いて、更新が実行され、p(i)はクライアントiに対するバイナリ嗜好変数ベクトル、R
iは、クライアントiに対する既知の入力のベクトルであり、Iは、単位行列であり、λは、正規化パラメータである。
【0079】
モデルAは、上記ステップBに記載されるように、サーバで更新され得る。更新は、式
【数47】
を用いて実行され、γはゲイン関数である。各モデルA、例えばA1は、モデルパラメータyについて最小化されるコスト関数J1を有する。∂J/∂y
jは、dA1
iの合計、すなわち、クライアントi
1〜i
Nによって提供されるdA1によって与えられる。
【0080】
クライアントiは、さらに、更新モデルA13
i,...,AK3
iおよびローカル・クライアント・データセットu
iを用いて、推奨セットR
ijを生成するように構成されている。
【0081】
本開示のさらなる態様は、クライアントiのユーザに対して、クライアントiで、パーソナライズされたアイテムの推奨を生成するのを支援するように構成されたサーバに関し、サーバは、アイテムj
1,...,j
Mのグローバルセットおよび少なくとも1つのモデルA1,...,AKを利用するように構成されている。サーバは、複数のクライアントi
1,...,i
Nに接続されており、各クライアントiは、モデルA1,...,AKをダウンロードし、モデルA1,...,AKに対する更新モデルdA1
i,...,dAK
iを生成するように構成されている。サーバは、さらに、クライアントi
1,...,i
Nの少なくとも1つによってアップロードされた更新モデルA12
i,...,AK2
iまたは更新dA1
i,...,dAK
iを用いて、新しい更新モデルA12,...,AK2を生成し、複数のクライアントi
1,...,i
Nに新しい更新モデルA12,...,AK2を送信するように構成されている。新しい更新モデルA12,...,AK2およびクライアントiに記憶されたローカル・クライアント・データセットu
iは、各クライアントiがパーソナライズされたアイテムの推奨を生成するために利用される。これは、
図1および
図2に概略的に示される。
【0082】
サーバには、モデルを利用する前に、少なくとも1つのモデルA1,...,AKが割り当てられ、割り当てることは、ランダムモデルまたは既知のモデルを選択することの1つを含む。
【0083】
サーバは、次のステップによって新しい更新モデルを生成するように構成されている。
A.クライアントi
1,...,i
Nのうちのいくつかを決定し、各決定されたクライアントiは、ダウンロードしたモデルA1,...,AKおよびローカル・クライアント・データセットu
iを用いて、更新モデルA12
i,...,AK2
iを計算し、サーバに更新モデルA12
i,...,AK2
iをアップロードするように構成されている。
B.決定されたクライアントi
1,...,i
Nの少なくとも1つによってアップロードされた更新モデルA12
i,...,AK2
iを受信する。
C.受信した更新モデルA12
i,...,AK2
iを平均することを用いて、新しい更新モデルA12,...,AK2を計算する。
【0084】
サーバは、さらに、以下のステップによって、新しい更新モデルを生成するように構成され得る。
A.クライアントi
1,...,i
Nのうちのいくつかを決定し、各決定されたクライアントiは、ローカル・クライアント・データセットu
iを用いて、更新dA1
i,...,dAK
iを計算し、サーバに更新dA1
i,...,dAK
iをアップロードするように構成されている。
B.決定されたクライアントi
1,...,i
Nの少なくとも1つによってアップロードされた更新dA1
i,...,dAK
iを受信する。
C.モデルA1,...,AKおよび受信した更新モデルdA1
i,...,dAK
iの集約することを用いて、新しい更新モデルA12,...,AK2を計算する。
【0085】
モデルAは、上記ステップCで記載されたように、サーバで更新され得る。更新は、式
【数48】
によって実行され、γはゲイン関数である。
【0086】
本開示のさらに別の態様は、クライアントiのユーザに向けてパーソナライズされたアイテムの推奨を生成するように適合された機械学習クライアント−サーバシステムに関する。システムは、上述のサーバおよび上述の複数のクライアントを含む。
【0087】
図1は、概略的に、クライアント−アイテム行列Rを更新するように適合したクライアント−サーバシステムにおける情報のフローを示す。アイテムjに対する値f(i,j)は、ローカル・ユーザ・データu
iを使用してクライアントiで計算される。更新モデルA12
iに含まれる複数のアイテムjの値f(i,j)は、複数のクライアントからサーバSに返送され、集約され、その後、初期モデルA1はモデルA12に更新される。したがって、モデルA1を更新するためにクライアントiからローカル・クライアント・データu
iを転送する必要がない。その後、同じ手順が少なくともモデルA12に対して実行され、各クライアントiでモデルA13
iをもたらし、そのモデルは、クライアントiのユーザに向けてパーソナライズされたアイテムの推奨を生成するために使用される。
【0088】
システムは、1つのサーバSとN個のクライアントiを含む。簡略化のために、
図1は、i
1とi
Nの2つのクライアントを示し、すなわちi
Nは2に等しい。クライアントi
1は、ローカル・クライアント・データu
i、すなわちu
1、およびダウンロードしたモデルA1を利用する。同様に、クライアントi2は、モデルA1と同様に、ローカル・クライアント・データu
2を利用する。
【0089】
図2は、同様に、1つのサーバS、1つのクライアントi
1を含み、パーソナライズされたアイテムの推奨を生成するために2つのモデルA1、A2を利用するクライアント−サーバシステムにおける情報のフローを示す。
【0090】
種々の態様および実施態様が、本明細書の種々の実施形態と併せて説明された。しかしながら、開示された実施形態に対する他の変形は、図面、開示、および添付の請求の範囲の研究から、請求項の主題を実施する際に当業者によって理解され、有効にされ得る。請求項において、文言「含む」は、他の要素またはステップを除外せず、不定冠詞「a」または「an」は、複数を除外しない。特定の測定値が相互に異なる従属クレームで規定されているという単なる事実は、これらの測定値の組み合わせが有利に使用できないことを示すものではない。
【0091】
請求項において使用される参照符号は、範囲を限定するものと解釈されないものとする。