(57)【特許請求の範囲】
【請求項１】
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして前記複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから前記所定の検索クエリが属するカテゴリを予測する前記第２学習モデルを取得する取得部と、
前記取得部によって取得された第２学習モデルを用いて、検索クエリとして入力された文字列によって示される対象が属するカテゴリを推定する推定部と、
前記推定部によって推定されたカテゴリに基づいて、前記文字列の中から、前記カテゴリに対応する対象分野に属する抽出対象を示す対象文字列を抽出する抽出部
を備えることを特徴とする情報処理装置。
【請求項２】
前記推定部は、
前記文字列によって示される対象が属する複数のカテゴリを推定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記推定部は、
前記文字列によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記抽出部は、
前記推定部によって推定されたカテゴリの中に、前記対象分野を示すカテゴリを含む文字列を前記対象文字列として抽出する
ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記抽出部は、
前記推定部によって推定されたカテゴリの中に、不要なカテゴリとして登録された不要カテゴリを含まない文字列を前記対象文字列として抽出する
ことを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
前記対象分野に関するサイトに流入した流入検索クエリを取得し、前記流入検索クエリとして入力された文字列から、不要な文字列として登録された不要文字列を取り除いた第１文字列を取得する処理部をさらに備え、
前記推定部は、
前記処理部によって取得された第１文字列によって示される対象が属するカテゴリを推定する
ことを特徴とする請求項１〜５のいずれか一つに記載の情報処理装置。
【請求項７】
前記取得部は、
同一のユーザによって所定の時間内に入力された一対の検索クエリの分散表現が類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから前記所定の検索クエリが属するカテゴリを予測する前記第２学習モデルを取得する
ことを特徴とする請求項１〜６のいずれか一つに記載の情報処理装置。
【請求項８】
前記取得部は、
同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、前記複数の検索クエリが類似する特徴を有するものとして、前記複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから前記所定の検索クエリが属するカテゴリを予測する前記第２学習モデルを取得する
ことを特徴とする請求項１〜７のいずれか一つに記載の情報処理装置。
【請求項９】
前記取得部は、
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして前記複数の検索クエリが有する特徴を学習した第１学習モデルであって、ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、前記複数の検索クエリが有する特徴を学習した前記第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから前記所定の検索クエリが属するカテゴリを予測する前記第２学習モデルを取得する
ことを特徴とする請求項１〜８のいずれか一つに記載の情報処理装置。
【請求項１０】
前記取得部は、
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして前記複数の検索クエリが有する特徴を学習した第１学習モデルであって、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、前記複数の検索クエリが有する特徴を学習した前記第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから前記所定の検索クエリが属するカテゴリを予測する前記第２学習モデルを取得する
ことを特徴とする請求項１〜９のいずれか一つに記載の情報処理装置。
【請求項１１】
前記取得部は、
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして前記複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、検索クエリが前記第２学習モデルに入力された際に、前記第２学習モデルが出力する分散表現の分類結果が、前記検索クエリが属するカテゴリに対応するように学習することで、所定の検索クエリから前記所定の検索クエリが属するカテゴリを予測する前記第２学習モデルを取得する
ことを特徴とする請求項１〜１０のいずれか一つに記載の情報処理装置。
【請求項１２】
前記取得部は、
入力情報として所定の検索クエリが入力された際に、出力情報として前記所定の検索クエリの分散表現を出力する前記第１学習モデルを用いて生成された前記第２学習モデルを取得する
ことを特徴とする請求項１〜１１のいずれか一つに記載の情報処理装置。
【請求項１３】
前記取得部は、
入力情報として検索クエリが前記第２学習モデルに入力された際に、出力情報として前記検索クエリが前記カテゴリに属する確率をカテゴリ毎に出力する前記第２学習モデルを取得する
ことを特徴とする請求項１〜１２のいずれか一つに記載の情報処理装置。
【請求項１４】
コンピュータが実行する情報処理方法であって、
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして前記複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから前記所定の検索クエリが属するカテゴリを予測する前記第２学習モデルを取得する取得工程と、
前記取得工程によって取得された第２学習モデルを用いて、検索クエリとして入力された文字列によって示される対象が属するカテゴリを推定する推定工程と、
前記推定工程によって推定されたカテゴリに基づいて、前記文字列の中から、前記カテゴリに対応する対象分野に属する抽出対象を示す対象文字列を抽出する抽出工程
を含むことを特徴とする情報処理方法。
【請求項１５】
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして前記複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから前記所定の検索クエリが属するカテゴリを予測する前記第２学習モデルを取得する取得手順と、
前記取得手順によって取得された第２学習モデルを用いて、検索クエリとして入力された文字列によって示される対象が属するカテゴリを推定する推定手順と、
前記推定手順によって推定されたカテゴリに基づいて、前記文字列の中から、前記カテゴリに対応する対象分野に属する抽出対象を示す対象文字列を抽出する抽出手順
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
近年、インターネットの飛躍的な普及に伴い、インターネット上の種々の情報を用いた分析に関する技術が提供されている。例えば、検索クエリの分析に基づいて、所定の分野におけるトレンドを予測する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１５−５３４１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、所定のカテゴリに属する対象を示す文字列を適切に抽出することができるとは限らない。例えば、上記の従来技術では、所定のカテゴリにおけるイノベータを特定し、特定したイノベータによって検索された検索クエリに基づいて、所定のカテゴリにおけるトレンドを予測するに過ぎず、所定のカテゴリに属する対象を示す文字列を適切に抽出することができるとは限らない。例えば、上記の従来技術では、検索クエリとして入力された文字列が、世の中に登場したばかりの新しい用語である場合には、その用語が示す対象を特定することは困難である。例えば、新しい用語の意味を辞書等で調べようとしても、まだその用語が辞書等に掲載されていない場合がある。このような場合、新しい用語によって示される対象を特定することは困難なため、新しい用語によって示される対象が属するカテゴリを特定することも困難である。
【０００５】
本願は、上記に鑑みてなされたものであって、所定のカテゴリに属する対象を示す文字列を適切に抽出することができる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願に係る情報処理装置は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして前記複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから前記所定の検索クエリが属するカテゴリを予測する前記第２学習モデルを取得する取得部と、前記取得部によって取得された第２学習モデルを用いて、検索クエリとして入力された文字列によって示される対象が属するカテゴリを推定する推定部と、前記推定部によって推定されたカテゴリに基づいて、前記文字列の中から、対象分野に属する抽出対象を示す対象文字列を抽出する抽出部を備えたことを特徴とする。
【発明の効果】
【０００７】
実施形態の一態様によれば、所定のカテゴリに属する対象を示す文字列を適切に抽出することができるといった効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る情報処理の一例を示す図である。
【図２】図２は、実施形態に係る情報処理システムの構成例を示す図である。
【図３】図３は、実施形態に係る情報処理装置の構成例を示す図である。
【図４】図４は、実施形態に係るクエリ情報記憶部の一例を示す図である。
【図５】図５は、実施形態に係る不要文字列記憶部の一例を示す図である。
【図６】図６は、実施形態に係る不要カテゴリ記憶部の一例を示す図である。
【図７】図７は、実施形態に係るモデル情報記憶部の一例を示す図である。
【図８】図８は、実施形態に係る情報処理の一例を示す図である。
【図９】図９は、実施形態に係る情報処理手順を示すフローチャートである。
【図１０】図１０は、実施形態に係る第１学習モデルの生成処理の一例を示す図である。
【図１１】図１１は、実施形態に係る第１学習モデルの生成処理の一例を示す図である。
【図１２】図１２は、実施形態に係る第２学習モデルの生成処理の一例を示す図である。
【図１３】図１３は、実施形態に係る生成装置の構成例を示す図である。
【図１４】図１４は、実施形態に係るクエリ情報記憶部の一例を示す図である。
【図１５】図１５は、実施形態に係るベクトル情報記憶部の一例を示す図である。
【図１６】図１６は、実施形態に係る分類定義記憶部の一例を示す図である。
【図１７】図１７は、実施形態に係るカテゴリ情報記憶部の一例を示す図である。
【図１８】図１８は、実施形態に係るモデル情報記憶部の一例を示す図である。
【図１９】図１９は、実施形態に係る第１学習モデルの一例を示す図である。
【図２０】図２０は、実施形態に係る第２学習モデルの一例を示す図である。
【図２１】図２１は、実施形態に係る第１学習モデルの生成処理手順を示すフローチャートである。
【図２２】図２２は、実施形態に係る第２学習モデルの生成処理手順を示すフローチャートである。
【図２３】図２３は、プログラムを実行するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【００１０】
〔１．実施形態〕
〔１−１．情報処理の一例〕
まず、図１を用いて、実施形態に係る情報処理の一例について説明する。図１は、実施形態に係る情報処理の一例を示す図である。実施形態に係る情報処理は、図１に示す情報処理装置１００によって行われる。図１に示す例では、情報処理装置１００は、ファッション系サイトに流入した流入検索クエリ群に含まれる雑多な文字列の中から、対象分野であるファッション分野（ファッションに関するカテゴリ）に属する対象を示す文字列を抽出する。
【００１１】
図１の説明に先立って、図２を用いて、実施形態に係る情報処理システムの構成について説明する。図２は、実施形態に係る情報処理システムの構成例を示す図である。図２に示すように、情報処理システム１には、生成装置５０と、情報処理装置１００と、サービスサーバ２００が含まれる。生成装置５０と、情報処理装置１００と、サービスサーバ２００は所定のネットワークＮを介して、有線または無線により通信可能に接続される。なお、図２に示す情報処理システム１には、任意の数の生成装置５０と任意の数の情報処理装置１００と任意の数のサービスサーバ２００が含まれてもよい。
【００１２】
生成装置５０は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを生成する情報処理装置である。なお、生成装置５０による第２学習モデルの生成処理の詳細については後述する。生成装置５０は、情報処理装置１００の要求に応じて、第２学習モデルのモデルデータＭＤＴ２を情報処理装置１００に対して送信する。
【００１３】
情報処理装置１００は、対象分野に属する抽出対象を示す対象文字列を抽出するサーバ装置である。図１に示す例では、情報処理装置１００は、ファッション系サイトに流入した流入検索クエリに含まれる文字列の中から、ファッション分野（以下、ファッションカテゴリともいう）に属する対象を示す文字列を抽出する。
【００１４】
ここで、一般的に、所定期間内に所定のカテゴリに関するサイトに流入した流入検索クエリには、様々な検索クエリが含まれている。具体的には、流入検索クエリの中には、所定のカテゴリに属する対象を示す文字列とは異なる一般的な用語やサイトの名称等が含まれる。このように、流入検索クエリには、所定のカテゴリに属する対象を示す文字列とは異なる文字列が多く含まれているため、これらの文字列を取り除く必要がある。
【００１５】
例えば、ファッション系サイトに流入した流入検索クエリの中には、ファッションカテゴリに属する対象を示す文字列とは異なる文字列として、レディース、人気、コーデ、サイズ、…等の一般的な用語や、流入先のサイトの名称を示す文字列が含まれている。これら一般的な用語や、流入先のサイトの名称を示す文字列については、不要な文字列としてあらかじめ登録しておき、辞書ベースで取り除くことができる。一方、流入検索クエリとして入力された文字列の中に、世の中に登場したばかりの新しい用語（以下、未知用語ともいう）が含まれる場合には、その用語を取り除くことは困難である。例えば、ファッション系サイトに流入した流入検索クエリの中には、ファッションカテゴリに属する対象を示す文字列とは異なる文字列として、人名、ブランド名、店舗名、…等を示す文字列が含まれている。これら人名、ブランド名、店舗名、…等を示す文字列は、新たな人名、新たなブランド名、新たな店舗名、…等が次々と世の中に登場するため、未知用語が多く存在する。したがって、これら人名、ブランド名、店舗名、…等を示す文字列については、あらかじめ全ての文字列を登録しておくことが困難である。したがって、従来は、流入検索クエリの中から、所定のカテゴリに属する対象を示す文字列以外の文字列を取り除くことが困難であった。
【００１６】
また、抽出対象の文字列が未知用語である場合もある。例えば、ファッション系サイトに流入した流入検索クエリの中には、ファッションカテゴリに属する対象を示す文字列であって、世の中に登場したばかりの新しい用語（以下、未知用語ともいう）が含まれる。特に、ファッション分野のように、新しい対象を示す新しい用語が次々に登場する分野においては、抽出対象の文字列が未知用語である場合も珍しくない。そこで、未知用語が抽出対象の文字列であるか否かを判断するために、用語の意味を辞書等で調べる方法が考えられるが、世の中に登場したばかりの未知用語はまだ辞書等に掲載されていない場合がある。このような場合、未知用語によって示される対象を特定することは困難なため、未知用語によって示される対象が属するカテゴリを特定することも困難である。すなわち、従来は、未知用語によって示される対象が属するカテゴリを特定することが困難なため、未知用語を対象分野に属する文字列として抽出することは困難であった。
【００１７】
そこで、本願発明に係る情報処理装置１００は、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを用いて、流入検索クエリとして入力された文字列によって示される対象が属するカテゴリを推定する。これにより、本願発明に係る情報処理装置１００は、流入検索クエリとして入力された文字列が未知用語である場合であっても、未知用語によって示される対象が属するカテゴリを推定することができるため、所定のカテゴリに属する対象を示す文字列を精度よく抽出することができる。具体的には、情報処理装置１００は、未知用語に対して対象分野とは異なる非対象分野を示すカテゴリが推定された場合には、その未知用語が対象カテゴリに属する対象を示す文字列以外の文字列であると推定することができる。よって、情報処理装置１００は、その未知用語を不要文字列として取り除くことができる。一方、情報処理装置１００は、流入検索クエリとして入力された文字列が未知用語である場合であっても、未知用語に対して対象分野を示すカテゴリが推定された場合には、その未知用語を対象分野に属する対象文字列であると推定することができる。よって、情報処理装置１００は、その未知用語を対象文字列として抽出することができる。したがって、本願発明に係る情報処理装置１００は、所定のカテゴリに属する対象を示す文字列を適切に抽出することができる。
【００１８】
サービスサーバ２００は、対象分野に関するサイトを提供するサーバ装置である。具体的には、サービスサーバ２００は、対象分野に関するサイトに流入した流入検索クエリに関する情報を記憶する。図１に示す例では、サービスサーバ２００は、ファッション分野に関するサイトに流入した流入検索クエリに関する情報を記憶する。サービスサーバ２００は、情報処理装置１００の要求に応じて、流入検索クエリに関する情報を情報処理装置１００に対して送信する。なお、サービスサーバ２００は、ファッション分野に限らず、種々の分野に関するサイトを提供してもよい。
【００１９】
ここから、図１を用いて、情報処理の流れについて説明する。図１では、情報処理装置１００は、ファッション系サイトに流入した流入検索クエリに関する情報の取得要求をサービスサーバ２００に対して送信する。サービスサーバ２００は、情報処理装置１００の要求に応じて、流入検索クエリに関する情報を情報処理装置１００に対して送信する。
【００２０】
情報処理装置１００は、サービスサーバ２００からファッション系サイトに流入した流入検索クエリに関する情報を取得する。具体的には、情報処理装置１００は、流入検索クエリとして入力された各文字列を取得する(ステップＳ１)。
【００２１】
図１の左側に示す例では、情報処理装置１００は、流入検索クエリＱ１００として入力された文字列「レディース  未知用語Ｌ１」を取得する。ここで、「未知用語Ｌ１」は、世の中に登場したばかりの新しい用語(例えば、ファッション用語)であって、まだ辞書等に掲載されていない用語であるものとする。
【００２２】
また、情報処理装置１００は、流入検索クエリＱ２００として入力された文字列「未知用語Ｌ１  Ｍサイズ  店舗名Ｔ１」を取得する。なお、「店舗名Ｔ１」は、特定の店舗(例えば、特定のアパレルメーカー)の名称を示す語句であって、例えば、世の中に登場したばかりの新しい店舗名を示す語句であるものとする。
【００２３】
また、情報処理装置１００は、流入検索クエリＱ３００として入力された文字列「Ｙシャツ  ２０代」を取得する。
【００２４】
また、情報処理装置１００は、流入検索クエリＱ４００として入力された文字列「Ｙシャツ  人名Ｍ１」を取得する。なお、「人名Ｍ１」は、特定の人物(例えば、ファッションモデルや芸能人等)の名称を示す語句であって、例えば、世の中に登場したばかりの新しい人名を示す語句であるものとする。
【００２５】
また、情報処理装置１００は、流入検索クエリＱ５００として入力された文字列「未知用語Ｌ２  コーデ」を取得する。ここで、「未知用語Ｌ２」は、「未知用語Ｌ１」と同様、世の中に登場したばかりの新しい用語(例えば、ファッション用語)であって、まだ辞書等に掲載されていない用語であるものとする。
【００２６】
また、情報処理装置１００は、流入検索クエリＱ６００として入力された文字列「未知用語Ｌ２  ブランド名Ｂ１  人気」を取得する。なお、「ブランド名Ｂ１」は、特定のアパラレルブランドの名称を示す語句であって、例えば、世の中に登場したばかりの新しいブランド名を示す語句であるものとする。
【００２７】
続いて、情報処理装置１００は、流入検索クエリ群を取得すると、取得した流入検索クエリ群に含まれる各検索クエリとして入力された各文字列から不要な文字列として登録された不要文字列を取り除いた第１文字列を取得する。例えば、情報処理装置１００は、不要な文字列として登録された不要文字列のリストを取得する。続いて、情報処理装置１００は、取得した不要文字列のリストを参照して、取得した流入検索クエリ群に含まれる各検索クエリとして入力された各文字列の中に不要文字列が含まれるか否かを判定する。続いて、情報処理装置１００は、不要文字列が含まれると判定した場合には、検索クエリとして入力された文字列から不要文字列を取り除いた第１文字列を取得する。
【００２８】
例えば、情報処理装置１００は、不要文字列のリストを参照して、流入検索クエリＱ１００として入力された文字列「レディース  未知用語Ｌ１」に不要文字列である「レディース」が含まれると判定する。続いて、情報処理装置１００は、不要文字列が含まれると判定すると、流入検索クエリＱ１００として入力された文字列「レディース  未知用語Ｌ１」から不要文字列である「レディース」を取り除いた第１文字列「未知用語Ｌ１」（第１文字列Ｌ１）を取得する。
【００２９】
また、情報処理装置１００は、不要文字列のリストを参照して、流入検索クエリＱ２００として入力された文字列「未知用語Ｌ１  Ｍサイズ  店舗名Ｔ１」に不要文字列である「Ｍサイズ」が含まれると判定する。続いて、情報処理装置１００は、不要文字列が含まれると判定すると、流入検索クエリＱ２００として入力された文字列「未知用語Ｌ１  Ｍサイズ  店舗名Ｔ１」から不要文字列である「Ｍサイズ」を取り除いた第１文字列「未知用語Ｌ１  店舗名Ｔ１」（第１文字列Ｌ２）を取得する。
【００３０】
また、情報処理装置１００は、不要文字列のリストを参照して、流入検索クエリＱ３００として入力された文字列「Ｙシャツ  ２０代」に不要文字列である「２０代」が含まれると判定する。続いて、情報処理装置１００は、不要文字列が含まれると判定すると、流入検索クエリＱ３００として入力された文字列「Ｙシャツ  ２０代」から不要文字列である「２０代」を取り除いた第１文字列「Ｙシャツ」（第１文字列Ｌ３）を取得する。
【００３１】
また、情報処理装置１００は、不要文字列のリストを参照して、流入検索クエリＱ５００として入力された文字列「未知用語Ｌ２  コーデ」に不要文字列である「コーデ」が含まれると判定する。続いて、情報処理装置１００は、不要文字列が含まれると判定すると、流入検索クエリＱ５００として入力された文字列「未知用語Ｌ２  コーデ」から不要文字列である「コーデ」を取り除いた第１文字列「未知用語Ｌ２」（第１文字列Ｌ５）を取得する。
【００３２】
また、情報処理装置１００は、不要文字列のリストを参照して、流入検索クエリＱ６００として入力された文字列「未知用語Ｌ２  ブランド名Ｂ１  人気」に不要文字列である「人気」が含まれると判定する。続いて、情報処理装置１００は、不要文字列が含まれると判定すると、流入検索クエリＱ６００として入力された文字列「未知用語Ｌ２  ブランド名Ｂ１  人気」から不要文字列である「人気」を取り除いた第１文字列「未知用語Ｌ２  ブランド名Ｂ１」（第１文字列Ｌ６）を取得する。
【００３３】
続いて、情報処理装置１００は、第１文字列を取得すると、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデル（第２学習モデルＭ２）を取得する。続いて、情報処理装置１００は、第２学習モデルを取得すると、第２学習モデルを用いて、第１文字列によって示される対象が属するカテゴリを推定する。情報処理装置１００は、第１文字列によって示される対象が属する複数のカテゴリを推定する。具体的には、情報処理装置１００は、第１文字列によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。より具体的には、情報処理装置１００は、第２学習モデルＭ２の入力情報として第１文字列を入力することにより、第２学習モデルＭ２の出力情報として第１文字列によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する(ステップＳ２)。
【００３４】
図１の真ん中に示す例では、情報処理装置１００は、第１文字列Ｌ１を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ１を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ１によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、情報処理装置１００は、第１文字列Ｌ１によって示される対象がファッションに関するカテゴリＣ１（以下、ファッションカテゴリＣ１ともいう）に属する確率を１００パーセント、その他のカテゴリに属する確率を０％と出力する。
【００３５】
また、情報処理装置１００は、第１文字列Ｌ２を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ２を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ２によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、情報処理装置１００は、第１文字列Ｌ２によって示される対象がファッションカテゴリＣ１に属する確率を７０パーセント、店舗名に関するカテゴリＣ４に属する確率を３０パーセント、その他のカテゴリに属する確率を０％と出力する。
【００３６】
また、情報処理装置１００は、第１文字列Ｌ３を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ３を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ３によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、情報処理装置１００は、第１文字列Ｌ３によって示される対象がファッションカテゴリＣ１に属する確率を１００パーセント、その他のカテゴリに属する確率を０％と出力する。
【００３７】
また、情報処理装置１００は、第１文字列Ｌ４を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ４を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ４によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、情報処理装置１００は、第１文字列Ｌ４によって示される対象がファッションカテゴリＣ１に属する確率を５０パーセント、人名に関するカテゴリＣ２に属する確率を５０パーセント、その他のカテゴリに属する確率を０％と出力する。
【００３８】
また、情報処理装置１００は、第１文字列Ｌ５を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ５を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ５によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、情報処理装置１００は、第１文字列Ｌ５によって示される対象がファッションカテゴリＣ１に属する確率を１００パーセント、その他のカテゴリに属する確率を０％と出力する。
【００３９】
また、情報処理装置１００は、第１文字列Ｌ６を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ６を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ６によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、情報処理装置１００は、第１文字列Ｌ６によって示される対象がファッションカテゴリＣ１に属する確率を６０パーセント、ブランド名に関するカテゴリＣ３に属する確率を４０パーセント、その他のカテゴリに属する確率を０％と出力する。
【００４０】
続いて、情報処理装置１００は、第１文字列によって示される対象が属するカテゴリを推定すると、推定されたカテゴリに基づいて、第１文字列の中から、対象分野であるファッションカテゴリＣ１に属する抽出対象を示す対象文字列を抽出する(ステップＳ３)。図１の右側に示す例では、情報処理装置１００は、第１文字列の中から、第１文字列「未知用語Ｌ１」（第１文字列Ｌ１）を対象文字列Ｗ１として抽出する。また、情報処理装置１００は、第１文字列の中から、第１文字列「Ｙシャツ」（第１文字列Ｌ３）を対象文字列Ｗ２として抽出する。また、情報処理装置１００は、第１文字列の中から、第１文字列「未知用語Ｌ２」（第１文字列Ｌ５）を対象文字列Ｗ３として抽出する。
【００４１】
具体的には、情報処理装置１００は、第１文字列によって示される対象が属するカテゴリを推定すると、推定したカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを第１文字列毎に判定する。続いて、情報処理装置１００は、推定したカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定した場合、その第１文字列を抽出する。すなわち、情報処理装置１００は、ファッションカテゴリＣ１に属する対象を示す第１文字列を抽出する。続いて、情報処理装置１００は、ファッションカテゴリＣ１に属する対象を示す第１文字列を抽出すると、推定したカテゴリの中に不要なカテゴリとして登録された不要カテゴリを含むか否かを抽出した第１文字列毎に判定する。続いて、情報処理装置１００は、推定したカテゴリの中に不要なカテゴリとして登録された不要カテゴリを含まないと判定した場合、その第１文字列を対象文字列として抽出する。すなわち、情報処理装置１００は、不要なカテゴリに属する対象を示す第１文字列以外の第１文字列を対象文字列として抽出する。
【００４２】
例えば、情報処理装置１００は、第１文字列Ｌ１について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。情報処理装置１００は、第１文字列Ｌ１について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、情報処理装置１００は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ１について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、情報処理装置１００は、第１文字列Ｌ１について推定されたカテゴリの中に、不要カテゴリを含まないと判定する。続いて、情報処理装置１００は、不要カテゴリを含まないと判定したので、第１文字列Ｌ１を対象文字列Ｗ１として抽出する。
【００４３】
また、情報処理装置１００は、第１文字列Ｌ２について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。情報処理装置１００は、第１文字列Ｌ２について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、情報処理装置１００は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ２について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、情報処理装置１００は、第１文字列Ｌ２について推定されたカテゴリの中に、不要カテゴリである店舗名に関するカテゴリＣ３を含むと判定する。続いて、情報処理装置１００は、不要カテゴリを含むと判定したので、第１文字列Ｌ２を対象文字列として抽出しないことを決定する。
【００４４】
また、情報処理装置１００は、第１文字列Ｌ３について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。情報処理装置１００は、第１文字列Ｌ３について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、情報処理装置１００は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ３について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、情報処理装置１００は、第１文字列Ｌ３について推定されたカテゴリの中に、不要カテゴリを含まないと判定する。続いて、情報処理装置１００は、不要カテゴリを含まないと判定したので、第１文字列Ｌ３を対象文字列Ｗ２として抽出する。
【００４５】
また、情報処理装置１００は、第１文字列Ｌ４について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。情報処理装置１００は、第１文字列Ｌ４について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、情報処理装置１００は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ４について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、情報処理装置１００は、第１文字列Ｌ４について推定されたカテゴリの中に、不要カテゴリである人名に関するカテゴリＣ２を含むと判定する。続いて、情報処理装置１００は、不要カテゴリを含むと判定したので、第１文字列Ｌ４を対象文字列として抽出しないことを決定する。
【００４６】
また、情報処理装置１００は、第１文字列Ｌ５について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。情報処理装置１００は、第１文字列Ｌ５について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、情報処理装置１００は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ５について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、情報処理装置１００は、第１文字列Ｌ５について推定されたカテゴリの中に、不要カテゴリを含まないと判定する。続いて、情報処理装置１００は、不要カテゴリを含まないと判定したので、第１文字列Ｌ５を対象文字列Ｗ３として抽出する。
【００４７】
また、情報処理装置１００は、第１文字列Ｌ６について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。情報処理装置１００は、第１文字列Ｌ６について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、情報処理装置１００は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ６について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、情報処理装置１００は、第１文字列Ｌ６について推定されたカテゴリの中に、不要カテゴリであるブランド名に関するカテゴリＣ３を含むと判定する。続いて、情報処理装置１００は、不要カテゴリを含むと判定したので、第１文字列Ｌ６を対象文字列として抽出しないことを決定する。
【００４８】
上述したように、情報処理装置１００は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。また、情報処理装置１００は、取得した第２学習モデルを用いて、検索クエリとして入力された文字列によって示される対象が属するカテゴリを推定する。そして、情報処理装置１００は、推定したカテゴリに基づいて、文字列の中から、対象分野に属する抽出対象を示す対象文字列を抽出する。
【００４９】
これにより、情報処理装置１００は、検索クエリとして入力された文字列が未知用語である場合であっても、未知用語によって示される対象が属するカテゴリを推定することができるため、所定のカテゴリに属する対象を示す文字列を精度よく抽出することができる。例えば、情報処理装置１００は、未知用語に対して対象分野とは異なる非対象分野を示すカテゴリが推定された場合には、その未知用語を不要な文字列として取り除くことができる。また、情報処理装置１００は、流入検索クエリとして入力された文字列が未知用語である場合であっても、未知用語に対して対象分野を示すカテゴリが推定された場合には、その未知用語を対象分野に属する対象文字列として抽出することができる。したがって、本願発明に係る情報処理装置１００は、所定のカテゴリに属する対象を示す文字列を適切に抽出することができる。
【００５０】
〔１−２．情報処理装置の構成〕
次に、図３を用いて、実施形態に係る情報処理装置１００の構成について説明する。図３は、実施形態に係る情報処理装置１００の構成例を示す図である。図３に示すように、情報処理装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、情報処理装置１００は、情報処理装置１００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示させるための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００５１】
（通信部１１０）
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部１１０は、ネットワークと有線または無線で接続され、例えば、生成装置５０とサービスサーバ２００との間で情報の送受信を行う。
【００５２】
（記憶部１２０）
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部１２０は、図３に示すように、クエリ情報記憶部１２１と不要文字列記憶部１２２と不要カテゴリ記憶部１２３とモデル情報記憶部１２４を有する。
【００５３】
（クエリ情報記憶部１２１）
クエリ情報記憶部１２１は、対象分野に関するサイトに流入した検索クエリに関する各種の情報を記憶する。例えば、クエリ情報記憶部１２１は、ファッション系サイトに流入した検索クエリに関する各種の情報を記憶する。図４に、実施形態に係るクエリ情報記憶部の一例を示す。図４に示す例では、クエリ情報記憶部１２１は、「検索クエリＩＤ」、「日時」、「流入サイト名」、「文字列」といった項目を有する。
【００５４】
「検索クエリＩＤ」は、対象分野に関するサイトに流入した検索クエリを識別する識別情報を示す。「日時」は、検索クエリが対象分野に関するサイトに流入した日時を示す。「流入サイト名」は、検索クエリが流入した流入先のサイト名を示す。「文字列」は、検索クエリとして入力された文字列を示す。
【００５５】
図４の１レコード目に示す例では、検索クエリＩＤ「Ｑ１」で識別される検索クエリ（検索クエリＱ１）は、日時「ＤＴ１」に流入サイト名「サイト名Ｎ１」に流入した検索クエリであることを示す。また、文字列「サイト名Ｎ１  コサッシュ」は、検索クエリＱ１として入力された文字列が「サイト名Ｎ１  コサッシュ」であることを示す。
【００５６】
（不要文字列記憶部１２２）
不要文字列記憶部１２２は、不要文字列に関する各種の情報を記憶する。図５に、実施形態に係る不要文字列記憶部の一例を示す。図５に示す例では、不要文字列記憶部１２２は、「不要文字列ＩＤ」、「不要文字列」といった項目を有する。
【００５７】
「不要文字列ＩＤ」は、不要文字列を識別する識別情報を示す。「不要文字列」は、不要な文字列として登録された文字列を示す。
【００５８】
図５の１レコード目に示す例では、不要文字列ＩＤ「ＵＬ１１」で識別される不要文字列が「サイト名Ｎ１」であることを示す。例えば、「サイト名Ｎ１」は、ファッション系サイトのサイト名を示す。
【００５９】
（不要カテゴリ記憶部１２３）
不要カテゴリ記憶部１２３は、不要カテゴリに関する各種の情報を記憶する。図６に、実施形態に係る不要カテゴリ記憶部の一例を示す。図６に示す例では、不要カテゴリ記憶部１２３は、「不要カテゴリＩＤ」、「不要カテゴリ」といった項目を有する。
【００６０】
「不要カテゴリＩＤ」は、不要カテゴリを識別する識別情報を示す。「不要カテゴリ」は、不要なカテゴリとして登録されたカテゴリを示す。
【００６１】
図６の１レコード目に示す例では、不要カテゴリ「人名」は、不要カテゴリＩＤ「Ｃ２」で識別される不要カテゴリが人名に関するカテゴリであることを示す。
【００６２】
（モデル情報記憶部１２４）
モデル情報記憶部１２４は、生成装置５０によって生成された学習モデルに関する各種の情報を記憶する。図７に、実施形態に係るモデル情報記憶部の一例を示す。図７に示す例では、モデル情報記憶部１２４は、「モデルＩＤ」、「モデルデータ」といった項目を有する。
【００６３】
「モデルＩＤ」は、生成装置５０によって生成された学習モデルを識別するための識別情報を示す。「モデルデータ」は、生成装置５０によって生成された学習モデルのモデルデータを示す。例えば、「モデルデータ」には、検索クエリを検索クエリが各カテゴリに属する確率に変換するためのデータが格納される。
【００６４】
図７の１レコード目に示す例では、モデルＩＤ「Ｍ１」で識別される学習モデルは、後述する第１モデルＭ１に対応する。また、モデルデータ「ＭＤＴ１」は、情報処理装置１００によって生成された第１モデルＭ１のモデルデータ（モデルデータＭＤＴ１）を示す。
【００６５】
モデルデータＭＤＴ１は、検索クエリが入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された検索クエリに応じて、入力層に入力された検索クエリの分散表現を出力層から出力するよう、情報処理装置１００を機能させてもよい。
【００６６】
ここで、モデルデータＭＤＴ１が「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデルデータＭＤＴ１が含む第１要素は、x1やx2等といった入力データ（xi）に対応する。また、第１要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第１要素は、入力層が有するいずれかのノードに対応し、第２要素は、出力層が有するノードと見做すことができる。
【００６７】
また、モデルデータＭＤＴ１がＤＮＮ（Deep  Neural  Network）等、１つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、モデルデータＭＤＴ１が含む第１要素は、入力層または中間層が有するいずれかのノードに対応する。また、第２要素は、第１要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第１要素の重みは、第１要素と対応するノードから第２要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
【００６８】
情報処理装置１００は、上述した回帰モデルやニューラルネットワーク等、任意の構造を有するモデルを用いて、分散表現の算出を行う。具体的には、モデルデータＭＤＴ１は、検索クエリが入力された場合に、分散表現を出力するように係数が設定される。情報処理装置１００は、このようなモデルデータＭＤＴ１を用いて、分散表現を算出する。
【００６９】
なお、上記例では、モデルデータＭＤＴ１が、検索クエリが入力された場合に、検索クエリの分散表現を出力するモデル（以下、モデルＸ１という。）である例を示した。しかし、実施形態に係るモデルデータＭＤＴ１は、モデルＸ１にデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデルデータＭＤＴ１は、検索クエリを入力とし、モデルＸ１が出力する分散表現を出力とするよう学習されたモデル（以下、モデルＹ１という。）であってもよい。または、モデルデータＭＤＴ１は、検索クエリを入力とし、モデルＹ１の出力値を出力とするよう学習されたモデルであってもよい。
【００７０】
また、情報処理装置１００がＧＡＮ（Generative  Adversarial  Networks）を用いた推定処理を行う場合、モデルデータＭＤＴ１は、ＧＡＮの一部を構成するモデルであってもよい。
【００７１】
図７の２レコード目に示す例では、モデルＩＤ「Ｍ２」で識別される学習モデルは、図１に示した第２モデルＭ２に対応する。また、モデルデータ「ＭＤＴ２」は、情報処理装置１００によって生成された第２モデルＭ２のモデルデータ（モデルデータＭＤＴ２）を示す。
【００７２】
モデルデータＭＤＴ２は、検索クエリが入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された検索クエリに応じて、入力層に入力された検索クエリが各カテゴリに属する確率を出力層から出力するよう、情報処理装置１００を機能させてもよい。
【００７３】
ここで、モデルデータＭＤＴ２が「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデルデータＭＤＴ２が含む第１要素は、x1やx2等といった入力データ（xi）に対応する。また、第１要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第１要素は、入力層が有するいずれかのノードに対応し、第２要素は、出力層が有するノードと見做すことができる。
【００７４】
また、モデルデータＭＤＴ２がＤＮＮ（Deep  Neural  Network）等、１つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、モデルデータＭＤＴ２が含む第１要素は、入力層または中間層が有するいずれかのノードに対応する。また、第２要素は、第１要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第１要素の重みは、第１要素と対応するノードから第２要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
【００７５】
情報処理装置１００は、上述した回帰モデルやニューラルネットワーク等、任意の構造を有するモデルを用いて、検索クエリが各カテゴリに属する確率の算出を行う。具体的には、モデルデータＭＤＴ２は、検索クエリが入力された場合に、検索クエリが各カテゴリに属する確率を出力するように係数が設定される。情報処理装置１００は、このようなモデルデータＭＤＴ２を用いて、検索クエリが各カテゴリに属する確率を算出する。
【００７６】
なお、上記例では、モデルデータＭＤＴ２が、検索クエリが入力された場合に、検索クエリが各カテゴリに属する確率を出力するモデル（以下、モデルＸ２という。）である例を示した。しかし、実施形態に係るモデルデータＭＤＴ２は、モデルＸ２にデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデルデータＭＤＴ２は、検索クエリを入力とし、モデルＸ２が出力する確率を出力とするよう学習されたモデル（以下、モデルＹ２という。）であってもよい。または、モデルデータＭＤＴ２は、検索クエリを入力とし、モデルＹ２の出力値を出力とするよう学習されたモデルであってもよい。
【００７７】
また、情報処理装置１００がＧＡＮ（Generative  Adversarial  Networks）を用いた推定処理を行う場合、モデルデータＭＤＴ２は、ＧＡＮの一部を構成するモデルであってもよい。
【００７８】
（制御部１３０）
図３の説明に戻って、制御部１３０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、情報処理装置１００内部の記憶装置に記憶されている各種プログラム（情報処理プログラムの一例に相当）がＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、コントローラであり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。
【００７９】
図３に示すように、制御部１３０は、取得部１３１と、処理部１３２と、推定部１３３と、抽出部１３４とを有し、以下に説明する情報処理の作用を実現または実行する。なお、制御部１３０の内部構成は、図３に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００８０】
（取得部１３１）
取得部１３１は、各種情報を取得する。具体的には、取得部１３１は、対象分野に属する対象を示す文字列とは異なる対象を示す文字列である不要文字列を取得する。例えば、取得部１３１は、不要な文字列として登録された不要文字列のリストを取得する。例えば、取得部１３１は、情報処理装置１００の管理者によって登録された不要文字列のリストを取得する。取得部１３１は、不要文字列を取得すると、取得した不要文字列を不要文字列記憶部１２２に記憶する。
【００８１】
また、取得部１３１は、対象分野とは異なる非対象分野を示すカテゴリである不要カテゴリに関する情報を取得する。例えば、取得部１３１は、不要カテゴリとして登録された不要カテゴリのリストを取得する。例えば、取得部１３１は、情報処理装置１００の管理者によって登録された不要カテゴリのリストを取得する。取得部１３１は、不要カテゴリを取得すると、取得した不要カテゴリを不要カテゴリ記憶部１２３に記憶する。
【００８２】
また、取得部１３１は、外部の情報処理装置から各種情報を取得する。具体的には、取得部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを生成装置５０から取得する。続いて、取得部１３１は、第２学習モデルを取得すると、取得した第２学習モデルをモデル情報記憶部１２４に格納する。
【００８３】
また、取得部１３１は、同一のユーザによって所定の時間内に入力された一対の検索クエリの分散表現が類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。
【００８４】
また、取得部１３１は、入力情報として所定の検索クエリが入力された際に、出力情報として所定の検索クエリの分散表現を出力する第１学習モデルを用いて生成された第２学習モデルを取得する。
【００８５】
また、取得部１３１は、入力情報として検索クエリが第２学習モデルに入力された際に、出力情報として検索クエリがカテゴリに属する確率をカテゴリ毎に出力する第２学習モデルを取得する。
【００８６】
また、取得部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。
【００８７】
また、取得部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルであって、ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。
【００８８】
また、取得部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルであって、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。
【００８９】
また、取得部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、検索クエリが第２学習モデルに入力された際に、第２学習モデルが出力する分散表現の分類結果が、検索クエリが属するカテゴリに対応するように学習することで、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。
【００９０】
（処理部１３２）
処理部１３２は、対象分野に関するサイトに流入した流入検索クエリを取得し、流入検索クエリとして入力された文字列から、不要な文字列として登録された不要文字列を取り除いた第１文字列を取得する。具体的には、処理部１３２は、サービスサーバ２００から対象分野に関するサイトに流入した流入検索クエリに関する情報を取得する。より具体的には、処理部１３２は、各流入検索クエリとして入力された各文字列を取得する。処理部１３２は、流入検索クエリとして入力された文字列を取得すると、取得した文字列をクエリ情報記憶部１２１に格納する。
【００９１】
図１に示す例では、処理部１３２は、サービスサーバ２００からファッション系サイトに流入した流入検索クエリに関する情報を取得する。具体的には、処理部１３２は、流入検索クエリとして入力された各文字列を取得する。
【００９２】
図１の左側に示す例では、処理部１３２は、流入検索クエリＱ１００として入力された文字列「レディース  未知用語Ｌ１」を取得する。ここで、「未知用語Ｌ１」は、世の中に登場したばかりの新しい用語(例えば、ファッション用語)であって、まだ辞書等に掲載されていない用語であるものとする。
【００９３】
また、処理部１３２は、流入検索クエリＱ２００として入力された文字列「未知用語Ｌ１  Ｍサイズ  店舗名Ｔ１」を取得する。なお、「店舗名Ｔ１」は、特定の店舗(例えば、特定のアパレルメーカー)の名称を示す語句であって、例えば、世の中に登場したばかりの新しい店舗名を示す語句であるものとする。
【００９４】
また、処理部１３２は、流入検索クエリＱ３００として入力された文字列「Ｙシャツ  ２０代」を取得する。
【００９５】
また、処理部１３２は、流入検索クエリＱ４００として入力された文字列「Ｙシャツ  人名Ｍ１」を取得する。なお、「人名Ｍ１」は、特定の人物(例えば、ファッションモデルや芸能人等)の名称を示す語句であって、例えば、世の中に登場したばかりの新しい人名を示す語句であるものとする。
【００９６】
また、処理部１３２は、流入検索クエリＱ５００として入力された文字列「未知用語Ｌ２  コーデ」を取得する。ここで、「未知用語Ｌ２」は、「未知用語Ｌ１」と同様、世の中に登場したばかりの新しい用語(例えば、ファッション用語)であって、まだ辞書等に掲載されていない用語であるものとする。
【００９７】
また、処理部１３２は、流入検索クエリＱ６００として入力された文字列「未知用語Ｌ２  ブランド名Ｂ１  人気」を取得する。なお、「ブランド名Ｂ１」は、特定のアパラレルブランドの名称を示す語句であって、例えば、世の中に登場したばかりの新しいブランド名を示す語句であるものとする。
【００９８】
続いて、処理部１３２は、流入検索クエリ群を取得すると、取得した流入検索クエリ群に含まれる各検索クエリとして入力された各文字列から不要な文字列として登録された不要文字列を取り除いた第１文字列を取得する。例えば、処理部１３２は、不要文字列記憶部１２２を参照して、不要な文字列として登録された不要文字列のリストを取得する。続いて、処理部１３２は、取得した不要文字列のリストを参照して、取得した流入検索クエリ群に含まれる各検索クエリとして入力された各文字列の中に不要文字列が含まれるか否かを判定する。続いて、処理部１３２は、不要文字列が含まれると判定した場合には、検索クエリとして入力された文字列から不要文字列を取り除いた第１文字列を取得する。
【００９９】
例えば、処理部１３２は、不要文字列のリストを参照して、流入検索クエリＱ１００として入力された文字列「レディース  未知用語Ｌ１」に不要文字列である「レディース」が含まれると判定する。続いて、処理部１３２は、不要文字列が含まれると判定すると、流入検索クエリＱ１００として入力された文字列「レディース  未知用語Ｌ１」から不要文字列である「レディース」を取り除いた第１文字列「未知用語Ｌ１」（第１文字列Ｌ１）を取得する。
【０１００】
また、処理部１３２は、不要文字列のリストを参照して、流入検索クエリＱ２００として入力された文字列「未知用語Ｌ１  Ｍサイズ  店舗名Ｔ１」に不要文字列である「Ｍサイズ」が含まれると判定する。続いて、処理部１３２は、不要文字列が含まれると判定すると、流入検索クエリＱ２００として入力された文字列「未知用語Ｌ１  Ｍサイズ  店舗名Ｔ１」から不要文字列である「Ｍサイズ」を取り除いた第１文字列「未知用語Ｌ１  店舗名Ｔ１」（第１文字列Ｌ２）を取得する。
【０１０１】
また、処理部１３２は、不要文字列のリストを参照して、流入検索クエリＱ３００として入力された文字列「Ｙシャツ  ２０代」に不要文字列である「２０代」が含まれると判定する。続いて、処理部１３２は、不要文字列が含まれると判定すると、流入検索クエリＱ３００として入力された文字列「Ｙシャツ  ２０代」から不要文字列である「２０代」を取り除いた第１文字列「Ｙシャツ」（第１文字列Ｌ３）を取得する。
【０１０２】
また、処理部１３２は、不要文字列のリストを参照して、流入検索クエリＱ５００として入力された文字列「未知用語Ｌ２  コーデ」に不要文字列である「コーデ」が含まれると判定する。続いて、処理部１３２は、不要文字列が含まれると判定すると、流入検索クエリＱ５００として入力された文字列「未知用語Ｌ２  コーデ」から不要文字列である「コーデ」を取り除いた第１文字列「未知用語Ｌ２」（第１文字列Ｌ５）を取得する。
【０１０３】
また、処理部１３２は、不要文字列のリストを参照して、流入検索クエリＱ６００として入力された文字列「未知用語Ｌ２  ブランド名Ｂ１  人気」に不要文字列である「人気」が含まれると判定する。続いて、処理部１３２は、不要文字列が含まれると判定すると、流入検索クエリＱ６００として入力された文字列「未知用語Ｌ２  ブランド名Ｂ１  人気」から不要文字列である「人気」を取り除いた第１文字列「未知用語Ｌ２  ブランド名Ｂ１」（第１文字列Ｌ６）を取得する。
【０１０４】
（推定部１３３）
推定部１３３は、取得部１３１によって取得された第２学習モデルを用いて、検索クエリとして入力された文字列によって示される対象が属するカテゴリを推定する。推定部１３３は、処理部１３２によって取得された第１文字列によって示される対象が属するカテゴリを推定する。具体的には、推定部１３３は、処理部１３２によって第１文字列が取得されると、モデル情報記憶部１２４を参照して、第２学習モデル（第２学習モデルＭ２）を取得する。続いて、推定部１３３は、第２学習モデルを取得すると、第２学習モデルを用いて、第１文字列によって示される対象が属するカテゴリを推定する。推定部１３３は、文字列によって示される対象が属する複数のカテゴリを推定する。例えば、推定部１３３は、第１文字列によって示される対象が属する複数のカテゴリを推定する。
【０１０５】
より具体的には、推定部１３３は、文字列によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、推定部１３３は、第１文字列によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、推定部１３３は、第２学習モデルＭ２の入力情報として第１文字列を入力することにより、第２学習モデルＭ２の出力情報として第１文字列によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。
【０１０６】
図１の真ん中に示す例では、推定部１３３は、第１文字列Ｌ１を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ１を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ１によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、推定部１３３は、第１文字列Ｌ１によって示される対象がファッションに関するカテゴリＣ１（以下、ファッションカテゴリＣ１ともいう）に属する確率を１００パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１０７】
また、推定部１３３は、第１文字列Ｌ２を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ２を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ２によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、推定部１３３は、第１文字列Ｌ２によって示される対象がファッションカテゴリＣ１に属する確率を７０パーセント、店舗名に関するカテゴリＣ４に属する確率を３０パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１０８】
また、推定部１３３は、第１文字列Ｌ３を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ３を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ３によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、推定部１３３は、第１文字列Ｌ３によって示される対象がファッションカテゴリＣ１に属する確率を１００パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１０９】
また、推定部１３３は、第１文字列Ｌ４を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ４を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ４によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、推定部１３３は、第１文字列Ｌ４によって示される対象がファッションカテゴリＣ１に属する確率を５０パーセント、人名に関するカテゴリＣ２に属する確率を５０パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１１０】
また、推定部１３３は、第１文字列Ｌ５を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ５を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ５によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、推定部１３３は、第１文字列Ｌ５によって示される対象がファッションカテゴリＣ１に属する確率を１００パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１１１】
また、推定部１３３は、第１文字列Ｌ６を取得すると、第２学習モデルＭ２の入力情報として第１文字列Ｌ６を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ６によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。例えば、推定部１３３は、第１文字列Ｌ６によって示される対象がファッションカテゴリＣ１に属する確率を６０パーセント、ブランド名に関するカテゴリＣ３に属する確率を４０パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１１２】
（抽出部１３４）
抽出部１３４は、推定部１３３によって推定されたカテゴリに基づいて、文字列の中から、対象分野に属する抽出対象を示す対象文字列を抽出する。具体的には、抽出部１３４は、推定部１３３によって推定されたカテゴリの中に、対象分野を示すカテゴリを含む文字列を対象文字列として抽出する。例えば、抽出部１３４は、推定部１３３によって第１文字列によって示される対象が属するカテゴリが推定されると、推定部１３３によって推定されたカテゴリの中に、対象分野を示すカテゴリが含まれるか否かを第１文字列毎に判定する。続いて、抽出部１３４は、推定部１３３によって推定されたカテゴリの中に、対象分野を示すカテゴリが含まれると判定した場合、その第１文字列を抽出する。すなわち、抽出部１３４は、対象分野を示すカテゴリに属する対象を示す第１文字列を抽出する。
【０１１３】
また、抽出部１３４は、推定部１３３によって推定されたカテゴリの中に、不要なカテゴリとして登録された不要カテゴリを含まない文字列を対象文字列として抽出する。例えば、抽出部１３４は、不要カテゴリ記憶部１２３を参照して、不要なカテゴリとして登録された不要カテゴリのリストを取得する。続いて、抽出部１３４は、対象分野を示すカテゴリが含まれる第１文字列を抽出すると、取得した不要カテゴリのリストを参照して、推定部１３３によって推定されたカテゴリの中に、不要なカテゴリとして登録された不要カテゴリが含まれるか否かを抽出した第１文字列毎に判定する。続いて、抽出部１３４は、推定部１３３によって推定されたカテゴリの中に、不要カテゴリが含まれないと判定した場合、その第１文字列を対象文字列として抽出する。すなわち、抽出部１３４は、不要カテゴリに属する対象を示す第１文字列以外の第１文字列を対象文字列として抽出する。
【０１１４】
図１の右側に示す例では、情報処理装置１００は、第１文字列の中から、第１文字列「未知用語Ｌ１」（第１文字列Ｌ１）を対象文字列Ｗ１として抽出する。また、情報処理装置１００は、第１文字列の中から、第１文字列「Ｙシャツ」（第１文字列Ｌ３）を対象文字列Ｗ２として抽出する。また、情報処理装置１００は、第１文字列の中から、第１文字列「未知用語Ｌ２」（第１文字列Ｌ５）を対象文字列Ｗ３として抽出する。
【０１１５】
具体的には、抽出部１３４は、推定部１３３によって第１文字列Ｌ１について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。抽出部１３４は、第１文字列Ｌ１について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、抽出部１３４は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ１について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、抽出部１３４は、第１文字列Ｌ１について推定されたカテゴリの中に、不要カテゴリを含まないと判定する。続いて、抽出部１３４は、不要カテゴリを含まないと判定したので、第１文字列Ｌ１を対象文字列Ｗ１として抽出する。
【０１１６】
また、抽出部１３４は、推定部１３３によって第１文字列Ｌ２について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。抽出部１３４は、第１文字列Ｌ２について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、抽出部１３４は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ２について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、抽出部１３４は、第１文字列Ｌ２について推定されたカテゴリの中に、不要カテゴリである店舗名に関するカテゴリＣ３を含むと判定する。続いて、抽出部１３４は、不要カテゴリを含むと判定したので、第１文字列Ｌ２を対象文字列として抽出しないことを決定する。
【０１１７】
また、抽出部１３４は、推定部１３３によって第１文字列Ｌ３について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。抽出部１３４は、第１文字列Ｌ３について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、抽出部１３４は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ３について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、抽出部１３４は、第１文字列Ｌ３について推定されたカテゴリの中に、不要カテゴリを含まないと判定する。続いて、抽出部１３４は、不要カテゴリを含まないと判定したので、第１文字列Ｌ３を対象文字列Ｗ２として抽出する。
【０１１８】
また、抽出部１３４は、推定部１３３によって第１文字列Ｌ４について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。抽出部１３４は、第１文字列Ｌ４について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、抽出部１３４は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ４について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、抽出部１３４は、第１文字列Ｌ４について推定されたカテゴリの中に、不要カテゴリである人名に関するカテゴリＣ２を含むと判定する。続いて、抽出部１３４は、不要カテゴリを含むと判定したので、第１文字列Ｌ４を対象文字列として抽出しないことを決定する。
【０１１９】
また、抽出部１３４は、推定部１３３によって第１文字列Ｌ５について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。抽出部１３４は、第１文字列Ｌ５について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、抽出部１３４は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ５について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、抽出部１３４は、第１文字列Ｌ５について推定されたカテゴリの中に、不要カテゴリを含まないと判定する。続いて、抽出部１３４は、不要カテゴリを含まないと判定したので、第１文字列Ｌ５を対象文字列Ｗ３として抽出する。
【０１２０】
また、抽出部１３４は、推定部１３３によって第１文字列Ｌ６について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれるか否かを判定する。抽出部１３４は、第１文字列Ｌ６について推定されたカテゴリの中に、対象分野であるファッションカテゴリＣ１が含まれると判定する。続いて、抽出部１３４は、ファッションカテゴリＣ１が含まれると判定したので、第１文字列Ｌ６について推定されたカテゴリの中に、不要カテゴリを含むか否かを判定する。続いて、抽出部１３４は、第１文字列Ｌ６について推定されたカテゴリの中に、不要カテゴリであるブランド名に関するカテゴリＣ３を含むと判定する。続いて、抽出部１３４は、不要カテゴリを含むと判定したので、第１文字列Ｌ６を対象文字列として抽出しないことを決定する。
【０１２１】
次に、図８を用いて、実施形態に係る情報処理の一例についてより詳しく説明する。図８は、実施形態に係る情報処理の一例を示す図である。図８に示す例では、処理部１３２は、クエリ情報記憶部１２１を参照して、ファッション系サイトに流入した検索クエリとして入力された文字列を取得する（ステップＳ１´）。
【０１２２】
例えば、処理部１３２は、検索クエリＱ１として入力された文字列「サイト名Ｎ１  コサッシュ」を取得する。また、処理部１３２は、検索クエリＱ２として入力された文字列「サイト名Ｎ２  コサッシュ  人名Ｍ１」を取得する。また、処理部１３２は、検索クエリＱ３として入力された文字列「花柄サーマル  レディース」を取得する。また、処理部１３２は、検索クエリＱ４として入力された文字列「花柄サーマル  人気  ブランド名Ｂ１」を取得する。また、処理部１３２は、検索クエリＱ５として入力された文字列「花柄サーマル  コーデ  店舗名Ｔ１」を取得する。また、処理部１３２は、検索クエリＱ６として入力された文字列「マニデニム  Ｍサイズ」を取得する。また、処理部１３２は、検索クエリＱ７として入力された文字列「マニデニム  Ｌサイズ  ブランド名Ｂ２」を取得する。また、処理部１３２は、検索クエリＱ８として入力された文字列「抜け襟  ２０代」を取得する。また、処理部１３２は、検索クエリＱ９として入力された文字列「抜け襟  ３０代  人名Ｍ２」を取得する。
【０１２３】
続いて、処理部１３２は、流入検索クエリを取得すると、不要文字列記憶部１２２を参照して、取得した流入検索クエリ群に含まれる各検索クエリとして入力された各文字列から不要な文字列として登録された不要文字列を取り除いた第１文字列を取得する。具体的には、処理部１３２は、図８のステップＳ１´の下段に示すテーブル１２１Ａを記憶部１２０に一時的に記憶する。
【０１２４】
例えば、処理部１３２は、検索クエリＱ１として入力された文字列「サイト名Ｎ１  コサッシュ」から不要文字列「サイト名Ｎ１」（不要文字列ＵＬ１１）を取り除いた第１文字列「コサッシュ」（第１文字列Ｌ１１）を取得する。また、処理部１３２は、検索クエリＱ２として入力された文字列「サイト名Ｎ２  コサッシュ  人名Ｍ１」から不要文字列「サイト名Ｎ２」（不要文字列ＵＬ１２）を取り除いた第１文字列「コサッシュ  人名Ｍ１」（第１文字列Ｌ１２）を取得する。また、処理部１３２は、検索クエリＱ３として入力された文字列「花柄サーマル  レディース」から不要文字列「レディース」（不要文字列ＵＬ２１）を取り除いた第１文字列「花柄サーマル」（第１文字列Ｌ１３）を取得する。また、処理部１４２は、検索クエリＱ４として入力された文字列「花柄サーマル  人気  ブランド名Ｂ１」から不要文字列「人気」（不要文字列ＵＬ２２）を取り除いた第１文字列「花柄サーマル  ブランド名Ｂ１」（第１文字列Ｌ１４）を取得する。また、処理部１５２は、検索クエリＱ５として入力された文字列「花柄サーマル  コーデ  店舗名Ｔ１」から不要文字列「コーデ」（不要文字列ＵＬ２３）を取り除いた第１文字列「花柄サーマル  店舗名Ｔ１」（第１文字列Ｌ１５）を取得する。また、処理部１６２は、検索クエリＱ６として入力された文字列「マニデニム  Ｍサイズ」から不要文字列「Ｍサイズ」（不要文字列ＵＬ３１）を取り除いた第１文字列「マニデニム」（第１文字列Ｌ１６）を取得する。また、処理部１７２は、検索クエリＱ７として入力された文字列「マニデニム  Ｌサイズ  ブランド名Ｂ２」から不要文字列「Ｌサイズ」（不要文字列ＵＬ３２）を取り除いた第１文字列「マニデニム  ブランド名Ｂ２」（第１文字列Ｌ１７）を取得する。また、処理部１８２は、検索クエリＱ８として入力された文字列「抜け襟  ２０代」から不要文字列「２０代」（不要文字列ＵＬ４１）を取り除いた第１文字列「抜け襟」（第１文字列Ｌ１８）を取得する。また、処理部１９２は、検索クエリＱ９として入力された文字列「抜け襟  ３０代  人名Ｍ２」から不要文字列「３０代」（不要文字列ＵＬ４２）を取り除いた第１文字列「抜け襟  人名Ｍ２」（第１文字列Ｌ１９）を取得する。
【０１２５】
続いて、推定部１３３は、処理部１３２によって第１文字列が取得されると、モデル情報記憶部１２４を参照して、第２学習モデル（第２学習モデルＭ２）を取得する。続いて、推定部１３３は、第２学習モデルを取得すると、第２学習モデルを用いて、第１文字列によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。図８に示す例では、推定部１３３は、第２学習モデルＭ２の入力情報として第１文字列を入力することにより、第２学習モデルＭ２の出力情報として第１文字列によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する（ステップＳ２´）。具体的には、推定部１３３は、図８のステップＳ２´に示すテーブル１２１Ｂの情報を記憶部１２０に一時的に記憶する。
【０１２６】
例えば、推定部１３３は、第２学習モデルＭ２の入力情報として第１文字列「コサッシュ」（第１文字列Ｌ１１）を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ１１によって示される対象がファッションカテゴリＣ１に属する確率を１００パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１２７】
また、推定部１３３は、第２学習モデルＭ２の入力情報として第１文字列「コサッシュ  人名Ｍ１」（第１文字列Ｌ１２）を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ１２によって示される対象がファッションカテゴリＣ１に属する確率を５０パーセント、人名に関するカテゴリＣ２に属する確率を５０パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１２８】
また、推定部１３３は、第２学習モデルＭ２の入力情報として第１文字列「花柄サーマル」（第１文字列Ｌ１３）を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ１３によって示される対象がファッションカテゴリＣ１に属する確率を１００パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１２９】
また、推定部１３３は、第２学習モデルＭ２の入力情報として第１文字列「花柄サーマル  ブランド名Ｂ１」（第１文字列Ｌ１４）を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ１４によって示される対象がファッションカテゴリＣ１に属する確率を６０パーセント、ブランド名に関するカテゴリＣ３に属する確率を４０パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１３０】
また、推定部１３３は、第２学習モデルＭ２の入力情報として第１文字列「花柄サーマル  店舗名Ｔ１」（第１文字列Ｌ１５）を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ１５によって示される対象がファッションカテゴリＣ１に属する確率を７０パーセント、店舗名に関するカテゴリＣ４に属する確率を３０パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１３１】
また、推定部１３３は、第２学習モデルＭ２の入力情報として第１文字列「マニデニム」（第１文字列Ｌ１６）を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ１６によって示される対象がファッションカテゴリＣ１に属する確率を１００パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１３２】
また、推定部１３３は、第２学習モデルＭ２の入力情報として第１文字列「マニデニム  ブランド名Ｂ２」（第１文字列Ｌ１７）を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ１７によって示される対象がファッションカテゴリＣ１に属する確率を５０パーセント、ブランド名に関するカテゴリＣ３に属する確率を５０パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１３３】
また、推定部１３３は、第２学習モデルＭ２の入力情報として第１文字列「抜け襟」（第１文字列Ｌ１８）を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ１８によって示される対象がファッションカテゴリＣ１に属する確率を１００パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１３４】
また、推定部１３３は、第２学習モデルＭ２の入力情報として第１文字列「抜け襟  人名Ｍ２」（第１文字列Ｌ１９）を入力することにより、第２学習モデルＭ２の出力情報として第１文字列Ｌ１９によって示される対象がファッションカテゴリＣ１に属する確率を８０パーセント、人名に関するカテゴリＣ２に属する確率を２０パーセント、その他のカテゴリに属する確率を０％と出力する。
【０１３５】
続いて、抽出部１３４は、推定部１３３によって第１文字列によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力すると、推定部１３３によって推定されたカテゴリの中に、対象分野を示すカテゴリが含まれる第１文字列を抽出する。すなわち、抽出部１３４は、対象分野を示すカテゴリに属する対象を示す第１文字列を抽出する。続いて、抽出部１３４は、対象分野を示すカテゴリが含まれる第１文字列を抽出すると、不要カテゴリ記憶部１２３を参照して、推定部１３３によって推定されたカテゴリの中に、不要カテゴリが含まれない第１文字列を対象文字列として抽出する。すなわち、抽出部１３４は、不要カテゴリに属する対象を示す第１文字列以外の第１文字列を対象文字列（第２文字列ともいう）として抽出する（ステップＳ３´）。具体的には、推定部１３３は、図８のステップＳ３´に示すテーブル１２１Ｃの情報を記憶部１２０に記憶する。
【０１３６】
例えば、抽出部１３４は、第１文字列「コサッシュ」（第１文字列Ｌ１１）について推定されたカテゴリの中に、対象分野を示すファッションカテゴリＣ１が含まれており、かつ、不要カテゴリが含まれないので、第１文字列「コサッシュ」（第１文字列Ｌ１１）を第２文字列Ｗ２１として抽出する。
【０１３７】
また、抽出部１３４は、第１文字列「コサッシュ  人名Ｍ１」（第１文字列Ｌ１２）について推定されたカテゴリの中にはファッションカテゴリＣ１が含まれるが、不要カテゴリである人名に関するカテゴリＣ２が含まれるので、第１文字列「コサッシュ  人名Ｍ１」（第１文字列Ｌ１２）を第２文字列として抽出しないことを決定する。
【０１３８】
また、抽出部１３４は、第１文字列「花柄サーマル」（第１文字列Ｌ１３）について推定されたカテゴリの中に、対象分野を示すファッションカテゴリＣ１が含まれており、かつ、不要カテゴリが含まれないので、第１文字列「花柄サーマル」（第１文字列Ｌ１３）を第２文字列Ｗ２２として抽出する。
【０１３９】
また、抽出部１３４は、第１文字列「花柄サーマル  ブランド名Ｂ１」（第１文字列Ｌ１４）について推定されたカテゴリの中にはファッションカテゴリＣ１が含まれるが、不要カテゴリであるブランド名に関するカテゴリＣ３が含まれるので、第１文字列「花柄サーマル  ブランド名Ｂ１」（第１文字列Ｌ１４）を第２文字列として抽出しないことを決定する。
【０１４０】
また、抽出部１３４は、第１文字列「花柄サーマル  店舗名Ｔ１」（第１文字列Ｌ１５）について推定されたカテゴリの中にはファッションカテゴリＣ１が含まれるが、不要カテゴリである店舗名に関するカテゴリＣ４が含まれるので、第１文字列「花柄サーマル  店舗名Ｔ１」（第１文字列Ｌ１５）を第２文字列として抽出しないことを決定する。
【０１４１】
また、抽出部１３４は、第１文字列「マニデニム」（第１文字列Ｌ１６）について推定されたカテゴリの中に、対象分野を示すファッションカテゴリＣ１が含まれており、かつ、不要カテゴリが含まれないので、第１文字列「マニデニム」（第１文字列Ｌ１６）を第２文字列Ｗ２３として抽出する。
【０１４２】
また、抽出部１３４は、第１文字列「マニデニム  ブランド名Ｂ２」（第１文字列Ｌ１７）について推定されたカテゴリの中にはファッションカテゴリＣ１が含まれるが、不要カテゴリであるブランド名に関するカテゴリＣ３が含まれるので、第１文字列「マニデニム  ブランド名Ｂ２」（第１文字列Ｌ１７）を第２文字列として抽出しないことを決定する。
【０１４３】
また、抽出部１３４は、第１文字列「抜け襟」（第１文字列Ｌ１８）について推定されたカテゴリの中に、対象分野を示すファッションカテゴリＣ１が含まれており、かつ、不要カテゴリが含まれないので、第１文字列「抜け襟」（第１文字列Ｌ１８）を第２文字列Ｗ２４として抽出する。
【０１４４】
また、抽出部１３４は、第１文字列「抜け襟  人名Ｍ２」（第１文字列Ｌ１９）について推定されたカテゴリの中にはファッションカテゴリＣ１が含まれるが、不要カテゴリである人名に関するカテゴリＣ２が含まれるので、第１文字列「抜け襟  人名Ｍ２」（第１文字列Ｌ１９）を第２文字列として抽出しないことを決定する。
【０１４５】
〔１−３．情報処理のフロー〕
次に、図９を用いて、実施形態に係る情報処理の手順について説明する。図９は、実施形態に係る情報処理手順を示すフローチャートである。図９に示す例では、情報処理装置１００は、対象分野に関するサイトに流入した検索クエリを取得する（ステップＳ１０１）。続いて、情報処理装置１００は、対象分野に関するサイトに流入した検索クエリを取得すると、検索クエリとして入力された文字列から不要文字列を取り除いた第１文字列を取得する（ステップＳ１０２）。続いて、情報処理装置１００は、第１文字列を取得すると、第２学習モデルを用いて、第１文字列によって示される対象が属するカテゴリを推定する（ステップＳ１０３）。続いて、情報処理装置１００は、カテゴリを推定すると、推定したカテゴリに基づいて、第１文字列の中から抽出対象を示す第２文字列を抽出する（ステップＳ１０４）。
【０１４６】
〔２．学習モデルの生成処理〕
〔２−１．第１学習モデルの生成処理〕
次に、図１０を用いて、第１学習モデルの生成処理の流れについて説明する。図１０は、実施形態に係る第１学習モデルの生成処理の一例を示す図である。図１０に示す例では、生成装置５０は、同一のユーザＵ１によって所定の時間内に連続して入力された「六本木  パスタ」という検索クエリＱ１１と「六本木  イタリアン」という検索クエリＱ１２とから成る一対の検索クエリを抽出する（ステップＳ１１）。
【０１４７】
続いて、生成装置５０は、抽出した検索クエリＱ１１を第１モデルＭ１に入力して、検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１を出力する。ここで、ベクトルＢＱＶ１１は、第１モデルＭ１の出力層から出力されたばかりの検索クエリＱ１１の分散表現であって、第１モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す。また、生成装置５０は、抽出した検索クエリＱ１２を第１モデルＭ１に入力して、検索クエリＱ１２の分散表現であるベクトルＢＱＶ１２を出力する。ここで、ベクトルＢＱＶ１２は、第１モデルＭ１の出力層から出力されたばかりの検索クエリＱ１２の分散表現であって、第１モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す。このようにして、生成装置５０は、検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１と、検索クエリＱ１２の分散表現であるベクトルＢＱＶ１２とを出力する（ステップＳ１２）。
【０１４８】
続いて、生成装置５０は、同一のユーザＵ１によって所定の時間内に連続して入力された検索クエリＱ１１（「六本木  パスタ」）と検索クエリＱ１２（「六本木  イタリアン」）とから成る一対の検索クエリは、所定の検索意図（例えば、「ある場所で飲食店を探す」という検索意図）で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリＱ１１の分散表現（ベクトルＱＶ１１）と、検索クエリＱ１１と対となる検索クエリＱ１２の分散表現（ベクトルＱＶ１２）とが、分散表現空間上で類似するように第１モデルＭ１を学習させる。例えば、第１モデルＭ１にフィードバックをかける前（学習前）の検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１と検索クエリＱ１２の分散表現であるベクトルＢＱＶ１２とのなす角度の大きさをΘとする。また、第１モデルＭ１にフィードバックをかけた後（学習後）の検索クエリＱ１１の分散表現であるベクトルＱＶ１１と検索クエリＱ１２の分散表現であるベクトルＱＶ１２とのなす角度の大きさをΦとする。この時、生成装置５０は、ΘよりもΦが小さくなるように、第１モデルＭ１を学習させる。例えば、生成装置５０は、ベクトルＢＱＶ１１とベクトルＢＱＶ１２のコサイン類似度の値を算出する。また、生成装置５０は、ベクトルＱＶ１１とベクトルＱＶ１２のコサイン類似度の値を算出する。続いて、生成装置５０は、ベクトルＢＱＶ１１とベクトルＢＱＶ１２のコサイン類似度の値よりも、ベクトルＱＶ１１とベクトルＱＶ１２のコサイン類似度の値が大きくなるように（値が１に近づくように）第１モデルＭ１を学習させる。このように、生成装置５０は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように第１モデルＭ１を学習させることで、検索クエリから分散表現を出力する第１モデルＭ１を生成する（ステップＳ１３）。なお、生成装置５０は、コサイン類似度に限らず、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて分散表現の間の類似度を算出してもよい。また、生成装置５０は、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて第１モデルＭ１を学習させてもよい。例えば、生成装置５０は、分散表現同士のユークリッド距離や双曲空間等の非ユークリッド空間中での距離、マンハッタン距離、マハラノビス距離等といった所定の距離関数の値を算出する。続いて、生成装置５０は、分散表現同士の所定の距離関数の値（すなわち、分散表現空間における距離）が小さくなるように第１モデルＭ１を学習させてもよい。
【０１４９】
次に、図１１を用いて、第１学習モデルの生成処理の流れについてより詳しく説明する。なお、図１１の説明では、図１０の説明と重複する部分は、適宜省略する。図１１は、実施形態に係る第１学習モデルの生成処理を示す図である。図１１に示す例では、生成装置５０が生成した第１モデルＭ１によって出力された分散表現が分散表現空間にマッピングされる様子が示されている。生成装置５０は、所定の検索クエリの分散表現と所定の検索クエリと対となる他の検索クエリの分散表現とが分散表現空間上で近くにマッピングされるように第１モデルＭ１のトレーニングを行う。
【０１５０】
図１１の上段に示す例では、生成装置５０は、同一のユーザＵ１によって所定の時間内に連続して入力された４個の検索クエリである検索クエリＱ１１（「六本木  パスタ」）、検索クエリＱ１２（「六本木  イタリアン」）、検索クエリＱ１３（「赤坂  パスタ」）、検索クエリＱ１４（「麻布  パスタ」）を抽出する。生成装置５０は、同一のユーザＵ１によって各検索クエリが入力された時間の間隔が所定の時間内である４個の検索クエリを抽出する。生成装置５０は、同一のユーザＵ１によって後述する各検索クエリのペアが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。生成装置５０は、検索クエリが入力された順番に並べると、検索クエリＱ１１、検索クエリＱ１２、検索クエリＱ１３、検索クエリＱ１４の順番で入力された４個の検索クエリを抽出する。生成装置５０は、４個の検索クエリを抽出すると、時系列的に隣り合う２つの検索クエリを一対の検索クエリとして、３対の検索クエリのペアである（検索クエリＱ１１、検索クエリＱ１２）、（検索クエリＱ１２、検索クエリＱ１３）、（検索クエリＱ１３、検索クエリＱ１４）を抽出する（ステップＳ２１−１）。なお、生成装置５０は、同一のユーザＵ１によって全ての検索クエリが所定の時間内に入力された複数の検索クエリを抽出してもよい。そして、生成装置５０は、時系列的に隣り合うか否かに関わらず、抽出した複数の検索クエリの中から２つの検索クエリを選択して、選択した２つの検索クエリを一対の検索クエリとして抽出してもよい。
【０１５１】
続いて、生成装置５０は、抽出した検索クエリＱ１ｋ（ｋ＝１、２、３、４）を第１モデルＭ１に入力して、検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であるベクトルＢＱＶ１ｋ（ｋ＝１、２、３、４）を出力する。ここで、ベクトルＢＱＶ１ｋ（ｋ＝１、２、３、４）は、第１モデルＭ１の出力層から出力されたばかりの検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であって、第１モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す（ステップＳ２２−１）。
【０１５２】
続いて、生成装置５０は、同一のユーザＵ１によって所定の時間内に連続して入力された一対の検索クエリは、所定の検索意図（例えば、「ある場所（東京都港区付近）で飲食店を探す」という検索意図）で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリＱ１１の分散表現（ベクトルＱＶ１１）と、検索クエリＱ１１と対となる検索クエリＱ１２の分散表現（ベクトルＱＶ１２）とが、分散表現空間上で類似するように第１モデルＭ１を学習させる。また、生成装置５０は、検索クエリＱ１２の分散表現（ベクトルＱＶ１２）と、検索クエリＱ１２と対となる検索クエリＱ１３の分散表現（ベクトルＱＶ１３）とが、分散表現空間上で類似するように第１モデルＭ１を学習させる。また、生成装置５０は、検索クエリＱ１３の分散表現（ベクトルＱＶ１３）と、検索クエリＱ１３と対となる検索クエリＱ１４の分散表現（ベクトルＱＶ１４）とが、分散表現空間上で類似するように第１モデルＭ１を学習させる。このように、生成装置５０は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように第１モデルＭ１を学習させることで、検索クエリから分散表現を出力する第１モデルＭ１を生成する（ステップＳ２３−１）。
【０１５３】
図１１の上段に示す情報処理の結果として、検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であるベクトルＱＶ１ｋ（ｋ＝１、２、３、４）が分散表現空間の近い位置にクラスタＣＬ１１としてマッピングされる様子が示されている。例えば、検索クエリＱ１ｋ（ｋ＝１、２、３、４）は、ユーザＵ１によって「ある場所（東京都港区付近）で飲食店を探す」という検索意図の下で検索された検索クエリの集合であると推定される。すなわち、検索クエリＱ１ｋ（ｋ＝１、２、３、４）は、「ある場所（東京都港区付近）で飲食店を探す」という検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであると推定される。ここで、生成装置５０は、「ある場所（東京都港区付近）で飲食店を探す」という検索意図で入力された所定の検索クエリが第１モデルに入力されると、クラスタＣＬ１１の位置にマッピングされるような分散表現を出力することができる。これにより、例えば、生成装置５０は、クラスタＣＬ１１の位置にマッピングされる分散表現に対応する検索クエリを抽出することにより、「ある場所（東京都港区付近）で飲食店を探す」という検索意図に応じた検索クエリを抽出することができる。したがって、生成装置５０は、検索クエリの意味を適切に解釈可能とすることができる。
【０１５４】
図１１の下段に示す例では、生成装置５０は、同一のユーザＵ２によって所定の時間内に連続して入力された３個の検索クエリである検索クエリＱ２１（「冷蔵庫  ４００Ｌ」）、検索クエリＱ２２（「冷蔵庫  中型」）、検索クエリＱ２３（「冷蔵庫  中型  おすすめ」）を抽出する。生成装置５０は、検索クエリが入力された順番に並べると、検索クエリＱ２１、検索クエリＱ２２、検索クエリＱ２３の順番で入力された３個の検索クエリを抽出する。生成装置５０は、３個の検索クエリを抽出すると、時系列的に隣り合う２つの検索クエリを一対の検索クエリとして、２対の検索クエリのペアである（検索クエリＱ２１、検索クエリＱ２２）、（検索クエリＱ２２、検索クエリＱ２３）を抽出する（ステップＳ２１−２）。
【０１５５】
続いて、生成装置５０は、抽出した検索クエリＱ２ｍ（ｍ＝１、２、３）を第１モデルＭ１に入力して、検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であるベクトルＢＱＶ２ｍ（ｍ＝１、２、３）を出力する。ここで、ベクトルＢＱＶ２ｍ（ｍ＝１、２、３）は、第１モデルＭ１の出力層から出力されたばかりの検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であって、第１モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す（ステップＳ２２−２）。
【０１５６】
続いて、生成装置５０は、同一のユーザＵ２によって所定の時間内に連続して入力された一対の検索クエリは、所定の検索意図（例えば、「中型の冷蔵庫を調べる」という検索意図）で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリＱ２１の分散表現（ベクトルＱＶ２１）と、検索クエリＱ２１と対となる検索クエリＱ２２の分散表現（ベクトルＱＶ２２）とが、分散表現空間上で類似するように第１モデルＭ１を学習させる。また、生成装置５０は、検索クエリＱ２２の分散表現（ベクトルＱＶ２２）と、検索クエリＱ２２と対となる検索クエリＱ２３の分散表現（ベクトルＱＶ２３）とが、分散表現空間上で類似するように第１モデルＭ１を学習させる。このように、生成装置５０は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように第１モデルＭ１を学習させることで、検索クエリから分散表現を出力する第１モデルＭ１を生成する（ステップＳ２３−２）。
【０１５７】
図１１の下段に示す情報処理の結果として、検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であるベクトルＱＶ２ｍ（ｍ＝１、２、３）が分散表現空間の近い位置にクラスタＣＬ２１としてマッピングされる様子が示されている。例えば、検索クエリＱ２ｍ（ｍ＝１、２、３）は、ユーザＵ２によって「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリの集合であると推定される。すなわち、Ｑ２ｍ（ｍ＝１、２、３）は、「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであると推定される。ここで、生成装置５０は、「中型の冷蔵庫を調べる」という検索意図で入力された所定の検索クエリが第１モデルに入力されると、クラスタＣＬ２１の位置にマッピングされるような分散表現を出力することができる。これにより、例えば、生成装置５０は、クラスタＣＬ２１の位置にマッピングされる分散表現に対応する検索クエリを抽出することにより、「中型の冷蔵庫を調べる」という検索意図に応じた検索クエリを抽出することができる。したがって、生成装置５０は、検索クエリの意味を適切に解釈可能とすることができる。
【０１５８】
また、本願発明に係る生成装置５０は、ランダムに抽出された複数の検索クエリは、異なる検索意図の下で検索された検索クエリであるという点で、相互に相違する特徴を有する検索クエリであるとみなして第１モデルＭ１を学習させる。具体的には、生成装置５０は、所定の検索クエリの分散表現と、所定の検索クエリとは無関係にランダムに抽出された検索クエリの分散表現とが分散表現空間上で遠くにマッピングされるように第１モデルＭ１のトレーニングを行う。図１１に示す例では、生成装置５０は、検索クエリＱ１１とは無関係にランダムに検索クエリを抽出したところ、検索クエリＱ２１が抽出されたとする。この場合、生成装置５０は、検索クエリＱ１１の分散表現（ベクトルＱＶ１１）と、検索クエリＱ１１とは無関係にランダムに抽出された検索クエリＱ２１の分散表現（ベクトルＱＶ２１）とが分散表現空間上で遠くにマッピングされるように第１モデルＭ１のトレーニングを行う。その結果として、「ある場所（東京都港区付近）で飲食店を探す」という検索意図の下で検索された検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であるベクトルＱＶ１ｋ（ｋ＝１、２、３、４）を含むクラスタＣＬ１１と、「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であるベクトルＱＶ２ｍ（ｍ＝１、２、３）を含むクラスタＣＬ２１とは、分散表現空間上で遠くにマッピングされる。すなわち、本願発明に係る生成装置５０は、ランダムに抽出された複数の検索クエリの分散表現が相違するように第１モデルＭ１を学習させることにより、検索意図が異なる検索クエリの分散表現を分散表現空間上で遠い位置に出力可能とする。
【０１５９】
なお、生成装置５０が生成した第１モデルＭ１によって出力された分散表現が分散表現空間にマッピングされた結果として、上述したクラスタＣＬ１１とクラスタＣＬ２１の他にも、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現の集合であるクラスタＣＬ１２やクラスタＣＬ２２が生成される。
【０１６０】
上述したように、生成装置５０は、ユーザによって入力された検索クエリを取得する。また、生成装置５０は、取得した検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する第１モデルを生成する。すなわち、本願発明に係る生成装置５０は、所定の時間内に連続して入力された複数の検索クエリは、所定の検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであるとみなして第１モデルを学習させる。具体的には、生成装置５０は、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現が類似するように第１モデルを学習させることで、所定の検索クエリから所定の検索クエリの特徴情報を含む分散表現を出力する第１モデルを生成する。すなわち、本願発明に係る生成装置５０は、所定の時間内に連続して入力された複数の検索クエリの分散表現が類似するように第１モデルＭ１を学習させることにより、所定の検索意図の下で検索された検索クエリの分散表現を分散表現空間上で近い位置に出力可能とする。これにより、生成装置５０は、検索クエリを入力したユーザのコンテクストに応じて検索クエリの意味（検索意図）を出力（解釈）することを可能にする。したがって、生成装置５０は、検索クエリの意味を適切に解釈可能とすることができる。さらに、生成装置５０は、所定の検索クエリの特徴情報を含む分散表現の近傍にマッピングされる分散表現に対応する検索クエリを抽出することにより、所定の検索クエリが検索された検索意図に応じた検索クエリを抽出することができる。すなわち、生成装置５０は、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、ユーザの検索動向を分析することを可能にする。したがって、生成装置５０は、ユーザの検索動向の分析精度を高めることができる。また、生成装置５０が生成した第１モデルＭ１を検索システムの一部として機能させることもできる。あるいは、生成装置５０は、第１モデルＭ１によって予測された検索クエリの特徴情報を利用する他のシステム（例えば、検索エンジン）への入力情報として、第１モデルＭ１が出力した検索クエリの分散表現を提供することもできる。これにより、検索システムは、第１モデルＭ１によって予測された検索クエリの特徴情報に基づいて、検索結果として出力されるコンテンツを選択可能になる。すなわち、検索システムは、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、検索結果として出力されるコンテンツを選択可能になる。さらに、検索システムは、第１モデルＭ１によって予測された検索クエリの特徴情報に基づいて、検索結果として出力されるコンテンツに含まれる文字列の分散表現と検索クエリの分散表現との類似度を算出可能になる。そして、検索システムは、算出した類似度に基づいて、検索結果として出力されるコンテンツの表示順を決定可能になる。すなわち、検索システムは、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、検索結果として出力されるコンテンツの表示順を決定可能になる。したがって、生成装置５０は、検索サービスにおけるユーザビリティを向上させることができる。
【０１６１】
〔２−２．第２学習モデルの生成処理〕
次に、図１２を用いて、第２学習モデルの生成処理の流れについて説明する。図１２は、実施形態に係る第２学習モデルの生成処理の一例を示す図である。なお、以下では、適宜、第２学習モデルを第２モデル（又は、第２モデルＭ２）と記載する。図１２の上段に示す例では、生成装置５０は、同一のユーザＵ１によって所定の時間内に連続して入力された４個の検索クエリである検索クエリＱ１１（「六本木  パスタ」）、検索クエリＱ１２（「六本木  イタリアン」）、検索クエリＱ１３（「赤坂  パスタ」）、検索クエリＱ１４（「麻布  パスタ」）を抽出する。生成装置５０は、同一のユーザＵ１によって各検索クエリが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。また、生成装置５０は、同一のユーザＵ１によって各検索クエリのペアが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。ここで、４個の検索クエリは、検索クエリＱ１１、検索クエリＱ１２、検索クエリＱ１３、検索クエリＱ１４の順番でユーザＵ１によって各検索クエリが所定の時間内に入力された検索クエリであるとする。生成装置５０は、４個の検索クエリを抽出すると、時系列的に隣り合う２つの検索クエリを一対の検索クエリとして、３対の検索クエリのペアである（検索クエリＱ１１、検索クエリＱ１２）、（検索クエリＱ１２、検索クエリＱ１３）、（検索クエリＱ１３、検索クエリＱ１４）を抽出する。生成装置５０は、３対の検索クエリのペアを抽出すると、抽出した検索クエリＱ１ｋ（ｋ＝１、２、３、４）を第１モデルＭ１に入力する（ステップＳ３１）。なお、生成装置５０は、同一のユーザＵ１によって全ての検索クエリが所定の時間内に入力された複数の検索クエリを抽出してもよい。そして、生成装置５０は、時系列的に隣り合うか否かに関わらず、抽出した複数の検索クエリの中から２つの検索クエリを選択して、選択した２つの検索クエリを一対の検索クエリとして抽出してもよい。
【０１６２】
続いて、生成装置５０は、検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であるベクトルＢＱＶ１ｋ（ｋ＝１、２、３、４）を第１モデルＭ１の出力データとして出力する（ステップＳ３２）。ここで、ベクトルＢＱＶ１ｋ（ｋ＝１、２、３、４）は、第１モデルＭ１の出力層から出力されたばかりの検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であって、第１モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す。
【０１６３】
ここで、同一のユーザＵ１によって所定の時間内に連続して入力された検索クエリＱ１ｋ（ｋ＝１、２、３、４）は、例えば、ユーザＵ１によって「ある場所（東京都港区付近）で飲食店を探す」という検索意図の下で検索された検索クエリの集合であると推定される。すなわち、検索クエリＱ１ｋ（ｋ＝１、２、３、４）は、「ある場所（東京都港区付近）で飲食店を探す」という検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであると推定される。そこで、生成装置５０は、連続して入力された検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する第１モデルを生成する（ステップＳ３３）。具体的には、生成装置５０は、連続して入力された検索クエリの分散表現が類似するものとして学習することで、所定の検索クエリから所定の検索クエリの分散表現を予測する第１モデルＭ１を生成する。例えば、生成装置５０は、検索クエリＱ１１の分散表現（ベクトルＱＶ１１）と、検索クエリＱ１１と対となる検索クエリＱ１２の分散表現（ベクトルＱＶ１２）とが、分散表現空間上で類似するように第１モデルＭ１を学習させる。また、生成装置５０は、検索クエリＱ１２の分散表現（ベクトルＱＶ１２）と、検索クエリＱ１２と対となる検索クエリＱ１３の分散表現（ベクトルＱＶ１３）とが、分散表現空間上で類似するように第１モデルＭ１を学習させる。また、生成装置５０は、検索クエリＱ１３の分散表現（ベクトルＱＶ１３）と、検索クエリＱ１３と対となる検索クエリＱ１４の分散表現（ベクトルＱＶ１４）とが、分散表現空間上で類似するように第１モデルＭ１を学習させる。
【０１６４】
図１２の上段の右側には、学習済みの第１モデルＭ１の出力結果として、同一のユーザＵ１によって所定の時間内に入力された検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であるベクトルＱＶ１ｋ（ｋ＝１、２、３、４）が分散表現空間のクラスタＣＬ１１としてマッピングされる様子が示されている。このように、生成装置５０は、同一のユーザによって所定の時間内に入力された複数の検索クエリが有する特徴を学習した第１学習モデルＭ１を生成する。
【０１６５】
生成装置５０は、第１モデルＭ１を生成すると、生成した第１モデルＭ１（第１モデルＭ１のモデルデータＭＤＴ１）を取得する。生成装置５０は、第１モデルＭ１を取得すると、取得した第１モデルＭ１を用いて、第２学習モデルＭ２を生成する。具体的には、生成装置５０は、第１モデルＭ１を再学習させることにより、第１モデルＭ１とは学習モデルの重みである接続係数が異なる第２モデルＭ２を生成する。より具体的には、生成装置５０は、第１モデルＭ１を用いて、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルＭ２を生成する（ステップＳ３４）。
【０１６６】
図１２の下段に示す例では、生成装置５０は、検索クエリが第２モデルＭ２に入力された際に、ＣＡＴ１１（「飲食店を探す」）、ＣＡＴ１２（「商品を探す」）、ＣＡＴ１３（「飲食店を予約する」）、ＣＡＴ１４（「商品を購入する」）の４つのカテゴリのいずれのカテゴリに属するかを予測する第２モデルＭ２を生成する。具体的には、生成装置５０は、入力情報として検索クエリが第２モデルＭ２に入力された際に、出力情報として検索クエリがそのカテゴリに属する確率をカテゴリ毎に出力する第２モデルＭ２を生成する。例えば、生成装置５０は、第２モデルＭ２の正解データとして、検索クエリと検索クエリが属するカテゴリ（ＣＡＴ１１〜ＣＡＴ１４のいずれか）との組を学習する。
【０１６７】
なお、検索クエリがＣＡＴ１１（「飲食店を探す」）に属することは、検索クエリが飲食店を探す意図で入力された検索クエリであることを示す。また、ＣＡＴ１２（「商品を探す」）に属することは、検索クエリが商品を探す意図で入力された検索クエリであることを示す。また、検索クエリがＣＡＴ１３（「飲食店を予約する」）に属することは、検索クエリが飲食店を予約する意図で入力された検索クエリであることを示す。また、検索クエリがＣＡＴ１４（「商品を購入する」）に属することは、検索クエリが商品を購入する意図で入力された検索クエリであることを示す。
【０１６８】
具体的には、生成装置５０は、検索クエリが学習モデルに入力された際に、学習モデルが出力する分散表現の分類結果が、検索クエリが属するカテゴリに対応するように学習することで、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２モデルＭ２を生成する。そして、生成装置５０は、例えば、入力情報として検索クエリが第２モデルＭ２に入力された際に、出力情報として検索クエリがそのカテゴリに属する確率をカテゴリＣＡＴ１１〜ＣＡＴ１４毎に出力する第２モデルＭ２を生成する。
【０１６９】
例えば、生成装置５０は、入力情報として検索クエリＱ１１（「六本木  パスタ」）が第２モデルＭ２に入力された際に（ステップＳ３５）、出力情報として検索クエリＱ１１（「六本木  パスタ」）の分散表現であるベクトルＢＱＶ１１を出力する。ここで、ベクトルＢＱＶ１１は、第２モデルＭ２の出力層から出力されたばかりの検索クエリＱ１１の分散表現であって、第２モデルＭ２にフィードバックをかける前（学習前）の分散表現を示す。ここで、検索クエリＱ１１（「六本木  パスタ」）が属する正解カテゴリがＣＡＴ１１（「飲食店を探す」）であるとする。この場合、生成装置５０は、出力された検索クエリＱ１１（「六本木  パスタ」）の分散表現であるベクトルＢＱＶ１１がＣＡＴ１１（「飲食店を探す」）に分類される確率が所定の閾値を超えるように第２モデルＭ２を学習させる。なお、生成装置５０は、あらかじめ用意された正解データを用いて第２モデルを学習させる。生成装置５０は、第２モデルＭ２の正解データを生成してもよい。そして、生成装置５０は、生成した正解データを用いて第２モデルＭ２を学習させてもよい。具体的には、生成装置５０は、検索クエリを検索したユーザの検索後の行動に基づいて、検索クエリが属する正解カテゴリを決定する。より具体的には、生成装置５０は、所定の検索クエリを検索したユーザに対して、検索後に所定の行動を起こしたユーザの割合が所定の閾値を超える所定の行動を、正解カテゴリに対応する行動として決定する。例えば、検索クエリＱ１１（「六本木  パスタ」）を検索したユーザが検索後に所定の行動を起こしたユーザの割合として、飲食店を探す行動を起こしたユーザの割合が９０％、検索後に商品を探す行動を起こしたユーザの割合が０％、検索後に飲食店を予約する行動を起こしたユーザの割合が１０％、検索後に商品を購入する行動を起こしたユーザの割合が０％であったとする。この場合、生成装置５０は、飲食店を探す行動を起こしたユーザの割合が所定の閾値（例えば、９０％）を超えるため、飲食店を探す行動を検索クエリＱ１１（「六本木  パスタ」）の正解カテゴリに対応する行動として決定する。そして、生成装置５０は、正解カテゴリに対応する行動を飲食店を探す行動であると決定したので、検索クエリＱ１１（「六本木  パスタ」）が属する正解カテゴリをＣＡＴ１１（「飲食店を探す」）に決定する。
【０１７０】
例えば、生成装置５０は、学習前の第２モデルＭ２に検索クエリＱ１１（「六本木  パスタ」）が入力された際に、分散表現であるベクトルＢＱＶ１１がＣＡＴ１１（「飲食店を探す」）に分類される確率を８０％、ＣＡＴ１２（「商品を探す」）に分類される確率を０％、ＣＡＴ１３（「飲食店を予約」）に分類される確率を２０％、ＣＡＴ１４（「商品を購入する」）に分類される確率を０％と出力したとする。この場合、生成装置５０は、分散表現であるベクトルＢＱＶ１１がＣＡＴ１１（「飲食店を探す」）に分類される確率を所定の閾値（例えば、９０％）を超えるように第２モデルＭ２を学習させる。また、生成装置５０は、分散表現であるベクトルＢＱＶ１１がＣＡＴ１１（「飲食店を探す」）に分類される確率が所定の閾値（例えば、９０％）を超えるように学習させるのに合わせて、分散表現であるベクトルＢＱＶ１１が他のカテゴリＣＡＴ１３（「飲食店を予約」）に分類される確率を１０％に下げるように第２モデルＭ２を学習させる。
【０１７１】
このように、生成装置５０は、入力情報として所定の検索クエリが入力されると、出力情報として所定の検索クエリの分散表現が正解カテゴリに分類される確率が所定の閾値を超えるように第２モデルを学習させる。そして、生成装置５０は、入力情報として所定の検索クエリが入力された際に、所定の検索クエリの分散表現がそのカテゴリに属する確率が所定の閾値を超えるカテゴリを、所定の検索クエリのカテゴリとして出力する。例えば、生成装置５０は、学習済みの第２モデルＭ２に入力情報として検索クエリＱ１１（「六本木  パスタ」）が入力されると、検索クエリＱ１１（「六本木  パスタ」）の分散表現であるベクトルＢＱＶ１１がカテゴリＣＡＴ１１（「飲食店を探す」）に属する確率が９０％を超えるので、出力情報として検索クエリが属するカテゴリをＣＡＴ１１（「飲食店を探す」）と出力する（ステップＳ３６）。このように、生成装置５０は、検索クエリと検索クエリの正解カテゴリとの組を学習することで、所定の検索クエリから所定の検索クエリのカテゴリを予測する第２モデルを生成する（ステップＳ３７）。
【０１７２】
一般的に、ユーザはある意図を持って検索を複数回行うと考えられるため、所定の時間内に連続して入力された検索クエリは、検索意図が近いという仮定が成り立つ。そこで、本願発明に係る生成装置５０は、所定の時間内に連続して入力された複数の検索クエリは、所定の検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであるとみなして第１モデルＭ１を学習させる。これにより、生成装置５０は、検索意図を考慮した検索クエリの特徴を第１モデルＭ１に学習させることができる。そして、生成装置５０は、検索意図を考慮した検索クエリの特徴を学習した第１モデルＭ１を活用して、所定の検索クエリから所定の検索クエリのカテゴリを予測する第２モデルを効率的に生成することができる。これにより、生成装置５０は、検索クエリを入力したユーザの検索意図を考慮したカテゴリに検索クエリを分類することを可能にする。また、従来、検索クエリをカテゴリに分類し、高い分類精度を得るためには、十分な量の正解データを用意することが必要であった。しかしながら、検索クエリ自体、多種多様であり、ロングテイルな性質を持つものであるため、多数の検索クエリに対応する正解カテゴリをラベル付けするのは、非常に手間がかかり困難である。ここで、生成装置５０は、正解カテゴリをラベル付けする代わりに、ユーザの検索意図（検索クエリを入力したユーザのコンテクスト）を一種の正解として、検索クエリのカテゴリを予測する第２モデルを学習させることができる。これにより、生成装置５０は、人手で検索クエリの正解カテゴリをラベル付けすることなく、第２モデルを学習させることができる。すなわち、生成装置５０は、正解データが少ないときでも、十分な分類精度を得られるようになる。また、生成装置５０は、正解データが多いときであれば、さらに高い分類精度を得られるようになる。したがって、生成装置５０は、検索クエリの分類精度を高めることができる。
【０１７３】
〔２−３．情報処理装置の構成〕
次に、図１３を用いて、実施形態に係る生成装置５０の構成について説明する。図１３は、実施形態に係る生成装置５０の構成例を示す図である。図１３に示すように、生成装置５０は、通信部５１と、記憶部５３と、制御部５２とを有する。なお、生成装置５０は、生成装置５０の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【０１７４】
（通信部５１）
通信部５１は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部５１は、ネットワークと有線または無線で接続され、例えば、ユーザ端末１０と、検索サーバ２０との間で情報の送受信を行う。
【０１７５】
（記憶部５３）
記憶部５３は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部５３は、図１３に示すように、クエリ情報記憶部５３１と、ベクトル情報記憶部５３２と、分類定義記憶部５３３と、カテゴリ情報記憶部５３４と、モデル情報記憶部５３５とを有する。
【０１７６】
（クエリ情報記憶部５３１）
クエリ情報記憶部５３１は、ユーザによって入力された検索クエリに関する各種の情報を記憶する。図１４に、実施形態に係るクエリ情報記憶部の一例を示す。図１４に示す例では、クエリ情報記憶部５３１は、「ユーザＩＤ」、「日時」、「検索クエリ」、「検索クエリＩＤ」といった項目を有する。
【０１７７】
「ユーザＩＤ」は、検索クエリを入力したユーザを識別するための識別情報を示す。「日時」は、検索サーバがユーザから検索クエリを受け付けた日時を示す。「検索クエリ」は、ユーザによって入力された検索クエリを示す。「検索クエリＩＤ」は、ユーザによって入力された検索クエリを識別するための識別情報を示す。
【０１７８】
図１４の１レコード目に示す例では、検索クエリＩＤ「Ｑ１１」で識別される検索クエリ（検索クエリＱ１１）は、図１０に示した検索クエリＱ１１に対応する。また、ユーザＩＤ「Ｕ１」は、検索クエリＱ１１を入力したユーザがユーザＩＤ「Ｕ１」で識別されるユーザ（ユーザＵ１）であることを示す。また、日時「２０１８／９／１  ＰＭ１７：００」は、検索サーバがユーザＵ１から検索クエリＱ１１を受け付けた日時が２０１８年９月１日の午後１７：００であることを示す。また、検索クエリ「六本木  パスタ」は、ユーザＵ１によって入力された検索クエリＱ１１を示す。具体的には、検索クエリ「六本木  パスタ」は、地名を示す「六本木」と食品の種類を示す「パスタ」の文字とが区切り文字であるスペースで区切られた文字列であることを示す。
【０１７９】
（ベクトル情報記憶部５３２）
ベクトル情報記憶部５３２は、検索クエリの分散表現であるベクトルに関する各種の情報を記憶する。図１５に、実施形態に係るベクトル情報記憶部の一例を示す。図１５に示す例では、ベクトル情報記憶部５３２は、「ベクトルＩＤ」、「検索クエリＩＤ」、「ベクトル情報」といった項目を有する。
【０１８０】
「ベクトルＩＤ」は、検索クエリの分散表現であるベクトルを識別するための識別情報を示す。「検索クエリＩＤ」は、ベクトルに対応する検索クエリを識別するための識別情報を示す。「ベクトル情報」は、検索クエリの分散表現であるＮ次元のベクトルを示す。検索クエリの分散表現であるベクトルは、例えば、１２８次元のベクトルである。
【０１８１】
図１５の１レコード目に示す例では、ベクトルＩＤ「ＱＶ１１」で識別されるベクトル（ベクトルＱＶ１１）は、図１０に示した検索クエリＱ１１の分散表現であるベクトルＱＶ１１に対応する。また、検索クエリＩＤ「Ｑ１１」で識別される検索クエリ（検索クエリＱ１１）は、ベクトルＱＶ１１に対応する検索クエリが検索クエリＱ１１であることを示す。また、ベクトル情報「ＱＶＤＴ１１」は、検索クエリＱ１１の分散表現であるＮ次元のベクトルを示す。
【０１８２】
（分類定義記憶部５３３）
分類定義記憶部５３３は、検索クエリが分類されるカテゴリの定義に関する各種の情報を記憶する。図１６に、実施形態に係る分類定義記憶部の一例を示す。図１６に示す例では、分類定義記憶部５３３は、「大分類ＩＤ」、「大分類」、「小分類ＩＤ」、「小分類」といった項目を有する。
【０１８３】
「大分類」は、検索クエリが分類されるカテゴリの大分類を示す。「大分類ＩＤ」は、大分類を識別するための識別情報を示す。図１６に示す例では、大分類「購買行動系」は、図１の下段に示す例で説明した大分類に対応する。大分類「購買行動系」は、検索クエリをユーザの購買行動に基づいて分類するカテゴリの大分類を示す。図１６に示す例では、大分類「購買行動系」は、さらに４つの小分類を有する。大分類ＩＤ「ＣＡＴ１」は、大分類「購買行動系」を識別するための識別情報を示す。
【０１８４】
「小分類」、検索クエリが分類されるカテゴリの小分類を示す。「小分類ＩＤ」は、小分類を識別するための識別情報を示す。図１６に示す例では、小分類「飲食店を探す」は、大分類「購買行動系」に属する分類であって、小分類に分類される検索クエリが、ユーザによって飲食店を探す意図で入力された検索クエリであることを示す。小分類ＩＤ「ＣＡＴ１１」は、小分類「飲食店を探す」を識別するための識別情報を示す。
【０１８５】
小分類「商品を探す」は、大分類「購買行動系」に属する分類であって、小分類に分類される検索クエリが、ユーザによって商品を探す意図で入力された検索クエリであることを示す。小分類ＩＤ「ＣＡＴ１２」は、小分類「商品を探す」を識別するための識別情報を示す。
【０１８６】
小分類「飲食店を予約」は、大分類「購買行動系」に属する分類であって、小分類に分類される検索クエリが、ユーザによって飲食店を予約する意図で入力された検索クエリであることを示す。小分類ＩＤ「ＣＡＴ１３」は、小分類「飲食店を予約」を識別するための識別情報を示す。
【０１８７】
小分類「商品を購入」は、大分類「購買行動系」に属する分類であって、小分類に分類される検索クエリが、ユーザによって商品を購入する意図で入力された検索クエリであることを示す。小分類ＩＤ「ＣＡＴ１４」は、小分類「商品を購入」を識別するための識別情報を示す。
【０１８８】
（カテゴリ情報記憶部５３４）
カテゴリ情報記憶部５３４は、検索クエリが属するカテゴリに関する各種の情報を記憶する。具体的には、カテゴリ情報記憶部５３４は、学習済みの第２学習モデルに検索クエリが入力された際に、第２学習モデルが出力するカテゴリに関する各種の情報を記憶する。図１７に、実施形態に係るカテゴリ情報記憶部の一例を示す。図１７に示す例では、カテゴリ情報記憶部５３４は、「検索クエリＩＤ」、「大分類ＩＤ」、「小分類ＩＤ」、「確率（％）」といった項目を有する。
【０１８９】
「検索クエリＩＤ」は、ユーザによって入力された検索クエリを識別するための識別情報を示す。図１７に示す例では、検索クエリＩＤ「Ｑ１１」で識別される検索クエリ（検索クエリＱ１１）は、図１２に示した検索クエリＱ１１に対応する。
【０１９０】
「大分類ＩＤ」は、大分類を識別するための識別情報を示す。「小分類ＩＤ」は、小分類を識別するための識別情報を示す。「確率（％）」は、学習済みの第２学習モデルに検索クエリが入力された際に、第２学習モデルが出力する小分類毎の確率を示す。図１７に示す例では、確率（％）「９０」は、検索クエリＱ１１がカテゴリＣＡＴ１１に分類される確率が９０％であることを示す。
【０１９１】
（モデル情報記憶部５３５）
モデル情報記憶部５３５は、生成装置５０によって生成された学習モデルに関する各種の情報を記憶する。図１８に、実施形態に係るモデル情報記憶部の一例を示す。図１８に示す例では、モデル情報記憶部５３５は、「モデルＩＤ」、「モデルデータ」といった項目を有する。
【０１９２】
「モデルＩＤ」は、生成装置５０によって生成された学習モデルを識別するための識別情報を示す。「モデルデータ」は、生成装置５０によって生成された学習モデルのモデルデータを示す。例えば、「モデルデータ」には、検索クエリを分散表現に変換するためのデータが格納される。
【０１９３】
図１８の１レコード目に示す例では、モデルＩＤ「Ｍ１」で識別される学習モデルは、図１に示した第１モデルＭ１に対応する。また、モデルデータ「ＭＤＴ１」は、生成装置５０によって生成された第１モデルＭ１のモデルデータ（モデルデータＭＤＴ１）を示す。
【０１９４】
モデルデータＭＤＴ１は、検索クエリが入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された検索クエリに応じて、入力層に入力された検索クエリの分散表現を出力層から出力するよう、生成装置５０を機能させてもよい。
【０１９５】
ここで、モデルデータＭＤＴ１が「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデルデータＭＤＴ１が含む第１要素は、x1やx2等といった入力データ（xi）に対応する。また、第１要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第１要素は、入力層が有するいずれかのノードに対応し、第２要素は、出力層が有するノードと見做すことができる。
【０１９６】
また、モデルデータＭＤＴ１がＤＮＮ（Deep  Neural  Network）等、１つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、モデルデータＭＤＴ１が含む第１要素は、入力層または中間層が有するいずれかのノードに対応する。また、第２要素は、第１要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第１要素の重みは、第１要素と対応するノードから第２要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
【０１９７】
生成装置５０は、上述した回帰モデルやニューラルネットワーク等、任意の構造を有するモデルを用いて、分散表現の算出を行う。具体的には、モデルデータＭＤＴ１は、検索クエリが入力された場合に、分散表現を出力するように係数が設定される。生成装置５０は、このようなモデルデータＭＤＴ１を用いて、分散表現を算出する。
【０１９８】
なお、上記例では、モデルデータＭＤＴ１が、検索クエリが入力された場合に、検索クエリの分散表現を出力するモデル（以下、モデルＸ１という。）である例を示した。しかし、実施形態に係るモデルデータＭＤＴ１は、モデルＸ１にデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデルデータＭＤＴ１は、検索クエリを入力とした際に、モデルＸ１が出力した分散表現を入力して学習されたモデル（以下、モデルＹ１という。）であってもよい。または、モデルデータＭＤＴ１は、検索クエリを入力とし、モデルＹ１の出力値を出力とするよう学習されたモデルであってもよい。
【０１９９】
また、生成装置５０がＧＡＮ（Generative  Adversarial  Networks）を用いた推定処理を行う場合、モデルデータＭＤＴ１は、ＧＡＮの一部を構成するモデルであってもよい。
【０２００】
図１８の２レコード目に示す例では、モデルＩＤ「Ｍ２」で識別される学習モデルは、図１に示した第２モデルＭ２に対応する。また、モデルデータ「ＭＤＴ２」は、生成装置５０によって生成された第２モデルＭ２のモデルデータ（モデルデータＭＤＴ２）を示す。
【０２０１】
モデルデータＭＤＴ２は、検索クエリが入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された検索クエリに応じて、入力層に入力された検索クエリが各カテゴリに属する確率を出力層から出力するよう、生成装置５０を機能させてもよい。
【０２０２】
ここで、モデルデータＭＤＴ２が「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデルデータＭＤＴ２が含む第１要素は、x1やx2等といった入力データ（xi）に対応する。また、第１要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第１要素は、入力層が有するいずれかのノードに対応し、第２要素は、出力層が有するノードと見做すことができる。
【０２０３】
また、モデルデータＭＤＴ２がＤＮＮ（Deep  Neural  Network）等、１つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、モデルデータＭＤＴ２が含む第１要素は、入力層または中間層が有するいずれかのノードに対応する。また、第２要素は、第１要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第１要素の重みは、第１要素と対応するノードから第２要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
【０２０４】
生成装置５０は、上述した回帰モデルやニューラルネットワーク等、任意の構造を有するモデルを用いて、検索クエリが各カテゴリに属する確率の算出を行う。具体的には、モデルデータＭＤＴ２は、検索クエリが入力された場合に、検索クエリが各カテゴリに属する確率を出力するように係数が設定される。生成装置５０は、このようなモデルデータＭＤＴ２を用いて、検索クエリが各カテゴリに属する確率を算出する。
【０２０５】
なお、上記例では、モデルデータＭＤＴ２が、検索クエリが入力された場合に、検索クエリの分散表現を出力するモデル（以下、モデルＸ２という。）である例を示した。しかし、実施形態に係るモデルデータＭＤＴ２は、モデルＸ２にデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデルデータＭＤＴ２は、検索クエリを入力とした際に、モデルＸ２が出力した分散表現を入力して学習されたモデル（以下、モデルＹ２という。）であってもよい。または、モデルデータＭＤＴ２は、検索クエリを入力とし、モデルＹ２の出力値を出力とするよう学習されたモデルであってもよい。
【０２０６】
また、生成装置５０がＧＡＮ（Generative  Adversarial  Networks）を用いた推定処理を行う場合、モデルデータＭＤＴ２は、ＧＡＮの一部を構成するモデルであってもよい。
【０２０７】
（制御部５２）
図１３の説明に戻って、制御部５２は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、生成装置５０内部の記憶装置に記憶されている各種プログラム（生成プログラムの一例に相当）がＲＡＭを作業領域として実行されることにより実現される。また、制御部５２は、コントローラであり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。
【０２０８】
また、制御部５２は、モデル情報記憶部５３５に記憶されている第１モデルＭ１（モデルデータＭＤＴ１）に従った情報処理により、入力層に入力された検索クエリに対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、分散表現を出力層から出力するよう、コンピュータを機能させる。
【０２０９】
また、制御部５２は、モデル情報記憶部５３５に記憶されている第２モデルＭ２（モデルデータＭＤＴ２）に従った情報処理により、入力層に入力された検索クエリに対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、検索クエリが各カテゴリに属する確率を出力層から出力するよう、コンピュータを機能させる。
【０２１０】
図１３に示すように、制御部５２は、取得部５２１と、抽出部５２２と、生成部５２３を有し、以下に説明する情報処理の作用を実現または実行する。なお、制御部５２の内部構成は、図１３に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【０２１１】
（取得部５２１）
取得部５２１は、種々の情報を取得する。具体的には、取得部５２１は、ユーザによって入力された検索クエリを検索サーバ２０から取得する。取得部５２１は、ユーザによって入力された検索クエリを取得すると、取得した検索クエリをクエリ情報記憶部５３１に格納する。また、取得部５２１は、検索クエリの分散表現であるベクトルに関するベクトル情報を取得する。取得部５２１は、ベクトル情報を取得すると、取得したベクトル情報をベクトル情報記憶部５３２に格納する。また、取得部５２１は、検索クエリと検索クエリが属するカテゴリの分類を定義する情報を取得する。取得部５２１は、検索クエリと検索クエリが属するカテゴリの分類を定義する分類定義情報を取得すると、取得した分類定義情報を分類定義記憶部５３３に格納する。また、取得部５２１は、検索クエリが属するカテゴリに関するカテゴリ情報を取得する。取得部５２１は、カテゴリ情報を取得すると、取得したカテゴリ情報をカテゴリ情報記憶部５３４に格納する。
【０２１２】
（抽出部５２２）
抽出部５２２は、種々の情報を抽出する。具体的には、抽出部５２２は、取得部５２１によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリを抽出する。例えば、抽出部５２２は、同一のユーザによって各検索クエリが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。続いて、抽出部５２２は、同一のユーザによって所定の時間内に入力された複数の検索クエリのうち、同一のユーザによって所定の時間内に連続して入力された一対の検索クエリを抽出する。例えば、抽出部５２２は、同一のユーザによって各検索クエリのペアが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。例えば、抽出部５２２は、取得部５２１によって取得された検索クエリのうち、同一のユーザＵ１によって所定の時間内に連続して入力された４個の検索クエリである検索クエリＱ１１（「六本木  パスタ」）、検索クエリＱ１２（「六本木  イタリアン」）、検索クエリＱ１３（「赤坂  パスタ」）、検索クエリＱ１４（「麻布  パスタ」）を抽出する。抽出部５２２は、検索クエリが入力された順番に並べると、検索クエリＱ１１、検索クエリＱ１２、検索クエリＱ１３、検索クエリＱ１４の順番で入力された４個の検索クエリを抽出する。続いて、抽出部５２２は、４個の検索クエリを抽出すると、時系列的に隣り合う２つの検索クエリを一対の検索クエリとして、３対の検索クエリのペアである（検索クエリＱ１１、検索クエリＱ１２）、（検索クエリＱ１２、検索クエリＱ１３）、（検索クエリＱ１３、検索クエリＱ１４）を抽出する。なお、抽出部５２２は、同一のユーザによって全ての検索クエリが所定の時間内に入力された複数の検索クエリを抽出してもよい。そして、抽出部５２２は、時系列的に隣り合うか否かに関わらず、抽出した複数の検索クエリの中から２つの検索クエリを選択して、選択した２つの検索クエリを一対の検索クエリとして抽出してもよい。
【０２１３】
また、抽出部５２２は、取得部５２１によって取得された検索クエリのうち、所定の検索クエリと所定の検索クエリに無関係な他の検索クエリとを抽出する。例えば、抽出部５２２は、取得部５２１によって取得された検索クエリの中から、所定の検索クエリを抽出する。続いて、抽出部５２２は、取得部５２１によって取得された検索クエリの中から、所定の検索クエリとは無関係にランダムに他の検索クエリを抽出する。
【０２１４】
（生成部５２３）
生成部５２３は、種々の情報を生成する。具体的には、生成部５２３は、取得部５２１によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。具体的には、生成部５２３は、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現が類似するように学習モデルを学習させることで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。例えば、生成部５２３は、所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、学習モデルを生成する。例えば、生成部５２３は、一対の検索クエリの学習前の分散表現の類似度の値を算出する。また、生成部５２３は、一対の検索クエリの学習後の分散表現の類似度の値を算出する。続いて、生成部５２３は、学習前の分散表現の類似度の値よりも、学習後の分散表現の類似度の値が大きくなるように学習モデルを学習させる。このように、生成部５２３は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように学習モデルを学習させることで、検索クエリから分散表現を出力する学習モデルを生成する。より具体的には、生成部５２３は、ＲＮＮの一種であるＬＳＴＭを分散表現生成に用いたＤＳＳＭの技術を用いて、検索クエリから分散表現を出力する学習モデルを生成する。例えば、生成部５２３は、学習モデルの正解データとして、同一のユーザによって所定の時間内に入力された一対の検索クエリが類似する特徴を有するものとして、所定の検索クエリの分散表現と、所定の検索クエリと対となる他の検索クエリの分散表現とが、分散表現空間上で近くに存在するように学習する。また、生成部５２３は、第１学習モデルを生成すると、第１学習モデルを識別する識別情報と対応付けて、生成した第１学習モデル（モデルデータＭＤＴ１）をモデル情報記憶部５３５に格納する。
【０２１５】
〔２−４．第１学習モデルの一例〕
ここで、図１９を用いて生成装置５０が生成する第１学習モデルの一例について説明する。図１９は、実施形態に係る第１学習モデルの一例を示す図である。図１９に示す例では、生成装置５０が生成する第１学習モデルＭ１は、３層のＬＳＴＭ  ＲＮＮで構成されている。図１９に示す例では、抽出部５２２は、同一のユーザＵ１によって所定の時間内に連続して入力された「六本木  パスタ」という検索クエリＱ１１と「六本木  イタリアン」という検索クエリＱ１２とから成る一対の検索クエリを抽出する。生成部５２３は、抽出部５２２によって抽出されたた検索クエリＱ１１を第１学習モデルＭ１の入力層に入力する（ステップＳ４１）。
【０２１６】
続いて、生成部５２３は、第１学習モデルＭ１の出力層から検索クエリＱ１１の分散表現である２５６次元のベクトルＢＱＶ１１を出力する。また、生成部５２３は、抽出部５２２によって抽出された検索クエリＱ１２を第１学習モデルＭ１の入力層に入力する。続いて、生成部５２３は、第１学習モデルＭ１の出力層から検索クエリＱ１２の分散表現である２５６次元のベクトルＢＱＶ１２を出力する（ステップＳ４２）。
【０２１７】
続いて、生成部５２３は、連続して入力された２つの検索クエリの分散表現が類似するように学習することで、検索クエリから分散表現を出力する第１学習モデルＭ１を生成する（ステップＳ４３）。例えば、第１学習モデルＭ１にフィードバックをかける前（学習前）の検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１と検索クエリＱ１２の分散表現であるベクトルＢＱＶ１２とのなす角度の大きさをΘとする。また、第１学習モデルＭ１にフィードバックをかけた後（学習後）の検索クエリＱ１１の分散表現であるベクトルＱＶ１１と検索クエリＱ１２の分散表現であるベクトルＱＶ１２とのなす角度の大きさをΦとする。この時、生成部５２３は、ΘよりもΦが小さくなるように、第１学習モデルＭ１を学習させる。例えば、生成部５２３は、ベクトルＢＱＶ１１とベクトルＢＱＶ１２のコサイン類似度の値を算出する。また、生成部５２３は、ベクトルＱＶ１１とベクトルＱＶ１２のコサイン類似度の値を算出する。続いて、生成部５２３は、ベクトルＢＱＶ１１とベクトルＢＱＶ１２のコサイン類似度の値よりも、ベクトルＱＶ１１とベクトルＱＶ１２のコサイン類似度の値が大きくなるように（値が１に近づくように）学習モデルＭ１を学習させる。このように、生成部５２３は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように第１学習モデルＭ１を学習させることで、検索クエリから分散表現を出力する第１学習モデルＭ１を生成する。なお、生成部５２３は、コサイン類似度に限らず、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて分散表現の間の類似度を算出してもよい。また、生成部５２３は、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて学習モデルＭ１を学習させてもよい。例えば、生成部５２３は、分散表現同士のユークリッド距離や双曲空間等の非ユークリッド空間中での距離、マンハッタン距離、マハラノビス距離等といった所定の距離関数の値を算出する。続いて、生成部５２３は、分散表現同士の所定の距離関数の値（すなわち、分散表現空間における距離）が小さくなるように学習モデルＭ１を学習させてもよい。
【０２１８】
また、生成部５２３は、同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、第１学習モデルを生成する。例えば、生成部５２３は、地名を示す「六本木」と食品の種類を示す「パスタ」の文字とが区切り文字であるスペースで区切られた検索クエリ「六本木  パスタ」と、地名を示す「六本木」と料理の種類を示す「イタリアン」の文字とが区切り文字であるスペースで区切られた検索クエリ「六本木  イタリアン」とが類似する特徴を有するものとして学習することで、第１学習モデルを生成する。
【０２１９】
また、生成部５２３は、取得部５２１によって取得された検索クエリのうち、ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、第１学習モデルを生成する。具体的には、生成部５２３は、取得部５２１によって取得された検索クエリのうち、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、第１学習モデルを生成する。例えば、生成部５２３は、抽出部５２２によって抽出された所定の検索クエリの分散表現と、所定の検索クエリとは無関係にランダムに抽出された検索クエリの分散表現とが分散表現空間上で遠くにマッピングされるように第１学習モデルＭ１のトレーニングを行う。
【０２２０】
また、生成部５２３は、第２学習モデルを生成する。具体的には、生成部５２３は、モデル情報記憶部５３５を参照して、生成部５２３によって生成された第１学習モデル（第１学習モデルＭ１のモデルデータＭＤＴ１）を取得する。続いて、生成部５２３は、取得した第１学習モデルを用いて、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを生成する。生成部５２３は、第１モデルＭ１を取得すると、取得した第１モデルＭ１を用いて、第２学習モデルＭ２を生成する。生成部５２３は、第１モデルＭ１を再学習させることにより、第１モデルＭ１とは学習モデルの重みである接続係数が異なる第２モデルＭ２を生成する。具体的には、生成部５２３は、検索クエリが学習モデルに入力された際に、学習モデルが出力する分散表現の分類結果が、検索クエリが属するカテゴリに対応するように学習することで、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２モデルＭ２を生成する。
【０２２１】
具体的には、生成部５２３は、検索クエリが学習モデルに入力された際に、学習モデルが出力する分散表現の分類結果が、検索クエリが属するカテゴリに対応するように学習することで、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを生成する。生成部５２３は、入力情報として検索クエリが学習モデルに入力された際に、出力情報として検索クエリが属するカテゴリ毎の確率を出力する第２学習モデルを生成する。例えば、生成部５２３は、第１モデルＭ１を用いて、入力情報として所定の検索クエリが学習モデルに入力された際に、出力情報として検索クエリの分散表現がそのカテゴリに分類される確率をカテゴリ毎に出力する第２モデルＭ２を生成する。生成部５２３は、入力情報として所定の検索クエリが入力されると、出力情報として所定の検索クエリの分散表現が正解カテゴリに分類される確率が所定の閾値を超えるように第２モデルを学習させる。そして、生成部５２３は、入力情報として所定の検索クエリが入力された際に、所定の検索クエリの分散表現がそのカテゴリに属する確率が所定の閾値を超えるカテゴリを、所定の検索クエリのカテゴリとして出力する第２モデルＭ２を生成する。また、生成部５２３は、第２学習モデルを生成すると、第２学習モデルを識別する識別情報と対応付けて、生成した第２学習モデル（モデルデータＭＤＴ２）をモデル情報記憶部５３５に格納する。
【０２２２】
例えば、生成部５２３は、図１８に示すモデル情報記憶部５３５を参照して、第１モデルＭ１（第１モデルＭ１のモデルデータＭＤＴ１）を取得する。続いて、生成部５２３は、図１６に示す分類定義記憶部５３３を参照して、検索クエリを分類するカテゴリの大分類を選択する。続いて、生成部５２３は、大分類を選択すると、第２モデルＭ２の学習データとして、検索クエリと検索クエリが属する小分類との組を学習する。
【０２２３】
例えば、検索クエリＱ１１（「六本木  パスタ」）が属する正解カテゴリがＣＡＴ１１（「飲食店を探す」）であるとする。生成部５２３は、入力情報として検索クエリＱ１１（「六本木  パスタ」）が第２モデルＭ２に入力された際に、第２モデルＭ２の出力層から検索クエリＱ１１（「六本木  パスタ」）の分散表現であるベクトルＢＱＶ１１を出力する。ここで、ベクトルＢＱＶ１１は、第２モデルＭ２の出力層から出力されたばかりの検索クエリＱ１１の分散表現であって、第２モデルＭ２にフィードバックをかける前（学習前）の分散表現を示す。この場合、生成部５２３は、出力された検索クエリＱ１１（「六本木  パスタ」）の分散表現であるベクトルＢＱＶ１１が正解カテゴリＣＡＴ１１（「飲食店を探す」）に分類される確率が所定の閾値を超えるように第２モデルＭ２を学習させる。
【０２２４】
例えば、生成部５２３は、学習前の第２モデルＭ２に検索クエリＱ１１（「六本木  パスタ」）が入力された際に、分散表現であるベクトルＢＱＶ１１がＣＡＴ１１（「飲食店を探す」）に分類される確率を８０％、ＣＡＴ１２（「商品を探す」）に分類される確率を０％、ＣＡＴ１３（「飲食店を予約」）に分類される確率を２０％、ＣＡＴ１４（「商品を購入する」）に分類される確率を０％と出力したとする。この場合、生成部５２３は、分散表現であるベクトルＢＱＶ１１がＣＡＴ１１（「飲食店を探す」）に分類される確率を所定の閾値（例えば、９０％）を超えるように第２モデルＭ２を学習させる。また、生成部５２３は、分散表現であるベクトルＢＱＶ１１がＣＡＴ１１（「飲食店を探す」）に分類される確率が所定の閾値（例えば、９０％）を超えるように学習させるのに合わせて、分散表現であるベクトルＢＱＶ１１が他のカテゴリＣＡＴ１３（「飲食店を予約」）に分類される確率を１０％に下げるように第２モデルＭ２を学習させる。続いて、生成部５２３は、学習済みの第２モデルＭ２に入力情報として検索クエリＱ１１（「六本木  パスタ」）が入力されると、検索クエリＱ１１（「六本木  パスタ」）の分散表現であるベクトルＢＱＶ１１がカテゴリＣＡＴ１１（「飲食店を探す」）に属する確率が９０％を超えるので、出力情報として検索クエリが属するカテゴリをＣＡＴ１１（「飲食店を探す」）と出力する。
【０２２５】
なお、生成部５２３は、大分類として、任意の数の大分類を選択してもよい。そして、生成部５２３は、入力情報として検索クエリが第２モデルＭ２に入力された際に、出力情報として検索クエリが選択した任意の数の大分類に属する各小分類に属する確率を小分類毎に出力する第２モデルＭ２を生成してもよい。また、生成部５２３は、大分類として、全ての大分類を選択してもよい。そして、生成部５２３は、検索クエリが第２モデルＭ２に入力された際に、各小分類に属する確率を全ての小分類毎に出力する第２モデルＭ２を生成してもよい。
【０２２６】
〔２−５．第２学習モデルの一例〕
ここで、図２０を用いて生成装置５０が生成する第２学習モデルの一例について説明する。図２０は、実施形態に係る第２学習モデルの一例を示す図である。図２０に示す例では、生成装置５０が生成する第２学習モデルＭ２は、第１学習モデルＭ１を用いて生成される。すなわち、生成装置５０は、第１学習モデルＭ１を再学習させることにより、第１学習モデルＭ１とは学習モデルの重みである接続係数が異なる第２学習モデルＭ２を生成する。
【０２２７】
より具体的には、生成装置５０が生成する第２学習モデルＭ２は、第１学習モデルＭ１と同様に、３層のＬＳＴＭ  ＲＮＮで構成されている。図２０に示す例では、抽出部５２２は、ユーザＵ１によって入力された「六本木  パスタ」という検索クエリＱ１１を第２学習モデルＭ２の入力層に入力する（ステップＳ５１）。
【０２２８】
続いて、生成部５２３は、第２学習モデルＭ２の出力層から検索クエリＱ１１の分散表現である２５６次元のベクトルＢＱＶ１１を出力する（ステップＳ５２）。
【０２２９】
続いて、生成部５２３は、検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１が各カテゴリに分類される確率を出力する（ステップＳ５３）。
【０２３０】
続いて、生成部５２３は、検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１が正解カテゴリに分類される確率を高くするように第２学習モデルＭ２を学習することで、検索クエリから検索クエリのカテゴリを予測する第２モデルを生成する（ステップＳ５４）。
【０２３１】
〔２−６．第１学習モデルの生成処理のフロー〕
次に、図２１を用いて、実施形態に係る第１学習モデルの生成処理の手順について説明する。図２１は、実施形態に係る第１学習モデルの生成処理手順を示すフローチャートである。
【０２３２】
図２１に示す例では、生成装置５０は、ユーザによって入力された検索クエリを取得する（ステップＳ１００１）。
【０２３３】
続いて、生成装置５０は、同一のユーザによって所定の時間内に入力された複数の検索クエリを抽出する（ステップＳ１００２）。
【０２３４】
続いて、生成装置５０は、抽出した複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する第１学習モデルを生成する（ステップＳ１００３）。
【０２３５】
〔２−７．第２学習モデルの生成処理のフロー〕
次に、図２２を用いて、実施形態に係る第２学習モデルの生成処理の手順について説明する。図２２は、実施形態に係る第２学習モデルの生成処理の手順を示すフローチャートである。
【０２３６】
図２２に示す例では、生成装置５０は、第１学習モデル（第１学習モデルＭ１のモデルデータＭＤＴ１）を取得する（ステップＳ２００１）。
【０２３７】
続いて、生成装置５０は、第１学習モデルを用いて、所定の検索クエリから所定の検索クエリのカテゴリを予測する第２学習モデルを生成する（ステップＳ２００２）。
【０２３８】
〔３．効果〕
上述してきたように、実施形態に係る情報処理装置１００は、取得部１３１と推定部１３３と抽出部１３４を備える。取得部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。推定部１３３は、取得部１３１によって取得された第２学習モデルを用いて、検索クエリとして入力された文字列によって示される対象が属するカテゴリを推定する。抽出部１３４は、推定部１３３によって推定されたカテゴリに基づいて、文字列の中から、対象分野に属する抽出対象を示す対象文字列を抽出する。
【０２３９】
これにより、情報処理装置１００は、検索クエリとして入力された文字列が未知用語である場合であっても、未知用語によって示される対象が属するカテゴリを推定することができるため、所定のカテゴリに属する対象を示す文字列を精度よく抽出することができる。例えば、情報処理装置１００は、未知用語に対して対象分野とは異なる非対象分野を示すカテゴリが推定された場合には、その未知用語を不要な文字列として取り除くことができる。また、情報処理装置１００は、流入検索クエリとして入力された文字列が未知用語である場合であっても、未知用語に対して対象分野を示すカテゴリが推定された場合には、その未知用語を対象分野に属する対象文字列として抽出することができる。したがって、本願発明に係る情報処理装置１００は、所定のカテゴリに属する対象を示す文字列を適切に抽出することができる。
【０２４０】
また、一般的に、ユーザはある意図を持って検索を複数回行うと考えられるため、所定の時間内に連続して入力された検索クエリは、検索意図が近いという仮定が成り立つ。そこで、本願発明に係る生成装置５０は、所定の時間内に連続して入力された複数の検索クエリは、所定の検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであるとみなして第１モデルＭ１を学習させる。これにより、生成装置５０は、検索意図を考慮した検索クエリの特徴を第１モデルＭ１に学習させることができる。そして、生成装置５０は、検索意図を考慮した検索クエリの特徴を学習した第１モデルＭ１を活用して、所定の検索クエリから所定の検索クエリのカテゴリを予測する第２モデルを効率的に生成することができる。これにより、生成装置５０は、検索クエリを入力したユーザの検索意図を考慮したカテゴリに検索クエリを分類することを可能にする。また、従来、検索クエリをカテゴリに分類し、高い分類精度を得るためには、十分な量の正解データを用意することが必要であった。しかしながら、検索クエリ自体、多種多様であり、ロングテイルな性質を持つものであるため、多数の検索クエリに対応する正解カテゴリをラベル付けするのは、非常に手間がかかり困難である。ここで、生成装置５０は、検索意図を考慮した検索クエリの特徴を学習させた第１モデルを出発点として第２モデルを学習させることにより、正解カテゴリをラベル付けする代わりに、ユーザの検索意図（検索クエリを入力したユーザのコンテクスト）を一種の正解として、検索クエリのカテゴリを予測する第２モデルを学習させることができる。これにより、生成装置５０は、人手で検索クエリの正解カテゴリをラベル付けすることなく、第２モデルを学習させることができる。すなわち、第２モデルは、正解データが少ないときでも、十分な分類精度を得られるようになる。また、第２モデルは、正解データが多いときであれば、さらに高い分類精度を得られるようになる。したがって、情報処理装置１００は、検索クエリの分類精度を高めることができる。
【０２４１】
また、推定部１３３は、文字列によって示される対象が属する複数のカテゴリを推定する。また、推定部１３３は、文字列によって示される対象が各カテゴリに属する確率をカテゴリ毎に出力する。
【０２４２】
これにより、情報処理装置１００は、文字列によって示される対象が属するカテゴリとして、対象分野を示すカテゴリと複数の非対象分野を示すカテゴリとを同時に推定することができる。
【０２４３】
また、抽出部１３４は、推定部１３３によって推定されたカテゴリの中に、対象分野を示すカテゴリを含む文字列を対象文字列として抽出する。
【０２４４】
これにより、情報処理装置１００は、対象分野に属する対象を示す文字列を適切に抽出することができる。
【０２４５】
また、抽出部１３４は、推定部１３３によって推定されたカテゴリの中に、不要なカテゴリとして登録された不要カテゴリを含まない文字列を対象文字列として抽出する。
【０２４６】
これにより、情報処理装置１００は、非対象分野に属する対象を示す文字列を適切に取り除くことができる。
【０２４７】
また、実施形態に係る情報処理装置１００は、処理部１３２をさらに備える。処理部１３２は、対象分野に関するサイトに流入した流入検索クエリを取得し、流入検索クエリとして入力された文字列から、不要な文字列として登録された不要文字列を取り除いた第１文字列を取得する。推定部１３３は、処理部１３２によって取得された第１文字列によって示される対象が属するカテゴリを推定する。
【０２４８】
これにより、情報処理装置１００は、辞書ベースで取り除くことができる文字列については、あらかじめ取り除いておくことで、第２学習モデルに入力される入力情報の精度を高めることができる。したがって、情報処理装置１００は、第２学習モデルによって推定されるカテゴリの推定精度を高めることができる。
【０２４９】
また、取得部１３１は、同一のユーザによって所定の時間内に入力された一対の検索クエリの分散表現が類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。
【０２５０】
一般的に、同一のユーザが短時間に続けて入力した２つの検索クエリは、検索意図が同一であるか、同一でなくとも検索意図が近いと考えられる。すなわち、所定の時間内に続けて入力された一対の検索クエリは、検索意図が同一であるか、同一でなくとも検索意図が近いと考えられる。すなわち、生成装置５０は、所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習させることにより、第１モデルの学習精度を向上させることができる。したがって、生成装置５０は、学習精度が向上した第１モデルを用いて第２モデルを生成することができるので、第２モデルの学習精度を向上させることができる。
【０２５１】
また、取得部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。
【０２５２】
一般的に、単体の文字列からなる検索クエリよりも、複数の文字列を含む検索クエリのほうが、検索意図がより明確であると考えられる。すなわち、生成装置５０は、所定の区切り文字で区切られた文字列を含む検索クエリを用いて学習させることにより、第１モデルの学習精度を向上させることができる。したがって、生成装置５０は、学習精度が向上した第１モデルを用いて第２モデルを生成することができるので、第２モデルの学習精度を向上させることができる。
【０２５３】
また、取得部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルであって、ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。また、取得部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルであって、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。
【０２５４】
一般的に、ランダムに抽出された複数の検索クエリは、互いに無関係に入力された検索クエリであるため、検索意図が異なるか、検索意図が遠いと考えられる。そこで、本願発明に係る生成装置５０は、ランダムに抽出された複数の検索クエリは、異なる検索意図の下で検索された検索クエリであるという点で、相互に相違する特徴を有する検索クエリであるとみなして学習モデルＭ１を学習させる。これにより、学習モデルは、検索意図が近い検索クエリのペアである正解データに加えて、検索意図が遠い検索クエリのペアである不正解データを学習することができる。すなわち、生成装置５０は、第１モデルの学習精度を向上させることができる。したがって、生成装置５０は、学習精度が向上した第１モデルを用いて第２モデルを生成することができるので、第２モデルの学習精度を向上させることができる。
【０２５５】
また、取得部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして複数の検索クエリが有する特徴を学習した第１学習モデルを用いて生成された第２学習モデルであって、検索クエリが第２学習モデルに入力された際に、第２学習モデルが出力する分散表現の分類結果が、検索クエリが属するカテゴリに対応するように学習することで、所定の検索クエリから所定の検索クエリが属するカテゴリを予測する第２学習モデルを取得する。また、取得部１３１は、入力情報として所定の検索クエリが入力された際に、出力情報として所定の検索クエリの分散表現を出力する第１学習モデルを用いて生成された第２学習モデルを取得する。また、取得部１３１は、入力情報として検索クエリが第２学習モデルに入力された際に、出力情報として検索クエリがカテゴリに属する確率をカテゴリ毎に出力する第２学習モデルを取得する。
【０２５６】
これにより、生成装置５０は、検索意図を考慮した検索クエリの特徴を含む分散表現を活用して、検索クエリを入力したユーザの検索意図を考慮したカテゴリに検索クエリを分類する第２学習モデルを効率的に生成することができる。すなわち、生成装置５０は、検索クエリを入力したユーザの検索意図を考慮したカテゴリに検索クエリを分類することを可能にする。したがって、生成装置５０は、検索クエリの分類精度を高めることができる。
【０２５７】
〔４．ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置１００および実施形態に係る生成装置５０は、例えば図２３に示すような構成のコンピュータ１０００によって実現される。図２３は、情報処理装置１００および生成装置５０の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ１３００、ＨＤＤ１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を備える。
【０２５８】
ＣＰＵ１１００は、ＲＯＭ１３００またはＨＤＤ１４００に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を格納する。
【０２５９】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス１５００は、所定の通信網を介して他の機器からデータを受信してＣＰＵ１１００へ送り、ＣＰＵ１１００が生成したデータを所定の通信網を介して他の機器へ送信する。
【０２６０】
ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、生成したデータを入出力インターフェイス１６００を介して出力装置へ出力する。
【０２６１】
メディアインターフェイス１７００は、記録媒体１８００に格納されたプログラムまたはデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０２６２】
例えば、コンピュータ１０００が情報処理装置１００または生成装置５０として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラムを実行することにより、制御部１３０または制御部５２の機能を実現する。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムを記録媒体１８００から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムを取得してもよい。
【０２６３】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０２６４】
〔５．その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０２６５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０２６６】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０２６７】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、抽出部は、抽出手段や抽出回路に読み替えることができる。
【符号の説明】
【０２６８】
１  情報処理システム
１０  ユーザ端末
２０  検索サーバ
５０  生成装置
１００  情報処理装置
１１０  通信部
１２０  記憶部
１２１  クエリ情報記憶部
１２２  不要文字列記憶部
１２３  不要カテゴリ記憶部
１２４  モデル情報記憶部
１３０  制御部
１３１  取得部
１３２  処理部
１３３  推定部
１３４  抽出部
【図１】
0006979986.tif 000002
【図２】
0006979986.tif 000003
【図３】
0006979986.tif 000004
【図４】
0006979986.tif 000005
【図５】
0006979986.tif 000006
【図６】
0006979986.tif 000007
【図７】
0006979986.tif 000008
【図８】
0006979986.tif 000009
【図９】
0006979986.tif 000010
【図１０】
0006979986.tif 000011
【図１１】
0006979986.tif 000012
【図１２】
0006979986.tif 000013
【図１３】
0006979986.tif 000014
【図１４】
0006979986.tif 000015
【図１５】
0006979986.tif 000016
【図１６】
0006979986.tif 000017
【図１７】
0006979986.tif 000018
【図１８】
0006979986.tif 000019
【図１９】
0006979986.tif 000020
【図２０】
0006979986.tif 000021
【図２１】
0006979986.tif 000022
【図２２】
0006979986.tif 000023
【図２３】
0006979986.tif 000024