(57)【要約】【課題】検索クエリの意味を適切に解釈可能とすること。【解決手段】本願に係る情報処理装置は、取得部と生成部とを備える。取得部は、ユーザによって入力された検索クエリを取得する。生成部は、取得部によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。【選択図】図１
2020046940.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによって入力された検索クエリを取得する取得部と、
前記取得部によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから前記所定の検索クエリの特徴情報を予測する学習モデルを生成する生成部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記生成部は、
前記所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、前記学習モデルを生成する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成部は、
同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、前記学習モデルを生成する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記生成部は、
前記取得部によって取得された検索クエリのうち、ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、前記学習モデルを生成する
ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記生成部は、
前記取得部によって取得された検索クエリのうち、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、前記学習モデルを生成する
ことを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
コンピュータが実行する情報処理方法であって、
ユーザによって入力された検索クエリを取得する取得工程と、
前記取得工程によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから前記所定の検索クエリの特徴情報を予測する学習モデルを生成する生成工程と
を含むことを特徴とする情報処理方法。
【請求項７】
ユーザによって入力された検索クエリを取得する取得手順と、
前記取得手順によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから前記所定の検索クエリの特徴情報を予測する学習モデルを生成する生成手順と
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
従来、検索クエリの意味を解釈する技術が知られている。具体的には、対象ユーザが用いた各検索クエリに関する情報に対応するベクトル間の類似度に基づいて対象ユーザが用いた検索クエリに関する情報を第１クラスタに分類し、他のユーザの各検索クエリに関する情報に対応するベクトル間の類似度に基づいて他のユーザが用いた検索クエリに関する情報を第２クラスタに分類する。そして、第１クラスタと第２クラスタとの差異に基づいて、第１クラスタから対象ユーザに特徴的な行動を示すクラスタである特徴クラスタを抽出する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−６０４６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、検索クエリの意味を適切に解釈可能とすることができるとは限らない。具体的には、言葉の意味は、その言葉が用いられるコンテクストによって異なる場合がある。そのため、コンテクストの中で用いられた文字列をコンテクストから切り離して抽出したとしても、その文字列の本来の意味（すなわち、その文字列がそのコンテクストで用いられた意味）を解釈することは難しい場合がある。以上を踏まえると、上記の従来技術では、文字列としての検索クエリの類似度を考慮するにすぎないため、検索クエリの本来の意味を解釈することは難しい。そのため、上記の従来技術では、検索クエリを入力したユーザのコンテクストを考慮して、検索クエリの意味を適切に解釈することは難しい。したがって、上記の従来技術では、検索クエリの意味を適切に解釈可能とすることができるとは限らない。
【０００５】
また、一般的に、検索サービスにおいては、検索クエリの意味（内容）を理解し、検索クエリの意味（内容）に応じて、検索システムの振る舞いを制御することが重要である。しかしながら、検索クエリが用いられるコンテクストは多岐に渡るため、検索クエリの意味は非常に多岐に渡る。そのため、学習データを人手で作成し、多岐に渡る検索クエリの意味を適切に分析する学習モデルを生成することは難しい。
【０００６】
本願は、上記に鑑みてなされたものであって検索クエリの意味を適切に解釈可能とすることができる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願に係る情報処理装置は、ユーザによって入力された検索クエリを取得する取得部と、前記取得部によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから前記所定の検索クエリの特徴情報を予測する学習モデルを生成する生成部とを備えたことを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、検索クエリの意味を適切に解釈可能とすることができるといった効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る情報処理の一例を示す図である。
【図２】図２は、実施形態に係る情報処理の一例を示す図である。
【図３】図３は、実施形態に係る情報処理システムの構成例を示す図である。
【図４】図４は、実施形態に係る情報処理装置の構成例を示す図である。
【図５】図５は、実施形態に係るクエリ情報記憶部の一例を示す図である。
【図６】図６は、実施形態に係るベクトル情報記憶部の一例を示す図である。
【図７】図７は、実施形態に係るモデル情報記憶部の一例を示す図である。
【図８】図８は、実施形態に係る学習モデルの一例を示す図である。
【図９】図９は、実施形態に係る情報処理手順を示すフローチャートである。
【図１０】図１０は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【００１１】
〔１．情報処理の一例〕
まず、図１と図２を用いて、実施形態に係る情報処理の一例について説明する。図１と図２は、実施形態に係る情報処理の一例を示す図である。図１と図２に示す情報処理は、ユーザ端末１０と検索サーバ５０と情報処理装置１００とによって行われる。
【００１２】
〔情報処理システムの構成〕
図１と図２の説明に先立って、図３を用いて情報処理システム１の構成について説明する。図３は、実施形態に係る情報処理システムの構成例を示す図である。図３に示すように、情報処理システム１には、ユーザ端末１０と、検索サーバ５０と、情報処理装置１００とが含まれる。ユーザ端末１０と、検索サーバ５０と、情報処理装置１００とは所定のネットワークＮを介して、有線または無線により通信可能に接続される。なお、図３に示す情報処理システム１には、任意の数のユーザ端末１０と任意の数の検索サーバ５０と任意の数の情報処理装置１００とが含まれてもよい。
【００１３】
ユーザ端末１０は、検索サービスを利用するユーザによって使用される情報処理装置である。ユーザ端末１０は、例えば、スマートフォンや、タブレット型端末や、ノート型ＰＣ（Personal  Computer）や、携帯電話機や、ＰＤＡ（Personal  Digital  Assistant）等により実現される。なお、以下では、ユーザ端末１０をユーザと同一視する場合がある。すなわち、以下では、ユーザをユーザ端末１０と読み替えることもできる。
【００１４】
また、以下では、ユーザＩＤ「Ｕ１」により特定されるユーザを「ユーザＵ１」とする場合がある。このように、以下では、「ユーザＵ＊（＊は任意の数値）」と記載した場合、そのユーザはユーザＩＤ「Ｕ＊」により特定されるユーザであることを示す。例えば、「ユーザＵ２」と記載した場合、そのユーザはユーザＩＤ「Ｕ２」により特定されるユーザである。
【００１５】
また、以下では、ユーザ端末１０を利用するユーザに応じて、ユーザ端末１０をユーザ端末１０−１、１０−２として説明する。例えば、ユーザ端末１０−１は、ユーザＵ１により使用されるユーザ端末１０である。また、例えば、ユーザ端末１０−２は、ユーザＵ２により使用されるユーザ端末１０である。また、以下では、ユーザ端末１０−１、１０−２について、特に区別なく説明する場合には、ユーザ端末１０と記載する。
【００１６】
ユーザ端末１０は、ユーザによって入力された検索クエリを検索サーバ５０に送信する。具体的には、ユーザ端末１０は、ユーザによる操作に従って、検索クエリを入力するための検索ボックスを含む検索ページを検索サーバ５０から取得する。続いて、ユーザ端末１０は、ユーザによって検索ボックスに文字が入力される操作に続いて、検索クエリを送信する操作が行われると、検索ページを介して検索ボックスに入力された文字を検索クエリとして検索サーバ５０に送信する。例えば、ユーザ端末１０は、ユーザによって検索ボックスに文字が入力される操作に続いて、検索クエリの送信ボタンが押下される操作やエンターキーが押下される操作が行われると、検索ページを介して検索ボックスに入力された文字を検索クエリとして検索サーバ５０に送信する。
【００１７】
検索サーバ５０は、検索サービスを提供するサーバ装置である。具体的には、検索サーバ５０は、ユーザ端末１０から検索クエリを受け付けると、受け付けた検索クエリに応じたコンテンツであって、検索結果として出力されるコンテンツを選択する。続いて、検索サーバ５０は、選択されたコンテンツを含む検索結果ページをユーザ端末１０に配信する。ここで、検索サーバ５０によって配信されるコンテンツは、ウェブブラウザによって表示されるウェブページに限られない。例えば、検索サーバ５０によって配信されるコンテンツは、ユーザ端末１０にインストールされた専用のアプリケーションによって表示されるコンテンツであってもよい。また、検索サーバ５０によって配信されるコンテンツは、音楽コンテンツや画像（静止画のみならず動画を含む。）コンテンツ、テキストコンテンツ（ニュース記事やＳＮＳ（Social  Networking  Service）に投稿された記事を含む。）、画像とテキストを組み合わせたコンテンツ、ゲームコンテンツなど、どのようなコンテンツであってもよい。
【００１８】
また、検索サーバ５０は、ユーザによって入力された検索クエリに関する情報を記憶する。具体的には、検索サーバ５０は、ユーザの検索履歴に関する情報を記憶する。例えば、検索サーバ５０は、ユーザ端末１０から検索クエリを受け付けると、受け付けた検索クエリと検索クエリの送信元であるユーザを識別するユーザＩＤと検索クエリの送信日時とを対応付けてデータベースに登録する。検索サーバ５０は、情報処理装置１００の要求に応じて、ユーザによって入力された検索クエリに関する情報を情報処理装置１００に送信する。
【００１９】
情報処理装置１００は、ユーザによって入力された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成するサーバ装置である。具体的には、情報処理装置１００は、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現が類似するように学習モデルを学習させることで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。ここで、情報処理装置１００は、ユーザによる１回の検索ごとに検索ボックスに入力された文字列全体をユーザによって入力された検索クエリとして学習する。例えば、情報処理装置１００は、ユーザＵ１による１回の検索で検索ボックスに「六本木  パスタ」のように複数の文字列を含む検索クエリが入力された場合は、「六本木  パスタ」全体で一つの検索クエリとして学習する。また、情報処理装置１００は、同一のユーザによって各検索クエリが入力された時間の間隔が所定の時間内（例えば、２分以内）であるような複数の検索クエリを同一のユーザによって所定の時間内に入力された複数の検索クエリとして学習する。すなわち、情報処理装置１００は、同一のユーザによって短時間のうちに立て続けに入力された複数の検索クエリは、類似する特徴を有するものとして学習する。なお、情報処理装置１００は、所定の検索クエリが入力されて、所定の時間を超えて（例えば、２分以上経って）から、他の検索クエリが入力された場合は、所定の検索クエリと他の検索クエリとは、相違する特徴を有するものとして学習する。
【００２０】
一般的に、検索者が検索を行う際、一回の検索で検索者の意図する情報に到達するケースよりも、異なる検索クエリを用いて複数回にわたって検索を行った結果、検索者の意図する情報に到達するケースの方が多いと考えられる。すなわち、ユーザはある意図を持って検索を複数回行うと考えられるため、所定の時間内に連続して入力された検索クエリは、検索意図が近いという推定が成り立つ。そこで、本願発明に係る情報処理装置１００は、同一のユーザによって所定の時間内に連続して入力された複数の検索クエリは、類似する特徴を有するものとして学習モデルを学習させる。具体的には、情報処理装置１００は、ユーザによって入力された検索クエリに関する情報を検索サーバ５０から取得する。続いて、情報処理装置１００は、検索サーバ５０から取得した検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリを抽出する。続いて、情報処理装置１００は、抽出した複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。例えば、情報処理装置１００は、抽出した複数の検索クエリの分散表現が類似するように学習モデルを学習させることで、所定の検索クエリから所定の検索クエリの特徴情報を含む分散表現（ベクトル）を出力する学習モデルを生成する。
【００２１】
より具体的には、情報処理装置１００は、ＲＮＮ（Recurrent  Neural  Network）の一種であるＬＳＴＭ（Long  Short-Term  Memory）を分散表現生成に用いたＤＳＳＭ（Deep  Structured  Sematic  Model）の技術を用いて、検索クエリから分散表現（ベクトル）を出力する学習モデルを生成する。例えば、情報処理装置１００は、学習モデルの正解データとして、同一のユーザによって所定の時間内に入力された一対の検索クエリが類似する特徴を有するものとして、所定の検索クエリの分散表現（ベクトル）と、所定の検索クエリと対となる他の検索クエリの分散表現（ベクトル）とが、分散表現空間上で近くに存在するように学習する。なお、２つのベクトルが分散表現空間上で近くに存在するように学習することは、２つのベクトルが分散表現空間上で類似するように学習することと言い換えることができる。このように、情報処理装置１００は、ＬＳＴＭを分散表現生成に用いたＤＳＳＭの技術を用いて学習モデルを生成するため、情報処理装置１００によって生成された学習モデルは、任意の文字列から分散表現（ベクトル）を生成することができる。つまり、情報処理装置１００は、既知の文字列（例えば、学習時に学習した検索クエリ）の分散表現（ベクトル）だけでなく、未知の文字列（例えば、学習時に学習したことがない検索クエリ）についても分散表現（ベクトル）を生成することができる。
【００２２】
ここから、図１を用いて、情報処理の流れについて説明する。図１は、実施形態に係る情報処理の一例を示す図である。図１に示す例では、情報処理装置１００は、同一のユーザＵ１によって所定の時間内に連続して入力された「六本木  パスタ」という検索クエリＱ１１と「六本木  イタリアン」という検索クエリＱ１２とから成る一対の検索クエリを抽出する（ステップＳ１１）。
【００２３】
続いて、情報処理装置１００は、抽出した検索クエリＱ１１を学習モデルＭ１に入力して、検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１を出力する。ここで、ベクトルＢＱＶ１１は、学習モデルＭ１の出力層から出力されたばかりの検索クエリＱ１１の分散表現であって、学習モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す。また、情報処理装置１００は、抽出した検索クエリＱ１２を学習モデルＭ１に入力して、検索クエリＱ１２の分散表現であるベクトルＢＱＶ１２を出力する。ここで、ベクトルＢＱＶ１２は、学習モデルＭ１の出力層から出力されたばかりの検索クエリＱ１２の分散表現であって、学習モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す。このようにして、情報処理装置１００は、検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１と、検索クエリＱ１２の分散表現であるベクトルＢＱＶ１２とを出力する（ステップＳ１２）。
【００２４】
続いて、情報処理装置１００は、同一のユーザＵ１によって所定の時間内に連続して入力された検索クエリＱ１１（「六本木  パスタ」）と検索クエリＱ１２（「六本木  イタリアン」）とから成る一対の検索クエリは、所定の検索意図（例えば、「ある場所で飲食店を探す」という検索意図）で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリＱ１１の分散表現（ベクトルＱＶ１１）と、検索クエリＱ１１と対となる検索クエリＱ１２の分散表現（ベクトルＱＶ１２）とが、分散表現空間上で類似するように学習モデルＭ１を学習させる。例えば、学習モデルＭ１にフィードバックをかける前（学習前）の検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１と検索クエリＱ１２の分散表現であるベクトルＢＱＶ１２とのなす角度の大きさをΘとする。また、学習モデルＭ１にフィードバックをかけた後（学習後）の検索クエリＱ１１の分散表現であるベクトルＱＶ１１と検索クエリＱ１２の分散表現であるベクトルＱＶ１２とのなす角度の大きさをΦとする。この時、情報処理装置１００は、ΘよりもΦが小さくなるように、学習モデルＭ１を学習させる。例えば、情報処理装置１００は、ベクトルＢＱＶ１１とベクトルＢＱＶ１２のコサイン類似度の値を算出する。また、情報処理装置１００は、ベクトルＱＶ１１とベクトルＱＶ１２のコサイン類似度の値を算出する。続いて、情報処理装置１００は、ベクトルＢＱＶ１１とベクトルＢＱＶ１２のコサイン類似度の値よりも、ベクトルＱＶ１１とベクトルＱＶ１２のコサイン類似度の値が大きくなるように（値が１に近づくように）学習モデルＭ１を学習させる。このように、情報処理装置１００は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように学習モデルＭ１を学習させることで、検索クエリから分散表現（ベクトル）を出力する学習モデルＭ１を生成する（ステップＳ１３）。なお、情報処理装置１００は、コサイン類似度に限らず、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて分散表現（ベクトル）の間の類似度を算出してもよい。また、情報処理装置１００は、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて学習モデルＭ１を学習させてもよい。例えば、情報処理装置１００は、分散表現（ベクトル）同士のユークリッド距離や双曲空間等の非ユークリッド空間中での距離、マンハッタン距離、マハラノビス距離等といった所定の距離関数の値を算出する。続いて、情報処理装置１００は、分散表現（ベクトル）同士の所定の距離関数の値（すなわち、分散表現空間における距離）が小さくなるように学習モデルＭ１を学習させてもよい。
【００２５】
次に、図２を用いて、情報処理の流れについてより詳しく説明する。なお、図２の説明では、図１の説明と重複する部分は、適宜省略する。図２は、実施形態に係る情報処理の一例を示す図である。図２に示す例では、情報処理装置１００が生成した学習モデルＭ１によって出力された分散表現（ベクトル）が分散表現空間にマッピングされる様子が示されている。情報処理装置１００は、所定の検索クエリの分散表現と所定の検索クエリと対となる他の検索クエリの分散表現とが分散表現空間上で近くにマッピングされるように学習モデルＭ１のトレーニングを行う。
【００２６】
図２の上段に示す例では、情報処理装置１００は、同一のユーザＵ１によって所定の時間内に連続して入力された４個の検索クエリである検索クエリＱ１１（「六本木  パスタ」）、検索クエリＱ１２（「六本木  イタリアン」）、検索クエリＱ１３（「赤坂  パスタ」）、検索クエリＱ１４（「麻布  パスタ」）を抽出する。情報処理装置１００は、同一のユーザＵ１によって各検索クエリが入力された時間の間隔が所定の時間内である４個の検索クエリを抽出する。情報処理装置１００は、同一のユーザＵ１によって後述する各検索クエリのペアが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。情報処理装置１００は、検索クエリが入力された順番に並べると、検索クエリＱ１１、検索クエリＱ１２、検索クエリＱ１３、検索クエリＱ１４の順番で入力された４個の検索クエリを抽出する。情報処理装置１００は、４個の検索クエリを抽出すると、時系列的に隣り合う２つの検索クエリを一対の検索クエリとして、３対の検索クエリのペアである（検索クエリＱ１１、検索クエリＱ１２）、（検索クエリＱ１２、検索クエリＱ１３）、（検索クエリＱ１３、検索クエリＱ１４）を抽出する（ステップＳ２１−１）。なお、情報処理装置１００は、同一のユーザＵ１によって全ての検索クエリが所定の時間内に入力された複数の検索クエリを抽出してもよい。そして、情報処理装置１００は、時系列的に隣り合うか否かに関わらず、抽出した複数の検索クエリの中から２つの検索クエリを選択して、選択した２つの検索クエリを一対の検索クエリとして抽出してもよい。
【００２７】
続いて、情報処理装置１００は、抽出した検索クエリＱ１ｋ（ｋ＝１、２、３、４）を学習モデルＭ１に入力して、検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であるベクトルＢＱＶ１ｋ（ｋ＝１、２、３、４）を出力する。ここで、ベクトルＢＱＶ１ｋ（ｋ＝１、２、３、４）は、学習モデルＭ１の出力層から出力されたばかりの検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であって、学習モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す（ステップＳ２２−１）。
【００２８】
続いて、情報処理装置１００は、同一のユーザＵ１によって所定の時間内に連続して入力された一対の検索クエリは、所定の検索意図（例えば、「ある場所（東京都港区付近）で飲食店を探す」という検索意図）で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリＱ１１の分散表現（ベクトルＱＶ１１）と、検索クエリＱ１１と対となる検索クエリＱ１２の分散表現（ベクトルＱＶ１２）とが、分散表現空間上で類似するように学習モデルＭ１を学習させる。また、情報処理装置１００は、検索クエリＱ１２の分散表現（ベクトルＱＶ１２）と、検索クエリＱ１２と対となる検索クエリＱ１３の分散表現（ベクトルＱＶ１３）とが、分散表現空間上で類似するように学習モデルＭ１を学習させる。また、情報処理装置１００は、検索クエリＱ１３の分散表現（ベクトルＱＶ１３）と、検索クエリＱ１３と対となる検索クエリＱ１４の分散表現（ベクトルＱＶ１４）とが、分散表現空間上で類似するように学習モデルＭ１を学習させる。このように、情報処理装置１００は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように学習モデルＭ１を学習させることで、検索クエリから分散表現（ベクトル）を出力する学習モデルＭ１を生成する（ステップＳ２３−１）。
【００２９】
図２の上段に示す情報処理の結果として、検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であるベクトルＱＶ１ｋ（ｋ＝１、２、３、４）が分散表現空間の近い位置にクラスタＣＬ１１としてマッピングされる様子が示されている。例えば、検索クエリＱ１ｋ（ｋ＝１、２、３、４）は、ユーザＵ１によって「ある場所（東京都港区付近）で飲食店を探す」という検索意図の下で検索された検索クエリの集合であると推定される。すなわち、検索クエリＱ１ｋ（ｋ＝１、２、３、４）は、「ある場所（東京都港区付近）で飲食店を探す」という検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであると推定される。ここで、情報処理装置１００は、「ある場所（東京都港区付近）で飲食店を探す」という検索意図で入力された所定の検索クエリが学習モデルに入力されると、クラスタＣＬ１１の位置にマッピングされるような分散表現を出力することができる。これにより、例えば、情報処理装置１００は、クラスタＣＬ１１の位置にマッピングされる分散表現に対応する検索クエリを抽出することにより、「ある場所（東京都港区付近）で飲食店を探す」という検索意図に応じた検索クエリを抽出することができる。したがって、情報処理装置１００は、検索クエリの意味を適切に解釈可能とすることができる。
【００３０】
図２の下段に示す例では、情報処理装置１００は、同一のユーザＵ２によって所定の時間内に連続して入力された３個の検索クエリである検索クエリＱ２１（「冷蔵庫  ４００Ｌ」）、検索クエリＱ２２（「冷蔵庫  中型」）、検索クエリＱ２３（「冷蔵庫  中型  おすすめ」）を抽出する。情報処理装置１００は、検索クエリが入力された順番に並べると、検索クエリＱ２１、検索クエリＱ２２、検索クエリＱ２３の順番で入力された３個の検索クエリを抽出する。情報処理装置１００は、３個の検索クエリを抽出すると、時系列的に隣り合う２つの検索クエリを一対の検索クエリとして、２対の検索クエリのペアである（検索クエリＱ２１、検索クエリＱ２２）、（検索クエリＱ２２、検索クエリＱ２３）を抽出する（ステップＳ２１−２）。
【００３１】
続いて、情報処理装置１００は、抽出した検索クエリＱ２ｍ（ｍ＝１、２、３）を学習モデルＭ１に入力して、検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であるベクトルＢＱＶ２ｍ（ｍ＝１、２、３）を出力する。ここで、ベクトルＢＱＶ２ｍ（ｍ＝１、２、３）は、学習モデルＭ１の出力層から出力されたばかりの検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であって、学習モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す（ステップＳ２２−２）。
【００３２】
続いて、情報処理装置１００は、同一のユーザＵ２によって所定の時間内に連続して入力された一対の検索クエリは、所定の検索意図（例えば、「中型の冷蔵庫を調べる」という検索意図）で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリＱ２１の分散表現（ベクトルＱＶ２１）と、検索クエリＱ２１と対となる検索クエリＱ２２の分散表現（ベクトルＱＶ２２）とが、分散表現空間上で類似するように学習モデルＭ１を学習させる。また、情報処理装置１００は、検索クエリＱ２２の分散表現（ベクトルＱＶ２２）と、検索クエリＱ２２と対となる検索クエリＱ２３の分散表現（ベクトルＱＶ２３）とが、分散表現空間上で類似するように学習モデルＭ１を学習させる。このように、情報処理装置１００は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように学習モデルＭ１を学習させることで、検索クエリから分散表現（ベクトル）を出力する学習モデルＭ１を生成する（ステップＳ２３−２）。
【００３３】
図２の下段に示す情報処理の結果として、検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であるベクトルＱＶ２ｍ（ｍ＝１、２、３）が分散表現空間の近い位置にクラスタＣＬ２１としてマッピングされる様子が示されている。例えば、検索クエリＱ２ｍ（ｍ＝１、２、３）は、ユーザＵ２によって「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリの集合であると推定される。すなわち、Ｑ２ｍ（ｍ＝１、２、３）は、「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであると推定される。ここで、情報処理装置１００は、「中型の冷蔵庫を調べる」という検索意図で入力された所定の検索クエリが学習モデルに入力されると、クラスタＣＬ２１の位置にマッピングされるような分散表現を出力することができる。これにより、例えば、情報処理装置１００は、クラスタＣＬ２１の位置にマッピングされる分散表現に対応する検索クエリを抽出することにより、「中型の冷蔵庫を調べる」という検索意図に応じた検索クエリを抽出することができる。したがって、情報処理装置１００は、検索クエリの意味を適切に解釈可能とすることができる。
【００３４】
また、本願発明に係る情報処理装置１００は、ランダムに抽出された複数の検索クエリは、異なる検索意図の下で検索された検索クエリであるという点で、相互に相違する特徴を有する検索クエリであるとみなして学習モデルＭ１を学習させる。具体的には、情報処理装置１００は、所定の検索クエリの分散表現と、所定の検索クエリとは無関係にランダムに抽出された検索クエリの分散表現とが分散表現空間上で遠くにマッピングされるように学習モデルＭ１のトレーニングを行う。図２に示す例では、情報処理装置１００は、検索クエリＱ１１とは無関係にランダムに検索クエリを抽出したところ、検索クエリＱ２１が抽出されたとする。この場合、情報処理装置１００は、検索クエリＱ１１の分散表現（ベクトルＱＶ１１）と、検索クエリＱ１１とは無関係にランダムに抽出された検索クエリＱ２１の分散表現（ベクトルＱＶ２１）とが分散表現空間上で遠くにマッピングされるように学習モデルＭ１のトレーニングを行う。その結果として、「ある場所（東京都港区付近）で飲食店を探す」という検索意図の下で検索された検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であるベクトルＱＶ１ｋ（ｋ＝１、２、３、４）を含むクラスタＣＬ１１と、「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であるベクトルＱＶ２ｍ（ｍ＝１、２、３）を含むクラスタＣＬ２１とは、分散表現空間上で遠くにマッピングされる。すなわち、本願発明に係る情報処理装置１００は、ランダムに抽出された複数の検索クエリの分散表現が相違するように学習モデルＭ１を学習させることにより、検索意図が異なる検索クエリの分散表現を分散表現空間上で遠い位置に出力可能とする。
【００３５】
なお、情報処理装置１００が生成した学習モデルＭ１によって出力された分散表現（ベクトル）が分散表現空間にマッピングされた結果として、上述したクラスタＣＬ１１とクラスタＣＬ２１の他にも、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現（ベクトル）の集合であるクラスタＣＬ１２やクラスタＣＬ２２が生成される。
【００３６】
上述したように、情報処理装置１００は、ユーザによって入力された検索クエリを取得する。また、情報処理装置１００は、取得した検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。すなわち、本願発明に係る情報処理装置１００は、所定の時間内に連続して入力された複数の検索クエリは、所定の検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであるとみなして学習モデルを学習させる。具体的には、情報処理装置１００は、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現が類似するように学習モデルを学習させることで、所定の検索クエリから所定の検索クエリの特徴情報を含む分散表現を出力する学習モデルを生成する。すなわち、本願発明に係る情報処理装置１００は、所定の時間内に連続して入力された複数の検索クエリの分散表現が類似するように学習モデルＭ１を学習させることにより、所定の検索意図の下で検索された検索クエリの分散表現を分散表現空間上で近い位置に出力可能とする。これにより、情報処理装置１００は、検索クエリを入力したユーザのコンテクストに応じて検索クエリの意味（検索意図）を出力（解釈）することを可能にする。したがって、情報処理装置１００は、検索クエリの意味を適切に解釈可能とすることができる。さらに、情報処理装置１００は、所定の検索クエリの特徴情報を含む分散表現の近傍にマッピングされる分散表現に対応する検索クエリを抽出することにより、所定の検索クエリが検索された検索意図に応じた検索クエリを抽出することができる。すなわち、情報処理装置１００は、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、ユーザの検索動向を分析することを可能にする。したがって、情報処理装置１００は、ユーザの検索動向の分析精度を高めることができる。また、情報処理装置１００が生成した学習モデルＭ１を検索システムの一部として機能させることもできる。あるいは、情報処理装置１００は、学習モデルＭ１によって予測された検索クエリの特徴情報を利用する他のシステム（例えば、検索エンジン）への入力情報として、学習モデルＭ１が出力した検索クエリの分散表現を提供することもできる。これにより、検索システムは、学習モデルＭ１によって予測された検索クエリの特徴情報に基づいて、検索結果として出力されるコンテンツを選択可能になる。すなわち、検索システムは、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、検索結果として出力されるコンテンツを選択可能になる。さらに、検索システムは、学習モデルＭ１によって予測された検索クエリの特徴情報に基づいて、検索結果として出力されるコンテンツに含まれる文字列の分散表現と検索クエリの分散表現との類似度を算出可能になる。そして、検索システムは、算出した類似度に基づいて、検索結果として出力されるコンテンツの表示順を決定可能になる。すなわち、検索システムは、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、検索結果として出力されるコンテンツの表示順を決定可能になる。したがって、情報処理装置１００は、検索サービスにおけるユーザビリティを向上させることができる。
【００３７】
〔２．情報処理装置の構成〕
次に、図４を用いて、実施形態に係る情報処理装置１００の構成について説明する。図４は、実施形態に係る情報処理装置１００の構成例を示す図である。図４に示すように、情報処理装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、情報処理装置１００は、情報処理装置１００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００３８】
（通信部１１０）
通信部１１０は、例えば、ＮＩＣ（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）等の集積回路により実現される。
【００５６】
また、制御部１３０は、モデル情報記憶部１２３に記憶されている学習モデルＭ１（モデルデータＭＤＴ１）に従った情報処理により、入力層に入力された検索クエリに対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、分散表現を出力層から出力するよう、コンピュータを機能させる。
【００５７】
図４に示すように、制御部１３０は、取得部１３１と、抽出部１３２と、生成部１３３とを有し、以下に説明する情報処理の作用を実現または実行する。なお、制御部１３０の内部構成は、図４に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００５８】
（取得部１３１）
取得部１３１は、種々の情報を取得する。具体的には、取得部１３１は、ユーザによって入力された検索クエリを検索サーバ５０から取得する。取得部１３１は、ユーザによって入力された検索クエリを取得すると、取得した検索クエリをクエリ情報記憶部１２１に格納する。
【００５９】
（抽出部１３２）
抽出部１３２は、種々の情報を抽出する。具体的には、抽出部１３２は、取得部１３１によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリを抽出する。例えば、抽出部１３２は、同一のユーザによって各検索クエリが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。続いて、抽出部１３２は、同一のユーザによって所定の時間内に入力された複数の検索クエリのうち、同一のユーザによって所定の時間内に連続して入力された一対の検索クエリを抽出する。例えば、抽出部１３２は、同一のユーザによって各検索クエリのペアが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。例えば、抽出部１３２は、取得部１３１によって取得された検索クエリのうち、同一のユーザＵ１によって所定の時間内に連続して入力された４個の検索クエリである検索クエリＱ１１（「六本木  パスタ」）、検索クエリＱ１２（「六本木  イタリアン」）、検索クエリＱ１３（「赤坂  パスタ」）、検索クエリＱ１４（「麻布  パスタ」）を抽出する。抽出部１３２は、検索クエリが入力された順番に並べると、検索クエリＱ１１、検索クエリＱ１２、検索クエリＱ１３、検索クエリＱ１４の順番で入力された４個の検索クエリを抽出する。続いて、抽出部１３２は、４個の検索クエリを抽出すると、時系列的に隣り合う２つの検索クエリを一対の検索クエリとして、３対の検索クエリのペアである（検索クエリＱ１１、検索クエリＱ１２）、（検索クエリＱ１２、検索クエリＱ１３）、（検索クエリＱ１３、検索クエリＱ１４）を抽出する。なお、抽出部１３２は、同一のユーザによって全ての検索クエリが所定の時間内に入力された複数の検索クエリを抽出してもよい。そして、抽出部１３２は、時系列的に隣り合うか否かに関わらず、抽出した複数の検索クエリの中から２つの検索クエリを選択して、選択した２つの検索クエリを一対の検索クエリとして抽出してもよい。
【００６０】
また、抽出部１３２は、取得部１３１によって取得された検索クエリのうち、所定の検索クエリと所定の検索クエリに無関係な他の検索クエリとを抽出する。例えば、抽出部１３２は、取得部１３１によって取得された検索クエリの中から、所定の検索クエリを抽出する。続いて、抽出部１３２は、取得部１３１によって取得された検索クエリの中から、所定の検索クエリとは無関係にランダムに他の検索クエリを抽出する。
【００６１】
（生成部１３３）
生成部１３３は、種々の情報を生成する。具体的には、生成部１３３は、取得部１３１によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。具体的には、生成部１３３は、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現が類似するように学習モデルを学習させることで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。例えば、生成部１３３は、所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、学習モデルを生成する。例えば、生成部１３３は、一対の検索クエリの学習前の分散表現（ベクトル）の類似度の値を算出する。また、生成部１３３は、一対の検索クエリの学習後の分散表現（ベクトル）の類似度の値を算出する。続いて、生成部１３３は、学習前の分散表現（ベクトル）の類似度の値よりも、学習後の分散表現（ベクトル）の類似度の値が大きくなるように学習モデルを学習させる。このように、生成部１３３は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように学習モデルを学習させることで、検索クエリから分散表現（ベクトル）を出力する学習モデルを生成する。より具体的には、生成部１３３は、ＲＮＮの一種であるＬＳＴＭを分散表現生成に用いたＤＳＳＭの技術を用いて、検索クエリから分散表現（ベクトル）を出力する学習モデルを生成する。例えば、生成部１３３は、学習モデルの正解データとして、同一のユーザによって所定の時間内に入力された一対の検索クエリが類似する特徴を有するものとして、所定の検索クエリの分散表現（ベクトル）と、所定の検索クエリと対となる他の検索クエリの分散表現（ベクトル）とが、分散表現空間上で近くに存在するように学習する。
【００６２】
〔学習モデルの一例〕
ここで、図８を用いて情報処理装置１００が生成する学習モデルの一例について説明する。図８は、実施形態に係る学習モデルの一例を示す図である。図８に示す例では、情報処理装置１００が生成する学習モデルＭ１は、３層のＬＳＴＭ  ＲＮＮで構成されている。図８に示す例では、抽出部１３２は、同一のユーザＵ１によって所定の時間内に連続して入力された「六本木  パスタ」という検索クエリＱ１１と「六本木  イタリアン」という検索クエリＱ１２とから成る一対の検索クエリを抽出する。生成部１３３は、抽出部１３２によって抽出されたた検索クエリＱ１１を学習モデルＭ１の入力層に入力する（ステップＳ３１）。
【００６３】
続いて、生成部１３３は、学習モデルＭ１の出力層から検索クエリＱ１１の分散表現である２５６次元のベクトルＢＱＶ１１を出力する。また、生成部１３３は、抽出部１３２によって抽出された検索クエリＱ１２を学習モデルＭ１の入力層に入力する。続いて、生成部１３３は、学習モデルＭ１の出力層から検索クエリＱ１２の分散表現である２５６次元のベクトルＢＱＶ１２を出力する（ステップＳ３２）。
【００６４】
続いて、生成部１３３は、連続して入力された２つの検索クエリの分散表現（ベクトル）が類似するように学習することで、検索クエリから分散表現（ベクトル）を出力する学習モデルを生成する（ステップＳ３３）。例えば、学習モデルＭ１にフィードバックをかける前（学習前）の検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１と検索クエリＱ１２の分散表現であるベクトルＢＱＶ１２とのなす角度の大きさをΘとする。また、学習モデルＭ１にフィードバックをかけた後（学習後）の検索クエリＱ１１の分散表現であるベクトルＱＶ１１と検索クエリＱ１２の分散表現であるベクトルＱＶ１２とのなす角度の大きさをΦとする。この時、生成部１３３は、ΘよりもΦが小さくなるように、学習モデルＭ１を学習させる。例えば、生成部１３３は、ベクトルＢＱＶ１１とベクトルＢＱＶ１２のコサイン類似度の値を算出する。また、生成部１３３は、ベクトルＱＶ１１とベクトルＱＶ１２のコサイン類似度の値を算出する。続いて、生成部１３３は、ベクトルＢＱＶ１１とベクトルＢＱＶ１２のコサイン類似度の値よりも、ベクトルＱＶ１１とベクトルＱＶ１２のコサイン類似度の値が大きくなるように（値が１に近づくように）学習モデルＭ１を学習させる。このように、生成部１３３は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように学習モデルＭ１を学習させることで、検索クエリから分散表現（ベクトル）を出力する学習モデルＭ１を生成する。なお、生成部１３３は、コサイン類似度に限らず、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて分散表現（ベクトル）の間の類似度を算出してもよい。また、生成部１３３は、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて学習モデルＭ１を学習させてもよい。例えば、生成部１３３は、分散表現（ベクトル）同士のユークリッド距離や双曲空間等の非ユークリッド空間中での距離、マンハッタン距離、マハラノビス距離等といった所定の距離関数の値を算出する。続いて、生成部１３３は、分散表現（ベクトル）同士の所定の距離関数の値（すなわち、分散表現空間における距離）が小さくなるように学習モデルＭ１を学習させてもよい。
【００６５】
また、生成部１３３は、同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、学習モデルを生成する。例えば、生成部１３３は、地名を示す「六本木」と食品の種類を示す「パスタ」の文字とが区切り文字であるスペースで区切られた検索クエリ「六本木  パスタ」と、地名を示す「六本木」と料理の種類を示す「イタリアン」の文字とが区切り文字であるスペースで区切られた検索クエリ「六本木  イタリアン」とが類似する特徴を有するものとして学習することで、学習モデルを生成する。
【００６６】
また、生成部１３３は、取得部１３１によって取得された検索クエリのうち、ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、学習モデルを生成する。具体的には、生成部１３３は、取得部１３１によって取得された検索クエリのうち、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、学習モデルを生成する。例えば、生成部１３３は、抽出部１３２によって抽出された所定の検索クエリの分散表現と、所定の検索クエリとは無関係にランダムに抽出された検索クエリの分散表現とが分散表現空間上で遠くにマッピングされるように学習モデルＭ１のトレーニングを行う。
【００６７】
〔３．情報処理のフロー〕
次に、図９を用いて、実施形態に係る情報処理の手順について説明する。図９は、実施形態に係る情報処理手順を示すフローチャートである。図９に示す例では、情報処理装置１００は、ユーザによって入力された検索クエリを取得する（ステップＳ１０１）。
【００６８】
続いて、情報処理装置１００は、同一のユーザによって所定の時間内に入力された複数の検索クエリを抽出する（ステップＳ１０２）。
【００６９】
続いて、情報処理装置１００は、抽出した検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから分散表現（ベクトル）を出力する学習モデルを生成する（ステップＳ１０３）。
【００７０】
〔４．効果〕
上述してきたように、実施形態に係る情報処理装置１００は、取得部１３１と生成部１３３を備える。取得部１３１は、ユーザによって入力された検索クエリを取得する。生成部１３３は、取得部１３１によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。
【００７１】
一般的に、ユーザはある意図を持って検索を複数回行うと考えられるため、所定の時間内に連続して入力された検索クエリは、検索意図が近いという仮定が成り立つ。そこで、本願発明に係る情報処理装置１００は、所定の時間内に連続して入力された複数の検索クエリは、所定の検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであるとみなして学習モデルＭ１を学習させる。具体的には、本願発明に係る情報処理装置１００は、所定の時間内に連続して入力された検索クエリの分散表現が類似するように学習モデルＭ１を学習させることにより、検索意図が近い検索クエリの分散表現を分散表現空間上で近い位置に出力可能とする。これにより、情報処理装置１００は、検索クエリを入力したユーザのコンテクストに応じて検索クエリの意味（検索意図）を出力（解釈）することを可能にする。したがって、情報処理装置１００は、検索クエリの意味を適切に解釈可能とすることができる。さらに、情報処理装置１００は、所定の検索クエリの特徴情報を含む分散表現の近傍にマッピングされる分散表現に対応する検索クエリを抽出することにより、所定の検索クエリが検索された検索意図に応じた検索クエリを抽出することができる。すなわち、情報処理装置１００は、検索クエリを入力したユーザのコンテクストを踏まえて、ユーザの検索動向を分析することを可能にする。したがって、情報処理装置１００は、ユーザの検索動向の分析精度を高めることができる。また、情報処理装置１００が生成した学習モデルＭ１を検索システムの一部として機能させることもできる。あるいは、情報処理装置１００は、学習モデルＭ１によって予測された検索クエリの特徴情報を利用する他のシステム（例えば、検索エンジン）への入力情報として、学習モデルＭ１が出力した検索クエリの分散表現を提供することもできる。これにより、検索システムは、学習モデルＭ１によって予測された検索クエリの特徴情報に基づいて、検索結果として出力されるコンテンツを選択可能になる。すなわち、検索システムは、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、検索結果として出力されるコンテンツを選択可能になる。さらに、検索システムは、学習モデルＭ１によって予測された検索クエリの特徴情報に基づいて、検索結果として出力されるコンテンツに含まれる文字列の分散表現と検索クエリの分散表現との類似度を算出可能になる。そして、検索システムは、算出した類似度に基づいて、検索結果として出力されるコンテンツの表示順を決定可能になる。すなわち、検索システムは、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、検索結果として出力されるコンテンツの表示順を決定可能になる。したがって、情報処理装置１００は、検索サービスにおけるユーザビリティを向上させることができる。
【００７２】
また、生成部１３３は、所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、学習モデルを生成する。
【００７３】
一般的に、同一のユーザが短時間に続けて入力した２つの検索クエリは、検索意図が同一であるか、同一でなくとも検索意図が近いと考えられる。すなわち、所定の時間内に続けて入力された一対の検索クエリは、検索意図が同一であるか、同一でなくとも検索意図が近いと考えられる。すなわち、情報処理装置１００は、所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することにより、ユーザの検索意図に応じた検索クエリをより精度よく抽出可能とすることができる。
【００７４】
また、生成部１３３は、同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、学習モデルを生成する。
【００７５】
一般的に、単体の文字列からなる検索クエリよりも、複数の文字列を含む検索クエリのほうが、検索意図がより明確であると考えられる。すなわち、情報処理装置１００は、所定の区切り文字で区切られた文字列を含む検索クエリを用いて学習することにより、ユーザの検索意図に応じた検索クエリをより精度よく抽出可能とすることができる。
【００７６】
また、生成部１３３は、取得部１３１によって取得された検索クエリのうち、ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、学習モデルを生成する。また、生成部１３３は、取得部１３１によって取得された検索クエリのうち、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、学習モデルを生成する。
【００７７】
一般的に、ランダムに抽出された複数の検索クエリは、互いに無関係に入力された検索クエリであるため、検索意図が異なるか、検索意図が遠いと考えられる。そこで、本願発明に係る情報処理装置１００は、ランダムに抽出された複数の検索クエリは、異なる検索意図の下で検索された検索クエリであるという点で、相互に相違する特徴を有する検索クエリであるとみなして学習モデルＭ１を学習させる。具体的には、本願発明に係る情報処理装置１００は、ランダムに抽出された複数の検索クエリの分散表現が相違するように学習モデルＭ１を学習させることにより、検索意図が異なる検索クエリの分散表現を分散表現空間上で遠い位置に出力可能とする。これにより、学習モデルは、検索意図が近い検索クエリのペアである正解データに加えて、検索意図が遠い検索クエリのペアである不正解データを学習することができる。すなわち、情報処理装置１００は、学習モデルの精度を向上させることができる。したがって、情報処理装置１００は、検索クエリの意味を適切に解釈可能とすることができる。
【００７８】
〔５．ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置１００は、例えば図９に示すような構成のコンピュータ１０００によって実現される。図９は、情報処理装置１００の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ１３００、ＨＤＤ１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を備える。
【００７９】
ＣＰＵ１１００は、ＲＯＭ１３００またはＨＤＤ１４００に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を格納する。
【００８０】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス１５００は、所定の通信網を介して他の機器からデータを受信してＣＰＵ１１００へ送り、ＣＰＵ１１００が生成したデータを所定の通信網を介して他の機器へ送信する。
【００８１】
ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、生成したデータを入出力インターフェイス１６００を介して出力装置へ出力する。
【００８２】
メディアインターフェイス１７００は、記録媒体１８００に格納されたプログラムまたはデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【００８３】
例えば、コンピュータ１０００が実施形態に係る情報処理装置１００として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラムまたはデータ（例えば、学習モデルＭ１のモデルデータＭＤＴ１）を実行することにより、制御部１３０の機能を実現する。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムを記録媒体１８００から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムまたはデータ（例えば、学習モデルＭ１のモデルデータＭＤＴ１）を取得してもよい。
【００８４】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【００８５】
〔６．その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【００８６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００８７】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００８８】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、生成手段や生成回路に読み替えることができる。
【符号の説明】
【００８９】
１  情報処理システム
１０  ユーザ端末
５０  検索サーバ
１００  情報処理装置
１２１  クエリ情報記憶部
１２２  ベクトル情報記憶部
１２３  モデル情報記憶部
１３１  取得部
１３２  抽出部
１３３  生成部
【図１】
2020046940.tif 000003
【図２】
2020046940.tif 000004
【図３】
2020046940.tif 000005
【図４】
2020046940.tif 000006
【図５】
2020046940.tif 000007
【図６】
2020046940.tif 000008
【図７】
2020046940.tif 000009
【図８】
2020046940.tif 000010
【図９】
2020046940.tif 000011
【図１０】
2020046940.tif 000012
【手続補正書】
【提出日】平成31年3月14日(2019.3.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザによって入力された検索クエリを取得する取得部と、
前記取得部によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現が類似する特徴を有するものとして学習することで、所定の検索クエリから前記所定の検索クエリの分散表現を出力する学習モデルを生成する生成部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記生成部は、
前記所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、前記学習モデルを生成する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成部は、
同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現として、所定の区切り文字で区切られた文字列を含む複数の検索クエリの分散表現が類似する特徴を有するものとして学習することで、前記学習モデルを生成する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記生成部は、
前記取得部によって取得された検索クエリのうち、ランダムに抽出された複数の検索クエリの分散表現が相違する特徴を有するものとして学習することで、前記学習モデルを生成する
ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記生成部は、
前記取得部によって取得された検索クエリのうち、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、前記学習モデルを生成する
ことを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
コンピュータが実行する情報処理方法であって、
ユーザによって入力された検索クエリを取得する取得工程と、
前記取得工程によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現が類似する特徴を有するものとして学習することで、所定の検索クエリから前記所定の検索クエリの分散表現を出力する学習モデルを生成する生成工程と
を含むことを特徴とする情報処理方法。
【請求項７】
ユーザによって入力された検索クエリを取得する取得手順と、
前記取得手順によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現が類似する特徴を有するものとして学習することで、所定の検索クエリから前記所定の検索クエリの分散表現を出力する学習モデルを生成する生成手順と
をコンピュータに実行させることを特徴とする情報処理プログラム。
【手続補正書】
【提出日】令和1年7月12日(2019.7.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザによって検索時に入力された検索クエリを取得する取得部と、
前記取得部によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された検索クエリの分散表現であって、前記ユーザによって行われた各検索に対応する検索クエリの分散表現が互いに類似する特徴を有するものとして前記検索クエリが入力された順序で前記検索クエリを順次処理することにより学習することで、所定の検索クエリから前記所定の検索クエリの分散表現を出力する学習モデルを生成する生成部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記生成部は、
前記所定の時間内に続けて入力された一対の検索クエリの分散表現が互いに類似するように学習することで、前記学習モデルを生成する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成部は、
同一のユーザによって所定の時間内に入力された検索クエリの分散表現として、所定の区切り文字で区切られた文字列を含む検索クエリの分散表現が互いに類似する特徴を有するものとして学習することで、前記学習モデルを生成する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記生成部は、
前記取得部によって取得された検索クエリのうち、ランダムに抽出された複数の検索クエリの分散表現が互いに相違する特徴を有するものとして学習することで、前記学習モデルを生成する
ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記生成部は、
前記取得部によって取得された検索クエリのうち、ランダムに抽出された一対の検索クエリの分散表現が互いに相違するように学習することで、前記学習モデルを生成する
ことを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
コンピュータが実行する情報処理方法であって、
ユーザによって検索時に入力された検索クエリを取得する取得工程と、
前記取得工程によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された検索クエリの分散表現であって、前記ユーザによって行われた各検索に対応する検索クエリの分散表現が互いに類似する特徴を有するものとして前記検索クエリが入力された順序で前記検索クエリを順次処理することにより学習することで、所定の検索クエリから前記所定の検索クエリの分散表現を出力する学習モデルを生成する生成工程と
を含むことを特徴とする情報処理方法。
【請求項７】
ユーザによって検索時に入力された検索クエリを取得する取得手順と、
前記取得手順によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された検索クエリの分散表現であって、前記ユーザによって行われた各検索に対応する検索クエリの分散表現が互いに類似する特徴を有するものとして前記検索クエリが入力された順序で前記検索クエリを順次処理することにより学習することで、所定の検索クエリから前記所定の検索クエリの分散表現を出力する学習モデルを生成する生成手順と
をコンピュータに実行させることを特徴とする情報処理プログラム。