(57)【要約】【課題】検索精度を向上させることができる情報処理装置、情報処理方法、およびプログラムを提供すること。【解決手段】本発明の一態様は、検索に用いられたクエリを解析して、前記クエリを単語に分割する解析部と、前記解析部によって分割された単語を特徴ベクトルに変換する変換部と、学習データにおけるクエリに含まれる単語の特徴ベクトルと、前記学習データにおけるクエリに関連付けされたカテゴリとの関係を学習することにより、前記検索に用いられたクエリと関連付けされるカテゴリを推定する第１推定部とを備える情報処理装置である。【選択図】図１
2019053386.tif 000002
【特許請求の範囲】
【請求項１】
検索に用いられたクエリを解析して、前記クエリを単語に分割する解析部と、
前記解析部によって分割された単語を特徴ベクトルに変換する変換部と、
学習データにおけるクエリに含まれる単語の特徴ベクトルと、前記学習データにおけるクエリに関連付けされたカテゴリとの関係を学習することにより、前記検索に用いられたクエリと関連付けされるカテゴリを推定する第１推定部と
を備える情報処理装置。
【請求項２】
前記第１推定部は、
前記単語の特徴ベクトルに対してエンコード処理を行うエンコーダと、
前記エンコーダの処理結果に対してデコード処理を行い、前記検索に用いられたクエリと関連付けされるカテゴリを出力するデコーダと、
を備える、
請求項１に記載の情報処理装置。
【請求項３】
前記エンコーダは、複数の前記単語の特徴ベクトルのうち、第１の特徴ベクトルに対する第１のエンコード処理を行った後、前記第１のエンコード処理の結果と第２の特徴ベクトルとを用いた第２のエンコード処理を行う、
請求項２に記載の情報処理装置。
【請求項４】
前記デコーダは、前記エンコーダの処理結果に対して第１のデコード処理を行って第１のカテゴリを出力し、前記第１のデコード処理の結果に対して第２のデコード処理を行って第２のカテゴリを出力する、
請求項２または３に記載の情報処理装置。
【請求項５】
前記カテゴリはツリー構造を有しており、
前記第１のカテゴリは、前記ツリー構造において最上位に定義されたカテゴリであり、
前記第２のカテゴリは、前記第１のカテゴリの下位に定義されたカテゴリである、
請求項４に記載の情報処理装置。
【請求項６】
前記第１推定部によって推定されたカテゴリに基づいて、前記検索に用いられたクエリに対する検索結果ページを生成する生成部をさらに備える、請求項１から５のうちいずれか一項に記載の情報処理装置。
【請求項７】
前記解析部は、前記検索に用いられたクエリを形態素解析によって解析して、前記クエリを単語に分割する、請求項１から６のうちいずれか一項に記載の情報処理装置。
【請求項８】
検索に用いられたクエリの単語の特徴ベクトルと、前記検索に用いられたクエリに対する検索結果ページにおいてユーザにより選択されたカテゴリとの関係を学習する学習部をさらに備え、
前記学習部は、前記ユーザにより選択された回数が所定の閾値以下であるカテゴリを学習データから除外する、
請求項１から７のうちいずれか一項に記載の情報処理装置。
【請求項９】
前記検索に用いられたクエリに対する検索結果ページにおいてユーザにより選択されたカテゴリのログに基づいて、前記検索に用いられたクエリと関連付けされるカテゴリを推定する第２推定部をさらに備える、
請求項１から８のうちいずれか一項に記載の情報処理装置。
【請求項１０】
前記検索に用いられたクエリが前記ログに存在するか否かを判定する判定部をさらに備え、
前記判定部が前記検索に用いられたクエリが前記ログに存在すると判定した場合、前記第２推定部が、前記検索に用いられたクエリと関連するカテゴリを推定し、
前記判定部が前記検索に用いられたクエリが前記ログに存在しない判定した場合、前記第１推定部が、前記検索に用いられたクエリと関連するカテゴリを推定する、
請求項９に記載の情報処理装置。
【請求項１１】
前記第１推定部は、
前記単語の特徴ベクトルに対してエンコード処理を行うエンコーダと、
前記エンコーダの処理結果に対してデコード処理を行う複数のデコーダと、
を備える、
請求項１に記載の情報処理装置。
【請求項１２】
前記単語の特徴ベクトルに対してエンコード処理を行うエンコーダと、
前記エンコーダの処理結果に基づいて、前記情報処理装置に対するユーザからのアクセスの一まとまりのセッションの切れ目を判定する判定部と、
をさらに備える、
請求項１に記載の情報処理装置。
【請求項１３】
コンピュータが、
検索に用いられたクエリを解析して、前記クエリを単語に分割し、
前記分割された単語を特徴ベクトルに変換し、
学習データにおけるクエリに含まれる単語の特徴ベクトルと、前記学習データにおけるクエリに関連付けされたカテゴリとの関係を学習することにより、前記検索に用いられたクエリと関連付けされるカテゴリを推定する、情報処理方法。
【請求項１４】
コンピュータに、
検索に用いられたクエリを解析させて、前記クエリを単語に分割させ、
前記分割された単語を特徴ベクトルに変換させ、
学習データにおけるクエリに含まれる単語の特徴ベクトルと、前記学習データにおけるクエリに関連付けされたカテゴリとの関係を学習することにより、前記検索に用いられたクエリと関連付けされるカテゴリを推定させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
ウェブ検索の分野において、ユーザが入力したキーワード（以下、「クエリ」）に応じて、このクエリに関連する各種商品またはサービスの情報を提供する手法が行われている。また、ユーザが意図する商品またはサービスの情報を高精度で提供するために、機械学習を用いた検索手法の開発も進められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００２−５３０９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、クエリとの関連度が低く、ユーザが意図しない商品またはサービスの情報が提供される場合があった。また、従来の機械学習を用いた手法は、単純な線形モデルを用いたものであり、クエリに含まれる単語の組み合わせを考慮できていなかった。また、一般的な機械学習の分野において、線形モデルの他、エンコーダ−デコーダモデルを用いる手法の研究が進められているが、ウェブ検索の分野に適用することは想定されていなかった（例えば、特許文献１参照）。
【０００５】
本発明は、このような事情を考慮してなされたものであり、検索精度を向上させることができる情報処理装置、情報処理方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
本発明の一態様は、検索に用いられたクエリを解析して、前記クエリを単語に分割する解析部と、前記解析部によって分割された単語を特徴ベクトルに変換する変換部と、学習データにおけるクエリに含まれる単語の特徴ベクトルと、前記学習データにおけるクエリに関連付けされたカテゴリとの関係を学習することにより、前記検索に用いられたクエリと関連付けされるカテゴリを推定する第１推定部とを備える情報処理装置である。
【発明の効果】
【０００７】
本発明の一態様によれば、検索精度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態の検索サーバ１０の使用環境を示す図である。
【図２】第１実施形態のカテゴリのツリー構造の一例を示す図である。
【図３】第１実施形態の検索サーバ１０の学習処理の流れの一例を示す図である。
【図４】第１実施形態の検索サーバ１０のカテゴリ推定処理の流れの一例を示す図である。
【図５】第１実施形態のカテゴリ推定部３６におけるカテゴリ推定処理を模式的に示す図である。
【図６】第１実施形態の検索結果ページの一例を示す図である。
【図７】評価実験において利用したモデルを説明する図である。
【図８】評価実験の結果を示す図である。
【図９】評価実験のクリック数別での一致率の比較結果を示す図である。
【図１０】評価実験のモデル１を用いて推定されたカテゴリの一例を示す図である。
【図１１】第２実施形態の検索サーバ１１の機能ブロック図である。
【図１２】第２実施形態の検索ログデータの一例を示す図である。
【図１３】第２実施形態の検索サーバ１１のカテゴリ推定処理の流れの一例を示す図である。
【図１４】第３実施形態の検索サーバ１２の機能ブロック図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、情報処理装置、情報処理方法、およびプログラムの実施形態について説明する。
【００１０】
＜１．第１実施形態＞
以下、本発明の第１実施形態について説明する。本実施形態の情報処理装置は、検索に用いられたクエリを単語に分割し、この分割された単語を特徴ベクトルに変換し、クエリと関連付けされるカテゴリを推定する。本実施形態における「カテゴリ」とは、検索に用いられたクエリに対して検索結果として提供されるコンテンツの内容（商品またはサービス）が属する分野を示す情報である。本実施形態では、情報処理装置が、商品またはサービスのコンテンツの検索結果を提供する検索サーバである例について説明する。
【００１１】
＜１−１．システム構成＞
図１は、本実施形態の検索サーバ１０（情報処理装置）の使用環境を示す図である。検索サーバ１０は、ネットワークＮＷを介して、端末装置Ｔ等と接続されている。ネットワークＮＷは、例えば、ＷＡＮ（Wide Area Network）やＬＡＮ（Local Area Network）、インターネット、専用回線、無線基地局、プロバイダ等を含む。
【００１２】
端末装置Ｔは、検索サーバ１０により提供される検索サービスを利用するユーザによって操作される。端末装置Ｔは、例えば、パーソナルコンピュータ、スマートフォンなどの携帯電話やタブレット端末、ＰＤＡ（Personal Digital Assistant）などのコンピュータ装置である。端末装置Ｔは、ユーザの操作に基づいて動作するブラウザまたはアプリケーションプログラムが、例えば、情報提供を要求するクエリを検索サーバ１０に送信し、クエリと関連付けされた情報を検索サーバ１０から受信する。
【００１３】
検索サーバ１０は、端末装置Ｔから入力されたクエリと関連付けされる検索結果のページ情報を端末装置Ｔに送信する。検索サーバ１０は、クエリと、このクエリと関連付けされたサイトのページを参照するための参照情報とを関連付けた検索データを用いて、検索結果のページ情報を生成する。参照情報は、例えば、ＵＲＬ（Uniform Resource Locator）を含む。
【００１４】
検索サーバ１０は、例えば、通信部３０と、クエリ解析部３２（解析部）と、クエリ変換部３４（変換部）と、カテゴリ推定部３６（第１推定部、学習部）と、検索結果生成部３８（生成部）と、記憶部４０とを備える。通信部３０は、ネットワークＮＷを介して、端末装置Ｔ等と通信する。通信部３０は、ネットワークＮＷを介して、端末装置Ｔからクエリを受信し、検索結果のページ情報を端末装置Ｔに送信する。通信部３０は、例えば、ＮＩＣ等の通信インターフェースを含む。
【００１５】
クエリ解析部３２は、端末装置Ｔから入力されたクエリを解析して、単語レベルに分割する。クエリ解析部３２は、例えば、形態素解析によってクエリを解析し、少なくとも１つの単語に分割する。
【００１６】
クエリ変換部３４は、クエリ解析部３２によって分割された単語の各々を特徴ベクトルに変換する。クエリ変換部３４は、分割された単語の各々を、例えば、ｗｏｒｄ２ｖｅｃと称されているツール（プログラム）を利用して、特徴ベクトルに変換する。ｗｏｒｄ２ｖｅｃとは、ニューラルネットワークを利用したツールであり、入力されたコーパスに含まれるテキスト情報を、そのテキスト情報の特徴を示す特徴ベクトルに変換して出力する。本実施形態では、ｗｏｒｄ２ｖｅｃにおいて、クエリの分散表現が事前に学習されているものとする。
【００１７】
カテゴリ推定部３６は、クエリ変換部３４から入力された少なくとも１つの特徴ベクトルと関連付けされるカテゴリを推定する。カテゴリ推定部３６は、例えば、再帰型ニューラルネットワーク（ＲＮＮ：Recurrent Neural Networks）に基づくエンコーダデコーダモデルを用いて、カテゴリを推定する。以下においては、カテゴリ推定部３６が、エンコーダデコーダモデルを用いる例について説明する。
【００１８】
カテゴリ推定部３６は、例えば、エンコーダ４２と、デコーダ４４とを備える。エンコーダ４２およびデコーダ４４は、検索に用いられたクエリに含まれる「単語の特徴ベクトル」と、クエリを応じて提供された検索結果ページにおいてユーザが選択した「カテゴリ」との組を学習データとして、学習処理を行う。
【００１９】
エンコーダ４２は、上述の学習データを用いて学習を行ったモデル（以下、「エンコードモデル」を用いて、クエリ変換部３４から入力された少なくとも１つの特徴ベクトルに対してエンコード処理を行う。エンコーダ４２は、クエリ変換部３４から２以上の特徴ベクトルが入力された場合、第１の特徴ベクトルに対してエンコード処理を行い、次に、第１の特徴ベクトルのエンコード処理結果と、第２の特徴ベクトルとを用いてエンコード処理を行う。エンコーダ４２は、エンコード処理を繰り返すことにより得られたエンコード処理結果をデコーダ４４に入力する。
【００２０】
デコーダ４４は、上述の学習データを用いて学習を行ったモデル（以下、「デコードモデル」を用いて、エンコーダ４２から入力されたエンコード処理結果に基づいて、クエリの単語に関連付けされるべきカテゴリを推定して出力する。カテゴリは、例えば、ツリー構造を有しており、商品またはサービスが属する分野を階層状に定義する。図２は、カテゴリのツリー構造の一例を示す図である。図２に示す例では、第１階層Ｈ１として「メンズファッション」、「レディースファッション」等が定義されている。また、「メンズファッション（第１階層Ｈ１）」の下位の第２階層Ｈ２として、「メンズシューズ」、「メンズバック」等が定義されている。また、「メンズシューズ（第２階層Ｈ２）」の下位の第３階層Ｈ３として、「スニーカー」、「ビジネスシューズ」、「サンダル」、「ブーツ」等が定義されている。
【００２１】
デコーダ４４は、エンコーダ４２から入力されるエンコード処理結果（多次元ベクトル）と、図２に示すようなカテゴリのツリー構造との関係を学習する。デコーダ４４は、エンコード処理結果に基づいて、クエリの単語に関連付けされるべきカテゴリを推定し、カテゴリのツリー構造における上位の階層から順に出力する。
【００２２】
検索結果生成部３８は、カテゴリ推定部３６によって推定されたカテゴリに基づいて、検索結果である検索結果ページを生成する。検索結果生成部３８は、生成した検索結果ページを、通信部３０を介して、端末装置Ｔに送信する。
【００２３】
検索サーバ１０の各機能部は、例えば、コンピュータにおいて、ＣＰＵ（Central Processing Unit）等のハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。また、これらの構成要素のうち一部または全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、ＧＰＵ（Graphics Processing Unit）等のハードウェア（回路部；circuitryを含む）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【００２４】
記憶部４０は、クエリと、このクエリと関連付けされたサイトのページを参照するための参照情報とを関連付けた検索データＤ１、カテゴリのツリー構造を示すカテゴリデータＤ２等を記憶する。記憶部４０は、例えば、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置等により実現される。また、記憶部４０の一部または全部は、ＮＡＳや外部のストレージサーバ等、検索サーバ１０がアクセス可能な外部装置であってもよい。
【００２５】
＜１−２．学習処理＞
以下において、検索サーバ１０の学習処理について説明する。図３は、検索サーバ１０の学習処理の流れの一例を示す図である。カテゴリ推定部３６は、クエリに含まれる単語の特徴ベクトルと、このクエリと関連付けされるカテゴリとの関係を学習する。
【００２６】
まず、検索サーバ１０のカテゴリ推定部３６に、学習データを入力する（Ｓ１０１）。学習データとしては、例えば、検索サービスが利用された際のログデータを利用する。学習データとしては、例えば、検索に用いられたクエリに含まれる「単語の特徴ベクトル」と、クエリを応じて提供された検索結果ページにおいてユーザが選択した「カテゴリ」との組を利用する。
【００２７】
次に、カテゴリ推定部３６のエンコーダ４２が「クエリに含まれる単語の特徴ベクトル」をエンコードし（Ｓ１０３）、デコーダ４４が、エンコーダ４２によるエンコード処理結果をデコードした際に（Ｓ１０５）、このクエリと組となる「カテゴリ」が出力されるように、このエンコーダモデルおよびデコーダモデルにおけるパラメータを調整する（Ｓ１０７）。
【００２８】
デコーダ４４は、例えば、このデコード処理の結果として、第１階層として定義されたカテゴリごとに、クエリの単語との関連度合を示すスコアを算出する。デコーダ４４は、学習データにおいてクエリと組となるカテゴリのスコアが高くなるように、デコーダモデルにおけるパラメータを調整する。カテゴリ推定部３６は、例えば、逆伝播法により、パラメータの調整を行ってよい。第２階層以下の階層についても、同様な処理を行う。以上により、本フローチャートの処理を終了する。
【００２９】
尚、ログデータにおいて、あるクエリに対して複数存在するカテゴリのデータのうち、クリック数の少ないカテゴリのデータ（クリック数（選択された回数）が所定の閾値以下であるデータ）を除外し、除外後のログデータを学習データとするようにしてもよい。これにより、エンコーダモデルおよびデコーダモデルの精度を向上させることができる。
【００３０】
＜１−３．カテゴリ推定処理＞
以下において、検索サーバ１０のカテゴリ推定処理について説明する。図４は、検索サーバ１０のカテゴリ推定処理の流れの一例を示す図である。
【００３１】
まず、クエリ解析部３２は、通信部３０を介して、端末装置Ｔから入力されたクエリを取得する（Ｓ２０１）。次に、クエリ解析部３２は、端末装置Ｔから入力されたクエリを解析して、単語レベルに分割する（Ｓ２０３）。クエリ解析部３２は、例えば、形態素解析によってクエリを解析し、単語レベルに分割する。
【００３２】
次に、クエリ変換部３４は、クエリ解析部３２によって分割された単語の各々を特徴ベクトルに変換する（Ｓ２０５）。クエリ変換部３４は、分割された単語の各々を、例えば、ｗｏｒｄ２ｖｅｃを利用して、特徴ベクトルに変換する。
【００３３】
次に、エンコーダ４２は、クエリ変換部３４によって変換された特徴ベクトルのうち、第１の単語の特徴ベクトルに対してエンコード処理を行う（Ｓ２０７）。次に、エンコーダ４２は、全ての単語の特徴ベクトルに対するエンコード処理が完了したか否かを判定する（Ｓ２０９）。
【００３４】
エンコーダ４２は、全ての単語の特徴ベクトルに対するエンコード処理が完了していないと判定した場合、クエリ変換部３４によって変換された特徴ベクトルのうち、第２の単語の特徴ベクトルと、第１の単語の特徴ベクトルに対するエンコード処理結果とを用いて、再度、エンコード処理を行う（Ｓ２０７）。次に、エンコーダ４２は、全ての単語の特徴ベクトルに対するエンコード処理が完了したか否かを判定する（Ｓ２０９）。以下、全ての単語の特徴ベクトルに対するエンコード処理が完了するまで、同様な処理を繰り返す。エンコーダ４２は、全ての単語の特徴ベクトルに対するエンコード処理が完了したと判定した場合、上述のエンコード処理を繰り返した結果として得られたエンコード処理結果をデコーダ４４に入力する。
【００３５】
次に、デコーダ４４は、エンコーダ４２から入力されたエンコード処理結果に対して、デコード処理を行う（Ｓ２１１）。デコーダ４４は、このデコード処理の結果として、第１階層として定義されたカテゴリごとに、クエリの単語との関連度合を示すスコアを算出する。例えば、最も高いスコアのカテゴリが、クエリと関連付けされるカテゴリとして推定される。
【００３６】
次に、デコーダ４４は、最下層のカテゴリの推定が完了したか否かを判定する（Ｓ２１３）。デコーダ４４は、最下層のカテゴリの推定が完了していないと判定した場合、推定されたカテゴリの情報と、デコード処理結果とを用いて、再度、デコード処理を行う（Ｓ２１１）。次に、エンコーダ４２は、最下層のカテゴリの推定が完了したか否かを判定する（Ｓ２１３）。以下、最下層のカテゴリの推定が完了するまで、同様な処理を繰り返す。デコーダ４４は、最下層のカテゴリの推定が完了したと判定した場合、推定したカテゴリの情報を検索結果生成部３８に入力する。
【００３７】
図５は、カテゴリ推定部３６におけるカテゴリ推定処理を模式的に示す図である。図５に示す例では、クエリ解析部３２は、端末装置Ｔから入力されたクエリ「メンズ  スニーカー  Ａ社」を、「メンズ」、「スニーカー」、および「Ａ社」という３単語に分割し、クエリ変換部３４が、これらの３つの単語の各々を特徴ベクトルに変換して、カテゴリ推定部３６に入力する例を示す。
【００３８】
まず、エンコーダ４２は、第１の単語「メンズ」の特徴ベクトルに対してエンコード処理を行い、第１のエンコード処理結果Ｒ１を得る。次に、エンコーダ４２は、第２の単語「スニーカー」の特徴ベクトルと、第１のエンコード処理結果Ｒ１とを用いてエンコード処理を行い、第２のエンコード処理結果Ｒ２を得る。次に、エンコーダ４２は、第３の単語「Ａ社」の特徴ベクトルと、第２のエンコード処理結果Ｒ２とを用いてエンコード処理を行い、第３のエンコード処理結果Ｒ３を得る。エンコーダ４２は、第３のエンコード処理結果Ｒ３をデコーダ４４に入力する。
【００３９】
次に、デコーダ４４は、エンコーダ４２から入力された第３のエンコード処理結果Ｒ３に対してデコード処理を行う。ここで、デコーダ４４は、最上位層（第１階層Ｈ１）のカテゴリごとに、「メンズ」、「スニーカー」、および「Ａ社」という３単語との関連度合を示すスコアを算出する。デコーダ４４は、カテゴリごとに算出したスコアの内、最も高いスコアを示すカテゴリを、「メンズ」、「スニーカー」、および「Ａ社」という３単語と関連付けされる第１のカテゴリ（この例では「メンズファッション」）と推定する。
【００４０】
次に、デコーダ４４は、第３のエンコード処理結果Ｒ３に対するデコード処理結果（第１のデコード処理結果Ｒ４）と、推定されたカテゴリ「メンズファッション」を示すデータとを用いてデコード処理を行う。ここで、デコーダ４４は、推定されたカテゴリ「メンズファッション（第１階層）」の下位に位置する第２階層Ｈ２のカテゴリごとに、「メンズ」、「スニーカー」、および「Ａ社」という３単語との関連度合を示すスコアを算出する。デコーダ４４は、カテゴリごとに算出したスコアの内、最も高いスコアを示すカテゴリを、「メンズ」、「スニーカー」、および「Ａ社」という３単語と関連付けされる第２のカテゴリ（この例では「メンズシューズ」）と推定する。
【００４１】
次に、デコーダ４４は、第１のデコード処理結果Ｒ４に対するデコード処理結果（第２のデコード処理結果Ｒ５）と、推定されたカテゴリ「メンズシューズ」を示すデータとを用いてデコード処理を行う。ここで、デコーダ４４は、推定されたカテゴリ「メンズシューズ（第２階層）」の下位に位置する第３階層Ｈ３のカテゴリごとに、「メンズ」、「スニーカー」、および「Ａ社」という３単語との関連度合を示すスコアを算出する。デコーダ４４は、カテゴリごとに算出したスコアの内、最も高いスコアを示すカテゴリを、「メンズ」、「スニーカー」、および「Ａ社」という３単語と関連付けされる第３のカテゴリ（この例では「スニーカー」）と推定する。
【００４２】
図５に示す以上の処理により、「メンズ」、「スニーカー」、および「Ａ社」という３単語と関連付けされるカテゴリとして、「メンズファッション（第１階層）」、「メンズシューズ（第２階層）」、および「スニーカー（第３階層）」というカテゴリの推定結果が得られる。
【００４３】
次に、検索結果生成部３８は、デコーダ４４から入力されたカテゴリの推定結果に基づいて、検索結果である検索結果ページを生成し、端末装置Ｔに送信する（Ｓ２１５）。図６は、検索結果ページＰ１の一例を示す図である。図６に示す例において、検索結果生成部３８は、推定された第３階層のカテゴリである「スニーカー」をページ内の最も視認性の高い位置に配置した検索結果ページＰ１を生成する。
【００４４】
尚、図６に示す例では、推定されたカテゴリである「スニーカー」に加え、推定された第２階層のカテゴリである「メンズシューズ（第２階層）」の下位のその他のカテゴリである「ブーツ」、「サンダル」、「ビジネスシューズ」等が、例えば、スコアが高い順に並べられて表示されている。検索結果生成部３８は、生成した検索結果ページＰ１を、通信部３０を介して、端末装置Ｔに送信する。端末装置Ｔのユーザは、端末装置Ｔを操作して検索結果ページＰ１に含まれる１つのカテゴリを選択することで、ユーザの意図に応じた検索結果を取得することができる。以上により、本フローチャートの処理を終了する。
【００４５】
尚、図６に示す例では、推定されたカテゴリをユーザに選択させる検索結果ページＰ１を端末装置Ｔに送信する例を説明した。しかしながら、検索結果生成部３８は、推定されたカテゴリをユーザに選択させる検索結果ページＰ１に代えて、推定されたカテゴリに関連する商品またはサービスのページを端末装置Ｔに送信するようにしてもよい。
【００４６】
＜１−３．評価実験＞
本実施形態における検索サーバ１０のカテゴリ推定精度を評価するために、図７に示すような３つのモデルを用いた評価実験を行った。モデル１は、本実施形態の検索サーバ１０で使用するエンコーダデコーダモデルである。モデル２は、従来技術の線形分類器を用いた線形モデルである。モデル３は、従来技術のログに基づく（実績ベース）モデルである。このモデル３では、検索ログにおいてクリック数の多いカテゴリが選択される。この評価実験では、検索に実際に利用されたに応じて提供された検索結果ページにおいてユーザがクリックしたカテゴリのうち、クリック数が最も多いカテゴリを「正解カテゴリ」とした。この評価実験では、各モデルを利用したカテゴリ推定処理を行う検索サーバ１０に対して、検索に実際に利用されたクエリを入力し、検索サーバ１０によって推定されたカテゴリと、正解カテゴリとの一致率を算出した。
【００４７】
図８は、上述の評価実験の結果を示す図である。図８に示すように、第１階層のカテゴリ、第２階層のカテゴリ、および第３階層のカテゴリのいずれにおいても、モデル３（ログモデル）を用いた推定結果の一致率が最も高く、次に、モデル１（エンコーダデコーダモデル）を用いた推定結果の一致率が高く、モデル２（線形モデル）を用いた推定結果の一致率が最も低かった。
【００４８】
また、図９は、評価実験のクリック数別での一致率の比較結果を示す図である。図９に示すように、いずれのクリック数においても、モデル３を用いた推定結果の一致率が最も高く、次に、モデル１を用いた推定結果の一致率が高く、モデル２を用いた推定結果の一致率が最も低かった。クリック数が少ない場合においても（いわゆるテールクエリにおいても）、モデル３を用いた推定結果の一致率が最も高いことが分かった。
【００４９】
この評価実験に使用したモデル１では、クリック頻度を考慮していないため、クリック数が多いカテゴリも、クリック数が少ないカテゴリも同じように処理されるため、学習データに含まれるノイズに弱いことが想定される。
【００５０】
また、モデル１を用いて推定されたカテゴリは、検索ログにおける正解カテゴリとは異なっていたものの、正しい推定処理が行われていると判断されてよいものも含まれていた。図１０は、モデル１を用いて推定されたカテゴリの一例を示す図である。図１０に示すように、例えば、「新婚  プレゼント」というクエリに対して、モデル１を用いて推定されたカテゴリはキッチン用品に関連するカテゴリであったのに対して、正解カテゴリはゲームに関連するカテゴリであった。これはクエリの多義性に起因するものであり、このようなモデル１の推定結果は正しいと判断してもよいと考えらえる。
【００５１】
また、例えば、「大きい  財布  通帳  入る」というクエリに対して、モデル１を用いて推定されたカテゴリはレディースファッションに関連するカテゴリであったのに対して、正解カテゴリはメンズファッションに関連するカテゴリであった。これは、商品に関連するカテゴリが重複して存在することに起因するものであり、このようなモデル１の推定結果は正しいと判断してもよいと考えらえる。
【００５２】
また、例えば、「携帯  電話  かわいい  ストラップ」というクエリに対して、モデル１を用いて推定されたカテゴリはスマートフォンに関連するカテゴリであったのに対して、正解カテゴリはレディースファッションに関連するカテゴリであった。これは、クエリに対するカテゴリ選択の困難性に起因するものであり、このようなモデル１の推定結果は正しいと判断してもよいと考えらえる。
【００５３】
その他、モデル１の推定処理が正解ではないと判断されなかった例として、クエリ解析部３２によるクエリに対する形態素解析が適切でなかった場合や、クエリに含まれる特定の単語がカテゴリ推定に大きな影響を及ぼしその他の単語との関連が適切に評価されなかった場合等があった。
【００５４】
上述のような、モデル１を用いて推定されたカテゴリに関して、検索ログにおける「正解カテゴリ」とは異なっていたものの、正しい推定処理が行われていると判断してよいものを考慮すると、モデル１における第１階層のカテゴリの一致率は、０．９２３８（９２．３８［％］）となった。この点を考慮すると、本実施形態の検索サーバ１０におけるエンコーダデコーダモデルを用いたカテゴリ推定の精度は高いと判断できる。
【００５５】
また、モデル３を用いた推定処理における、クエリに対する検索ログのカバレッジは、全体で０．３６７１であった。このため、モデル３を用いた場合、クエリが検索ログに存在していないと適切なカテゴリの推定が行えない場合がある。一方、モデル１を用いた推定では、クエリが検索ログに存在しない場合であっても、適切にカテゴリの推定を行うことができる。例えば、「メンズ、スニーカー、Ｂ社」というクエリの学習が行われていない場合であっても、「メンズ、スニーカー、Ａ社」というクエリの学習が行われおり、かつ、「Ｂ社」と「Ａ社」とがベクトル表現上で近い単語であるという学習が行われていれば、「メンズ、スニーカー、Ｂ社」に対するカテゴリを適切に推定することが可能である。
【００５６】
以上において説明した本実施形態の検索サーバ１０によれば、クエリと関連付けされるカテゴリを適切に推定でき、さらには、検索精度を向上させることができる。また、本実施形態の検索サーバ１０によれば、過去に検索に用いられたことのない未知のクエリが入力された場合であっても適切にカテゴリの推定を行うことができる。
【００５７】
尚、エンコーダ４２のエンコード処理結果に基づいて、検索サーバ１０に対する端末装置Ｔを操作するユーザからのアクセスの一まとまりのセッションの切れ目を判定する判定部さらに設けてもよい。例えば、エンコード処理結果が示すベクトルのベクトル座標空間上の位置が大きく変化した場合に、ユーザからのアクセスのセッションが切り替わったと判定するようにしてよい。
【００５８】
＜２．第２実施形態＞
以下、本発明の第２実施形態について説明する。本実施形態の情報処理装置（検索サーバ）は、第１実施形態と比較して、エンコーダデコーダモデルに基づくカテゴリ推定処理と、ログデータに基づくカテゴリ推定処理との両方を行う点が異なる。このため、構成などについては第１実施形態で説明した図および関連する記載を援用し、詳細な説明を省略する。
【００５９】
＜２−１．システム構成＞
図１１は、本実施形態の検索サーバ１１の機能ブロック図である。検索サーバ１１は、第１実施形態の検索サーバ１０の構成要素に加えて、例えば、クエリ判定部４６と、第２カテゴリ推定部４８（第２推定部）とをさらに備える。
【００６０】
クエリ判定部４６は、記憶部４０に記憶された検索ログを参照し、端末装置Ｔから入力されたクエリが、過去の検索ログに存在しているか否かを判定する。検索サーバ１１では、クエリ判定部４６が端末装置Ｔから入力されたクエリが過去の検索ログに存在していないと判定した場合、第１実施形態と同様なエンコーダデコーダモデルに基づくカテゴリ推定処理を行う。一方、検索サーバ１１では、クエリ判定部４６が端末装置Ｔから入力されたクエリが過去の検索ログに存在していると判定した場合、ログデータに基づくカテゴリ推定処理を行う。
【００６１】
第２カテゴリ推定部４８は、例えば、記憶部４０に記憶された検索ログデータＤ３を参照し、カテゴリを推定する。第２カテゴリ推定部４８は、例えば、記憶部４０に記憶された検索ログデータＤ３において、クリック数が最も多いカテゴリを選択する。図１２は、検索ログデータＤ３の一例を示す図である。図１２において、クエリが「レディース  Ｂ社」の場合、第１階層のカテゴリ１が「レディースファッション」であり、第２階層のカテゴリ２が「財布・小物」であり、第３階層のカテゴリ３が「財布」であるカテゴリのクリック数（２５６９９９）が最も多い。このため、クエリが「レディース  Ｂ社」の場合、第２カテゴリ推定部４８は、このクエリに関連付けされるカテゴリとして、第１階層のカテゴリ１が「レディースファッション」であり、第２階層のカテゴリ２が「財布・小物」であり、第３階層のカテゴリ３が「財布」を推定する。
【００６２】
＜２−２．カテゴリ推定処理＞
以下において、検索サーバ１１のカテゴリ推定処理について説明する。図１３は、検索サーバ１１のカテゴリ推定処理の流れの一例を示す図である。
【００６３】
まず、クエリ解析部３２は、通信部３０を介して、端末装置Ｔから入力されたクエリを取得する（Ｓ３０１）。次に、クエリ判定部４６は、記憶部４０に記憶された検索ログを参照し、端末装置Ｔから入力されたクエリが、過去の検索ログに存在しているか否かを判定する（Ｓ３０３）。
【００６４】
クエリ判定部４６が端末装置Ｔから入力されたクエリが過去の検索ログに存在していると判定した場合、第２カテゴリ推定部４８は、記憶部４０に記憶された検索ログデータＤ３を参照し、カテゴリを推定する（Ｓ３０５）。第２カテゴリ推定部４８は、推定したカテゴリの情報を検索結果生成部３８に入力する。
【００６５】
一方、クエリ判定部４６が端末装置Ｔから入力されたクエリが過去の検索ログに存在しないと判定した場合、クエリ解析部３２は、端末装置Ｔから入力されたクエリを解析して、単語レベルに分割する（Ｓ３０７）。次に、クエリ変換部３４は、クエリ解析部３２によって分割された単語の各々を特徴ベクトルに変換する（Ｓ３０９）。
【００６６】
次に、エンコーダ４２は、クエリ変換部３４によって変換された特徴ベクトルのうち、第１の単語の特徴ベクトルに対してエンコード処理を行う（Ｓ３１１）。次に、エンコーダ４２は、全ての単語の特徴ベクトルに対するエンコード処理が完了したか否かを判定する（Ｓ３１３）。
【００６７】
エンコーダ４２は、全ての単語の特徴ベクトルに対するエンコード処理が完了していないと判定した場合、クエリ変換部３４によって変換された特徴ベクトルのうち、第２の単語の特徴ベクトルと、第１の単語の特徴ベクトルに対するエンコード処理結果とを用いて、再度、エンコード処理を行う（Ｓ３１１）。次に、エンコーダ４２は、全ての単語の特徴ベクトルに対するエンコード処理が完了したか否かを判定する（Ｓ３１３）。以下、全ての単語の特徴ベクトルに対するエンコード処理が完了するまで、同様な処理を繰り返す。エンコーダ４２は、全ての単語の特徴ベクトルに対するエンコード処理が完了したと判定した場合、上述のエンコード処理を繰り返した結果として得られたエンコード処理結果をデコーダ４４に入力する。
【００６８】
次に、デコーダ４４は、エンコーダ４２から入力されたエンコード処理結果に対して、デコード処理を行う（Ｓ３１５）。次に、デコーダ４４は、最下層のカテゴリの推定が完了したか否かを判定する（Ｓ３１７）。デコーダ４４は、最下層のカテゴリの推定が完了していないと判定した場合、推定されたカテゴリの情報と、デコード処理結果とを用いて、再度、デコード処理を行う（Ｓ３１５）。次に、エンコーダ４２は、最下層のカテゴリの推定が完了したか否かを判定する（Ｓ３１７）。以下、最下層のカテゴリの推定が完了するまで、同様な処理を繰り返す。デコーダ４４は、最下層のカテゴリの推定が完了したと判定した場合、推定したカテゴリの情報を検索結果生成部３８に入力する。
【００６９】
次に、検索結果生成部３８は、デコーダ４４または第２カテゴリ推定部４８から入力されたカテゴリの推定結果に基づいて、検索結果である検索結果ページを生成し、端末装置Ｔに送信する（Ｓ３１９）。以上により、本フローチャートの処理を終了する。
【００７０】
以上において説明した本実施形態の検索サーバ１１によれば、クエリと関連付けされるカテゴリを適切に推定でき、さらには、検索精度を向上させることができる。また、本実施形態の検索サーバ１１によれば、端末装置Ｔから入力されたクエリが過去の検索ログに存在していない場合、エンコーダデコーダモデルに基づくカテゴリ推定処理を行い、端末装置Ｔから入力されたクエリが過去の検索ログに存在している場合、ログデータに基づくカテゴリ推定処理を行うことで、カテゴリの推定精度をさらに向上させることができる。
【００７１】
＜３．第３実施形態＞
以下、本発明の第３実施形態について説明する。本実施形態の情報処理装置（検索サーバ）は、第１実施形態と比較して、１つのエンコーダと、複数の推定部（デコーダ）とを備える点が異なる。このため、構成などについては第１実施形態で説明した図および関連する記載を援用し、詳細な説明を省略する。
【００７２】
＜３−１．システム構成＞
図１４は、本実施形態の検索サーバ１２の機能ブロック図である。検索サーバ１２は、第１実施形態の検索サーバ１０のカテゴリ推定部３６に代えて、例えば、１つのエンコーダ５０と、３つの推定部（カテゴリ推定部５２、価格帯推定部５４、ブランド推定部５６）とを備える。
【００７３】
エンコーダ５０は、学習データを用いてエンコードモデルを用いて、クエリ変換部３４から入力された少なくとも１つの特徴ベクトルに対してエンコード処理を行う。エンコーダ５０は、クエリ変換部３４から２以上の特徴ベクトルが入力された場合、１つ目の特徴ベクトルに対してエンコード処理を行い、次に、１つ目の特徴ベクトルのエンコード処理結果と、２つ目の特徴ベクトルとを用いてエンコード処理を行う。エンコーダ４２は、エンコード処理を繰り返すことにより得られたエンコード処理結果を、カテゴリ推定部５２、価格帯推定部５４、およびブランド推定部５６に入力する。
【００７４】
カテゴリ推定部５２は、学習データを用いて学習を行ったデコードモデルを用いて、エンコーダ５０から入力されたエンコード処理結果に対してデコード処理を行い、クエリの単語に関連付けされるべきカテゴリを推定して検索結果生成部３８に入力する。
【００７５】
価格帯推定部５４は、学習データを用いて学習を行ったデコードモデルを用いて、エンコーダ５０から入力されたエンコード処理結果に対してデコード処理を行い、クエリの単語に関連付けされるべき商品またはサービスの価格帯を推定して検索結果生成部３８に入力する。価格帯推定部５４の学習データは、例えば、検索に用いられたクエリに含まれる「単語の特徴ベクトル」と、クエリを応じて提供された検索結果ページにおいてユーザが選択した「商品またはサービスの価格」との組を利用する。
【００７６】
ブランド推定部５６は、学習データを用いて学習を行ったデコードモデルを用いて、エンコーダ５０から入力されたエンコード処理結果に対してデコード処理を行い、クエリの単語に関連付けされるべき商品またはサービスのブランドを推定して検索結果生成部３８に入力する。ブランド推定部５６の学習データは、例えば、検索に用いられたクエリに含まれる「単語の特徴ベクトル」と、クエリを応じて提供された検索結果ページにおいてユーザが選択した「商品またはサービスのブランド」との組を利用する。
【００７７】
検索結果生成部３８は、カテゴリ推定部５２から入力されたカテゴリの推定結果、価格帯推定部５４から入力された価格帯の推定結果、およびブランド推定部５６から入力されたブランドの推定結果に基づいて、検索結果である検索結果ページを生成し、端末装置Ｔに送信する。
【００７８】
以上において説明した本実施形態の検索サーバ１２によれば、クエリと関連付けされるカテゴリを適切に推定でき、さらには、検索精度を向上させることができる。また、本実施形態の検索サーバ１２によれば、カテゴリ推定部５２から入力されたカテゴリの推定結果、価格帯推定部５４から入力された価格帯の推定結果、およびブランド推定部５６から入力されたブランドの推定結果に基づいて、検索結果である検索結果ページを生成するため、さらにユーザの意図に応じた検索結果ページを提供することができる。
【００７９】
尚、カテゴリ推定部５２、価格帯推定部５４、およびブランド推定部５６に加えてあるいは代えて、他の特徴を推定する推定部を設けてもよい。
【００８０】
以上において説明した実施形態によれば、検索に用いられたクエリを解析して、前記クエリを単語に分割する解析部と、前記解析部によって分割された単語を特徴ベクトルに変換する変換部と、学習データにおけるクエリに含まれる単語の特徴ベクトルと、前記学習データにおけるクエリに関連付けされたカテゴリとの関係を学習することにより、前記検索に用いられたクエリと関連付けされるカテゴリを推定する第１推定部とを備えることで、検索精度を向上させることができる。
【００８１】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００８２】
１０、１１、１２…検索サーバ（情報処理装置）
３０…通信部
３２…クエリ解析部（解析部）
３４…クエリ変換部（変換部）
３６…カテゴリ推定部（第１推定部、学習部）
３８…検索結果生成部（生成部）
４０…記憶部
４２…エンコーダ
４４…デコーダ
４６…クエリ判定部（判定部）
４８…第２カテゴリ推定部（第２推定部）
５０…エンコーダ
５２…カテゴリ推定部
５４…価格帯推定部
５６…ブランド推定部
【図１】
2019053386.tif 000003
【図２】
2019053386.tif 000004
【図３】
2019053386.tif 000005
【図４】
2019053386.tif 000006
【図５】
2019053386.tif 000007
【図６】
2019053386.tif 000008
【図７】
2019053386.tif 000009
【図８】
2019053386.tif 000010
【図９】
2019053386.tif 000011
【図１０】
2019053386.tif 000012
【図１１】
2019053386.tif 000013
【図１２】
2019053386.tif 000014
【図１３】
2019053386.tif 000015
【図１４】
2019053386.tif 000016