(57)【要約】【課題】ユーザに対して適切な情報を推薦すること。【解決手段】本願に係る情報処理装置は、抽出部と決定部を備える。抽出部は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデルを用いて、所定のクエリの特徴を示す特徴情報を抽出する。決定部は、抽出部によって抽出された特徴情報に基づいて、所定のクエリを入力したユーザに対して推薦する推薦情報を決定する。【選択図】図１
2020129192.tif 000002
【特許請求の範囲】
【請求項１】
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、所定のクエリの特徴を示す特徴情報を抽出する抽出部と、
前記抽出部によって抽出された特徴情報に基づいて、前記所定のクエリを入力したユーザに対して推薦する推薦情報を決定する決定部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記抽出部は、
前記特徴情報として、前記所定のクエリと類似する特徴を有する検索クエリである類似クエリを抽出し、
前記決定部は、
前記抽出部によって抽出された類似クエリに基づいて、前記所定のクエリを入力したユーザに対して推薦する推薦情報を決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記抽出部は、
前記所定のクエリと属性が共通する類似クエリを抽出し、
前記決定部は、
前記抽出部によって抽出された類似クエリに基づいて、前記推薦情報である前記類似クエリに関する情報を決定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記抽出部は、
前記所定のクエリと属性が共通する類似クエリとして、不動産エリアを示す所定のクエリと類似する特徴を有する検索クエリであって、不動産エリアを示す類似クエリを抽出し、
前記決定部は、
前記抽出部によって抽出された類似クエリに基づいて、前記推薦情報である不動産エリアに関する情報を決定する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記決定部は、
前記抽出部によって抽出された類似クエリに基づいて、前記推薦情報である再検索用のクエリの候補を決定する
ことを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、所定の検索クエリの分散表現を生成する生成部と、
前記生成部によって生成された所定の検索クエリの分散表現と、前記生成部によって生成された所定の検索クエリとは異なる他の検索クエリの分散表現との類似度を算出する算出部と、
をさらに備え、
前記抽出部は、
前記算出部によって算出された類似度が所定の閾値を超える他の検索クエリを前記類似クエリとして抽出する
ことを特徴とする請求項２〜５のいずれか一つに記載の情報処理装置。
【請求項７】
前記抽出部は、
入力情報として所定の検索クエリが入力された際に、出力情報として前記所定の検索クエリの分散表現を出力する学習モデルを用いて、前記特徴情報を抽出する
ことを特徴とする請求項１〜６のいずれか一つに記載の情報処理装置。
【請求項８】
前記抽出部は、
前記所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、前記特徴情報を抽出する
ことを特徴とする請求項１〜７のいずれか一つに記載の情報処理装置。
【請求項９】
前記抽出部は、
同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、前記特徴情報を抽出する
ことを特徴とする請求項１〜８のいずれか一つに記載の情報処理装置。
【請求項１０】
前記抽出部は、
ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、前記特徴情報を抽出する
ことを特徴とする請求項１〜９のいずれか一つに記載の情報処理装置。
【請求項１１】
前記抽出部は、
ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、前記特徴情報を抽出する
ことを特徴とする請求項１〜１０のいずれか一つに記載の情報処理装置。
【請求項１２】
前記抽出部は、
前記特徴情報として、前記所定のクエリが属するカテゴリを抽出し、
前記決定部は、
前記抽出部によって抽出されたカテゴリに基づいて、前記所定のクエリを入力したユーザに対して推薦する推薦情報を決定する
ことを特徴とする請求項１〜１１のいずれか一つに記載の情報処理装置。
【請求項１３】
コンピュータが実行する情報処理方法であって、
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、所定のクエリの特徴を示す特徴情報を抽出する抽出工程と、
前記抽出工程によって抽出された特徴情報に基づいて、前記所定のクエリを入力したユーザに対して推薦する推薦情報を決定する決定工程と、
を含むことを特徴とする情報処理方法。
【請求項１４】
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、所定のクエリの特徴を示す特徴情報を抽出する抽出手段と、
前記抽出手段によって抽出された特徴情報に基づいて、前記所定のクエリを入力したユーザに対して推薦する推薦情報を決定する決定手段と、
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
従来、ユーザの興味や関心にあった物品やサービスを推薦する技術が知られている。例えば、入力された自然言語要求を意味解析して、ユーザの意図を含む分脈情報を生成する。そして、生成した文脈情報に基づいて、ユーザに提示するアイテムの候補に対する順位付けを行う技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−９１５３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、ユーザに対して適切な情報を推薦することができるとは限らない。例えば、上記の従来技術では、入力された自然言語要求を意味解析して、文脈情報を生成するにすぎず、ユーザに対して適切な情報を推薦することができるとは限らない。
【０００５】
本願は、上記に鑑みてなされたものであって、ユーザに対して適切な情報を推薦することができる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願に係る情報処理装置は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、所定のクエリの特徴を示す特徴情報を抽出する抽出部と、前記抽出部によって抽出された特徴情報に基づいて、前記所定のクエリを入力したユーザに対して推薦する推薦情報を決定する決定部を備えたことを特徴とする。
【発明の効果】
【０００７】
実施形態の一態様によれば、ユーザに対して適切な情報を推薦することができるといった効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態に係る情報処理の一例を示す図である。
【図２】図２は、第１の実施形態に係る情報処理システムの構成例を示す図である。
【図３】図３は、第１の実施形態に係る情報処理装置の構成例を示す図である。
【図４】図４は、第１の実施形態に係るモデル情報記憶部の一例を示す図である。
【図５】図５は、第１の実施形態に係るベクトル情報記憶部の一例を示す図である。
【図６】図６は、第１の実施形態に係る検索情報記憶部の一例を示す図である。
【図７】図７は、第１の実施形態に係る生成処理手順を示すフローチャートである。
【図８】図８は、第１の実施形態に係る情報処理手順を示すフローチャートである。
【図９】図９は、変形例に係る情報処理の一例を示す図である。
【図１０】図１０は、変形例に係る情報処理の一例を示す図である。
【図１１】図１１は、変形例に係るユーザ端末がコンテンツを切り替える処理の一例を説明する図である。
【図１２】図１２は、第２の実施形態に係る情報処理装置の構成例を示す図である。
【図１３】図１３は、第２の実施形態に係るカテゴリ情報記憶部の一例を示す図である。
【図１４】図１４は、第２の実施形態に係る予測処理手順を示すフローチャートである。
【図１５】図１５は、第２の実施形態に係る情報処理手順を示すフローチャートである。
【図１６】図１６は、実施形態に係る第１学習モデルの生成処理の一例を示す図である。
【図１７】図１７は、実施形態に係る第１学習モデルの生成処理の一例を示す図である。
【図１８】図１８は、実施形態に係る第２学習モデルの生成処理の一例を示す図である。
【図１９】図１９は、実施形態に係る生成装置の構成例を示す図である。
【図２０】図２０は、実施形態に係るクエリ情報記憶部の一例を示す図である。
【図２１】図２１は、実施形態に係るベクトル情報記憶部の一例を示す図である。
【図２２】図２２は、実施形態に係る分類定義記憶部の一例を示す図である。
【図２３】図２３は、実施形態に係るカテゴリ情報記憶部の一例を示す図である。
【図２４】図２４は、実施形態に係るモデル情報記憶部の一例を示す図である。
【図２５】図２５は、実施形態に係る第１学習モデルの一例を示す図である。
【図２６】図２６は、実施形態に係る第２学習モデルの一例を示す図である。
【図２７】図２７は、実施形態に係る第１学習モデルの生成処理手順を示すフローチャートである。
【図２８】図２８は、実施形態に係る第２学習モデルの生成処理手順を示すフローチャートである。
【図２９】図２９は、プログラムを実行するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【００１０】
〔１．第１の実施形態〕
〔１−１．情報処理の一例〕
まず、図１を用いて、第１の実施形態に係る情報処理の一例について説明する。図１は、第１の実施形態に係る情報処理の一例を示す図である。図１に示す情報処理は、ユーザ端末１０と検索サーバ２０（図２参照）と生成装置５０（図２参照）と情報処理装置１００とによって行われる。
【００１１】
ユーザ端末１０は、ユーザによって使用される情報処理装置である。ユーザ端末１０は、例えば、スマートフォンや、タブレット型端末や、ノート型ＰＣ（Personal  Computer）や、携帯電話機や、ＰＤＡ（Personal  Digital  Assistant）等により実現される。なお、以下では、ユーザ端末１０をユーザと同一視する場合がある。すなわち、以下では、ユーザをユーザ端末１０と読み替えることもできる。
【００１２】
また、以下では、ユーザＩＤ「Ｕ１１」により特定されるユーザを「ユーザＵ１１」とする場合がある。このように、以下では、「ユーザＵ＊（＊は任意の数値）」と記載した場合、そのユーザはユーザＩＤ「Ｕ＊」により特定されるユーザであることを示す。例えば、「ユーザＵ２１」と記載した場合、そのユーザはユーザＩＤ「Ｕ２１」により特定されるユーザである。
【００１３】
また、以下では、ユーザ端末１０を利用するユーザに応じて、ユーザ端末１０をユーザ端末１０−１、１０−２として説明する場合がある。例えば、ユーザ端末１０−１は、ユーザＵ１１により使用されるユーザ端末１０である。また、例えば、ユーザ端末１０−２は、ユーザＵ２１により使用されるユーザ端末１０である。また、以下では、ユーザ端末１０−１、１０−２について、特に区別なく説明する場合には、ユーザ端末１０と記載する。
【００１４】
検索サーバ２０（図２参照）は、検索サービスを提供するサーバ装置である。例えば、検索サーバ２０が提供する検索サービスは、あらゆる情報を検索可能な総合検索サービスである。検索サーバ２０は、ユーザによって入力された検索クエリに関する情報を記憶する。具体的には、検索サーバ２０は、ユーザの検索履歴に関する情報を記憶する。
【００１５】
生成装置５０（図２参照）は、第１学習モデルを生成するサーバ装置である。ここでは、生成装置５０による第１学習モデルの生成処理の概要を述べる。なお、生成装置５０による第１学習モデルの生成処理の詳細は後述する。具体的には、生成装置５０は、ユーザによって入力された検索クエリに関する情報を検索サーバ２０から取得する。続いて、生成装置５０は、検索サーバ２０から取得した検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリを抽出する。ここで、生成装置５０は、ユーザによる１回の検索ごとに検索ボックスに入力された文字列全体をユーザによって入力された一つの検索クエリとして取り扱う。例えば、生成装置５０は、ユーザＵ１による１回の検索で検索ボックスに「六本木  パスタ」のように複数の文字列を含む検索クエリが入力された場合は、「六本木  パスタ」全体で一つの検索クエリとして取り扱う。また、生成装置５０は、同一のユーザによって各検索クエリが入力された時間の間隔が所定の時間内（例えば、２分以内）であるような複数の検索クエリを同一のユーザによって所定の時間内に入力された複数の検索クエリとして抽出する。
【００１６】
続いて、生成装置５０は、抽出した複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する第１学習モデルを生成する。具体的には、生成装置５０は、抽出した複数の検索クエリの分散表現が類似するように第１学習モデルを学習させることで、所定の検索クエリから所定の検索クエリの特徴情報を含む分散表現（ベクトル）を出力する第１学習モデルを生成する。より具体的には、生成装置５０は、ＲＮＮ（Recurrent  Neural  Network）の一種であるＬＳＴＭ（Long  Short-Term  Memory）を分散表現生成に用いたＤＳＳＭ（Deep  Structured  Semantic  Model）の技術を用いて、検索クエリから分散表現（ベクトル）を出力する第１学習モデルを生成する。例えば、生成装置５０は、第１学習モデルの正解データとして、同一のユーザによって所定の時間内に入力された一対の検索クエリが類似する特徴を有するものとして、所定の検索クエリの分散表現（ベクトル）と、所定の検索クエリと対となる他の検索クエリの分散表現（ベクトル）とが、分散表現空間上で近くに存在するように学習する。なお、２つのベクトルが分散表現空間上で近くに存在するように学習することは、２つのベクトルが分散表現空間上で類似するように学習することと言い換えることができる。
【００１７】
情報処理装置１００は、不動産情報の検索サービス（以下、適宜「不動産情報検索サービスＲ１」と記載する。）を提供するサーバ装置である。情報処理装置１００は、第１学習モデルのモデルデータを生成装置５０から取得する。なお、以下では、第１学習モデルのモデルデータを単に第１学習モデルと記載する場合がある。情報処理装置１００は、第１学習モデルを用いて、ユーザから受け付けた地名に対応する不動産エリアと類似する特徴を有する他の不動産エリアをお勧めエリアとして推薦する。
【００１８】
ここから、図１を用いて、情報処理の流れについて説明する。図１では、情報処理装置１００は、第１学習モデルを用いて、全国各地の地名や駅名を示す文字列（以下、適宜「地名クエリ」と記載する。）に対応する分散表現（ベクトル）を生成する（ステップＳ１）。図１右方に点線で示した吹き出しの中には、情報処理装置１００が生成した地名クエリに対応する分散表現（ベクトル）が分散表現空間にマッピングされる様子が示されている。例えば、地名クエリ「地名＃１１」に対応する分散表現（ベクトル）を示す点と地名クエリ「地名＃１２」〜「地名＃１４」に対応する分散表現（ベクトル）を示す点とは、分散表現空間上で相対的に近くに位置する様子が示されている。すなわちこの図は、地名クエリ「地名＃１１」と地名クエリ「地名＃１２」〜「地名＃１４」とは、類似する特徴を有することを意味する。一方、地名クエリ「地名＃１１」に対応する分散表現（ベクトル）を示す点と地名クエリ「地名＃２１」〜「地名＃２２」に対応する分散表現（ベクトル）を示す点とは、分散表現空間上で相対的に遠くに存在する様子が示されている。すなわちこの図は、地名クエリ「地名＃１１」と地名クエリ「地名＃２１」〜「地名＃２２」とは、相違する特徴を有することを意味する。なお、図１では、説明のため、地名クエリを「地名＃１１」のように抽象的な記号で表現するが、本願発明を実施する際には、地名クエリには「武蔵小杉」や「吉祥寺」といった具体的な駅名や「港区」や「東京都」といった具体的な地名が用いられる。
【００１９】
また、情報処理装置１００は、知りたい街を検索する検索クエリを入力するための検索ボックスを含むコンテンツＣ１１を介して、地名クエリ「地名＃１１」をユーザＵ１１から受け付ける（ステップＳ２）。続いて、情報処理装置１００は、地名クエリ「地名＃１１」を受け付けると、あらかじめ生成しておいた地名クエリ「地名＃１１」に対応する分散表現（ベクトル）と地名クエリ「地名＃１１」以外の他の地名クエリに対応する分散表現（ベクトル）との類似度を算出する（ステップＳ３）。なお、情報処理装置１００は、地名クエリを受け付ける度に類似度を計算するのでなく、あらかじめ地名クエリ同士の類似度を算出してもよい。続いて、情報処理装置１００は、類似度を算出すると、算出した類似度が所定の閾値を超えるか否かを判定する。続いて、情報処理装置１００は、類似度が所定の閾値を超えると判定した場合に、地名クエリ「地名＃１１」と類似する特徴を有する類似クエリとして、他の地名クエリを抽出する（ステップＳ４）。
【００２０】
例えば、情報処理装置１００は、地名クエリ「地名＃１１」に対応する分散表現（ベクトル）と地名クエリ「地名＃１２」に対応する分散表現（ベクトル）との類似度を０．９と算出する。続いて、情報処理装置１００は、地名クエリ「地名＃１１」に対応する分散表現（ベクトル）と地名クエリ「地名＃１２」に対応する分散表現（ベクトル）との類似度が所定の閾値（例えば、０．８）を超えるか否かを判定する。例えば、情報処理装置１００は、類似度である０．９が所定の閾値である０．８を超えるので、地名クエリ「地名＃１１」の類似クエリとして、地名クエリ「地名＃１２」を抽出する。同様にして、情報処理装置１００は、地名クエリ「地名＃１１」以外の他の地名クエリ全てについて、地名クエリ「地名＃１１」に対応する分散表現（ベクトル）との類似度を算出する。そして、情報処理装置１００は、地名クエリ「地名＃１１」以外の他の地名クエリ全てについて、類似度が所定の閾値を超えるか否かを判定する。
【００２１】
続いて、情報処理装置１００は、類似クエリを抽出すると、類似クエリに基づいて、ユーザＵ１１に対して推薦するお勧めエリアを決定する（ステップＳ５）。具体的には、情報処理装置１００は、類似クエリとして抽出した地名クエリに対応する不動産エリアをお勧めエリアとして推薦することを決定する。例えば、情報処理装置１００は、地名クエリ「地名＃１１」の類似クエリとして抽出した地名クエリ「地名＃１２」に対応する不動産エリアをユーザＵ１１に対して推薦するお勧めエリアとして推薦することを決定する。なお、情報処理装置１００は、類似クエリに対応する不動産エリアの中から、さらに類似度が上位所定数以内である地名クエリに対応する不動産エリアをお勧めエリアとして推薦することを決定してもよい。
【００２２】
続いて、情報処理装置１００は、お勧めエリアを決定すると、決定したお勧めエリアに関する情報（例えば、お勧めエリアの不動産物件の情報）をユーザＵ１１に対して送信する（ステップＳ６）。
【００２３】
上述したように、第１の実施形態に係る情報処理装置１００は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデルを用いて、所定のクエリの特徴を示す特徴情報を抽出する。また、情報処理装置１００は、抽出した特徴情報に基づいて、所定のクエリを入力したユーザに対して推薦する推薦情報を決定する。これにより、情報処理装置１００は、所定の検索クエリに興味や関心を抱いたユーザに対して、所定の検索クエリの特徴を示す特徴情報に基づく情報を推薦可能とする。すなわち、情報処理装置１００は、ユーザの興味や関心にマッチする情報を推薦可能とする。したがって、情報処理装置１００は、ユーザに対して適切な情報を推薦することができる。
【００２４】
また、一般的に、検索サービスを訪れるユーザ等、特定の分野に興味や関心を抱いてはいるものの、その分野に関する知識が少ないユーザが検索によって知識を得ようとする場面においては、適切な検索クエリが思いつかないという課題がある。本願発明に係る情報処理装置１００は、入力する検索クエリに対する知識が少ないユーザが入力した検索クエリに基づいて、検索意図に応じた適切な検索クエリに基づく推薦情報を推薦することができる。したがって、情報処理装置１００は、ユーザに対して適切な情報を推薦することができる。
【００２５】
また、従来、概念検索に関する技術が知られている。例えば、ユーザの行動のログから概念を構築する技術が知られている。例えば、クーラーをつけるという行為と気温との相関に着目して、ユーザがクーラーをつけたという行動のログから暑い（気温が高い）という概念（例えば、検索クエリ）を構築する技術が知られている。しかしながら、従来は、クーラーをつけるという行為と暑い（気温が高い）という概念が関連するというルールを人間が登録していた（ルールベース）。また、ルールベースに寄らず、機械学習を用いた場合は、人手で大量のクエリについてラベル付けをするなどして学習データを作成する必要があった。そのため、従来は、狭義のクエリの概念検索を行うことしかできなかった。すなわち、従来は、人間によってあらかじめ答えとなる概念が付与されたクエリ（狭義のクエリ）の概念検索しか行うことができなかった。そこで、本願発明に係る情報処理装置１００は、人手で大量のクエリについてラベル付けしたりすることなく、ユーザの検索セッションにおけるクエリ列をモデル化する。これにより、本願発明に係る情報処理装置１００は、ごく少数のユーザによってしか検索されないようなニッチなクエリ（ロングテールなクエリ）についても、クエリと検索意図とを結び付けて学習することができる。すなわち、本願発明に係る情報処理装置１００は、ユーザが自由に入力するようなニッチなクエリをもカバーする広義のクエリの概念検索を行うことができる。したがって、情報処理装置１００は、ユーザに対して適切な情報を推薦することができる。
【００２６】
〔１−２．情報処理システムの構成〕
次に、図２を用いて、第１の実施形態に係る情報処理システムの構成について説明する。図２は、第１の実施形態に係る情報処理システムの構成例を示す図である。図２に示すように、情報処理システム１には、ユーザ端末１０と、検索サーバ２０と、生成装置５０と、情報処理装置１００とが含まれる。ユーザ端末１０と、検索サーバ２０と、生成装置５０と、情報処理装置１００とは所定のネットワークＮを介して、有線または無線により通信可能に接続される。なお、図２に示す情報処理システム１には、任意の数のユーザ端末１０と任意の数の検索サーバ２０と任意の数の生成装置５０と任意の数の情報処理装置１００とが含まれてもよい。
【００２７】
ユーザ端末１０は、ユーザによって入力された検索クエリを検索サーバ２０に送信する。具体的には、ユーザ端末１０は、ユーザによる操作に従って、検索クエリを入力するための検索ボックスを含む検索ページを検索サーバ２０から取得する。続いて、ユーザ端末１０は、ユーザによって検索ボックスに文字が入力される操作に続いて、検索クエリを送信する操作が行われると、検索ページを介して検索ボックスに入力された文字を検索クエリとして検索サーバ２０に送信する。例えば、ユーザ端末１０は、ユーザによって検索ボックスに文字が入力される操作に続いて、検索クエリの送信ボタンが押下される操作やエンターキーが押下される操作が行われると、検索ページを介して検索ボックスに入力された文字を検索クエリとして検索サーバ２０に送信する。
【００２８】
検索サーバ２０は、ユーザ端末１０から検索クエリを受け付けると、受け付けた検索クエリに応じたコンテンツであって、検索結果として出力されるコンテンツを選択する。続いて、検索サーバ２０は、選択されたコンテンツを含む検索結果ページをユーザ端末１０に配信する。ここで、検索サーバ２０によって配信されるコンテンツは、ウェブブラウザによって表示されるウェブページに限られない。例えば、検索サーバ２０によって配信されるコンテンツは、ユーザ端末１０にインストールされた専用のアプリケーションによって表示されるコンテンツであってもよい。また、検索サーバ２０によって配信されるコンテンツは、音楽コンテンツや画像（静止画のみならず動画を含む。）コンテンツ、テキストコンテンツ（ニュース記事やＳＮＳ（Social  Networking  Service）に投稿された記事を含む。）、画像とテキストを組み合わせたコンテンツ、ゲームコンテンツなど、どのようなコンテンツであってもよい。
【００２９】
また、検索サーバ２０は、ユーザ端末１０から検索クエリを受け付けると、受け付けた検索クエリと検索クエリの送信元であるユーザを識別するユーザＩＤと検索クエリの送信日時とを対応付けてデータベースに登録する。検索サーバ２０は、生成装置５０の要求に応じて、ユーザによって入力された検索クエリに関する情報を生成装置５０に送信する。
【００３０】
生成装置５０は、後述する処理を実行することにより、第１学習モデルを生成する。生成装置５０による第１学習モデルの生成処理の詳細は後述する。
【００３１】
また、ユーザ端末１０は、ユーザによって入力された検索クエリを情報処理装置１００に送信する。具体的には、ユーザ端末１０は、ユーザによる操作に従って、知りたい街を検索する検索クエリを入力するための検索ボックスを含むコンテンツＣ１１を情報処理装置１００から取得する。続いて、ユーザ端末１０は、ユーザによって検索ボックスに文字が入力される操作に続いて、検索クエリを送信する操作が行われると、コンテンツＣ１１を介して検索ボックスに入力された地名や駅名といった文字を検索クエリとして情報処理装置１００に送信する。例えば、ユーザ端末１０は、ユーザによって検索ボックスに文字が入力される操作に続いて、検索クエリの送信ボタンが押下される操作やエンターキーが押下される操作が行われると、コンテンツＣ１１を介して検索ボックスに入力された文字を検索クエリとして情報処理装置１００に送信する。
【００３２】
情報処理装置１００は、図１で説明した情報処理を行うサーバ装置である。情報処理装置１００は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した第１学習モデルを用いて、所定のクエリの特徴を示す特徴情報として、所定のクエリと類似する特徴を有する検索クエリである類似クエリを抽出する。また、情報処理装置１００は、抽出した特徴情報である類似クエリに基づいて、所定のクエリを入力したユーザに対して推薦する推薦情報を決定する。
【００３３】
〔１−３．情報処理装置の構成〕
次に、図３を用いて、第１の実施形態に係る情報処理装置１００の構成について説明する。図３は、第１の実施形態に係る情報処理装置１００の構成例を示す図である。図３に示すように、情報処理装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、情報処理装置１００は、情報処理装置１００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示させるための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００３４】
（通信部１１０）
通信部１１０は、例えば、ＮＩＣ（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）を用いた推定処理を行う場合、モデルデータＭＤＴ１は、ＧＡＮの一部を構成するモデルであってもよい。
【００４５】
（ベクトル情報記憶部１２２）
ベクトル情報記憶部１２２は、検索クエリの分散表現であるベクトルに関する各種の情報を記憶する。図５に、第１の実施形態に係るベクトル情報記憶部の一例を示す。図５に示す例では、ベクトル情報記憶部１２２は、「検索クエリ」、「ベクトル情報」といった項目を有する。
【００４６】
「検索クエリ」は、ユーザによって入力された検索クエリを示す。「ベクトル情報」は、検索クエリの分散表現であるＮ次元のベクトルを示す。検索クエリの分散表現であるベクトルは、例えば、１２８次元のベクトルである。
【００４７】
図５の１レコード目に示す例では、検索クエリ「地名＃１１」は、図１に示した地名クエリ「地名＃１１」に対応する。また、ベクトル情報「Ｖ１１」は、図１に示した地名クエリ「地名＃１１」に対応する分散表現（ベクトル）を示す。
【００４８】
（検索情報記憶部１２３）
検索情報記憶部１２３は、情報処理装置１００が提供する不動産情報検索サービスＲ１におけるユーザの検索履歴に関する各種の情報を記憶する。図６に、第１の実施形態に係る検索情報記憶部の一例を示す。図６に示す例では、検索情報記憶部１２３は、「ユーザＩＤ」、「日時」、「検索クエリ」といった項目を有する。
【００４９】
「ユーザＩＤ」は、検索クエリを入力したユーザを識別するための識別情報を示す。「日時」は、情報処理装置１００がユーザから検索クエリを受け付けた日時を示す。「検索クエリ」は、ユーザによって入力された検索クエリを示す。
【００５０】
図６の１レコード目に示す例では、検索クエリ「地名＃１１」は、図１に示した地名クエリ「地名＃１１」に対応する。また、ユーザＩＤ「Ｕ１１」は、地名クエリ「地名＃１１」を入力したユーザがユーザＩＤ「Ｕ１１」で識別されるユーザ（ユーザＵ１１）であることを示す。また、日時「２０１９／１／１  ＰＭ１７：００」は、情報処理装置１００がユーザＵ１１から地名クエリ「地名＃１１」を受け付けた日時が２０１９年１月１日の午後１７：００であることを示す。
【００５１】
（コンテンツ記憶部１２４）
コンテンツ記憶部１２４は、コンテンツに関する各種の情報を記憶する。具体的には、コンテンツ記憶部１２４は、情報処理装置１００が提供する不動産情報検索サービスＲ１に関するコンテンツを格納する。例えば、コンテンツ記憶部１２４は、図１に示す知りたい街を検索する検索クエリを入力するための検索ボックスを含むコンテンツＣ１１を格納する。
【００５２】
（制御部１３０）
図３の説明に戻って、制御部１３０は、コントローラ（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）」は、「手段」や「回路」などに読み替えることができる。例えば、抽出部は、抽出手段や抽出回路に読み替えることができる。
【符号の説明】
【０２３３】
１  情報処理システム
１０  ユーザ端末
２０  検索サーバ
５０  生成装置
１００  情報処理装置
１１０  通信部
１２０  記憶部
１２１  モデル情報記憶部
１２２  ベクトル情報記憶部
１２３  検索情報記憶部
１２４  コンテンツ記憶部
１３０  制御部
１３１  取得部
１３２  生成部
１３３  提供部
１３４  算出部
１３５  抽出部
１３６  決定部
【図１】
2020129192.tif 000003
【図２】
2020129192.tif 000004
【図３】
2020129192.tif 000005
【図４】
2020129192.tif 000006
【図５】
2020129192.tif 000007
【図６】
2020129192.tif 000008
【図７】
2020129192.tif 000009
【図８】
2020129192.tif 000010
【図９】
2020129192.tif 000011
【図１０】
2020129192.tif 000012
【図１１】
2020129192.tif 000013
【図１２】
2020129192.tif 000014
【図１３】
2020129192.tif 000015
【図１４】
2020129192.tif 000016
【図１５】
2020129192.tif 000017
【図１６】
2020129192.tif 000018
【図１７】
2020129192.tif 000019
【図１８】
2020129192.tif 000020
【図１９】
2020129192.tif 000021
【図２０】
2020129192.tif 000022
【図２１】
2020129192.tif 000023
【図２２】
2020129192.tif 000024
【図２３】
2020129192.tif 000025
【図２４】
2020129192.tif 000026
【図２５】
2020129192.tif 000027
【図２６】
2020129192.tif 000028
【図２７】
2020129192.tif 000029
【図２８】
2020129192.tif 000030
【図２９】
2020129192.tif 000031