【解決手段】推定装置は、複数のユーザによる複数の地点に対する評価を示す実際の評価値を算出する算出部と、実際の評価値の推定値である推定評価値を算出するためのパラメータを、推定評価値と実際の評価値との差が小さくなるように更新する更新部と、更新されたパラメータを用いて推定評価値を算出する推定部とを備える。
前記算出部は、前記複数のユーザが行きたい地点として設定した地点、および前記複数のユーザが行った地点として設定した地点に関する設定内容に基づいて、前記複数のユーザの前記実際の評価値を算出する、
ことを特徴とする請求項1または2記載の推定装置。
前記更新部は、更新前の前記パラメータを用いた前記推定評価値と前記実際の評価値との差と、更新後の前記パラメータを用いた前記推定評価値と前記実際の評価値との差との変化量が所定値以下となるまで、前記パラメータの更新を繰り返す
ことを特徴とする請求項1から3のうちのいずれか1項に記載の推定装置。
【発明を実施するための形態】
【0010】
以下、図面を参照して、実施形態について説明する。
図1は、第1の実施形態におけるシステムの全体構成の一例を示す図である。実施形態のシステムは、情報処理端末1と、アプリケーションサーバ2と、データサーバ3と、レコメンドサーバ4と、第1ネットワーク5と、第2ネットワーク6とを含む。情報処理端末1は、第1ネットワーク5を介してアプリケーションサーバ2と通信を行うことができる。アプリケーションサーバ2、データサーバ3、およびレコメンドサーバ4は、第2ネットワーク6を介して相互に通信を行うことができる。第1ネットワーク5は、例えば、WAN(Wide Area Network)である。第2ネットワーク6は、例えば、LAN(Local Area Network)である。
【0011】
情報処理端末1は、設定部11と端末通信部12と端末表示部13と端末記憶部14とを含む。情報処理端末1は、所定のアプリケーションをインストールして実行することにより、本実施形態の処理を実現する。以下、情報処理端末1にインストールされる所定のアプリケーションを単にアプリケーションと称する。
【0012】
設定部11は、ユーザから、行きたいスポットおよび行ったスポットの設定操作を受け付けた場合、行きたいスポットおよび行ったスポットの設定を行う。例えば、設定部11は、行きたいスポットの設定操作を受け付けた場合、行きたいスポットのスポットID(Identification)を、ユーザIDに対応付けて端末記憶部14に記憶する。ユーザIDは、例えば、アプリケーションの起動時に設定されている。設定部11は、行ったスポットの設定操作を受け付けた場合、行ったスポットのスポットIDを、ユーザIDに対応付けて端末記憶部14に記憶する。なお、スポットは、地図上の地点に対応する。例えば、店舗や公共施設等が予めスポットとして登録され、端末記憶部14に記憶されている。
【0013】
端末通信部12は、ユーザの操作に応じて、アプリケーションサーバ2にレコメンドスポット(推奨地点)の情報を要求するレコメンドリクエストをユーザIDとともに送信する。例えば、端末通信部12は、アプリケーション起動時、地図表示時、またはユーザから所定の操作を受け付けた場合等に、アプリケーションサーバ2にレコメンドリクエストをユーザIDとともに送信する。端末通信部12は、レコメンドリクエストに応じたレコメンド結果として、スポットID、レコメンドスコア、およびスポットIDに対応する各種情報をアプリケーションサーバ2から受信する。対応する各種情報としては、例えば、位置情報および店名が挙げられる。
【0014】
端末表示部13は、アプリケーションが起動された場合、GPS(Global Positioning System)を用いて得られた情報処理端末1の位置情報に基づいて、現在位置周辺の地図を表示する。また、端末表示部13は、アプリケーションサーバ2からレコメンドスポットに関する情報を受信した場合、レコメンドスポットを示すアイコンを地図上に表示する。
【0015】
端末記憶部14は、アプリケーションに用いられる各種データを記憶する。端末記憶部14は、設定部11が設定した、行きたいスポットおよび行ったスポットの設定内容、アプリケーションサーバ2から受信したレコメンドスポットに関する情報等を記憶する。
【0016】
アプリケーションサーバ2は、AS(Application Server)通信部21とAS制御部22とを含む。AS通信部21は、送信部の一例である。以下では、アプリケーションサーバをASと称することもある。
【0017】
AS通信部21は、行きたいスポットのスポットIDとユーザIDとの組を情報処理端末1から受信した場合、受信した情報をデータサーバ3に送信する。または、AS通信部21は、行ったスポットのスポットIDとユーザIDとの組を情報処理端末1から受信した場合、受信した情報をデータサーバ3に送信する。
【0018】
AS通信部21は、情報処理端末1からユーザIDとともにレコメンドリクエストを受信した場合、ユーザのスポットに対する評価値の推定値である推定評価値のリクエストをレコメンドサーバ4に送信する。
【0019】
AS制御部22は、情報処理端末1がインストールしたアプリケーションに関する各種制御を行う。例えば、AS制御部22は、情報処理端末1から受信するリクエストに応じて、情報処理端末1で表示する表示内容の制御を行う。AS制御部22は、レコメンドサーバ4から受信した各スポットの推定評価値に基づいて、レコメンドスコアを算出する。
【0020】
AS制御部22は、例えば、レコメンドサーバ4から受信したスポットの推定評価値E、情報処理端末1の現在位置からスポットまでの距離D、およびスポットに関する口コミ数Nに基づいて、以下の式(1)のようにレコメンドスコアRを算出する。なお、K
1は推定評価値Eの加重平均であり、K
2は距離Dの加重平均であり、K
3は口コミ数Nの加重平均であるとする。
【0021】
R=((K
1×E)+(K
2×D)+(K
3×N))/(K
1+K
2+K
3) (1)
【0022】
そして、AS制御部22は、レコメンドスコアが高い順に所定数(例えば、20)のスポットをレコメンドスポットとして選択する。
【0023】
AS通信部21は、選択されたレコメンドスポットのスポットIDおよびレコメンドスコアをデータサーバ3に送信する。以下では、データサーバをDSと称することもある。また、AS通信部21は、レコメンドスポットのスポットIDに対応付けられた名称、位置情報、口コミ情報、レコメンドスコア等をデータサーバ3から取得し、情報処理端末1に送信する。
【0024】
データサーバ3は、DS記憶部31とDS通信部32とを含む。DS記憶部31は、アプリケーションサーバ2から送信されたユーザおよびスポットに関する各種情報を記憶する。DS通信部32は、アプリケーションサーバ2およびレコメンドサーバ4と各種情報の送受信を行う。以下では、レコメンドサーバをRSと称することもある。
【0025】
レコメンドサーバ4は、RS(Recommend Server)通信部41と算出部42と更新部43と推定部44とRS記憶部45とを含む。レコメンドサーバ4は、推定装置およびコンピュータの一例である。
【0026】
RS通信部41は、全ユーザIDに対応付けられた、行きたいスポットおよび行ったスポットのスポットIDをデータサーバ3から受信する。
【0027】
算出部42は、RS通信部41が受信した、全ユーザIDに対応付けられた、行きたいスポットおよび行ったスポットのスポットIDに基づいて、ユーザによるスポットに対する実際の評価値を算出する。算出部42は、例えば、実際の評価値の初期値に0を設定する。そして、スポットが、ユーザが行ったスポットとして設定されている場合、算出部42は、そのスポットの評価値に所定の値SVを加算する。また、算出部42は、スポットが、ユーザが行きたいスポットとして設定されている場合、そのスポットの評価値に所定の値SFを加算する。例えば、行きたいスポットより行ったスポットを優先する場合、SV>SFとなるように、予め値を設定しておく。なお、ユーザがそのスポットに行った回数が記録されている場合、算出部42は、回数に応じて評価値を加算してもよい。
【0028】
更新部43は、ユーザのスポットに対する実際の評価値と、実際の評価値の推定値である推定評価値との差が小さくなるように、推定評価値を算出するためのパラメータを更新する。推定部44は、更新されたパラメータを用いて、レコメンドリクエストとともに送信されたユーザIDが示すユーザの推定評価値を算出する。RS通信部41は、算出された推定評価値を、アプリケーションサーバ2に送信する。RS記憶部45は、更新部43が更新したパラメータを記憶する。レコメンドサーバ4は、算出された推定値を表示装置に表示させてもよい。
【0029】
本実施形態に示す例では、アプリケーションサーバ2とレコメンドサーバ4とは別の装置であるが、レコメンドシステムは、アプリケーションサーバ2の機能とレコメンドサーバ4との機能を含む一つの情報処理装置を含んでいてもよい。
【0030】
以下、更新部43の更新処理について詳細に説明する。上述した算出部42の処理により、下記の表1に示すように、各ユーザの各スポットについての実際の評価値が得られているとする。
【0032】
また、ユーザに対応するパラメータとして、θ
miを定義し、スポットに対応するパラメータとしてx
mjを定義する。また、任意に設定される元の数がm、スポット数がn、ユーザ数がlであるとする。ユーザiのスポットjに対する推定評価値を、以下の式(2)のように表す。また、iは1からlまでの数値であり、jは1からnまでの数値であるとする。
【0034】
式(2)におけるθ
(i)、x
(j)は、以下の式(3)のように表される。
【0036】
ユーザiの全スポットに対する評価ベクトルは、以下の式(4)のように表される。なお、式(4)の右辺は、i=1の場合の評価ベクトルであるとする。
【0038】
全ユーザの全スポットに対する推定評価値は、以下の式(5)のように表される。
【0040】
式(5)を用いて算出した推定評価値の初期値は、実際の評価値とは異なる値であったとする。更新部43は、式(5)を用いて算出した推定評価値と、実際の評価値との差が小さくなるように、勾配法を用いて、パラメータθ、xを更新する。推定評価値と、実際の評価値との差に基づくコスト関数J(θ,x)を、以下の式(6)のように、二乗誤差の和を用いて表す。ただし、実際の評価値が0のスポット(ユーザが行ったスポット、行きたいスポットのいずれにも該当しないスポット)については、そのユーザの評価が存在しないものとみなし、コスト関数J(θ,x)には含めないとする。式(6)において、θ
(i)T・x
(j)は、ユーザiのスポットjに対する推定評価値であり、y
(i,j)は、ユーザiのスポットjに対する実際の評価値であるとする。式(6)の右辺の第2項、第3項は、過学習を防ぐためのL2正則化項であり、kは、1からmまでの自然数である。
【0042】
なお、λは任意のパラメータであり、例えば、計算結果に基づいてユーザが適切な値に更新する。更新部43は、式(7)、(8)に示すように、θ、xそれぞれの勾配関数を算出する。
【0045】
そして、更新部43は、以下の式(9)、(10)を用いて、θ、xを更新する。更新部43は、例えば、式(9)を算出、その算出で得られたxを用いて式(10)を算出、その算出で得られたθを用いて式(9)を算出・・・というサイクルを繰り返すことにより、J(θ,x)が小さくなるθ、xを見つける。更新部43は、例えば、式(9)、式(10)の算出をそれぞれ所定回数行う。または、更新部43は、例えば、式(9)、式(10)の算出によりパラメータθ、xの更新を行う毎に、更新前のパラメータを用いたJ(θ,x)の値と更新後のパラメータを用いたJ(θ,x)の値とを比較し、J(θ,x)の変化量が所定値以下となるまで更新を繰り返してもよい。なお、αは任意のパラメータであり、例えば、計算結果に基づいてユーザが適切な値に更新する。
【0048】
ただし、新規のユーザの推定評価値および実際の評価値は0となるので、更新部43は、平均正規化(Mean normalization)を行ってから学習する。例えば、実際の評価値y
(i,j)が上記表1のように表される場合、平均正規化後の実際の評価値y
(i,j)は、表2のように表される。
【0050】
u
nは、スポットnの全ユーザにおける評価値の平均値である。更新部43は、表2に示す平均正規化後の実際の評価値y
(i,j)を用いて上述したパラメータ更新を行う。
【0051】
更新部43は、例えば、定期的にデータサーバ3から全ユーザのユーザIDと、ユーザIDに対応付けられている、行きたいスポットのスポットID、行ったスポットのスポットIDを学習データとしてデータサーバ3から取得し、上述の処理を行うことにより、θ、xを更新してもよい。ただし、大量の学習データを一度に処理しようとすると処理に時間がかかるので、更新部43は、学習データを複数の小さなデータ群に分割して処理を行ってもよい。例えば、更新部43は、1データ群に1サンプルのみ含む分割を行ってから処理を行ってもよい。
【0052】
更新部43は、アプリケーションサーバ2からユーザIDとともに推定評価値のリクエストを受信した場合、そのユーザIDに対応づけられた最新の行きたいスポット、行ったスポットのスポットIDに基づいて実際の評価値y
(i,j)を更新し、更新したy
(i,j)を用いて、上記式(9)、式(10)の処理をそれぞれ1回実行することにより、θ、xをそれぞれ1回、更新する。これにより、ユーザの最新の状況を反映したレコメンドを実現することができる。なお、上記の推定評価値のリクエストを受信した後の更新処理の回数は、複数回であってもよい。この更新処理の回数が多いほど、θ、xの算出精度は向上するが、少ないほど、処理時間を短くすることができる。
【0053】
更新部43は、アプリケーションサーバ2からユーザIDとともに推定評価値のリクエストが送信された場合、全ユーザIDに対応づけられた最新の行きたいスポット、行ったスポットのスポットIDに基づいて評価値y
(i,j)を更新し、更新後の評価値を用いて、上記(9)、(10)の処理を1回または複数回行うことにより、θ、xを更新してもよい。全ユーザIDに関する学習データを用いることにより、精度を向上させることができる。
【0054】
推定部44は、更新部43により更新されたパラメータθ、xを用いてθ
(i)T・x
(j)を算出する。なお、上記のように学習の前に平均正規化のために、実際の評価値からu
(j)(j=1〜n)を減算しているので、算出されたθ
(i)T・x
(j)にu
jを加算した値が推定評価値y’
(i,j)となる(式(11))。
【0056】
なお、以下の式(12)に示すように、新規のユーザ(w)のパラメータθは全てのスポットに対して0となるため、推定評価値y’
(w,j)は、u
jとなる。
【0058】
図2は、ユーザに関する情報の一例を示す図である。
図2に示す情報は、データサーバ3のDS記憶部31に記憶される。
図2に示すように、DS記憶部31は、ユーザIDに、行ったスポットのスポットID、行きたいスポットのスポットID、レコメンドスポットおよびレコメンドスコアを対応付けて記憶している。
【0059】
DS記憶部31は、アプリケーションサーバ2から送信された情報に基づいて、
図2に示す各情報を更新する。DS記憶部31が記憶するユーザに関する情報は、
図2に示す情報に限られず、他の情報を含んでいてもよい。なお、
図2に示す各ユーザIDに対応する情報と同様の情報は、情報処理端末1にも記憶されていてもよい。
【0060】
図3は、スポットに関する情報の一例を示す図である。
図3に示す情報は、データサーバ3のDS記憶部31に記憶される。
図3に示すように、DS記憶部31は、スポットIDに、位置情報、住所、電話番号、および口コミを対応付けて記憶する。DS記憶部31は、アプリケーションサーバ2から送信された情報に基づいて、
図3に示す情報を更新する。DS記憶部31が記憶するスポットに関する情報は、
図3に示す情報に限られず、他の情報を含んでいてもよい。
【0061】
図4は、アプリケーションの初期表示画面の一例を示す図である。端末表示部13は、例えば、情報処理端末1上でアプリケーションが起動された場合に、
図4に示す画面を表示する。
図4に示す画面上の地図は、例えば、情報処理端末1の現在位置の周辺地図である。初期表示画面には、レコメンドスポットを示す第1のアイコン51と、予め設定された、ユーザが行ったスポットを示す第2のアイコン52と、ユーザが行きたいスポットを示す第3のアイコン53とが表示される。例えば、レコメンドスポットがユーザの行ったスポットである場合、端末表示部13は、第1のアイコン51と第2のアイコン52とを重ねて表示する。また、例えば、レコメンドスポットがユーザの行きたいスポットである場合、端末表示部13は、第1のアイコン51と第3のアイコン53とを重ねて表示する。
【0062】
また、アプリケーションの初期表示画面には、行ったスポットおよび行きたいスポットのリスト画面に遷移する第4のアイコン54とチェックイン画面に遷移する第5のアイコン55と現在位置を示す第6のアイコン56とが含まれる。例えば、ユーザが移動したことにより、表示している画面上の地図が現在位置の周辺でなくなった場合に、ユーザが第6のアイコン56を押下すると、端末表示部13は、GPSで得られた位置情報を用いて、情報処理端末1の現在位置の周辺地図を表示する。
【0063】
また、アプリケーションの初期表示画面は、検索窓57と検索結果リスト58とタブ59とを含む。情報処理端末1は、検索窓57に検索ワードが入力されると、検索ワードをアプリケーションサーバ2に送信し、アプリケーションサーバ2から検索ワードに応じたスポットの情報を取得する。そして、端末表示部13は、取得したスポットに関する情報を検索結果リスト58に表示する。タブ59が上にドラックされた場合、端末表示部13は、検索結果リスト58の表示領域を拡大し、地図表示領域を縮小する。タブ59が下にドラックされた場合、端末表示部13は、検索結果リスト58の表示領域を縮小し、地図表示領域を拡大する。
【0064】
検索ワードを入力して検索が行われた場合、端末表示部13は、検索結果として得られたスポットを示すアイコンを地図上に表示してもよい。また、端末表示部13は、周辺の人気スポットを示すアイコン等を地図上に表示してもよい。
【0065】
図5は、チェックインリスト画面の一例を示す図である。チェックインリスト画面は、例えば、
図4に示す画面における第5のアイコン55がタップされた場合に表示される画面である。チェックインリスト画面は、例えば、ユーザが行ったスポットおよび行きたいスポットの設定に用いられる画面である。チェックインリスト画面では、
図4に示す画面において表示されていたレコメンドスポットがリスト表示される。チェックインリスト画面に表示されるスポットは、レコメンドスポットだけでなく、例えば、検索結果として得られたスポットや周辺の人気スポット等を含んでいてもよい。
【0066】
リストの各項目は、店名61、スポットの情報62、レコメンドスコア63を含む。また、ユーザが行ったスポットの表示枠内には、第7のアイコン65が表示される。ユーザが行きたいスポットの表示枠内には、第8のアイコン66が表示される。第7のアイコン65および第8のアイコン66が表示されていないスポットの表示枠内には、ユーザが行きたいスポットを設定可能な第9のアイコン67が表示されている。第9のアイコン67がタップされた場合、設定部11は、第9アイコン67が表示されているスポットを、ユーザが行きたいスポットとして設定する。ユーザが行きたいスポットが設定された場合、端末表示部13では、第9のアイコン67の色が変更される。言い換えれば、第9のアイコン67は、第7のアイコン65に変化する。
【0067】
そして、いずれかのスポットの表示枠内がタップされた場合、端末表示部13は、チェックイン画面に遷移させる。
【0068】
図6は、チェックイン画面の一例を示す図である。チェックイン画面は、
図5に示すチェックインリスト画面のいずれかのスポットの表示枠内がタップされた場合に遷移する画面である。チェックイン画面は、店名71、レコメンドスコア72、行きたいスポットの設定に用いる第10のアイコン73、戻るボタン74、スポットの写真75、スポットの詳細情報76、チェックインボタン77を含む。第10のアイコン73の機能は、
図5に示す第9のアイコン67の機能と同様であり、ユーザが行きたいスポットの設定に用いられる。
【0069】
戻るボタン74がタップされた場合、端末表示部13は、
図5のチェックインリスト画面を表示する。詳細情報76には、チェックインリスト画面に表示されていた情報よりも詳細な情報(例えば、住所、電話番号、口コミ等)が表示される。ユーザがチェックインボタン77をタップすると、設定部11は、表示されているスポットを行ったスポットとして設定する。
【0070】
図7は、情報処理端末1の処理の一例を示すフローチャートである。以下では、フローチャートの各ステップをSで表示する。
図7に示す処理は、情報処理端末1がアプリケーションを起動した際に開始される。端末表示部13は、GPSを用いて得られた情報処理端末1の位置情報に基づいて、現在位置周辺の地図を表示する(S101)。端末通信部12は、アプリケーションサーバ2にレコメンドスポットの情報を要求するレコメンドリクエストをユーザIDとともに送信する(S102)。アプリケーションサーバ2からレコメンドスポットに関する情報を受信した場合、端末表示部13は、レコメンド結果として、レコメンドスポットを示すアイコンを地図上に表示させる(S103)。レコメンドスポットを示すアイコンは、例えば、
図4に示す第1のアイコン51である。
【0071】
端末表示部13が表示した画面上で、行きたいスポットの設定操作が行われた場合(S104でYES)、設定部11は、行きたいスポットを設定する(S105)。行きたいスポットの設定操作は、例えば、
図5に示すチェックインリスト画面で第9のアイコン67をタップする操作、または
図6に示すチェックイン画面で第10のアイコン73をタップする操作である。行きたいスポットの設定が行われると、端末通信部12は、行きたいスポットの設定内容として行きたいスポットのスポットIDおよびユーザIDをアプリケーションサーバ2に送信する(S106)。S104でNOの場合またはS106の処理後、処理はS107に移行する。
【0072】
端末表示部13が表示した画面上で、行ったスポットの設定操作が行われた場合(S107でYES)、設定部11は、行ったスポットを設定する(S108)。行ったスポットの設定操作は、例えば、
図6に示すチェックイン画面でチェックインボタン77をタップする操作である。行ったスポットの設定が行われると、端末通信部12は、行ったスポットの設定内容として行きたいスポットのスポットIDおよびユーザIDをアプリケーションサーバ2に送信する(S109)。
【0073】
なお、上記の処理では、情報処理端末1は、レコメンド結果を受信した後に行きたいスポット、行ったスポットの設定を行うが、レコメンド結果を受信する前に、検索結果として得られたスポットや周辺の人気スポットに対して、行きたいスポット、行ったスポットの設定を行ってもよい。
【0074】
図8は、アプリケーションサーバ2の処理の一例を示す図である。AS通信部21は、情報処理端末1からレコメンドリクエストとユーザIDを受信した場合(S201でYES)、推定評価値のリクエストとユーザIDをレコメンドサーバ4に送信する(S202)。
【0075】
AS通信部21は、レコメンドサーバ4から、各スポットの推定評価値を受信する(S203)。AS制御部22は、受信したスポットの推定評価値に基づいて、レコメンドスコアを算出する(S204)。AS制御部22は、レコメンドスコアが高い順に所定数(例えば、20)のスポットをレコメンドスポットとして選択する(S205)。
【0076】
AS通信部21は、レコメンドスポットのスポットIDに関する各種情報を、データサーバ3から取得し、レコメンド結果として情報処理端末1に送信する(S206)。なお、レコメンドスポットのスポットIDに関する各種情報としては、例えば、名称、レコメンドスポットの位置情報、口コミ情報、若しくはレコメンドスコアが挙げられる。また、AS通信部21は、レコメンドスポットのスポットIDと算出されたレコメンドスコアとをデータサーバ3に送信してもよい。データサーバ3は、送信されたデータを用いて、
図2に示す各ユーザのレコメンドスポットおよびレコメンドスコアを更新する。
【0077】
AS通信部21は、ユーザIDとともに行きたいスポットまたは行ったスポットのスポットIDを情報処理端末1から受信した場合(S207でYES)、受信したユーザIDおよびスポットIDをデータサーバ3に送信する(S208)。データサーバ3は、送信されたデータを用いて、
図2に示す各ユーザの行きたいスポットまたは行ったスポットを示すスポットIDを更新する。
【0078】
図9は、第1の実施形態におけるレコメンドサーバ4の処理の一例を示すフローチャートである。RS通信部41は、全ユーザIDに対応付けられた、行きたいスポットおよび行ったスポットのスポットIDを取得する(S301)。算出部42は、実際の評価値を、ユーザが行きたいスポットとして設定したスポット、および行ったスポットとして設定したスポットに関する設定内容に基づいて、算出する(S302)。設定したスポットに関する設定内容としては、例えば、
図2に示す、行ったスポットのID、若しくは行きたいスポットのスポットIDが挙げられる。設定したスポットに関する設定内容は、行ったスポットのID、行きたいスポットのスポットIDの他、ユーザが参照した参照スポットのスポットID、ユーザが検索した検索スポットのスポットID、ユーザの属性情報であってもよい。設定内容が複数ある場合、優先度をつけてもよい。
【0079】
更新部43は、実際の評価値と、実際の評価値の推定値である推定評価値との差が小さくなるように、推定評価値を算出するためのパラメータを更新する(S303)。レコメンドサーバ4は、S301〜S303の処理を所定時間毎に実行してもよい。
【0080】
RS通信部41は、アプリケーションサーバ2から、いずれかのユーザの推定評価値のリクエストをそのユーザのユーザIDとともに受信した場合(S304でYES)、そのユーザIDに対応付けられた、行きたいスポットおよび行ったスポットのスポットIDをデータサーバ3から受信する(S305)。S304でNOの場合、処理は、S305に移行しない。
【0081】
算出部42は、S305で取得されたスポットIDに基づいて、S304で送信されたユーザIDが示すユーザの実際の評価値を算出する(S306)。更新部43は、算出された実際の評価値を用いて、S303で更新されたパラメータをさらに所定回(例えば、1回)更新する(S307)。なお、更新部43は、S306における更新を複数回行ってもよい。
【0082】
推定部44は、S306で更新されたパラメータを用いて、S304で送信されたユーザIDが示すユーザの推定評価値を算出する(S308)。RS通信部41は、算出された推定評価値を、アプリケーションサーバ2に送信する(S309)。
【0083】
以上のように、レコメンドサーバ4は、ユーザが行ったスポットおよび行きたいスポットに基づく実際の評価値を学習データとして用いて、推定評価値を算出する。推定評価値は、ユーザに提示されるレコメンドスポットの決定およびレコメンドスコアの算出に用いられる。これにより、情報処理端末1が、ユーザの特性に応じたレコメンドスポットを提示することができる。また、推定評価値は、実際の評価値とは異なるため、意外性があるスポットが提示される可能性がある。また、レコメンドサーバ4は、学習データの量が少なくても、同様の処理で推定評価値を算出することができる。
【0084】
また、レコメンドサーバ4は、S305〜S307に示すように、推定評価値の要求を受信した後に、ユーザに関する最新の情報を用いてパラメータを更新するため、最新のユーザの行動を反映したスポットを提示することができる。また、レコメンドサーバ4は、S301〜S303の処理のように予めパラメータの更新を行っておき、推定評価値の要求を受信した後の処理を最小限にすることにより、情報処理端末1がレコメンドリクエストを送信してから結果を受信するまでの待ち時間を少なくすることができる。
【0085】
また、パラメータθ、xは、意味を持たない値であるため、スポットの種類やユーザの属性を事前に定義する必要がない。ここで、ユーザの属性としては、例えば、年齢、性別が挙げられる。よって、第1の実施形態のシステムでは、スポットの種類が増えたり、ユーザの属性が増えても容易にレコメンドスポットを提示できるように対応することができる。
【0086】
図10は、第2の実施形態におけるシステムの全体構成の一例を示す図である。第2の実施形態におけるシステムは、レコメンドサーバ4が分類部46を含む点で第1の実施形態におけるシステムと異なる。第1の実施形態と同様の部分については説明を省略する。
【0087】
RS通信部41は、データサーバ3から、各スポットIDに対応付けられている口コミ(例えば、
図3参照)を受信する。
【0088】
分類部46は、データサーバ3から受信した、各スポットIDに対応付けられている口コミを用いて、スポットの表現ベクトルを生成し、複数のスポットを複数のクラスタに分類する。分類部46は、口コミに限らず、スポットに関する他の情報に基づいてスポットを分類してもよい。
【0089】
算出部42は、複数のユーザの複数のスポットに対する評価を示す実際の評価値をクラスタ毎に算出する。更新部43は、クラスタ毎の実際の評価値の推定値である推定評価値を算出するためのパラメータを、推定評価値と実際の評価値との差が小さくなるように更新する。
【0090】
推定部44は、更新部43が更新したパラメータを用いてクラスタ毎の推定評価値を算出する。RS通信部41は、算出されたクラスタ毎の推定評価値をアプリケーションサーバ2に送信する。
【0091】
以下、分類部46の処理について、詳細に説明する。分類部46は、RS通信部41が取得した、各スポットIDに対応付けられている口コミに含まれている全ワードを、Word2VELを用いてベクトル化する。全ワードをWとした場合、Wは、以下の式(13)のように表される。
【0092】
W={w
(1),w
(2),...,w
(x)} (13)
【0093】
w
(i)(i=1〜x)は、ベクトル化されたワードであり、xは全口コミに登場するユニークな単語数であるとする。Word2VELを適用する際に任意に指定する次元数をnwとした場合、w
(i)は、以下の式(14)のように表される。
【0095】
そして、分類部46は、ベクトル化されたワードを、k−means法を用いて複数のクラスタに分類する。分類された全ワードは、以下の式(15)のように表される。
C
w={C
w(1){w
c1(1)…w
c1(n)},C
w(2){w
c2(1)…w
c2(n)}・・・C
w(nc){w
cnw(1)…w
cnw(n)}} (15)
ncは、任意に指定された、単語を分類するクラスタの総数である。ユニークな単語の代わりに、クラスタを用いて各スポットの口コミを表すと、表3のように表される。
【0097】
分類部46は、分類後の口コミに対してtf−idfを実行する。スポットIDがiであるスポットの表現ベクトルをs
(i)とし、そのスポットの口コミをd
(i)(C
(1),C
(2)...)とした場合、tf−idf実行後のs
(i)は、以下の式(16)のように表される。
【0099】
分類部46は、式(16)で示したスポットの表現ベクトルをk−means法により分類する。k−means法を用いることにより、似たスポットが同じクラスタに分類される。この結果、スポットIDとクラスタIDとの関係が以下の式(17)のように得られる。なお、nsは、任意に指定される、スポットを分類するクラスタ総数である。
C
s={C
s(1){S
c1(1)…S
c1(n)},C
s(2){S
c2(1)…S
c2(n)}・・・C
s(ns){S
ns(1)…S
ns(n)}} (17)
算出部42は、式(17)に示す分類結果に基づいて、実際の評価値を、クラスタ毎に算出する。例えば、ユーザiのクラスタに対する評価ベクトルU
(i)は、以下の式(18)のように表される。
【0101】
countC
(s)(1),...,countC
(s)(ns)は、クラスタ内のスポットのうち、ユーザが行きたいスポットに設定しているスポットの数と行ったスポットに設定しているスポットの数との合計であるとする。例えば、ユーザiのクラスタjに対する評価値は、countC
(s)(j)となる。
【0102】
算出部42は、例えば、クラスタ内のスポットのうち、ユーザが行ったスポットに設定している数と行きたいスポットに設定している数とに異なる重み付けをして、ユーザのクラスタに対する実際の評価値を算出してもよい。算出部42は、例えば、クラスタ内のスポットのうち、ユーザが行ったスポットに設定している数をCVとし、ユーザが行きたいスポットに設定している数をCFとし、以下の式(19)により、ユーザのクラスタに対する評価値を算出してもよい。K
4は、CVの重み付け係数であり、K
5は、CFの重み付け係数である。例えば、行ったスポットを行きたいスポットより優先する場合、K
1>K
2となるように、予めK
4、K
5が設定される。
【0103】
ユーザのクラスタに対する実際の評価値=K
4×CV+K
5×CF (19)
【0104】
算出部42は、ユーザが行ったスポットに設定している数、ユーザが行きたいスポットに設定している数とともに、ユーザが参照した参照スポットの数、ユーザが検索した検索スポットの数を用いて、ユーザのクラスタに対する実際の評価値を算出してもよい。算出部42は、ユーザが行ったスポットに設定している数、ユーザが行きたいスポットに設定している数、ユーザが参照した参照スポットの数、ユーザが検索した検索スポットの数のうちの少なくとも一つを用いて、ユーザのクラスタに対する実際の評価値を算出してもよい。
【0105】
更新部43は、上記式(6)〜(8)において、実際の評価値y
(i,j)の代わりに式(19)に示されるクラスタに対する評価値を用いて、実際の評価値と推定評価値との差が小さくなるように、パラメータθ、xを更新する。そして、推定部44は、更新されたパラメータθ、xを用いて、クラスタ毎の推定評価値を算出する。
【0106】
推定部44は、更新されたパラメータを用いて、各ユーザのクラスタに対する推定評価値を算出する。RS記憶部45は、更新されたパラメータと、分類結果を記憶する。RS通信部41は、分類部46の分類結果と、推定部44が推定した、クラスタに対する推定評価値をアプリケーションサーバ2に送信する。アプリケーションサーバ2は、クラスタに対する推定評価値を、クラスタ内のスポットの推定評価値として扱い、第1の実施形態と同様の処理を行う。
【0107】
スポットの数は、ユーザ数に対して非常に大きいため、スポット毎の評価値を用いてパラメータを算出した場合、処理時間が長くなる。しかし、更新部43によるパラメータの更新の前に、分類部46が分類を行うことにより、更新部43の処理時間を短くすることができる。
【0108】
なお、スポットIDに対応する口コミが更新された場合は、分類部46は、上記の分類処理を再実行し、式(17)を更新する。そして、更新された分類結果を用いて、算出部42、更新部43および推定部44は、上記と同様の処理を行うことにより、クラスタ毎の推定評価値が更新される。
【0109】
図11は、第2の実施形態におけるレコメンドサーバの処理の一例を示すフローチャートである。なお、第2の実施形態において、情報処理端末1およびアプリケーションサーバ2の処理は、
図7,8に示した第1の実施形態の処理と同様である。第2の実施形態では、分類部46は、複数のスポットを、スポットに関する情報(例えば、口コミ)を用いて複数のクラスタに分類する(S401)。
【0110】
S402〜S410の処理は、第1の実施形態におけるS301〜S309(
図9)の処理と同様である。ただし、第1の実施形態では、スポット毎の実際の評価値とスポット毎の推定評価値に関する処理を行うが、第2の実施形態では、クラスタ毎の実際の評価値とクラスタ毎の推定評価値に関する処理を行う点が異なる。
【0111】
次に、レコメンドサーバ4のハードウェア構成の一例を説明する。
図12は、レコメンドサーバ4のハードウェア構成の一例を示す図である。
図12の例に示すように、レコメンドサーバ4において、バス100に、プロセッサ111とメモリ112と補助記憶装置113と通信インタフェース114と媒体接続部115と入力装置116と出力装置117とが接続される。
【0112】
プロセッサ111は、メモリ112に展開されたプログラムを実行する。実行されるプログラムには、実施形態における処理を行うプログラムが適用されてもよい。メモリ112は、例えば、Random Access Memory(RAM)である。補助記憶装置113は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等が適用されてもよい。補助記憶装置113に実施形態の処理を行うプログラムが記憶されていてもよい。
【0113】
メモリ112、補助記憶装置113および可搬型記録媒体118は、コンピュータが読み取り可能であって非一時的な有形の記憶媒体であり、信号搬送波のような一時的な媒体ではない。
【0114】
通信インタフェース114は、LAN、WAN等の通信ネットワークに接続され、通信に伴うデータ変換等を行う。媒体接続部115は、可搬型記録媒体118が接続可能なインタフェースである。可搬型記録媒体118には、光学式ディスク、半導体メモリ等が適用されてもよい。可搬型記録媒体118に実施形態の処理を行うプログラムが記録されていてもよい。
【0115】
入力装置116は、例えば、キーボード、ポインティングデバイス等であり、ユーザからの指示及び情報等の入力を受け付ける。出力装置117は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザへの問い合わせ又は指示、及び処理結果等を出力する。
【0116】
図1、
図10に示すRS記憶部45は、メモリ112、補助記憶装置113または可搬型記録媒体118等により実現されてもよい。
図1、
図10に示す算出部42、更新部43、推定部44、および
図10に示す分類部46は、メモリ112に展開されたプログラムをプロセッサ111が実行することにより実現されてもよい。
【0117】
なお、レコメンドサーバ4が
図12に示す全ての構成要素を含んでいなくてもよく、一部の構成要素が省略されていてもよい。また、一部の構成要素がレコメンドサーバ4の外部装置に存在し、レコメンドサーバ4が外部装置に接続して、外部装置内の構成要素を利用してもよい。
【0118】
また、情報処理端末1、アプリケーションサーバ2、データサーバ3のハードウェア構成は、レコメンドサーバ4と同様であるため、説明を省略する。ただし、情報処理端末1は、タッチパネルを備え、タッチパネルが入力装置116および出力装置117(表示装置)として機能してもよい。
【0119】
上記実施形態の各処理、又は各機能の各々は、単一の装置又は単一のシステムにより集中処理されることで実現されてもよいし、複数の装置又は複数のシステムによって分散処理されることで実現されてもよい。また、上記実施形態の各構成要素は、専用のハードウェアにより構成されてもよい。上記実施形態の各構成要素は、ソフトウェアにより実現可能な構成要素について、プログラムを実行することによって実現されてもよい。具体的には、情報処理端末1とアプリケーションサーバ2とデータサーバ3とレコメンドサーバ4のいずれか1つの装置は、単一の装置で構成されてもよいし、複数の装置で構成されてもよい。また、上記実施形態の機能を満たすように、情報処理端末1とアプリケーションサーバ2とデータサーバ3とレコメンドサーバ4の各構成要素を含む単一の装置で構成されてもよい。
【0120】
上記実施形態の各構成要素は、例えば、記録媒体に記録されたソフトウェアのプログラムをCPUが実行することによって実現されてもよい。このCPUは、例えばプロセッサ111である。プログラムは、サーバからダウンロードされることによって実行されてもよいし、所定の記録媒体に記録されたプログラムが読み出されることによって実行されてもよい。この記録媒体は、例えば、メモリ112、補助記憶装置113または可搬型記録媒体118である。また、プログラムを実行するコンピュータは、単数であってもよいし、複数であってもよい。上記実施形態は、集中処理を行うように構成されてもよいし、分散処理を行うように構成されてもよい。
【0121】
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で様々な変更、追加、省略が適用可能である。