(57)【要約】【課題】従来技術では精度の高い検索結果を提示できない可能性があるという課題や、新しくできたショップなどの存在を検索結果に反映させることができないという課題がある。【解決手段】以上課題解決のため、本発明は、第一の機能として所定関数を用いて全体度数を算出し、ユーザが訪れる可能性の高いなどと推定される順などに検索結果を並び替える機能を有する。また本発明は、さらに機械学習によって上記所定の関数に含まれる重み付け値を調整する機能を備え、より正確に全体度数を推定することができるように構成されていることを特徴とする。【選択図】図２
2010086150.tif 000002
【特許請求の範囲】
【請求項１】
ショップを検索するためのクエリを受け付けるクエリ受付部と、
ショップごとのショップ属性値を保持するショップ属性値保持部と、
受け付けたクエリによりショップ属性値保持部を検索する検索部と、
受け付けたクエリと、保持されているショップ属性値と、からクエリとそのクエリに対する結果で示されるショップの対に関して両者が問と結果として適切な関係であるかを一の測定側面から指標化した値である要素度数を算出する要素度数算出部と、
前記対ごとに要素度数の関数値としての全体度数を求める際の各要素度数の関数中における重み付けを定める重み付け値を保持する重み付け値保持部と、
重み付け値を利用した関数に要素度数を代入することで対ごとに全体度数を算出する全体度数算出部と、
算出された全体度数を利用して検索部で検索された結果を降順または昇順に並べるランキング部と、
検索主体の行動履歴を取得する行動履歴取得部と、
蓄積されているクエリとそのクエリに対する結果で示されるショップの対に関して両者が問と結果として適切な関係にあるかを総体的に示す指標である順位スコアを保持する順位スコア保持部と、
前記取得された行動履歴に基づいて保持されている順位スコアを更新する順位スコア更新部と、
前記順位スコアを行動履歴に基づいて更新するためのルールを保持する順位スコア更新ルール保持部と、
前記保持されている順位スコアによる並び順と、前記全体度数算出部にて算出される全体度数による並び順の矛盾度合いを算出する矛盾度合算出部と、
矛盾度合算出部での算出結果に応じて、全体度数を算出するために用いられた関数の各重み付け値の矛盾が少なくなるように重み付け値保持部に保持されている重み付け値を更新する重み付け値更新部と、
を有する検索装置。
【請求項２】
検索クエリ受付部は、検索主体が移動中の移動方向をクエリに含んでクエリを受け付けるための移動情報付クエリ受付手段を有する請求項１に記載の検索装置。
【請求項３】
自身の位置情報を取得する位置情報取得部と、
取得した位置情報を含む検索クエリを取得する検索クエリ取得部と、
取得した検索クエリを送信する検索クエリ送信部と、
検索主体の行動履歴を送信する行動履歴送信部と、
を有する移動端末装置と、
請求項１または２に記載の検索装置と、からなる検索システム。
【請求項４】
請求項３に記載の移動端末装置の検索クエリ取得部は、取得した位置情報を移動方向として検索クエリに含んで検索クエリを取得する移動情報付クエリ取得手段を有する請求項３に記載の検索システム。
【請求項５】
請求項３または４に記載の移動端末装置の位置情報取得部は、ＧＰＳからの信号により位置情報を取得するＧＰＳ処理手段を有する請求項３または４に記載の検索システム。
【請求項６】
ショップごとのショップ属性値を保持するショップ属性値保持部と、クエリとそのクエリに対する結果で示されるショップの対に関して両者が問と結果として適切な関係にあるかを総体的に示す指標である順位スコアを保持する順位スコア保持部を有する検索装置の制御方法であって、
ショップを検索するためのクエリを受け付けるクエリ受付ステップと、
受け付けたクエリによりショップ属性値保持部を検索する検索ステップと、
受け付けたクエリと、保持されているショップ属性値と、からクエリとそのクエリに対する結果で示されるショップの対に関して両者が問と結果として適切な関係であるかを一の測定側面から指標化した値である要素度数を算出する要素度数算出ステップと、
予め重み付け値保持部に保持されている前記対ごとに要素度数の関数値としての全体度数を求める際の各要素度数の関数中における重み付けを定める重み付け値を利用した関数に要素度数を代入することで対ごとに全体度数を算出する全体度数算出ステップと、
算出された全体度数を利用して検索ステップにて検索された結果を降順または昇順に並べるランキングステップと、
検索主体の行動履歴を取得する行動履歴取得ステップと、
予め保持されている前記順位スコアを行動履歴に基づいて更新するためのルールを用いて、前記取得された行動履歴に基づいて保持されている順位スコアを更新する順位スコア更新ステップと、
前記更新保持されている順位スコアによる並び順と、前記全体度数算出ステップにて算出される全体度数による並び順の矛盾度合いを算出する矛盾度合算出ステップと、
矛盾度合算出ステップでの算出結果に応じて、全体度数を算出するために用いられた関数の各重み付け値の矛盾が少なくなるように重み付け値保持部に保持されている重み付け値を更新する重み付け値更新ステップと、
を計算機に実行させる検索装置の制御方法。
【請求項７】
検索クエリ受付ステップは、検索主体が移動中の移動方向をクエリに含んでクエリを受け付けるための移動情報付クエリ受付ステップを含む請求項４に記載の検索装置の制御方法。
【請求項８】
自身の位置情報を取得する位置情報取得ステップと、
取得した位置情報を含む検索クエリを取得する検索クエリ取得ステップと、
取得した検索クエリを送信する検索クエリ送信ステップと、
検索主体の行動履歴を送信する行動履歴送信ステップと、
を計算機に実行させる移動端末装置の制御方法と、
請求項６または７に記載の検索装置の制御方法と、からなる検索システムの制御方法。
【請求項９】
請求項７に記載の移動端末装置の制御方法における検索クエリ取得ステップは、取得した位置情報を移動方向として検索クエリに含んで検索クエリを取得する移動情報付クエリ取得ステップを含む請求項８に記載の検索システムの制御方法。
【請求項１０】
請求項８または９に記載の移動端末装置の制御方法における位置情報取得ステップは、ＧＰＳからの信号により位置情報を取得するＧＰＳ処理ステップを含む請求項８または９に記載の検索システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地図上のショップなどの目的地を検索した際に、効果的に検索結果を並び替えてユーザに提示する技術に関する。
【背景技術】
【０００２】
従来、例えばケーキを食べたい場合など自身の携帯端末に「ケーキ」と入力すると、ＧＰＳ（全地球測位システム）位置情報と入力キーワードを利用して近隣のケーキ屋の情報を検索結果として表示する、などの地図情報検索サービスが提供されている。
【０００３】
また特許文献１では、地図をメッシュ状に分割し、そのメッシュに含まれる店舗の評判情報や通過頻度情報に応じてメッシュごとの人気度を示すランク情報を付与する。そして、検索の際にはランク情報を参照し、人気度の高い地域（メッシュ）に含まれるショップを上位にソートした検索結果をユーザに提示する、といった技術が開示されている。
【特許文献１】特開２００７−１５６６３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記従来技術では以下のような理由から精度の高い検索結果を提示できない可能性がある、という課題がある。なぜならば、従来技術では都心部など店舗が密集している場所にはいずれのメッシュも高いランク情報を持つ可能性があり、そのためにメッシュ間でランクに差が生じない可能性があるからである。また、店舗の密集度合いに偏りがある場合には、そこそこの評判のお店が密集する地域の方が、最上の評判のお店が１軒だけあるメッシュよりも優先的にユーザに提示される、といった可能性もある。
【０００５】
また、さらに、新しくできたショップなど評判が不明であったり通過頻度がまだ無いようなショップに関してはメッシュの人気度を左右することがないため、新規ショップの存在を検索結果に反映させることができない、という課題もある。
【課題を解決するための手段】
【０００６】
以上の課題を解決するために、本発明は、第一の機能として、所定関数を用いて全体度数（ユーザが検索結果として提示された複数のショップのうちどのショップを訪れる可能性が高いかなどを示す推定指標値）を算出し、ユーザが訪れる可能性が高いなどと推定される順（あるいは低いと推定される順）に検索結果を並び替える機能を有する。
【０００７】
ここで所定の関数は、例えば「ｆ＝ａｘ＋ｂｙ」などの数式で表される。そして「ｘ、ｙ」は要素度数であって、例えばｘは検索キーワードとショップ説明文との類似度、ｙは検索ユーザの検索時の位置とショップとの距離を示すとする。また「ａ、ｂ」は重み付け値であって、ユーザが検索キーワードとショップ説明文との類似度（ｘ）を重視するようであれば、その係数である重み付け値ａを重く設定し、ユーザがショップへの距離（ｙ）を重視するようであれば、その係数である重み付け値ｂを重く設定する。
【０００８】
このように本発明では、ユーザがどの要素度数を重視するかを加味する所定の関数によって全体度数を推定し、その全体度数に応じて検索結果を並び替えてユーザに提示することができる。
【０００９】
そして本発明は、さらに機械学習によって上記所定の関数に含まれる重み付け値を調整する第二の機能も備え、より正確に全体度数を推定することができるように構成されていることを特徴とする。すなわち、上記のように全体度数を算出した検索クエリ及びその検索結果の組に関して、例えば検索結果のリンク先へのクリック操作や実際のショップ訪問といった行動履歴を収集する。そしてその行動履歴に応じて、例えば検索結果のリンク先をクリックしたら「１点」、実際に訪問したら「１０点」という具合に順位スコアを付与する。
【００１０】
ここで「全体度数」は、検索結果中の複数のショップのうちユーザがどのショップに興味を持つ（検索結果のリンク先をクリックしたり実際に訪れたりする）可能性が高いかを示す推定指標値であり、一方、「順位スコア」は、実際にクリックしたり訪問したりしたことを示す実行指標値である。
【００１１】
そこで本発明では、機械学習によって、所定の関数で算出される全体度数が、順位スコアで示される並び順と全部又は一部が一致するよう所定の関数の重み付け値を調整する。このようにして本発明は、所定の関数により決定される推定の並び順を、実際の行動履歴に応じた並び順に近似するよう構成する、という具合である。
【００１２】
そして、上記第一の機能を実現するために本発明は、ショップを検索するためのクエリを受け付けるクエリ受付部と、ショップごとのショップ属性値を保持するショップ属性値保持部と、受け付けたクエリによりショップ属性値保持部を検索する検索部と、受け付けたクエリと、保持されているショップ属性値と、からクエリとそのクエリに対する結果で示されるショップの対に関して両者が問と結果として適切な関係であるかを一の測定側面から指標化した値である要素度数を算出する要素度数算出部と、前記対ごとに要素度数の関数値としての全体度数を求める際の各要素度数の関数中における重み付けを定める重み付け値を保持する重み付け値保持部と、重み付け値を利用した関数に要素度数を代入することで対ごとに全体度数を算出する全体度数算出部と、算出された全体度数を利用して検索部で検索された結果を降順または昇順に並べるランキング部と、を有する検索装置を提供する。
【００１３】
また第二の機能を実現するために、上記検索装置はさらに、検索主体の行動履歴を取得する行動履歴取得部と、蓄積されているクエリとそのクエリに対する結果で示されるショップの対に関して両者が問と結果として適切な関係にあるかを総体的に示す指標である順位スコアを保持する順位スコア保持部と、前記取得された行動履歴に基づいて保持されている順位スコアを更新する順位スコア更新部と、前記順位スコアを行動履歴に基づいて更新するためのルールを保持する順位スコア更新ルール保持部と、前記保持されている順位スコアによる並び順と、前記全体度数算出部にて算出される全体度数による並び順の矛盾度合いを算出する矛盾度合算出部と、矛盾度合算出部での算出結果に応じて、全体度数を算出するために用いられた関数の各重み付け値の矛盾が少なくなるように重み付け値保持部に保持されている重み付け値を更新する重み付け値更新部と、を有することを特徴とする。
【００１４】
また、その他に、上記検索クエリ受付部が、検索主体が移動中の移動方向をクエリに含んでクエリを受け付けるための移動情報付クエリ受付手段を有する検索装置や、これら検索装置の制御方法なども提供する。また、このような検索装置と、検索装置に対して検索クエリを送信する移動端末装置と、からなる検索システムや、その検索システムの制御方法なども提供する。
【発明の効果】
【００１５】
以上のような構成をとる本発明によって、ユーザがどの要素度数、例えば検索キーワードとの一致度やショップまでの距離など、を重視するかを加味する所定の関数によって全体度数を推定し、その全体度数に応じて検索結果を並び替えてユーザに提示することができる。
【００１６】
そして上記第一の機能にてユーザに提示される検索結果を、本発明は第二の機能によって以下のように実際のユーザ行動に近似するようソートすることができる。すなわち、
推定指標値である全体度数を算出するための所定の関数の重み付け値を検索後の実際のユーザ行動履歴によって求められる順位スコアを参照した機械学習によって調整することで、実際のユーザ行動に近似する全体度数に応じてソートする、という具合である。また、新しいショップが検索結果に存在する場合でも、その新規ショップに関して実際のユーザ行動に近似する全体度数を推定することができるので、適切な形での検索結果の並び替え処理が期待できる。
【発明を実施するための最良の形態】
【００１７】
以下に、図を用いて本発明の実施の形態を説明する。なお、本発明はこれら実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施しうる。
【００１８】
なお、実施例１は、請求項１と６の上記第一の機能について主に説明する。また、実施例２は、請求項１と６の上記第二の機能について主に説明する。また、実施例３は、主に請求項２、７について説明する。また、実施例４は、主に請求項３、４、５、８、９、１０について説明する。
【００１９】
≪実施例１≫
<概要>
図１は、本実施例の検索装置による検索結果のソートの一例を説明するための概念図である。ここで、あるユーザが端末にて本実施例の検索装置の提供する検索サービスにアクセスし、「ケーキ」という検索キーワードを含むクエリを入力する。すると、本実施例の検索装置は、図１（ａ）に示すように、例えばユーザ端末のＧＰＳ機能で取得されるユーザ位置情報とキーワード「ケーキ」とを用いて通常の検索処理を行い、検索ユーザを中心とする所定範囲内に存在する「レストランＡ」や「ケーキショップＢ」、・・・などを特定する。
【００２０】
つづいて図１（ｂ）に示すように、今回のクエリの検索結果である「レストランＡ」（ショップＩＤ：Ｓ０１２）に関して、例えば検索キーワードとレストランＡに関してデータベースなどに格納されているショップ説明文との一致度を「要素度数１」として算出する。また、ユーザ位置情報とレストランＡの位置情報から両者の距離を「要素度数２」として算出する。そして、このように算出された要素度数を所定の関数「ｆ＝ａｘ＋ｂｙ」（ｘ：要素度数１、ｙ：要素度数２）に代入し、レストランＡの全体度数ｆ１を算出する。また、「ケーキショップＢ」（ショップＩＤ：Ｓ０１６）やその他の検索結果に関しても同様に要素度数１、２を算出し、その要素度数を所定関数に代入してケーキショップＢの全体度数ｆ２、・・・・を算出する。
【００２１】
そして本実施例の検索装置は、その算出した全体度数ｆ１、ｆ２、・・・の値順に検索結果を並び替えてユーザに提示する、という具合である。
【００２２】
<機能的構成>
図２は、本実施例の検索装置における機能ブロックの一例を表す図である。なお、「検索装置」とは、所定の検索クエリを受付けて検索クエリに合致するショップを特定し、その特定したショップの所在地や紹介文、口コミ評判などの情報を検索クエリ入力者に提示する機能を備える装置をいう。そして本実施例の検索装置は、ネットワーク上のサーバ装置に組み込まれ地図情報検索サーバ装置として実現されても良い。あるいはエンドユーザの端末装置に組み込まれ、地図情報検索端末装置として実現されても良い。
【００２３】
また、本発明における「ショップ」とは販売店舗やサービス提供店舗に限定されず、地図情報の検索サービスにおいて検索対象となる、例えば学校や病院などの各種施設、建造物、公園や景勝地、あるいはランドマークなどに置き換えることも可能である。
【００２４】
そしてこの図にあるように、本実施例の「検索装置」（０２００）は、「クエリ受付部」（０２０１）と、「ショップ属性値保持部」（０２０２）と、「検索部」（０２０３）と、「要素度数算出部」（０２０４）と、「重み付け値保持部」（０２０５）と、「全体度数算出部」（０２０６）と、「ランキング部」（０２０７）と、を有する。
【００２５】
なお、以下に記載する本検索装置、および後述する移動端末装置の機能ブロックは、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの両方として実現され得る。具体的には、コンピュータを利用するものであれば、ＣＰＵや主メモリ、バス、あるいは二次記憶装置（ハードディスクや不揮発性メモリ、ＣＤやＤＶＤなどの記憶メディアとそれらメディアの読取ドライブなど）、情報入力に利用される入力デバイス、印刷機器や表示装置、その他の外部周辺装置などのハードウェア構成部、またその外部周辺装置用のインターフェース、通信用インターフェース、それらハードウェアを制御するためのドライバプログラムやその他アプリケーションプログラム、ユーザーインターフェース用アプリケーションなどが挙げられる。
【００２６】
そして主メモリ上に展開したプログラムに従ったＣＰＵの演算処理によって、入力デバイスやその他インターフェースなどから入力され、メモリやハードディスク上に保持されているデータなどが加工、蓄積されたり、上記各ハードウェアやソフトウェアを制御するための命令が生成されたりする。また、この発明は検索装置や移動端末装置として実現できるのみでなく、方法としても実現可能である。また、このような発明の一部をソフトウェアとして構成することができる。さらに、そのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品、及び同製品を記録媒体に固定した記録媒体も、当然にこの発明の技術的な範囲に含まれる（本明細書の全体を通じて同様である）。
【００２７】
「クエリ受付部」（０２０１）は、ショップを検索するためのクエリを受け付ける機能を有し、ネットワーク上のサーバ装置であれば、通信ＩＦ（インターフェース）とクエリ受付用Ｗｅｂページ、クエリ受付プログラムなどで実現することができる。また、端末装置であれば入力デバイスとクエリ受付用ＧＵＩ、クエリ受付プログラムなどで実現できる。
【００２８】
具体的に、クエリには例えば「ケーキ」や「焼肉」、「カラオケ」などの検索キーワードや、ＧＰＳ機能やユーザ入力などで特定される現在位置情報、あるいは検索したい範囲を特定するための（現在位置とは別の）位置情報が含まれる。また、その他にも検索キーワードに替わる自然文や画像、あるいは価格上限／下限や地図上の検索範囲指定などの検索条件、また検索ユーザを識別するためのユーザＩＤや検索時刻情報などが含まれていても良い。
【００２９】
「ショップ属性値保持部」（０２０２）は、ショップごとのショップ属性値を保持する機能を有し、例えばＨＤＤ（ハードディスクドライブ）や不揮発性メモリ、光学記録メディアとその読取ドライブなどの各種記憶装置によって実現することができる。
【００３０】
「ショップ属性値」とは、ショップの属性を示す情報をいい、図３に示すように、例えばショップを識別するためのＩＤや名称、カテゴリーなどの各種タグ情報、ショップの説明文、緯度経度情報や住所情報、電話番号のほか、ユーザレビューなどによる評判を示すポイント、商品やサービスの価格情報、などが挙げられる。
【００３１】
そして、検索に際してはこれら属性値が検索クエリに含まれる検索条件と比較することになる。またさらに、本実施例の検索装置では後述する要素度数を算出する際に、ここで保持されている属性値が利用されることになる。
【００３２】
「検索部」（０２０３）は、受け付けたクエリによりショップ属性値保持部を検索する機能を有し、ＣＰＵや主メモリ、検索プログラムなどによって実現することができる。この検索部は、基本的には従来同様のアルゴリズムを利用して、例えばＣＰＵの論理演算処理によって検索クエリで示される検索条件と一致するショップ属性を含むショップを特定し、そのショップＩＤを検索結果として取得する処理を行う、という具合である。
【００３３】
また実施例２で後述するように、このクエリと検索結果の組を記憶装置に蓄積しておき、順位スコアとの比較に利用するよう構成しても良い。
【００３４】
「要素度数算出部」（０２０４）は、受け付けたクエリと、保持されているショップ属性値と、から要素度数を算出する機能を有し、例えばＣＰＵと主メモリ、要素度数算出プログラムなどで実現できる。
【００３５】
なお「要素度数」とは、クエリとそのクエリに対する結果で示されるショップの対に関して、両者が問と結果として適切な関係であるかを一の測定側面から指標化した値をいい、例えば測定側面としては、クエリに含まれる検索キーワードが、検索にヒットしたショップ名やタグ、紹介文中に登場する割合や、検索時の現在位置情報と検索にヒットしたショップの位置情報から算出される距離や、クエリに含まれる価格条件とショップの価格情報の開きの度合いなどが挙げられる。
【００３６】
図４は、このような測定側面から指標化された各要素度数を表す概念図である。この図にあるように、例えば「ＩＤ：Ｑ００１」のクエリにヒットした「ＩＤ：Ｓ０１２」のショップに関して、クエリＱ００１に含まれる検索キーワードがショップＳ０１２に登場する割合は「０．５４」、検索時の現在位置情報からショップＳ０１２までの距離は「１．３」、クエリＱ００１に含まれる価格条件とショップＳ０１２の価格情報の開きの度合いが「０．９８」といった要素度数が算出される。また、同じ「ＩＤ：Ｑ００１」のクエリにヒットした「ＩＤ：Ｓ０１６」の別のショップに関して、第１の要素度数は「０．８６」、第２の要素度数は「０．４」、第３の要素度数は「０．５２」が算出される、という具合である。
【００３７】
もちろん要素度数は上記例には限定されず、クエリとそのクエリに対する結果で示されるショップの対に関して、両者が問と結果として適切な関係であるかを指標化するあらゆる測定側面からの指標値が含まれる。
【００３８】
そして、このような要素度数を、重み付け値を含む関数に代入することで、ユーザが上記測定側面のいずれを重視するかを重み付け値によって加味した上で全体度数を推定することができる。また、実施例２で後述するように、その重み付け値を実際の行動履歴に基づく順位スコアに合わせて調整することで、その推定精度を高めることもできる。
【００３９】
「重み付け値保持部」（０２０５）は、前記対ごとに要素度数の関数値としての全体度数を求める際の各要素度数の関数中における重み付けを定める重み付け値を保持する機能を有し、例えばＨＤＤ（ハードディスクドライブ）や不揮発性メモリ、光学記録メディアとその読取ドライブなどの各種記憶装置によって実現することができる。
【００４０】
具体的に、重み付け値は「要素度数１の重み付け値がａ」、「要素度数２の重み付け値がｂ」といった具合に要素度数に関連付けて保持されることになる。そして、前述のようにこの重み付け値がユーザが要素度数の測定側面のいずれを重視するかを示す値となる。また、実施例２において実際の行動履歴に全体度数を近似させるための調整対象となる。
【００４１】
「全体度数算出部」（０２０６）は、重み付け値を利用した関数に要素度数を代入することで対ごとに全体度数を算出する機能を有し、例えばＣＰＵや主メモリ、全体度数算出プログラムなどで実現できる。
【００４２】
具体的に、例えば現状の重み付け値の設定では、ユーザは距離の近さ（要素度数２：ｙ）を最も重視し（重み付け値２）、価格条件との開き（要素度数３：ｚ）はそこそこ重視し（重み付け値１）、検索キーワードとショップ説明文との一致度合い（要素度数１：ｘ）はあまり重視しない（重み付け値０．５）、として、関数ｆ１＝０．５ｘ＋２ｙ＋ｚが与えられている。したがって、図４に示す要素度数を代入して、クエリＱ００１にヒットしたショップＳ０１２の全体度数は「３．８５」と算出され、ショップＳ０１６の全体度数は「１．７５」と算出される、という具合である。
【００４３】
また算出された全体度数は、記憶装置に蓄積されている前述のクエリと検索結果の組と関連付けて蓄積されるよう構成することで、実施例２において実際の行動履歴に基づく順位スコアとの比較に利用すると良い。
【００４４】
「ランキング部」（０２０７）は、算出された全体度数を利用して検索部で検索された結果を降順または昇順に並べる機能を有し、例えばＣＰＵと主メモリ、ランキングプログラムなどで実現することができる。具体的に、上記演算された全体度数の数値をＣＰＵの比較演算処理によって大小比較し、その大小順に降順または昇順に検索結果を並び替える、という具合である。
【００４５】
このようにして、ユーザがどの要素度数を重視するかを加味して算出された全体度数に応じて検索結果を並び替えてユーザに提示することができる。
【００４６】
<ハードウェア構成>
図５は、上記機能的な各構成要件をハードウェアとして実現した際の、検索装置における構成の一例を表す概略図である。この図を利用して全体度数の算出および検索結果の並び替え処理におけるそれぞれのハードウェア構成部の働きについて説明する。
【００４７】
この図にあるように、検索装置は、検索部、要素度数算出部、全体度数算出部、およびランキング部であり、またその他の各種演算処理を実行する「ＣＰＵ（中央演算装置）」（０５０１）と、「主メモリ」（０５０２）と、を備えている。またショップ属性値保持部や重み付け値保持部である「ＨＤＤ」（０５０３）や、クエリ受付部である「通信ＩＦ」（０５０４）なども備えている。そしてそれらが「システムバス」などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
【００４８】
また、「主メモリ」にはプログラムが読み出され、「ＣＰＵ」は読み出された当該プログラムを参照し、プログラムで示される手順に従い各種演算処理を実行する。また、この「主メモリ」や「ＨＤＤ」にはそれぞれ複数のアドレスが割り当てられており、「ＣＰＵ」の演算処理においては、そのアドレスを特定し格納されているデータにアクセスすることで、データを用いた演算処理を行うことが可能になっている。
【００４９】
ここで本実施例の検索装置は、例えばクエリ受付プログラムに従って検索端末に送信した検索用Ｗｅｂページなどを介して入力された検索クエリを「通信ＩＦ」にて受信し、「主メモリ」のアドレス１に格納する。すると次に検索プログラムに従って実行する「ＣＰＵ」の論理演算処理によって、予めクローラなどで収集し「ＨＤＤ」に格納されているショップ属性値を検索する。そして検索クエリに含まれる検索条件に合致するショップ属性値を有するショップＩＤを検索結果として取得し、「主メモリ」のアドレス２、・・・に格納する。
【００５０】
つづいて、「ＣＰＵ」が要素度数算出プログラムを解釈し、それに従って検索結果として取得されたショップＩＤＳ００１に関して各測定側面ごとの要素度数を四則演算処理により算出する。具体的には例えば、要素度数１としてショップ属性値に含まれるショップ紹介文に対して最長一致法などのアルゴリズムで検索キーワードの出現回数をカウントし、紹介文中の単語数に対する割合を算出する。また、クエリに含まれる検索時の緯度経度情報とショップの緯度経度情報から球面三角法の公式などを利用して２点間の距離を要素度数２として算出する。またクエリに含まれる価格条件とショップの価格情報との差分値をショップ価格に対する割合で示した値を要素度数３として算出し、各要素度数をそれぞれ「主メモリ」のアドレス３、・・・に格納する。
【００５１】
そして、「ＣＰＵ」が全体度数算出プログラムを解釈し、それに従って「ＨＤＤ」に保持されている関数とそこで利用される重み付け値を「主メモリ」のアドレス４、・・・に読み出す。そして、各要素度数と重み付け値を関数に代入し実行される「ＣＰＵ」の四則演算処理によって、ショップＩＤ：Ｓ００１で識別されるショップの全体度数を算出し、「主メモリ」のアドレス５に格納する。
【００５２】
また、その他の検索にヒットしたショップに関しても同様の処理を行い、それぞれのショップの全体度数を算出し、「主メモリ」に格納する。
【００５３】
最後に「ＣＰＵ」がランキングプログラムを解釈し、それに従って全体度数の大小比較処理を実行し、その大小順に検索結果を並び替えて検索ヒットリストなどを生成する。そして生成した検索ヒットリストなど「通信ＩＦ」から検索クエリの送信元の端末に対して返信する、という具合である。
【００５４】
なお上記のハードウェア構成例はネットワーク上の検索サーバ装置に本実施例の検索装置が組み込まれた場合のハードウェア構成例である。本実施例の検索装置がエンドユーザの端末装置に組み込まれている場合には、例えば検索クエリの入力は「通信ＩＦ」ではなく図示しない入力デバイスなどを利用しＧＵＩなどを介して入力されると良い。また全体度数に応じて並び替えられた検索ヒットリストは「通信ＩＦ」から出力されるのではなく、直接端末自身のディスプレイに出力表示されると良い。
【００５５】
<処理の流れ>
図６は、本実施例の検索装置における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、上記のような計算機の各ハードウェア構成によって実行されるステップであっても良いし、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。
【００５６】
この図にあるように、まず、検索用Ｗｅｂページなどを介してショップを検索するためのクエリを受け付ける（ステップＳ０６０１）と、受け付けたクエリに合致するショップ属性値を含むショップを特定するためショップ属性値保持部を検索する（ステップＳ０６０２）。つづいて検索により特定されたショップに関して、受け付けたクエリと、保持されているショップ属性値と、から要素度数を算出する（ステップＳ０６０３）。そして予め重み付け値保持部に保持されている重み付け値を利用した関数に、前記算出した要素度数を代入することで、クエリとそのクエリに対する結果で示されるショップの対ごとに全体度数を算出し（ステップＳ０６０４）、算出された全体度数を利用して検索ステップにて検索された結果を降順または昇順に並べる（ステップＳ０６０５）。また、実施例２で後述するように、この算出された全体度数を前記対と関連付けて保持部に記録するよう構成しても良い。
【００５７】
なお、上記処理の流れはネットワーク上の検索サーバ装置における処理の流れでも良いし、エンドユーザの端末における処理の流れでも良い。なお前者の場合、ステップＳ０６０１は、ネットワークを介して端末にて入力された検索クエリを受付けるステップとなり、後者の場合、ステップＳ０６０１は入力デバイスなどを介して端末に直接入力された検索クエリを受付けるステップとなる（以下の実施例の処理の流れについても同様である）。
【００５８】
<効果の簡単な説明>
以上のように本実施例の検索装置によって、ユーザがどの要素度数を重視するかを加味して算出された全体度数に応じて検索結果を並び替えてユーザに提示することができる。
【００５９】
≪実施例２≫
<概要>
本実施例は、上記実施例を基本として、さらに機械学習によって検索後のユーザの実際の行動履歴に応じて重み付け値を調整し、全体度数による推測並び替えの精度をより高めることができる検索装置である。
【００６０】
図７は、本実施例の検索装置における重み付け値調整処理の一例を説明するための概念図である。この図７（ａ）にあるように、例えばクエリＩＤ：Ｑ００１にヒットしたショップＩＤＳ０１２，Ｓ０２１，Ｓ０１６に関し、上記実施例にて説明したようにそれぞれ全体度数「３．８５」、「２．３９」、「１．７５」が算出され、その大小順で並び替えられた推定ランキングが生成されている。
【００６１】
ここで、本実施例の検索装置は、このクエリＱ００１の後に、その検索結果を利用して実際にユーザがとった行動の履歴を収集し、その行動に応じて順位スコアを付与する。例えば、検索結果のリストでユーザがＳ０１２とＳ０１６のショップＩＤをクリックし、ショップ紹介文などの詳細情報を得ようという行動をとった場合、それぞれ１ポイントの順位スコアが付与される。また、この検索結果を参照し、ユーザがショップＳ０１２に訪れたことを、例えばユーザによる能動的な申告操作やキャッシュカードなどを利用した支払い情報を取得するなどして把握すると、ショップＳ０１２に対して１０ポイントの順位スコアが付与される。
【００６２】
そしてこのような実際の行動によって付与された順位スコアによる実行ランキングと、上記推定ランキングを比較すると、その並び順が相違していることが分かる。つまり、推定ランキングは実際の行動結果と矛盾していることになる。
【００６３】
そこで、本実施例ではクエリに関する上記のような事例をその他にも収集し、その事例を利用した機械学習を行う。そしてその機械学習によって、図７（ｂ）に示すように全体度数を算出するための関数の重み付け値を、全体度数によるランキングと順位スコアによるランキングが矛盾が少なくなるよう調整更新する、という具合である。このようにして本実施例は、以降の全体度数による推定ランキングの並び順を、実際の行動履歴に応じた並び順に近似させていくことができる。
【００６４】
<機能的構成>
図８は、本実施例の検索装置における機能ブロックの一例を表す図である。この図にあるように、本実施例の「検索装置」（０８００）は、実施例１を基本として、「クエリ受付部」（０８０１）と、「ショップ属性値保持部」（０８０２）と、「検索部」（０８０３）と、「要素度数算出部」（０８０４）と、「重み付け値保持部」（０８０５）と、「全体度数算出部」（０８０６）と、「ランキング部」（０８０７）と、を有する。なお、これら構成要件ついては、上記実施例にて記載済みであるので説明は省略する。
【００６５】
そして、本実施例の検索装置は、さらに「行動履歴取得部」（０８０８）と、「順位スコア保持部」（０８０９）と、「順位スコア更新部」（０８１０）と、「順位スコア更新ルール保持部」（０８１１）と、「矛盾度合算出部」（０８１２）と、「重み付け値更新部」（０８１３）と、を有する点を特徴とする。
【００６６】
「行動履歴取得部」（０８０８）は、検索主体の行動履歴を取得する機能を有し、例えばＣＰＵや主メモリ、行動履歴取得プログラムなどで実現することができる。「行動履歴」とは、ユーザ（検索主体）が検索装置によって提示された検索クエリおよびその検索結果に対応して実行した行動の履歴をいい、例えば検索結果中のショップＩＤのクリック操作や、検索結果中のショップへの実際の訪問または利用予約情報の送信などの行動の履歴が挙げられる。
【００６７】
また、このような行動履歴を取得する具体的な方法としては、例えばユーザが所定のＷｅｂページやアプリケーションを利用して自身の行動内容を申告送信することで取得する方法が挙げられる。また、クリック操作や予約操作など端末の操作で示される行動履歴であれば、アプリケーションなどにより自動的にそれらの操作履歴情報が送信されるよう構成することで取得する方法も挙げられる。
【００６８】
また、実際にショップを訪問した旨の行動履歴については以下のようにして取得する方法が挙げられる。例えば、ＧＰＳなどを利用しユーザの位置情報を定期的に送信するよう構成し、その位置情報がショップ属性値で示されるショップの位置情報と重なった際にショップを訪問した旨の行動履歴を取得する方法が挙げられる。あるいは、当該ショップでネットワークサービスＩＤと対応するクレジットカードを利用した場合には、そのＩＤとクレジットカード支払情報などを関連付けて取得するよう構成することで、ショップへの訪問の行動履歴を取得する方法が挙げられる。
【００６９】
なおここで収集される行動履歴は、比較対象となる全体度数を特定するため検索クエリと関連付けられていることが望ましい。そのため、例えば検索実行後の所定時間内の行動を取得し、クエリＩＤと関連付けて蓄積するよう構成しても良い。また時間的に区切るのではなく、ユーザＩＤとショップＩＤとを利用して、ユーザＩＤとショップＩＤとが一致する場合に検索結果に応じた行動であるとして、その行動をクエリＩＤと関連付けて蓄積するよう構成しても良い。
【００７０】
そして、本実施例の検索装置は、以下の構成によりこの様に取得した行動履歴を利用して、検索結果を参照したユーザの実際の行動に基づく実行ランキングを作成する。そしてこの実行ランキングと、全体度数による推定ランキングとの矛盾が無いよう全体度数算出用の関数に含まれる重み付け値を調整することを特徴とする。
【００７１】
「順位スコア保持部」（０８０９）は、順位スコアを保持する機能を有し、例えばＨＤＤ（ハードディスクドライブ）や不揮発性メモリ、光学記録メディアとその読取ドライブなどの各種記憶装置によって実現することができる。また「順位スコア」とは、蓄積されているクエリとそのクエリに対する結果で示されるショップの対に関して両者が問と結果として適切な関係にあるかを総体的に示す指標をいい、本実施例においては、次の順位スコア更新部にて記載しているように、行動履歴に基づいて前記クエリとその検索結果との適切性を表す指標値である。
【００７２】
「順位スコア更新部」（０８１０）は、前記取得された行動履歴に基づいて保持されている順位スコアを更新する機能を有し、例えばＣＰＵや主メモリ、順位スコア更新プログラムなどで実現できる。具体的には、例えば検索結果のリンク先をクリックしたら「１点」、実際に訪問したら「１０点」という具合に順位スコアを付与するとのルールが定められている。すると図９に示すように、例えば、クリック１回、実際のショップへの訪問１回との行動履歴が取得された場合、その順位スコアｆ'１は「１１点」に更新される。また、クリック１回との行動履歴が取得されたクエリとショップの組み合わせについては、その順位スコアｆ'２は「１点」に更新される、という具合である。
【００７３】
「順位スコア更新ルール保持部」（０８１１）は、前記順位スコアを行動履歴に基づいて更新するためのルールを保持する機能を有し、例えばＨＤＤ（ハードディスクドライブ）や不揮発性メモリ、光学記録メディアとその読取ドライブなどの各種記憶装置によって実現することができる。また、ここで保持されるルールは適宜設定されて構わないが、例えば、前述のように例えば検索結果のリンク先をクリックしたら「１点」、実際に訪問したら「１０点」という具合に行動の種類に応じて所定の点数を付与するとのルールなどが挙げられる。
【００７４】
「矛盾度合算出部」（０８１２）は、前記保持されている順位スコアによる並び順と、前記全体度数算出部にて算出される全体度数による並び順の矛盾度合いを算出する機能を有し、例えばＣＰＵや主メモリ、矛盾度合算出プログラムなどによって実現できる。
【００７５】
具体的には、実際の行動によって付与された順位スコアによる実行ランキングの並び順と、全体度数に応じて並べられた推定ランキングの並び順の矛盾度合いを示す指標値をＣＰＵの論理演算処理によって判断する。そして算出された矛盾度合いを示す指標値が所定の閾値以上である場合、全体度数により算出された推定ランキングは実際の行動結果と矛盾していると判断することができる。
【００７６】
この矛盾度合い示す指標値を算出する方法としては、例えば２つの確率分布間の距離を示すクロスエントロピーを利用する以下のような方法が挙げられる。具体的には、クエリＱ００１の検索結果であるショップＳ０１２、Ｓ０１６、Ｓ０２１、・・・ごとに全体度数を定義する。すなわち、前述の全体度数算出部にて算出した値を用いてショップＳ０１２の全体度数をｆ１＝３．８５と定義する。また同様にｆ２＝１．７５、ｆ３＝２．３９、・・・と定義する。
【００７７】
また順位ランクに関しても、ショップごとに定義する。すなわち、例えば図１０を参照し、ショップＳ０１２の順位ランクは１１なのでその関数ｆ'１＝１１と定義する。また同様にｆ'２＝１、ｆ'３＝０、・・・と定義する。
【００７８】
そして上記各値ごとに確率分布を計算する。具体的には、例えば全体度数ｆ１に関する確率分布Ｐ１、および順位度数ｆ'１に関する確率分布Ｐ'１を下記数１に示す各式によってそれぞれ算出する。
【数１】
2010086150.tif 000003
【００７９】
また、全体度数ｆ２及び順位スコアｆ'２、全体度数ｆ３及び順位スコアｆ'３、・・・についても同様に確率分布Ｐ２およびＰ'２、Ｐ３およびＰ'３、・・・を算出する。
【００８０】
続いて以上のように算出した全体度数空間における確率分布Ｐｊと、順位スコア空間における確率分布Ｐ'ｊ（ｊ＝１，２，３、・・）を利用して、両確率空間ＰとＰ'の距離を、両者の矛盾度合いを示す指標値として算出する。具体的には、ＰｊとＰ'ｊは離散変数であるので、例えば下記数２に示す式を用いて離散変数間での距離を示すクロスエントロピーＨを算出する。
【数２】
2010086150.tif 000004
【００８１】
そしてこのように算出したクロスエントロピーＨを、全体度数と順位スコアの矛盾度合いを示す指標値とし、予め設定されている閾値との大小判断を行う。そして、その判断結果によって全体度数により算出された推定ランキングは実際の行動結果（順位スコア）と矛盾しているか否か判断する、という具合である。
【００８２】
そして両者の並び順に矛盾がある場合、その矛盾度合いを減少させるために、本実施例の検索装置では以下の重み付け値更新部にて全体度数を算出するための関数に含まれる重み付け値を調整することを特徴とする。
【００８３】
「重み付け値更新部」（０８１３）は、矛盾度合算出部での算出結果に応じて、全体度数を算出するために用いられた関数の各重み付け値の矛盾が少なくなるように重み付け値保持部に保持されている重み付け値を更新する機能を有し、例えばＣＰＵや主メモリ、重み付け値更新プログラムなどによって実現できる。
【００８４】
ここでの「関数の各重み付け値の矛盾が少なくなるよう重み付け値を更新する」ための処理方法としては、具体的には以下のような方法が挙げられる。すなわち、まず前記算出したショップＳ０１２の全体度数の確率分布Ｐ１と順位スコアの確率分布Ｐ'１との差分値を算出する。つづいて算出した差分値を補正値として、当該補正値（差分値）と図４に示すようなショップＳ０１２の各要素度数と掛け合わせ、例えば図１８に示すようにショップＳ０１２の要素度数１（語句一致）の補正済み要素度数α１、要素度数２（距離）の補正済み要素度数β１、要素度数（価格）の補正済み要素度数γ１・・・を算出する。
【００８５】
また、その他のショップＳ０１６、Ｓ０２１、・・・についても、同様に当該ショップの両確率分布の差分値を各要素度数ごとに掛け合わせ、ショップＳ０１６の補正済み要素度数α２やβ２ややγ２・・・、ショップＳ２１の補正済み要素度数α３やβ３やγ３・・・をそれぞれ算出する。
【００８６】
続いて、例えば要素１「語句一致」に関する各ショップの補正済み要素度数を、α１＋α２＋α３＋・・・という具合に積算し、積算値αを算出する。また、同様に要素２「距離」や要素３「価格の開き」などに関しても、各ショップの補正済み要素度数をそれぞれ積算し、積算値βやγ、・・・を算出する。
【００８７】
そして、このようにして求められた要素ごとの積算値α、β、γ、・・・に関し、所定の定数を乗算した後、その算出値を要素に対応した重み付け値、例えば要素１（語句一致）の積算値αであればその重み付け値ａ、に加算し各要素度数に対して設定された重み付け値を更新する。
【００８８】
続いて、以上のように更新された重み付け値を使って新たに全体度数を算出し、その全体度数で上記矛盾度合いの算出および重み付け値の更新を繰り返す。そして、例えば矛盾度合いが所定の閾値以下となる、あるいは重み付け値の更新回数が所定の打ち切り回数に達した場合などにその繰返し処理を終了する、という具合である。
【００８９】
以上の演算処理によって全体度数ｆ１、ｆ２、ｆ３の大小関係（並び順）が、順位スコアで示される並び順「ｆ'１>ｆ'２>ｆ'３」と矛盾が少なくなるよう、その全体度数を算出するための関数の重み付け値ａ、ｂ、ｃ、・・・を更新することができる。
【００９０】
また、その他のクエリに関するデータも学習事例として同様に演算し、重み付け値ａ、ｂ、ｃの範囲をさらに限定して特定する。また、上記処理をフィードバック的に続けていくことで、いわゆる機械学習によって重み付け値をさらに調整更新していく、という具合である。
【００９１】
このように本実施例では機械学習によって、全体度数によるランキングと順位スコアによるランキングが矛盾が少なくなるよう、全体度数算出用の重み付け値を調整更新する。そしてこの調整更新を続けていくことで、本実施例の検索装置は以降の全体度数による推定ランキングの並び順を、実際の行動履歴に応じた並び順に近似させていくことができる。
【００９２】
なお上記例は一例であり、例えば関数をクエリとショップの対ごとに定めるのではなく、クエリとは関係なくショップごとに定めるよう構成し、その矛盾度合いに応じた重み付け値の更新を行っても良い。また、矛盾度合いの算出や重み付け値の更新のための演算も、確率分布やクロスエントロピーを利用したものには限定されない。
【００９３】
<ハードウェア構成>
図１１は、上記機能的な各構成要件をハードウェアとして実現した際の、検索装置における構成の一例を表す概略図である。この図を利用して重み付け値の調整更新処理におけるそれぞれのハードウェア構成部の働きについて説明する。なお実施例１と重複する処理については説明を省略する。
【００９４】
この図にあるように、検索装置は、行動履歴取得部、順位スコア更新部、矛盾度合算出部、および重み付け値更新部であり、またその他の各種演算処理を実行する「ＣＰＵ（中央演算装置）」（１１０１）と、「主メモリ」（１１０２）と、を備えている。また順位スコア保持部や順位スコア更新ルール保持部である「ＨＤＤ」（１１０３）や、検索端末とデータの送受信を行う「通信ＩＦ」（１１０４）なども備えている。そしてそれらが「システムバス」などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
【００９５】
ここで実施例１で記載した処理を行い、検索クエリとその検索結果であるショップＩＤとの対に関して要素度数および全体度数を算出し、その全体度数に応じて並び替えた検索結果をユーザに提示する。
【００９６】
そしてユーザが端末を操作し、提示された検索結果内のショップＩＤをクリックなどすると、その操作内容を示す情報が端末にインストールされたアプリケーションの処理などによって送信される。
【００９７】
検索装置では、その操作情報を「通信ＩＦ」にて受信すると、行動履歴取得プログラムに従いクエリＩＤと関連付けて「主メモリ」のアドレス１に行動履歴として格納する。また、同様に端末から送信されて来たＧＰＳ情報を「通信ＩＦ」にて受信すると、そのＧＰＳ情報で示される緯度経度情報が、ショップの緯度経度情報内に含まれるか否かをＣＰＵの論理演算により判断する。そして含まれている場合、ショップに実際に立ち寄ったとする行動履歴を取得する。
【００９８】
つづいて「ＣＰＵ」は順位スコア更新プログラムを解釈し、「主メモリ」のアドレス２に順位スコア更新ルールを読み出す。そして順位スコア更新ルールに従い、行動履歴に基づく順位スコアをＣＰＵの演算処理によって算出し、「主メモリ」のアドレス３に格納する。そしてその順位スコアを、行動履歴と関連付けられた検索クエリとその検索結果の対に関連付けて「ＨＤＤ」に蓄積する。
【００９９】
次に「ＣＰＵ」は矛盾度合算出プログラムを解釈し、「ＨＤＤ」に蓄積されている順位スコアによるショップＩＤの並び順と、全体度数によるショップＩＤとの並び順とが矛盾していないかを判断する。そのため「ＣＰＵ」は前述の数１や数２に示す数式を利用した四則演算処理を行い、全体度数空間と順位スコア空間とのクロスエントロピー値Ｈを算出する。
【０１００】
そして算出したクロスエントロピー値Ｈが所定の閾値以上であるかの判断処理を行い、全体度数による並び順と順位スコアによる並び順との矛盾が許容範囲内か否かを判断する。そして、クロスエントロピー値Ｈが所定の閾値以上であるとの判断結果である場合、全体度数による並び順と順位スコアによる並び順における矛盾を少なくするため「ＣＰＵ」は重み付け値更新プログラムを解釈し、前述のように確率分布差分値を利用し要素度数を補正するなどの演算処理を行い、新たな重み付け値を算出する。そして、更新された重み付け値にて再度全体度数を算出し、その並び順と順位スコアによる並び順との矛盾度合いを算出する。そして、この更新処理を矛盾度合いが所定の閾値以下になるか、あるいは所定の打ち切り回数まで繰り返す、という具合である。
【０１０１】
また、その他のクエリについても同様の処理を行い、さらに矛盾が少なくなるよう更新された重み付け値を「ＨＤＤ」に格納する。そして以降の処理に関して、この調整更新された重み付け値を利用して全体度数を算出し、検索結果の並び替えを実行し、かつそのデータも学習事例として機械学習を続けていく、という具合である。
【０１０２】
<処理の流れ>
図１２は、本実施例の検索装置における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、上記のような計算機の各ハードウェア構成によって実行されるステップであっても良いし、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。なお、実施例１と重複する処理の流れについては説明を省略する。
【０１０３】
この図にあるように、まず、実施例１で説明した処理の流れによって、算出された全体度数を利用して降順または昇順に並べた検索結果をユーザに提示する（ステップＳ１２０１）。つづいて、その検索結果を参照して行われた検索主体のクリックやショップ訪問などの行動履歴を取得する（ステップＳ１２０２）と、予め保持されている更新ルールと前記取得された行動履歴に基づいて順位スコアを更新する（ステップＳ１２０３）。
【０１０４】
次に、更新保持されている順位スコアによる並び順と、全体度数による並び順との矛盾度合いを示す例えばクロスエントロピー値などを算出し（ステップＳ１２０４）、その算出された矛盾度合いが所定の閾値以上であるか否か判断する。そしてその判断結果が所定の閾値以上であるとの判断結果である場合には、全体度数を算出するために用いられた関数の各重み付け値を矛盾度合いが少なくなるように、例えば各ショップごとの確率分布差分値を利用した演算などにより更新する（ステップＳ１２０５）。そして、この更新処理を矛盾度合いが所定の閾値以下になるまで繰り返し、処理を終了する。なお図示していないが、ステップＳ１２０５の処理の後、重み付け値の更新処理回数のカウント値αを「α＝α＋１」としてカウントする処理ステップを設け、カウント値αが所定の打ち切り回数βに達するまで重み付け値の更新処理を繰り返す構成としても良い。
【０１０５】
そして、以降はこの調整更新された重み付け値を利用して全体度数を算出し、検索結果の並び替えを実行、かつそのデータも学習事例として機械学習を続けていく、という具合である。
【０１０６】
<効果の簡単な説明>
以上のように本実施例では、機械学習によって全体度数によるランキングと順位スコアによるランキングが矛盾が少なくなるよう、全体度数算出用の重み付け値を調整更新する。そしてこの調整更新を続けていくことで、本実施例の検索装置は以降の全体度数による推定ランキングの並び順を、実際の行動履歴に応じた並び順に近似させていくことができる。
【０１０７】
≪実施例３≫
<概要>
本実施例は、上記実施例１を基本として、さらに検索主体の移動方向も加味して検索クエリを受付け、例えば移動方向を要素度数として全体度数を算出するなどして並び替えを行う機能を備える検索装置である。
【０１０８】
<機能的構成>
図１３は、本実施例の検索装置における機能ブロックの一例を表す図である。この図にあるように、本実施例の「検索装置」（１３００）は、実施例１を基本として、「クエリ受付部」（１３０１）と、「ショップ属性値保持部」（１３０２）と、「検索部」（１３０３）と、「要素度数算出部」（１３０４）と、「重み付け値保持部」（１３０５）と、「全体度数算出部」（１３０６）と、「ランキング部」（１３０７）と、を有する。
【０１０９】
また、実施例２を基本として、図示しない「行動履歴取得部」と、「順位スコア保持部」と、「順位スコア更新部」と、「順位スコア更新ルール保持部」と、「矛盾判断部」と、「重み付け値更新部」を有していても良い。なお、これら構成要件ついては、上記実施例にて記載済みであるので説明は省略する。
【０１１０】
そして本実施例の検索装置は、検索クエリ受付部がさらに「移動情報付クエリ受付手段」（１３０８）を有する点を特徴とする。
【０１１１】
「移動情報付クエリ受付手段」（１３０８）は、検索主体が移動中の移動方向をクエリに含んでクエリを受け付ける機能を有し、例えば、ＣＰＵや主メモリ、移動情報付クエリ受付プログラムなどによって実現できる。またこの移動情報付クエリ受付手段での移動方向の受付方法としては、例えば、ユーザ端末がＧＰＳ機能などで取得した位置情報を定期的に送信するよう構成し、その位置情報の遷移から検索主体の移動方向を特定し受付ける方法などが挙げられる。
【０１１２】
そして、このように受付けた移動方向を検索クエリに含ませることで、要素度数として検索対象に向かっているか否かという測定側面を指標化した値を利用することができる。具体的には、図１４に示すように検索位置からショップへの方向を示すベクトルαと、クエリに含まれる合成移動方向を示すベクトルβとのコサイン角度の値によって当該ショップへ向かっているかを指標化する、という具合である。このようにして、本実施例では移動方向も要素として加えて、検索結果の並び替えをすることができる。
【０１１３】
<処理の流れ>
図１５は、本実施例の検索装置における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、上記のような計算機の各ハードウェア構成によって実行されるステップであっても良いし、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。
【０１１４】
この図にあるように、まず、検索用Ｗｅｂページなどを介してショップを検索するためのクエリを移動方向を含めて受け付ける（ステップＳ１５０１）と、受け付けたクエリに合致するショップ属性値を含むショップを特定するためショップ属性値保持部を検索する（ステップＳ１５０２）。つづいて検索により特定されたショップに関して、受け付けたクエリと、保持されているショップ属性値と、から移動方向などを測定側面とする要素度数を算出する（ステップＳ１５０３）。そして予め重み付け値保持部に保持されている重み付け値を利用した関数に、前記算出した要素度数を代入することで、クエリとそのクエリに対する結果で示されるショップの対ごとに全体度数を算出し（ステップＳ１５０４）、算出された全体度数を利用して検索ステップにて検索された結果を降順または昇順に並べる（ステップＳ１５０５）。
【０１１５】
<効果の簡単な説明>
以上のように本実施例の検索装置は、移動方向を含むクエリを受付けることで、要素度数として検索対象に向かっているか否かという測定側面を指標化した値を利用することができる。したがって、本実施例では移動方向も要素として加えて検索結果の並び替えをすることができる。
【０１１６】
≪実施例４≫
<概要>
前述のように、上記各実施例の検索装置はネットワーク上の検索サーバ装置などに組み込むことができる。そしてそのような構成をとる場合、検索装置に対して検索クエリを送信する移動端末装置が存在することになる。そこで本実施例では、その移動端末装置と、上記実施例の検索装置と、からなる検索システムについて説明する。
【０１１７】
<機能的構成>
図１６は、本実施例の検索システムにおける機能ブロックの一例を表す図である。この図にあるように、本実施例の検索システムは、「検索装置」（１６００）と、「移動端末装置」（１６１０）と、からなる。なお、検索装置における機能ブロックなどは上記各実施例で記載したものと同様であるので、その図示および説明は省略する。
【０１１８】
そして図１６にあるように、移動端末装置は、「位置情報取得部」（１６１１）と、「検索クエリ取得部」（１６１２）と、「検索クエリ送信部」（１６１３）と、「行動履歴送信部」（１６１４）と、を有する。
【０１１９】
「位置情報取得部」（１６１１）は、移動端末装置自身の位置情報を取得する機能を有し、例えば、ＣＰＵや主メモリ、位置情報取得プログラムなどによって実現することができる。具体的には、例えば、移動端末装置が携帯電話やＰＨＳ（パーソナル・ハンディフォン・システム）などであれば、その通信用の基地局情報などを自身の位置情報として取得する方法が挙げられる。あるいは、検索クエリを入力するためのＷｅｂページ（地図情報提供サービスのＷｅｂページ）に現在住所情報の入力欄を設け、ユーザーが当該入力欄に住所文字列を入力することで移動端末装置の位置情報を取得する方法も挙げられる。
【０１２０】
あるいは位置情報取得部は図示しない「ＧＰＳ処理手段」を有し、ＧＰＳ衛星からの信号を利用した演算処理によって自身の緯度経度情報を取得するよう構成しても良い。
【０１２１】
「検索クエリ取得部」（１６１２）は、取得した位置情報を含む検索クエリを取得する機能を有し、例えばＣＰＵや主メモリ、入力デバイス、ＧＵＩを含む検索クエリ取得プログラムなどで実現することができる。
【０１２２】
この検索クエリ取得部では、前記位置情報以外の検索クエリを以下のようにして取得すると良い。すなわち、例えば地図情報提供サービスのＷｅｂページに検索キーワードなどの入力欄やその他の検索条件を指定するためのチェックボックスなどを設ける。そして、ユーザ（検索主体）が入力デバイスなどを操作し当該Ｗｅｂページ画面を介して入力した、例えば「ケーキ」や「焼肉」、「カラオケ」などの検索キーワードや、検索したい範囲を特定するための（現在位置とは別の）位置情報、あるいは検索キーワードに替わる自然文や画像、価格上限／下限、地図上の検索範囲指定などの検索条件を取得する、という具合である。
【０１２３】
またサービス提供に当たってログインを要求するなどして、検索ユーザを識別するためのユーザＩＤを検索クエリに含む情報として取得しても良いし、内蔵時計などから検索時刻情報などを取得しても良い。
【０１２４】
あるいは、この検索クエリ取得部は、図示しない「移動情報付クエリ取得手段」をさらに有するよう構成しても良い。「移動情報付クエリ取得手段」は、取得した位置情報を移動方向として検索クエリに含んで検索クエリを取得する機能を有する。この移動情報付クエリ取得手段での具体的な移動情報の取得方法としては、例えば、移動端末装置がＧＰＳ機能などで定期的に位置情報を取得し、その位置情報の遷移から自身の移動方向を算出する方法などが挙げられる。
【０１２５】
そして、このような移動情報を含み検索クエリを検索装置に送信することで、前述のように検索装置では要素度数として検索対象に向かっているか否かという測定側面を指標化した値を利用することができる。
【０１２６】
「検索クエリ送信部」（１６１３）は、取得した検索クエリを送信する機能を有し、例えばＣＰＵや主メモリ、通信ＩＦ、検索クエリ送信プログラムなどで実現することができる。具体的には、ＨＴＭＬ文書である地図情報提供サービスのＷｅｂページの送信ボタンなどをクリックして生成されたＨＴＴＰリクエストとして、前記取得した各種の情報を含む検索クエリを、検索装置が組み込まれた検索サーバ装置に対して送信する、という具合である。
【０１２７】
「行動履歴送信部」（１６１４）は、検索主体の行動履歴を送信する機能を有し、例えばＣＰＵや主メモリ、行動履歴送信プログラムなどで実現することができる。なお、「行動履歴」とは、前述の通り、ユーザ（検索主体）が検索装置によって提示された検索クエリおよびその検索結果に対応して実行した行動の履歴をいう。また行動履歴の具体的な送信方法には、例えばユーザが所定のＷｅｂページやアプリケーションを利用して自身の行動内容を申告送信する方法がことで取得する方法が挙げられる。また、クリック操作や予約操作など端末の操作で示される行動履歴であれば、アプリケーションなどにより自動的にそれらの操作履歴情報が送信されるよう構成しても良い。
【０１２８】
あるいは、ＧＰＳ信号などを利用し算出された自身の位置情報と検索結果として取得したショップの位置情報とが重なったかを判断し、両位置が重なっていた際にショップを訪問した旨の行動履歴を送信するよう構成しても良い。
【０１２９】
ただし移動端末装置から送信される行動履歴は、例えば上記のような「ショップＡで購入行動をした」といった具合のユーザ行動そのものを直接的に示す情報でなくても良い。例えば、移動端末装置は間接的な行動履歴としてユーザＩＤや端末ＩＤなどを検索装置に送信しても良い。そして検索装置では、そのユーザＩＤや端末ＩＤをキーとして、例えばショップが設置している顧客情報管理サーバやクレジット会社や電子マネー運営者などが管理している出入金管理サーバなどに問合せを行い、検索主体の実際の購買行動履歴などを取得するよう構成する、という具合である。
【０１３０】
そして、以上のような移動端末装置と、上記実施例にて説明した検索装置を組み込んだサーバ装置と、によって、サーバ−クライアントシステムにて学習機能を利用した検索結果並び替え機能を有するショップ情報やその他の地域情報の検索情報サービスを提供することができる。
【０１３１】
<処理の流れ>
図１７は、本実施例の検索システムにおける処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、上記のような計算機の各ハードウェア構成によって実行されるステップであっても良いし、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。また、この検索システムを構成する検索装置の処理の流れについては、上記実施例にて記載済みであるので適宜省略して説明する。
【０１３２】
この図にあるように、まず、移動端末装置にて、例えばＧＰＳ信号や基地局情報などを利用して自身の位置情報を取得する（ステップＳ１４０１）。そして、その位置情報及び、例えばＧＵＩを介して入力された検索キーワードやその他検索条件を含む検索クエリを取得し（ステップＳ１４０２）、その検索クエリを検索装置に対して送信する（ステップＳ１４０３）。なお、ステップＳ１４０２にて取得される検索クエリに、移動方向を含むよう構成しても良い。
【０１３３】
検索装置では、送信された検索クエリを受付ける（ステップＳ１４０４）と、上記実施例にて図６を参照し説明したような処理を実行し全体度数を算出する。そして算出した全体度数を利用して、受付けた検索クエリによる検索結果を昇順または降順で並び替える（ステップＳ１４０５）。そして、並び替えた検索結果を移動端末装置に対して返信する（ステップＳ１４０６）。
【０１３４】
移動端末装置では、返信された検索結果を受信し（ステップＳ１４０７）、ディスプレイなどにその検索結果を表示する（ステップＳ１４０８）。その後、その検索結果に応じて行ったユーザ（検索主体）の行動履歴を、例えば検索結果のクリック操作やＧＰＳ位置情報などを利用して取得し、検索装置に送信する（ステップＳ１４０９）。
【０１３５】
検索装置では、その行動履歴を取得する（ステップＳ１４１０）と、上記実施例にて図１２を参照し説明したような処理を実行し矛盾度合いを算出する。そして算出した矛盾度合いが閾値以上か判断し、閾値以上であれば重み付け値を矛盾度合いが少なくなるよう更新する（ステップＳ１４１１）。
【０１３６】
<効果の簡単な説明>
以上のように、本実施例の検索システムによって、サーバ−クライアントシステムにて、学習機能を利用した検索結果並び替え機能を有するショップ情報やその他の地域情報の検索情報サービスを提供することができる。
【図面の簡単な説明】
【０１３７】
【図１】実施例１の検索装置による検索結果のソートの一例を説明するための概念図
【図２】実施例１の検索装置における機能ブロックの一例を表す図
【図３】実施例１の検索装置のショップ属性値保持部にて保持されるショップ属性値の一例を表す概念図
【図４】実施例１の検索装置の要素度数算出部にて算出される要素度数の一例を説明するための概念図
【図５】実施例１の検索装置におけるハードウェア構成の一例を表す図
【図６】実施例１の検索装置における処理の流れの一例を表すフローチャート
【図７】実施例２の検索装置における重み付け値調整処理の一例を説明するための概念図
【図８】実施例２の検索装置における機能ブロックの一例を表す図
【図９】実施例２の検索装置の行動履歴取得部にて取得される行動履歴の一例を説明するための概念図
【図１０】実施例２の検索装置の重み付け値更新部による重み付け値更新処理の一例を説明するための概念図
【図１１】実施例２の検索装置におけるハードウェア構成の一例を表す図
【図１２】実施例２の検索装置における処理の流れの一例を表すフローチャート
【図１３】実施例３の検索装置における機能ブロックの一例を表す図
【図１４】実施例３の検索装置において、クエリに含まれる検索主体の移動方向を利用した要素度数の算出の一例を説明するための概念図
【図１５】実施例３の検索装置における処理の流れの一例を表すフローチャート
【図１６】実施例４の検索システムにおける機能ブロックの一例を表す図
【図１７】実施例４の検索システムにおける処理の流れの一例を表すフローチャート
【図１８】実施例２の検索装置における重み付け値更新処理の一例を説明するための図
【符号の説明】
【０１３８】
０２００  検索装置
０２０１  クエリ受付部
０２０２  ショップ属性値保持部
０２０３  検索部
０２０４  要素度数算出部
０２０５  重み付け値保持部
０２０６  全体度数算出部
０２０７  ランキング部
０８０８  行動履歴取得部
０８０９  順位スコア保持部
０８１０  順位スコア更新部
０８１１  順位スコア更新ルール保持部
０８１２  矛盾判断部
０８１３  重み付け値更新部
【図１】
2010086150.tif 000005
【図２】
2010086150.tif 000006
【図３】
2010086150.tif 000007
【図４】
2010086150.tif 000008
【図５】
2010086150.tif 000009
【図６】
2010086150.tif 000010
【図７】
2010086150.tif 000011
【図８】
2010086150.tif 000012
【図９】
2010086150.tif 000013
【図１０】
2010086150.tif 000014
【図１１】
2010086150.tif 000015
【図１２】
2010086150.tif 000016
【図１３】
2010086150.tif 000017
【図１４】
2010086150.tif 000018
【図１５】
2010086150.tif 000019
【図１６】
2010086150.tif 000020
【図１７】
2010086150.tif 000021
【図１８】
2010086150.tif 000022