(57)【要約】  本発明は、キーワードを入力して商品を検索する計算機システムに関し、特に、入力されたキーワードを起点として、他のユーザが購買に至った商品群と、これら商品群とキーワードの間に存在する中間キーワード列を提示する計算機システムである。これにより、一人のユーザでは容易に結び付けられなかったキーワードとデータベースの検索情報（商品）を結びつけることが可能となる。
2012160693.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと記憶装置とを備えた計算機で、受信した検索キーワードで所定のデータベースから検索を行う情報検索方法であって、
前記計算機が受信した検索キーワードの履歴と前記データベースの情報へのアクセスの履歴からキーワード列を生成する第１のステップと、
前記計算機が前記検索キーワードを受信する第２のステップと、
前記計算機が前記検索キーワードに一致または類似するキーワードを含む前記キーワード列を検索し、１つ以上のキーワード列を抽出する第３のステップと、
前記計算機が前記抽出したキーワード列のうち、前記検索キーワードに一致または類似するキーワードから前記データベースの情報に至るキーワードを出力する第４のステップと、
を含むことを特徴とする情報検索方法。
【請求項２】
請求項１に記載の情報検索方法であって、
前記第１のステップは、
前記計算機が前記検索キーワードの受信または前記データベースの情報へのアクセスの度に、前記検索キーワードと前記データベースの情報へのアクセスをアクセス履歴情報に蓄積する第５のステップと、
前記計算機が所定のタイミングで前記アクセス履歴情報の検索キーワードと前記データベースの情報を読み込んで、前記検索キーワードから前記データベースの情報に至るキーワードを接続したキーワード列を関連グラフとして生成する第６のステップと、
前記計算機が前記関連グラフから前記各キーワードへの確率遷移行列を生成する第７のステップと、
前記計算機が前記確率遷移行列から前記キーワードの固有ベクトルを演算する第８のステップと、
前記計算機が前記固有ベクトルから複数のキーワード列を生成し、当該キーワード列を推薦キーワードテーブルに格納する第９のステップと、
を含むことを特徴とする情報検索方法。
【請求項３】
請求項２に記載の情報検索方法であって、
前記第６のステップは、
前記キーワード列の終端にデータベースの情報を含み、
前記第９のステップは、
前記推薦キーワードテーブルの前記キーワード列の終端にデータベースの情報を含むことを特徴とする情報検索方法。
【請求項４】
請求項２に記載の情報検索方法であって、
前記第８のステップは、
前記確率遷移行列の固有値が大きい順に所定数の固有ベクトルを演算することを特徴とする情報検索方法。
【請求項５】
請求項２に記載の情報検索方法であって、
前記第４のステップは、
前記固有ベクトルが最も小さい値の前記キーワードを特定することを特徴とする情報検索方法。
【請求項６】
請求項１に記載の情報検索方法であって、
前記第４のステップは、
前記計算機が前記抽出したキーワード列のうち、前記検索キーワードに一致または類似するキーワードよりも所定数だけ上位のキーワードから前記データベースの情報に至るキーワードを出力することを特徴とする情報検索方法。
【請求項７】
プロセッサと記憶装置とを備えて、受信した検索キーワードで所定のデータベースから検索を行う情報検索装置であって、
前記受信した検索キーワードの履歴と前記データベースの情報へのアクセスの履歴からキーワード列を生成する推薦キーワード生成部と、
前記検索キーワードを受信し、前記検索キーワードに一致または類似するキーワードを前記生成されたキーワード列から検索して、１つ以上のキーワード列を抽出し、前記抽出したキーワード列のうち、前記検索キーワードに一致または類似するキーワードから前記データベースの情報に至るキーワードを出力する検索部と、
を備えたことを特徴とする情報検索装置。
【請求項８】
請求項７に記載の情報検索装置であって、
前記推薦キーワード生成部は、
前記検索キーワードの受信または前記データベースの情報へのアクセスの度に、前記検索キーワードとデータベースの情報へのアクセスをアクセス履歴情報に蓄積する履歴収集部を有し、
前記推薦キーワード生成部は、
所定のタイミングで、前記アクセス履歴情報の検索キーワードとデータベースの情報を読み込んで、前記検索キーワードから前記データベースの情報に至るキーワードを接続したキーワード列を関連グラフとして生成し、前記関連グラフから前記各キーワードへの確率遷移行列を生成し、前記計算機が前記確率遷移行列から前記キーワードの固有ベクトルを演算し、前記計算機が前記固有ベクトルから複数のキーワード列を生成し、当該キーワード列を推薦キーワードテーブルに格納することを特徴とする情報検索装置。
【請求項９】
請求項８に記載の情報検索装置であって、
前記推薦キーワード生成部は、
前記キーワード列の終端にデータベースの情報を含むことを特徴とする情報検索装置。
【請求項１０】
請求項８に記載の情報検索装置であって、
前記推薦キーワード生成部は、
前記確率遷移行列の固有値が大きい順に所定数の固有ベクトルを演算することを特徴とする情報検索装置。
【請求項１１】
請求項８に記載の情報検索装置であって、
前記検索部は、
前記固有ベクトルが最も小さい値の前記キーワードを特定することを特徴とする情報検索装置。
【請求項１２】
請求項７に記載の情報検索装置であって、
前記検索部は、
前記抽出したキーワード列のうち、前記検索キーワードに一致または類似するキーワードよりも所定数だけ上位のキーワードから前記データベースの情報に至るキーワードを出力することを特徴とする情報検索装置。
【請求項１３】
プロセッサと記憶装置とを備えた計算機で、受信した検索キーワードで所定のデータベースから検索を行うプログラムであって、
前記受信した検索キーワードの履歴と前記データベースの情報へのアクセスの履歴からキーワード列を生成する第１の手順と、
前記検索キーワードを受信する第２の手順と、
前記検索キーワードに一致または類似するキーワードを含むキーワード列を検索し、１つ以上のキーワード列を抽出する第３の手順と、
前記抽出したキーワード列のうち、前記検索キーワードに一致または類似するキーワードから前記データベースの情報に至るキーワードとを出力する第４の手順と、
を前記計算機に実行させるプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
【請求項１４】
請求項１３に記載の記憶媒体であって、
前記第１の手順は、
前記検索キーワードの受信または前記データベースの情報へのアクセスの度に、前記検索キーワードと前記データベースの情報をアクセス履歴情報に蓄積する第５の手順と、
前記所定のタイミングで前記アクセス履歴情報の検索キーワードと前記データベースの情報を読み込んで、前記検索キーワードから前記データベースの情報に至るキーワードを接続したキーワード列を関連グラフとして生成する第６の手順と、
前記関連グラフから前記各キーワードへの確率遷移行列を生成する第７の手順と、
前記確率遷移行列から前記キーワードの固有ベクトルを演算する第８の手順と、
前記固有ベクトルから複数のキーワード列を生成し、当該キーワード列を推薦キーワードテーブルに格納する第９の手順と、
を含むことを特徴とする記憶媒体。
【請求項１５】
請求項１４に記載の記憶媒体であって、
前記第６の手順は、
前記キーワード列の終端にデータベースの情報を含み、
前記第９の手順は、
前記推薦キーワードテーブルの前記キーワード列の終端にデータベースの情報を含むことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キーワードを入力して商品を検索する計算機システムに関し、特に、入力されたキーワードを起点として、他のユーザが購買に至った商品群と、これら商品群とキーワードの間に存在する中間キーワード列を提示する技術に関する。
【背景技術】
【０００２】
近年、高速な通信回線や携帯端末及びＰＣの普及に伴って、電子商取引が発展しつつある。消費者は電子商取引を行うサイトに接続することで、好きな時間に、好きな場所から、所望の商品を検索して購入することが可能となる。消費者にとって電子商取引は利便性が高いため、参加する消費者数や、販売する業者数及び提供される商品数が莫大となっている。商品数や業者数の数が増大したため、電子商取引のサイトに参加した消費者は、本来欲しかった商品を見つけられない、あるいは見つけるまで探す時間が長くかかってしまう状況にある。例えば、消費者が商品の名称の一部をキーワードとして検索した場合などでは、類似する名称の商品も一覧として提示され、消費者が欲する商品と異なる商品が多数列挙されるという状況が発生した。【０００３】
このような状況を緩和するため、電子商取引のユーザへの情報を推薦する計算機システムとして、協調フィルタリングが提案され、実用化されている。協調フィルタリングは、例えば、Amazon.com（登録商標）のように検索した商品を表示する際に、「この商品を買った人はこんな商品も買っています」のように推薦する商品も提示している。これにより、電子商取引のユーザは、最初に検索した商品よりも、よりニーズに合った商品を選択する可能性が高くなる。【０００４】
ところが、上記情報推薦アルゴリズムである協調フィルタリングでは、購入、評価したユーザ数が少ない商品の場合、推薦されないという問題がある。これは、一般に、sparsityの問題と言われている。【０００５】
また、上記協調フィルタリングでは、商品が市場投入されて間もない場合、その商品が推薦されにくいという問題もある。つまり、商品の発売直後では、購入したユーザが少ない場合や評価したユーザ数がない場合が多く、推薦される対象にはならない。これは、cold startの問題といわれている。【０００６】
上記のsparsityの問題およびcold startの問題を解決するため、様々な方法が提案されてきた。例えば、非特許文献１のように、Content-based filteringと言われる、性質の近い商品の評価を利用する方法が知られている。非特許文献１によれば、評価がない新たな商品の評価を、性質の近い商品に対する評価から推定することが可能になる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−０６７０３２号公報
【非特許文献】
【０００８】
【非特許文献１】Mustansar Ali Ghazanfar, et al., An Improved Switching Hybrid Recommender System Using Naive Bayes Classifier and Collaborative Filtering, IMECS 2010, March, 2010, Hong Kong.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、上記非特許文献１のContent-based filteringでは、商品の性質を詳細に用意する必要があるため、大幅な手間がかかり、かつ、商品によって保持する性質が均等ではないため、推薦の性能にばらつきが出てしまうという問題がある。【００１０】
このため、多数の商品を提供する電子商取引サイトでは上記非特許文献１が利用しにくく、上記のような問題解決には至っていない。【００１１】
また、電子商取引サイトを利用したユーザのクリックの履歴を活用することで、クリックされたＵＲＬのキーワードからユーザの好みを推定し、推定された好みから商品を特定して推薦する方法が知られている（例えば、特許文献１）。特許文献１の手法では、上記のContent-based filteringの方法における、性質の近い商品の評価を利用しなくてもよい。したがって、類似する商品がない場合でも推薦することが可能になる。【００１２】
しかしながら、上記特許文献１では、ユーザが希望する商品とＵＲＬが結びつかない場合は、ＵＲＬの情報が有効にならないという問題がある。つまり、ＵＲＬなどのユーザ側の情報と、商品アイテムの情報にギャップがある場合、ユーザの希望する商品にたどり着けないことになる。特に、市場投入間もない商品の場合、この傾向が顕著である。これは、上記従来例と同様に、発売直後の商品を閲覧（クリック）したユーザが少ないことに起因する。【００１３】
本発明は上記問題点に鑑みてなされたもので、多数のユーザの検索履歴を活用することで、一人のユーザでは結び付けられなかったキーワードと商品情報を結びつけることを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、プロセッサと記憶装置とを備えた計算機で、受信した検索キーワードで所定のデータベースから検索を行う情報検索方法であって、前記計算機が受信した検索キーワードの履歴と前記データベースの情報へのアクセスの履歴からキーワード列を生成する第１のステップと、前記計算機が前記検索キーワードを受信する第２のステップと、前記計算機が前記検索キーワードに一致または類似するキーワードを含む前記キーワード列を検索し、１つ以上のキーワード列を抽出する第３のステップと、前記計算機が前記抽出したキーワード列のうち、前記検索キーワードに一致または類似するキーワードから前記データベースの情報に至るキーワードを出力する第４のステップと、を含む。
【発明の効果】
【００１５】
本発明によれば、検索キーワードからデータベースの情報に到達するキーワード列を提供することで、データベースの利用者は、所望する情報を前記従来例に比して極めて容易に得ることができる。特に、多数のユーザの検索履歴を活用して推薦キーワードテーブルを作成することで、一人のユーザでは容易に結び付けられなかったキーワードとデータベースの情報を結びつけることが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態を示し、計算機システムの一例を示すブロック図である。
【図２】本発明の実施形態を示し、計算機システムで行われる全体の処理を示すフローチャートである。
【図３】本発明の実施形態を示し、クライアント端末で商品情報を検索するときの、検索画面の一例を示す画面イメージである。
【図４】本発明の実施形態を示し、推薦キーワードを生成する処理の一例を示すフローチャートである。
【図５】本発明の実施形態を示し、ユーザアクセス履歴テーブルの一例を示す図である。
【図６】本発明の実施形態を示し、図５で行われる関連グラフの生成処理の詳細を示すフローチャートである。
【図７】本発明の実施形態を示し、ユーザアクセス履歴テーブルから同一セッションの履歴を抽出する様子を示す図である。
【図８】本発明の実施形態を示し、同一セッションのセッションログ４２０Ａから部分グラフを抽出する様子を示す図である。
【図９】本発明の実施形態を示し、同一セッションのセッションログ４２０Ｂから部分グラフを抽出する様子を示す図である。
【図１０】本発明の実施形態を示し、同一セッションのセッションログ４２０Ｃから部分グラフを抽出する様子を示す図である。
【図１１】本発明の実施形態を示し、同一セッションのセッションログ４２０Ｄから部分グラフを抽出する様子を示す図である。
【図１２】本発明の実施形態を示し、同一セッションのセッションログ４２０Ｅから部分グラフを抽出する様子を示す図である。
【図１３】本発明の実施形態を示し、同一セッションのセッションログ４２０Ｆから部分グラフを抽出する様子を示す図である。
【図１４】本発明の実施形態を示し、関連グラフの一例を示す図である。
【図１５】本発明の実施形態を示し、関連グラフから確率遷移行列２５０Ａを生成する様子を示す図である。
【図１６】本発明の実施形態を示し、確率遷移行列２５０Ａから確率遷移行列Ｂを生成する様子を示す図である。
【図１７】本発明の実施形態を示し、確率遷移行列２５０Ｂから確率遷移行列Ｃを生成する様子を示す図である。
【図１８】本発明の実施形態を示し、確率遷移行列２５０Ｃから固有ベクトルを求める例を示す図である。
【図１９】本発明の実施形態を示し、第１固有ベクトルと関連グラフを示す図である。
【図２０】本発明の実施形態を示し、第２固有ベクトルと関連グラフを示す図である。
【図２１】本発明の実施形態を示し、推薦キーワードテーブルの一例を示す図である。
【図２２】本発明の実施形態を示し、検索キーワードと推薦キーワードの関係を示す図である。
【図２３】本発明の実施形態を示し、他の検索キーワードと推薦キーワードの関係を示す図である。
【図２４】本発明の実施形態を示し、さらに他の検索キーワードと推薦キーワードの関係を示す図である。
【図２５】本発明の実施形態を示し、図２のステップＳ４の詳細を示し、推薦キーワードを出力する処理のフローチャートである。
【図２６】本発明の変形例を示し、図２のステップＳ４の変形例を示し、推薦キーワードを出力する処理のフローチャートである。
【発明を実施するための形態】
【００１７】
本発明を実施するための形態（以下、「実施形態」という）について、適宜図面を参照しながら詳細に説明する。
【００１８】
図１は、本発明の実施形の態を示し、計算機システムの構成の一例を示すブロック図である。図１においてＷＥＢサーバ１００、データベースサーバ２００、ストレージ装置３００及びログ収集サーバ４００は電子商取引サイト２を構成し、電子商取引サイト２はインターネット１またはＷＡＮを介して接続された複数のクライアント端末５００に電子商取引のＷＥＢサービスを提供する。図１において、ＬＡＮ３に接続されたＷＥＢサーバ１００、データベースサーバ２００、ストレージ装置３００及びログ収集サーバ４００は、電子商取引サイト２を構成する。電子商取引サイト２のＬＡＮ３は、インターネット１を介してクライアント端末５００に接続される。
【００１９】
電子商取引サイト２を利用するユーザは、クライアント端末５００のブラウザを介してＷＥＢサーバ１００と接続し、ＷＥＢサーバ１００は商品情報の提供や商品の購入などのサービスを提供する例を示す。
【００２０】
＜クライアント端末５００＞
【００２１】
各クライアント端末５００は、演算処理を行うプロセッサ５０１と、データやプログラムを保持するメモリ５０２と、データやプログラムを格納するストレージ装置５０３と、出力装置としてのディスプレイ装置５０４と、マウスやキーボードなどの入力デバイス５０５を備える。
【００２２】
クライアント端末５００のメモリ５０２にはＷＥＢブラウザがロードされ、プロセッサ５０１によって実行される。そして、ＷＥＢブラウザによってクライアント端末５００が電子商取引サイト２のＷＥＢサーバ１００からサービスの提供を受ける。例えば、クライアント端末５００は入力デバイス５０５からユーザが入力した検索キーワードをＷＥＢサーバ１００へ送信して商品情報の検索を要求する。ＷＥＢサーバ１００は受信したキーワードから、該当する商品の情報をデータベースサーバ２００から取得してクライアント端末５００に送信する。クライアント端末５００は、ＷＥＢサーバ１００から受信した検索結果としての商品情報をディスプレイ装置５０４に表示する。
【００２３】
＜電子商取引サイト２＞
【００２４】
電子商取引サイト２は、複数のクライアント端末５００から要求を受け付けてサービスを提供するＷＥＢサーバ１００と、ストレージ装置５０３に格納された商品データベース３１０を管理して、ＷＥＢサーバ１００がクライアント端末５００から受け付けたキーワードで商品情報を検索するデータベースサーバ２００と、クライアント端末５００のアクセスの履歴を取得して蓄積するログ収集サーバ４００がＬＡＮ３に接続されて、相互に通信可能となっている。本発明では、ＷＥＢサーバ１００がクライアント端末５００から受け付けた検索キーワードでデータベースサーバ２００に商品データベース３１０の検索を行う際に、検索した商品情報に加えて、予め作成しておいた推薦キーワードテーブル２２０のキーワード列も提供するものである。以下、電子商取引サイト２を構成する各サーバの構成についてそれぞれ説明する。
【００２５】
＜ＷＥＢサーバ１００＞
【００２６】
ＷＥＢサーバ１００は、演算処理を行うプロセッサ１０１と、情報を保持するメモリ１０２と、を備えて図示しないネットワークインターフェースを介してＬＡＮ３に接続される。メモリ１０２には、ＷＥＢサービス部１１０がロードされてプロセッサ１０１によって実行される。
【００２７】
ＷＥＢサービス部１１０は、クライアント端末５００のＷＥＢブラウザが送信したＨＴＴＰによる要求を受け付けるＷｅｂサーバ機能と、Ｗｅｂサーバ機能が受け付けた処理要求に対して、データベースサーバ２００からデータを取得し、取得したデータに所定の加工などを行ってＷｅｂサーバ機能へ応答するアプリケーションサーバの機能を含むものとする。なお、ＷＥＢサービス部１１０のＷｅｂサーバ機能とアプリケーションサーバ機能を独立させて、それぞれサーバとすることができる。ＷＥＢサービス部１１０は、データベースサーバ２００から取得したデータをクライアント端末５００に送信する。
【００２８】
＜データベースサーバ２００＞
【００２９】
データベースサーバ２００は、演算処理を行うプロセッサ２０１と、情報を保持するメモリ２０２と、を備えて図示しないネットワークインターフェースを介してＬＡＮ３に接続される。メモリ１０２には、データベース管理システム（以下ＤＢＭＳ）２１０と推薦キーワードテーブル２２０と関連グラフ２４０、確率遷移行列２５０、固有ベクトル２６０を生成する推薦キーワード生成部２３０がロードされて実行される。ＤＢＭＳ２１０は、ストレージ装置３００の商品データベース３１０を管理する。ＤＢＭＳ２１０は、ＷＥＢサーバ１００から検索キーワードを受け付けると、ストレージ装置３００の商品データベース３１０を検索し、検索キーワードにマッチした商品情報を取得する。このとき、ＤＢＭＳ２１０は、検索キーワードにマッチする推薦キーワードテーブル２２０からキーワード列を取得して、キーワード列の終端には検索結果としての商品情報を含めてＷＥＢサーバ１００へ応答する。本実施形態では、データベースサーバ２００が商品データベース３１０と推薦キーワードテーブル２２０を検索する情報の検索装置として機能し、ＤＢＭＳ２１０は検索部として機能する。
【００３０】
推薦キーワード生成部２３０は、所定のタイミングでログ収集サーバ４００が収集したユーザアクセス履歴テーブル４２０を参照し、後述するように関連グラフ２４０や推薦キーワードテーブル２２０を生成し、メモリ２０２に保持する。なお、推薦キーワード生成部２３０は、生成した推薦キーワードテーブル２２０や固有ベクトル２６０等をストレージ装置３００に格納するようにしてもよい。推薦キーワード生成部２３０は、推薦キーワードテーブル２２０を生成する際に、関連グラフ２４０、確率遷移行列２５０、固有ベクトル２６０を生成する。これらの詳細については後述する。
【００３１】
なお、本実施形態では、推薦キーワード生成部２３０をデータベースサーバ２００で実行する例を示したが、これに限定されるものではない。本発明では、ユーザアクセス履歴テーブル４２０を参照して推薦キーワードテーブル２２０を生成し、ＤＢＭＳ２１０が推薦キーワードテーブル２２０を参照し、キーワード列と商品情報をＷＥＢサーバ１００へ応答できればよい。このため、推薦キーワード生成部２３０は、データベースサーバ２００以外のログ収集サーバ４００やＷＥＢサーバ１００で実行することができる。
【００３２】
また、本発明では、検索キーワードを受け付けたＷＥＢサーバ１００がキーワード列と商品情報をクライアント端末５００に応答するので、ＷＥＢサーバ１００で推薦キーワードテーブル２２０と固有ベクトル２６０等を保持するようにしても良い。
【００３３】
＜ログ収集サーバ４００＞
【００３４】
ログ収集サーバ４００は、演算処理を行うプロセッサ４０１と、情報を保持するメモリ４０２と、を備えて図示しないネットワークインターフェースを介してＬＡＮ３に接続される。メモリ４０２には、ログ収集部４１０がロードされてプロセッサ４０１によって実行される。
【００３５】
ログ収集部４１０は、クライアント端末５００が要求した検索キーワードと商品情報を取得し、ユーザアクセス履歴テーブル４２０に蓄積する。なお、本実施形態では、メモリ４０２にユーザアクセス履歴テーブル４２０を格納する例を示すが、ストレージ装置３００やログ収集サーバ４００のローカルのストレージ装置（図示省略）にユーザアクセス履歴テーブル４２０を格納するようにしても良い。
【００３６】
ログ収集部４１０は、クライアント端末５００がＷＥＢサーバ１００に対して商品データベース３１０の情報を要求したときに、図５に示すユーザアクセス履歴テーブル４２０に新たなエントリを加えて、クライアント端末５００が要求した情報を蓄積する。
【００３７】
図５はユーザアクセス履歴テーブル４２０を示す。ユーザアクセス履歴テーブル４２０は、クライアント端末５００が商品データベース３１０の情報を要求したときの時刻情報を格納する日時４２１と、クライアント端末５００の識別子または検索要求を行う利用者の識別子を格納するユーザＩＤ４２２と、クライアント端末５００と電子商取引サイト２の間に張られたセッションの識別子を格納するセッションＩＤ４２２と、クライアント端末５００が行った操作の種類を格納するアクション４２４と、クライアント端末５００が入力または選択した検索キーワードを格納するキーワード４２５と、クライアント端末５００が要求した商品情報の所在を格納する商品情報ＵＲＬ４２６とから一つのエントリを構成する。なお、上記アクション４２４には、後述する商品情報の検索画面で、クライアント端末５００が検索キーワードを入力した場合には「input」がアクション４２４に格納され、クライアント端末５００が商品情報を選択したときには「select」がアクション４２４に格納される。
【００３８】
ここで、ログ収集サーバ４００は、クライアント端末５００がＷＥＢサーバ１００に要求した内容をアクセスの履歴として蓄積するため、クライアント端末５００とＷＥＢサーバ１００の間に介在するように配置すればよい。例えば、ログ収集サーバ４００は、クライアント端末５００とＷＥＢサーバ１００の間でパケットを転送するプロクシとして機能させることができる。
【００３９】
なお、本発明ではクライアント端末５００が商品データベース３１０の商品情報をＷＥＢサーバ１００へ要求したときに、ユーザアクセス履歴テーブル４２０に新たなエントリを追加できればよいので、図１の構成に限定される物ではない。例えば、ＷＥＢサーバ１００のＷＥＢサービス部１１０でクライアント端末５００のログを生成し、ＷＥＢサーバ１００に保持したユーザアクセス履歴テーブル４２０を更新しても良い。
【００４０】
また、ＷＥＢサーバ１００のＷＥＢサービス部１００と、データベースサーバ２００のＤＢＭＳ２１０、推薦キーワード生成部２３０、ログ収集サーバ４００のログ収集部４１０はそれぞれプログラムで構成される。これらのプログラムは、非一時的な計算機読み取り可能な記憶媒体としてのストレージ装置３００に格納され、各サーバの起動時にメモリにロードされる。
【００４１】
＜全体の処理＞
【００４２】
図２は、図１の計算機システムで行われる全体的な処理のフローチャートである。まず、ステップＳ１では、複数のクライアント端末５００がＷＥＢサーバ１００にアクセスして、検索キーワードによって商品情報を要求する。
【００４３】
ステップＳ２では、ログ収集サーバ４００は、各クライアント端末５００が要求した検索キーワードと各クライアント端末５００がアクセスした商品情報を、それぞれユーザアクセス履歴テーブル４２０に蓄積する。
【００４４】
一方、ステップＳ３では、所定の時間間隔（例えば、１時間毎）でデータベースサーバ２００の推薦キーワード生成部２３０がユーザアクセス履歴テーブル４２０を参照して推薦キーワードテーブル２２０と固有ベクトル２６０等を生成しておく。
【００４５】
そして、ステップＳ４では、上記ステップＳ１で受け付けた検索キーワードを含むキーワード列（推薦キーワード列）をデータベースサーバ２００のＤＢＭＳ２１０が推薦キーワードテーブル２２０から抽出する。そして、データベースサーバ２００のＤＢＭＳ２１０は、抽出したキーワード列と、このキーワード列から検索された商品情報を商品データベース３１０から取得してＷＥＢサーバ１００に応答する。ＷＥＢサーバ１００はデータベースサーバ２００から受け付けた情報を、検索キーワードの送信元のクライアント端末５００に応答する。
【００４６】
この結果、クライアント端末５００のディスプレイ装置５０４には、図３に示すような検索画面５４０が表示される。図３は、クライアント端末５００がＷＥＢサーバ１００にアクセスして、商品情報を要求する際にディスプレイ装置５０４に表示される検索画面５４０である。
【００４７】
この検索画面５４０は、検索キーワード（図中入力キーワード）を入力する領域５４１と、検索キーワードに対するＷＥＢサーバ１００からの検索結果を表示する領域５４２（検索結果表示領域）の２つに分けられる。そして、検索結果を表示する領域５４２は、上半分が検索キーワードと推薦キーワードを含む関連グラフ（木構造のキーワード列）２４００を表示する領域５４３と、関連グラフの終端（木構造の葉部分＝リーフノード）には検索結果としての商品情報を表示する領域５４４から構成される。クライアント端末５００のユーザが、商品情報の領域５４１に表示されたＮｏ．１〜Ｎ０．４の商品情報の枠内を選択すると、ＷＥＢサーバ１００は商品データベース３１０から商品情報を取得してディスプレイ装置５０４に表示する。検索結果を表示する領域５４２の、関連グラフ２４００は、後述するように、検索キーワードを入力して図２５または図２６の処理で推薦キーワードテーブル２２０から抽出されたキーワード列のキーワードを接続したものである。
【００４８】
ログ収集サーバ４００は、図３に示す検索画面５４０でクライアント端末５００がＷＥＢサーバ１００に対して商品情報を要求または検索するときに、ユーザアクセス履歴テーブル４２０に新たな履歴を加える。
【００４９】
つまり、クライアント端末５００で、検索画面５４０の領域５４１で検索キーワードを入力し、ＷＥＢサーバ１００に検索キーワードを送信するとログ収集サーバ４００は、新たなエントリユーザアクセス履歴テーブル４２に追加し、当該エントリのアクション４２４は「input」に設定される。一方、検索結果５４２の領域５４４で商品情報を選択（またはクリック）し、ＷＥＢサーバ１００に商品情報を要求するとログ収集サーバ４００は、新たなエントリを加えて、当該エントリのアクション４２４は「select」に設定される。
【００５０】
＜推薦キーワードテーブル２２０の生成の概要＞
【００５１】
図４はデータベースサーバ２００の推薦キーワード生成部２３０で行われる処理の一例を示すフローチャートである。この処理は、図２のステップＳ３で行われる処理である。
【００５２】
ステップＳ３１では、推薦キーワード生成部２３０がログ収集サーバ４００のアクセス履歴テーブル４２０を参照して、検索キーワードの入力履歴を取得する。ステップＳ３２では、推薦キーワード生成部２３０がログ収集サーバ４００のアクセス履歴テーブル４２０を参照して、商品情報のアクセス履歴を取得する。
【００５３】
ステップＳ３３では、推薦キーワード生成部２３０が図６の処理を実行して、ユーザアクセス履歴テーブル４２０より、検索キーワードから商品情報に至るキーワード列を抽出して関連グラフ２４０を生成する。この関連グラフ２４０は、図７〜図１３で示すように、ユーザアクセス履歴テーブル４２０のセッションＩＤ４２３毎に、関連グラフ２４０の一部を構成する部分グラフ２４０Ａ〜２４０Ｆを抽出する。そして、推薦キーワード生成部２３０が、部分グラフ２４０Ａ〜２４０Ｆから検索キーワードより商品情報に至るキーワード列を含むキーワードの木構造を、図１４に示す関連グラフ２４０として生成する。
【００５４】
すなわち、関連グラフ２４０は、電子商取引サイト２のユーザの何れかが過去に検索したキーワードの履歴と、閲覧した商品情報の履歴から、商品情報に辿りつくまでのキーワードを推薦キーワード生成部２３０が結合したグラフである。
【００５５】
次に、ステップＳ３４では、推薦キーワード生成部２３０が、上記ステップＳ３３で求めた関連グラフ２４０から、検索キーワードの起点と終点（以下、親ノードから子ノード）の遷移確率を求めて確率遷移行列Ｚ（２５０）を求める。確率遷移行列Ｚの演算は、後述の図１５〜図１８のように行われる。
【００５６】
ステップＳ３５では、推薦キーワード生成部２３０が、上記ステップＳ３４で求めた確率遷移行列Ｚから固有ベクトル２６０をＫ本演算する。ここで、Ｋは予め設定した値（例えば、「２」）で、管理者などが設定する値である。この演算によって図１９、図２０のようにＫ本のキーワード列が選択される。
【００５７】
そして、ステップＳ３６では、推薦キーワード生成部２３０が、上記ステップＳ３５で求めたＫ本の固有ベクトル２６０から、検索キーワードを基点として商品情報に至る推薦キーワードテーブル２２０を図２１で示すように生成する。
【００５８】
以下、上記ステップＳ３３〜Ｓ３６のそれぞれについて以下に詳述する。
【００５９】
＜関連グラフの生成＞
【００６０】
図６は、関連グラフ２４０の生成の詳細を示すフローチャートである。ステップＳ３３１では、推薦キーワード生成部２３０が、予め設定された期間内のアクセスログをセッション毎にユーザアクセス履歴テーブル４２０から抽出する。予め設定された期間としては、各６ヶ月以内などの期間を設定することができる。なお、以下では、アクセスログは、ユーザアクセス履歴テーブル４２０から抽出した所定の期間内のアクセスログと、商品情報へのアクセスの記録を示す。
【００６１】
次に、ステップＳ３３２で、推薦キーワード生成部２３０は、抽出したアクセスログについてセッションＩＤ４２３が同一のレコードを抽出する。そして、ステップＳ３３３では、推薦キーワード生成部２３０は、セッションＩＤ４２３が同一のレコードを日時４２１の昇順でソートする。そして、推薦キーワード生成部２３０は、ソートした検索履歴からキーワード４２５に格納された検索キーワードを順次取得して連結する。推薦キーワード生成部２３０は、連結した検索キーワードと商品情報を関連グラフ２４０として保持する。
【００６２】
推薦キーワード生成部２３０は、所定期間内の全てのセッションＩＤ４２３について部分グラフ２４０Ａ〜２４０Ｆを抽出して上記関連グラフ２４０を生成する。
【００６３】
例えば、図７で示すように、データベースサーバ２００の推薦キーワード生成部２３０は、ログ収集サーバ４００のユーザアクセス履歴テーブル４２０から日付４２１が所定の期間内のアクセスログを取得する。そして、推薦キーワード生成部２３０は取得したユーザアクセス履歴テーブル４２０から、同一のセッションＩＤ４２３のレコードとして、図示の例では、セッションＩＤ４２３＝９１１１９のレコードを抽出し、日時４２１の昇順でソートしたものを、セッションログ４２０Ａとする。
【００６４】
次に、推薦キーワード生成部２３０は、図８で示すように、セッションログ４２０Ａから、日時４２１の古いレコードから順次キーワード４２５の内容を抽出し、抽出した検索キーワードを並べたデータを部分グラフ２４０Ａとして生成する。
【００６５】
図８の例では、推薦キーワード生成部２３０が、セッションＩＤ４２３＝９１１１９に等しい複数のレコードをセッションログ４２０Ａとしてユーザアクセス履歴テーブル４２０から抽出し、日付４２１の昇順でソートする。そして、推薦キーワード生成部２３０は、ソート後のセッションログ４２０Ａから日時４２１の昇順でキーワード４２５の内容を抽出した結果、「金具」、「フック」、「Ｓ字フック」の検索キーワードを時系列で接続したものを部分グラフ２４０Ａとして生成する。つまり、セッションＩＤ４２３＝９１１１９では、「金具」という検索キーワードをクライアント端末５００から入力した後に、「フック」という検索キーワードを入力し、当該セッションの最後に「Ｓ字フック」という順で検索キーワードを入力した履歴を示す。つまり、部分グラフ２４０Ａは、検索キーワードの時系列的な関係を、検索キーワードの接続順序で表現するグラフである。
【００６６】
図９は、図８と同様であり、推薦キーワード生成部２３０が図７のユーザアクセス履歴テーブル４２０からセッションＩＤ４２３＝９１１２１に等しい複数のレコードをセッションログ４２０Ｂとして抽出した例を示す。推薦キーワード生成部２３０は、セッションログ４２０Ｂを、日時４２１の昇順でソートする。そして、推薦キーワード生成部２３０は、ソート後のセッションログ４２０Ｂから日時４２１の昇順でキーワード４２５の内容を抽出した結果、「フック」、「Ｓ字フック」の検索キーワードを時系列で接続したものを部分グラフ２４０Ｂとして生成する。
【００６７】
図１０は、図８と同様であり、推薦キーワード生成部２３０が図７のユーザアクセス履歴テーブル４２０からセッションＩＤ４２３＝９２１１１に等しい複数のレコードをセッションログ４２０Ｃとして図７のユーザアクセス履歴テーブル４２０から抽出した例を示す。推薦キーワード生成部２３０は、セッションログ４２０Ｃを、日時４２１の昇順でソートする。そして、推薦キーワード生成部２３０は、ソート後のセッションログ４２０Ｃから日時４２１の昇順でキーワード４２５の内容を抽出した結果、「フック」、「Ｓ管」の検索キーワードを時系列で接続したものを部分グラフ２４０Ｃとして生成する。
【００６８】
図１１は、図８と同様であり、推薦キーワード生成部２３０が図７のユーザアクセス履歴テーブル４２０からセッションＩＤ４２３＝９２９１１に等しい複数のレコードをセッションログ４２０Ｄとして図７のユーザアクセス履歴テーブル４２０から抽出した例を示す。推薦キーワード生成部２３０は、セッションログ４２０Ｄを、日時４２１の昇順でソートする。そして、推薦キーワード生成部２３０は、ソート後のセッションログ４２０Ｄから日時４２１の昇順でキーワード４２５の内容を抽出した結果、「金具」、「取付金具」の検索キーワードを時系列で接続したものを部分グラフ２４０Ｄとして生成する。
【００６９】
図１２は、図８と同様であり、推薦キーワード生成部２３０が図７のユーザアクセス履歴テーブル４２０からセッションＩＤ４２３＝９２９２３に等しい複数のレコードをセッションログ４２０Ｅとして図７のユーザアクセス履歴テーブル４２０から抽出した例を示す。推薦キーワード生成部２３０は、セッションログ４２０Ｅを、日時４２１の昇順でソートする。そして、推薦キーワード生成部２３０は、ソート後のセッションログ４２０Ｅから日時４２１の昇順でキーワード４２５の内容を抽出した結果、「Ｓ管」、「ユニットＳ管ＸＸＸ」の検索キーワードを時系列で接続したものを部分グラフ２４０Ｅとして生成する。ここで、推薦キーワード生成部２３０は、生成した部分グラフ２４０Ｅの「ユニットＳ管ＸＸＸ」は、商品情報ＵＲＬ４２６にデータがあるので、関連グラフ２４０のリーフノードとなる商品情報とする。
【００７０】
図１３は、図８と同様であり、推薦キーワード生成部２３０が図７のユーザアクセス履歴テーブル４２０からセッションＩＤ４２３＝９３２１１に等しい複数のレコードをセッションログ４２０Ｆとして図７のユーザアクセス履歴テーブル４２０から抽出した例を示す。推薦キーワード生成部２３０は、セッションログ４２０Ｆを、日時４２１の昇順でソートする。そして、推薦キーワード生成部２３０は、ソート後のセッションログ４２０Ｆから日時４２１の昇順でキーワード４２５の内容を抽出した結果、「Ｓ管」、「ユニットＳ管ＹＹＹ」の検索キーワードを時系列で接続したものを部分グラフ２４０Ｆとして生成する。ここで、推薦キーワード生成部２３０は、生成した部分グラフ２４０Ｆの「ユニットＳ管ＹＹＹ」は、商品情報ＵＲＬ４２６にデータがあるので、関連グラフ２４０のリーフノードとなる商品情報とする。
【００７１】
以上のように、図６の処理によって、推薦キーワード生成部２３０は、セッションＩＤ４２３毎に時系列でキーワード４２５の内容を抽出したものを部分グラフ２４０Ａ〜２４０Ｆとして生成する。これらの部分グラフ２４０Ａ〜２４０Ｆの集合が、図１に示したデータベースサーバ２００のメモリ２０２内の関連グラフ２４０となる。そして、推薦キーワード生成部２３０は、上記生成した部分グラフ２４０Ａ〜２４０Ｆより、リーフノードとなる検索キーワードから順に接続関係を辿って、図１４に示す関連グラフ２４０を生成する。
【００７２】
この関連グラフ２４０の生成は、推薦キーワード生成部２３０が、商品情報に対応付けられたリーフノード間の時系列的に古い検索キーワードのうち、同一の検索キーワードを持つ関連グラフを同一のノード親ノードをもつ部分グラフとして抽出する。例えば、リーフノードを持つ部分グラフ２４０Ｅと２４０Ｆは、親ノードとして「Ｓ管」が等しいので、推薦キーワード生成部２３０は「Ｓ管」を親ノードとして子ノードにリーフノードをもつ部分グラフを生成する。
【００７３】
そして、推薦キーワード生成部２３０は、各部分グラフ２４０Ａ〜２４０Ｄについても、リーフノードから親ノードについてそれぞれ比較して、同一のノードを親ノードとして各部分グラフ２４０Ａ〜２４０Ｆを纏めることで図１４の関連グラフ２４０を生成する。
【００７４】
図４のステップＳ３３及び図６の処理により、推薦キーワード生成部２３０では、セッションログ４２３Ａ〜４２３Ｆから検索キーワードを部分グラフ２４０Ａ〜２４０Ｆとして抽出する。そして、推薦キーワード生成部２３０は、商品情報に対応付けられたリーフノードから親ノードとなる検索キーワードを辿って、図１４に示すように、検索キーワードから商品情報に至るキーワードを木構造のキーワード列で表した関連グラフ２４０を生成する。
【００７５】
図１４は、検索キーワードから商品情報に至るキーワード列の遷移回数を示す関連グラフ２４０である。関連グラフ２４０は、検索キーワード間で遷移の関係を線で接続し、遷移した回数を接続線の横に表示したものである。例えば、親ノードとしての「フック」から子ノードとしての「Ｓ字フック」への遷移は、図８の部分グラフ２４０Ａと、図９の部分グラフ２４０Ｂの合計２回の遷移が存在するので、関連グラフ２４０の「フック」から「Ｓ字フック」への遷移回数は２回となる。
【００７６】
＜確率遷移行列の生成＞
【００７７】
次に、図４のステップＳ３４で行われる関連グラフ２４０から各検索キーワードの確率遷移行列２５０を生成する処理について詳述する。
【００７８】
図１５は、関連グラフ２４０を構成するキーワード列から確率遷移行列２５０Ａを求める一例を示す。
【００７９】
まず、推薦キーワード生成部２３０は、関連グラフ２４０を構成するキーワード列を取得して、親ノードを表す列２５１へ各検索キーワードを格納し、子ノードを示す行２５２へ各検索キーワードを格納する。そして、推薦キーワード生成部２３０は、関連グラフ２４０から各検索キーワードについて、親ノードから子ノードへ遷移した回数を設定し、確率遷移行列２５０Ａとして生成する。
【００８０】
次に、推薦キーワード生成部２３０は、確率遷移行列２５０Ａの行単位で子ノードへの遷移回数の総数を求めて母数とする。そして、推薦キーワード生成部２３０は、各行の母数で子ノードへの遷移回数を除した確率を求めて、図１６で示す確率遷移行列２５０Ｂとして生成する。例えば、確率遷移行列２５０Ａの親ノードが「フック」の行では、「Ｓ管」への遷移が１回、「Ｓ字フック」への２回であるので、行の遷移回数の総数は３回となる。推薦キーワード生成部２３０は、図１６の確率遷移行列２５０Ｂのように、親ノードが「フック」の行では、「Ｓ管」への遷移確率が１／３、「Ｓ字フック」への遷移確率が１／３に設定する。推薦キーワード生成部２３０は、他の行についても同様に、親ノードから子ノードへの遷移確率を行単位で求め、確率遷移行列２５０Ｂを生成する。
【００８１】
次に、推薦キーワード生成部２３０は、確率遷移行列２５０Ｂのうち図１４の関連グラフ２４０で子ノードがない親ノードの遷移確率を、各行の構成要素（子ノード）の総数の逆数として設定し、図１７で示す確率遷移行列２５０Ｃとして生成する。図１７の例では、検索の課程で確率遷移行列２５０Ｂでは子ノードのない親ノード＝「取付金具」、「Ｓ字フック」、「ユニットＳ管ＸＸＸ」、「Ｓ管ＹＹＹ」にたどり着いた後も、さらに検索キーワードを入力する場合がある。このため、子ノードのない親ノードでは、他の子ノードのいずれかへ遷移すると仮定して均等の確率を設定する。すなわち、確率遷移行列２５０Ｃでは、子ノード（図中、行方向の「金具」〜「Ｓ管ＹＹＹ」）の総数が「７」であるので、各親ノードから子ノードへ遷移する確率を１／７に設定する。
【００８２】
次に、推薦キーワード生成部２３０は、図１８で示すように、単位行列として確率遷移行列２５０Ｄを生成し、上記図１７で生成した確率遷移行列２５０Ｃから確率遷移行列Ｚを生成する。ここで、単位行列としての確率遷移行列２５０Ｄは、親ノードから子ノードへの遷移確率が全て均等とした行列で、図示の例では子ノードの総数が７であるので、単位行列は、１／７の遷移確率に設定される。
【００８３】
次に、推薦キーワード生成部２３０は、図１７で求めた確率遷移行列２５０Ｃを行列Ｈとし、図１８で設定した確率遷移行列２５０Ｄの単位行列を行列Ｉとして、次式より確率遷移行列２５０を求める。なお、以下では確率遷移行列２５０を行列Ｚで表す。
Ｚ  ＝  αＨ＋（１−α）×Ｉ    ………  （１）
ただし、αは安定化係数で、予め設定した値（例えば、０．８〜０．９等）である。
【００８４】
以上により、確率遷移行列Ｚが推薦キーワード生成部２３０によって求められる。
【００８５】
＜固有ベクトルの演算＞
【００８６】
次に、図４のステップＳ３５で行われる固有ベクトル２６０の演算について説明する。推薦キーワード生成部２３０は、上記（１）式で求めた確率遷移行列Ｚについて、予め設定したＫ本の固有ベクトルを演算する。ただし、固有ベクトルの演算は、固有値の大きいものから順にＫ本の固有ベクトルを演算する。例えば、Ｋ＝２の場合、図１９、図２０のように、推薦キーワード生成部２３０は、検索キーワードから商品情報に至るシーケンスから、図１９に示す第１固有ベクトルと、図２０に示す第２固有ベクトルをそれぞれ求める。
【００８７】
なお、図１９は、固有ベクトル２６０と、第１固有ベクトルの値を関連グラフ２４０に設定した例を示す。また、図２０は、固有ベクトル２６０と、第２固有ベクトルの値を関連グラフ２４０に設定した例を示す。
【００８８】
図１９の第１固有ベクトルを設定した関連グラフ２４０において、「金具」から商品情報である「ユニットＳ管ＸＸＸ」に至るキーワード列で、固有ベクトル２６０の値が最も小さい「Ｓ管」＝０．０４が最も思いつきにくい検索キーワードである。つまり、ユーザアクセス履歴テーブル４２０のセッションログでは、「金具」の検索キーワードから「フック」の検索結果を得たユーザは多数存在するが、「Ｓ管」の検索キーワードから商品情報の「ユニットＳ管ＸＸＸ」の検索結果を得たユーザは極めて少数であることを示す。本発明では、思いつきにくいが、商品情報にたどり着くことのできる固有ベクトルの小さい推薦キーワードを提示することができるのである。
【００８９】
なお、図３の検索結果表示領域５４２の関連グラフ領域５４３に、第１固有ベクトルの値を表示しても良い。特に、第１固有ベクトルの値のうち最も値の小さい固有ベクトルの値を推薦キーワードと共に表示してもよい。あるいは、第１固有ベクトルの値のうち最も値の小さい固有ベクトルの推薦キーワードを協調して表示する等、固有ベクトルが最小であることを特定するようにしてもよい。これにより、商品情報へ辿りつくのに思いつきにくい推薦キーワードが何れであるかを明示することができる。
【００９０】
＜推薦キーワードの生成＞
【００９１】
次に、図４のステップＳ３６で行われる推薦キーワードテーブル２２０の生成について説明する。推薦キーワード生成部２３０は、上記ステップＳ３５で、Ｋ＝２の場合、上記図１９、図２０のように第１固有ベクトルと第２固有ベクトルを求める。そして、推薦キーワード生成部２３０は、図１９に示す第１固有ベクトルでは、検索キーワードが「金具」から「フック」、「Ｓ管」を経てリーフノードである商品情報＝「ユニットＳ管ＸＸＸ」に至るキーワード列を得る。この、キーワード列に最も高い優先度＝１を与える。また、図２０に示す第２固有ベクトルでは、検索キーワードが「金具」から「フック」、「Ｓ管」を経てリーフノードである商品情報＝「Ｓ管ＹＹＹ」に至るキーワード列を得る。この、キーワード列に２番目の優先度＝２を与える。
【００９２】
そして、推薦キーワード生成部２３０は、キーワード列の長さに応じて第１ワードから第Ｎワード（本実施形態ではＮ＝４）までの検索キーワードを推薦キーワードとして、上記優先度の順に設定したテーブルを推薦キーワードテーブル２２０として生成する。この結果、図１９、図２０の例では、図２１に示すように、優先度２２１に応じた第１ワード２２２から第４ワード２２５にキーワード列の検索キーワードが設定される。例えば、優先度２２１＝１の推薦キーワードテーブル２２０は、第１ワード＝「金具」から第４ワード＝「ユニットＳ管ＸＸＸ」のキーワード列から構成される。また、優先度２２１＝２の推薦キーワードテーブル２２０は、第１ワード＝「金具」から第４ワード＝「Ｓ管ＹＹＹ」のキーワード列から構成される。
【００９３】
なお、図２１において、優先度２２１＝３，４のエントリは、固有ベクトル２６０を４本求めたときの例を示す。また、推薦キーワードテーブル２２０には、商品情報が第１ワード２２２〜第Ｎワードの何れのフィールドに格納されているかの情報を格納したフィールドを加えておくことが望ましい。あるいは、推薦キーワードテーブル２２０のキーワード列の終端が商品情報のときに「０」を設定し、キーワード列の終端がキーワードのときに「１」を設定するフラグを各エントリに設けても良い。
【００９４】
＜推薦キーワードの提示＞
【００９５】
次に、図２のステップＳ４で示した、検索キーワードに対して推薦キーワードテーブル２２０に格納された推薦キーワードを提示する処理の詳細について以下に説明する。
【００９６】
図２５は、図２のステップＳ４で行われる処理の詳細を示すフローチャートである。このフローチャートは、クライアント端末５００が入力した検索キーワードを、ＷＥＢサーバ１００を介してデータベースサーバ２００が受信したときにＤＢＭＳ２１０で実行される。
【００９７】
ステップＳ４１では、ＤＢＭＳ２１０がＷＥＢサーバ１００から検索キーワードを受け付ける。この検索キーワードは、クライアント端末５００が図３の検索画面５４０で入力したキーワードである。
【００９８】
ステップＳ４２では、ＤＢＭＳ２１０は推薦キーワードテーブル２２０を検索し、受け付けた検索キーワードと一致する推薦キーワードＸを特定する。なお、推薦キーワードに一致する検索キーワードが推薦キーワードテーブル２２０内に見つからないときには、類義語辞書等から検索キーワードに最も近い推薦キーワード２２０をＤＢＭＳ２１０が推薦キーワードＸとして特定してもよい。なお、検索キーワードに最も近い類義語を推薦キーワードテーブル２２０から検索する手法については、公知または周知の手法を用いればよい。
【００９９】
ステップＳ４３では、ＤＢＭＳ２１０は推薦キーワードテーブル２２０を検索し、特定した推薦キーワードＸを含むキーワード列をＬ本抽出する。なお、「Ｌ」は予め設定された値で、キーワードテーブル２２０から抽出するキーワード列の本数の最大値である。
【０１００】
ステップＳ４４では、ＤＢＭＳ２１０は上記ステップＳ４３で抽出した１以上のキーワード列のうち推薦キーワードＸから商品情報に至るパス（キーワード列）を抽出する。ステップＳ４５では、ＤＢＭＳ２１０が推薦キーワードＸから商品情報に至るパスを、図３に示した検索結果表示領域５４２の関連グラフを表示する領域５４３に出力するデータを生成する。
【０１０１】
ステップＳ４６では、ＤＢＭＳ２１０が上記ステップＳ４４で抽出したパスの商品情報を商品データベース３１０から取得し、図３に示した検索結果表示領域５４２の商品情報を表示する領域５４４に出力するデータを生成し、上記ステップＳ４５で生成した関連グラフの領域５４３と共にＷＥＢサーバ１００に応答する。ＷＥＢサーバ１００はＤＢＭＳ２１０からの応答をクライアント端末５００に送信する。
【０１０２】
以上の処理により、クライアント端末５００がＷＥＢサーバ１００に検索キーワードを送信すると、ＷＥＢサーバ１００はデータベースサーバ２００に検索キーワードを転送して、検索キーワードの検索を依頼する。データベースサーバ２００では予め推薦キーワードテーブル２２０を生成しておき、ＷＥＢサーバ１００から受信した検索キーワードで推薦キーワードテーブル２２０を検索する。データベースサーバ２００は、検索キーワードと一致または類似する推薦キーワードを特定して推薦キーワードＸとする。ＤＢＭＳ２１０は推薦キーワードＸに関連するキーワード列を推薦キーワードテーブル２２０から複数抽出し、推薦キーワードＸから商品情報に至るキーワード列を出力する。このキーワード列の終端は、検索結果としての商品情報であり、推薦キーワードＸから商品情報に至るキーワード列は、ＷＥＢサーバ１００を介して図３で示したクライアント端末５００の検索結果表示領域５４２に出力される。
【０１０３】
例えば、図２２で示すように、ＤＢＭＳ２１０は検索キーワード２２６が「金具」で抽出する抽出本数の最大値Ｌ＝４のとき、第１ワードが「金具」に一致する優先度＝１〜４の推薦キーワードテーブル２２０から複数のキーワード列を取得する。そしてＤＢＭＳ２１０が、取得したキーワード列を図３に示す検索結果表示領域５４２に表示するデータとしてＷＥＢサーバ１００を介してクライアント端末５００に応答する。すなわち、「金具」〜商品情報に至る複数のパスが、クライアント端末５００のディスプレイ５０４に出力される。なお、図２２の２２０'は推薦キーワードテーブル２２０の検索用のテーブルであり、ＤＢＭＳ２１０が一時的に生成することができる。
【０１０４】
また、検索キーワードが「フック」の場合には、図２３で示すように、推薦キーワードテーブル２２０の優先度が１〜３のエントリにおいて第２ワードが検索キーワードに一致する。ＤＢＭＳ２１０は、図中２２０'で示すように推薦キーワードテーブル２２０のうち優先度が１〜３の第２ワード以降をキーワード列として３本抽出し、ＷＥＢサーバ１００を介してクライアント端末５００に応答する。
【０１０５】
また、検索キーワードが「Ｓ管」の場合には、図２４で示すように、推薦キーワードテーブル２２０の優先度が１〜２のエントリにおいて第３ワードが検索キーワードに一致する。ＤＢＭＳ２１０は、図中２２０'で示すように推薦キーワードテーブル２２０のうち優先度が１〜２の第３ワード以降をキーワード列として２本抽出し、ＷＥＢサーバ１００を介してクライアント端末５００に応答する。
【０１０６】
以上より、クライアント端末５００を操作する電子商取引サイト２のユーザは、ＷＥＢサーバ１００から検索画面５４０を要求し、検索キーワードを入力すると、検索キーワードに近い推薦キーワードから商品情報に至る複数のキーワード列を関連グラフ２４０として得ることができる。この推薦キーワードテーブル２２０は、電子商取引サイト２で複数のユーザが実行した検索と閲覧（検索結果へのアクセス）の履歴を格納したユーザアクセス履歴テーブル４２０から生成するものである。
【０１０７】
これにより、前記従来例のように、ユーザなどが商品データベース３１０内の商品に評価を与える必要がなくなる。そして、本発明は、検索キーワードと商品情報の関係をキーワード列（関連グラフ２４００）の構造から、暗黙の評価をクライアント端末５００のユーザに提供することができ。また、検索キーワードから商品情報に到達する木構造の関連グラフ２４００を提供することで、クライアント端末５００のユーザは、所望する商品情報を前記従来例に比して極めて容易に得ることができる。また、本発明では、前記従来例のように発売直後の商品の情報を用意する必要もないので、電子商取引サイト２を運営する労力も大幅に低減できる。
【０１０８】
商品などの検索の際に、確実に目的の商品情報に辿りつける検索キーワードは、商品名そのものや、商品の型番など、ユーザにとって比較的忘れやすい情報が多く存在する。
【０１０９】
一方、ユーザがすぐに思い付くことができる検索キーワードは、抽象度が高いためヒットする商品の範囲は非常に広くなってしまう、という問題があった。このため商品の名称になじみがない新商品の場合、前記従来例で述べたCold start problemの本質的な課題であり、容易に検索キーワードから目的の商品に辿りつけないという問題があった。
【０１１０】
これに対して、本発明では、検索されたキーワードの履歴と参照された商品情報の履歴から、なじみのない商品が属する抽象的なキーワードから、より具体的なキーワードに至るキーワード列を生成することが可能となった。特に、多数のユーザの検索履歴を活用して推薦キーワードテーブル２２０を作成することで、一人のユーザでは容易に結び付けられなかったキーワードと商品情報を結びつけることが可能となる。
【０１１１】
本発明によれば、新商品であっても、例えば既に売れている商品から一旦、抽象的なキーワードに戻ってそこから手繰り寄せることができ、ユーザが新商品のうち本来欲しかった機能を有するものを容易に検索することが容易になる。
【０１１２】
なお、上記実施形態では、商品データベース３１０に本発明を適用した例を示したが、売買の有無にかかわらず、ユーザが他のユーザの評価を参考にしたい情報を格納したデータベースの検索システムまたは検索装置に適用することができる。
【０１１３】
＜変形例＞
【０１１４】
図２６は、図２のステップＳ４で行われる処理の変形例を示すフローチャートである。この変形例では、検索キーワードに一致または類似する推薦キーワードテーブル２２０の高次（検索の起点側で上位）の推薦キーワードも検索結果表示領５４２へ出力する処理である。
【０１１５】
このフローチャートは、クライアント端末５００が入力した検索キーワードを、ＷＥＢサーバ１００を介してデータベースサーバ２００が受信したときにＤＢＭＳ２１０で実行される。
【０１１６】
ステップＳ５１では、図２４のステップＳ４１と同様に、ＤＢＭＳ２１０がＷＥＢサーバ１００から検索キーワードを受け付ける。この検索キーワードは、クライアント端末５００が図３の検索画面５４０で入力したキーワードである。
【０１１７】
ステップＳ５２では、ＤＢＭＳ２１０は推薦キーワードテーブル２２０を検索し、受け付けた検索キーワードと一致する推薦キーワードＸを特定する。なお、推薦キーワードテーブル２２０に一致する検索キーワードが見つからないときには、類義語辞書等から検索キーワードに最も近い推薦キーワードをＤＢＭＳ２１０が推薦キーワードＸとして特定してもよい。
【０１１８】
ステップＳ５３では、ＤＢＭＳ２１０は推薦キーワードテーブル２２０を検索し、特定した推薦キーワードＸを含むキーワード列をＭ本抽出する。なお、「Ｍ」は予め設定された値で抽出するキーワード列の本数の最大値を示す。
【０１１９】
ステップＳ５４では、ＤＢＭＳ２１０は上記ステップＳ５３で抽出したキーワード列のうち推薦キーワードＸよりも高次（検索の起点側）の推薦キーワードＹを抽出する。
【０１２０】
ステップＳ５５では、ＤＢＭＳ２１０は推薦キーワードテーブル２２０を検索し、高次の推薦キーワードＹから商品情報に至るキーワード列（パス）をＬ本抽出する。そして、ＤＢＭＳ２１０は推薦キーワードＹから商品情報に至るパスを、図３に示した検索結果表示領域５４２の関連グラフを表示する領域５４３に出力するデータを生成する。ステップＳ５６では、ＤＢＭＳ２１０が上記ステップＳ５４で抽出したパスの商品情報を商品データベース３１０から取得し、図３に示した検索結果表示領域５４２の商品情報を表示する領域５４４に出力するデータを生成し、上記ステップＳ５５で生成した関連グラフの領域５４３と共にＷＥＢサーバ１００に応答する。ＷＥＢサーバ１００はＤＢＭＳ２１０からの応答をクライアント端末５００に送信する。
【０１２１】
以上の処理により、データベースサーバ２００では予め生成した推薦キーワードテーブル２２０を、ＷＥＢサーバ１００から受信した検索キーワードで検索する。データベースサーバ２００は、検索キーワードと一致または類似する推薦キーワードＸを特定し、さらに推薦キーワードＸよりも検索の起点側の高次の推薦キーワードＹから商品情報に至るキーワード列を取得して、図３で示した検索結果表示領域５４２に出力するデータを生成する。
【０１２２】
この変形例によれば、新しい商品が商品データベース３１０に追加された場合にも、高次（関連グラフ２４００で検索の起点側または上方）の推薦キーワードからのパスを辿ることで比較的早期に新たな商品が推薦キーワード２２０から推薦されやすくなり、注目されるまで時間がかかってしまうという前記従来例のCold start problemに対する解決策を与えることができる。つまり、本発明の電子商取引サイト２では、クライアント端末５００のユーザが思いついた検索キーワードよりも広い範囲でキーワード列と商品情報を提供できるので、発売直後の新商品に辿りつく可能性を高めることができる。
【０１２３】
例えば、ＤＢＭＳ２１０が検索キーワードとして「フック」を受け付けた場合、図２１で示すように、優先度２２１が１〜３の第２ワード２２３の「フック」が推薦キーワードＸとして特定する。そして、ＤＢＭＳ２１０は、特定した第２ワード２２３よりも高次（検索の起点側）の推薦キーワード２２０が第１ワード２２２に「金具」が存在するので、この「金具」を推薦キーワードＹとして特定する。そして、ＤＢＭＳ２１０は、図３で示すように「金具」を頂点とする関連グラフ２４００のキーワード列をＷＥＢサーバ１００へ送信する。クライアント端末５００は、図３の検索画面５４０の検索結果表示領域５４２に表示された関連グラフ２４００から、検索キーワード＝「フック」から高次の推薦キーワードである「金具」を辿り、推薦キーワードが「取付金具」を経て商品情報に至ることもしることができる。なお、ＤＢＭＳ２１０が特定した推薦キーワードＸより高次の推薦キーワードＹの範囲は、予め設定した範囲で特定することができる。例えば、推薦キーワード２２０の第Ｎワードを推薦キーワードＸとして特定した場合、第（Ｎ−β）ワードを推薦キーワードＹとして特定する。これにより、検索キーワードから特定した推薦キーワードＸよりもβ階層だけ高次の推薦キーワードＹからのキーワード列を得ることができる。これにより、電子商取引サイト２は、入力された検索キーワードよりも広範囲のキーワード列をクライアント端末５００のユーザに提供することができる。
【０１２４】
なお、上記実施形態では、データベースサーバ２００のＤＢＭＳ２１０が、推薦キーワード２２０を検索する例を示したが、ＷＥＢサーバ１００が推薦キーワード２２０を利用するようにしても良い。例えば、ＷＥＢサーバ１００で推薦キーワード生成部２３０を実行してメモリ１０２に推薦キーワード２２０を格納しておく。ＷＥＢサーバ１００は検索キーワードをデータベースサーバ２００に転送し、検索結果をデータベースサーバ２００から受信すると、図２５に示したステップＳ４２〜Ｓ４６と同様の処理を行う。これにより、ＷＥＢサーバ１００は推薦キーワード２２０をデータベースサーバ２００の検索結果（商品情報）に付加して関連グラフ２４００をクライアント端末５００に提供することができる。
【０１２５】
また、上記実施形態のＷＥＢサーバ１００とログ収集サーバ４００とデータベースサーバ２００とストレージ措置３００を一つに纏めて情報検索装置として提供しても良い。
【産業上の利用可能性】
【０１２６】
本発明は、検索する情報に関連した推薦情報を提供する計算機システムに適用することができ、特に、クライアント端末から受け付けた検索キーワードで、商品情報を検索し、推薦する情報も提供するデータベースシステムに好適である。また、本発明は、検索する商品情報とともに推薦する商品情報も提供する情報推薦装置または検索装置にも適用することができる。
【図１】
2012160693.tif 000003
【図２】
2012160693.tif 000004
【図３】
2012160693.tif 000005
【図４】
2012160693.tif 000006
【図５】
2012160693.tif 000007
【図６】
2012160693.tif 000008
【図７】
2012160693.tif 000009
【図８】
2012160693.tif 000010
【図９】
2012160693.tif 000011
【図１０】
2012160693.tif 000012
【図１１】
2012160693.tif 000013
【図１２】
2012160693.tif 000014
【図１３】
2012160693.tif 000015
【図１４】
2012160693.tif 000016
【図１５】
2012160693.tif 000017
【図１６】
2012160693.tif 000018
【図１７】
2012160693.tif 000019
【図１８】
2012160693.tif 000020
【図１９】
2012160693.tif 000021
【図２０】
2012160693.tif 000022
【図２１】
2012160693.tif 000023
【図２２】
2012160693.tif 000024
【図２３】
2012160693.tif 000025
【図２４】
2012160693.tif 000026
【図２５】
2012160693.tif 000027
【図２６】
2012160693.tif 000028
【国際調査報告】
2012160693.tif 000029
2012160693.tif 000030