(57)【特許請求の範囲】
【請求項１】
ユーザに対する推薦アイテムに関する情報を出力する情報処理システムであって、
機械学習に基づいて生成されるモデルを用いて、前記ユーザが分類されるユーザクラスタに対する各アイテムの推薦スコアである第１の推薦スコア、前記ユーザクラスタに対する各アイテムが分類されるアイテムクラスタの推薦スコアである第２の推薦スコア、及び、前記ユーザに対する前記アイテムクラスタの推薦スコアである第３の推薦スコアの少なくとも一つを計算する計算部と、
前記計算された第１乃至第３の推薦スコアの少なくとも一つと、前記ユーザ及び前記ユーザクラスタを関連付ける情報及び／又は前記各アイテム及び前記アイテムクラスタを関連付ける情報と、に基づいて、前記ユーザに対する各アイテムあたり一つ又は複数の推薦スコアを導出する導出部と、
前記導出部によって導出された前記各アイテムあたり一つ又は複数の推薦スコアに基づいて、前記推薦アイテムに関する情報を決定し、前記ユーザの端末に対して出力する推薦部と、
を備える情報処理システム。
【請求項２】
前記モデルは、閲覧ログに基づいて生成されるユーザに関する情報とアイテムに関する情報の組と、該ユーザが該アイテムに興味を持つか否かに関するラベルと、を対応付けた学習データを用いて機械学習されたモデルに基づいて生成される、
請求項１に記載の情報処理システム。
【請求項３】
前記学習データを用いて機械学習された前記モデルの埋め込み層から抽出される前記ユーザの特徴量を示すベクトルに基づいて前記ユーザが前記ユーザクラスタに分類される、及び／又は、前記モデルの埋め込み層から抽出される前記アイテムの特徴量を示すベクトルに基づいて、前記アイテムが前記アイテムクラスタに分類される、
請求項２に記載の情報処理システム。
【請求項４】
前記計算部は、前記モデルを用いて、前記ユーザに対する各アイテムの推薦スコアである第４の推薦スコア、前記第１の推薦スコア、前記第２の推薦スコア及び前記第３の推薦スコアの少なくとも二つを計算し、
前記導出部は、前記第１乃至第４の推薦スコアの少なくとも二つと、前記ユーザ及び前記ユーザクラスタを関連付ける情報及び／又は前記各アイテム及び前記アイテムクラスタを関連付ける情報と、に基づいて、前記ユーザに対する各アイテムあたり一つ又は複数の推薦スコアを導出する、
請求項１から請求項３のいずれかに記載の情報処理システム。
【請求項５】
前記導出部によって前記ユーザに対して前記各アイテムあたり複数の推薦スコアが導出される場合、前記複数の推薦スコアそれぞれの信頼度に基づいて、前記ユーザに対する前記各アイテムあたり一つの推薦スコアを選択する選択部を更に備え、
前記推薦部は、前記各アイテムあたり一つの推薦スコアに基づいて、前記推薦アイテムに関する情報を決定する、
請求項１から請求項４のいずれかに記載の情報処理システム。
【請求項６】
前記信頼度は、前記ユーザに対して導出された前記各アイテムあたりの前記複数の推薦スコアにそれぞれ関連付けられるユーザ距離及びアイテム距離に基づいて定められる、
請求項５に記載の情報処理システム。
【請求項７】
前記推薦部は、前記各アイテムあたり一つの推薦スコアに加えて前記ユーザへのアイテムの推薦対象となる範囲に基づいて、前記推薦アイテムに関する情報を決定する、
請求項１から請求項６のいずれかに記載の情報処理システム。
【請求項８】
前記推薦対象となる範囲は、前記端末の位置を示す情報、前記ユーザによる所定のサービスの利用履歴、及び、前記ユーザにより指定された範囲の少なくとも一つに基づいて決定される、
請求項７に記載の情報処理システム。
【請求項９】
ユーザに対する推薦アイテムに関する情報を出力する情報処理システムのサーバであって、
前記ユーザからのリクエストを検出する検出部と、
機械学習に基づいて生成されるモデルを用いて計算された、前記ユーザが分類されるユーザクラスタに対する各アイテムの推薦スコアである第１の推薦スコア、前記ユーザクラスタに対する各アイテムが分類されるアイテムクラスタの推薦スコアである第２の推薦スコア、及び、前記ユーザに対する前記アイテムクラスタの推薦スコアである第３の推薦スコアの少なくとも一つと、前記ユーザ及び前記ユーザクラスタを関連付ける情報及び／又は前記各アイテム及び前記アイテムクラスタを関連付ける情報と、に基づいて、前記ユーザに対する各アイテムあたり一つ又は複数の推薦スコアを、前記リクエストに応じて導出する導出部と、
前記導出部によって導出された前記各アイテムあたり一つ又は複数の推薦スコアに基づいて、前記推薦アイテムに関する情報を決定し、前記ユーザの端末に対して出力する推薦部と、
を備えるサーバ。
【請求項１０】
ユーザに対する推薦アイテムに関する情報を出力する情報処理方法であって、
機械学習に基づいて生成されるモデルを用いて、前記ユーザが分類されるユーザクラスタに対する各アイテムの推薦スコアである第１の推薦スコア、前記ユーザクラスタに対する各アイテムが分類されるアイテムクラスタの推薦スコアである第２の推薦スコア、及び、前記ユーザに対する前記アイテムクラスタの推薦スコアである第３の推薦スコアの少なくとも一つを計算する工程と、
前記計算された第１乃至第３の推薦スコアの少なくとも一つと、前記ユーザ及び前記ユーザクラスタを関連付ける情報及び／又は前記各アイテム及び前記アイテムクラスタを関連付ける情報と、に基づいて、前記ユーザに対する各アイテムあたり一つ又は複数の推薦スコアを導出する工程と、
導出された前記各アイテムあたり一つ又は複数の推薦スコアに基づいて、前記推薦アイテムに関する情報を決定し、前記ユーザの端末に対して出力する工程と、
を備える情報処理方法。
【請求項１１】
コンピュータに、
ユーザからのリクエストを検出することと、
機械学習に基づいて生成されるモデルを用いて計算された、前記ユーザが分類されるユーザクラスタに対する各アイテムの推薦スコアである第１の推薦スコア、前記ユーザクラスタに対する又は各アイテムが分類されるアイテムクラスタの推薦スコアである第２の推薦スコア、及び、前記ユーザに対する前記アイテムクラスタの推薦スコアである第３の推薦スコアの少なくとも一つと、前記ユーザ及び前記ユーザクラスタを関連付ける情報及び／又は前記各アイテム及び前記アイテムクラスタを関連付ける情報と、に基づいて、前記ユーザに対する各アイテムあたり一つ又は複数の推薦スコアを、前記リクエストに応じて導出することと、
導出された前記各アイテムあたり一つ又は複数の推薦スコアに基づいて、前記ユーザに対する推薦アイテムに関する情報を決定し、前記ユーザの端末に対して出力することと、
を実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、サーバ、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
従来、機械学習に基づいて構築されたモデルを用いて、ユーザに対してアイテム（例えば、飲食店、宿泊施設、レシピ、動画、コンテンツ、商品等）を推薦（recommend）する推薦システム（recommendation system）が知られている。例えば、特許文献１には、機械学習に基づいて生成されるモデルを用いて、ユーザに推薦するアイテム（以下、「推薦アイテム」という）を決定する方法が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１９−１０２０６８
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以上のような推薦システムでは、ユーザに対するアイテムの推薦に関する計算量が膨大となる結果、ユーザに対して妥当な時間内にアイテムを推薦できない恐れがある。
【０００５】
そこで、本発明は、ユーザに対するアイテムの推薦に関する計算量を削減可能な情報処理システム、サーバ、情報処理方法及び情報処理プログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る情報処理システムは、ユーザに対する推薦アイテムに関する情報を出力する情報処理システムであって、機械学習に基づいて生成されるモデルを用いて、前記ユーザ又は前記ユーザが分類されるユーザクラスタに対する各アイテム又は各アイテムが分類されるアイテムクラスタの推薦スコアを計算する計算部と、前記計算された推薦スコアと、前記ユーザ及び前記ユーザクラスタを関連付ける情報及び／又は前記各アイテム及び前記アイテムクラスタを関連付ける情報と、に基づいて、前記ユーザに対する各アイテムの推薦スコアを導出する導出部と、前記各アイテムの推薦スコアに基づいて、前記推薦アイテムに関する情報を決定し、前記ユーザの端末に対して出力する推薦部と、を備える。
【０００７】
この態様によれば、機械学習に基づいて生成されるモデルを用いて、抽出されたユーザ又はユーザクラスタに対する、抽出されたアイテム又はアイテムクラスタの推薦スコアが計算され、ユーザに対する各アイテムの推薦スコアが導出されるので、ユーザに対するアイテムの推薦に関する計算量を削減できる。
【０００８】
上記態様において、前記モデルは、閲覧ログに基づいて生成されるユーザに関する情報とアイテムに関する情報の組と、該ユーザが該アイテムに興味を持つか否かに関するラベルと、を対応付けた学習データを用いて機械学習されたモデルに基づいてもよい。この態様によれば、上記機械学習に適切な学習データを利用できるので、当該複数のモデルを用いた推薦スコアの計算を適切に行うことができる。
【０００９】
上記態様において、前記学習データを用いて機械学習された前記モデルの埋め込み層から抽出される前記ユーザの特徴量を示すベクトルに基づいて前記ユーザが前記ユーザクラスタに分類される、及び／又は、前記モデルの埋め込み層から抽出される前記アイテムの特徴量を示すベクトルに基づいて、前記アイテムが前記アイテムクラスタに分類されてもよい。この態様によれば、機械学習により生成されたモデルの埋め込み層から抽出されるベクトルを用いることで、ユーザ及び／又はアイテムの分類を効率的に行うことができる。
【００１０】
上記態様において、前記ユーザに対する各アイテムあたり一つの推薦スコアを選択する選択部を更に備え、前記モデルは、複数のモデルを含み、前記導出部によって導出される前記推薦スコアは、前記ユーザに対する各アイテムあたり一以上の推薦スコアであり、前記選択部は、前記一以上の推薦スコアの信頼度に基づいて、該一以上の推薦スコアから、前記ユーザに対する各アイテムあたり一つの推薦スコアを選択し、前記推薦部は、前記各アイテムあたり一つの推薦スコアに基づいて、前記推薦アイテムに関する情報を決定してもよい。この態様によれば、複数のモデルを用いて推薦スコアが計算されるので、単一のモデルを用いる場合と比較して、ユーザに対するアイテムの推薦精度を向上できる。
【００１１】
上記態様において、前記信頼度は、前記ユーザの特徴量を示すベクトルと前記ユーザクラスタの特徴量を示すベクトルとの間の距離、及び、前記アイテムの特徴量を示すベクトルと前記アイテムクラスタの特徴量を示すベクトルとの間の距離であってもよい。この態様によれば、各アイテムあたり一つの推薦スコアの選択に用いる信頼度が適切に導出されるので、ユーザに対するアイテムの推薦精度の劣化を防止できる。
【００１２】
上記態様において、前記推薦部は、前記各アイテムあたり一つの推薦スコアに加えて前記ユーザへのアイテムの推薦対象となる範囲に基づいて、前記推薦アイテムに関する情報を決定してもよい。この態様によれば、上記推薦対象となる範囲に基づいて推薦アイテムが決定されるので、推薦精度を向上できる。
【００１３】
上記態様において、前記推薦対象となる範囲は、前記端末の位置を示す情報、前記ユーザによる所定のサービスの利用履歴、及び、前記ユーザにより指定された範囲の少なくとも一つに基づいて決定されてもよい。
【００１４】
本発明の他の態様に係るサーバは、ユーザに対する推薦アイテムに関する情報を出力する情報処理システムのサーバであって、前記ユーザからのリクエストを検出する検出部と、機械学習に基づいて生成されるモデルを用いて計算された、前記ユーザ又は前記ユーザが分類されるユーザクラスタに対する各アイテム又は各アイテムが分類されるアイテムクラスタの推薦スコアと、前記ユーザ及び前記ユーザクラスタを関連付ける情報及び／又は前記各アイテム及び前記アイテムクラスタを関連付ける情報と、に基づいて、前記ユーザに対する各アイテムの推薦スコアを導出する導出部と、を備える。
【００１５】
本発明の他の態様に係る情報処理方法は、ユーザに対する推薦アイテムに関する情報を出力する情報処理方法であって、機械学習に基づいて生成されるモデルをそれぞれ用いて、前記ユーザ又は前記ユーザが分類されるユーザクラスタに対する各アイテム又は各アイテムが分類されるアイテムクラスタの推薦スコアを計算する工程と、前記計算された推薦スコアと、前記ユーザ及び前記ユーザクラスタを関連付ける情報及び／又は前記各アイテム及び前記アイテムクラスタを関連付ける情報と、に基づいて、前記ユーザに対する各アイテムの推薦スコアを導出する工程と、前記各アイテムの推薦スコアに基づいて、前記推薦アイテムに関する情報を決定し、前記ユーザの端末に対して出力する工程と、を備える。
【００１６】
本発明の他の態様に係る情報処理プログラムは、コンピュータに、前記ユーザからのリクエストを検出する検出部と、機械学習に基づいて生成されるモデルを用いて計算された、ユーザ又は前記ユーザが分類されるユーザクラスタに対する各アイテム又は各アイテムが分類されるアイテムクラスタの推薦スコアと、前記ユーザ又は前記ユーザが分類されるユーザクラスタに対する各アイテム又は各アイテムが分類されるアイテムクラスタの推薦スコアと、に基づいて、前記ユーザに対する各アイテムの推薦スコアを導出することと、を実行させる
【発明の効果】
【００１７】
本発明によれば、ユーザに対するアイテムの推薦に関する計算量を削減できる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施形態に係る情報処理システムの概略構成を示す図である。
【図２】第１の実施形態に係る推薦スコアテーブルの一例を示す図である。
【図３】第１の実施形態に係るバッチサーバの機能構成の一例を示す図である。
【図４】第１の実施形態に係るバッチサーバの学習処理部の機能構成の一例を示す図である。
【図５】第１の実施形態に係る学習データの生成の一例を示す図である。
【図６】第１の実施形態に係るバッチサーバの推定処理部の機能構成の一例を示す図である。
【図７】第１の実施形態に係るユーザクラスタテーブル及びアイテムクラスタテーブルの一例を示す図である。
【図８】第１の実施形態に係る第１〜第３の推薦スコアテーブルの一例を示す図である。
【図９】第１の実施形態に係るバッチサーバの出力処理部の機能構成の一例を示す図である。
【図１０】第１の実施形態に係るユーザに対する各アイテムあたり一以上の推薦スコアの一例を示す図である。
【図１１】第１の実施形態に係る推薦サーバ、ユーザ端末及びＤＢサーバの機能構成の一例を示す図である。
【図１２】第１の実施形態に係る推薦アイテム情報の表示画面の一例を示す図である。
【図１３】第１の実施形態に係る情報処理システム内の各装置のハードウェア構成の一例を示す図である。
【図１４】第１の実施形態に係るバッチ動作の一例を示すフローチャートである。
【図１５】第１の実施形態に係るアイテムの推薦動作の一例を示すフローチャートである。
【図１６】第１の実施形態の変更例に係るアイテムのバッチ動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【００２０】
［第１の実施形態］
（情報処理システムの構成）
＜概略構成＞
図１は、第１の実施形態に係る情報処理システム１の概略構成を示す図である。情報処理システム１は、ユーザ端末１０のユーザに推薦するアイテムに関する情報（以下、「推薦アイテム情報」）を出力する。ここで、アイテムとは、例えば、飲食店等の店舗、宿泊施設、レシピ、動画、コンテンツ、商品、サービス、情報等であるが、これに限られない。第１の実施形態におけるアイテムは、ユーザに対する推薦対象となるどのような物、サービス又は情報等であってもよい。
【００２１】
図１に示すように、情報処理システム１では、ユーザ端末１０と、ＤＢサーバ２０と、推薦サーバ３０と、バッチサーバ４０とが、ネットワークＮ（例えば、インターネット及び／又はイントラネット等）を介して接続されている。
【００２２】
ユーザ端末１０は、ユーザによる一つ又は複数のキーワードの入力を受け付ける端末であり、例えば、スマートフォン、パーソナルコンピュータ（ＰＣ）等である。なお、図１では、単一のユーザ端末１０が示されるが、情報処理システム１が複数のユーザ端末１０を含んでもよいことは勿論である。
【００２３】
ＤＢサーバ２０は、データベースを保持するサーバである。ＤＢサーバ２０は、所定のサービス（例えば、アイテムに関する情報の提供サービス）に登録（ログインともいう）する複数のユーザ（例えば、数百万〜数千万のユーザ）と、当該所定のサービスで提供される複数のアイテム（例えば、数十万〜数百万のアイテム）と、を管理する。当該所定のサービスに登録するユーザ及び／又は当該所定のサービスで提供されるアイテムは、随時更新されてもよい。すなわち、当該所定のサービスに登録するユーザ数Ｋ及び／又は当該所定のサービスで提供されるアイテム数Ｌは随時変化してもよい。
【００２４】
また、ＤＢサーバ２０は、当該所定のサービスに登録するユーザ毎に、当該所定のサービスで提供される各アイテムの推薦スコアを管理してもよい。具体的には、ＤＢサーバ２０は、ユーザ毎に、アイテムに関する情報（以下、「アイテム情報」という）と、当該アイテムの推薦スコアと、を関連付けたテーブル（以下、「推薦スコアテーブル」という）を記憶してもよい。
【００２５】
ここで、アイテム情報は、例えば、アイテムを識別する情報（例えば、アイテムＩＤ）、当該アイテムの属性を示す情報を含んでもよい。アイテムの属性は、例えば、アイテムが飲食店舗である場合、当該飲食店舗の名称、住所、地域、料理ジャンル（例えば、イタリアン、フレンチ等）、メニュー等の少なくとも一つである。
【００２６】
また、推薦スコアとは、当該アイテムの推薦の度合いを示す値である。当該推薦スコアの値が大きいほど、推薦の度合いが高いことを示してもよい。
【００２７】
図２は、第１の実施形態に係る推薦スコアテーブルの一例を示す図である。図２に示すように、Ｋユーザ（Ｋ≧１）それぞれに対応する推薦スコアテーブル２１１1〜２１１Kにおいて、各アイテム情報（例えば、アイテムＩＤ）と、各アイテムの推薦スコアとが関連付けられてもよい。当該推薦スコアテーブル２１１1〜２１１Kは、バッチサーバ４０で所定期間（例えば、１ヶ月）毎に生成又は更新されてもよい。なお、以下、推薦スコアテーブル２１１1〜２１１Kを特に区別しない場合は、推薦スコアテーブル２１１と総称する。
【００２８】
推薦サーバ３０は、ＤＢサーバ２０を参照して、ユーザ端末１０のユーザに対する推薦アイテムを決定し、当該推薦アイテムに関する推薦アイテム情報を出力する。推薦サーバ３０は、例えば、Ｗｅｂサーバである。具体的には、推薦サーバ３０は、ユーザ端末１０のユーザ＃ｋの操作に基づく所定のトリガ（例えば、所定のＷｅｂページへのアクセス）を検出すると、ＤＢサーバ２０に記憶された当該ユーザ用の推薦スコアテーブル２１１を参照し、当該推薦スコアテーブル２１１内の推薦スコアに基づいて、当該ユーザに対する推薦アイテムを決定する。
【００２９】
バッチサーバ４０は、バッチ処理を行うサーバである。バッチサーバ４０は、所定期間（例えば、１ヶ月）毎に、各ユーザに対する各アイテムの推薦スコアを計算する。具体的には、バッチサーバ４０は、所定期間毎に、ＤＢサーバ２０で記憶される推薦スコアテーブル２１１を生成又は更新する。
【００３０】
なお、図１は、情報処理システム１の概略構成を示すものであり、図示しない他の構成（例えば、ユーザ端末１０による所定のサービスへのアクセスのログを収集及び／又は解析する解析サーバ等）を含んでもよいことは勿論である。また、ＤＢサーバ２０と、推薦サーバ３０と、バッチサーバ４０の少なくとも二つは、同一のサーバとして構成されてもよい。
【００３１】
＜機能構成＞
第１の実施形態に係る情報処理システム１の機能構成を説明する。図３は、第１の実施形態に係るバッチサーバの機能構成の一例を示す図である。図３に示すように、バッチサーバ４０は、学習処理部４１と、記憶部４２と、推定処理部４３と、出力処理部４４とを備える。なお、学習処理部４１と、記憶部４２と、推定処理部４３と、出力処理部４４と少なくとも一つは、バッチサーバ４０に含まれなくともよく、情報処理システム１内に設けられる他の一つ又は複数のサーバに含まれてもよい。
【００３２】
学習処理部４１は、各ユーザに対する各アイテムの推薦スコアの計算に用いるモデルの機械学習を行う。なお、モデルは、アルゴリズム、分類器、分類モデル、又は、推定モデル等と呼ばれてもよい。記憶部４２は、学習処理部４１で機械学習されたモデルに基づいて生成される複数のモデルを記憶する。
【００３３】
推定処理部４３は、上記複数のモデルを用いて、ユーザ又は当該ユーザが分類されるクラスタ（以下、「ユーザクラスタ」という）に対する、各アイテム又は各アイテムが分類される各クラスタ（以下、「アイテムクラスタ」という）の推薦スコアを計算する。また、推定処理部４３は、計算された推薦スコアに基づいて、当該ユーザに対する各アイテムあたり一以上の推薦スコアを導出する。
【００３４】
出力処理部４４は、ユーザに対する各アイテムあたり一以上の推薦スコアの信頼度に基づいて、該一以上の推薦スコアからユーザに対する各アイテムあたり一つの推薦スコアを選択する。出力処理部４４は、ユーザに対する各アイテムあたり一つの推薦スコアをＤＢサーバ２０に出力して、当該ユーザの推薦スコアテーブル２１１を更新する。
【００３５】
≪学習処理部≫
図４は、第１の実施形態に係るバッチサーバの学習処理部の機能構成の一例を示す図である。図４に示すように、学習処理部４１は、閲覧データ取得部４１１、興味ありデータ取得部４１２、学習データ生成部４１３、学習部４１４を備える。なお、図４の記憶部４２では、学習処理部４１に関する記憶内容を示しており、記憶部４２の記憶内容は図４に示すものに限られない。
【００３６】
閲覧データ取得部４１１は、ユーザに関する情報（以下、「ユーザ情報」という）と、当該ユーザによってユーザ端末１０を用いて閲覧されたアイテムに関するアイテム情報とを関連付けたデータ（以下、「閲覧データ」という）を取得する。
【００３７】
ここで、ユーザ情報は、例えば、ユーザを識別する情報（例えば、ユーザＩＤ）、当該ユーザの属性を示す情報を含んでもよい。ユーザの属性は、例えば、氏名、性別、国籍、居住する地域、住所、好みの料理ジャンル、メニュー等の少なくとも一つであってもよい。アイテム情報については上記の通りである。以下、第１の実施形態では、ユーザ情報及びアイテム情報の一例として「ユーザＩＤ」及び「アイテムＩＤ」を記載するが、以下の「ユーザＩＤ」及び「アイテムＩＤ」がユーザ情報及びアイテム情報、又は、これらに含まれる情報に置き換えられてもよいことは勿論である。
【００３８】
具体的には、閲覧データ取得部４１１は、図５（ａ）に示すように、閲覧ログからユーザＩＤ及びアイテムＩＤの組を閲覧データとして抽出してもよい。閲覧ログは、ユーザがユーザ端末１０を用いてどのアイテムをいつ閲覧したかを示す情報である。なお、上記閲覧データからは、他のレコードと重複するレコードが排除されてもよい。閲覧ログ内の各レコードは、各ユーザ端末１０内にインストールされたアプリケーションによって取得され、所定のサーバで所定期間（例えば、１ヶ月）蓄積されたものであってもよい。
【００３９】
興味ありデータ取得部４１２は、ユーザＩＤと、当該ユーザＩＤのユーザが興味を持ったアイテムのアイテムＩＤとを関連付けたデータ（以下、「興味ありデータ」という）を取得する。具体的には、興味ありデータ取得部４１２は、図５（ｂ）に示すように、所定のテーブルからユーザＩＤ及びアイテムＩＤの組を興味ありデータとして取得してもよい。
【００４０】
当該所定のテーブルは、例えば、ユーザＩＤと当該ユーザＩＤのユーザによる閲覧後にユーザによる所定の操作（例えば、保存等）が受け付けられたアイテムのアイテムＩＤとを関連付けるテーブルであってもよい。なお、上記興味ありデータからは、他のレコードと重複するレコードが排除されてもよい。
【００４１】
学習データ生成部４１３は、閲覧データ取得部４１１によって取得された閲覧データ及び興味ありデータ取得部４１２によって取得された興味ありデータに基づいて、機械学習用のデータ（以下、「学習データ」という）を生成する。学習データ生成部４１３は、生成した学習データ４２１を記憶部４２に記憶させる。
【００４２】
具体的には、学習データ生成部４１３は、閲覧データ及び／又は興味ありデータに含まれるユーザＩＤ及びアイテムＩＤの各組と、機械学習用のラベルと、を対応付けた学習データ４２１を生成する。例えば、学習データ生成部４１３は、閲覧データ及び興味ありデータの双方に含まれるユーザＩＤ及びアイテムＩＤの各組には、ユーザが店舗に興味を持つことを示すラベル（すなわち、正解例（正例ともいう）のラベル）を付与してもよい。一方、学習データ生成部４１３は、閲覧データだけに含まれるユーザＩＤ及びアイテムＩＤの各組には、ユーザが店舗に興味を持たないことを示すラベル（すなわち、不正解例（負例ともいう）のラベル）を付与してもよい。
【００４３】
例えば、図５（ｃ）に示すように、学習データ生成部４１３は、図５（ａ）の閲覧データ及び図５（ｂ）の興味ありデータの双方に含まれる、ユーザＩＤ「１」とアイテムＩＤ「１」「２」の組に対して、正例のラベルを付与する。一方、ユーザＩＤ「２」及びアイテムＩＤ「２」の組は、図５（ａ）の閲覧データに含まれるが図５（ｂ）の興味ありデータに含まれない。このため、学習データ生成部４１３は、ユーザＩＤ「２」及びアイテムＩＤ「２」の組には、負例のラベルを付与する。
【００４４】
学習部４１４は、学習データ生成部４１３で生成された学習データ４２１を用いて機械学習を行う。これにより、ユーザＩＤ及びアイテムＩＤを入力すると、ユーザに対するアイテムの推薦スコアを出力するモデル４２２が生成される。なお、当該推薦スコアは、当該ユーザが当該アイテムに興味を持つか否かの確率（すなわち、正例又は負例の確率）と言い換えることもできる。学習部４１４は、生成したモデル４２２を記憶部４２に記憶させる。
【００４５】
なお、上記機械学習に用いられるアルゴリズムは、例えば、Matrix Factorization、Factorization Machines、Factorization-machine supported Neural Network（ＦＮＮ）、Deep Crossing Network、Product-based Neural Network、DeepFM、xDeepFM等の埋め込み層（embedding layer）を有するアルゴリズムであるが、これらに限られない。
【００４６】
≪推定処理部≫
図６は、第１の実施形態に係るバッチサーバの推定処理部の機能構成の一例を示す図である。図６に示すように、推定処理部４３は、抽出部４３１と、クラスタリング部（分類部）４３２と、計算部４３３と、を備える。なお、図６の記憶部４２では、推定処理部４３に関する記憶内容を示しており、記憶部４２の記憶内容は図６に示すものに限られない。
【００４７】
抽出部４３１は、学習処理部４１で生成されたモデル４２２から、各ユーザの特徴量を示すベクトル（以下、「ユーザベクトル」という）、及び／又は、各アイテムの特徴量を示すベクトル（以下、「アイテムベクトル」という）を抽出する。
【００４８】
具体的には、抽出部４３１は、モデル４２２の埋め込み層から各ユーザベクトル及び／又は各アイテムベクトルを抽出してもよい。また、各ユーザベクトル、各アイテムベクトルは、モデル４２２の埋め込み層から抽出されるので、埋め込みベクトル（embedding vector）と呼ばれてもよい。また、各ユーザベクトル、各アイテムベクトルは、一以上の次元を有する。
【００４９】
クラスタリング部４３２は、各ユーザのクラスタリング、及び／又は、各アイテムのクラスタリングを行う。ここで、クラスタリングとは、複数のクラスタの一つに各ユーザ又は各アイテムを分類すること、すなわち、複数のクラスタの中で各ユーザ又は各アイテムが属するクラスタを決定することである。同一のクラスタに分類される各ユーザ又は各アイテムは、所定の類似度を有してもよい。なお、クラスタは、グループと言い換えられてもよい。
【００５０】
具体的には、クラスタリング部４３２は、抽出部４３１によって抽出された各ユーザベクトルに基づいて各ユーザをクラスタに分類してもよい。以下、ユーザが分類されるクラスタを「ユーザクラスタ」という。また、アイテムが分類されるクラスタを「アイテムクラスタ」という。例えば、クラスタリング部４３２は、ｋ−ｍｅａｎｓ、階層型クラスタリング等のアルゴリズムを用いて、各ユーザのクラスタリング、及び／又は、各アイテムのクラスタリングを行ってもよい。
【００５１】
ユーザクラスタの数は、例えば、１００、１０００又は１００００等の所定数である。同様に、アイテムクラスタの数は、例えば、１００、１０００又は１００００等の所定数である。ユーザクラスタ及び／又はアイテムクラスタの数を増加させるほど、クラスタの代表値とクラスタに属する要素との差が小さくなるので推薦スコアの精度が向上するが、計算量が増加するので処理速度は遅くなる。一方、ユーザクラスタ及び／又はアイテムクラスタの数を低下させるほど、性能は低下するが、計算量が減少するので処理速度は速くなる。
【００５２】
また、クラスタリング部４３２は、各ユーザクラスタの代表値としてのベクトル（以下、「ユーザクラスタベクトル」）を計算してもよい。例えば、クラスタリング部４３２は、各ユーザクラスタベクトルとして、各ユーザクラスタに分類された一以上のユーザのユーザベクトルの平均値を計算してもよい。
【００５３】
また、クラスタリング部４３２は、各ユーザクラスタと各ユーザクラスタに分類された各ユーザとの間の距離（以下、「ユーザ距離」という）を計算してもよい。具体的には、クラスタリング部４３２は、各ユーザクラスタベクトルと、各ユーザクラスタに分類された各ユーザのユーザベクトルとに基づいて、当該ユーザ距離を計算してもよい。例えば、クラスタリング部４３２は、当該ユーザ距離として、ｓ（ｓ≧１）次元のユーザベクトルとｓ（ｓ≧１）次元のユーザクラスタベクトルとのユークリッド距離（２ノルム、Ｌ２距離等とも呼ばれる）、マンハッタン距離（１ノルム、Ｌ１距離等とも呼ばれる）、マハラノビス距離等を計算してもよい。
【００５４】
また、クラスタリング部４３２は、各ユーザと各ユーザクラスタが分類されるユーザクラスタとを関連付ける情報（以下、「ユーザ／ユーザクラスタ関連付け情報」という）を記憶部４２に記憶させる。具体的には、クラスタリング部４３２は、ユーザ／ユーザクラスタ関連付け情報として、各ユーザＩＤと、当該各ユーザＩＤのユーザが分類されたユーザクラスタに関する情報（以下、「ユーザクラスタ情報」という）と、上記ユーザ距離と、を関連付けて、記憶部４２に記憶させてもよい。
【００５５】
以下、第１の実施形態では、ユーザクラスタ情報の一例として、ユーザクラスタを識別する「ユーザクラスタ番号」を記載するが、以下の「ユーザクラスタ番号」がユーザクラスタ情報に置き換えられてもよいことは勿論である。例えば、クラスタリング部４３２は、図７（ａ）に示すように、ユーザＩＤとユーザクラスタ番号とユーザ距離とを関連付けるテーブル（以下、「ユーザクラスタテーブル」）４２３を、記憶部４２に記憶させてもよい。また、図示しないが、ユーザクラスタ情報は、ユーザクラスタ番号に加えて、上記ユーザクラスタベクトルを示す情報を含んでもよい。この場合、ユーザクラスタテーブル４２３は、ユーザＩＤと、ユーザクラスタ番号と、当該ユーザクラスタベクトルを示す情報と、を関連付けてもよい。
【００５６】
また、クラスタリング部４３２は、ユーザクラスタの数が異なるＮ（Ｎ≧１）個のユーザクラスタセットのそれぞれを用いて、各ユーザのクラスタリングを行ってもよい。ここで、ユーザクラスタセットとは、複数のユーザクラスタの集合である。例えば、クラスタリング部４３２は、１０００個のユーザクラスタを含むユーザクラスタセット＃１及び１００００個のユーザクラスタセット＃２それぞれを用いて、各ユーザのクラスタリングを行ってもよい。この場合、クラスタリング部４３２は、Ｎ（Ｎ≧１）個のユーザクラスタセットそれぞれに対応するＮ個のユーザクラスタテーブル４２３1〜４２３Nを記憶部４２に記憶させてもよい。
【００５７】
また、クラスタリング部４３２は、各アイテムクラスタの代表値としてのベクトル（以下、「アイテムクラスタベクトル」）を計算する。例えば、クラスタリング部４３２は、各アイテムクラスタベクトルとして、各アイテムクラスタに分類された一以上のアイテムのアイテムベクトルの平均値を計算してもよい。
【００５８】
また、クラスタリング部４３２は、各アイテムクラスタと各アイテムクラスタに分類された各アイテムとの間の距離（以下、「アイテム距離」という）を計算する。具体的には、クラスタリング部４３２は、各アイテムクラスタベクトルと、各アイテムクラスタに分類された各アイテムのアイテムベクトルとに基づいて、当該アイテム距離を計算してもよい。例えば、クラスタリング部４３２は、当該アイテム距離として、ｔ（ｔ≧１）次元のアイテムベクトルとｔ（ｔ≧１）次元のアイテムクラスタベクトルとのユークリッド距離、マンハッタン距離、マハラノビス距離等を計算してもよい。
【００５９】
また、クラスタリング部４３２は、各アイテムと各アイテムが分類されるアイテムクラスタとを関連付ける情報（以下、「アイテム／アイテムクラスタ関連付け情報」という）を記憶部４２に記憶させる。具体的には、クラスタリング部４３２は、アイテム／アイテムクラスタ関連付け情報として、各アイテムＩＤと、当該各アイテムＩＤのアイテムが分類されたアイテムクラスタに関する情報（以下、「アイテムクラスタ情報」という）と、上記アイテム距離と、を関連付けて、記憶部４２に記憶させてもよい。
【００６０】
以下、第１の実施形態では、アイテムクラスタ情報の一例として、アイテムクラスタを識別する「アイテムクラスタ番号」を記載するが、以下の「アイテムクラスタ番号」がアイテムクラスタ情報に置き換えられてもよいことは勿論である。例えば、クラスタリング部４３２は、図７（ｂ）に示すように、アイテムＩＤとアイテムクラスタ番号とアイテム距離とを関連付けるテーブル（以下、「アイテムクラスタテーブル」）４２４を、記憶部４２に記憶させてもよい。また、図示しないが、アイテムクラスタ情報は、アイテムクラスタ番号に加えて、上記アイテムクラスタベクトルを示す情報を含んでもよい。この場合、アイテムクラスタテーブル４２４は、アイテムＩＤと、アイテムクラスタ番号と、当該アイテムクラスタベクトルを示す情報と、を関連付けてもよい。
【００６１】
また、クラスタリング部４３２は、アイテムクラスタの数が異なるＭ（Ｍ≧１）個のアイテムクラスタセットのそれぞれを用いて、各アイテムのクラスタリングを行ってもよい。ここで、アイテムクラスタセットとは、複数のアイテムクラスタの集合である。例えば、クラスタリング部４３２は、１０００個のアイテムクラスタを含むアイテムクラスタセット＃１及び１００００個のアイテムクラスタセット＃２それぞれを用いて、各アイテムのクラスタリングを行ってもよい。この場合、クラスタリング部４３２は、Ｍ（Ｍ≧１）個のアイテムクラスタセットそれぞれに対応するＭ個のアイテムクラスタテーブル４２４1〜４２４Mを記憶部４２に記憶させてもよい。
【００６２】
計算部４３３は、学習処理部４１で生成されたモデル４２２に基づく複数のモデル４２５をそれぞれ用いて、ユーザ又は当該ユーザが分類されるユーザクラスタに対する各アイテム又は各アイテムが分類されるアイテムクラスタの推薦スコアを計算する。具体的には、計算部４３３は、当該複数のモデル４２５にそれぞれ対応する計算部を含んでもよい。例えば、図６では、計算部４３３は、第１〜第４のモデル４２５ａ〜４２５ｄにそれぞれ対応する第１〜第４の計算部４３３ａ〜４３３ｄを含む。なお、第１〜第４の計算部４３３ａ〜４３３ｄの少なくとも一つは、複数であってもよい。
【００６３】
第１の計算部４３３ａは、第１のモデル４２５ａを用いて、各ユーザに対する各アイテムの推薦スコア（以下、「第１の推薦スコア」という）を計算する。当該第１のモデル４２５ａは、学習処理部４１で生成されたモデル４２２と同一であってもよい。
【００６４】
具体的には、第１の計算部４３３ａは、ユーザ及びアイテムの各組（すなわち、ユーザＩＤ及びアイテムＩＤの各組）を第１のモデル４２５ａに入力して、その出力として第１の推薦スコア（すなわち、ユーザがアイテムに興味を持つ正例となる確率）を計算する。
【００６５】
第１のモデル４２５ａを用いた計算量を削減するために、第１の推薦スコアが計算されるユーザ及びアイテムの組は、所定のサービスに登録された全ユーザ及び全アイテムの組み合わせ（例えば、数百万〜数千万のユーザ及び数十万〜数百万のアイテムの組み合わせ）から一以上の抽出パターンを用いて抽出されたものであってもよい。例えば、当該ユーザ及びアイテムの組は、所定のフラグ（例えば、重要フラグ）が付与されたユーザ及び／又はアイテムに基づいて抽出されてもよい。また、第１の計算部４３３ａによる計算時間が所定の閾値を超えないように、抽出される組の数が制限されてもよい。
【００６６】
また、第１の計算部４３３ａは、ユーザＩＤ及びアイテムＩＤと、第１のモデル４２５ａを用いて計算された第１の推薦スコアと、を関連付けて、記憶部４２に記憶させてもよい。具体的には、第１の計算部４３３ａは、図８（ａ）に示すように、ユーザＩＤとアイテムＩＤと第１の推薦スコアとを関連付けるテーブル（以下、「第１の推薦スコアテーブル」）４２６ａを、記憶部４２に記憶させてもよい。
【００６７】
第２の計算部４３３ｂは、第２のモデル４２５ｂを用いて、各ユーザクラスタに対する各アイテムの推薦スコア（以下、「第２の推薦スコア」という）を計算する。当該第２のモデル４２５ｂは、学習処理部４１で生成されたモデル４２２の埋め込み層のユーザベクトルをユーザクラスタベクトルに置換したものであってもよい。すなわち、第２のモデル４２５ｂは、ユーザＩＤに対応する埋め込み層に直接ユーザクラスタベクトルを入力できるように、モデル４２２を調整したものであってもよい。
【００６８】
具体的には、第２の計算部４３３ｂは、ユーザクラスタ及びアイテムの各組（すなわち、ユーザクラスタベクトル及びアイテムＩＤの各組）を第２のモデル４２５ｂに入力して、その出力として第２の推薦スコア（すなわち、ユーザクラスタがアイテムに興味を持つ正解例となる確率）を計算する。
【００６９】
第２のモデル４２５ｂを用いた計算量を削減するために、第２の推薦スコアの計算にアイテムＩＤが用いられるアイテムは、全アイテムから一以上の抽出パターンを用いて抽出されたものであってもよい。例えば、当該アイテムは、所定のフラグ（例えば、重要フラグよりも重要度が低いがフラグが付与されていないアイテムよりも重要度が高い半重要フラグ）が付与されたアイテムに基づいて抽出されてもよい。また、第２の計算部４３３ｂによる計算時間が所定の閾値を超えないように、抽出されるアイテムの数が制限されてもよい。
【００７０】
また、第２の計算部４３３ｂは、入力したユーザクラスタベクトルに対応するユーザクラスタ番号及びアイテムＩＤと、第２のモデル４２５ｂを用いて計算された第２の推薦スコアと、を関連付けて、記憶部４２に記憶させてもよい。具体的には、第２の計算部４３３ｂは、図８（ｂ）に示すように、ユーザクラスタ番号とアイテムＩＤと第２の推薦スコアとを関連付けるテーブル（以下、「第２の推薦スコアテーブル」）４２６ｂを、記憶部４２に記憶させてもよい。
【００７１】
第３の計算部４３３ｃは、第３のモデル４２５ｃを用いて、各ユーザに対する各アイテムクラスタの推薦スコア（以下、「第３の推薦スコア」という）を計算する。当該第３のモデル４２５ｃは、学習処理部４１で生成されたモデル４２２の埋め込み層のアイテムベクトルをアイテムクラスタベクトルに置換したものであってもよい。すなわち、第３のモデル４２５ｃは、アイテムＩＤに対応する埋め込み層に直接アイテムクラスタベクトルを入力できるように、モデル４２２を調整したものであってもよい。
【００７２】
具体的には、第３の計算部４３３ｃは、ユーザ及びアイテムクラスタの各組（すなわち、ユーザＩＤ及びアイテムクラスタベクトルの各組）を第３のモデル４２５ｃに入力して、その出力として第３の推薦スコア（すなわち、ユーザがアイテムクラスタに興味を持つ正解例となる確率）を計算する。
【００７３】
第３のモデル４２５ｃを用いた計算量を削減するために、第３の推薦スコアの計算にユーザＩＤが用いられるユーザは、全ユーザから一以上の抽出パターンを用いて抽出されたものであってもよい。例えば、当該ユーザは、所定のフラグ（例えば、重要フラグよりも重要度が低いがフラグが付与されていないユーザよりも重要度が高い半重要フラグ）が付与されたユーザに基づいて抽出されてもよい。また、第３の計算部４３３ｃによる計算時間が所定の閾値を超えないように、抽出されるユーザの数が制限されてもよい。
【００７４】
また、第３の計算部４３３ｃは、ユーザＩＤと、入力したアイテムクラスタベクトルに対応するアイテムクラスタ番号と、第３のモデル４２５ｃを用いて計算された第３の推薦スコアと、を関連付けて、記憶部４２に記憶させてもよい。具体的には、第３の計算部４３３ｃは、図８（ｃ）に示すように、ユーザＩＤとアイテムクラスタ番号と第３の推薦スコアとを関連付けるテーブル（以下、「第３の推薦スコアテーブル」）４２６ｃを、記憶部４２に記憶させてもよい。
【００７５】
第４の計算部４３３ｄは、第４のモデル４２５ｄを用いて、各ユーザクラスタに対する各アイテムクラスタの推薦スコア（以下、「第４の推薦スコア」という）を計算する。当該第４のモデル４２５ｄは、学習処理部４１で生成されたモデル４２２の埋め込み層のユーザベクトル及びアイテムベクトルをユーザクラスタベクトル及びアイテムクラスタベクトルに置換したものであってもよい。すなわち、第４のモデル４２５ｄは、ユーザＩＤ及びアイテムＩＤにそれぞれ対応する埋め込み層に直接ユーザクラスタベクトル及びアイテムクラスタベクトルを入力できるように、モデル４２２を調整したものであってもよい。
【００７６】
第４の計算部４３３ｄは、ユーザクラスタセット及びアイテムクラスタセットの異なる組に対応するＪ個の第４のモデルを用いて、第４の推薦スコアを計算してもよい。ここで、Ｊは、Ｎ個のユーザクラスタセット及びＭ個のアイテムクラスタセットのＸ（＝Ｎ×Ｍ）個の組の中から予め抽出された組の数であり、１≦Ｊ≦Ｘである。
【００７７】
例えば、Ｊ＝２の場合、１０００個のユーザクラスタを含むユーザクラスタセット＃１と１００００個のアイテムクラスタを含むアイテムクラスタセット＃２との組に対応する第４のモデル４２５ｄ1と、１００００個のユーザクラスタを含むユーザクラスタセット＃２と１０００個のアイテムクラスタを含むアイテムクラスタセット＃１との組に対応する第４のモデル４２５ｄ2とが、モデル４２２に基づいて生成されてもよい。計算時間が所定の閾値を超えないように、Ｊの値は制限されてもよい。
【００７８】
また、第４の計算部４３３ｄは、第４のモデルｄj（１≦ｊ≦Ｊ）に入力されたユーザクラスタベクトル及びアイテムクラスタベクトルに対応するユーザクラスタ番号及びアイテムクラスタ番号と、第４のモデル４２５ｄj（１≦ｊ≦Ｊ）を用いて計算された第４の推薦スコアと、を関連付けて、記憶部４２に記憶させてもよい。具体的には、第４の計算部４３３ｄは、図８（ｄ）に示すように、ユーザクラスタ番号とアイテムクラスタ番号と第４のモデル４２５ｄj（１≦ｊ≦Ｊ）で計算された第４の推薦スコアとを関連付けるテーブル（以下、「第４の推薦スコアテーブル」）４２６ｄj（１≦ｊ≦Ｊ）を、記憶部４２に記憶させてもよい。
【００７９】
≪出力処理部≫
図９は、第１の実施形態に係るバッチサーバの出力処理部の機能構成の一例を示す図である。図９に示すように、出力処理部４４は、導出部４４１と、選択部４４２と、を備える。なお、図９の記憶部４２では、出力処理部４４に関する記憶内容を示しており、記憶部４２の記憶内容は図９に示すものに限られない。
【００８０】
導出部４４１は、複数のモデル４２５を用いて計算された、各ユーザ又は各ユーザクラスタに対する各アイテム又は各アイテムクラスタの推薦スコアと、上記ユーザ／ユーザクラスタ関連付け情報及び／又はアイテム／アイテムクラスタ関連付け情報と、に基づいて、各ユーザに対する各アイテムあたり一以上の推薦スコアを導出する。
【００８１】
導出部４４１は、導出された各アイテムあたり一以上の推薦スコアと、当該一以上の推薦スコアの信頼度とをユーザ毎に関連付けてもよい。導出部４４１は、当該一以上のスコアと信頼度を関連付けた、ユーザ毎のテーブル（以下、「選択用テーブル」という）４２７を記憶部４２に記憶させてもよい。ここで、信頼度は、上記ユーザ距離及び上記アイテム距離に基づいて定められてもよい。
【００８２】
具体的には、導出部４４１は、各ユーザに対する各アイテムの第１の推薦スコアから、各ユーザに対する各アイテムの推薦スコアを導出する。導出部４４１は、導出された各アイテムの推薦スコアとユーザ距離とアイテム距離とをユーザ毎に関連付ける。
【００８３】
例えば、図１０（ａ）では、図８（ａ）の第１の推薦スコアテーブル４２６ａのユーザＩＤ「１」のユーザ（以下、「ユーザ＃１」という）の各アイテムの第１の推薦スコアから導出された、ユーザ＃１に対する各アイテムの推薦スコアが示される。図１０（ａ）に示すように、当該推薦スコアは、図８（ａ）に示すユーザ＃１に対する各アイテムの推薦スコアと同一である。また、第１の推薦スコアは、ユーザ＃１及び各クラスタに対するものであるので、ユーザ距離及びアイテム距離はともに「０」である。
【００８４】
また、導出部４４１は、各ユーザクラスタに対する各アイテムの第２の推薦スコアから、各ユーザクラスタに属する各ユーザに対する各アイテムの推薦スコアを導出する。導出部４４１は、導出された各アイテムの推薦スコアとユーザ距離とアイテム距離とをユーザ毎に関連付ける。
【００８５】
例えば、図１０（ｂ）では、図８（ｂ）の第２の推薦スコアテーブル４２６ｂのユーザクラスタ番号「１」のユーザクラスタ（以下、「ユーザクラスタ＃１」という）に対する各アイテムの第２の推薦スコアから導出された、ユーザクラスタ＃１に属するユーザ＃１の各アイテムの推薦スコアが示される。図１０（ｂ）に示すように、当該ユーザ＃１に対する各アイテムの推薦スコアは、図８（ｂ）に示すユーザクラスタ＃１に対する各アイテムの第２の推薦スコアと同一である。また、第２の推薦スコアは、ユーザアイテム＃１に対するものであるので、図１０（ｂ）のユーザ距離は、図７（ａ）のユーザクラスタテーブルに登録されたユーザ距離「０．４」となる。一方、第２の推薦スコアは、アイテムに対するものであるのでアイテム距離は「０」である。
【００８６】
また、導出部４４１は、各ユーザに対する各アイテムクラスタの第３の推薦スコアから、各ユーザに対する各アイテムクラスタに属する各アイテムの推薦スコアを導出する。導出部４４１は、導出された各アイテムの推薦スコアとユーザ距離とアイテム距離とをユーザ毎に関連付ける。
【００８７】
例えば、図１０（ｃ）では、図８（ｃ）の第３の推薦スコアテーブル４２６ｃのユーザ＃１に対する各アイテムクラスタの第３の推薦スコアから導出された、ユーザ＃１の各アイテムクラスタ内の各アイテムの推薦スコアが示される。図１０（ｃ）に示すように、当該ユーザ＃１に対するアイテムクラスタ番号「１」のアイテムクラスタ（以下、「アイテムクラスタ＃１」という）に属するアイテム＃１及び＃２の推薦スコア「０．９」は、図８（ｃ）に示すアイテムクラスタ＃１の推薦スコア「０．９」と同一である。また、第３の推薦スコアは、各アイテムクラスタに対するものであるので、図１０（ｃ）の各アイテム距離は、図７（ｂ）のアイテムクラスタテーブルに登録されたアイテム距離となる。一方、第３の推薦スコアは、ユーザに対するものであるのでユーザ距離は「０」である。
【００８８】
また、導出部４４１は、各ユーザクラスタに対する各アイテムクラスタの第４の推薦スコアから、各ユーザクラスタに属する各ユーザに対する各アイテムクラスタに属する各アイテムの推薦スコアを導出する。導出部４４１は、導出された各アイテムの推薦スコアとユーザ距離とアイテム距離とをユーザ毎に関連付ける。
【００８９】
例えば、図１０（ｄ）では、図８（ｄ）の第４の推薦スコアテーブル４２６ｄのユーザクラスタ＃１に対する各アイテムクラスタの第４の推薦スコアから導出された、ユーザクラスタ＃１内の各ユーザに対する各アイテムクラスタ内の各アイテムの推薦スコアが示される。図１０（ｄ）に示すように、当該ユーザクラスタ＃１に属するユーザ＃１に対する、アイテムクラスタ＃１に属するアイテム＃１及び＃２の推薦スコア「０．７」は、図８（ｄ）に示すアイテムクラスタ＃１の推薦スコア「０．７」と同一である。また、第４の推薦スコアは、ユーザクラスタ＃１及び各アイテムクラスタに対するものであるので、図１０（ｄ）の各ユーザ距離及び各アイテム距離は、図７（ａ）のユーザクラスタテーブルに登録されたユーザ距離及び図７（ｂ）のアイテムクラスタテーブルに登録されたアイテム距離となる。
【００９０】
なお、異なるユーザクラスタセット及びアイテムクラスタセットのＪ個の組が存在する場合、導出部は、当該Ｊ個の組のそれぞれについて、各ユーザクラスタに属する各ユーザに対する各アイテムクラスタに属する各アイテムの推薦スコアを導出してもよい。
【００９１】
以上のように生成された図１０（ａ）〜（ｄ）に示すレコードは、ユーザ＃１の選択用テーブル４２７1として記憶部４２に記憶される。なお、図８（ａ）の第１の推薦スコアは抽出されたユーザ及びアイテムの組について計算されるため、第１の推薦スコアがないユーザ及びアイテムの組のレコードは、推薦スコアをｎｕｌｌ又は０として選択用テーブル４２７に含められてもよい。当該レコードのユーザ距離及びアイテム距離は取り得る最大値に設定されてもよい。図８（ｂ）で第２の推薦スコアがないアイテムのレコード、図８（ｃ）で第３の推薦スコアがないユーザのレコードについても同様に、選択用テーブル４２７に含められてもよい。
【００９２】
選択部４４２は、導出部４４１で導出されたユーザに対する各アイテムあたり一以上の推薦スコアの信頼度に基づいて、当該一以上の推薦スコアの中から、ユーザに対する各アイテムあたり一つの推薦スコアを選択する。上記の通り、当該信頼度は、一以上の推薦スコアに関連付けられたユーザ距離及びアイテム距離に基づいて定められてもよい。例えば、ユーザ距離が大きいほどユーザクラスタベクトルを用いた場合に精度が低くなるとの考えに基づいてユーザ距離が大きいほど信頼度が低くなるように、信頼度が定められてもよい。同様に、アイテム距離が大きいほどアイテムクラスタベクトルを用いた場合に精度が低くなるとの考えに基づいてアイテム距離が大きいほど信頼度が低くなるように、信頼度が定められてもよい。
【００９３】
例えば、図１０（ａ）〜（ｄ）に示すレコードを含むユーザ＃１の選択用テーブル４２７1では、ユーザ＃１のアイテム＃１について、複数の推薦スコア「０．９」、「０．８」、「０．９」、「０．７」が存在する。そこで、当該複数の推薦スコア「０．９」、「０．８」、「０．９」、「０．７」の一つを、当該複数の推薦スコアに関連付けられるユーザ距離及びアイテム距離に基づいて選択する。
【００９４】
例えば、ユーザ＃１のアイテム＃１に関連付けられるユーザ距離及びアイテム距離の各組において大きい方の値は、図１０（ａ）〜（ｄ）において「０」、「０．４」、「０．０１」、「０．４」となる（図１０（ａ）〜（ｄ）の下線部参照）。選択部４４２は、「０」、「０．４」、「０．０１」、「０．４」のうち「０」が最も小さいので、図１０（ａ）のアイテム＃１の推薦スコア「０．９」の信頼度が最も高いとして、当該推薦スコア「０．９」を選択してもよい。
【００９５】
また、アイテム＃３は、第１のモデル４２５ａ及び第２のモデル４２５ｂに入力されるアイテムに含まれないので（上記抽出パターンで抽出されるアイテムに含まれないので）、図１０（ａ）（ｂ）に示すように、第１のモデル４２５ａ及び第２のモデル４２５ｂを用いては推薦スコアが計算されない。一方、第３のモデル４２５ｃ及び第４のモデル４２５ｄを用いてアイテムクラスタ＃２の推薦スコアが計算され、アイテム＃３は、当該アイテムクラスタ＃２に含まれる。このため、図１０（ｃ）（ｄ）には、アイテム＃３の推薦スコアとして第３のモデル４２５ｃ及び第４のモデル４２５ｄを用いて計算されるアイテムクラスタ＃２の推薦スコア「０．２」及び「０．３」が含まれる。選択部４４２は、図１０（ｃ）（ｄ）のアイテム＃３の推薦スコア「０．２」及び「０．３」の一つを、当該推薦スコアにそれぞれ関連付けられるユーザ距離及びアイテム距離に基づいて選択する。ここでは、アイテム＃３の推薦スコア「０．２」に関連付けられるユーザ距離「０」及びアイテム距離「０．０１」を比較すると、アイテム距離「０．０１」が大きい。また、アイテム＃３の推薦スコア「０．３」に関連付けられるユーザ距離「０．４」及びアイテム距離「０．０１」を比較すると、ユーザ距離「０．４」が大きい。選択部４４２は、推薦スコア「０．２」に関連付けられるアイテム距離「０．０１」及び推薦スコア「０．３」に関連付けられるユーザ距離「０．４」のうち、小さい方の「０．０１」に関連付けられるアイテム＃３の推薦スコア「０．２」の信頼が最も高いとして、当該推薦スコア「０．２」をアイテム＃３の推薦スコアとして選択する。
【００９６】
なお、信頼度の判断および選択方法は上記に限られず、ユーザ距離及びアイテム距離に基づくどのような方法であってもよい。例えば、ユーザ距離及びアイテム距離の平均値を信頼度とし、当該平均値が最小となる推薦スコアを選択するなどしてもよい。
【００９７】
選択部４４２は、ユーザ毎に選択された各アイテムあたり一つの推薦スコアを出力する。ユーザ毎に出力された各アイテムあたり一つの推薦スコアは、ＤＢサーバ２０のユーザ毎の推薦スコアテーブル２１１に記憶される。
【００９８】
≪推薦サーバ≫
図１１は、第１の実施形態に係る推薦サーバ、ユーザ端末及びＤＢサーバの機能構成の一例を示す図である。図１１に示すように、推薦サーバ３０は、検出部３１と、決定部３２と、推薦アイテム情報生成部３３と、を具備する。推薦アイテム情報生成部３３及び通信部１０ｃ及び／又は出力部１０ｅは、本発明の「推薦部」を構成する。
【００９９】
検出部３１は、ユーザ端末１０のユーザにアイテムを推薦する所定のトリガを検出する。当該所定のトリガは、例えば、ユーザ端末１０からの所定のサービスへのログイン要求又は所定のリクエストの受信であってもよい。
【０１００】
決定部３２は、ユーザ端末１０のユーザへのアイテムの推薦対象となる範囲を決定する。当該範囲は、例えば、ユーザ端末１０のユーザが訪問可能なエリアに存在するアイテム、在庫が所定数以上であるアイテム、特定のカテゴリのアイテム等の少なくとも一つであってもよい。具体的には、決定部３２は、ユーザ端末１０の位置を示す情報（以下、「位置情報」という）に基づいて、当該ユーザへのアイテムの推薦対象となる範囲（例えば、エリア）を決定してもよい。当該位置情報は、例えば、ユーザ端末１０においてＧＰＳ（Global Positioning System）から取得される情報であり、推薦サーバ３０は、後述する通信部１０ｃを介して、ユーザ端末１０から当該位置情報を取得してもよい。これにより、ユーザ端末１０の現在地から所定距離内のアイテム（例えば、店舗等）を推薦対象とすることができる。
【０１０１】
決定部３２は、ユーザ端末１０による所定のサービスの利用履歴（例えば、アイテムの検索、閲覧又は購買等の履歴）に基づいて、当該ユーザへのアイテムの推薦対象となる範囲（例えば、エリア、アイテムのカテゴリ等）を決定してもよい。例えば、決定部３２は、所定時間（例えば、１０分）内において検索又は閲覧されたアイテムの所在地を含むエリアを決定してもよい。これにより、ユーザ端末１０の現在地とは異なるエリアのアイテムをユーザに推薦できる。また、決定部３２は、購買の履歴のあるアイテムのカテゴリを決定することにより、ユーザ端末１０のユーザに購買履歴のあるカテゴリのアイテムを推薦することもできる。
【０１０２】
また、決定部３２は、ユーザ端末１０のユーザによって指定された範囲を示す情報（以下、「指定範囲情報」という）に基づいて、当該範囲を決定してもよい。例えば、決定部３２は、当該指定範囲情報が示すエリア、アイテムのカテゴリ等を決定してもよい。
【０１０３】
推薦アイテム情報生成部３３は、ユーザ端末１０のユーザに対する推薦アイテムを決定し、決定した推薦アイテムに関する推薦アイテム情報を生成する。具体的には、推薦アイテム情報生成部３３は、ＤＢサーバ２０の記憶部２１で保持されるユーザの推薦スコアテーブル２１１を参照し、当該ユーザに対する各アイテムの推薦スコアに基づいて、当該推薦アイテムを決定する。例えば、推薦アイテム情報生成部３３は、推薦スコアが高い順に所定数の推薦アイテムを決定してもよい。生成された推薦アイテム情報は、通信部１０ｃを介してユーザ端末１０に送信される。
【０１０４】
また、推薦アイテム情報生成部３３は、当該推薦スコアに加えて、決定部３２で決定されたエリアに基づいて、当該推薦アイテムを決定してもよい。この場合、推薦スコアテーブル２１１の各アイテムには、所定のエリアが関連付けられていてもよい。
【０１０５】
≪ユーザ端末≫
図１１に示すように、ユーザ端末１０は、入力受付部１１と、ログイン処理部１２と、表示制御部１３と、を具備する。
【０１０６】
入力受付部１１は、ユーザによる入力部１０ｄ（例えば、タッチパネル等）の所定の操作を受け付ける。具体的には、入力受付部１１は、ユーザによる入力部１０ｄ（例えば、タッチパネル等）の操作による所定のサービスへのログイン要求を受け付ける。
【０１０７】
ログイン処理部１２は、入力受付部１１による所定の操作の受け付けに応じて、所定のサービスへのログイン、ログイン後の当該所定のサービスに関する種々の処理を推薦サーバ３０との間で行う。具体的には、ログイン処理部１２は、所定のサービスへのログイン要求を後述する通信部１０ｃを介して推薦サーバ３０に送信する。また、ログイン処理部１２は、所定のタイミングで、ユーザ端末１０の位置情報を、通信部１０ｃを介して推薦サーバ３０に送信してもよい。
【０１０８】
ログイン処理部１２は、推薦サーバ３０から送信されたユーザ端末１０のユーザに対する推薦アイテム情報を、通信部１０ｃを介して取得（受信）する。
【０１０９】
表示制御部１３は、出力部１０ｅ（例えば、ディスプレイ等）に対する表示（出力ともいう）を制御する。具体的には、表示制御部１３は、ログイン処理部１２によって取得された推薦アイテム情報の出力部１０ｅに対する表示を制御する。例えば、表示制御部１３は、上記所定のサービスにログインしている場合に、当該所定のサービス用の画面において当該推薦アイテム情報を表示させてもよい。
【０１１０】
図１２は、第１の実施形態に係る推薦アイテム情報の表示画面の一例を示す図である。図１２では、図３に示すユーザ＃１用の推薦スコアテーブル２１１1に基づいて生成されたユーザ＃１に対する推薦アイテム情報が示される。なお、図１２では、アイテムが飲食店舗である一例を示すが、上記の通りアイテムは飲食店舗に限られない。また、図１２では、ユーザ端末１０で表示されるアイテムの数が３つであるが、表示されるアイテムの数はこれに限られない。
【０１１１】
例えば、図１２では、推薦サーバ３０によって、ユーザ＃１が訪問可能なエリア（こでは、ユーザ端末１０の位置情報が示す現在地）と推薦スコアテーブル２１１1の推薦スコアとに基づいて決定された飲食店舗（図１２では、店舗＃１、＃４及び＃５）に関する情報がユーザ端末１０の画面Ｄに表示される。具体的には、ユーザ＃１用の推薦スコアテーブル２１１1の推薦スコアが所定の条件を満たす飲食店舗の所在地が、ユーザ端末１０の位置情報から所定範囲内である場合に、ユーザ＃１が当該飲食店舗に訪問可能であるとして、当該飲食店舗に関する情報を画面Ｄに表示させてもよい。
【０１１２】
＜ハードウェア構成＞
次に、情報処理システム１内の各構成（例えば、ユーザ端末１０、ＤＢサーバ２０、推薦サーバ３０、バッチサーバ４０等）のハードウェア構成を説明する。なお、バッチサーバ４０内の学習処理部４１、推定処理部４３及び出力処理部４４の少なくとも一つが一つ又は複数のサーバとして構成される場合、一つ又は複数のサーバは、図１３に示すハードウェア構成を有する。また、学習処理部４１、推定処理部４３及び出力処理部４４の少なくとも一つが一台のサーバで構成されてもよい。なお、サーバは、コンピュータと呼ばれてもよい。
【０１１３】
図１３に示すように、情報処理システム１内の各構成は、演算装置に相当するＣＰＵ（Central Processing Unit）等のプロセッサ１０ａと、記憶装置１０ｂと、通信部１０ｃと、入力部１０ｄと、出力部１０ｅとを有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。
【０１１４】
プロセッサ１０ａは、記憶装置１０ｂに記憶されたプログラムの実行に関する制御やデータの演算、加工を行う制御部である。プロセッサ１０ａは、情報処理プログラムを実行する演算装置（演算部）であってもよい。プロセッサ１０ａは、入力部１０ｄ及び／又は通信部１０ｃから種々の入力データを受け取り、入力データの演算結果を出力部１０ｅに出力（例えば、表示）したり、記憶装置１０ｂに格納したり、又は、通信部１０ｃを介して送信したりする。
【０１１５】
記憶装置１０ｂは、メモリ、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、の少なくとも一つである。ＤＢサーバ２０の記憶装置１０ｂは、記憶部２１を構成してもよい。バッチサーバ４０の記憶装置１０ｂは、記憶部４２を構成してもよい。ユーザ端末１０、ＤＢサーバ２０、推薦サーバ３０、バッチサーバ４０のそれぞれは、プロセッサ１０ａが実行する情報処理プログラムを記憶してもよい。
【０１１６】
通信部１０ｃは、情報処理システム１内の各装置を外部機器に接続するインターフェースである。なお、ＤＢサーバ２０、推薦サーバ３０、バッチサーバ４０の少なくとも二つが一体の装置で構成される場合、通信部１０ｃは、当該少なくとも二つの間でのプロセス間通信を実施してもよい。
【０１１７】
入力部１０ｄは、ユーザからデータの入力を受け付けるものであり、例えば、キーボード、マウス、タッチパネル、マイクの少なくとも一つを含んでよい。
【０１１８】
出力部１０ｅは、プロセッサ１０ａによる演算結果を出力するものであり、例えば、ＬＣＤ（Liquid Crystal Display）等のディスプレイ及びスピーカの少なくとも一つにより構成されてよい。
【０１１９】
情報処理プログラムは、記憶装置１０ｂ等のコンピュータによって読み取り可能な記憶媒体に記憶されて提供されてもよいし、通信部１０ｃにより接続されるネットワークを介して提供されてもよい。当該判定プログラムを格納した記憶媒体は、コンピュータ読み取り可能な非一時的な記憶媒体（Non-transitory computer readable medium）であってもよい。非一時的な記憶媒体は特に限定されないが、例えば、ＵＳＢメモリ、ＣＤ−ＲＯＭ又はＤＶＤ等の記憶媒体であってもよい。
【０１２０】
バッチサーバ４０では、プロセッサ１０ａが情報処理プログラムを実行することにより、学習処理部４１、推定処理部４３、出力処理部４４の動作が実現される。また、推薦サーバ３０では、プロセッサ１０ａが情報処理プログラムを実行することにより、検出部３１、決定部３２、推薦アイテム情報生成部３３の動作が実現される。また、ユーザ端末１０では、プロセッサ１０ａが情報処理プログラムを実行することにより、入力受付部１１、ログイン処理部１２、表示制御部１３の動作が実現される。
【０１２１】
なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、ユーザ端末１０、ＤＢサーバ２０、推薦サーバ３０、バッチサーバ４０は、プロセッサ１０ａと記憶装置１０ｂが一体化したＬＳＩ（Large-Scale Integration）を備えていてもよい。
【０１２２】
（情報処理システムの動作）
＜バッチ動作＞
図１４は、第１の実施形態に係るバッチ動作の一例を示すフローチャートである。図１４に示すバッチ動作は、所定期間（例えば、２８日）毎に行われる。
【０１２３】
図１４に示すように、ステップＳ１０１において、バッチサーバ４０は、学習データ４２１を生成する（例えば、図５（ｃ）参照）。ステップＳ１０２において、学習処理部４１は、生成した学習データ４２１を用いた機械学習により、ユーザＩＤ及びアイテムＩＤを入力すると、ユーザに対するアイテムの推薦スコアを出力するモデル４２２を生成する。
【０１２４】
ステップＳ１０３において、バッチサーバ４０は、ユーザ及び／又はアイテムのクラスタリングを行う。具体的には、バッチサーバ４０は、ステップＳ１０２で生成されたモデル４２２の埋め込み層から抽出されたユーザベクトル及び／又はアイテムベクトルを用いて、上記ユーザ及び／又はアイテムのクラスタリングを行ってもよい。
【０１２５】
ステップＳ１０４において、バッチサーバ４０は、ステップＳ１０２で生成されたモデル４２２に基づく複数のモデル４２５を用いて、ユーザ又はユーザクラスタに対するアイテム又はアイテムクラスタの推薦スコアをそれぞれ計算する（例えば、図８（ａ）〜（ｄ）参照）。
【０１２６】
ステップＳ１０５において、バッチサーバ４０は、ステップＳ１０４で計算された推薦スコアと、上記ユーザ／ユーザクラスタ関連付け情報及び／又はアイテム／アイテムクラスタ関連付け情報と、に基づいて、各アイテムあたり一以上の推薦スコアをユーザ毎に導出する（図１０（ａ）〜（ｄ）参照）。
【０１２７】
ステップＳ１０６において、バッチサーバ４０は、ステップＳ１０５で導出された各アイテムあたり一以上の推薦スコアの信頼度に基づいて、当該一以上の推薦スコアの中から、各アイテムあたり一つの推薦スコアをユーザ毎に選択する。
【０１２８】
ステップＳ１０７において、バッチサーバ４０は、ステップＳ１０６で選択された各アイテムあたり一つの推薦スコアをユーザ毎にＤＢサーバ２０に対して出力する。ＤＢサーバ２０では、ユーザ毎の推薦スコアテーブル２１１（例えば、図２参照）が生成される。
【０１２９】
第１の実施形態に係るバッチ動作によれば、ステップＳ１０２で生成されたモデル４２２に基づく複数のモデル４２５を用いて、抽出されたユーザ又はユーザクラスタに対する、抽出されたアイテム又はアイテムクラスタの推薦スコアがそれぞれ計算されるので、モデル４２２を用いて全ユーザに対する全アイテムの推薦スコアを計算する場合と比較して計算量を削減できる。
【０１３０】
第１の実施形態に係る推薦動作によれば、抽出されたユーザ又はユーザクラスタに対する抽出されたアイテム又はアイテムクラスタの推薦スコアに基づいてユーザ毎に各アイテムあたり一以上の推薦スコアが導出され、当該一以上の推薦スコアの信頼度に基づいて選択されたユーザ毎に各アイテムあたり一つの推薦スコアが推薦スコアテーブル２１１で所定期間毎に更新される。したがって、計算量を削減しても、推薦精度の劣化を防止できる。
【０１３１】
＜推薦動作＞
図１５は、第１の実施形態に係る推薦動作の一例を示すフローチャートである。図１５に示す推薦動作は、任意のタイミングで行われる。
【０１３２】
図１５に示すように、ステップＳ２０１において、ユーザ端末１０は、ユーザによる所定の操作を受け付ける。
【０１３３】
ステップＳ２０２において、推薦サーバ３０が所定のトリガ（例えば、ユーザ端末１０からの所定の情報）を検出すると、ＤＢサーバ２０に記憶された当該ユーザ用の推薦スコアテーブル２１１の各アイテムの推薦スコアに基づいて、当該ユーザに対する推薦アイテムを決定する。推薦サーバ３０は、当該推薦スコアに加えて、当該ユーザの訪問可能なエリアに基づいて、上記推薦アイテムを決定してもよい。
【０１３４】
ステップＳ２０３において、推薦サーバ３０は、ステップＳ２０２において決定された推薦アイテムに関する推薦アイテム情報をユーザ端末１０に出力する。ステップＳ２０４において、ユーザ端末１０は、推薦サーバ３０からの推薦アイテム情報をユーザ端末１０の出力部１０ｅに表示させる。
【０１３５】
第１の実施形態に係る推薦動作によれば、所定期間毎のバッチ動作で更新される推薦スコアテーブル２１１の推薦スコアに基づいて推薦アイテムが決定されるので、ステップＳ２０１におけるユーザの操作から妥当な待ち時間（例えば、１〜２秒）で、当該ユーザに対する推薦アイテムをユーザ端末１０に表示させることができる。
【０１３６】
以上のように、第１の実施形態に係る情報処理システムでは、機械学習に基づいて生成される複数のモデルを用いてユーザに対する各アイテムの推薦スコアが算出されるので、ユーザに対するアイテムの推薦に関する計算量を削減しながら、推薦精度の劣化を防止できる。
【０１３７】
（変更例）
上記第１の実施形態では、複数のモデル（例えば、第１〜第４のモデル４２５ａ〜４２５ｄの少なくとも二つ、複数の第２のモデル４２５ｂ、複数の第３のモデル４２５ｃ、又は、複数の第４のモデル４２５ｄ）を用いることを想定したが、単一のモデル（例えば、第２〜第４のモデル４２５ｂ〜４２５ｄのいずれか）が用いられてもよい。以下では、単一のモデルとして、第２のモデル４２５ｂを用いる場合について説明するが、第３のモデル４２５ｃ又は第４のモデル４２５ｄを用いる場合にも下記の内容を適宜変更して適用することが可能である。なお、以下では、上記第１の実施形態との相違点を中心に説明し、同様の点の説明は繰り返さない。
【０１３８】
変更例において、図６の計算部４３３は、第２のモデル４２５ｂを用いて、ユーザクラスタに対する各アイテムの推薦スコアを計算する。また、計算部４３３は、入力したユーザクラスタベクトルに対応するユーザクラスタ番号及びアイテムＩＤと、第２のモデル４２５ｂを用いて計算された第２の推薦スコアと、を関連付けて、記憶部４２に記憶させてもよい。具体的には、計算部４３３は、図８（ｂ）に示す第２の推薦スコアテーブル４２６ｂを、記憶部４２に記憶させてもよい。
【０１３９】
図９の導出部４４１は、第２のモデル４２５ｂを用いて計算された各ユーザクラスタに対する各アイテムの推薦スコアと、上記ユーザ／ユーザクラスタ関連付け情報（例えば、図７（ａ）のユーザクラスタテーブル４２３）と、に基づいて、各ユーザに対する各アイテムの推薦スコアを導出する。変更例では、導出部４４１によって導出される推薦スコアが、各ユーザに対する各アイテムあたり一つの推薦スコアであるので、選択部４４２は設けられなくともよい。すなわち、変更例では、選択用テーブル４２７も生成されなくともよい。
【０１４０】
導出部４４１は、ユーザ毎に導出された各アイテムの推薦スコアを出力する。ユーザ毎に出力された各アイテムの推薦スコアは、ＤＢサーバ２０のユーザ毎の推薦スコアテーブル２１１に記憶される。
【０１４１】
図１６は、第１の実施形態の変更例に係るバッチ動作の一例を示すフローチャートである。図１６に示すバッチ動作は、所定期間（例えば、２８日）毎に行われる。図１６のステップＳ３０１及びＳ３０２は、図１４のステップＳ１０１及びＳ１０２と同様である。
【０１４２】
ステップＳ３０３において、バッチサーバ４０は、ユーザのクラスタリングを行う。具体的には、バッチサーバ４０は、ステップＳ３０２で生成されたモデル４２２の埋め込み層から抽出されたユーザベクトルを用いて、上記ユーザのクラスタリングを行ってもよい。
【０１４３】
ステップＳ３０４において、バッチサーバ４０は、ステップＳ３０２で生成されたモデル４２２に基づく第２のモデル４２５ｂを用いて、ユーザクラスタに対する各アイテムの推薦スコアを計算する（例えば、図８（ｂ）参照）。
【０１４４】
ステップＳ３０５において、バッチサーバ４０は、ステップＳ１０４で計算された推薦スコアと、上記ユーザ／ユーザクラスタ関連付け情報（例えば、図７（ａ）のユーザクラスタテーブル４２３）に基づいて、ユーザ毎に各アイテムの推薦スコアを導出する。
【０１４５】
ステップＳ３０６において、バッチサーバ４０は、ステップＳ３０５で導出された各アイテムの推薦スコアをユーザ毎にＤＢサーバ２０に対して出力する。ＤＢサーバ２０では、ユーザ毎の推薦スコアテーブル２１１（例えば、図２参照）が生成される。
【０１４６】
第１の実施形態に係るバッチ動作によれば、ステップＳ１０２で生成されたモデル４２２に基づく第２のモデル４２５ｂを用いて、ユーザクラスタに対する各アイテムの推薦スコアが計算されるので、モデル４２２を用いて全ユーザに対する全アイテムの推薦スコアを計算する場合と比較して計算量を削減できる。
【０１４７】
以上のように、第１の実施形態の変更例に係る情報処理システムでは、機械学習に基づいて生成される単一のモデル（例えば、第２〜第４のモデル４２５ｂ〜４２５ｄのいずれか）を用いてユーザに対する各アイテムの推薦スコアが算出されるので、ユーザに対するアイテムの推薦に関する計算量を削減できる。
【０１４８】
［第２の実施形態］
第１の実施形態では、バッチサーバ４０が、機械学習に基づいて生成されるモデル４２５を用いて一部のユーザ又は全ユーザクラスタに対する一部のアイテム又は全アイテムクラスタの推薦スコアを計算し、前記計算された推薦スコアと、ユーザ／ユーザクラスタ関連付け情報、及び／又は、アイテム／アイテムクラスタ関連付け情報と、に基づいて、全ユーザに対する各アイテムの推薦スコアを所定期間毎に導出する。また、ＤＢサーバ２０は、バッチサーバ４０で導出された全ユーザに対する全アイテムの推薦スコアを示す推薦スコアテーブル２１１（例えば、図２の推薦スコアテーブル２１１1〜２１１K）を予め記憶しておく。このように、第１の実施形態では、機械学習に基づくモデルを用いた推薦スコアの計算対象を一部のユーザ又は一部のアイテム又はユーザクラスタ又はアイテムクラスタに限定することにより、ユーザ＃ｋに対するアイテムの推薦に関する計算量を削減しながら、ユーザ端末１０のユーザ＃ｋに対するアイテムの推薦のための時間（すなわち、ユーザ端末１０に対する応答時間）を短縮できる。
【０１４９】
一方、第１の実施形態のように、ＤＢサーバ２０が全ユーザについて全アイテムの推薦スコアを示す推薦スコアテーブル２１１1〜２１１Kを予め記憶するとＤＢサーバ２０で必要とされる記憶容量が増大する恐れがある。このため、第２の実施形態では、バッチサーバ４０は、一部のユーザ又は全ユーザクラスタに対する一部のアイテム又は全アイテムクラスタの推薦スコアを所定期間毎に導出し、ＤＢサーバ２０は、当該導出された推薦スコアを示す推薦スコアテーブル４２６（第１〜第４の推薦スコアテーブル４２６ａ〜４２６ｄの少なくとも一つ）を予め記憶する。推薦サーバ３０は、ユーザ端末１０のユーザ＃ｋの操作に基づく所定のトリガ（例えば、所定のＷｅｂページへのアクセス）を検出すると、推薦スコアテーブル４２６（第１〜第４の推薦スコアテーブル４２６ａ〜４２６ｄの少なくとも一つ）を参照し、推薦スコアテーブル４２６の推薦スコアと、ユーザ／ユーザクラスタ関連付け情報、及び／又は、アイテム／アイテムクラスタ関連付け情報と、に基づいて、ユーザ＃ｋに対する各アイテムの推薦スコアを示す推薦スコアテーブル２１１kを生成し、当該推薦スコアテーブル２１１k内の推薦スコアに基づいて、当該ユーザ＃ｋに対する推薦アイテムを決定する。
【０１５０】
このように、第２の実施形態では、一部のユーザ又は全ユーザクラスタに対する一部のアイテム又は全アイテムクラスタの推薦スコアを示す推薦スコアテーブル４２６（第１〜第４の推薦スコアテーブル４２６ａ〜４２６ｄの少なくとも一つ）を予め記憶しておくことにより、第１の実施形態のように推薦スコアテーブル２１１1〜２１１Kを記憶する場合と比較してＤＢサーバ２０の記憶容量を削減できる。さらに、当該推薦スコアテーブル４２６を予め記憶しておくことにより、ユーザ端末１０のユーザ＃ｋからのリクエスト時にモデル４２２又は４２５を用いて推薦スコアを導出する場合と比較して、ユーザ＃ｋに対するアイテムの推薦のための時間（すなわち、ユーザ端末１０に対する応答時間）を短縮できる。すなわち、第２の実施形態では、ＤＢサーバ２０における記憶容量と、ユーザ端末１０に対する応答時間とのバランスを図ることができる。
【０１５１】
（情報処理システムの構成）
次に、第２の実施形態に係る情報処理システムの構成について、第１の実施形態に係る情報処理システムとの相違点を中心に説明する。
【０１５２】
＜概略構成＞
第２の実施形態において、図１のＤＢサーバ２０は、所定のサービスに登録するユーザ毎の当該所定のサービスで提供される各アイテムの推薦スコア（例えば、図２の推薦スコアテーブル２１１1〜２１１K）の代わりに、一部のユーザ又は全ユーザクラスタに対する一部のアイテム又は全アイテムクラスタの推薦スコア（例えば、図８（ａ）〜（ｄ）の第１〜第４の推薦スコアテーブル４２６ａ〜４２６ｄの少なくとも一つ）を記憶してもよい。
【０１５３】
また、図１の推薦サーバ３０は、ユーザ端末１０のユーザ＃ｋの操作に基づく所定のトリガ（例えば、所定のＷｅｂページへのアクセス、ユーザ＃ｋからのリクエスト等）を検出すると、ＤＢサーバ２０に記憶された一部のユーザ又は全ユーザクラスタに対する一部のアイテム又は全アイテムクラスタの推薦スコア（例えば、図８（ａ）〜（ｄ）の第１〜第４の推薦スコアテーブル４２６ａ〜４２６ｄの少なくとも一つが示す推薦スコア）に基づいて、ユーザ＃ｋに対する各アイテムの推薦スコア（例えば、図２の推薦スコアテーブル２１１k）を導出し、当該ユーザに対する推薦アイテムを決定する。
【０１５４】
また、図１のバッチサーバ４０は、所定期間毎に、一部のユーザ又は全ユーザクラスタに対する一部のアイテム又は全アイテムクラスタの推薦スコアを計算する。具体的には、バッチサーバ４０は、所定期間毎に、ＤＢサーバ２０で記憶される図８（ａ）〜（ｄ）の第１〜第４の推薦スコアテーブル４２６ａ〜４２６ｄの少なくとも一つを生成又は更新する。
【０１５５】
＜機能構成＞
第２の実施形態において、図９のバッチサーバ４０の出力処理部４４は、推薦サーバ３０に設けられてもよい。具体的には、推薦サーバ３０が、出力処理部４４内の導出部４４１及び選択部４４２を備えてもよい。
【０１５６】
推薦サーバ３０内の導出部４４１は、検出部３１で検出されたユーザ＃ｋについて各アイテムあたり一以上の推薦スコアを導出してもよい。具体的には、当該導出部４４１は、ＤＢサーバ２０の記憶部２１に記憶された一部のユーザ又は全ユーザクラスタに対する一部のアイテム又は全アイテムクラスタの推薦スコア（例えば、第１〜第４の推薦スコアテーブル４２６ａ〜４２６ｄの少なくとも一つ）と、ユーザ／ユーザクラスタ関連付け情報、及び／又は、アイテム／アイテムクラスタ関連付け情報と、に基づいて、当該ユーザ＃ｋについての各アイテムあたり一以上の推薦スコアを導出してもよい。すなわち、当該導出部４４１は、ユーザ＃ｋについての選択用テーブル４２７k（例えば、図１０（ａ）〜（ｄ））を生成してもよい。
【０１５７】
推薦サーバ３０内の選択部４４２は、当該ユーザ＃ｋについての各アイテムあたり一以上の推薦スコアの推薦度に基づいて、当該ユーザ＃ｋについての各アイテムあたり一つの推薦スコアを選択してもよい。すなわち、選択部４４２は、ユーザ＃ｋについての推薦スコアテーブル２１１kを出力してもよい。推薦アイテム情報生成部３３は、選択部４４２の出力に基づいて、推薦アイテム情報を生成してもよい。この場合、ユーザ＃ｋからのリクエストに応じてユーザ＃ｋの推薦スコアテーブル２１１kが生成されるので、ＤＢサーバ２０は、第１の実施形態のように、全ユーザの推薦スコアテーブル２１１（例えば、図２の推薦スコアテーブル２１１1〜２１１Kの全て）を予め記憶しなくともよい。
【０１５８】
また、推薦サーバ３０内の選択部４４２は、決定部３２によって決定されたユーザ＃ｋに対するアイテムの推薦対象となる範囲に基づいて、ユーザ＃ｋについての推薦スコアテーブル２１１kを出力してもよい。具体的には、選択部４４２は、当該範囲内の各アイテム（例えば、ユーザ＃ｋが訪問可能なエリアに存在するアイテム、在庫が所定数以上であるアイテム、又は、特定のカテゴリのアイテム等）について、各アイテムあたり一つの推薦スコアを選択してもよい。これにより、ユーザ＃ｋの推薦スコアテーブル２１１kに含めるアイテムの範囲を制限でき、ユーザ＃ｋに対するアイテムの推薦を適切に行うことができる。
【０１５９】
なお、推薦サーバ３０内の導出部４４１が、決定部３２によって決定された上記範囲に基づいて、ユーザ＃ｋについての選択用テーブル４２７kを生成してもよい。具体的には、導出部４４１は、該範囲内の各アイテムについて、各アイテムあたり一以上の推薦スコア（例えば、図１０（ａ）〜（ｄ）のユーザ＃ｋ用の選択用テーブル４２７k）を上記の通り導出してもよい。これにより、選択部４４２により選択対象となるアイテムの範囲を制限できる。
【０１６０】
（情報処理システムの動作）
次に、第２の実施形態に係る情報処理システムの動作について、第１の実施形態に係る情報処理システムとの相違点を中心に説明する。
【０１６１】
第２の実施形態では、第１の実施形態に係るバッチ動作の一部のステップが、ユーザ端末１０の所定の操作（例えば、リクエスト）を受け付けた場合に実施される推薦動作で実施されてもよい。例えば、図１４のステップＳ１０５〜Ｓ１０７は、図１４のバッチ動作においてバッチサーバ４０で実施される代わりに、ユーザ＃ｋによるユーザ端末１０の所定の操作（例えば、リクエスト）を受け付けた場合に、図１５の推薦動作において推薦サーバ３０において行われてもよい。すなわち、図１４のステップＳ１０５〜Ｓ１０７は、図１５のステップＳ２０１の後、ステップＳ２０２の前に、ステップＳ２０１−１〜ステップＳ２０１−３として、推薦サーバ３０で行われてもよい。
【０１６２】
第２の実施形態に係る推薦動作では、推薦サーバ３０の導出部４４１は、ステップＳ２０１においてユーザ＃ｋのユーザ端末１０の所定の操作が受け付けられた場合、当該ユーザ＃ｋについて各アイテムあたり一以上の推薦スコア（例えば、図１０（ａ）〜（ｄ）の選択用テーブル４２７k）を導出する（ステップＳ２０１−１）。推薦サーバ３０の選択部４４２は、ユーザ＃ｋについて導出された各アイテムあたり一以上の推薦スコアの信頼度に基づいて、各アイテムあたり一つの推薦スコアを選択する（ステップＳ２０２−２）。推薦サーバ３０の出力処理部４４は、選択された各アイテムの推薦スコアを示すユーザ＃ｋ用の推薦スコアテーブル２１１kを推薦アイテム情報生成部３３に出力する（ステップＳ２０２−３）。
【０１６３】
なお、ユーザ＃ｋについて各アイテムあたり一以上の推薦スコア（例えば、図１０（ａ）〜（ｄ）のユーザ＃ｋ用の選択用テーブル４２７k）、及び／又は、ユーザ＃ｋについて各アイテムあたり一つの推薦スコア（例えば、図２のユーザ＃ｋ用の推薦スコアテーブル２１１k）は、決定部３２によって決定されたユーザ＃ｋに対するアイテムの推薦対象となる範囲内のアイテムについて生成されてもよい。
【０１６４】
以上のように、第２の実施形態に係る情報処理システムでは、一部のユーザ又は全ユーザクラスタに対する一部のアイテム又は全アイテムクラスタの推薦スコア（例えば、図８の第１〜第４の推薦スコアテーブル４２６ａ〜ｄの少なくとも一つ）がバッチサーバ４０において事前に計算され、ＤＢサーバ２０で記憶されるので、ユーザ＃ｋに対するアイテムの推薦に関する計算量を削減でき、かつ、ユーザ＃ｋに対するアイテムの推薦のための時間（すなわち、ユーザ端末１０に対する応答時間）を短縮できる。また、第１の実施形態のように推薦スコアテーブル２１１1〜２１１Kを記憶する場合と比較してＤＢサーバ２０の記憶容量を削減できる。このように、第２の実施形態では、ＤＢサーバ２０における記憶容量と、ユーザ端末１０に対する応答時間とのバランスを図ることができる。
【０１６５】
なお、第２の実施形態では、第１の実施形態の変更例と同様に、複数のモデルの代わりに単一のモデル（例えば、第２〜第４のモデル４２５ｂ〜４２５ｄのいずれか）を用いる変更例を適用することもできる。具体的には、図１６のステップＳ３０５〜Ｓ３０６は、図１６のバッチ動作で行わずに、ユーザ＃ｋによるユーザ端末１０の所定の操作（例えば、リクエスト）を受け付けた場合に行われてもよい。すなわち、図１６のステップＳ３０５〜Ｓ３０６は、図１５のステップＳ２０１の後、ステップＳ２０２の前に、ステップＳ２０１−１’〜ステップＳ２０１−２’として、推薦サーバ３０で行われてもよい。
【０１６６】
この場合、推薦サーバ３０の導出部４４１は、ステップＳ２０１においてユーザ＃ｋのユーザ端末１０の所定の操作が受け付けられた場合、当該ユーザ＃ｋについて各アイテムの推薦スコア（例えば、図２のユーザ＃ｋの推薦スコアテーブル２１１k）を導出する（ステップＳ２０１−１’）。推薦サーバ３０の出力処理部４４は、選択された各アイテムの推薦スコアを示すユーザ＃ｋ用の推薦スコアテーブル２１１kを推薦アイテム情報生成部３３に出力する（ステップＳ２０２−２’）。なお、当該ユーザ＃ｋ用の推薦スコアテーブル２１１k）は、決定部３２によって決定されたユーザ＃ｋに対するアイテムの推薦対象となる範囲内のアイテムについて生成されてもよい。
【０１６７】
［その他の実施形態］
上記実施形態では、ユーザのクラスタリングに、モデル４２２の埋め込み層から抽出されたユーザベクトルが使用されたがこれに限られない。ユーザのクラスタリングは、埋め込み層から抽出されたユーザベクトルに限られず、ユーザ情報の特徴量を示すどのようなベクトルが使用されてもよいし、又は、ユーザ情報そのものが使用されてもよい。アイテムのクラスタリングについても同様である。
【０１６８】
また、上記実施形態では、アイテムは、所定のサービスへのログインしたユーザに推薦されるものとしたが、これに限られない。当該アイテムは、所定のＷｅｂページにアクセスしたユーザに対して、例えばCookieで同一ユーザであることを処理することによって、アイテムを推薦してもよい。
【０１６９】
また、上記実施形態では、第２の計算部４３３ｂで用いられる第２のモデル４２５ｂは、単一のユーザクラスタセットが用いられるものとしたが、クラスタ数が異なる複数のユーザクラスタセットと一以上の抽出パターンで抽出されたアイテムに対応する複数の第２のモデル４２５ｂが用いられてもよい。第２の計算部４３３ｂは、当該複数の第２のモデル４２５ｂを用いて、第２の推薦スコアを計算してもよい。
【０１７０】
また、上記実施形態では、第３の計算部４３３ｃで用いられる第３のモデル４２５ｃは、単一のユーザクラスタセットが用いられるものとしたが、クラスタ数が異なる複数のユーザクラスタセットと一以上の抽出パターンで抽出されたアイテムに対応する複数の第３のモデル４２５ｃが用いられてもよい。第３の計算部４３３ｃは、当該複数の第３のモデル４２５ｃを用いて、第３の推薦スコアを計算してもよい。
【０１７１】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【符号の説明】
【０１７２】
１…情報処理システム、１０…ユーザ端末、２０…ＤＢサーバ、３０…推薦サーバ、４０…バッチサーバ、１１…入力受付部、１２…ログイン処理部、１３…表示制御部、２１…記憶部、３１…検出部、３２…決定部、３３…推薦アイテム情報生成部、４１…学習処理部、４２…記憶部、４３…推定処理部、４４…出力処理部、４１１…閲覧データ取得部、４１２…データ取得部、４１３…学習データ生成部、４１４…学習部、４２１…学習データ、４３１…抽出部、４３２…クラスタリング部、４３３…計算部、４３３ａ…第１の計算部、４３３ｂ…第２の計算部、４３３ｃ…第３の計算部、４３３ｄ…第４の計算部、４４１…導出部、４４２…選択部、１０ａ…プロセッサ、１０ｂ…記憶装置、１０ｃ…通信部、１０ｄ…入力部、１０ｅ…出力部
【要約】
【課題】ユーザに対するアイテムの推薦に関する計算量を削減する。
【解決手段】情報処理システムは、ユーザに対する推薦アイテムに関する情報を出力する。情報処理システムは、機械学習に基づいて生成されるモデルを用いて、前記ユーザ又は前記ユーザが分類されるユーザクラスタに対する各アイテム又は各アイテムが分類されるアイテムクラスタの推薦スコアを計算する計算部と、前記計算された推薦スコアと、前記ユーザ及び前記ユーザクラスタを関連付ける情報及び／又は前記各アイテム及び前記アイテムクラスタを関連付ける情報と、に基づいて、前記ユーザに対する各アイテムの推薦スコアを導出する導出部と、前記各アイテムの推薦スコアに基づいて、前記推薦アイテムに関する情報を決定し、前記ユーザの端末に対して出力する推薦部と、を備える。
【選択図】図１【図１】
0006925495.tif 000002
【図２】
0006925495.tif 000003
【図３】
0006925495.tif 000004
【図４】
0006925495.tif 000005
【図５】
0006925495.tif 000006
【図６】
0006925495.tif 000007
【図７】
0006925495.tif 000008
【図８】
0006925495.tif 000009
【図９】
0006925495.tif 000010
【図１０】
0006925495.tif 000011
【図１１】
0006925495.tif 000012
【図１２】
0006925495.tif 000013
【図１３】
0006925495.tif 000014
【図１４】
0006925495.tif 000015
【図１５】
0006925495.tif 000016
【図１６】
0006925495.tif 000017