特許第6680707号(P6680707)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヤフー株式会社の特許一覧

特許6680707情報処理装置、情報処理方法、およびプログラム
<>
  • 特許6680707-情報処理装置、情報処理方法、およびプログラム 図000003
  • 特許6680707-情報処理装置、情報処理方法、およびプログラム 図000004
  • 特許6680707-情報処理装置、情報処理方法、およびプログラム 図000005
  • 特許6680707-情報処理装置、情報処理方法、およびプログラム 図000006
  • 特許6680707-情報処理装置、情報処理方法、およびプログラム 図000007
  • 特許6680707-情報処理装置、情報処理方法、およびプログラム 図000008
  • 特許6680707-情報処理装置、情報処理方法、およびプログラム 図000009
  • 特許6680707-情報処理装置、情報処理方法、およびプログラム 図000010
  • 特許6680707-情報処理装置、情報処理方法、およびプログラム 図000011
  • 特許6680707-情報処理装置、情報処理方法、およびプログラム 図000012
  • 特許6680707-情報処理装置、情報処理方法、およびプログラム 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6680707
(24)【登録日】2020年3月24日
(45)【発行日】2020年4月15日
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
   G06F 16/35 20190101AFI20200406BHJP
   G06F 16/332 20190101ALI20200406BHJP
   G06N 20/00 20190101ALI20200406BHJP
【FI】
   G06F16/35
   G06F16/332
   G06N20/00 160
【請求項の数】9
【全頁数】14
(21)【出願番号】特願2017-30899(P2017-30899)
(22)【出願日】2017年2月22日
(65)【公開番号】特開2018-136750(P2018-136750A)
(43)【公開日】2018年8月30日
【審査請求日】2019年3月25日
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100181124
【弁理士】
【氏名又は名称】沖田 壮男
(74)【代理人】
【識別番号】100194087
【弁理士】
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】田頭 幸浩
【審査官】 後藤 彰
(56)【参考文献】
【文献】 国際公開第2014/118978(WO,A1)
【文献】 特開2013−54512(JP,A)
【文献】 特開2010−44674(JP,A)
【文献】 特開2010−79871(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/35
G06F 16/332
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
対象データから変換された特徴ベクトルを、複数の分類ベクトルを用いて分類する分類部と、
前記分類部による分類結果に基づいて、前記対象データに付与するラベルを取得するラベル取得部と、
複数の特徴ベクトルのそれぞれに、前記ラベルを示すラベルベクトルが対応付けられた学習データを取得し、類似するラベルベクトルが同じクラスタに分類されるように前記学習データを分割することを一回以上実行することで、前記複数の分類ベクトルを学習する学習部と、
を備える情報処理装置。
【請求項2】
前記学習部は、第1ラベルベクトルに対応する第1特徴ベクトルと、前記第1ラベルベクトルとの内積の値が上位の第2ラベルベクトルに対応する第2特徴ベクトルとを取得し、前記第1特徴ベクトルと前記第2特徴ベクトルとを前記学習データとして用いて、前記複数の分類ベクトルを学習する
請求項1記載の情報処理装置。
【請求項3】
前記学習部は、前記分類ベクトルと、前記第2特徴ベクトルとの内積が大きくなるように、前記分類ベクトルを調整する
請求項2記載の情報処理装置。
【請求項4】
前記学習部は、前記分類ベクトルと、ランダムに取得された第3特徴ベクトルとの内積が小さくなるように、前記分類ベクトルを調整する
請求項2記載の情報処理装置。
【請求項5】
前記学習部によって学習された前記複数の分類ベクトルを記憶する第1記憶部を更に備え、
前記分類部は、前記第1記憶部から前記複数の分類ベクトルを読み出し、読み出した前記複数の分類ベクトルの各々と前記特徴ベクトルとの内積を算出し、算出した内積に基づいて前記特徴ベクトルを分類する
請求項1から4の何れか一項に記載の情報処理装置。
【請求項6】
複数のクラスタのそれぞれにラベルが対応付けられたラベルテーブルを記憶する第2記憶部を更に備え、
前記ラベル取得部は、前記対象データに付与するラベルとして、前記分類部によって前記特徴ベクトルが分類されたクラスタに対応付けられたラベルを、前記第2記憶部に記憶された前記ラベルテーブルから取得する
請求項1から5の何れか一項に記載の情報処理装置。
【請求項7】
前記学習部は、前記学習データを繰り返し分割することで分類木を生成し、
前記分類部は、前記対象データから変換された前記特徴ベクトルを、前記分類木におけるいずれかのリーフノードに分類し、
前記ラベル取得部は、前記分類部によって分類された前記特徴ベクトルが属するリーフノードに対応するラベルを、前記対象データに付与するラベルとして取得する
請求項1記載の情報処理装置。
【請求項8】
対象データから変換された特徴ベクトルを、複数の分類ベクトルを用いて分類する分類工程と、
前記分類工程における分類結果に基づいて、前記対象データに付与するラベルを取得するラベル取得工程と、
複数の特徴ベクトルのそれぞれに、前記ラベルを示すラベルベクトルが対応付けられた学習データを取得し、類似するラベルベクトルが同じクラスタに分類されるように前記学習データを分割することを一回以上実行することで、前記複数の分類ベクトルを学習する学習工程と、
を備える情報処理方法。
【請求項9】
コンピュータを、
対象データから変換された特徴ベクトルを、複数の分類ベクトルを用いて分類する分類部、
前記分類部による分類結果に基づいて、前記対象データに付与するラベルを取得するラベル取得部、
複数の特徴ベクトルのそれぞれに、前記ラベルを示すラベルベクトルが対応付けられた学習データを取得し、類似するラベルベクトルが同じクラスタに分類されるように前記学習データを分割することを一回以上実行することで、前記複数の分類ベクトルを学習する学習部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
従来、テキストデータや画像、音声などの対象データに、「政治」や「経済」などのトピックに対応するラベルを付与するトピック分析装置が知られている(特許文献1参照)。例えば、ユーザによって入力された検索ワードにラベルを付与することで、ユーザの興味のあるカテゴリを判別することができるため、ニュースサイトにおいてユーザに対するニュースレコメンドを行うことができる。
【0003】
特許文献1に開示されたトピック分析装置は、対象データをベクトルデータに変換し、変換したベクトルデータに基づいてラベルを付与する。この際に、トピック分析装置は、予めラベルが付与された教師データを用いて学習を行う。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013−246586号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示されたトピック分析装置は、正確かつ高速に対象データにラベルを付与することができない場合があった。
【0006】
本発明は、このような事情を考慮してなされたものであり、より正確かつ高速に対象データにラベルを付与することができる情報処理装置、情報処理方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【0007】
本発明の一態様は、対象データから変換された特徴ベクトルを、複数の分類ベクトルを用いて分類する分類部と、前記分類部による分類結果に基づいて、前記対象データに付与するラベルを取得するラベル取得部と、複数の特徴ベクトルのそれぞれに、前記ラベルを示すラベルベクトルが対応付けられた学習データを取得し、類似するラベルベクトルが同じクラスタに分類されるように前記学習データを分割することを一回以上実行することで、前記複数の分類ベクトルを学習する学習部と、を備える情報処理装置である。
【発明の効果】
【0008】
本発明の一態様によれば、より正確かつ高速に対象データにラベルを付与することができる。
【図面の簡単な説明】
【0009】
図1】実施形態に係るラベル付与装置100の使用環境を示す図である。
図2】実施形態に係るラベル付与装置100の詳細構成を示すブロック図である。
図3】実施形態に係るベクトルテーブルT1の一例を示す図である。
図4】実施形態に係る分類木の一例を示す図である。
図5】実施形態に係るラベルテーブルT2の一例を示す図である。
図6】実施形態に係る学習データDの一例を示す図である。
図7】実施形態に係る式(1)を概念的に説明するための図である。
図8】実施形態に係る学習データDの分割処理を説明するための図である。
図9】実施形態に係るラベル付与処理を示すフローチャートである。
図10】実施形態に係る分類ベクトルwの学習処理を示すフローチャートである。
図11】実施形態に係るラベル付与装置100のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、情報処理装置、情報処理方法、およびプログラムの実施形態について説明する。本実施形態においては、情報処理装置の一例として、ラベル付与装置について説明する。ラベル付与装置は、対象データの内容に応じて、「政治」、「経済」、「スポーツ」といったラベルを対象データに付与する装置である。ラベル付与装置は、ウェブページなどを管理するサーバ装置に対してクラウドサービスによってラベルを提供する装置であってもよいし、上記サーバ装置に内蔵されるものであってもよい。対象データに付与されたラベルは、ニュースサイトにおけるニュースレコメンドに使用されてもよいし、ユーザ端末に表示される広告の選択に使用されてもよい。
【0011】
<1.ラベル付与装置の使用環境>
図1は、実施形態に係るラベル付与装置100の使用環境を示す図である。実施形態のラベル付与装置100は、ネットワークNWを介してデータサーバ200と通信する。ネットワークNWは、例えば、WAN(Wide Area Network)、LAN(Local Area Network)、インターネット、プロバイダ装置、無線基地局、専用回線などのうちの一部または全部を含む。
【0012】
ラベル付与装置100は、特徴ベクトル変換部110と、分類部120と、ラベル取得部130と、学習部140と、通信部150と、第1記憶部160と、第2記憶部170とを備える。
【0013】
特徴ベクトル変換部110、分類部120、ラベル取得部130、および学習部140は、例えば、ラベル付与装置100のプロセッサがプログラムを実行することで実現されてもよいし、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0014】
通信部150は、例えばNIC(Network Interface Card)を備える。ラベル付与装置100は通信部150を用いて、ネットワークNWを介してデータサーバ200と通信する。第1記憶部160および第2記憶部170は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。また、第1記憶部160および第2記憶部170の一部または全部は、NAS(Network Attached Storage)や外部のストレージサーバなど、ラベル付与装置100がアクセス可能な外部装置であってもよい。
【0015】
データサーバ200は、制御部210と、通信部220とを備える。制御部210は、例えば、データサーバ200のプロセッサがプログラムを実行することで実現されてもよいし、LSI、ASIC、FPGAなどのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0016】
通信部220は、例えばNICを備える。制御部210は、通信部220を用いて、ネットワークNWを介してラベル付与装置100に対象データを送信する。対象データは、例えば、検索サイトにおいてユーザによって入力された検索クエリであるが、これに限られない。例えば、対象データは、ユーザが閲覧したページのページデータ、ユーザが閲覧したページのURL(Uniform Resource Locator)、ブログ(ウェブログ)サービスにおいて投稿された記事、またはソーシャルネットワーキングサービス(SNS)において投稿された記事等であってもよい。ここで、ページデータは、ウェブ上にあり、ブラウザで閲覧可能なページ単位のデータである。例えば、ページデータは、画像データおよびHTML(HyperText Markup Language)データを含む。なお、ページデータは、ブラウザに限らず、アプリケーションプログラムによって再生されるデータであってもよい。
【0017】
<2.ラベル付与装置によるラベル付与処理>
図2は、実施形態に係るラベル付与装置100の詳細構成を示すブロック図である。ラベル付与装置100は、データサーバ200から対象データTDを受信し、受信した対象データTDにラベルを付与する。ラベルは、対象データTDを分類するためのデータであり、例えば、「政治」、「経済」、「スポーツ」などの対象データTDが属するジャンルを示すデータである。詳細は後述するが、ラベルは対象データTDに付与される。以下、ラベル付与装置100のラベル付与動作について詳細に説明する。
【0018】
通信部150は、データサーバ200から対象データTDを受信し、受信した対象データTDを特徴ベクトル変換部110に出力する。特徴ベクトル変換部110は、通信部150から入力された対象データTDを特徴ベクトルxに変換する。例えば、対象データTDが検索クエリである場合には、特徴ベクトルxは検索クエリに含まれる単語の集合を示すベクトルであってよい。また、対象データTDがページデータである場合には、特徴ベクトルxはページデータに含まれる単語の集合を示すベクトルであってよい。特徴ベクトル変換部110は、特徴ベクトルxを、分類部120に出力する。
【0019】
第1記憶部160には、学習部140によって学習された複数の分類ベクトル(ベクトルテーブルT1)が記憶されている。特徴ベクトルxが特徴ベクトル変換部110から分類部120に入力されると、分類部120は、第1記憶部160に記憶されたベクトルテーブルT1を参照し、分類ベクトルwを読み出す。また、分類部120は、読み出した分類ベクトルwを用いて、入力された特徴ベクトルxを複数のクラスタCからCのいずれかに分類する。ここで、nはクラスタの総数を示す。分類部120は、特徴ベクトルxが分類されたクラスタのクラスタ番号mを、ラベル取得部130に出力する。ここで、1≦m≦nである。以下、分類部120による分類処理を具体的に説明する。
【0020】
図3は、実施形態に係るベクトルテーブルT1の一例を示す図である。図3に示されるように、ベクトルテーブルT1は、ノード番号と分類ベクトルとが関連付けられたデータである。ノード番号は、後述する分類木のノードに付与された番号を示す。分類ベクトルは、対象データTDの分類に用いられるベクトルである。図3に示される例においては、ノード番号1からsのそれぞれに、分類ベクトルwからwが関連付けられている。
【0021】
図4は、実施形態に係る分類木の一例を示す図である。分類木には、複数のノードが含まれる。分類木のルートノードは、ノードN1である。分類木の複数のリーフノードは、複数のクラスタCからCに対応する。
【0022】
分類部120は、第1記憶部160から分類ベクトルwを読み出し、読み出した分類ベクトルwと特徴ベクトルxとの内積を算出し、算出した内積に基づいて特徴ベクトルxを分類する。例えば、分類部120は、ルートノードN1において、第1記憶部160に記憶されたベクトルテーブルT1を参照して、分類ベクトルwを取得する。次に、分類部120は、取得した分類ベクトルwと特徴ベクトルxとの内積を算出する。分類部120は、算出した内積が0以上の場合はノードN2に移行し、算出した内積が0未満の場合はノードN3に移行する。
【0023】
また、分類部120は、ノードN2において、第1記憶部160に記憶されたベクトルテーブルT1を参照して、分類ベクトルwを取得する。次に、分類部120は、取得した分類ベクトルwと特徴ベクトルxとの内積を算出する。分類部120は、算出した内積が0以上の場合はノードN4に移行し、算出した内積が0未満の場合はノードN5に移行する。
【0024】
一方、分類部120は、ノードN3において、第1記憶部160に記憶されたベクトルテーブルT1を参照して、分類ベクトルwを取得する。次に、分類部120は、取得した分類ベクトルwと特徴ベクトルxとの内積を算出する。分類部120は、算出した内積が0以上の場合はノードN6に移行し、算出した内積が0未満の場合はノードN7に移行する。
【0025】
分類部120は、以上の処理を各ノードにおいて行うことで、特徴ベクトルxをいずれかのリーフノード(クラスタCからC)に分類する。分類部120は、特徴ベクトルxが分類されたリーフノード(クラスタ)に対応するクラスタ番号mを、ラベル取得部130に出力する。
【0026】
クラスタ番号mが分類部120からラベル取得部130に入力されると、ラベル取得部130は、クラスタ番号mに対応するラベルLを第2記憶部170から読み出す。具体的には、複数のクラスタのそれぞれにラベルが対応付けられたラベルテーブルT2が、第2記憶部170に記憶されている。詳細は後述するが、ラベルテーブルT2は、学習部140によって生成される。ラベル取得部130は、第2記憶部170に記憶されたラベルテーブルT2を参照して、クラスタ番号mに対応するラベルLを取得する。
【0027】
図5は、実施形態に係るラベルテーブルT2の一例を示す図である。図5に示されるように、ラベルテーブルT2は、クラスタ番号と、ラベルとが関連付けられたデータである。図5に示される例においては、クラスタ番号1にラベルL1−1、ラベルL1−2、・・・が対応付けられ、クラスタ番号2にラベルL2−1、ラベルL2−2、・・・が対応付けられ、・・・、クラスタ番号nにラベルLn−1、ラベルLn−2、・・・が対応付けられている。なお、各クラスタ番号には、複数のラベルが関連付けられてもよいし、一つのラベルが関連付けられてもよい。
【0028】
ラベル取得部130は、対象データTDに付与するラベルLとして、分類部120によって特徴ベクトルxが分類されたクラスタに対応付けられたラベルを、第2記憶部170に記憶されたラベルテーブルT2から取得する。具体的には、ラベル取得部130は、クラスタ番号mに関連付けられたラベルLをラベルテーブルT2から取得する。
【0029】
その後、ラベル取得部130は、取得したラベルLを通信部150に出力する。通信部150は、ラベル取得部130から入力されたラベルLを、データサーバ200に送信する。以上の処理によって、ラベル付与装置100は、対象データTDにラベルLを付与することができる。
【0030】
データサーバ200は、ラベル付与装置100から受信したラベルLに基づき、ニュースサイトにおけるニュースレコメンドを行う。例えば、データサーバ200は、対象データTDに付与されたラベルL(「政治」や「経済」等)に基づいて、ラベルLに対応するニュースをユーザにレコメンドする。
【0031】
また、データサーバ200は、ラベル付与装置100から受信したラベルLに基づき、ユーザが所有するユーザ端末に配信する広告を選択してもよい。例えば、データサーバ200は、対象データTDに付与されたラベルL(「時計」や「指輪」等)に基づいて、ラベルLに対応する広告をユーザ端末に配信してもよい。
【0032】
<3.学習部による分類ベクトルの学習処理>
次に、学習部140による、第1記憶部160に記憶された分類ベクトルwからw図3参照)の学習処理の詳細を説明する。学習部140が分類ベクトルwからwの学習処理を行うことで、分類部120による特徴ベクトルxの分類処理を高精度に行うことができる。
【0033】
図6は、実施形態に係る学習データDの一例を示す図である。学習部140は、学習データDを用いて、ベクトルテーブルT1に含まれる分類ベクトルwからwを学習する。学習データDは、特徴ベクトルとラベルベクトルとが関連付けられたt個のデータを含む。具体的に、学習データDは、特徴ベクトルxからxが、それぞれラベルベクトルyからyに関連付けられたデータである。図6に示される例において、特徴ベクトルxからxおよびラベルベクトルyからyは、p次元のベクトルである。
【0034】
例えば、図6に示されるように、特徴ベクトルxはラベルベクトルyに関連付けられ、特徴ベクトルxはラベルベクトルyに関連付けられ、特徴ベクトルxはラベルベクトルyに関連付けられ、・・・、特徴ベクトルxはラベルベクトルyに関連付けられる。
【0035】
学習部140は、第1ラベルベクトルyに対応する第1特徴ベクトルxと、第1ラベルベクトルyとの内積の値が大きい上位所定数の第2ラベルベクトルyに対応する第2特徴ベクトルxとを取得し、第1特徴ベクトルxと第2特徴ベクトルxとを学習データとして用いて、複数の分類ベクトルwからwを学習する。
【0036】
具体的に、学習部140は、以下の式(1)に示される値が最大となるように、分類ベクトルwを求める。式(1)において、i、j、およびkは、インデックス(添え字)を示す。Nは、特徴ベクトルxに対応するラベルベクトルyとの内積の値が大きい上位N個のラベルベクトルのインデックスの集合(N−近傍点)を示す。式(1)においては、計算を簡略化して求めたNの近似値を使用している。Cは、+1または−1のいずれかである。具体的には、w≧0の場合はC=+1であり、それ以外の場合はC=−1である。Sは、ランダムにサンプリングされたインデックスの集合を示す。Sは、分布が一様になるように調整されてサンプリングされたインデックスの集合であってもよい。λは、任意に設定されたパラメータである。
【0037】
【数1】
【0038】
式(1)に示されるように、学習部140は、分類ベクトルwと、第2特徴ベクトルxとの内積が大きくなるように、分類ベクトルwを調整する。また、学習部140は、分類ベクトルwと、ランダムに取得された第3特徴ベクトルxとの内積が小さくなるように、分類ベクトルwを調整する。
【0039】
図7は、実施形態に係る式(1)を概念的に説明するための図である。図7において、xはNに含まれる特徴ベクトルであり、xはランダムにサンプリングされた特徴ベクトルである。図7に示されるように、xとxとを同じクラスタに分類するように分類ベクトルwを調整することで、式(1)の第1項の値は大きくなる。また、xとxとを異なるクラスタに分類するように分類ベクトルwを調整することで、式(1)の第2項の値は大きくなる。このように、学習部140は、式(1)に示される値が最大となるように、分類ベクトルwを求める。
【0040】
図8は、実施形態に係る学習データDの分割処理を説明するための図である。図8に示されるように、学習データDはグラフGとして表される。グラフGにおいて、互いに類似するラベルベクトル同士がエッジによって接続されている。
【0041】
前述したように、学習部140は、式(1)に示される値が最大となるように、分類ベクトルwを求める。グラフGとして表された学習データDは、分類ベクトルwによって2つに分割される。具体的には、学習データDは、分類ベクトルwとの内積が0以上の学習データの集合と、分類ベクトルwとの内積が0未満の学習データの集合とに分割される。
【0042】
学習部140は、分割されたそれぞれの学習データの集合に対して、式(1)を用いて同様に分割処理を行う。これによって、学習部140は、分類ベクトルwおよび分類ベクトルwを算出することができる。学習部140は、学習データDを繰り返し(一回以上)分割することで分類木(図4)を生成する。この点について、以下詳細に説明する。
【0043】
例えば、学習データDに含まれるデータの個数t=1000の場合、図4におけるルートノードN1には1000個の学習データが存在する。学習部140は、式(1)を用いて算出された分類ベクトルwを用いて、1000個の学習データを2つに分割する。分割された学習データは、ノードN2とノードN3のいずれかに分類される。
【0044】
例えば、ノードN2に450個の学習データが分類され、ノードN3に550個の学習データが分類されたとする。この場合、学習部140は、ノードN2に分類された450個の学習データを用いて、式(1)に示される値が最大となるように、分類ベクトルwを求める。学習部140は、式(1)を用いて算出された分類ベクトルwを用いて、450個の学習データを2つに分割する。分割された学習データは、ノードN4とノードN5のいずれかに分類される。
【0045】
学習部140は、以上の分割処理を、リーフノードに至るまで繰り返し実行する。これによって、学習部140は、各ノードにおいて使用される分類ベクトルwからwを算出することができる。したがって、学習部140は、図3に示されるベクトルテーブルT1と、図4に示される分類木とを生成することができる。
【0046】
このように、学習部140は、複数の特徴ベクトルxのそれぞれに、ラベルを示すラベルベクトルyが対応付けられた学習データDを取得する。学習部140は、類似するラベルベクトルが同じリーフノード(クラスタ)に分類されるように学習データDを繰り返し(一回以上)分割することで、複数の分類ベクトルwを学習する。これによって、ラベル付与装置100は、特徴ベクトルxを正確に分類することができる。
【0047】
学習部140は、リーフノード(クラスタ)毎に、分類された学習データに対応するラベルを取得する。また、学習部140は、取得したリーフノード(クラスタ)毎のラベルを用いて、ラベルテーブルT2を生成する。
【0048】
分類部120は、対象データTDから変換された特徴ベクトルxを、複数の分類ベクトルwを用いて分類木におけるいずれかのリーフノードに分類する。ラベル取得部130は、ラベルテーブルT2を参照して、分類部120によって分類された特徴ベクトルxが属するリーフノード(クラスタ)に対応するラベルを、対象データTDに付与するラベルLとして取得する。これによって、ラベル付与装置100は、高速に対象データにラベルを付与することができる。
【0049】
<4.ラベル付与処理のフローチャート>
図9は、実施形態に係るラベル付与処理を示すフローチャートである。本フローチャートによる処理は、ラベル付与装置100によって実行される。
【0050】
まず、ラベル付与装置100は、通信部150がデータサーバ200から対象データTDを受信したか否かを判定する(S100)。通信部150がデータサーバ200から対象データTDを受信した場合、特徴ベクトル変換部110は、通信部150によって受信された対象データTDを、特徴ベクトルxに変換する(S102)。特徴ベクトル変換部110は、特徴ベクトルxを分類部120に出力する。
【0051】
分類部120は、特徴ベクトル変換部110によって変換された特徴ベクトルxを、複数の分類ベクトルwを用いて分類する(S104)。また、分類部120は、特徴ベクトルxが分類されたクラスタのクラスタ番号mを、ラベル取得部130に出力する。
【0052】
ラベル取得部130は、第2記憶部170に記憶されたラベルテーブルT2を参照し、分類部120から入力されたクラスタ番号mに対応するラベルLを取得する(S106)。その後、ラベル取得部130は、取得したラベルLを通信部150に出力する。
【0053】
通信部150は、ラベル取得部130によって取得されたラベルLを、データサーバ200に送信し(S108)、前述のS100に処理を戻す。以上が、ラベル付与処理の一連の流れである。
【0054】
<5.分類ベクトルの学習処理のフローチャート>
図10は、実施形態に係る分類ベクトルwの学習処理を示すフローチャートである。本フローチャートによる処理は、学習部140によって実行される。
【0055】
まず、学習部140は、学習データDを取得する(S202)。例えば、学習部140は、ネットワークNWを介して外部装置から学習データDを受信するが、これに限られない。例えば、学習部140は、ラベル付与装置100に装着されたUSB(Universal Serial Bus)メモリやフラッシュメモリから学習データDを読み出してもよい。
【0056】
学習部140は、ノード番号iに1を代入する(S204)。これによって、学習部140は、ルートノードN1から分類ベクトルwの算出を開始する。学習部140は、前述の式(1)に示される値が最大となるように、分類ベクトルw(ここではw)を算出する(S206)。
【0057】
学習部140は、算出した分類ベクトルwを用いて、学習データを2つの集合に分割する(S208)。具体的に、学習部140は、学習データを、分類ベクトルwとの内積が0以上である学習データの集合と、分類ベクトルwとの内積が0未満である学習データの集合とに分割する。
【0058】
学習部140は、S208における分割処理によって、分類木(図4)における最終のリーフノードが生成されたか否かを判定する(S210)。学習部140は、最終のリーフノードが生成されていないと判定した場合、ノード番号iに1を加算し(S212)、前述のS206に処理を戻す。これによって、学習部140は、分割された各集合に対して、S206からS210に示される処理を行うこととなる。
【0059】
一方、学習部140は、最終のリーフノードが生成されたと判定した場合、算出した分類ベクトルwからwを用いて、ベクトルテーブルT1(図3)を生成する(S214)。
【0060】
また、学習部140は、リーフノード(クラスタ)毎に、分類された学習データに対応するラベルを取得する。その後、学習部140は、取得したリーフノード(クラスタ)毎のラベルを用いて、ラベルテーブルT2を生成し(S216)、本フローチャートによる処理を終了する。
【0061】
<6.ハードウェア構成>
図11は、実施形態に係るラベル付与装置100のハードウェア構成の一例を示す図である。ラベル付与装置100は、例えば、CPU180、RAM181、ROM182、フラッシュメモリやHDDなどの二次記憶装置183、NIC184、ドライブ装置185、キーボード186、およびマウス187が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置185には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置183、またはドライブ装置185に装着された可搬型記憶媒体に記憶されたプログラムがDMA(Direct Memory Access)コントローラ(不図示)などによってRAM181に展開され、CPU180によって実行されることで、ラベル付与装置100の機能部が実現される。
【0062】
以上説明したように、実施形態のラベル付与装置100は、分類部120と、ラベル取得部130と、学習部140を備える。分類部120は、対象データTDから変換された特徴ベクトルxを、複数の分類ベクトルwを用いて分類する。ラベル取得部130は、分類部120による分類結果に基づいて、対象データTDに付与するラベルLを取得する。学習部140は、複数の特徴ベクトルxのそれぞれに、ラベルを示すラベルベクトルyが対応付けられた学習データDを取得し、類似するラベルベクトルが同じクラスタに分類されるように学習データDを分割することを一回以上実行することで、複数の分類ベクトルwを学習する。これによって、ラベル付与装置100は、より正確かつ高速に対象データにラベルを付与することができる。
【0063】
なお、上記実施形態において、特徴ベクトル変換部110はラベル付与装置100に設けられることとしたが、ラベル付与装置とは異なる特徴ベクトル変換装置に設けられていてもよい。この場合、特徴ベクトル変換装置は、対象データTDを特徴ベクトルxに変換し、変換した特徴ベクトルxをラベル付与装置100に送信してもよい。ラベル付与装置100は、特徴ベクトル変換装置から受信した特徴ベクトルxに基づいて、対象データTDにラベルLを付与してもよい。
【0064】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0065】
100…ラベル付与装置
110…特徴ベクトル変換部
120…分類部
130…ラベル取得部
140…学習部
150…通信部
160…第1記憶部
170…第2記憶部
200…データサーバ
210…制御部
220…通信部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11