(58)【調査した分野】(Int.Cl.,DB名)
同一のクエリを入力したユーザ群毎に、前記ユーザ群により販売サイトで選択された複数の商品またはサービスのそれぞれに付与されているカテゴリパスを収集する収集部と、
前記収集部により収集された前記ユーザ群毎の複数のカテゴリパスに含まれる同一のカテゴリを統合することで、クエリ毎のカテゴリツリーを生成する生成部と、
複数のクエリ間の類似度を、前記複数のクエリのそれぞれに対して前記生成部により生成されたカテゴリツリー同士の類似度に基づき導出する導出部と、
を備えた情報処理システム。
前記導出部は、前記複数のクエリのそれぞれに対応する前記カテゴリツリーに含まれるカテゴリ同士が一致するか否かを最上位のカテゴリから順に判定し、前記最上位のカテゴリから連続してどれだけ多くのカテゴリが一致するかに基づき、前記複数のクエリ間の類似度を導出する、
請求項1または請求項2に記載の情報処理システム。
前記生成部は、前記カテゴリツリーの生成過程で統合された同一のカテゴリの数に応じてそのカテゴリにスコアを付与し、1つのカテゴリツリーに含まれる全てのカテゴリに付与されたスコアを前記カテゴリツリー単位で正規化することで前記重みを導出する、
請求項4または請求項5に記載の情報処理システム。
前記導出部は、前記複数のクエリのそれぞれに対応する前記カテゴリツリーに含まれるカテゴリ同士が一致するか否かを最上位のカテゴリから順に判定し、一致するカテゴリに付与された前記重みの値を加算することで、前記複数のクエリ間の類似度を導出する、
請求項6に記載の情報処理システム。
ユーザから入力された複数のクエリに対して前記導出部により導出された前記複数のクエリ間の類似度に基づき、前記複数のクエリをそれぞれ受け付けた時刻の間でセッションを分割するセッション分割部をさらに備えた、
請求項1から請求項7のうちいずれか1項に記載の情報処理システム。
【発明を実施するための形態】
【0009】
以下、図面を参照して、情報処理システム、情報処理方法、およびプログラムの実施形態について説明する。本実施形態では、情報処理システムが販売サイトを提供するサーバ装置に適用されたものとして説明する。販売サイトは、ブラウザによって再生されるものに限らず、アプリケーションプログラムによって再生されるものも含むものとする。サーバ装置は、インターネットなどのネットワークを介してユーザ端末装置と通信可能に接続され、販売サイトに対するユーザの検索行動を示す情報を取得する。サーバ装置は、ユーザから入力された複数のクエリの間の類似度を導出し、導出した類似度に基づきセッションを分割する。また、サーバ装置は、分割したセッションに関する情報に基づき、ユーザのコンバージョンの予測値(ユーザが所定の行動をとる確率)を導出する。以下、実施形態について説明する。
【0010】
図1は、実施形態のサーバ装置(情報処理システム)10の使用環境を示す図である。サーバ装置10は、ネットワークNWを介してユーザ端末装置UDおよびクライアント端末装置CDと通信可能に接続される。ネットワークNWは、インターネットやWAN(Wide Area Network)、LAN(Local Area Network)などを含む。また、サーバ装置10と通信可能に接続されるユーザ端末装置UDおよびクライアント端末装置CDの数は、例えばそれぞれ複数である。
【0011】
ユーザ端末装置UDは、ユーザによって使用される情報処理装置である。ユーザ端末装置UDは、例えば、商品またはサービス(以下、「商品等」と称する)を販売するための、サーバ装置10が提供する販売サイトを閲覧するためのブラウザやアプリケーションプログラムを有する。ユーザ端末装置UDは、販売サイトで紹介されている商品等を、ユーザが検索したり、購入または契約(予約を含む)(以下、単に「購入」と称する)したりするために利用される。商品等は、「対象物」の一例である。
【0012】
クライアント端末装置CDは、クライアントによって使用される情報処理装置である。クライアント端末装置CDは、例えば、販売対象の商品等の情報(以下、「商品情報」と称する)をサーバ装置10に登録するためにクライアントによって利用される。
【0013】
サーバ装置10は、商品等の販売サイトを提供する。サーバ装置10は、クライアント端末装置CDによって登録された商品情報を記憶し、ユーザ端末装置UDを通じてユーザの検索行動の入力を受け付けると、ユーザの検索行動に応じて絞り込まれた商品情報を掲載した販売サイトをユーザ端末装置UDに対して配信する。
【0014】
本実施形態のサーバ装置10は、例えば、商品情報取得部100と、行動情報取得部200と、類似度分析部300と、セッション分割部400と、計算モデル学習部500と、CV予測部600と、情報出力部700と、記憶部800とを備える。
【0015】
商品情報取得部100、行動情報取得部200、類似度分析部300、セッション分割部400、計算モデル学習部500、CV予測部600、および情報出力部700の全部または一部は、例えば、CPU(Central Processing Unit)などのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。また、これらの構成要素のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0016】
記憶部800は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。なお、記憶部800の全部または一部は、NAS(Network Attached Storage)や外部のストレージサーバなど、サーバ装置10のプロセッサがアクセス可能な外部装置により実現されてもよい。記憶部800には、商品情報データベースDB1、行動情報データベース(過去ログ)DB2、カテゴリツリー情報データベースDB3、計算モデル情報データベースDB4、およびCV予測値情報データベースDB5が格納される。
【0017】
次に、サーバ装置10の各機能部について詳しく説明する。
【0018】
まず、商品情報取得部100について説明する。商品情報取得部100は、ネットワークNWを通じてクライアント端末装置CDから入力される商品情報を取得する。「商品情報」とは、販売サイトにて紹介される商品等に関する情報であり、例えば、商品等の名前、内容、生産者(提供者)、価格、送料、在庫数、配達予定日などである。「商品情報」は、商品等のカテゴリを示すカテゴリ情報を含む。カテゴリ情報は、商品等が属する階層状のカテゴリを特定するとともに、以下に示す「カテゴリパスP」を含む。
【0019】
図2は、カテゴリパスPを説明するための図である。
図2に示すように、階層状のカテゴリは、広い概念から順に、第1階層、第2階層、…、第N階層(Nは3以上の自然数)を含む。ここでは説明の便宜上、4階層の階層状のカテゴリについて説明するが、カテゴリの階層は、3階層以下でもよく、5階層以上でもよい。
【0020】
「カテゴリパスP」とは、階層状のカテゴリにおいて、最上位層のカテゴリから中位層のカテゴリを経由して最下位層の1つのカテゴリに向かう1本の仮想的なパスを意味する。例えば、
図2に示す例では、最下位層(第4階層)のカテゴリ「洋食」に属するある商品のカテゴリパスPは、「本(第1階層)>育児(第2階層)>料理(第3階層)>洋食(第4階層)」となる。カテゴリパスPは、個々の階層状のカテゴリにおいて、最下位層のカテゴリの数だけ存在する。このようなカテゴリパスPは、クライアント端末装置CDを通じて商品情報がサーバ装置10に登録されるときに、個々の商品等に対して付与される。例えば、販売サイトが有する階層状のカテゴリにおいて、新たに登録される商品等が属する最下位層のカテゴリが指定されることで、その登録される商品等に対してカテゴリパスPが付与される。
【0021】
図3は、本実施形態の商品情報の内容の一例を示す図である。
図3に示すように、例えば、商品等に対して登録された商品情報は、複数の階層の各カテゴリにおいて、その商品等がいずれのカテゴリに属するかを示す情報を含む。このように、複数の階層の各々においてその商品等がいずれのカテゴリに属するかを示す情報が登録されていることは、「商品等にカテゴリパスPが付与されている」の一例に該当する。またこれに代えて、商品等に対してその商品等が最下位層のどのカテゴリに属するかを示す情報が登録されており、最下位層の各カテゴリとそれよりも上位のカテゴリとの対応関係を示す情報が参照可能である場合も、「商品等にカテゴリパスPが付与されている」の一例に該当する。
【0022】
次に、行動情報取得部200について説明する。行動情報取得部200は、販売サイトに対するユーザ端末装置UDを通じたユーザの行動情報を取得する。行動情報取得部200は、ユーザの新しい行動を受け付ける度に、ユーザの行動情報を取得する。行動情報取得部200は、取得したユーザの行動情報を、行動情報データベースDB2に登録するとともに、類似度分析部300およびCV予測部600に出力する。ユーザの行動情報は、ユーザの検索行動に関する情報、およびユーザの特定行動(後述)に関する情報を含む。
【0023】
「検索行動」とは、例えば、商品等を探すまたは絞り込むための行動である。例えば、「検索行動」とは、クエリ(検索クエリ)の入力、販売サイトで設定されている商品等を絞り込むためのボタンなどに対するクリック、および販売サイトで設定されている商品等の表示順を変更するためのボタンなどに対するクリックなどを含む。「検索行動に関する情報」とは、ユーザによる検索行動の内容、およびその検索行動が行われた時刻などを含む。また本願でいう「ボタン」とは、画面に表示された仮想的なものでもよく、ラジオボックスのようなボタンと同視できるものも含む。
【0024】
「特定行動」とは、例えば、検索行動によって絞り込まれた個々の商品等に対する行動である。例えば、「特定行動」とは、販売サイトに表示された複数の商品等のなかから、1以上の商品等を選択する行動である。例えば、「特定行動」とは、商品等の詳細な紹介ページへのハイパーリンクに対するクリックや、商品等を購入するための購入ボタンに対するクリックなどを含む。「特定行動に関する情報」とは、ユーザによる特定行動の内容、およびその特定行動が行われた時刻などを含む。
【0025】
図4は、本実施形態のユーザ行動情報の内容の一例を示す図である。
図4に示すように、ユーザ行動情報では、ユーザの各行動(例えば、検索行動および特定行動)と、その行動が販売サイトに対して行われた時刻とが対応付けられて管理されている。また、ユーザ行動情報は、ユーザ毎に管理されている。
【0026】
次に、類似度分析部300について説明する。類似度分析部300は、販売サイトに対するユーザの複数の検索行動の内容に基づき、その複数の検索行動の間の類似度を導出する。本実施形態では、販売サイトに対してユーザから入力された複数のクリエの内容に基づき、その複数のクエリ間の類似度を前記複数の検索行動の間の類似度として導出する。
【0027】
ここで、本願で言う「クエリ」について定義する。クエリとは、ウェブサイトに対する要求を所定の形式の文字で表現したものである。クエリは、例えば、ウェブサイトに対して直接に入力された文字である。ただし、本実施形態では、類似度分析部300は、直接に入力されたクエリだけに限らず、直接に入力されたクエリと同視できる検索行動がなされた場合も、前記直接に入力されたクエリと同視できる検索行動をクエリの入力として取り扱う。「直接に入力されたクエリと同視できる検索行動」とは、ある項目(例えば、ある商品等)に関連するページへのハイパーリンクに対するクリックなどである。
【0028】
また、本実施形態では、1つの検索ボックスに複数のターム(キーワード)が1度に入力された場合、その入力された複数のタームを纏めて1つのクエリとして取り扱う。例えば、検索ボックスに「本 小説」のような入力がされた場合、「本 小説」で1つのクエリとなる。言い換えると、「本」と入力されたクエリと、「本 小説」と入力されたクエリとは、互いに異なるクエリとして取り扱われる。
【0029】
図5は、本実施形態の類似度分析部300の構成を示すブロック図である。本実施形態の類似度分析部300は、同一のクエリを入力したユーザ群毎に、そのユーザ群が選択した複数の商品等のそれぞれに付与されているカテゴリパスを収集する。そして、類似度分析部300は、収集した複数のカテゴリパスに基づいてクエリ毎のカテゴリツリーを生成し、生成したクエリ毎のカテゴリツリーに基づいて複数のクエリ間の類似度を導出する。以下、この内容について詳しく説明する。
図5に示すように、類似度分析部300は、例えば、カテゴリパス収集部310と、カテゴリツリー生成部320と、類似度導出部330とを有する。
【0030】
カテゴリパス収集部310は、同一のクエリを入力したユーザ群毎に、そのユーザ群が販売サイトで選択した複数の商品等のそれぞれに付与されているカテゴリパスPを収集する。詳しく述べると、カテゴリパス収集部310は、販売サイトに対して検索行動を行った複数のユーザのなかで、同一のクエリ(以下、「特定クエリ」と称する)を入力したユーザを特定する。例えば、カテゴリパス収集部310は、行動情報データベースDB2に登録されたユーザ行動情報を参照することで、特定クエリを入力したユーザを抽出する。
【0031】
また、カテゴリパス収集部310は、特定クエリを入力したユーザがその特定クエリを入力した直後に選択した商品等を特定する。なお、「特定クエリを入力した直後」とは、特定クエリの入力と、商品等の選択との間に、別のクエリの入力が存在しないことを意味する。「特定クエリを入力した直後」とは、特定クエリの入力と、商品等の選択との間に、商品等の表示順の変更などの別の行動が存在してもよい。また、「(商品等を)選択した」とは、例えば、その商品等に対して上記特定行動が行われたことを意味する。例えば、本実施形態では、カテゴリパス収集部310は、個々の商品等に関連するボタンまたはハイパーリンクがクリックされたこと(アクセスされたこと)を、「商品等が選択された」と見做す。なおこれに代えて、カテゴリパス収集部310は、商品等が実際に購入されたことに限定して「商品等が選択された」と見做してもよい。カテゴリパス収集部310は、行動情報データベースDB2に登録されたユーザ行動情報を参照し、ユーザ行動情報に含まれる時刻情報に基づくことで、ユーザが特定クエリを入力した直後に選択した商品等を特定する。カテゴリパス収集部310は、上記処理を、同一のクエリを入力した全てのユーザに対して実行する。
【0032】
また、カテゴリパス収集部310は、商品情報データベースDB1に登録された商品情報を参照し、特定クエリを入力したユーザがその特定クエリを入力した直後に選択した商品等に付与されているカテゴリパスPを収集する。ここで、同一クエリを入力した複数のユーザが別々の商品等を選択している場合には、それら複数の商品等のそれぞれに対応する複数のカテゴリパスPが収集される。カテゴリパス収集部310は、上記処理を、同一のクエリを入力したユーザ群によって選択された全ての商品等に対して実行する。
【0033】
図6は、あるクエリを入力したユーザ群に対してカテゴリパス収集部310により収集されたカテゴリパスPの集まりの一例を示す図である。
図6は、特定クエリとして「本」を入力したユーザが、特定クエリを入力した直後に選択した(例えばハイパーリンクをクリックした)商品等のカテゴリパスPの集まりを示す。
【0034】
以上のように、カテゴリパス収集部310は、同一のクエリを入力したユーザ群毎に、そのユーザ群が販売サイトで選択した複数の商品等のそれぞれに付与されたカテゴリパスPを収集する。カテゴリパス収集部310は、ユーザ群毎に収集したカテゴリパスPの集まりを、カテゴリツリー生成部320に出力する。カテゴリパス収集部310は、所定期間の間に販売サイトに入力された全てのクエリの各々に対して上記処理を行う。
【0035】
図5に戻り説明すると、カテゴリツリー生成部320は、カテゴリパス収集部310により収集されたユーザ群毎に収集された複数のカテゴリパスPに基づき、その複数のカテゴリパスPに含まれる同一のカテゴリを統合することで、クエリ毎のカテゴリツリーTを生成する。カテゴリツリー生成部320は、例えば、カテゴリパス統合部321と、重み付与部322とを有する。
【0036】
カテゴリパス統合部321は、カテゴリパス収集部310により収集されたユーザ群毎に収集された複数のカテゴリパスPに含まれる同一のカテゴリを統合する。すなわち、カテゴリパス統合部321は、複数のカテゴリパスPのなかで、例えば同一階層に同一のカテゴリを持つ2つ以上のカテゴリパスPが存在しないか判定する。そして、カテゴリパス統合部321は、同一階層に同一カテゴリを持つ2つ以上のカテゴリパスPが存在する場合、そのカテゴリおよびそのカテゴリよりも上位のカテゴリを統合することで、前記2つ以上のカテゴリパスPを1つのカテゴリツリーTに変換する。カテゴリパス統合部321は、上記のようなカテゴリの統合を、階層状のカテゴリの各階層で行う。
【0037】
図7は、カテゴリパス統合部321により生成されたカテゴリツリーTの一例を示す図である。
図7に示されたカテゴリツリーTは、
図6に示されたカテゴリパスPの集まりに基づいて生成されたカテゴリツリーである。
図7に示すように、同一階層に同一カテゴリを持つ2つ以上のカテゴリパスPが存在する場合、そのカテゴリおよびそのカテゴリよりも上位のカテゴリが統合されて、1つのカテゴリツリーTが生成されている。
【0038】
また、カテゴリパス統合部321は、生成したカテゴリツリーTにおいて、第1階層のカテゴリのさらに上位に、ルートノードRNを設定する。ルートノードRNは、第1階層のさらに上位の階層(第0階層)に設定された仮想的なカテゴリとして取り扱われる。ルートノードRNは、全てのクエリのカテゴリツリーTで同一の内容である。なお、ルートノードRNの役割については後述する。
【0039】
重み付与部322は、カテゴリパス統合部321により生成されたカテゴリツリーTに含まれる各カテゴリに重みを付与する。詳しく述べると、重み付与部322は、カテゴリツリーTの生成過程で統合されたカテゴリに対して重みを付与する。例えば、重み付与部322は、カテゴリツリーTの生成過程で統合された同一のカテゴリの数に応じてそのカテゴリに付与する重みの大きさを導出する。
【0040】
本実施形態では、重み付与部322は、まず、カテゴリツリーTの生成過程で統合された同一のカテゴリの数に応じてそのカテゴリにスコアを付与する。例えば、
図6に示された複数のカテゴリパスPに基づいて
図7に示されたカテゴリツリーTが生成される例では、カテゴリ「本」に対して「3」、カテゴリ「育児」に対して「2」、カテゴリ「料理」に対して「2」、その他のカテゴリに対して「1」のスコアが付与される。
【0041】
そして、重み付与部322は、1つのカテゴリツリーTに含まれる全てのカテゴリに付与されたスコアをカテゴリツリーT単位で正規化することで、各カテゴリに付与される重みの値を導出する。
図7に示す例では、各カテゴリに付与されたスコアを、全てのカテゴリに付与されたスコアの合計値である「12」で除算することで、各カテゴリに付与される重みの値が導出される。例えば、カテゴリ「本」に対して「0.25」、カテゴリ「育児」に対して「0.167」、カテゴリ「料理」に対して「0.167」、その他のカテゴリに対して「0.083」の重みが付与される。
【0042】
カテゴリツリー生成部320は、前記所定期間の間に販売サイトに入力された全てのクエリに対して上記処理を行い、クエリ毎の重み付きカテゴリツリーTを生成する。カテゴリツリー生成部320により生成されたクエリ毎の重み付きカテゴリツリーTは、カテゴリツリー情報データベースDB3に登録される。
【0043】
次に、
図8を参照して、カテゴリパス統合部321により生成されたカテゴリツリーTの別の例について説明する。
図8に示す例では、あるクエリが複数の意味を持つ場合の例である。例えば、1つのクエリに含まれるタームが、ある「水産物の産地」と、その水産物の産地とは全く関係のない「ファッションブランド」とをそれぞれ指す場合である。この場合、そのクエリを入力したユーザがクエリの入力の直後にクリックした商品等は、上記水産物の産地に関連するカテゴリに属する商品等である場合と、上記ファッションブランドに関連するカテゴリに属する商品等である場合がある。この場合、2つの異なる階層状のカテゴリが存在することになるので、それぞれの商品等のカテゴリパスPをそのままでは1つのカテゴリツリーTに統合することができない。そこで本実施形態では、
図8に示すように、第1階層のカテゴリのさらに上位にルートノードRNを設定している。そして、2つの異なる階層状のカテゴリから抽出された2つのカテゴリパスPは、ルートノードRNで結合される。これにより、1つのクエリが複数の意味を持つ場合であっても、そのクエリに対応する1つのカテゴリツリーTを生成することができる。
【0044】
次に、
図5に戻り、類似度導出部330について説明する。類似度導出部330は、ユーザの複数の検索行動の内容に基づき、前記複数の検索行動の間の類似度を導出する。本実施形態では、ユーザが入力したクエリの内容に基づき、複数のクエリ間の類似度を前記複数の検索行動の間の類似度として導出する。類似度導出部330は、比較対象の複数のクエリ間の類似度を、前記複数のクエリのそれぞれに対してカテゴリツリー生成部320により生成されたカテゴリツリーT同士の類似度に基づき導出する。本実施形態では、類似度導出部330は、木間編集距離を用いて2つの重み付きカテゴリツリーT同士の類似度を求める。類似度導出部330は、「第1導出部」の一例である。
【0045】
図9は、2つの重み付きカテゴリツリーT同士の類似度の求め方の一例を示す図である。
図9に示すように、類似度導出部330は、複数のクエリのそれぞれに対応するカテゴリツリーTに含まれる複数のカテゴリ同士の一致度に基づき、前記複数のクエリ間の類似度を導出する。例えば、類似度導出部330は、複数のクエリのそれぞれに対応するカテゴリツリーTに含まれるカテゴリ同士が一致するか否かを最上位のカテゴリ(例えばルートノードRN)から順に判定し、前記最上位のカテゴリから連続してどれだけ多くのカテゴリが一致するかに基づき、複数のクエリ間の類似度を導出する。ここでは、最上位のカテゴリから連続して一致するカテゴリの数が多いほど、高い類似度が導出される。
【0046】
図9に示す例では、
図9中の左側のカテゴリツリーTがクエリ「本」に対応するカテゴリツリーであり、
図9中の右側のカテゴリツリーTが「本」とは異なるクエリに対応するカテゴリツリーである。
図9に示す例では、最上位のカテゴリ(ルートノードRN)から見て、カテゴリ「本」、カテゴリ「育児」、カテゴリ「料理」が2つのカテゴリツリーTで一致するカテゴリになる。
【0047】
本実施形態では、類似度導出部330は、複数のクエリのそれぞれに対応するカテゴリツリーTに含まれる複数のカテゴリ同士の一致度と、一致するカテゴリに付与された前記重みとに基づき、複数のクエリ間の類似度を導出する。例えば、類似度導出部330は、複数のクエリのそれぞれに対応するカテゴリツリーTに含まれるカテゴリ同士が一致するか否かを最上位のカテゴリから順に判定し、一致するカテゴリに付与された前記重みの値を加算していくことで、複数のクエリ間の類似度を導出する。一致するカテゴリに付与された前記重みは、例えば、2つのカテゴリツリーTにおいて小さい方の重みの値が採用される。
【0048】
図9に示す例では、最上位のカテゴリから見て、カテゴリ「本」、カテゴリ「育児」、カテゴリ「料理」が2つのカテゴリツリーTで一致するカテゴリである。そして、左側のカテゴリツリーTのカテゴリ「本」に対して付与された重みは、「0.25」であり、右側のカテゴリツリーTのテゴリ「本」に対して付与された重みは、「0.20」である。この場合、「0.25」と「0.20」とのうち小さい方である「0.20」が加算対象の重みの値となる。同様に、2つのカテゴリツリーTでカテゴリ「育児」に対して付与された重みの小さい方である「0.15」、および2つのカテゴリツリーTでカテゴリ「料理」に対して付与された重みの小さい方である「0.15」が順に加算される。そして、これら「0.20」、「0.15」、および「0.15」を加算した合計値である「0.5」が2つのカテゴリツリーTの類似度を示す値として導出される。この導出される類似度の値が大きい程、2つのクエリ間の類似度が高いと見做される。
【0049】
また、類似度導出部330は、後述するコンバージョン予測値を導出する段階において、販売サイトに対して入力されるクエリ(すなわち、行動情報取得部200により受け付けられるクエリ)を監視する。そして、類似度導出部330は、ユーザからクエリが新しく入力される毎に、新しく入力されたクエリに対応するカテゴリツリーTをカテゴリツリー情報データベースDB3から取得する。そして、類似度導出部330は、新しく入力されたクエリに対応するカテゴリツリーTと、1つ前に入力されたクエリに対応するカテゴリツリーTとを比較することで、新しく入力されたクエリと1つ前に入力されたクエリとの間の類似度を導出する。類似度導出部330は、新しく入力されたクエリと1つ前に入力されたクエリとの類似度が閾値以下の場合、新しく入力されたクエリと1つ前に入力されたクエリとの類似度が閾値以下であることを示す信号をセッション分割部400に出力する。
【0050】
次に、
図1に戻り、セッション分割部400について説明する。セッション分割部400は、類似度導出部330により導出された複数の検索行動の間の類似度に基づき、前記複数の検索行動の間でセッションを分割する。本実施形態では、セッション分割部400は、ユーザから入力された複数のクエリに対して類似度導出部330により導出された複数のクエリ間の類似度に基づき、複数のクエリをそれぞれ受け付けた時刻の間でセッションを分割する。「セッション」とは、例えば、クッキー等の状態管理機能の有効期間である。例えば、ウェブサイト内のあるウェブページにアクセスしてから所定時間経過(タイムアウト)するまでの期間が一つのセッションとして扱われる。また、セッションとは、ウェブサイト内のあるウェブページにアクセスしてから、当該ウェブサイト内の他のウェブページ、または他のウェブサイト内のウェブページに切り替わるまでの期間であってもよい。また、セッションとは、ウェブサイト内のあるウェブページにアクセスしてから、当該ウェブページを表示するウェブブラウザを閉じるまでの期間であってもよい。
【0051】
図10は、セッション分割部400によるセッションの分割の一例を示す図である。本実施形態では、セッション分割部400は、新しく入力されたクエリと1つ前に入力されたクエリとの類似度が閾値以下であることを示す信号を類似度分析部300から受け取る場合、新しく入力されたクエリを受け付けた時刻と1つ前に入力されたクエリを受け付けた時刻との間でセッションを分割する。
【0052】
図10に示す例では、クエリ「本 小説」を受け付けた時刻と、クエリ「服」を受け付けた時刻との間でセッションが分割される。本実施形態のセッション分割部400によれば、クエリ「本 小説」を受け付けた時刻から、クエリ「服」を受け付けた時刻までの経過時間が短い場合でも、2つのクエリの類似度が閾値以下の場合、2つのクエリが受け付けられた時刻の間でセッションが分割される。なお、2つのクエリの入力の間にユーザの別の行動(例えば、商品等を絞り込むボタンに対するクリックなど)がある場合は、セッションは、新しく入力されたクエリを受け付けた時刻の直前で分割される。セッション分割部400は、セッションを分割した場合、セッションを分割したこと、およびセッションを分割することで新しく始まるセッション(以下、「分割セッション」と称する)の開始時刻を、計算モデル学習部500およびCV予測部600に出力する。
【0053】
次に、
図1に戻り、計算モデル学習部500について説明する。計算モデル学習部500は、ユーザの検索行動に基づきユーザのコンバージョン予測値を導出する計算モデルを学習させる。本実施形態では、計算モデル学習部500により学習される計算モデルは、分割セッションにおけるユーザの検索行動に基づき、分割セッションの間にユーザに対して提示されている商品等に対するユーザのコンバージョン予測値を導出する計算モデルである。
【0054】
詳しく述べると、上記計算モデルに対する入力は、リクエスト素性情報と、セッション素性情報とを含む。一方で、上記計算モデルからの出力は、ユーザのコンバージョン予測値である。
【0055】
リクエスト素性情報は、例えば、ユーザの検索行動の内容と、その検索行動を行った時刻を示す情報である。検索行動の内容は、例えば、ユーザにより入力されたクエリの内容、販売サイトでの商品等の表示順(並び順)の変更に関するユーザのリクエストの内容、販売サイトでの商品等の絞り込み条件に関するユーザのリクエストの内容などである。ユーザにより入力されたクエリの内容は、例えばベクトル表現に変換されて上記計算モデルに入力される。ベクトル表現は、例えばクエリの内容を分散表現で表した密ベクトルであるが、クエリの内容を局所表現で表した疎ベクトルでもよい。販売サイトでの商品等の表示順は、商品等を人気順で表示するか、または価格順で表示するか、などである。販売サイトでの商品等の絞り込み条件は、商品等の在庫の有無、商品等の配達予定日が所定日数以内であること、送料が無料であること、などである。リクエスト素性情報は、行動情報取得部200により取得されたユーザ行動情報に基づいて得ることができる。
【0056】
セッション素性情報は、分割セッションに関する時刻情報、および分割セッションにおけるリクエスト素性の平均値などである。分割セッションに関する時刻情報は、例えば、分割セッション開始からの経過時間である。「分割セッション開始からの経過時間」とは、例えば、分割セッション開始からユーザによる検索行動(クエリの入力、商品等の表示順変更や絞り込みのリクエスト等)を受け付けた時点までの経過時間である。例えば、1つの分割セッションにおいてユーザが複数の検索行動を行った場合、「分割セッション開始からの経過時間」とは、例えば、分割セッション開始からユーザによる各検索行動を受け付けた各時点までの各経過時間である。「リクエスト素性の平均値」とは、例えば、分割セッションをユーザのリクエスト(例えばクエリの入力)の集合とみなしたとき、リクエスト毎に得た「リクエスト素性情報」のベクトル(上述したクエリの内容を分散表現または局所表現で表したベクトル)の平均値である。セッション素性情報は、セッション分割部400および行動情報取得部200により導出または取得された情報に基づいて得られる。
【0057】
コンバージョン予測値は、分割セッションの間にユーザに対して提示されている商品等に対してユーザが所定の行動をとる確率である。コンバージョン予測値は、種々の目的に応じて異なる定義が可能である。コンバージョン予測値の一例は、分割セッションの間にユーザに対して提示されている商品等をユーザが購入する確率である。ただし、コンバージョン予測値は、上記例に限らず、分割セッションの間にユーザに対して提示されている商品等のハイパーリンクをユーザがクリックする確率でもよいし、別の定義によるものでもよい。
【0058】
本実施形態では、計算モデル学習部500は、過去の一定期間において行動情報取得部200およびセッション分割部400により取得または導出されたユーザの行動情報およびセッション情報を教師データとして上記学習モデルを学習させる。行動情報取得部200により取得されたユーザの行動情報は、上記リクエスト素性情報と、ユーザが実際に上記所定の行動(例えば、商品等の購入)を行った否かを示す情報を含む。複数のユーザについて上記所定の行動が実際に行われた否かを示す情報(例えば、コンバージョン率)は、コンバージョン予測値に対する正解データである。セッション分割部400により取得されたセッション情報は、複数のクエリ間の類似度に基づいて分割された分割セッションに関する時刻情報(例えば、分割セッション開始からコンバージョン予測値を導出する時点までの経過時間)を含む。
【0059】
計算モデル学習部500は、上記のような情報を教師データとした機械学習により、ユーザの行動情報およびセッション情報と、コンバージョン予測値との関係を示す計算モデルを学習する。機械学習の手法は、例えば、サポートベクターマシン(SVM:Support Vector Machine)やディープランニングであるが、これらに限定されない。計算モデル学習部500は、学習した計算モデルを、計算モデル情報データベースDB4に登録する。
【0060】
CV予測部600は、コンバージョン予測値を求めたいユーザ(以下、「対象ユーザ」と称する)の検索行動に基づき、対象ユーザのコンバージョン予測値を導出する。CV予測部600は、クエリ間類似度を用いて分割された分割セッションにおける対象ユーザの検索行動に基づき、前記分割セッションの間に提示されている商品等に対する対象ユーザのコンバージョン予測値を導出する。CV予測部600は、分割セッションにおける対象ユーザの検索行動の内容と、分割セッションに関する時刻情報とに基づき、対象ユーザのコンバージョン予測値を導出する。例えば、CV予測部600は、分割セッションにおける対象ユーザの検索行動の内容と、分割セッション開始からの経過時間とに基づき、対象ユーザのコンバージョン予測値を導出する。CV予測部600は、「第2導出部」の一例である。
【0061】
詳しく述べると、CV予測部600は、行動情報取得部200により取得されたユーザの行動情報を受け取る。また、CV予測部600は、セッション分割部400により導出されたセッション情報(例えば、分割セッション開始からの経過時間)を受け取る。また、CV予測部600は、計算モデル情報データベースDB4を参照することで、計算モデル学習部500により学習された計算モデルを読み出す。そして、CV予測部600は、例えば、ユーザの各検索行動の内容と、分割セッション開始からの経過時間と、上記計算モデルとに基づき、コンバージョン予測値を導出する。CV予測部600は、導出したコンバージョン予測値を示す情報を、CV予測値情報データベースDB5に登録する。
【0062】
なお上記に代えて、CV予測部600は、行動情報取得部200により取得されたユーザの行動情報と、セッション分割部400により導出されたセッション情報とに基づき、分割セッション開始からのユーザの各検索行動が行われた各時点までの各経過時間を導出してもよい。そして、CV予測部600は、ユーザの各検索行動の内容と、分割セッション開始からのユーザの各検索行動が行われた各時点までの各経過時間と、上記計算モデルとに基づき、コンバージョン予測値を導出してもよい。
【0063】
最後に、情報出力部700について説明する。情報出力部700は、所定の周期に応じて、または外部からの要求を受け付けた場合に、CV予測値情報データベースDB5に登録されたコンバージョン予測値を読み出し、外部に出力する。
【0064】
次に、サーバ装置10による処理の流れの一例について説明する。サーバ装置10による処理の流れは、(1)カテゴリツリーの導出段階と、(2)クエリ間の類似度を用いたセッション分割およびコンバージョン予測値の導出段階と、に大きく分かれる。以下、これらの内容について説明する。
【0065】
図11は、カテゴリツリーの導出段階の処理の流れの一例を示すフローチャートである。
図11に示すように、まず、カテゴリパス収集部310は、同一のクエリを入力したユーザ群毎に、前記ユーザ群が選択した商品群に予め付与されているカテゴリパスPを取得する(S101)。
【0066】
次に、カテゴリツリー生成部320は、カテゴリパス収集部310により収集されたユーザ群毎のカテゴリパスPの集まりに対して、その集まりの複数のカテゴリパスに含まれる同一のカテゴリを統合することで、カテゴリツリーTを生成する(S102)。次に、カテゴリツリー生成部320は、カテゴリツリーの生成過程で統合された同一カテゴリに対して重みを付与する(S103)。
【0067】
サーバ装置10は、クエリ毎に、上記S101からS103の処理を行い、クエリ毎のカテゴリツリーTを生成する。これにより、カテゴリツリーTの導出段階が終了する。これにより、カテゴリツリーTを用いたクエリ間類似度の導出と、クエリ間類似度を用いたセッションの分割が可能になる。この後、過去の一定期間におけるユーザの行動情報と、前記一定期間に関して求められた、クエリ間類似度によりセッション分割されたセッション情報)とを教師データとして、コンバージョン予測値を導出するための計算モデルが学習される。
【0068】
図12は、クエリ間の類似度を用いたセッション分割およびコンバージョン予測値の導出段階の処理の流れの一例を示すフローチャートである。
図12に示すように、まず、行動情報取得部200は、ユーザが新しいクエリを入力する毎に、ユーザが入力した新しいクエリを受け付ける(S201)。次に、類似度導出部330は、ユーザからクエリが新しく入力される毎に、新しく入力されたクエリに対応するカテゴリツリーTをカテゴリツリー情報データベースDB3から読み出す。そして、類似度導出部330は、新しく入力されたクエリに対応するカテゴリツリーTと、1つ前に入力されたクエリに対応するカテゴリツリーTとを比較する(S202)。これにより、類似度導出部330は、新しく入力されたクエリと1つ前に入力されたクエリとの間の類似度を導出する(S203)。なお、1つ前に入力されたクエリに対応するカテゴリツリーTは、新しく入力されたクエリに対応するカテゴリツリーTと同様にカテゴリツリー情報データベースDB3から読み出されてもよいし、RAMのような揮発性メモリ上で保持されていてもよい。
【0069】
次に、類似度導出部330は、新しく入力されたクエリと1つ前に入力されたクエリとの間の類似度が閾値以下であるか否かを判定する(S204)。前記類似度が閾値よりも高い場合(S204:NO)、セッション分割部400は、セッションを分割しない。この場合、S206の処理に進む。
【0070】
一方で、前記類似度が閾値以下である場合(S204:YES)、セッション分割部400は、新しく入力されたクエリが受け付けられた時刻と1つ前に入力されたクエリが受け付けられた時刻との間でセッションを分割する(S205)。セッション分割部400は、セッションが分割されたこと、および新しく始まる分割セッションの開始時刻を示す情報をCV予測部600に出力する。
【0071】
CV予測部600は、行動情報取得部200により取得されたユーザの検索行動の内容と、セッション分割部400により導出されたセッション情報と、上記計算モデルとに基づき、コンバージョン予測値を導出する(S206)。情報出力部700は、CV予測部600により導出されたコンバージョン予測値を示す情報を出力する。サーバ装置10は、例えばユーザにより新しいクエリが入力される毎に、S201からS206の処理を繰り返す。
【0072】
図13は、本実施形態のサーバ装置10を用いたコンバージョン予測値のシミュレーションによる実験結果を示す図である。
図13中のセッション分割方法による「ユーザ」とは、ユーザ毎にセッションを分割したモデルを示し、「時間(30分)」とは、1つ前のクエリの入力から新しいクエリの入力までの経過時間が30分以上の場合にセッションを分割したモデルを示し、「w2v」は、word2vecを用いたモデルを示し、「カテゴリツリー」は上記実施形態で説明したモデルを示す。
図13に示すように、本実施形態のようなカテゴリツリーTを用いたセッション分割によれば、他の手法に比べて、コンバージョン予測値の導出精度が向上することが確認された。特に、本実施形態のようなカテゴリツリーTを用いたクエリ間類似度の導出方法によれば、「商品券」と「図書券」、または商品名のカタカナ表記と英文表記との間の類似度を、他の手法に比べて高く導出することができることも確認された。
【0073】
以上説明したサーバ装置10によれば、ユーザの検索行動に関連するより有用な情報を提供することができる。すなわち、本実施形態では、サーバ装置10は、カテゴリパス収集部310と、カテゴリツリー生成部320と、類似度導出部330とを有する。カテゴリパス収集部310は、同一のクエリを入力したユーザ群毎に、そのユーザ群が販売サイトで選択した複数の商品等のそれぞれに付与されているカテゴリパスPを収集する。カテゴリツリー生成部320は、カテゴリパス収集部310により収集されたユーザ群毎の複数のカテゴリパスPに含まれる同一のカテゴリを統合することで、クエリ毎のカテゴリツリーTを生成する。類似度導出部330は、複数のクエリ間の類似度を、前記複数のクエリのそれぞれに対してカテゴリツリー生成部320により生成されたカテゴリツリーT同士の類似度に基づき導出する。このような構成によれば、複数のクエリ間の類似度を、容易に、且つ精度よく、導出することができる。これにより、ユーザの検索行動に関連するより有用な情報を提供することができる。
【0074】
本実施形態では、類似度導出部330は、複数のクエリのそれぞれに対応するカテゴリツリーTに含まれる複数のカテゴリ同士の一致度に基づき、複数のクエリ間の類似度を導出する。このような構成によれば、複数のクエリ間の類似度を、比較的簡単な処理で導出することができる。
【0075】
本実施形態では、類似度導出部330は、複数のクエリのそれぞれに対応するカテゴリツリーTに含まれるカテゴリ同士が一致するか否かを最上位のカテゴリから順に判定し、最上位のカテゴリから連続してどれだけ多くのカテゴリが一致するかに基づき、複数のクエリ間の類似度を導出する。このような構成によれば、複数のクエリ間の類似度を、比較的簡単な処理で導出することができる。
【0076】
本実施形態では、カテゴリツリー生成部320は、カテゴリツリーTの生成過程で統合されたカテゴリに重みを付与する。類似度導出部330は、複数のクエリのそれぞれに対応するカテゴリツリーTに含まれる複数のカテゴリ同士の一致度と、一致するカテゴリに付与された前記重みとに基づき、複数のクエリ間の類似度を導出する。このような構成によれば、統合されたカテゴリに重みが付与されることで、複数のカテゴリツリーTの類似度をさらに精度良く判定することができる。これにより、複数のクエリ間の類似度の導出精度を高めることができる。
【0077】
本実施形態では、カテゴリツリー生成部320は、カテゴリツリーTの生成過程で統合された同一のカテゴリの数に応じてそのカテゴリに付与する前記重みを導出する。このような構成によれば、カテゴリの統合の度合いを反映させることができ、複数のカテゴリツリーTの類似度をさらに精度良く導出することができる。
【0078】
本実施形態では、カテゴリツリー生成部320は、カテゴリツリーTの生成過程で統合された同一のカテゴリの数に応じてそのカテゴリにスコアを付与し、1つのカテゴリツリーに含まれる全てのカテゴリに付与されたスコアを前記カテゴリツリー単位で正規化することで前記重みを導出する。このような構成によれば、クエリ毎にカテゴリツリーTの規模が大きく異なる場合でも、複数のカテゴリツリーTの類似度を精度良く判定することができる。
【0079】
本実施形態では、類似度導出部330は、複数のクエリのそれぞれに対応するカテゴリツリーTに含まれるカテゴリ同士が一致するか否かを最上位のカテゴリから順に判定し、一致するカテゴリに付与された前記重みの値を加算することで、複数のクエリ間の類似度を導出する。このような構成によれば、複数のクエリ間の類似度の導出精度をさらに高めることができる。
【0080】
本実施形態では、サーバ装置10は、類似度導出部330と、セッション分割部400とを有する。類似度導出部330は、販売サイトに対するユーザの複数の検索行動の内容に基づき、複数の検索行動の間の類似度を導出する。セッション分割部400は、類似度導出部330により導出された前記類似度に基づき、複数の検索行動の間でセッションを分割する。このような構成によれば、ユーザの意図を考慮したセッション分割が可能になる。これにより、ユーザの検索行動に関連するより有用な情報を提供することができる。
【0081】
本実施形態では、類似度導出部330は、販売サイトに対してユーザが入力した複数のクエリの内容に基づき、複数のクエリ間の類似度を複数の検索行動の間の類似度として導出する。セッション分割部400は、複数のクエリ間の類似度に基づき、複数のクエリがそれぞれ入力された時刻の間でセッションを分割する。このような構成によれば、クエリの内容に基づき、セッションを分割することができる。これにより、ユーザの検索行動に関連するより有用な情報を提供することができる。
【0082】
本実施形態では、類似度導出部330は、直接入力されたクエリだけでなく、直接入力されたクエリと同視できる検索行動がなされた場合も、前記直接入力されたクエリと同視できる検索行動をクエリの入力として取り扱う。このような構成によれば、クエリのみに用いてセッションが分割される場合に比べて、より精度の高いセッションの分割が可能になる場合がある。
【0083】
本実施形態では、サーバ装置10は、セッションを分割することで得られる分割セッションにおけるユーザの検索行動に基づき、分割セッションの間に提示されている商品等に対するユーザのコンバージョン予測値を導出するCV予測部600を備える。このような構成によれば、ユーザの意図を考慮したセッション分割を反映させたコンバージョン予測値の導出が可能になる。このため、コンバージョン予測値の導出精度を高めることができる。
【0084】
本実施形態では、CV予測部600は、分割セッションに関する時刻情報に基づき、ユーザのコンバージョン予測値を導出する。このような構成によれば、ユーザの意図が考慮されて分割された分割セッションの時刻情報に基づいてコンバージョン予測値が導出されるため、コンバージョン予測値の導出精度を高めることができる。
【0085】
本実施形態では、CV予測部600は、分割セッションの開始からの経過時間に基づき、ユーザのコンバージョン予測値を導出する。このような構成によれば、ユーザの意図が考慮されて分割された分割セッションの開始時刻からの経過時間に基づいてコンバージョン予測値が導出されるため、コンバージョン予測値の導出精度を高めることができる。
【0086】
以上、実施形態のサーバ装置10について説明したが、実施形態は上記例に限定されない。また本願において「XXに基づく」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また「XXに基づく」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素である。
【0087】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。