(57)【要約】【課題】利用者の行動について詳細で精度の高い推定結果を得ること。【解決手段】行動推定装置１０は、利用者が複数のＷＥＢページを参照した順序を示す参照履歴データ１１１に基づいて、利用者によって参照された各ＷＥＢページをノードとするツリー構造データ１１２を生成するツリー構造生成部１２１と、ツリー構造データ１１２に含まれる各ノードに対応するＷＥＢページの機能を解析する機能解析部１２２と、ツリー構造データ１１２に含まれる各ノードが関連付けされている状況と、各ノードに対応するＷＥＢページの機能の解析結果とに基づいて、利用者の行動を推定する行動推定部１２３とを備える。【選択図】図１
2011100208.tif 000002
【特許請求の範囲】
【請求項１】
利用者が複数のＷＥＢページを参照した順序を示す参照履歴データを記憶する記憶手段と、
前記参照履歴データに基づいて、前記利用者によって参照された各ＷＥＢページをノードとするツリー構造データであって、第１のＷＥＢページの次に参照された第２のＷＥＢページに対応する第２のノードが、前記第１のＷＥＢページに対応する第１のノードの子ノードとなるように各ノードが関連付けられたツリー構造データを生成するツリー構造生成手段と、
前記ツリー構造生成手段によって生成されたツリー構造データに含まれる各ノードに対応するＷＥＢページの機能を解析する機能解析手段と、
前記ツリー構造生成手段によって生成されたツリー構造データに含まれる各ノードが関連付けされている状況と、前記機能解析手段による各ノードに対応するＷＥＢページの機能の解析結果とに基づいて、前記利用者の行動を推定する行動推定手段と
を備えることを特徴とする行動推定装置。
【請求項２】
前記行動推定手段は、前記機能解析手段によって各ノードに対応するＷＥＢページの機能が解析された後の前記ツリー構造データから所定のパターンの部分木を抽出し、抽出した部分木に含まれる各ノードが関連付けされている状況と、前記機能解析手段による各ノードに対応するＷＥＢページの機能の解析結果とに基づいて、前記利用者の行動を推定することを特徴とする請求項１に記載の行動推定装置。
【請求項３】
前記行動推定手段は、各ノードの機能が特定された部分木ごとに利用者の行動が定義された行動指定ルールを、前記機能解析手段によって各ノードに対応するＷＥＢページの機能が解析された後の前記ツリー構造データと照合することによって、前記利用者の行動を推定することを特徴とする請求項１または２に記載の行動推定装置。
【請求項４】
利用者が複数のＷＥＢページを参照した順序を示す参照履歴データを記憶する記憶工程と、
前記参照履歴データに基づいて、前記利用者によって参照された各ＷＥＢページをノードとするツリー構造データであって、第１のＷＥＢページの次に参照された第２のＷＥＢページに対応する第２のノードが、前記第１のＷＥＢページに対応する第１のノードの子ノードとなるように各ノードが関連付けられたツリー構造データを生成するツリー構造生成工程と、
前記ツリー構造生成工程において生成されたツリー構造データに含まれる各ノードに対応するＷＥＢページの機能を解析する機能解析工程と、
前記ツリー構造生成工程において生成されたツリー構造データに含まれる各ノードが関連付けされている状況と、前記機能解析工程による各ノードに対応するＷＥＢページの機能の解析結果とに基づいて、前記利用者の行動を推定する行動推定工程と
を含むことを特徴とする行動推定方法。
【請求項５】
請求項１ないし３のいずれか一項に記載の行動推定装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、行動推定装置、行動推定方法および行動推定プログラムに関する。
【背景技術】
【０００２】
近年、ＷＥＢページを参照する利用者の行動を推定する技術が盛んに研究され、実際に様々な場面で利用されるようになっている。例えば、オンラインショッピングサイトでは、利用者が現在参照しているＷＥＢページで販売されている商品と利用者が過去に商品を購入した実績情報に基づいて、その利用者が何を購入しようとしているかを推定し、その推定結果に基づいて選択された推奨商品をＷＥＢページ上の空きスペース等に表示する技術が利用されている。
【０００３】
また、ユーザがＰＣ上で行ったＷＥＢ閲覧行動の記録から、閲覧行動をカテゴリ分けして、「新たな検索行動」、「以前の検索行動の再表示」、「検索行動からクリックによるＷＥＢ閲覧」、「検索以外から始まったＷＥＢ閲覧」といったユーザ行動を推定する技術も知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１２８９３７号公報
【非特許文献】
【０００５】
【非特許文献１】Lee, Uichin, “Automatic identification of user goals in Web search”, Proceedings of the 14th international conference on World Wide Web, ACM, 2005, pp391-400
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の技術では、利用者が現在行っている行動のおおまかな「内容」は推定できるもの、「目的」を推定することができないため、推定結果が有効に活用されない場合があった。
【０００７】
例えば、オンラインショッピングサイトでは、利用者がある商品のＷＥＢページを参照しようとしている場合、その行動の目的が「その商品または同種の商品を購入すること」であれば同種の商品を推奨商品として表示することは有効である。しかしながら、その行動の目的が「何か欲しいものがないか探すこと」であれば、同種の商品を推奨商品として表示することの効果は低く、むしろ、その利用者の嗜好に合った商品を推奨商品として表示する方が有効である。
【０００８】
本発明は、上記に鑑みてなされたものであって、利用者の行動について詳細で精度の高い推定結果を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、利用者が複数のＷＥＢページを参照した順序を示す参照履歴データを記憶する記憶手段と、前記参照履歴データに基づいて、前記利用者によって参照された各ＷＥＢページをノードとするツリー構造データであって、第１のＷＥＢページの次に参照された第２のＷＥＢページに対応する第２のノードが、前記第１のＷＥＢページに対応する第１のノードの子ノードとなるように各ノードが関連付けられたツリー構造データを生成するツリー構造生成手段と、前記ツリー構造生成手段によって生成されたツリー構造データに含まれる各ノードに対応するＷＥＢページの機能を解析する機能解析手段と、前記ツリー構造生成手段によって生成されたツリー構造データに含まれる各ノードが関連付けされている状況と、前記機能解析手段による各ノードに対応するＷＥＢページの機能の解析結果とに基づいて、前記利用者の行動を推定する行動推定手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明に係る行動推定装置、行動推定方法および行動推定プログラムは、利用者の行動について詳細で精度の高い推定結果を得ることができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、本実施例１に係る行動推定装置の構成を示す図である。
【図２】図２は、参照履歴データの一例を示す図である。
【図３】図３は、ツリー構造データの一例を示す図である。
【図４】図４は、ツリー構造の一例を示す図である。
【図５】図５は、機能解析ルールの一例を示す図である。
【図６】図６は、機能解析後のツリー構造データの一例を示す図である。
【図７】図７は、機能解析後のツリー構造の一例を示す図である。
【図８】図８は、行動推定ルールの一例を示す図である。
【図９】図９は、部分木の一例を示す図である。
【図１０】図１０は、部分木の他の一例を示す図である。
【図１１】図１１は、行動推定装置が実行する行動推定処理の処理手順を示す図である。
【図１２】図１２は、本実施例２に係る行動推定装置の構成を示す図である。
【図１３】図１３は、参照履歴データの一例を示す図である。
【図１４】図１４は、ツリー構造データの一例を示す図である。
【図１５】図１５は、ツリー構造生成処理の処理手順を示す図である。
【図１６−１】図１６−１は、初期処理が完了した後の状態を示す図である。
【図１６−２】図１６−２は、１行目の処理が完了した後の状態を示す図である。
【図１６−３】図１６−３は、２行目の処理が完了した後の状態を示す図である。
【図１６−４】図１６−４は、３行目の処理が完了した後の状態を示す図である。
【図１６−５】図１６−５は、４行目の処理が完了した後の状態を示す図である。
【図１７】図１７は、機能解析後のツリー構造データの一例を示す図である。
【図１８】図１８は、機能解析処理の処理手順を示す図である。
【図１９】図１９は、部分木抽出ルールの一例を示す図である。
【図２０】図２０は、部分木抽出データの一例を示す図である。
【図２１】図２１は、部分木抽出処理の処理手順を示す図である。
【図２２】図２２は、行動推定ルールの一例を示す図である。
【図２３】図２３は、部分木照合処理の処理手順を示す図である。
【図２４】図２４は、部分木照合処理の他の処理手順を示す図である。
【図２５】図２５は、ユーザ回答データの一例を示す図である。
【図２６】図２６は、行動推定ルール設定処理の処理手順を示す図である。
【図２７】図２７は、部分木抽出ルールの一例を示す図である。
【図２８】図２８は、推定結果の一例を示す図である。
【図２９】図２９は、ツリー構造データの一例を示す図である。
【図３０】図３０は、部分木抽出ルールの一例を示す図である。
【図３１】図３１は、推定結果の一例を示す図である。
【図３２】図３２は、部分木抽出ルールの一例を示す図である。
【図３３】図３３は、推定結果の一例を示す図である。
【図３４】図３４は、コンピュータの構成を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明に係る行動推定装置、行動推定方法および行動推定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１３】
まず、図１を参照しながら、本実施例に係る行動推定装置１０の構成について説明する。行動推定装置１０は、本実施例に係る行動推定方法を実行することにより、利用者がＷＥＢページを参照した履歴から利用者の行動を推定する装置である。図１に示すように、行動推定装置１０は、記憶部１１０と制御部１２０を有する。
【００１４】
記憶部１１０は、例えば、ハードディスク装置や半導体記憶装置であり、参照履歴データ１１１と、ツリー構造データ１１２と、機能解析ルール１１３と、行動推定ルール１１４とを記憶する。
【００１５】
参照履歴データ１１１は、利用者がどのＷＥＢページをどのような順序で参照したかを示す履歴情報である。参照履歴データ１１１の内容は、例えば、ＷＥＢサーバが要求メッセージを受信するたびに記録するアクセスログであってもよいし、ＷＥＢブラウザがＷＥＢサーバへＷＥＢページを要求するたびに記録するログであってもよい。
【００１６】
ツリー構造データ１１２は、利用者がどのＷＥＢページを参照した後に他のどのＷＥＢページを参照したかを示すツリー構造のデータである。ツリー構造データ１１２においては、利用者が参照した各ＷＥＢページが１つのノードとして保持され、遷移元のＷＥＢページに対応するノードが親ノードとなり、前方向の遷移先のＷＥＢページに対応するノードが子ノードとなるようにノード間が接続される。例えば、利用者がＡというＷＥＢページのリンクを辿ってＢというＷＥＢページを参照し、Ａに戻った後にリンクを辿ってＣというＷＥＢページを参照した場合、Ａに対応するノードは、Ｂに対応するノードとＣに対応するノードの親ノードとなる。
【００１７】
機能解析ルール１１３は、ツリー構造データ１１２に含まれる各ノードに対応するＷＥＢページの機能を特定するための情報である。行動推定ルール１１４は、ツリー構造データ１１２内のノードのツリー構造と、機能解析ルール１１３を用いて特定されたツリー構造データ１１２内の各ノードに対応するＷＥＢページの機能とに基づいて利用者の行動を推定するための情報である。
【００１８】
なお、図１において記憶部１１０に記憶されるものとして図示されているデータの一部または全ては、行動推定装置１０と通信可能に構成された他の装置に、行動推定装置１０からアクセス可能な状態で格納されていてもよい。
【００１９】
制御部１２０は、行動推定装置１０を全体制御する制御部であり、ツリー構造生成部１２１と、機能解析部１２２と、行動推定部１２３とを有する。
【００２０】
ツリー構造生成部１２１は、参照履歴データ１１１から行動を推定する対象の利用者の情報を抽出し、参照された各ＷＥＢページに対応するノードを参照順序に基づいて関連付けて、ツリー構造データ１１２を生成する。機能解析部１２２は、ツリー構造生成部１２１によって生成されたツリー構造データ１１２に含まれる各ノードに対応するＷＥＢページの機能を機能解析ルール１１３に基づいて特定する。
【００２１】
行動推定部１２３は、ＷＥＢページの参照順序を表すツリー構造データ１１２内のノードのツリー構造と、機能解析ルール１１３を用いて特定されたツリー構造データ１１２内の各ノードに対応するＷＥＢページの機能とを、行動推定ルール１１４と照合することによって、利用者の行動を推定する。すなわち、行動推定部１２３は、利用者によって参照される単一のＷＥＢページに注目して利用者の行動を推定するのではなく、利用者がどのような機能のＷＥＢページをどのような順序で参照したかに基づいて利用者の行動を推定する。
【００２２】
一般に、利用者がどの機能のＷＥＢページをどの順序で参照するかは、利用者の目的に応じて異なる。例えば、どの種類の商品を購入するかを決めた上で購入する具体的な商品を捜している場合、利用者は、検索用のＷＥＢページを利用してその種類の商品を一覧表示させた後、そこから個別の商品の詳細情報が掲載されたＷＥＢページを参照することが多い。すなわち、どの種類の商品を購入するかを決めた上で購入する具体的な商品を捜している場合には、「商品検索」という機能をもつＷＥＢページを参照した後に「商品情報」という機能をもつＷＥＢページを参照することが多い。
【００２３】
一方、何か面白そうな商品を漠然と捜している場合、利用者は、売れ筋上位の表品の一覧が一覧表示されたＷＥＢページを参照した後、そこから個別の商品の詳細情報が掲載されたＷＥＢページを参照することが多い。すなわち、何か面白そうな商品を漠然と捜している場合には、「ランキング」という機能をもつＷＥＢページを参照した後に「商品情報」という機能をもつＷＥＢページを参照することが多い。
【００２４】
このように、利用者が最終的に参照するＷＥＢページの機能が同様のものであっても、利用者がどのような目的をもっているかによって、そのＷＥＢページに辿りつくまでに利用者が参照するＷＥＢページの機能は異なる。また、利用者が最初に参照するＷＥＢページの機能が同様のものであっても、利用者がどのような目的をもっているかによって、利用者が最終的に参照するＷＥＢページの機能は異なる。
【００２５】
本実施例に係る行動推定装置１０は、上述したように、利用者がどのような機能のＷＥＢページをどのような順序で参照したかに基づいて利用者の行動を行動推定部１２３が推定するので、利用者がどのような目的をもっているかを把握して利用者の行動を推定することができ、その結果、詳細で精度の高い推定結果を得ることができる。
【００２６】
次に、図１に示した制御部１２０に含まれる各部が実行する処理についてより詳しく説明する。
【００２７】
ツリー構造生成部１２１は、行動を推定する対象の利用者が参照したＷＥＢページに関するデータを参照履歴データ１１１から参照順に読み出す。そして、読み出したデータが示すＷＥＢページがツリー構造生成部１２１にノードとしてまだ反映されていないものであれば、そのＷＥＢページに対応するノードを生成し、生成したノードを、直前に読み出したデータが示すＷＥＢページに対応するノードに子ノードとして関連付ける。
【００２８】
一方、読み出したデータが示すＷＥＢページがツリー構造生成部１２１にノードとして既に反映されているものであれば、そのＷＥＢページに対応するノードを生成することなく、次に読み出されるデータが示すＷＥＢページに対応するノードが、今回読み出したデータが示すＷＥＢページと同一のＷＥＢページに対応するノードに子ノードとして接続されるように処理する。
【００２９】
図２〜４を参照しながら、ツリー構造生成部１２１が実行する処理の具体例について説明する。図２は、参照履歴データ１１１の一例を示す図である。図２の例に示すように、参照履歴データ１１１は、利用者ＩＤ、ＵＲＬ（Uniform Resource Locator）といった項目を有する。利用者ＩＤは、ＷＥＢページを参照した利用者を識別するための識別子であり、ＵＲＬは、利用者が参照したＷＥＢページのアドレスである。
【００３０】
なお、利用者ＩＤの値は、例えば、利用者がＷＥＢサイトにログインする際に使用したユーザＩＤであってもよいし、利用者がＷＥＢサイトにログインした際に発行されたセッションＩＤであってもよいし、利用者がＷＥＢページにアクセスするために用いている装置に割り当てられたネットワークアドレスであってもよい。
【００３１】
参照履歴データ１１１には、利用者がＷＥＢページを参照するたびに行が追加される。このため、行動を推定する対象者の利用者ＩＤと同一の利用者ＩＤが設定されている行を参照履歴データ１１１から順に読み出せば、その利用者がどの順序でどのＷＥＢページを参照したかを把握することができる。
【００３２】
例えば、図２に示す参照履歴データ１１１の１〜４行は、「Ｕ０３」という利用者ＩＤに対応する利用者が
http://www.foobar.com/
というアドレスのＷＥＢページを参照した後にリンクを辿る等して
http://ranking.foobar.com/
というアドレスのＷＥＢページを参照し、戻るボタンを押下する等して
http://www.foobar.com/
というアドレスのＷＥＢページに戻り、その後、リンクを辿る等して
http://search.foobar.com/srch?name=xxx
というアドレスのＷＥＢページを参照したことを示している。
【００３３】
図３は、図２に示した参照履歴データ１１１からツリー構造生成部１２１が生成するツリー構造データ１１２の一例を示す図であり、図４は、図３に示したツリー構造データ１１２に含まれるノードの論理的な構造を模式的に表した図である。
【００３４】
図３に示す例のように、ツリー構造データ１１２は、利用者ＩＤ、ノードＩＤ、親ノードＩＤ、ＵＲＬ、ページ機能といった項目を有し、ノードごと、すなわち、利用者が参照したＷＥＢページごとに行が追加される。
【００３５】
利用者ＩＤは、ＷＥＢページを参照した利用者を識別するための識別子であり、参照履歴データ１１１の利用者ＩＤと対応する。ノードＩＤは、利用者に参照されたＷＥＢページに対応するノードを識別するための識別子である。親ノードＩＤは、利用者に参照されたＷＥＢページに対応するノードの親ノードのノードＩＤである。ツリー構造データ１１２は、ノードＩＤと親ノードＩＤの組合せによって、論理的にツリー構造を表す。
【００３６】
ＵＲＬは、利用者が参照したＷＥＢページのアドレスである。ページ機能は、利用者に参照されたＷＥＢページの機能を示す値であり、ツリー構造生成部１２１によってツリー構造データ１１２が生成された段階では値が未設定となる。
【００３７】
例えば、「Ｕ０３」という利用者ＩＤに対応する利用者の行動を推定する場合、ツリー構造生成部１２１は、まず、図２に示した参照履歴データ１１１の１行目を読み出す。そして、ツリー構造生成部１２１は、読み出した行のＵＲＬに対応するノードをまだ生成していないので、読み出した行が示すＷＥＢページに対応するノードを生成する。この段階では直前に読み出した行は存在しないため、親ノードとの関連付けは行われない。
【００３８】
具体的には、ツリー構造生成部１２１は、ツリー構造データ１１２に行を追加し、参照履歴データ１１１から読み出した行の利用者ＩＤとＵＲＬを転記する。そして、ノードＩＤに新たに発行したユニークな値（「Ｎ０１」）を設定し、親ノードＩＤは未設定のままとする。この処理によって、図３に示したツリー構造データ１１２の１行目が生成される。
【００３９】
続いて、ツリー構造生成部１２１は、図２に示した参照履歴データ１１１の２行目を読み出す。この行のＵＲＬに対応するノードをまだ生成していないので、ツリー構造生成部１２１は、読み出した行が示すＷＥＢページに対応するノードを生成し、直前に読み出した行が示すＷＥＢページに対応するノードに子ノードとして関連付ける。
【００４０】
具体的には、ツリー構造生成部１２１は、ツリー構造データ１１２に行を追加し、参照履歴データ１１１から読み出した行の利用者ＩＤとＵＲＬを転記する。そして、ノードＩＤに新たに発行したユニークな値（「Ｎ０２」）を設定し、親ノードＩＤには直前の行のノードＩＤ（「Ｎ０１」）を設定する。この処理によって、図３に示したツリー構造データ１１２の２行目が生成される。
【００４１】
続いて、ツリー構造生成部１２１は、図２に示した参照履歴データ１１１の３行目を読み出す。この行のＵＲＬは、ツリー構造データ１１２の１行目に追加したノードのＵＲＬと同一であるため、ツリー構造生成部１２１は、読み出した行が示すＷＥＢページに対応するノードの生成を行わない。
【００４２】
続いて、ツリー構造生成部１２１は、図２に示した参照履歴データ１１１の４行目を読み出す。この行のＵＲＬに対応するノードをまだ生成していないので、ツリー構造生成部１２１は、読み出した行が示すＷＥＢページに対応するノードを生成する。そして、直前に読み出した行のＵＲＬが既にノードを作成済みのものであったため、生成したノードを、直前に読み出した行が示すＷＥＢページと同一のＷＥＢページに対応するノードに子ノードとして関連付ける。
【００４３】
具体的には、ツリー構造生成部１２１は、ツリー構造データ１１２に行を追加し、参照履歴データ１１１から読み出した行の利用者ＩＤとＵＲＬを転記する。そして、ノードＩＤに新たに発行したユニークな値（「Ｎ０３」）を設定し、親ノードＩＤには同一のＵＲＬが設定されている１行目のノードＩＤ（「Ｎ０１」）を設定する。この処理によって、図３に示したツリー構造データ１１２の３行目が生成される。
【００４４】
続いて、ツリー構造生成部１２１は、図２に示した参照履歴データ１１１の４行目を読み出す。この行のＵＲＬに対応するノードをまだ生成していないので、ツリー構造生成部１２１は、読み出した行が示すＷＥＢページに対応するノードを生成し、直前に読み出した行が示すＷＥＢページに対応するノードに子ノードとして関連付ける。
【００４５】
具体的には、ツリー構造生成部１２１は、ツリー構造データ１１２に行を追加し、参照履歴データ１１１から読み出した行の利用者ＩＤとＵＲＬを転記する。そして、ノードＩＤに新たに発行したユニークな値（「Ｎ０４」）を設定し、親ノードＩＤには直前の行のノードＩＤ（「Ｎ０３」）を設定する。この処理によって、図３に示したツリー構造データ１１２の４行目が生成される。
【００４６】
以上の処理により、図４に示すように、「Ｎ０１」というノードＩＤのノードの子ノードとして、「Ｎ０２」というノードＩＤのノードと「Ｎ０３」というノードＩＤのノードが存在し、さらに、「Ｎ０３」というノードＩＤのノードの子ノードとして、「Ｎ０４」というノードＩＤのノードが存在するツリー構造が形成される。その後、ツリー構造生成部１２１が、図２に示した参照履歴データ１１１の５行目以降を読み出して処理を継続することにより、図３に示したツリー構造データ１１２の５〜６行目が生成され、図４に示すようなツリー構造が形成される。
【００４７】
以上の説明から明らかなように、本実施例に係る行動推定方法では、既に参照済みのＷＥＢページに戻る遷移があった場合に、遷移先のＷＥＢページに対応するノードが子ノードとして遷移元のＷＥＢページに対応するノードに関連付けられるのではなく、それ以降に参照されるＷＥＢページに対応するノードが、戻った先のＷＥＢページに対応するノードから分岐するようにツリー構造が形成される。
【００４８】
利用者が何らかの目的をもってＷＥＢページを参照する場合、参照済みのＷＥＢページへ戻る遷移は、戻った先のＷＥＢページから新たなＷＥＢページを参照するために行われ、参照済みのＷＥＢページへ戻ること自体には意味がないことが多い。本実施例に係る行動推定方法では、新たなＷＥＢページが参照された場合にのみノードが追加されて遷移元のＷＥＢページに対応するノードと関連付けられるため、利用者の目的を顕著に表したツリー構造を得ることができる。
【００４９】
続いて、図５〜７を参照しながら、機能解析部１２２が実行する処理の具体例について説明する。図５は、機能解析ルール１１３の一例を示す図である。図５の例に示すように、機能解析ルール１１３は、ＵＲＬパターン、ページ機能といった項目を有する。ＵＲＬパターンは、ＷＥＢページのＵＲＬとのマッチングに用いられる文字列であり、正規表現のような所定の書式で設定される。ページ機能は、ＵＲＬがＵＲＬパターンとマッチするＷＥＢページの機能を示す名称である。
【００５０】
機能解析部１２２は、ツリー構造データ１１２の各行について、ＵＲＬを機能解析ルール１１３のＵＲＬパターンとマッチングし、マッチしたＵＲＬパターンに対応するページ機能を、ツリー構造データ１１２のページ機能に設定する。この結果、図６の例に示すように、ツリー構造データ１１２のページ機能に値が設定され、図７の例に示すように、ツリー構造データ１１２に含まれる各ノードの機能が特定された状態となる。
【００５１】
なお、ＷＥＢページのＵＲＬがいずれのＵＲＬパターンともマッチしないことが生じないように、他のＵＲＬパターンにマッチしない場合にＵＲＬとマッチするデフォルトのＵＲＬパターンを機能解析ルール１１３に設けておくこととしてもよいし、ＷＥＢページのＵＲＬがいずれのＵＲＬパターンともマッチしない場合に機能解析部１２２に埋め込まれたデフォルトのルールによってＷＥＢページの機能を特定することとしてもよい。また、ＷＥＢページのＵＲＬとＵＲＬパターンをマッチングさせることによってＷＥＢページの機能を特定するのではなく、ＷＥＢページのＵＲＬに基づいてＷＥＢページの実態であるＨＴＭＬファイルを取得し、取得したＨＴＭＬファイルについて、所定のキーワードが含まれているか等の解析を行ってＷＥＢページの機能を特定することとしてもよい。
【００５２】
続いて、図８〜１０を参照しながら、行動推定部１２３が実行する処理の具体例について説明する。図８は、行動推定ルール１１４の一例を示す図である。図８の例に示すように、行動推定ルール１１４は、部分木パターン式、ユーザ行動といった項目を有する。部分木パターン式は、特定の機能のノードが特定の構造で組み合わされた部分木を表す式である。ユーザ行動は、部分木パターン式が表す部分木がツリー構造データ１１２に含まれる場合に推定される利用者の行動である。
【００５３】
ここで、本実施例における部分木パターン式の書式について説明する。本実施例における部分木パターン式の基本的な書式は以下の通りである。
親ノードの機能  −  （子ノードの機能のリスト）
【００５４】
図８に示した行動推定ルール１１４の１行目の部分木パターン式である「商品詳細−（レビュー、店舗情報）」は、図９に示すように、「商品詳細」という機能の親ノードの子ノードとして「レビュー」という機能のノードと「店舗情報」という機能のノードが存在する部分木を表している。行動推定部１２３は、行動推定ルール１１４にこのような部分木が含まれる場合には、行動推定ルール１１４の１行目にユーザ行動として設定されている「どの店舗で買うかを検討している」を利用者の行動の推定結果として出力する。
【００５５】
なお、子ノードの機能のリストの部分には、ノードの親子構造を入れ子にすることができる。図８に示した行動推定ルール１１４の２行目の部分木パターン式である「サイトトップ−（店舗トップ−店舗情報）」は、図１０に示すように、「店舗情報」という機能のノードの親ノードとして「店舗トップ」という機能のノードが存在し、さらに、「店舗トップ」という機能のノードの親ノードとして「サイトマップ」という機能のノードが存在する部分木を表している。行動推定部１２３は、行動推定ルール１１４にこのような部分木が含まれる場合には、行動推定ルール１１４の２行目にユーザ行動として設定されている「どんな店舗があるか調べている」を利用者の行動の推定結果として出力する。
【００５６】
次に、図１に示した行動推定装置１０が実行する行動推定処理の処理手順について図１１のフローチャートを参照しながら説明する。図１１に示すように、ある利用者の行動の推定を求められると、ツリー構造生成部１２１が、その利用者の情報を参照履歴データ１１１から取得して、ツリー構造データ１１２を生成する（ステップＳ１０１）。
【００５７】
続いて、機能解析部１２２が、ツリー構造データ１１２に含まれる各ノードの機能を特定する（ステップＳ１０２）。そして、行動推定部１２３が、行動推定ルール１１４に含まれる部分木をツリー構造データ１１２と照合して、利用者の行動の推定結果を出力する（ステップＳ１０３）。
【００５８】
上述してきたように、本実施例に係る行動推定装置１０は、利用者が参照したＷＥＢページの履歴情報から参照の遷移を示すツリー構造を生成し、生成したツリー構造に基づいて利用者の行動を推定することとしたので、詳細で精度の高い推定結果を得ることができる。
【実施例２】
【００５９】
本実施例では、実施例１で説明した行動推定装置１０の変形例を示す。まず、図１２を参照しながら、本実施例に係る行動推定装置２０の構成について説明する。図１２に示すように、行動推定装置２０は、記憶部２１０と制御部２２０を有する。
【００６０】
記憶部２１０は、例えば、ハードディスク装置や半導体記憶装置であり、参照履歴データ２１１と、ツリー構造データ２１２と、機能解析ルール２１３と、部分木抽出ルール２１４と、行動推定ルール２１５とを記憶する。
【００６１】
部分木抽出ルール２１４は、ツリー構造データ２１２から特定の構造の部分木を抽出するための情報である。参照履歴データ２１１、ツリー構造データ２１２、機能解析ルール２１３、行動推定ルール２１５は、それぞれ、実施例１で示した参照履歴データ１１１、ツリー構造データ１１２、機能解析ルール１１３、行動推定ルール１１４に相当する。
【００６２】
機能解析ルール２１３は、機能解析ルール入力装置１によって編集され、部分木抽出ルール２１４は、部分木抽出ルール入力装置２によって編集され、行動推定ルール２１５は、行動推定ルール入力装置３によって編集される。なお、機能解析ルール入力装置１、部分木抽出ルール入力装置２および行動推定ルール入力装置３は、行動推定装置２０と一体に構成されていてもよい。
【００６３】
なお、図１２において記憶部２１０に記憶されるものとして図示されているデータの一部または全ては、行動推定装置２０と通信可能に構成された他の装置に、行動推定装置２０からアクセス可能な状態で格納されていてもよい。
【００６４】
制御部２２０は、行動推定装置２０を全体制御する制御部であり、ツリー構造生成部２２１と、機能解析部２２２と、行動推定部２２３とを有する。ツリー構造生成部２２１、機能解析部２２２、行動推定部２２３は、それぞれ、実施例１で示したツリー構造生成部１２１、機能解析部１２２、行動推定部１２３に相当する。
【００６５】
行動推定部２２３は、部分木抽出部２２３ａと、部分木照合部２２３ｂとを含む。部分木抽出部２２３ａは、部分木抽出ルール２１４に基づいてツリー構造データ２１２から特定の構造の部分木を抽出する。部分木照合部２２３ｂは、部分木抽出部２２３ａによって抽出された部分木と行動推定ルール２１５と照合することによって、利用者の行動を推定する。
【００６６】
このように、特定の構造の部分木を抽出した後に行動推定ルール２１５と照合することにより、ツリー構造データ２１２に含まれるツリー構造が大規模な場合でも、行動推定ルール２１５に含まれる部分木と照合する部分を予め絞り込むことができ、照合に要する時間が短縮される。
【００６７】
次に、図１２に示した制御部２２０に含まれる各部が実行する処理についてより詳しく説明する。
【００６８】
図１３〜１６−５を参照しながら、ツリー構造生成部２２１が実行する処理の具体例について説明する。ツリー構造生成部２２１は、参照履歴データ２１１から読み出したデータが示すＷＥＢページが既にノードを作成済みのものであった場合の動作が、実施例１で示したツリー構造生成部１２１と異なる。
【００６９】
具体的には、ツリー構造生成部２２１は、参照履歴データ２１１から読み出したデータが示すＷＥＢページが既にノードを作成済みのものであっても、そのＷＥＢページに対応するノードが、直前に読み出したデータが示すＷＥＢページに対応するノードから根ノードまでツリー構造を辿ったパス上に存在しない場合は、読み出したデータが示すＷＥＢページに対応するノードを生成し、生成したノードを、直前に読み出したデータが示すＷＥＢページに対応するノードに子ノードとして関連付ける。
【００７０】
このような処理により、利用者が特定の目的をもって参照したＷＥＢページの一連の遷移を、それ以前に他の目的で参照されたＷＥＢページの一連の遷移と異なる系列のツリー構造とすることができ、利用者の行動の推定精度が向上する。
【００７１】
図１３は、参照履歴データ２１１の一例を示す図である。図１３の例に示すように、参照履歴データ２１１は、図２に示した参照履歴データ１１１が有する項目に加えて、履歴番号という項目を有する。履歴番号は、参照履歴データ２１１の各行を識別するための識別子である。
【００７２】
図１４は、ツリー構造データ２１２の一例を示す図である。図１４の例に示すように、ツリー構造データ２１２は、図３に示したツリー構造データ１１２が有する項目に加えて、履歴番号リストという項目を有する。履歴番号リストは、ノードに対応する参照履歴データ２１１の行を示す履歴番号のリストである。
【００７３】
図１５は、ツリー構造生成部２２１が実行するツリー構造生成処理の処理手順を示すフローチャートである。図１５に示す処理手順は、ＭＦアルゴリズム（非特許文献１参照）に基づくものであるが、同様の結果を達成することができれば、他のアルゴリズムを利用した処理手順であってもよい。
【００７４】
図１５に示すように、ツリー構造生成部２２１は、まず、処理対象となる参照履歴データ２１１の行を示す変数であるａを最初の行を表す値（例えば、「１」）に初期化する（ステップＳ２０１）。続いて、ツリー構造生成部２２１は、次に作成するノードのノードＩＤを表す変数であるｎを最初のノードを表す値（例えば、「Ｎ０１」）に初期化する（ステップＳ２０２）。
【００７５】
また、ツリー構造生成部２２１は、リストＮとリストＹを空にする（ステップＳ２０３）。リストＮは、根ノードから最後に追加されたノードまで辿ったパス上に存在するノードのノードＩＤのリストである。リストＹは、リストＮに含まれるノードに対応する参照履歴データ２１１の行の行番号のリストである。
【００７６】
そして、ツリー構造生成部２２１は、参照履歴データ２１１から変数ａに対応する行を取得する（ステップＳ２０４）。ここで、取得した行と同一のＵＲＬを含む行の番号がリストＹに含まれていなければ（ステップＳ２０５否定）、ツリー構造生成部２２１は、ツリー構造データ２１２に行を追加して以下のように値を設定する（ステップＳ２０６）。すなわち、利用者ＩＤ、ＵＲＬ、履歴番号リストには、それぞれ、取得した行の利用者ＩＤ、ＵＲＬ、履歴番号を設定し、ノードＩＤには、変数ｎの値を設定し、親ノードＩＤには、リストＮの末尾の要素の値を設定する。
【００７７】
続いて、ツリー構造生成部２２１は、リストＹの末尾に要素を追加して変数ａの値を設定し（ステップＳ２０７）、リストＮの末尾に要素を追加して変数ｎの値を設定し（ステップＳ２０８）、変数ｎを次のノードを表す値に更新する（ステップＳ２０９）。そして、ツリー構造生成部２２１は、変数ａに１を加算し（ステップＳ２１４）、変数ａに対応する行が参照履歴データ２１１にあれば（ステップＳ２１５肯定）、ステップＳ２０４から処理手順を再開する。
【００７８】
一方、参照履歴データ２１１から取得した行と同一のＵＲＬを含む行の番号がリストＹに含まれていれば（ステップＳ２０５肯定）、ツリー構造生成部２２１は、同一のＵＲＬを含む行の番号を含む要素のリストＹにおける位置を変数ｊに設定する（ステップＳ２１０）。そして、ツリー構造生成部２２１は、リストＹとリストＮから、変数ｊの値に１を加算した位置以降の要素を削除する（ステップＳ２１１）。
【００７９】
続いて、ツリー構造生成部２２１は、リストＮの末尾の要素に含まれる値を取得し（ステップＳ２１２）、その値がノードＩＤとして設定されているツリー構造データ２１２の行の履歴番号リストに、変数ａに対応する参照履歴データ２１１の行の履歴番号を追加する（ステップＳ２１３）。そして、ツリー構造生成部２２１は、変数ａに１を加算し（ステップＳ２１４）、変数ａに対応する行が参照履歴データ２１１にあれば（ステップＳ２１５肯定）、ステップＳ２０４から処理手順を再開する。
【００８０】
以上の処理手順を、参照履歴データ２１１から全ての行を取得するまで繰り返して実行し、変数ａに対応する行が参照履歴データ２１１になくなれば（ステップＳ２１５否定）、ツリー構造生成部２２１は、ツリー構造生成処理を終了する。
【００８１】
図１６−１は、ステップＳ２０３が完了した段階での各種データの状態を示しており、ツリー構造データ２１２、リストＹおよびリストＮは、空であり、変数ａおよび変数ｎは、それぞれ、「１」と「Ｎ０１」に初期化されている。
【００８２】
図１６−２は、参照履歴データ２１１から１行目が取得され、ステップＳ２０６〜ステップＳ２０９とステップＳ２１４が実行された各種データの状態を示しており、ツリー構造データ２１２には行が追加され、リストＹおよびリストＮには要素が追加されている。また、変数ａおよび変数ｎは、値が更新されている。
【００８３】
図１６−３は、参照履歴データ２１１から２行目が取得され、ステップＳ２０６〜ステップＳ２０９とステップＳ２１４が実行された各種データの状態を示しており、ツリー構造データ２１２にはさらに行が追加され、リストＹおよびリストＮにはさらに要素が追加されている。また、変数ａおよび変数ｎは、値が更新されている。
【００８４】
図１６−４は、参照履歴データ２１１から、１行目と同一のＵＲＬを含む３行目が取得され、ステップＳ２１０〜ステップＳ２１４が実行された各種データの状態を示しており、ツリー構造データ２１２の履歴番号が更新され、リストＹおよびリストＮは、参照履歴データ２１１の１行目に対応する要素よりも後ろの要素が削除されている。また、変数ａは、値が更新されている。
【００８５】
図１６−５は、参照履歴データ２１１から１行目が取得され、ステップＳ２０６〜ステップＳ２０９とステップＳ２１４が実行された各種データの状態を示しており、ツリー構造データ２１２には行が追加され、リストＹおよびリストＮには要素が追加されている。また、変数ａおよび変数ｎは、値が更新されている。図１６−４に示した段階で、リストＹおよびリストＮから要素が削除されたため、ツリー構造データ２１２に追加された行の親ノードＩＤには、直前に追加されたノードのノードＩＤである「Ｎ０２」ではなく、戻った先のＷＥＢページに対応するノードのノードＩＤである「Ｎ０１」が設定されている。
【００８６】
続いて、図１７および１８を参照しながら、機能解析部２２２が実行する処理の具体例について説明する。機能解析部２２２は、ツリー構造データ２１２の各行について、ＵＲＬを、図５に示した機能解析ルール１１３と同様の機能解析ルール２１３のＵＲＬパターンとマッチングし、マッチしたＵＲＬパターンに対応するページ機能を、ツリー構造データ２１２のページ機能に設定する。この結果、図１７の例に示すように、ツリー構造データ２１２のページ機能に値が設定された状態となる。
【００８７】
図１８は、機能解析部２２２の機能解析処理の処理手順を示すフローチャートである。図１８に示すように、機能解析部２２２は、ツリー構造データ２１２の先頭の行を選択する（ステップＳ３０１）。そして、ツリー構造データ２１２の行を選択できた場合は（ステップＳ３０２肯定）、機能解析部２２２は、機能解析ルール２１３の先頭の行を選択する（ステップＳ３０３）。
【００８８】
続いて、機能解析ルール２１３の行を選択できた場合は（ステップＳ３０４肯定）、機能解析部２２２は、ツリー構造データ２１２から選択した行のＵＲＬを、機能解析ルール２１３から選択した行のＵＲＬパターンと比較する（ステップＳ３０５）。
【００８９】
そして、ＵＲＬとＵＲＬパターンがマッチした場合は（ステップＳ３０６肯定）、機能解析部２２２は、機能解析ルール２１３から選択した行のページ機能の値をツリー構造データ２１２から選択した行に設定し（ステップＳ３０７）、ツリー構造データ２１２の次の行を選択して（ステップＳ３０９）、ステップＳ３０２から処理手順を再開する。
【００９０】
一方、ＵＲＬとＵＲＬパターンがマッチしなかった場合は（ステップＳ３０６否定）、機能解析部２２２は、機能解析ルール２１３から次の行を選択し（ステップＳ３０８）、ステップＳ３０４から処理手順を再開する。ここで、機能解析ルール２１３に選択すべき行がなかった場合は（ステップＳ３０４否定）、機能解析部２２２は、ツリー構造データ２１２の次の行を選択して（ステップＳ３０９）、ステップＳ３０２から処理手順を再開する。
【００９１】
以上の処理手順を、ツリー構造データ２１２の全ての行を選択するまで繰り返して実行し、選択すべき行がなくなれば（ステップＳ３０２否定）、機能解析部２２２は、処理手順を終了する。
【００９２】
続いて、図１９〜図２１を参照しながら、部分木抽出部２２３ａが実行する処理の具体例について説明する。
【００９３】
図１９は、部分木抽出ルール２１４の一例を示す図である。図１９の例に示すように、部分木抽出ルール２１４は、根ノード選択条件、子孫ノード選択条件、パターン書式といった項目を有する。根ノード選択条件は、部分木の根ノードを選択するための条件である。子孫ノード選択条件は、根ノードの子孫ノードを選択するための条件である。パターン書式は、選択された部分木の出力形式の書式である。部分木抽出ルール２１４は、行動推定ルール２１５に含まれる部分木とマッチする可能性のある部分木が漏れなく、かつ、できるだけ少ないノード数でツリー構造データ２１２から抽出されるように予め設定される。
【００９４】
部分木抽出部２２３ａは、根ノード選択条件と子孫ノード選択条件を満たす全ての部分木をツリー構造データ２１２から抽出し、パターン書式に従って部分木抽出データとして出力する。図１９の例に示すように、根ノード選択条件が「２以上の子をもつ」であり、子孫ノード選択条件が「根ノードからの深さが１以下」であり、パターン書式が「根ノードのページ機能−（子ノードのページ機能のリスト）、ただし、子ノードのページ機能の重複は除去する」である場合、部分木抽出部２２３ａは、図１７に示すツリー構造データ２１２から、図２０に示すような部分木抽出データを抽出する。
【００９５】
図２０の例に示すように、部分木抽出データは、利用者ＩＤ、ノードＩＤ、履歴番号リスト、部分木パターン式といった項目を有し、抽出された部分木ごとに行が追加される。利用者ＩＤは、利用者を識別するための識別子である。ノードＩＤは、抽出された部分木の根ノードを識別するための識別子である。履歴番号リストは、抽出された部分木の各ノードに対応する参照履歴データ２１１の行の識別子のリストである。部分木パターン式は、パターン書式に従って出力された部分木である。
【００９６】
図２１は、部分木抽出部２２３ａの部分木抽出処理の処理手順を示すフローチャートである。図２１に示すように、部分木抽出部２２３ａは、まず、処理対象となるツリー構造データ２１２の行を示す変数であるａを最初の行を表す値（例えば、「１」）に初期化する（ステップＳ４０１）。続いて、部分木抽出部２２３ａは、変数ａに対応するツリー構造データ２１２の行を選択する（ステップＳ４０２）。
【００９７】
そして、変数ａに対応するツリー構造データ２１２の行を選択できた場合は（ステップＳ４０３肯定）、部分木抽出部２２３ａは、選択した行が示すノードが根ノード選択条件を満たすかを検証する（ステップＳ４０４）。ここで、根ノード選択条件を満たさない場合は（ステップＳ４０５否定）、部分木抽出部２２３ａは、変数ａに１を加算して（ステップＳ４１４）、ステップＳ４０２から処理手順を再開する。
【００９８】
一方、根ノード選択条件を満たす場合は（ステップＳ４０５肯定）、部分木抽出部２２３ａは、子ノードの行番号のリストであるＬを空にする（ステップＳ４０６）。続いて、部分木抽出部２２３ａは、変数ａに対応するツリー構造データ２１２の行のノードＩＤが親ノードＩＤとして設定されている行の１つをツリー構造データ２１２から選択する（ステップＳ４０７）。
【００９９】
そして、行を選択できた場合（ステップＳ４０８肯定）、部分木抽出部２２３ａは、選択した行が示すノード（もしくは、選択した行が示すノードとその子孫ノード）が子孫ノード選択条件を満たすかを検証する（ステップＳ４０９）。ここで、選択した行が示すノード（もしくは、選択した行が示すノードとその子孫ノード）が子孫ノード選択条件を満たす場合は（ステップＳ４１０肯定）、部分木抽出部２２３ａは、選択した行の行番号をリストＬに追加し（ステップＳ４１１）、ステップＳ４１２へ遷移する。一方、選択した行が示すノード（もしくは、選択した行が示すノードとその子孫ノード）が子孫ノード選択条件を満たさない場合は（ステップＳ４１０否定）、部分木抽出部２２３ａは、選択した行の行番号をリストＬに追加することなく、ステップＳ４１２へ遷移する。
【０１００】
ステップＳ４１２においては、部分木抽出部２２３ａは、変数ａに対応するツリー構造データ２１２の行のノードＩＤが親ノードＩＤとして設定されている他の行をツリー構造データ２１２から選択し（ステップＳ４１２）、ステップＳ４０８から処理手順を再開する。
【０１０１】
そして、変数ａに対応するツリー構造データ２１２の行のノードＩＤが親ノードＩＤとして設定されている全ての行をツリー構造データ２１２から選択し終えた場合は（ステップＳ４０８否定）、部分木抽出部２２３ａは、変数ａに対応するツリー構造データ２１２の行のページ機能と、リストＬの各要素に対応するツリー構造データ２１２の行のページ機能を、パターン書式に基づいた書式で部分木抽出データに出力する（ステップＳ４１３）。続いて、部分木抽出部２２３ａは、変数ａに１を加算して（ステップＳ４１４）、ステップＳ４０２から処理手順を再開する。
【０１０２】
以上の処理手順を、ツリー構造データ２１２の全ての行を選択するまで繰り返して実行し、選択すべき行がなくなれば（ステップＳ４０３否定）、部分木抽出部２２３ａは、処理手順を終了する。
【０１０３】
続いて、図２２〜図２４を参照しながら、部分木照合部２２３ｂが実行する処理の具体例について説明する。なお、ここでは、参照表に基づいて一致するユーザ行動を出力する手法の例を示すが、機械学習等の予測手法を用いて一致するユーザ行動を出力することもできる。
【０１０４】
図２２は、行動推定ルール２１５の一例を示す図である。図２２の例に示すように、行動推定ルール２１５には複数の種類のユーザ行動ごと、かつ、部分木パターン式ごとに点数が設定されている。部分木照合部２２３ｂは、部分木抽出部２２３ａによって抽出された各部分木と一致する部分木パターン式が設定されている行を行動推定ルール２１５から選択し、その行において最も高い得点が設定されている種類のユーザ行動を、部分木抽出部２２３ａによって抽出された部分木が示す行動の推定結果として出力する。なお、部分木抽出部２２３ａによって抽出された各部分木と部分木パターン式の一致は、必ずしも完全一致である必要はなく、部分一致であってもよい。
【０１０５】
例えば、図２０に示した部分木抽出データの１行目の「サイトマップ−（ランキング、検索結果、レビュー）」という部分木パターン式によって表される部分木は、図２２に示した行動推定ルール２１５の２行目の部分木パターン式と一致し、行動推定ルール２１５の２行目では、「どの店舗で買うか検討している」というユーザ行動の点数が最も高いため、部分木照合部２２３ｂは、部分木抽出データの１行目の部分木が示す行動の推定結果として「どの店舗で買うか検討している」を出力する。
【０１０６】
また、図２０に示した部分木抽出データの２行目の「検索結果−（商品詳細）」という部分木パターン式によって表される部分木は、図２２に示した行動推定ルール２１５の１行目の部分木パターン式と一致し、行動推定ルール２１５の１行目では、「どの商品を買うか選んでいる」というユーザ行動の点数が最も高いため、部分木照合部２２３ｂは、部分木抽出データの２行目の部分木が示す行動の推定結果として「どの商品を買うか選んでいる」を出力する。
【０１０７】
図２３は、部分木照合部２２３ｂの部分木照合処理の処理手順を示すフローチャートである。図２３に示すように、部分木照合部２２３ｂは、まず、処理対象となる部分木抽出データの行を示す変数であるａを最初の行を表す値（例えば、「１」）に初期化する（ステップＳ５０１）。続いて、部分木照合部２２３ｂは、変数ａに対応する部分木抽出データの行を選択する（ステップＳ５０２）。
【０１０８】
そして、変数ａに対応する部分木抽出データの行を選択できた場合は（ステップＳ５０３肯定）、部分木照合部２２３ｂは、行動推定ルール２１５から、部分木パターン式が一致する行を選択する（ステップＳ５０４）。ここで、該当する行があれば（ステップＳ５０５肯定）、部分木照合部２２３ｂは、その行において最も数値の大きいユーザ行動を推定結果として出力し（ステップＳ５０６）、変数ａに１を加算して（ステップＳ５０７）、ステップＳ５０２から処理手順を再開する。
【０１０９】
一方、該当する行がない場合は（ステップＳ５０５否定）、部分木照合部２２３ｂは、何も出力せずに、変数ａに１を加算して（ステップＳ５０７）、ステップＳ５０２から処理手順を再開する。なお、この場合、何も出力しないのではなく、「該当なし」のように、推定される行動が見つからない旨を出力することとしてもよい。あるいは、行動推定ルール２１５の各ユーザ行動の数値を列毎（ユーザ行動毎）に集計した値が最も大きいユーザ行動を推定結果として出力することとしてもよい。
【０１１０】
以上の処理手順を、部分木抽出データの全ての行を選択するまで繰り返して実行し、選択すべき行がなくなれば（ステップＳ５０３否定）、部分木照合部２２３ｂは、処理手順を終了する。
【０１１１】
なお、部分木抽出部２２３ａによって抽出された部分木ごとに推定結果を出力するのではなく、１つの推定結果だけを出力することとしてもよい。図２４は、１つの推定結果だけを出力する場合の処理手順を示すフローチャートである。図２４に示すように、部分木照合部２２３ｂは、まず、処理対象となる部分木抽出データの行を示す変数であるａを最初の行を表す値（例えば、「１」）に初期化する（ステップＳ６０１）。
【０１１２】
続いて、部分木照合部２２３ｂは、行動推定ルール２１５の各ユーザ行動に対応する変数を０に初期化する（ステップＳ６０２）。そして、部分木照合部２２３ｂは、変数ａに対応する部分木抽出データの行を選択する（ステップＳ６０３）。
【０１１３】
そして、変数ａに対応する部分木抽出データの行を選択できた場合は（ステップＳ６０４肯定）、部分木照合部２２３ｂは、行動推定ルール２１５から、部分木パターン式が一致する行を選択する（ステップＳ６０５）。ここで、該当する行があれば（ステップＳ６０６肯定）、部分木照合部２２３ｂは、その行における各ユーザ行動の数値を対応する変数に加算し（ステップＳ６０７）、変数ａに１を加算して（ステップＳ６０８）、ステップＳ６０３から処理手順を再開する。
【０１１４】
一方、該当する行がない場合は（ステップＳ６０６否定）、部分木照合部２２３ｂは、変数に何も加算せずに、変数ａに１を加算して（ステップＳ６０８）、ステップＳ６０３から処理手順を再開する。
【０１１５】
以上の処理手順を、部分木抽出データの全ての行を選択するまで繰り返して実行し、選択すべき行がなくなれば（ステップＳ６０４否定）、部分木照合部２２３ｂは、部分木照合部２２３ｂは、最も数値の大きい変数に対応するユーザ行動を推定結果として出力し（ステップＳ６０９）、処理手順を終了する。この方式では、例えば、部分木抽出データが図２０に示した通りであり、行動推定ルール２１５が図２２に示した通りの場合、「どの商品を買うか選んでいる」というユーザ行動に対応する変数の値は、１＋１０＝１１となり、「どの店舗で買うか検討している」というユーザ行動に対応する変数の値は、３＋００＝３となり、「欲しいものがあるかを探している」というユーザ行動に対応する変数の値は、０＋２＝２となり、最も値の大きい変数に対応するユーザ行動である「どの商品を買うか選んでいる」が推定結果として出力される。
【０１１６】
ここで、行動推定ルール２１５の設定の仕方の例について説明する。ここに示す例では、図２５に示すように、参照履歴データの各行について利用者本人もしくは有識者からどのような行動をしていたのかを聴取した結果をユーザ行動として付加したユーザ回答データを予め用意しておくとともに、行動推定ルール２１５の各数値を０に初期化しておくことを前提としている。
【０１１７】
図２６に示すように、行動推定ルール入力装置３は、既に説明した方法によってユーザ回答データから部分木抽出データを生成する（ステップＳ７０１）。そして、行動推定ルール入力装置３は、ユーザ回答データの先頭の行を選択する（ステップＳ７０２）。
【０１１８】
行を選択できた場合（ステップＳ７０３肯定）、行動推定ルール入力装置３は、部分木抽出データから履歴番号リストに同一の履歴番号を含む行を全て選択する（ステップＳ７０４）。そして、行動推定ルール２１５から部分木パターン式が、部分木抽出データから選択した行のものと一致するものを選択し（ステップＳ７０５）、選択した各行のユーザ行動の数値のうち、選択しているユーザ回答データのユーザ行動に対応するものの値を１だけ増加させる（ステップＳ７０６）。
【０１１９】
そして、行動推定ルール入力装置３は、ユーザ回答データの次の行を選択し（ステップＳ７０７）、ステップＳ７０３から処理手順を再開する。こうして、ユーザ回答データの全ての行を選択し終えて、選択すべき行がもうなくなったならば（ステップＳ７０３否定）、行動推定ルール入力装置３は、処理手順を終了させる。
【０１２０】
なお、図２７に示すように、３階層以上の部分木を抽出するように部分木抽出ルール２１４を設定することもできる。部分木抽出ルール２１４を図２７のように設定した場合、部分木照合部２２３ｂは、図２８に示すような推定結果を出力する。
【０１２１】
ところで、上述してきた各実施例における行動推定装置の構成は、発明の要旨を逸脱しない範囲で変更することができ、また、発明の要旨を逸脱しない範囲で組み合わせて実現することができる。
【０１２２】
例えば、図２９に示すように、ツリー構造データ２１２の各行について２以上のページ機能を特定できるように機能解析部２２２を構成することができる。この場合、部分木抽出ルール２１４と推定結果の組合せは、図３０および図３１に示すように全てのページ機能が列挙されるようにしてもよいし、図３２および図３３に示すように、特定された２以上のページ機能がそれぞれ異なる部分木パターン式として出力されるようにしてもよい。
【０１２３】
また、実施例２では、ツリー構造データ２１２に含まれるノードの機能を機能解析部２２２が特定した後に、部分木抽出部２２３ａがツリー構造データ２１２から特定の構造の部分木を抽出することとなっているが、部分木抽出部２２３ａがツリー構造データ２１２から特定の構造の部分木を抽出し、その後に、機能解析部２２２がノードの機能を特定することとしてもよい。この場合、例えば、部分木抽出部２２３ａが、ＵＲＬをパターン書式に従って書式化した部分木パターン式を抽出し、機能解析部２２２が、部分木パターン式中のＵＲＬをページ機能に置き換え、置き換え後に重複する部分木パターン式があれば１つを残して削除する。
【０１２４】
また、行動推定装置１０の制御部１２０や行動推定装置２０の制御部２２０の機能をソフトウェアとして実装し、これをコンピュータで実行することにより、行動推定装置１０や行動推定装置２０と同等の機能を実現することもできる。以下に、制御部１２０の機能をソフトウェアとして実装した行動推定プログラム１０７１を実行するコンピュータの一例を示す。
【０１２５】
図３４は、行動推定プログラム１０７１を実行するコンピュータ１０００を示す機能ブロック図である。このコンピュータ１０００は、各種演算処理を実行するＣＰＵ（Central Processing Unit）１０１０と、ユーザからのデータの入力を受け付ける入力装置１０２０と、各種情報を表示するモニタ１０３０と、記録媒体からプログラム等を読み取る媒体読取り装置１０４０と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置１０５０と、各種情報を一時記憶するＲＡＭ（Random Access Memory）１０６０と、ハードディスク装置１０７０とをバスで接続して構成される。
【０１２６】
そして、ハードディスク装置１０７０には、図１に示した制御部１２０と同様の機能を有する行動推定プログラム１０７１と、図１に示した記憶部１１０に記憶される各種データに対応する行動推定用データ１０７２とが記憶される。なお、行動推定用データ１０７２を、適宜分散させ、ネットワークを介して接続された他のコンピュータに記憶させておくこともできる。
【０１２７】
そして、ＣＰＵ１０１０が行動推定プログラム１０７１をハードディスク装置１０７０から読み出してＲＡＭ１０６０に展開することにより、行動推定プログラム１０７１は、行動推定プロセス１０６１として機能するようになる。そして、行動推定プロセス１０６１は、行動推定用データ１０７２から読み出した情報等を適宜ＲＡＭ１０６０上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
【０１２８】
なお、上記の行動推定プログラム１０７１は、必ずしもハードディスク装置１０７０に格納されている必要はなく、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたこのプログラムを、コンピュータ１０００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等を介してコンピュータ１０００に接続される他のコンピュータ（またはサーバ）等にこのプログラムを記憶させておき、コンピュータ１０００がこれらからプログラムを読み出して実行するようにしてもよい。
【産業上の利用可能性】
【０１２９】
本願発明は、例えば、ユーザ行動が「何か欲しいものがないか探している」のときは、ユーザの嗜好プロファイルに合った商品を提示し、ユーザ行動が「どの商品を買うか選んでいる」のときは、ユーザが現在閲覧している商品と類似した商品を提示するというように、各種のサイトナビゲーションに利用することができる。本願発明を例えばオンラインショッピングサイトでのサイトナビゲーションに利用することにより、単にユーザの嗜好に基づく推薦や、類似商品の提示を行う方式よりも、購買確率を高めることができる。
【符号の説明】
【０１３０】
１  機能解析ルール入力装置
２  部分木抽出ルール入力装置
３  行動推定ルール入力装置
１０  行動推定装置
１１０  記憶部
１１１  参照履歴データ
１１２  ツリー構造データ
１１３  機能解析ルール
１１４  行動推定ルール
１２０  制御部
１２１  ツリー構造生成部
１２２  機能解析部
１２３  行動推定部
２０  行動推定装置
２１０  記憶部
２１１  参照履歴データ
２１２  ツリー構造データ
２１３  機能解析ルール
２１４  部分木抽出ルール
２１５  行動推定ルール
２２０  制御部
２２１  ツリー構造生成部
２２２  機能解析部
２２３  行動推定部
２２３ａ  部分木抽出部
２２３ｂ  部分木照合部
１０００  コンピュータ
１０１０  ＣＰＵ
１０２０  入力装置
１０３０  モニタ
１０４０  媒体読取り装置
１０５０  ネットワークインターフェース装置
１０６０  ＲＡＭ
１０６１  行動推定プロセス
１０７０  ハードディスク装置
１０７１  行動推定プログラム
１０７２  行動推定用データ
【図１】
2011100208.tif 000003
【図２】
2011100208.tif 000004
【図３】
2011100208.tif 000005
【図４】
2011100208.tif 000006
【図５】
2011100208.tif 000007
【図６】
2011100208.tif 000008
【図７】
2011100208.tif 000009
【図８】
2011100208.tif 000010
【図９】
2011100208.tif 000011
【図１０】
2011100208.tif 000012
【図１１】
2011100208.tif 000013
【図１２】
2011100208.tif 000014
【図１３】
2011100208.tif 000015
【図１４】
2011100208.tif 000016
【図１５】
2011100208.tif 000017
【図１６−１】
2011100208.tif 000018
【図１６−２】
2011100208.tif 000019
【図１６−３】
2011100208.tif 000020
【図１６−４】
2011100208.tif 000021
【図１６−５】
2011100208.tif 000022
【図１７】
2011100208.tif 000023
【図１８】
2011100208.tif 000024
【図１９】
2011100208.tif 000025
【図２０】
2011100208.tif 000026
【図２１】
2011100208.tif 000027
【図２２】
2011100208.tif 000028
【図２３】
2011100208.tif 000029
【図２４】
2011100208.tif 000030
【図２５】
2011100208.tif 000031
【図２６】
2011100208.tif 000032
【図２７】
2011100208.tif 000033
【図２８】
2011100208.tif 000034
【図２９】
2011100208.tif 000035
【図３０】
2011100208.tif 000036
【図３１】
2011100208.tif 000037
【図３２】
2011100208.tif 000038
【図３３】
2011100208.tif 000039
【図３４】
2011100208.tif 000040