(57)【要約】  本技術は、アプリケーションプログラムを使用する際のユーザの利便性を向上させることができるようにする情報処理装置、情報処理方法、及び、プログラムに関する。情報取得部は、現在の日時及びユーザの現在位置を含む現在の状況を示す第１の情報を取得する。選択部は、ユーザのアプリケーションプログラムの使用履歴であって、各アプリケーションプログラムの起動時の日時及びユーザの位置を含む起動時の状況を示す第２の情報を含む使用履歴、ユーザのプロファイル、並びに、第１の情報に基づいて、ユーザに提示するアプリケーションプログラムである提示アプリケーションを選択する。本技術は、例えば、ロック画面やランチャー画面の表示を制御する装置やプログラムに適用することができる。
2015190289.tif 000002
【特許請求の範囲】
【請求項１】
現在の日時及びユーザの現在位置を含む現在の状況を示す第１の情報を取得する情報取得部と、
前記ユーザのアプリケーションプログラムの使用履歴であって、各アプリケーションプログラムの起動時の日時及び前記ユーザの位置を含む起動時の状況を示す第２の情報を含む使用履歴、前記ユーザのプロファイル、並びに、前記第１の情報に基づいて、前記ユーザに提示するアプリケーションプログラムである提示アプリケーションを選択する選択部と
を備える情報処理装置。
【請求項２】
前記選択部は、さらに他のユーザの前記使用履歴に基づいて、前記提示アプリケーションを選択する
請求項１に記載の情報処理装置。
【請求項３】
前記他のユーザは、前記ユーザと類似するユーザである
請求項２に記載の情報処理装置。
【請求項４】
前記類似するユーザは、前記ユーザと保有するアプリケーションプログラムが類似するユーザである
請求項３に記載の情報処理装置。
【請求項５】
前記選択部は、各アプリケーションプログラムの起動確率を予測するモデルであって、前記ユーザの前記使用履歴に基づいて生成された第１のモデル、及び、前記他のユーザの前記使用履歴に基づいて生成された第２のモデルを用いて、前記提示アプリケーションを選択する
請求項２に記載の情報処理装置。
【請求項６】
前記選択部は、各アプリケーションプログラムの起動確率を予測するモデルを用いて選択したアプリケーションプログラム、及び、前記選択したアプリケーションプログラムと類似するアプリケーションプログラムの中から前記提示アプリケーションを選択する
請求項１に記載の情報処理装置。
【請求項７】
前記類似するアプリケーションプログラムは、前記選択したアプリケーションプログラムと保有するユーザの分布が類似するアプリケーションプログラムである
請求項６に記載の情報処理装置。
【請求項８】
所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに備え、
前記選択部は、前記提示アプリケーションの優先順位を設定し、
前記表示制御部は、前記画面内において所定の操作が行われたとき、複数の前記アイコンを前記優先順位に従って前記画面内に並べて表示させるとともに、前記優先順位が高い前記提示アプリケーションの前記アイコンほど前記操作が行われた位置の近くに表示させる
請求項１に記載の情報処理装置。
【請求項９】
所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに備え、
前記選択部は、前記提示アプリケーションの優先順位を設定し、
前記表示制御部は、複数の前記アイコンを前記優先順位に従って前記画面内に並べて表示させるとともに、前記優先順位が高い前記提示アプリケーションの前記アイコンほど隣接する前記アイコンとの間隔を広くする
請求項１に記載の情報処理装置。
【請求項１０】
所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに備え、
前記選択部は、前記提示アプリケーションの優先順位を設定し、
前記表示制御部は、前記画面内においてユーザにより指示された位置の移動距離に応じて、前記画面内に表示する前記アイコンを前記優先順位に従って切り替えるとともに、前記画面内に表示する前記アイコンを切り替えるために必要な前記移動距離を前記優先順位に応じて調整する
請求項１に記載の情報処理装置。
【請求項１１】
所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに備え、
前記選択部は、前記提示アプリケーションの優先順位を設定し、
前記表示制御部は、複数の前記アイコンを前記優先順位に従って前記画面内に並べて表示させるとともに、前記画面内においてユーザにより指示された位置が所定の第１の方向に移動すると、前記画面内に表示する前記アイコンを前記優先順位に従って切り替え、前記指示された位置が前記第１の方向と異なる第２の方向に移動すると、前記画面内に表示する前記アイコンを前記優先順位の逆順に従って切り替える
請求項１に記載の情報処理装置。
【請求項１２】
前記ユーザが保有する前記提示アプリケーションを表すアイコンと、前記ユーザが保有していない前記提示アプリケーションを表すアイコンとを区別して画面内に表示させる表示制御部を
さらに備える請求項１に記載の情報処理装置。
【請求項１３】
ユーザ操作が制限されるロック画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部と、
前記アイコンが選択された場合、ユーザ操作の制限を解除し、選択された前記アイコンに対応する前記提示アプリケーションを使用可能な状態にする実行制御部と
をさらに備える請求項１に記載の情報処理装置。
【請求項１４】
前記起動時の状況は、アプリケーションプログラムの起動時の前記ユーザの状態を含み、
前記現在の状況は、現在の前記ユーザの状態を含む
請求項１に記載の情報処理装置。
【請求項１５】
各アプリケーションプログラムの起動確率を予測するモデルを生成する学習部をさらに備え、
前記選択部は、前記モデルを用いて、前記提示アプリケーションを選択する
請求項１に記載の情報処理装置。
【請求項１６】
前記学習部は、所定の周期関数を用いて、指定された日時における各アプリケーションプログラムの起動確率を予測する第１のモデル、及び、複数の代表点を設定し、各前記代表点における各アプリケーションの前記起動確率に基づいて、指定された位置における各アプリケーションプログラムの起動確率を予測する第２のモデルのうち少なくとも１つを生成する
請求項１５に記載の情報処理装置。
【請求項１７】
前記提示アプリケーションの選択結果を示す情報を他の情報処理装置に送信する通信部を
さらに備える請求項１に記載の情報処理装置。
【請求項１８】
ユーザ操作によらずに前記提示アプリケーションを使用可能な状態にする実行制御部を
さらに備える請求項１に記載の情報処理装置。
【請求項１９】
現在の日時及びユーザの現在位置を含む現在の状況を示す第１の情報を取得する情報取得ステップと、
前記ユーザのアプリケーションプログラムの使用履歴であって、各アプリケーションプログラムの起動時の日時及び前記ユーザの位置を含む起動時の状況を示す第２の情報を含む使用履歴、前記ユーザのプロファイル、並びに、前記第１の情報に基づいて、前記ユーザに提示するアプリケーションプログラムである提示アプリケーションを選択する選択ステップと
を含む情報処理方法。
【請求項２０】
現在の日時及びユーザの現在位置を含む現在の状況を示す第１の情報を取得する情報取得ステップと、
前記ユーザのアプリケーションプログラムの使用履歴であって、各アプリケーションプログラムの起動時の日時及び前記ユーザの位置を含む起動時の状況を示す第２の情報を含む使用履歴、前記ユーザのプロファイル、並びに、前記第１の情報に基づいて、前記ユーザに提示するアプリケーションプログラムである提示アプリケーションを選択する選択ステップと
を含む処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、情報処理方法、及び、プログラムに関し、特に、アプリケーションプログラムを使用する際のユーザの利便性を向上させるようにした情報処理装置、情報処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
従来、携帯型のゲーム装置等の情報処理装置において、アプリケーションプログラム（以下、単にアプリケーションと称する）やコンテンツの利用状況に基づいてユーザの関心度を算出し、関心度の高いアプリケーションやコンテンツをメニュー内のユーザが視認又は選択しやすい領域に配置することが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２１６０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、近年、スマートフォンやタブレット等の携帯情報端末の普及に伴い、携帯情報端末で使用可能なアプリケーションの数が増大している。そして、携帯情報端末にインストールするアプリケーションの数が増加すると、ユーザが所望のアプリケーションを見つけにくくなったり、所望のアプリケーションの起動に必要な操作手順が増加したりする。【０００５】
本技術はこのような状況に鑑みてなされたものであり、アプリケーションプログラムを使用する際のユーザの利便性を向上させるようにするものである。
【課題を解決するための手段】
【０００６】
本技術の一側面の情報処理装置は、現在の日時及びユーザの現在位置を含む現在の状況を示す第１の情報を取得する情報取得部と、前記ユーザのアプリケーションプログラムの使用履歴であって、各アプリケーションプログラムの起動時の日時及び前記ユーザの位置を含む起動時の状況を示す第２の情報を含む使用履歴、前記ユーザのプロファイル、並びに、前記第１の情報に基づいて、前記ユーザに提示するアプリケーションプログラムである提示アプリケーションを選択する選択部とを備える。【０００７】
前記選択部には、さらに他のユーザの前記使用履歴に基づいて、前記提示アプリケーションを選択させることができる。【０００８】
前記他のユーザを、前記ユーザと類似するユーザとすることができる。【０００９】
前記類似するユーザを、前記ユーザと保有するアプリケーションプログラムが類似するユーザとすることができる。【００１０】
前記選択部には、各アプリケーションプログラムの起動確率を予測するモデルであって、前記ユーザの前記使用履歴に基づいて生成された第１のモデル、及び、前記他のユーザの前記使用履歴に基づいて生成された第２のモデルを用いて、前記提示アプリケーションを選択させることができる。【００１１】
前記選択部には、各アプリケーションプログラムの起動確率を予測するモデルを用いて選択したアプリケーションプログラム、及び、前記選択したアプリケーションプログラムと類似するアプリケーションプログラムの中から前記提示アプリケーションを選択させることができる。【００１２】
前記類似するアプリケーションプログラムを、前記選択したアプリケーションプログラムと保有するユーザの分布が類似するアプリケーションプログラムとすることができる。【００１３】
前記選択部には、所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに設け、前記提示アプリケーションの優先順位を設定させ、前記表示制御部には、前記画面内において所定の操作が行われたとき、複数の前記アイコンを前記優先順位に従って前記画面内に並べて表示させるとともに、前記優先順位が高い前記提示アプリケーションの前記アイコンほど前記操作が行われた位置の近くに表示させることができる。【００１４】
所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに設け、前記選択部には、前記提示アプリケーションの優先順位を設定させ、前記表示制御部には、複数の前記アイコンを前記優先順位に従って前記画面内に並べて表示させるとともに、前記優先順位が高い前記提示アプリケーションの前記アイコンほど隣接する前記アイコンとの間隔を広くさせることができる。【００１５】
所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに設け、前記選択部には、前記提示アプリケーションの優先順位を設定させ、前記表示制御部には、前記画面内においてユーザにより指示された位置の移動距離に応じて、前記画面内に表示する前記アイコンを前記優先順位に従って切り替えさせるとともに、前記画面内に表示する前記アイコンを切り替えるために必要な前記移動距離を前記優先順位に応じて調整させることができる。【００１６】
所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに設け、前記選択部には、前記提示アプリケーションの優先順位を設定させ、前記表示制御部には、複数の前記アイコンを前記優先順位に従って前記画面内に並べて表示させるとともに、前記画面内においてユーザにより指示された位置が所定の第１の方向に移動すると、前記画面内に表示する前記アイコンを前記優先順位に従って切り替え、前記指示された位置が前記第１の方向と異なる第２の方向に移動すると、前記画面内に表示する前記アイコンを前記優先順位の逆順に従って切り替えさせることができる。【００１７】
前記ユーザが保有する前記提示アプリケーションを表すアイコンと、前記ユーザが保有していない前記提示アプリケーションを表すアイコンとを区別して画面内に表示させる表示制御部をさらに設けることができる。【００１８】
ユーザ操作が制限されるロック画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部と、前記アイコンが選択された場合、ユーザ操作の制限を解除し、選択された前記アイコンに対応する前記提示アプリケーションを使用可能な状態にする実行制御部とをさらに設けることができる。【００１９】
前記起動時の状況には、アプリケーションプログラムの起動時の前記ユーザの状態を含ませ、前記現在の状況には、現在の前記ユーザの状態を含ませることができる。【００２０】
各アプリケーションプログラムの起動確率を予測するモデルを生成する学習部をさらに設け、前記選択部には、前記モデルを用いて、前記提示アプリケーションを選択させることができる。【００２１】
前記学習部には、所定の周期関数を用いて、指定された日時における各アプリケーションプログラムの起動確率を予測する第１のモデル、及び、複数の代表点を設定し、各前記代表点における各アプリケーションの前記起動確率に基づいて、指定された位置における各アプリケーションプログラムの起動確率を予測する第２のモデルのうち少なくとも１つを生成させることができる。【００２２】
前記提示アプリケーションの選択結果を示す情報を他の情報処理装置に送信する通信部をさらに設けることができる。【００２３】
ユーザ操作によらずに前記提示アプリケーションを使用可能な状態にする実行制御部をさらに設けることができる。【００２４】
本技術の一側面の情報処理方法は、現在の日時及びユーザの現在位置を含む現在の状況を示す第１の情報を取得する情報取得ステップと、前記ユーザのアプリケーションプログラムの使用履歴であって、各アプリケーションプログラムの起動時の日時及び前記ユーザの位置を含む起動時の状況を示す第２の情報を含む使用履歴、前記ユーザのプロファイル、並びに、前記第１の情報に基づいて、前記ユーザに提示するアプリケーションプログラムである提示アプリケーションを選択する選択ステップとを含む。【００２５】
本技術の一側面のプログラムは、現在の日時及びユーザの現在位置を含む現在の状況を示す第１の情報を取得する情報取得ステップと、前記ユーザのアプリケーションプログラムの使用履歴であって、各アプリケーションプログラムの起動時の日時及び前記ユーザの位置を含む起動時の状況を示す第２の情報を含む使用履歴、前記ユーザのプロファイル、並びに、前記第１の情報に基づいて、前記ユーザに提示するアプリケーションプログラムである提示アプリケーションを選択する選択ステップとを含む処理をコンピュータに実行させる。【００２６】
本技術の一側面においては、現在の日時及びユーザの現在位置を含む現在の状況を示す第１の情報が取得され、前記ユーザのアプリケーションプログラムの使用履歴であって、各アプリケーションプログラムの起動時の日時及び前記ユーザの位置を含む起動時の状況を示す第２の情報を含む使用履歴、前記ユーザのプロファイル、並びに、前記第１の情報に基づいて、前記ユーザに提示するアプリケーションプログラムである提示アプリケーションが選択される。
【発明の効果】
【００２７】
本技術の一側面によれば、ユーザが使用する確率が高いアプリケーションプログラムをユーザに提示するアプリケーションプログラムとして選択することができる。その結果、アプリケーションプログラムを使用する際のユーザの利便性が向上する。【００２８】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００２９】
【図１】本技術を適用した情報処理システムの一実施の形態を示すブロック図である。
【図２】サーバの構成例を示すブロック図である。
【図３】サーバのＣＰＵにより実現される機能の構成例を示すブロック図である。
【図４】クライアントの構成例を示すブロック図である。
【図５】クライアントのＣＰＵにより実現される機能の構成例を示すブロック図である。
【図６】情報取得処理を説明するためのフローチャートである。
【図７】学習処理を説明するためのフローチャートである。
【図８】フォン・ミーゼス分布を用いてアプリケーションの起動日時の分布を表したグラフの例を示す図である。
【図９】アプリケーション起動支援処理について説明するためのフローチャートである。
【図１０】アプリケーションの提示方法の第１の例を示す図である。
【図１１】アプリケーションの提示方法の第２の例を示す図である。
【図１２】アプリケーションの提示方法の第３の例を示す図である。
【図１３】アプリケーションの提示方法の第４の例を示す図である。
【図１４】アプリケーションの提示方法の第５の例を示す図である。
【図１５】提示されるアプリケーションの具体例を説明するための図である。
【発明を実施するための形態】
【００３０】
以下、本技術を実施するための形態（以下、実施の形態という）について説明する。なお、説明は以下の順序で行う。
１．実施の形態
２．変形例
【００３１】
＜１．実施の形態＞
｛情報処理システム１の構成例｝
図１は、本技術を適用した情報処理システム１の一実施の形態を示している。
【００３２】
情報処理システム１は、サーバ１１及びクライアント１２−１乃至１２−ｎを含むように構成される。サーバ１１及びクライアント１２−１乃至１２−ｎは、ネットワーク１３を介して相互に接続されており、互いに通信を行う。サーバ１１及びクライアント１２−１乃至１２ｎの通信方式は、有線又は無線に関わらず、任意の通信方式を採用することが可能である。
【００３３】
サーバ１１は、クライアント１２−１乃至１２−ｎを使用するユーザに対して、状況に応じたアプリケーションを提示することにより、ユーザが所望のアプリケーションを起動するのを支援するサービス（以下、起動支援サービスと称する）を提供する。また、サーバ１１は、例えば、起動支援サービスを利用するのに必要なアプリケーション（以下、起動支援アプリケーションと称する）をクライアント１２−１乃至１２−ｎに提供する。
【００３４】
クライアント１２−１乃至１２−ｎは、複数のアプリケーションをインストールし、実行することが可能であり、かつ、起動支援サービスを利用可能な装置であれば、その実施形態は問わない。例えば、クライアント１２−１乃至１２−ｎは、スマートフォン、タブレット、携帯電話機、ノート型のパーソナルコンピュータ等の携帯情報端末、デスクトップ型のパーソナルコンピュータ、ゲーム機、動画再生装置、音楽再生装置等により構成される。また、クライアント１２−１乃至１２−ｎは、例えば、眼鏡型、腕時計型、ブレスレット型、ネックレス型、ネックバンド型、イヤフォン型、ヘッドセット型、ヘッドマウント型等の各種のウエアラブル機器により構成される。
【００３５】
なお、以下、クライアント１２−１乃至１２−ｎを個々に区別する必要がない場合、単にクライアント１２と称する。
【００３６】
｛サーバ１１の構成例｝
図２は、サーバ１１の構成例を示している。
【００３７】
サーバ１１においては、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３が、バス１０４により相互に接続されている。バス１０４には、さらに、入出力インタフェース１０５が接続されている。入出力インタフェース１０５には、入力部１０６、出力部１０７、記憶部１０８、通信部１０９、及びドライブ１１０が接続されている。
【００３８】
入力部１０６は、例えば、キーボード、マウス、マイクロフォン等の入力デバイスにより構成される。
【００３９】
出力部１０７は、例えば、ディスプレイ、スピーカ等により構成される。
【００４０】
記憶部１０８は、例えば、ハードディスクや不揮発性のメモリ等により構成される。
【００４１】
通信部１０９は、例えば、有線又は無線の通信装置、ネットワークインタフェース等により構成される。通信部１０９には、任意の通信方式を適用することが可能であり、複数の通信方式を適用することも可能である。
【００４２】
ドライブ１１０は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア１１１を駆動する。
【００４３】
サーバ１１では、例えば、ＣＰＵ１０１が、記憶部１０８に記憶されているプログラムを、入出力インタフェース１０５及びバス１０４を介して、ＲＡＭ１０３にロードして実行することにより、一連の処理が行われる。
【００４４】
サーバ１１（ＣＰＵ１０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア１１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【００４５】
サーバ１１では、プログラムは、リムーバブルメディア１１１をドライブ１１０に装着することにより、入出力インタフェース１０５を介して、記憶部１０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１０９で受信し、記憶部１０８にインストールすることができる。その他、プログラムは、ＲＯＭ１０２や記憶部１０８に、あらかじめインストールしておくことができる。
【００４６】
なお、以下、サーバ１１の各部がバス１０４や入出力インタフェース１０５を介して情報等の送受信を行う場合において、バス１０４及び入出力インタフェース１０５の記載を省略する。例えば、通信部１０９が、バス１０４及び入出力インタフェース１０５を介して、ＣＰＵ１０１に受信データを供給する場合、バス１０４及び入出力インタフェース１０５の記載を省略して、通信部１０９がＣＰＵ１０１に受信データを供給すると表現する。
【００４７】
｛サーバ１１のＣＰＵ１０１により実現される機能の構成例｝
図３は、サーバ１１のＣＰＵ１０１により実現される機能のうち、本技術に関連する機能の構成例を示すブロック図である。ＣＰＵ１０１が所定の制御プログラムを実行することにより、情報取得部１３１、学習部１３２、選択部１３３、及び、提示制御部１３４を含む機能が実現される。
【００４８】
情報取得部１３１は、ネットワーク１３及び通信部１０９を介して、各ユーザのアプリケーションの保有状況を示す情報（以下、アプリケーション保有情報と称する）を各クライアント１２から取得する。また、情報取得部１３１は、ネットワーク１３及び通信部１０９を介して、各クライアント１２における各ユーザのアプリケーションの使用履歴（以下、アプリケーション使用履歴、又は、単に使用履歴と称する）を各クライアント１２から取得する。
【００４９】
なお、以下、アプリケーション使用履歴の個々の履歴を示すデータ、すなわち、１回のアプリケーションの使用分のデータをログと称する。
【００５０】
学習部１３２は、各ユーザに適切なアプリケーションを提示するための学習を行う。学習部１３２は、特徴量ベクトル生成部１４１及びモデル学習部１４２を含むように構成される。
【００５１】
特徴量ベクトル生成部１４１は、各クライアント１２から取得されたアプリケーション保有情報に基づいて、各アプリケーションの特徴を表す特徴量ベクトル（以下、アプリケーションベクトルと称する）を生成する。また、特徴量ベクトル生成部１４１は、各クライアント１２から取得されたアプリケーション保有情報に基づいて、各ユーザの特徴量を表す特徴量ベクトル（以下、ユーザベクトルと称する）を生成する。
【００５２】
モデル学習部１４２は、各クライアント１２から取得された各ユーザのアプリケーション使用履歴、及び、各ユーザのユーザベクトルに基づいて、各アプリケーションの起動確率を予測するモデル（以下、起動予測モデルと称する）の学習を行う。
【００５３】
選択部１３３は、各ユーザに提示するアプリケーション（以下、提示アプリケーションと称する）の選択を行う。選択部１３３は、スコア算出部１５１、類似アプリケーション検索部１５２、及び、提示アプリケーション選択部１５３を含むように構成される。
【００５４】
スコア算出部１５１は、モデル学習部１４２により生成された起動予測モデルを用いて、各アプリケーションの起動確率（起動されやすさ）を示すスコア（以下、起動スコアと称する）を算出する。
【００５５】
類似アプリケーション検索部１５２は、各アプリケーションのアプリケーションベクトルに基づいて、指定されたアプリケーションと類似するアプリケーション（以下、類似アプリケーションと称する）を検索する。
【００５６】
提示アプリケーション選択部１５３は、各アプリケーションの起動スコア、及び、類似アプリケーションの検索結果に基づいて、ユーザに提示する提示アプリケーションを選択する。また、提示アプリケーション選択部１５３は、起動スコア等に基づいて、ユーザに提示アプリケーションを提示する際の優先順位を設定する。
【００５７】
提示制御部１３４は、各クライアント１２におけるユーザへの提示アプリケーションの提示を制御する。提示制御部１３４は、アプリケーション提供部１６１及びアプリケーションリスト生成部１６２を含むように構成される。
【００５８】
アプリケーション提供部１６１は、各クライアント１２に起動支援アプリケーションを提供する。例えば、アプリケーション提供部１６１は、各クライアント１２からの要求に応じて、通信部１０９及びネットワーク１３を介して、要求元のクライアント１２に起動アプリケーションを送信する。
【００５９】
アプリケーションリスト生成部１６２は、提示アプリケーションの選択結果を示す情報であるアプリケーションリストを生成する。アプリケーションリスト生成部１６２は、生成したアプリケーションリストを、通信部１０９及びネットワーク１３を介してクライアント１２に送信する。
【００６０】
｛クライアント１２の構成例｝
図４は、クライアント１２の構成例を示している。
【００６１】
クライアント１２においては、ＣＰＵ（Central Processing Unit）２０１、ＲＯＭ（Read Only Memory）２０２、ＲＡＭ（Random Access Memory）２０３が、バス２０４により相互に接続されている。バス２０４には、さらに、入出力インタフェース２０５が接続されている。入出力インタフェース２０５には、入力部２０６、出力部２０７、センサ部２０８、記憶部２０９、通信部２１０、及び、ドライブ２１１が接続されている。
【００６２】
入力部２０６は、例えば、キーボード、マウス、ボタン、タッチパネル、タッチレスインタフェース、マイクロフォン等の入力デバイスにより構成される。
【００６３】
出力部２０７は、例えば、ディスプレイ、スピーカ等により構成される。
【００６４】
センサ部２０８は、例えば、加速度センサ、ジャイロセンサ、気圧センサ、ＧＰＳ（Global Positioning System）受信機等の各種のセンサや受信機等により構成される。
【００６５】
記憶部２０９は、例えば、ハードディスクや不揮発性のメモリ等により構成される。
【００６６】
通信部２１０は、例えば、有線又は無線の通信装置、ネットワークインタフェース等により構成される。通信部２１０には、任意の通信方式を適用することが可能であり、複数の通信方式を適用することも可能である。
【００６７】
ドライブ２１１は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア２１２を駆動する。
【００６８】
クライアント１２では、例えば、ＣＰＵ２０１が、記憶部２０９に記憶されているプログラムを、入出力インタフェース２０５及びバス２０４を介して、ＲＡＭ２０３にロードして実行することにより、一連の処理が行われる。
【００６９】
クライアント１２（ＣＰＵ２０１）が実行するプログラム（アプリケーションプログラムを含む）は、例えば、パッケージメディア等としてのリムーバブルメディア２１２に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【００７０】
クライアント１２では、プログラムは、リムーバブルメディア２１２をドライブ２１１に装着することにより、入出力インタフェース２０５を介して、記憶部２０９にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部２１０で受信し、記憶部２０９にインストールすることができる。その他、プログラムは、ＲＯＭ２０２や記憶部２０９に、あらかじめインストールしておくことができる。
【００７１】
なお、以下、クライアント１２の各部がバス２０４や入出力インタフェース２０５を介して情報等の送受信を行う場合において、バス２０４及び入出力インタフェース２０５の記載を省略する。例えば、通信部２１０が、バス２０４及び入出力インタフェース２０５を介して、ＣＰＵ２０１に受信データを供給する場合、バス２０４及び入出力インタフェース２０５の記載を省略して、通信部２１０がＣＰＵ２０１に受信データを供給すると表現する。
【００７２】
なお、図４のクライアント１２の構成は、その一例であり、クライアント１２の実施形態により、種々の変更が可能である。
【００７３】
｛クライアント１２のＣＰＵ２０１により実現される機能の構成例｝
図５は、クライアント１２のＣＰＵ２０１により実現される機能のうち、本技術に関連する機能の構成例を示すブロック図である。ＣＰＵ２０１が所定の制御プログラムを実行することにより、情報取得部２３１及び提示制御部２３２を含む機能が実現される。また、提示制御部２３２は、表示制御部２４１及び実行制御部２４２を含む。
【００７４】
情報取得部２３１は、記憶部２０９にインストールされているアプリケーションを調査し、調査結果に基づいて、アプリケーション保有情報を生成する。また、情報取得部２３１は、入力部２０６及びセンサ部２０８からの情報等に基づいて、ユーザのアプリケーション起動時の状況を示す情報等を取得し、アプリケーション使用履歴を生成する。情報取得部２３１は、アプリケーション保有情報及びアプリケーション使用履歴を、通信部１０９及びネットワーク１３を介してサーバ１１に送信する。
【００７５】
表示制御部２４１は、出力部２０７に含まれるディスプレイ等の画面の表示を制御する。
【００７６】
実行制御部２４２は、アプリケーションプログラムやオペレーティングシステム等の、クライアント１２の処理に必要なプログラムの実行を制御する。
【００７７】
なお、例えば、表示制御部２４１は、サーバ１１により選択された提示アプリケーションの表示を制御し、実行制御部２４２は、サーバ１１により選択された提示アプリケーションの実行を制御する。このように、提示アプリケーションの表示又は実行が行われることにより、ユーザへの提示アプリケーションの提示が行われる。
【００７８】
｛情報処理システム１の処理｝
次に、図６乃至図１５を参照して、情報処理システム１の処理について説明する。
【００７９】
（情報取得処理）
まず、図６のフローチャートを参照して、情報処理システム１により実行される情報取得処理について説明する。
【００８０】
ステップＳ１において、情報処理システム１は、各ユーザのアプリケーションプログラムの保有状況を示す情報（アプリケーション保有情報）を取得する。例えば、クライアント１２の情報取得部２３１は、記憶部２０９にインストールされているアプリケーションを調査する。そして、情報取得部２３１は、調査結果に基づいて、クライアント１２にインストールされているアプリケーションのアプリケーションＩＤ、及び、アプリケーションの保有するユーザのユーザＩＤを含むアプリケーション保有情報を生成する。情報取得部２３１は、通信部２１０及びネットワーク１３を介して、サーバ１１にアプリケーション保有情報を送信する。
【００８１】
ここで、アプリケーションＩＤは、各アプリケーションを一意に識別するためのＩＤであり、アプリケーション毎に異なる値が割り当てられる。ユーザＩＤは、起動支援サービスを利用する各ユーザを一意に識別するためのＩＤであり、ユーザ毎に異なる値が割り当てられる。
【００８２】
なお、１つのクライアント１２を複数のユーザが共用する場合、例えば、使用できるユーザが限定されていないアプリケーション（例えば、使用ライセンス等が設定されていないアプリケーション）は、各ユーザが保有するものとみなされる。
【００８３】
サーバ１１の情報取得部１３１は、通信部１０９を介して、クライアント１２から送信されたアプリケーション保有情報を受信する。情報取得部１３１は、受信したアプリケーション保有情報を記憶部１０８に記憶させる。
【００８４】
なお、各クライアント１２が、サーバ１１にアプリケーション保有情報を送信するタイミングは、任意に設定することができる。例えば、各クライアント１２は、サーバ１１から要求されたとき、或いは、定期的にアプリケーション保有情報をサーバ１１に送信する。また、例えば、各クライアント１２は、起動支援サービスへのログイン時や、起動支援アプリケーションの起動時等に、アプリケーション保有情報をサーバ１１に送信する。
【００８５】
ステップＳ２において、情報処理システム１は、各ユーザのアプリケーションの使用履歴（アプリケーション使用履歴）を取得する。
【００８６】
クライアント１２の情報取得部２３１は、アプリケーションが使用される毎に、入力部２０６及びセンサ部２０８等からアプリケーションの起動時の状況を示す情報を取得する。ここで、アプリケーションの起動時の状況には、例えば、起動時の日時、起動した日の特徴、起動時のユーザ（クライアント１２）の位置、起動時のユーザの状態、及び、起動時のユーザの周囲の状態が含まれる。
【００８７】
ここで、起動した日の特徴には、例えば、ユーザの国の祝日、ユーザ及びユーザの関係者（例えば、親族、知人等）の記念日（例えば、誕生日、結婚記念日等）等が含まれる。なお、ユーザ及びユーザの関係者の記念日は、例えば、クライアント１２に登録されているユーザのユーザＩＤ及び個人情報を含むユーザプロファイル、ユーザがコンタクトを取る人の連絡先や個人情報を含むコンタクト情報、ユーザのスケジュール情報等に基づいて調査される。
【００８８】
起動時のユーザの位置（以下、起動位置とも称する）には、例えば、アプリケーションの起動時にクライアント１２のセンサ部２０８に含まれるＧＰＳ受信機により取得された位置情報が用いられる。また、クライアント１２の通信部２１０がWi-Fi等のアクセスポイントを介した無線通信を行う場合、例えば、アプリケーションの起動時にクライアント１２が接続しているアクセスポイントのＩＤが、起動時のユーザの位置として用いられる。
【００８９】
起動時のユーザの状態は、例えば、クライアント１２のセンサ部２０８に含まれる加速度センサ、ジャイロセンサ、気圧センサ等から得られる時系列のセンサデータに基づいて判別される離散的な状態である。例えば、ユーザの状態は、ユーザの行動内容により分類される。また、例えば、情報取得部２３１は、特開２０１４−５６５８５に開示されている技術等を用いて、ユーザの状態を判別する。
【００９０】
ユーザの周囲の状態は、例えば、起動時のユーザの周囲の天候、気温、湿度、気圧等を含む。
【００９１】
情報取得部２３１は、使用したアプリケーションのアプリケーションＩＤ、アプリケーションを使用したユーザのユーザＩＤ、及び、アプリケーションの起動時の状況を示す情報を含むアプリケーション使用履歴を生成する。情報取得部２３１は、通信部２１０及びネットワーク１３を介して、生成したアプリケーション使用履歴をサーバ１１に送信する。
【００９２】
サーバ１１の情報取得部１３１は、通信部１０９を介して、クライアント１２から送信されたアプリケーション使用履歴を受信する。情報取得部１３１は、受信したアプリケーション使用履歴を記憶部１０８に記憶させる。
【００９３】
その後、処理はステップＳ１に戻り、ステップＳ１以降の処理が実行される。
【００９４】
なお、各クライアント１２が、サーバ１１にアプリケーション使用履歴を送信するタイミングは、任意に設定することができる。例えば、各クライアント１２は、アプリケーションを使用する毎に、アプリケーションの起動時や終了時等に当該使用に対するアプリケーション使用履歴を送信する。或いは、例えば、各クライアント１２は、アプリケーション使用履歴を蓄積し、定期的に或いは所定のタイミングで、蓄積したアプリケーション使用履歴を送信する。
【００９５】
また、アプリケーションの起動時の状況を示す情報の一部を、サーバ１１が取得するようにしてもよい。例えば、サーバ１１の情報取得部１３１が、サーバ１１又は他のサーバに登録されているユーザプロファイル、コンタクト情報、スケジュール情報等から、アプリケーションを起動した日の特徴に関する情報を取得するようにしてもよい。
【００９６】
なお、アプリケーション使用履歴に、例えば、使用時間、使用を終了した日時等のアプリケーションの使用状態に関する情報、使用中の状況、使用後の状況等を含めるようにしてもよい。また、アプリケーション使用履歴に、例えば、直前に起動された１以上のｎ個のアプリケーションを示す情報を含めるようにしてもよい。
【００９７】
（学習処理）
次に、図７のフローチャートを参照して、サーバ１１により実行される学習処理について説明する。なお、この処理は、例えば、定期的に実行される。
【００９８】
ステップＳ５１において、モデル学習部１４２は、各アプリケーションの起動予測モデルの学習を行う。具体的には、モデル学習部１４２は、各ユーザのアプリケーション使用履歴を記憶部２０９から取得する。モデル学習部１４２は、取得したアプリケーション使用履歴に基づいて、各アプリケーションの起動予測モデルの学習を行う。
【００９９】
（日時起動予測モデルの第１の学習方法）
アプリケーションの中には、日時（曜日を含む）により使用頻度が大きく異なるものがある。そこで、モデル学習部１４２は、日時に基づいてアプリケーションの起動確率を予測する起動予測モデル（以下、日時起動予測モデルと称する）の学習を行う。
【０１００】
例えば、モデル学習部１４２は、式（１）に示されるフォン・ミーゼス分布等の周期関数を用いて、指定された日時における各アプリケーションの起動確率（起動されやすさ）を示す起動スコアを出力する日時起動予測モデルを生成する。
【０１０１】
ｆ（ｘ｜μ,σ）＝ｅｘｐ｛σcos（ｘ−μ）｝／｛２πＩ0（σ）｝
・・・（１）
【０１０２】
ここで、ｘは、日時を所定の周期で０から２πまでの値に変換した変数である。μは、アプリケーションの起動日時をｘと同じ周期で０から２πまでの値に変換した変数である。σは分布の裾野の広さを表す変数であり、例えば、所定の定数に設定される。Ｉ0（σ）は、σを変数とするベッセル関数である。
【０１０３】
ここで、ユーザｕ１のアプリケーションａ１に対する日時起動予測モデルを生成する場合について説明する。
【０１０４】
例えば、モデル学習部１４２は、ユーザｕ１のアプリケーションａ１の使用履歴のログ毎に、式（１）を用いて、アプリケーションａ１の起動日時を２４時間周期で表した場合の分布と、７日（１週間）周期で表した分布を生成する。式（１）のμは、２４時間周期の場合、２４時間を０から２πまでの値に変換した値で表され、７日周期の場合、７日を０から２πまでの値に変換した値で表される。
【０１０５】
そして、モデル学習部１４２は、アプリケーションａ１の起動日時を２４時間周期で表した分布、及び、７日間周期で表した分布を、時間軸を合わせて、ユーザｕ１のアプリケーションａ１の使用履歴の全ログ分足し合わせる。このとき、足し合わせた後の起動日時の分布の全周期（１週間分）にわたる積分値が１になるように正規化してもよい。これにより、足し合わせた後の起動日時の分布を、アプリケーションａ１の曜日及び時刻に基づく起動確率分布として利用することができる。また、モデル学習部１４２は、２４時間周期の分布と７日間周期の分布を、重みをつけて加算するようにしてもよい。
【０１０６】
図８は、フォン・ミーゼス分布を用いてアプリケーションａ１の起動日時の分布を表したグラフの例を示している。なお、横軸は、１週間分の時間軸を表している。
【０１０７】
グラフＤ１は、アプリケーションａ１の起動日時の分布を２４時間周期で表したグラフであり、グラフＤ２は、アプリケーションａ１の起動日時の分布を７日周期で表したグラフである。グラフＤ３は、グラフＤ１とグラフＤ２を加算したグラフである。
【０１０８】
このようにして、ユーザｕ１のアプリケーションａ１に対する日時起動予測モデルが生成される。また、同様の方法により、各ユーザの各アプリケーションに対する日時起動予測モデルが生成される。このユーザ毎に生成された日時起動予測モデルは、各ユーザの各アプリケーションを起動する日時の傾向が反映されたモデルとなる。
【０１０９】
また、モデル学習部１４２は、ユーザを複数のグループに分類し、グループ毎に各アプリケーションに対する日時起動予測モデルを生成する。すなわち、モデル学習部１４２は、グループ毎に全メンバーのアプリケーション使用履歴を用いて、上述した方法と同様の方法により、グループ毎に各アプリケーションに対する日時起動予測モデルを生成する。
【０１１０】
なお、グループの分類方法は任意であり、グループ数、グループの規模等は任意である。
【０１１１】
例えば、特徴量ベクトル生成部１４１は、各ユーザのアプリケーション保有情報に基づいて、各ユーザのユーザベクトルを生成する。例えば、アプリケーションの総数をＭとした場合、ユーザベクトルのｉ次元目（ただし、０≦ｉ≦Ｍ）の特徴量は、対象となるユーザがｉ番目のアプリケーションを保有しているか否かを示す。そして、ユーザベクトルのｉ次元目の特徴量は、対象となるユーザがｉ番目のアプリケーションを保有している場合、１に設定され、保有していない場合、０に設定される。
【０１１２】
次に、モデル学習部１４２は、Jaccard係数等を用いて、各ユーザ間のユーザベクトルの類似度を算出する。そして、モデル学習部１４２は、算出した類似度に基づいて、複数のグループにユーザを分類する。これにより、保有するアプリケーションが類似するユーザが属するグループが複数生成される。例えば、ビジネス系のアプリケーションを多く保有するユーザが属するグループや、ゲーム等の娯楽系のアプリケーションを多く保有するユーザが属するグループが生成される。
【０１１３】
なお、モデル学習部１４２は、年齢、性別、国籍、居住地（例えば、住んでいる国や地域）等の各ユーザのデモグラフィックにより、各グループを細分化するようにしてもよい。
【０１１４】
また、例えば、モデル学習部１４２は、ユーザベクトルを用いずに、各ユーザのデモグラフィックの一部又は全部の項目の類似度に基づいて、ユーザを複数のグループに分類するようにしてもよい。
【０１１５】
このグループ毎に生成された日時起動予測モデルは、各グループ（互いに類似するユーザ群）の各アプリケーションを起動する日時の傾向が反映されたモデルとなる。
【０１１６】
さらに、例えば、モデル学習部１４２は、全ユーザのアプリケーション使用履歴を用いて、上述した方法と同様の方法により、全ユーザに対する各アプリケーションの日時起動予測モデルを生成する。この日時起動予測モデルは、各アプリケーションを起動する日時の一般的な傾向が反映されたモデルとなる。
【０１１７】
（日時起動予測モデルの第２の学習方法）
なお、上述した日時起動予測モデルの学習処理は、アプリケーション使用履歴のログが多くなると、リアルタイム処理が困難になる。
【０１１８】
そこで、モデル学習部１４２は、アプリケーション使用履歴のログが多くなった場合、日時（時間情報）を離散化して扱い、離散化した日時起動予測モデルを生成するようにしてもよい。例えば、モデル学習部１４２は、オフラインのバッチ処理により、１週間を１秒単位で６０４,８００区分（＝３６００秒×２４時間×７日）に分割し、各ユーザの各アプリケーションの起動回数を区分毎に集計する。そして、モデル学習部１４２は、各区分における各アプリケーションの起動回数、又は、起動回数に基づく順位に基づいて、各ユーザの各アプリケーションに対する起動スコアを区分毎に算出する日時起動予測モデルを生成する。
【０１１９】
同様に、モデル学習部１４２は、各グループの各アプリケーションの起動回数を区分毎に集計する。そして、モデル学習部１４２は、各区分における各アプリケーションの起動回数、又は、起動回数に基づく順位に基づいて、各グループの各アプリケーションに対する起動スコアを区分毎に算出する日時起動予測モデルを生成する。
【０１２０】
また、モデル学習部１４２は、全ユーザの各アプリケーションの起動回数を区分毎に集計する。そして、モデル学習部１４２は、各区分における各アプリケーションの起動回数、又は、起動回数に基づく順位に基づいて、全ユーザの各アプリケーションに対する起動スコアを区分毎に算出する日時起動予測モデルを生成する。
【０１２１】
（位置起動予測モデルの第１の学習方法）
また、アプリケーションの中には、ユーザの位置により使用頻度が大きく異なるものがある。そこで、モデル学習部１４２は、ユーザの位置に基づいてアプリケーションの起動確率を予測する起動予測モデル（以下、位置起動予測モデルと称する）を生成する。
【０１２２】
例えば、モデル学習部１４２は、ＧＰＳ受信機等で取得される位置情報を入力した場合、入力された位置における各アプリケーションの起動スコアを出力する日時起動予測モデルを生成する。
【０１２３】
例えば、モデル学習部１４２は、ｋ−ＮＮ法を用いて、位置起動予測モデルを生成する。ここで、ユーザｕ１の位置起動予測モデルを生成する場合について説明する。
【０１２４】
例えば、モデル学習部１４２は、ユーザｕ１のアプリケーション使用履歴に含まれる全ログのアプリケーションの起動位置に基づく分布を、位置起動予測モデルとして生成する。
【０１２５】
そして、スコア算出部１５１は、例えば、ユーザｕ１（が使用するクライアント１２）の現在位置が入力された場合、入力された位置（以下、入力位置と称する）に起動位置が近い方から順にｋ個のログを抽出する。そして、例えば、スコア算出部１５１は、抽出したｋ個の各ログの起動位置と入力位置との間の距離に応じたスコアを、アプリケーション毎に加算する。なお、起動位置が入力位置に近いほど、スコアが高くなる。そして、スコア算出部１５１は、アプリケーション毎の加算後のスコアを、各アプリケーションの起動スコアに設定する。従って、ユーザの現在位置の近傍において起動回数が多いアプリケーションほど、起動スコアが高くなる。また、ユーザの現在位置により近い位置で起動されたアプリケーションほど、起動スコアが高くなる。
【０１２６】
このようにして、ユーザｕ１の位置起動予測モデルが生成され、生成された位置起動予測モデルを用いて、ユーザｕ１の現在位置における各アプリケーションに対する起動スコアが算出される。また、同様の方法により、各ユーザの位置起動予測モデルが生成され、生成された各位置起動予測モデルを用いて、各ユーザの現在位置における各アプリケーションに対する起動スコアが算出される。このユーザ毎に生成された位置起動予測モデルは、各ユーザの各アプリケーションを起動する位置の傾向が反映されたモデルとなる。
【０１２７】
また、モデル学習部１４２は、上述したようにユーザを複数のグループに分割し、グループ毎に全メンバーのアプリケーション使用履歴を用いて、上述した方法と同様の方法により、グループ毎に位置起動予測モデルを生成する。このグループ毎に生成された日時起動予測モデルは、各グループ（互いに類似するユーザ群）の各アプリケーションを起動する位置の傾向が反映されたモデルとなる。
【０１２８】
さらに、モデル学習部１４２は、全ユーザのアプリケーション使用履歴を用いて、上述した方法と同様の方法により、全ユーザに対する位置起動予測モデルを生成する。この位置起動予測モデルは、各アプリケーションを起動する位置の一般的な傾向が反映されたモデルとなる。
【０１２９】
（位置起動予測モデルの第２の学習方法）
位置起動予測モデルの第１の学習方法では、例えば、ユーザ数が多くなり、アプリケーション使用履歴のログが多くなると、リアルタイム処理が困難になる。そこで、例えば、予め複数の代表点を設定し、各代表点における各アプリケーションの起動スコア（起動確率）を求めておき、各代表点における起動スコアに基づいて、指定された位置（入力位置）における各アプリケーションの起動スコアを算出するようにしてもよい。
【０１３０】
例えば、モデル学習部１４２は、ユーザｕ１のアプリケーション使用履歴から所定数のログをランダムに抽出する。なお、モデル学習部１４２は、処理時間に余裕がある場合には、ユーザｕ１のアプリケーション使用履歴の全てのログを抽出するようにしてもよい。そして、モデル学習部１４２は、抽出したログにおける起動位置の分布に基づいて、ｋ−ｍｅａｎｓ等のクラスタリング手法を用いて、ユーザｕ１に対する所定の数の代表点を設定する。このとき、アプリケーションの起動位置のみが考慮され、アプリケーションの種類は考慮されない。また、都心部等のアプリケーションの起動位置の密度が高い場所では、代表点の密度が高く設定され、郊外等のアプリケーションの起動位置の密度が低い場所では、代表点の密度が低く設定される。
【０１３１】
同様の方法により、各ユーザのアプリケーション使用履歴をそれぞれ用いて、各ユーザに対する代表点が設定される。なお、この代表点の設定処理は、バッチ処理で行うことが可能である。
【０１３２】
次に、モデル学習部１４２は、各代表点におけるユーザｕ１の各アプリケーションに対する起動スコアを算出する。具体的には、モデル学習部１４２は、例えば、ユーザｕ１のアプリケーション使用履歴の中から、起動位置が代表点ｐ１に近い順にｋ１個のログを抽出する。そして、モデル学習部１４２は、抽出したｋ１個の各ログの起動位置と代表点ｐ１との間の距離に応じたスコアを、アプリケーション毎に加算する。なお、起動位置が代表点ｐ１に近いほど、スコアが高くなる。
【０１３３】
そして、モデル学習部１４２は、アプリケーション毎の加算後のスコアを、代表点ｐ１におけるユーザｕ１の各アプリケーションに対する起動スコアに設定する。また、モデル学習部１４２は、他の代表点についても同様の処理により、ユーザｕ１の各アプリケーションに対する起動スコアを算出する。この、各代表点における各アプリケーションに対する起動スコアからなるモデルが、ユーザｕ１の位置起動予測モデルとなる。
【０１３４】
また、同様の方法により、各ユーザの各代表点における各アプリケーションに対する起動スコアが算出される。
【０１３５】
なお、この各代表点における起動スコアの算出処理は、バッチ処理で行うことが可能である。
【０１３６】
そして、例えば、スコア算出部１５１は、ユーザｕ１（が使用するクライアント１２）の現在位置が入力された場合、ユーザｕ１に対する代表点のうち、入力位置に近い方から順にｋ２個の代表点を抽出する。次に、スコア算出部１５１は、抽出したｋ２個の代表点におけるユーザｕ１の各アプリケーションに対する起動スコアをアプリケーション毎に加算する。このとき、スコア算出部１５１は、入力位置に近い代表点ほど重みが大きくなるように、重み付け加算するようにしてもよい。そして、スコア算出部１５１は、アプリケーション毎の加算後の起動スコアを、入力位置におけるユーザｕ１の各アプリケーションに対する起動スコアとする。
【０１３７】
なお、このとき、スコア算出部１５１は、ｋ２個の各代表点において、起動スコアが上位の所定の数のアプリケーションを抽出し、抽出したアプリケーションの起動スコアをアプリケーション毎に加算するようにしてもよい。
【０１３８】
このようにして、ユーザｕ１の位置起動予測モデルが生成され、生成された位置起動予測モデルを用いて、ユーザｕ１の現在位置における各アプリケーションに対する起動スコアが算出される。また、同様の方法により、各ユーザの位置起動予測モデルが生成され、生成された各位置起動予測モデルを用いて、各ユーザの現在位置における各アプリケーションに対する起動スコアが算出される。このユーザ毎に生成された位置起動予測モデルは、各ユーザの各アプリケーションを起動する位置の傾向が反映されたモデルとなる。
【０１３９】
また、上述したようにユーザが複数のグループに分割される。次に、グループの全メンバーのアプリケーション使用履歴の中からランダムに所定数のログが抽出され、抽出されたログを用いて、上述した方法により、当該グループに対する代表点が設定される。なお、例えば、処理時間に余裕がある場合には、全てのログを用いるようにしてもよい。これにより、当該グループの全メンバーに対して、同じ代表点が設定される。また、同様にして、各グループの代表点が設定される。
【０１４０】
また、グループの全メンバーのアプリケーション使用履歴を用いて、上述した方法により、各代表点における各アプリケーションに対する起動スコアが算出される。これにより、当該グループの全メンバーに対して、各アプリケーションについて代表点毎に同じ起動スコアが設定される。このようにして、当該グループの位置起動予測モデルが生成される。また、同様にして、各グループの位置起動予測モデルが生成される。このグループ毎に生成された位置起動予測モデルは、各グループ（互いに類似するユーザ群）の各アプリケーションを起動する位置の傾向が反映されたモデルとなる。
【０１４１】
さらに、モデル学習部１４２は、全ユーザのアプリケーション使用履歴を用いて、上述した方法と同様の方法により、全ユーザに対する位置起動予測モデルを生成する。この位置起動予測モデルは、各アプリケーションを起動する位置の一般的な傾向が反映されたモデルとなる。
【０１４２】
なお、例えば、モデル学習部１４２は、ユーザ毎に位置起動予測モデルを生成する場合においても、グループ毎に代表点を設定するようにしてもよい。さらに、例えば、モデル学習部１４２は、ユーザ毎又はグループ毎に位置起動予測モデルを生成する場合においても、全ユーザ共通に代表点を設定するようにしてもよい。
【０１４３】
（位置起動予測モデルの第３の学習方法）
また、モデル学習部１４２は、例えば、Wi-Fi等のアクセスポイントに基づく位置起動予測モデルを生成することが可能である。ここで、ユーザｕ１の位置起動予測モデルを生成する場合について説明する。
【０１４４】
例えば、モデル学習部１４２は、ユーザｕ１のアプリケーション使用履歴に基づいて、ユーザｕ１の各アプリケーションの起動回数を、クライアント１２がアプリケーションの起動時に接続されていたアクセスポイント毎に集計する。そして、モデル学習部１４２は、各アプリケーションに対して、アクセスポイント毎に起動回数に応じた起動スコアを設定する。この各アクセスポイントにおける各アプリケーションに対する起動スコアからなるモデルが、ユーザｕ１の位置起動予測モデルとなる。同様にして、各ユーザの位置起動予測モデルが生成される。
【０１４５】
さらに、モデル学習部１４２は、上述したようにユーザを複数のグループに分割する。そして、モデル学習部１４２は、グループ毎に全メンバーのアプリケーション使用履歴を用いて、上述した方法と同様の方法により、グループ毎に位置起動予測モデルを生成する。
【０１４６】
また、モデル学習部１４２は、全ユーザのアプリケーション使用履歴を用いて、上述した方法と同様の方法により、全ユーザに対する位置起動予測モデルを生成する。
【０１４７】
（ユーザ状態起動予測モデルの第１の学習方法）
また、アプリケーションの中には、ユーザの状態により使用頻度が大きく異なるものがある。そこで、モデル学習部１４２は、ユーザの状態に基づいてアプリケーションの起動確率を予測する起動予測モデル（以下、ユーザ状態起動予測モデルと称する）を生成する。
【０１４８】
ここで、ユーザｕ１に対するユーザ状態起動予測モデルを生成する場合について説明する。
【０１４９】
例えば、モデル学習部１４２は、ユーザｕ１のアプリケーション使用履歴に基づいて、各アプリケーションの起動回数を、起動時のユーザｕ１の状態毎に集計する。そして、モデル学習部１４２は、ユーザｕ１の状態毎に、起動回数に応じた起動スコアを各アプリケーションに設定する。このユーザｕ１の各状態における各アプリケーションに対する起動スコアからなるモデルが、ユーザｕ１のユーザ状態起動予測モデルとなる。同様にして、各ユーザのユーザ状態起動予測モデルが生成される。このユーザ毎に生成されたユーザ状態起動予測モデルは、各ユーザの各アプリケーションの起動時の状態の傾向が反映されたモデルとなる。
【０１５０】
さらに、モデル学習部１４２は、上述したようにユーザを複数のグループに分割する。そして、モデル学習部１４２は、グループ毎に全メンバーのアプリケーション使用履歴を用いて、上述した方法と同様の方法により、グループ毎にユーザ状態起動予測モデルを生成する。このグループ毎に生成されたユーザ状態起動予測モデルは、各グループ（互いに類似するユーザ群）の各アプリケーションの起動時の状態の傾向が反映されたモデルとなる。
【０１５１】
さらに、例えば、モデル学習部１４２は、全ユーザのアプリケーション使用履歴を用いて、上述した方法と同様の方法により、全ユーザに対するユーザ状態起動予測モデルを生成する。このユーザ状態起動予測モデルは、各アプリケーションの起動時の状態の一般的な傾向が反映されたモデルとなる。
【０１５２】
（ユーザ状態起動予測モデルの第２の学習方法）
また、例えば、モデル学習部１４２は、ナイーブベイズモデルを用いて、ユーザ状態起動予測モデルを生成することができる。ここで、ナイーブベイズモデルを用いて、ユーザｕ１に対するユーザ状態起動予測モデルを生成する場合について説明する。
【０１５３】
モデル学習部１４２は、ユーザｕ１のアプリケーション使用履歴に基づいて、次式（２）を用いて、ユーザｕ１の状態ＸにおけるアプリケーションＹの起動確率ｐ（Ｙ｜Ｘ）を算出する。
【０１５４】
ｐ（Ｙ｜Ｘ）＝ｐ（Ｘ｜Ｙ）×ｐ（Ｙ）／ｐ（Ｘ）  ・・・（２）
【０１５５】
なお、ｐ（Ｘ｜Ｙ）は、アプリケーションＹが起動された場合に、ユーザｕ１の状態が状態Ｘである確率である。ｐ（Ｙ）は、ユーザｕ１がアプリケーションＹを起動する確率であり、例えば、ユーザｕ１のアプリケーションＹの起動回数／ユーザの全アプリケーションの起動回数により算出される。ｐ（Ｘ）は、ユーザｕ１の状態が状態Ｘである確率である。
【０１５６】
そして、モデル学習部１４２は、状態ＸとアプリケーションＹの全ての組み合わせについて、起動確率ｐ（Ｙ｜Ｘ）を算出する。この状態ＸとアプリケーションＹの全ての組み合わせに対する起動確率ｐ（Ｙ｜Ｘ）からなるモデルが、ユーザｕ１のユーザ状況起動確率モデルとなる。同様にして、各ユーザのユーザ状態起動予測モデルが生成される。このユーザ毎に生成されたユーザ状態起動予測モデルは、各ユーザの各アプリケーションの起動時の状態の傾向が反映されたモデルとなる。
【０１５７】
さらに、モデル学習部１４２は、上述したようにユーザを複数のグループに分割する。そして、モデル学習部１４２は、グループ毎に全メンバーのアプリケーション使用履歴を用いて、上述した方法と同様の方法により、グループ毎にユーザ状態起動予測モデルを生成する。このグループ毎に生成されたユーザ状態起動予測モデルは、各グループ（互いに類似するユーザ群）の各アプリケーションの起動時の状態の傾向が反映されたモデルとなる。
【０１５８】
さらに、例えば、モデル学習部１４２は、全ユーザのアプリケーション使用履歴を用いて、上述した方法と同様の方法により、全ユーザに対するユーザ状態起動予測モデルを生成する。このユーザ状態起動予測モデルは、各アプリケーションの起動時の状態の一般的な傾向が反映されたモデルとなる。
【０１５９】
（直前アプリケーション起動予測モデルの学習方法）
例えば、アプリケーションの中には、同時に使用されることが多いアプリケーションの組み合わせや、続けて使用されることが多いアプリケーションの組み合わせ等、互いに関連が深いアプリケーションの組み合わせが存在する。例えば、文書作成用のアプリケーションと辞書アプリケーションの組み合わせ等である。
【０１６０】
ここで、直前に起動されたアプリケーションに基づく状態（以下、直前アプリケーション状態と称する）を離散的な状態とみなすことにより、上述した状態起動予測モデルと同様の方法により、直前に起動されたアプリケーションを入力とする起動予測モデル（以下、直前アプリケーション起動予測モデル）を生成することができる。
【０１６１】
なお、直前アプリケーション状態を、直前に起動された１系列のアプリケーションのみにより定義することも可能であるし、２以上のｎ個前から最も直前に起動されたアプリケーションまでのｎ系列のアプリケーションにより定義することも可能である。
【０１６２】
例えば、アプリケーションＡ、Ｂ、Ｃの３つのアプリケーションがある場合、前者においては、直前アプリケーション状態は、アプリケーションＡ、Ｂ、Ｃをそれぞれ直前に起動した状態の３種類となる。
【０１６３】
一方、後者においては、例えば、直前アプリケーション状態を直前に起動された２系列のアプリケーションに基づく状態とした場合、直前アプリケーション状態は、全部で９種類となる。すなわち、２つ前にアプリケーションＡを起動した後、１つ前にアプリケーションＡ、Ｂ又はＣをそれぞれ起動した場合の３種類、２つ前にアプリケーションＢを起動した後、１つ前にアプリケーションＡ、Ｂ又はＣをそれぞれ起動した場合の３種類、２つ前にアプリケーションＣを起動した後、１つ前にアプリケーションＡ、Ｂ又はＣのいずれかをそれぞれ起動した場合の３種類の合計９種類となる。
【０１６４】
なお、直前に起動されたアプリケーションは、各ユーザのアプリケーション使用履歴を参照することにより調査することが可能である。
【０１６５】
なお、直前に起動されたアプリケーションであっても、その間にクライアント１２の電源がいったんオフされている場合には、次に起動するアプリケーションとの関連性は低いと考えられる。また、例えば、前のアプリケーションが起動されてから次のアプリケーションが起動されるまでの間隔が長い場合、この２つのアプリケーションの間の関連性は低いと考えられる。
【０１６６】
そこで、直前に起動したアプリケーションを採用する条件を限定するようにしてもよい。例えば、クライアント１２の電源がオンされた後に起動されたアプリケーションに限定したり、現在の時刻から所定の時間前より後に起動されたアプリケーションに限定したりすることが考えられる。
【０１６７】
（起動予測モデルの統合及び分割について）
以上に説明した起動予測モデルは、統合したり分割したりすることが可能である。
【０１６８】
例えば、モデル学習部１４２は、複数の入力パラメータを組み合わせて、起動予測モデルを生成することにより、起動予測モデルを統合することができる。例えば、モデル学習部１４２は、日時と起動位置の組み合わせを入力とする起動予測モデルを生成したり、起動位置とユーザの状態の組み合わせを入力とする起動予測モデルを生成したりすることができる。
【０１６９】
また、例えば、モデル学習部１４２は、日時、起動位置、又は、ユーザの状態等により分割して起動予測モデルを生成することができる。例えば、モデル学習部１４２は、ユーザの状態毎に、日時起動予測モデル、位置起動予測モデル、直前アプリケーション起動予測モデルを分割して生成することができる。例えば、モデル学習部１４２は、ユーザが移動している場合と移動していない場合とで分けて、日時起動予測モデル、位置起動予測モデル、直前アプリケーション起動予測モデルをそれぞれ生成することができる。
【０１７０】
また、例えば、モデル学習部１４２は、時間帯や曜日等により分割して、位置起動予測モデル、ユーザ状態起動予測モデル、直前アプリケーション起動予測モデルをそれぞれ生成することができる。
【０１７１】
さらに、例えば、モデル学習部１４２は、起動位置により分割して、日時起動予測モデル、ユーザ状態起動予測モデル、直前アプリケーション起動予測モデルを生成することができる。例えば、モデル学習部１４２は、ユーザが家にいる場合、オフィスにいる場合、及び、それ以外で分けて、日時起動予測モデル、ユーザ状態起動予測モデル、直前アプリケーション起動予測モデルをそれぞれ生成することができる。
【０１７２】
そして、モデル学習部１４２は、以上のようにして、生成した起動予測モデルに関する情報を記憶部２０９に記憶させる。
【０１７３】
なお、モデル学習部１４２は、必ずしも以上に挙げた全ての起動予測モデルを生成する必要はなく、一部の起動予測モデルのみ生成するようにしてもよい。また、上述した起動予測モデルは、その一例であり、上述した以外の起動予測モデルを採用することも可能である。
【０１７４】
ステップＳ５２において、特徴量ベクトル生成部１４１は、各アプリケーションの特徴量ベクトル（アプリケーションベクトル）を生成する。具体的には、特徴量ベクトル生成部１４１は、保有しているユーザの分布に基づいて、各アプリケーションのアプリケーションベクトルを生成する。例えば、起動支援サービスの全ユーザをＮ人とした場合、アプリケーションベクトルのｊ次元目（ただし、０≦ｊ≦Ｎ）の特徴量は、ｊ番目のユーザが対象となるアプリケーションを保有しているか否かを示す。そして、アプリケーションベクトルのｊ次元目の特徴量は、ｊ番目のユーザが対象となるアプリケーションを保有している場合、１に設定され、保有していない場合、０に設定される。
【０１７５】
特徴量ベクトル生成部１４１は、生成した各アプリケーションのアプリケーションベクトルを記憶部２０９に記憶させる。
【０１７６】
その後、学習処理は終了する。
【０１７７】
（アプリケーション起動支援処理）
次に、図９のフローチャートを参照して、情報処理システム１により実行されるアプリケーション起動支援処理について説明する。なお、以下、この処理において、起動支援サービスを利用し、アプリケーションが提示される対象となるユーザを対象ユーザと称する。
【０１７８】
ステップＳ１０１において、クライアント１２の情報取得部２３１は、現在の状況等に関する情報等を取得する。例えば、情報取得部２３１は、図６のステップＳ２と同様の処理により、現在の日時、今日の特徴、現在の対象ユーザ（クライアント１２）の位置、現在の対象ユーザの状態、及び、現在のユーザの周囲の状態等を示す情報を取得する。
【０１７９】
ステップＳ１０２において、クライアント１２の情報取得部２３１は、ステップＳ１０１の処理で取得した現在の状況等に関する情報を、通信部２１０及びネットワーク１３を介してサーバ１１に送信する。このとき、情報取得部２３１は、対象ユーザの識別ができるように、対象ユーザのプロファイルの１つであるユーザＩＤを合わせて送信する。なお、対象ユーザのプロファイルを全て送信するようにしてもよい。
【０１８０】
ステップＳ１０３において、サーバ１１の情報取得部１３１は、通信部１０９を介して、ステップＳ１０２の処理でクライアント１２から送信された現在の状況等に関する情報を受信する。
【０１８１】
なお、現在の状況を示す情報の一部を、サーバ１１が取得するようにしてもよい。例えば、サーバ１１の情報取得部１３１が、サーバ１１又は他のサーバに登録されているユーザプロファイル、コンタクト情報、スケジュール情報等から、今日の特徴に関する情報を取得するようにしてもよい。また、例えば、情報取得部１３１が、サーバ１１の内部時計から現在の日時を示す情報を取得するようにしてもよい。
【０１８２】
ステップＳ１０４において、サーバ１１のスコア算出部１５１は、対象ユーザ用の起動予測モデルを用いて、各アプリケーションの起動スコアを算出する。具体的には、スコア算出部１５１は、対象ユーザのユーザＩＤに基づいて、対象ユーザのみを対象にして生成された起動予測モデルに関する情報を記憶部１０８から読み出す。そして、スコア算出部１５１は、読み出した起動予測モデルに現在の状況（日時、位置、ユーザの状態等）を入力することにより、各アプリケーションの起動スコアを算出する。
【０１８３】
このとき、スコア算出部１５１は、対象ユーザ用の起動予測モデルを必ずしも全て使用する必要はなく、使用する起動予測モデルを選択するようにしてもよい。また、スコア算出部１５１は、複数の起動予測モデルを用いる場合、各起動予測モデルを用いて算出された起動スコアをアプリケーション毎に加算する。これにより、複数の起動予測モデルが、実質的に統合される。
【０１８４】
また、スコア算出部１５１は、各起動予測モデルによる起動スコアを加算する際に、起動予測モデル毎に重みをつけて加算するようにしてもよい。この重みは、例えば、各起動予測モデルの精度や影響度等に基づいて設定される。例えば、精度が高い起動予測モデルほど、重みが大きい値に設定される。なお、重みは、固定値としてもよいし、状況に応じて可変とするようにしてもよい。
【０１８５】
なお、以下、対象ユーザ用の起動予測モデルに基づいて算出された起動スコアを、対象ユーザ用起動スコアと称する。
【０１８６】
ステップＳ１０５において、サーバ１１のスコア算出部１５１は、他の起動予測モデルを用いて、各アプリケーションの起動スコアを算出する。例えば、スコア算出部１５１は、対象ユーザが属するグループを対象にして生成された起動予測モデルに関する情報を記憶部１０８から読み出す。そして、スコア算出部１５１は、読み出した起動予測モデルに現在の状況（日時、位置、ユーザの状態等）を入力することにより、各アプリケーションの起動スコアを算出する。
【０１８７】
このとき、スコア算出部１５１は、対象ユーザが属するグループ用の起動予測モデルを必ずしも全て使用する必要はなく、使用する起動予測モデルを選択するようにしてもよい。また、スコア算出部１５１は、複数の起動予測モデルを用いる場合、ステップＳ１０４の処理と同様に、各起動予測モデルを用いて算出された起動スコアをアプリケーション毎に加算する。
【０１８８】
なお、以下、対象ユーザが属するグループ用の起動予測モデルに基づいて算出された起動スコアを、グループ用起動スコアと称する。
【０１８９】
また、例えば、スコア算出部１５１は、全ユーザを対象にして生成された起動予測モデルに関する情報を記憶部１０８から読み出す。そして、スコア算出部１５１は、読み出した起動予測モデルに現在の状況（日時、位置、ユーザの状態等）を入力することにより、各アプリケーションの起動スコアを算出する。
【０１９０】
このとき、スコア算出部１５１は、全ユーザ用の起動予測モデルを必ずしも全て使用する必要はなく、使用する起動予測モデルを選択するようにしてもよい。また、スコア算出部１５１は、複数の起動予測モデルを用いる場合、ステップＳ１０４の処理と同様に、各起動予測モデルを用いて算出された起動スコアをアプリケーション毎に加算する。
【０１９１】
なお、以下、全ユーザ用の起動予測モデルに基づいて算出された起動スコアを、全ユーザ用起動スコアと称する。
【０１９２】
ステップＳ１０６において、サーバ１１の提示アプリケーション選択部１５３は、起動スコアに基づいて、アプリケーションを選択する。具体的には、提示アプリケーション選択部１５３は、アプリケーション毎に、対象ユーザ用起動スコア、グループ用起動スコア、及び、全ユーザ用起動スコアを加算する。
【０１９３】
このとき、提示アプリケーション選択部１５３は、重み付け加算を行うようにしてもよい。例えば、対象ユーザ用起動スコアに対する重みを大きくすると、現在の状況において対象ユーザがよく使用するアプリケーションに対する起動スコアが大きくなる。また、例えば、グループ用起動スコアに対する重みを大きくすると、現在の状況において対象ユーザが属するグループのメンバーがよく使用するアプリケーションに対する起動スコアが大きくなる。さらに、例えば、全ユーザ用起動スコアに対する重みを大きくすると、現在の状況において一般的によく使用されるアプリケーションに対する起動スコアが大きくなる。
【０１９４】
そして、提示アプリケーション選択部１５３は、加算後の起動スコアに基づいて、ユーザに提示するアプリケーションの候補（以下、スコア選択アプリケーションと称する）を選択する。例えば、提示アプリケーション選択部１５３は、加算後の起動スコアの大きい方から順に所定の数のアプリケーションをスコア選択アプリケーションに選択する。また、例えば、提示アプリケーション選択部１５３は、加算後の起動スコアが所定の閾値以上のアプリケーションをスコア選択アプリケーションに選択する。
【０１９５】
ステップＳ１０７において、サーバ１１の類似アプリケーション検索部１５２は、起動スコアに基づいて選択されたアプリケーションに類似するアプリケーションを選択する。具体的には、類似アプリケーション検索部１５２は、各アプリケーションのアプリケーションベクトルを記憶部１０８から読み出す。そして、類似アプリケーション検索部１５２は、Jaccard係数等を用いて、各スコア選択アプリケーションのアプリケーションベクトルと、スコア選択アプリケーション以外の各アプリケーションのアプリケーションベクトルとの間の類似度を算出する。
【０１９６】
そして、類似アプリケーション検索部１５２は、算出した類似度に基づいて、スコア選択アプリケーション以外のアプリケーションの中からユーザに提示するアプリケーションの候補（以下、類似アプリケーションと称する）を選択する。例えば、類似アプリケーション検索部１５２は、類似度の高い方から順に所定の数のアプリケーションを類似アプリケーションに選択する。また、例えば、類似アプリケーション検索部１５２は、類似度が所定の閾値以上のアプリケーションを類似アプリケーションに選択する。これにより、各スコア選択アプリケーションと保有するユーザの分布が類似するアプリケーションが、類似アプリケーションに選択される。
【０１９７】
ステップＳ１０８において、サーバ１１の提示アプリケーション選択部１５３は、対象ユーザに提示するアプリケーション（提示アプリケーション）を選択する。具体的には、提示アプリケーション選択部１５３は、スコア選択アプリケーションと類似アプリケーションの中から所定の数のアプリケーションを提示アプリケーションに選択する。
【０１９８】
なお、スコア選択アプリケーションと類似アプリケーションの中から提示アプリケーションを選択する方法は、任意の方法に設定できる。例えば、提示アプリケーションの数をｎ個とした場合、提示アプリケーション選択部１５３は、スコア選択アプリケーションがｎ個以上ある場合、提示スコアが高い方から順にｎ個のスコア選択アプリケーションを提示アプリケーションに選択する。一方、スコア選択アプリケーションがｎ個未満である場合、例えば、提示アプリケーション選択部１５３は、スコア選択アプリケーションを全て提示アプリケーションに選択するとともに、足りない分だけ類似アプリケーションの中から類似度が高い方から順に提示アプリケーションを選択する。
【０１９９】
なお、提示アプリケーション選択部１５３は、スコア選択アプリケーションがｎ個以上ある場合も、類似アプリケーションの中から提示アプリケーションを選択するようにしてもよい。また、例えば、提示アプリケーション選択部１５３は、対象ユーザが保有していないアプリケーションを候補から外し、対象ユーザが保有しているアプリケーションのみから、提示アプリケーションを選択するようにしてもよい。
【０２００】
また、提示アプリケーション選択部１５３は、対象ユーザが保有していないアプリケーションの中から提示アプリケーションを選択する場合、例えば、プロモーション等により優先的に推薦するように設定されているアプリケーションがあれば、そのアプリケーションを優先して提示アプリケーションに選択する。
【０２０１】
また、提示アプリケーション選択部１５３は、起動スコア及び類似度に基づいて、選択した提示アプリケーションの優先順位を設定する。例えば、提示アプリケーション選択部１５３は、提示アプリケーションのうちスコア選択アプリケーションを起動スコアが高い順に並べ、その後に類似アプリケーションを類似度が高い順に並べた順位を優先順位に設定する。
【０２０２】
なお、例えば、提示アプリケーション選択部１５３は、対象ユーザが保有するアプリケーションを対象ユーザが保有していないアプリケーションより優先順位を高く設定するようにしてもよい。また、例えば、提示アプリケーション選択部１５３は、提示アプリケーションの中に優先的に推薦するように設定されているアプリケーションがあれば、そのアプリケーションの優先順位を高く設定するようにしてもよい。
【０２０３】
このように、対象ユーザのアプリケーション使用履歴に基づいて生成された対象ユーザ用の起動予測モデルを用いて算出したスコアに基づいて、提示アプリケーションが選択される。これにより、実質的に対象ユーザのアプリケーション使用履歴に基づいて、提示アプリケーションが選択される。
【０２０４】
また、対象ユーザとは異なる他のユーザのアプリケーション使用履歴に基づいて生成された起動予測モデル（グループ用の起動予測モデル及び全ユーザ用の起動予測モデル）を用いて算出したスコアに基づいて、提示アプリケーションが選択される。これにより、実質的に他のユーザのアプリケーション使用履歴に基づいて、提示アプリケーションが選択される。
【０２０５】
ステップＳ１０９において、サーバ１１のアプリケーションリスト生成部１６２は、アプリケーションリストを生成する。具体的には、アプリケーションリスト生成部１６２は、各提示アプリケーションに関する情報、及び、優先順位を含むアプリケーションリストを生成する。
【０２０６】
ステップＳ１１０において、サーバ１１のアプリケーションリスト生成部１６２は、アプリケーションリストを送信する。すなわち、アプリケーションリスト生成部１６２は、生成したアプリケーションリストを、通信部１０９及びネットワーク１３を介して、対象ユーザのクライアント１２に送信する。
【０２０７】
その後、サーバ１１の処理は終了する。
【０２０８】
ステップＳ１１１において、クライアント１２のＣＰＵ２０１は、通信部２１０を介して、サーバ１１から送信されたアプリケーションリストを受信する。
【０２０９】
ステップＳ１１２において、クライアント１２は、アプリケーションの提示を行う。例えば、クライアント１２の表示制御部２４１は、出力部２０７に含まれるディスプレイに提示アプリケーションを提示するための画面を表示させる。
【０２１０】
ここで、図１０乃至図１４を参照して、クライアント１２がスマートフォン３０１からなる場合に、スマートフォン３０１の画面３１１に提示アプリケーションを提示する方法の例について説明する。なお、画面３１１はタッチパネルからなる。また、図１０乃至図１４の各アイコン内に示される番号は、提示アプリケーションの優先順位を示しており、例えば、数字の１が表示されているアイコンは、優先順位が１番目の提示アプリケーションを表すアイコンである。なお、実際には、各アイコン内には、対応する提示アプリケーションを表す画像等が表示される。
【０２１１】
図１０は、提示アプリケーションの提示方法の第１の例を示している。この例において、スマートフォン３０１の画面３１１は、エリアＡ１とエリアＡ２に大きく分かれる。画面３１１の下端のエリアＡ１内には、スマートフォン３０１を操作するためのボタン３２１乃至ボタン３２５が、横一列に並ぶように表示されている。そして、対象ユーザが、指３０２でボタン３２１に触れると（ボタン３２１に対して所定の操作を行うと）、提示アプリケーションを表すアイコン３２６ａ乃至３２６ｅが、エリアＡ１の上のエリアＡ２内に表示される。なお、以下、アイコン３２６ａ乃至３２６ｅを個々に区別する必要がない場合、単にアイコン３２６と称する。
【０２１２】
各アイコン３２６は、対象ユーザにより操作が行われたボタン３２１に近い方から、アイコン３２６ａ、アイコン３２６ｂ、アイコン３２６ｃ、アイコン３２６ｄ、アイコン３２６ｅの順に、エリアＡ２の左下から右上に向けて略円弧状に並んでいる。すなわち、優先順位が高い提示アプリケーションのアイコン３２６ほど、ボタン３２１の近くに表示され、優先順位が低い提示アプリケーションのアイコン３２６ほど、ボタン３２１から遠い位置に表示される。
【０２１３】
また、各アイコン３２６の大きさは、アイコン３２６ａ、アイコン３２６ｂ、アイコン３２６ｃ、アイコン３２６ｄ、アイコン３２６ｅの順になっている。すなわち、優先順位が高い提示アプリケーションのアイコン３２６ほど大きく、優先順位が低い提示アプリケーションのアイコン３２６ほど小さい。
【０２１４】
そして、対象ユーザが、指３０２を画面３１１に触れたまま画面３１１上をスライドさせ、所望のアイコン３２６上で画面３１１から離した場合、そのアイコン３２６に対応する提示アプリケーションが選択される。そして、実行制御部２４２は、選択された提示アプリケーションを起動する。ここで、優先順位が高い提示アプリケーションのアイコン３２６ほど、ボタン３２１の近くに大きく表示されるため、対象ユーザは、優先順位が高い提示アプリケーションを選択しやすくなる。
【０２１５】
一方、対象ユーザが、指３０２を各アイコン３２６以外の位置で画面から離すことにより、提示アプリケーションの選択がキャンセルされる。そして、各アイコン３２６が画面３１１から消え、いずれの提示アプリケーションも起動されない。
【０２１６】
図１１は、提示アプリケーションの提示方法の第２の例を示している。この例では、図１０の例と同様に、スマートフォン３０１の画面３１１がエリアＡ１とエリアＡ２に分かれ、エリアＡ１内にボタン３２１乃至ボタン３２５が並んでいる。そして、対象ユーザが、指３０２でボタン３２１に触れると（ボタン３２１に対して所定の操作を行うと）、提示アプリケーションを表すアイコン３４１ａ乃至３４１ｆが、エリアＡ２内に表示される。なお、以下、アイコン３４１ａ乃至３４１ｆを個々に区別する必要がない場合、単にアイコン３４１と称する。
【０２１７】
各アイコン３４１は、対象ユーザにより操作が行われたボタン３２１から近い方から、アイコン３４１ａ、アイコン３４１ｂ、アイコン３４１ｃ、アイコン３４１ｄ、アイコン３４１ｅ、アイコン３４１ｆの順に、エリアＡ２の左下から右上に向けて略円弧状に並んでいる。すなわち、優先順位が高い提示アプリケーションのアイコン３４１ほど、ボタン３２１の近くに表示され、優先順位が低い提示アプリケーションのアイコン３４１ほど、ボタン３２１から遠い位置に表示される。また、優先順位が高い提示アプリケーションのアイコン３４１ほど、隣接するアイコン３４１との間の間隔が広くなり、優先順位が低い提示アプリケーションのアイコン３４１ほど、隣接するアイコン３４１との間の間隔が狭くなっている。
【０２１８】
そして、対象ユーザが、指３０２を画面３１１に触れたまま画面３１１上をスライドさせ、所望のアイコン３４１上で画面３１１から離した場合、そのアイコン３４１に対応する提示アプリケーションが選択される。そして、実行制御部２４２は、選択された提示アプリケーションを起動する。ここで、優先順位が高い提示アプリケーションのアイコン３４１ほど、ボタン３０２の近くに表示されるとともに、隣接するアイコン３４１との間の間隔が広くなっているため、対象ユーザは、優先順位が高い提示アプリケーションを選択しやすくなる。
【０２１９】
一方、対象ユーザが、指３０２を各アイコン３４１以外の位置で画面から離すことにより、提示アプリケーションの選択がキャンセルされる。そして、各アイコン３４１が画面３１１から消え、いずれの提示アプリケーションも起動されない。
【０２２０】
図１２は、提示アプリケーションの提示方法の第３の例を示している。この例では、図１０の例と同様に、スマートフォン３０１の画面３１１は、エリアＡ１とエリアＡ２に大きく分かれる。さらに、エリアＡ２は、エリアＡ２ａとエリアＡ２ｂに分かれる。なお、図１２の画面３１１内の横方向の点線は、補助線であり、実際には表示されない。
【０２２１】
エリアＡ１内には、図１０の例と同様に、ボタン３２１乃至３２５が並べられている（ただし、図１２では、ボタン３２１は不図示）。そして、対象ユーザが、指３０２でボタン３２１に触れた後、指３０２をエリアＡ１の上のエリアＡ２ａ内にスライドさせると、アイコン３６１ａ乃至３６１ｃが、ボタン３２１の領域に表示される。具体的には、図１２内の左端の図に示されるように、アイコン３６１ａ乃至３６１ｃが、アイコン３６１ａ、アイコン３６１ｂ、アイコン３６１ｃの順に上から重ねて表示される。また、最前面のアイコン３６１ａのサイズが最も大きく、最背面のアイコン３６１ｃのサイズが最も小さくなっている。なお、以下、アイコン３６１ａ、３６１ｂ、３６１ｃ、・・・を個々に区別する必要がない場合、単にアイコン３６１と称する。
【０２２２】
そして、対象ユーザが、指３０２をエリアＡ２ａ内でスライドさせると、指３０２により指示された位置の移動距離に応じて、エリアＡ１内の最前面に表示されるアイコン３６１が、提示アプリケーションの優先順位に従って切り替わる。例えば、図１２の左端の図に示される状態から、指３０２をエリアＡ２ａ内で所定の距離だけスライドさせると、図１２の中央に示されるように、エリアＡ１内においてアイコン３６１ｂが最前面に表示される。また、図示は省略するが、左端の図と同様に、アイコン３６１ｂの背面に、アイコン３６１ｃ及び３６１ｄが重ねて表示される。なお、アイコン３６１ｄは、優先順位が４番目の提示アプリケーションを表すアイコンである。
【０２２３】
また、例えば、図１２の中央の図に示される状態から、指３０２をエリアＡ２ａ内で所定の距離だけスライドさせると、図１２の右端に示されるように、エリアＡ１内においてアイコン３６１ｃが最前面に表示される。また、図示は省略するが、左端の図と同様に、アイコン３６１ｃの背面に、アイコン３６１ｄ及び３６１ｅが重ねて表示される。なお、アイコン３６１ｅは、優先順位が５番目の提示アプリケーションを表すアイコンである。
【０２２４】
そして、対象ユーザは、エリアＡ２ａ内で指３０２を画面３１１から離すことにより、そのときにエリアＡ１内で最前面に表示されているアイコン３６１に対応する提示アプリケーションを選択することができる。そして、実行制御部２４２は、選択された提示アプリケーションを起動する。
【０２２５】
なお、エリアＡ２内で指３０２をスライドさせる方向は特に限定されず、指３０２をスライドした距離（移動距離）のみに基づいて、エリアＡ１内の最前面に表示されるアイコン３６１が切り替わる。
【０２２６】
ここで、アイコン３６１の表示を切り替えるために必要な指３０２の移動距離が優先順位に応じて調整される。具体的には、優先順位が高い提示アプリケーションのアイコン３６１ほど、次のアイコン３６１に表示が切り替わる（次のアイコン３６１が最前面に表示される）までに必要な指３０２の移動距離が長く設定される。一方、優先順位が低い提示アプリケーションのアイコン３６１ほど、次のアイコン３６１に表示が切り替わる（次のアイコン３６１が最前面に表示される）までに必要な指３０２の移動距離が短く設定される。例えば、エリアＡ１内の最前面のアイコン３６１ａをアイコン３６１ｂに切り替える場合に必要な指３０２の移動距離は、アイコン３６１ｂをアイコン３６１ｃに切り替える場合より長くなる。
【０２２７】
従って、優先順位が高い提示アプリケーションのアイコン３６１ほど画面３１１に表示される時間が長くなり、対象ユーザは、優先順位が高い提示アプリケーションを選択しやすくなる。また、優先順位が低い提示アプリケーションのアイコン３６１ほど画面３１１に表示される時間が短くなるため、対象ユーザは、優先順位が下位のアイコン３６１をより早く画面３１１に表示させ、選択することが可能になる。
【０２２８】
一方、対象ユーザが、指３０２をエリアＡ２ａの上のエリアＡ２ｂ内までスライドさせてから画面３１１から離すことにより、提示アプリケーションの選択がキャンセルされる。そして、各アイコン３６１が画面３１１から消え、ボタン３２１が再表示され、いずれの提示アプリケーションも起動されない。
【０２２９】
図１３は、提示アプリケーションの提示方法の第４の例を示している。この例では、スマートフォン３０１の画面３１１には、ユーザ操作が制限されるロック画面が表示されている。なお、図１３の画面３１１内の横方向の点線は、補助線であり、実際には表示されない。
【０２３０】
例えば、対象ユーザが、画面３１１の上端から中央より少し下までのエリアＡ１１内に指３０２で触れ、エリアＡ１１内で所定の距離だけ指３０２をスライドさせると、図１３内の右上の図に示されるように、エリアＡ１１内にアイコン３８１ａが表示される。さらに、対象ユーザが、指３０２をエリアＡ１１内で所定の距離だけスライドさせると、図１３内の左下の図に示されるように、エリアＡ１１内にアイコン３８１ｂが表示される。なお、以下、アイコン３８１ａ、３８１ｂ、・・・を個々に区別する必要がない場合、単にアイコン３８１と称する。
【０２３１】
このように、対象ユーザがエリアＡ１１内で指３０２をスライドさせることにより、エリアＡ１１内に表示されるアイコン３８１が、提示アプリケーションの優先順位に従って切り替わる。そして、対象ユーザは、エリアＡ１１内で指３０２を画面３１１から離すことにより、そのときにエリアＡ１１内に表示されているアイコン３８１に対応する提示アプリケーションを選択することができる。そして、実行制御部２４２は、ロック画面（ユーザ操作の制限）を解除するとともに、選択された提示アプリケーションを起動する。
【０２３２】
なお、エリアＡ１１内で指３０２をスライドさせる方向は特に限定されず、指３０２をスライドした距離（指３０２により指示された位置の移動距離）のみに基づいて、エリアＡ１１内に表示されるアイコン３８１が切り替わる。
【０２３３】
ここで、アイコン３８１の表示を切り替えるために必要な指３０２の移動距離が優先順位に応じて調整される。具体的には、優先順位が高い提示アプリケーションのアイコン３８１ほど、次のアイコン３８１に表示が切り替わるまでに必要な指３０２の移動距離が長くなる。一方、優先順位が低い提示アプリケーションのアイコン３８１ほど、次のアイコン３８１に表示が切り替わるまでに必要な指３０２の移動距離が短くなる。例えば、エリアＡ１１内のアイコン３６１ａをアイコン３６１ｂに切り替える場合に必要な指３０２の移動距離は、アイコン３６１ｂをアイコン３６１ｃに切り替える場合より長くなる。
【０２３４】
従って、優先順位が高い提示アプリケーションのアイコン３８１ほど画面３１１に表示される時間が長くなり、対象ユーザは、優先順位が高い提示アプリケーションを選択しやすくなる。また、優先順位が低い提示アプリケーションのアイコン３８１ほど画面３１１に表示される時間が短くなるため、対象ユーザは、優先順位が下位のアイコン３８１をより早く画面３１１に表示させ、選択することが可能になる。また、ロック画面の解除とともに、選択した提示アプリケーションが起動するので、対象ユーザは、より迅速かつ簡単に所望のアプリケーションを使用することができる。
【０２３５】
一方、対象ユーザが、指３０２をエリアＡ１１の下のエリアＡ１２内までスライドさせてから画面３１１から離すことにより、提示アプリケーションの選択がキャンセルされる。すなわち、この場合、いずれの提示アプリケーションも起動されない。そして、実行制御部２４２は、ロック画面（ユーザ操作の制限）を解除し、表示制御部２４１は、ロック解除後に表示される通常の画面（例えば、ランチャー画面）を表示させる。
【０２３６】
図１４は、提示アプリケーションの提示方法の第５の例を示している。この例において、スマートフォン３０１の画面３１１にはロック画面が表示されている。このロック画面は、例えば、画面３１１上で指３０２を上下方向にスライドさせることにより解除される。
【０２３７】
そして、例えば、対象ユーザが、指３０２で画面３１１に触れ、指３０２を上方向にスライドさせると、図１４内の右上の図に示されるように、アイコン４０１ａ乃至４０１ｄが、画面３１１の左端のほぼ中央から上下やや斜め方向に重なるように表示される。また、アイコン４０１ａが最も下かつ最前面に表示され、アイコン４０１ｄが最も上かつ最背面に表示される。また、アイコン４０１ａ乃至４０１ｄのサイズは、前に行くほど大きくなり、後ろに行くほど小さくなる。なお、以下、アイコン４０１ａ、４０１ｂ、４０１ｃ、・・・を個々に区別する必要がない場合、単にアイコン４０１と称する。
【０２３８】
さらに、対象ユーザが指３０２を上方向にスライドさせると、図内の左下に示されるように、画面３１１内に表示されるアイコン４０１の範囲が優先順位に従って前方向にスライドする。すなわち、最前面のアイコン４０１ａが消え、アイコン４０１ｂが最前面に移動し、アイコン４０１ｄが最背面に現れる。
【０２３９】
なお、図示は省略するが、対象ユーザが指３０２をさらに上方向にスライドさせると、画面３１１内に表示されるアイコン４０１の範囲が優先順位に従って前方向にスライドする。すなわち、画面３１１内に表示されるアイコン４０１が、提示アプリケーションの優先順位に従って切り替わり、最前面に表示されるアイコン４０１が、提示アプリケーションの優先順位に従って切り替わる。
【０２４０】
一方、対象ユーザが指３０２を下方向にスライドさせると、画面３１１内に表示されるアイコン４０１の範囲が優先順位の逆順に従って後ろ方向にスライドする。すなわち、画面３１１内に表示されるアイコン４０１が、提示アプリケーションの優先順位の逆順に従って切り替わり、最前面に表示されるアイコン４０１が、提示アプリケーションの優先順位の逆順に従って切り替わる。
【０２４１】
そして、対象ユーザは、指３０２を画面３１１から離すことにより、そのときに画面３１１内で最前面に表示されているアイコン４０１に対応する提示アプリケーションを選択することができる。そして、実行制御部２４２は、ロック画面（ユーザ操作の制限）を解除し、選択された提示アプリケーションを起動する。
【０２４２】
従って、優先順位が高い提示アプリケーションのアイコン４０１ほど画面３１１に早く表示されるため、対象ユーザは、優先順位が高い提示アプリケーションを選択しやすくなる。また、対象ユーザは、画面３１１に表示させるアイコン４０１を順方向（優先順位の順）にも逆方向（優先順位の逆順）にも切り替えることができるので、所望のアプリケーションを選択しやすくなる。また、ロック画面の解除とともに、選択した提示アプリケーションが起動するので、対象ユーザは、より迅速かつ簡単に所望のアプリケーションを使用することができる。
【０２４３】
一方、アイコン４０１ａが最前面に表示されている状態において、図１４の右下の画面に示されるように、指３０２を下方向に所定の距離だけスライドさせると、アイコン４０１ａ乃至４０１ｄがグレイアウトされる。この状態で、対象ユーザが指３０２を画面３１１から離すことにより、提示アプリケーションの選択がキャンセルされる。すなわち、この場合、いずれの提示アプリケーションも起動されない。そして、実行制御部２４２は、ロック画面（ユーザ操作の制限）を解除し、表示制御部２４１は、ロック解除後に表示される通常の画面（例えば、ランチャー画面）を表示させる。
【０２４４】
なお、上述したように、サーバ１１は、対象ユーザが保有していないアプリケーション（例えば、スマートフォン３０１にインストールされていないアプリケーション）を提示アプリケーションに選択することが可能である。そこで、例えば、表示制御部２４１は、対象ユーザが保有していない提示アプリケーションを提示する場合、対象ユーザが保持している提示アプリケーションとアイコンの色や形等を区別して表示するようにしてもよい。
【０２４５】
また、対象ユーザが保有していない提示アプリケーションが選択された場合、例えば、実行制御部２４２は、その提示アプリケーションを入手可能なウエブページにアクセスし、画面３１１に表示させるよう制御する。これにより、対象ユーザが迅速に所望のアプリケーションを入手し、使用することが可能になる。
【０２４６】
さらに、例えば、複数の提示アプリケーションを同時に選択し、同時に起動できるようにしてもよい。
【０２４７】
その後、クライアント１２の処理は終了する。
【０２４８】
以上のようにして、現在の状況に応じて適切なアプリケーションが選択され、対象ユーザに提示される。これにより、対象ユーザは、迅速かつ簡単に所望のアプリケーションを使用することができ、利便性が向上する。
【０２４９】
また、対象ユーザのアプリケーション使用履歴だけでなく、他のユーザのアプリケーション使用履歴に基づいて、提示アプリケーションが選択されるので、例えば、対象ユーザが今まで経験していない状況においても、適切なアプリケーションが提示される。さらに、対象ユーザと類似するユーザが属するグループ用の起動予測モデルを用いて、提示アプリケーションを選択することにより、より適切なアプリケーションを提示することが可能になる。
【０２５０】
また、他のユーザのアプリケーション使用履歴に基づいて提示アプリケーションを選択したり、類似アプリケーションの中から提示アプリケーションを選択したりすることにより、対象ユーザが保有していないアプリケーションが提示される場合がある。これにより、対象ユーザは、現在の状況に適した新たなアプリケーションを知り、必要に応じて入手することができる。
【０２５１】
また、上述したように、周期関数を用いて日時予測モデルを生成し、時間情報を連続値として扱うことにより、時間情報を時間帯や曜日等により分割して離散化して扱う場合と比較して、より正確に起動スコアを算出することができる。その結果、より対象ユーザが使用する確率が高いアプリケーションを提示することができる。
【０２５２】
さらに、上述したように、過去のアプリケーションの起動位置の密度に応じて、代表点の密度を設定し、位置起動予測モデルを生成することにより、固定したエリアに基づいて位置予測モデルを生成する場合と比較して、より正確に起動スコアを算出することができる。その結果、より対象ユーザが使用する確率が高いアプリケーションを提示することができる。
【０２５３】
ここで、図１５を参照して、ユーザに提示されるアプリケーションの具体例について説明する。
【０２５４】
図１５では、あるユーザが各状況において過去に使用したアプリケーションの履歴が示されている。具体的には、図１５の表では、日時、場所（位置）、ユーザの行動の３つの要素により状況が分類されている。日時は、平日（月曜日から金曜日）と週末（土曜日と日曜日）の２種類に分類され、さらに、平日及び週末とも朝、昼、夜の３種類に分類されている。場所は、家、外出、オフィス、不明な場所の４種類に分類されている。ここで、不明な場所とは、ユーザのアプリケーション使用履歴にない場所のことである。ユーザの行動は、動いている状態と動いていない状態の２種類に分類されている。ここで、動いている状態とは、例えば、歩いたり、走ったり、運転したり、乗り物に乗ったりしている場合など、ユーザが場所を移動している状態である。動いていない状態とは、例えば、座ったり、寝たりしている場合など、ユーザが場所を移動していない状態である。
【０２５５】
そして、表内の各欄に、各状況において過去にユーザが起動したアプリケーションが示されている。例えば、ユーザが過去に週末の昼に家で動いている状況で起動したアプリケーションは、乗換案内と地図のアプリケーションである。また、例えば、ユーザが過去に平日の朝に外出中に動いている状況で起動したアプリケーションは、ニュースのアプリケーションである。さらに、例えば、ユーザが過去に平日の夜にオフィスで動いていない状況で起動したアプリケーションは、ブラウザである。
【０２５６】
上述した起動支援サービスを用いて、ユーザにアプリケーションを提示する場合、ユーザの過去のアプリケーション使用履歴のログが存在する状況では、そのログに記録されているアプリケーションが提示される可能性が高い。例えば、現在の状況が、ユーザが平日の朝に家で動いている状況である場合、ニュースのアプリケーションが提示される可能性が高い。
【０２５７】
一方、欄内に＊１が示されている状況は、過去のユーザのアプリケーション使用履歴のログが存在しない状況である。しかし、上述した起動支援サービスによれば、現在の状況が過去のログが存在しない状況であっても、現在の状況に近い状況の過去のログを利用して、適切なアプリケーションがユーザに提示される。
【０２５８】
例えば、現在の状況が、ユーザが平日の夜に家で動いている状況である場合、現在の状況における過去のログは存在しない。しかし、例えば、現在の状況に近い、ユーザが平日の夜にオフィスで動いている状況（以下、状況１と称する）、ユーザが平日の朝に家で動いている状況（以下、状況２と称する）、ユーザが平日の夜に家で動いていない状況（以下、状況３と称する）では、過去のログが存在する。従って、例えば、状況１の過去のログにおけるメール、状況２の過去のログにおけるニュース、状況３の過去のログにおける時計のアプリケーションの全部又は一部が、ユーザに提示される可能性が高い。また、提示されるアプリケーションは、現在の状況に近い状況において過去にユーザが起動したアプリケーションなので、ユーザが使用する確率が高いと予測される。
【０２５９】
また、欄内に＊２が示されている状況は、ユーザのアプリケーション使用履歴にない不明な場所（例えば、ユーザが初めて訪れた場所）における状況であり、過去のログが存在しない。しかし、例えば、ユーザが現在不明な場所にいたとしても、例えば、場所以外の条件が一致又は類似する状況における過去のログを用いて、適切なアプリケーションがユーザに提示される。
【０２６０】
或いは、上述したように、他のユーザのアプリケーション使用履歴を用いて生成された起動予測モデルを用いて、提示アプリケーションが選択されるため、現在のユーザの状況における他のユーザの使用履歴のログに基づいて、適切なアプリケーションがユーザに提示される。この場合、ユーザに類似するユーザのグループのアプリケーション使用履歴を用いて生成された起動予測モデルを用いることにより、より適切なアプリケーションがユーザに提示される。また、類似するユーザのグループをデモグラフィックにより細分化することにより、さらに適切なアプリケーションがユーザに提示される。
【０２６１】
例えば、類似するユーザのグループを国籍で細分化した例について検討する。例えば、日本人のユーザが観光で初めてハワイを訪れている場合、類似するユーザのグループを国籍で細分化しなければ、現地の類似するユーザがよく使用するアプリケーションが提示される可能性がある。この場合、観光で訪れたユーザにとって、現地のユーザが使用するアプリケーションは、不要である可能性が高い。一方、類似するユーザのグループを国籍で細分化した場合、日本人の類似するユーザがハワイでよく使用するアプリケーション（例えば、日本人の観光客がハワイでよく使用するアプリケーション）が提示される。このアプリケーションは、ユーザにとって有用である可能性が高い。
【０２６２】
このように類似するユーザのグループをデモグラフィックにより細分化することにより、より適切なアプリケーションがユーザに提示される。
【０２６３】
また、例えば、サーバ１１は、上述した位置起動予測モデルを用いることにより、ユーザが不明な場所にいても、各代表点（家とオフィス）における各アプリケーションの起動スコアと、各代表点との間の距離に基づいて、適切なアプリケーションをユーザに提示することができる。
【０２６４】
さらに、例えば、サーバ１１は、登録されている場所（例えば、家及びオフィス）との間の距離を特徴量として用いて起動予測モデルの学習を行い、生成した起動予測モデルを用いることにより、不明な場所と登録されている場所との間の距離に基づいて、適切なアプリケーションをユーザに提示することができる。また、サーバ１１は、例えば、この距離を離散化したデータとして扱うことも可能である。さらに、サーバ１１は、例えば、この距離に基づいて、ユーザが外出中か否かや、国内又は外国のいずれにいるか等の判定を行うことも可能である。
【０２６５】
また、例えば、サーバ１１は、各場所に付与されている一般的なラベル（例えば、観光地、山、レストラン等）を特徴量として、起動予測モデルを生成することにより、不明な場所に付与されているラベルに基づいて、適切なアプリケーションを提示することができる。
【０２６６】
＜２．変形例＞
以下、上述した本技術の実施の形態の変形例について説明する。
【０２６７】
｛提示アプリケーションの選択方法に関する変形例｝
以上の説明では、サーバ１１が、対象ユーザ用、グループ用、及び、全ユーザ用の起動予測モデルを用いて、提示アプリケーションを選択する例を示したが、いずれか１つ又は２つを用いて、提示アプリケーションを選択するようにしてもよい。例えば、サーバ１１は、対象ユーザ用の起動予測モデルのみを用いて提示アプリケーションを選択したり、対象ユーザ用及びグループ用の起動予測モデルのみを用いて提示アプリケーションを選択したりすることが可能である。
【０２６８】
また、サーバ１１は、例えば、対象ユーザが属していないグループ（例えば、対象ユーザと類似しないユーザが属するグループ）用の起動予測モデルを用いて、提示アプリケーションを選択することも可能である。
【０２６９】
さらに、サーバ１１は、保有するユーザの分布の類似度とは異なる類似度に基づいて、類似アプリケーションを選択するようにすることも可能である。例えば、サーバ１１は、アプリケーションのメタデータ等に基づく特徴量の類似度に基づいて、類似アプリケーションを選択することが可能である。また、サーバ１１は、複数の種類の類似度を組み合わせて、類似アプリケーションを選択することが可能である。
【０２７０】
｛アプリケーションの提示方法に関する変形例｝
対象ユーザへの提示アプリケーションの提示方法は、上述した例に限定されるものではなく、任意の方法を採用することが可能である。
【０２７１】
例えば、クライアント１２の実行制御部２４２が、１以上の提示アプリケーションをユーザ操作によらずに自動的に使用可能な状態にすることにより、対象ユーザに提示アプリケーションを提示するようにしてもよい。例えば、実行制御部２４２は、サーバ１１からアプリケーションリストを受信したときに、提示アプリケーションを自動的に起動させるようにしてもよい。また、例えば、実行制御部２４２は、サーバ１１からアプリケーションリストを受信したときに提示アプリケーションがバックグラウンドで動作している場合、自動的にフォアグラウンドで動作させるようにしてもよい。
【０２７２】
なお、この場合、自動的に起動したり、自動的にフォアグラウンドで動作させたりする起動アプリケーションは、アプリケーションリストに含まれる起動アプリケーションの一部のみでもよい。また、例えば、実行制御部２４２は、自動的に起動したり、自動的にフォアグラウンドで動作させた提示アプリケーションが、次回以降に受信したアプリケーションリストに含まれない場合、当該提示アプリケーションの実行を自動的に終了したり、自動的にバックグラウンドで動作させたりするようにしてもよい。
【０２７３】
さらに、例えば、実行制御部２４２は、サーバ１１からアプリケーションリストを受信したときに、ロック画面のバックグラウンドで提示アプリケーションを自動的に実行させるようにしてもよい。これにより、対象ユーザは、ロック画面を解除すると、提示アプリケーションがフォアグラウンドで使用可能な状態になり、すぐに提示アプリケーションを使用することが可能になる。
【０２７４】
さらに、実行制御部２４２は、例えば、特に操作が必要なく、見るだけで目的を果たすことができるアプリケーション（例えば天気予報のアプリケーション）を自動的に実行し、ロック画面上に表示することにより、ユーザに提示するようにしてもよい。
【０２７５】
また、例えば、クライアント１２の種類により、アプリケーションの提示方法や、提示するアプリケーションを変更するようにしてもよい。例えば、クライアント１２の提示制御部２３２は、クライアント１２がバッテリにより動作する場合、消費電力の少ない提示アプリケーションを優先して提示するようにしてもよい。また、例えば、提示制御部２３２は、クライアント１２の仕様や能力等（例えば、プロセッサの処理能力、ディスプレイの大きさ等）に応じて、提示する提示アプリケーションを選択するようにしてもよい。
【０２７６】
さらに、提示制御部２３２は、例えば、クライアント１２の仕様や機能等に応じて、提示する提示アプリケーションを選択するようにしてもよい。例えば、クライアント１２がウエアラブル機器からなる場合、提示制御部２３２は、そのウエアラブル機器の仕様や機能に応じて、提示する提示アプリケーションを選択するようにしてもよい。
【０２７７】
また、例えば、対象ユーザが複数のクライアント１２を所持している場合、複数のクライアント１２が連携して、対象ユーザに提示アプリケーションを提示するようにしてもよい。ここで、対象ユーザが、スマートフォン等の携帯情報端末と、ウエアラブル機器を所持している場合の例について説明する。
【０２７８】
例えば、ウエアラブル機器で提示アプリケーションを実行している場合に、携帯情報端末のロック画面が解除されたとき、携帯情報端末は、ウエアラブル機器と同じ提示アプリケーションを起動するとともに、起動した提示アプリケーションにより、ウエアラブル機器より詳細な情報を提示するようにしてもよい。
【０２７９】
例えば、サーバ１１により天気予報のアプリケーションが選択された場合、ウエアラブル機器は、その天気予報のアプリケーションをすぐに実行し、現在位置の今日の天気のみを表示する。一方、携帯情報端末は、ロック画面が解除されたとき、天気予報のアプリケーションを起動し、より詳細な天気予報を表示する。例えば、携帯情報端末は、現在位置の３時間毎の天気、週間天気予報、気温や、周辺の地域の天気予報等を表示する。これにより、対象ユーザは、ウエアラブル端末のみで必要な情報を得ることができ、さらに携帯情報端末を用いてより詳細な情報を得ることができる。
【０２８０】
また、例えば、対象ユーザが観光地等の撮影スポットにいる場合に、サーバ１１によりカメラのアプリケーションが選択されたとき、ウエアラブル機器は、そのカメラのアプリケーションを表すアイコンとともに、サーバ１１から提供された現在の場所で撮影された写真を表示する。一方、携帯情報端末は、ロック画面が解除されたとき、そのカメラのアプリケーションを起動する。これにより、対象ユーザは、ウエアラブル機器からの情報により現在の場所が撮影スポットであることを確実に知ることができ、さらに、携帯情報端末を用いてすぐに撮影することができる。
【０２８１】
なお、複数のクライアント１２が連携して処理を行う場合、必ずしも全てのクライアント１２がサーバ１１と通信を行う必要はなく、一部のクライアント１２のみがサーバ１１と通信を行うようにしてもよい。そして、サーバ１１と通信するクライアント１２が、他のクライアント１２を制御して、提示アプリケーションの提示等を実行させるようにしてもよい。例えば、携帯情報端末が、サーバ１１と通信を行い、アプリケーションリストをサーバ１１から受信した場合、ウエアラブル端末と通信を行い、ウエアラブル端末に提示アプリケーションの提示等を実行させるようにしてもよい。
【０２８２】
また、例えば、図１０及び図１１の提示方法において、画面３１１のエリアＡ２内の任意の位置に指３０２を触れた場合に、指３０２が触れた位置の近くにアイコンを表示させるようにすることも可能である。
【０２８３】
さらに、図１０乃至図１４では、対象ユーザが指で画面に触れ操作する例を示したが、例えば、図１０乃至図１４の提示方法は、指を触れる以外の方法により、画面内の任意の位置を指示し、操作する場合にも適用することができる。例えば、図１０乃至図１４の提示方法は、マウス、スタイラスペンを用いたり、タッチレスインタフェースを用いたりする場合等にも適用できる。
【０２８４】
また、図１０乃至図１４で示した操作方向、アイコンの数、アイコンの位置等は、その一例であり、必要に応じて変更することが可能である。また、図１０乃至図１４の提示方法は、可能な範囲で組み合わせて用いてもよい。
【０２８５】
さらに、例えば、ユーザが、自動起動するアプリケーションや提示するアプリケーションに関するルールを設定できるようにしてもよい。例えば、クライアント１２の提示制御部２３２が、ある状況における起動確率が所定の閾値以上のアプリケーションを提示し、ユーザが、必要に応じて、その状況において必ず自動起動するように設定したり、提示する優先順位を高く設定できるようにしてもよい。逆に、例えば、提示制御部２３２が、ある状況における起動確率が所定の閾値未満のアプリケーションを提示し、ユーザが、必要に応じて、その状況において提示しないように設定したり、提示する優先順位を低く設定できるようにしてもよい。
【０２８６】
｛機能分担等に関する変形例｝
上述したサーバ１１とクライアント１２の機能の分担は、その一例であり、任意に変更することが可能である。
【０２８７】
例えば、サーバ１１の学習部１３２及び選択部１３３に相当する機能をクライアント１２に設け、サーバ１１を介さずに、クライアント１２単独で、学習処理（起動予測モデルの生成）、並びに、提示アプリケーションの選択及び提示を行うようにしてもよい。
【０２８８】
また、例えば、サーバ１１の選択部１３３に相当する機能をクライアント１２に設け、クライアント１２が、サーバ１１から学習結果（例えば、起動予測モデル）を受信し、受信した学習結果に基づいて、提示アプリケーションの選択及び提示を行うようにしてもよい。
【０２８９】
また、クライアント１２において提示アプリケーションの選択を行う場合、例えば、クライアント１２が、選択結果を示すアプリケーションリストを他の装置（例えば、上述したクライアント１２と連携して動作する装置）に送信するようにしてもよい。
【０２９０】
｛コンピュータの構成例｝
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０２９１】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２９２】
また、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０２９３】
さらに、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２９４】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０２９５】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２９６】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２９７】
また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【０２９８】
さらに、例えば、本技術は以下のような構成も取ることができる。
【０２９９】
（１）
現在の日時及びユーザの現在位置を含む現在の状況を示す第１の情報を取得する情報取得部と、
前記ユーザのアプリケーションプログラムの使用履歴であって、各アプリケーションプログラムの起動時の日時及び前記ユーザの位置を含む起動時の状況を示す第２の情報を含む使用履歴、前記ユーザのプロファイル、並びに、前記第１の情報に基づいて、前記ユーザに提示するアプリケーションプログラムである提示アプリケーションを選択する選択部と
を備える情報処理装置。
（２）
前記選択部は、さらに他のユーザの前記使用履歴に基づいて、前記提示アプリケーションを選択する
前記（１）に記載の情報処理装置。
（３）
前記他のユーザは、前記ユーザと類似するユーザである
前記（２）に記載の情報処理装置。
（４）
前記類似するユーザは、前記ユーザと保有するアプリケーションプログラムが類似するユーザである
前記（３）に記載の情報処理装置。
（５）
前記選択部は、各アプリケーションプログラムの起動確率を予測するモデルであって、前記ユーザの前記使用履歴に基づいて生成された第１のモデル、及び、前記他のユーザの前記使用履歴に基づいて生成された第２のモデルを用いて、前記提示アプリケーションを選択する
前記（２）乃至（４）のいずれかに記載の情報処理装置。
（６）
前記選択部は、各アプリケーションプログラムの起動確率を予測するモデルを用いて選択したアプリケーションプログラム、及び、前記選択したアプリケーションプログラムと類似するアプリケーションプログラムの中から前記提示アプリケーションを選択する
前記（１）乃至（４）のいずれかに記載の情報処理装置。
（７）
前記類似するアプリケーションプログラムは、前記選択したアプリケーションプログラムと保有するユーザの分布が類似するアプリケーションプログラムである
前記（６）に記載の情報処理装置。
（８）
所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに備え、
前記選択部は、前記提示アプリケーションの優先順位を設定し、
前記表示制御部は、前記画面内において所定の操作が行われたとき、複数の前記アイコンを前記優先順位に従って前記画面内に並べて表示させるとともに、前記優先順位が高い前記提示アプリケーションの前記アイコンほど前記操作が行われた位置の近くに表示させる
前記（１）乃至（７）のいずれかに記載の情報処理装置。
（９）
所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに備え、
前記選択部は、前記提示アプリケーションの優先順位を設定し、
前記表示制御部は、複数の前記アイコンを前記優先順位に従って前記画面内に並べて表示させるとともに、前記優先順位が高い前記提示アプリケーションの前記アイコンほど隣接する前記アイコンとの間隔を広くする
前記（１）乃至（７）のいずれかに記載の情報処理装置。
（１０）
所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに備え、
前記選択部は、前記提示アプリケーションの優先順位を設定し、
前記表示制御部は、前記画面内においてユーザにより指示された位置の移動距離に応じて、前記画面内に表示する前記アイコンを前記優先順位に従って切り替えるとともに、前記画面内に表示する前記アイコンを切り替えるために必要な前記移動距離を前記優先順位に応じて調整する
前記（１）乃至（７）のいずれかに記載の情報処理装置。
（１１）
所定の画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部をさらに備え、
前記選択部は、前記提示アプリケーションの優先順位を設定し、
前記表示制御部は、複数の前記アイコンを前記優先順位に従って前記画面内に並べて表示させるとともに、前記画面内においてユーザにより指示された位置が所定の第１の方向に移動すると、前記画面内に表示する前記アイコンを前記優先順位に従って切り替え、前記指示された位置が前記第１の方向と異なる第２の方向に移動すると、前記画面内に表示する前記アイコンを前記優先順位の逆順に従って切り替える
前記（１）乃至（７）のいずれかに記載の情報処理装置。
（１２）
前記ユーザが保有する前記提示アプリケーションを表すアイコンと、前記ユーザが保有していない前記提示アプリケーションを表すアイコンとを区別して画面内に表示させる表示制御部を
さらに備える前記（１）乃至（７）のいずれかに記載の情報処理装置。
（１３）
ユーザ操作が制限されるロック画面内において前記提示アプリケーションを表すアイコンの表示を制御する表示制御部と、
前記アイコンが選択された場合、ユーザ操作の制限を解除し、選択された前記アイコンに対応する前記提示アプリケーションを使用可能な状態にする実行制御部と
をさらに備える前記（１）乃至（７）のいずれかに記載の情報処理装置。
（１４）
前記起動時の状況は、アプリケーションプログラムの起動時の前記ユーザの状態を含み、
前記現在の状況は、現在の前記ユーザの状態を含む
前記（１）乃至（１３）のいずれかに記載の情報処理装置。
（１５）
各アプリケーションプログラムの起動確率を予測するモデルを生成する学習部をさらに備え、
前記選択部は、前記モデルを用いて、前記提示アプリケーションを選択する
前記（１）乃至（４）及び（７）乃至（１４）のいずれかに記載の情報処理装置。
（１６）
前記学習部は、所定の周期関数を用いて、指定された日時における各アプリケーションプログラムの起動確率を予測する第１のモデル、及び、複数の代表点を設定し、各前記代表点における各アプリケーションの前記起動確率に基づいて、指定された位置における各アプリケーションプログラムの起動確率を予測する第２のモデルのうち少なくとも１つを生成する
前記（１５）に記載の情報処理装置。
（１７）
前記提示アプリケーションの選択結果を示す情報を他の情報処理装置に送信する通信部を
さらに備える前記（１）乃至（１６）のいずれかに記載の情報処理装置。
（１８）
ユーザ操作によらずに前記提示アプリケーションを使用可能な状態にする実行制御部を
さらに備える前記（１）乃至（１７）のいずれかに記載の情報処理装置。
（１９）
現在の日時及びユーザの現在位置を含む現在の状況を示す第１の情報を取得する情報取得ステップと、
前記ユーザのアプリケーションプログラムの使用履歴であって、各アプリケーションプログラムの起動時の日時及び前記ユーザの位置を含む起動時の状況を示す第２の情報を含む使用履歴、前記ユーザのプロファイル、並びに、前記第１の情報に基づいて、前記ユーザに提示するアプリケーションプログラムである提示アプリケーションを選択する選択ステップと
を含む情報処理方法。
（２０）
現在の日時及びユーザの現在位置を含む現在の状況を示す第１の情報を取得する情報取得ステップと、
前記ユーザのアプリケーションプログラムの使用履歴であって、各アプリケーションプログラムの起動時の日時及び前記ユーザの位置を含む起動時の状況を示す第２の情報を含む使用履歴、前記ユーザのプロファイル、並びに、前記第１の情報に基づいて、前記ユーザに提示するアプリケーションプログラムである提示アプリケーションを選択する選択ステップと
を含む処理をコンピュータに実行させるためのプログラム。
【符号の説明】
【０３００】
１  情報処理システム，  １１  サーバ，  １２−１乃至１２−ｎ  クライアント,  １０１  ＣＰＵ，  １０９  通信部，  １３１  情報取得部，  １３２  学習部，  １３３  選択部，  １３４  提示制御部，  １４１  特徴量ベクトル生成部，  １４２  モデル学習部,  １５１  スコア算出部，  １５２  類似アプリケーション検索部，  １５３  提示アプリケーション選択部，  １６１  アプリケーション提供部,  １６２  アプリケーションリスト生成部,  ２０１  ＣＰＵ，  ２０６  入力部，  ２０７  出力部，  ２０８  センサ部，  ２１０  通信部，  ２３１  情報取得部，  ２３２  提示制御部，  ２４１  表示制御部，  ２４２  実行制御部，  ３０１  スマートフォン，  ３０２  指，  ３１１  画面，  ３２１  ボタン，  ３２６ａ乃至３２６ｄ，３４１ａ乃至３４１ｆ，３６１ａ乃至３６１ｅ，３８１ａ，３８１ｂ，４０１ａ乃至４０１ｅ  アイコン
【図１】
2015190289.tif 000003
【図２】
2015190289.tif 000004
【図３】
2015190289.tif 000005
【図４】
2015190289.tif 000006
【図５】
2015190289.tif 000007
【図６】
2015190289.tif 000008
【図７】
2015190289.tif 000009
【図８】
2015190289.tif 000010
【図９】
2015190289.tif 000011
【図１０】
2015190289.tif 000012
【図１１】
2015190289.tif 000013
【図１２】
2015190289.tif 000014
【図１３】
2015190289.tif 000015
【図１４】
2015190289.tif 000016
【図１５】
2015190289.tif 000017
【国際調査報告】
2015190289.tif 000018
2015190289.tif 000019
2015190289.tif 000020
2015190289.tif 000021