(57)【要約】【課題】ナレッジデータベースを適切に補正すること。【解決手段】本願に係る情報処理装置は、取得部と補正部を備える。取得部は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデルを用いて、情報間の類似性に関する類似情報を取得する。補正部は、取得部によって取得された類似情報に基づいて、ナレッジデータベースを補正する。また、取得部は、類似情報として、第１情報と、第１情報と類似する第２情報との類似性に関する類似情報を取得する。補正部は、取得部によって取得された類似情報に基づいて、第１情報に対応する第１要素、第２情報に対応する第２要素、または第１要素と第２要素との関係を示す関係情報のうち少なくともいずれか一つをナレッジデータベースに付加する。【選択図】図１
2020129193.tif 000002
【特許請求の範囲】
【請求項１】
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、情報間の類似性に関する類似情報を取得する取得部と、
前記取得部によって取得された類似情報に基づいて、ナレッジデータベースを補正する補正部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記取得部は、
前記類似情報として、第１情報と、前記第１情報と類似する第２情報との類似性に関する類似情報を取得し、
前記補正部は、
前記取得部によって取得された類似情報に基づいて、前記第１情報に対応する第１要素、前記第２情報に対応する第２要素、または前記第１要素と前記第２要素との関係を示す関係情報のうち少なくともいずれか一つを前記ナレッジデータベースに付加する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記補正部は、
前記取得部によって取得された類似情報に基づいて、前記第１情報に対応する第１要素と、前記第２情報に対応する第２要素と、前記第１要素と前記第２要素との関係を示す関係情報とを有するトリプルを前記ナレッジデータベースに付加する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記取得部は、
前記類似情報として、前記ナレッジデータベースに含まれる第１要素が示す第１情報と、前記第１情報と類似する第２情報との類似性に関する類似情報を取得し、
前記補正部は、
前記取得部によって取得された類似情報に基づいて、前記第２情報に対応する第２要素を前記ナレッジデータベースに付加する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記取得部は、
前記類似情報として、前記ナレッジデータベースに含まれる第１要素が示す第１情報と、前記ナレッジデータベースに含まれる第２要素が示す第２情報であって、前記第１情報と類似する第２情報との類似性に関する類似情報を取得し、
前記補正部は、
前記取得部によって取得された類似情報に基づいて、前記第１要素と前記第２要素との関係を示す関係情報を前記ナレッジデータベースに付加する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記学習モデルを用いて、所定の情報の分散表現を生成する生成部と、
前記生成部によって生成された所定の情報の分散表現と、前記生成部によって生成された所定の情報とは異なる他の情報の分散表現との類似度を算出する算出部と、
をさらに備え、
前記補正部は、
前記算出部によって算出された類似度に基づくスコアを前記トリプルに付加する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項７】
前記取得部は、
入力情報として所定の検索クエリが入力された際に、出力情報として前記所定の検索クエリの分散表現を出力する学習モデルを用いて、前記類似情報を取得する
ことを特徴とする請求項１〜６のいずれか一つに記載の情報処理装置。
【請求項８】
前記取得部は、
前記所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、前記類似情報を取得する
ことを特徴とする請求項１〜７のいずれか一つに記載の情報処理装置。
【請求項９】
前記取得部は、
同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、前記類似情報を取得する
ことを特徴とする請求項１〜８のいずれか一つに記載の情報処理装置。
【請求項１０】
前記取得部は、
ランダムに取得された複数の検索クエリが相違する特徴を有するものとして学習することで、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、前記類似情報を取得する
ことを特徴とする請求項１〜９のいずれか一つに記載の情報処理装置。
【請求項１１】
前記取得部は、
ランダムに取得された一対の検索クエリの分散表現が相違するように学習することで、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、前記類似情報を取得する
ことを特徴とする請求項１〜１０のいずれか一つに記載の情報処理装置。
【請求項１２】
コンピュータが実行する情報処理方法であって、
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、情報間の類似性に関する類似情報を取得する取得工程と、
前記取得工程によって取得された類似情報に基づいて、ナレッジデータベースを補正する補正工程と、
を含むことを特徴とする情報処理方法。
【請求項１３】
同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、情報間の類似性に関する類似情報を取得する取得手段と、
前記取得手段によって取得された類似情報に基づいて、ナレッジデータベースを補正する補正手段と、
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
従来、ナレッジデータベースを補正する技術が知られている。例えば、検索結果上位のスニペットから名詞の類型（企業名、人名、地名、一般名称など）を判定する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５３０７７８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、ナレッジデータベースを適切に補正することができるとは限らない。具体的には、上記の従来技術では、検索結果上位のスニペットから名詞の類型を判定するにすぎず、ナレッジデータベースを適切に補正することができるとは限らない。
【０００５】
本願は、上記に鑑みてなされたものであって、ナレッジデータベースを適切に補正することができる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願に係る情報処理装置は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、前記複数の検索クエリが有する特徴を学習した学習モデルを用いて、情報間の類似性に関する類似情報を取得する取得部と、前記取得部によって取得された類似情報に基づいて、ナレッジデータベースを補正する補正部とを備えたことを特徴とする。
【発明の効果】
【０００７】
実施形態の一態様によれば、ナレッジデータベースを適切に補正することができるといった効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る情報処理の一例を示す図である。
【図２】図２は、実施形態に係る情報処理システムの構成例を示す図である。
【図３】図３は、実施形態に係る情報処理装置の構成例を示す図である。
【図４】図４は、実施形態に係るモデル情報記憶部の一例を示す図である。
【図５】図５は、実施形態に係るベクトル情報記憶部の一例を示す図である。
【図６】図６は、実施形態に係るエンティティ情報記憶部の一例を示す図である。
【図７】図７は、実施形態に係るトリプル情報記憶部の一例を示す図である。
【図８】図８は、実施形態に係るスコア情報記憶部の一例を示す図である。
【図９】図９は、実施形態に係る生成処理手順を示すフローチャートである。
【図１０】図１０は、実施形態に係る情報処理手順を示すフローチャートである。
【図１１】図１１は、実施形態に係る学習モデルの生成処理の一例を示す図である。
【図１２】図１２は、実施形態に係る学習モデルの生成処理の一例を示す図である。
【図１３】図１３は、実施形態に係る生成装置の構成例を示す図である。
【図１４】図１４は、実施形態に係るクエリ情報記憶部の一例を示す図である。
【図１５】図１５は、実施形態に係るベクトル情報記憶部の一例を示す図である。
【図１６】図１６は、実施形態に係るモデル情報記憶部の一例を示す図である。
【図１７】図１７は、実施形態に係る学習モデルの一例を示す図である。
【図１８】図１８は、実施形態に係る学習モデルの生成処理手順を示すフローチャートである。
【図１９】図１９は、プログラムを実行するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【００１０】
〔１．実施形態〕
〔１−１．情報処理の一例〕
まず、図１を用いて、実施形態に係る情報処理の一例について説明する。図１は、実施形態に係る情報処理の一例を示す図である。図１に示す情報処理は、ユーザ端末１０（図２参照）と検索サーバ２０（図２参照）と生成装置５０（図２参照）と情報処理装置１００とによって行われる。
【００１１】
ユーザ端末１０（図２参照）は、ユーザによって使用される情報処理装置である。ユーザ端末１０は、例えば、スマートフォンや、タブレット型端末や、ノート型ＰＣ（Personal  Computer）や、携帯電話機や、ＰＤＡ（Personal  Digital  Assistant）等により実現される。なお、以下では、ユーザ端末１０をユーザと同一視する場合がある。すなわち、以下では、ユーザをユーザ端末１０と読み替えることもできる。
【００１２】
また、以下では、ユーザＩＤ「Ｕ１」により特定されるユーザを「ユーザＵ１」とする場合がある。このように、以下では、「ユーザＵ＊（＊は任意の数値）」と記載した場合、そのユーザはユーザＩＤ「Ｕ＊」により特定されるユーザであることを示す。例えば、「ユーザＵ２」と記載した場合、そのユーザはユーザＩＤ「Ｕ２」により特定されるユーザである。
【００１３】
検索サーバ２０（図２参照）は、検索サービスを提供するサーバ装置である。例えば、検索サーバ２０が提供する検索サービスは、あらゆる情報を検索可能な総合検索サービスである。検索サーバ２０は、ユーザによって入力された検索クエリに関する情報を記憶する。具体的には、検索サーバ２０は、ユーザの検索履歴に関する情報を記憶する。
【００１４】
生成装置５０（図２参照）は、学習モデルＭ１を生成するサーバ装置である。ここでは、生成装置５０による学習モデルＭ１の生成処理の概要を述べる。なお、生成装置５０による学習モデルＭ１の生成処理の詳細は後述する。具体的には、生成装置５０は、ユーザによって入力された検索クエリに関する情報を検索サーバ２０から取得する。続いて、生成装置５０は、検索サーバ２０から取得した検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリを抽出する。ここで、生成装置５０は、ユーザによる１回の検索ごとに検索ボックスに入力された文字列全体をユーザによって入力された一つの検索クエリとして取り扱う。例えば、生成装置５０は、ユーザＵ１による１回の検索で検索ボックスに「六本木  パスタ」のように複数の文字列を含む検索クエリが入力された場合は、「六本木  パスタ」全体で一つの検索クエリとして取り扱う。また、生成装置５０は、同一のユーザによって各検索クエリが入力された時間の間隔が所定の時間内（例えば、２分以内）であるような複数の検索クエリを同一のユーザによって所定の時間内に入力された複数の検索クエリとして抽出する。
【００１５】
続いて、生成装置５０は、抽出した複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルＭ１を生成する。具体的には、生成装置５０は、抽出した複数の検索クエリの分散表現（ベクトル）が類似するように学習モデルＭ１を学習させることで、所定の検索クエリから所定の検索クエリの特徴情報を含む分散表現（ベクトル）を出力する学習モデルＭ１を生成する。より具体的には、生成装置５０は、ＲＮＮ（Recurrent  Neural  Network）の一種であるＬＳＴＭ（Long  Short-Term  Memory）を分散表現生成に用いたＤＳＳＭ（Deep  Structured  Semantic  Model）の技術を用いて、検索クエリから分散表現（ベクトル）を出力する学習モデルＭ１を生成する。例えば、生成装置５０は、学習モデルＭ１の正解データとして、同一のユーザによって所定の時間内に入力された一対の検索クエリが類似する特徴を有するものとして、所定の検索クエリの分散表現（ベクトル）と、所定の検索クエリと対となる他の検索クエリの分散表現（ベクトル）とが、分散表現空間上で近くに存在するように学習する。なお、２つの分散表現（ベクトル）が分散表現空間上で近くに存在するように学習することは、２つの分散表現（ベクトル）が類似するように学習することと言い換えることができる。なお、以下では、学習モデルＭ１によって生成された検索クエリの分散表現（ベクトル）を単に「ベクトル」と記載する場合がある。
【００１６】
情報処理装置１００は、ナレッジデータベースを提供するサーバ装置である。ここで、情報処理装置１００が提供するナレッジデータベースについて説明する。ナレッジデータベースには、各種の知識が体系化、組織化された状態で登録されている。例えば、ナレッジデータベースには、登録される要素であるエンティティと、エンティティ間の関係性を示す情報（以下、「関係情報」と記載する。）とが登録されている。エンティティは、実世界における人物、物体、建築物等の主語となりうる各種の物、職業や国籍等といった属性、各種の状態や事象等、世の中における各種の物事に対応する情報である。また、関係情報は、２つのエンティティ間の関係性を示す情報である。
【００１７】
図１の右上方には、情報処理装置１００が提供するナレッジデータベースの構造を示すグラフ（以下、適宜「ナレッジグラフ」と記載する。）が示されている。図１に示す例では、ナレッジグラフは、黒丸「●」で示すエンティティと、白丸「○」で示すノード（アイテム）と、矢印（有効エッジ）で示す関係情報とを含む。なお、ここでいう、有向エッジとは、一方向にしかデータを辿れないエッジを意味する。以下では、エッジにより辿る元、すなわち始点となるエンティティを第１要素とし、エッジにより辿る先、すなわち終点となるエンティティを第２要素と記載する。情報処理装置１００は、黒丸で示す複数のエンティティと白丸で示す複数のノード（アイテム）と矢印で示す複数の関係情報とを記憶する。各エンティティには、エンティティに対応する物事の名称や写真等、エンティティに関する各種の情報と対応するノード（アイテム）が対応付けられている。
【００１８】
一般的に、ナレッジデータベースにおいては、第１のエンティティと、第２のエンティティと、第１のエンティティと第２のエンティティとの間の関係性を示す関係情報とからなるトリプルと呼ばれる情報が登録されることにより、各種の知識が体系化されている。換言すると、ナレッジデータベースにおいては、主語（Ｓ）となるエンティティと、目的語（Ｏ）となるエンティティと、述語（Ｐ）となる関係情報とからなるトリプルによって、様々な知識が体系的に表されている。図１に示す例では、主語（Ｓ）となるエンティティを第１要素、目的語（Ｏ）となるエンティティを第２要素と記載する。
【００１９】
例えば、エンティティＥ１は、所定のバンド＃１に対応するエンティティである。そして、バンド＃１のバンド名である「バンド名＃１」がアイテムＩ１１としてエンティティＥ１と対応付けた状態で登録されている。また、例えば、エンティティＥ１１は、所定の人物＃１１に対応するエンティティである。そして、人物＃１１の人名である「人名＃１１」がアイテムＩ１１１としてエンティティＥ１１と対応付けた状態で登録されている。また、例えば、エンティティＥ１２は、所定の人物＃１２に対応するエンティティである。そして、人物＃１２の人名である「人名＃１２」がアイテムＩ１２１としてエンティティＥ１２と対応付けた状態で登録されている。また、例えば、エンティティＥ１３は、所定の人物＃１３に対応するエンティティである。そして、人物＃１３の人名である「人名＃１３」がアイテムＩ１３１としてエンティティＥ１３と対応付けた状態で登録されている。
【００２０】
また、例えば、エンティティＥ２１は、楽器のギターに対応するエンティティである。そして、ギターの名称である「ギター」がアイテムＩ２１１としてエンティティＥ２１と対応付けた状態で登録されている。また、例えば、エンティティＥ２３は、楽器のベースに対応するエンティティである。そして、ベースの名称である「ベース」がアイテムＩ２３１としてエンティティＥ２３と対応付けた状態で登録されている。すなわち、エンティティとは、各種物事の概念そのものと対応する情報である。
【００２１】
ここで、例えば、エンティティＥ１とエンティティＥ１１とは、「所属メンバー」を示す関係情報Ｃ１１によって関連付けられている。このような第１のエンティティと、第２のエンティティと、第１のエンティティと第２のエンティティとの間の関係性を示す関係情報とからなる３つ組の情報（以下、「トリプル」と記載する。）は、例えば、エンティティＥ１と対応するバンド＃１（すなわち、バンド名が「バンド名＃１」であるバンド）の所属メンバーが、エンティティＥ１１が示す人物（すなわち、人名が「人名＃１１」である人物＃１１）である旨を示すことができる。また、例えば、エンティティＥ１１とエンティティＥ２１とは、「担当楽器」を示す関係情報Ｃ２１によって関連付けられている。このようなトリプルは、例えば、エンティティＥ１１と対応する人物＃１１（すなわち、人名が「人名＃１１」である人物）の担当楽器が、エンティティＥ２１が示す楽器（すなわち、楽器名「ギター」）である旨を示すことができる。
【００２２】
また、以下では、トリプルＩＤ「トリプル＃＊」により特定されるトリプルを「トリプル＃＊」とする場合がある。このように、以下では、「トリプル＃＊（＊は任意の数値）」と記載した場合、そのトリプルはトリプルＩＤ「トリプル＃＊」により特定されるトリプルであることを示す。例えば、「トリプル＃１」と記載した場合、そのトリプルはトリプルＩＤ「トリプル＃１」により特定されるトリプルである。
【００２３】
このようなナレッジデータベースに登録された知識を検索する場合、情報処理装置１００は、以下の処理を実行する。まず、情報処理装置１００は、ユーザ端末１０から検索クエリとして主語と動詞を受付ける。このような場合、情報処理装置１００は、検索クエリとして受付けた主語と動詞とを含むトリプルを検索し、検索したトリプルをユーザ端末１０に提供する。例えば、情報処理装置１００は、検索クエリとして、主語「人名＃１１」と述語「担当楽器」とを受付けた場合、主語「人名＃１１」をノード（アイテム）とするエンティティＥ１１と、述語「担当楽器」を示す関係情報Ｃ２１とを特定し、特定した、エンティティＥ１１と、関係情報Ｃ２１とを含むトリプルとして、エンティティＥ１１、エンティティＥ２１、および関係情報Ｃ２１を特定する。そして、情報処理装置１００は、特定したトリプルの内容を出力する。例えば、情報処理装置１００は、人名が「人名＃１１」である人物の担当楽器が「ギター」である旨を検索結果として出力する。
【００２４】
なお、以下の説明では、人物に対応するエンティティＥ１１〜Ｅ１３と、担当楽器に対応するエンティティＥ２１、Ｅ２３がナレッジデータベースに登録されている例について記載するが、実施形態は、これに限定されるものではない。以下に説明する情報処理は、任意の物事や事象と対応するエンティティが登録されているナレッジデータベースに適用可能である。また、「エンティティ」や「関係情報」という名称は、以下に説明する情報処理を限定するものではなく、ナレッジデータベースに登録される要素（すなわち、エンティティ）や、要素間の関係性を示す情報（すなわち、関係情報）であれば、任意の名称が採用されてよい。
【００２５】
また、情報処理装置１００は、学習モデルＭ１を用いて、ナレッジデータベースを補正する。具体的には、情報処理装置１００は、学習モデルＭ１のモデルデータを生成装置５０から取得する。なお、以下では、学習モデルＭ１のモデルデータを単に学習モデルＭ１と記載する場合がある。続いて、情報処理装置１００は、学習モデルＭ１を用いて、検索クエリが示す情報に対応する分散表現を生成する。続いて、情報処理装置１００は、分散表現同士の類似度を算出する。このようにして、情報処理装置１００は、検索クエリが示す情報間の類似性に関する類似情報を取得する。続いて、情報処理装置１００は、検索クエリが示す情報間の類似性に関する類似情報に基づいて、エンティティ、関係情報、またはトリプルのうち少なくともいずれか一つをナレッジデータベースに付加する。情報処理装置１００は、エンティティ、関係情報、またはトリプルのうち少なくともいずれか一つをナレッジデータベースに付加することにより、ナレッジデータベースを補正する。図１では、情報処理装置１００が、点線の丸で示すエンティティＥ２２、点線で示す関係情報Ｃ２３、および、点線で囲まれた２つのエンティティＥ２４およびエンティティＥ１４と、エンティティ間の関係性を示す関係情報Ｃ２４とからなるトリプルをナレッジベースに付加する例について説明する。
【００２６】
ここから、図１を用いて、情報処理の流れについて説明する。情報処理装置１００は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデル（以下、適宜「学習モデルＭ１」と記載する。）を用いて、検索クエリに対応するベクトルを生成する（ステップＳ１）。具体的には、情報処理装置１００は、ナレッジデータベースを補正するのに十分な数の検索クエリを検索サーバ２０から取得する。例えば、情報処理装置１００は、ナレッジデータベースに含まれるエンティティの数よりも多数の検索クエリを検索サーバ２０から取得する。また、情報処理装置１００は、生成装置５０から学習モデルＭ１を取得する。そして、情報処理装置１００は、生成装置５０から取得した学習モデルＭ１を用いて、検索サーバ２０から取得した多数の検索クエリに対応するベクトルを生成する。
【００２７】
図１の左上方には、情報処理装置１００が生成した検索クエリに対応するベクトルが分散表現空間にマッピングされる様子が示されている。例えば、検索クエリ「バンド名＃１」に対応するベクトルを示す点と検索クエリ「人名＃１１」〜「人名＃１４」に対応するベクトルを示す点とは、分散表現空間上で相対的に近くに位置する様子が示されている。すなわちこの図は、検索クエリ「バンド名＃１」と検索クエリ「人名＃１１」〜「人名＃１４」とは、類似する特徴を有することを意味する。また、例えば、検索クエリ「人名＃１１」に対応するベクトルを示す点と検索クエリ「ギター」に対応するベクトルを示す点とは、分散表現空間上で相対的に近くに位置する様子が示されている。すなわちこの図は、検索クエリ「人名＃１１」と検索クエリ「ギター」とは、類似する特徴を有することを意味する。また、例えば、検索クエリ「人名＃１２」に対応するベクトルを示す点と検索クエリ「キーボード」に対応するベクトルを示す点とは、分散表現空間上で相対的に近くに位置する様子が示されている。すなわちこの図は、検索クエリ「人名＃１２」と検索クエリ「キーボード」とは、類似する特徴を有することを意味する。
【００２８】
続いて、情報処理装置１００は、検索クエリに対応するベクトルを生成すると、検索クエリが示す情報間の類似度を算出する（ステップＳ２）。具体的には、情報処理装置１００は、生成したベクトル同士の類似度を算出する。例えば、情報処理装置１００は、ベクトル同士のコサイン類似度を算出する。このようにして、情報処理装置１００は、検索クエリが示す情報間の類似性に関する類似情報を取得する。
【００２９】
続いて、情報処理装置１００は、情報間の類似度を算出すると、算出した類似度に基づいて、ナレッジデータベースを補正する（ステップＳ３）。ここで、情報処理装置１００がナレッジデータベースを補正するとは、情報処理装置１００がナレッジデータベースを更新することを意味する。具体的には、情報処理装置１００がナレッジデータベースを補正するとは、情報処理装置１００がエンティティやトリプル等の情報をナレッジデータベースに付加すること、又は削除することを意味する。なお、情報処理装置１００がエンティティやトリプル等の情報をナレッジデータベースに付加するとは、情報処理装置１００がこれらの情報を記憶部に格納することを意味する。また、情報処理装置１００がエンティティやトリプル等の情報をナレッジデータベースから削除するとは、情報処理装置１００がこれらの情報を記憶部から削除することを意味する。後述するように、情報処理装置１００がナレッジデータベースを補正する方法には、大きく分けると、エンティティの付加、関係情報の付加、トリプルの付加、および関係情報の確度を示すスコアの付加の４種類が存在する。以下、順番に説明する。
【００３０】
〔１−１−１．エンティティの付加〕
情報処理装置１００は、ナレッジデータベースにエンティティを付加することにより、ナレッジデータベースを補正する。図１に示す例では、情報処理装置１００が、点線の丸で示すエンティティＥ２２をナレッジデータベースに付加する方法について説明する。具体的には、情報処理装置１００は、ナレッジデータベースに含まれる所定のエンティティに関する情報を取得する。より具体的には、情報処理装置１００は、ナレッジデータベースに含まれるエンティティＥ１２に関する情報を取得する。例えば、情報処理装置１００は、エンティティＥ１２に関する情報として、エンティティＥ１２と対応付けて登録されているノード（アイテム）Ｉ１２１のデータ「人名＃１２」を取得する。
【００３１】
続いて、情報処理装置１００は、エンティティＥ１２に対応するデータ「人名＃１２」を取得すると、取得したデータ「人名＃１２」に対応するベクトルＶ１２を取得する。なお、情報処理装置１００は、ステップＳ１で、検索クエリ「人名＃１２」に対応するベクトルＶ１２を生成しているものとする。また、情報処理装置１００は、ステップＳ２で、ベクトルＶ１２と他の検索クエリに対応するベクトルとの類似度を算出しているものとする。続いて、情報処理装置１００は、ベクトルＶ１２と他の検索クエリに対応するベクトルとの類似度を取得する。続いて、情報処理装置１００は、ベクトルＶ１２との類似度が所定の閾値を超えるベクトルが存在するか否かを判定する。例えば、情報処理装置１００は、検索クエリ「人名＃１２」に対応するベクトルＶ１２との類似度が所定の閾値を超えるベクトルとして、検索クエリ「キーボード」に対応するベクトルＶ２２が存在すると判定する。情報処理装置１００は、ベクトルＶ１２とベクトルＶ２２との類似度が所定の閾値を超えると判定すると、データ「人名＃１２」に紐づくエンティティＥ１２とデータ「キーボード」に紐づくエンティティＥ２２との関連性が高いと判定する。
【００３２】
続いて、情報処理装置１００は、ベクトルＶ１２との類似度が所定の閾値を超えるベクトルＶ２２が存在すると判定すると、ベクトルＶ２２に対応するデータ「キーボード」がナレッジデータベースに存在するか否かを判定する。例えば、情報処理装置１００は、データ「キーボード」がナレッジデータベースに存在しないと判定する。続いて、情報処理装置１００は、データ「キーボード」がナレッジデータベースに存在しないと判定すると、データ「キーボード」をナレッジデータベースに付加することを決定する。続いて、情報処理装置１００は、データ「キーボード」をナレッジデータベースに付加することを決定すると、データ「キーボード」の種別を判定する。例えば、情報処理装置１００は、辞書データ等を参照して、データ「キーボード」の種別が楽器名であると判定する。続いて、情報処理装置１００は、データ「キーボード」の種別を判定すると、データ「キーボード」に対応するエンティティＥ２２の対象を判定する。例えば、情報処理装置１００は、判定したデータ「キーボード」の種別である楽器名とデータ「キーボード」とに基づいて、データ「キーボード」に対応するエンティティＥ２２が示す対象は楽器のキーボードであると判定する。続いて、情報処理装置１００は、楽器のキーボードに対応するエンティティＥ２２がナレッジデータベースに存在するか否かを判定する。例えば、情報処理装置１００は、エンティティＥ２２がナレッジデータベースに存在しないと判定する。情報処理装置１００は、エンティティＥ２２がナレッジデータベースに存在しないと判定すると、エンティティＥ２２をナレッジデータベースに付加することを決定する。例えば、情報処理装置１００は、エンティティＥ２２と対応付けて登録するノード（アイテム）Ｉ２２１としてデータ「キーボード」を付加することを決定する。なお、情報処理装置１００は、既にエンティティＥ２２がナレッジデータベースに存在する場合は、エンティティＥ２２と対応付けて登録するノード（アイテム）Ｉ２２１としてデータ「キーボード」だけを付加することを決定する。
【００３３】
また、情報処理装置１００は、エンティティＥ２２をナレッジデータベースに付加することを決定すると、エンティティＥ２２との関連性が高いエンティティであるエンティティＥ１２が示す対象の種別を判定する。例えば、情報処理装置１００は、データ「人名＃１２」の種別が人名であると判定する。続いて、情報処理装置１００は、データ「人名＃１２」の種別が人名であるので、エンティティＥ１２が示す対象の種別は人物であると判定する。続いて、情報処理装置１００は、エンティティＥ１２が示す対象の種別が人物であり、エンティティＥ２２が示す対象の種別が楽器であるので、エンティティＥ１２とエンティティＥ２２との関係性を示す関係情報Ｃ２２の種別が「担当楽器」であると判定する。例えば、情報処理装置１００は、第１要素であるエンティティが示す対象の種別と、第２要素であるエンティティが示す対象の種別と、第１要素と第２要素との関係性を示す関係情報の種別とを対応付けた関係情報テーブル（図示は省略する）を記憶部１２０（図３参照）に記憶する。例えば、情報処理装置１００は、第１要素であるエンティティが示す対象の種別「人物」と、第２要素であるエンティティが示す対象の種別「楽器」と、第１要素と第２要素との関係性を示す関係情報の種別「担当楽器」とを対応付けた関係情報テーブルを記憶部１２０に格納する。そして、情報処理装置１００は、記憶部１２０に格納された関係情報テーブルを参照して、第１エンティティが示す対象の種別と第２エンティティが示す対象の種別とに基づいて、第１エンティティと第２エンティティとの関係性を示す関係情報の種別を判定する。なお、情報処理装置１００は、ナレッジデータベースに関する種々の公知技術を用いて、第１エンティティと第２エンティティとの関係性を示す関係情報の種別を判定してもよい。続いて、情報処理装置１００は、エンティティＥ２２が示す対象の種別と、エンティティＥ１２が示す対象の種別と、関係情報Ｃ２２の種別とに基づいて、エンティティＥ１２とエンティティＥ２２と関係情報Ｃ２２とからなるトリプル＃２２の第２要素として、エンティティＥ２２を付加することを決定する。続いて、情報処理装置１００は、トリプル＃２２の第２要素としてエンティティＥ２２を付加することを決定すると、トリプル＃２２の第２要素としてエンティティＥ２２をナレッジベースに付加する。
【００３４】
〔１−１−２．関係情報の付加〕
また、情報処理装置１００は、ナレッジデータベースに関係情報を付加することにより、ナレッジデータベースを補正する。図１に示す例では、情報処理装置１００が、点線で示す関係情報Ｃ２３をナレッジデータベースに付加する方法について説明する。具体的には、情報処理装置１００は、ナレッジデータベースに含まれる２つのエンティティに関する情報を取得する。より具体的には、情報処理装置１００は、ナレッジデータベースに含まれるエンティティＥ１３に関する情報を取得する。例えば、情報処理装置１００は、ナレッジデータベースに含まれるエンティティＥ１３と対応付けて登録されているノード（アイテム）Ｉ１３１のデータ「人名＃１３」を取得する。また、情報処理装置１００は、ナレッジデータベースに含まれる他のエンティティＥ２３に関する情報を取得する。例えば、情報処理装置１００は、ナレッジデータベースに含まれるエンティティＥ２３と対応付けて登録されているノード（アイテム）Ｉ２３１のデータ「ベース」を取得する。
【００３５】
続いて、情報処理装置１００は、２つのエンティティに関する情報を取得すると、取得した２つのエンティティに紐づくデータに対応するベクトルを各々取得する。具体的には、情報処理装置１００は、エンティティＥ１３に紐づくデータ「人名＃１３」に対応するベクトルＶ１３を取得する。また、情報処理装置１００は、エンティティＥ２３に紐づくデータ「ベース」に対応するベクトルＶ２３を取得する。なお、情報処理装置１００は、ステップＳ１で、ベクトルＶ１３及びベクトルＶ２３を生成しているものとする。また、情報処理装置１００は、ステップＳ２で、ベクトルＶ１３とベクトルＶ２３との類似度を算出しているものとする。続いて、情報処理装置１００は、ベクトルＶ１３とベクトルＶ２３を取得すると、ベクトルＶ１３とベクトルＶ２３との類似度を取得する。続いて、情報処理装置１００は、算出したベクトルＶ１３とベクトルＶ２３との類似度が所定の閾値を超えるか否かを判定する。例えば、情報処理装置１００は、算出したベクトルＶ１３とベクトルＶ２３との類似度が所定の閾値を超えると判定したとする。情報処理装置１００は、ベクトルＶ１３とベクトルＶ２３との類似度が所定の閾値を超えると判定すると、データ「人名＃１３」に紐づくエンティティＥ１３とデータ「ベース」に紐づくエンティティＥ２３との関連性が高いと判定する。続いて、情報処理装置１００は、エンティティＥ１３とエンティティＥ２３との関係性が高いと判定すると、エンティティＥ１３とエンティティＥ２３との関係情報Ｃ２３がナレッジデータベースに存在するか否かを判定する。例えば、情報処理装置１００は、関係情報Ｃ２３がナレッジデータベースに存在しないと判定する。情報処理装置１００は、関係情報Ｃ２３がナレッジデータベースに存在しないと判定すると、関係情報Ｃ２３をナレッジデータベースに付加することを決定する。
【００３６】
続いて、情報処理装置１００は、関係情報Ｃ２３をナレッジデータベースに付加することを決定すると、エンティティＥ１３が示す対象の種別とエンティティＥ２３が示す対象の種別を判定する。例えば、情報処理装置１００は、データ「人名＃１３」の種別が人名であると判定する。続いて、情報処理装置１００は、データ「人名＃１３」の種別が人名であるので、エンティティＥ１３が示す対象の種別は人物であると判定する。また、情報処理装置１００は、辞書データ等を参照して、エンティティＥ２３が示すデータ「ベース」の種別が楽器名であると判定する。続いて、情報処理装置１００は、データ「ベース」の種別が楽器名であるので、エンティティＥ２３が示す対象の種別は楽器であると判定する。続いて、情報処理装置１００は、エンティティＥ１３が示す対象の種別が人物であり、エンティティＥ２３が示す対象の種別が楽器であるので、エンティティＥ１３とエンティティＥ２３との関係性を示す関係情報Ｃ２３の種別を「担当楽器」であると判定する。続いて、情報処理装置１００は、エンティティＥ１３が示す対象の種別と、エンティティＥ２３が示す対象の種別と、関係情報Ｃ２３の種別とに基づいて、エンティティＥ１３とエンティティＥ２３と関係情報Ｃ２３とからなるトリプル＃２３の関係情報として、関係情報Ｃ２３を付加することを決定する。続いて、情報処理装置１００は、トリプル＃２３の関係情報として関係情報Ｃ２３を付加することを決定すると、トリプル＃２３の関係情報として関係情報Ｃ２３をナレッジベースに付加する。
【００３７】
〔１−１−３．トリプルの付加〕
また、情報処理装置１００は、ナレッジデータベースにトリプルを付加することにより、ナレッジデータベースを補正する。図１に示す例では、情報処理装置１００が、点線で囲まれた２つのエンティティＥ１４とエンティティＥ２４とエンティティ間の関係性を示す関係情報Ｃ２４とからなるトリプル＃２４をナレッジデータベースに付加する方法について説明する。情報処理装置１００がナレッジデータベースにトリプルを付加する方法は、大きく分けると２つある。以下、情報処理装置１００がナレッジデータベースにトリプルを付加する方法を一つずつ説明する。
【００３８】
〔１−１−３−１．構成要素を順番に付加する〕
具体的には、情報処理装置１００は、ナレッジデータベースに含まれる所定のエンティティに関する情報を取得する。より具体的には、情報処理装置１００は、ナレッジデータベースに含まれるエンティティＥ１に関する情報を取得する。例えば、情報処理装置１００は、ナレッジデータベースに含まれるエンティティＥ１と対応付けて登録されているノード（アイテム）Ｉ１１のデータ「バンド名＃１」を取得する。
【００３９】
続いて、情報処理装置１００は、エンティティＥ１に対応するデータ「バンド名＃１」を取得すると、データ「バンド名＃１」に対応するベクトルＶ１を取得する。なお、情報処理装置１００は、ステップＳ１で、ベクトルＶ１を生成しているものとする。また、情報処理装置１００は、ステップＳ２で、ベクトルＶ１と他の検索クエリに対応するベクトルとの類似度を算出しているものとする。情報処理装置１００は、ベクトルＶ１と他の検索クエリに対応するベクトルとの類似度を取得する。続いて、情報処理装置１００は、ベクトルＶ１との類似度が所定の閾値を超えるベクトルに対応するデータを取得する。例えば、情報処理装置１００は、ベクトルＶ１との類似度が所定の閾値を超えるベクトルに対応するデータとして、データ「人名＃１ｋ（ｋ＝１、２、３、４）」を取得する。
【００４０】
続いて、情報処理装置１００は、ベクトルＶ１との類似度が所定の閾値を超えるベクトルに対応するデータがナレッジデータベースに存在するか否かをデータ毎に判定する。例えば、情報処理装置１００は、ベクトルＶ１ｋ（ｋ＝１、２、３）に対応するデータ「人名＃１ｋ（ｋ＝１、２、３）」がナレッジデータベースに存在すると判定する。一方、情報処理装置１００は、ベクトルＶ１４に対応するデータ「人名＃１４」がナレッジデータベースに存在しないと判定する。続いて、情報処理装置１００は、ベクトルＶ１４に対応するデータ「人名＃１４」がナレッジデータベースに存在しないと判定すると、データ「人名＃１４」をナレッジデータベースに付加することを決定する。続いて、情報処理装置１００は、データ「人名＃１４」をナレッジデータベースに付加することを決定すると、データ「人名＃１４」の種別を判定する。例えば、情報処理装置１００は、データ「人名＃１４」の種別を人名であると判定する。続いて、情報処理装置１００は、データ「人名＃１４」の種別を判定すると、データ「人名＃１４」に対応するエンティティＥ１４の対象を判定する。例えば、情報処理装置１００は、判定したデータ「人名＃１４」の種別である人名とデータ「人名＃１４」とに基づいて、データ「人名＃１４」に対応するエンティティＥ１４が示す対象は人物＃１４であると判定する。続いて、情報処理装置１００は、人物＃１４に対応するエンティティＥ１４がナレッジデータベースに存在するか否かを判定する。例えば、情報処理装置１００は、エンティティＥ１４がナレッジデータベースに存在しないと判定する。情報処理装置１００は、エンティティＥ１４がナレッジデータベースに存在しないと判定すると、エンティティＥ１４をナレッジデータベースに付加することを決定する。例えば、情報処理装置１００は、エンティティＥ１４と対応付けて登録するノード（アイテム）Ｉ１４１としてデータ「人名＃１４」を付加することを決定する。
【００４１】
続いて、情報処理装置１００は、エンティティＥ１４をナレッジデータベースに付加することを決定すると、エンティティＥ１とエンティティＥ１４との関係情報Ｃ１４をナレッジデータベースに付加することを決定する。例えば、情報処理装置１００は、エンティティＥ１が示す対象の種別が所定のバンドであり、エンティティＥ１４が示す対象の種別が人物であるので、エンティティＥ１とエンティティＥ１４との関係性を示す関係情報Ｃ１４の種別を「所属メンバー」であると判定する。続いて、情報処理装置１００は、エンティティＥ１が示す対象の種別と、エンティティＥ１４が示す対象の種別と、関係情報Ｃ１４の種別とに基づいて、エンティティＥ１とエンティティＥ１４と関係情報Ｃ１４とからなるトリプル＃１４の関係情報として、関係情報Ｃ１４を付加することを決定する。続いて、情報処理装置１００は、トリプル＃１４の関係情報として関係情報Ｃ１４を付加することを決定すると、トリプル＃１４の関係情報として関係情報Ｃ１４をナレッジベースに付加する。
【００４２】
続いて、情報処理装置１００は、エンティティＥ１４と関係情報Ｃ１４とをナレッジベースに付加すると、「１−１−１．エンティティの付加」の項目で述べたエンティティＥ２２の付加と同様にして、エンティティＥ１４との関連性に基づいて、エンティティＥ２４をナレッジベースに付加する。また、情報処理装置１００は、エンティティＥ２４を付加すると、「１−１−２．関係情報の付加」の項目で述べた関係情報Ｃ２３の付加と同様にして、エンティティＥ１４とエンティティＥ２４との関連性に基づいて、関係情報Ｃ２４をナレッジベースに付加する。このように、情報処理装置１００は、エンティティＥ１４と関係情報Ｃ１４をナレッジベースに付加するのに続けて、エンティティＥ１４とエンティティＥ２４と関係情報Ｃ２４とからなるトリプル＃２４をナレッジベースに付加する。
【００４３】
〔１−１−３−２．トリプルを丸ごと付加する〕
上記の説明では、情報処理装置１００が、エンティティＥ１を起点として、まずエンティティＥ１４と関係情報Ｃ１４を付加し、続いて、エンティティＥ１４を起点として、エンティティＥ１４と関係情報Ｃ２４とを付加する例について説明した。情報処理装置１００は上述した例の他にも、ナレッジベースに存在する既存のトリプルに関する情報に基づいて、新たなトリプル＃２４をナレッジベースに付加してもよい。具体的には、情報処理装置１００は、ナレッジベースに存在する既存のトリプルに関する情報として、所定のトリプルに関する情報を取得する。例えば、情報処理装置１００は、ナレッジベースに存在する既存のトリプルに関する情報として、エンティティＥ１１とエンティティＥ２１と関係情報Ｃ２１とからなるトリプル＃２１に関する情報を取得する。
【００４４】
続いて、情報処理装置１００は、エンティティＥ１に対応するベクトルＶ１の近傍に、トリプル＃２１と類似する構造に対応するベクトルの組が存在するか否かを判定する。具体的には、情報処理装置１００は、ベクトルＶ１との類似度が所定の閾値を超えるベクトルが存在するか否かを判定する。例えば、情報処理装置１００は、ベクトルＶ１との類似度が所定の閾値を超えるベクトルであるベクトルＶ１４が存在すると判定する。また、情報処理装置１００は、ベクトルＶ１との類似度が所定の閾値を超えるベクトルであるベクトルＶ２４が存在すると判定する。続いて、情報処理装置１００は、ベクトルＶ１との類似度が所定の閾値を超えるベクトルが存在すると判定すると、判定したベクトルに対応するデータがナレッジベースに存在するか否かを判定する。例えば、情報処理装置１００は、ベクトルＶ１４に対応するデータ「人名＃１４」がナレッジベースに存在するか否かを判定する。また、情報処理装置１００は、ベクトルＶ２４に対応するデータ「ドラム」がナレッジベースに存在するか否かを判定する。例えば、情報処理装置１００は、ベクトルＶ１４に対応するデータ「人名＃１４」がナレッジベースに存在しないと判定する。また、情報処理装置１００は、ベクトルＶ２４に対応するデータ「ドラム」がナレッジベースに存在しないと判定する。続いて、情報処理装置１００は、ベクトルＶ１４に対応するデータ「人名＃１４」がナレッジベースに存在しないと判定すると、データ「人名＃１４」の種別を判定する。また、情報処理装置１００は、ベクトルＶ２４に対応するデータ「ドラム」がナレッジベースに存在しないと判定すると、データ「ドラム」の種別を判定する。続いて、情報処理装置１００は、データ「人名＃１４」の種別とデータ「ドラム」の種別を判定すると、判定した各データの種別がトリプル＃２１を構成するエンティティＥ１１に紐づくデータ「人名＃１１」の種別とエンティティＥ２１に紐づくデータ「ギター」の種別とに対応するか否かを判定する。情報処理装置１００は、データ「人名＃１４」の種別とデータ「人名＃１１」の種別とが共に人名であり、両データの種別が一致すると判定する。また、情報処理装置１００は、データ「ドラム」の種別とデータ「ギター」の種別とが共に楽器名であり、両データの種別が一致すると判定する。情報処理装置１００は、データの種別が一致すると判定すると、データ「人名＃１４」に対応するエンティティＥ１４とデータ「ドラム」に対応するエンティティＥ２４と関係情報Ｃ２４とからなるトリプル＃２４をナレッジデータベースに付加する。
【００４５】
（スコアの付加）
四つ目に、情報処理装置１００が、トリプルを構成するエンティティ間の関係性を示す関係情報の確度を示すスコアをナレッジデータベースに付加する方法について説明する。具体的には、情報処理装置１００は、トリプルを構成するエンティティに紐づくデータに対応するベクトル間の類似度をエンティティ間の関係性を示す関係情報の確度を示すスコアとしてナレッジデータベースに付加する。例えば、情報処理装置１００は、エンティティＥ１１に紐づくデータ「人名＃１１」に対応するベクトルＶ１１とエンティティＥ２１に紐づくデータ「ギター」に対応するベクトルＶ２１との類似度を取得する。続いて、情報処理装置１００は、ベクトルＶ１１とベクトルＶ２１との類似度を関係情報Ｃ２１の確度を示すスコアとしてナレッジデータベースに付加する。
【００４６】
上述したように、実施形態に係る情報処理装置１００は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデルＭ１を用いて、情報間の類似性に関する類似情報を取得する。また、情報処理装置１００は、取得した類似情報に基づいて、ナレッジデータベースを補正する。これにより、情報処理装置１００は、ナレッジデータベースを適切に補正することができる。
【００４７】
〔１−２．情報処理システムの構成〕
次に、図２を用いて、実施形態に係る情報処理システムの構成について説明する。図２は、実施形態に係る情報処理システムの構成例を示す図である。図２に示すように、情報処理システム１には、ユーザ端末１０と、検索サーバ２０と、生成装置５０と、情報処理装置１００とが含まれる。ユーザ端末１０と、検索サーバ２０と、生成装置５０と、情報処理装置１００とは所定のネットワークＮを介して、有線または無線により通信可能に接続される。なお、図２に示す情報処理システム１には、任意の数のユーザ端末１０と任意の数の検索サーバ２０と任意の数の生成装置５０と任意の数の情報処理装置１００とが含まれてもよい。
【００４８】
ユーザ端末１０は、ユーザによって入力された検索クエリを検索サーバ２０に送信する。具体的には、ユーザ端末１０は、ユーザによる操作に従って、検索クエリを入力するための検索ボックスを含む検索ページを検索サーバ２０から取得する。続いて、ユーザ端末１０は、ユーザによって検索ボックスに文字が入力される操作に続いて、検索クエリを送信する操作が行われると、検索ページを介して検索ボックスに入力された文字を検索クエリとして検索サーバ２０に送信する。例えば、ユーザ端末１０は、ユーザによって検索ボックスに文字が入力される操作に続いて、検索クエリの送信ボタンが押下される操作やエンターキーが押下される操作が行われると、検索ページを介して検索ボックスに入力された文字を検索クエリとして検索サーバ２０に送信する。
【００４９】
検索サーバ２０は、ユーザ端末１０から検索クエリを受け付けると、受け付けた検索クエリに応じたコンテンツであって、検索結果として出力されるコンテンツを選択する。続いて、検索サーバ２０は、選択されたコンテンツを含む検索結果ページをユーザ端末１０に配信する。ここで、検索サーバ２０によって配信されるコンテンツは、ウェブブラウザによって表示されるウェブページに限られない。例えば、検索サーバ２０によって配信されるコンテンツは、ユーザ端末１０にインストールされた専用のアプリケーションによって表示されるコンテンツであってもよい。また、検索サーバ２０によって配信されるコンテンツは、音楽コンテンツや画像（静止画のみならず動画を含む。）コンテンツ、テキストコンテンツ（ニュース記事やＳＮＳ（Social  Networking  Service）に投稿された記事を含む。）、画像とテキストを組み合わせたコンテンツ、ゲームコンテンツなど、どのようなコンテンツであってもよい。
【００５０】
また、検索サーバ２０は、ユーザ端末１０から検索クエリを受け付けると、受け付けた検索クエリと検索クエリの送信元であるユーザを識別するユーザＩＤと検索クエリの送信日時とを対応付けてデータベースに登録する。検索サーバ２０は、生成装置５０の要求に応じて、ユーザによって入力された検索クエリに関する情報を生成装置５０に送信する。
【００５１】
生成装置５０は、後述する処理を実行することにより、学習モデルを生成する。生成装置５０による学習モデルの生成処理の詳細は後述する。
【００５２】
情報処理装置１００は、図１で説明した情報処理を行うサーバ装置である。情報処理装置１００は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデルを用いて、情報間の類似性に関する類似情報を取得する。また、情報処理装置１００は、取得した類似情報に基づいて、ナレッジデータベースを補正する。
【００５３】
〔１−３．情報処理装置の構成〕
次に、図３を用いて、実施形態に係る情報処理装置１００の構成について説明する。図３は、実施形態に係る情報処理装置１００の構成例を示す図である。図３に示すように、情報処理装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、情報処理装置１００は、情報処理装置１００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示させるための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００５４】
（通信部１１０）
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部１１０は、ネットワークと有線または無線で接続され、例えば、ユーザ端末１０と検索サーバ２０と生成装置５０との間で情報の送受信を行う。
【００５５】
（記憶部１２０）
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部１２０は、図３に示すように、モデル情報記憶部１２１とベクトル情報記憶部１２２とエンティティ情報記憶部１２３とトリプル情報記憶部１２４とスコア情報記憶部１２５を有する。
【００５６】
（モデル情報記憶部１２１）
モデル情報記憶部１２１は、生成装置５０によって生成された学習モデルに関する各種の情報を記憶する。図４に、実施形態に係るモデル情報記憶部の一例を示す。図４に示す例では、モデル情報記憶部１２１は、「モデルＩＤ」、「モデルデータ」といった項目を有する。
【００５７】
「モデルＩＤ」は、生成装置５０によって生成された学習モデルを識別するための識別情報を示す。「モデルデータ」は、生成装置５０によって生成された学習モデルのモデルデータを示す。例えば、「モデルデータ」には、検索クエリを分散表現に変換するためのデータが格納される。
【００５８】
図４の１レコード目に示す例では、モデルＩＤ「Ｍ１」で識別される学習モデルは、図１に示した学習モデルＭ１に対応する。また、モデルデータ「ＭＤＴ１」は、生成装置５０によって生成された学習モデルＭ１のモデルデータ（モデルデータＭＤＴ１）を示す。
【００５９】
モデルデータＭＤＴ１は、検索クエリが入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された検索クエリに応じて、入力層に入力された検索クエリの分散表現を出力層から出力するよう、生成装置５０を機能させてもよい。
【００６０】
ここで、モデルデータＭＤＴ１が「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデルデータＭＤＴ１が含む第１要素は、x1やx2等といった入力データ（xi）に対応する。また、第１要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第１要素は、入力層が有するいずれかのノードに対応し、第２要素は、出力層が有するノードと見做すことができる。
【００６１】
また、モデルデータＭＤＴ１がＤＮＮ（Deep  Neural  Network）等、１つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、モデルデータＭＤＴ１が含む第１要素は、入力層または中間層が有するいずれかのノードに対応する。また、第２要素は、第１要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第１要素の重みは、第１要素と対応するノードから第２要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
【００６２】
生成装置５０は、上述した回帰モデルやニューラルネットワーク等、任意の構造を有するモデルを用いて、分散表現の算出を行う。具体的には、モデルデータＭＤＴ１は、検索クエリが入力された場合に、分散表現を出力するように係数が設定される。生成装置５０は、このようなモデルデータＭＤＴ１を用いて、分散表現を算出する。
【００６３】
なお、上記例では、モデルデータＭＤＴ１が、検索クエリが入力された場合に、検索クエリの分散表現を出力するモデル（以下、モデルＸ１という。）である例を示した。しかし、実施形態に係るモデルデータＭＤＴ１は、モデルＸ１にデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデルデータＭＤＴ１は、検索クエリを入力とした際に、モデルＸ１が出力した分散表現を入力して学習されたモデル（以下、モデルＹ１という。）であってもよい。または、モデルデータＭＤＴ１は、検索クエリを入力とし、モデルＹ１の出力値を出力とするよう学習されたモデルであってもよい。
【００６４】
また、生成装置５０がＧＡＮ（Generative  Adversarial  Networks）を用いた推定処理を行う場合、モデルデータＭＤＴ１は、ＧＡＮの一部を構成するモデルであってもよい。
【００６５】
（ベクトル情報記憶部１２２）
ベクトル情報記憶部１２２は、検索クエリの分散表現であるベクトルに関する各種の情報を記憶する。図５に、実施形態に係るベクトル情報記憶部の一例を示す。図５に示す例では、ベクトル情報記憶部１２２は、「検索クエリ」、「ベクトル情報」といった項目を有する。
【００６６】
「検索クエリ」は、ユーザによって入力された検索クエリを示す。「ベクトル情報」は、検索クエリの分散表現であるＮ次元のベクトルを示す。検索クエリの分散表現であるベクトルは、例えば、１２８次元のベクトルである。
【００６７】
図５の１レコード目に示す例では、検索クエリ「バンド名＃１」は、図１に示した検索クエリ「バンド名＃１」に対応する。また、ベクトル情報「Ｖ１」は、図１に示した検索クエリ「バンド名＃１」に対応するベクトルを示す。
【００６８】
（エンティティ情報記憶部１２３）
エンティティ情報記憶部１２３(図３を参照)は、エンティティに関する各種の情報を記憶する。図６に、実施形態に係るエンティティ情報記憶部の一例を示す。図６の左方に示すエンティティ情報記憶部１２３−Ｂは、図１で示した情報処理装置１００による情報処理が行われる前のナレッジデータベースに係るエンティティ情報記憶部１２３を示す。また、図６の右方に示すエンティティ情報記憶部１２３−Ａは、図１で示した情報処理装置１００による情報処理が行われた後のナレッジデータベースに係るエンティティ情報記憶部１２３を示す。図６の右方に示すエンティティ情報記憶部１２３−Ａは、図１で示した情報処理装置１００による情報処理が行われたことにより、ナレッジデータベースにエンティティＥ１４、エンティティＥ２２、エンティティＥ２４が付加されたことを示す。
【００６９】
図６に示す例では、エンティティ情報記憶部１２３は、「エンティティＩＤ」、「エンティティ種別」、「ノードＩＤ」、「ノード種別」、および「データ」といった項目を有する情報が登録される。「エンティティＩＤ」は、エンティティを識別する識別情報を示す。「エンティティ種別」は、エンティティが示す対象の種別を示す。「ノードＩＤ」は、エンティティに紐づくデータを識別する識別情報を示す。「ノード種別」は、エンティティに紐づくデータの種別を示す。「データ」は、エンティティに紐づくデータを示す。
【００７０】
図６の１レコード目に示す例では、エンティティＩＤ「Ｅ１」で識別されるエンティティ（エンティティＥ１）は、図１に示すエンティティＥ１に対応する。エンティティ種別「バンド」は、エンティティＥ１が示す対象の種別がバンドであることを示す。また、ノードＩＤ「Ｉ１１」で識別されるノード（ノードＩ１１）は、エンティティＥ１に紐づくデータを示す。ノード種別「バンド名」は、エンティティＥ１に紐づくデータの種別がバンド名であることを示す。データ「バンド名＃１」は、エンティティＥ１に紐づくデータが「バンド名＃１」という文字列であることを示す。
【００７１】
（トリプル情報記憶部１２４）
トリプル情報記憶部１２４(図３を参照)は、トリプルを示す情報に関する各種の情報を記憶する。図７に、実施形態に係るトリプル情報記憶部の一例を示す。図７の左方に示すトリプル情報記憶部１２４−Ｂは、図１で示した情報処理装置１００による情報処理が行われる前のナレッジデータベースに係るトリプル情報記憶部１２４を示す。また、図７の右方に示すトリプル情報記憶部１２４−Ａは、図１で示した情報処理装置１００による情報処理が行われた後のナレッジデータベースに係るトリプル情報記憶部１２４を示す。図７の右方に示すトリプル情報記憶部１２４−Ａは、図１で示した情報処理装置１００による情報処理が行われたことにより、トリプル＃２２の第２要素としてエンティティＥ２２がナレッジデータベースに付加されたことを示す。また、トリプル＃２３の関係情報として関係情報Ｃ２３がナレッジデータベースに付加されたことを示す。また、第１要素であるエンティティＥ１４と第２要素であるエンティティＥ２４と担当楽器を示す関係情報Ｃ２３とから成るトリプル＃２４がナレッジデータベースに付加されたことを示す。
【００７２】
図７に示す例では、トリプル情報記憶部１２４は、「トリプルＩＤ」、「関係情報ＩＤ」、「種別」、「第１要素」、および「第２要素」といった項目を有する情報が登録される。「トリプルＩＤ」は、トリプルを識別する識別情報を示す。「関係情報ＩＤ」は、エンティティ間の関係性を示す関係情報を識別する識別情報を示す。「種別」は、関係情報の種別を示す。「第１要素」はトリプルを構成する２つのエンティティのうちの一方のエンティティを示す。「第２要素」は、トリプルを構成する２つのエンティティのうちのもう一方のエンティティを示す。
【００７３】
図７の１レコード目に示す例では、トリプルＩＤ「トリプル＃１１」で識別されるトリプル（トリプル＃１１）は、第１要素であるエンティティＥ１１と、第２要素であるエンティティＥ１と、エンティティＥ１１とエンティティＥ１との関係性を示す関係情報である関係情報Ｃ１１とから成るトリプルである。また、種別「所属メンバー」は、関係情報Ｃ１１の種別が所属メンバーであることを示す。
【００７４】
（スコア情報記憶部１２５）
スコア情報記憶部１２５は、各トリプルに付与されたスコアに関する各種の情報を記憶する。図８に、実施形態に係るスコア情報記憶部の一例を示す。図８に示す例では、スコア情報記憶部１２５は、「トリプルＩＤ」および「類似度」といった項目が登録される。「トリプルＩＤ」は、トリプルを識別する識別情報を示す。「類似度」は、トリプルを構成するエンティティ間の関係性を示す関係情報の確度を示す。具体的には、「類似度」は、トリプルを構成するエンティティに紐づくデータに対応するベクトル間の類似度を示す。
【００７５】
（制御部１３０）
図３の説明に戻って、制御部１３０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、情報処理装置１００内部の記憶装置に記憶されている各種プログラム（情報処理プログラムの一例に相当）がＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、コントローラであり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。
【００７６】
図３に示すように、制御部１３０は、生成部１３１と、算出部１３２と、取得部１３３と、補正部１３４と、検索部１３５を有し、以下に説明する情報処理の作用を実現または実行する。なお、制御部１３０の内部構成は、図３に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００７７】
（生成部１３１）
生成部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデルを用いて、所定の情報の分散表現を生成する。具体的には、生成部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデルを用いて、検索クエリに対応する分散表現であるベクトルを生成する。より具体的には、生成部１３１は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデルＭ１を生成装置５０から取得する。生成部１３１は、学習モデルＭ１を取得すると、取得した学習モデルＭ１（モデルデータＭＤＴ１）をモデル情報記憶部１２１に格納する。
【００７８】
また、生成部１３１は、ナレッジデータベースを補正するのに十分な数の検索クエリを検索サーバ２０から取得する。例えば、生成部１３１は、ナレッジデータベースに含まれるエンティティの数よりも多数の検索クエリを検索サーバ２０から取得する。続いて、生成部１３１は、検索クエリを取得すると、取得した検索クエリを学習モデルＭ１に入力して、取得した検索クエリに対応する分散表現であるベクトルを生成する。生成部１３１は、検索クエリに対応する分散表現であるベクトルを生成すると、生成した分散表現であるベクトルを検索クエリと対応付けてベクトル情報記憶部１２２に格納する。
【００７９】
（算出部１３２）
算出部１３２は、生成部１３１によって生成された所定の情報の分散表現と、生成部１３１によって生成された所定の情報とは異なる他の情報の分散表現との類似度を算出する。具体的には、算出部１３２は、生成部１３１によって生成された検索クエリに対応する分散表現であるベクトル同士の類似度を算出する。例えば、算出部１３２は、ベクトル同士のコサイン類似度を算出する。なお、算出部１３２は、コサイン類似度に限らず、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいてベクトルの間の類似度を算出してもよい。例えば、算出部１３２は、ベクトル同士のユークリッド距離や双曲空間等の非ユークリッド空間中での距離、マンハッタン距離、マハラノビス距離等といった所定の距離関数の値を算出してもよい。
【００８０】
（取得部１３３）
取得部１３３は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデルを用いて、情報間の類似性に関する類似情報を取得する。具体的には、取得部１３３は、算出部１３２によって算出された類似度に基づいて、情報間の類似性に関する類似情報を取得する。例えば、取得部１３３は、算出部１３２によって算出された類似度に基づいて、所定の情報の分散表現との類似度が所定の閾値を超える分散表現が存在するか否かを判定する。続いて、取得部１３３は、所定の情報の分散表現との類似度が所定の閾値を超える分散表現が存在する場合には、所定の情報の分散表現との類似度が所定の閾値を超える分散表現に対応する他の情報を、所定の情報と類似する他の情報として特定する。また、取得部１３３は、所定の情報と、所定の情報と類似する他の情報との類似性に関する類似情報として、算出部１３２によって算出された所定の情報の分散表現と他の情報の分散表現との類似度を取得する。
【００８１】
より具体的には、取得部１３３は、類似情報として、ナレッジデータベースに含まれる第１要素が示す第１情報と、第１情報と類似する第２情報との類似性に関する類似情報を取得する。例えば、取得部１３３は、ナレッジデータベースに含まれるトリプルの第１要素である第１エンティティに関する情報を取得する。例えば、取得部１３３は、第１エンティティに関する情報として、第１エンティティと対応付けて登録されているノード（アイテム）の第１情報を取得する。続いて、取得部１３３は、第１エンティティに対応する第１情報を取得すると、生成部１３１によって生成された第１情報に対応する第１ベクトルを取得する。続いて、取得部１３３は、算出部１３２によって算出された第１ベクトルと他の情報に対応するベクトルとの類似度を取得する。続いて、取得部１３３は、第１ベクトルとの類似度が所定の閾値を超えるベクトルが存在するか否かを判定する。続いて、取得部１３３は、第１情報に対応するベクトルとの類似度が所定の閾値を超えるベクトルが存在すると判定すると、第１ベクトルとの類似度が所定の閾値を超える第２ベクトルに対応する情報を、第１情報と類似する第２情報として特定する。続いて、取得部１３３は、第１情報と第２情報とが類似すると判定すると、第１情報に紐づく第１エンティティと第２情報に紐づく第２エンティティとの関連性が高いと判定する。
【００８２】
また、取得部１３３は、類似情報として、ナレッジデータベースに含まれる第１要素が示す第１情報と、ナレッジデータベースに含まれる第２要素が示す第２情報であって、第１情報と類似する第２情報との類似性に関する類似情報を取得する。例えば、取得部１３３は、ナレッジデータベースに含まれる第１要素である第１エンティティに関する情報を取得する。例えば、取得部１３３は、第１エンティティに関する情報として、第１エンティティと対応付けて登録されているノード（アイテム）の第１情報を取得する。また、取得部１３３は、ナレッジデータベースに含まれる第２要素である第２エンティティに関する情報を取得する。例えば、取得部１３３は、第２エンティティに関する情報として、第２エンティティと対応付けて登録されているノード（アイテム）の第２情報を取得する。続いて、取得部１３３は、第１情報と第２情報を取得すると、生成部１３１によって生成された第１情報に対応する第１ベクトルと第２情報に対応する第２ベクトルを取得する。続いて、取得部１３３は、第１ベクトルと第２ベクトルを取得すると、算出部１３２によって算出された第１ベクトルと第２ベクトルとの類似度を取得する。続いて、取得部１３３は、第１ベクトルと第２ベクトルとの類似度が所定の閾値を超えるか否かを判定する。取得部１３３は、第１ベクトルと第２ベクトルとの類似度が所定の閾値を超えると判定すると、第１情報に紐づく第１エンティティと第２情報に紐づく第２エンティティとの関連性が高いと判定する。
【００８３】
また、取得部１３３は、類似情報として、第１情報と、第１情報と類似する第２情報との類似性に関する類似情報を取得する。例えば、取得部１３３は、ナレッジデータベースに含まれる所定のエンティティに関する情報を取得する。例えば、取得部１３３は、ナレッジデータベースに含まれる所定のエンティティと対応付けて登録されているノード（アイテム）の情報を取得する。続いて、取得部１３３は、所定のエンティティに対応する情報を取得すると、生成部１３１によって生成された情報に対応するベクトルを取得する。また、取得部１３３は、取得したベクトルと他の検索クエリに対応するベクトルとの類似度を取得する。続いて、取得部１３３は、取得したベクトルとの類似度が所定の閾値を超える第１ベクトルに対応する第１情報を取得する。例えば、取得部１３３は、取得したベクトルとの類似度が所定の閾値を超える複数の第１ベクトルに対応する複数の第１情報を取得する。
【００８４】
続いて、取得部１３３は、取得したベクトルとの類似度が所定の閾値を超える第１ベクトルに対応する第１情報がナレッジデータベースに存在するか否かを第１情報毎に判定する。続いて、取得部１３３は、所定の第１ベクトルに対応する所定の第１情報がナレッジデータベースに存在しないと判定すると、所定の第１情報をナレッジデータベースに付加することを決定する。続いて、取得部１３３は、所定の第１情報をナレッジデータベースに付加することを決定すると、所定の第１情報の種別を判定する。例えば、取得部１３３は、辞書データ等を参照して、所定の第１情報の種別を判定する。続いて、取得部１３３は、所定の第１情報の種別を判定すると、所定の第１情報に対応する第１エンティティの対象を判定する。例えば、取得部１３３は、所定の第１情報の種別と所定の第１情報とに基づいて、所定の第１情報に対応する第１エンティティが示す対象を判定する。続いて、取得部１３３は、所定の第１情報に対応する第１エンティティがナレッジデータベースに存在するか否かを判定する。取得部１３３は、所定の第１情報に対応する第１エンティティがナレッジデータベースに存在しないと判定すると、所定の第１情報に対応する第１エンティティをナレッジデータベースに付加することを決定する。例えば、取得部１３３は、第１エンティティと対応付けて登録するノード（アイテム）として所定の第１情報を付加することを決定する。続いて、取得部１３３は、所定の第１情報をナレッジデータベースに付加することを決定すると、辞書データ等を参照して、所定の第１情報の種別を判定する。続いて、取得部１３３は、所定の第１情報の種別を判定すると、所定の第１情報に対応する第１エンティティの対象を判定する。例えば、取得部１３３は、所定の第１情報の種別と所定の第１情報とに基づいて、所定の第１情報に対応する第１エンティティが示す対象を判定する。続いて、取得部１３３は、所定の第１情報に対応する第１エンティティがナレッジデータベースに存在するか否かを判定する。取得部１３３は、所定の第１情報に対応する第１エンティティがナレッジデータベースに存在しないと判定すると、所定の第１情報に対応する第１エンティティをナレッジデータベースに付加することを決定する。例えば、取得部１３３は、第１エンティティと対応付けて登録するノード（アイテム）として所定の第１情報を付加することを決定する。
【００８５】
また、取得部１３３は、算出部１３２によって算出された類似度を取得する。例えば、取得部１３３は、トリプルを構成するエンティティに紐づくデータに対応するベクトル間の類似度を取得する。例えば、取得部１３３は、算出部１３２によって算出されたトリプルを構成する第１エンティティに紐づく第１情報に対応する第１ベクトルと第２エンティティに紐づく第２情報に対応する第２ベクトルとの類似度を取得する。
【００８６】
また、取得部１３３は、入力情報として所定の検索クエリが入力された際に、出力情報として所定の検索クエリの分散表現を出力する学習モデルを用いて、類似情報を取得する。また、取得部１３３は、所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、類似情報を取得する。また、取得部１３３は、同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、類似情報を取得する。また、取得部１３３は、ランダムに取得された複数の検索クエリが相違する特徴を有するものとして学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、類似情報を取得する。また、取得部１３３は、ランダムに取得された一対の検索クエリの分散表現が相違するように学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、類似情報を取得する。
【００８７】
（補正部１３４）
補正部１３４は、取得部１３３によって取得された類似情報に基づいて、ナレッジデータベースを補正する。具体的には、補正部１３４は、取得部１３３によって取得された類似情報に基づいて、第１情報に対応する第１要素、第２情報に対応する第２要素、または第１要素と第２要素との関係を示す関係情報のうち少なくともいずれか一つをナレッジデータベースに付加する。
【００８８】
補正部１３４は、取得部１３３によって取得された類似情報に基づいて、第２情報に対応する第２要素をナレッジデータベースに付加する。具体的には、補正部１３４は、取得部１３３によって、第１情報に対応する第１ベクトルとの類似度が所定の閾値を超える第２ベクトルが存在すると判定すると、第２ベクトルに対応する第２情報がナレッジデータベースに存在するか否かを判定する。続いて、補正部１３４は、第２情報がナレッジデータベースに存在しないと判定すると、第２情報をナレッジデータベースに付加することを決定する。続いて、補正部１３４は、第２情報をナレッジデータベースに付加することを決定すると、第２情報の種別を判定する。例えば、補正部１３４は、辞書データ等を参照して、第２情報の種別を判定する。続いて、補正部１３４は、第２情報の種別を判定すると、第２情報に対応する第２エンティティの対象を判定する。例えば、補正部１３４は、判定した第２情報の種別と第２情報とに基づいて、第２エンティティが示す対象を判定する。続いて、補正部１３４は、第２エンティティがナレッジデータベースに存在するか否かを判定する。補正部１３４は、第２エンティティがナレッジデータベースに存在しないと判定すると、第２エンティティをナレッジデータベースに付加することを決定する。例えば、補正部１３４は、第２エンティティと対応付けて登録するノード（アイテム）として第２情報を付加することを決定する。具体的には、補正部１３４は、第２情報と、第２情報に対応するノード種別と、ノードＩＤと、第２エンティティを識別するエンティティＩＤとを対応付けてエンティティ情報記憶部１２３に記憶する。
【００８９】
また、補正部１３４は、第２エンティティをナレッジデータベースに付加することを決定すると、第２エンティティとの関連性が高いエンティティである第１情報に対応する第１エンティティが示す対象の種別を判定する。例えば、補正部１３４は、エンティティ情報記憶部１２３−Ｂを参照して、第１エンティティが示す対象の種別を判定する。続いて、補正部１３４は、第１エンティティが示す対象の種別と、第２エンティティが示す対象の種別とに基づいて、第１エンティティと第２エンティティとの関係性を示す関係情報の種別を判定する。例えば、補正部１３４は、第１要素であるエンティティが示す対象の種別と、第２要素であるエンティティが示す対象の種別と、第１要素と第２要素との関係性を示す関係情報の種別とを対応付けた関係情報テーブル（図示は省略する）を記憶部１２０（図３参照）に記憶する。例えば、補正部１３４は、第１要素であるエンティティが示す対象の種別「人物」と、第２要素であるエンティティが示す対象の種別「楽器」と、第１要素と第２要素との関係性を示す関係情報の種別「担当楽器」とを対応付けた関係情報テーブルを記憶部１２０に格納する。そして、補正部１３４は、記憶部１２０に格納された関係情報テーブルを参照して、第１エンティティが示す対象の種別と第２エンティティが示す対象の種別とに基づいて、第１エンティティと第２エンティティとの関係性を示す関係情報の種別を判定する。なお、補正部１３４は、ナレッジデータベースに関する種々の公知技術を用いて、第１エンティティと第２エンティティとの関係性を示す関係情報の種別を判定してもよい。続いて、補正部１３４は、第１エンティティが示す対象の種別と、第２エンティティが示す対象の種別と、関係情報の種別とに基づいて、第１エンティティと第２エンティティと関係情報とからなるトリプルの第２要素として、第２エンティティを付加することを決定する。続いて、補正部１３４は、トリプルの第２要素として第２エンティティを付加することを決定すると、トリプルの第２要素として第２エンティティをナレッジベースに付加する。具体的には、補正部１３４は、トリプルを識別するトリプルＩＤと、第２エンティティを識別するエンティティＩＤとを対応付けてトリプル情報記憶部１２４に記憶する。
【００９０】
また、補正部１３４は、取得部１３３によって取得された類似情報に基づいて、第１要素と第２要素との関係を示す関係情報をナレッジデータベースに付加する。具体的には、補正部１３４は、取得部１３３によって第１エンティティと第２エンティティとの関係性が高いと判定される、第１エンティティと第２エンティティとの関係情報がナレッジデータベースに存在するか否かを判定する。補正部１３４は、第１エンティティと第２エンティティとの関係情報がナレッジデータベースに存在しないと判定すると、第１エンティティと第２エンティティとの関係情報をナレッジデータベースに付加することを決定する。
【００９１】
続いて、補正部１３４は、第１エンティティと第２エンティティとの関係情報をナレッジデータベースに付加することを決定すると、第１エンティティが示す対象の種別と第２エンティティが示す対象の種別を判定する。例えば、補正部１３４は、エンティティ情報記憶部１２３−Ｂを参照して、第１エンティティが示す対象の種別を判定する。また、補正部１３４は、エンティティ情報記憶部１２３−Ｂを参照して、第２エンティティが示す対象の種別を判定する。続いて、補正部１３４は、第１エンティティが示す対象の種別と、第２エンティティが示す対象の種別とに基づいて、第１エンティティと第２エンティティとの関係性を示す関係情報の種別を判定する。例えば、補正部１３４は、第１要素であるエンティティが示す対象の種別と、第２要素であるエンティティが示す対象の種別と、第１要素と第２要素との関係性を示す関係情報の種別とを対応付けた関係情報テーブル（図示は省略する）を記憶部１２０（図３参照）に記憶する。そして、補正部１３４は、記憶部１２０に格納された関係情報テーブルを参照して、第１エンティティが示す対象の種別と第２エンティティが示す対象の種別とに基づいて、第１エンティティと第２エンティティとの関係性を示す関係情報の種別を判定する。続いて、補正部１３４は、第１エンティティが示す対象の種別と、第２エンティティが示す対象の種別と、関係情報の種別とに基づいて、第１エンティティと第２エンティティと関係情報とからなるトリプルの関係情報として、第１エンティティと第２エンティティとの関係性を示す関係情報を付加することを決定する。続いて、補正部１３４は、トリプルの関係情報として第１エンティティと第２エンティティとの関係性を示す関係情報を付加することを決定すると、トリプルの関係情報として第１エンティティと第２エンティティとの関係性を示す関係情報をナレッジベースに付加する。具体的には、補正部１３４は、トリプルを識別するトリプルＩＤと、関係情報を識別する関係情報ＩＤと、関係情報の種別とを対応付けてトリプル情報記憶部１２４に記憶する。
【００９２】
また、補正部１３４は、取得部１３３によって取得された類似情報に基づいて、第１情報に対応する第１要素と、第２情報に対応する第２要素と、第１要素と第２要素との関係を示す関係情報とを有するトリプルをナレッジデータベースに付加する。具体的には、補正部１３４は、取得部１３３によってナレッジデータベースに含まれていない第１エンティティをナレッジデータベースに付加することが決定されると、ナレッジデータベースに含まれる所定のエンティティとナレッジデータベースに含まれていない第１エンティティとの関係情報をナレッジデータベースに付加することを決定する。例えば、補正部１３４は、所定のエンティティが示す対象の種別と、第１エンティティが示す対象の種別とに基づいて、所定のエンティティと第１エンティティとの関係性を示す関係情報の種別を判定する。続いて、補正部１３４は、ナレッジデータベースに含まれる所定のエンティティが示す対象の種別と、ナレッジデータベースに含まれていない第１エンティティが示す対象の種別と、関係情報の種別とに基づいて、所定のエンティティと第１エンティティと関係情報とからなるトリプルの関係情報として、所定のエンティティと第１エンティティとの関係性を示す関係情報を付加することを決定する。続いて、補正部１３４は、トリプルの関係情報として所定のエンティティと第１エンティティとの関係性を示す関係情報を付加することを決定すると、トリプルの関係情報として所定のエンティティと第１エンティティとの関係性を示す関係情報をナレッジベースに付加する。
【００９３】
続いて、補正部１３４は、所定のエンティティと第１エンティティとの関係性を示す関係情報と第１エンティティをナレッジベースに付加すると、上述した第２エンティティの付加と同様にして、付加された第１エンティティと関係性が高い第２エンティティをナレッジベースに付加する。また、補正部１３４は、第２エンティティを付加すると、上述した関係情報の付加と同様にして、第１エンティティと第２エンティティとの関係性を示す関係情報をナレッジベースに付加する。このように、補正部１３４は、所定のエンティティと第１エンティティとの関係性を示す関係情報と第１エンティティをナレッジベースに付加するのに続けて、第１エンティティと第２エンティティと第１エンティティと第２エンティティとの関係性を示す関係情報とからなるトリプルをナレッジベースに付加する。具体的には、補正部１３４は、トリプルを識別するトリプルＩＤと、第１エンティティを識別するエンティティＩＤと、第２エンティティを識別するエンティティＩＤと、関係情報を識別する関係情報ＩＤと、関係情報の種別とを対応付けてトリプル情報記憶部１２４に記憶する。
【００９４】
上記の説明では、補正部１３４が、ナレッジベースに含まれる所定のエンティティを起点として、第１エンティティと、所定のエンティティと第１エンティティとの関係性を示す関係情報を付加し、続いて、付加された第１エンティティを起点として、第２エンティティと、第１エンティティと第２エンティティとの関係性を示す関係情報とを付加する例について説明した。補正部１３４は上述した例の他にも、ナレッジベースに存在する既存のトリプルに関する情報に基づいて、新たなトリプルをナレッジベースに付加してもよい。具体的には、補正部１３４は、ナレッジベースに存在する既存のトリプルに関する情報として、ナレッジベースに含まれる第１エンティティとナレッジベースに含まれる第２エンティティと関係情報とからなるトリプルに関する情報を取得する。
【００９５】
続いて、補正部１３４は、ナレッジベースに含まれる第１エンティティに対応する第１ベクトルの近傍に、ナレッジベースに含まれる第１エンティティとナレッジベースに含まれる第２エンティティと関係情報とからなるトリプルと類似する構造に対応するベクトルの組が存在するか否かを判定する。具体的には、補正部１３４は、第１ベクトルとの類似度が所定の閾値を超えるベクトルが存在するか否かを判定する。より具体的には、補正部１３４は、算出部１３２によって算出された類似度に基づいて、第１ベクトルとの類似度が所定の閾値を超えるベクトルが存在するか否かを判定する。例えば、補正部１３４は、第１ベクトルとの類似度が所定の閾値を超えるベクトルである第３ベクトルが存在すると判定する。また、補正部１３４は、第１ベクトルとの類似度が所定の閾値を超えるベクトルである第４ベクトルが存在すると判定する。続いて、補正部１３４は、第１ベクトルとの類似度が所定の閾値を超えるベクトルが存在すると判定すると、判定したベクトルに対応するデータがナレッジベースに存在するか否かを判定する。より具体的には、補正部１３４は、エンティティ情報記憶部１２３を参照して、判定したベクトルに対応するデータがナレッジベースに存在するか否かを判定する。例えば、補正部１３４は、第３ベクトルに対応する第３情報がナレッジベースに存在するか否かを判定する。また、補正部１３４は、第４ベクトルに対応する第４情報がナレッジベースに存在するか否かを判定する。補正部１３４は、第３ベクトルに対応する第３情報がナレッジベースに存在しないと判定すると、第３情報の種別を判定する。また、補正部１３４は、第４ベクトルに対応する第４情報がナレッジベースに存在しないと判定すると、第４情報の種別を判定する。例えば、補正部１３４は、辞書データ等を参照して、第３情報の種別と第４情報の種別を判定する。続いて、補正部１３４は、第３情報の種別と第４情報の種別を判定すると、判定した第３情報の種別と第４情報の種別が、ナレッジベースに含まれる第１エンティティとナレッジベースに含まれる第２エンティティと関係情報とからなるトリプルを構成する第１エンティティに紐づく第１情報の種別と第２エンティティに紐づく第２情報の種別とに対応するか否かを判定する。例えば、補正部１３４は、第３情報の種別と第１情報の種別とが一致するか否かを判定する。また、補正部１３４は、第４情報の種別と第２情報の種別とが一致するか否かを判定する。補正部１３４は、第３情報の種別と第１情報の種別および第４情報の種別と第２情報の種別が一致すると判定すると、第３情報に対応する第３エンティティと、第４情報に対応する第４エンティティと、第３エンティティと第４エンティティとの関係性を示す関係情報とからなるトリプルをナレッジデータベースに付加する。具体的には、補正部１３４は、トリプルを識別するトリプルＩＤと、第３エンティティを識別するエンティティＩＤと、第４エンティティを識別するエンティティＩＤと、関係情報を識別する関係情報ＩＤと、関係情報の種別とを対応付けてトリプル情報記憶部１２４に記憶する。
【００９６】
補正部１３４は、算出部１３２によって算出された類似度に基づくスコアをトリプルに付加する。具体的には、補正部１３４は、取得部１３３によって取得されたトリプルを構成する第１エンティティに紐づく第１情報に対応する第１ベクトルと第２エンティティに紐づく第２情報に対応する第２ベクトルとの類似度を取得する。続いて、補正部１３４は、取得部１３３によって取得された第１ベクトルと第２ベクトルとの類似度を、第１エンティティと第２エンティティとの関係性を示す関係情報の確度を示すスコアとしてナレッジデータベースに付加する。具体的には、補正部１３４は、トリプルを識別するトリプルＩＤと類似度とを対応付けてスコア情報記憶部１２５に記憶する。
【００９７】
（検索部１３５）
検索部１３５は、ナレッジベースを検索する。具体的には、検索部１３５は、ユーザ端末１０から検索クエリとして主語と動詞を受付ける。続いて、検索部１３５は、検索クエリとして受付けた主語と動詞とを含むトリプルを検索し、検索したトリプルをユーザ端末１０に提供する。例えば、検索部１３５は、検索クエリとして、主語「人名＃１１」と述語「担当楽器」とを受付けた場合、主語「人名＃１１」をノード（アイテム）とするエンティティＥ１１と、述語「担当楽器」を示す関係情報Ｃ２１とを特定し、特定した、エンティティＥ１１と、関係情報Ｃ２１とを含むトリプルとして、エンティティＥ１１、エンティティＥ２１、および関係情報Ｃ２１を特定する。そして、検索部１３５は、特定したトリプルの内容を出力する。例えば、検索部１３５は、人名が「人名＃１１」である人物の担当楽器が「ギター」である旨を検索結果として出力する。
【００９８】
〔１−４．生成処理のフロー〕
次に、図９を用いて、実施形態に係る生成処理の手順について説明する。図９は、実施形態に係る生成処理手順を示すフローチャートである。図９に示す例では、情報処理装置１００は、検索クエリと学習モデルを取得する（ステップＳ１０１）。続いて、情報処理装置１００は、検索クエリと学習モデルを取得すると、学習モデルを用いて、検索クエリのベクトルを生成する（ステップＳ１０２）。
【００９９】
〔１−５．情報処理のフロー〕
次に、図１０を用いて、実施形態に係る情報処理の手順について説明する。図１０は、実施形態に係る情報処理手順を示すフローチャートである。図１０に示す例では、情報処理装置１００は、情報間の類似性に関する類似情報を取得したか否かを判定する（ステップＳ２０１）。情報間の類似性に関する類似情報を取得していない場合（ステップＳ２０１；Ｎｏ）、類似情報を取得するまで待機する。
【０１００】
一方、情報処理装置１００は、情報間の類似性に関する類似情報を取得した場合（ステップＳ２０１；Ｙｅｓ）、類似情報に基づいて、ナレッジデータベースを補正する（ステップＳ２０２）。
【０１０１】
〔２．学習モデルの生成処理〕
〔２−１．生成処理の一例〕
次に、図１１を用いて、学習モデルの生成処理の流れについて説明する。図１１は、実施形態に係る学習モデルの生成処理の一例を示す図である。図１１に示す例では、生成装置５０は、同一のユーザＵ１によって所定の時間内に連続して入力された「六本木  パスタ」という検索クエリＱ１１と「六本木  イタリアン」という検索クエリＱ１２とから成る一対の検索クエリを抽出する（ステップＳ１１）。
【０１０２】
続いて、生成装置５０は、抽出した検索クエリＱ１１を学習モデルＭ１に入力して、検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１を出力する。ここで、ベクトルＢＱＶ１１は、学習モデルＭ１の出力層から出力されたばかりの検索クエリＱ１１の分散表現であって、学習モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す。また、生成装置５０は、抽出した検索クエリＱ１２を学習モデルＭ１に入力して、検索クエリＱ１２の分散表現であるベクトルＢＱＶ１２を出力する。ここで、ベクトルＢＱＶ１２は、学習モデルＭ１の出力層から出力されたばかりの検索クエリＱ１２の分散表現であって、学習モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す。このようにして、生成装置５０は、検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１と、検索クエリＱ１２の分散表現であるベクトルＢＱＶ１２とを出力する（ステップＳ１２）。
【０１０３】
続いて、生成装置５０は、同一のユーザＵ１によって所定の時間内に連続して入力された検索クエリＱ１１（「六本木  パスタ」）と検索クエリＱ１２（「六本木  イタリアン」）とから成る一対の検索クエリは、所定の検索意図（例えば、「ある場所で飲食店を探す」という検索意図）で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリＱ１１の分散表現（ベクトルＱＶ１１）と、検索クエリＱ１１と対となる検索クエリＱ１２の分散表現（ベクトルＱＶ１２）とが、類似するように学習モデルＭ１を学習させる。例えば、学習モデルＭ１にフィードバックをかける前（学習前）の検索クエリＱ１１の分散表現であるベクトルＢＱＶ１１と検索クエリＱ１２の分散表現であるベクトルＢＱＶ１２とのなす角度の大きさをΘとする。また、学習モデルＭ１にフィードバックをかけた後（学習後）の検索クエリＱ１１の分散表現であるベクトルＱＶ１１と検索クエリＱ１２の分散表現であるベクトルＱＶ１２とのなす角度の大きさをΦとする。この時、生成装置５０は、ΘよりもΦが小さくなるように、学習モデルＭ１を学習させる。例えば、生成装置５０は、ベクトルＢＱＶ１１とベクトルＢＱＶ１２のコサイン類似度の値を算出する。また、生成装置５０は、ベクトルＱＶ１１とベクトルＱＶ１２のコサイン類似度の値を算出する。続いて、生成装置５０は、ベクトルＢＱＶ１１とベクトルＢＱＶ１２のコサイン類似度の値よりも、ベクトルＱＶ１１とベクトルＱＶ１２のコサイン類似度の値が大きくなるように（値が１に近づくように）学習モデルＭ１を学習させる。このように、生成装置５０は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが類似するように学習モデルＭ１を学習させることで、検索クエリからベクトルを出力する学習モデルＭ１を生成する（ステップＳ１３）。なお、生成装置５０は、コサイン類似度に限らず、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいてベクトルの間の類似度を算出してもよい。また、生成装置５０は、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて学習モデルＭ１を学習させてもよい。例えば、生成装置５０は、ベクトル同士のユークリッド距離や双曲空間等の非ユークリッド空間中での距離、マンハッタン距離、マハラノビス距離等といった所定の距離関数の値を算出する。続いて、生成装置５０は、ベクトル同士の所定の距離関数の値（すなわち、分散表現空間における距離）が小さくなるように学習モデルＭ１を学習させてもよい。
【０１０４】
次に、図１２を用いて、学習モデルの生成処理の流れについてより詳しく説明する。なお、図１２の説明では、図１１の説明と重複する部分は、適宜省略する。図１２は、実施形態に係る学習モデルの生成処理を示す図である。図１２に示す例では、生成装置５０が生成した学習モデルＭ１によって出力されたベクトルが分散表現空間にマッピングされる様子が示されている。生成装置５０は、所定の検索クエリの分散表現と所定の検索クエリと対となる他の検索クエリの分散表現とが分散表現空間上で近くにマッピングされるように学習モデルＭ１のトレーニングを行う。
【０１０５】
図１２の上段に示す例では、生成装置５０は、同一のユーザＵ１によって所定の時間内に連続して入力された４個の検索クエリである検索クエリＱ１１（「六本木  パスタ」）、検索クエリＱ１２（「六本木  イタリアン」）、検索クエリＱ１３（「赤坂  パスタ」）、検索クエリＱ１４（「麻布  パスタ」）を抽出する。生成装置５０は、同一のユーザＵ１によって各検索クエリが入力された時間の間隔が所定の時間内である４個の検索クエリを抽出する。生成装置５０は、同一のユーザＵ１によって後述する各検索クエリのペアが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。生成装置５０は、検索クエリが入力された順番に並べると、検索クエリＱ１１、検索クエリＱ１２、検索クエリＱ１３、検索クエリＱ１４の順番で入力された４個の検索クエリを抽出する。生成装置５０は、４個の検索クエリを抽出すると、時系列的に隣り合う２つの検索クエリを一対の検索クエリとして、３対の検索クエリのペアである（検索クエリＱ１１、検索クエリＱ１２）、（検索クエリＱ１２、検索クエリＱ１３）、（検索クエリＱ１３、検索クエリＱ１４）を抽出する（ステップＳ２１−１）。なお、生成装置５０は、同一のユーザＵ１によって全ての検索クエリが所定の時間内に入力された複数の検索クエリを抽出してもよい。そして、生成装置５０は、時系列的に隣り合うか否かに関わらず、抽出した複数の検索クエリの中から２つの検索クエリを選択して、選択した２つの検索クエリを一対の検索クエリとして抽出してもよい。
【０１０６】
続いて、生成装置５０は、抽出した検索クエリＱ１ｋ（ｋ＝１、２、３、４）を学習モデルＭ１に入力して、検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であるベクトルＢＱＶ１ｋ（ｋ＝１、２、３、４）を出力する。ここで、ベクトルＢＱＶ１ｋ（ｋ＝１、２、３、４）は、学習モデルＭ１の出力層から出力されたばかりの検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であって、学習モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す（ステップＳ２２−１）。
【０１０７】
続いて、生成装置５０は、同一のユーザＵ１によって所定の時間内に連続して入力された一対の検索クエリは、所定の検索意図（例えば、「ある場所（東京都港区付近）で飲食店を探す」という検索意図）で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリＱ１１の分散表現（ベクトルＱＶ１１）と、検索クエリＱ１１と対となる検索クエリＱ１２の分散表現（ベクトルＱＶ１２）とが、分散表現空間上で類似するように学習モデルＭ１を学習させる。また、生成装置５０は、検索クエリＱ１２の分散表現（ベクトルＱＶ１２）と、検索クエリＱ１２と対となる検索クエリＱ１３の分散表現（ベクトルＱＶ１３）とが、分散表現空間上で類似するように学習モデルＭ１を学習させる。また、生成装置５０は、検索クエリＱ１３の分散表現（ベクトルＱＶ１３）と、検索クエリＱ１３と対となる検索クエリＱ１４の分散表現（ベクトルＱＶ１４）とが、分散表現空間上で類似するように学習モデルＭ１を学習させる。このように、生成装置５０は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように学習モデルＭ１を学習させることで、検索クエリからベクトルを出力する学習モデルＭ１を生成する（ステップＳ２３−１）。
【０１０８】
図１２の上段に示す情報処理の結果として、検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であるベクトルＱＶ１ｋ（ｋ＝１、２、３、４）が分散表現空間の近い位置にクラスタＣＬ１１としてマッピングされる様子が示されている。例えば、検索クエリＱ１ｋ（ｋ＝１、２、３、４）は、ユーザＵ１によって「ある場所（東京都港区付近）で飲食店を探す」という検索意図の下で検索された検索クエリの集合であると推定される。すなわち、検索クエリＱ１ｋ（ｋ＝１、２、３、４）は、「ある場所（東京都港区付近）で飲食店を探す」という検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであると推定される。ここで、生成装置５０は、「ある場所（東京都港区付近）で飲食店を探す」という検索意図で入力された所定の検索クエリが学習モデルに入力されると、クラスタＣＬ１１の位置にマッピングされるような分散表現を出力することができる。これにより、例えば、生成装置５０は、クラスタＣＬ１１の位置にマッピングされる分散表現に対応する検索クエリを抽出することにより、「ある場所（東京都港区付近）で飲食店を探す」という検索意図に応じた検索クエリを抽出することができる。したがって、生成装置５０は、検索クエリの意味を適切に解釈可能とすることができる。
【０１０９】
図１２の下段に示す例では、生成装置５０は、同一のユーザＵ２によって所定の時間内に連続して入力された３個の検索クエリである検索クエリＱ２１（「冷蔵庫  ４００Ｌ」）、検索クエリＱ２２（「冷蔵庫  中型」）、検索クエリＱ２３（「冷蔵庫  中型  おすすめ」）を抽出する。生成装置５０は、検索クエリが入力された順番に並べると、検索クエリＱ２１、検索クエリＱ２２、検索クエリＱ２３の順番で入力された３個の検索クエリを抽出する。生成装置５０は、３個の検索クエリを抽出すると、時系列的に隣り合う２つの検索クエリを一対の検索クエリとして、２対の検索クエリのペアである（検索クエリＱ２１、検索クエリＱ２２）、（検索クエリＱ２２、検索クエリＱ２３）を抽出する（ステップＳ２１−２）。
【０１１０】
続いて、生成装置５０は、抽出した検索クエリＱ２ｍ（ｍ＝１、２、３）を学習モデルＭ１に入力して、検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であるベクトルＢＱＶ２ｍ（ｍ＝１、２、３）を出力する。ここで、ベクトルＢＱＶ２ｍ（ｍ＝１、２、３）は、学習モデルＭ１の出力層から出力されたばかりの検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であって、学習モデルＭ１にフィードバックをかける前（学習前）の分散表現を示す（ステップＳ２２−２）。
【０１１１】
続いて、生成装置５０は、同一のユーザＵ２によって所定の時間内に連続して入力された一対の検索クエリは、所定の検索意図（例えば、「中型の冷蔵庫を調べる」という検索意図）で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリＱ２１の分散表現（ベクトルＱＶ２１）と、検索クエリＱ２１と対となる検索クエリＱ２２の分散表現（ベクトルＱＶ２２）とが、分散表現空間上で類似するように学習モデルＭ１を学習させる。また、生成装置５０は、検索クエリＱ２２の分散表現（ベクトルＱＶ２２）と、検索クエリＱ２２と対となる検索クエリＱ２３の分散表現（ベクトルＱＶ２３）とが、分散表現空間上で類似するように学習モデルＭ１を学習させる。このように、生成装置５０は、一対の検索クエリに対応する一対の分散表現である２つのベクトルが分散表現空間上で類似するように学習モデルＭ１を学習させることで、検索クエリからベクトルを出力する学習モデルＭ１を生成する（ステップＳ２３−２）。
【０１１２】
図１２の下段に示す情報処理の結果として、検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であるベクトルＱＶ２ｍ（ｍ＝１、２、３）が分散表現空間の近い位置にクラスタＣＬ２１としてマッピングされる様子が示されている。例えば、検索クエリＱ２ｍ（ｍ＝１、２、３）は、ユーザＵ２によって「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリの集合であると推定される。すなわち、Ｑ２ｍ（ｍ＝１、２、３）は、「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであると推定される。ここで、生成装置５０は、「中型の冷蔵庫を調べる」という検索意図で入力された所定の検索クエリが学習モデルに入力されると、クラスタＣＬ２１の位置にマッピングされるような分散表現を出力することができる。これにより、例えば、生成装置５０は、クラスタＣＬ２１の位置にマッピングされる分散表現に対応する検索クエリを抽出することにより、「中型の冷蔵庫を調べる」という検索意図に応じた検索クエリを抽出することができる。したがって、生成装置５０は、検索クエリの意味を適切に解釈可能とすることができる。
【０１１３】
また、本願発明に係る生成装置５０は、ランダムに抽出された複数の検索クエリは、異なる検索意図の下で検索された検索クエリであるという点で、相互に相違する特徴を有する検索クエリであるとみなして学習モデルＭ１を学習させる。具体的には、生成装置５０は、所定の検索クエリの分散表現と、所定の検索クエリとは無関係にランダムに抽出された検索クエリの分散表現とが分散表現空間上で遠くにマッピングされるように学習モデルＭ１のトレーニングを行う。図１２に示す例では、生成装置５０は、検索クエリＱ１１とは無関係にランダムに検索クエリを抽出したところ、検索クエリＱ２１が抽出されたとする。この場合、生成装置５０は、検索クエリＱ１１の分散表現（ベクトルＱＶ１１）と、検索クエリＱ１１とは無関係にランダムに抽出された検索クエリＱ２１の分散表現（ベクトルＱＶ２１）とが分散表現空間上で遠くにマッピングされるように学習モデルＭ１のトレーニングを行う。その結果として、「ある場所（東京都港区付近）で飲食店を探す」という検索意図の下で検索された検索クエリＱ１ｋ（ｋ＝１、２、３、４）の分散表現であるベクトルＱＶ１ｋ（ｋ＝１、２、３、４）を含むクラスタＣＬ１１と、「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリＱ２ｍ（ｍ＝１、２、３）の分散表現であるベクトルＱＶ２ｍ（ｍ＝１、２、３）を含むクラスタＣＬ２１とは、分散表現空間上で遠くにマッピングされる。すなわち、本願発明に係る生成装置５０は、ランダムに抽出された複数の検索クエリの分散表現が相違するように学習モデルＭ１を学習させることにより、検索意図が異なる検索クエリの分散表現を分散表現空間上で遠い位置に出力可能とする。
【０１１４】
なお、生成装置５０が生成した学習モデルＭ１によって出力されたベクトルが分散表現空間にマッピングされた結果として、上述したクラスタＣＬ１１とクラスタＣＬ２１の他にも、同一のユーザによって所定の時間内に入力された複数の検索クエリのベクトルの集合であるクラスタＣＬ１２やクラスタＣＬ２２が生成される。
【０１１５】
上述したように、生成装置５０は、ユーザによって入力された検索クエリを取得する。また、生成装置５０は、取得した検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。すなわち、本願発明に係る生成装置５０は、所定の時間内に連続して入力された複数の検索クエリは、所定の検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであるとみなして学習モデルを学習させる。具体的には、生成装置５０は、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現が類似するように学習モデルを学習させることで、所定の検索クエリから所定の検索クエリの特徴情報を含む分散表現を出力する学習モデルを生成する。すなわち、本願発明に係る生成装置５０は、所定の時間内に連続して入力された複数の検索クエリの分散表現が類似するように学習モデルＭ１を学習させることにより、所定の検索意図の下で検索された検索クエリの分散表現を分散表現空間上で近い位置に出力可能とする。これにより、生成装置５０は、検索クエリを入力したユーザのコンテクストに応じて検索クエリの意味（検索意図）を出力（解釈）することを可能にする。したがって、生成装置５０は、検索クエリの意味を適切に解釈可能とすることができる。さらに、生成装置５０は、所定の検索クエリの特徴情報を含む分散表現の近傍にマッピングされる分散表現に対応する検索クエリを抽出することにより、所定の検索クエリが検索された検索意図に応じた検索クエリを抽出することができる。すなわち、生成装置５０は、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、ユーザの検索動向を分析することを可能にする。したがって、生成装置５０は、ユーザの検索動向の分析精度を高めることができる。また、生成装置５０が生成した学習モデルＭ１を検索システムの一部として機能させることもできる。あるいは、生成装置５０は、学習モデルＭ１によって予測された検索クエリの特徴情報を利用する他のシステム（例えば、検索エンジン）への入力情報として、学習モデルＭ１が出力した検索クエリの分散表現を提供することもできる。これにより、検索システムは、学習モデルＭ１によって予測された検索クエリの特徴情報に基づいて、検索結果として出力されるコンテンツを選択可能になる。すなわち、検索システムは、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、検索結果として出力されるコンテンツを選択可能になる。さらに、検索システムは、学習モデルＭ１によって予測された検索クエリの特徴情報に基づいて、検索結果として出力されるコンテンツに含まれる文字列の分散表現と検索クエリの分散表現との類似度を算出可能になる。そして、検索システムは、算出した類似度に基づいて、検索結果として出力されるコンテンツの表示順を決定可能になる。すなわち、検索システムは、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、検索結果として出力されるコンテンツの表示順を決定可能になる。したがって、生成装置５０は、検索サービスにおけるユーザビリティを向上させることができる。
【０１１６】
〔２−２．情報処理装置の構成〕
次に、図１３を用いて、実施形態に係る生成装置５０の構成について説明する。図１３は、実施形態に係る生成装置５０の構成例を示す図である。図１３に示すように、生成装置５０は、通信部５１と、記憶部５３と、制御部５２とを有する。なお、生成装置５０は、生成装置５０の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【０１１７】
（通信部５１）
通信部５１は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部５１は、ネットワークと有線または無線で接続され、例えば、ユーザ端末１０と、検索サーバ２０との間で情報の送受信を行う。
【０１１８】
（記憶部５３）
記憶部５３は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部５３は、図１３に示すように、クエリ情報記憶部５３１と、ベクトル情報記憶部５３２と、モデル情報記憶部５３３とを有する。
【０１１９】
（クエリ情報記憶部５３１）
クエリ情報記憶部５３１は、ユーザによって入力された検索クエリに関する各種の情報を記憶する。図１４に、実施形態に係るクエリ情報記憶部の一例を示す。図１４に示す例では、クエリ情報記憶部５３１は、「ユーザＩＤ」、「日時」、「検索クエリ」、「検索クエリＩＤ」といった項目を有する。
【０１２０】
「ユーザＩＤ」は、検索クエリを入力したユーザを識別するための識別情報を示す。「日時」は、検索サーバがユーザから検索クエリを受け付けた日時を示す。「検索クエリ」は、ユーザによって入力された検索クエリを示す。「検索クエリＩＤ」は、ユーザによって入力された検索クエリを識別するための識別情報を示す。
【０１２１】
図１４の１レコード目に示す例では、検索クエリＩＤ「Ｑ１１」で識別される検索クエリ（検索クエリＱ１１）は、図１１に示した検索クエリＱ１１に対応する。また、ユーザＩＤ「Ｕ１」は、検索クエリＱ１１を入力したユーザがユーザＩＤ「Ｕ１」で識別されるユーザ（ユーザＵ１）であることを示す。また、日時「２０１８／９／１  ＰＭ１７：００」は、検索サーバがユーザＵ１から検索クエリＱ１１を受け付けた日時が２０１８年９月１日の午後１７：００であることを示す。また、検索クエリ「六本木  パスタ」は、ユーザＵ１によって入力された検索クエリＱ１１を示す。具体的には、検索クエリ「六本木  パスタ」は、地名を示す「六本木」と食品の種類を示す「パスタ」の文字とが区切り文字であるスペースで区切られた文字列であることを示す。
【０１２２】
（ベクトル情報記憶部５３２）
ベクトル情報記憶部５３２は、検索クエリの分散表現であるベクトルに関する各種の情報を記憶する。図１５に、実施形態に係るベクトル情報記憶部の一例を示す。図１５に示す例では、ベクトル情報記憶部５３２は、「ベクトルＩＤ」、「検索クエリＩＤ」、「ベクトル情報」といった項目を有する。
【０１２３】
「ベクトルＩＤ」は、検索クエリの分散表現であるベクトルを識別するための識別情報を示す。「検索クエリＩＤ」は、ベクトルに対応する検索クエリを識別するための識別情報を示す。「ベクトル情報」は、検索クエリの分散表現であるＮ次元のベクトルを示す。検索クエリの分散表現であるベクトルは、例えば、１２８次元のベクトルである。
【０１２４】
図１５の１レコード目に示す例では、ベクトルＩＤ「ＱＶ１１」で識別されるベクトル（ベクトルＱＶ１１）は、図１１に示した検索クエリＱ１１の分散表現であるベクトルＱＶ１１に対応する。また、検索クエリＩＤ「Ｑ１１」で識別される検索クエリ（検索クエリＱ１１）は、ベクトルＱＶ１１に対応する検索クエリが検索クエリＱ１１であることを示す。また、ベクトル情報「ＱＶＤＴ１１」は、検索クエリＱ１１の分散表現であるＮ次元のベクトルを示す。
【０１２５】
（モデル情報記憶部５３３）
モデル情報記憶部５３３は、生成装置５０によって生成された学習モデルに関する各種の情報を記憶する。図１６に、実施形態に係るモデル情報記憶部の一例を示す。図１６に示す例では、モデル情報記憶部５３３は、「モデルＩＤ」、「モデルデータ」といった項目を有する。
【０１２６】
「モデルＩＤ」は、生成装置５０によって生成された学習モデルを識別するための識別情報を示す。「モデルデータ」は、生成装置５０によって生成された学習モデルのモデルデータを示す。例えば、「モデルデータ」には、検索クエリを分散表現に変換するためのデータが格納される。
【０１２７】
図１６の１レコード目に示す例では、モデルＩＤ「Ｍ１」で識別される学習モデルは、図１に示した学習モデルＭ１に対応する。また、モデルデータ「ＭＤＴ１」は、生成装置５０によって生成された学習モデルＭ１のモデルデータ（モデルデータＭＤＴ１）を示す。
【０１２８】
モデルデータＭＤＴ１は、検索クエリが入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された検索クエリに応じて、入力層に入力された検索クエリの分散表現を出力層から出力するよう、生成装置５０を機能させてもよい。
【０１２９】
ここで、モデルデータＭＤＴ１が「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデルデータＭＤＴ１が含む第１要素は、x1やx2等といった入力データ（xi）に対応する。また、第１要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第１要素は、入力層が有するいずれかのノードに対応し、第２要素は、出力層が有するノードと見做すことができる。
【０１３０】
また、モデルデータＭＤＴ１がＤＮＮ（Deep  Neural  Network）等、１つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、モデルデータＭＤＴ１が含む第１要素は、入力層または中間層が有するいずれかのノードに対応する。また、第２要素は、第１要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第１要素の重みは、第１要素と対応するノードから第２要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
【０１３１】
生成装置５０は、上述した回帰モデルやニューラルネットワーク等、任意の構造を有するモデルを用いて、分散表現の算出を行う。具体的には、モデルデータＭＤＴ１は、検索クエリが入力された場合に、分散表現を出力するように係数が設定される。生成装置５０は、このようなモデルデータＭＤＴ１を用いて、分散表現を算出する。
【０１３２】
なお、上記例では、モデルデータＭＤＴ１が、検索クエリが入力された場合に、検索クエリの分散表現を出力するモデル（以下、モデルＸ１という。）である例を示した。しかし、実施形態に係るモデルデータＭＤＴ１は、モデルＸ１にデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデルデータＭＤＴ１は、検索クエリを入力とした際に、モデルＸ１が出力した分散表現を入力して学習されたモデル（以下、モデルＹ１という。）であってもよい。または、モデルデータＭＤＴ１は、検索クエリを入力とし、モデルＹ１の出力値を出力とするよう学習されたモデルであってもよい。
【０１３３】
また、生成装置５０がＧＡＮ（Generative  Adversarial  Networks）を用いた推定処理を行う場合、モデルデータＭＤＴ１は、ＧＡＮの一部を構成するモデルであってもよい。
【０１３４】
（制御部５２）
図１３の説明に戻って、制御部５２は、コントローラ（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）」は、「手段」や「回路」などに読み替えることができる。例えば、補正部は、補正手段や補正回路に読み替えることができる。
【符号の説明】
【０１７５】
１  情報処理システム
１０  ユーザ端末
２０  検索サーバ
５０  生成装置
１００  情報処理装置
１１０  通信部
１２０  記憶部
１２１  モデル情報記憶部
１２２  ベクトル情報記憶部
１２３  エンティティ情報記憶部
１２４  トリプル情報記憶部
１２５  スコア情報記憶部
１３０  制御部
１３１  生成部
１３２  算出部
１３３  取得部
１３４  補正部
１３５  検索部
【図１】
2020129193.tif 000003
【図２】
2020129193.tif 000004
【図３】
2020129193.tif 000005
【図４】
2020129193.tif 000006
【図５】
2020129193.tif 000007
【図６】
2020129193.tif 000008
【図７】
2020129193.tif 000009
【図８】
2020129193.tif 000010
【図９】
2020129193.tif 000011
【図１０】
2020129193.tif 000012
【図１１】
2020129193.tif 000013
【図１２】
2020129193.tif 000014
【図１３】
2020129193.tif 000015
【図１４】
2020129193.tif 000016
【図１５】
2020129193.tif 000017
【図１６】
2020129193.tif 000018
【図１７】
2020129193.tif 000019
【図１８】
2020129193.tif 000020
【図１９】
2020129193.tif 000021