(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、図面と共に本発明に係る特徴推定装置の実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【0014】
図1に本実施形態に係る特徴推定装置であるサーバ10を示す。サーバ10は、ユーザ端末20に対してコンテンツを提供する装置である。ユーザ端末20に提供されるコンテンツは、例えば、ユーザ端末20で表示されてユーザに利用されるものである。具体的には、コンテンツは、施設(例えば、店舗やレジャー施設)の広告等である。サーバ10は、ユーザ端末20の位置を示す位置情報を取得して、当該位置情報に基づきユーザの特徴を推定し、ユーザの特徴に基づきユーザ端末20に提供するコンテンツを決定する。推定されるユーザの特徴は、例えば、ユーザの嗜好、興味である。従って、ユーザ端末20毎に(ユーザ毎に)、ユーザの嗜好、興味に合致したコンテンツの提供を行うことができる。
【0015】
ユーザ端末20は、ユーザによって携帯されて用いられる装置である。ユーザ端末20は、具体的には、携帯電話機やスマートフォン等に相当する。ユーザ端末20は、移動体通信網等のネットワークNに接続して無線通信を行う機能を有している。ユーザ端末20とサーバ10とは、ネットワークNを介して通信を行うことができ、互いに情報の送受信を行えるようになっている。ユーザ端末20は、サーバ10から送信されるコンテンツを受信し、コンテンツを利用する(例えば、表示する)機能を有している。
【0016】
ユーザ端末20は、GPS(グローバル・ポジショニング・システム)測位機能等の自端末の測位機能を有している。ユーザ端末20は、測位機能によって得られた自端末の位置である測位点を示す情報を、ユーザの位置を示す位置情報としてサーバ10に送信する。位置情報は、例えば、緯度及び経度を示す情報である。ユーザ端末20を所有するユーザには、予めユーザを特定する情報であるユーザIDが付与されており、ユーザ端末20は、予め記憶した当該ユーザIDと共に位置情報をサーバ10に送信する。ユーザ端末20による自端末の測位は、継続的に行われ、例えば、定期的(例えば、10分毎)に行われる。ユーザ端末20からサーバ10に送信される位置情報は、サーバ10側でいつ測位された位置に係る位置情報か把握されるようにしておく。例えば、ユーザ端末20は、位置情報に測位時刻を対応付けてサーバ10に送信する。あるいは、ユーザ端末20は、測位する度に位置情報をサーバ10に送信する。
【0017】
ユーザ端末20は、通常の携帯電話機やスマートフォン等と同様にCPU(Central Processing Unit)、メモリ及び無線通信モジュール等のハードウェアを備えて構成される。
【0018】
引き続いて、本実施形態に係るサーバ10の機能を説明する。
図1に示すようにサーバ10は、記憶部11と、位置情報取得部12と、滞留点算出部13と、推定部14と、コンテンツ送信部15とを備えて構成される。
【0019】
記憶部11は、サーバ10における処理に必要となる情報を記憶する記憶手段である。具体的に、記憶部11が、どのような情報を記憶するについては後述する。
【0020】
位置情報取得部12は、ユーザの位置を示す位置情報を複数取得する位置情報取得手段である。位置情報取得部12は、ユーザ端末20から送信される情報を受信して位置情報を取得する。上述したようにユーザ端末20による自端末の測位は、継続的に行われるため、複数の位置情報が取得される。なお、1つの位置情報は、1つの位置に係るものであるとする。
【0021】
位置情報取得部12は、取得した位置情報を記憶部11のユーザ測位点管理テーブルに格納する。
図2にユーザ測位点管理テーブルを示す。
図2に示すようにユーザ測位点管理テーブルは、測位点管理ID、ユーザID、経度、緯度及び測位時刻が対応付けられた情報を格納する。ユーザ測位点管理テーブルの各レコード(1つの行のデータ)が、1つの位置情報に対応する。
【0022】
測位点管理IDは、位置情報(測位点)を一意に特定するための情報である。測位点管理IDは、例えば、位置情報が測位点管理テーブルに格納される際に記憶部11によって付与される。ユーザIDは、位置情報に係るユーザID(位置情報と共に送信されるユーザID)である。経度及び緯度は、位置情報により示される測位点の緯度及び経度である。測位時刻は、位置情報により示される測位点が測位された時刻(日時)である。ユーザID、経度、経度及び測位時刻については、位置情報取得部12によってユーザ端末20から受信された情報である。なお、ユーザ端末20が、測位する度に位置情報をサーバ10に送信する場合には、位置情報取得部12が受信した時刻を測位時刻としてもよい。
【0023】
滞留点算出部13は、位置情報取得部12によって取得された位置情報それぞれによって示される位置に基づいて、ユーザが滞留した位置を示す滞留点、及び当該滞留点におけるユーザの移動の性質を算出する滞留点算出手段である。滞留点算出部13は、移動の性質として、滞留した位置においてユーザが連続して移動している時間の最大値、当該滞留した位置においてユーザが連続して静止している時間の最大値、及び当該滞留した位置におけるユーザの位置のばらつきの少なくとも何れかを算出する。
【0024】
ユーザの滞留とは、ユーザがある程度狭い領域に留まっていることであり、即ち、ユーザが所定時間以上、所定の領域内に連続して位置していることである。滞留点は、ユーザが滞留した場合に位置していた領域、又は当該領域を代表する位置である。滞留点算出部13は、ユーザID毎に滞留点、及び当該滞留点におけるユーザの移動の性質を算出する。具体的には、滞留点算出部13は、以下のように滞留点、及び当該滞留点におけるユーザの移動の性質を算出する。
【0025】
滞留点算出部13は、
図2に示す測位点管理テーブルから、算出対象(特徴の推定対象)のユーザのユーザIDの位置情報を取得する。なお、特徴の推定はユーザ毎に行う。全てのユーザを順次算出対象のユーザとしてもよいし、予め設定された特定のユーザを算出対象としてもよい。なお、測位点管理テーブルから取得する位置情報は、例えば、測位時刻に基づいて予め設定されている。具体的には、後述するように滞留点の算出時点の前日の位置情報を取得する。
【0026】
滞留点算出部13は、取得した位置情報について、測位時刻が古い順に滞留点の判断を行う。まず、滞留点算出部13は、測位時刻が最も古い位置情報に示される位置を滞留点の判断の基準位置とする。滞留点算出部13は、測位時刻が次の位置情報に示される位置と当該基準位置とを比較する。滞留点算出部13は、それらの位置の間の距離が、予め設定された滞留点判断用の距離閾値よりも小さいか否かを判断する。滞留点算出部13は、当該距離が距離閾値よりも小さいと判断したら、更に次の位置情報に示される位置と当該基準位置とを比較して、上記と同様の距離閾値に基づく判断を行う。滞留点算出部13は、距離が距離閾値よりも小さくなくなる(距離が距離閾値以上となる)まで順次判断を行う。
【0027】
滞留点算出部13は、距離が距離閾値よりも小さくなくなる1つ前の位置情報に係る測位時刻と、基準位置の位置情報に係る測位時刻とを比較する。滞留点算出部13は、それらの測位時刻の間の時間差が、予め設定された滞留点判断用の時間閾値よりも大きいか否かを判断する。滞留点算出部13は、当該時間差が時間閾値よりも大きいと判断したら、それらの位置情報(基準位置の位置情報から距離が距離閾値よりも大きくなる1つ前の位置情報までの位置情報)を、滞留点を構成する位置情報であると判断する。即ち、この場合、滞留点算出部13は、滞留点を抽出できると判断する。滞留点算出部13は、当該時間差が時間閾値よりも大きくないと判断したら、それらの位置情報(基準位置の位置情報から距離が距離閾値よりも大きくなる1つ前の位置情報までの位置情報)を、滞留点を構成する位置情報ではないと判断する。即ち、この場合、滞留点算出部13は、滞留点を抽出できないと判断する。
【0028】
また、滞留点算出部13は、距離が距離閾値よりも小さくなくなった位置情報に示される位置を新たな滞留点の判断の基準位置とし、上記と同様の判断を行う。このように、基準位置から距離閾値までの領域に、時間閾値を超える時間、ユーザが位置していれば滞留点があると判断される。なお、この距離閾値及び時間閾値は、滞留点の算出の目的等に応じて適宜設定される。なお、滞留点の判断のための領域は、上記のような基準位置に基づく円形の領域でもよいし、基準位置に基づく矩形(メッシュ)の領域でもよい。
【0029】
図2に示す測位点管理テーブルの例の場合、測位点管理IDが“POSID_00001”〜“POSID_00009”までの位置情報が1つの滞留点を構成する(“POSID_00009”の位置情報と“POSID_00010”の位置情報との間で測位点が大きく変化している)。
図3に滞留点を構成する位置情報によって示される測位点の位置を示す。
【0030】
続いて、滞留点算出部13は、滞留点を構成するとされた位置情報から、滞留点の緯度及び経度を算出する。滞留点の緯度及び経度は、滞留点を代表する位置であり、例えば、滞留点を構成するとされた位置情報によって示される位置の重心(位置の平均)とすることができる。なお、滞留点の緯度及び経度は、本方法以外で算出されてもよい。
【0031】
図2に示す測位点管理テーブルの例の場合、滞留点の緯度y及び経度xは以下のようになる。
(x−139.7530)*3+(x−139.7510)*1=(139.7550−x)*5
との関係から、x≒139.7539となる。
(y−35.7040)*6=(35.7060−y)*3
との関係から、y≒35.7047となる。
図3に滞留点の位置を示す。
【0032】
滞留点算出部13は、滞留した位置におけるユーザの位置のばらつきとして、滞留点を構成するとされた位置情報によって示される位置と、滞留点の位置との平均誤差を算出する。具体的には、まず、滞留点算出部13は、滞留点を構成するとされた各位置情報によって示される位置と滞留点の位置との距離(誤差)を算出する。例えば、測位点管理IDが“POSID_00001”の位置情報によって示される位置と、滞留点の位置との距離は以下のように算出される。
√{(139.7539−139.7510)
2+(35.7047−35.7040)
2}
≒0.0029
図2の測位点管理テーブルの横の吹き出しに各位置情報によって示される位置と滞留点の位置との距離を示す。
【0033】
滞留点算出部13は、各距離の平均を取ることで平均誤差を算出する。
図2に示す測位点管理テーブルの例である場合、平均誤差v≒0.0015となる。この平均誤差は、滞留点に対するユーザの行動量及びユーザが滞留した範囲の大きさを示しており、ユーザの動きが大きい場合に大きくなり、動きが小さい場合に小さくなる。なお、位置間の距離は、メートル等の単位で算出してもよいが、上記の例のように緯度及び経度の単位で算出してもよい。
【0034】
また、滞留点算出部13は、滞留点を構成するとされた位置情報から、滞留した位置においてユーザが連続して移動している時間の最大値、及び当該滞留した位置においてユーザが連続して静止している時間の最大値を算出する。具体的には、滞留点算出部13は、滞留点を構成するとされた位置情報のうち、測位時刻が連続する位置情報を用いてユーザが移動しているか、静止しているかを判断する。滞留点算出部13は、連続する2つの位置情報によって示される位置の間の距離が、予め設定された移動判断用の距離閾値rよりも小さいか否かを判断する。移動判断用の距離閾値rは、上述した滞留点判断用の距離閾値よりも小さく設定される。距離閾値rは、ユーザの移動の判断の目的等に応じて適宜設定される。距離閾値rは、例えば、
図3に示すようなメッシュの1辺の長さとする。
【0035】
滞留点算出部13は、当該距離が距離閾値よりも小さくない(当該距離が距離閾値以上である)と判断したら、ユーザが移動していると判断する。滞留点算出部13は、当該距離が距離閾値よりも小さいと判断したら、ユーザが静止していると判断する。なお、ユーザの移動及び静止の判断は、連続する2つの位置情報間の距離の差分と測位時間の差分とから速度を算出して、速度と閾値とを比較することで判断してもよい。滞留点算出部13は、全ての連続する2つの位置情報に対して上記の判断を行って、連続して移動している時間の最大値である最大移動時間t_move及び連続して静止している時間の最大値である最大静止時間t_staticを算出する。
【0036】
例えば、
図2に示す測位点管理テーブルの例である場合、測位点管理IDが“POSID_00004”〜“POSID_00009”の位置情報の間でユーザが連続して移動していると判断され、t_move=50分となる。また、測位点管理IDが“POSID_00002”〜“POSID_00004”の位置情報の間でユーザが連続して静止していると判断され、t_static=20分となる。
【0037】
滞留点算出部13は、上記のように算出した滞留点に係る情報を記憶部11のユーザ滞留点管理テーブルに格納する。
図4にユーザ滞留点管理テーブルを示す。
図4に示すようにユーザ滞留点管理テーブルは、滞留点管理ID、ユーザID、経度、緯度、滞留開始時刻、滞留終了時刻、最大移動時間t_move、最大静止時間t_static及び測位点平均誤差vが対応付けられた情報を格納する。ユーザ滞留点管理テーブルの各レコード(1つの行のデータ)が、1つの滞留点に対応する。
【0038】
滞留点管理IDは、滞留点を一意に特定するための情報である。滞留点管理IDは、例えば、情報がユーザ滞留点管理テーブルに格納される際に記憶部11によって付与される。ユーザIDは、滞留点の情報に係るユーザIDである。経度及び緯度は、上記のように滞留点算出部13によって算出された滞留点の緯度及び経度である。滞留開始時刻は、当該滞留点での滞留が開始された時刻(日時)であり、滞留点を構成するとされた位置情報のうち最初の位置情報の測位時刻である。滞留終了時刻は、当該滞留点での滞留が終了された時刻であり、滞留点を構成するとされた位置情報のうち最後の位置情報の測位時刻である。最大移動時間t_move、最大静止時間t_static及び測位点平均誤差vは、上記のように滞留点算出部13によって算出された値である。このように、ユーザ滞留点管理テーブルには、ユーザの滞留点の履歴が格納される。
【0039】
なお、上述した例では、1つの滞留点が算出されているが、位置情報によっては、複数の滞留点が算出される場合もあり、1つも滞留点が算出されない場合もある。
【0040】
推定部14は、滞留点算出部13によって算出された滞留点及び移動の性質と、記憶部11によって記憶された特徴情報とから、ユーザの特徴を推定する推定手段である。記憶部11は、ユーザの特徴を示す情報となり得る特徴情報を位置に応じて記憶しておく。また、記憶部11は、ジャンル毎の特徴情報を記憶しておき、当該ジャンル毎に移動の性質に応じたパラメータを記憶しておく。推定部14は、滞留点算出部13によって算出された移動の性質に応じたパラメータに基づき、ジャンル毎にユーザの特徴を示す度合いを算出する。具体的には、推定部14は、以下のようにユーザの特徴を推定する。
【0041】
本実施形態では、ユーザの特徴は、ユーザ毎の複数の特徴語の重み(ユーザ特徴語)で表される。当該重みの値が大きいほど、当該特徴語によって示される特徴をユーザが有していることを示している。例えば、当該重みの値が大きいほど、当該特徴語によって示されるものに対して、ユーザが興味を持っている、あるいは好んでいることを示している。即ち、当該重みは、特徴語毎のユーザの特徴を示す度合いを示している。特徴語は、ユーザの特徴を示す情報となり得る特徴情報に相当する。特徴語は、ユーザの嗜好、興味を示すジャンルを示している。特徴語は、具体的には、プロ野球、イベント、テーマパーク、アトラクション、スパ及びリラクゼーション等のワードである。
【0042】
記憶部11は、特徴語を位置に対応付けて記憶しておく。例えば、当該位置は各種の施設が所在する場所であり、特徴語は施設に応じたものとする。1つの位置(1つの施設)に対して、複数の特徴語が対応付けられていてもよい。例えば、プロ野球の試合が開催されたり、各種のイベントが行われたりする施設である野球場が所在する位置には、「プロ野球」及び「イベント」という特徴語が対応付けられる。記憶部11は、当該情報を施設特徴語管理テーブルで保持する。
図5に施設特徴語管理テーブルを示す。
図5に示すように施設特徴語管理テーブルは、施設特徴語組合せ情報管理ID、施設ID、施設名称、経度、緯度及び特徴語が対応付けられた情報を格納する。施設特徴語管理テーブルの各レコード(1つの行のデータ)が、1つの施設(特徴語に対応付けられる位置)と1つの特徴語との対応(組合せ)に対応する。
【0043】
施設特徴語組合せ情報管理IDは、1つの施設と1つの特徴語との対応を一意に特定するための情報である。施設IDは、施設を一意に特定するための情報である。施設名称は、施設の名称である。経度及び緯度は、施設の所在する位置の緯度及び経度である。
図3に施設の位置を示す。
【0044】
また、記憶部11は、ユーザについての特徴語毎の重みを算出する(ユーザの特徴を推定する)際に用いられる情報を特徴語管理テーブルで保持する。
図6に特徴語管理テーブルを示す。
図6に示すように特徴語管理テーブルは、特徴語管理ID、特徴語、t0、t1及びv0が対応付けられた情報を格納する。特徴語管理テーブルの各レコード(1つの行のデータ)が、1つの特徴語の情報に対応する。
【0045】
特徴語管理IDは、1つの特徴語の情報に相当する特徴語管理テーブルの各データを一意に特定するための情報である。t0、t1及びv0は、ユーザの特徴語毎の重みを算出する際に用いられるパラメータであり、それぞれが数値である。t0、t1及びv0については、後述する。
図5に示す施設特徴語管理テーブル及び
図6に示す特徴語管理テーブルに格納される情報は、予め、サーバ10の管理者等によってサーバ10に入力されている。
【0046】
推定部14は、
図4に示すユーザ滞留点管理テーブルから、算出対象のユーザのユーザIDの滞留点に係る情報を取得する。続いて、推定部14は、取得した滞留点に係る情報によって示される滞留点の緯度及び経度と、
図5に示す施設特徴語管理テーブルに格納される施設(位置)の緯度及び経度とを比較して、滞留点の位置から一定の領域内にある施設を特定する。当該一定の領域は、例えば、滞留点の位置からの距離が予め設定した閾値以下であるの領域である。本実施形態の例では、施設A、施設B、施設Cが上記の施設として特定される。
【0047】
推定部14は、特定した施設の特徴語を施設特徴語管理テーブルから抽出する。推定部14は、抽出した特徴語に対応する情報を、
図6に示す特徴語管理テーブルから取得する。推定部14は、取得した滞留点に係る情報によって示されるユーザの移動の性質(最大移動時間t_move、最大静止時間t_static及び測位点平均誤差v)、及び
図6に示す特徴語管理テーブルから取得した特徴語のパラメータ(t0、t1、v0)から、各特徴語についての重みを算出する。具体的には、推定部14は、以下の式を予め記憶しており、以下の式により各特徴語(word)についての重み(w(word))を算出する。
w(word)=α*{1/(|t0(word)−t_move|+α´)}+β*{1/(|t1(word)−t_static|+β´)}+γ*{1/(|v0(word)−v|*10000+γ´)}
【0048】
ここで、α、β、γは、wを算出するための、最大移動時間t_move、最大静止時間t_static及び測位点平均誤差vに対する重みである。例えば、α=β=γ=1とする。但し、どれを重視するかにより値を変えてもよい。α´、β´、γ´は、スムージングためのパラメータである。例えば、α´=β´=γ´=10とする。但し、上記と同様に値を変えてもよい。
【0049】
上記の式に示すように、ユーザの移動の性質を示すt_move、t_static、vの値が、それぞれ特徴語のパラメータであるt0、t1、v0に近いほど、特徴語の重み(w(word))は大きくなる。そのため、特徴語のパラメータであるt0、t1、v0は、その特徴語に対してもっともらしい値を予め設定する。例えば、「プロ野球」や「映画館」のように一定時間静止すると推定されるジャンルを示す特徴語に関しては、t0は小さく、t1は大きく、v0は小さく設定する。逆に、「テーマパーク」や「ショッピング」のように動き続けていると推定されるジャンルを示す特徴語に関しては、t0は大きく、t1は小さく、v0は大きく設定する。
【0050】
本実施形態の例では、以下のように各特徴語についての重みが算出される。
w(プロ野球)=(1/40)+(1/170)+(1/23)≒0.074
w(イベント)=(1/20)+(1/50)+(1/17)≒0.129
w(テーマパーク)=(1/10)+(1/20)+(1/12)≒0.233
w(アトラクション)=(1/50)+(1/40)+(1/15)≒0.112
w(スパ)=(1/50)+(1/110)+(1/24)≒0.071
w(リラクゼーション)=(1/50)+(1/70)+(1/24)≒0.076
【0051】
推定部14は、上記のように算出した特徴語毎の重みの値を記憶部11のユーザ特徴語管理テーブルに格納する。
図7にユーザ特徴語管理テーブルを示す。
図7に示すようにユーザ特徴語管理テーブルは、ユーザ特徴語情報管理ID、ユーザID、特徴語、重み(w)、更新時刻が対応付けられた情報を格納する。ユーザ特徴語管理テーブルの各レコード(1つの行のデータ)が、ユーザ毎の1つの特徴語に対応する。
【0052】
ユーザ特徴語情報管理IDは、ユーザ毎の特徴語(の重み)を一意に特定するための情報である。ユーザ特徴語情報管理IDは、例えば、情報がユーザ特徴語管理テーブルに格納される際に記憶部11によって付与される。ユーザIDは、特徴語(の重み)の情報に係るユーザIDである。重みは、上記のように算出された値である。更新時刻は、重みが更新された時刻(日時)である。
【0053】
ユーザ特徴語管理テーブルに格納される特徴語は、上述したように重みが算出された全ての特徴語としてもよいが、重みが閾値以上の特徴語のみとしてもよい。例えば、重みが0.1未満の、格納することが不適切と考えられる特徴語については、ユーザ特徴語管理テーブルへの格納から除外されてもよい。
【0054】
なお、1つの滞留点について、同一の特徴語が、複数回抽出された場合、抽出された回数に応じて重みの値を大きくすることとしてもよい。また、上述した例では、滞留点は1つであったが、複数の滞留点が算出された場合には、当該複数の滞留点が用いられて重みが算出されてもよい。例えば、それぞれの滞留点について上記と同様に重みを算出して、単純に算出したそれぞれ重みの値の和を取ったり、算出したそれぞれ重みの値を重み付けして和を取ったりして、複数の滞留点を用いた重みを算出されてもよい。重み付けをする場合には、新しい滞留点ほど大きな重みとなるようにしてもよい。
【0055】
また、重みを算出する際、ユーザの移動の性質を示すt_move、t_static、vの値全てを用いる必要はなく、それらの何れかが用いられてもよい。それらの何れかを用いる場合、上記の重みを算出する式を、それらの何れかに対応する項のみを含むものとすればよい。
【0056】
滞留点算出部13及び推定部14による上記の処理は、例えば、定期的なバッチ処理等の予め設定したタイミングで行われる。具体的には、毎日午前0時に計算が行われてもよい。また、計算に用いる位置情報は、前日の位置情報としてもよい。例えば、7月2日の午前0時に算出を行う場合、7月1日の位置情報(測位点)を計算に用いる。推定部14は、前日の位置情報を用いて算出した重みと、既に
図7にユーザ特徴語管理テーブルに格納されている重み(前々日までの位置情報を用いて算出した重み)とから、ユーザ特徴語管理テーブルに格納されている重みを算出して更新してもよい。例えば、単純にそれぞれ重みの値の平均を取ったり、それぞれ重みの値を重み付けした平均を取ったりして、更新する重みにしてもよい。
【0057】
コンテンツ送信部15は、推定されたユーザの特徴に基づいてユーザ端末20に送信するコンテンツを決定して送信する手段である。ユーザ端末20に送信され得るコンテンツは、予めサーバ10の管理者等によってサーバ10に入力されて記憶部11に記憶されている。また、記憶部11は、コンテンツと特徴語との対応を示す情報をコンテンツ管理テーブルで予め記憶している。この情報も予めサーバ10の管理者等によってサーバ10に入力されている。
図8にコンテンツ管理テーブルを示す。
図8に示すようにコンテンツ管理テーブルは、コンテンツID、コンテンツ名称及び特徴語が対応付けられた情報を格納する。コンテンツ管理テーブルの各レコード(1つの行のデータ)が、1つのコンテンツに対応する。
【0058】
コンテンツIDは、1つのコンテンツを一意に特定するための情報である。コンテンツ名称は、コンテンツの名称である。特徴語は、コンテンツに対応付けられた特徴語である。この特徴語は、対応付けられたコンテンツに関連しているものである。例えば、施設Dはテーマパークであり、施設D(広告)(コンテンツIDが“ContID_00001”のコンテンツ)は、テーマパーク、遊園地、トラベルといった特徴語が対応付けられる。なお、上記の通り、特徴語は、複数であってもよい。
【0059】
コンテンツ送信部15は、
図7に示すユーザ特徴語管理テーブルから、コンテンツの送信対象のユーザのユーザIDの情報を取得する。コンテンツ送信部15は、取得した情報によって示される特徴語を、重みの大きさで降順にソートする。コンテンツ送信部15は、ソートされた特徴語を、上から順に
図8に示すコンテンツ管理テーブルの特徴語と照合する。コンテンツ送信部15は、特徴語が合致した順に、当該特徴語が対応付けられたコンテンツの優先度を高く設定する。
図9に、本実施形態の例において、設定したコンテンツの優先度を示す。
図9に示すようにコンテンツIDが“ContID_00001”、“ContID_00002”、“ContID_00003”の順に優先度が高くなる。
【0060】
コンテンツ送信部15は、設定した優先度に基づき、送信するコンテンツを決定する。例えば、1つのみコンテンツを送信する場合には、最も高い優先度のコンテンツ(上記の例では、コンテンツIDが“ContID_00001”のコンテンツ)を送信するコンテンツと決定する。複数のコンテンツを送信する場合には、優先度の高い複数のコンテンツを送信するコンテンツとする。
【0061】
なお、
図8に示すコンテンツ管理テーブルにおいて、コンテンツ毎(コンテンツID毎)に優先度が設定されていてもよい。この場合、コンテンツ毎の優先度と、各ユーザの特徴語毎の重みとを用いて、各コンテンツに対して新たなパラメータを計算し、その降順に送信するコンテンツとしての優先度を高くしてもよい。新たなパラメータとしては、例えば、コンテンツの優先度と、特徴語の重みとを乗算した値とすることができる。
【0062】
コンテンツ送信部15は、送信するコンテンツとして決定したコンテンツを記憶部11から取得し、ユーザ端末20に送信する。なお、コンテンツ送信部15は、予めユーザIDに対応するユーザ端末20の宛先を記憶している。コンテンツ送信部15による送信するコンテンツの決定及びコンテンツの送信は、例えば、予め設定したタイミングで、あるいはサーバ10の管理者等によるサーバ10に対する操作をトリガとして行われる。
【0063】
あるいは、コンテンツ送信部15による送信するコンテンツの決定及びコンテンツの送信は、ユーザが滞留したタイミングで行われてもよい。この場合、ユーザ端末20からの位置情報の送信、並びに滞留点算出部13及び推定部14による上記の処理はリアルタイムで(ユーザ端末20から位置情報を受信する度に)行われる。また、この場合、現時点の滞留点のみに基づく特徴語の重みが用いられて、送信するコンテンツが決定されてもよい。以上が、本実施形態に係るサーバ10の機能である。
【0064】
図10に本実施形態に係るサーバ10のハードウェア構成を示す。
図10に示すようにサーバ10は、CPU101、主記憶装置であるRAM(Random Access Memory)102及びROM(Read Only Memory)103、通信を行うための通信モジュール104、並びにハードディスク等の補助記憶装置105等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、上述したサーバ10の機能が発揮される。以上が、サーバ10の構成である。
【0065】
引き続いて、
図11のフローチャートを用いて、サーバ10で実行される処理を説明する。ユーザ端末20から位置情報が送信されると、サーバ10では、位置情報取得部12によって位置情報が受信されて取得される(S01)。続いて、取得された位置情報に基づいて、滞留点算出部13によって、ユーザの滞留点、及び当該滞留点におけるユーザの移動の性質が算出される(S02)。続いて、算出されたユーザの滞留点、及び当該滞留点におけるユーザの移動の性質と、記憶部11に位置に応じて記憶された特徴語とから、推定部14によって当該ユーザについての特徴語毎の重みであるユーザ特徴語が算出される(S03)。
【0066】
算出された特徴語毎の重みに基づいて、コンテンツ送信部15によって、ユーザ端末20に対して送信されるコンテンツが決定される(S04)。決定されたコンテンツは、コンテンツ送信部15からユーザ端末20に送信される(S05)。送信されたコンテンツは、ユーザ端末20によって受信されて出力(例えば、表示)される。以上が、サーバ10で実行される処理である。
【0067】
上述したように本実施形態では、ユーザの位置に応じてユーザの特徴が推定される際に滞留点におけるユーザの移動の性質が考慮される。ユーザの特徴は、ユーザの滞留点だけでなく、ユーザの移動の性質に応じたものとなる。例えば、同じ野球場にユーザが訪れた場合であっても、ユーザがプロ野球を観戦する場合と、イベントに参加する場合とでは、移動の性質が異なる。本実施形態のように、移動の性質を考慮することで、これらを区別してユーザの特徴を推定することができる。あるいは、例えば、施設が密集しており、測位誤差等によりユーザが訪れた場所を正確に特定できない場合であっても、移動の性質が考慮されることで、適切にユーザの特徴を推定することができる。即ち、本実施形態によれば、ユーザに対して高精度な特徴語を付与することができ、ユーザの特徴をより正確に推定することができる。また、これにより、ユーザの特徴(嗜好、興味)により合致したコンテンツを、より適切なユーザへのコンテンツ配信が可能となる。
【0068】
また、本実施形態のように、ユーザの移動の性質として、最大移動時間t_move、最大静止時間t_static及び測位点平均誤差vの少なくとも何れかを用いることとしてもよい。この構成によれば、滞留点におけるユーザの移動の性質を確実かつ適切に算出することができ、これにより確実かつ適切に本発明を実施することができる。但し、ユーザの特徴に応じた、ユーザの移動の性質であれば、上記以外のものを用いることとしてもよい。
【0069】
また、本実施形態のように、ユーザの特徴の推定として、
図6の特徴語管理テーブルのパラメータを用いて、特徴語の重みを算出することとしてもよい。この構成によれば、ユーザの特徴の推定を確実かつ適切に算出することができ、これにより確実かつ適切に本発明を実施することができる。但し、滞留点におけるユーザの移動の性質からユーザの特徴を推定する方法であれば、必ずしも上記の方法をとる必要はない。例えば、特徴語の重みを付与するルールを予め記憶しておき、当該ルールに基づいて重みを付与してもよい。具体的には、最大静止時間が1時間に満たない場合は「映画」という特徴語は不適切であるとして重みを小さくしたり除外したりしてもよい。
【0070】
なお、本実施形態では、サーバ10は、ユーザ端末20に提供するコンテンツを決定してコンテンツの提供まで行うこととしたが、本発明に係る特徴推定装置としては、ユーザの特徴の推定まで行うこととすればよい。即ち、推定したユーザの特徴に基づき、別の装置がコンテンツの提供を行うこととしてもよい。また、コンテンツの提供以外に、推定したユーザの特徴が用いられてもよい。
【0071】
また、特徴語が対応付けられる位置は、必ずしも施設が所在する位置でなくてもよく、ユーザの特徴に係る位置、例えば、POI(Point of Interest)の位置であってもよい。