以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
〔1.情報処理の一例〕
まず、図1を用いて、実施形態に係る情報処理の一例について説明する。図1は、実施形態に係る情報処理の一例を示す図である。実施形態に係る情報処理は、図1に示す情報処理装置100によって行われる。図1に示す情報処理装置100は、クライアント(企業等)に対して、クエリの分析サービスを提供するサーバ装置である。ここで、「クエリ」とは、データベースに対する問い合わせや要求を行うためにユーザによって用いられる語句(文字情報)を指す。例えば、「クエリ」には、ユーザによって検索に用いられる語句である検索クエリが含まれる。なお、本願発明における「クエリ」には、ユーザによってどのように用いられたかとは関係のない単なるキーワードやフレーズといった語句が含まれてもよいものとする。
図1の説明に先立って、図2を用いて、実施形態に係る情報処理システムの構成について説明する。図2は、実施形態に係る情報処理システムの構成例を示す図である。図2に示すように、情報処理システム1には、端末装置10と、検索サーバ20と、生成装置50と、情報処理装置100とが含まれる。端末装置10と、検索サーバ20と、生成装置50と、情報処理装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。なお、図2に示す情報処理システム1には、任意の数の端末装置10と任意の数の検索サーバ20と任意の数の生成装置50と任意の数の情報処理装置100とが含まれてもよい。
端末装置10は、クライアント(企業等)の担当者である利用者によって使用される情報処理装置である。端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。図1に示す例では、端末装置10はノート型PCである。なお、以下では、端末装置10を利用者と同一視する場合がある。すなわち、以下では、利用者を端末装置10と読み替えることもできる。
端末装置10は、クライアント(企業等)の担当者である利用者U11の操作に従って、分類対象を示す複数のクエリと、複数のクエリをクラスタに分類する際のクラスタ数である指定クラスタ数とを情報処理装置100に送信する。また、端末装置10は、複数のクエリを指定クラスタ数のクラスタに分類することにより生成したクラスタに関する指定クラスタ情報を情報処理装置100から受信する。端末装置10は、受信した指定クラスタ情報を端末装置10の画面に表示する。図1に示す例では、端末装置10は、受信した指定クラスタ情報を表示する部分コンテンツC12を端末装置10の画面に表示する。
検索サーバ20は、検索サービスを提供するサーバ装置である。例えば、検索サーバ20が提供する検索サービスは、あらゆる情報を検索可能な総合検索サービスである。検索サーバ20は、利用者によって入力された検索クエリに関する情報を記憶する。具体的には、検索サーバ20は、利用者の検索履歴に関する情報を記憶する。また、検索サーバ20は、生成装置50の要求に応じて、利用者によって入力された検索クエリに関する情報を生成装置50に送信する。
生成装置50は、第1モデルM1を生成するサーバ装置である。生成装置50は、後述する処理を実行することにより、第1モデルM1を生成する。第1モデルM1は、文字情報を入力すると、文字情報(例えば、検索クエリ)の分散表現を出力するモデルである。なお、分散表現は、ベクトルでもよい。ここで、第1モデルM1から出力される文字情報の分散表現には、その文字情報が検索クエリとして入力された際の利用者の検索意図を示す特徴情報が含まれている。また、第1モデルM1から出力される所定の文字情報の分散表現と他の文字情報の分散表現が類似することは、所定の文字情報が検索クエリとして入力された際の利用者の検索意図と他の文字情報が検索クエリとして入力された際の利用者の検索意図とが類似することを意味する。なお、生成装置50による第1モデルの生成処理の詳細については後述する。
情報処理装置100は、企業等であるクライアントに対して、クライアントが市場分析を所望する分析対象を示すキーワード(文字情報)に関する一般利用者の検索動向を分析するクエリの分析サービスを提供するサーバ装置である。図1に示す例では、情報処理装置100は、分類対象を示す複数のクエリと、複数のクエリをクラスタに分類する際のクラスタ数である指定クラスタ数とを受け付ける。また、情報処理装置100は、複数のクエリを指定クラスタ数のクラスタに分類することにより生成したクラスタに関する指定クラスタ情報を生成する。そして、情報処理装置100は、生成した指定クラスタ情報を出力する。
一般的に、クエリの分析サービスでは、企業等であるクライアントから、クライアントが市場分析を所望する分析対象を示すキーワード(文字情報)を受け付ける。そして、クエリの分析サービスは、膨大なクエリのデータベースの中から、指定されたキーワードと類似するクエリに関する情報を抽出し、抽出したクエリに関する情報をクライアントに対して提供する。例えば、クエリの分析サービスは、指定されたキーワードとクエリとの類似性を数値によって把握するため、クエリに対応する文字列やクライアントによって指定されたキーワードを分散表現に変換する。そして、クエリの分析サービスは、指定されたキーワードを変換した分散表現とクエリに対応する文字列を変換した分散表現との類似度を算出することで、指定されたキーワードと類似するクエリに関する情報を抽出する。
ここで、クエリの分析サービスが保有するデータベースには、膨大な数のクエリが存在するため、クエリに対応する文字列を変換した分散表現の数も膨大な数になる。また、一般的に、文字列を変換した分散表現は、高次元のベクトル(例えば、何百次元や何千次元のベクトル)であることが一般的である。すなわち、クエリの分析サービスを提供する装置が指定されたキーワードと類似するクエリの分析結果に関する情報を単に抽出して提供するだけでは、分析結果に関する情報の提供を受けたクライアントが有用な情報を得ることは難しい。例えば、クライアントに対して提供される情報が、多数の高次元の分散表現を分散表現空間にマッピングした状態で提供された場合や、分散表現間の類似度を示す膨大な数のデータを羅列した状態で提供された場合には、情報量が多く、クライアントが分析結果を一見して把握することは難しい。そのため、提供された情報からクライアントが有用な情報を得ることは難しい。
そこで、本願発明に係る情報処理装置100は、分類対象を示す複数の対象情報と、複数の対象情報をクラスタに分類する際のクラスタ数である指定クラスタ数とを受け付ける。また、情報処理装置100は、複数の対象情報を指定クラスタ数のクラスタに分類することにより生成したクラスタに関する指定クラスタ情報を生成する。そして、情報処理装置100は、生成した指定クラスタ情報を出力する。本願発明に係る情報処理装置100は、例えば、分類対象を示す100個の対象情報と、指定クラスタ数「5」とを受け付けたとする。この場合、本願発明に係る情報処理装置100は、分類対象を示す100個の対象情報を、類似する特徴を持つ対象情報の5つのクラスタに分けることができる。すなわち、本願発明に係る情報処理装置100は、100個の対象情報から、100個の対象情報の特徴の要約とも言える5つのクラスタ情報を抽出可能とする。そして、本願発明に係る情報処理装置100は、100個の対象情報の特徴を5つのクラスタ情報に要約して提供可能とする。このように、本願発明に係る情報処理装置100は、分類対象を示す多数の対象情報の特徴を少ない情報量の要約にまとめて提供可能とする。したがって、本願発明に係る情報処理装置100は、有用な情報を得ることができる。
ここから、図1を用いて、情報処理の流れについて説明する。図1では、情報処理装置100は、端末装置10の要求に応じて、コンテンツC1の部分コンテンツC11を端末装置10に送信する。具体的には、情報処理装置100は、クラスタ数を入力可能な入力フィールドF11と、複数のクエリを入力可能な入力フィールドF12と、入力フィールドに入力された情報を情報処理装置100に送信する送信ボタンB11とを含む部分コンテンツC11を端末装置10に送信する。
端末装置10は、コンテンツC1の部分コンテンツC11を情報処理装置100から受信する。端末装置10は、部分コンテンツC11を受信すると、受信した部分コンテンツC11を端末装置10の画面に表示する。
端末装置10の利用者U11は、端末装置10の画面に表示された部分コンテンツC11に含まれる入力フィールドF11にクラスタ数を入力する操作を行う。図1に示す例では、利用者U11は、クラスタ数「3」(クラスタ数CN)を入力フィールドF11に入力する操作を行う。
また、端末装置10の利用者U11は、端末装置10の画面に表示された部分コンテンツC11に含まれる入力フィールドF12に複数のクエリを入力する操作を行う。図1に示す例では、利用者U11は、12個のクエリQ1-1~Q1-12を入力フィールドF12に入力する操作を行う。具体的には、利用者U11は、区切り文字で区切られた各文字列をそれぞれ一つのクエリとして入力フィールドF12に入力する操作を行う。例えば、自動車メーカー#1の担当者である利用者U11は、自社(自動車メーカー#1)の商品である6種類の自動車の名称を示す6つのクエリ「車種T11」(クエリQ1-1)、クエリ「車種T12」(クエリQ1-2)、クエリ「車種T13」(クエリQ1-3)、クエリ「車種T14」(クエリQ1-4)、クエリ「車種T15」(クエリQ1-5)、クエリ「車種T16」(クエリQ1-6)を入力フィールドF12に入力する操作を行う。また、利用者U11は、競合他社である自動車メーカー#2の商品である6種類の自動車の名称を示す6つのクエリ「車種T21」(クエリQ1-7)、クエリ「車種T22」(クエリQ1-8)、クエリ「車種T23」(クエリQ1-9)、クエリ「車種T24」(クエリQ1-10)、クエリ「車種T25」(クエリQ1-11)、クエリ「車種T26」(クエリQ1-12)を入力フィールドF12に入力する操作を行う。
続いて、端末装置10の利用者U11は、端末装置10の画面に表示された部分コンテンツC11に含まれる送信ボタンB11を選択する操作を行う。端末装置10は、利用者U11の操作に従って送信ボタンB11が選択されると、入力フィールドF11に入力されたクラスタ数「3」と、入力フィールドF12に入力された12個のクエリQ1-1~Q1-12を情報処理装置100に送信する。
情報処理装置100は、クラスタ数「3」と12個のクエリQ1-1~Q1-12を利用者U11から受け付ける。具体的には、情報処理装置100は、クラスタ数「3」と12個のクエリQ1-1~Q1-12を端末装置10から受信する。
情報処理装置100は、クラスタ数「3」と12個のクエリQ1-1~Q1-12を受け付けると、第1モデルM1を用いて生成されたクエリQ1-1~Q1-12の分散表現QV1-1~QV1-12(図5参照)を取得する。続いて、情報処理装置100は、分散表現QV1-1~QV1-12を取得すると、取得した分散表現QV1-1~QV1-12をk-means法を用いてクラスタ数「3」のクラスタに分類する。なお、情報処理装置100は、取得した分散表現QV1-1~QV1-12をクラスタ数「3」のクラスタに分類可能であれば、k-means法に限らず、どのようなクラスタリング手法を用いてもよい。
また、情報処理装置100は、クエリQ1-1~Q1-12に対応する分散表現QV1-1~QV1-12をクラスタ数「3」のクラスタに分類することによって、各分散表現に対応する各クエリをクラスタ数「3」のクラスタに分類する。このように、情報処理装置100は、各分散表現に対応する各クエリをクラスタ数「3」のクラスタに分類することにより、各クエリが分類されるクラスタに関するクラスタ情報を生成する。
例えば、情報処理装置100は、分散表現QV1-1と分散表現QV1-2と分散表現QV1-3と分散表現QV1-7と分散表現QV1-8を一つのクラスタ(クラスタCL1)に分類する。情報処理装置100は、分散表現QV1-1をクラスタCL1に分類したので、分散表現QV1-1に対応するクエリQ1-1をクラスタCL1に分類する。また、情報処理装置100は、分散表現QV1-2をクラスタCL1に分類したので、分散表現QV1-2に対応するクエリQ1-2をクラスタCL1に分類する。同様に、情報処理装置100は、分散表現QV1-3と分散表現QV1-7と分散表現QV1-8をクラスタCL1に分類したので、分散表現QV1-3に対応するクエリQ1-3と分散表現QV1-7に対応するクエリQ1-7と分散表現QV1-8に対応するクエリQ1-8をクラスタCL1に分類する。このようにして、情報処理装置100は、クエリQ1-1とクエリQ1-2とクエリQ1-3とクエリQ1-7とクエリQ1-8が分類されるクラスタCL1に関するクラスタ情報を生成する。
ここで、第1モデルM1を用いて生成された文字情報の分散表現には、その文字情報が検索クエリとして入力された際の利用者の検索意図を示す特徴情報が含まれている。例えば、クエリQ1-1の分散表現QV1-1には、クエリQ1-1に対応する文字情報「車種T11」が検索クエリとして入力された際の利用者の検索意図を示す特徴情報が含まれている。また、クエリQ1-2の分散表現QV1-2には、クエリQ1-2に対応する文字情報「車種T12」が検索クエリとして入力された際の利用者の検索意図を示す特徴情報が含まれている。
また、第1モデルM1から出力される所定の文字情報の分散表現と他の文字情報の分散表現が類似することは、所定の文字情報が検索クエリとして入力された際の利用者の検索意図と他の文字情報が検索クエリとして入力された際の利用者の検索意図とが類似することを意味する。例えば、文字情報「車種T11」の分散表現QV1-1と文字情報「車種T12」の分散表現QV1-2とが類似することは、文字情報「車種T11」が検索クエリとして入力された際の利用者の検索意図と文字情報「車種T12」が検索クエリとして入力された際の利用者の検索意図とが類似することを意味する。
また、一般的に、k-means法等のクラスタリング法を用いて同一のクラスタに分類されるデータ同士は、類似する特徴を有する。例えば、k-means法を用いて同一のクラスタに分類されるベクトル同士は、類似する特徴を有する。したがって、本願発明において、例えば、k-means法を用いて分散表現QV1-1と分散表現QV1-2とが一つのクラスタ(クラスタCL1)に分類されることは、分散表現QV1-1に対応する文字情報「車種T11」が検索クエリとして入力された際の利用者の検索意図と、分散表現QV1-2に対応する文字情報「車種T12」が検索クエリとして入力された際の利用者の検索意図とが類似することを意味する。このように、本願発明において、同一のクラスタに分類される分散表現に対応する文字情報(例えば、クエリ)同士は、検索クエリとして入力された際の利用者の検索意図が類似する。例えば、同一のクラスタCL1に分類されたクエリQ1-1とクエリQ1-2とクエリQ1-3とクエリQ1-7とクエリQ1-8は、検索クエリとして入力された際の利用者の検索意図が互いに類似する。すなわち、情報処理装置100、複数のクエリを、各クエリが検索クエリとして入力された際の利用者の検索意図に応じた指定クラスタ数のクラスタに分類することができる。
なお、同じ複数のクエリであっても、検索意図に応じたクラスタリングと、通常のクラスタリングとでは、分類されるクラスタが異なる場合がある。例えば、「車種T11」と「車種T14」がスポーツカーであり、「車種T12」と「車種T15」がファミリーワゴン車であり、「車種T13」と「車種T16」が軽自動車であるとする。この場合、通常のクラスタリングであれば、スポーツカーである「車種T11」と「車種T14」、ファミリーワゴン車である「車種T12」と「車種T15」、軽自動車である「車種T13」と「車種T16」は、それぞれ車種が同一であるので、同一のクラスタに分類されることがある。しかしながら、本願発明におけるように、検索意図に応じたクラスタリングでは、必ずしも車種が同一であるから、同一のクラスタに分類されるとは限らず、また、異なる車種であっても同一のクラスタに分類される場合がある。例えば、スポーツカーである「車種T11」とファミリーワゴン車である「車種T12」と軽自動車である「車種T13」とが検索クエリとして入力された際の利用者の検索意図が互いに類似する場合には、異なる車種同士であっても同一のクラスタCL1に分類される。また、スポーツカーである「車種T14」とファミリーワゴン車である「車種T15」と軽自動車である「車種T16」とが検索クエリとして入力された際の利用者の検索意図が互いに類似する場合には、異なる車種同士であっても同一のクラスタCL2に分類される。このように、情報処理装置100は、検索意図に応じたクラスタリングを可能とするため、検索意図に応じたクラスタリングに基づく新たな知見を得ることができる。
また、情報処理装置100は、分散表現QV1-4と分散表現QV1-5と分散表現QV1-6と分散表現QV1-9と分散表現QV1-10をクラスタCL1とは異なる一つのクラスタ(クラスタCL2)に分類する。情報処理装置100は、分散表現QV1-4をクラスタCL2に分類したので、分散表現QV1-4に対応するクエリQ1-4をクラスタCL2に分類する。また、情報処理装置100は、分散表現QV1-5をクラスタCL2に分類したので、分散表現QV1-5に対応するクエリQ1-5をクラスタCL2に分類する。同様に、情報処理装置100は、分散表現QV1-6と分散表現QV1-9と分散表現QV1-10をクラスタCL2に分類したので、分散表現QV1-6に対応するクエリQ1-6と分散表現QV1-9に対応するクエリQ1-9と分散表現QV1-10に対応するクエリQ1-10をクラスタCL2に分類する。このようにして、情報処理装置100は、クエリQ1-4とクエリQ1-5とクエリQ1-6とクエリQ1-9とクエリQ1-10が分類されるクラスタCL2に関するクラスタ情報を生成する。また、同一のクラスタCL2に分類されたクエリQ1-4とクエリQ1-5とクエリQ1-6とクエリQ1-9とクエリQ1-10は、検索クエリとして入力された際の利用者の検索意図が互いに類似する。
また、情報処理装置100は、分散表現QV1-11と分散表現QV1-12をクラスタCL1およびクラスタCL2とは異なる一つのクラスタ(クラスタCL3)に分類する。情報処理装置100は、分散表現QV1-11をクラスタCL3に分類したので、分散表現QV1-11に対応するクエリQ1-11をクラスタCL3に分類する。また、情報処理装置100は、分散表現QV1-12をクラスタCL3に分類したので、分散表現QV1-12に対応するクエリQ1-12をクラスタCL3に分類する。このようにして、情報処理装置100は、クエリQ1-11とクエリQ1-12が分類されるクラスタCL3に関するクラスタ情報を生成する。また、同一のクラスタCL3に分類されたクエリQ1-11とクエリQ1-12は、検索クエリとして入力された際の利用者の検索意図が互いに類似する。
ここで、情報処理装置100によるクラスタリング結果の解釈についての一例を説明する。例えば、クラスタCL1には、自動車メーカー#1の商品名を示すクエリ(「車種T11」、「車種T12」、「車種T13」)と、自動車メーカー#2の商品名を示すクエリ(「車種T21」、「車種T22」)の両方が含まれている。また、クラスタCL2にも、自動車メーカー#1の商品名を示すクエリ(「車種T14」、「車種T15」、「車種T16」)と、自動車メーカー#2の商品名を示すクエリ(「車種T23」、「車種T24」)の両方が含まれている。一方、クラスタCL3には、自動車メーカー#1の商品名を示すクエリは含まれておらず、自動車メーカー#2の商品名を示すクエリ(「車種T25」、「車種T26」)のみが含まれている。これらの結果から、自動車メーカー#1の商品には、クラスタCL3に対応する検索意図で検索された商品に該当する商品が存在しないことがわかる。これにより、例えば、自動車メーカー#1は、クラスタCL3に対応する検索意図で検索される商品に関して、自動車メーカー#2と比べて市場における弱みがあるという分析結果を得ることができる。また、分析結果を得た自動車メーカー#1は、分析結果を、クラスタCL3に対応する検索意図で検索される商品開発を進める等のマーケティング方針に役立てることができる。このように、情報処理装置100は、クライアントに対して、利用者の検索意図を反映した市場分析に関する情報を提供可能とする。例えば、情報処理装置100は、利用者の検索意図を反映した市場における自社(他社)の弱みや強みに関する知見を提供可能とする。
続いて、情報処理装置100は、3つのクラスタCL1~CL3に関するクラスタ情報を生成すると、生成した3つのクラスタCL1~CL3に関するクラスタ情報を端末装置10に送信する。端末装置10は、3つのクラスタCL1~CL3に関するクラスタ情報を取得すると、コンテンツC1の部分コンテンツC12に含まれる表示領域F21~F23のそれぞれにクラスタCL1~CL3に関するクラスタ情報が表示されるように画面の表示を制御する。
例えば、情報処理装置100は、クラスタCL1に関するクラスタ情報が表示される表示領域F21の上方にクラスタCL1の名称「クラスタ1」が表示されるように画面の表示を制御する。また、情報処理装置100は、クラスタCL2に関するクラスタ情報が表示される表示領域F22の上方にクラスタCL2の名称「クラスタ2」が表示されるように画面の表示を制御する。また、情報処理装置100は、クラスタCL3に関するクラスタ情報が表示される表示領域F23の上方にクラスタCL3の名称「クラスタ3」が表示されるように画面の表示を制御する。
上述したように、情報処理装置100は、分類対象を示す複数の対象情報と、複数の対象情報をクラスタに分類する際のクラスタ数である指定クラスタ数とを受け付ける。また、情報処理装置100は、複数の対象情報を指定クラスタ数のクラスタに分類することにより生成したクラスタに関する指定クラスタ情報を生成する。そして、情報処理装置100は、生成した指定クラスタ情報を出力する。これにより、情報処理装置100は、分類対象を示す多数の対象情報から、多数の対象情報の特徴の要約とも言える指定クラスタ数のクラスタ情報を抽出可能とする。そして、情報処理装置100は、多数の対象情報の特徴を指定クラスタ数のクラスタ情報に要約して提供可能とする。このように、情報処理装置100は、分類対象を示す多数の対象情報の特徴を少ない情報量の要約にまとめて提供可能とする。したがって、情報処理装置100は、有用な情報を得ることができる。
〔2.情報処理装置の構成〕
次に、図3を用いて、実施形態に係る情報処理装置100の構成について説明する。図3は、実施形態に係る情報処理装置100の構成例を示す図である。図3に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、情報処理装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示させるための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークと有線または無線で接続され、例えば、端末装置10と検索サーバ20と生成装置50との間で情報の送受信を行う。
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部120は、図3に示すように、クエリ情報記憶部121とベクトル情報記憶部122とクラスタ情報記憶部123とモデル情報記憶部124を有する。
(クエリ情報記憶部121)
クエリ情報記憶部121は、ユーザから受け付けたクエリに関する各種の情報を記憶する。図4に、実施形態に係るクエリ情報記憶部の一例を示す。図4に示す例では、クエリ情報記憶部121は、「ユーザID」、「日時」、「指定クラスタ数」、「クエリ」、「クエリID」といった項目を有する。
「ユーザID」は、ユーザを識別するための識別情報を示す。「日時」は、ユーザからクエリを受け付けた日時を示す。「指定クラスタ数」は、ユーザから受け付けた複数のクエリをクラスタに分類する際のクラスタ数としてユーザから指定されたクラスタ数を示す。「クエリ」は、ユーザから受け付けたクエリを示す。具体的には、「クエリID」は、ユーザから受け付けたクエリを識別するための識別情報を示す。
図4の1レコード目に示す例では、クエリID「Q1-1」で識別されるクエリ(クエリQ1-1)は、図1に示すクエリ「車種T11」に対応する。また、指定クラスタ数「3」は、ユーザから受け付けた12個のクエリQ1-1~Q1-12をクラスタに分類する際のクラスタ数としてユーザから指定されたクラスタ数が「3」であることを示す。
(ベクトル情報記憶部122)
ベクトル情報記憶部122は、クエリの分散表現であるベクトルに関する各種の情報を記憶する。図5に、実施形態に係るベクトル情報記憶部の一例を示す。図5に示す例では、ベクトル情報記憶部122は、「ベクトルID」、「クエリID」、「ベクトル情報」といった項目を有する。
「ベクトルID」は、クエリの分散表現であるベクトルを識別するための識別情報を示す。「クエリID」は、ベクトルに対応するクエリを識別するための識別情報を示す。「ベクトル情報」は、クエリの分散表現であるN次元(例えば、128次元)のベクトルを示す。
図5の1レコード目に示す例では、ベクトルID「QV1-1」で識別されるベクトル(ベクトルQV1-1)は、図1に示したクエリQ1-1分散表現であるベクトルQV1-1に対応する。また、クエリID「Q1-1」で識別されるクエリ(クエリQ1-1)は、ベクトルQV1-1に対応するクエリがクエリQ1-1であることを示す。また、ベクトル情報「QVDT1-1」は、クエリQ1-1の分散表現であるN次元のベクトルを示す。
(クラスタ情報記憶部123)
クラスタ情報記憶部123は、クラスタに関する各種の情報を記憶する。図6に、実施形態に係るクラスタ情報記憶部の一例を示す。図6に示す例では、クラスタ情報記憶部123は、ユーザから受け付けた複数のクエリをユーザから受け付けた指定クラスタ数に分類することにより生成されるクラスタ情報毎にデータが格納される複数のデータテーブルから成る。また、各データテーブルは、「クラスタID」、「クラスタ名」、「クエリID」といった項目を有する。
「クラスタID」は、クラスタを識別するための識別情報を示す。「クラスタ名」は、クラスタの名称を示す。「クエリID」は、クエリを識別するための識別情報を示す。
図6の1レコード目に示す例では、クラスタID「CL1」で識別されるクラスタ(クラスタCL1)は、図1に示すクラスタCL1に対応する。また、クラスタ名「クラスタ1」は、クラスタCL1の名称がクラスタ1であることを示す。また、クラスタCL1には、クエリID「Q1-1」で識別されるクエリ(クエリQ1-1)とクエリID「Q1-2」で識別されるクエリ(クエリQ1-2)とクエリID「Q1-3」で識別されるクエリ(クエリQ1-3)とクエリID「Q1-7」で識別されるクエリ(クエリQ1-7)とクエリID「Q1-8」で識別されるクエリ(クエリQ1-8)が分類されることを示す。
(モデル情報記憶部124)
モデル情報記憶部124は、生成装置50によって生成された学習モデルに関する各種の情報を記憶する。図7に、実施形態に係るモデル情報記憶部の一例を示す。図7に示す例では、モデル情報記憶部124は、「モデルID」、「モデルデータ」といった項目を有する。
「モデルID」は、生成装置50によって生成された学習モデルを識別するための識別情報を示す。「モデルデータ」は、生成装置50によって生成された学習モデルのモデルデータを示す。例えば、「モデルデータ」には、クエリを分散表現に変換するためのデータが格納される。
図7の1レコード目に示す例では、モデルID「M1」で識別される学習モデルは、図1に示した第1モデルM1に対応する。また、モデルデータ「MDT1」は、生成装置50によって生成された第1モデルM1のモデルデータ(モデルデータMDT1)を示す。
モデルデータMDT1は、クエリが入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力されたクエリに応じて、入力層に入力されたクエリの分散表現を出力層から出力するよう、生成装置50を機能させてもよい。
ここで、モデルデータMDT1が「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデルデータMDT1が含む第1要素は、x1やx2等といった入力データ(xi)に対応する。また、第1要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第1要素は、入力層が有するいずれかのノードに対応し、第2要素は、出力層が有するノードと見做すことができる。
また、モデルデータMDT1がDNN(Deep Neural Network)等、1つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、モデルデータMDT1が含む第1要素は、入力層または中間層が有するいずれかのノードに対応する。また、第2要素は、第1要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第1要素の重みは、第1要素と対応するノードから第2要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
生成装置50は、上述した回帰モデルやニューラルネットワーク等、任意の構造を有するモデルを用いて、分散表現の算出を行う。具体的には、モデルデータMDT1は、クエリが入力された場合に、分散表現を出力するように係数が設定される。生成装置50は、このようなモデルデータMDT1を用いて、分散表現を算出する。
なお、上記例では、モデルデータMDT1が、クエリが入力された場合に、クエリの分散表現を出力するモデル(以下、モデルX1という。)である例を示した。しかし、実施形態に係るモデルデータMDT1は、モデルX1にデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデルデータMDT1は、クエリを入力とした際に、モデルX1が出力した分散表現を入力して学習されたモデル(以下、モデルY1という。)であってもよい。または、モデルデータMDT1は、クエリを入力とし、モデルY1の出力値を出力とするよう学習されたモデルであってもよい。
また、生成装置50がGAN(Generative Adversarial Networks)を用いた推定処理を行う場合、モデルデータMDT1は、GANの一部を構成するモデルであってもよい。
(制御部130)
図3の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図3に示すように、制御部130は、受付部131と、取得部132と、生成部133と、出力部134とを有し、以下に説明する情報処理の作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
(受付部131)
受付部131は、端末装置10からコンテンツC1の配信要求を受け付ける。受付部131は、端末装置10からコンテンツC1の部分コンテンツC11の配信要求を受け付ける。具体的には、受付部131は、クラスタ数を入力可能な入力フィールドF11と、複数のクエリを入力可能な入力フィールドF12と、入力フィールドに入力された情報を情報処理装置100に送信する送信ボタンB11とを含む部分コンテンツC11の配信要求を受け付ける。
続いて、受付部131は、コンテンツC1の配信要求を受け付けると、端末装置10にコンテンツC1を配信する。受付部131は、コンテンツC1の部分コンテンツC11の配信要求を受け付けると、端末装置10にコンテンツC1の部分コンテンツC11を配信する。具体的には、受付部131は、クラスタ数を入力可能な入力フィールドF11と、複数のクエリを入力可能な入力フィールドF12と、入力フィールドに入力された情報を情報処理装置100に送信する送信ボタンB11とを含む部分コンテンツC11を端末装置10に配信する。
また、受付部131は、分類対象を示す複数の対象情報と、複数の対象情報をクラスタに分類する際のクラスタ数である指定クラスタ数とを受け付ける。具体的には、受付部131は、分類対象を示す複数のクエリと、複数のクエリをクラスタに分類する際のクラスタ数である指定クラスタ数とを端末装置10から受信する。続いて、受付部131は、複数のクエリと指定クラスタ数とを受信すると、受信した複数のクエリと指定クラスタ数とを対応付けてクエリ情報記憶部121に格納する。
(取得部132)
取得部132は、各種情報を取得する。取得部132は、外部の情報処理装置から各種情報を取得する。取得部132は、生成装置50等の他の情報処理装置から各種情報を取得する。
また、取得部132は、記憶部120から各種情報を取得する。取得部132は、クエリ情報記憶部121やベクトル情報記憶部122やクラスタ情報記憶部123やモデル情報記憶部124から各種情報を取得する。
具体的には、取得部132は、モデルを取得する。より具体的には、取得部132は、受付部131によって分類対象を示す複数のクエリと、複数のクエリをクラスタに分類する際のクラスタ数である指定クラスタ数とが受け付けられると、生成装置50から第1モデルM1を取得する。取得部132は、生成装置50から第1モデルM1のモデルデータMDT1を取得する。続いて、取得部132は、第1モデルM1(モデルデータMDT1)を取得すると、取得した第1モデルM1(モデルデータMDT1)をモデル情報記憶部124に格納する。
(生成部133)
生成部133は、種々の情報を生成する。生成部133は、クエリの分散表現を生成する。具体的には、生成部133は、受付部131によって受け付けられた複数のクエリの分散表現を生成する。
また、生成部133は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデルを用いて、複数の対象情報に含まれるそれぞれの対象情報である文字情報に対応する分散表現を生成する。具体的には、生成部133は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した第1モデルM1を用いて、受付部131によって受け付けられた複数のクエリの分散表現を生成する。
また、生成部133は、入力情報として所定の検索クエリが入力された際に、出力情報として所定の検索クエリの分散表現を出力する学習モデルを用いて、分散表現を生成する。具体的には、生成部133は、入力情報として所定の検索クエリが入力された際に、出力情報として所定の検索クエリの分散表現を出力する第1モデルM1を用いて、受付部131によって受け付けられた複数のクエリの分散表現を生成する。
また、生成部133は、所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、分散表現を生成する。具体的には、生成部133は、所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、複数の検索クエリが有する特徴を学習した第1モデルM1を用いて、受付部131によって受け付けられた複数のクエリの分散表現を生成する。
また、生成部133は、同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、分散表現を生成する。具体的には、生成部133は、同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、複数の検索クエリが有する特徴を学習した第1モデルM1を用いて、受付部131によって受け付けられた複数のクエリの分散表現を生成する。
また、生成部133は、ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、分散表現を生成する。具体的には、生成部133は、ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、複数の検索クエリが有する特徴を学習した第1モデルM1を用いて、受付部131によって受け付けられた複数のクエリの分散表現を生成する。
また、生成部133は、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、分散表現を生成する。具体的には、生成部133は、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、複数の検索クエリが有する特徴を学習した第1モデルM1を用いて、受付部131によって受け付けられた複数のクエリの分散表現を生成する。
より具体的には、生成部133は、受付部131によって分類対象を示す複数のクエリと、複数のクエリをクラスタに分類する際のクラスタ数である指定クラスタ数とが受け付けられると、モデル情報記憶部124を参照して、第1モデルM1を取得する。また、生成部133は、受付部131によって分類対象を示す複数のクエリと、複数のクエリをクラスタに分類する際のクラスタ数である指定クラスタ数とが受け付けられると、クエリ情報記憶部121を参照して、受付部131によって受け付けられた複数のクエリを取得する。図1に示す例では、生成部133は、受付部131によって受け付けられたクエリQ1-1~Q1-12を取得する。
続いて、生成部133は、複数のクエリを取得すると、複数のクエリの中から一のクエリを取得する。図1に示す例では、生成部133は、クエリQ1-1~Q1-12を取得すると、クエリQ1-1~Q1-12の中から一のクエリQ1-1を取得する。続いて、生成部133は、第1モデルM1の入力情報として、取得した一のクエリを第1モデルM1に入力する。図1に示す例では、生成部133は、第1モデルM1の入力情報として、取得した一のクエリQ1-1を第1モデルM1に入力する。また、生成部133は、第1モデルM1の出力情報として、第1モデルM1に入力されたクエリの分散表現を第1モデルM1から出力する。図1に示す例では、生成部133は、第1モデルM1の出力情報として、第1モデルM1に入力されたクエリQ1-1の分散表現QV1-1を第1モデルM1から出力する。このようにして、生成部133は、クエリの分散表現を生成する。同様に、生成部133は、取得したクエリの全てについて、各クエリの分散表現を生成する。図1に示す例では、生成部133は、取得したクエリQ1-1~Q1-12について、各クエリQ1-1~Q1-12の分散表現QV1-1~QV1-12を生成する。続いて、生成部133は、各クエリの分散表現を生成すると、生成した各クエリの分散表現を各クエリと対応付けてベクトル情報記憶部122に格納する。
また、生成部133は、クラスタを生成する。具体的には、生成部133は、複数の対象情報を指定クラスタ数のクラスタに分類することにより生成したクラスタを生成する。例えば、生成部133は、受付部131によって受け付けられた複数のクエリを指定クラスタ数のクラスタに分類することにより生成したクラスタを生成する。
また、生成部133は、複数の対象情報に含まれる一の対象情報が検索クエリとして入力された際の検索意図と、複数の対象情報に含まれる他の対象情報が検索クエリとして入力された際の検索意図との類似性に基づいて、複数の対象情報を指定クラスタ数のクラスタに分類する。具体的には、生成部133は、複数の対象情報に含まれる一の対象情報である文字情報に対応する分散表現と、複数の対象情報に含まれる他の対象情報である文字情報に対応する分散表現との類似度に基づいて、複数の対象情報を指定クラスタ数のクラスタに分類する。より具体的には、生成部133は、第1モデルM1を用いて生成された一のクエリの分散表現と、第1モデルM1を用いて生成された他のクエリの分散表現との類似度に基づいて、受付部131によって受け付けられた複数のクエリを指定クラスタ数のクラスタに分類する。
また、生成部133は、クラスタに関するクラスタ情報を生成する。具体的には、生成部133は、複数の対象情報を指定クラスタ数のクラスタに分類することにより、各対象情報が分類されるクラスタに関するクラスタ情報を生成する。例えば、生成部133は、受付部131によって受け付けられた複数のクエリを指定クラスタ数のクラスタに分類することにより、各クエリが分類されるクラスタに関する指定クラスタ情報を生成する。
また、生成部133は、複数の対象情報に含まれる一の対象情報が検索クエリとして入力された際の検索意図と、複数の対象情報に含まれる他の対象情報が検索クエリとして入力された際の検索意図との類似性に基づいて、指定クラスタ情報を生成する。具体的には、生成部133は、複数の対象情報に含まれる一の対象情報である文字情報に対応する分散表現と、複数の対象情報に含まれる他の対象情報である文字情報に対応する分散表現との類似度に基づいて、指定クラスタ情報を生成する。より具体的には、生成部133は、第1モデルM1を用いて生成された一のクエリの分散表現と、第1モデルM1を用いて生成された他のクエリの分散表現との類似度に基づいて、受付部131によって受け付けられた複数のクエリを指定クラスタ数のクラスタに分類することにより生成したクラスタに関する指定クラスタ情報を生成する。
図1に示す例では、生成部133は、受付部131によってクラスタ数「3」と12個のクエリQ1-1~Q1-12が受け付けられると、第1モデルM1を用いて生成されたクエリQ1-1~Q1-12の分散表現QV1-1~QV1-12を取得する。具体的には、生成部133は、クエリ情報記憶部121とベクトル情報記憶部122を参照して、第1モデルM1を用いて生成されたクエリQ1-1~Q1-12の分散表現QV1-1~QV1-12を取得する。
続いて、生成部133は、分散表現QV1-1~QV1-12を取得すると、取得した分散表現QV1-1~QV1-12をk-means法を用いてクラスタ数「3」のクラスタに分類する。なお、生成部133は、取得した分散表現QV1-1~QV1-12をクラスタ数「3」のクラスタに分類可能であれば、k-means法に限らず、どのようなクラスタリング手法を用いてもよい。
また、生成部133は、クエリQ1-1~Q1-12に対応する分散表現QV1-1~QV1-12をクラスタ数「3」のクラスタに分類することによって、各分散表現に対応する各クエリをクラスタ数「3」のクラスタに分類する。このように、生成部133は、各分散表現に対応する各クエリをクラスタ数「3」のクラスタに分類することにより、各クエリが分類されるクラスタに関するクラスタ情報を生成する。
例えば、生成部133は、分散表現QV1-1と分散表現QV1-2と分散表現QV1-3と分散表現QV1-7と分散表現QV1-8を一つのクラスタ(クラスタCL1)に分類する。生成部133は、分散表現QV1-1をクラスタCL1に分類したので、分散表現QV1-1に対応するクエリQ1-1をクラスタCL1に分類する。また、生成部133は、分散表現QV1-2をクラスタCL1に分類したので、分散表現QV1-2に対応するクエリQ1-2をクラスタCL1に分類する。同様に、生成部133は、分散表現QV1-3と分散表現QV1-7と分散表現QV1-8をクラスタCL1に分類したので、分散表現QV1-3に対応するクエリQ1-3と分散表現QV1-7に対応するクエリQ1-7と分散表現QV1-8に対応するクエリQ1-8をクラスタCL1に分類する。このようにして、生成部133は、クエリQ1-1とクエリQ1-2とクエリQ1-3とクエリQ1-7とクエリQ1-8が分類されるクラスタCL1に関するクラスタ情報を生成する。
また、生成部133は、分散表現QV1-4と分散表現QV1-5と分散表現QV1-6と分散表現QV1-9と分散表現QV1-10をクラスタCL1とは異なる一つのクラスタ(クラスタCL2)に分類する。生成部133は、分散表現QV1-4をクラスタCL2に分類したので、分散表現QV1-4に対応するクエリQ1-4をクラスタCL2に分類する。また、生成部133は、分散表現QV1-5をクラスタCL2に分類したので、分散表現QV1-5に対応するクエリQ1-5をクラスタCL2に分類する。同様に、生成部133は、分散表現QV1-6と分散表現QV1-9と分散表現QV1-10をクラスタCL2に分類したので、分散表現QV1-6に対応するクエリQ1-6と分散表現QV1-9に対応するクエリQ1-9と分散表現QV1-10に対応するクエリQ1-10をクラスタCL2に分類する。このようにして、生成部133は、クエリQ1-4とクエリQ1-5とクエリQ1-6とクエリQ1-9とクエリQ1-10が分類されるクラスタCL2に関するクラスタ情報を生成する。
また、生成部133は、分散表現QV1-11と分散表現QV1-12をクラスタCL1およびクラスタCL2とは異なる一つのクラスタ(クラスタCL3)に分類する。生成部133は、分散表現QV1-11をクラスタCL3に分類したので、分散表現QV1-11に対応するクエリQ1-11をクラスタCL3に分類する。また、生成部133は、分散表現QV1-12をクラスタCL3に分類したので、分散表現QV1-12に対応するクエリQ1-12をクラスタCL3に分類する。このようにして、生成部133は、クエリQ1-11とクエリQ1-12が分類されるクラスタCL3に関するクラスタ情報を生成する。
また、生成部133は、指定クラスタ情報として、クラスタごとに、クラスタに分類される対象情報を視認可能な情報を生成する。例えば、生成部133は、指定クラスタ情報として、クラスタごとに、クラスタに分類される対象情報を視認可能なコンテンツを生成する。
図1に示す例では、生成部133は、クラスタCL1に関するクラスタ情報が表示される表示領域F21の上方にクラスタCL1の名称「クラスタ1」が表示される部分コンテンツC12を生成してもよい。また、生成部133は、クラスタCL2に関するクラスタ情報が表示される表示領域F22の上方にクラスタCL2の名称「クラスタ2」が表示されるが表示される部分コンテンツC12を生成してもよい。また、生成部133は、クラスタCL3に関するクラスタ情報が表示される表示領域F23の上方にクラスタCL3の名称「クラスタ3」が表示されるが表示される部分コンテンツC12を生成してもよい。
(出力部134)
出力部134は、生成部133によって生成された指定クラスタ情報を出力する。具体的には、出力部134は、生成部133によって生成された指定クラスタ情報を端末装置10に送信する。
〔3.端末装置の構成〕
次に、図8を用いて、実施形態に係る端末装置10の構成について説明する。図8は、実施形態に係る端末装置10の構成例を示す図である。図8に示すように、端末装置10は、通信部11と、入力部12と、表示部13と、記憶部14と、制御部15とを有する。
(通信部11)
通信部11は、例えば、NIC等によって実現される。そして、通信部11は、ネットワークNと有線または無線で接続され、情報処理装置100との間で情報の送受信を行う。
(入力部12、表示部13)
入力部12は、利用者から各種操作を受け付ける入力装置である。入力部12は、表示部13を介して各種情報が入力される。例えば、入力部12は、キーボードやマウスや操作キー等によって実現される。表示部13は、各種情報を表示するための表示装置であり、すなわち、画面である。例えば、表示部13は、液晶ディスプレイ等によって実現される。表示部13は、記憶部14に記憶された情報を表示する。表示部13は、受信部151によって受信された情報を表示する。表示部13は、表示制御部152による制御に応じて、各種情報を表示する。なお、端末装置10にタッチパネルが採用される場合には、入力部12と表示部13とは一体化される。また、以下の説明では、表示部13を画面と記載する場合がある。
図1の例では、表示部13は、受信部151によって受信されたコンテンツC1を表示する。表示部13は、受信部151によって受信されたコンテンツC1の部分コンテンツC11を表示する。具体的には、表示部13は、複数の第1クエリを入力可能な入力フィールドF11と、複数の第2クエリを入力可能な入力フィールドF12と、入力フィールドに入力されたクエリを情報処理装置100に送信する送信ボタンB11とを含む部分コンテンツC11を表示する。
また、表示部13は、受信部151によって受信されたコンテンツC1の部分コンテンツC12を表示する。表示部13は、受信部151によって受信された棒グラフG21~G23に関する情報を表示する。具体的には、表示部13は、受信部151によって受信されたコンテンツC1の部分コンテンツC12に含まれる表示領域F21~F23のそれぞれに棒グラフG21~G23に関する情報を表示する。
(記憶部14)
記憶部14は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部14は、情報の表示に用いる各種情報を記憶する。記憶部14は、受信部151によって受信された情報を記憶する。図1に示す例では、記憶部14は、受信部151によって受信されたコンテンツC1を記憶する。また、記憶部14は、受信部151によって受信されたコンテンツC1の部分コンテンツC11を記憶する。また、記憶部14は、受信部151によって受信されたコンテンツC1の部分コンテンツC12を記憶する。また、記憶部14は、受信部151によって受信された棒グラフG21~G23に関する情報を記憶する。
(制御部15)
制御部15は、CPUやMPU等によって、端末装置10内部の記憶装置に記憶されている各種プログラム(例えば、コンテンツC1等を画面に表示させる表示制御プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。例えば、この各種プログラムは、ウェブブラウザと呼ばれるアプリケーションプログラムに該当する。また、制御部15は、例えば、ASICやFPGA等の集積回路により実現される。
図8に示すように、制御部15は、受信部151と、表示制御部152と、受付部153と、送信部154とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部15の内部構成は、図8に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
(受信部151)
受信部151は、各種情報を受信する。受信部151は、外部の情報処理装置から各種情報を受信する。受信部151は、情報処理装置100等の他の情報処理装置から各種情報を受信する。図1の例では、受信部151は、情報処理装置100からコンテンツC1を受信する。また、受信部151は、情報処理装置100からコンテンツC1の部分コンテンツC11を受信する。また、受信部151は、情報処理装置100からコンテンツC1の部分コンテンツC12を受信する。また、受信部151は、情報処理装置100からクラスタCL1~CL3に関するクラスタ情報を受信する。
(表示制御部152)
表示制御部152は、各種表示を制御する。表示制御部152は、表示部13の表示を制御する。表示制御部152は、受信部151による受信に応じて、表示部13の表示を制御する。表示制御部152は、受信部151により受信された情報に基づいて、表示部13の表示を制御する。表示制御部152は、受付部153により受け付けられた情報に基づいて、表示部13の表示を制御する。表示制御部152は、受付部153による受付けに応じて、表示部13の表示を制御する。表示制御部152は、表示部13にコンテンツが表示されるように表示部13の表示を制御する。
図1の例では、表示制御部152は、コンテンツC1が表示されるように表示部13の表示を制御する。また、表示制御部152は、コンテンツC1の部分コンテンツC11が表示されるように表示部13の表示を制御する。また、表示制御部152は、コンテンツC1の部分コンテンツC12が表示されるように表示部13の表示を制御する。また、表示制御部152は、コンテンツC1の部分コンテンツC12に含まれる表示領域F21~F23のそれぞれにクラスタCL1~CL3に関するクラスタ情報が表示されるように表示部13の表示を制御する。
(受付部153)
受付部153は、各種情報を受け付ける。例えば、受付部153は、入力部12を介してユーザによる入力を受け付ける。受付部153は、ユーザによる操作を受け付ける。受付部153は、表示部13により表示された情報に対するユーザの操作を受け付ける。受付部153は、ユーザによる文字入力を受け付ける。受付部153は、ユーザによるクラスタ数の入力を受け付ける。受付部153は、コンテンツC1の部分コンテンツC11に含まれる入力フィールドF11への文字入力により、クラスタ数の入力を受け付ける。受付部153は、ユーザにより入力フィールドF11に入力された数字をクラスタ数として受け付ける。
また、受付部153は、ユーザによる複数のクエリの入力を受け付ける。受付部153は、コンテンツC1の部分コンテンツC11に含まれる入力フィールドF12への文字入力により、クエリの入力を受け付ける。受付部153は、ユーザにより入力フィールドF12に入力された文字列をクエリとして受け付ける。また、受付部153は、区切り文字で区切られた各文字列を各クエリとして受け付ける。
また、受付部153は、ユーザによる送信ボタンB11の選択操作を受け付ける。受付部153は、入力部12によって受け付けられた送信ボタンB11の選択操作を受け付ける。
図1の例では、受付部153は、クラスタ数である数字「3」の入力を受け付ける。受付部153は、コンテンツC1の部分コンテンツC11に含まれる入力フィールドF11への文字入力により、クラスタ数「3」の入力を受け付ける。
また、受付部153は、区切り文字で区切られた12個の文字列である12個のクエリQ1-1~Q1-12の入力を受け付ける。受付部153は、コンテンツC1の部分コンテンツC11に含まれる入力フィールドF12への文字入力により、12個のクエリQ1-1~Q1-12の入力を受け付ける。受付部153は、利用者U11により入力フィールドF12に入力された12個の文字列である12個の文字列「車種T11」~文字列「車種T26」の入力を受け付ける。
また、受付部153は、利用者U11による送信ボタンB11の選択操作を受け付ける。受付部153は、入力部12によって受け付けられた送信ボタンB11の選択操作を受け付ける。受付部153は、表示部13を介して受け付けられた送信ボタンB11の選択操作を受け付ける。
(送信部154)
送信部154は、外部の情報処理装置へ各種情報を送信する。例えば、送信部154は、情報処理装置100等の他の情報処理装置へ各種情報を送信する。送信部154は、記憶部14に記憶された情報を送信する。また、送信部154は、情報処理装置100等の他の情報処理装置からの情報に基づいて、各種情報を送信する。送信部154は、記憶部14に記憶された情報に基づいて、各種情報を送信する。送信部154は、受付部153によって受け付けられた情報を送信する。
送信部154は、受付部153によって受け付けられたクラスタ数と複数のクエリを情報処理装置100に送信する。具体的には、送信部154は、受付部153によって送信ボタンB11の選択操作が受け付けられると、受付部153によって受け付けられたクラスタ数と複数のクエリを情報処理装置100に送信する。
図1の例では、送信部154は、受付部153によって送信ボタンB11の選択操作が受け付けられると、受付部153によって受け付けられたクラスタ数「3」を情報処理装置100に送信する。送信部154は、受付部153によって受け付けられた数字であるクラスタ数「3」を情報処理装置100に送信する。
また、送信部154は、受付部153によって送信ボタンB11の選択操作が受け付けられると、受付部153によって受け付けられた12個のクエリQ1-1~Q1-12を情報処理装置100に送信する。送信部154は、受付部153によって受け付けられた12個の文字列である12個のクエリQ2-1~Q2-3を情報処理装置100に送信する。
〔4.情報処理のフロー〕
次に、図9を用いて、実施形態に係る情報処理の手順について説明する。図9は、実施形態に係る情報処理手順を示すフローチャートである。図9に示す例では、情報処理装置100は、複数のクエリと指定クラスタ数とを端末装置10から受け付けたか否かを判定する(ステップS101)。情報処理装置100は、複数のクエリと指定クラスタ数とを受け付けなかった場合(ステップS101;No)、複数のクエリと指定クラスタ数とを受け付けるまで待機する。
続いて、情報処理装置100は、複数のクエリと指定クラスタ数とを受け付けた場合(ステップS101;Yes)、複数のクエリを指定クラスタ数に分類することにより生成したクラスタに関するクラスタ情報を生成する(ステップS102)。
続いて、情報処理装置100は、クラスタ情報を生成すると、生成したクラスタ情報を端末装置10に出力する(ステップS103)。
〔5.変形例〕
上述した実施形態に係る情報処理システム1は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、情報処理システム1の他の実施形態について説明する。なお、実施形態と同一部分には、同一符号を付して説明を省略する。
〔5-1.指定クラスタ数よりも少ないクラスタ数のクラスタ情報〕
情報処理装置100は、数の対象情報を指定クラスタ数よりも少ない数のクラスタに分類することにより生成したクラスタに関するクラスタ情報を生成する。また、情報処理装置100は、生成したクラスタ情報を指定クラスタ情報と比較可能に出力する。
具体的には、生成部133は、複数の対象情報を指定クラスタ数よりも少ない数のクラスタに分類することにより生成したクラスタに関するクラスタ情報を生成する。続いて、出力部134は、生成部133によって生成されたクラスタ情報を指定クラスタ情報と比較可能に出力する。具体的には、生成部133は、指定クラスタ情報とクラスタ情報とを対比可能に上下に並べて表示する部分コンテンツC12を生成する。例えば、生成部133は、図1に示すような指定クラスタ数「3」の3つのクラスタCL1~クラスタCL3に関する指定クラスタ情報を生成する。また、生成部133は、指定クラスタ数「3」より少ないクラスタ数「2」の2つのクラスタCL1(Q1-1、Q1-2、Q1-3、Q1-7、Q1-8、Q1-11)とクラスタCL2(Q1-4、Q1-5、Q1-6、Q1-9、Q1-10、Q1-12)に関するクラスタ情報を生成する。続いて、生成部133は、指定クラスタ情報とクラスタ情報とを対比可能に上下に並べて表示する部分コンテンツC12を生成する。続いて、出力部134は、生成部によって生成された部分コンテンツC12を出力する。
また、生成部133は、指定クラスタ情報とクラスタ情報との相違点(差分)に相当するクエリの文字色を変えた情報を生成してもよい。例えば、生成部133は、指定クラスタ数「3」の場合にクラスタCL3に分類されていた(Q1-11、Q1-12)の文字色を他のクエリとは異なる色(例えば、赤色)に着色した情報を生成する。続いて、生成部133は、指定クラスタ情報とクラスタ情報とを対比可能に上下に並べて表示する部分コンテンツC12を生成する。続いて、出力部134は、生成部133によって生成された部分コンテンツC12を出力する。
〔6.第1モデルの生成処理〕
次に、図10を用いて、第1モデルの生成処理の流れについて説明する。図10は、実施形態に係る第1モデルの生成処理の一例を示す図である。図10に示す例では、生成装置50は、同一の利用者U1によって所定の時間内に連続して入力された「六本木 パスタ」という検索クエリQ11と「六本木 イタリアン」という検索クエリQ12とから成る一対の検索クエリを抽出する(ステップS11)。
続いて、生成装置50は、抽出した検索クエリQ11を第1モデルM1に入力して、検索クエリQ11の分散表現であるベクトルBQV11を出力する。ここで、ベクトルBQV11は、第1モデルM1の出力層から出力されたばかりの検索クエリQ11の分散表現であって、第1モデルM1にフィードバックをかける前(学習前)の分散表現を示す。また、生成装置50は、抽出した検索クエリQ12を第1モデルM1に入力して、検索クエリQ12の分散表現であるベクトルBQV12を出力する。ここで、ベクトルBQV12は、第1モデルM1の出力層から出力されたばかりの検索クエリQ12の分散表現であって、第1モデルM1にフィードバックをかける前(学習前)の分散表現を示す。このようにして、生成装置50は、検索クエリQ11の分散表現であるベクトルBQV11と、検索クエリQ12の分散表現であるベクトルBQV12とを出力する(ステップS12)。
続いて、生成装置50は、同一の利用者U1によって所定の時間内に連続して入力された検索クエリQ11(「六本木 パスタ」)と検索クエリQ12(「六本木 イタリアン」)とから成る一対の検索クエリは、所定の検索意図(例えば、「ある場所で飲食店を探す」という検索意図)で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリQ11の分散表現(ベクトルQV11)と、検索クエリQ11と対となる検索クエリQ12の分散表現(ベクトルQV12)とが、分散表現空間上で類似するように第1モデルM1を学習させる。例えば、第1モデルM1にフィードバックをかける前(学習前)の検索クエリQ11の分散表現であるベクトルBQV11と検索クエリQ12の分散表現であるベクトルBQV12とのなす角度の大きさをΘとする。また、第1モデルM1にフィードバックをかけた後(学習後)の検索クエリQ11の分散表現であるベクトルQV11と検索クエリQ12の分散表現であるベクトルQV12とのなす角度の大きさをΦとする。この時、生成装置50は、ΘよりもΦが小さくなるように、第1モデルM1を学習させる。例えば、生成装置50は、ベクトルBQV11とベクトルBQV12のコサイン類似度の値を算出する。また、生成装置50は、ベクトルQV11とベクトルQV12のコサイン類似度の値を算出する。続いて、生成装置50は、ベクトルBQV11とベクトルBQV12のコサイン類似度の値よりも、ベクトルQV11とベクトルQV12のコサイン類似度の値が大きくなるように(値が1に近づくように)第1モデルM1を学習させる。このように、生成装置50は、一対の検索クエリに対応する一対の分散表現である2つのベクトルが分散表現空間上で類似するように第1モデルM1を学習させることで、検索クエリから分散表現を出力する第1モデルM1を生成する(ステップS13)。なお、生成装置50は、コサイン類似度に限らず、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて分散表現の間の類似度を算出してもよい。また、生成装置50は、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて第1モデルM1を学習させてもよい。例えば、生成装置50は、分散表現同士のユークリッド距離や双曲空間等の非ユークリッド空間中での距離、マンハッタン距離、マハラノビス距離等といった所定の距離関数の値を算出する。続いて、生成装置50は、分散表現同士の所定の距離関数の値(すなわち、分散表現空間における距離)が小さくなるように第1モデルM1を学習させてもよい。
次に、図11を用いて、第1モデルの生成処理の流れについてより詳しく説明する。なお、図11の説明では、図9の説明と重複する部分は、適宜省略する。図11は、実施形態に係る第1モデルの生成処理を示す図である。図11に示す例では、生成装置50が生成した第1モデルM1によって出力された分散表現が分散表現空間にマッピングされる様子が示されている。生成装置50は、所定の検索クエリの分散表現と所定の検索クエリと対となる他の検索クエリの分散表現とが分散表現空間上で近くにマッピングされるように第1モデルM1のトレーニングを行う。
図11の上段に示す例では、生成装置50は、同一の利用者U1によって所定の時間内に連続して入力された4個の検索クエリである検索クエリQ11(「六本木 パスタ」)、検索クエリQ12(「六本木 イタリアン」)、検索クエリQ13(「赤坂 パスタ」)、検索クエリQ14(「麻布 パスタ」)を抽出する。生成装置50は、同一の利用者U1によって各検索クエリが入力された時間の間隔が所定の時間内である4個の検索クエリを抽出する。生成装置50は、同一の利用者U1によって後述する各検索クエリのペアが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。生成装置50は、検索クエリが入力された順番に並べると、検索クエリQ11、検索クエリQ12、検索クエリQ13、検索クエリQ14の順番で入力された4個の検索クエリを抽出する。生成装置50は、4個の検索クエリを抽出すると、時系列的に隣り合う2つの検索クエリを一対の検索クエリとして、3対の検索クエリのペアである(検索クエリQ11、検索クエリQ12)、(検索クエリQ12、検索クエリQ13)、(検索クエリQ13、検索クエリQ14)を抽出する(ステップS21-1)。なお、生成装置50は、同一の利用者U1によって全ての検索クエリが所定の時間内に入力された複数の検索クエリを抽出してもよい。そして、生成装置50は、時系列的に隣り合うか否かに関わらず、抽出した複数の検索クエリの中から2つの検索クエリを選択して、選択した2つの検索クエリを一対の検索クエリとして抽出してもよい。
続いて、生成装置50は、抽出した検索クエリQ1k(k=1、2、3、4)を第1モデルM1に入力して、検索クエリQ1k(k=1、2、3、4)の分散表現であるベクトルBQV1k(k=1、2、3、4)を出力する。ここで、ベクトルBQV1k(k=1、2、3、4)は、第1モデルM1の出力層から出力されたばかりの検索クエリQ1k(k=1、2、3、4)の分散表現であって、第1モデルM1にフィードバックをかける前(学習前)の分散表現を示す(ステップS22-1)。
続いて、生成装置50は、同一の利用者U1によって所定の時間内に連続して入力された一対の検索クエリは、所定の検索意図(例えば、「ある場所(東京都港区付近)で飲食店を探す」という検索意図)で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリQ11の分散表現(ベクトルQV11)と、検索クエリQ11と対となる検索クエリQ12の分散表現(ベクトルQV12)とが、分散表現空間上で類似するように第1モデルM1を学習させる。また、生成装置50は、検索クエリQ12の分散表現(ベクトルQV12)と、検索クエリQ12と対となる検索クエリQ13の分散表現(ベクトルQV13)とが、分散表現空間上で類似するように第1モデルM1を学習させる。また、生成装置50は、検索クエリQ13の分散表現(ベクトルQV13)と、検索クエリQ13と対となる検索クエリQ14の分散表現(ベクトルQV14)とが、分散表現空間上で類似するように第1モデルM1を学習させる。このように、生成装置50は、一対の検索クエリに対応する一対の分散表現である2つのベクトルが分散表現空間上で類似するように第1モデルM1を学習させることで、検索クエリから分散表現を出力する第1モデルM1を生成する(ステップS23-1)。
図11の上段に示す情報処理の結果として、検索クエリQ1k(k=1、2、3、4)の分散表現であるベクトルQV1k(k=1、2、3、4)が分散表現空間の近い位置にクラスタCL11としてマッピングされる様子が示されている。例えば、検索クエリQ1k(k=1、2、3、4)は、利用者U1によって「ある場所(東京都港区付近)で飲食店を探す」という検索意図の下で検索された検索クエリの集合であると推定される。すなわち、検索クエリQ1k(k=1、2、3、4)は、「ある場所(東京都港区付近)で飲食店を探す」という検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであると推定される。ここで、生成装置50は、「ある場所(東京都港区付近)で飲食店を探す」という検索意図で入力された所定の検索クエリが第1モデルに入力されると、クラスタCL11の位置にマッピングされるような分散表現を出力することができる。これにより、例えば、生成装置50は、クラスタCL11の位置にマッピングされる分散表現に対応する検索クエリを抽出することにより、「ある場所(東京都港区付近)で飲食店を探す」という検索意図に応じた検索クエリを抽出することができる。したがって、生成装置50は、検索クエリの意味を適切に解釈可能とすることができる。
図11の下段に示す例では、生成装置50は、同一の利用者U2によって所定の時間内に連続して入力された3個の検索クエリである検索クエリQ21(「冷蔵庫 400L」)、検索クエリQ22(「冷蔵庫 中型」)、検索クエリQ23(「冷蔵庫 中型 おすすめ」)を抽出する。生成装置50は、検索クエリが入力された順番に並べると、検索クエリQ21、検索クエリQ22、検索クエリQ23の順番で入力された3個の検索クエリを抽出する。生成装置50は、3個の検索クエリを抽出すると、時系列的に隣り合う2つの検索クエリを一対の検索クエリとして、2対の検索クエリのペアである(検索クエリQ21、検索クエリQ22)、(検索クエリQ22、検索クエリQ23)を抽出する(ステップS21-2)。
続いて、生成装置50は、抽出した検索クエリQ2m(m=1、2、3)を第1モデルM1に入力して、検索クエリQ2m(m=1、2、3)の分散表現であるベクトルBQV2m(m=1、2、3)を出力する。ここで、ベクトルBQV2m(m=1、2、3)は、第1モデルM1の出力層から出力されたばかりの検索クエリQ2m(m=1、2、3)の分散表現であって、第1モデルM1にフィードバックをかける前(学習前)の分散表現を示す(ステップS22-2)。
続いて、生成装置50は、同一の利用者U2によって所定の時間内に連続して入力された一対の検索クエリは、所定の検索意図(例えば、「中型の冷蔵庫を調べる」という検索意図)で入力された検索クエリであると推定されるため、相互に類似する特徴を有するものとして、検索クエリQ21の分散表現(ベクトルQV21)と、検索クエリQ21と対となる検索クエリQ22の分散表現(ベクトルQV22)とが、分散表現空間上で類似するように第1モデルM1を学習させる。また、生成装置50は、検索クエリQ22の分散表現(ベクトルQV22)と、検索クエリQ22と対となる検索クエリQ23の分散表現(ベクトルQV23)とが、分散表現空間上で類似するように第1モデルM1を学習させる。このように、生成装置50は、一対の検索クエリに対応する一対の分散表現である2つのベクトルが分散表現空間上で類似するように第1モデルM1を学習させることで、検索クエリから分散表現を出力する第1モデルM1を生成する(ステップS23-2)。
図11の下段に示す情報処理の結果として、検索クエリQ2m(m=1、2、3)の分散表現であるベクトルQV2m(m=1、2、3)が分散表現空間の近い位置にクラスタCL21としてマッピングされる様子が示されている。例えば、検索クエリQ2m(m=1、2、3)は、利用者U2によって「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリの集合であると推定される。すなわち、Q2m(m=1、2、3)は、「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであると推定される。ここで、生成装置50は、「中型の冷蔵庫を調べる」という検索意図で入力された所定の検索クエリが第1モデルに入力されると、クラスタCL21の位置にマッピングされるような分散表現を出力することができる。これにより、例えば、生成装置50は、クラスタCL21の位置にマッピングされる分散表現に対応する検索クエリを抽出することにより、「中型の冷蔵庫を調べる」という検索意図に応じた検索クエリを抽出することができる。したがって、生成装置50は、検索クエリの意味を適切に解釈可能とすることができる。
また、本願発明に係る生成装置50は、ランダムに抽出された複数の検索クエリは、異なる検索意図の下で検索された検索クエリであるという点で、相互に相違する特徴を有する検索クエリであるとみなして第1モデルM1を学習させる。具体的には、生成装置50は、所定の検索クエリの分散表現と、所定の検索クエリとは無関係にランダムに抽出された検索クエリの分散表現とが分散表現空間上で遠くにマッピングされるように第1モデルM1のトレーニングを行う。図11に示す例では、生成装置50は、検索クエリQ11とは無関係にランダムに検索クエリを抽出したところ、検索クエリQ21が抽出されたとする。この場合、生成装置50は、検索クエリQ11の分散表現(ベクトルQV11)と、検索クエリQ11とは無関係にランダムに抽出された検索クエリQ21の分散表現(ベクトルQV21)とが分散表現空間上で遠くにマッピングされるように第1モデルM1のトレーニングを行う。その結果として、「ある場所(東京都港区付近)で飲食店を探す」という検索意図の下で検索された検索クエリQ1k(k=1、2、3、4)の分散表現であるベクトルQV1k(k=1、2、3、4)を含むクラスタCL11と、「中型の冷蔵庫を調べる」という検索意図の下で検索された検索クエリQ2m(m=1、2、3)の分散表現であるベクトルQV2m(m=1、2、3)を含むクラスタCL21とは、分散表現空間上で遠くにマッピングされる。すなわち、本願発明に係る生成装置50は、ランダムに抽出された複数の検索クエリの分散表現が相違するように第1モデルM1を学習させることにより、検索意図が異なる検索クエリの分散表現を分散表現空間上で遠い位置に出力可能とする。
なお、生成装置50が生成した第1モデルM1によって出力された分散表現が分散表現空間にマッピングされた結果として、上述したクラスタCL11とクラスタCL21の他にも、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現の集合であるクラスタCL12やクラスタCL22が生成される。
上述したように、生成装置50は、ユーザによって入力された検索クエリを取得する。また、生成装置50は、取得した検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する第1モデルを生成する。すなわち、本願発明に係る生成装置50は、所定の時間内に連続して入力された複数の検索クエリは、所定の検索意図の下で検索された検索クエリであるという点で、相互に類似する特徴を有する検索クエリであるとみなして第1モデルを学習させる。具体的には、生成装置50は、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現が類似するように第1モデルを学習させることで、所定の検索クエリから所定の検索クエリの特徴情報を含む分散表現を出力する第1モデルを生成する。すなわち、本願発明に係る生成装置50は、所定の時間内に連続して入力された複数の検索クエリの分散表現が類似するように第1モデルM1を学習させることにより、所定の検索意図の下で検索された検索クエリの分散表現を分散表現空間上で近い位置に出力可能とする。これにより、生成装置50は、検索クエリを入力したユーザのコンテクストに応じて検索クエリの意味(検索意図)を出力(解釈)することを可能にする。したがって、生成装置50は、検索クエリの意味を適切に解釈可能とすることができる。
また、生成装置50は、所定の検索クエリの特徴情報を含む分散表現の近傍にマッピングされる分散表現に対応する検索クエリを抽出することにより、所定の検索クエリが検索された検索意図に応じた検索クエリを抽出することができる。すなわち、生成装置50は、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、ユーザの検索動向を分析することを可能にする。したがって、生成装置50は、ユーザの検索動向の分析精度を高めることができる。また、生成装置50が生成した第1モデルM1を検索システムの一部として機能させることもできる。あるいは、生成装置50は、第1モデルM1によって予測された検索クエリの特徴情報を利用する他のシステム(例えば、検索エンジン)への入力情報として、第1モデルM1が出力した検索クエリの分散表現を提供することもできる。これにより、検索システムは、第1モデルM1によって予測された検索クエリの特徴情報に基づいて、検索結果として出力されるコンテンツを選択可能になる。すなわち、検索システムは、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、検索結果として出力されるコンテンツを選択可能になる。さらに、検索システムは、第1モデルM1によって予測された検索クエリの特徴情報に基づいて、検索結果として出力されるコンテンツに含まれる文字情報の分散表現と検索クエリの分散表現との類似度を算出可能になる。そして、検索システムは、算出した類似度に基づいて、検索結果として出力されるコンテンツの表示順を決定可能になる。すなわち、検索システムは、検索クエリを入力したユーザの検索意図やコンテクストを考慮して、検索結果として出力されるコンテンツの表示順を決定可能になる。したがって、生成装置50は、検索サービスにおけるユーザビリティを向上させることができる。
〔7.生成装置の構成〕
次に、図12を用いて、実施形態に係る生成装置50の構成について説明する。図12は、実施形態に係る生成装置50の構成例を示す図である。図12に示すように、生成装置50は、通信部51と、記憶部53と、制御部52とを有する。なお、生成装置50は、生成装置50の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部51)
通信部51は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部51は、ネットワークと有線または無線で接続され、例えば、端末装置10と、検索サーバ20との間で情報の送受信を行う。
(記憶部53)
記憶部53は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部53は、図12に示すように、クエリ情報記憶部531と、ベクトル情報記憶部532と、モデル情報記憶部533とを有する。
(クエリ情報記憶部531)
クエリ情報記憶部531は、ユーザによって入力された検索クエリに関する各種の情報を記憶する。図13に、実施形態に係るクエリ情報記憶部の一例を示す。図13に示す例では、クエリ情報記憶部531は、「ユーザID」、「日時」、「検索クエリ」、「検索クエリID」といった項目を有する。
「ユーザID」は、検索クエリを入力したユーザを識別するための識別情報を示す。「日時」は、検索サーバがユーザから検索クエリを受け付けた日時を示す。「検索クエリ」は、ユーザによって入力された検索クエリを示す。「検索クエリID」は、ユーザによって入力された検索クエリを識別するための識別情報を示す。
図13の1レコード目に示す例では、検索クエリID「Q11」で識別される検索クエリ(検索クエリQ11)は、図10に示した検索クエリQ11に対応する。また、ユーザID「U1」は、検索クエリQ11を入力したユーザがユーザID「U1」で識別されるユーザ(利用者U1)であることを示す。また、日時「2018/9/1 PM17:00」は、検索サーバが利用者U1から検索クエリQ11を受け付けた日時が2018年9月1日の午後17:00であることを示す。また、検索クエリ「六本木 パスタ」は、利用者U1によって入力された検索クエリQ11を示す。具体的には、検索クエリ「六本木 パスタ」は、地名を示す「六本木」と食品の種類を示す「パスタ」の文字とが区切り文字であるスペースで区切られた文字情報であることを示す。
(ベクトル情報記憶部532)
ベクトル情報記憶部532は、検索クエリの分散表現であるベクトルに関する各種の情報を記憶する。図14に、実施形態に係るベクトル情報記憶部の一例を示す。図14に示す例では、ベクトル情報記憶部532は、「ベクトルID」、「検索クエリID」、「ベクトル情報」といった項目を有する。
「ベクトルID」は、検索クエリの分散表現であるベクトルを識別するための識別情報を示す。「検索クエリID」は、ベクトルに対応する検索クエリを識別するための識別情報を示す。「ベクトル情報」は、検索クエリの分散表現であるN次元のベクトルを示す。検索クエリの分散表現であるベクトルは、例えば、128次元のベクトルである。
図14の1レコード目に示す例では、ベクトルID「QV11」で識別されるベクトル(ベクトルQV11)は、図10に示した検索クエリQ11の分散表現であるベクトルQV11に対応する。また、検索クエリID「Q11」で識別される検索クエリ(検索クエリQ11)は、ベクトルQV11に対応する検索クエリが検索クエリQ11であることを示す。また、ベクトル情報「QVDT11」は、検索クエリQ11の分散表現であるN次元のベクトルを示す。
(モデル情報記憶部533)
モデル情報記憶部533は、生成装置50によって生成された学習モデルに関する各種の情報を記憶する。図15に、実施形態に係るモデル情報記憶部の一例を示す。図15に示す例では、モデル情報記憶部533は、「モデルID」、「モデルデータ」といった項目を有する。
「モデルID」は、生成装置50によって生成された学習モデルを識別するための識別情報を示す。「モデルデータ」は、生成装置50によって生成された学習モデルのモデルデータを示す。例えば、「モデルデータ」には、検索クエリを分散表現に変換するためのデータが格納される。
図15の1レコード目に示す例では、モデルID「M1」で識別される学習モデルは、図1に示した第1モデルM1に対応する。また、モデルデータ「MDT1」は、生成装置50によって生成された第1モデルM1のモデルデータ(モデルデータMDT1)を示す。
モデルデータMDT1は、検索クエリが入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された検索クエリに応じて、入力層に入力された検索クエリの分散表現を出力層から出力するよう、生成装置50を機能させてもよい。
ここで、モデルデータMDT1が「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデルデータMDT1が含む第1要素は、x1やx2等といった入力データ(xi)に対応する。また、第1要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第1要素は、入力層が有するいずれかのノードに対応し、第2要素は、出力層が有するノードと見做すことができる。
また、モデルデータMDT1がDNN(Deep Neural Network)等、1つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、モデルデータMDT1が含む第1要素は、入力層または中間層が有するいずれかのノードに対応する。また、第2要素は、第1要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第1要素の重みは、第1要素と対応するノードから第2要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
生成装置50は、上述した回帰モデルやニューラルネットワーク等、任意の構造を有するモデルを用いて、分散表現の算出を行う。具体的には、モデルデータMDT1は、検索クエリが入力された場合に、分散表現を出力するように係数が設定される。生成装置50は、このようなモデルデータMDT1を用いて、分散表現を算出する。
なお、上記例では、モデルデータMDT1が、検索クエリが入力された場合に、検索クエリの分散表現を出力するモデル(以下、モデルX1という。)である例を示した。しかし、実施形態に係るモデルデータMDT1は、モデルX1にデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデルデータMDT1は、検索クエリを入力とした際に、モデルX1が出力した分散表現を入力して学習されたモデル(以下、モデルY1という。)であってもよい。または、モデルデータMDT1は、検索クエリを入力とし、モデルY1の出力値を出力とするよう学習されたモデルであってもよい。
また、生成装置50がGAN(Generative Adversarial Networks)を用いた推定処理を行う場合、モデルデータMDT1は、GANの一部を構成するモデルであってもよい。
(制御部52)
図12の説明に戻って、制御部52は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、生成装置50内部の記憶装置に記憶されている各種プログラム(生成プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部52は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
また、制御部52は、モデル情報記憶部533に記憶されている第1モデルM1(モデルデータMDT1)に従った情報処理により、入力層に入力された検索クエリに対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、分散表現を出力層から出力するよう、コンピュータを機能させる。
また、制御部52は、モデル情報記憶部533に記憶されている第2モデルM2(モデルデータMDT2)に従った情報処理により、入力層に入力された検索クエリに対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、検索クエリが各カテゴリに属する確率を出力層から出力するよう、コンピュータを機能させる。
図12に示すように、制御部52は、取得部521と、抽出部522と、生成部523を有し、以下に説明する情報処理の作用を実現または実行する。なお、制御部52の内部構成は、図12に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
(取得部521)
取得部521は、種々の情報を取得する。具体的には、取得部521は、ユーザによって入力された検索クエリを検索サーバ20から取得する。取得部521は、ユーザによって入力された検索クエリを取得すると、取得した検索クエリをクエリ情報記憶部531に格納する。
また、取得部521は、検索クエリの分散表現であるベクトルに関するベクトル情報を取得する。取得部521は、ベクトル情報を取得すると、取得したベクトル情報をベクトル情報記憶部532に格納する。
また、取得部521は、第1モデルに関する情報を取得する。具体的には、取得部521は、取得部521は、生成部523によって生成された第1モデルに関する情報を取得する。取得部521は、第1モデルに関する情報を取得すると、取得した第1モデルに関する情報をモデル情報記憶部533に格納する。
(抽出部522)
抽出部522は、種々の情報を抽出する。具体的には、抽出部522は、取得部521によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリを抽出する。例えば、抽出部522は、同一のユーザによって各検索クエリが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。続いて、抽出部522は、同一のユーザによって所定の時間内に入力された複数の検索クエリのうち、同一のユーザによって所定の時間内に連続して入力された一対の検索クエリを抽出する。例えば、抽出部522は、同一のユーザによって各検索クエリのペアが入力された時間の間隔が所定の時間内である複数の検索クエリを抽出する。例えば、抽出部522は、取得部521によって取得された検索クエリのうち、同一の利用者U1によって所定の時間内に連続して入力された4個の検索クエリである検索クエリQ11(「六本木 パスタ」)、検索クエリQ12(「六本木 イタリアン」)、検索クエリQ13(「赤坂 パスタ」)、検索クエリQ14(「麻布 パスタ」)を抽出する。抽出部522は、検索クエリが入力された順番に並べると、検索クエリQ11、検索クエリQ12、検索クエリQ13、検索クエリQ14の順番で入力された4個の検索クエリを抽出する。続いて、抽出部522は、4個の検索クエリを抽出すると、時系列的に隣り合う2つの検索クエリを一対の検索クエリとして、3対の検索クエリのペアである(検索クエリQ11、検索クエリQ12)、(検索クエリQ12、検索クエリQ13)、(検索クエリQ13、検索クエリQ14)を抽出する。なお、抽出部522は、同一のユーザによって全ての検索クエリが所定の時間内に入力された複数の検索クエリを抽出してもよい。そして、抽出部522は、時系列的に隣り合うか否かに関わらず、抽出した複数の検索クエリの中から2つの検索クエリを選択して、選択した2つの検索クエリを一対の検索クエリとして抽出してもよい。
また、抽出部522は、取得部521によって取得された検索クエリのうち、所定の検索クエリと所定の検索クエリに無関係な他の検索クエリとを抽出する。例えば、抽出部522は、取得部521によって取得された検索クエリの中から、所定の検索クエリを抽出する。続いて、抽出部522は、取得部521によって取得された検索クエリの中から、所定の検索クエリとは無関係にランダムに他の検索クエリを抽出する。
(生成部523)
生成部523は、種々の情報を生成する。具体的には、生成部523は、取得部521によって取得された検索クエリのうち、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。具体的には、生成部523は、同一のユーザによって所定の時間内に入力された複数の検索クエリの分散表現が類似するように学習モデルを学習させることで、所定の検索クエリから所定の検索クエリの特徴情報を予測する学習モデルを生成する。例えば、生成部523は、所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、学習モデルを生成する。例えば、生成部523は、一対の検索クエリの学習前の分散表現の類似度の値を算出する。また、生成部523は、一対の検索クエリの学習後の分散表現の類似度の値を算出する。続いて、生成部523は、学習前の分散表現の類似度の値よりも、学習後の分散表現の類似度の値が大きくなるように学習モデルを学習させる。このように、生成部523は、一対の検索クエリに対応する一対の分散表現である2つのベクトルが分散表現空間上で類似するように学習モデルを学習させることで、検索クエリから分散表現を出力する学習モデルを生成する。より具体的には、生成部523は、RNNの一種であるLSTMを分散表現生成に用いたDSSMの技術を用いて、検索クエリから分散表現を出力する学習モデルを生成する。例えば、生成部523は、学習モデルの正解データとして、同一のユーザによって所定の時間内に入力された一対の検索クエリが類似する特徴を有するものとして、所定の検索クエリの分散表現と、所定の検索クエリと対となる他の検索クエリの分散表現とが、分散表現空間上で近くに存在するように学習する。また、生成部523は、第1モデルを生成すると、第1モデルを識別する識別情報と対応付けて、生成した第1モデル(モデルデータMDT1)をモデル情報記憶部533に格納する。
〔8.第1モデルの一例〕
次に、図16を用いて生成装置50が生成する第1モデルの一例について説明する。図16は、実施形態に係る第1モデルの一例を示す図である。図16に示す例では、生成装置50が生成する第1モデルM1は、3層のLSTM RNNで構成されている。図16に示す例では、抽出部522は、同一の利用者U1によって所定の時間内に連続して入力された「六本木 パスタ」という検索クエリQ11と「六本木 イタリアン」という検索クエリQ12とから成る一対の検索クエリを抽出する。生成部523は、抽出部522によって抽出されたた検索クエリQ11を第1モデルM1の入力層に入力する(ステップS41)。
続いて、生成部523は、第1モデルM1の出力層から検索クエリQ11の分散表現である256次元のベクトルBQV11を出力する。また、生成部523は、抽出部522によって抽出された検索クエリQ12を第1モデルM1の入力層に入力する。続いて、生成部523は、第1モデルM1の出力層から検索クエリQ12の分散表現である256次元のベクトルBQV12を出力する(ステップS42)。
続いて、生成部523は、連続して入力された2つの検索クエリの分散表現が類似するように学習することで、検索クエリから分散表現を出力する第1モデルM1を生成する(ステップS43)。例えば、第1モデルM1にフィードバックをかける前(学習前)の検索クエリQ11の分散表現であるベクトルBQV11と検索クエリQ12の分散表現であるベクトルBQV12とのなす角度の大きさをΘとする。また、第1モデルM1にフィードバックをかけた後(学習後)の検索クエリQ11の分散表現であるベクトルQV11と検索クエリQ12の分散表現であるベクトルQV12とのなす角度の大きさをΦとする。この時、生成部523は、ΘよりもΦが小さくなるように、第1モデルM1を学習させる。例えば、生成部523は、ベクトルBQV11とベクトルBQV12のコサイン類似度の値を算出する。また、生成部523は、ベクトルQV11とベクトルQV12のコサイン類似度の値を算出する。続いて、生成部523は、ベクトルBQV11とベクトルBQV12のコサイン類似度の値よりも、ベクトルQV11とベクトルQV12のコサイン類似度の値が大きくなるように(値が1に近づくように)学習モデルM1を学習させる。このように、生成部523は、一対の検索クエリに対応する一対の分散表現である2つのベクトルが分散表現空間上で類似するように第1モデルM1を学習させることで、検索クエリから分散表現を出力する第1モデルM1を生成する。なお、生成部523は、コサイン類似度に限らず、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて分散表現の間の類似度を算出してもよい。また、生成部523は、ベクトル間の距離尺度として適用可能な指標であれば、どのような指標に基づいて学習モデルM1を学習させてもよい。例えば、生成部523は、分散表現同士のユークリッド距離や双曲空間等の非ユークリッド空間中での距離、マンハッタン距離、マハラノビス距離等といった所定の距離関数の値を算出する。続いて、生成部523は、分散表現同士の所定の距離関数の値(すなわち、分散表現空間における距離)が小さくなるように学習モデルM1を学習させてもよい。
また、生成部523は、同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字情報を含む複数の検索クエリが類似する特徴を有するものとして学習することで、第1モデルを生成する。例えば、生成部523は、地名を示す「六本木」と食品の種類を示す「パスタ」の文字とが区切り文字であるスペースで区切られた検索クエリ「六本木 パスタ」と、地名を示す「六本木」と料理の種類を示す「イタリアン」の文字とが区切り文字であるスペースで区切られた検索クエリ「六本木 イタリアン」とが類似する特徴を有するものとして学習することで、第1モデルを生成する。
また、生成部523は、取得部521によって取得された検索クエリのうち、ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、第1モデルを生成する。具体的には、生成部523は、取得部521によって取得された検索クエリのうち、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、第1モデルを生成する。例えば、生成部523は、抽出部522によって抽出された所定の検索クエリの分散表現と、所定の検索クエリとは無関係にランダムに抽出された検索クエリの分散表現とが分散表現空間上で遠くにマッピングされるように第1モデルM1のトレーニングを行う。
〔9.第1モデルの生成処理のフロー〕
次に、図17を用いて、実施形態に係る第1モデルの生成処理の手順について説明する。図17は、実施形態に係る第1モデルの生成処理手順を示すフローチャートである。
図17に示す例では、生成装置50は、ユーザによって入力された検索クエリを取得する(ステップS1001)。
続いて、生成装置50は、同一のユーザによって所定の時間内に入力された複数の検索クエリを抽出する(ステップS1002)。
続いて、生成装置50は、抽出した複数の検索クエリが類似する特徴を有するものとして学習することで、所定の検索クエリから所定の検索クエリの特徴情報を予測する第1モデルを生成する(ステップS1003)。
〔10.効果〕
上述してきたように、実施形態に係る情報処理装置100は、受付部131と生成部133と出力部134を有する。受付部131は、分類対象を示す複数の対象情報と、複数の対象情報をクラスタに分類する際のクラスタ数である指定クラスタ数とを受け付ける。生成部133は、複数の対象情報を指定クラスタ数のクラスタに分類することにより生成したクラスタに関する指定クラスタ情報を生成する。出力部134は、生成部133によって生成された指定クラスタ情報を出力する。
これにより、情報処理装置100は、分類対象を示す多数の対象情報から、多数の対象情報の特徴の要約とも言える指定クラスタ数のクラスタ情報を抽出可能とする。そして、情報処理装置100は、多数の対象情報の特徴を指定クラスタ数のクラスタ情報に要約して提供可能とする。このように、情報処理装置100は、分類対象を示す多数の対象情報の特徴を少ない情報量の要約にまとめて提供可能とする。したがって、情報処理装置100は、有用な情報を得ることができる。
また、生成部133は、複数の対象情報に含まれる一の対象情報が検索クエリとして入力された際の検索意図と、複数の対象情報に含まれる他の対象情報が検索クエリとして入力された際の検索意図との類似性に基づいて、指定クラスタ情報を生成する。
これにより、情報処理装置100は、対象情報が検索クエリとして入力された際の検索意図の類似度に基づいて分類された指定クラスタ数のクラスタに関する指定クラスタ情報を提供可能とする。
また、生成部133は、複数の対象情報に含まれる一の対象情報である文字情報に対応する分散表現と、複数の対象情報に含まれる他の対象情報である文字情報に対応する分散表現との類似度に基づいて、指定クラスタ情報を生成する。
これにより、情報処理装置100は、クエリ同士の検索意図の類似性に基づくクラスタの分類結果を数値によって客観的に把握できる状態で提供可能とする。
また、生成部133は、指定クラスタ情報として、クラスタごとに、クラスタに分類される対象情報を視認可能な情報を生成する。
これにより、情報処理装置100は、多数の高次元の分散表現同士の類似度に関する分析結果を一見して把握しやすい状態で提供可能にする。
また、生成部133は、複数の対象情報を指定クラスタ数よりも少ない数のクラスタに分類することにより生成したクラスタに関するクラスタ情報を生成する。出力部134は、生成部133によって生成されたクラスタ情報を指定クラスタ情報と比較可能に出力する。
これにより、情報処理装置100は、複数の対象情報を指定クラスタ数よりも少ない数のクラスタに分類することにより生成したクラスタに関するクラスタ情報と指定クラスタ情報とを比較できる状態で提供可能とする。
また、生成部133は、複数の対象情報に含まれる一の対象情報が検索クエリとして入力された際の検索意図と、複数の対象情報に含まれる他の対象情報が検索クエリとして入力された際の検索意図との類似性に基づいて、複数の対象情報を指定クラスタ数のクラスタに分類する。
これにより、情報処理装置100は、対象情報が検索クエリとして入力された際の検索意図の類似度に基づいて指定クラスタ数のクラスタを生成することができる。
また、生成部133は、複数の対象情報に含まれる一の対象情報である文字情報に対応する分散表現と、複数の対象情報に含まれる他の対象情報である文字情報に対応する分散表現との類似度に基づいて、複数の対象情報を指定クラスタ数のクラスタに分類する。
これにより、情報処理装置100は、クエリ同士の検索意図の類似性に基づくクラスタの分類結果を数値によって客観的に把握できる状態で提供可能とする。
また、生成部133は、同一のユーザによって所定の時間内に入力された複数の検索クエリが類似する特徴を有するものとして、複数の検索クエリが有する特徴を学習した学習モデルを用いて、複数の対象情報に含まれるそれぞれの対象情報である文字情報に対応する分散表現を生成する。
これにより、情報処理装置100は、対象情報である文字情報が検索クエリとし手入力された検索意図を反映した分散表現を生成可能とする。
また、生成部133は、入力情報として所定の検索クエリが入力された際に、出力情報として所定の検索クエリの分散表現を出力する学習モデルを用いて、分散表現を生成する。
これにより、情報処理装置100は、対象情報である文字情報が検索クエリとし手入力された検索意図を反映した分散表現を生成可能とする。
また、生成部133は、所定の時間内に続けて入力された一対の検索クエリの分散表現が類似するように学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、分散表現を生成する。
これにより、情報処理装置100は、対象情報である文字情報が検索クエリとし手入力された検索意図を反映した分散表現を生成可能とする。
また、生成部133は、同一のユーザによって所定の時間内に入力された複数の検索クエリとして、所定の区切り文字で区切られた文字列を含む複数の検索クエリが類似する特徴を有するものとして学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、分散表現を生成する。
これにより、情報処理装置100は、対象情報である文字情報が検索クエリとし手入力された検索意図を反映した分散表現を生成可能とする。
また、生成部133は、ランダムに抽出された複数の検索クエリが相違する特徴を有するものとして学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、分散表現を生成する。
これにより、情報処理装置100は、対象情報である文字情報が検索クエリとし手入力された検索意図を反映した分散表現を生成可能とする。
また、生成部133は、ランダムに抽出された一対の検索クエリの分散表現が相違するように学習することで、複数の検索クエリが有する特徴を学習した学習モデルを用いて、分散表現を生成する。
これにより、情報処理装置100は、対象情報である文字情報が検索クエリとし手入力された検索意図を反映した分散表現を生成可能とする。
〔11.ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置100または生成装置50または端末装置10は、例えば図18に示すような構成のコンピュータ1000によって実現される。図18は、情報処理装置100または生成装置50または端末装置10の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を備える。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、所定の通信網を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを所定の通信網を介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が情報処理装置100または生成装置50または端末装置10として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130または制御部52または制御部15の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムを取得してもよい。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔12.その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、生成手段や生成回路に読み替えることができる。