特許第6235082号(P6235082)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

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

▶ ヤフー株式会社の特許一覧
特許6235082データ分類装置、データ分類方法、およびプログラム
<>
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000007
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000008
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000009
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000010
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000011
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000012
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000013
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000014
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000015
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000016
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000017
  • 特許6235082-データ分類装置、データ分類方法、およびプログラム 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6235082
(24)【登録日】2017年11月2日
(45)【発行日】2017年11月22日
(54)【発明の名称】データ分類装置、データ分類方法、およびプログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20171113BHJP
【FI】
   G06F17/30 210D
【請求項の数】13
【全頁数】18
(21)【出願番号】特願2016-138344(P2016-138344)
(22)【出願日】2016年7月13日
【審査請求日】2016年12月19日
【早期審査対象出願】
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100174986
【弁理士】
【氏名又は名称】林 康旨
(72)【発明者】
【氏名】鍜治 伸裕
【審査官】 樋口 龍弥
(56)【参考文献】
【文献】 特開2016−016295(JP,A)
【文献】 特開平05−242064(JP,A)
【文献】 word2vecによる文章表現/ディープラーニング所感|備忘録blog,[online],日本,2016年 6月21日,[検索日:2017.4.10],インターネット:<URL:https://web-archive.org/web/20160621001510/http://sharply.hatenablog.com/entry/2016/06/11/235612>,URL,https://web-archive.org/web/20160621001510/http://sharply.hatenablog.com/entry/2016/06/11/235612
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
入力される分類対象データを特徴量表現に変換する変換部と、
前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部と、
前記分類部によってラベルを付与される前記分類対象データを蓄積したデータを第1学習データとして用いて、前記変換部の変換処理を学習する第1学習部と、
前記分類対象データと同種のデータに対してラベルが付与された第2学習データを用いて、前記分類部の分類処理を学習する第2学習部と、
を備えるデータ分類装置。
【請求項2】
前記変換部は、単語とベクトルが対応付けられたベクトル表現テーブルを参照して、前記分類対象データを前記特徴量表現としてのベクトルデータに変換し、
前記第1学習部は、正例または負例を示す情報を含まない前記第1学習データを用いて、前記ベクトル表現テーブルに含まれるベクトルを更新する
請求項1記載のデータ分類装置。
【請求項3】
前記第1学習部は、前記分類対象データに含まれる第1の単語に対応づけられた第1のベクトルと、前記第1の単語に関連する第2の単語に対応づけられた第2のベクトルとが近い値となるように、前記ベクトル表現テーブルに含まれる前記第1のベクトルと前記第2のベクトルとを更新する
請求項2記載のデータ分類装置。
【請求項4】
前記第1の単語に関連する第2の単語とは、前記分類対象データにおいて、前記第1の単語から所定単語以内に存在する単語である
請求項3記載のデータ分類装置。
【請求項5】
前記第1学習部は、前記第1のベクトルと、前記第2のベクトルと、負例に対応付けられた第3のベクトルとを用いて損失関数を算出し、算出した損失関数を偏微分した値を用いて、前記第1のベクトルと、前記第2のベクトルと、前記第3のベクトルとを更新する
請求項3または4記載のデータ分類装置。
【請求項6】
前記第2学習部は、正例または負例を示す情報を含む前記第2学習データに基づいて、前記変換部によって変換された前記特徴量表現を分類するために用いられる分類基準パラメータを更新する
請求項1記載のデータ分類装置。
【請求項7】
前記第2学習部は、前記第2学習データを前記変換部に出力し、
前記変換部は、前記第2学習部から出力された前記第2学習データを前記特徴量表現に変換し、変換した前記特徴量表現を前記第2学習部に出力し、
前記第2学習部は、前記変換部から出力された前記特徴量表現と、前記第2学習データに付与された前記ラベルとに基づき、前記分類基準パラメータを更新する
請求項6記載のデータ分類装置。
【請求項8】
前記変換部および前記分類部による処理は、前記第1学習部および前記第2学習部による処理とは非同期で実行される
請求項1記載のデータ分類装置。
【請求項9】
前記第1学習データは、第1記憶部に記憶され、
前記第1学習部は、前記第1記憶部に記憶された前記第1学習データが所定量を超えた場合に、前記変換部の変換処理を学習する学習処理を開始する
請求項1記載のデータ分類装置。
【請求項10】
前記第1学習部は、前記変換部の変換処理を学習する学習処理が完了した場合、前記第1学習データを前記第1記憶部から消去または無効化する
請求項9記載のデータ分類装置。
【請求項11】
入力される分類対象データを特徴量表現に変換する変換部と、
前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部と、
前記分類部によってラベルを付与される前記分類対象データを蓄積したデータを学習データとして用いて、前記変換部の変換処理を学習する学習部と、
を備えるデータ分類装置。
【請求項12】
入力される分類対象データを特徴量表現に変換する変換工程と、
変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類工程と、
前記分類工程でラベルを付与される前記分類対象データを蓄積したデータを第1学習データとして用いて、前記変換工程の変換処理を学習する第1学習工程と、
前記分類対象データと同種のデータに対してラベルが付与された第2学習データを用いて、前記分類工程の分類処理を学習する第2学習工程と、
を備えるデータ分類方法。
【請求項13】
コンピュータを、
入力される分類対象データを特徴量表現に変換する変換部、
前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部、
前記分類部によってラベルを付与される前記分類対象データを蓄積したデータを第1学習データとして用いて、前記変換部の変換処理を学習する第1学習部、
前記分類対象データと同種のデータに対してラベルが付与された第2学習データを用いて、前記分類部の分類処理を学習する第2学習部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ分類装置、データ分類方法、およびプログラムに関する。
【背景技術】
【0002】
従来、テキストデータや画像、音声などの分類対象データに、「政治」や「経済」などのトピックに対応するラベルを付与するトピック分析装置が知られている(特許文献1参照)。トピック分析装置は、SNS(Social Networking Service)の分野などで好適に用いられる。
【0003】
トピック分析装置は、分類対象データをベクトルデータに変換し、変換したベクトルデータに基づいてラベルを付与する。また、トピック分析装置は、予めラベルが付与された文書データ(教師データ)を用いて学習することで、ラベル付与の精度を向上させることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013−246586号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示されたトピック分析装置は、ラベルを付与することによりデータを分類する分類部に対する学習処理を行うものの、分類対象データをベクトルデータに変換する変換部に対する学習処理を行うことはできなかった。
【0006】
本発明は、このような事情を考慮してなされたものであり、データを特徴量表現に変換する変換処理を効率よく学習することができるデータ分類装置、情報処理装置、データ分類方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【0007】
本発明の一態様は、入力される分類対象データを特徴量表現に変換する変換部と、前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部と、前記入力される分類対象データを蓄積したデータを第1学習データとして用いて、前記変換部の変換処理を学習する第1学習部と、前記分類対象データと同種のデータに対してラベルが付与された第2学習データを用いて、前記分類部の分類処理を学習する第2学習部と、を備えるデータ分類装置である。
【発明の効果】
【0008】
本発明の一態様によれば、データを特徴量表現に変換する変換処理を効率よく学習することができる。
【図面の簡単な説明】
【0009】
図1】実施形態に係るデータ分類装置100の使用環境を示す図である。
図2】実施形態に係るデータ分類装置100の詳細構成を示すブロック図である。
図3】実施形態に係るベクトル表現テーブルTBの一例を示す図である。
図4】実施形態に係るワードベクトルVの算出方法の一例を示す図である。
図5】実施形態に係るラベル付与処理を説明するための図である。
図6】実施形態に係る第1学習データD1の一例を示す図である。
図7】実施形態に係る第2学習データD2の一例を示す図である。
図8】実施形態に係るラベル付与処理を示すフローチャートである。
図9】実施形態に係る特徴量変換器130の変換処理を学習する学習処理(第1学習処理)を示すフローチャートである。
図10】実施形態に係る分類部141の分類処理を学習する学習処理(第2学習処理)を示すフローチャートである。
図11】実施形態に係るデータ分類装置100のハードウェア構成の一例を示す図である。
図12】他の実施形態に係るデータ分類装置100の詳細構成を示すブロック図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、データ分類装置、情報処理装置、データ分類方法、およびプログラムの実施形態について説明する。データ分類装置は、例えば、SNSにおいてリアルタイムに投稿されるデータを分類対象データとし、「政治」、「経済」、「スポーツ」といったラベルを付与することで、投稿されるデータをテーマごとに分類するのを補助する装置である。データ分類装置は、SNSなどを管理するサーバ装置に対してクラウドサービスによって分類結果を提供する装置であってもよいし、上記サーバ装置に内蔵されるものであってもよい。
【0011】
データ分類装置は、分類対象データを特徴量表現に変換し、特徴量表現に基づいてラベルを付与すると共に、これらの処理の内容を学習することで、分類対象データに対して適切なラベルを付与することができる。なお、以下の説明では、一例として、特徴量表現はベクトルデータであるものとし、分類対象データは複数の単語を含むテキストデータであるものとする。
【0012】
<1.データ分類装置の使用環境>
図1は、実施形態に係るデータ分類装置100の使用環境を示す図である。実施形態のデータ分類装置100は、ネットワークNWを介してデータサーバ200と通信する。ネットワークNWは、例えば、WAN(Wide Area Network)、LAN(Local Area Network)、インターネット、プロバイダ装置、無線基地局、専用回線などのうち一部または全部を含む。
【0013】
データ分類装置100は、データ管理部110と、受付部120と、特徴量変換器130と、分類器140と、第1記憶部150と、第2記憶部160と、学習器170とを備える。データ管理部110、特徴量変換器130、分類器140、および学習器170は、例えば、データ分類装置100のプロセッサがプログラムを実行することで実現されてもよいし、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0014】
受付部120は、ユーザからの入力を受け付けるキーボードやマウスなどの装置である。第1記憶部150および第2記憶部160は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。また、第1記憶部150および第2記憶部160の一部または全部は、NAS(Network Attached Storage)や外部のストレージサーバなど、データ分類装置100がアクセス可能な外部装置であってもよい。
【0015】
データサーバ200は、制御部210と、通信部220とを備える。制御部210は、例えば、データサーバ200のプロセッサがプログラムを実行することで実現されてもよいし、LSI、ASIC、FPGAなどのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0016】
通信部220は、例えばNIC(Network Interface Card)を備える。制御部210は、通信部220を用いて、ネットワークNWを介してデータ分類装置100にストリームデータを逐次送信する。「ストリームデータ」とは、大量に際限なく到来する時刻順のデータであり、例えば、ブログ(ウェブログ)サービスにおいて投稿された記事や、ソーシャルネットワーキングサービス(SNS)において投稿された記事である。また、ストリームデータには、各種センサから制御装置等に提供されるセンサデータ(GPSにより測位される位置、加速度、温度など)が含まれてもよい。データ分類装置100は、データサーバ200から受信したストリームデータを、分類対象データとして使用する。
【0017】
<2.データ分類装置によるラベル付与処理>
図2は、実施形態に係るデータ分類装置100の詳細構成を示すブロック図である。データ分類装置100は、データサーバ200からストリームデータ(以下、分類対象データTDと称す)を受信し、受信した分類対象データTDにラベルを付与することで分類対象データTDを分類する。ラベルは、分類対象データTDを分類するためのデータであり、例えば、「政治」、「経済」、「スポーツ」などの分類対象データTDが属するジャンルを示すデータである。以下、データ分類装置100の分類動作について詳細に説明する。
【0018】
データ管理部110は、データサーバ200から分類対象データTDを受信し、受信した分類対象データTDを特徴量変換器130に出力する。また、データ管理部110は、受信した分類対象データTDを、第1学習データD1として第1記憶部150に記憶させる。
【0019】
特徴量変換器130は、データ管理部110から出力された分類対象データTDから単語を抽出し、抽出した単語を、ベクトル表現テーブルTBを参照してベクトルに変換する。
【0020】
図3は、実施形態に係るベクトル表現テーブルTBの一例を示す図である。ベクトル表現テーブルTBは、学習器170によって管理される不図示のテーブルメモリに記憶される。ベクトル表現テーブルTBには、k個の単語のそれぞれに対して分散表現によって生成されるp次元のベクトルが対応付けられている。ベクトル表現テーブルTBに含まれる単語の上限数kは、テーブルメモリの容量に応じて適宜決定されるとよい。ベクトルの次元数pは、データの分類を正確に行うために十分な値が設定されるとよい。なお、ベクトル表現テーブルTBに含まれる各ベクトルは、後述する第1学習部171によって行われる学習処理によって算出される。
【0021】
例えば、単語W1に対してはベクトルV1=(V1−1,V1−2,・・・,V1−p)が対応付けられており、単語W2に対してはベクトルV2=(V2−1,V2−2,・・・,V2−p)が対応付けられており、単語Wkに対してはベクトルVk=(Vk−1,Vk−2,・・・,Vk−p)が対応付けられている。特徴量変換器130は、分類対象データTDから抽出した全ての単語をベクトルに変換し、変換した全てのベクトルを足し合わせることで、ワードベクトルVを算出する。
【0022】
図4は、実施形態に係るワードベクトルVの算出方法の一例を示す図である。図4に示される例において、特徴量変換器130は、分類対象データTDから単語W1、単語W2、および単語W3を抽出したこととする。この場合、特徴量変換器130は、ベクトル表現テーブルTBを参照して、単語W1をベクトルV1に変換し、単語W2をベクトルV2に変換し、単語W3をベクトルV3に変換する。
【0023】
次に、特徴量変換器130は、ベクトルV1、ベクトルV2、およびベクトルV3の和を求めることで、ワードベクトルVを算出する。すなわち、図4に示される例においては、VD=V1+V2+V3である。このため、分類対象データTDから抽出された単語数に関わらず、ワードベクトルVの次元数はpである。
【0024】
このように、特徴量変換器130は、学習器170によって管理されるベクトル表現テーブルTBを参照して、データ管理部110から入力される分類対象データTDをワードベクトルVに変換する。その後、特徴量変換器130は、変換したワードベクトルVと分類対象データTDとを分類器140に出力する。
【0025】
なお、特徴量変換器130は、各ベクトルの和をワードベクトルVとして算出することとしたが、これに限られない。例えば、特徴量変換器130は、各ベクトルの平均値である平均ベクトルを、ワードベクトルVとして算出してもよいし、各ベクトルの内容を反映したものであれば、如何なるベクトルをワードベクトルVとして算出してもよい。
【0026】
分類器140は、分類部141と第2学習部142とを備え、例えば線形モデルを用いて分類対象データTDを分類する。特徴量変換器130からワードベクトルVおよび分類対象データTDが入力されると、分類部141は、入力されたワードベクトルVに対応するラベルを導出し、導出したラベルを分類対象データTDに付与する。これによって、分類対象データTDが分類される。ここでいう分類とは、単語列をラベル列に変換する構造予測のような、広義の分類を含む。なお、分類器140にはワードベクトルVが入力されることとしたが、データが入力されてもよい。この場合、分類器140は、ワードベクトルV以外に入力されたデータ(例えば日付、分類の閾値や総数などを調整する各種パラメータ等)を反映させて処理を行ってもよい。
【0027】
図5は、実施形態に係るラベル付与処理を説明するための図である。ここでは、説明を簡易にするために、各単語が2次元のワードベクトル(x,y)に変換された例について説明する。図5において、横軸はワードベクトルのxの値を示し、縦軸はワードベクトルのyの値を示す。グループG1は、ラベルL1が付与されたワードベクトルVのグループである。グループG2は、ラベルL2が付与されたワードベクトルVのグループである。
【0028】
境界BDは、ワードベクトルVがグループG1とグループG2の何れに属するのかを判定するために用いられる分類基準パラメータである。なお、境界BDは、後述する第2学習部142によって行われる学習処理によって算出される。
【0029】
図5に示される例において、ワードベクトルVが境界BDの右上に存在する場合、分類部141は、ワードベクトルVはグループG1に属すると判定し、分類対象データTDにラベルL1を付与する。一方、ワードベクトルVが境界BDの左下に存在する場合、分類部141は、ワードベクトルVはグループG2に属すると判定し、分類対象データTDにラベルL2を付与する。
【0030】
このように、分類部141は、特徴量変換器130によって変換されたワードベクトルVに基づき、分類対象データTDにラベルを付与する。また、分類部141は、ラベルが付与された分類対象データTDをデータサーバ200に送信する。例えば、データサーバ200は、データ分類装置100から受信したラベルが付与された分類対象データTDを、ブログ(ウェブログ)サービスにおいて投稿された記事のジャンル分けや、ソーシャルネットワーキングサービス(SNS)において投稿された記事のジャンル分けに使用する。
【0031】
<3.変換処理の学習>
次に、第1学習部171によって実行される、特徴量変換器130の変換処理を学習する学習処理について説明する。第1学習部171は、入力される分類対象データTDを蓄積したデータを第1学習データD1として用いて、特徴量変換器130の変換処理を学習する。本実施形態において、特徴量変換器130の変換処理を学習することは、ベクトル表現テーブルTBに含まれるベクトルV1からVkを、より適切な値に更新することである。本実施形態においては、データ管理部110から出力される全ての分類対象データTDを蓄積して処理することは不適切であるため、第1学習部171は、少数の分類対象データTDを受け取るごとにリアルタイムに学習処理を行う。
【0032】
図6は、実施形態に係る第1学習データD1の一例を示す図である。初期状態において、第1記憶部150には第1学習データD1は記憶されていないが、データ管理部110がデータサーバ200から分類対象データTD(ストリームデータ)を受信すると、データ管理部110は、受信した分類対象データTDを第1記憶部150に記憶させる。データ管理部110は、分類対象データTDを受信する度に、受信した分類対象データTDを第1記憶部150に蓄積していく。このため、分類対象データTDは、特徴量変換器130による変換処理に使用されるだけでなく、第1学習部171による学習処理にも使用される。
【0033】
図6に示されるように、第1学習データD1には、データ管理部110によって受信された複数の分類対象データTDが含まれる。第1学習データD1に含まれる分類対象データTDの上限数は、第1記憶部150の容量に応じて適宜決定されるとよい。第1学習部171は、第1学習データD1として第1記憶部150に記憶された分類対象データTDが上限数に達した場合(言い換えると、第1記憶部150に記憶された第1学習データD1が所定量を超えた場合)、特徴量変換器130の変換処理を学習する学習処理を開始する。
【0034】
まず、第1学習部171は、第1記憶部150に記憶された第1学習データD1から学習データ(分類対象データ)を一つ読み出す。第1学習部171は、第1記憶部150から読み出した学習データ(分類対象データ)に含まれる単語t(target)と、その近傍(例えば、5単語以内)に存在する単語c(context)との全ペア(t,c)に対して、確率的勾配法を用いて損失関数を最適化する。これによって、第1学習部171は、ベクトル表現テーブルTBに含まれるベクトルをより適した値に更新することができる。
【0035】
損失関数には、負例n(negative sample)と呼ばれる単語が用いられる。負例nとは、各ペア(t,c)に対して、以下の式(1)に示される確率Pα(n)に従って、不図示の負例表からランダムに抽出される単語である。ここで、f(n)は単語nの頻度を示し、αは1以下の正のパラメータ(0<α≦1)である。αとしては、0.75が設定されることが多い。
【0036】
【数1】
【0037】
また、第1学習部171は、単語tに対応するベクトル、単語cに対応するベクトル、および単語nに対応するベクトルを、以下の式(2)から式(4)に基づいて更新する。ここで、矢印はベクトル表現を表す記号である。
【0038】
【数2】
【0039】
式(2)から式(4)におけるLは、損失関数である。第1学習部171は、以下の式(5)に基づいて損失関数Lを算出する。なお、説明を容易にするために、損失関数には一つの負例が用いられることとするが、複数の負例が用いられてもよい。
【0040】
【数3】
【0041】
また、第1学習部171は、単語tに対応するベクトル、単語cに対応するベクトル、および単語nに対応するベクトルを更新するために必要な偏微分の値を、以下の式(6)から式(8)に基づいて算出する。
【0042】
【数4】
【0043】
また、式(2)から式(4)におけるηは学習率であり、確率的近似法を用いて予め決定された値である。具体的には、第1学習部171は、以下の式(9)に基づいて学習率ηを算出する。ここで、ηは予め設定された初期値(例えば、1.0)であり、tは更新回数である。例えば、1回目の更新の場合はt=1となり、2回目の更新の場合はt=2となる。
【0044】
【数5】
【0045】
なお、本実施形態において、第1学習部171は、確率的近似法を用いて学習率ηを算出することとしたが、これに限られない。例えば、第1学習部171は、AdaGrad法などを用いて学習率ηを算出してもよい。
【0046】
このように、第1学習部171は、正例または負例を示す情報を含まない第1学習データD1を用いて、教師無し学習により特徴量変換器130の変換処理を学習する学習処理を行う。これによって、第1学習部171は、ベクトル表現テーブルTBに含まれるベクトルを、より適した値に更新することができる。
【0047】
従来の技術において、特徴量変換器130の変換処理を学習する学習処理を行う場合、分類部141の動作を停止した上で、学習処理を行うためのデータを格納する大容量の記憶部を用いてバッチ処理を行う必要があった。このため、特徴量変換器130の変換処理を学習する学習処理とデータの分類処理とを並行して行うことができず、特徴量変換器130の変換処理を学習する学習処理とデータの分類処理とを効率的に行うことができなかった。
【0048】
これに対し、本実施形態においては、データ管理部110から出力された分類対象データTDが第1学習データD1として第1記憶部150に記憶される。また、第1学習部171は、特徴量変換器130の変換処理を学習する学習処理が完了した場合、第1学習データ(分類対象データ)を第1記憶部150から消去する。消去によって第1記憶部150内の記憶領域が解放されると、データ管理部110は、データサーバ200から新たに受信した分類対象データTDを、第1学習データとして第1記憶部150に記憶する。これによって、データ分類装置100は、記憶容量が小さい第1記憶部150を用いて、特徴量変換器130の変換処理を学習する学習処理を行うことができる。
【0049】
なお、本実施形態においては、第1学習部171は、特徴量変換器130の変換処理を学習する学習処理に使用された第1学習データ(分類対象データ)を第1記憶部150から消去することとしたが、これに限られない。例えば、第1学習部171は、特徴量変換器130の変換処理を学習する学習処理に使用された第1学習データ(分類対象データ)に、「上書き可」のフラグを付与することにより無効化してもよい。
【0050】
第1学習部171は、第1学習データD1に含まれる他の学習データ(分類対象データ)を用いて、以上の処理を繰り返し行う。これによって、ベクトル表現テーブルTBに含まれるベクトルの値が最適化される。例えば、互いに関連する単語のベクトルは、近い値となるように更新される。
【0051】
このように、第1学習部171は、分類対象データTDに含まれる単語t(第1の単語)に対応づけられた第1のベクトルと、単語tに関連する単語c(第2の単語)に対応づけられた第2のベクトルとが近い値となるように、ベクトル表現テーブルTBに含まれる第1のベクトルと第2のベクトルとを更新する。具体的に、第1学習部171は、分類対象データTDにおいて、単語c(第2の単語)が単語t(第1の単語)から所定単語以内(例えば、5単語以内)に存在する場合、第1のベクトルと第2のベクトルとが近い値となるように、ベクトル表現テーブルTBに含まれる第1のベクトルと第2のベクトルとを更新する。これによって、第1のベクトルと第2のベクトルとが、より適した値に更新される。
【0052】
また、第1学習部171は、第1のベクトルと、第2のベクトルと、負例に対応付けられた第3のベクトルとを用いて損失関数Lを算出し、算出した損失関数Lを偏微分した値を用いて、第1のベクトルと、第2のベクトルと、第3のベクトルとを更新する。これによって、第1のベクトルと、第2のベクトルと、第3のベクトルとが、より適した値に更新される。
【0053】
第1学習部171は、ベクトル表現テーブルTBに含まれない単語が第1学習データD1から抽出されると、抽出された単語をベクトル表現テーブルTBに新たに追加し、予め設定されたベクトルを対応付ける。新たに追加された単語に対応付けられたベクトルは、第1学習部171によって行われる学習処理によって、より適した値に更新される。
【0054】
ここで、ベクトル表現テーブルTBに登録された単語の総数が上限数に達している場合、第1学習部171は、出現頻度の低い単語をベクトル表現テーブルTBから消去し、新たに抽出された単語をベクトル表現テーブルTBに追加する。これによって、単語数の増加によりベクトル表現テーブルTBを格納するテーブルメモリがオーバーフローすることを防止することができる。
【0055】
<4.分類処理の学習>
次に、第2学習部142によって実行される、分類部141の分類処理を学習する学習処理について説明する。第2学習部142は、分類対象データTDと同種のデータに対してラベルが付与された第2学習データD2を用いて、分類部141の分類処理を学習する。本実施形態において、分類部141の分類処理を学習することは、ワードベクトルVを分類するために用いられる分類基準パラメータ(例えば、図5の境界BD)を、より適切なパラメータに更新することである。
【0056】
図7は、実施形態に係る第2学習データD2の一例を示す図である。ユーザは、文章が含まれるテキストデータと、テキストデータに対応するラベル(正解データ)とを、データ分類装置100に入力する。受付部120は、ユーザによって入力されたテキストデータおよびラベル(正解データ)を受け付け、第2学習データD2として第2記憶部160に記憶する。このように、第2学習データD2は、ユーザによって作成されて第2記憶部160に記憶されるデータであり、第1学習データD1とは異なり、随時入力されて増加するデータではなくてもよい。
【0057】
図7に示されるように、第2学習データD2には、テキストデータとラベルが対応付けられた複数の学習データが含まれる。第2学習データD2に含まれる学習データの上限数は、第2記憶部160の容量に応じて適宜決定されるとよい。第2学習部142は、例えば、第1学習部171によってベクトル表現テーブルTBに含まれるベクトルが更新されたときに、分類部141に対する学習処理を開始する。
【0058】
まず、第2学習部142は、第2記憶部160に記憶された第2学習データD2から学習データ(テキストデータおよびラベル)を読み出す。ここで、第2学習部142によって読み出される学習データの個数は、第2学習部142によって行われる学習処理の頻度などに応じて適宜決定される。例えば、第2学習部142は、学習処理が頻繁に行われる場合は学習データを一つ読み出してもよいし、たまにしか学習処理が行われない場合は第2記憶部160から全ての学習データを読み出してもよい。第2学習部142は、読み出した学習データに含まれるテキストデータを特徴量変換器130に出力する。特徴量変換器130は、学習器170に管理されるベクトル表現テーブルTBを参照して、第2学習部142から出力されたテキストデータを、ワードベクトルVに変換する。その後、特徴量変換器130は、変換したワードベクトルVを分類器140に出力する。
【0059】
次に、第2学習部142は、特徴量変換器130から入力されたワードベクトルVと、第2記憶部160から読み出した学習データに含まれるラベル(正解データ)とを用いて、分類基準パラメータ(図5の境界BD)を更新する。第2学習部142は、従来から行われているいずれの手法を用いて分類基準パラメータを算出してもよい。例えば、第2学習部142は、サポートベクターマシン(SVM)のヒンジロス関数を確率的勾配法で最適化して分類基準パラメータを算出してもよく、パーセプトロンアルゴリズムを用いて分類基準パラメータを算出してもよい。
【0060】
第2学習部142は、算出した分類基準パラメータを分類部141に設定する。分類部141は、第2学習部142によって設定された分類基準パラメータを用いて、前述の分類処理を行う。
【0061】
このように、第2学習部142は、正例または負例を示す情報を含む第2学習データD2に基づいて、特徴量変換器130によって変換されたワードベクトルVを分類するために用いられる分類基準パラメータ(例えば、図5の境界BD)を更新する。具体的に、第2学習部142は、第2記憶部160からラベルが付与された第2学習データD2を読み出し、読み出した第2学習データD2を特徴量変換器130に出力する。特徴量変換器130は、第2学習部142から出力された第2学習データD2をワードベクトルVに変換し、変換したワードベクトルVを第2学習部142に出力する。第2学習部142は、特徴量変換器130から出力されたワードベクトルVと、第2学習データD2に付与されたラベルとに基づき、分類基準パラメータを更新する。これによって、ワードベクトルVを分類するために用いられる分類基準パラメータ(図5の境界BD)をより適した値に更新することができる。
【0062】
なお、第2学習部142は、分類部141の分類処理を学習する学習処理が完了した場合であっても、学習に使用した学習データ(テキストデータおよびラベル)を第2記憶部160から消去しない。つまり、第2学習部142は、分類部141の分類処理を学習する学習処理を行う際、第2記憶部160に蓄積された第2学習データD2を繰り返し使用する。これによって、第2記憶部160が空のために第2学習部142が学習処理を行えないことを防止することができる。
【0063】
なお、第2学習部142は、分類部141の分類処理を学習する学習処理に使用された第2学習データにフラグを付与し、フラグを付与されたデータを消去できるようにしてもよい。これによって、第2記憶部160がオーバーフローすることを防止することができる。
【0064】
第2学習部142は、第1学習部171による学習処理が行われる度に、第2学習データD2に含まれる他の学習データ(テキストデータおよびラベル)を用いて学習処理を繰り返し行う。第2学習データD2は、ユーザによって入力されたラベル(正解データ)が付与されたデータである。このため、第2学習部142は、第2学習データD2を用いて分類部141に対する学習処理を行う度に、分類部141によって行われる分類処理の精度を向上させることができる。
【0065】
なお、特徴量変換器130および分類部141による処理は、第1学習部171および第2学習部142による処理とは非同期で実行される。これによって、特徴量変換器130の変換処理を学習する学習処理と、分類部141の分類処理を学習する学習処理と、データの分類処理とを効率的に行うことができる。
【0066】
仮に、ベクトル表現を逐次学習する技術が存在する場合であっても、一つずつ学習データを読み出して学習処理をリアルタイムで行うことや、一度学習された単語に対応するベクトルを再度更新することは難しい。しかしながら、本実施形態の第1学習部171は、第1記憶部150から一つずつ学習データを読み出す場合であっても、特徴量変換器130および分類部141による処理と並行してリアルタイムで動作することができる。また、本実施形態の第1学習部171は、一度更新したベクトル表現テーブルTB内のベクトルを、第1学習データD1を使用して学習する度に、より適した値に再度更新することができる。
【0067】
<5.ラベル付与処理のフローチャート>
図8は、実施形態に係るラベル付与処理を示すフローチャートである。本フローチャートによる処理は、データ分類装置100によって実行される。
【0068】
まず、データ管理部110は、データサーバ200から分類対象データTDを受信したか否かを判定する(S11)。データ管理部110は、データサーバ200から分類対象データTDを受信したと判定した場合、受信した分類対象データTDを、第1学習データD1として第1記憶部150に記憶する(S12)。
【0069】
次に、データ管理部110は、受信した分類対象データTDを特徴量変換器130に出力する(S13)。特徴量変換器130は、学習器170によって管理されるベクトル表現テーブルTBを参照して、データ管理部110から入力された分類対象データTDを、ワードベクトルVに変換する(S14)。特徴量変換器130は、変換したワードベクトルVを分類部141に出力する。
【0070】
分類部141は、特徴量変換器130から入力されたワードベクトルVおよび分類基準パラメータ(図5の境界BD)に基づき、分類対象データTDにラベルを付与することで、分類対象データTDを分類する(S15)。分類部141は、ラベルが付与された分類対象データTDをデータサーバ200に送信し(S16)、前述のS11に処理を戻す。
【0071】
<6.第1学習処理のフローチャート>
図9は、実施形態に係る特徴量変換器130の変換処理を学習する学習処理(第1学習処理)を示すフローチャートである。本フローチャートによる処理は、第1学習部171によって実行される。
【0072】
まず、第1学習部171は、第1記憶部150内の第1学習データD1が所定量を超えたか否かを判定する(S21)。第1学習部171は、第1記憶部150内の第1学習データD1が所定量を超えたと判定した場合、第1記憶部150から第1学習データD1を読み出す(S22)。
【0073】
次に、第1学習部171は、読み出した第1学習データD1を用いて、ベクトル表現テーブルTBを更新する(S23)。これによって、ベクトル表現テーブルTBに含まれるベクトルをより適した値に更新することができる。次に、第1学習部171は、更新に使用した第1学習データD1を、第1記憶部150から消去する(S24)。その後、第1学習部171は、第1学習処理の完了を示す学習完了通知を第2学習部142に出力し(S25)、前述のS21に処理を戻す。
【0074】
<7.第2学習処理のフローチャート>
図10は、実施形態に係る分類部141の分類処理を学習する学習処理(第2学習処理)を示すフローチャートである。本フローチャートによる処理は、第2学習部142によって実行される。
【0075】
まず、第2学習部142は、第1学習部171から学習完了通知が入力されたか否かを判定する(S31)。第2学習部142は、第1学習部171から学習完了通知が入力されたと判定した場合、第2記憶部160から第2学習データD2を読み出す(S32)。
【0076】
次に、第2学習部142は、読み出した第2学習データD2を用いて、分類基準パラメータ(例えば、図5の境界BD)を更新する(S33)。これによって、分類部141によって行われる分類処理の精度を向上させることができる。その後、第2学習部142は、前述のS31に処理を戻す。
【0077】
なお、データ分類装置100は、図8に示されるフローチャートによる処理と、図9に示されるフローチャートによる処理と、図10に示されるフローチャートによる処理とを並行して実行する。これによって、データ分類装置100は、ラベル付与処理を停止させることなく、特徴量変換器130の変換処理を学習する学習処理と、分類部141の分類処理を学習する学習処理とを実行することができる。したがって、データ分類装置100は、特徴量変換器130の変換処理を学習する学習処理と、分類部141の分類処理を学習する学習処理と、データの分類処理とを効率的に行うことができる。
【0078】
<8.ハードウェア構成>
図11は、実施形態に係るデータ分類装置100のハードウェア構成の一例を示す図である。データ分類装置100は、例えば、CPU180、RAM181、ROM182、フラッシュメモリやHDDなどの二次記憶装置183、NIC184、ドライブ装置185、キーボード186、およびマウス187が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置185には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置183、またはドライブ装置185に装着された可搬型記憶媒体に記憶されたプログラムがDMA(Direct Memory Access)コントローラ(不図示)などによってRAM181に展開され、CPU180によって実行されることで、データ分類装置100の機能部が実現される。
【0079】
なお、本実施形態においては、データ管理部110によって受信された分類対象データTDが、特徴量変換器130に入力されるとともに、第1学習データD1として第1記憶部150に記憶されることとしたが、これに限られない。例えば、特徴量変換器130への分類対象データTDの入力と、第1記憶部150への分類対象データTDの入力とは、別系統であってもよい。
【0080】
図12は、他の実施形態に係るデータ分類装置100の詳細構成を示すブロック図である。図12に示されるように、データ分類装置100は、分類対象データTDと同種の学習データを自動的に収集する自動収集部190を更に備え、自動収集部190は、収集した学習データを第1学習データD1として第1記憶部150に記憶させてもよい。このように、データ分類装置100は、特徴量変換器130へ分類対象データTDを入力するデータ管理部110とは別に、収集した学習データを第1学習データD1として第1記憶部150に記憶させる自動収集部190を備えてもよい。
【0081】
また、データ分類装置100は、テキストデータである分類対象データTDを分類してラベルを付与することとしたが、これに限られない。例えば、データ分類装置100は、音声データである分類対象データTDを分類してラベルを付与してもよいし、画像データである分類対象データTDを分類してラベルを付与してもよい。データ分類装置100が画像データを分類する場合、特徴量変換器130は、入力された画像データをAuto-Encoderを用いてベクトル表現に変換してもよく、第1学習部171は、Auto-Encoderを確率的勾配法を用いて最適化してもよい。また、ベクトル表現テーブルTBに代えて、画像データのピクセルを入力とするニューラルネットワークが用いられてもよい。
【0082】
また、第1学習部171は、第1記憶部150に記憶された第1学習データD1が所定量を超えた場合、特徴量変換器130を学習する学習処理を開始することとしたが、これに限られない。例えば、第1学習部171は、第1記憶部150に記憶された第1学習データD1が所定量を超えるよりも前に、特徴量変換器130を学習する学習処理を開始してもよい。また、第1学習部171は、第1記憶部150が満杯になった場合、特徴量変換器130を学習する学習処理を開始してもよい。
【0083】
また、特徴量変換器130は、単語をベクトルに変換することとしたが、他の特徴量表現に変換してもよい。また、特徴量変換器130は、単語を特徴量表現に変換する際に、ベクトル表現テーブルTBを参照することとしたが、他の情報源を参照してもよい。
【0084】
以上説明したように、実施形態のデータ分類装置100によれば、第1学習部171が、分類対象データTDを蓄積したデータを第1学習データD1として用いて、特徴量変換器130の変換処理を学習し、第2学習部142が、分類対象データTDと同種のデータに対してラベルが付与された第2学習データD2を用いて、分類部141の分類処理を学習する。これによって、データ分類装置100は、データを特徴量表現に変換する変換処理を効率よく学習することができる。
【0085】
なお、本発明は、データ分類装置100に適用されることとしたが、他の情報処理装置に適用されてもよい。例えば、本発明は、ベクトル表現テーブルを用いて処理対象データをワードベクトルに変換する変換部および変換部の変換処理を学習する学習部を備える学習装置に適用されてもよい。例えば、この学習装置と、ベクトル表現テーブルを用いて類義語検索を行う類義語検索装置とによって、学習機能を備える類義語検索システムが実現される。
【0086】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0087】
100…データ分類装置
110…データ管理部
120…受付部
130…特徴量変換器
140…分類器
141…分類部
142…第2学習部
150…第1記憶部
160…第2記憶部
170…学習器
171…第1学習部
200…データサーバ
210…制御部
220…通信部
D1…第1学習データ
D2…第2学習データ
TB…ベクトル表現テーブル
TD…分類対象データ
V…ワードベクトル
【要約】
【課題】データを特徴量表現に変換する変換処理を効率よく学習することができるデータ分類装置、情報処理装置、データ分類方法、およびプログラムを提供すること。
【解決手段】入力される分類対象データを特徴量表現に変換する変換部と、前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部と、前記入力される分類対象データを蓄積したデータを第1学習データとして用いて、前記変換部の変換処理を学習する第1学習部と、前記分類対象データと同種のデータに対してラベルが付与された第2学習データを用いて、前記分類部の分類処理を学習する第2学習部と、を備えるデータ分類装置。
【選択図】図2
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12