(57)【要約】【課題】クエリの分散表現の精度を向上させることである。【解決手段】情報処理装置は、情報を検索するために入力された複数のクエリを取得する取得部と、前記取得部により取得された複数のクエリのそれぞれの分散表現を生成する生成部と、前記複数のクエリのそれぞれを入力したユーザの重複度に基づいて、前記生成部により生成された複数の分散表現の中から、互いに関連した分散表現を選択する選択部と、を備える。【選択図】図２
2020046942.tif 000002
【特許請求の範囲】
【請求項１】
情報を検索するために入力された複数のクエリを取得する取得部と、
前記取得部により取得された複数のクエリのそれぞれの分散表現を生成する生成部と、
前記複数のクエリのそれぞれを入力したユーザの重複度に基づいて、前記生成部により生成された複数の分散表現の中から、互いに関連した分散表現を選択する選択部と、
を備える情報処理装置。
【請求項２】
前記選択部は、
前記複数の分散表現の中から、基準とする第１分散表現と類似する上位所定数の第２分散表現を選択し、
前記選択した所定数の第２分散表現の中から、前記第２分散表現の生成元であるクエリを入力したユーザの重複度に基づいて、前記第１分散表現に関連した前記第２分散表現を選択する、
請求項１に記載の情報処理装置。
【請求項３】
前記選択部は、前記所定数の第２分散表現の中から、前記ユーザの重複度が閾値以上であるクエリから生成された前記第２分散表現を、前記第１分散表現に関連した前記第２分散表現として選択する、
請求項２に記載の情報処理装置。
【請求項４】
前記選択部は、
前記ユーザの重複度に基づいて、前記生成部により生成された複数の分散表現のそれぞれを重み付け、
前記重み付けた複数の分散表現の中から、互いに関連した分散表現を選択する、
請求項１から３のうちいずれか一項に記載の情報処理装置。
【請求項５】
前記選択部は、
前記生成部により生成された複数の分散表現のそれぞれについて、前記ユーザの重複度が大きいほど、基準とする第１分散表現とより類似するように重み付け、
前記重み付けた複数の分散表現の中から、前記第１分散表現に関連した第２分散表現を選択する、
請求項４に記載の情報処理装置。
【請求項６】
前記選択部は、更に、前記複数のクエリのそれぞれを入力したユーザの類似度に基づいて、前記生成部により生成された複数の分散表現の中から、互いに関連した分散表現を選択する、
請求項１から５のうちいずれか一項に記載の情報処理装置。
【請求項７】
前記選択部は、更に、前記複数のクエリのそれぞれがユーザにより入力された時刻に基づいて、前記生成部により生成された複数の分散表現の中から、互いに関連した分散表現を選択する、
請求項１から６のうちいずれか一項に記載の情報処理装置。
【請求項８】
情報を検索するために入力された複数のクエリを取得する取得部と、
前記取得部により取得された複数のクエリのそれぞれの分散表現を生成する生成部と、
前記複数のクエリのそれぞれを入力したユーザの類似度に基づいて、前記生成部により生成された複数の分散表現の中から、互いに関連した分散表現を選択する選択部と、
を備える情報処理装置。
【請求項９】
情報を検索するために入力された複数のクエリを取得する取得部と、
前記取得部により取得された複数のクエリのそれぞれの分散表現を生成する生成部と、
前記複数のクエリのそれぞれがユーザにより入力された時刻に基づいて、前記生成部により生成された複数の分散表現の中から、互いに関連した分散表現を選択する選択部と、
を備える情報処理装置。
【請求項１０】
情報を検索するために入力された複数のクエリを取得する取得部と、
前記取得部により取得された複数のクエリのそれぞれの分散表現を生成する生成部と、
前記複数のクエリのそれぞれを入力したユーザに関する所定の指標値、または前記複数のクエリのそれぞれに関する所定の指標値に基づいて、前記生成部により生成された複数の分散表現の中から、互いに関連した分散表現を選択する選択部と、
を備える情報処理装置。
【請求項１１】
コンピュータが、
情報を検索するために入力された複数のクエリを取得し、
前記取得した複数のクエリのそれぞれの分散表現を生成し、
前記複数のクエリのそれぞれを入力したユーザの重複度に基づいて、前記生成した複数の分散表現の中から、互いに関連した分散表現を選択する、
情報処理方法。
【請求項１２】
コンピュータに、
情報を検索するために入力された複数のクエリを取得する処理と、
前記取得した複数のクエリのそれぞれの分散表現を生成する処理と、
前記複数のクエリのそれぞれを入力したユーザの重複度に基づいて、前記生成した複数の分散表現の中から、互いに関連した分散表現を選択する処理と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
自然言語処理の分野などでは、ニューラルネットワークを利用して得た単語や文の分散表現が機械学習などに利用されている。一方で、複数のクエリの互いの関連度をスコアとして導出する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−２２８１１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、単語や文として入力されたクエリの分散表現が、そのクエリの特徴を十分に表し切れておらず、分散表現の精度が十分でない場合があった。この結果、クエリの分散表現を利用した言語処理の精度が十分でない場合があった。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、クエリの分散表現の精度を向上させることができる情報処理装置、情報処理方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の一態様は、情報を検索するために入力された複数のクエリを取得する取得部と、前記取得部により取得された複数のクエリのそれぞれの分散表現を生成する生成部と、前記複数のクエリのそれぞれを入力したユーザの重複度に基づいて、前記生成部により生成された複数の分散表現の中から、互いに関連した分散表現を選択する選択部と、を備える情報処理装置である。
【発明の効果】
【０００７】
本発明の一態様によれば、クエリの分散表現の精度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態の情報処理装置１００を含む情報処理システム１の一例を示す図である。
【図２】第１実施形態における情報処理装置１００の構成の一例を示す図である。
【図３】第１実施形態における制御部１１０の一連の処理の流れを示すフローチャートである。
【図４】基準ワードベクトルの近傍に分布するワードベクトルを選択する様子を模式的に示す図である。
【図５】Ｎ個のワードベクトルのそれぞれの生成元である各クエリについて、基準ワードベクトルの生成元であるクエリとの関連度のスコアを導出する様子を模式的に示す図である。
【図６】基準ワードベクトルに関連するワードベクトルを選択する処理を所定回数ｋ繰り返したときの様子を模式的に示す図である。
【図７】本手法の正解率の一例を表した図である。
【図８】実施形態の情報処理装置１００のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明を適用した情報処理装置、情報処理方法、およびプログラムを、図面を参照して説明する。
【００１０】
［概要］
情報処理装置は、一以上のプロセッサにより実現される。情報処理装置は、情報を検索するために入力された複数のクエリを取得し、取得した複数のクエリのそれぞれの分散表現を生成する。クエリの分散表現は、クエリを複数の特徴によって表現した情報であり、例えば、複数の特徴を要素とする多次元のベクトルによって表される。
【００１１】
情報処理装置は、複数のクエリの分散表現を生成すると、複数の分散表現の生成元である複数のクエリのそれぞれを入力したユーザに関する所定の指標値に基づいて、複数の分散表現の中から、互いに関連した分散表現を選択する。ユーザに関する所定の指標値は、例えば、複数のクエリのそれぞれを入力したユーザの重複度であってもよいし、複数のクエリのそれぞれを入力したユーザの類似度であってもよい。
【００１２】
また、情報処理装置は、ユーザに関する所定の指標値に代えて、あるいは加えて、複数のクエリのそれぞれに関する所定の指標値に基づいて、複数の分散表現の中から、互いに関連した分散表現を選択してもよい。クエリに関する所定の指標値は、例えば、複数のクエリのそれぞれがユーザにより入力された時刻であってよい。
【００１３】
このように、情報処理装置は、ユーザの重複度や、ユーザの類似度、クエリの入力時刻といった指標値に基づいて、複数のクエリの分散表現の中から互いに関連するクエリを選択することで、クエリの分散表現の精度を向上させることができる。
【００１４】
＜第１実施形態＞
［全体構成］
図１は、第１実施形態の情報処理装置１００を含む情報処理システム１の一例を示す図である。第１実施形態における情報処理システム１は、例えば、一つ以上の端末装置１０と、情報提供装置２０と、情報処理装置１００とを備える。これらの装置は、例えば、ネットワークＮＷを介して互いに接続される。
【００１５】
図１に示す各装置は、ネットワークＮＷを介して種々の情報を送受信する。ネットワークＮＷは、例えば、インターネット、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、プロバイダ端末、無線通信網、無線基地局、専用回線などを含む。なお、図１に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークＮＷは、一部にローカルなネットワークを含んでもよい。
【００１６】
端末装置１０は、例えば、スマートフォンなどの携帯電話、タブレット端末、各種パーソナルコンピュータなどの、入力装置、表示装置、通信装置、記憶装置、および演算装置を備える端末装置である。通信装置は、ＮＩＣ（Network Interface Card）などのネットワークカード、無線通信モジュールなどを含む。端末装置１０では、ウェブブラウザやアプリケーションプログラムなどのＵＡ（User Agent）が起動し、ユーザの入力内容に応じたリクエストを情報提供装置２０に送信する。また、ＵＡが起動された端末装置１０は、情報提供装置２０から取得した情報に基づいて、表示装置に各種画像を表示させる。
【００１７】
情報提供装置２０は、例えば、ウェブブラウザからのリクエスト（例えばＨＴＴＰ（Hypertext Transfer Protocol）リクエストやクエリなど）に応じてウェブページを端末装置１０に提供するウェブサーバであってよい。ウェブページには、コンテンツが含まれる。コンテンツは、例えば、ブログやウェブサイトなどに掲載される文書データであってもよいし、静止画像データ、動画像データ、または音声データなどであってもよい。また、情報提供装置２０は、アプリケーションプログラムからのリクエストに応じて画像や音声などのコンテンツを端末装置１０に提供するアプリサーバであってもよい。例えば、情報提供装置２０は、文書検索や画像検索といった、あるデータベースから所望のコンテンツを検索するサービス（以下、検索サービスと称する）を、ウェブサイトやアプリケーションを介して、端末装置１０を利用するユーザに提供する。ユーザが検索サービスを利用してデータベースから所望のコンテンツを検索する際に、端末装置１０に対してクエリを入力した場合、情報提供装置２０は、その端末装置１０からクエリを受信し、受信したクエリに応じたコンテンツを含むウェブページなどを端末装置１０に送信する。
【００１８】
情報処理装置１００は、検索サービスの利用時に入力された複数のクエリを、情報提供装置２０から取得し、取得した複数のクエリのそれぞれの分散表現を生成する。そして、情報処理装置１００は、生成した複数の分散表現の中から互いに関連した分散表現を選択し、その選択結果に関する情報を情報提供装置２０に送信する。これを受けて、情報提供装置２０は、例えば、情報処理装置１００から受信した分散表現に関する情報に基づいて、検索サービスの精度を改善する。
【００１９】
［情報処理装置の構成］
図２は、第１実施形態における情報処理装置１００の構成の一例を示す図である。図示のように、情報処理装置１００は、例えば、通信部１０２と、制御部１１０と、記憶部１３０とを備える。
【００２０】
通信部１０２は、例えば、ＮＩＣ等の通信インターフェースを含む。通信部１０２は、ネットワークＮＷを介して、情報提供装置２０などと通信する。
【００２１】
制御部１１０は、例えば、取得部１１２と、生成部１１４と、選択部１１６と、出力制御部１１８とを備える。これらの構成要素は、例えば、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等のプロセッサ（あるいはプロセッサ回路）が、記憶部１３０に記憶されたプログラム（ソフトウェア）を実行することにより実現される。また、制御部１１０の構成要素のうち一部または全部は、例えば、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）等のハードウェア（回路部：circuitry）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。また、プロセッサにより参照されるプログラムは、予め記憶部１３０に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体に格納されており、記憶媒体が情報処理装置１００のドライブ装置に装着されることで記憶媒体から記憶部１３０にインストールされてもよい。
【００２２】
記憶部１３０は、例えば、ＨＤＤ（Hard Disc Drive）、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などの記憶装置により実現される。記憶部１３０には、ファームウェアやアプリケーションプログラムなどの各種プログラムのほかに、検索クエリ情報１３２や行動履歴情報１３４、生成器情報１３６などが格納される。
【００２３】
検索クエリ情報１３２は、例えば、検索サービスの利用時に入力された各クエリに対して、入力日時や、入力したユーザの識別情報（以下、ユーザＩＤ）などが対応付けられた情報である。
【００２４】
行動履歴情報１３４は、例えば、検索サービスを利用した各ユーザの行動履歴を含む情報であり、各ユーザのユーザＩＤに対して、ユーザが検索サービスを利用した日時（検索日時）や、ユーザが検索時に入力したクエリ、ユーザが閲覧したウェブページのＵＲＬ（Uniform Resource Locator）などが対応付けられた情報である。
【００２５】
生成器情報１３６は、クエリから分散表現を生成するための生成器を定義した情報（プログラムまたはデータ構造）である。生成器は、クエリを表す一つの単語（ワード）や複数の単語からなる語句（フレーズ）が入力されると、予め決められた要素数（次元数）の多次元ベクトル（以下、ワードベクトルと称する）を分散表現として出力するように予め学習されたニューラルネットワークによって実現される。
【００２６】
生成器情報１３６には、例えば、各ニューラルネットワークを構成する入力層、一以上の隠れ層（中間層）、出力層の其々に含まれるニューロン（ユニット）が互いにどのように結合されるのかという結合情報や、結合されたニューロン間で入出力されるデータに付与される結合係数がいくつであるのかという重み情報などが含まれる。結合情報は、例えば、各層に含まれるニューロン数や、各ニューロンの結合先のニューロンの種類を指定する情報、各ニューロンを実現する活性化関数、隠れ層のニューロン間に設けられたゲートなどの情報を含む。ニューロンを実現する活性化関数は、例えば、入力符号に応じて動作を切り替える関数（ＲｅＬＵ関数やＥＬＵ関数）であってもよいし、シグモイド関数や、ステップ関数、ハイパボリックタンジェント関数であってもよいし、恒等関数であってもよい。ゲートは、例えば、活性化関数によって返される値（例えば１または０）に応じて、ニューロン間で伝達されるデータを選択的に通過させたり、重み付けたりする。結合係数は、活性化関数のパラメータであり、例えば、ニューラルネットワークの隠れ層において、ある層のニューロンから、より深い層のニューロンにデータが出力される際に、出力データに対して付与される重みを含む。また、結合係数は、各層の固有のバイアス成分などを含んでもよい。
【００２７】
生成器情報１３６により定義される生成器は、例えば、コーパスに含まれる複数の単語または語句の中から、基準となる単語または語句を選択し、選択した単語または語句から、その単語または語句の前後に出現する単語または語句を予測するSkip-Gramや、コーパスに含まれる、ある文脈に着目し、その着目した文脈の中のある単語または語句を、前後に出現する単語または語句から予測するCountinuous Bag-of-Words（ＣＢＯＷ）といったニューラルネットワークによって実現される。このようなニューラルネットワークは、ｆａｓｔＴｅｘｔやｗｏｒｄ２ｖｅｃといったモデルに利用されている。ｆａｓｔＴｅｘｔは、ｗｏｒｄ２ｖｅｃと異なり、学習時に単語または語句の部分語（その単語や語句を構成する各文字）のまとまりを考慮して、活用形が異なるなどして表記が揺れる語句や単語を同じ単語や語句として扱っている。コーパスは、例えば、インターネット上で発信された情報を集約した百科事典に含まれる文書であってもよいし、検索クエリ情報１３２に含まれる複数のクエリの集合（所謂クエリログ）であってもよい。
【００２８】
生成器情報１３６は、例えば、百科事典に含まれる文書をコーパスにして、クエリからワードベクトルを生成するｆａｓｔＴｅｘｔ（以下、第１生成器と称する）や、クエリの集合をコーパスにして、クエリからワードベクトルを生成するｆａｓｔＴｅｘｔ（以下、第２生成器と称する）、クエリの集合をコーパスにして、クエリからワードベクトルを生成するｗｏｒｄ２ｖｅｃ（以下、第３生成器と称する）といった複数の生成器を定義してよい。
【００２９】
［処理フロー］
以下、第１実施形態における制御部１１０の一連の処理の流れをフローチャートに即して説明する。図３は、第１実施形態における制御部１１０の一連の処理の流れを示すフローチャートである。本フローチャートの処理は、例えば、所定の周期で繰り返し行われてもよい。
【００３０】
まず、取得部１１２は、通信部１０２を介して、情報提供装置２０から、検索サービスの利用時に入力された複数のクエリや、各クエリの入力日時、各クエリを入力したユーザのユーザＩＤなどを取得し（Ｓ１００）、取得したこれらの情報を検索クエリ情報１３２として記憶部１３０に記憶させる。
【００３１】
次に、生成部１１４は、記憶部１３０に記憶された検索クエリ情報１３２および生成器情報１３６を参照し、検索クエリ情報１３２に含まれる複数のクエリのそれぞれを、生成器情報１３６によって定義された生成器に入力することで、生成器に各クエリのワードベクトルを生成させる（Ｓ１０２）。
【００３２】
例えば、生成器情報１３６によって、第１生成器、第２生成器、および第３生成器の３つの生成器が定義されている場合、生成部１１４は、３つの生成器のそれぞれにクエリを入力することで、各クエリについて、互いに異なる３種類のワードベクトルを生成してもよい。
【００３３】
次に、選択部１１６は、生成部１１４によって生成された複数のワードベクトルの中から、ある基準とするワードベクトル（以下、基準ワードベクトルと称する）を選択する（Ｓ１０４）。基準ワードベクトルは、「第１分散表現」の一例である。
【００３４】
次に、選択部１１６は、選択した基準ワードベクトルの近傍に分布する所定数Ｎのワードベクトルを選択する（Ｓ１０６）。近傍とは、ワードベクトルに含まれる各要素を基底としたときに、その基底によって張られる多次元の空間において、基準ワードベクトルとの相対的な距離が近いことである。
【００３５】
例えば、選択部１１６は、基準ワードベクトルと、他のワードベクトルとの類似度（例えばコサイン類似度）を導出し、その導出した類似度を距離に換算することで、基準ワードベクトルに近い上位所定数Ｎのワードベクトルを選択する。基準ワードベクトルに近い上位所定数Ｎのワードベクトルは、「第２分散表現」の一例である。
【００３６】
図４は、基準ワードベクトルの近傍に分布するワードベクトルを選択する様子を模式的に示す図である。図中ＶＲは、基準ワードベクトルを表している。例えばＮ＝９とした場合、選択部１１６は、図示の例のように、多次元の空間において、基準ワードベクトルＶＲに近い上位９個のワードベクトルＶ１〜Ｖ９を選択する。
【００３７】
次に、選択部１１６は、選択したＮ個のワードベクトルのそれぞれの生成元であるクエリと、基準ワードベクトルの生成元であるクエリとの互いの関連度を導出する（Ｓ１０８）。例えば、選択部１１６は、数式（１）に基づいて、クエリ間の関連度を導出する。
【００３８】
【数１】
2020046942.tif 000003
【００３９】
数式（１）中のＳｃｏｒｅ（Ａ，Ｂ）は、あるクエリＡおよびＢの互いの関連度を表すスコアである。クエリＡまたはクエリＢのうちの一方は、基準ワードベクトルの生成元であるクエリであるものとする。数式（１）に示すように、Ｓｃｏｒｅ（Ａ，Ｂ）は、クエリＡとクエリＢとの双方を入力したユーザの数（Ａｕｓｅｒ∩Ｂｕｓｅｒ）を、クエリＡを入力したユーザの数（Ａｕｓｅｒ）で除算した値（式中の分子）を、更に、クエリＢを入力したユーザの数（Ｂｕｓｅｒ）を、全ユーザの数（ＡＬＬｕｓｅｒ）で除算した値（式中の分母）で除算した値として導出される。
【００４０】
関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）は、Ａｕｓｅｒ∩Ｂｕｓｅｒに基づくことから、クエリＡを入力したユーザと、クエリＢを入力したユーザとが互いに重複する度合い（重複度）を表した指標値でもあり、互いに異なるクエリのそれぞれを入力したユーザの重複度が大きいほど、スコアＳｃｏｒｅ（Ａ，Ｂ）が大きくなり、互いに異なるクエリのそれぞれを入力したユーザの重複度が小さいほど、スコアＳｃｏｒｅ（Ａ，Ｂ）が小さくなる。すなわち、互いに異なるクエリのそれぞれを入力したユーザの重複度が大きいほど、スコアＳｃｏｒｅ（Ａ，Ｂ）（＝クエリＡとクエリＢの関連度）が大きくなり、互いに異なるクエリのそれぞれを入力したユーザの重複度が小さいほど、スコアＳｃｏｒｅ（Ａ，Ｂ）（＝クエリＡとクエリＢの関連度）が小さくなる。
【００４１】
図５は、Ｎ個のワードベクトルのそれぞれの生成元である各クエリについて、基準ワードベクトルの生成元であるクエリとの関連度のスコアを導出する様子を模式的に示す図である。上述した図４の例のように、Ｎ＝９である場合、９個のワードベクトルＶ１〜Ｖ９のそれぞれの生成元であるクエリについて、基準ワードベクトルＶＲの生成元であるクエリとの関連度のスコアＳ１〜Ｓ９を、それら２つのクエリを入力したユーザの重複度に基づいて導出する。
【００４２】
選択部１１６は、Ｎ個のワードベクトルのそれぞれの生成元である各クエリについて、基準ワードベクトルの生成元であるクエリとの関連度のスコアＳｃｏｒｅを導出すると、Ｎ個のワードベクトルの中から、基準ワードベクトルのクエリとの関連度のスコアＳｃｏｒｅが閾値未満のワードベクトルを削除し（Ｓ１１０）、基準ワードベクトルのクエリとの関連度のスコアＳｃｏｒｅが閾値以上のワードベクトルを、基準ワードベクトルに関連したワードベクトルとして選択する。
【００４３】
このように、ワードベクトル同士の類似度が大きいという条件に加えて、そのワードベクトルの生成元であるクエリを入力したユーザの重複度が大きい（すなわちクエリ間の関連度が大きい）という条件を満たすワードベクトルだけを選別することで、クエリの分散表現の精度を向上させることができる。
【００４４】
次に、出力制御部１１８は、通信部１０２を制御して、選択部１１６によって選択されたＮ個のワードベクトルのうち、クエリの関連度に基づいて削除されずに残ったワードベクトル、すなわち、基準ワードベクトルのクエリとの関連度のスコアＳｃｏｒｅが閾値以上のワードベクトルを、基準ワードベクトルに関連したワードベクトルとして情報提供装置２０に送信する（Ｓ１１２）。
【００４５】
なお、出力制御部１１８は、ワードベクトルに代えて、あるいは加えて、その送信対象のワードベクトルの生成元であるクエリを情報提供装置２０に送信してもよい。情報提供装置２０は、情報処理装置１００から、ワードベクトルまたはクエリを受信すると、その受信した情報を自身が備えるＨＤＤなどの記憶装置に記憶させておく。そして、情報提供装置２０は、ウェブページなどを介して検索サービスを提供した端末装置１０から、検索のためのクエリを受信すると、情報処理装置１００から受信したワードベクトルまたはクエリのうち、端末装置１０から受信したクエリとの関連度が大きいワードベクトルまたはクエリを抽出し、抽出した情報を、検索を推奨するクエリなどとして端末装置１０に送信する。これによって、ユーザは検索サービスを利用して興味や関心をもつコンテンツを検索することができる。
【００４６】
次に、制御部１１０は、Ｓ１０４からＳ１１２の処理を所定回数ｋ繰り返したか否かを判定し（Ｓ１１４）、所定回数ｋ繰り返していないと判定した場合、Ｓ１０４に処理を戻し、前回選択した基準ワードベクトルと異なる他のワードベクトルを新たな基準ワードベクトルとして選択し、新たな基準ワードベクトルに類似する上位Ｎ個のワードベクトルの中から、クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）が閾値以上のワードベクトルを、新たな基準ワードベクトルに関連するワードベクトルとして選択する。一方、制御部１１０は、Ｓ１０４からＳ１１２の処理を所定回数ｋ繰り返したと判定した場合、本フローチャートの処理を終了する。
【００４７】
図６は、基準ワードベクトルに関連するワードベクトルを選択する処理を所定回数ｋ繰り返したときの様子を模式的に示す図である。図示の例のように、検索クエリ情報１３２に含まれる複数のクエリの其々のワードベクトルの集合を母集団としたときに、１回目からｋ回目の各処理において、制御部１１０は、母集団の中から、ある基準ワードベクトルＶＲｉに類似するＮｉ個のワードベクトルを選択し、更に、そのＮｉ個のワードベクトルの中から、基準ワードベクトルのクエリとの関連度のスコアＳｃｏｒｅが閾値未満のＤｉ個のワードベクトルを差し引いた残りの（Ｎｉ−Ｄｉ）個のワードベクトルを、基準ワードベクトルＶＲｉに関連するワードベクトルとして選択する。ｉは、１以上ｋ以下の数である。例えば、１回目からｋ回目の各処理において、母集団から基準ワードベクトルＶＲｉに関連するワードベクトルが選択されると、ある判定基準の下、選択されたワードベクトルのクエリが、基準ワードベクトルＶＲｉのクエリと意味が同じまたは近いのかを人間などが判断して、本手法を評価してよい。図示の例では、１回目からｋ回目の各処理において、基準ワードベクトルＶＲｉに関連するワードベクトルのクエリのうち、基準ワードベクトルＶＲｉのクエリと意味が同じまたは近いクエリの数を、基準ワードベクトルＶＲｉに関連するワードベクトルのクエリの総数で除算した割合が、正解率として導出されている。
【００４８】
図７は、本手法の正解率の一例を表した図である。図中の本手法とは、上述したように、母集団から基準ワードベクトルに関連するワードベクトルを選択する際に、まず、基準ワードベクトルに類似する上位Ｎ個のワードベクトルを選択し、その選択したＮ個のワードベクトルの中から、クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）に基づいて、更に、ワードベクトルを絞り込む手法である。一方、比較手法とは、母集団から基準ワードベクトルに関連するワードベクトルを選択する際に、まず、基準ワードベクトルに類似する上位Ｎ個のワードベクトルを選択し、その選択したＮ個のワードベクトルを基準ワードベクトルに関連するワードベクトルとする手法である。
【００４９】
例えば、母集団とする複数のワードベクトルが第１生成器を利用して生成された場合、基準ワードベクトルに関連するものとして選択されたワードベクトルの正解率は、本手法では８４［％］であり、比較手法では７６［％］であり、その差分は＋８［％］であった。また、母集団とする複数のワードベクトルが第２生成器を利用して生成された場合、基準ワードベクトルに関連するものとして選択されたワードベクトルの正解率は、本手法では６６［％］であり、比較手法では３０［％］であり、その差分は＋３６［％］であった。また、母集団とする複数のワードベクトルが第３生成器を利用して生成された場合、基準ワードベクトルに関連するものとして選択されたワードベクトルの正解率は、本手法では８１［％］であり、比較手法では６７［％］であり、その差分は＋１４［％］であった。このように、比較手法に比べて本手法の方が、互いに意味が近い分散表現を選択することができる。
【００５０】
以上説明した第１実施形態によれば、情報を検索するために入力された複数のクエリを取得し、取得した複数のクエリのそれぞれの分散表現であるワードベクトルを生成し、複数のクエリのそれぞれを入力したユーザの重複度に基づいて、生成した複数のワードベクトルの中から、互いに関連したワードベクトルを選択することにより、クエリの分散表現の精度を向上させることができる。
【００５１】
＜第２実施形態＞
以下、第２実施形態について説明する。上述した第１実施形態では、基準ワードベクトルに類似する上位Ｎ個のワードベクトルを選択した後に、そのＮ個のワードベクトルのそれぞれの生成元のクエリと、基準ワードベクトルの生成元のクエリとを入力したユーザの重複度（クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ））に基づいて、Ｎ個のワードベクトルを絞り込むものとして説明した。
【００５２】
これに対して、第２実施形態では、基準ワードベクトルに類似する上位Ｎ個のワードベクトルを選択した後に、そのＮ個のワードベクトルのそれぞれの生成元のクエリを入力したユーザと、基準ワードベクトルの生成元のクエリとを入力したユーザとの類似度に基づいて、Ｎ個のワードベクトルを絞り込む点で上述した第１実施形態と相違する。以下、第１実施形態との相違点を中心に説明し、第１実施形態と共通する点については説明を省略する。なお、第２実施形態の説明において、第１実施形態と同じ部分については同一符号を付して説明する。
【００５３】
第２実施形態の生成部１１４は、クエリの分散表現としてワードベクトルを生成するのと同様に、クエリを入力したユーザの分散表現としてユーザベクトルを生成する。具体的には、生成部１１４は、行動履歴情報１３４を参照し、各ユーザの行動履歴から、コンテンツの閲覧回数などを要素とする多次元のベクトルを、ユーザベクトルとして生成してよい。
【００５４】
第２実施形態の選択部１１６は、生成部１１４によって各ユーザのユーザベクトルが生成されると、基準ワードベクトルに類似する上位Ｎ個のワードベクトルを選択した後に、そのＮ個のワードベクトルのそれぞれの生成元のクエリを入力したユーザと、基準ワードベクトルの生成元のクエリとを入力したユーザとの類似度に基づいて、Ｎ個のワードベクトルの中から、基準ワードベクトルに関連するワードベクトルを選択する。例えば、選択部１１６は、Ｎ個のワードベクトルのそれぞれの生成元のクエリを入力したユーザＡのユーザベクトルと、基準ワードベクトルの生成元のクエリを入力したユーザＢのユーザベクトルとのコサイン類似度を導出し、その導出したコサイン類似度が閾値以上のユーザベクトルの組み合わせに対応したワードベクトルを、基準ワードベクトルに関連するワードベクトルを選択する。
【００５５】
以上説明した第２実施形態によれば、情報を検索するために入力された複数のクエリを取得し、取得した複数のクエリのそれぞれの分散表現であるワードベクトルを生成し、複数のクエリのそれぞれを入力したユーザの類似度に基づいて、生成した複数のワードベクトルの中から、互いに関連したワードベクトルを選択することにより、上述した実施形態と同様に、クエリの分散表現の精度を向上させることができる。
【００５６】
＜第３実施形態＞
以下、第３実施形態について説明する。上述した第１実施形態では、基準ワードベクトルに類似する上位Ｎ個のワードベクトルを選択した後に、そのＮ個のワードベクトルのそれぞれの生成元のクエリと、基準ワードベクトルの生成元のクエリとを入力したユーザの重複度（クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ））に基づいて、Ｎ個のワードベクトルを絞り込むものとして説明した。また、上述した第２実施形態では、基準ワードベクトルに類似する上位Ｎ個のワードベクトルを選択した後に、そのＮ個のワードベクトルのそれぞれの生成元のクエリを入力したユーザと、基準ワードベクトルの生成元のクエリとを入力したユーザとの類似度に基づいて、Ｎ個のワードベクトルを絞り込むものとして説明した。
【００５７】
これに対して、第３実施形態では、基準ワードベクトルに類似する上位Ｎ個のワードベクトルを選択した後に、そのＮ個のワードベクトルのそれぞれの生成元のクエリがユーザにより入力された時刻に基づいて、Ｎ個のワードベクトルを絞り込む点で上述した第１実施形態および第２実施形態と相違する。以下、第１実施形態および第２実施形態との相違点を中心に説明し、第１実施形態および第２実施形態と共通する点については説明を省略する。なお、第３実施形態の説明において、第１実施形態および第２実施形態と同じ部分については同一符号を付して説明する。
【００５８】
第３実施形態の選択部１１６は、基準ワードベクトルに類似する上位Ｎ個のワードベクトルを選択した後に、そのＮ個のワードベクトルのそれぞれの生成元のクエリがユーザにより入力された時刻に基づいて、Ｎ個のワードベクトルの中から、基準ワードベクトルに関連するワードベクトルを選択する。例えば、あるユーザがあるクエリＡとクエリＢを入力した場合、選択部１１６は、それらのクエリＡ、Ｂが入力された時刻が同じタイミングと見做せる場合、クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）を大きくし、クエリＡ、Ｂが入力された時刻が異なるタイミングと見做せる場合、クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）を小さくしてよい。
【００５９】
具体的には、選択部１１６は、クエリＡ、Ｂが入力された時刻が同じセッションに含まれる場合、それらのクエリＡ、Ｂが同じタイミングで入力されたものと見做して、クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）を大きくし、クエリＡ、Ｂが入力された時刻が互いに異なるセッションに含まれる場合、それらのクエリＡ、Ｂが異なるタイミングで入力されたものと見做して、クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）を小さくしてよい。
【００６０】
セッションとは、例えば、ユーザが、あるコンテンツを閲覧してからコンバージョンに至るまでの期間であってよい。コンバージョンとは、例えば、商品などのコンテンツを購入したり、動画などのコンテンツを視聴したり、広告などのコンテンツを閲覧したりすることである。また、セッションは、ユーザが、あるコンテンツを閲覧してから、他のコンテンツを閲覧するまでの期間であってもよいし、あるコンテンツを閲覧してから、ウェブブラウザなどのアプリケーションを終了するまでの期間であってもよいし、あるコンテンツを閲覧してから、所定時間経過（タイムアウト）するまでの期間であってもよい。
【００６１】
また、選択部１１６は、クエリＡが入力されたからクエリＢが入力されるまでの期間が短いほどクエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）を大きくし、クエリＡが入力されたからクエリＢが入力されるまでの期間が長いほどクエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）を小さくしてもよい。
【００６２】
このように、クエリの入力時刻が同じまたは近いほど、クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）を大きくするため、Ｎ個のワードベクトルの中から、基準ワードベクトルに関連したワードベクトルを選択する際に、基準ワードベクトルに対する関連性が低いワードベクトルを取り除くことができる。
【００６３】
以上説明した第３実施形態によれば、情報を検索するために入力された複数のクエリを取得し、取得した複数のクエリのそれぞれの分散表現であるワードベクトルを生成し、複数のクエリのそれぞれの入力時刻に基づいて、生成した複数のワードベクトルの中から、互いに関連したワードベクトルを選択することにより、上述した実施形態と同様に、クエリの分散表現の精度を向上させることができる。
【００６４】
＜第４実施形態＞
以下、第４実施形態について説明する。第４実施形態では、母集団とする複数のワードベクトルのそれぞれの生成元のクエリと、基準ワードベクトルの生成元のクエリとを入力したユーザの重複度（クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ））に基づいて、ワードベクトルのそれぞれを重み付ける点で上述した第１実施形態から第３実施形態と相違する。以下、第１実施形態から第３実施形態との相違点を中心に説明し、第１実施形態から第３実施形態と共通する点については説明を省略する。なお、第４実施形態の説明において、第１実施形態から第３実施形態と同じ部分については同一符号を付して説明する。
【００６５】
第４実施形態の選択部１１６は、母集団とする複数のワードベクトルのそれぞれの生成元のクエリと、基準ワードベクトルの生成元のクエリとを入力したユーザの重複度に基づいて、クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）を導出する。そして、選択部１１６は、クエリ間の関連度のスコアＳｃｏｒｅ（Ａ，Ｂ）に応じて、複数のワードベクトルのそれぞれを重み付ける。
【００６６】
例えば、選択部１１６は、ユーザの重複度が大きいほど、基準ワードベクトルに対する類似度（例えばコサイン類似度）が大きくなるように、ワードベクトルに値の大きい重み係数を乗算する。一方、選択部１１６は、ユーザの重複度が小さいほど、基準ワードベクトルに対する類似度（例えばコサイン類似度）が小さくなるように、ワードベクトルに値の小さい重み係数を乗算する。
【００６７】
選択部１１６は、母集団とする複数のワードベクトルのそれぞれを重み付けると、その重み付けた複数のワードベクトルの中から、基準ワードベクトルに類似する上位Ｎ個のワードベクトルを選択し、その選択したＮ個のワードベクトルのそれぞれの生成元のクエリと、基準ワードベクトルの生成元のクエリとの関連度や、それらクエリを入力したユーザとの類似度、それらクエリの入力時刻などに基づいて、Ｎ個のワードベクトルの中から、基準ワードベクトルに関連するワードベクトルを選択する。このように、母集団とする複数のワードベクトルを重み付けておくことで、母集団の中から、基準ワードベクトルに類似する上位Ｎ個のワードベクトルを選択する際に、より基準ワードベクトルに意味が近くなるワードベクトルを選び出すことができる。この結果、上述した実施形態と同様に、クエリの分散表現の精度を向上させることができる。
【００６８】
＜ハードウェア構成＞
上述した実施形態の情報処理装置１００は、例えば、図８に示すようなハードウェア構成により実現される。図８は、実施形態の情報処理装置１００のハードウェア構成の一例を示す図である。
【００６９】
情報処理装置１００は、ＮＩＣ１００−１、ＣＰＵ１００−２、ＲＡＭ１００−３、ＲＯＭ１００−４、フラッシュメモリやＨＤＤなどの二次記憶装置１００−５、およびドライブ装置１００−６が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置１００−６には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置１００−５、またはドライブ装置１００−６に装着された可搬型記憶媒体に格納されたプログラムがＤＭＡコントローラ（不図示）などによってＲＡＭ１００−３に展開され、ＣＰＵ１００−２によって実行されることで、制御部１１０が実現される。制御部１１０が参照するプログラムは、ネットワークＮＷを介して他の装置からダウンロードされてもよい。
【００７０】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００７１】
１…情報処理システム、１０…端末装置、２０…情報提供装置、１００…情報処理装置、１０２…通信部、１１０…制御部、１１２…取得部、１１４…生成部、１１６…選択部、１１８…出力制御部、１３０…記憶部
【図１】
2020046942.tif 000004
【図２】
2020046942.tif 000005
【図３】
2020046942.tif 000006
【図４】
2020046942.tif 000007
【図５】
2020046942.tif 000008
【図６】
2020046942.tif 000009
【図７】
2020046942.tif 000010
【図８】
2020046942.tif 000011