(57)【要約】【課題】より正確かつ高速に対象データにラベルを付与することができる情報処理装置、情報処理方法、およびプログラムを提供すること。【解決手段】対象データから変換された特徴ベクトルを、複数の分類ベクトルを用いて分類する分類部と、前記分類部による分類結果に基づいて、前記対象データに付与するラベルを取得するラベル取得部と、複数の特徴ベクトルのそれぞれに、前記ラベルを示すラベルベクトルが対応付けられた学習データを取得し、類似するラベルベクトルが同じクラスタに分類されるように前記学習データを分割することを一回以上実行することで、前記複数の分類ベクトルを学習する学習部と、を備える情報処理装置。【選択図】図２
2018136750.tif 000002
【特許請求の範囲】
【請求項１】
対象データから変換された特徴ベクトルを、複数の分類ベクトルを用いて分類する分類部と、
前記分類部による分類結果に基づいて、前記対象データに付与するラベルを取得するラベル取得部と、
複数の特徴ベクトルのそれぞれに、前記ラベルを示すラベルベクトルが対応付けられた学習データを取得し、類似するラベルベクトルが同じクラスタに分類されるように前記学習データを分割することを一回以上実行することで、前記複数の分類ベクトルを学習する学習部と、
を備える情報処理装置。
【請求項２】
前記学習部は、第１ラベルベクトルに対応する第１特徴ベクトルと、前記第１ラベルベクトルとの内積の値が上位の第２ラベルベクトルに対応する第２特徴ベクトルとを取得し、前記第１特徴ベクトルと前記第２特徴ベクトルとを前記学習データとして用いて、前記複数の分類ベクトルを学習する
請求項１記載の情報処理装置。
【請求項３】
前記学習部は、前記分類ベクトルと、前記第２特徴ベクトルとの内積が大きくなるように、前記分類ベクトルを調整する
請求項２記載の情報処理装置。
【請求項４】
前記学習部は、前記分類ベクトルと、ランダムに取得された第３特徴ベクトルとの内積が小さくなるように、前記分類ベクトルを調整する
請求項２記載の情報処理装置。
【請求項５】
前記学習部によって学習された前記複数の分類ベクトルを記憶する第１記憶部を更に備え、
前記分類部は、前記第１記憶部から前記複数の分類ベクトルを読み出し、読み出した前記複数の分類ベクトルの各々と前記特徴ベクトルとの内積を算出し、算出した内積に基づいて前記特徴ベクトルを分類する
請求項１から４の何れか一項に記載の情報処理装置。
【請求項６】
複数のクラスタのそれぞれにラベルが対応付けられたラベルテーブルを記憶する第２記憶部を更に備え、
前記ラベル取得部は、前記対象データに付与するラベルとして、前記分類部によって前記特徴ベクトルが分類されたクラスタに対応付けられたラベルを、前記第２記憶部に記憶された前記ラベルテーブルから取得する
請求項１から５の何れか一項に記載の情報処理装置。
【請求項７】
前記学習部は、前記学習データを繰り返し分割することで分類木を生成し、
前記分類部は、前記対象データから変換された前記特徴ベクトルを、前記分類木におけるいずれかのリーフノードに分類し、
前記ラベル取得部は、前記分類部によって分類された前記特徴ベクトルが属するリーフノードに対応するラベルを、前記対象データに付与するラベルとして取得する
請求項１記載の情報処理装置。
【請求項８】
対象データから変換された特徴ベクトルを、複数の分類ベクトルを用いて分類する分類工程と、
前記分類工程における分類結果に基づいて、前記対象データに付与するラベルを取得するラベル取得工程と、
複数の特徴ベクトルのそれぞれに、前記ラベルを示すラベルベクトルが対応付けられた学習データを取得し、類似するラベルベクトルが同じクラスタに分類されるように前記学習データを分割することを一回以上実行することで、前記複数の分類ベクトルを学習する学習工程と、
を備える情報処理方法。
【請求項９】
コンピュータを、
対象データから変換された特徴ベクトルを、複数の分類ベクトルを用いて分類する分類部、
前記分類部による分類結果に基づいて、前記対象データに付与するラベルを取得するラベル取得部、
複数の特徴ベクトルのそれぞれに、前記ラベルを示すラベルベクトルが対応付けられた学習データを取得し、類似するラベルベクトルが同じクラスタに分類されるように前記学習データを分割することを一回以上実行することで、前記複数の分類ベクトルを学習する学習部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、テキストデータや画像、音声などの対象データに、「政治」や「経済」などのトピックに対応するラベルを付与するトピック分析装置が知られている（特許文献１参照）。例えば、ユーザによって入力された検索ワードにラベルを付与することで、ユーザの興味のあるカテゴリを判別することができるため、ニュースサイトにおいてユーザに対するニュースレコメンドを行うことができる。
【０００３】
特許文献１に開示されたトピック分析装置は、対象データをベクトルデータに変換し、変換したベクトルデータに基づいてラベルを付与する。この際に、トピック分析装置は、予めラベルが付与された教師データを用いて学習を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２４６５８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示されたトピック分析装置は、正確かつ高速に対象データにラベルを付与することができない場合があった。
【０００６】
本発明は、このような事情を考慮してなされたものであり、より正確かつ高速に対象データにラベルを付与することができる情報処理装置、情報処理方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００７】
本発明の一態様は、対象データから変換された特徴ベクトルを、複数の分類ベクトルを用いて分類する分類部と、前記分類部による分類結果に基づいて、前記対象データに付与するラベルを取得するラベル取得部と、複数の特徴ベクトルのそれぞれに、前記ラベルを示すラベルベクトルが対応付けられた学習データを取得し、類似するラベルベクトルが同じクラスタに分類されるように前記学習データを分割することを一回以上実行することで、前記複数の分類ベクトルを学習する学習部と、を備える情報処理装置である。
【発明の効果】
【０００８】
本発明の一態様によれば、より正確かつ高速に対象データにラベルを付与することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係るラベル付与装置１００の使用環境を示す図である。
【図２】実施形態に係るラベル付与装置１００の詳細構成を示すブロック図である。
【図３】実施形態に係るベクトルテーブルＴ１の一例を示す図である。
【図４】実施形態に係る分類木の一例を示す図である。
【図５】実施形態に係るラベルテーブルＴ２の一例を示す図である。
【図６】実施形態に係る学習データＤの一例を示す図である。
【図７】実施形態に係る式（１）を概念的に説明するための図である。
【図８】実施形態に係る学習データＤの分割処理を説明するための図である。
【図９】実施形態に係るラベル付与処理を示すフローチャートである。
【図１０】実施形態に係る分類ベクトルｗの学習処理を示すフローチャートである。
【図１１】実施形態に係るラベル付与装置１００のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、情報処理装置、情報処理方法、およびプログラムの実施形態について説明する。本実施形態においては、情報処理装置の一例として、ラベル付与装置について説明する。ラベル付与装置は、対象データの内容に応じて、「政治」、「経済」、「スポーツ」といったラベルを対象データに付与する装置である。ラベル付与装置は、ウェブページなどを管理するサーバ装置に対してクラウドサービスによってラベルを提供する装置であってもよいし、上記サーバ装置に内蔵されるものであってもよい。対象データに付与されたラベルは、ニュースサイトにおけるニュースレコメンドに使用されてもよいし、ユーザ端末に表示される広告の選択に使用されてもよい。
【００１１】
＜１．ラベル付与装置の使用環境＞
図１は、実施形態に係るラベル付与装置１００の使用環境を示す図である。実施形態のラベル付与装置１００は、ネットワークＮＷを介してデータサーバ２００と通信する。ネットワークＮＷは、例えば、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、インターネット、プロバイダ装置、無線基地局、専用回線などのうちの一部または全部を含む。
【００１２】
ラベル付与装置１００は、特徴ベクトル変換部１１０と、分類部１２０と、ラベル取得部１３０と、学習部１４０と、通信部１５０と、第１記憶部１６０と、第２記憶部１７０とを備える。
【００１３】
特徴ベクトル変換部１１０、分類部１２０、ラベル取得部１３０、および学習部１４０は、例えば、ラベル付与装置１００のプロセッサがプログラムを実行することで実現されてもよいし、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【００１４】
通信部１５０は、例えばＮＩＣ（Network Interface Card）を備える。ラベル付与装置１００は通信部１５０を用いて、ネットワークＮＷを介してデータサーバ２００と通信する。第１記憶部１６０および第２記憶部１７０は、例えば、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。また、第１記憶部１６０および第２記憶部１７０の一部または全部は、ＮＡＳ（Network Attached Storage）や外部のストレージサーバなど、ラベル付与装置１００がアクセス可能な外部装置であってもよい。
【００１５】
データサーバ２００は、制御部２１０と、通信部２２０とを備える。制御部２１０は、例えば、データサーバ２００のプロセッサがプログラムを実行することで実現されてもよいし、ＬＳＩ、ＡＳＩＣ、ＦＰＧＡなどのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【００１６】
通信部２２０は、例えばＮＩＣを備える。制御部２１０は、通信部２２０を用いて、ネットワークＮＷを介してラベル付与装置１００に対象データを送信する。対象データは、例えば、検索サイトにおいてユーザによって入力された検索クエリであるが、これに限られない。例えば、対象データは、ユーザが閲覧したページのページデータ、ユーザが閲覧したページのＵＲＬ（Uniform Resource Locator）、ブログ（ウェブログ）サービスにおいて投稿された記事、またはソーシャルネットワーキングサービス（ＳＮＳ）において投稿された記事等であってもよい。ここで、ページデータは、ウェブ上にあり、ブラウザで閲覧可能なページ単位のデータである。例えば、ページデータは、画像データおよびＨＴＭＬ（HyperText Markup Language）データを含む。なお、ページデータは、ブラウザに限らず、アプリケーションプログラムによって再生されるデータであってもよい。
【００１７】
＜２．ラベル付与装置によるラベル付与処理＞
図２は、実施形態に係るラベル付与装置１００の詳細構成を示すブロック図である。ラベル付与装置１００は、データサーバ２００から対象データＴＤを受信し、受信した対象データＴＤにラベルを付与する。ラベルは、対象データＴＤを分類するためのデータであり、例えば、「政治」、「経済」、「スポーツ」などの対象データＴＤが属するジャンルを示すデータである。詳細は後述するが、ラベルは対象データＴＤに付与される。以下、ラベル付与装置１００のラベル付与動作について詳細に説明する。
【００１８】
通信部１５０は、データサーバ２００から対象データＴＤを受信し、受信した対象データＴＤを特徴ベクトル変換部１１０に出力する。特徴ベクトル変換部１１０は、通信部１５０から入力された対象データＴＤを特徴ベクトルｘに変換する。例えば、対象データＴＤが検索クエリである場合には、特徴ベクトルｘは検索クエリに含まれる単語の集合を示すベクトルであってよい。また、対象データＴＤがページデータである場合には、特徴ベクトルｘはページデータに含まれる単語の集合を示すベクトルであってよい。特徴ベクトル変換部１１０は、特徴ベクトルｘを、分類部１２０に出力する。
【００１９】
第１記憶部１６０には、学習部１４０によって学習された複数の分類ベクトル（ベクトルテーブルＴ１）が記憶されている。特徴ベクトルｘが特徴ベクトル変換部１１０から分類部１２０に入力されると、分類部１２０は、第１記憶部１６０に記憶されたベクトルテーブルＴ１を参照し、分類ベクトルｗを読み出す。また、分類部１２０は、読み出した分類ベクトルｗを用いて、入力された特徴ベクトルｘを複数のクラスタＣ１からＣｎのいずれかに分類する。ここで、ｎはクラスタの総数を示す。分類部１２０は、特徴ベクトルｘが分類されたクラスタのクラスタ番号ｍを、ラベル取得部１３０に出力する。ここで、１≦ｍ≦ｎである。以下、分類部１２０による分類処理を具体的に説明する。
【００２０】
図３は、実施形態に係るベクトルテーブルＴ１の一例を示す図である。図３に示されるように、ベクトルテーブルＴ１は、ノード番号と分類ベクトルとが関連付けられたデータである。ノード番号は、後述する分類木のノードに付与された番号を示す。分類ベクトルは、対象データＴＤの分類に用いられるベクトルである。図３に示される例においては、ノード番号１からｓのそれぞれに、分類ベクトルｗ１からｗｓが関連付けられている。
【００２１】
図４は、実施形態に係る分類木の一例を示す図である。分類木には、複数のノードが含まれる。分類木のルートノードは、ノードＮ１である。分類木の複数のリーフノードは、複数のクラスタＣ１からＣｎに対応する。
【００２２】
分類部１２０は、第１記憶部１６０から分類ベクトルｗを読み出し、読み出した分類ベクトルｗと特徴ベクトルｘとの内積を算出し、算出した内積に基づいて特徴ベクトルｘを分類する。例えば、分類部１２０は、ルートノードＮ１において、第１記憶部１６０に記憶されたベクトルテーブルＴ１を参照して、分類ベクトルｗ１を取得する。次に、分類部１２０は、取得した分類ベクトルｗ１と特徴ベクトルｘとの内積を算出する。分類部１２０は、算出した内積が０以上の場合はノードＮ２に移行し、算出した内積が０未満の場合はノードＮ３に移行する。
【００２３】
また、分類部１２０は、ノードＮ２において、第１記憶部１６０に記憶されたベクトルテーブルＴ１を参照して、分類ベクトルｗ２を取得する。次に、分類部１２０は、取得した分類ベクトルｗ２と特徴ベクトルｘとの内積を算出する。分類部１２０は、算出した内積が０以上の場合はノードＮ４に移行し、算出した内積が０未満の場合はノードＮ５に移行する。
【００２４】
一方、分類部１２０は、ノードＮ３において、第１記憶部１６０に記憶されたベクトルテーブルＴ１を参照して、分類ベクトルｗ３を取得する。次に、分類部１２０は、取得した分類ベクトルｗ３と特徴ベクトルｘとの内積を算出する。分類部１２０は、算出した内積が０以上の場合はノードＮ６に移行し、算出した内積が０未満の場合はノードＮ７に移行する。
【００２５】
分類部１２０は、以上の処理を各ノードにおいて行うことで、特徴ベクトルｘをいずれかのリーフノード（クラスタＣ１からＣｎ）に分類する。分類部１２０は、特徴ベクトルｘが分類されたリーフノード（クラスタ）に対応するクラスタ番号ｍを、ラベル取得部１３０に出力する。
【００２６】
クラスタ番号ｍが分類部１２０からラベル取得部１３０に入力されると、ラベル取得部１３０は、クラスタ番号ｍに対応するラベルＬを第２記憶部１７０から読み出す。具体的には、複数のクラスタのそれぞれにラベルが対応付けられたラベルテーブルＴ２が、第２記憶部１７０に記憶されている。詳細は後述するが、ラベルテーブルＴ２は、学習部１４０によって生成される。ラベル取得部１３０は、第２記憶部１７０に記憶されたラベルテーブルＴ２を参照して、クラスタ番号ｍに対応するラベルＬを取得する。
【００２７】
図５は、実施形態に係るラベルテーブルＴ２の一例を示す図である。図５に示されるように、ラベルテーブルＴ２は、クラスタ番号と、ラベルとが関連付けられたデータである。図５に示される例においては、クラスタ番号１にラベルＬ１−１、ラベルＬ１−２、・・・が対応付けられ、クラスタ番号２にラベルＬ２−１、ラベルＬ２−２、・・・が対応付けられ、・・・、クラスタ番号ｎにラベルＬｎ−１、ラベルＬｎ−２、・・・が対応付けられている。なお、各クラスタ番号には、複数のラベルが関連付けられてもよいし、一つのラベルが関連付けられてもよい。
【００２８】
ラベル取得部１３０は、対象データＴＤに付与するラベルＬとして、分類部１２０によって特徴ベクトルｘが分類されたクラスタに対応付けられたラベルを、第２記憶部１７０に記憶されたラベルテーブルＴ２から取得する。具体的には、ラベル取得部１３０は、クラスタ番号ｍに関連付けられたラベルＬをラベルテーブルＴ２から取得する。
【００２９】
その後、ラベル取得部１３０は、取得したラベルＬを通信部１５０に出力する。通信部１５０は、ラベル取得部１３０から入力されたラベルＬを、データサーバ２００に送信する。以上の処理によって、ラベル付与装置１００は、対象データＴＤにラベルＬを付与することができる。
【００３０】
データサーバ２００は、ラベル付与装置１００から受信したラベルＬに基づき、ニュースサイトにおけるニュースレコメンドを行う。例えば、データサーバ２００は、対象データＴＤに付与されたラベルＬ（「政治」や「経済」等）に基づいて、ラベルＬに対応するニュースをユーザにレコメンドする。
【００３１】
また、データサーバ２００は、ラベル付与装置１００から受信したラベルＬに基づき、ユーザが所有するユーザ端末に配信する広告を選択してもよい。例えば、データサーバ２００は、対象データＴＤに付与されたラベルＬ（「時計」や「指輪」等）に基づいて、ラベルＬに対応する広告をユーザ端末に配信してもよい。
【００３２】
＜３．学習部による分類ベクトルの学習処理＞
次に、学習部１４０による、第１記憶部１６０に記憶された分類ベクトルｗ１からｗｓ（図３参照）の学習処理の詳細を説明する。学習部１４０が分類ベクトルｗ１からｗｓの学習処理を行うことで、分類部１２０による特徴ベクトルｘの分類処理を高精度に行うことができる。
【００３３】
図６は、実施形態に係る学習データＤの一例を示す図である。学習部１４０は、学習データＤを用いて、ベクトルテーブルＴ１に含まれる分類ベクトルｗ１からｗＳを学習する。学習データＤは、特徴ベクトルとラベルベクトルとが関連付けられたｔ個のデータを含む。具体的に、学習データＤは、特徴ベクトルｘ１からｘｔが、それぞれラベルベクトルｙ１からｙｔに関連付けられたデータである。図６に示される例において、特徴ベクトルｘ１からｘｔおよびラベルベクトルｙ１からｙｔは、ｐ次元のベクトルである。
【００３４】
例えば、図６に示されるように、特徴ベクトルｘ１はラベルベクトルｙ１に関連付けられ、特徴ベクトルｘ２はラベルベクトルｙ２に関連付けられ、特徴ベクトルｘ３はラベルベクトルｙ３に関連付けられ、・・・、特徴ベクトルｘｔはラベルベクトルｙｔに関連付けられる。
【００３５】
学習部１４０は、第１ラベルベクトルｙｉに対応する第１特徴ベクトルｘｉと、第１ラベルベクトルｙｉとの内積の値が大きい上位所定数の第２ラベルベクトルｙｊに対応する第２特徴ベクトルｘｊとを取得し、第１特徴ベクトルｘｉと第２特徴ベクトルｘｊとを学習データとして用いて、複数の分類ベクトルｗ１からｗＳを学習する。
【００３６】
具体的に、学習部１４０は、以下の式（１）に示される値が最大となるように、分類ベクトルｗを求める。式（１）において、ｉ、ｊ、およびｋは、インデックス（添え字）を示す。Ｎｉは、特徴ベクトルｘｉに対応するラベルベクトルｙｉとの内積の値が大きい上位Ｎ個のラベルベクトルのインデックスの集合（Ｎ−近傍点）を示す。式（１）においては、計算を簡略化して求めたＮｉの近似値を使用している。Ｃｉは、＋１または−１のいずれかである。具体的には、ｗＴｘｉ≧０の場合はＣｉ＝＋１であり、それ以外の場合はＣｉ＝−１である。Ｓ−は、ランダムにサンプリングされたインデックスの集合を示す。Ｓ−は、分布が一様になるように調整されてサンプリングされたインデックスの集合であってもよい。λは、任意に設定されたパラメータである。
【００３７】
【数１】
2018136750.tif 000003
【００３８】
式（１）に示されるように、学習部１４０は、分類ベクトルｗと、第２特徴ベクトルｘｊとの内積が大きくなるように、分類ベクトルｗを調整する。また、学習部１４０は、分類ベクトルｗと、ランダムに取得された第３特徴ベクトルｘｋとの内積が小さくなるように、分類ベクトルｗを調整する。
【００３９】
図７は、実施形態に係る式（１）を概念的に説明するための図である。図７において、ｘｊはＮｉに含まれる特徴ベクトルであり、ｘｋはランダムにサンプリングされた特徴ベクトルである。図７に示されるように、ｘｉとｘｊとを同じクラスタに分類するように分類ベクトルｗを調整することで、式（１）の第１項の値は大きくなる。また、ｘｉとｘｋとを異なるクラスタに分類するように分類ベクトルｗを調整することで、式（１）の第２項の値は大きくなる。このように、学習部１４０は、式（１）に示される値が最大となるように、分類ベクトルｗを求める。
【００４０】
図８は、実施形態に係る学習データＤの分割処理を説明するための図である。図８に示されるように、学習データＤはグラフＧとして表される。グラフＧにおいて、互いに類似するラベルベクトル同士がエッジによって接続されている。
【００４１】
前述したように、学習部１４０は、式（１）に示される値が最大となるように、分類ベクトルｗ１を求める。グラフＧとして表された学習データＤは、分類ベクトルｗ１によって２つに分割される。具体的には、学習データＤは、分類ベクトルｗ１との内積が０以上の学習データの集合と、分類ベクトルｗ１との内積が０未満の学習データの集合とに分割される。
【００４２】
学習部１４０は、分割されたそれぞれの学習データの集合に対して、式（１）を用いて同様に分割処理を行う。これによって、学習部１４０は、分類ベクトルｗ２および分類ベクトルｗ３を算出することができる。学習部１４０は、学習データＤを繰り返し（一回以上）分割することで分類木（図４）を生成する。この点について、以下詳細に説明する。
【００４３】
例えば、学習データＤに含まれるデータの個数ｔ＝１０００の場合、図４におけるルートノードＮ１には１０００個の学習データが存在する。学習部１４０は、式（１）を用いて算出された分類ベクトルｗ１を用いて、１０００個の学習データを２つに分割する。分割された学習データは、ノードＮ２とノードＮ３のいずれかに分類される。
【００４４】
例えば、ノードＮ２に４５０個の学習データが分類され、ノードＮ３に５５０個の学習データが分類されたとする。この場合、学習部１４０は、ノードＮ２に分類された４５０個の学習データを用いて、式（１）に示される値が最大となるように、分類ベクトルｗ２を求める。学習部１４０は、式（１）を用いて算出された分類ベクトルｗ２を用いて、４５０個の学習データを２つに分割する。分割された学習データは、ノードＮ４とノードＮ５のいずれかに分類される。
【００４５】
学習部１４０は、以上の分割処理を、リーフノードに至るまで繰り返し実行する。これによって、学習部１４０は、各ノードにおいて使用される分類ベクトルｗ１からｗＳを算出することができる。したがって、学習部１４０は、図３に示されるベクトルテーブルＴ１と、図４に示される分類木とを生成することができる。
【００４６】
このように、学習部１４０は、複数の特徴ベクトルｘのそれぞれに、ラベルを示すラベルベクトルｙが対応付けられた学習データＤを取得する。学習部１４０は、類似するラベルベクトルが同じリーフノード（クラスタ）に分類されるように学習データＤを繰り返し（一回以上）分割することで、複数の分類ベクトルｗを学習する。これによって、ラベル付与装置１００は、特徴ベクトルｘを正確に分類することができる。
【００４７】
学習部１４０は、リーフノード（クラスタ）毎に、分類された学習データに対応するラベルを取得する。また、学習部１４０は、取得したリーフノード（クラスタ）毎のラベルを用いて、ラベルテーブルＴ２を生成する。
【００４８】
分類部１２０は、対象データＴＤから変換された特徴ベクトルｘを、複数の分類ベクトルｗを用いて分類木におけるいずれかのリーフノードに分類する。ラベル取得部１３０は、ラベルテーブルＴ２を参照して、分類部１２０によって分類された特徴ベクトルｘが属するリーフノード（クラスタ）に対応するラベルを、対象データＴＤに付与するラベルＬとして取得する。これによって、ラベル付与装置１００は、高速に対象データにラベルを付与することができる。
【００４９】
＜４．ラベル付与処理のフローチャート＞
図９は、実施形態に係るラベル付与処理を示すフローチャートである。本フローチャートによる処理は、ラベル付与装置１００によって実行される。
【００５０】
まず、ラベル付与装置１００は、通信部１５０がデータサーバ２００から対象データＴＤを受信したか否かを判定する（Ｓ１００）。通信部１５０がデータサーバ２００から対象データＴＤを受信した場合、特徴ベクトル変換部１１０は、通信部１５０によって受信された対象データＴＤを、特徴ベクトルｘに変換する（Ｓ１０２）。特徴ベクトル変換部１１０は、特徴ベクトルｘを分類部１２０に出力する。
【００５１】
分類部１２０は、特徴ベクトル変換部１１０によって変換された特徴ベクトルｘを、複数の分類ベクトルｗを用いて分類する（Ｓ１０４）。また、分類部１２０は、特徴ベクトルｘが分類されたクラスタのクラスタ番号ｍを、ラベル取得部１３０に出力する。
【００５２】
ラベル取得部１３０は、第２記憶部１７０に記憶されたラベルテーブルＴ２を参照し、分類部１２０から入力されたクラスタ番号ｍに対応するラベルＬを取得する（Ｓ１０６）。その後、ラベル取得部１３０は、取得したラベルＬを通信部１５０に出力する。
【００５３】
通信部１５０は、ラベル取得部１３０によって取得されたラベルＬを、データサーバ２００に送信し（Ｓ１０８）、前述のＳ１００に処理を戻す。以上が、ラベル付与処理の一連の流れである。
【００５４】
＜５．分類ベクトルの学習処理のフローチャート＞
図１０は、実施形態に係る分類ベクトルｗの学習処理を示すフローチャートである。本フローチャートによる処理は、学習部１４０によって実行される。
【００５５】
まず、学習部１４０は、学習データＤを取得する（Ｓ２０２）。例えば、学習部１４０は、ネットワークＮＷを介して外部装置から学習データＤを受信するが、これに限られない。例えば、学習部１４０は、ラベル付与装置１００に装着されたＵＳＢ（Universal Serial Bus）メモリやフラッシュメモリから学習データＤを読み出してもよい。
【００５６】
学習部１４０は、ノード番号ｉに１を代入する（Ｓ２０４）。これによって、学習部１４０は、ルートノードＮ１から分類ベクトルｗの算出を開始する。学習部１４０は、前述の式（１）に示される値が最大となるように、分類ベクトルｗｉ（ここではｗ１）を算出する（Ｓ２０６）。
【００５７】
学習部１４０は、算出した分類ベクトルｗｉを用いて、学習データを２つの集合に分割する（Ｓ２０８）。具体的に、学習部１４０は、学習データを、分類ベクトルｗｉとの内積が０以上である学習データの集合と、分類ベクトルｗｉとの内積が０未満である学習データの集合とに分割する。
【００５８】
学習部１４０は、Ｓ２０８における分割処理によって、分類木（図４）における最終のリーフノードが生成されたか否かを判定する（Ｓ２１０）。学習部１４０は、最終のリーフノードが生成されていないと判定した場合、ノード番号ｉに１を加算し（Ｓ２１２）、前述のＳ２０６に処理を戻す。これによって、学習部１４０は、分割された各集合に対して、Ｓ２０６からＳ２１０に示される処理を行うこととなる。
【００５９】
一方、学習部１４０は、最終のリーフノードが生成されたと判定した場合、算出した分類ベクトルｗ１からｗＳを用いて、ベクトルテーブルＴ１（図３）を生成する（Ｓ２１４）。
【００６０】
また、学習部１４０は、リーフノード（クラスタ）毎に、分類された学習データに対応するラベルを取得する。その後、学習部１４０は、取得したリーフノード（クラスタ）毎のラベルを用いて、ラベルテーブルＴ２を生成し（Ｓ２１６）、本フローチャートによる処理を終了する。
【００６１】
＜６．ハードウェア構成＞
図１１は、実施形態に係るラベル付与装置１００のハードウェア構成の一例を示す図である。ラベル付与装置１００は、例えば、ＣＰＵ１８０、ＲＡＭ１８１、ＲＯＭ１８２、フラッシュメモリやＨＤＤなどの二次記憶装置１８３、ＮＩＣ１８４、ドライブ装置１８５、キーボード１８６、およびマウス１８７が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置１８５には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置１８３、またはドライブ装置１８５に装着された可搬型記憶媒体に記憶されたプログラムがＤＭＡ（Direct Memory Access）コントローラ（不図示）などによってＲＡＭ１８１に展開され、ＣＰＵ１８０によって実行されることで、ラベル付与装置１００の機能部が実現される。
【００６２】
以上説明したように、実施形態のラベル付与装置１００は、分類部１２０と、ラベル取得部１３０と、学習部１４０を備える。分類部１２０は、対象データＴＤから変換された特徴ベクトルｘを、複数の分類ベクトルｗを用いて分類する。ラベル取得部１３０は、分類部１２０による分類結果に基づいて、対象データＴＤに付与するラベルＬを取得する。学習部１４０は、複数の特徴ベクトルｘのそれぞれに、ラベルを示すラベルベクトルｙが対応付けられた学習データＤを取得し、類似するラベルベクトルが同じクラスタに分類されるように学習データＤを分割することを一回以上実行することで、複数の分類ベクトルｗを学習する。これによって、ラベル付与装置１００は、より正確かつ高速に対象データにラベルを付与することができる。
【００６３】
なお、上記実施形態において、特徴ベクトル変換部１１０はラベル付与装置１００に設けられることとしたが、ラベル付与装置とは異なる特徴ベクトル変換装置に設けられていてもよい。この場合、特徴ベクトル変換装置は、対象データＴＤを特徴ベクトルｘに変換し、変換した特徴ベクトルｘをラベル付与装置１００に送信してもよい。ラベル付与装置１００は、特徴ベクトル変換装置から受信した特徴ベクトルｘに基づいて、対象データＴＤにラベルＬを付与してもよい。
【００６４】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００６５】
１００…ラベル付与装置
１１０…特徴ベクトル変換部
１２０…分類部
１３０…ラベル取得部
１４０…学習部
１５０…通信部
１６０…第１記憶部
１７０…第２記憶部
２００…データサーバ
２１０…制御部
２２０…通信部
【図１】
2018136750.tif 000004
【図２】
2018136750.tif 000005
【図３】
2018136750.tif 000006
【図４】
2018136750.tif 000007
【図５】
2018136750.tif 000008
【図６】
2018136750.tif 000009
【図７】
2018136750.tif 000010
【図８】
2018136750.tif 000011
【図９】
2018136750.tif 000012
【図１０】
2018136750.tif 000013
【図１１】
2018136750.tif 000014