(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-26
(45)【発行日】2024-03-05
(54)【発明の名称】コンテンツアイテムの推奨
(51)【国際特許分類】
G06Q 30/0601 20230101AFI20240227BHJP
G06Q 50/10 20120101ALI20240227BHJP
G06N 20/00 20190101ALI20240227BHJP
A63F 13/35 20140101ALI20240227BHJP
A63F 13/85 20140101ALI20240227BHJP
【FI】
G06Q30/0601 330
G06Q50/10
G06N20/00
A63F13/35
A63F13/85
(21)【出願番号】P 2022500520
(86)(22)【出願日】2020-06-26
(86)【国際出願番号】 US2020039885
(87)【国際公開番号】W WO2021007051
(87)【国際公開日】2021-01-14
【審査請求日】2023-05-31
(32)【優先日】2019-07-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517160525
【氏名又は名称】バルブ コーポレーション
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】コックス、アンソニー・ジョン
(72)【発明者】
【氏名】カローロ、クリスチャン
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特開2012-108592(JP,A)
【文献】特開2008-257727(JP,A)
【文献】特開2010-002944(JP,A)
【文献】特表2010-506299(JP,A)
【文献】特開2012-079223(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G06N 20/00
A63F 13/85
A63F 13/35
G06F 16/9535
H04N 21/25
H04N 21/45
H04N 21/466
(57)【特許請求の範囲】
【請求項1】
コンピューティングシステムによって、ユーザによってプレイされる1つ以上のゲームタイトルの履歴を決定することと、
前記コンピューティングシステムによって、第1の訓練された機械学習モデルに、前記履歴を示すデータを入力することと、
前記第1の訓練された機械学習モデルからの出力として、第1の時間ウィンドウ内にそれぞれリリースされた複数の第1のゲームタイトルの各々について、前記履歴と前記それぞれの第1のゲームタイトルとの間の相関を表すスコアを示す第1のスコアデータを生成することと、
前記コンピューティングシステムによって、第2の訓練された機械学習モデルに、前記履歴を示す前記データを入力することと、
前記第2の訓練された機械学習モデルからの出力として、第2の時間ウィンドウ内にそれぞれリリースされた複数の第2のゲームタイトルの各々について、前記履歴と前記それぞれの第2のゲームタイトルとの間の相関を表すスコアを示す第2のスコアデータを生成することと、
前記コンピューティングシステムによって、クライアントデバイスに、前記第1のスコアデータおよび前記第2のスコアデータに少なくとも部分的に基づいた結果データを送信することと、を含む、方法。
【請求項2】
前記複数の第1のゲームタイトルの各々について、前記それぞれの第1のゲームタイトルの人気レベルを決定することと、
前記複数の第1のゲームタイトルの前記それぞれの人気レベル、および第1の指定された人気レベルに少なくとも部分的に基づいて、前記第1のスコアデータを修正して、第3のスコアデータを生成することと、
前記複数の第1のゲームタイトルの前記それぞれの人気レベル、および第2の指定された人気レベルに少なくとも部分的に基づいて、前記第1のスコアデータを修正して、第4のスコアデータを生成することと、
前記複数の第2のゲームタイトルの各々について、前記それぞれの第2のゲームタイトルの人気レベルを決定することと、
前記複数の第2のゲームタイトルの前記それぞれの人気レベル、および前記第1の指定された人気レベルに少なくとも部分的に基づいて、前記第2のスコアデータを修正して、第5のスコアデータを生成することと、
前記複数の第2のゲームタイトルの前記それぞれの人気レベル、および前記第2の指定された人気レベルに少なくとも部分的に基づいて、前記第2のスコアデータを修正して、第6のスコアデータを生成することと、をさらに含み、
前記結果データが、前記第3のスコアデータ、前記第4のスコアデータ、前記第5のスコアデータ、および前記第6のスコアデータを含む、請求項1に記載の方法。
【請求項3】
前記第1の時間ウィンドウが、現在の時間の前の第1の時間期間を含み、前記第2の時間ウィンドウが、前記現在の時間の前の第2の時間期間を含み、前記第2の時間期間が、前記第1の時間期間を含み、かつ前記第1の時間期間よりも大きい、請求項1に記載の方法。
【請求項4】
前記ユーザが、第1のユーザを含み、前記方法が、第1の機械学習モデルを訓練して、前記第1の訓練された機械学習モデルを生成することをさらに含み、前記訓練することが、
前記コンピューティングシステムによって、第2のユーザによってプレイされる1つ以上のゲームタイトルの履歴を決定することと、
前記コンピューティングシステムによって、前記第2のユーザによってプレイされる前記1つ以上のゲームタイトルのうちのゲームタイトルを選択することであって、前記選択されるゲームタイトルが、前記第1の時間ウィンドウ内にリリースされている、選択することと、
前記第2のユーザによってプレイされる前記1つ以上のゲームタイトルを前記第1の機械学習モデルへの入力として、および前記選択されたゲームタイトルを前記第1の機械学習モデルの出力として使用して、前記第1の機械学習モデルの1つ以上の内部層を訓練することと、を含む、請求項1に記載の方法。
【請求項5】
第2の機械学習モデルを訓練して、前記第2の訓練された機械学習モデルを生成することをさらに含み、前記訓練することが、
前記コンピューティングシステムによって、第3のユーザによってプレイされる1つ以上のゲームタイトルの履歴を決定することと、
前記コンピューティングシステムによって、前記第3のユーザによってプレイされる前記1つ以上のゲームタイトルのうちのゲームタイトルを選択することであって、前記第3のユーザによってプレイされる前記1つ以上のゲームタイトルのうちの前記選択されるゲームタイトルが、前記第2の時間ウィンドウ内にリリースされている、選択することと、
前記第3のユーザによってプレイされる前記1つ以上のゲームタイトルを前記第2の機械学習モデルへの入力として、および前記第3のユーザによってプレイされる前記1つ以上のゲームタイトルのうちの前記選択されたゲームタイトルを前記第2の機械学習モデルの出力として使用して、前記第2の機械学習モデルの1つ以上の内部層を訓練することと、を含む、請求項4に記載の方法。
【請求項6】
ユーザに関連付けられたクライアントデバイスにおいて、第1の時間ウィンドウ内にリリースされた複数の第1のコンテンツアイテムの各々について、前記ユーザの消費履歴と前記それぞれの第1のコンテンツアイテムとの間の相関を示す第1のスコアデータを受信することと、
前記クライアントデバイスにおいて、第2の時間ウィンドウ内にリリースされた複数の第2のコンテンツアイテムの各々について、前記ユーザの前記消費履歴と前記それぞれの第2のコンテンツアイテムとの間の相関を示す第2のスコアデータを受信することと、
時間を指定する入力データを前記クライアントデバイスにおいて受信することと、
前記第1のスコアデータ、前記第2のスコアデータ、および前記指定された時間に少なくとも部分的に基づいて、前記クライアントデバイスに関連付けられたディスプレイ上に提示される1つ以上のコンテンツアイテムの順序を決定することと、
前記ディスプレイ上に、前記決定された順序で前記1つ以上のコンテンツアイテムを提示することと、を含む、方法。
【請求項7】
前記順序を前記決定することが、
少なくとも前記第1のスコアデータおよび前記第2のスコアデータの補間を使用して、第3のスコアデータを生成すること、を含み、
前記決定される順序が、前記第3のスコアデータに少なくとも部分的に基づいている、請求項6に記載の方法。
【請求項8】
前記第1のスコアデータが、前記複数の第1のコンテンツアイテムの各コンテンツアイテムのそれぞれの人気レベルに少なくとも部分的にさらに基づいており、
前記第2のスコアデータが、前記複数の第2のコンテンツアイテムの各コンテンツアイテムのそれぞれの人気レベルに少なくとも部分的にさらに基づいている、請求項6に記載の方法。
【請求項9】
前記第1のスコアデータが、(1)第1のターゲット人気レベル、および(2)各それぞれの第1のコンテンツアイテムの人気レベルに少なくとも部分的に基づいてバイアスされており、
前記クライアントデバイスにおいて、前記第1の時間ウィンドウ内にリリースされた前記複数の第1のコンテンツアイテムの各々について、前記ユーザの前記消費履歴と前記それぞれの第1のコンテンツアイテムとの間の相関を示す第3のスコアデータを受信することであって、前記第3のスコアデータが、(1)第2のターゲット人気レベル、および(2)それぞれの第1のコンテンツアイテムの各々の前記人気レベルに少なくとも部分的に基づいてバイアスされている、受信すること、をさらに含む、請求項6に記載の方法。
【請求項10】
前記入力データが、所望の人気レベルをさらに指定し、
前記順序を前記決定することが、前記第3のスコアデータおよび前記指定された所望の人気レベルに少なくとも部分的にさらに基づいている、請求項9に記載の方法。
【請求項11】
少なくとも前記第1のスコアデータ、前記第2のスコアデータ、および前記第3のスコアデータの補間を使用して、第4のスコアデータを生成すること、をさらに含み、
前記決定される順序が、前記第4のスコアデータに少なくとも部分的に基づいている、請求項10に記載の方法。
【請求項12】
前記第1の時間ウィンドウが、現在の時間の前の第1の時間期間を含み、前記第2の時間ウィンドウが、前記現在の時間の前の第2の時間期間を含み、前記第2の時間期間が、前記第1の時間期間を含み、かつ前記第1の時間期間よりも大きい、請求項6に記載の方法。
【請求項13】
コンピュータ実行可能命令を記憶する、1つ以上のコンピュータ可読媒体であって、前記コンピュータ実行可能命令が、実行されるときに、1つ以上のプロセッサに、
ユーザに関連付けられたクライアントデバイスにおいて、パラメータの第1の値に関連付けられた複数の第1のコンテンツアイテムの各々について、前記ユーザの消費履歴と前記それぞれの第1のコンテンツアイテムとの間の相関を示す第1のスコアデータを受信することと、
前記クライアントデバイスにおいて、前記パラメータの第2の値に関連付けられた複数の第2のコンテンツアイテムの各々について、前記ユーザの前記消費履歴と前記それぞれの第2のコンテンツアイテムとの間の相関を示す第2のスコアデータを受信することと、
前記クライアントデバイスにおいて入力を受信することと、
前記第1のスコアデータ、前記第2のスコアデータ、および前記入力に少なくとも部分的に基づいて、前記クライアントデバイスに関連付けられたディスプレイ上に提示される1つ以上のコンテンツアイテムの順序を決定することと、
前記ディスプレイ上に、前記決定された順序で前記1つ以上のコンテンツアイテムを提示することと、を含む行為を実施させる、1つ以上のコンピュータ可読媒体。
【請求項14】
前記パラメータが、それぞれのコンテンツアイテムのリリース日を含み、前記第1の値が、第1の時間範囲を含み、前記第2の値が、第2の時間範囲を含む、請求項13に記載の1つ以上のコンピュータ可読媒体。
【請求項15】
前記パラメータが、それぞれのコンテンツアイテムのコストを含み、前記第1の値が、第1のコスト範囲を含み、前記第2の値が、第2のコスト範囲を含む、請求項13に記載の1つ以上のコンピュータ可読媒体。
【請求項16】
前記順序を前記決定することが、
少なくとも前記第1のスコアデータおよび前記第2のスコアデータの補間を使用して、第3のスコアデータを生成すること、を含み、
前記決定される順序が、前記第3のスコアデータに少なくとも部分的に基づいている、請求項13に記載の1つ以上のコンピュータ可読媒体。
【請求項17】
前記第1のスコアデータが、前記複数の第1のコンテンツアイテムの各コンテンツアイテムのそれぞれの人気レベルに少なくとも部分的にさらに基づいており、
前記第2のスコアデータが、前記複数の第2のコンテンツアイテムの各コンテンツアイテムのそれぞれの人気レベルに少なくとも部分的にさらに基づいている、請求項13に記載の1つ以上のコンピュータ可読媒体。
【請求項18】
前記第1のスコアデータが、(1)第1のターゲット人気レベル、および(2)各それぞれの第1のコンテンツアイテムの人気レベルに少なくとも部分的に基づいてバイアスされており、
前記クライアントデバイスにおいて、前記パラメータの前記第1の値に関連付けられた前記複数の第1のコンテンツアイテムの各々について、前記ユーザの前記消費履歴と前記それぞれの第1のコンテンツアイテムとの間の相関を示す第3のスコアデータを受信することであって、前記第3のスコアデータが、(1)第2のターゲット人気レベル、および(2)それぞれの第1のコンテンツアイテムの各々の前記人気レベルに少なくとも部分的に基づいてバイアスされている、受信すること、をさらに含む、請求項13に記載の1つ以上のコンピュータ可読媒体。
【請求項19】
前記入力が、所望の人気レベルをさらに指定し、
前記順序を前記決定することが、前記第3のスコアデータおよび前記指定された所望の人気レベルに少なくとも部分的にさらに基づいている、請求項18に記載の1つ以上のコンピュータ可読媒体。
【請求項20】
前記行為が、
少なくとも前記第1のスコアデータ、前記第2のスコアデータ、および前記第3のスコアデータの補間を使用して、第4のスコアデータを生成すること、をさらに含み、
前記決定される順序が、前記第4のスコアデータに少なくとも部分的に基づいている、請求項19に記載の1つ以上のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年7月8日に出願された「Content-Item Recommendations」と題された米国特許出願第16/505,112号の優先権を主張するものであり、その全内容は、参照により本明細書に組み込まれる。
【背景技術】
【0002】
電子デバイス上のコンテンツアイテムの消費が急増し続けるにつれて、利用可能なコンテンツアイテムの量も急増し続けている。例えば、ストリーミングまたはダウンロードのために利用可能な歌、映画、テレビ番組、およびゲームの数は、近年大幅に増加している。利用可能なコンテンツアイテムのこの増加は、一般にユーザにとって有益であるが、個々のユーザにとって関心のあるコンテンツアイテムを識別することは困難なままである。
【図面の簡単な説明】
【0003】
添付の各図を参照して、詳細な説明が記載される。各図において、参照番号の左端数字は、参照番号が最初に現れる図を識別する。異なる図における同じ参照番号の使用は、類似または同一の構成要素または特徴を示す。
【0004】
【
図1】様々なユーザにコンテンツアイテムを推奨するために機械学習モデルを訓練して使用するように構成されたリモートコンピューティングシステムを含む例示的な環境を示す図である。場合によっては、リモートコンピューティングシステムは、複数のモデルを訓練し、その後、ユーザの消費履歴をモデルの各々に入力して、複数のコンテンツアイテムタイトルの各々と消費履歴との間の相関を示すスコアデータを生成する。さらに、コンピューティングシステムは、1つ以上のバイアス係数を使用して結果データを生成してもよく、これを、コンピューティングシステムは、ユーザのクライアントデバイスに送信し得る。クライアントデバイスは、この結果データ、ならびに異なるユーザ入力を使用して、ユーザにコンテンツアイテム推奨を提示する順序を決定してもよい。
【0005】
【
図2】機械学習モデルを生成し、それらを特定のユーザの履歴データに適用し、生成された結果データをユーザのクライアントデバイスに送信し、この結果データおよび受信されたユーザ入力を使用して、ユーザにコンテンツアイテム推奨を提示する順序を決定するための動作の例示的なプロセスを示す。
【0006】
【
図3】モデルを生成し、結果として得られるスコアをバイアスし、モデルを特定のユーザの履歴データに適用し、この結果データおよび受信されたユーザ入力を使用して、ユーザにコンテンツアイテム推奨を提示する順序を決定するための、例示的な構成要素、およびその対話を示す。
【0007】
【
図4】リモートコンピューティングシステムが生成し、かつユーザのクライアントデバイスに送信し得る例示的な結果データを示す。図示されるように、結果データは、スコアのMxN行列を含み得、クライアントデバイスは、様々なユーザ入力の受信に応答して、必要に応じてスコア間を補間し得る。
【0008】
【
図5】コンテンツアイテム推奨に対するユーザからの要求を受信したことに応答して、クライアントデバイスが提示し得る例示的なユーザインターフェース(UI)を例示する。
【0009】
【
図6】ユーザが第1のパラメータ(この例では、コンテンツアイテムの人気)の値および第2のパラメータ(この例では、コンテンツアイテムの最近性)の値を変更したことに応答して、クライアントデバイスが提示し得る例示的なUIを示す。
【0010】
【
図7】リモートコンピューティングシステムが、1つ以上の訓練された機械学習モデルを生成し、ユーザにコンテンツアイテム推奨を提供する際にクライアントデバイスによって使用される結果データを生成するために採用し得る、例示的なプロセスのフロー図を示す。
【0011】
【
図8】ユーザのクライアントデバイスが、ユーザに1つ以上のコンテンツアイテムを提示する順序を決定するために採用し得る例示的なプロセスのフロー図を示す。
【発明を実施するための形態】
【0012】
本明細書で説明されるのは、とりわけ、コンテンツアイテム推奨を生成するために使用される1つ以上の訓練された機械学習モデルを生成するための技法、デバイス、およびシステムである。また本明細書で説明されるのは、訓練されたモデルに特定のユーザの消費履歴を適用して、各コンテンツアイテムのタイトルと消費履歴との間の相関を示すスコアデータを生成するための、ならびに結果データを生成するための1つ以上のバイアス係数を使用してこのスコアデータを修正するための技法、デバイス、およびシステムである。さらに、これらの技法、デバイス、およびシステムは、1つ以上のコンテンツアイテムをユーザに提示する順序を決定するために、受信されたユーザ入力と共に、この結果データを使用し得る。例えば、これは、どのコンテンツアイテムをユーザに推奨するか、およびどの順序でそれを行うかを決定することを含み得る。
【0013】
開示される技法は、少なくとも部分的に、コンテンツアイテム(例えば、ビデオゲーム、映画、テレビ番組、歌など)を、(例えば、ビデオゲームサービス、映画サービス、歌サービスの一部として)ユーザコミュニティのクライアントデバイスに配布するリモートコンピューティングシステムによって実装され得る。これらのクライアントデバイスは、リモートコンピューティングシステムから受信(例えば、ダウンロード、ストリーミングなど)されたコンテンツアイテムを実行するように構成されたクライアントアプリケーションを個別にインストールし得る。ビデオゲームサービスの例では、ビデオゲームプラットフォームにより、コミュニティの登録ユーザは、「プレイヤー」としてビデオゲームをプレイすることが可能になる。例えば、ユーザは、クライアントアプリケーションをロードし、登録ユーザアカウントでログインし、所望のビデオゲームを選択し、クライアントアプリケーションを通じて自分のクライアントマシン上でビデオゲームを実行することができる。もちろん、いくつかの例はビデオゲームタイトルに関して説明されているが、説明される技法は、上記のように、任意の他のタイプのコンテンツアイテムに適用されることを理解されたい。
【0014】
一例では、個々のユーザのクライアントデバイスから典型的には離れているコンピューティングシステムは、パラメータの特定の値に各々関連付けられた、複数の訓練されたモデルを生成する。例えば、コンピューティングシステムは、第1の時間ウィンドウ(例えば、前の6ヶ月)内にリリースされたコンテンツアイテムを推奨するのに使用するための第1の訓練されたモデル、第2の時間ウィンドウ(例えば、前の年)内にリリースされたコンテンツアイテムを推奨するのに使用するための第2の訓練されたモデルなどを生成し得る。以下に説明されるように、これらのモデルは、調整されたコンテンツアイテム推奨を生成するために個々のユーザデータに適用され得る。
【0015】
コンピューティングシステムは、任意の適切な方法でこれらのモデルを訓練し得るが、一例では、コンピューティングシステムは、コンピューティングシステムコミュニティに関連付けられた複数のユーザのそれぞれの消費履歴(例えば、ゲームプレイ履歴、移動履歴など)にアクセスすることによって開始する。例えば、コンピューティングシステムは、ビデオゲームサービスコミュニティの第1のユーザのゲームプレイ履歴にアクセスし得、この履歴を、第1のモデルを訓練するために使用し得る。例えば、第1のモデルが、過去6ヶ月以内にリリースされたゲームタイトルを推奨する際に使用される場合、コンピューティングシステムは、ユーザのゲームプレイ履歴から、過去6ヶ月以内にリリースされた1つのゲームタイトルを選択し得、この選択されたゲームタイトルが分類器の出力であることを第1のモデルに指示し得る。その後、コンピューティングシステムは、第1のモデルへの入力としてユーザのゲームプレイ履歴全体を提供し、かつ第1のモデルの1つ以上の内部層を訓練するための第1のモデルの出力として、選択されたゲームタイトルを提供し得る。例えば、第1のモデルが人工ニューラルネットワークを含む場合、出力としてゲームタイトルを選択し、入力としてユーザのゲームプレイ履歴に関する情報を提供することは、ニューラルネットワークの1つ以上の内部層を訓練するのに有効であり得る。ニューラルネットワークの入力および出力、ならびに使用され得る他のタイプのモデルは、リリースデータ、ジャンル、ゲームタイプなど、対応するゲームタイトルまたは他のコンテンツアイテムの特徴を含み得ることを理解されたい。さらに、モデルへの入力は、ユーザに関連付けられた地理的位置、ユーザに関連付けられた人口統計学的情報など、ユーザに関連付けられた情報を含み得る。さらに、モデルへの数個の例示的な入力が説明されたが、任意の他のタイプの入力がモデルに提供されてもよいことを理解されたい。
【0016】
場合によっては、コンピューティングシステムは、機械学習モデルの出力として使用されるゲームタイトルを選択する際に、ユーザが自分の履歴内で各ゲームをプレイした時間量を考慮に入れてもよい。例えば、コンピューティングシステムは、ユーザが、ユーザのゲームプレイ履歴内で参照される各個々のゲームタイトルをプレイした時間量を最初に決定し得る。これは、絶対的に(例えば、プレイ時間に関して)、または相対的に(例えば、ゲームタイトルを同じくプレイした他のユーザに対するプレイ時間に関して)のいずれかで決定され得る。この情報は、個々のゲームタイトルに重みとして適用されてもよく、または入力としてモデルに渡されてもよい。ゲームプレイ履歴に関連付けられた各ゲームタイトルに重みを適用した後、またはこの情報をモデルに入力した後(潜在的には、ユーザによるゲームプレイ量が非常に少ないためにいくつかのゲームタイトルをフィルタリング除去した後)、コンピューティングシステムは、次いで、第1のモデルによって出力として使用される1つ(または複数)のゲームタイトルを選択し得る。そうすることによって、コンピューティングシステムは、ユーザによって最もプレイされるゲームが第1のモデルの出力として選択される可能性を増大させ、したがって、ユーザにとって興味のあるゲームをモデルが選択する可能性がより高くなるような方法で第1のモデルの内部層を訓練することになる。しかしながら、上記の説明は、モデルを訓練するための1つの方法を例示するが、コンテンツアイテム推奨を出力するための他のモデルが、任意の他の数の方法で訓練され得ることを理解されたい。
【0017】
第1のモデルを訓練することに加えて、いくつかの例では、コンピューティングデバイスはまた、過去1年内にリリースされたゲームを推奨するためのモデル、過去3年以内にリリースされたゲームを推奨するためのモデルなど、複数の他のモデルを訓練してもよい。各例において、コンピューティングシステムは、ユーザのゲームプレイ履歴にアクセスし、特定のモデルへの出力として、ゲームプレイ履歴内に示され、かつ特定のモデルに関連付けられた時間量内(例えば、1年以内、3年以内など)にリリースされたゲームタイトルを選択し得る。さらに、上記の例は、複数の機械学習モデルの各々を訓練するために単一のゲームプレイ履歴にアクセスすることを説明しているが、コンピューティングシステムは、モデルを訓練するために数千以上のゲームプレイ履歴を分析できることを理解されたい。
【0018】
機械学習モデルを訓練した後、次に、コンピューティングシステムは、モデルを使用して、コンテンツアイテム(例えば、ビデオゲーム)推奨を表出するためにクライアントデバイスによって使用され得るデータを生成し得る。例えば、特定のユーザが、ビデオゲーム推奨のためにクライアントデバイスを介して要求を送信することを想定する。要求を受信すると、コンピューティングシステムは、(例えば、デバイスまたはユーザ識別子を介して)ユーザを識別し得、ユーザのゲームプレイ履歴にアクセスし得る。次いで、コンピューティングシステムは、各モデルに関連付けられた利用可能なゲームに関する情報と共に、ゲームプレイ履歴を、複数の機械学習モデルの各々に入力し得る。例えば、(過去6ヶ月以内にリリースされたよりヘビーに重み付けられたゲームに対して訓練されている)第1の訓練されたモデルについて、コンピューティングシステムは、ユーザのゲームプレイ履歴、および推奨のために利用可能なゲームに関する情報を入力してもよく、(過去1年以内にリリースされたよりヘビーに重み付けられたゲームに対して訓練されている)第2の訓練されたモデルについて、コンピューティングシステムは、ユーザのゲームプレイ履歴、および推奨のために利用可能なそれらのゲームに関する情報を入力してもよい、など。すなわち、利用可能なゲームのカタログ全体が、第1のモデル、第2のモデルなどに入力され得るが、第1のモデルは、過去6ヶ月以内にリリースされたゲームを推奨する可能性が高い場合があり、第2のモデルは、過去1年以内にリリースされたゲームを推奨する可能性が高い場合がある、など。
【0019】
各訓練された機械学習モデルは、複数のゲームタイトルの各々について、ユーザのゲームプレイ履歴と特定のゲームタイトルとの間の相関を示すスコアデータを出力し得る。読者が理解するように、ゲームプレイ履歴と高度に相関するそれらのゲームは、比較的高いスコアを有し、逆もまた同様である。さらに、コンピューティングシステムが「N」数のモデルを実装する場合、コンピューティングシステムは、「N」数のスコアデータを生成し得る。また、「相関」は、統計的相関ではなく、むしろ単に、対象ユーザと同じゲームプレイ履歴を有するユーザがこのゲームをプレイすることを選択し得る可能性の表現であり得ることを理解されたい。
【0020】
加えて、コンピューティングシステムは、1つ以上のバイアス係数の異なる値に基づいてスコアデータをバイアスするように構成され得る。バイアス係数は、各ゲームの人気、各ゲームのコスト、各ゲームのジャンルなど、任意の数の係数を含み得る。一例では、バイアス係数は、ゲームの売上、ゲームのゲームプレイ量などによって決定されるような、各ゲームの人気を含み得る。場合によっては、(個々の訓練されたモデルによって決定される)各スコアデータは、結果として生じるバイアスされたデータが、ユーザによって所望される場合、その特定の人気レベルに対してより密接に一致するように、異なる人気レベルにおいてバイアスされてもよい。すなわち、コンピューティングシステムは、非常に人気のあるものから非常に不人気な(または非常に「ニッチ」な)ものにわたる数「M」のターゲット人気レベルにおいて、各ゲームタイトルの(および各モデルの)スコアをバイアスし得る。読者が理解するように、非常に人気のあるそれらのゲームタイトルの計算されたスコアは、「非常に高い」というターゲット人気レベルではブーストされ、「非常に低い」というターゲット人気レベルではペナルティされる。逆に、よりニッチなゲームタイトルの計算されたスコアは、「非常に高い」というターゲット人気レベルではペナルティされ、「非常に低い」というターゲット人気レベルではブーストされる。
【0021】
最後に、コンピューティングシステムが今や、特定のユーザについて、「N」数の訓練されたモデルの各々についてスコアデータを計算し、「M」数の人気値を使用してこれらのスコアの各々をバイアスしたことを考慮すると、コンピューティングシステムは今や、ユーザに対して、「M×N」の量のスコア量を生成したことになり得る。例えば、コンピューティングシステムが6つのモデルおよび5つの人気レベルを利用する場合、コンピューティングシステムは、(モデルによって生成される6つのスコアデータの各々が5回バイアスされることを考慮すると)任意の特定のユーザに対して合計30個のスコアを生成していることになる。当然のことながら、計算されるスコアデータは、任意の他の数の値を有し得、任意の他の(例えば、非線形の)方法でサンプリングされ得ることを理解されたい。さらに、この例では、(この場合、リリース日に基づいて)モデルを訓練する前の第1のパラメータの値、および(この場合、人気に基づいた)訓練後の第2のパラメータの値を入力することを説明しているが、任意の他の数のパラメータが、人気データに関して説明されるモデルへの入力および/または後処理の一部として適用されてもよい。また、後処理パラメータはバイアス係数として説明されているが、これらのバイアス係数は、モデルへの入力としてまたは後処理の一部として適用され得るパラメータを表すことに留意されたい。
【0022】
このスコアデータを、行列の形式でまたはそれ以外の形式で計算すると、次いで、コンピューティングシステムは、この「結果データ」をユーザのクライアントデバイスに送信し得る。次いで、ユーザのクライアントデバイスは、この結果データ、ならびにユーザからの入力を使用して、ユーザが利用可能なゲームタイトルのうちの1つ以上を提示する順序を決定し得る。すなわち、クライアントデバイスは、結果データおよびユーザからの入力データを使用して、どのビデオゲームをユーザに推奨するか、およびユーザが異なる入力データを提供するときにこの推奨をどのように変更するかを決定し得る。
【0023】
上記からの例を続けると、クライアントデバイスは、ユーザが、入力として、所望のリリース最近性の選択、および所望の人気レベルの選択を提供することを可能にし得る。すなわち、ユーザは、クライアントデバイスに対して、ユーザが、ゲーム推奨として、より最近にリリースされたゲームを見ることを好むか、より古いゲームを見ることを好むかを示し得る。さらに、ユーザは、主流である(すなわち、人気のある)ゲームの推奨を受け取りたいか、よりニッチな(すなわち、あまり人気のない)ゲームの推奨を受け取りたいかを指定することができる。以下の例は、ユーザが1つ以上のスライダを介してこの入力を提供するものとして例示および説明するが、この入力は任意の他の方法で提供されてもよいことを理解されたい。
【0024】
ユーザが概してより新しくかつよりニッチなゲームの推奨を見たいことを示す入力などのユーザからの入力を受信すると、クライアントデバイスは、結果データを使用して、どのゲームをどの順序でユーザに推奨するかを決定し得る。場合によっては、クライアントデバイスは、入力から、クライアントデバイスがユーザについて受信した計算されたスコアデータのうちのどの1つ以上が、ユーザの入力データに最も近いかを識別し得る。例えば、あまり人気のない比較的新しいゲームを指定するユーザの例では、クライアントデバイスは、計算されたスコアデータからのスコアのうちのどれが、(1)この時間範囲にわたって訓練されたモデル、および(2)あまり人気のないタイトルをブーストするためにバイアスされたスコアに対応するかを識別し得る。これらのスコアを識別した後、クライアントデバイスは、個々のゲームに関連付けられたスコアを決定するために補間を使用し得、次いで、これらのスコアに基づいて、ゲーム推奨をユーザに提示し得る。例えば、クライアントデバイスは、双一次補間または任意の他の形式の補間を利用して、ゲームタイトルのスコアを計算し得、計算されたスコアに従ってこれらのゲームタイトルをソートし得、最も高いスコアを有するそれらのゲームタイトルは、リストの上部に配置される。さらに、上記の1つまたは両方のスライダを移動させることなどによって、ユーザが異なる入力データを提供する場合、クライアントデバイスは、スコアの行列または他の表現から、最も適切なスコアデータを再び識別し得、ゲームタイトルを再ランク付けするためにこのスコアデータを補間し得る。
【0025】
リモートコンピューティングシステムにおいてこのスコアデータを生成し、クライアントデバイスにおいてローカルに補間を実行することによって、説明された技法は、クライアントデバイスにおいてコンテンツアイテム推奨をランク付けおよび再ランク付けするためのプロセスの流動性を大幅に改善する。すなわち、これらの技法は、単一の結果ではなく、複数のスコアデータをクライアントデバイスに送信することを伴うため、およびクライアントデバイスは、異なるユーザ入力を受信することに応答して、これらのスコアデータのリアルタイム補間を実行するように構成されるため、この技法は、リモートコンピューティングシステムへの追加のラウンドトリップ要求を必要とせずに、推奨のランク付けおよび再ランク付けを可能にする。言い換えれば、これらの技法は、ユーザが異なる入力を提供するたびにシステムに呼び出しを行い、かつシステムからの応答を待つという要件とは対照的に、リモートコンピューティングシステムへの単一の要求およびそれからの応答というコストで、コンテンツアイテム推奨を無制限に再ランク付けすることを可能にする。
【0026】
加えて、本明細書に記載される技法は、非常に細かいレベルのコンテンツ推奨を提供する。ユーザが、第1のパラメータ(例えば、コスト、リリース日など)の所望の値、および第2のパラメータ(例えば、人気、コストなど)の所望の値を指定することを可能にすることによって、ならびにこれらの入力のクライアント側の補間を実行することによって、これらの技法は、高度に調整されたコンテンツアイテム推奨を提供する。
【0027】
これらの技法のいくつかは、2つのパラメータ(リリースデータおよび人気)に関して本明細書で説明されているが、これらの技法は、任意の他の数のパラメータ(例えば、1、5など)および任意の他のパラメータ値(例えば、コスト、ジャンルなど)のために使用され得ることを理解されたい。また、推奨は1つ以上のUI上に提示されるように説明されているが、推奨は、任意の他の方法(例えば、聴覚的、視覚的になど)で出力されてもよいことを理解されたい。
【0028】
図1は、ディスプレイ104に関連付けられたクライアントデバイス102と、様々なユーザにコンテンツアイテムを推奨するために機械学習モデルを訓練して使用するように構成されたリモートコンピューティングシステム106とを含む例示的な環境を示す図である。場合によっては、以下でさらに詳細に説明するように、リモートコンピューティングシステム106は、複数のモデルを訓練し、その後、ユーザの消費履歴をモデルの各々に入力して、複数のコンテンツアイテムタイトルの各々と消費履歴との間の相関を示すスコアデータを生成する。さらに、コンピューティングシステム106は、1つ以上のバイアス係数を使用して結果データを生成してもよく、これを、コンピューティングシステムは、ユーザのクライアントデバイス102に送信し得る。クライアントデバイス102は、この結果データ、ならびに異なるユーザ入力を使用して、ディスプレイ104上でまたはそれ以外で、ユーザにコンテンツアイテム推奨を提示する順序を決定してもよい。
【0029】
クライアントデバイス102は、ビデオゲーム、映画、歌などのコンテンツアイテムを実行するように構成された任意の適切なタイプのコンピューティングデバイスとして実装され得る。クライアントデバイス102は、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話(例えば、スマートフォン)、タブレットコンピュータ、携帯型情報端末(PDA)、ウェアラブルコンピュータ(例えば、仮想現実(VR)ヘッドセット、拡張現実感(AR)ヘッドセット、スマートグラスなど)、車載(例えば、車内)コンピュータ、テレビ(スマートテレビ)、セットトップボックス(STB)、ゲームコンソール、音楽プレイヤー、音声制御アシスタント、および/または任意の同様のコンピューティングデバイスを含み得るが、これらに限定されない。クライアントデバイス102は、コンピュータネットワーク108を介してリモートコンピューティングシステム106(本明細書では「コンピューティングシステム106」と短縮される場合もある)と通信し得る。このコンピュータネットワーク108は、インターネット、他のタイプのデータおよび/または音声ネットワーク、有線インフラストラクチャ(例えば、同軸ケーブル、光ファイバケーブルなど)、無線インフラストラクチャ(例えば、無線周波数(RF)、移動通信、衛星など)、および/または他の接続技術を表すか、または含み得るが、これらに限定されない。コンピューティングシステム106は、場合によっては、コンピュータネットワーク108を介して維持およびアクセスされるネットワークアクセス可能なコンピューティングプラットフォームの一部であってもよい。このようなネットワークアクセス可能コンピューティングプラットフォームは、「オンデマンドコンピューティング」、「サービスとしてのソフトウェア(SaaS)」、「プラットフォームコンピューティング」、「ネットワークアクセス可能プラットフォーム」、「クラウドサービス」、「データセンタ」などの用語を使用して言及される場合がある。
【0030】
いくつかの実施形態では、コンピューティングシステム106は、ビデオゲーム(または任意の他のタイプのコンテンツアイテム)をクライアントデバイス102に配信(例えば、ダウンロード、ストリーミングなど)するようにビデオゲームサービスを実装するビデオゲームプラットフォームとして機能するか、またはそれへのアクセスを有する。一例では、クライアントデバイス102は各々、その上にクライアントアプリケーションをインストールし得る。インストールされたクライアントアプリケーションは、ビデオゲームクライアント(例えば、ビデオゲームをプレイするためのゲームソフトウェア)であり得る。クライアントアプリケーションがインストールされたクライアントデバイス102は、コンピュータネットワーク108を介してコンピューティングシステム106からプログラム(例えば、ビデオゲーム、およびそのコンテンツ)をダウンロード、ストリーミング、あるいは他の方法で受信するように構成され得る。この目的のために、プログラム(例えば、ビデオゲーム)がクライアントデバイス102上でのダウンロードおよび実行のために個々に購入できる直接購入モデル、サブスクリプションベースのモデル、プログラムがクライアントデバイス102に対してある期間の間レンタルもしくはリースされるか、ストリーミングされるか、または他の方法で利用可能になるコンテンツ配信モデルなど、任意のタイプのコンテンツ配信モデルを利用することができる。したがって、個々のクライアントデバイス102は、クライアントアプリケーションをロードすることによって実行可能である1つ以上のインストールされたビデオゲームを含み得る。
【0031】
クライアントデバイス102を使用して、ビデオゲームサービスに登録し、その後、それにログインすることができる。ユーザは、この目的のためにユーザアカウントを作成し、登録ユーザアカウントに結び付けられた資格情報(例えば、パスワード、PIN、生体認証IDなど)を指定/設定し得る。複数のユーザが(例えば、登録ユーザアカウントを用いて自分のユーザ/プレイヤープロファイルにアクセスすること、それぞれのクライアントデバイス102上でビデオゲームをプレイすることなどによって)ビデオゲームプラットフォームと対話すると、クライアントデバイス102は、リモートコンピューティングシステム106にデータを送信する。所与のクライアントマシン104のために、リモートコンピューティングシステム106に送信されるデータは、ユーザ入力データ、ビデオゲームデータ(例えば、リモートシステムにアップロードされたゲームパフォーマンス統計)、ソーシャルネットワーキングメッセージおよび関連アクティビティ、クライアントデバイス102上でプレイされるビデオゲームの識別子(ID)などを含み得るが、これらに限定されない。このデータは、リアルタイム(もしくは実質的にリアルタイム)にストリーミングされ、定義された間隔でリモートシステム106に送信され、および/またはイベント(例えば、ビデオゲームの終了)に応答してアップロードされることが可能である。以下でさらに詳細に説明されるように、このデータは、クライアントデバイス102のユーザのゲームプレイ履歴を決定するために使用されてもよく、これは、ユーザにゲームタイトルを推奨するためのスコアを決定するために使用され得る。
【0032】
図1は、例えば、クライアントデバイス102が、1つ以上のコンテンツアイテム(例えば、ビデオゲーム)をクライアントデバイス102のユーザに推奨するためのUI110をディスプレイ104上に提示し得ることを示す。この例では、UI110は、2つの異なるユーザ入力を提供するための1つ以上のUIコントロール112(1)および112(2)を含む。例えば、第1のUIコントロール112(1)は、クライアントデバイス102のユーザが第1のパラメータの所望の値を提供することを可能にし得、一方、第2のUIコントロール112(2)は、ユーザが第2のパラメータの所望の値を提供することを可能にし得る。次いで、クライアントデバイスは、これらの値を使用して、推奨コンテンツアイテム114(1)、114(2)、114(3)、および114(4)のカスタムリスト114を生成し得る。以下でさらに詳細に説明および図示されるように、第1のUIコントロール112(1)は、ユーザが所望の人気レベルを指定することを可能にし得、一方、第2のUIコントロール112(2)は、ユーザがコンテンツアイテムの所望のレベルのリリース日最近性を指定することを可能にし得る。さらに、また、以下に考察されるように、クライアントデバイス102は、ユーザがUIコントロールを介して、かつコンピューティングシステム106と対話せずに入力を提供することに応答して、推奨コンテンツアイテムのリスト114を更新し得る。
【0033】
図1はさらに、コンピューティングシステム106が、1つ以上のプロセッサ116(例えば、中央処理ユニット(CPU)およびコンピュータ可読媒体118を含み得ることを示す。コンピュータ可読媒体118は、揮発性および不揮発性メモリ、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された、取り外し可能および取り外し不可能な媒体を含み得る。そのようなメモリとしては、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多目的ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、RAIDストレージシステム、または所望の情報を記憶するために使用され得、コンピューティングデバイスによってアクセスされ得る、任意の他の媒体が挙げられる。コンピュータ可読媒体118は、コンピュータ可読媒体118に記憶された命令を実行するためにプロセッサ116によってアクセス可能な任意の利用可能な物理媒体であり得る、コンピュータ可読ストレージ媒体(「CRSM」)として実装され得る。1つの基本的な実装形態では、CRSMは、ランダムアクセスメモリ(「RAM」)およびフラッシュメモリを含み得る。他の実装形態では、CRSMには、読み出し専用メモリ(「ROM」)、電気的に消去可能なプログラマブル読み出し専用メモリ(「EEPROM」)、または所望の情報を記憶するために使用され得、プロセッサ116によってアクセスされ得る、任意の他の有形媒体が含まれ得るが、これらに限定されない。
【0034】
図示されるように、コンピュータ可読媒体118は、訓練構成要素120、相関構成要素122、およびバイアス構成要素124を記憶するか、または別様にそれらへのアクセスを有し得る。さらに、メディア118は、それぞれのコンテンツアイテムの人気(例えば、売上、ゲームプレイ時間など)を示す人気データ126、クライアントデバイスにおいて取得するために利用可能なコンテンツアイテム128、および様々なユーザのそれぞれの消費履歴を示す履歴データ130を記憶し得る。
【0035】
訓練構成要素120は、履歴データ130を使用して、1つ以上の機械学習モデル132(1)、132(2)、…、132(N)を訓練し得る。例えば、訓練構成要素120は、訓練された機械学習モデル132(1)~(N)を取得するための訓練データとして、サンプリングされたユーザアカウントのセットに関連付けられた履歴データ130の一部分を使用して、複数の機械学習モデルの各々を訓練し得る。
【0036】
訓練された機械学習モデル132は、単一のモデル、または基本レベルの機械学習モデルのアンサンブルを表し得、任意のタイプの機械学習モデル132として実装され得る。例えば、本明細書に記載の技法およびシステムで使用するのに好適な機械学習モデル132には、これらに限定されないが、ニューラルネットワーク、ツリーベースモデル、サポートベクターマシン(SVM)、カーネル法、ランダムフォレスト、スプライン(例えば、多変量適応回帰スプライン)、隠れマルコフモデル(HMM)、カルマンフィルタ(または拡張カルマンフィルタ)、ベイズネットワーク(またはベイズ信念ネットワーク)、期待値最大化、遺伝的アルゴリズム、線形回帰アルゴリズム、非線形回帰アルゴリズム、ロジスティック回帰ベースの分類モデル、あるいはこれらのアンサンブルがある。「アンサンブル」には、加重平均または投票を使用するなどによって、出力(予測)が組み合わされた機械学習モデル132の集合を含むことができる。アンサンブルの個々の機械学習モデルは専門知識が異なる可能性があり、アンサンブルは、アンサンブルの個々の機械学習モデルよりも集合的に「スマート」な個々の機械学習モデルのコミッティーとして動作することができる。
【0037】
各機械学習モデル132を訓練するために使用される訓練データは、様々なタイプのデータを含み得る。一般に、機械学習のための訓練データは、特徴およびラベルという2つの構成要素を含むことができる。しかしながら、いくつかの実施形態では、機械学習モデル132を訓練するために使用される訓練データは、ラベル付けなしであり得る。したがって、機械学習モデル216は、教師あり学習、教師なし学習、半教師あり学習、強化学習など、任意の好適な学習技法を使用して訓練可能であり得る。訓練データに含まれる特徴は、訓練データの属性に関する定量化可能な情報のn次元特徴ベクトルの形式など、特徴のセットで表すことができる。以下は、本明細書で説明される機械学習モデル132を訓練するための訓練データに含めることができる例示的な特徴のリストである。ただし、以下の特徴のリストは網羅的ではなく、訓練において使用される特徴は、本明細書に記載されていない追加の特徴、および場合によっては、本明細書に記載される特徴のすべてではないが一部分を含み得ることを理解されたい。訓練データに含まれる例示的な特徴は、限定はされないが、リリース日、コンテンツアイテム、コンテンツアイテムのジャンル、コンテンツアイテムのタイトル、コンテンツアイテムの長さ、コンテンツアイテムの評価、コンテンツアイテムを消費したユーザなどを含み得る。さらに、訓練プロセスの一部として、訓練構成要素120は、機械学習のための重みを設定し得る。これらの重みは、履歴データ130から導出されるとき、訓練データに含まれる特徴のセットに適用され得る。いくつかの実施形態では、訓練プロセス中に設定される重みは、機械学習モデルの内部にあるパラメータ(例えば、ニューラルネットワークの隠れ層内のニューロンに対する重み)に適用され得る。機械学習モデルのこれらの内部パラメータは、特徴のセットのうちの個々の入力特徴と1対1でマッピングされても、またはマッピングされなくてもよい。重みは、任意の所与の特徴またはパラメータが、訓練された機械学習モデル132によって出力されるスコアに及ぼす影響を示すことができる。
【0038】
場合によっては、訓練構成要素120は、ユーザの個々の消費履歴にアクセスし、モデルの出力としてそれぞれの履歴によって示される特定のコンテンツアイテムを選択し、モデルへの入力として消費履歴を入力し、モデルの1つ以上の内部層を訓練することによって、個々のモデルを訓練してもよい。例えば、上述したように、訓練構成要素は、第1のユーザの消費履歴にアクセスし得、この履歴を第1のモデル132(1)の訓練のために使用し得る。例えば、第1のモデル132(1)が、過去6ヶ月間にリリースされたコンテンツアイテムのタイトルを推奨する際に使用される場合、訓練構成要素120は、ユーザの履歴から、過去6ヶ月間にリリースされた1つのゲームタイトルを選択し得、この選択されたタイトルがモデルの出力であることを第1のモデル132(1)に指示し得る。その後、訓練構成要素120は、第1のモデル132(1)への入力としてユーザの消費履歴全体を提供し、かつ第1のモデル132(1)の1つ以上の内部層を訓練するための第1のモデル132(1)の出力として、選択されたコンテンツアイテムタイトルを提供し得る。例えば、第1のモデル132(1)が人工ニューラルネットワークを含む場合、出力としてコンテンツアイテムタイトルを選択し、入力としてユーザの消費履歴に関する情報を提供することは、ニューラルネットワークの1つ以上の内部層を訓練するのに有効であり得る。ニューラルネットワークの入力および出力、ならびに使用され得る他のタイプのモデルは、リリースデータ、ジャンル、ゲームタイプなど、対応するゲームタイトルまたは他のコンテンツアイテムの特徴を含み得ることを理解されたい。
【0039】
場合によっては、訓練構成要素120は、機械学習モデル132(1)の出力として使用されるタイトルを選択する際に、ユーザが自分の履歴内で各コンテンツアイテムを消費した時間量を考慮に入れてもよい。例えば、訓練構成要素120は、ユーザが、ユーザの消費履歴内で参照される各個々のタイトルを消費した時間量を最初に決定し得る。これは、絶対的に(例えば、時間に関して)、または相対的に(例えば、タイトルを同じく消費した他のユーザに対する時間に関して)のいずれかで決定され得る。この情報は、個々のコンテンツアイテムのタイトルに対する重みとして適用され得る。履歴に関連付けられた各タイトルに重みを適用した後、またはこの情報をモデルに入力した後(潜在的には、ユーザによる消費量が非常に少ないためにいくつかのタイトルをフィルタリング除去した後)、訓練構成要素120は、次いで、第1のモデル132(1)によって出力として使用される1つ(または複数)のコンテンツアイテムタイトルを選択し得る。そうすることによって、訓練構成要素120は、ユーザによって最も消費されるコンテンツアイテムが第1のモデル132(1)の出力として選択される可能性を増大させ、したがって、ユーザにとって興味のあるコンテンツアイテムをモデルが選択する可能性がより高くなるような方法で第1のモデルの内部層を訓練することになる。
【0040】
第1のモデル132(1)を訓練することに加えて、いくつかの例では、訓練構成要素120はまた、過去1年以内にリリースされたゲームを推奨するためのモデル132(2)、過去3年以内にリリースされたゲームを推奨するためのモデル132(3)など、複数の他のモデルを訓練してもよい。各例において、訓練構成要素120は、ユーザの消費履歴にアクセスし、特定のモデルへの出力として、履歴内に示され、かつ特定のモデルに関連付けられた時間量内(例えば、1年以内、3年以内など)にリリースされたタイトルを選択し得る。さらに、上記の例は、複数の機械学習モデルの各々を訓練するために単一の履歴にアクセスすることを説明しているが、訓練構成要素120は、モデル132を訓練するために数千以上の履歴を分析できることを理解されたい。
【0041】
一方、相関構成要素122は、これらの個々のユーザから推奨要求を受信することに応答して、個々のユーザについて相関スコアを生成するように機能し得る。例えば、例示されるように、クライアントデバイス102は、1つ以上のプロセッサ134と、1つ以上のクライアントアプリケーション138および補間構成要素140を記憶するかまたは他の方法でそれらにアクセスし得るコンピュータ可読媒体136とを含み得る。場合によっては、クライアントデバイス102のユーザは、UI110をレンダリングするためのデータを要求するためなど、コンピューティングシステム106と対話するために、クライアントアプリケーション138(例えば、ブラウザ、専用アプリケーションなど)のうちの1つを利用してもよい。この要求を受信したことに応答して、相関構成要素は、1つ以上のコンテンツアイテムをユーザに推奨するために使用され得るスコアデータを生成するために、クライアントデバイス102のユーザに関連付けられた識別子を決定し得る。
【0042】
一例では、ユーザ相関構成要素122は、ユーザを識別した後、履歴データ130から、クライアントデバイス102のユーザの消費履歴にアクセスする。次いで、相関構成要素は、この消費履歴を、「N」個の訓練されたモデル132の各々に入力し得る。モデル132は、個々のモデル132に対応する時間範囲に関連付けられた複数のコンテンツアイテムの各々について、コンテンツアイテムとユーザの消費履歴との間の相関を示すスコアデータを各々出力し得る。上記のように、より高いスコアは、より大きい相関を示し得る。いくつかの例では、特定のモデルに関連付けられた各時間範囲は排他的であり、例えば、第1のモデルが、過去6ヶ月以内にリリースされたコンテンツアイテムに関連付けられる例では、第2のモデルは、6ヶ月~12ヶ月前にリリースされたコンテンツアイテムに関連付けられる、など。他の例では、時間範囲は排他的でなく、例えば、第1のモデルが、過去6ヶ月以内にリリースされたコンテンツに関連付けられる例では、第2のモデルは、(6ヶ月前を含む)過去1年以内にリリースされたコンテンツアイテムに関連付けられる、など。
【0043】
一方、バイアス構成要素124は、「M」数の特定のパラメータの値に従って、相関構成要素122によって生成された「N」個のスコアデータの各々をバイアスするように機能し得る。このパラメータは、人気レベル、コスト、リリース日などを含み得る。場合によっては、パラメータは、人気データ126によって示されるような、人気レベルを含む。
【0044】
例えば、バイアス構成要素は、各モデルによって出力される各スコアデータに関連付けられた各コンテンツアイテムについて、「M」個の異なる人気値について個々のスコアをブーストするか、またはペナルティするかを決定し得る。一例では、バイアス構成要素124は、非常に人気のあるものから非常に不人気な(または、むしろ、非常に「ニッチ」な)ものにわたる5つの異なる人気値に従って、各コンテンツアイテムについてスコアをブーストまたはペナルティする。そうした後、バイアス構成要素は、スコアの行列または他の表現を生成していることになり得、その1つの実装形態は、
図3を参照して図示および説明される。
【0045】
スコアの行列または他の表現が生成された後、コンピューティングシステム106は、この「結果データ」を、推奨を最初に要求したクライアントデバイス102に送り返し得る。次いで、補間構成要素140は、受信された結果データ、ならびにUIコントロール112(1)および112(2)の値に少なくとも部分的に基づいて、推奨されるコンテンツアイテムを提示する順序を決定し得る。例えば、これらの2つのコントロールの値の任意の所与のセットについて、補間構成要素140は、結果データから、最も近い1つ以上のスコアデータを識別してもよく、識別されたスコアデータに基づいてコンテンツアイテムのスコアを補間してもよい。補間構成要素140は、双一次補間および/または補間の任意の他の方法を採用することができる。さらに、ユーザがUIコントロール112(1)および/または112(2)を介して入力を提供するとき、補間構成要素140は、新しい補間を実行し、新しい推奨を示すようにUI110を更新し得る。
【0046】
図2は、機械学習モデルを生成し、それらを特定のユーザの履歴データに適用し、生成された結果データをユーザのクライアントデバイスに送信し、この結果データおよび受信されたユーザ入力を使用して、ユーザにコンテンツアイテム推奨を提示する順序を決定するための動作の例示的なプロセス200を示す。このプロセス200は、
図1の環境100を参照して説明されるが、それは、他の環境に適用され得る。
【0047】
動作202において、コンピューティングシステム106は、上述の技法のいずれかを使用して、1つ以上の機械学習モデルを訓練し得る。場合によっては、動作202は、コンテンツアイテムがリリースされた特定の時間ウィンドウなど、パラメータの特定の値にそれぞれ関連付けられた「N」数のモデルを訓練することを含む。
【0048】
一例では、コンピューティングシステム106は、コンピューティングシステムコミュニティに関連付けられた複数のユーザのそれぞれの消費履歴(例えば、ゲームプレイ履歴、移動履歴など)にアクセスすることによって訓練動作を開始し得る。例えば、コンピューティングシステムは、ビデオゲームサービスコミュニティの第1のユーザのゲームプレイ履歴にアクセスし得、この履歴を、第1のモデルを訓練するために使用し得る。例えば、第1のモデルが、過去6ヶ月以内にリリースされたゲームタイトルを推奨する際に使用される場合、コンピューティングシステムは、ユーザのゲームプレイ履歴から、過去6ヶ月以内にリリースされた1つのゲームタイトルを選択し得、この選択されたゲームタイトルが分類器の出力であることを第1のモデルに指示し得る。すなわち、コンピューティングシステム106は、モデルが訓練されているパラメータの値を有するゲームタイトルまたは他のコンテンツアイテムを識別し得る。
【0049】
その後、コンピューティングシステム106は、第1のモデルへの入力としてユーザのゲームプレイ履歴全体を提供し、かつ第1のモデルの1つ以上の内部層を訓練するための第1のモデルの出力として、選択されたゲームタイトルを提供し得る。例えば、第1のモデルが人工ニューラルネットワークを含む場合、出力としてゲームタイトルを選択し、入力としてユーザのゲームプレイ履歴に関する情報を提供することは、ニューラルネットワークの1つ以上の内部層を訓練するのに有効であり得る。ニューラルネットワークの入力および出力、ならびに使用され得る他のタイプのモデルは、リリースデータ、ジャンル、ゲームタイプなど、対応するゲームタイトルまたは他のコンテンツアイテムの特徴を含み得ることを理解されたい。
【0050】
場合によっては、コンピューティングシステム106は、機械学習モデルの出力として使用されるゲームタイトルを選択する際に、ユーザが自分の履歴内で各ゲームをプレイした時間量を考慮に入れてもよい。例えば、コンピューティングシステムは、ユーザが、ユーザのゲームプレイ履歴で参照される各個々のゲームタイトルをプレイした時間量を最初に決定し得る。これは、絶対的に(例えば、プレイ時間に関して)、または相対的に(例えば、ゲームタイトルを同じくプレイした他のユーザに対するプレイ時間に関して)のいずれかで決定され得る。この情報は、個々のゲームタイトルに重みとして適用されるか、またはモデルのための情報として入力され得る。ゲームプレイ履歴に関連付けられた各ゲームタイトルに重みを適用した後、またはこの情報をモデルに入力した後(潜在的には、ユーザによるゲームプレイ量が非常に少ないためにいくつかのゲームタイトルをフィルタリング除去した後)、コンピューティングシステムは、次いで、第1のモデルによって出力として使用される1つ(または複数)のゲームタイトルを選択し得る。そうすることによって、コンピューティングシステムは、ユーザによって最もプレイされるゲームが第1のモデルの出力として選択される可能性を増大させ、したがって、ユーザにとって興味のあるゲームをモデルが選択する可能性がより高くなるような方法で第1のモデルの内部層を訓練することになる。
【0051】
第1のモデルを訓練することに加えて、いくつかの例では、コンピューティングデバイスはまた、過去1年内にリリースされたゲームを推奨するためのモデル、過去3年以内にリリースされたゲームを推奨するためのモデルなど、パラメータの異なる値にそれぞれ関連付けられた複数の他のモデルを訓練してもよい。各例において、コンピューティングシステムは、ユーザのゲームプレイまたは他の消費履歴にアクセスし、特定のモデルへの出力として、ゲームプレイ履歴内に示され、かつ特定のモデルに関連付けられた時間量内(例えば、1年以内、3年以内など)にリリースされたゲームタイトルを選択し得る。さらに、上記の例は、複数の機械学習モデルの各々を訓練するために単一のゲームプレイ履歴にアクセスすることを説明しているが、コンピューティングシステムは、モデルを訓練するために数千以上のゲームプレイ履歴を分析できることを理解されたい。
【0052】
動作204において、クライアントデバイス102は、1つ以上のコンテンツアイテム推奨についての要求をユーザから受信する。これは、ユーザが、クライアントデバイス102を使用して、コンピューティングシステム106によって提供されるサイトにナビゲートすること、コンピューティングシステム106によって生成される専用アプリケーションと対話することなどを含み得る。
【0053】
動作206において、コンピューティングシステム106は、要求を受信し、動作208において、「N」個の訓練されたモデルを使用して、「N」個の相関スコアのセットを生成する。上記のように、これは、要求しているユーザの消費履歴を識別し、「N」個の訓練されたモデルの各々に消費履歴を入力して、「N」個の相関スコアセットを受信することを含み得る。
【0054】
動作210において、コンピューティングシステム106は、1つ以上のバイアス係数を使用して、相関スコアの「N」セット内の各スコアを修正する。例えば、各バイアス係数について、コンピューティングシステム106は、「M」数の値のバイアス係数を使用して、MxN数の今やバイアスされた相関スコアセットを生成し得る。もちろん、複数のバイアス係数が使用される場合、より多数のセットが生成され得る。例えば、2つのバイアス係数が使用される場合、コンピューティングシステム106は、MxMxN数のバイアスされたスコアを生成し得る。上述したように、いくつかの事例では、バイアス係数は、各コンテンツアイテムの人気レベルに対応し得る。さらに、コンピューティングシステム106は、相関スコアおよびバイアス相関スコアを非線形に生成し得ることも理解されたい。さらに、任意の数の値が計算されてもよい。
【0055】
動作212において、コンピューティングシステムは、この「結果データ」をクライアントデバイス102に送信し、クライアントデバイス102は、動作214において結果データを受信する。動作216において、クライアントデバイス102は、受信された結果データに基づいて、1つ以上のコンテンツアイテム推奨をユーザに提示する。場合によっては、初期推奨は、ユーザによって設定され得る値を有する任意のパラメータの値の現在の設定に基づいてもよい。
【0056】
動作218において、クライアントデバイス102は、ユーザから入力を受信する。これは、所望のリリースデータ、所望の人気レベルなど、1つ以上のパラメータの値を変更することを含み得る。動作220において、クライアントデバイス102は、入力データおよび結果データを使用して、コンテンツアイテムのスコアを補間する。すなわち、クライアントデバイス102は、結果データおよび受信された入力を使用して推奨順序を生成する。最後に、動作222において、クライアントデバイス102は、推奨を、新たに計算された順序ではあるが再提示し得る。
【0057】
図3は、モデルを生成し、結果として得られるスコアをバイアスし、モデルを特定のユーザの履歴データに適用し、この結果データおよび受信されたユーザ入力を使用して、ユーザにコンテンツアイテム推奨を提示する順序を決定するための、例示的な構成要素、およびその対話を示す。
図3は、説明される技法を実行するための構成要素の一例のセットを例示するが、他の例では他の構成要素が使用されてもよいことを理解されたい。
【0058】
図示されるように、この例では、構成要素のうちのいくつかは、サーバ側302に存在し、他の構成要素は、クライアント側104に存在する。例えば、サーバ側302上の構成要素は、コンピューティングシステム106上に存在してもよく、一方、クライアント側の構成要素は、クライアントデバイス102上に存在してもよい。
【0059】
開始するために、履歴データ130および1つ以上のパラメータ306(1)、306(2)、…、306(N)が、訓練構成要素120に入力されて、それぞれのモデル132(1)~(N)が生成され得る。すなわち、訓練構成要素120は、訓練構成要素120がモデルを訓練するパラメータの特定の値の指示を受信し得る。例えば、パラメータ306(1)は、「過去6ヶ月以内のリリース日」の値を示し得、パラメータ306(2)は、「過去1年以内のリリース日」の値を示し得る、など。もちろん、他の例では、パラメータは、コンテンツアイテムの価格、コンテンツアイテムの人気などに対応し得る。さらに、履歴データ130は、上述したようにユーザの集団の消費履歴を含み得る。
【0060】
また上述したように、訓練構成要素120は、モデルを訓練するためのそれぞれの機械学習モデルに、個々の消費履歴を入力し得る。例えば、「過去6ヶ月以内のリリース日」のパラメータ値を有するモデル132(1)について、訓練構成要素は、モデルへの入力として個々の消費履歴を入力し得、各それぞれの履歴から、モデル132(1)の出力として過去6ヶ月以内にリリースされたコンテンツアイテムのタイトルを指定し得る。次いで、訓練構成要素120は、この入力および出力を使用して、このモデル132(1)の1つ以上の内部層を訓練し得る。訓練構成要素120は、履歴データ130からの様々な消費履歴の配列に対して、およびモデル132(1)~(N)の各々に対して、この動作を実行し得る。さらに、モデル32への入力は、ユーザに関連付けられた地理的位置、ユーザに関連付けられた人口統計学的情報など、ユーザに関連付けられた情報を含み得る。さらに、モデルへの数個の例示的な入力が説明されたが、任意の他のタイプの入力がモデルに提供されてもよいことを理解されたい。
【0061】
モデル132(1)~(N)が訓練された後、これらのモデルは、ユーザに対するコンテンツアイテム推奨を生成するために使用され得る。特定のユーザから推奨についての要求を受信すると、ユーザに関連付けられた(履歴データ130に記憶された)消費履歴が、利用可能なコンテンツアイテム128のライブラリと共に、相関構成要素122に入力されてもよい。相関構成要素は、このデータをモデル132(1)~(N)の各々に入力し得、これは、それぞれの相関スコア308(1)、308(2)、…、308(N)を出力し得る。例えば、モデル132(1)は、過去6ヶ月以内にリリースされ、かつユーザの消費履歴などに基づいてユーザに対して調整されたコンテンツアイテムに対する推奨を出力し得る。
【0062】
いくつかの例では、これらのスコア308(1)~(N)は、バイアス構成要素124に入力され得、これは、相関スコア308(1)~(N)の各々について、バイアスされたスコア310(1)、310(2)、…、310(N)のセットを生成し得る。すなわち、バイアス構成要素は、特定のバイアス係数の1つ以上の値を選択し得、コンテンツアイテムがバイアス係数のそれぞれの値にどの程度良く対応するかに基づいて、スコア308(1)~(N)の各々内の各コンテンツアイテムのスコアをブーストまたはペナルティし得る。例えば、バイアス係数は、バイアス構成要素に入力され得る人気データ126によって示されるような、コンテンツアイテムの人気を含み得る。上述したように、この人気データ126は、売上データ、消費時間などを含み得る。
【0063】
一例では、バイアス構成要素は、非常に人気のある(例えば、非常に高い売上数を有する)ものから非常に不人気またはニッチな(例えば、非常に低い売上数を有する)ものにわたるM個の人気値など、「M」数の値のバイアス係数を選択する。したがって、バイアス構成要素124は、バイアス係数の前者の値では、非常に人気のあるタイトルのスコアをブーストし、非常にニッチなタイトルをペナルティし得、バイアスの後者の値では、反対のことを行い得る。この例では、バイアス構成要素124は、サンプリングが非線形に行われ得ることを考慮して、「MxN」または任意の他の数の、いくつかのバイアスされたスコアを出力し得る。いくつかの例では、コンピューティングシステム106は、これらのバイアスされたスコア310(1)~(N)を、推奨についての要求を開始したユーザに関連付けられたクライアントデバイス102に送信する。
【0064】
図示されるように、バイアスされたスコア310(1)~(N)のセットは、結果データ312としてクライアントデバイス102に提供され得る。この結果データ312は、潜在的には、クライアントデバイス102において受信されたユーザ入力に応答して生成された入力データ314と共に、補間構成要素140に入力されてもよい。例えば、入力データ314は、モデル132(1)~(N)上のパラメータの特定の値、および/またはスコアが上にバイアスされたバイアス係数の特定の値を示し得る。この入力データ314を受信したことに応答して、補間構成要素140は、ユーザに推奨を提示する順序316を決定し得る。例えば、入力データ314を受信すると、補間構成要素140は、結果データから、1つ以上の最も近いバイアスされたスコアを識別し得、必要に応じてこれらの値の間を補間し得る。例えば、補間構成要素140は、ユーザに推奨を提示する順序316を決定するために、双一次補間または任意の他のタイプの補間を実行し得る。さらに、異なる入力データ314(例えば、パラメータまたはバイアス係数の異なる値)が受信されると、補間構成要素140は、入力データ314および結果データ312を使用して順序316を再補間し得、新しい順序316で推奨をユーザに提示し得る。さらに、上述のように、補間構成要素140は、コンピューティングシステム106と対話せずに、結果データ312および入力データ314を使用して異なる順序を再計算し得、したがって、クライアントデバイス102のディスプレイ上で推奨に対してリアルタイムのリソートが可能になる。
【0065】
図4は、リモートコンピューティングシステム102が生成し、かつユーザのクライアントデバイス102に送信し得る例示的な結果データ312を図示する。図示されるように、この例では、結果データ312は、スコアのMxN行列を含み得、クライアントデバイスは、様々なユーザ入力の受信に応答して、必要に応じてスコア間を補間し得る。しかしながら、結果データは、任意の数の次元のパラメータ空間内の任意のパターンでサンプリングされ得ることを理解されたい。例えば、スコアの行列または他の表現は、例示されたMxN点以外の異なる点においてサンプリングされ得る。例えば、サンプリングは、非線形的に行われ得る。さらに、サンプリングされる点の数は、変化し得る(例えば、点のMxN数よりも多い、少ない場合がある)。さらに、より高次元のパラメータ空間をもたらす、3つ以上のパラメータおよび/またはバイアス係数を使用してもよい。
【0066】
この例では、結果データ312は、コンテンツアイテムがリリースされた時間範囲のパラメータ、およびコンテンツアイテムの人気に対応するバイアス係数に対応する。さらに、訓練構成要素120は、パラメータの「N」数の値(時間範囲1~N)を有する結果データによって示されるように、このパラメータの「N」数の値を訓練している。加えて、バイアス構成要素124は、バイアス係数の「M」数の値(人気1~M)を使用して、相関構成要素122によって出力される各スコアをバイアスし得る。したがって、この例では、結果データ312は、MxN数のスコアを含む。
【0067】
パラメータ(時間範囲)の値またはバイアス係数(人気)の値を変更する入力を提供するユーザに応答して、補間構成要素は、最も近いスコアを識別し得、補間を実行して補間スコアを計算し得、これは、コンテンツアイテムをユーザに推奨する順序を決定するために使用され得る。例えば、クライアントデバイス102を動作させるユーザが、「時間範囲1」と「時間範囲2」との間の時間にリリースされ、かつ「人気1」と「人気2」との間にある人気を有するコンテンツアイテムの推奨を表示するように要求することを想定する。この入力データの受信に応答して、補間構成要素140は、「バイアスされたスコア11」、「バイアスされたスコア12」、「バイアスされたスコア21」、および「バイアスされたスコア22」など、この入力に最も近い4つのスコアを識別し得る。次いで、補間構成要素は、これらのスコアを使用して、双一次補間または任意の他のタイプの適切な補間アルゴリズムを実行して、補間スコアを生成し得る。次に、このスコアを使用して、コンテンツアイテム推奨をユーザに提示する順序を決定し得る。例えば、最も高いスコアのコンテンツアイテムは、最初に提示されてもよく、2番目に最も高いスコアコンテンツアイテムは、2番目に提示されてもよい、など。
【0068】
図5は、コンテンツアイテム推奨に対するユーザからの要求を受信したことに応答して、クライアントデバイス102が提示し得る例示的なユーザインターフェース(UI)500を例示する。図示されるように、UI500は、推奨コンテンツアイテム114(1)、114(2)、114(3)、および114(4)のカスタムリスト114を提示し得、このリスト114は、UI500が生成されたユーザの消費履歴、およびUIコントロール112(1)および112(2)の各々のそれぞれの値に基づいて決定される。例えば、UIコントロール112(1)は、ユーザが所望の人気レベルを選択することを可能にするためのスライダまたは他のタイプのUIコントロールを含み得、一方、UIコントロール112(2)は、ユーザが推奨コンテンツアイテムの所望の最近性を選択することを可能にするためのスライダまたは他のタイプのUIコントロールを含み得る。場合によっては、ユーザに提示されるUI500は、各範囲の中央など、これらのUIコントロール112(1)の各々についてデフォルト値を含んでもよい。したがって、コンテンツアイテム、したがって、リスト114のスコアは、
図6を参照しながら以下で論じられるように変更されてもよい、これらのデフォルト値に基づいて生成され得る。
【0069】
加えて、UI500は、ユーザがユーザ指定のタグを有するゲームをフィルタリング除去することを要求し得るUIコントロール502、ならびにユーザがユーザ指定のタグを有しないゲームをフィルタリング除去することを要求し得るUIコントロール504を含んでもよい。この例では、例えば、ユーザは、コントロール502または504のいずれかにおいて、タグをタイプするか、またはドロップダウンメニューを介して選択してもよい。UIコントロール502内のタグの受信に応答して、クライアントデバイス102は、指定されたタグに関連付けられたコンテンツアイテムを削除することによって、リスト114を変更し得る。一方、UIコントロール504内のタグの受信に応答して、クライアントデバイス102は、指定されたタグに関連付けられていないコンテンツアイテムを削除することによって、リスト114を変更し得る。
【0070】
図6は、ユーザが第1のパラメータ(この例では、コンテンツアイテムの人気)の値および第2のパラメータ(この例では、コンテンツアイテムの最近性)の値を変更したことに応答して、クライアントデバイス102が提示し得る例示的なUI600を示す。例えば、この例では、クライアントデバイスのユーザは、(例えば、より比較的古いコンテンツアイテムを要求するために)UIの右側のスライダを左側に移動させながら、(例えば、あまり人気のないコンテンツアイテムを要求するために)UIの左側のスライダをさらに右側に移動させている。したがって、それに応答して、補間構成要素114は、これらのユーザ入力に対応するコンテンツアイテムの新しいリスト602を計算し得る。例えば、リスト602は、比較的大きい時間範囲内にリリースされ、かつ過度には人気がないコンテンツアイテムを含み得る。
【0071】
図7は、リモートコンピューティングシステムが、1つ以上の訓練された機械学習モデルを生成し、ユーザにコンテンツアイテム推奨を提供する際にクライアントデバイスによって使用される結果データを生成するために採用し得る、例示的なプロセス700のフロー図を示す。このプロセス、および本明細書で説明される各プロセスは、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装され得る一連の動作を表す論理フローグラフ内のブロックの集合として示される。ソフトウェアの文脈では、ブロックは、コンピュータ実行可能命令を表し、コンピュータ実行可能命令は、1つ以上のプロセッサによって実行されるとき、列挙された動作を実行する。一般に、コンピュータ実行可能命令は、特定の機能を実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が記載される順序は、限定として解釈されることを意図するものではなく、任意のいくつかの記載されたブロックは、プロセスを実装するために任意の順序でおよび/または並行して組み合わされ得る。
【0072】
いくつかの事例では、コンピューティングシステム106が、動作の一部または全部を実行するように構成され得るが、他の事例では、他のデバイスが、追加的または代替的に、動作の一部または全部を実行し得る。
【0073】
動作702において、コンピューティングシステム106は、機械学習モデルを訓練し得る。図示されるように、この動作は、一連のサブ動作を含み得る。例えば、モデルを訓練することは、サブ動作702(1)において、1人以上のユーザの消費履歴を決定することを含み得る。上記のように、これは、ゲームプレイ履歴、映画または音楽の消費履歴などを含み得る。一方、サブ動作702(2)は、訓練されるモデルの出力として、履歴の各々からタイトルを選択することを含み得る。場合によっては、この選択は、(1)現在訓練されているモデルに関連付けられたパラメータの値を満たす履歴内のそれらのコンテンツアイテムから、および(2)各コンテンツアイテムがユーザによってどの程度消費されたかを参照して、行われてもよい。例えば、コンピューティングシステム106は、それぞれのユーザによってより大いに消費されるそれらのコンテンツアイテムに、より大きい重みを加え得るため、これらのコンテンツアイテムが出力として選択される可能性が大きくなる。最後に、サブ動作702(3)において、コンピューティングシステム106は、入力として各消費履歴を、および出力として各選択されたタイトルを使用して、モデルの1つ以上の内部層を訓練し得る。これらのサブ動作は、複数の消費履歴の各々に対して連続的に実行されてもよい。
【0074】
動作704において、プロセス700は、訓練される追加のモデルが存在するかどうかを決定する。例えば、プロセス700が、「N」数のモデルを訓練する場合、動作704は、N個のモデルのうちのいずれかが依然として訓練されるかどうかを決定することを表す。そうである場合、プロセス700は、動作702に戻る。そうでない場合、プロセス700は、動作706に進む。動作706において、コンピューティングシステム106は、ユーザのクライアントデバイスから、コンテンツアイテム推奨についての要求を受信し得る。動作708において、コンピューティングシステム106は、ユーザの消費履歴を決定し、動作710において、この履歴を訓練されたモデルに入力する。
【0075】
動作712において、コンピューティングシステム106は、訓練されたモデルからの出力として、ユーザの消費履歴と各それぞれのコンテンツアイテムとの間の相関を示すスコアデータを生成する。場合によっては、より比較的高いスコアは、より比較的高い相関レベルに対応する。動作714において、コンピューティングシステム106は、上述したように、ベース係数の特定の値に基づいて、スコアデータの各スコアを修正する。動作716は、スコアをバイアスするためにバイアス係数の追加の値が使用されるかどうかを決定することを表す。例えば、コンピューティングシステム106が、「M」数の値のバイアス係数を使用してスコアデータをバイアスする場合、動作716は、「M」個の値のうちのいずれかが、スコアをバイアスするために依然として使用されるかどうかを決定することを表す。そうである場合、プロセス700は、バイアス係数の新しい値のために動作714に戻る。
【0076】
そうでない場合、プロセス700は、ユーザのスコアデータを生成するために追加のモデルが使用されるかどうかを決定することを表す動作718に進む。例えば、コンピューティングシステム106が、ユーザに対して調整されたスコアデータを生成するために「N」数のモデルを使用するように構成されている場合、動作718は、「N」個のモデルのうちのいずれかが、ユーザのスコアデータを生成するために依然として使用されるかどうかを決定することを表す。そうである場合、プロセス700は、動作710において、ユーザの履歴データを次のモデルに入力することを戻す。そうでない場合、次いで、プロセス700は、ユーザへの推奨の提示を可能にするために、結果データ(例えば、バイアスされたスコアデータの行列または他の表現)をクライアントデバイスに送信することに進む。
【0077】
図8は、ユーザのクライアントデバイスが、ユーザに1つ以上のコンテンツアイテムを提示する順序を決定するために採用し得る例示的なプロセス800のフロー図を示す。このプロセス800は、クライアントデバイス102上で実行されるように説明されているが、プロセス800は、追加的または代替的に他のデバイス上で実行されてもよいことを理解されたい。
【0078】
動作802において、クライアントデバイス102は、クライアントデバイスのユーザの消費履歴と複数のコンテンツアイテムの各々との間の相関を示すスコアデータを受信する。場合によっては、スコアデータは、上述の結果データ312を含んでもよい。動作804において、クライアントデバイス102は、モデルが訓練されたパラメータの値、またはスコアデータがバイアスされたバイアス係数の値のうちの少なくとも1つを指定する入力をユーザから受信する。例えば、入力は、推奨されるコンテンツアイテムの所望の最近性(例えば、それらのそれぞれのリリース日に関連付けられた時間範囲)、コンテンツアイテムの所望のコスト範囲、コンテンツアイテムの所望の人気レベルなどを指定し得る。動作806において、クライアントデバイス102は、スコアデータおよび受信された入力に少なくとも部分的に基づいて、推奨コンテンツアイテムを提示する順序を決定する。例えば、クライアントデバイス102は、ユーザによって指定されたパラメータおよび/またはバイアス係数の値に基づいて、スコアデータに対して補間を実行し得る。
【0079】
動作808において、クライアントデバイス102は、決定された順序でコンテンツアイテム推奨を提示し、動作810において、追加の入力がユーザから受信されるかどうかを決定する。そうである場合、プロセス800は、入力に基づいてコンテンツアイテム推奨をユーザに(再)提示する順序を再び決定することに進む。そうでない場合、プロセス800は、動作812において終了する。
【0080】
主題は、構造的特徴に固有の言語で説明されているが、添付の特許請求の範囲で定義された主題が必ずしも説明された特定の特徴に限定されないことを理解されたい。むしろ、特定の特徴は、特許請求の範囲を実装する例示的な形態として開示される。