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