(57)【要約】【課題】  ユーザのＷｅｂ閲覧履歴を利用せずに、当該ユーザにとって有用なアプリをレコメンド可能とする。【解決手段】  一実施形態に係るレコメンドシステムは、複数のユーザの各アプリケーションの利用頻度を記憶する利用頻度記憶部と、前記ユーザの前記利用頻度の傾向である利用傾向をクラスタに分類する分類部と、対象ユーザの前記利用傾向が属する前記クラスタにおける前記各アプリケーションの有用度と、レコメンド条件と、に基づいて、前記対象ユーザにアプリケーションをレコメンドするレコメンド部と、前記利用頻度記憶部に記憶された前記利用頻度に基づいて、前記分類部による分類方法及び前記レコメンド条件の少なくとも一方を更新する学習部と、を備える。【選択図】  図３
2018190154.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザの各アプリケーションの利用頻度を記憶する利用頻度記憶部と、
前記ユーザの前記利用頻度の傾向である利用傾向をクラスタに分類する分類部と、
対象ユーザの前記利用傾向が属する前記クラスタにおける前記各アプリケーションの有用度と、レコメンド条件と、に基づいて、前記対象ユーザにアプリケーションをレコメンドするレコメンド部と、
前記利用頻度記憶部に記憶された前記利用頻度に基づいて、前記分類部による分類方法及び前記レコメンド条件の少なくとも一方を更新する学習部と、
を備えるレコメンドシステム。
【請求項２】
前記分類部は、前記利用頻度の値又は割合に基づいて、前記クラスタ間の距離を算出する
請求項１に記載のレコメンドシステム。
【請求項３】
前記学習部は、レコメンドの成功確率が高まるように、前記分類方法及び前記レコメンド条件の少なくとも一方を更新する
請求項１又は請求項２に記載のレコメンドシステム。
【請求項４】
前記レコメンドの成功は、レコメンドした前記アプリケーションが前記対象ユーザによりインストールされた後、前記対象ユーザによる当該アプリケーションの前記利用頻度が所定の条件を満たすことを含む
請求項３に記載のレコメンドシステム。
【請求項５】
前記レコメンド部は、前記有用度が前記レコメンド条件を満たすアプリケーションを、前記対象ユーザにレコメンドする
請求項１から請求項４までのいずれか１項に記載のレコメンドシステム。
【請求項６】
前記アプリケーションの前記有用度は、当該アプリケーションの前記利用頻度が高いほど高く算出される
請求項１から請求項５までのいずれか１項に記載のレコメンドシステム。
【請求項７】
前記アプリケーションの前記有用度は、当該アプリケーションが前記ユーザによりインストールされた場合、高く算出される
請求項１から請求項６までのいずれか１項に記載のレコメンドシステム。
【請求項８】
前記アプリケーションの前記有用度は、当該アプリケーションが前記ユーザによりアンインストールされた場合、低く算出される
請求項１から請求項７までのいずれか１項に記載のレコメンドシステム。
【請求項９】
前記アプリケーションの前記有用度は、当該アプリケーションのインストールにより、前記ユーザの前記利用傾向が属する前記クラスタが変化した場合、高く算出される
請求項１から請求項８までのいずれか１項に記載のレコメンドシステム。
【請求項１０】
複数のユーザの各アプリケーションの利用頻度を記憶する利用頻度記憶部と、
前記ユーザの前記利用頻度の傾向である利用傾向をクラスタに分類する分類部と、
対象ユーザの前記利用傾向が属する前記クラスタにおける前記各アプリケーションの有用度と、レコメンド条件と、に基づいて、前記対象ユーザにアプリケーションをレコメンドするレコメンド部と、
前記利用頻度記憶部に記憶された前記利用頻度に基づいて、前記分類部による分類方法及び前記レコメンド条件の少なくとも一方を更新する学習部と、
を備えるレコメンド装置。
【請求項１１】
複数のユーザの各アプリケーションの利用頻度を記憶する利用頻度記憶工程と、
前記ユーザの前記利用頻度の傾向である利用傾向をクラスタに分類する分類工程と、
対象ユーザの前記利用傾向が属する前記クラスタにおける前記各アプリケーションの有用度と、レコメンド条件と、に基づいて、前記対象ユーザにアプリケーションをレコメンドするレコメンド工程と、
前記利用頻度記憶工程で記憶された前記利用頻度に基づいて、前記分類工程における分類方法及び前記レコメンド条件の少なくとも一方を更新する学習工程と、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レコメンドシステム、装置、及びプログラムに関する。
【背景技術】
【０００２】
近年、スマートデバイスに各種のアプリケーション（以下「アプリ」という。）を提供するオンラインマーケットが利用されている。スマートデバイスのユーザは、当該マーケットから所望のアプリを有料又は無料でダウンロードし、スマートデバイス上で利用できる。従来、スマートデバイスのユーザに対して、ユーザにとって有用なアプリをレコメンドするシステムが知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来のシステムは、ユーザのＷｅｂ閲覧履歴に基づいて、レコメンドするアプリを選択するものであったため、Ｗｅｂ閲覧履歴が取得できない場合、ユーザにとって有用なアプリを選択することが困難であった。
【０００４】
本発明は、上記の課題に鑑みてなされたものであり、ユーザのＷｅｂ閲覧履歴を利用せずに、当該ユーザにとって有用なアプリをレコメンド可能とすることを目的とする。
【課題を解決するための手段】
【０００５】
一実施形態に係るレコメンドシステムは、複数のユーザの各アプリケーションの利用頻度を記憶する利用頻度記憶部と、前記ユーザの前記利用頻度の傾向である利用傾向をクラスタに分類する分類部と、対象ユーザの前記利用傾向が属する前記クラスタにおける前記各アプリケーションの有用度と、レコメンド条件と、に基づいて、前記対象ユーザにアプリケーションをレコメンドするレコメンド部と、前記利用頻度記憶部に記憶された前記利用頻度に基づいて、前記分類部による分類方法及び前記レコメンド条件の少なくとも一方を更新する学習部と、を備える。
【発明の効果】
【０００６】
本発明の各実施形態によれば、ユーザのＷｅｂ閲覧履歴を利用せずに、当該ユーザにとって有用なアプリをレコメンドできる。
【図面の簡単な説明】
【０００７】
【図１】レコメンドシステムの構成の一例を示す図。
【図２】ユーザ端末のハードウェア構成の一例を示す図。
【図３】第１実施形態に係るレコメンドシステムの機能構成の一例を示す図。
【図４】操作ログの一例を示す図。
【図５】利用頻度の一例を示す図。
【図６】利用傾向の一例を示す図。
【図７】有用度の一例を示す図。
【図８】アプリのインストール前後における利用傾向の一例を示す図。
【図９】利用頻度及びクラスタの更新処理の一例を示すシーケンス図。
【図１０】アプリのレコメンド処理の一例を示すシーケンス図。
【図１１】アプリのインストール処理の一例を示すシーケンス図。
【図１２】有用度の更新処理の一例を示すシーケンス図。
【図１３】分類方法及びレコメンド条件の学習処理の一例を示すシーケンス図。
【図１４】第２実施形態に係るレコメンドシステムの機能構成の一例を示す図。
【発明を実施するための形態】
【０００８】
以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重畳した説明を省略する。
【０００９】
＜第１実施形態＞
第１実施形態に係るレコメンドシステム１０００について、図１〜図１３を参照して説明する。まず、レコメンドシステム１０００の構成について説明する。図１は、レコメンドシステム１０００の構成の一例を示す図である。図１のレコメンドシステム１０００は、ユーザ端末１Ａ〜１Ｂと、レコメンドサーバ２と、アプリマーケット３と、ネットワーク４と、を含む。
【００１０】
ユーザ端末１Ａ〜１Ｃは、ユーザが各種のアプリを利用するためのコンピュータである。ユーザ端末１Ａ〜１Ｃは、例えば、ＰＣ（Personal Computer）、スマートフォン、タブレット端末、スマートウォッチ、テレビであるが、これに限られない。以下、ユーザ端末１Ａ〜１Ｃを区別しない場合、単にユーザ端末１と称する。図１の例では、レコメンドシステム１０００には、３つのユーザ端末１が含まれるが、レコメンドシステム１０００に含まれるユーザ端末１の数は任意である。
【００１１】
レコメンドサーバ２は、レコメンド装置の一例であり、ユーザ端末のユーザに、当該ユーザにとって有用なアプリをレコメンドするサーバコンピュータである。レコメンドサーバ２は、レコメンドシステム１０００に含まれる各ユーザ端末１から取得した情報に基づいて、各ユーザ端末１のユーザに、それぞれアプリをレコメンドする。なお、本実施形態において、レコメンド装置は、例えば、ＰＣ、スマートフォン、タブレット端末などであってもよい。また、レコメンド装置は、複数のサーバコンピュータにより構成されてもよい。
【００１２】
アプリマーケット３は、ユーザに有料又は無料でアプリを提供するオンラインマーケットであり、１つ又は複数のサーバコンピュータにより構成される。ユーザは、アプリマーケット３から所望のアプリをユーザ端末にダウンロードできる。
【００１３】
ネットワーク４は、ＬＡＮ（Local Area Network）やインターネットなどを含み、ユーザ端末１、レコメンドサーバ２、及びアプリマーケットを相互に接続する。
【００１４】
次に、本実施形態に係るユーザ端末１のハードウェア構成について説明する。図２は、ユーザ端末１のハードウェア構成の一例を示す図である。図２のユーザ端末１は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory）１０３と、ＨＤＤ（Hard Disk Drive）１０４と、を備える。また、ユーザ端末１は、入力装置１０５と、表示装置１０６と、通信インタフェース１０７と、システムバス１０８と、を備える。
【００１５】
ＣＰＵ１０１は、プログラムを実行することにより、ユーザ端末１の各構成を制御し、ユーザ端末１の機能を実現する。
【００１６】
ＲＯＭ１０２は、ＣＰＵ１０１が実行するプログラム（ＢＩＯＳ（Basic Input Output System）など）や各種のデータを記憶する。
【００１７】
ＲＡＭ１０３は、ＣＰＵ１０１に作業領域を提供する。
【００１８】
ＨＤＤ１０４は、ＣＰＵ１０１が実行するプログラム（ＯＳ（Operating System）など）や各種のデータを記憶する。
【００１９】
入力装置１０５は、ユーザの操作に応じた情報をユーザ端末１に入力する。入力装置１０５は、例えば、タッチパネル、キーボード、マウス、ハードウェアボタンであるが、これに限られない。
【００２０】
表示装置１０６は、ユーザの操作に応じた画面を表示する。表示装置１０６は、例えば、液晶ディスプレイ、有機ＥＬ（Electro Luminescence）ディスプレイであるが、これに限られない。
【００２１】
通信インタフェース１０７は、ユーザ端末１をネットワーク４に接続するためのインタフェースである。ユーザ端末１は、通信インタフェース７を介して、ネットワーク４に接続されたアプリマーケット３やレコメンドサーバ４と通信する。
【００２２】
システムバス１０８は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４、入力装置１０５、表示装置１０６、及び通信インタフェース１０７を相互に接続する。
【００２３】
なお、レコメンドサーバ２は、ユーザ端末１と同様に、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ２０４と、入力装置２０５と、表示装置２０６と、通信インタフェース２０７と、を備え、これらがシステムバス２０８を介して相互に接続される。各ハードウェアについては、ユーザ端末１と同様であるため、説明を省略する。
【００２４】
次に、本実施形態に係るレコメンドシステム１０００の機能構成について説明する。図３は、レコメンドシステム１０００の機能構成の一例を示す図である。
【００２５】
まず、ユーザ端末１の機能構成について説明する。図３のユーザ端末１は、端末制御部１１と、アプリ記憶部１２と、操作ログ記憶部１３と、アップロード部１４と、を備える。これらの各機能構成は、ＣＰＵ１０１がプログラムを実行し、ユーザ端末１の各ハードウェアと協働することにより実現される。
【００２６】
端末制御部１１は、ユーザ端末１の全体の動作を制御する。具体的には、端末制御部１１は、アプリマーケット３からのアプリのダウンロード、アプリのインストール及びアンインストール、操作ログの更新、及びユーザへのアプリのレコメンドなどを行う。端末制御部１１の動作について、詳しくは後述する。
【００２７】
アプリ記憶部１２は、端末制御部１１にインストールされたアプリ及びアプリ情報を記憶する。アプリ情報には、アプリ名やアプリＩＤなどの情報が含まれる。アプリＩＤは、アプリの識別情報である。
【００２８】
操作ログ記憶部１３は、ユーザによるユーザ端末１の操作ログを記憶する。操作ログは、操作の実行日時と、操作内容と、が対応づけられたデータである。操作内容には、アプリのダウンロード、インストール、アンインストール、起動、終了などが含まれる。
【００２９】
図４は、操作ログ記憶部１３に記憶された操作ログの一例を示す図である。図４の各レコードが、各操作に対応する操作ログに相当する。図４の例では、２月１日の１５：００にアプリＡのダウンロードが実行され、２月１日の１５：０１にアプリＡのインストールが実行されている。
【００３０】
なお、ユーザ端末１が複数のユーザにより利用される場合には、各操作に対応する操作ログに、当該操作を実行したユーザのユーザＩＤが含まれてもよい。ユーザＩＤは、ユーザの識別情報である。また、各操作ログにユーザＩＤが含まれる代わりに、操作ログを記憶される操作内容に、ユーザのログインが含まれてもよい。この場合、ユーザのログインに対応する操作ログには、実行日時（ログイン日時）と、ログインしたユーザのユーザＩＤと、が含まれる。以下、ユーザＩＤがＸであるユーザを、ユーザＸと称する。
【００３１】
アップロード部１４は、定期的に又は所定のタイミング（操作ログが更新されたタイミングやユーザ端末１に電源が投入されたタイミングなど）で、操作ログ記憶部１３に記憶された操作ログをレコメンドサーバ２にアップロードする。
【００３２】
次に、レコメンドサーバ２の機能構成について説明する。図３のレコメンドサーバ２は、レコメンド制御部２１と、利用頻度記憶部２２と、分類部２３と、レコメンド部２４と、学習部２５と、を備える。これらの各機能構成は、ＣＰＵ２０１がプログラムを実行し、レコメンドサーバ２の各ハードウェアと協働することにより実現される。
【００３３】
レコメンド制御部２１は、レコメンドサーバ２の全体の動作を制御する。具体的には、レコメンド制御部２１は、ユーザ端末１からアップロードされた操作ログの受け付け、利用頻度の更新、及び各機能構成への動作要求などを行う。レコメンド制御部２１の動作について、詳しくは後述する。
【００３４】
利用頻度記憶部２２は、所定期間ごとの各ユーザの各アプリの利用頻度を記憶する。利用頻度は、利用回数（起動回数）であってもよいし、利用期間（起動されていた期間）であってもよい。また、所定期間は、１日、１週間、１ヶ月など、任意に設定可能である。以下、各アプリの利用頻度の傾向を、利用傾向と称する。
【００３５】
また、利用頻度記憶部２２は、所定期間ごとの各ユーザの利用傾向が属するクラスタを記憶する。後述する通り、所定期間ごとの各ユーザの利用傾向は、分類部２３により、複数のクラスタに分類される。利用頻度記憶部２２は、分類部２３により分類されたクラスタを、所定期間ごとの各ユーザの利用傾向と対応付けて記憶する。
【００３６】
図５は、利用頻度記憶部２２に記憶された利用頻度の一例を示す図である。図５の例では、ユーザＵ００１，Ｕ００２による１週間ごとのアプリＡ〜Ｄの利用回数が、クラスタと対応付けて記憶されている。例えば、ユーザＵ００１による２／１から２／７までのアプリＡの利用回数は５０回、アプリＢの利用回数は１００回、アプリＣの利用回数は０回であり、ユーザＵ００１のアプリの利用傾向はクラスタ１に属している。図５において、アプリの利用回数の値「−」は、アプリがインストールされていないことを示している。インストールされていないにもかかわらず利用回数が記憶されるアプリは、後述する通り、レコメンドされたもののインストールされていないアプリに相当する。
【００３７】
利用頻度記憶部２２に記憶される利用頻度は、例えば、各ユーザ端末１からアップロードされた操作ログに基づいて、レコメンド制御部２１が更新する。具体的には、レコメンド制御部２１は、ユーザ端末１からアップロードされた操作ログに基づいて、所定期間ごとの各アプリの利用頻度を集計し、当該利用頻度をユーザ端末１のユーザの各アプリの利用頻度に追加する。例えば、レコメンド制御部２１は、利用頻度記憶部２２に図５の利用頻度が記憶され、ユーザ端末１から図４の操作ログをアップロードされた場合、ユーザ端末１のユーザの２月１日から２月６日までの期間のアプリＡ，Ｂの利用回数を１ずつ追加すればよい。
【００３８】
また、ユーザ端末１のアップロード部１４は、操作ログ記憶部１３に記憶された操作ログに基づいて、所定期間ごとの各アプリの利用頻度を集計し、集計した利用頻度をレコメンドサーバ２にアップロードしてもよい。この場合、レコメンドサーバ２は、アップロードされた利用頻度を、利用頻度記憶部２２に記憶された利用頻度にそのまま追加すればよい。
【００３９】
分類部２３は、定期的に又は所定のタイミング（利用頻度が更新されたタイミングなど）で、利用頻度記憶部２２に記憶された利用頻度に基づいて、所定期間ごとの各ユーザの利用傾向を複数のクラスタに分類する。クラスタは、類似する利用傾向の集合である。分類部２３により分類されたクラスタは、そのクラスタに属する利用傾向（各アプリの利用頻度の組）と対応付けて、利用頻度記憶部２２に記憶される。
【００４０】
分類部２３は、利用傾向を分類するための分類方法を記憶する。分類部２３は、利用傾向の分類方法として、最短距離法、ウォード法、ｋ平均法などの任意のクラスタリング方法を利用できる。この場合、分類部２３は、クラスタ間の距離（非類似度）を、利用頻度の値に基づいて算出してもよいし、利用頻度の割合に基づいて算出してもよい。
【００４１】
図６は、利用傾向の一例を示す図である。図６の例では、ユーザＵ００１〜Ｕ００３の利用傾向（アプリＡ〜Ｄの利用頻度の組）が示されている。図６の例では、ユーザＵ００１とユーザのＵ００２とは利用頻度の値が類似しており、ユーザＵ００２とユーザのＵ００３とは利用頻度の割合が類似している。
【００４２】
図６の例では、分類部２３が利用頻度の値に基づいてクラスタ間の距離を算出する場合、ユーザＵ００１，Ｕ００２の利用傾向は同一のクラスタに分類され、ユーザＵ００３の利用傾向は異なるクラスタに分類される。一方、分類部２３が利用頻度の割合に基づいてクラスタ間の距離を算出する場合、ユーザＵ００２，Ｕ００３の利用傾向は同一のクラスタに分類され、ユーザＵ００１の利用傾向は異なるクラスタに分類される。
【００４３】
また、分類部２３は、利用傾向の分類方法として、所定の分類条件に従った方法を利用できる。例えば、分類部２３は、利用頻度が最大のアプリごとに利用傾向を分類してもよいし、利用頻度又はその割合が閾値以上のアプリの組ごとに利用傾向を分類してもよい。前者の分類条件の場合、図６の例では、ユーザＵ００２，Ｕ００３の利用傾向は同一のクラスタに分類され、ユーザＵ００１の利用傾向は異なるクラスタに分類される。
【００４４】
レコメンド部２４は、定期的に又は所定のタイミング（利用頻度やクラスタが更新されたタイミングなど）で、ユーザにとって有用なアプリを選択し、選択したアプリをユーザにレコメンドする。具体的には、レコメンド部２４は、ユーザにとって有用なアプリとして選択したアプリのアプリ情報を、当該ユーザのユーザ端末１に送信する。
【００４５】
レコメンド部２４は、利用傾向のクラスタごとの各アプリの有用度を記憶する。あるクラスタのあるアプリの有用度は、利用傾向が当該クラスタに属するユーザにとっての当該アプリの有用さの程度を示す指標である。あるクラスタのあるアプリの有用度は、利用傾向が当該クラスタに属するユーザによる当該アプリの利用頻度が高いほど高くなる。後述する通り、有用度は、学習部２５により算出される。有用度の算出方法については後述する。
【００４６】
図７は、レコメンド部２４に記憶された有用度の一例を示す図である。図７の例では、クラスタ１〜３のアプリＡ〜Ｄの有用度がそれぞれ示されている。例えば、クラスタ１におけるアプリＡの有用度は９、アプリＢの有用度は７、アプリＣの有用度は３、アプリＤの有用度は１である。これは、利用傾向がクラスタ１に属するユーザにとって、アプリＡの有用度が最も高いことを意味している。
【００４７】
また、レコメンド部２４は、レコメンド条件を記憶する。レコメンド条件は、ユーザにレコメンドするアプリ（有用なアプリ）の選択条件に相当する。レコメンド条件として、有用度が最大であることや、有用度が閾値以上であることが挙げられる。
【００４８】
レコメンド部２４は、その利用傾向があるクラスタに属するユーザに対して、当該クラスタにおける、有用度がレコメンド条件を満たすアプリを、有用なアプリとしてレコメンドする。例えば、レコメンド条件が、有用度が７以上であることである場合、図７の例では、レコメンド部２４は、利用傾向がクラスタ１に属するユーザにはアプリＡ，Ｂを有用なアプリとしてレコメンドする。
【００４９】
なお、レコメンド部２４は、有用度がレコメンド条件を満たすアプリであっても、当該アプリがユーザ端末１にインストール済みである場合には、当該アプリをレコメンドしないのが好ましい。これにより、ユーザに対する余計なレコメンドを抑制できる。レコメンド部２４は、利用頻度記憶部２２に記憶されたユーザ端末１のユーザの利用頻度を参照することにより、アプリがユーザ端末１にインストール済みであるか判断できる。具体的には、そのアプリの利用頻度を記憶するためのフィールドが設けられ、かつ、利用頻度の値が入力されたアプリ（値が「−」でないアプリ）が、インストール済みのアプリに相当する。
【００５０】
学習部２５は、定期的に又は所定のタイミング（利用頻度やクラスタが更新されたタイミングなど）で、利用頻度記憶部２２に記憶された利用頻度に基づいて、利用傾向の分類方法及びアプリのレコメンド条件を、レコメンドの成功確率が高まるように更新する。すなわち、学習部２５が、レコメンドの成功確率が高い分類方法及びレコメンド条件を学習する。
【００５１】
分類方法を更新するとは、クラスタリング方法のパラメータ（ｋ平均法におけるｋなど）や分類条件のパラメータ（利用頻度の閾値など）を更新することをいう。レコメンド条件を更新するとは、レコメンド条件のパラメータ（有用度の閾値など）を更新することをいう。レコメンドの成功確率とは、レコメンド部２４によるアプリのレコメンドが成功する確率のことである。レコメンドの成功とは、レコメンド部２４がレコメンドしたアプリがユーザ端末１にインストールされ、かつ、レコメンドしたアプリが当該ユーザ端末１のユーザにより頻繁に利用される（利用頻度が所定の条件を満たす）ことをいう。所定の条件として、例えば、利用頻度が所定値以上となることや、利用頻度の上昇率が所定値以上となることなどが考えられる。
【００５２】
本実施形態において、レコメンド部２４はユーザにアプリをレコメンドし、ユーザはレコメンドに応じてユーザ端末１にアプリをインストールする。また、アップロード部１４はインストールされたアプリの操作ログをレコメンドサーバ２に送信し、利用頻度記憶部２２はユーザ端末１から受信した操作ログに基づいて集計されたアプリの利用頻度を記憶する。さらに、学習部２５は利用頻度記憶部２２に記憶されたアプリの利用頻度に基づいて、分類部２３が利用する分類方法及びレコメンド部２５が利用するレコメンド条件を学習する。このように、学習部２５は、アプリのレコメンド結果（レコメンドが成功したか否か）をフィードバックされ、当該レコメンド結果に基づいて、分類方法及びレコメンド条件を学習する。したがって、学習部２５は、レコメンドの成功確率が高まるように分類方法及びレコメンド条件を学習できる。
【００５３】
学習部２５は、サポートベクターマシン（ＳＶＭ）、クラスタリング、ニューラルネットワーク、決定木などの、任意の学習方法を利用して、レコメンドの成功確率が高い分類方法及びレコメンド条件を学習できる。なお、学習部２５は、分類方法及びレコメンド条件を学習するための機械学習エンジンを備えるのが好ましい。
【００５４】
また、学習部２５は、定期的に又は所定のタイミング（利用頻度やクラスタが更新されたタイミングなど）で、利用頻度記憶部２２に記憶された利用頻度に基づいて、クラスタごとの各アプリの有用度を更新する。ここで、有用度の算出方法について、クラスタＸにおけるアプリＹの有用度を例に説明する。
【００５５】
学習部２５は、利用傾向がクラスタＸに属するユーザによるアプリＹの利用頻度が高いほど、クラスタＸにおけるアプリＹの有用度が高くなるように、有用度を算出する。これは、ユーザによる利用頻度が高いアプリは、当該ユーザにとって有用なアプリであると考えられるためである。
【００５６】
また、学習部２５は、利用傾向がクラスタＸに属するユーザにアプリＹがレコメンドされた後、当該ユーザのユーザ端末１にアプリＹがインストールされた場合、クラスタＸにおけるアプリＹの有用度が高くなるように、有用度を算出してもよい。これは、ユーザによりインストールされたアプリは、当該ユーザにより有用なアプリと判断された、と考えられるためである。
【００５７】
また、学習部２５は、利用傾向がクラスタＸに属するユーザによりアプリＹがアンインストールされた場合、クラスタＸにおけるアプリＹの有用度が低くなるように、有用度を算出してもよい。これは、ユーザによりアンインストールされたアプリは、当該ユーザにより不要なアプリと判断された、と考えられるためである。
【００５８】
また、学習部２５は、利用傾向がクラスタＸに属するユーザによりアプリＹがインストールされた後、当該ユーザの利用傾向が属するクラスタがクラスタＺに変化した場合、クラスタＸにおけるアプリＹの有用度が高くなるように、有用度を算出してもよい。クラスタＺは、アプリＹの利用頻度が高いユーザの利用傾向が属する、クラスタＸとは異なるクラスタである。これは、そのインストールによりユーザの利用傾向がクラスタＸからクラスタＺに変化するアプリは、当該ユーザにとって極めて有用なアプリであると考えられるためである。
【００５９】
ここで、クラスタの変化について具体的に説明する。図８は、アプリのインストール前後における利用傾向の一例を示す図である。図８の左側は、アプリＹのインストール前のユーザの利用傾向を示している。図８の例では、アプリＹのインストール前において、ユーザ端末１にはアプリＡ〜Ｄがインストールされており、ユーザの利用傾向はクラスタＸに属している。
【００６０】
図８の右側は、アプリＹのインストール後のユーザの利用傾向を示している。インストールされたアプリＹが有用でない場合、図８の右上に示すように、アプリＹのインストール後の利用傾向は、ほとんど変化しないため、ユーザの利用傾向が属するクラスタは変化しない。一方、インストールされたアプリＹが有用である場合、図８の右下に示すように、ユーザの利用傾向は大きく変化するため、ユーザの利用傾向が属するクラスタは、クラスタＺに変化する。
【００６１】
学習部２５は、アプリＹのインストール前後のクラスタを比較することにより、上記のように、クラスタＸからクラスタＺへの変化に基づいて、クラスタＸにおけるアプリＹの有用度を算出できる。
【００６２】
なお、アプリＹが有用でない場合にクラスタＸが他のクラスタＷに変化することも考えられる。しかしながら、クラスタＷは、アプリＹの利用頻度が低いユーザの利用傾向が属する、クラスタＺとは異なるクラスタと考えられるため、学習部２５は、クラスタＸがクラスタＷに変化した場合には、クラスタＸにおけるアプリＹの有用度が高くなるように、有用度を算出しないのが好ましい。
【００６３】
また、アプリＹが有用である場合にクラスタＸが変化しないことも考えられる。この場合には、上述の通り、アプリＹのインストール後の利用頻度に基づいて、クラスタＸにおけるアプリＹの有用度が高くなるように、有用度が算出されるため、学習部２５は、アプリＹの有用度を適切に算出できる。
【００６４】
次に、本実施形態に係るレコメンドシステム１０００の処理について説明する。図９は、利用頻度及びクラスタの更新処理の一例を示すシーケンス図である。
【００６５】
ユーザ端末１のアップロード部１４は、更新タイミングが到来すると、操作ログ記憶部１３に、当該タイミングに送信する操作ログを要求する（ステップＳ１０１）。具体的には、アップロード部１４は、前回の更新タイミング以降に操作ログ記憶部１３に記憶された操作ログ（実行日時が前回の送信タイミング以降の操作ログ）を、操作ログ記憶部１３に要求する。
【００６６】
操作ログ記憶部１３は、操作ログを要求されると、要求された操作ログをアップロード部１４に渡す（ステップＳ１０２）。
【００６７】
アップロード部１４は、操作ログを受け取ると、受け取った操作ログをレコメンドサーバ２にアップロードする（ステップＳ１０３）。
【００６８】
アップロード部１４が操作ログをアップロードすると、レコメンド制御部２１は、アップロードされた操作ログを受け付け、当該操作ログに基づいて、所定期間ごとの各ユーザの各アプリの利用頻度を集計する（ステップＳ１０４）。
【００６９】
レコメンド制御部２１は、利用頻度を集計すると、集計した利用頻度を、利用頻度記憶部２２に保存する（ステップＳ１０５）。これにより、利用頻度記憶部２２に記憶された利用頻度が更新される。
【００７０】
また、レコメンド制御部２１は、分類部２３に利用傾向の分類を要求する（ステップＳ１０６）。なお、図９の例では、分類部２３が、レコメンド制御部２１からの要求に応じて利用傾向を分類する場合を想定しているが、分類部２３は、レコメンド制御部２１とは独立したタイミングで利用傾向を分類してもよい。
【００７１】
分類部２３は、利用傾向の分類を要求されると、利用頻度記憶部２２に各ユーザの各アプリの利用頻度を要求する（ステップＳ１０７）。この際、分類部２３は、更新タイミングを含む期間の利用頻度（ステップＳ１０７において更新された利用頻度）だけを要求してもよい。これにより、レコメンドサーバ２の負荷を低減できる。
【００７２】
また、分類部２３は、更新タイミングを含む期間を含む、複数の期間の利用頻度を要求してもよい。これにより、更新タイミングを含む期間を含む複数の期間の利用傾向を、同一の分類方法で分類できる。この結果、前回の更新タイミングから今回の更新タイミングまでの間に、学習部２５により分類方法が更新された場合であっても、学習部２５は、クラスタの変化に基づいて、より適切に各アプリの有用度を算出できる。言い換えると、更新タイミングを含む期間を含む複数の期間の利用傾向が異なる分類方法で分類されている場合、学習部２５は、クラスタの変化に基づいて、適切に各アプリの有用度を算出できないおそれがある。これは、クラスタの変化が、アプリのインストールに伴う変化なのか、分類方法の更新に伴う変化なのか、わからないためである。
【００７３】
利用頻度記憶部２２は、利用頻度を要求されると、要求された利用頻度を分類部２３に渡す（ステップＳ１０８）。
【００７４】
分類部２３は、利用頻度を受け取ると、受け取った利用頻度に基づいて、所定期間ごとの各ユーザの利用傾向を分類する（ステップＳ１０９）。利用傾向の分類方法は、上述の通りである。
【００７５】
分類部２３は、利用傾向を分類すると、分類により得られたクラスタを、利用頻度記憶部２２に保存する（ステップＳ１１０）。これにより、利用頻度記憶部２２に記憶されたクラスタが更新される。
【００７６】
以上の処理により、レコメンドサーバ２は、最新の操作ログに基づいて、利用頻度及びクラスタを更新できる。これにより、図５のような利用頻度及びクラスタが、利用頻度記憶部２２に記憶される。
【００７７】
図１０は、アプリのレコメンド処理の一例を示すシーケンス図である。以下、アプリのレコメンド対象となるユーザを、対象ユーザと称する。対象ユーザは、１人であってもよいし、複数であってもよい。
【００７８】
レコメンドサーバ２のレコメンド制御部２は、レコメンドタイミングが到来すると、レコメンド部２４に、対象ユーザへのアプリのレコメンドを要求する（ステップＳ２０１）。図１０の例では、レコメンド部２４が、レコメンド制御部２１からの要求に応じてアプリをレコメンドする場合を想定しているが、レコメンド部２４は、レコメンド制御部２１とは独立したタイミングでアプリをレコメンドしてもよい。
【００７９】
レコメンド部２４は、アプリのレコメンドを要求されると、利用頻度記憶部２２にレコメンドタイミングを含む期間における、対象ユーザの利用頻度が属するクラスタを要求する（ステップＳ２０２）。
【００８０】
利用頻度記憶部２２は、クラスタを要求されると、要求されたクラスタをレコメンド部２４に渡す（ステップＳ２０３）。
【００８１】
レコメンド部２４は、クラスタを受け取ると、受け取ったクラスタ（対象ユーザのクラスタ）の有用度及びレコメンド条件を参照し、有用度がレコメンド条件を満たすアプリを、有用なアプリとして選択する（ステップＳ２０４）。
【００８２】
レコメンド部２４は、アプリを選択すると、選択したアプリのアプリ情報を対象ユーザのユーザ端末１に送信する（ステップＳ２０６）。アプリ情報には、アプリの説明やアプリマーケット３における当該アプリのＵＲＬなどが含まれてもよい。
【００８３】
レコメンド部２４がアプリ情報を送信すると、対象ユーザのユーザ端末１の端末制御部１１は、当該アプリ情報を受け付け、操作ログ記憶部１３に操作ログを保存する（ステップＳ２０６）。ここで保存される操作ログの操作内容は、アプリのレコメンドである。
【００８４】
また、端末制御部１１は、受け付けたアプリ情報に基づいて、レコメンド部２４が選択した有用なアプリを、対象ユーザにレコメンドする（ステップＳ２０７）。端末制御部１１によるアプリのレコメンド方法は任意である。端末制御部１１は、例えば、ユーザ端末１の表示装置１０６にポップアップやダイアログを表示させることにより、アプリをレコメンドしてもよいし、プッシュ通知やメール送信によりアプリをレコメンドしてもよい。
【００８５】
一方、レコメンド部２４は、ユーザ端末１にアプリ情報を送信した後、利用頻度記憶部１３における、対象ユーザの利用頻度に、選択したアプリのフィールドを追加する（ステップＳ２０８）。この際、アプリの利用頻度は、上述の通り、「−」に設定される（図５のアプリＤ参照）。なお、選択したアプリのフィールドが既に存在する場合、レコメンド部２４は、フィールドを追加しなくてよい。
【００８６】
以上の処理により、レコメンドサーバ２は、対象ユーザにとって有用なアプリをレコメンドできる。また、図５のような利用頻度及びクラスタが、利用頻度記憶部２２に記憶される。
【００８７】
図１１は、アプリのインストール処理の一例を示すシーケンス図である。以下、ユーザ端末１にインストールされるアプリを対象アプリと称する。
【００８８】
ユーザ端末１のユーザが、入力装置１０５を操作して、ユーザ端末１に対象アプリのダウンロードを指示すると、端末制御部１１は、対象アプリのダウンロードをアプリマーケット３に要求する（ステップＳ３０１）。
【００８９】
アプリマーケット３は、対象アプリのダウンロードを要求されると、要求された対象アプリ及び対象アプリのアプリ情報をユーザ端末１に送信する（ステップＳ３０２）。
【００９０】
端末制御部１１は、アプリマーケット３からダウンロードした対象アプリ及びアプリ情報を受け付けると、受け付けた対象アプリ及びアプリ情報をアプリ記憶部１２に保存する（ステップＳ３０３）。
【００９１】
また、端末制御部１１は、操作ログ記憶部１３に操作ログを保存する（ステップＳ３０４）。ここで保存される操作ログの操作内容は、対象アプリのダウンロードである。
【００９２】
その後、ユーザ端末１のユーザが入力装置１０５を操作して、ユーザ端末１に対象アプリのインストールを指示すると、端末制御部１１は、アプリ記憶部１２に対象アプリのインストーラを要求する（ステップＳ３０５）。
【００９３】
アプリ記憶部１２は、対象アプリのインストーラを要求されると、要求されたインストーラを端末制御部１１に渡す（ステップＳ３０６）。
【００９４】
端末制御部１１は、対象アプリのインストーラを受け取ると、受け取ったインストーラを実行し、対象アプリをユーザ端末１にインストールする（ステップＳ３０７）。
【００９５】
端末制御部１１は、対象アプリのインストールが完了すると、インストールにより生成された対象アプリの設定情報をアプリ記憶部１２に保存する（ステップＳ３０８）。
【００９６】
また、端末制御部１１は、操作ログ記憶部１３に操作ログを保存する（ステップＳ３０９）。ここで保存される操作ログの操作内容は、対象アプリのインストールである。
【００９７】
以降、ユーザは、所望のタイミングで対象アプリを利用できる。ユーザが対象アプリを利用するたびに、利用内容に応じた操作ログが操作ログ記憶部１３に記憶される。
【００９８】
以上の処理により、ユーザは、ユーザ端末１に対象アプリをインストールできる。また、図４のような操作ログが操作ログ記憶部１３に記憶される。
【００９９】
図１２は、有用度の更新処理の一例を示すシーケンス図である。
【０１００】
レコメンドサーバ２のレコメンド制御部２１は、有用度の更新タイミングが到来すると、学習部２５に、有用度の更新を要求する（ステップＳ４０１）。図１２の例では、学習部２５が、レコメンド制御部２１からの要求に応じて有用度を更新する場合を想定しているが、学習部２５は、レコメンド制御部２１とは独立したタイミングで有用度を更新してもよい。
【０１０１】
学習部２５は、有用度の更新を要求されると、利用頻度記憶部２２に利用頻度及びクラスタを要求する（ステップＳ４０２）。学習部２５は、有用度の算出方法に応じた利用頻度及びクラスタを要求すればよい。学習部２５は、例えば、更新タイミングを含む期間の利用頻度及びクラスタを要求する。これにより、学習部２５は、利用頻度に基づいて、有用度を算出できる。また、学習部２５は、更新タイミングを含む期間を含む複数の期間の利用頻度及びクラスタを要求してもよい。これにより、学習部２５は、利用頻度、アプリのインストール、アプリのアンインストール、及びクラスタの変化に基づいて、有用度を算出できる。
【０１０２】
利用頻度記憶部２２は、利用頻度及びクラスタを要求されると、要求された利用頻度及びクラスタを学習部２５に渡す（ステップＳ４０３）。
【０１０３】
学習部２５は、利用頻度及びクラスタを受け取ると、受け取った利用頻度及びクラスタに基づいて、クラスタごとの各アプリの有用度を算出する（ステップＳ４０４）。有用度の算出方法は、上述の通りである。
【０１０４】
学習部２５は、有用度を算出すると、算出した有用度をレコメンド部２４に渡す（ステップＳ４０５）。レコメンド部２４は、有用度を受け取ると、受け取った有用度を記憶し、元の有用度を削除する。これにより、レコメンド部２４が記憶する有用度が更新される。以降、レコメンド部２４は、更新された有用度を利用して、有用なアプリを選択する。
【０１０５】
以上の処理により、有用度を更新できる。有用度を随時更新することにより、レコメンド部２４は、最新の利用頻度に応じた有用なアプリをユーザにレコメンドできる。
【０１０６】
図１３は、分類方法及びレコメンド条件の学習処理の一例を示すシーケンス図である。
【０１０７】
レコメンドサーバ２のレコメンド制御部２１は、分類方法及びレコメンド条件の学習タイミングが到来すると、学習部２５に、分類方法及びレコメンド条件の学習を要求する（ステップＳ５０１）。図１３の例では、学習部２５が、レコメンド制御部２１からの要求に応じて分類方法及びレコメンド条件を学習する場合を想定しているが、学習部２５は、レコメンド制御部２１とは独立したタイミングで分類方法及びレコメンド条件を学習してもよい。
【０１０８】
学習部２５は、分類方法及びレコメンド条件の学習を要求されると、利用頻度記憶部２２に利用頻度及びクラスタを要求する（ステップＳ５０２）。学習部２５は、分類方法及びレコメンド条件の学習方法に応じた利用頻度及びクラスタを要求すればよい。
【０１０９】
利用頻度記憶部２２は、利用頻度及びクラスタを要求されると、要求された利用頻度及びクラスタを学習部２５に渡す（ステップＳ５０３）。
【０１１０】
学習部２５は、利用頻度及びクラスタを受け取ると、受け取った利用頻度及びクラスタに基づいて、レコメンドの成功確率が高い分類方法及びレコメンド条件をそれぞれ学習する（ステップＳ５０４）。分類方法及びレコメンド条件の学習方法は、上述の通りである。
【０１１１】
学習部２５は、分類方法を学習すると、学習した分類方法（パラメータ）を分類部２３に渡す（ステップＳ５０５）。分類部２３は、分類方法を受け取ると、受け取った分類方法を記憶し、元の分類方法を削除する。これにより、分類部２３が記憶する分類方法が更新される。以降、分類部２３は、更新された分類方法を利用して、利用傾向を分類する。
【０１１２】
また、学習部２５は、レコメンド条件を学習すると、学習したレコメンド条件（パラメータ）をレコメンド部２４に渡す（ステップＳ５０６）。レコメンド部２４は、レコメンド条件を受け取ると、受け取ったレコメンド条件を記憶し、元のレコメンド条件を削除する。これにより、レコメンド部２４が記憶するレコメンド条件が更新される。以降、レコメンド部２４は、更新されたレコメンド条件を利用して、有用なアプリをレコメンドする。
【０１１３】
以上の処理により、分類方法及びレコメンド条件を更新できる。分類方法を随時更新することにより、分類部２３は、最新の利用頻度に応じた分類方法により、ユーザの利用傾向を分類できる。また、レコメンド条件を随時更新することにより、レコメンド部２４は、最新の利用頻度に応じたレコメンド条件により、有用なアプリをレコメンドできる。
【０１１４】
以上説明した通り、本実施形態に係るレコメンドシステム１０００は、対象ユーザを含む複数のユーザのアプリの利用傾向に基づいて、対象ユーザに有用なアプリをレコメンドする。アプリの利用傾向は、ユーザ端末１から受信した操作ログを集計することにより取得できる。したがって、レコメンドシステム１０００は、対象ユーザのＷｅｂ閲覧履歴を利用することなく、対象ユーザに有用なアプリをレコメンドできる。
【０１１５】
なお、本実施形態において、レコメンドシステム１０００は、対象ユーザのアプリの利用傾向と、対象ユーザのＷｅｂ閲覧履歴と、を併用して、対象ユーザに有用なアプリをレコメンドすることも可能である。
【０１１６】
＜第２実施形態＞
第２実施形態に係るレコメンドシステム１０００について、図１４を参照して説明する。図１４は、本実施形態に係るレコメンドシステム１０００の機能構成の一例を示す図である。図１４のレコメンドシステム１０００は、ユーザ端末１と、アプリマーケット３と、を含む。
【０１１７】
ユーザ端末１は、端末制御部１１と、アプリ記憶部１２と、操作ログ記憶部１３と、レコメンド制御部２１と、利用頻度記憶部２２と、分類部２３と、レコメンド部２４と、学習部２５と、を備える。各機能構成の機能は、第１実施形態と同様である。すなわち、本実施形態において、ユーザ端末１は、レコメンド装置の一例であり、第１実施形態におけるレコメンドサーバ２の機能を備える。ユーザ端末１のレコメンド制御部２１は、レコメンドシステム１０００に含まれる他のユーザ端末からの操作ログを受け付け、受け付けた操作ログに基づいて利用頻度を集計し、集計した利用頻度を利用頻度記憶部２２保存する。
【０１１８】
以上のような構成により、本実施形態に係るレコメンドシステム１０００は、第１実施形態と同様に、対象ユーザのＷｅｂ閲覧履歴を利用することなく、対象ユーザに有用なアプリをレコメンドできる。
【０１１９】
なお、本実施形態において、レコメンドシステム１０００は、第１実施形態と同様に、対象ユーザのアプリの利用傾向と、対象ユーザのＷｅｂ閲覧履歴と、を併用して、対象ユーザに有用なアプリをレコメンドすることも可能である。
【０１２０】
なお、本実施形態において、レコメンドシステム１０００に含まれる全てのユーザ端末がそれぞれレコメンドサーバ２の機能を備えてもよいし、一部のユーザ端末がレコメンドサーバ２の機能を備え、他のユーザ端末にアプリをレコメンドしてもよい。
【０１２１】
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたＡＳＩＣ(Application Specific Integrated Circuit)、ＤＳＰ（Digital Signal Processor）、ＦＰＧＡ（Field Programmable Gate Array）や従来の回路モジュール等のデバイスを含むものとする。
【０１２２】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせなど、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０１２３】
１：ユーザ端末
２：レコメンドサーバ
３：アプリマーケット
１１：端末制御部
１２：アプリ記憶部
１３：操作ログ記憶部
１４：アップロード部
２１：レコメンド制御部
２２：利用頻度記憶部
２３：分類部
２４：レコメンド部
２５：学習部
１０００：レコメンドシステム
【先行技術文献】
【特許文献】
【０１２４】
【特許文献１】特開２０１５−２２５０７号公報
【図１】
2018190154.tif 000003
【図２】
2018190154.tif 000004
【図３】
2018190154.tif 000005
【図４】
2018190154.tif 000006
【図５】
2018190154.tif 000007
【図６】
2018190154.tif 000008
【図７】
2018190154.tif 000009
【図８】
2018190154.tif 000010
【図９】
2018190154.tif 000011
【図１０】
2018190154.tif 000012
【図１１】
2018190154.tif 000013
【図１２】
2018190154.tif 000014
【図１３】
2018190154.tif 000015
【図１４】
2018190154.tif 000016