(57)【要約】【課題】データを特徴量表現に変換する変換処理を効率よく学習することができるデータ分類装置、情報処理装置、データ分類方法、およびプログラムを提供すること。【解決手段】入力される分類対象データを特徴量表現に変換する変換部と、前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部と、前記入力される分類対象データを蓄積したデータを第１学習データとして用いて、前記変換部の変換処理を学習する第１学習部と、前記分類対象データと同種のデータに対してラベルが付与された第２学習データを用いて、前記分類部の分類処理を学習する第２学習部と、を備えるデータ分類装置。【選択図】図２
2018010451.tif 000002
【特許請求の範囲】
【請求項１】
入力される分類対象データを特徴量表現に変換する変換部と、
前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部と、
前記入力される分類対象データを蓄積したデータを第１学習データとして用いて、前記変換部の変換処理を学習する第１学習部と、
前記分類対象データと同種のデータに対してラベルが付与された第２学習データを用いて、前記分類部の分類処理を学習する第２学習部と、
を備えるデータ分類装置。
【請求項２】
前記変換部は、単語とベクトルが対応付けられたベクトル表現テーブルを参照して、前記分類対象データを前記特徴量表現としてのベクトルデータに変換し、
前記第１学習部は、正例または負例を示す情報を含まない前記第１学習データを用いて、前記ベクトル表現テーブルに含まれるベクトルを更新する
請求項１記載のデータ分類装置。
【請求項３】
前記第１学習部は、前記分類対象データに含まれる第１の単語に対応づけられた第１のベクトルと、前記第１の単語に関連する第２の単語に対応づけられた第２のベクトルとが近い値となるように、前記ベクトル表現テーブルに含まれる前記第１のベクトルと前記第２のベクトルとを更新する
請求項２記載のデータ分類装置。
【請求項４】
前記第１の単語に関連する第２の単語とは、前記分類対象データにおいて、前記第１の単語から所定単語以内に存在する単語である
請求項３記載のデータ分類装置。
【請求項５】
前記第１学習部は、前記第１のベクトルと、前記第２のベクトルと、負例に対応付けられた第３のベクトルとを用いて損失関数を算出し、算出した損失関数を偏微分した値を用いて、前記第１のベクトルと、前記第２のベクトルと、前記第３のベクトルとを更新する
請求項３または４記載のデータ分類装置。
【請求項６】
前記第２学習部は、正例または負例を示す情報を含む前記第２学習データに基づいて、前記変換部によって変換された前記特徴量表現を分類するために用いられる分類基準パラメータを更新する
請求項１記載のデータ分類装置。
【請求項７】
前記第２学習部は、前記第２学習データを前記変換部に出力し、
前記変換部は、前記第２学習部から出力された前記第２学習データを前記特徴量表現に変換し、変換した前記特徴量表現を前記第２学習部に出力し、
前記第２学習部は、前記変換部から出力された前記特徴量表現と、前記第２学習データに付与された前記ラベルとに基づき、前記分類基準パラメータを更新する
請求項６記載のデータ分類装置。
【請求項８】
前記変換部および前記分類部による処理は、前記第１学習部および前記第２学習部による処理とは非同期で実行される
請求項１記載のデータ分類装置。
【請求項９】
前記第１学習データは、第１記憶部に記憶され、
前記第１学習部は、前記第１記憶部に記憶された前記第１学習データが所定量を超えた場合に、前記変換部の変換処理を学習する学習処理を開始する
請求項１記載のデータ分類装置。
【請求項１０】
前記第１学習部は、前記変換部の変換処理を学習する学習処理が完了した場合、前記第１学習データを前記第１記憶部から消去または無効化する
請求項９記載のデータ分類装置。
【請求項１１】
入力される分類対象データを特徴量表現に変換する変換部と、
前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部と、
前記入力される分類対象データを蓄積したデータを学習データとして用いて、前記変換部の変換処理を学習する学習部と、
を備えるデータ分類装置。
【請求項１２】
入力される処理対象データを特徴量表現に変換する変換部と、
前記入力される処理対象データを蓄積したデータを学習データとして用いて、前記変換部の変換処理を学習する学習部と、
を備える情報処理装置。
【請求項１３】
入力される分類対象データを特徴量表現に変換する変換工程と、
変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類工程と、
前記入力される分類対象データを蓄積したデータを第１学習データとして用いて、前記変換工程の変換処理を学習する第１学習工程と、
前記分類対象データと同種のデータに対してラベルが付与された第２学習データを用いて、前記分類工程の分類処理を学習する第２学習工程と、
を備えるデータ分類方法。
【請求項１４】
コンピュータを、
入力される分類対象データを特徴量表現に変換する変換部、
前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部、
前記入力される分類対象データを蓄積したデータを第１学習データとして用いて、前記変換部の変換処理を学習する第１学習部、
前記分類対象データと同種のデータに対してラベルが付与された第２学習データを用いて、前記分類部の分類処理を学習する第２学習部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ分類装置、情報処理装置、データ分類方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、テキストデータや画像、音声などの分類対象データに、「政治」や「経済」などのトピックに対応するラベルを付与するトピック分析装置が知られている（特許文献１参照）。トピック分析装置は、ＳＮＳ（Social Networking Service）の分野などで好適に用いられる。
【０００３】
トピック分析装置は、分類対象データをベクトルデータに変換し、変換したベクトルデータに基づいてラベルを付与する。また、トピック分析装置は、予めラベルが付与された文書データ（教師データ）を用いて学習することで、ラベル付与の精度を向上させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２４６５８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示されたトピック分析装置は、ラベルを付与することによりデータを分類する分類部に対する学習処理を行うものの、分類対象データをベクトルデータに変換する変換部に対する学習処理を行うことはできなかった。
【０００６】
本発明は、このような事情を考慮してなされたものであり、データを特徴量表現に変換する変換処理を効率よく学習することができるデータ分類装置、情報処理装置、データ分類方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００７】
本発明の一態様は、入力される分類対象データを特徴量表現に変換する変換部と、前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部と、前記入力される分類対象データを蓄積したデータを第１学習データとして用いて、前記変換部の変換処理を学習する第１学習部と、前記分類対象データと同種のデータに対してラベルが付与された第２学習データを用いて、前記分類部の分類処理を学習する第２学習部と、を備えるデータ分類装置である。
【発明の効果】
【０００８】
本発明の一態様によれば、データを特徴量表現に変換する変換処理を効率よく学習することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係るデータ分類装置１００の使用環境を示す図である。
【図２】実施形態に係るデータ分類装置１００の詳細構成を示すブロック図である。
【図３】実施形態に係るベクトル表現テーブルＴＢの一例を示す図である。
【図４】実施形態に係るワードベクトルＶの算出方法の一例を示す図である。
【図５】実施形態に係るラベル付与処理を説明するための図である。
【図６】実施形態に係る第１学習データＤ１の一例を示す図である。
【図７】実施形態に係る第２学習データＤ２の一例を示す図である。
【図８】実施形態に係るラベル付与処理を示すフローチャートである。
【図９】実施形態に係る特徴量変換器１３０の変換処理を学習する学習処理（第１学習処理）を示すフローチャートである。
【図１０】実施形態に係る分類部１４１の分類処理を学習する学習処理（第２学習処理）を示すフローチャートである。
【図１１】実施形態に係るデータ分類装置１００のハードウェア構成の一例を示す図である。
【図１２】他の実施形態に係るデータ分類装置１００の詳細構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、データ分類装置、情報処理装置、データ分類方法、およびプログラムの実施形態について説明する。データ分類装置は、例えば、ＳＮＳにおいてリアルタイムに投稿されるデータを分類対象データとし、「政治」、「経済」、「スポーツ」といったラベルを付与することで、投稿されるデータをテーマごとに分類するのを補助する装置である。データ分類装置は、ＳＮＳなどを管理するサーバ装置に対してクラウドサービスによって分類結果を提供する装置であってもよいし、上記サーバ装置に内蔵されるものであってもよい。
【００１１】
データ分類装置は、分類対象データを特徴量表現に変換し、特徴量表現に基づいてラベルを付与すると共に、これらの処理の内容を学習することで、分類対象データに対して適切なラベルを付与することができる。なお、以下の説明では、一例として、特徴量表現はベクトルデータであるものとし、分類対象データは複数の単語を含むテキストデータであるものとする。
【００１２】
＜１．データ分類装置の使用環境＞
図１は、実施形態に係るデータ分類装置１００の使用環境を示す図である。実施形態のデータ分類装置１００は、ネットワークＮＷを介してデータサーバ２００と通信する。ネットワークＮＷは、例えば、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、インターネット、プロバイダ装置、無線基地局、専用回線などのうち一部または全部を含む。
【００１３】
データ分類装置１００は、データ管理部１１０と、受付部１２０と、特徴量変換器１３０と、分類器１４０と、第１記憶部１５０と、第２記憶部１６０と、学習器１７０とを備える。データ管理部１１０、特徴量変換器１３０、分類器１４０、および学習器１７０は、例えば、データ分類装置１００のプロセッサがプログラムを実行することで実現されてもよいし、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【００１４】
受付部１２０は、ユーザからの入力を受け付けるキーボードやマウスなどの装置である。第１記憶部１５０および第２記憶部１６０は、例えば、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。また、第１記憶部１５０および第２記憶部１６０の一部または全部は、ＮＡＳ（Network Attached Storage）や外部のストレージサーバなど、データ分類装置１００がアクセス可能な外部装置であってもよい。
【００１５】
データサーバ２００は、制御部２１０と、通信部２２０とを備える。制御部２１０は、例えば、データサーバ２００のプロセッサがプログラムを実行することで実現されてもよいし、ＬＳＩ、ＡＳＩＣ、ＦＰＧＡなどのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【００１６】
通信部２２０は、例えばＮＩＣ（Network Interface Card）を備える。制御部２１０は、通信部２２０を用いて、ネットワークＮＷを介してデータ分類装置１００にストリームデータを逐次送信する。「ストリームデータ」とは、大量に際限なく到来する時刻順のデータであり、例えば、ブログ（ウェブログ）サービスにおいて投稿された記事や、ソーシャルネットワーキングサービス（ＳＮＳ）において投稿された記事である。また、ストリームデータには、各種センサから制御装置等に提供されるセンサデータ（ＧＰＳにより測位される位置、加速度、温度など）が含まれてもよい。データ分類装置１００は、データサーバ２００から受信したストリームデータを、分類対象データとして使用する。
【００１７】
＜２．データ分類装置によるラベル付与処理＞
図２は、実施形態に係るデータ分類装置１００の詳細構成を示すブロック図である。データ分類装置１００は、データサーバ２００からストリームデータ（以下、分類対象データＴＤと称す）を受信し、受信した分類対象データＴＤにラベルを付与することで分類対象データＴＤを分類する。ラベルは、分類対象データＴＤを分類するためのデータであり、例えば、「政治」、「経済」、「スポーツ」などの分類対象データＴＤが属するジャンルを示すデータである。以下、データ分類装置１００の分類動作について詳細に説明する。
【００１８】
データ管理部１１０は、データサーバ２００から分類対象データＴＤを受信し、受信した分類対象データＴＤを特徴量変換器１３０に出力する。また、データ管理部１１０は、受信した分類対象データＴＤを、第１学習データＤ１として第１記憶部１５０に記憶させる。
【００１９】
特徴量変換器１３０は、データ管理部１１０から出力された分類対象データＴＤから単語を抽出し、抽出した単語を、ベクトル表現テーブルＴＢを参照してベクトルに変換する。
【００２０】
図３は、実施形態に係るベクトル表現テーブルＴＢの一例を示す図である。ベクトル表現テーブルＴＢは、学習器１７０によって管理される不図示のテーブルメモリに記憶される。ベクトル表現テーブルＴＢには、ｋ個の単語のそれぞれに対して分散表現によって生成されるｐ次元のベクトルが対応付けられている。ベクトル表現テーブルＴＢに含まれる単語の上限数ｋは、テーブルメモリの容量に応じて適宜決定されるとよい。ベクトルの次元数ｐは、データの分類を正確に行うために十分な値が設定されるとよい。なお、ベクトル表現テーブルＴＢに含まれる各ベクトルは、後述する第１学習部１７１によって行われる学習処理によって算出される。
【００２１】
例えば、単語Ｗ１に対してはベクトルＶ１＝（Ｖ１−１，Ｖ１−２，・・・，Ｖ１−ｐ）が対応付けられており、単語Ｗ２に対してはベクトルＶ２＝（Ｖ２−１，Ｖ２−２，・・・，Ｖ２−ｐ）が対応付けられており、単語Ｗｋに対してはベクトルＶｋ＝（Ｖｋ−１，Ｖｋ−２，・・・，Ｖｋ−ｐ）が対応付けられている。特徴量変換器１３０は、分類対象データＴＤから抽出した全ての単語をベクトルに変換し、変換した全てのベクトルを足し合わせることで、ワードベクトルＶを算出する。
【００２２】
図４は、実施形態に係るワードベクトルＶの算出方法の一例を示す図である。図４に示される例において、特徴量変換器１３０は、分類対象データＴＤから単語Ｗ１、単語Ｗ２、および単語Ｗ３を抽出したこととする。この場合、特徴量変換器１３０は、ベクトル表現テーブルＴＢを参照して、単語Ｗ１をベクトルＶ１に変換し、単語Ｗ２をベクトルＶ２に変換し、単語Ｗ３をベクトルＶ３に変換する。
【００２３】
次に、特徴量変換器１３０は、ベクトルＶ１、ベクトルＶ２、およびベクトルＶ３の和を求めることで、ワードベクトルＶを算出する。すなわち、図４に示される例においては、ＶＤ＝Ｖ１＋Ｖ２＋Ｖ３である。このため、分類対象データＴＤから抽出された単語数に関わらず、ワードベクトルＶの次元数はｐである。
【００２４】
このように、特徴量変換器１３０は、学習器１７０によって管理されるベクトル表現テーブルＴＢを参照して、データ管理部１１０から入力される分類対象データＴＤをワードベクトルＶに変換する。その後、特徴量変換器１３０は、変換したワードベクトルＶと分類対象データＴＤとを分類器１４０に出力する。
【００２５】
なお、特徴量変換器１３０は、各ベクトルの和をワードベクトルＶとして算出することとしたが、これに限られない。例えば、特徴量変換器１３０は、各ベクトルの平均値である平均ベクトルを、ワードベクトルＶとして算出してもよいし、各ベクトルの内容を反映したものであれば、如何なるベクトルをワードベクトルＶとして算出してもよい。
【００２６】
分類器１４０は、分類部１４１と第２学習部１４２とを備え、例えば線形モデルを用いて分類対象データＴＤを分類する。特徴量変換器１３０からワードベクトルＶおよび分類対象データＴＤが入力されると、分類部１４１は、入力されたワードベクトルＶに対応するラベルを導出し、導出したラベルを分類対象データＴＤに付与する。これによって、分類対象データＴＤが分類される。ここでいう分類とは、単語列をラベル列に変換する構造予測のような、広義の分類を含む。なお、分類器１４０にはワードベクトルＶが入力されることとしたが、データが入力されてもよい。この場合、分類器１４０は、ワードベクトルＶ以外に入力されたデータ（例えば日付、分類の閾値や総数などを調整する各種パラメータ等）を反映させて処理を行ってもよい。
【００２７】
図５は、実施形態に係るラベル付与処理を説明するための図である。ここでは、説明を簡易にするために、各単語が２次元のワードベクトル（ｘ，ｙ）に変換された例について説明する。図５において、横軸はワードベクトルのｘの値を示し、縦軸はワードベクトルのｙの値を示す。グループＧ１は、ラベルＬ１が付与されたワードベクトルＶのグループである。グループＧ２は、ラベルＬ２が付与されたワードベクトルＶのグループである。
【００２８】
境界ＢＤは、ワードベクトルＶがグループＧ１とグループＧ２の何れに属するのかを判定するために用いられる分類基準パラメータである。なお、境界ＢＤは、後述する第２学習部１４２によって行われる学習処理によって算出される。
【００２９】
図５に示される例において、ワードベクトルＶが境界ＢＤの右上に存在する場合、分類部１４１は、ワードベクトルＶはグループＧ１に属すると判定し、分類対象データＴＤにラベルＬ１を付与する。一方、ワードベクトルＶが境界ＢＤの左下に存在する場合、分類部１４１は、ワードベクトルＶはグループＧ２に属すると判定し、分類対象データＴＤにラベルＬ２を付与する。
【００３０】
このように、分類部１４１は、特徴量変換器１３０によって変換されたワードベクトルＶに基づき、分類対象データＴＤにラベルを付与する。また、分類部１４１は、ラベルが付与された分類対象データＴＤをデータサーバ２００に送信する。例えば、データサーバ２００は、データ分類装置１００から受信したラベルが付与された分類対象データＴＤを、ブログ（ウェブログ）サービスにおいて投稿された記事のジャンル分けや、ソーシャルネットワーキングサービス（ＳＮＳ）において投稿された記事のジャンル分けに使用する。
【００３１】
＜３．変換処理の学習＞
次に、第１学習部１７１によって実行される、特徴量変換器１３０の変換処理を学習する学習処理について説明する。第１学習部１７１は、入力される分類対象データＴＤを蓄積したデータを第１学習データＤ１として用いて、特徴量変換器１３０の変換処理を学習する。本実施形態において、特徴量変換器１３０の変換処理を学習することは、ベクトル表現テーブルＴＢに含まれるベクトルＶ１からＶｋを、より適切な値に更新することである。本実施形態においては、データ管理部１１０から出力される全ての分類対象データＴＤを蓄積して処理することは不適切であるため、第１学習部１７１は、少数の分類対象データＴＤを受け取るごとにリアルタイムに学習処理を行う。
【００３２】
図６は、実施形態に係る第１学習データＤ１の一例を示す図である。初期状態において、第１記憶部１５０には第１学習データＤ１は記憶されていないが、データ管理部１１０がデータサーバ２００から分類対象データＴＤ（ストリームデータ）を受信すると、データ管理部１１０は、受信した分類対象データＴＤを第１記憶部１５０に記憶させる。データ管理部１１０は、分類対象データＴＤを受信する度に、受信した分類対象データＴＤを第１記憶部１５０に蓄積していく。このため、分類対象データＴＤは、特徴量変換器１３０による変換処理に使用されるだけでなく、第１学習部１７１による学習処理にも使用される。
【００３３】
図６に示されるように、第１学習データＤ１には、データ管理部１１０によって受信された複数の分類対象データＴＤが含まれる。第１学習データＤ１に含まれる分類対象データＴＤの上限数は、第１記憶部１５０の容量に応じて適宜決定されるとよい。第１学習部１７１は、第１学習データＤ１として第１記憶部１５０に記憶された分類対象データＴＤが上限数に達した場合（言い換えると、第１記憶部１５０に記憶された第１学習データＤ１が所定量を超えた場合）、特徴量変換器１３０の変換処理を学習する学習処理を開始する。
【００３４】
まず、第１学習部１７１は、第１記憶部１５０に記憶された第１学習データＤ１から学習データ（分類対象データ）を一つ読み出す。第１学習部１７１は、第１記憶部１５０から読み出した学習データ（分類対象データ）に含まれる単語ｔ（target）と、その近傍（例えば、５単語以内）に存在する単語ｃ（context）との全ペア（ｔ，ｃ）に対して、確率的勾配法を用いて損失関数を最適化する。これによって、第１学習部１７１は、ベクトル表現テーブルＴＢに含まれるベクトルをより適した値に更新することができる。
【００３５】
損失関数には、負例ｎ（negative sample）と呼ばれる単語が用いられる。負例ｎとは、各ペア（ｔ，ｃ）に対して、以下の式（１）に示される確率Ｐα（ｎ）に従って、不図示の負例表からランダムに抽出される単語である。ここで、ｆ（ｎ）は単語ｎの頻度を示し、αは１以下の正のパラメータ（０＜α≦１）である。αとしては、０．７５が設定されることが多い。
【００３６】
【数１】
2018010451.tif 000003
【００３７】
また、第１学習部１７１は、単語ｔに対応するベクトル、単語ｃに対応するベクトル、および単語ｎに対応するベクトルを、以下の式（２）から式（４）に基づいて更新する。ここで、矢印はベクトル表現を表す記号である。
【００３８】
【数２】
2018010451.tif 000004
【００３９】
式（２）から式（４）におけるＬは、損失関数である。第１学習部１７１は、以下の式（５）に基づいて損失関数Ｌを算出する。なお、説明を容易にするために、損失関数には一つの負例が用いられることとするが、複数の負例が用いられてもよい。
【００４０】
【数３】
2018010451.tif 000005
【００４１】
また、第１学習部１７１は、単語ｔに対応するベクトル、単語ｃに対応するベクトル、および単語ｎに対応するベクトルを更新するために必要な偏微分の値を、以下の式（６）から式（８）に基づいて算出する。
【００４２】
【数４】
2018010451.tif 000006
【００４３】
また、式（２）から式（４）におけるηは学習率であり、確率的近似法を用いて予め決定された値である。具体的には、第１学習部１７１は、以下の式（９）に基づいて学習率ηを算出する。ここで、η０は予め設定された初期値（例えば、１．０）であり、ｔは更新回数である。例えば、１回目の更新の場合はｔ＝１となり、２回目の更新の場合はｔ＝２となる。
【００４４】
【数５】
2018010451.tif 000007
【００４５】
なお、本実施形態において、第１学習部１７１は、確率的近似法を用いて学習率ηを算出することとしたが、これに限られない。例えば、第１学習部１７１は、ＡｄａＧｒａｄ法などを用いて学習率ηを算出してもよい。
【００４６】
このように、第１学習部１７１は、正例または負例を示す情報を含まない第１学習データＤ１を用いて、教師無し学習により特徴量変換器１３０の変換処理を学習する学習処理を行う。これによって、第１学習部１７１は、ベクトル表現テーブルＴＢに含まれるベクトルを、より適した値に更新することができる。
【００４７】
従来の技術において、特徴量変換器１３０の変換処理を学習する学習処理を行う場合、分類部１４１の動作を停止した上で、学習処理を行うためのデータを格納する大容量の記憶部を用いてバッチ処理を行う必要があった。このため、特徴量変換器１３０の変換処理を学習する学習処理とデータの分類処理とを並行して行うことができず、特徴量変換器１３０の変換処理を学習する学習処理とデータの分類処理とを効率的に行うことができなかった。
【００４８】
これに対し、本実施形態においては、データ管理部１１０から出力された分類対象データＴＤが第１学習データＤ１として第１記憶部１５０に記憶される。また、第１学習部１７１は、特徴量変換器１３０の変換処理を学習する学習処理が完了した場合、第１学習データ（分類対象データ）を第１記憶部１５０から消去する。消去によって第１記憶部１５０内の記憶領域が解放されると、データ管理部１１０は、データサーバ２００から新たに受信した分類対象データＴＤを、第１学習データとして第１記憶部１５０に記憶する。これによって、データ分類装置１００は、記憶容量が小さい第１記憶部１５０を用いて、特徴量変換器１３０の変換処理を学習する学習処理を行うことができる。
【００４９】
なお、本実施形態においては、第１学習部１７１は、特徴量変換器１３０の変換処理を学習する学習処理に使用された第１学習データ（分類対象データ）を第１記憶部１５０から消去することとしたが、これに限られない。例えば、第１学習部１７１は、特徴量変換器１３０の変換処理を学習する学習処理に使用された第１学習データ（分類対象データ）に、「上書き可」のフラグを付与することにより無効化してもよい。
【００５０】
第１学習部１７１は、第１学習データＤ１に含まれる他の学習データ（分類対象データ）を用いて、以上の処理を繰り返し行う。これによって、ベクトル表現テーブルＴＢに含まれるベクトルの値が最適化される。例えば、互いに関連する単語のベクトルは、近い値となるように更新される。
【００５１】
このように、第１学習部１７１は、分類対象データＴＤに含まれる単語ｔ（第１の単語）に対応づけられた第１のベクトルと、単語ｔに関連する単語ｃ（第２の単語）に対応づけられた第２のベクトルとが近い値となるように、ベクトル表現テーブルＴＢに含まれる第１のベクトルと第２のベクトルとを更新する。具体的に、第１学習部１７１は、分類対象データＴＤにおいて、単語ｃ（第２の単語）が単語ｔ（第１の単語）から所定単語以内（例えば、５単語以内）に存在する場合、第１のベクトルと第２のベクトルとが近い値となるように、ベクトル表現テーブルＴＢに含まれる第１のベクトルと第２のベクトルとを更新する。これによって、第１のベクトルと第２のベクトルとが、より適した値に更新される。
【００５２】
また、第１学習部１７１は、第１のベクトルと、第２のベクトルと、負例に対応付けられた第３のベクトルとを用いて損失関数Ｌを算出し、算出した損失関数Ｌを偏微分した値を用いて、第１のベクトルと、第２のベクトルと、第３のベクトルとを更新する。これによって、第１のベクトルと、第２のベクトルと、第３のベクトルとが、より適した値に更新される。
【００５３】
第１学習部１７１は、ベクトル表現テーブルＴＢに含まれない単語が第１学習データＤ１から抽出されると、抽出された単語をベクトル表現テーブルＴＢに新たに追加し、予め設定されたベクトルを対応付ける。新たに追加された単語に対応付けられたベクトルは、第１学習部１７１によって行われる学習処理によって、より適した値に更新される。
【００５４】
ここで、ベクトル表現テーブルＴＢに登録された単語の総数が上限数に達している場合、第１学習部１７１は、出現頻度の低い単語をベクトル表現テーブルＴＢから消去し、新たに抽出された単語をベクトル表現テーブルＴＢに追加する。これによって、単語数の増加によりベクトル表現テーブルＴＢを格納するテーブルメモリがオーバーフローすることを防止することができる。
【００５５】
＜４．分類処理の学習＞
次に、第２学習部１４２によって実行される、分類部１４１の分類処理を学習する学習処理について説明する。第２学習部１４２は、分類対象データＴＤと同種のデータに対してラベルが付与された第２学習データＤ２を用いて、分類部１４１の分類処理を学習する。本実施形態において、分類部１４１の分類処理を学習することは、ワードベクトルＶを分類するために用いられる分類基準パラメータ（例えば、図５の境界ＢＤ）を、より適切なパラメータに更新することである。
【００５６】
図７は、実施形態に係る第２学習データＤ２の一例を示す図である。ユーザは、文章が含まれるテキストデータと、テキストデータに対応するラベル（正解データ）とを、データ分類装置１００に入力する。受付部１２０は、ユーザによって入力されたテキストデータおよびラベル（正解データ）を受け付け、第２学習データＤ２として第２記憶部１６０に記憶する。このように、第２学習データＤ２は、ユーザによって作成されて第２記憶部１６０に記憶されるデータであり、第１学習データＤ１とは異なり、随時入力されて増加するデータではなくてもよい。
【００５７】
図７に示されるように、第２学習データＤ２には、テキストデータとラベルが対応付けられた複数の学習データが含まれる。第２学習データＤ２に含まれる学習データの上限数は、第２記憶部１６０の容量に応じて適宜決定されるとよい。第２学習部１４２は、例えば、第１学習部１７１によってベクトル表現テーブルＴＢに含まれるベクトルが更新されたときに、分類部１４１に対する学習処理を開始する。
【００５８】
まず、第２学習部１４２は、第２記憶部１６０に記憶された第２学習データＤ２から学習データ（テキストデータおよびラベル）を読み出す。ここで、第２学習部１４２によって読み出される学習データの個数は、第２学習部１４２によって行われる学習処理の頻度などに応じて適宜決定される。例えば、第２学習部１４２は、学習処理が頻繁に行われる場合は学習データを一つ読み出してもよいし、たまにしか学習処理が行われない場合は第２記憶部１６０から全ての学習データを読み出してもよい。第２学習部１４２は、読み出した学習データに含まれるテキストデータを特徴量変換器１３０に出力する。特徴量変換器１３０は、学習器１７０に管理されるベクトル表現テーブルＴＢを参照して、第２学習部１４２から出力されたテキストデータを、ワードベクトルＶに変換する。その後、特徴量変換器１３０は、変換したワードベクトルＶを分類器１４０に出力する。
【００５９】
次に、第２学習部１４２は、特徴量変換器１３０から入力されたワードベクトルＶと、第２記憶部１６０から読み出した学習データに含まれるラベル（正解データ）とを用いて、分類基準パラメータ（図５の境界ＢＤ）を更新する。第２学習部１４２は、従来から行われているいずれの手法を用いて分類基準パラメータを算出してもよい。例えば、第２学習部１４２は、サポートベクターマシン（ＳＶＭ）のヒンジロス関数を確率的勾配法で最適化して分類基準パラメータを算出してもよく、パーセプトロンアルゴリズムを用いて分類基準パラメータを算出してもよい。
【００６０】
第２学習部１４２は、算出した分類基準パラメータを分類部１４１に設定する。分類部１４１は、第２学習部１４２によって設定された分類基準パラメータを用いて、前述の分類処理を行う。
【００６１】
このように、第２学習部１４２は、正例または負例を示す情報を含む第２学習データＤ２に基づいて、特徴量変換器１３０によって変換されたワードベクトルＶを分類するために用いられる分類基準パラメータ（例えば、図５の境界ＢＤ）を更新する。具体的に、第２学習部１４２は、第２記憶部１６０からラベルが付与された第２学習データＤ２を読み出し、読み出した第２学習データＤ２を特徴量変換器１３０に出力する。特徴量変換器１３０は、第２学習部１４２から出力された第２学習データＤ２をワードベクトルＶに変換し、変換したワードベクトルＶを第２学習部１４２に出力する。第２学習部１４２は、特徴量変換器１３０から出力されたワードベクトルＶと、第２学習データＤ２に付与されたラベルとに基づき、分類基準パラメータを更新する。これによって、ワードベクトルＶを分類するために用いられる分類基準パラメータ（図５の境界ＢＤ）をより適した値に更新することができる。
【００６２】
なお、第２学習部１４２は、分類部１４１の分類処理を学習する学習処理が完了した場合であっても、学習に使用した学習データ（テキストデータおよびラベル）を第２記憶部１６０から消去しない。つまり、第２学習部１４２は、分類部１４１の分類処理を学習する学習処理を行う際、第２記憶部１６０に蓄積された第２学習データＤ２を繰り返し使用する。これによって、第２記憶部１６０が空のために第２学習部１４２が学習処理を行えないことを防止することができる。
【００６３】
なお、第２学習部１４２は、分類部１４１の分類処理を学習する学習処理に使用された第２学習データにフラグを付与し、フラグを付与されたデータを消去できるようにしてもよい。これによって、第２記憶部１６０がオーバーフローすることを防止することができる。
【００６４】
第２学習部１４２は、第１学習部１７１による学習処理が行われる度に、第２学習データＤ２に含まれる他の学習データ（テキストデータおよびラベル）を用いて学習処理を繰り返し行う。第２学習データＤ２は、ユーザによって入力されたラベル（正解データ）が付与されたデータである。このため、第２学習部１４２は、第２学習データＤ２を用いて分類部１４１に対する学習処理を行う度に、分類部１４１によって行われる分類処理の精度を向上させることができる。
【００６５】
なお、特徴量変換器１３０および分類部１４１による処理は、第１学習部１７１および第２学習部１４２による処理とは非同期で実行される。これによって、特徴量変換器１３０の変換処理を学習する学習処理と、分類部１４１の分類処理を学習する学習処理と、データの分類処理とを効率的に行うことができる。
【００６６】
仮に、ベクトル表現を逐次学習する技術が存在する場合であっても、一つずつ学習データを読み出して学習処理をリアルタイムで行うことや、一度学習された単語に対応するベクトルを再度更新することは難しい。しかしながら、本実施形態の第１学習部１７１は、第１記憶部１５０から一つずつ学習データを読み出す場合であっても、特徴量変換器１３０および分類部１４１による処理と並行してリアルタイムで動作することができる。また、本実施形態の第１学習部１７１は、一度更新したベクトル表現テーブルＴＢ内のベクトルを、第１学習データＤ１を使用して学習する度に、より適した値に再度更新することができる。
【００６７】
＜５．ラベル付与処理のフローチャート＞
図８は、実施形態に係るラベル付与処理を示すフローチャートである。本フローチャートによる処理は、データ分類装置１００によって実行される。
【００６８】
まず、データ管理部１１０は、データサーバ２００から分類対象データＴＤを受信したか否かを判定する（Ｓ１１）。データ管理部１１０は、データサーバ２００から分類対象データＴＤを受信したと判定した場合、受信した分類対象データＴＤを、第１学習データＤ１として第１記憶部１５０に記憶する（Ｓ１２）。
【００６９】
次に、データ管理部１１０は、受信した分類対象データＴＤを特徴量変換器１３０に出力する（Ｓ１３）。特徴量変換器１３０は、学習器１７０によって管理されるベクトル表現テーブルＴＢを参照して、データ管理部１１０から入力された分類対象データＴＤを、ワードベクトルＶに変換する（Ｓ１４）。特徴量変換器１３０は、変換したワードベクトルＶを分類部１４１に出力する。
【００７０】
分類部１４１は、特徴量変換器１３０から入力されたワードベクトルＶおよび分類基準パラメータ（図５の境界ＢＤ）に基づき、分類対象データＴＤにラベルを付与することで、分類対象データＴＤを分類する（Ｓ１５）。分類部１４１は、ラベルが付与された分類対象データＴＤをデータサーバ２００に送信し（Ｓ１６）、前述のＳ１１に処理を戻す。
【００７１】
＜６．第１学習処理のフローチャート＞
図９は、実施形態に係る特徴量変換器１３０の変換処理を学習する学習処理（第１学習処理）を示すフローチャートである。本フローチャートによる処理は、第１学習部１７１によって実行される。
【００７２】
まず、第１学習部１７１は、第１記憶部１５０内の第１学習データＤ１が所定量を超えたか否かを判定する（Ｓ２１）。第１学習部１７１は、第１記憶部１５０内の第１学習データＤ１が所定量を超えたと判定した場合、第１記憶部１５０から第１学習データＤ１を読み出す（Ｓ２２）。
【００７３】
次に、第１学習部１７１は、読み出した第１学習データＤ１を用いて、ベクトル表現テーブルＴＢを更新する（Ｓ２３）。これによって、ベクトル表現テーブルＴＢに含まれるベクトルをより適した値に更新することができる。次に、第１学習部１７１は、更新に使用した第１学習データＤ１を、第１記憶部１５０から消去する（Ｓ２４）。その後、第１学習部１７１は、第１学習処理の完了を示す学習完了通知を第２学習部１４２に出力し（Ｓ２５）、前述のＳ２１に処理を戻す。
【００７４】
＜７．第２学習処理のフローチャート＞
図１０は、実施形態に係る分類部１４１の分類処理を学習する学習処理（第２学習処理）を示すフローチャートである。本フローチャートによる処理は、第２学習部１４２によって実行される。
【００７５】
まず、第２学習部１４２は、第１学習部１７１から学習完了通知が入力されたか否かを判定する（Ｓ３１）。第２学習部１４２は、第１学習部１７１から学習完了通知が入力されたと判定した場合、第２記憶部１６０から第２学習データＤ２を読み出す（Ｓ３２）。
【００７６】
次に、第２学習部１４２は、読み出した第２学習データＤ２を用いて、分類基準パラメータ（例えば、図５の境界ＢＤ）を更新する（Ｓ３３）。これによって、分類部１４１によって行われる分類処理の精度を向上させることができる。その後、第２学習部１４２は、前述のＳ３１に処理を戻す。
【００７７】
なお、データ分類装置１００は、図８に示されるフローチャートによる処理と、図９に示されるフローチャートによる処理と、図１０に示されるフローチャートによる処理とを並行して実行する。これによって、データ分類装置１００は、ラベル付与処理を停止させることなく、特徴量変換器１３０の変換処理を学習する学習処理と、分類部１４１の分類処理を学習する学習処理とを実行することができる。したがって、データ分類装置１００は、特徴量変換器１３０の変換処理を学習する学習処理と、分類部１４１の分類処理を学習する学習処理と、データの分類処理とを効率的に行うことができる。
【００７８】
＜８．ハードウェア構成＞
図１１は、実施形態に係るデータ分類装置１００のハードウェア構成の一例を示す図である。データ分類装置１００は、例えば、ＣＰＵ１８０、ＲＡＭ１８１、ＲＯＭ１８２、フラッシュメモリやＨＤＤなどの二次記憶装置１８３、ＮＩＣ１８４、ドライブ装置１８５、キーボード１８６、およびマウス１８７が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置１８５には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置１８３、またはドライブ装置１８５に装着された可搬型記憶媒体に記憶されたプログラムがＤＭＡ（Direct Memory Access）コントローラ（不図示）などによってＲＡＭ１８１に展開され、ＣＰＵ１８０によって実行されることで、データ分類装置１００の機能部が実現される。
【００７９】
なお、本実施形態においては、データ管理部１１０によって受信された分類対象データＴＤが、特徴量変換器１３０に入力されるとともに、第１学習データＤ１として第１記憶部１５０に記憶されることとしたが、これに限られない。例えば、特徴量変換器１３０への分類対象データＴＤの入力と、第１記憶部１５０への分類対象データＴＤの入力とは、別系統であってもよい。
【００８０】
図１２は、他の実施形態に係るデータ分類装置１００の詳細構成を示すブロック図である。図１２に示されるように、データ分類装置１００は、分類対象データＴＤと同種の学習データを自動的に収集する自動収集部１９０を更に備え、自動収集部１９０は、収集した学習データを第１学習データＤ１として第１記憶部１５０に記憶させてもよい。このように、データ分類装置１００は、特徴量変換器１３０へ分類対象データＴＤを入力するデータ管理部１１０とは別に、収集した学習データを第１学習データＤ１として第１記憶部１５０に記憶させる自動収集部１９０を備えてもよい。
【００８１】
また、データ分類装置１００は、テキストデータである分類対象データＴＤを分類してラベルを付与することとしたが、これに限られない。例えば、データ分類装置１００は、音声データである分類対象データＴＤを分類してラベルを付与してもよいし、画像データである分類対象データＴＤを分類してラベルを付与してもよい。データ分類装置１００が画像データを分類する場合、特徴量変換器１３０は、入力された画像データをAuto-Encoderを用いてベクトル表現に変換してもよく、第１学習部１７１は、Auto-Encoderを確率的勾配法を用いて最適化してもよい。また、ベクトル表現テーブルＴＢに代えて、画像データのピクセルを入力とするニューラルネットワークが用いられてもよい。
【００８２】
また、第１学習部１７１は、第１記憶部１５０に記憶された第１学習データＤ１が所定量を超えた場合、特徴量変換器１３０を学習する学習処理を開始することとしたが、これに限られない。例えば、第１学習部１７１は、第１記憶部１５０に記憶された第１学習データＤ１が所定量を超えるよりも前に、特徴量変換器１３０を学習する学習処理を開始してもよい。また、第１学習部１７１は、第１記憶部１５０が満杯になった場合、特徴量変換器１３０を学習する学習処理を開始してもよい。
【００８３】
また、特徴量変換器１３０は、単語をベクトルに変換することとしたが、他の特徴量表現に変換してもよい。また、特徴量変換器１３０は、単語を特徴量表現に変換する際に、ベクトル表現テーブルＴＢを参照することとしたが、他の情報源を参照してもよい。
【００８４】
以上説明したように、実施形態のデータ分類装置１００によれば、第１学習部１７１が、分類対象データＴＤを蓄積したデータを第１学習データＤ１として用いて、特徴量変換器１３０の変換処理を学習し、第２学習部１４２が、分類対象データＴＤと同種のデータに対してラベルが付与された第２学習データＤ２を用いて、分類部１４１の分類処理を学習する。これによって、データ分類装置１００は、データを特徴量表現に変換する変換処理を効率よく学習することができる。
【００８５】
なお、本発明は、データ分類装置１００に適用されることとしたが、他の情報処理装置に適用されてもよい。例えば、本発明は、ベクトル表現テーブルを用いて処理対象データをワードベクトルに変換する変換部および変換部の変換処理を学習する学習部を備える学習装置に適用されてもよい。例えば、この学習装置と、ベクトル表現テーブルを用いて類義語検索を行う類義語検索装置とによって、学習機能を備える類義語検索システムが実現される。
【００８６】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００８７】
１００…データ分類装置
１１０…データ管理部
１２０…受付部
１３０…特徴量変換器
１４０…分類器
１４１…分類部
１４２…第２学習部
１５０…第１記憶部
１６０…第２記憶部
１７０…学習器
１７１…第１学習部
２００…データサーバ
２１０…制御部
２２０…通信部
Ｄ１…第１学習データ
Ｄ２…第２学習データ
ＴＢ…ベクトル表現テーブル
ＴＤ…分類対象データ
Ｖ…ワードベクトル
【図１】
2018010451.tif 000008
【図２】
2018010451.tif 000009
【図３】
2018010451.tif 000010
【図４】
2018010451.tif 000011
【図５】
2018010451.tif 000012
【図６】
2018010451.tif 000013
【図７】
2018010451.tif 000014
【図８】
2018010451.tif 000015
【図９】
2018010451.tif 000016
【図１０】
2018010451.tif 000017
【図１１】
2018010451.tif 000018
【図１２】
2018010451.tif 000019
【手続補正書】
【提出日】平成29年6月22日(2017.6.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力される分類対象データを特徴量表現に変換する変換部と、
前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部と、
前記分類部によってラベルを付与される前記分類対象データを蓄積したデータを第１学習データとして用いて、前記変換部の変換処理を学習する第１学習部と、
前記分類対象データと同種のデータに対してラベルが付与された第２学習データを用いて、前記分類部の分類処理を学習する第２学習部と、
を備えるデータ分類装置。
【請求項２】
前記変換部は、単語とベクトルが対応付けられたベクトル表現テーブルを参照して、前記分類対象データを前記特徴量表現としてのベクトルデータに変換し、
前記第１学習部は、正例または負例を示す情報を含まない前記第１学習データを用いて、前記ベクトル表現テーブルに含まれるベクトルを更新する
請求項１記載のデータ分類装置。
【請求項３】
前記第１学習部は、前記分類対象データに含まれる第１の単語に対応づけられた第１のベクトルと、前記第１の単語に関連する第２の単語に対応づけられた第２のベクトルとが近い値となるように、前記ベクトル表現テーブルに含まれる前記第１のベクトルと前記第２のベクトルとを更新する
請求項２記載のデータ分類装置。
【請求項４】
前記第１の単語に関連する第２の単語とは、前記分類対象データにおいて、前記第１の単語から所定単語以内に存在する単語である
請求項３記載のデータ分類装置。
【請求項５】
前記第１学習部は、前記第１のベクトルと、前記第２のベクトルと、負例に対応付けられた第３のベクトルとを用いて損失関数を算出し、算出した損失関数を偏微分した値を用いて、前記第１のベクトルと、前記第２のベクトルと、前記第３のベクトルとを更新する
請求項３または４記載のデータ分類装置。
【請求項６】
前記第２学習部は、正例または負例を示す情報を含む前記第２学習データに基づいて、前記変換部によって変換された前記特徴量表現を分類するために用いられる分類基準パラメータを更新する
請求項１記載のデータ分類装置。
【請求項７】
前記第２学習部は、前記第２学習データを前記変換部に出力し、
前記変換部は、前記第２学習部から出力された前記第２学習データを前記特徴量表現に変換し、変換した前記特徴量表現を前記第２学習部に出力し、
前記第２学習部は、前記変換部から出力された前記特徴量表現と、前記第２学習データに付与された前記ラベルとに基づき、前記分類基準パラメータを更新する
請求項６記載のデータ分類装置。
【請求項８】
前記変換部および前記分類部による処理は、前記第１学習部および前記第２学習部による処理とは非同期で実行される
請求項１記載のデータ分類装置。
【請求項９】
前記第１学習データは、第１記憶部に記憶され、
前記第１学習部は、前記第１記憶部に記憶された前記第１学習データが所定量を超えた場合に、前記変換部の変換処理を学習する学習処理を開始する
請求項１記載のデータ分類装置。
【請求項１０】
前記第１学習部は、前記変換部の変換処理を学習する学習処理が完了した場合、前記第１学習データを前記第１記憶部から消去または無効化する
請求項９記載のデータ分類装置。
【請求項１１】
入力される分類対象データを特徴量表現に変換する変換部と、
前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部と、
前記分類部によってラベルを付与される前記分類対象データを蓄積したデータを学習データとして用いて、前記変換部の変換処理を学習する学習部と、
を備えるデータ分類装置。
【請求項１２】
入力される分類対象データを特徴量表現に変換する変換工程と、
変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類工程と、
前記分類工程でラベルを付与される前記分類対象データを蓄積したデータを第１学習データとして用いて、前記変換工程の変換処理を学習する第１学習工程と、
前記分類対象データと同種のデータに対してラベルが付与された第２学習データを用いて、前記分類工程の分類処理を学習する第２学習工程と、
を備えるデータ分類方法。
【請求項１３】
コンピュータを、
入力される分類対象データを特徴量表現に変換する変換部、
前記変換部によって変換された前記特徴量表現に基づき、前記分類対象データにラベルを付与する分類部、
前記分類部によってラベルを付与される前記分類対象データを蓄積したデータを第１学習データとして用いて、前記変換部の変換処理を学習する第１学習部、
前記分類対象データと同種のデータに対してラベルが付与された第２学習データを用いて、前記分類部の分類処理を学習する第２学習部、
として機能させるためのプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、データ分類装置、データ分類方法、およびプログラムに関する。