以下、図面と共に本発明に係る情報提供システム及び情報提供方法の好適な実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
図1に本実施形態に係る情報提供システム1の構成を示す。情報提供システム1は、クライアント携帯端末100に対して情報を提供するシステムである。クライアント携帯端末100へ提供される情報は、具体的にはクライアント携帯端末100から送信される検索クエリに対する検索結果の情報である。情報提供は、上記のようにクライアント携帯端末100からの要求に応じて行われる。図1に示すように情報提供システム1は、クライアント携帯端末100への情報提供のための主要機能を有する情報提供サーバ110を含んで構成される。また、情報提供システム1は、アクセス履歴収集システム101と、検索エンジン102とを含んでいてもよい。情報提供サーバ110、アクセス履歴収集システム101及び検索エンジン102は、互いに接続されており、情報を送受信することができる。
クライアント携帯端末100は、ユーザにより用いられる端末装置であり、ネットワークNへのアクセス機能を有している。具体的には、ネットワークNは、例えば、移動体通信網であり、クライアント携帯端末100は、携帯電話機等の移動通信端末である。クライアント携帯端末100は、所定の方法でネットワークN上の情報にアクセスする。具体的には、クライアント携帯端末100は、URL(Uniform Resource Locator)を含むHTTP(Hyper Text Transfer Protocol)リクエストをネットワークNに送信することで、URLに対応するWebサーバにアクセスしてコンテンツ(情報)を受信する。
クライアント携帯端末100は、ネットワークNを介して情報提供システム1を構成する各装置(情報提供サーバ110、アクセス履歴収集システム101及び検索エンジン102)との間で情報の送受信を行うことができる。また、クライアント携帯端末100は、検索クエリを含む検索要求を情報提供システム1に送信することによって、当該検索クエリに応じた検索結果の情報を受信する。クライアント携帯端末100は、受信した検索結果の情報を表示出力等して、ユーザへの情報の提示を行う。
アクセス履歴収集システム101は、ネットワーク上に設けられており、ユーザのアクセス先の情報の履歴を示すアクセス履歴情報を取得する手段であるシステムである。即ち、アクセス履歴収集システム101は、ユーザ毎のアクセス履歴情報を取得するアクセス履歴蓄積手段の一機能としてもよい。アクセス履歴収集システム101は、どのクライアント携帯端末100がどのコンテンツ(情報)にいつアクセスしたかという情報を取得する。具体的には、アクセス履歴収集システム101は、図2のテーブルに示すように、クライアント携帯端末100を特定する情報であるユーザID、クライアント携帯端末100により送信されたHTTPリクエストに含まれるURL、及びクライアント携帯端末100がHTTPリクエストを送信した時刻(タイムスタンプ)の各情報を対応付けて取得する。ここで、クライアント携帯端末100がHTTPリクエストを送信した時刻は、ユーザがコンテンツにアクセスした時刻を示している。
各情報の取得方法としては、例えば、アクセス履歴収集システム101がクライアント携帯端末100のプロキシサーバとして機能しており、クライアント携帯端末100から、ユーザIDを含むHTTPリクエストを受信して解析することにより行われる。また、例えば、クライアント携帯端末100から各情報を受信する等の他の方法により各情報を取得してもよい。アクセス履歴収集システム101は、取得したアクセス履歴情報を情報提供サーバ110に送信する。また、アクセス履歴収集システム101がプロキシサーバである場合等には、クライアント携帯端末100から受信したHTTPリクエストを対応するURLのWebサーバに転送する。
検索エンジン102は、クライアント携帯端末100から検索クエリを含む検索要求を受信して、当該検索クエリを用いて検索を行う装置である。ここで検索クエリは、例えば、検索に用いられるキーワードに相当する。また、検索エンジン102による検索の対象は、通常の検索エンジンと同様に、例えば、インターネット上のWebサーバのコンテンツである。検索エンジン102による検索結果を示す情報はクライアント携帯端末100に提供される情報になるので、検索エンジン102をユーザへ提供される情報を取得する提供用情報取得手段の一機能としてもよい。
検索エンジン102は、検索結果として、検索クエリに適合したURL、及びその適合度合ScoreMの一覧を取得(算出)する。適合度合ScoreMは、検索クエリに対して、どの程度、Webページが適合しているかを示す指標値である。検索エンジン102は、取得した情報を情報提供サーバ110に送信する。なお、検索エンジン102における検索自体は、既存の方法に従って行われる。
引き続いて、情報提供システム1における、クライアント携帯端末100への情報提供のための主要機能を有する情報提供サーバ110の機能について説明する。図1に示すように、情報提供サーバ110は、機能的な構成ブロックとして、特徴ベクトル生成ブロック111と、ユーザ属性毎の平均特徴ベクトル重畳ブロック140と、提供情報生成ブロック130とを備えて構成されている。
特徴ベクトル生成ブロック111は、ユーザのアクセス履歴情報に基づいて、ユーザのアクセス先の特徴を示す特徴ベクトルを生成する。特徴ベクトルは、ユーザ毎に生成される。通常、ユーザはクライアント携帯端末100毎に区別されるので、クライアント携帯端末100毎に特徴ベクトルが生成される。図1に示すように、特徴ベクトル生成ブロック111は、更に詳細な機能的な構成要素として、アクセス履歴蓄積部112と、特徴量抽出部113と、特徴ベクトル生成部114と、特徴ベクトル格納部115とを備えて構成される。
アクセス履歴蓄積部112は、アクセス履歴収集システム101から送信されるアクセス履歴情報を受信して、一定期間にわたり蓄積するアクセス履歴蓄積手段である。アクセス情報の蓄積は、例えば、図2に示すテーブルに各情報を格納することにより行われる。アクセス履歴蓄積部112にアクセス履歴情報が蓄積される上記の一定期間については、予め定められている。
特徴量抽出部113は、アクセス履歴蓄積部112により蓄積されたアクセス履歴情報により示される、ユーザの各アクセス先の情報の特徴量を抽出する特徴量抽出手段である。ここでは、ユーザのアクセス先の情報は、URLにより示されるWebページ(コンテンツ)である。特徴量は、Webページの中の画像、音声、テキスト等を含む全ての情報から、このページを反映する特徴を数値化したものである。特徴量は、予め定められた数の次元のベクトルの形式で表される。ここで、ベクトルの各次元は、Webページのトピックを示すものであり、例えば、「スポーツ」「映画」「ギャンブル」「音楽」「占い」「グルメ」等の情報を特徴づけるカテゴリ分類がなされている。この分類は、後述するように、ユーザの嗜好を特徴付ける分類である。
特徴量の抽出は、例えば、以下のように行われる。予め「単語」と、単語に対応するトピックのスコアを示す単語の特徴量を示すベクトルとを用意し、特徴量抽出部113に記憶させておく。特徴量を示すベクトルは、具体的には、「野球」に対しては「スポーツ」、「映画館」に対しては「映画」のスコアが高くなるように予め設定しておく。特徴量抽出の対象となるWebページのコンテンツのテキスト情報に対して、形態素解析を行う。その結果得られる単語ごとに上記のベクトルを加算し、ベクトルの絶対値が1となるように正規化したものを、そのWebページの特徴量とする。
単語の特徴を示すベクトルの作成にあたっては、手動で作成する。あるいは、インターネット上のオンライン百科事典(ウィキペディア)やポータルサイトのカテゴリ分類等、カテゴリ毎にコンテンツが分類されたデータを基に作成する。後者の場合は、まずカテゴリに対応するトピックを手動で設定する(例えば「野球」「サッカー」カテゴリであれば「スポーツ」トピックと対応付ける)。次に、各カテゴリのコンテンツ群に含まれる単語を抽出し、単語毎に「各カテゴリで登場する頻度分布」を算出する。次に、同一トピックと対応するカテゴリについて頻度分布を集約(加算)することで、単語毎に「各トピックで登場する頻度分布」を算出する。この頻度分布を正規化したものを単語の特徴量を示すベクトルとする。
なお、Webページの特徴量は、情報提供システム1の管理者等により入力されてもよい。その場合、特徴量抽出部113は、その入力を受け付ける(入力を受け付けることが特徴量の抽出に相当する)。なお、特徴量抽出部113によって、上述したように自動的に特徴量を抽出する場合は、特徴量の抽出対象となるWebページのコンテンツを取得する。
特徴量抽出部113による情報の特徴量の抽出は、アクセス履歴蓄積部112にアクセス履歴情報が蓄積される毎に行われてもよいし、一定時間間隔毎に行われてもよい。また、情報提供システム1の管理者等により入力される場合は、入力された際に行われる。また、一度、特徴量を抽出した情報については、特徴量を情報に対応付けて記憶しておき、その情報を再利用することとしてもよい。特徴量抽出部113は、抽出した各情報の特徴量を、ユーザ毎の情報として特徴ベクトル生成部114に出力する。
特徴ベクトル生成部114は、特徴量抽出部113により抽出された特徴量の各々から、ユーザ毎のアクセス先の情報の特徴を示す特徴ベクトルを生成する特徴ベクトル生成手段である。特徴ベクトルは、ユーザ毎の嗜好を示す情報である。特徴ベクトル生成部114は、ユーザ毎(ユーザID毎)に、ユーザが一定期間にアクセスした全てのWebページ(URL)について、Webページの特徴量を示すベクトルを合算することで特徴ベクトルKを生成する。特徴ベクトルKは、Webページの特徴量のベクトルと同じようにトピックを次元とし、その重みを値として構成され、K={k1,k2,k3,…,km}(mは次元の数を示す)と表される。
ここで、重みの値については、必要に応じて、IDF(InverseDocument Frequency)等の手段で一定の変換処理を行ってもよい。具体的には、ユーザの各トピックに対する値に対して、下記の式で表されるIDF値を乗じたものを特徴ベクトルとする。
IDF=log10(N/ni)+1
ここで、Nは全ユーザ数、niはトピックiに対応するWebページを期間内に閲覧したユーザ数を示す。閲覧するユーザ数が少ないトピックについてはIDF値が大きくなり、特異なトピックの閲覧に対して大きい重み付けをした特徴ベクトルが生成できる。
特徴ベクトル生成部114による特徴ベクトルの生成は、アクセス履歴蓄積部112にアクセス履歴情報が蓄積される毎に蓄積が行われたユーザについて行われてもよいし、一定時間間隔毎に全ユーザについて行われてもよい。特徴ベクトル生成部114は、生成した特徴ベクトルをユーザIDに対応付けて、特徴ベクトル格納部115に出力する。
特徴ベクトル格納部115は、特徴ベクトル生成部114により生成されたユーザ毎の特徴ベクトルを格納する特徴ベクトル格納手段である。特徴ベクトルの格納は、例えば、図3に示すテーブルにユーザIDと特徴ベクトルとを対応付けて格納することにより行われる。特徴ベクトル生成部114から既に特徴ベクトルを格納しているユーザIDに対応する特徴ベクトルが入力された場合は、入力された特徴ベクトルで格納する情報を更新する。
ユーザ属性毎の平均特徴ベクトル重畳ブロック140は、ユーザの属性に基づいて、ユーザに対して情報提供を行う際に用いられる特徴ベクトルを生成する。ユーザ属性毎の平均特徴ベクトル重畳ブロック140は、更に詳細な機能的な構成要素として、ユーザ属性情報格納部141と、属性平均特徴ベクトル生成部142と、属性平均特徴ベクトル格納部143と、特徴ベクトル合成部144とを備えて構成される。
ユーザ属性情報格納部141は、ユーザの属性を示す属性情報を格納する属性情報格納手段である。ユーザ属性情報格納部141は、各属性情報をユーザIDに対応付けて格納する。ユーザ属性情報格納部141に格納される属性情報は、例えば、年齢、性別及び住所等である。ユーザ属性情報格納部141に格納される属性情報は、予め各ユーザのクライアント携帯端末100からユーザIDに対応付けられて通知される。
属性平均特徴ベクトル生成部142は、属性毎の平均の特徴ベクトルを生成する手段である。属性平均特徴ベクトル生成部142は、後述する情報提供用の特徴ベクトルを生成するための特徴ベクトル合成手段の一機能である。属性平均特徴ベクトル生成部142は、ユーザ属性情報格納部141に格納されたユーザID毎の属性情報を参照して、属性毎にユーザを分類する。ここで、属性毎のユーザの分類は、例えば性別、年齢を用いて20歳代の男性、20歳代の女性といった単位で属性のカテゴリを定めて、全てのユーザを分類する。どのようにカテゴリを定めるかは、属性平均特徴ベクトル生成部142に予めカテゴリ分けのルールが記憶されており、そのルールに従って行われる。なお、ここで、全てのユーザとは、例えば、情報提供システム1により情報が提供される対象となる予め登録された全てのユーザである。
属性平均特徴ベクトル生成部142は、分類したユーザ群についての特徴ベクトルを特徴ベクトル格納部115から取得して、それぞれの属性の分類毎に特徴ベクトルの平均値を求め、属性の分類毎の平均特徴ベクトルA={a1,a2,a3,…,am}を生成する。
属性平均特徴ベクトル生成部142による平均特徴ベクトルの生成は、特徴ベクトル格納部115に特徴ベクトルが格納される毎に格納された特徴ベクトルに係るユーザが属する属性の分類について行われてもよいし、一定時間間隔毎に全属性の分類について行われてもよい。属性平均特徴ベクトル生成部142は、生成した平均特徴ベクトルを、属性の分類を特定するIDに対応付けて、属性平均特徴ベクトル格納部143に出力する。
属性平均特徴ベクトル格納部143は、属性平均特徴ベクトル生成部142により生成された属性の分類毎の平均特徴ベクトルを格納する手段である。属性平均特徴ベクトル格納部143は、後述する情報提供用の特徴ベクトルを生成するための特徴ベクトル合成手段の一機能である。平均特徴ベクトルの格納は、例えば、図4に示すテーブルに属性の分類を特定するIDと平均特徴ベクトルとを対応付けて格納することにより行われる。属性平均特徴ベクトル生成部142から既に平均特徴ベクトルを格納している、属性の分類を特定するIDに対応する平均特徴ベクトルが入力された場合は、入力された平均特徴ベクトルで格納する情報を更新する。
特徴ベクトル合成部144は、特徴ベクトル格納部115に格納されたユーザ毎の特徴ベクトルKと、同様の属性を有するユーザの特徴ベクトルとを合成(重畳)することによって、ユーザ毎の情報提供用の特徴ベクトルK´={k´1,k´2,k´3,…,k´m}を生成する特徴ベクトル合成手段である。具体的には、特徴ベクトル合成部144は、特徴ベクトル格納部115に格納されたユーザ毎の特徴ベクトルKと、属性平均特徴ベクトル格納部143に格納された当該ユーザが属する属性の分類の平均特徴ベクトルAとを取得して、合成する。ここで、特徴ベクトル合成部144は、情報提供用の特徴ベクトルK´のi番目の要素の重みk´iを、例えば、予め特徴ベクトル合成部144に記憶された以下の式により算出する。
k´i=αki+(1−α)ai
ここで、αは(0<α<1)を満たす値であり、同様の属性を持つユーザの嗜好(特徴)を反映させたい度合に応じて予め設定されて特徴ベクトル合成部144に記憶されている。
特徴ベクトル合成部144による情報提供用の特徴ベクトルの生成は、特徴ベクトル格納部115に特徴ベクトルが格納される毎に格納された特徴ベクトルに係るユーザが属する属性の分類について行われてもよいし、一定時間間隔毎に全属性の分類について行われてもよい。また、情報提供サーバ110による、クライアント携帯端末100への情報の提供が行われる際に行われてもよい。特徴ベクトル合成部144は、生成した情報提供用の特徴ベクトルの生成を、ユーザIDに対応付けて、特徴ベクトル格納部115に出力する。
特徴ベクトル格納部115は、特徴ベクトル合成部144により生成された情報提供用の特徴ベクトルを格納する特徴ベクトル格納手段である。情報提供用の特徴ベクトルの格納は、合成前の特徴ベクトルの格納と同様に、図3に示すテーブルにユーザIDと情報提供用の特徴ベクトルとを対応付けて格納することにより行われる。また、情報提供用の特徴ベクトルで、合成前の特徴ベクトルを更新することとしてもよい。
提供情報生成ブロック130は、特徴ベクトルに基づいて、ユーザに提供する情報を生成して提供を行う。提供情報生成ブロック130は、更に詳細な機能的な構成要素として、ユーザ情報抽出部131と、一次検索結果取得部132と、スコア再計算部133と、最終検索結果生成部134とを備えて構成される。
ユーザ情報抽出部131は、クライアント携帯端末100が検索エンジン102に検索クエリを送信した際に、当該クライアント携帯端末100(ユーザ)のユーザIDを取得して、当該ユーザIDに対応する情報提供用の特徴ベクトルを抽出する手段である。即ち、ユーザ情報抽出部131は、ユーザに情報を提供する情報提供手段の一機能である。具体的には、まず、ユーザ情報抽出部131は、クライアント携帯端末100が検索エンジン102に検索クエリを送信した際に、ユーザIDを含む当該検索要求を受信して、検索クエリからユーザIDを取得する。ここで、検索要求の受信は、クライアント携帯端末100から直接行われてもよいし、検索エンジン102から行われてもよい。ユーザ情報抽出部131は、取得したユーザIDに対応する情報提供用の特徴ベクトルを特徴ベクトル格納部115から取得する。ユーザ情報抽出部131は、取得した情報提供用の特徴ベクトルをスコア再計算部133に出力する。
一次検索結果取得部132は、検索エンジン102から送信される、検索結果として、検索クエリに適合したURL、及びその適合度合ScoreMの一覧を受信する手段である。この情報は、クライアント携帯端末100に提供される情報である。即ち、一次検索結果取得部132は、ユーザへ提供される情報を取得する提供用情報取得手段である。一次検索結果取得部132は、取得した情報をスコア再計算部133に出力する。
スコア再計算部133は、一次検索結果取得部132から入力される、ユーザに提供される情報である各URLに対してのスコアを計算する手段である。このスコアは、各URL(によりアクセスされるWebページのコンテンツ)がユーザの嗜好に適合している度合を示すものである。即ち、スコア再計算部133は、ユーザに情報を提供する情報提供手段の一機能である。
スコア再計算部133は、各URLに係るWebページのコンテンツの特徴量を示すベクトルを取得する。特徴量を示すベクトルは、上記の特徴量抽出部113による方法と同様に取得される。また、特徴量抽出部113により既に抽出されたベクトルを用いてもよい。スコア再計算部133は、各コンテンツの特徴量を示すベクトルと、ユーザ情報抽出部131から入力された、情報提供対象となるユーザの情報提供用の特徴ベクトルとの類似度Simを計算する。類似度Simは、各URLに係るコンテンツの特徴と、情報提供用の特徴ベクトルとの関連度を示す数値であり、数値が大きいほど大きな関連があることを示している。ベクトル間の類似度の計算は、既存の方法を用いることができる。スコア再計算部133は、この計算結果Simと、検索エンジン102により算出された適合度合ScoreMとを、各URLについて合成して、ユーザの嗜好を考慮した検索結果の適合度合を示す指標値ScoreLを算出する。ここで、スコア再計算部133は、ScoreLを、例えば、予めスコア再計算部133に記憶された以下の式により算出する。
ScoreL=β*ScoreM+(1−β)*Sim
ここで、βは(0<β<1)を満たす値であり、ユーザの嗜好(特徴)を検索結果に反映させたい度合に応じて予め設定されてスコア再計算部133に記憶されている。なお、検索エンジン102からの出力に、ScoreMが含まれない場合は、SimをScoreLとしてもよい。スコア再計算部133は、各URLを示す情報と、URLに対応するScoreLとを最終検索結果生成部134に出力する。
最終検索結果生成部134は、スコア再計算部133から入力された情報を基にクライアント携帯端末100に送信する情報を生成して送信する情報提供手段の一機能である。最終検索結果生成部134は、入力されたURLを、ScoreLの値が大きいものからソートして、最終検索結果として生成して、クライアント携帯端末100に送信して、ユーザに提示する。以上が、本実施形態に係る情報提供サーバ110の機能構成である。
図5に、情報提供システム1を構成する各装置(情報提供サーバ110、アクセス履歴収集システム101及び検索エンジン102)のハードウェア構成を示す。図5に示すように、各装置110,101,102は、CPU(Central Processing Unit)1001、主記憶装置であるRAM(Random Access Memory)1002及びROM(ReadOnly Memory)1003、ネットワークカード等のデータ送受信デバイスである通信モジュール1004、並びにハードディスク等の補助記憶装置1005等のハードウェアを備えるコンピュータとして構成される。これらの構成要素が動作することにより、上述した各装置110,101,102の機能が発揮される。なお、各装置110,101,102は、必ずしも一つのコンピュータにより構成されている必要はなく、複数のコンピュータによるコンピュータシステムにより構成されていてもよい。また、上記の2つ以上の各110,101,102の機能が一つのコンピュータにより実現されてもよい。
引き続いて、図6のフローチャートを用いて、本実施形態に係る情報提供システム1により実行される処理(情報提供方法)について説明する。
情報提供システム1では、まず、情報提供サーバ110のアクセス履歴蓄積部112によって、クライアント携帯端末100のアクセス履歴情報が一定期間取得されて蓄積される(S01、アクセス履歴蓄積ステップ)。アクセス履歴情報の蓄積は、具体的には、以下のように行われる。クライアント携帯端末100からのアクセス要求であるHTTPリクエストが、アクセス履歴収集システム101により受信される。それに基づいて、アクセス履歴収集システム101によってアクセス履歴情報が生成される。生成されたアクセス履歴情報が、アクセス履歴収集システム101から情報提供サーバ110に送信されて、アクセス履歴蓄積部112によって受信される。
続いて、特徴量抽出部113によって、ユーザの各アクセス先のURL毎にコンテンツを示す情報の特徴量が抽出される(S02、特徴量抽出ステップ)。続いて、特徴ベクトル生成部114によって、抽出された特徴量の各々から、ユーザ毎の特徴ベクトルが生成される。生成された特徴ベクトルは、特徴ベクトル格納部115によって格納される(S03、特徴ベクトル生成ステップ、特徴ベクトル格納ステップ)。
続いて、特徴ベクトル合成部142によって、属性が一致するユーザ群の特徴ベクトルが、特徴ベクトル格納部115から取得される(S04、特徴ベクトル合成ステップ)。続いて、属性平均特徴ベクトル生成部142によって、属性の分類毎に特徴ベクトルの平均値が求められ、平均特徴ベクトルが生成される(S05、特徴ベクトル合成ステップ)。生成された平均特徴ベクトルは、属性平均特徴ベクトル格納部143によって格納される。続いて、特徴ベクトル合成部144によって、ユーザ毎の特徴ベクトルと、ユーザの属する属性の分類の平均特徴ベクトルとが合成されて、ユーザ毎の情報提供用の特徴ベクトルが生成される(S06、特徴ベクトル合成ステップ)。生成されたユーザ毎の情報提供用の特徴ベクトルは、特徴ベクトル格納部115によって格納される。以上が、ユーザ毎の情報提供用の特徴ベクトルを生成するまでの処理である。
その後、クライアント携帯端末100から検索クエリを含む検索要求が検索エンジン102に送信されると以降の処理が行われる。検索エンジン102によって当該検索要求に係る検索が行われて、検索結果を示す情報が検索エンジン102から情報提供サーバ110に送信される。情報提供サーバ110では、一次検索結果取得部132により検索結果を示す情報が受信されて取得される(S07、提供用情報取得ステップ)。その一方で、ユーザ情報抽出部131によって、当該検索要求に係るクライアント携帯端末100に対応するユーザIDが取得される。
続いて、ユーザ情報抽出部131によって、取得されたユーザIDに対応する情報提供用の特徴ベクトルが特徴ベクトル格納部115から取得される。続いて、スコア再計算部133により、一次検索結果取得部132によって取得された検索結果を示す情報に含まれる各URLのコンテンツの特徴量と、ユーザ情報抽出部131によって取得された情報提供用の特徴ベクトルとに基づき、上述した方法で類似度Simが計算される(S08、情報提供ステップ)。続いて、ユーザ情報抽出部131によって、類似度Simが用いられて、上述した方法で各URLについて検索結果適合度合いScoreLが計算される。続いて、最終検索結果生成部134によって、ScoreLの大きい順に検索結果のURLがソートされた、最終検索結果を示す情報が生成される(S09、情報提供ステップ)。生成された情報は、最終検索結果生成部134からネットワークNを介して、クライアント携帯端末100に送信される(S09、情報提供ステップ)。
クライアント携帯端末100では、最終検索結果を示す情報が受信されて、表示等の出力がなされる。以上が、本実施形態に係る情報提供システム1により実行される処理である。
上述した本実施形態に係る情報提供システム1では、ユーザの各アクセス先であるWebページのコンテンツ(情報)の特徴量が抽出されて、当該特徴量から、特徴ベクトルが生成される。この特徴ベクトルは、当該ユーザと同様の属性を有するユーザの特徴ベクトルと合成されて、情報提供用の特徴ベクトルが生成される。情報提供用の特徴ベクトルに基づいて検索結果のURLのスコアが算出されて、このスコアに基づいてURLが並び替えられてユーザに検索結果として提供される。
上記のように本実施形態に係る情報提供システム1では、ユーザ自身のアクセス履歴だけでなく、当該ユーザと同様の属性を有するユーザの特徴ベクトルにも基づいて、ユーザに情報が提供される。同世代や同性、同地域等の同様の属性を有するユーザは、同様の嗜好を有している可能性が高い。従って、本実施形態に係る情報提供システム1によれば、一定期間におけるアクセス履歴が十分蓄積されておらず、十分にユーザの嗜好を反映する特徴ベクトルが得られないユーザに対しても、ユーザにとって適合度が高い、ユーザの嗜好に合う情報を提示することが可能となる。
また、同様の属性を持つユーザ内で人気の高い嗜好分野は、本人にとっても興味のある可能性が高いと考えられる。本実施形態では、こうした嗜好分野も本人の特徴ベクトルに加算されるため、アクセス履歴にはまだ現れていない潜在的な興味分野の情報をユーザに提供することができる。また、同一の属性のユーザ内で流行し始めているような分野の情報を提示候補とすることが可能である。
また、本実施形態ではコンテンツの内容を表すトピックを特徴量として用いることで、同様のトピックのコンテンツであれば、全く同一のキーワードが含まれていない場合にもいても、同様の特徴量として意味づけを行うことが可能となる。また、キーワードにより抽象化された概念であるトピックを用いることで、キーワードを特徴量とする場合に比べて少ない次元数で、ユーザの嗜好を反映する特徴ベクトルを生成することができる。この特徴ベクトルを用いることで、ユーザが普段アクセスするコンテンツとの適合度が高い情報を提示することが可能となり、より高い精度でユーザの嗜好を反映した情報の提示ができる。
また、本実施形態では、検索クエリを含む検索要求をクライアント携帯端末100から受信して、検索クエリを用いて検索を行った結果をユーザに提供される情報としていた。この構成とすれば、検索結果の情報の提示において、アクセス履歴が十分蓄積されていないユーザに対しても、ユーザにとって適合度が高い、ユーザの嗜好に合う情報を提示することが可能となる。なお、必ずしもユーザに提供される情報は検索結果である必要はなく、例えば、情報提供サーバ110等に予め保持されており、クライアント携帯端末100からの情報の要求に応じて送信されるものであってもよい。
また、情報提供は、クライアント携帯端末100からの要求に応じて行われるものでなく、情報提供システム1から自発的に行われるものであってもよい。例えば、広告配信等に上記のシステムが用いられてもよい。また、クライアント携帯端末に送信されてユーザに提供される情報も、URLに限られず、ユーザの嗜好に応じて提供されるべき情報であればどのようなものでもよい。
また、本実施形態では、情報提供用の特徴ベクトルに基づいて、提供される情報であるURLを並べ替えてユーザに提供していたが、例えば、並べ替えでなく、スコアが高い情報のみをユーザに提供する等のユーザに提供される情報を判断することとしてもよい。
上述した実施形態においては、ユーザの(一定期間における)全てのアクセス先の情報の特徴量から、当該ユーザの特徴ベクトルを生成していた。アクセス履歴情報に含まれる、ユーザが情報にアクセスした時刻を示す情報に基づいて、時間的に連続するアクセス(セッション)を特定して、そのセッションの先頭の情報のみから抽出する特徴量を基に特徴ベクトルを構成してもよい。セッションの先頭の情報は次の方法で特定する。
(ユーザ毎の)時刻順に並べたアクセス履歴のレコードを先頭から走査し、隣接する時間差を抽出する。時間差が予め設定した一定の値以上であれば、ここがセッションの区切り目であると判定する。上記手順で得られた各セッションの中で先頭のレコード(最も早い時刻にアクセスされた情報)に含まれるURLを抽出する。セッションの先頭の情報のみから特徴量を抽出する処理は、特徴量抽出部113によって行われる。
このURLから抽出された特徴量を基に特徴ベクトルを生成して、上述と同様の方法でユーザへの情報提供を行う。
アクセス履歴の中には、閲覧している情報の提供者等によってリンクが設置され、誘導されることで発生するアクセス履歴や、情報に埋め込まれたバナー広告のURLによるアクセス履歴等、ユーザの意図を必ずしも反映していないアクセス履歴が含まれていることがある。上記の構成のように、時間的に連続するアクセスの中の先頭に位置するもののみを対象とすれば、URLを直接入力してアクセスした情報やブックマーク機能を用いてアクセスした情報等、ユーザの意図によりアクセスしたもののみを抽出することができ、ユーザの意図を反映しないアクセス履歴を除外することができる。これにより、ユーザにとってより適合度が高い、ユーザの嗜好により合う情報を提示することが可能となる。
また、上述した実施形態の特徴ベクトルの生成において、ユーザが情報にアクセスした時刻を示す情報に基づいて、期間又は時間帯に応じた特徴ベクトルを生成することとしてもよい。時間帯に応じた特徴ベクトルの生成は、例えば、以下のように行われる。
まず一日をN個の時間帯に分類し、(ユーザ毎の)時間帯毎にアクセスしたURLに対応する特徴量fea
i(iは1≦i≦Nの整数)を抽出する。これにより、特徴ベクトルの各要素についてN個の時間帯毎の特徴量が生成される。これらのN個の特徴量を以下の式によって合成する。
上記の式において、FeaNは時間帯毎の特徴量を統合した合成特徴量を表し、w
iは各時間帯の特徴量の重みを表す。w
iは予め値が設定されて、特徴量抽出部113に記憶されている。曜日によって時間帯を設定する場合は、同様に曜日毎の特徴量を生成して、それらを合成することにより合成特徴量を生成する。このように生成した合成特徴量を基に、特徴ベクトル生成部114が、特徴量の数で合成特徴量を除算する等して特徴ベクトルを生成し、上述と同様の方法でユーザへの情報提供を行う。
この構成によれば、アクセスされた時間帯を考慮した特徴ベクトルが用いられているので、時系列の振る舞いを含むユーザの嗜好を反映した情報を提供することができる。
また、特徴ベクトルは、一定の時間間隔で、直近の一定期間のアクセス履歴を基にして生成されたものに更新されてもよい。アクセス履歴に含まれる、ユーザが情報にアクセスした時刻を示す情報に基づいて、直近の一定期間のアクセス履歴のみを抽出して特徴ベクトルを更新し、この特徴ベクトルを基にユーザへの情報提供を行う。なお、どの期間のアクセス履歴に基づいて特徴ベクトルを生成するかは、特徴ベクトル生成部114に予め記憶されている。
これにより、最新のユーザの嗜好状況を反映した特徴ベクトルを生成できるので、ユーザの嗜好の変化に応じて情報の提供を行うことが可能になる。
上述した実施形態では、ユーザの特徴ベクトルを用いて提供情報の生成を行ったが、特徴ベクトルに基づいてユーザのクラスタリングを行い、ユーザの属するクラスタの平均特徴ベクトルを用いて提供情報の生成を行ってもよい。その場合の本発明の実施形態の変形例を以下に説明する。
図7に本変形例に係る情報提供システム1aの構成を示す。情報提供システム1aは、情報提供サーバ110aを含んでおり、それ以外の装置構成については上述した実施形態の情報提供システム1と同様の構成である。情報提供サーバ110aは、上述した実施形態の情報提供サーバ110の機能的な構成要素に加えて、特徴ベクトルに基づいてユーザのクラスタリング処理を行うクラスタリング処理ブロック120を備えて構成される。
クラスタリング処理ブロック120は、クラスタリング処理計算部121と、ユーザクラスタ格納部122と、クラスタ平均特徴ベクトル生成部123と、クラスタ平均特徴ベクトル格納部124とを備えて構成される。上記の各構成要素は、クラスタリングを行って、情報提供用の特徴ベクトルを更新する特徴ベクトル合成手段の機能を担っている。
クラスタリング処理計算部121は、特徴ベクトル格納部115に格納されているユーザ毎の情報提供用の特徴ベクトルを取得する。クラスタリング処理計算部121は、情報提供用の特徴ベクトルに基づいて、ユーザ間の距離を計算してユーザのクラスタリングを行う。このクラスタリングの結果は、情報提供用の特徴ベクトルの生成(更新)に用いられる。クラスタリングの計算方法は、k−means法、PLSI(Probabilistic Latent Semantic Indexing)等様々な方法があり、任意の方法を利用することができる。
ここでは、一例としてk−means法を用いる場合について説明する。まず、予め設定されクラスタリング処理計算部121に記憶されている生成するクラスタの数Lの、特徴ベクトルと同じ数の要素を有するクラスタ中心ベクトルを生成する。ここで、クラスタ中心ベクトルの各要素の値はランダムに決定する。次に、各ユーザの情報提供用の特徴ベクトルとクラスタ中心ベクトルとの距離を計算し、最も距離が近いクラスタ中心ベクトルに応じて、ユーザをL個のクラスタに分類する。ここで、各クラスタに属したユーザの情報提供用の特徴ベクトルに基づき、クラスタ中心ベクトルを更新し、以降、クラスタ中心ベクトルが収束するまでユーザのクラスタ分類処理を繰り返す。この結果、全てのユーザがベクトル距離の近いユーザ群で構成されるクラスタに分類される。クラスタリング処理計算部121は、ユーザIDに対応付けて、ユーザが属するクラスタを特定する情報であるクラスタNoをユーザクラスタ格納部122に出力する。
ユーザクラスタ格納部122は、クラスタリング処理計算部121により行われたクラスタリングの結果、生成されたクラスタを示す情報を格納する。クラスタを示す情報は、図8に示すように、ユーザIDと、クラスタNoとを対応付けて格納される。
クラスタ平均特徴ベクトル生成部123は、ユーザクラスタ格納部122に格納されるクラスタの情報、及び特徴ベクトル格納部115に格納されているユーザ毎の情報提供用の特徴ベクトルを参照して、同一のクラスタNoのユーザ群の特徴ベクトル、即ちクラスタ毎の平均特徴ベクトルC={c1,c2,c3,…,cm}を生成する。クラスタ毎の平均特徴ベクトルは、提供情報生成ブロック130における、ユーザへの情報の提供の際に参照される情報提供用の特徴ベクトルである。即ち、クラスタ平均特徴ベクトル生成部123は、ユーザ毎の、各クラスタに属するユーザの情報提供用の特徴ベクトルから情報提供用の特徴ベクトルを生成(更新)する。クラスタ毎の平均特徴ベクトルは、クラスタに含まれるユーザの平均的な特徴を反映する特徴量である。なお、k−means法を用いる場合は、最終的なクラスタを生成する過程で算出されるクラスタ中心ベクトルが、そのままクラスタ毎の平均特徴ベクトルとなる。
クラスタリング処理計算部121によるクラスタリング計算、及びクラスタ平均特徴ベクトル生成部123によるクラスタ毎の平均特徴ベクトルの生成は、例えば、特徴ベクトル合成部144によってユーザ毎の情報提供用の特徴ベクトルが生成された後のタイミングで行われる。クラスタ平均特徴ベクトル生成部123は、生成したクラスタ毎の平均特徴ベクトルをクラスタNoに対応付けて、クラスタ平均特徴ベクトル格納部124に出力する。
クラスタ平均特徴ベクトル格納部124は、クラスタ平均特徴ベクトル生成部123により生成されたクラスタ毎の平均特徴ベクトルを格納する手段である。クラスタ毎の平均特徴ベクトルの格納は、例えば、図9に示すテーブルにクラスタNoとクラスタ毎の平均特徴ベクトルとを対応付けて格納することにより行われる。クラスタ平均特徴ベクトル生成部123から既に特徴ベクトルを格納しているクラスタNoに対応するクラスタ毎の平均特徴ベクトルが入力された場合は、入力された特徴ベクトルで格納する情報を更新する。
ユーザ情報抽出部131は、取得したユーザIDから、ユーザクラスタ格納部を参照して、当該ユーザIDに対応するクラスタNoを特定する。続いて、ユーザ情報抽出部131は、特定したクラスタNoの平均特徴ベクトルを、クラスタ平均特徴ベクトル格納部124から取得する。ユーザ情報抽出部131は、取得した平均特徴ベクトルを情報提供用の特徴ベクトルとして、スコア再計算部133に出力する。以上が、本変形例に係る情報提供システム1aにおける情報提供サーバ110aの機能構成である。
引き続いて、図10のフローチャートを用いて、本変形例に係る情報提供システム1aにより実行される処理(情報提供方法)について説明する。情報提供システム1aでは、上述した処理(S01〜S06)により、ユーザの属する属性の分類の平均特徴ベクトルとユーザ毎の特徴ベクトルとが合成されて、ユーザ毎の情報提供用の特徴ベクトルが生成される(S31〜S36)。
続いて、情報提供サーバ110aでは、クラスタリング処理計算部121によって、特徴ベクトル格納部115に格納されているユーザ毎の情報提供用の特徴ベクトルが用いられて、特徴ベクトルが類似するユーザが同一クラスタとなるようにユーザのクラスタリング処理が行われる(S37、特徴ベクトル合成ステップ)。
続いて、クラスタ平均特徴ベクトル生成部123によって、クラスタ毎の平均特徴ベクトルが生成される(S38、特徴ベクトル合成ステップ)。クラスタリング処理計算部121によるクラスタリングの結果は、ユーザクラスタ格納部122に格納される。また、クラスタ平均特徴ベクトル生成部123によって生成されたクラスタ毎の平均特徴ベクトルは、クラスタ平均特徴ベクトル格納部124に格納される(S39、特徴ベクトル合成ステップ)。以上が、情報提供用の特徴ベクトルを生成するまでの処理である。
その後、クライアント携帯端末100から検索クエリを含む検索要求が検索エンジン102に送信されると以降の処理が行われる。検索エンジン102によって当該検索要求に係る検索が行われて、検索結果を示す情報が検索エンジン102から情報提供サーバ110に送信される。情報提供サーバ110では、一次検索結果取得部132により検索結果を示す情報が受信されて取得される(S40、提供用情報取得ステップ)。その一方で、ユーザ情報抽出部131によって、当該検索要求に係るクライアント携帯端末100に対応するユーザIDが取得される。
続いて、ユーザ情報抽出部131によって、取得されたユーザIDに対応するクラスタNoが、ユーザクラスタ格納部122に格納された情報が参照されて特定される。続いて、ユーザ情報抽出部131によって、特定されたクラスタNoに対応する平均特徴ベクトルが、情報提供用の特徴ベクトルとして、クラスタ平均特徴ベクトル格納部124から取得される。続いて、スコア再計算部133により、一次検索結果取得部132によって取得された検索結果を示す情報に含まれる各URLのコンテンツの特徴量と、ユーザ情報抽出部131によって取得された情報提供用の特徴ベクトルとに基づき、上述した方法で類似度Simが計算される(S41、情報提供ステップ)。続いて、上述した処理(S09,S10)により、情報提供用の特徴ベクトルが用いられて、ユーザに提供される情報が生成されて、クライアント携帯端末100に送信される(S42,S43)。以上が、本変形例に係る情報提供システム1aにより実行される処理である。
上述した本変形例に係る情報提供システム1aでは、同じクラスタに属するユーザの特徴ベクトルが考慮されるため、情報提供の対象となるユーザと嗜好が近いユーザの特徴が反映されて情報提供が行われる。例えば、ユーザ自身がアクセスしてないジャンルの情報であっても、嗜好が近いユーザがよくアクセスしている情報を提供することができ、ユーザが興味をもっている可能性が高い情報を提供することができる。即ち、情報提供システム1aによれば、更にユーザの嗜好に合う情報を提示することが可能となる。
上記の提供情報生成ブロック130では、検索結果を並べ替えてユーザに提示したが、これを検索後のサジェスチョンに応用することができる。上記のクラスタ毎に、クライアント携帯端末100から受信された各クラスタに属する全てのユーザの検索クエリを、クラスタ毎に情報提供サーバ110aの検索クエリ蓄積手段に収集し、蓄積する。これにより、各クラスタの検索クエリ集合が作成される。ユーザがクライアント携帯端末100において検索クエリの一部を入力して情報提供サーバ110aに送信した際に、そのユーザが属するクラスタの検索クエリ集合と照合し、入力された検索クエリと部分一致する語句を、入力候補としてクライアント携帯端末100に送信して、ユーザに提示することでサジェスチョンを行う。
これにより、ユーザは同様の特徴を持つユーザ群の検索クエリを知ることができ、自分では思いつかない検索クエリの入力等、精度の高い情報検索手段の提供が可能になる。
また、上記の提供情報生成ブロック130では、検索結果を並べ替えてユーザに提示したが、これを連想検索に応用することができる。上記と同様に、クラスタ毎に、クライアント携帯端末100から受信された各クラスタに属する全てのユーザの検索クエリを、クラスタ毎に情報提供サーバ110aの検索クエリ蓄積手段に収集し、蓄積する。これにより、各クラスタの検索クエリ集合が作成される。
スコア再計算部133は、検索クエリ蓄積手段から情報提供対象のユーザが属するクラスタに対応付けられる検索クエリを取得して、検索クエリと一次検索結果取得部132により取得された検索結果のURLのコンテンツとの関連度を指標値ScoreLに反映させる。具体的には、例えば、コンテンツに上記の検索クエリが含まれている数に応じて、指標値ScoreLを増加させる。また、取得した検索クエリを、ユーザに提供される検索結果に付加してユーザに提示してもよい。
これにより、ユーザと同様の嗜好(特徴)をもつユーザ群が使用する言語空間と関連の大きい情報を提示することが可能となり、検索結果の情報の提示において、更にユーザの嗜好に合う情報を提示することが可能となる。
1,1a…情報提供システム、100…クライアント携帯端末、101…アクセス履歴収集システム、102…検索エンジン、110,110a…情報提供サーバ、111…特徴ベクトル生成ブロック、112…アクセス履歴蓄積部、113…特徴量抽出部、114…特徴ベクトル生成部、115…特徴ベクトル格納部、120…クラスタリング処理ブロック、121…クラスタリング処理計算部、122…ユーザクラスタ格納部、123…クラスタ平均特徴ベクトル生成部、124…クラスタ平均特徴ベクトル格納部、130…提供情報生成ブロック、131…ユーザ情報抽出部、132…一次検索結果取得部、133…スコア再計算部、134…最終検索結果生成部、140…平均特徴ベクトル重畳ブロック、141…ユーザ属性情報格納部、142…属性平均特徴ベクトル生成部、143…属性平均特徴ベクトル格納部、144…特徴ベクトル合成部、1001…CPU、1002…RAM、1003…ROM、1004…通信モジュール、1005…補助記憶装置。