(57)【要約】      （修正有）【課題】正確かつ高速に対象データにラベルを付与することができる情報処理装置、情報処理方法、およびプログラムを提供する。【解決手段】ラベル付与装置１００は、特徴ベクトル変換部１１０において、対象データから変換された特徴ベクトルを、分類ベクトル１５２を用いて分類する分類部１１５と、分類部１１５による分類に応じた変換規則で、特徴ベクトルから埋め込みベクトルを算出する埋め込みベクトル算出部１２５と、埋め込みベクトル算出部１２５によって算出された埋め込みベクトルに基づいて得られるラベルを、対象データに付与するラベルとして取得するラベル取得部１３０と、を備える。【選択図】図２
2018077715.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）データを含む。なお、ページデータは、ブラウザに限らず、アプリケーションプログラムによって再生されるデータであってもよい。
【００１７】
＜２．ラベル付与装置によるラベル付与処理＞
図２は、実施形態に係るラベル付与装置１００の詳細構成を示すブロック図である。ラベル付与装置１００は、データサーバ２００から対象データＴＤを受信し、受信した対象データＴＤにラベルを付与する。ラベルは、対象データＴＤを分類するためのデータであり、例えば、「政治」、「経済」、「スポーツ」などの対象データＴＤが属するジャンルを示すデータである。詳細は後述するが、ラベルは対象データＴＤに付与される。以下、ラベル付与装置１００のラベル付与動作について詳細に説明する。
【００１８】
通信部１３５は、データサーバ２００から対象データＴＤを受信し、受信した対象データＴＤを特徴ベクトル変換部１１０に出力する。特徴ベクトル変換部１１０は、通信部１３５から入力された対象データＴＤを特徴ベクトルｘに変換する。例えば、対象データＴＤが検索クエリである場合には、特徴ベクトルｘは検索クエリに含まれる単語の集合を示すベクトルであってよい。また、対象データＴＤがページデータである場合には、特徴ベクトルｘはページデータに含まれる単語の集合を示すベクトルであってよい。特徴ベクトル変換部１１０は、特徴ベクトルｘを、分類部１１５および埋め込みベクトル算出部１２５に出力する。
【００１９】
特徴ベクトルｘが特徴ベクトル変換部１１０から分類部１１５に入力されると、分類部１１５は、第１記憶部１５０から分類ベクトルデータ１５２を読み出す。また、分類部１１５は、読み出した分類ベクトルデータ１５２を用いて、入力された特徴ベクトルｘを複数のクラスタＣ１からＣｎのいずれかに分類する。ここで、ｎはクラスタの総数を示す。分類部１１５は、特徴ベクトルｘが分類されたクラスタのクラスタ番号ｍを、埋め込み行列取得部１２０に出力する。ここで、１≦ｍ≦ｎである。以下、分類部１１５による分類処理を具体的に説明する。
【００２０】
図３は、実施形態に係る分類ベクトルデータ１５２の一例を示す図である。図３に示されるように、分類ベクトルデータ１５２は、クラスタ番号と分類ベクトルとが関連付けられたデータである。図３に示される例においては、クラスタ番号１からｎのそれぞれに、分類ベクトルｗ１からｗｎが関連付けられている。
【００２１】
分類部１１５は、第１記憶部１５０から分類ベクトルデータ１５２を読み出す。前述したように、分類ベクトルデータ１５２は、複数のクラスタ（クラスタ番号１からｎ）の各々に割り当てられた分類ベクトルｗ１からｗｎを含む。分類部１１５は、クラスタ番号１からｎのうち、ｗｍとｘとのコサイン類似度（ｃｏｓ（ｗｍ，ｘ））が最大となるクラスタ番号ｍを導出し、導出したクラスタ番号ｍを埋め込み行列取得部１２０に出力する。
【００２２】
クラスタ番号ｍが分類部１１５から埋め込み行列取得部１２０に入力されると、埋め込み行列取得部１２０は、入力されたクラスタ番号ｍに対応する埋め込み行列Ｖｍを第２記憶部１５５から取得する。埋め込み行列取得部１２０は、取得した埋め込み行列Ｖｍを埋め込みベクトル算出部１２５に出力する。
【００２３】
図４は、実施形態に係る埋め込み行列データ１５７の一例を示す図である。図４に示されるように、埋め込み行列データ１５７は、クラスタ番号と埋め込み行列とが関連付けられたデータである。図４に示される例においては、クラスタ番号１からｎのそれぞれに、埋め込み行列Ｖ１からＶｎが関連付けられている。
【００２４】
埋め込み行列取得部１２０は、第２記憶部１５５から埋め込み行列データ１５７を読み出す。前述したように、埋め込み行列データ１５７は、複数のクラスタ（クラスタ番号１からｎ）の各々に割り当てられた埋め込み行列Ｖ１からＶｎを含む。埋め込み行列取得部１２０は、分類部１１５から入力されたクラスタ番号ｍに基づき、埋め込み行列Ｖｍを第２記憶部１５５から取得する。埋め込み行列取得部１２０は、取得した埋め込み行列Ｖｍを埋め込みベクトル算出部１２５に出力する。
【００２５】
特徴ベクトルｘが特徴ベクトル変換部１１０から埋め込みベクトル算出部１２５に入力され、埋め込み行列Ｖｍが埋め込み行列取得部１２０から埋め込みベクトル算出部１２５に入力されると、埋め込みベクトル算出部１２５は、埋め込みベクトルｚを算出する。具体的に、埋め込みベクトル算出部１２５は、埋め込み行列取得部１２０によって取得された埋め込み行列Ｖｍを特徴ベクトルｘに乗算することで、埋め込みベクトルｚを算出する。埋め込みベクトル算出部１２５は、算出した埋め込みベクトルｚをラベル取得部１３０に出力する。
【００２６】
このように、埋め込み行列取得部１２０および埋め込みベクトル算出部１２５は、分類部１１５による分類に応じた変換規則で、特徴ベクトルｘを埋め込みベクトルｚに変換する変換部として機能する。
【００２７】
埋め込みベクトルｚが埋め込みベクトル算出部１２５からラベル取得部１３０に入力されると、ラベル取得部１３０は、第３記憶部１６０からラベルデータ１６２およびグラフインデックス１６４を読み出す。ラベル取得部１３０は、後述する近似最近傍検索により、ラベルデータ１６２の中から、埋め込みベクトルｚに類似する埋め込みベクトルを検索する。また、ラベル取得部１３０は、近似最近傍検索によって取得された埋め込みベクトルに関連付けられたラベルベクトルｙを取得し、取得したラベルベクトルｙに対応するラベルを、対象データＴＤに付与するラベルＬとして取得する。以下、ラベルベクトルｙの取得処理の詳細を説明する。
【００２８】
図５は、実施形態に係るラベルデータ１６２の一例を示す図である。図５に示されるように、ラベルデータ１６２は、オブジェクトＩＤと、埋め込みベクトルと、ラベルベクトルとが関連付けられたデータである。図５に示される例においては、オブジェクトＩＤ００００１、００００２、００００３、・・・のそれぞれに、埋め込みベクトルｚ１、ｚ２、ｚ３、・・・と、ラベルベクトルｙ１、ｙ２、ｙ３、・・・とが関連付けられている。ここで、ラベルベクトルが関連付けられた埋め込みベクトルを、オブジェクトと称する。
【００２９】
このように、ラベルデータ１６２は、埋め込みベクトルに正解データとしてのラベルベクトルが関連付けられたデータである。ラベル取得部１３０は、埋め込みベクトル算出部１２５から入力された埋め込みベクトルｚに類似する埋め込みベクトルを、ラベルデータ１６２から検索する。その後、ラベル取得部１３０は、検索によって得られた埋め込みベクトルに関連付けられたラベルベクトルｙを、ラベルデータ１６２から取得する。
【００３０】
図６は、実施形態に係るグラフインデックス１６４の一例を示す図である。グラフインデックス１６４は、複数のオブジェクトを接続するエッジに関する情報であり、参照元のオブジェクトと参照先のオブジェクトとを接続する有向エッジの集合により形成されるグラフ構造のデータである。エッジとは、二つのオブジェクトが接続されていることを示す情報である。有向エッジとは、検索の際に一方向にしかデータを辿ることができないエッジである。
【００３１】
図７は、実施形態に係るグラフインデックス１６４を示すグラフＧの一例を示す図である。グラフＧにおいて、丸印はオブジェクトを示し、矢印は有向エッジを示す。図７に示されるように、グラフインデックス１６４に含まれる各オブジェクトは、有向エッジによって接続されている。
【００３２】
図６に示されるように、グラフインデックス１６４は、例えば、参照元のオブジェクトの識別情報である参照元オブジェクトＩＤに対し、参照先のオブジェクトの識別情報である参照先オブジェクトＩＤ、それらを接続する有向エッジの識別情報であるエッジＩＤ、および参照元のオブジェクトと参照先のオブジェクトとの距離などの情報が対応付けられたデータである。オブジェクトがベクトルである場合、それらの距離は、例えば、ベクトル要素間の差分についてＬｐノルムを求めたものと定義される（ｐ＝１、２、…）。
【００３３】
なお、図６に示されるデータ構造は、あくまで一例であり、他のデータ構造が採用されてもよい。例えば、グラフインデックス１６４は、エッジＩＤに対してその他の情報が対応付けられたものであってもよい。すなわち、本実施形態においてデータ構造の形式は本質的な問題ではなく、距離が定義されている限り、如何なるデータ構造のデータが第３記憶部１６０に格納されてもよい。なお、本来距離とは距離の公理を満たすことを意味するが、距離の公理を満たさない擬似的な距離であっても構わない。擬似的な距離の場合には検索性能が低下するが、処理上扱いやすいなどのメリットがあれば疑似的な距離を使用してもよい。
【００３４】
ラベル取得部１３０は、グラフインデックス１６４により規定されたエッジによって、参照元のオブジェクトから参照先のオブジェクトへの向きに従って辿ることのできるオブジェクトのうち、埋め込みベクトルｚに対して既定の距離以内にあるオブジェクトを、埋め込みベクトルｚに類似するオブジェクトとして抽出する。
【００３５】
また、ラベル取得部１３０は、グラフインデックス１６４により規定されたエッジによって、参照元のオブジェクトから参照先のオブジェクトへの向きに従って辿ることのできるオブジェクトのうち、埋め込みベクトルｚに対する距離が短いものから順に所定数のオブジェクトを、埋め込みベクトルｚに類似するオブジェクトとして抽出してもよい。
【００３６】
なお、ラベル取得部１３０による検索処理は、例えば、後述する図９のフローチャートの処理を用いて実現される。図９のフローチャートにおいて、オブジェクト集合Ｒが、ラベル取得部１３０による検索結果の一例である。この場合、所定数ｋｓを所望の値に調整することで、検索結果に含まれるオブジェクトの数を調整することができる。
【００３７】
ラベル取得部１３０は、以上の検索処理によって、埋め込みベクトル算出部１２５から入力された埋め込みベクトルｚに類似する埋め込みベクトルを、ラベルデータ１６２から取得することができる。ラベル取得部１３０は、取得した埋め込みベクトルに関連付けられたラベルベクトルを、対象データＴＤに付与するラベルに対応するラベルベクトルｙとして取得する。また、ラベル取得部１３０は、取得したラベルベクトルｙに対応するラベルＬを、対象データＴＤに付与するラベルとして取得する。例えば、ラベル取得部１３０は、ラベルベクトルとラベルとが関連付けられたテーブルを用いてラベルＬを導出してよい。
【００３８】
ラベル取得部１３０は、取得したラベルＬを通信部１３５に出力する。通信部１３５は、ラベル取得部１３０から入力されたラベルＬを、データサーバ２００に送信する。以上の処理によって、ラベル付与装置１００は、対象データＴＤにラベルＬを付与することができる。
【００３９】
＜３．ラベル付与処理のフローチャート＞
図８は、実施形態に係るラベル付与処理を示すフローチャートである。本フローチャートによる処理は、ラベル付与装置１００によって実行される。
【００４０】
まず、ラベル付与装置１００は、通信部１３５がデータサーバ２００から対象データＴＤを受信したか否かを判定する（Ｓ１００）。通信部１３５がデータサーバ２００から対象データＴＤを受信した場合、特徴ベクトル変換部１１０は、通信部１３５によって受信された対象データＴＤを、特徴ベクトルｘに変換する（Ｓ１０２）。特徴ベクトル変換部１１０は、特徴ベクトルｘを、分類部１１５および埋め込みベクトル算出部１２５に出力する。
【００４１】
次に、分類部１１５は、特徴ベクトル変換部１１０によって変換された特徴ベクトルｘを、分類ベクトルｗを用いて分類する（Ｓ１０４）。また、分類部１１５は、特徴ベクトルｘが分類されたクラスタのクラスタ番号ｍを、埋め込み行列取得部１２０に出力する。
【００４２】
次に、埋め込み行列取得部１２０は、分類部１１５から入力されたクラスタ番号ｍに基づき、埋め込み行列Ｖｍを第２記憶部１５５から取得する（Ｓ１０６）。埋め込み行列取得部１２０は、取得した埋め込み行列Ｖｍを埋め込みベクトル算出部１２５に出力する。
【００４３】
次に、埋め込みベクトル算出部１２５は、埋め込み行列取得部１２０によって取得された埋め込み行列Ｖｍを特徴ベクトルｘに乗算することで、埋め込みベクトルｚを算出する（Ｓ１０８）。埋め込みベクトル算出部１２５は、算出した埋め込みベクトルｚをラベル取得部１３０に出力する。
【００４４】
次に、ラベル取得部１３０は、第３記憶部１６０からラベルデータ１６２およびグラフインデックス１６４を読み出す。また、ラベル取得部１３０は、近似最近傍検索により、第３記憶部１６０に記憶された複数のラベルデータ１６２の中から、埋め込みベクトル算出部１２５によって算出された埋め込みベクトルｚに類似する埋め込みベクトルを検索する。その後、ラベル取得部１３０は、検索によって得られた埋め込みベクトルに関連付けられたラベルベクトルｙを取得する（Ｓ１１０）。
【００４５】
次に、ラベル取得部１３０は、取得したラベルベクトルｙに対応するラベルＬを、対象データＴＤに付与するラベルとして取得する。前述したように、ラベル取得部１３０は、ラベルベクトルとラベルとが関連付けられたテーブルを用いてラベルＬを導出してよい。
【００４６】
ラベル取得部１３０は、取得したラベルＬを通信部１３５に出力する。通信部１３５は、ラベル取得部１３０によって取得されたラベルＬを、データサーバ２００に送信し（Ｓ１１２）、前述のＳ１１に処理を戻す。以上が、ラベル付与処理の一連の流れである。
【００４７】
＜４．ラベルベクトルの取得処理のフローチャート＞
図９は、実施形態に係るラベルベクトルｙの取得処理を示すフローチャートである。本フローチャートによる処理は、ラベル取得部１３０によって実行される。なお、本フローチャートは、図８のＳ１１０の処理を具体的に示したものである。
【００４８】
図９に示すように、ラベル取得部１３０は、超球の半径ｒを∞（無限大）に設定し（Ｓ２００）、ラベルデータ１６２に含まれるオブジェクト集合から部分集合Ｓを抽出する（Ｓ２０２）。超球とは、検索範囲（その範囲に入っていれば埋め込みベクトルｚの近傍オブジェクト集合Ｎ（Ｇ，ｚ）の要素に含められる可能性がある範囲）を示す仮想的な球である。埋め込みベクトルｚの近傍オブジェクト集合Ｎ（Ｇ，ｚ）とは、埋め込みベクトルｚから見て距離が短い方から順に所定数ｋｐだけ選択されるオブジェクトの集合であり、埋め込みベクトルｚを参照元とする参照先のオブジェクトの集合である。なお、Ｓ２０２で抽出されたオブジェクト集合Ｓに含まれるオブジェクトは、同時にオブジェクト集合Ｒの初期集合に含められてもよい。
【００４９】
次に、ラベル取得部１３０は、オブジェクト集合Ｓに含まれるオブジェクトの中で、埋め込みベクトルｚとの距離が最も短いオブジェクトｓを抽出する（Ｓ２０４）。次に、ラベル取得部１３０は、オブジェクトｓをオブジェクト集合Ｓから除外する（Ｓ２０６）。
【００５０】
次に、ラベル取得部１３０は、オブジェクトｓと埋め込みベクトルｚとの距離ｄ（ｓ，ｚ）がｒ（１＋ε）を超えるか否かを判定する（Ｓ２０８）。ここで、εは拡張要素であり、ｒ（１＋ε）は、探索範囲（その範囲にあるオブジェクトの近傍オブジェクトについて、埋め込みベクトルｚの近傍オブジェクト集合Ｎ（Ｇ，ｚ）の要素に含められるか否かを判定する範囲）の半径を示す値である。オブジェクトｓと埋め込みベクトルｚとの距離ｄ（ｓ，ｚ）がｒ（１＋ε）を超える場合、ラベル取得部１３０は、後述するＳ２１０に処理を進める。
【００５１】
オブジェクトｓと埋め込みベクトルｚとの距離ｄ（ｓ，ｚ）がｒ（１＋ε）を超えない場合、ラベル取得部１３０は、オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトの中からオブジェクト集合Ｃに含まれないオブジェクトを一つ選択し、選択したオブジェクトｕを、オブジェクト集合Ｃに格納する（Ｓ２１２）。オブジェクト集合Ｃは、重複検索を回避するために便宜上設けられるものであり、図９のフローチャートが開始されるときにリセットされて空集合とされる。
【００５２】
次に、ラベル取得部１３０は、オブジェクトｕと埋め込みベクトルｚとの距離ｄ（ｕ，ｚ）がｒ（１＋ε）以下であるか否かを判定する（Ｓ２１４）。オブジェクトｕと埋め込みベクトルｚとの距離ｄ（ｕ，ｚ）がｒ（１＋ε）以下である場合、ラベル取得部１３０は、オブジェクトｕをオブジェクト集合Ｓに追加する（Ｓ２１６）。
【００５３】
次に、ラベル取得部１３０は、オブジェクトｕと埋め込みベクトルｚとの距離ｄ（ｕ，ｚ）がｒ以下であるか否かを判定する（Ｓ２１８）。オブジェクトｕと埋め込みベクトルｚとの距離ｄ（ｕ，ｚ）がｒを超える場合、後述するＳ２３０に処理が進められる。
【００５４】
オブジェクトｕと埋め込みベクトルｚとの距離ｄ（ｕ，ｚ）がｒ以下である場合、ラベル取得部１３０は、オブジェクトｕをオブジェクト集合Ｒに追加する（Ｓ２２０）。
【００５５】
そして、ラベル取得部１３０は、オブジェクト集合Ｒに含まれるオブジェクト数がｋｓを超えるか否かを判定する（Ｓ２２２）。所定数ｋｓは、任意に定められる自然数である。例えば、ｋｓ＝３である。
【００５６】
オブジェクト集合Ｒに含まれるオブジェクト数がｋｓを超える場合、ラベル取得部１３０は、オブジェクト集合Ｒに含まれるオブジェクトの中で埋め込みベクトルｚとの距離が最も長いオブジェクトを、オブジェクト集合Ｒから除外する（Ｓ２２４）。
【００５７】
次に、ラベル取得部１３０は、オブジェクト集合Ｒに含まれるオブジェクト数がｋｓと一致するか否かを判定する（Ｓ２２６）。オブジェクト集合Ｒに含まれるオブジェクト数がｋｓと一致する場合、ラベル取得部１３０は、オブジェクト集合Ｒに含まれるオブジェクトの中で埋め込みベクトルｚとの距離が最も長いオブジェクトと、埋め込みベクトルｚとの距離を、新たなｒに設定する（Ｓ２２８）。
【００５８】
そして、ラベル取得部１３０は、オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Ｃに格納し終えたか否かを判定する（Ｓ２３０）。オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Ｃに格納し終えていない場合、前述のＳ２１２に処理が戻される。
【００５９】
オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Ｃに格納し終えた場合、ラベル取得部１３０は、オブジェクト集合Ｓが空集合であるか否かを判定する（Ｓ２３２）。オブジェクト集合Ｓが空集合でない場合、前述のＳ２０４に処理が戻される。一方、オブジェクト集合Ｓが空集合である場合、ラベル取得部１３０は、オブジェクト集合Ｒに含まれるオブジェクトに関連付けられたラベルベクトルｙを取得し（Ｓ２１０）、図８のＳ１１２に処理が進められる（Ｓ２３４）。
【００６０】
以上説明したように、第３記憶部１６０は、ラベルベクトルと埋め込みベクトルとが関連付けられた複数のラベルデータ１６２を記憶する。ラベル取得部１３０は、近似最近傍検索により、第３記憶部１６０に記憶された複数のラベルデータ１６２の中から、埋め込みベクトル算出部１２５によって算出された埋め込みベクトルｚに類似する埋め込みベクトルを検索する。また、ラベル取得部１３０は、検索によって得られた埋め込みベクトルに関連付けられたラベルベクトルｙを取得し、取得したラベルベクトルｙに対応するラベルＬを、対象データＴＤに付与するラベルとして取得する。
【００６１】
本実施形態の近似最近傍検索によれば、ラベルデータ１６２に含まれる埋め込みベクトルを全てチェックすることなく、埋め込みベクトルｚに類似する埋め込みベクトルを取得することができる。このため、本実施形態のラベル付与装置１００は、短時間で対象データＴＤにラベルを付与することができる。
【００６２】
＜５．第１学習部による分類ベクトルの学習処理＞
次に、第１学習部１４０による、第１記憶部１５０に記憶された分類ベクトルｗ１からｗｎ（図３参照）の学習処理の詳細を説明する。第１学習部１４０が分類ベクトルｗ１からｗｎの学習処理を行うことで、分類部１１５による特徴ベクトルｘの分類処理を高精度に行うことができる。
【００６３】
図１０は、実施形態に係る第１学習データＤ１の一例を示す図である。第１学習部１４０は、第１学習データＤ１を用いて、分類ベクトルデータ１５２に含まれる分類ベクトルｗ１からｗｎを学習する。第１学習データＤ１は、第１特徴ベクトルｘｉと、第２特徴ベクトルｘｊとが関連付けられたデータである。ｉおよびｊは、インデックス（添え字）を示す。図１０に示される例においては、第１特徴ベクトルｘｉおよび第２特徴ベクトルｘｊは、ｐ次元のベクトルである。
【００６４】
具体的に、第１学習部１４０は、以下の式（１）に示される値が最大となるように、分類ベクトルｗｃｉを求める。式（１）において、Ｎｉは、第１特徴ベクトルｘｉに対応する第１ラベルベクトルｙｉとの内積の値が大きい上位Ｎ個のラベルベクトルのインデックスの集合（Ｎ−近傍点）を示す。Ｓ−は、ランダムにサンプリングされたインデックスの集合を示す。
【００６５】
【数１】
2018077715.tif 000003
【００６６】
なお、式（１）におけるｃｉは、以下の式（２）に示される。式（２）において、ｃはクラスタ番号を示す。
【００６７】
【数２】
2018077715.tif 000004
【００６８】
このように、第１学習部１４０は、第１ラベルベクトルｙｉに対応する第１特徴ベクトルｘｉと、第１ラベルベクトルｙｉとの内積の値が大きい上位Ｎ個の第２ラベルベクトルｙｊに対応する第２特徴ベクトルｘｊとを取得し、第１特徴ベクトルｘｉと第２特徴ベクトルｘｊとを第１学習データＤ１として用いて、分類ベクトルｗｃｉを学習する。
【００６９】
具体的には、第１学習部１４０は、第１特徴ベクトルｘｉの分類に用いられる分類ベクトルｗｃｉと、第２特徴ベクトルｘｊ（ｊ∈Ｎｉ）とのコサイン類似度ｃｏｓ（ｗｃｉ，ｘｊ）が大きくなるように、分類ベクトルｗｃｉを調整する。
【００７０】
また、第１学習部１４０は、第１特徴ベクトルｘｉの分類に用いられる分類ベクトルｗｃｉと、ランダムに取得された第３特徴ベクトルｘｋ（ｋ∈Ｓ−）とのコサイン類似度（ｗｃｉ，ｘｋ）が小さくなるように、分類ベクトルｗｃｉを調整する。
【００７１】
第１学習部１４０は、第１学習データＤ１に含まれる全ての第１特徴ベクトルｘｉおよび第２特徴ベクトルｘｊを用いて上記の学習処理を行うことで、分類ベクトルデータ１５２に含まれる分類ベクトルｗ１からｗｎの学習処理を行うことができる。
【００７２】
以上説明したように、第１学習部１４０が、分類ベクトルデータ１５２に含まれる分類ベクトルｗ１からｗｎの学習処理を行うことで、分類部１１５による特徴ベクトルｘの分類処理を高精度に行うことができる。
【００７３】
＜６．第２学習部による埋め込み行列の学習処理＞
次に、第２学習部１４５による、第２記憶部１５５に記憶された埋め込み行列Ｖ１からＶｎ（図４参照）の学習処理の詳細を説明する。第２学習部１４５が埋め込み行列Ｖ１からＶｎの学習処理を行うことで、埋め込みベクトル算出部１２５による埋め込みベクトルｚの算出処理を高精度に行うことができる。
【００７４】
図１１は、実施形態に係る第２学習データＤ２の一例を示す図である。第２学習部１４５は、第２学習データＤ２を用いて、埋め込み行列データ１５７に含まれる埋め込み行列Ｖ１からＶｎを学習する。第２学習データＤ２は、第１埋め込みベクトルｚｉと、第２埋め込みベクトルｚｊとが関連付けられたデータである。ｉおよびｊは、インデックス（添え字）を示す。図１１に示される例においては、第１埋め込みベクトルｚｉおよび第２埋め込みベクトルｚｊは、ｐ次元のベクトルである。
【００７５】
具体的に、第２学習部１４５は、以下の式（３）に示される値が最小となるように、埋め込み行列Ｖを求める。前述したように、Ｎｉは、第１特徴ベクトルｘｉに対応する第１ラベルベクトルｙｉとの内積の値が大きい上位Ｎ個のラベルベクトルのインデックスの集合（Ｎ−近傍点）を示す。Ｓ−は、ランダムにサンプリングされたインデックスの集合を示す。また、γはコサインのレンジを調整するために用いられる係数である。
【００７６】
【数３】
2018077715.tif 000005
【００７７】
なお、式（３）におけるｃｏｓ（ｚｉ，ｚｊ）は、以下の式（４）に示される。
【００７８】
【数４】
2018077715.tif 000006
【００７９】
このように、第２学習部１４５は、第１ラベルベクトルｙｉに対応する第１埋め込みベクトルｚｉと、第１ラベルベクトルｙｉとの内積の値が大きい上位Ｎ個の第２ラベルベクトルｙｊに対応する第２埋め込みベクトルｚｊとを取得し、第１埋め込みベクトルｚｉと第２埋め込みベクトルｚｊとを第２学習データＤ２として用いて、埋め込み行列Ｖを学習する。
【００８０】
具体的には、第２学習部１４５は、第１埋め込みベクトルｚｉと第２埋め込みベクトルｚｊとのコサイン類似度ｃｏｓ（ｚｉ，ｚｊ）が大きくなるように、埋め込み行列Ｖを調整する。
【００８１】
また、第２学習部１４５は、第１埋め込みベクトルｚｉと、ランダムに取得された第３埋め込みベクトルｚｋとのコサイン類似度ｃｏｓ（ｚｉ，ｚｋ）が小さくなるように、埋め込み行列Ｖを調整する。
【００８２】
第２学習部１４５は、第２学習データＤ２に含まれる全ての第１埋め込みベクトルｚｉおよび第２埋め込みベクトルｚｊを用いて上記の学習処理を行うことで、埋め込み行列データ１５７に含まれる埋め込み行列Ｖ１からＶｎの学習処理を行うことができる。
【００８３】
以上説明したように、第２学習部１４５が、埋め込み行列データ１５７に含まれる埋め込み行列Ｖ１からＶｎの学習処理を行うことで、埋め込みベクトル算出部１２５による埋め込みベクトルｚの算出処理を高精度に行うことができる。
【００８４】
また、本実施形態においては、コサイン類似度ｃｏｓ（ｚｉ，ｚｊ）およびコサイン類似度ｃｏｓ（ｚｉ，ｚｋ）を用いて、埋め込み行列Ｖ１からＶｎを学習することとした。したがって、内積の計算のような時間のかかる計算を行う必要が無いため、埋め込み行列Ｖ１からＶｎの学習処理を高速に行うことができる。
【００８５】
＜７．ハードウェア構成＞
図１２は、実施形態に係るラベル付与装置１００のハードウェア構成の一例を示す図である。ラベル付与装置１００は、例えば、ＣＰＵ１７０、ＲＡＭ１７１、ＲＯＭ１７２、フラッシュメモリやＨＤＤなどの二次記憶装置１７３、ＮＩＣ１７４、ドライブ装置１７５、キーボード１７６、およびマウス１７７が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置１７５には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置１７３、またはドライブ装置１７５に装着された可搬型記憶媒体に記憶されたプログラムがＤＭＡ（Direct Memory Access）コントローラ（不図示）などによってＲＡＭ１７１に展開され、ＣＰＵ１７０によって実行されることで、ラベル付与装置１００の機能部が実現される。
【００８６】
以上説明したように、実施形態のラベル付与装置１００は、分類部１１５と、変換部（埋め込み行列取得部１２０、および埋め込みベクトル算出部１２５）と、ラベル取得部１３０とを備える。分類部１１５は、対象データＴＤから変換された特徴ベクトルｘを、分類ベクトルｗを用いて分類する。変換部（埋め込み行列取得部１２０、および埋め込みベクトル算出部１２５）は、分類部１１５による分類に応じた変換規則で、特徴ベクトルｘを埋め込みベクトルｚに変換する。ラベル取得部１３０は、変換部（埋め込み行列取得部１２０、および埋め込みベクトル算出部１２５）によって変換された埋め込みベクトルｚに基づいて得られるラベルを、対象データＴＤに付与するラベルＬとして取得する。これによって、正確かつ高速に対象データにラベルを付与することができる。
【００８７】
なお、上記実施形態において、特徴ベクトル変換部１１０はラベル付与装置１００に設けられることとしたが、ラベル付与装置とは異なる特徴ベクトル変換装置に設けられていてもよい。この場合、特徴ベクトル変換装置は、対象データＴＤを特徴ベクトルｘに変換し、変換した特徴ベクトルｘをラベル付与装置１００に送信してもよい。ラベル付与装置１００は、特徴ベクトル変換装置から受信した特徴ベクトルｘに基づいて、対象データＴＤにラベルＬを付与してもよい。
【００８８】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００８９】
１００…ラベル付与装置
１１０…特徴ベクトル変換部
１１５…分類部
１２０…行列取得部
１２５…ベクトル算出部
１３０…ラベル取得部
１３５…通信部
１４０…第１学習部
１４５…第２学習部
１５０…第１記憶部
１５２…分類ベクトルデータ
１５５…第２記憶部
１５７…埋め込み行列データ
１６０…第３記憶部
【図１】
2018077715.tif 000007
【図２】
2018077715.tif 000008
【図３】
2018077715.tif 000009
【図４】
2018077715.tif 000010
【図５】
2018077715.tif 000011
【図６】
2018077715.tif 000012
【図７】
2018077715.tif 000013
【図８】
2018077715.tif 000014
【図９】
2018077715.tif 000015
【図１０】
2018077715.tif 000016
【図１１】
2018077715.tif 000017
【図１２】
2018077715.tif 000018
【手続補正書】
【提出日】平成29年8月22日(2017.8.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
対象データから変換された特徴ベクトルを、分類ベクトルを用いて分類する分類部と、
前記分類部による分類に応じた変換規則で、前記特徴ベクトルを埋め込みベクトルに変換する変換部と、
前記変換部によって変換された前記埋め込みベクトルに基づいて得られるラベルを、前記対象データに付与するラベルとして取得するラベル取得部と、
を備える情報処理装置。
【請求項２】
前記変換部は、
前記分類部による分類に応じて、埋め込み行列を取得する埋め込み行列取得部と、
前記埋め込み行列取得部によって取得された前記埋め込み行列を前記特徴ベクトルに乗算することで、埋め込みベクトルを算出する埋め込みベクトル算出部と、を備える
請求項１記載の情報処理装置。
【請求項３】
ラベルベクトルと埋め込みベクトルとが関連付けられた複数のラベルデータを記憶する記憶部を更に備え、
前記ラベル取得部は、近似最近傍検索により、前記記憶部に記憶された前記複数のラベルデータの中から、前記埋め込みベクトル算出部によって算出された前記埋め込みベクトルに類似する埋め込みベクトルを検索し、検索によって得られた前記埋め込みベクトルに関連付けられたラベルベクトルを取得し、取得した前記ラベルベクトルに対応するラベルを、前記対象データに付与するラベルとして取得する
請求項２記載の情報処理装置。
【請求項４】
第１ラベルベクトルに対応する第１特徴ベクトルと、前記第１ラベルベクトルとの内積の値が大きい上位所定数の第２ラベルベクトルに対応する第２特徴ベクトルとを取得し、前記第１特徴ベクトルと前記第２特徴ベクトルとを学習データとして用いて、前記分類ベクトルを学習する第１学習部を更に備える
請求項１記載の情報処理装置。
【請求項５】
前記第１学習部は、前記第１特徴ベクトルの分類に用いられる前記分類ベクトルと、前記第２特徴ベクトルとのコサイン類似度が大きくなるように、前記分類ベクトルを調整する
請求項４記載の情報処理装置。
【請求項６】
前記第１学習部は、前記第１特徴ベクトルの分類に用いられる前記分類ベクトルと、ランダムに取得された第３特徴ベクトルとのコサイン類似度が小さくなるように、前記分類ベクトルを調整する
請求項５記載の情報処理装置。
【請求項７】
第１ラベルベクトルに対応する第１埋め込みベクトルと、前記第１ラベルベクトルとの内積の値が大きい上位所定数の第２ラベルベクトルに対応する第２埋め込みベクトルとを取得し、前記第１埋め込みベクトルと前記第２埋め込みベクトルとを学習データとして用いて、前記埋め込み行列を学習する第２学習部を更に備える
請求項１記載の情報処理装置。
【請求項８】
前記第２学習部は、前記第１埋め込みベクトルと前記第２埋め込みベクトルとのコサイン類似度が大きくなるように、前記埋め込み行列を調整する
請求項７記載の情報処理装置。
【請求項９】
前記第２学習部は、前記第１埋め込みベクトルと、ランダムに取得された第３埋め込みベクトルとのコサイン類似度が小さくなるように、前記埋め込み行列を調整する
請求項８記載の情報処理装置。
【請求項１０】
情報処理装置が、対象データから変換された特徴ベクトルを、分類ベクトルを用いて分類する分類工程と、
前記情報処理装置が、前記分類工程における分類に応じた変換規則で、前記特徴ベクトルを埋め込みベクトルに変換する変換工程と、
前記情報処理装置が、前記変換工程において変換された前記埋め込みベクトルに基づいて得られるラベルを、前記対象データに付与するラベルとして取得するラベル取得工程と、
を備える情報処理方法。
【請求項１１】
コンピュータを、
対象データから変換された特徴ベクトルを、分類ベクトルを用いて分類する分類部、
前記分類部による分類に応じた変換規則で、前記特徴ベクトルを埋め込みベクトルに変換する変換部、
前記変換部によって変換された前記埋め込みベクトルに基づいて得られるラベルを、前記対象データに付与するラベルとして取得するラベル取得部
として機能させるためのプログラム。