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

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

▶ ヤフー株式会社の特許一覧
特許6223530情報処理装置、情報処理方法、およびプログラム
<>
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000006
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000007
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000008
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000009
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000010
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000011
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000012
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000013
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000014
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000015
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000016
  • 特許6223530-情報処理装置、情報処理方法、およびプログラム 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6223530
(24)【登録日】2017年10月13日
(45)【発行日】2017年11月1日
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20171023BHJP
【FI】
   G06F17/30 220B
   G06F17/30 210D
   G06F17/30 350C
【請求項の数】11
【全頁数】17
(21)【出願番号】特願2016-219735(P2016-219735)
(22)【出願日】2016年11月10日
【審査請求日】2017年3月17日
【早期審査対象出願】
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100174986
【弁理士】
【氏名又は名称】林 康旨
(72)【発明者】
【氏名】田頭 幸浩
【審査官】 石田 信行
(56)【参考文献】
【文献】 特開2004−178569(JP,A)
【文献】 特開2010−079871(JP,A)
【文献】 特開2013−073256(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
対象データから変換された特徴ベクトルを、分類ベクトルを用いて分類する分類部と、
前記分類部による分類に応じた変換規則で、前記特徴ベクトルを埋め込みベクトルに変換する変換部と、
前記変換部によって変換された前記埋め込みベクトルに基づいて得られるラベルを、前記対象データに付与するラベルとして取得するラベル取得部と、
を備える情報処理装置。
【請求項2】
前記変換部は、
前記分類部による分類に応じて、埋め込み行列を取得する埋め込み行列取得部と、
前記埋め込み行列取得部によって取得された前記埋め込み行列を前記特徴ベクトルに乗算することで、埋め込みベクトルを算出する埋め込みベクトル算出部と、を備える
請求項1記載の情報処理装置。
【請求項3】
ラベルベクトルと埋め込みベクトルとが関連付けられた複数のラベルデータを記憶する記憶部を更に備え、
前記ラベル取得部は、近似最近傍検索により、前記記憶部に記憶された前記複数のラベルデータの中から、前記埋め込みベクトル算出部によって算出された前記埋め込みベクトルに類似する埋め込みベクトルを検索し、検索によって得られた前記埋め込みベクトルに関連付けられたラベルベクトルを取得し、取得した前記ラベルベクトルに対応するラベルを、前記対象データに付与するラベルとして取得する
請求項2記載の情報処理装置。
【請求項4】
第1ラベルベクトルに対応する第1特徴ベクトルと、前記第1ラベルベクトルとの内積の値が大きい上位所定数の第2ラベルベクトルに対応する第2特徴ベクトルとを取得し、前記第1特徴ベクトルと前記第2特徴ベクトルとを学習データとして用いて、前記分類ベクトルを学習する第1学習部を更に備える
請求項1記載の情報処理装置。
【請求項5】
前記第1学習部は、前記第1特徴ベクトルの分類に用いられる前記分類ベクトルと、前記第2特徴ベクトルとのコサイン類似度が大きくなるように、前記分類ベクトルを調整する
請求項4記載の情報処理装置。
【請求項6】
前記第1学習部は、前記第1特徴ベクトルの分類に用いられる前記分類ベクトルと、ランダムに取得された第3特徴ベクトルとのコサイン類似度が小さくなるように、前記分類ベクトルを調整する
請求項5記載の情報処理装置。
【請求項7】
第1ラベルベクトルに対応する第1埋め込みベクトルと、前記第1ラベルベクトルとの内積の値が大きい上位所定数の第2ラベルベクトルに対応する第2埋め込みベクトルとを取得し、前記第1埋め込みベクトルと前記第2埋め込みベクトルとを学習データとして用いて、前記埋め込み行列を学習する第2学習部を更に備える
請求項1記載の情報処理装置。
【請求項8】
前記第2学習部は、前記第1埋め込みベクトルと前記第2埋め込みベクトルとのコサイン類似度が大きくなるように、前記埋め込み行列を調整する
請求項7記載の情報処理装置。
【請求項9】
前記第2学習部は、前記第1埋め込みベクトルと、ランダムに取得された第3埋め込みベクトルとのコサイン類似度が小さくなるように、前記埋め込み行列を調整する
請求項8記載の情報処理装置。
【請求項10】
情報処理装置が、対象データから変換された特徴ベクトルを、分類ベクトルを用いて分類する分類工程と、
前記情報処理装置が、前記分類工程における分類に応じた変換規則で、前記特徴ベクトルを埋め込みベクトルに変換する変換工程と、
前記情報処理装置が、前記変換工程において変換された前記埋め込みベクトルに基づいて得られるラベルを、前記対象データに付与するラベルとして取得するラベル取得工程と、
を備える情報処理方法。
【請求項11】
コンピュータを、
対象データから変換された特徴ベクトルを、分類ベクトルを用いて分類する分類部、
前記分類部による分類に応じた変換規則で、前記特徴ベクトルを埋め込みベクトルに変換する変換部、
前記変換部によって変換された前記埋め込みベクトルに基づいて得られるラベルを、前記対象データに付与するラベルとして取得するラベル取得部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
従来、テキストデータや画像、音声などの対象データに、「政治」や「経済」などのトピックに対応するラベルを付与するトピック分析装置が知られている(特許文献1参照)。例えば、ユーザによって入力された検索ワードにラベルを付与することで、ユーザの興味のあるカテゴリを判別することができるため、ニュースサイトにおいてユーザに対するニュースレコメンドを行うことができる。
【0003】
トピック分析装置は、対象データをベクトルデータに変換し、変換したベクトルデータに基づいてラベルを付与する。この際に、トピック分析装置は、予めラベルが付与された教師データを用いて学習を行う。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013−246586号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示されたトピック分析装置は、正確かつ高速に対象データにラベルを付与することができない場合があった。
【0006】
本発明は、このような事情を考慮してなされたものであり、正確かつ高速に対象データにラベルを付与することができる情報処理装置、情報処理方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【0007】
本発明の一態様は、対象データから変換された特徴ベクトルを、分類ベクトルを用いて分類する分類部と、前記分類部による分類に応じた変換規則で、前記特徴ベクトルを埋め込みベクトルに変換する変換部と、前記変換部によって変換された前記埋め込みベクトルに基づいて得られるラベルを、前記対象データに付与するラベルとして取得するラベル取得部と、を備える情報処理装置である。
【発明の効果】
【0008】
本発明の一態様によれば、正確かつ高速に対象データにラベルを付与することができる。
【図面の簡単な説明】
【0009】
図1】実施形態に係るラベル付与装置100の使用環境を示す図である。
図2】実施形態に係るラベル付与装置100の詳細構成を示すブロック図である。
図3】実施形態に係る分類ベクトルデータ152の一例を示す図である。
図4】実施形態に係る埋め込み行列データ157の一例を示す図である。
図5】実施形態に係るラベルデータ162の一例を示す図である。
図6】実施形態に係るグラフインデックス164の一例を示す図である。
図7】実施形態に係るグラフインデックス164を示すグラフGの一例を示す図である。
図8】実施形態に係るラベル付与処理を示すフローチャートである。
図9】実施形態に係るラベルベクトルyの取得処理を示すフローチャートである。
図10】実施形態に係る第1学習データD1の一例を示す図である。
図11】実施形態に係る第2学習データD2の一例を示す図である。
図12】実施形態に係るラベル付与装置100のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、情報処理装置、情報処理方法、およびプログラムの実施形態について説明する。本実施形態においては、情報処理装置の一例として、ラベル付与装置について説明する。ラベル付与装置は、対象データの内容に応じて、「政治」、「経済」、「スポーツ」といったラベルを対象データに付与する装置である。ラベル付与装置は、ウェブページなどを管理するサーバ装置に対してクラウドサービスによってラベルを提供する装置であってもよいし、上記サーバ装置に内蔵されるものであってもよい。
【0011】
<1.ラベル付与装置の使用環境>
図1は、実施形態に係るラベル付与装置100の使用環境を示す図である。実施形態のラベル付与装置100は、ネットワークNWを介してデータサーバ200と通信する。ネットワークNWは、例えば、WAN(Wide Area Network)、LAN(Local Area Network)、インターネット、プロバイダ装置、無線基地局、専用回線などのうちの一部または全部を含む。
【0012】
ラベル付与装置100は、特徴ベクトル変換部110と、分類部115と、埋め込み行列取得部120と、埋め込みベクトル算出部125と、ラベル取得部130と、通信部135と、第1学習部140と、第2学習部145と、第1記憶部150と、第2記憶部155と、第3記憶部160とを備える。
【0013】
特徴ベクトル変換部110、分類部115、埋め込み行列取得部120、埋め込みベクトル算出部125、ラベル取得部130、第1学習部140、および第2学習部145は、例えば、ラベル付与装置100のプロセッサがプログラムを実行することで実現されてもよいし、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0014】
通信部135は、例えばNIC(Network Interface Card)を備える。ラベル付与装置100は通信部135を用いて、ネットワークNWを介してデータサーバ200と通信する。第1記憶部150、第2記憶部155、および第3記憶部160は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。また、第1記憶部150、第2記憶部155、および第3記憶部160の一部または全部は、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】
通信部135は、データサーバ200から対象データTDを受信し、受信した対象データTDを特徴ベクトル変換部110に出力する。特徴ベクトル変換部110は、通信部135から入力された対象データTDを特徴ベクトルxに変換する。例えば、対象データTDが検索クエリである場合には、特徴ベクトルxは検索クエリに含まれる単語の集合を示すベクトルであってよい。また、対象データTDがページデータである場合には、特徴ベクトルxはページデータに含まれる単語の集合を示すベクトルであってよい。特徴ベクトル変換部110は、特徴ベクトルxを、分類部115および埋め込みベクトル算出部125に出力する。
【0019】
特徴ベクトルxが特徴ベクトル変換部110から分類部115に入力されると、分類部115は、第1記憶部150から分類ベクトルデータ152を読み出す。また、分類部115は、読み出した分類ベクトルデータ152を用いて、入力された特徴ベクトルxを複数のクラスタCからCのいずれかに分類する。ここで、nはクラスタの総数を示す。分類部115は、特徴ベクトルxが分類されたクラスタのクラスタ番号mを、埋め込み行列取得部120に出力する。ここで、1≦m≦nである。以下、分類部115による分類処理を具体的に説明する。
【0020】
図3は、実施形態に係る分類ベクトルデータ152の一例を示す図である。図3に示されるように、分類ベクトルデータ152は、クラスタ番号と分類ベクトルとが関連付けられたデータである。図3に示される例においては、クラスタ番号1からnのそれぞれに、分類ベクトルwからwが関連付けられている。
【0021】
分類部115は、第1記憶部150から分類ベクトルデータ152を読み出す。前述したように、分類ベクトルデータ152は、複数のクラスタ(クラスタ番号1からn)の各々に割り当てられた分類ベクトルwからwを含む。分類部115は、クラスタ番号1からnのうち、wとxとのコサイン類似度(cos(w,x))が最大となるクラスタ番号mを導出し、導出したクラスタ番号mを埋め込み行列取得部120に出力する。
【0022】
クラスタ番号mが分類部115から埋め込み行列取得部120に入力されると、埋め込み行列取得部120は、入力されたクラスタ番号mに対応する埋め込み行列Vを第2記憶部155から取得する。埋め込み行列取得部120は、取得した埋め込み行列Vを埋め込みベクトル算出部125に出力する。
【0023】
図4は、実施形態に係る埋め込み行列データ157の一例を示す図である。図4に示されるように、埋め込み行列データ157は、クラスタ番号と埋め込み行列とが関連付けられたデータである。図4に示される例においては、クラスタ番号1からnのそれぞれに、埋め込み行列VからVが関連付けられている。
【0024】
埋め込み行列取得部120は、第2記憶部155から埋め込み行列データ157を読み出す。前述したように、埋め込み行列データ157は、複数のクラスタ(クラスタ番号1からn)の各々に割り当てられた埋め込み行列VからVを含む。埋め込み行列取得部120は、分類部115から入力されたクラスタ番号mに基づき、埋め込み行列Vを第2記憶部155から取得する。埋め込み行列取得部120は、取得した埋め込み行列Vを埋め込みベクトル算出部125に出力する。
【0025】
特徴ベクトルxが特徴ベクトル変換部110から埋め込みベクトル算出部125に入力され、埋め込み行列Vが埋め込み行列取得部120から埋め込みベクトル算出部125に入力されると、埋め込みベクトル算出部125は、埋め込みベクトルzを算出する。具体的に、埋め込みベクトル算出部125は、埋め込み行列取得部120によって取得された埋め込み行列Vを特徴ベクトルxに乗算することで、埋め込みベクトルzを算出する。埋め込みベクトル算出部125は、算出した埋め込みベクトルzをラベル取得部130に出力する。
【0026】
このように、埋め込み行列取得部120および埋め込みベクトル算出部125は、分類部115による分類に応じた変換規則で、特徴ベクトルxを埋め込みベクトルzに変換する変換部として機能する。
【0027】
埋め込みベクトルzが埋め込みベクトル算出部125からラベル取得部130に入力されると、ラベル取得部130は、第3記憶部160からラベルデータ162およびグラフインデックス164を読み出す。ラベル取得部130は、後述する近似最近傍検索により、ラベルデータ162の中から、埋め込みベクトルzに類似する埋め込みベクトルを検索する。また、ラベル取得部130は、近似最近傍検索によって取得された埋め込みベクトルに関連付けられたラベルベクトルyを取得し、取得したラベルベクトルyに対応するラベルを、対象データTDに付与するラベルLとして取得する。以下、ラベルベクトルyの取得処理の詳細を説明する。
【0028】
図5は、実施形態に係るラベルデータ162の一例を示す図である。図5に示されるように、ラベルデータ162は、オブジェクトIDと、埋め込みベクトルと、ラベルベクトルとが関連付けられたデータである。図5に示される例においては、オブジェクトID00001、00002、00003、・・・のそれぞれに、埋め込みベクトルz、z、z、・・・と、ラベルベクトルy、y、y、・・・とが関連付けられている。ここで、ラベルベクトルが関連付けられた埋め込みベクトルを、オブジェクトと称する。
【0029】
このように、ラベルデータ162は、埋め込みベクトルに正解データとしてのラベルベクトルが関連付けられたデータである。ラベル取得部130は、埋め込みベクトル算出部125から入力された埋め込みベクトルzに類似する埋め込みベクトルを、ラベルデータ162から検索する。その後、ラベル取得部130は、検索によって得られた埋め込みベクトルに関連付けられたラベルベクトルyを、ラベルデータ162から取得する。
【0030】
図6は、実施形態に係るグラフインデックス164の一例を示す図である。グラフインデックス164は、複数のオブジェクトを接続するエッジに関する情報であり、参照元のオブジェクトと参照先のオブジェクトとを接続する有向エッジの集合により形成されるグラフ構造のデータである。エッジとは、二つのオブジェクトが接続されていることを示す情報である。有向エッジとは、検索の際に一方向にしかデータを辿ることができないエッジである。
【0031】
図7は、実施形態に係るグラフインデックス164を示すグラフGの一例を示す図である。グラフGにおいて、丸印はオブジェクトを示し、矢印は有向エッジを示す。図7に示されるように、グラフインデックス164に含まれる各オブジェクトは、有向エッジによって接続されている。
【0032】
図6に示されるように、グラフインデックス164は、例えば、参照元のオブジェクトの識別情報である参照元オブジェクトIDに対し、参照先のオブジェクトの識別情報である参照先オブジェクトID、それらを接続する有向エッジの識別情報であるエッジID、および参照元のオブジェクトと参照先のオブジェクトとの距離などの情報が対応付けられたデータである。オブジェクトがベクトルである場合、それらの距離は、例えば、ベクトル要素間の差分についてLpノルムを求めたものと定義される(p=1、2、…)。
【0033】
なお、図6に示されるデータ構造は、あくまで一例であり、他のデータ構造が採用されてもよい。例えば、グラフインデックス164は、エッジIDに対してその他の情報が対応付けられたものであってもよい。すなわち、本実施形態においてデータ構造の形式は本質的な問題ではなく、距離が定義されている限り、如何なるデータ構造のデータが第3記憶部160に格納されてもよい。なお、本来距離とは距離の公理を満たすことを意味するが、距離の公理を満たさない擬似的な距離であっても構わない。擬似的な距離の場合には検索性能が低下するが、処理上扱いやすいなどのメリットがあれば疑似的な距離を使用してもよい。
【0034】
ラベル取得部130は、グラフインデックス164により規定されたエッジによって、参照元のオブジェクトから参照先のオブジェクトへの向きに従って辿ることのできるオブジェクトのうち、埋め込みベクトルzに対して既定の距離以内にあるオブジェクトを、埋め込みベクトルzに類似するオブジェクトとして抽出する。
【0035】
また、ラベル取得部130は、グラフインデックス164により規定されたエッジによって、参照元のオブジェクトから参照先のオブジェクトへの向きに従って辿ることのできるオブジェクトのうち、埋め込みベクトルzに対する距離が短いものから順に所定数のオブジェクトを、埋め込みベクトルzに類似するオブジェクトとして抽出してもよい。
【0036】
なお、ラベル取得部130による検索処理は、例えば、後述する図9のフローチャートの処理を用いて実現される。図9のフローチャートにおいて、オブジェクト集合Rが、ラベル取得部130による検索結果の一例である。この場合、所定数ksを所望の値に調整することで、検索結果に含まれるオブジェクトの数を調整することができる。
【0037】
ラベル取得部130は、以上の検索処理によって、埋め込みベクトル算出部125から入力された埋め込みベクトルzに類似する埋め込みベクトルを、ラベルデータ162から取得することができる。ラベル取得部130は、取得した埋め込みベクトルに関連付けられたラベルベクトルを、対象データTDに付与するラベルに対応するラベルベクトルyとして取得する。また、ラベル取得部130は、取得したラベルベクトルyに対応するラベルLを、対象データTDに付与するラベルとして取得する。例えば、ラベル取得部130は、ラベルベクトルとラベルとが関連付けられたテーブルを用いてラベルLを導出してよい。
【0038】
ラベル取得部130は、取得したラベルLを通信部135に出力する。通信部135は、ラベル取得部130から入力されたラベルLを、データサーバ200に送信する。以上の処理によって、ラベル付与装置100は、対象データTDにラベルLを付与することができる。
【0039】
<3.ラベル付与処理のフローチャート>
図8は、実施形態に係るラベル付与処理を示すフローチャートである。本フローチャートによる処理は、ラベル付与装置100によって実行される。
【0040】
まず、ラベル付与装置100は、通信部135がデータサーバ200から対象データTDを受信したか否かを判定する(S100)。通信部135がデータサーバ200から対象データTDを受信した場合、特徴ベクトル変換部110は、通信部135によって受信された対象データTDを、特徴ベクトルxに変換する(S102)。特徴ベクトル変換部110は、特徴ベクトルxを、分類部115および埋め込みベクトル算出部125に出力する。
【0041】
次に、分類部115は、特徴ベクトル変換部110によって変換された特徴ベクトルxを、分類ベクトルwを用いて分類する(S104)。また、分類部115は、特徴ベクトルxが分類されたクラスタのクラスタ番号mを、埋め込み行列取得部120に出力する。
【0042】
次に、埋め込み行列取得部120は、分類部115から入力されたクラスタ番号mに基づき、埋め込み行列Vを第2記憶部155から取得する(S106)。埋め込み行列取得部120は、取得した埋め込み行列Vを埋め込みベクトル算出部125に出力する。
【0043】
次に、埋め込みベクトル算出部125は、埋め込み行列取得部120によって取得された埋め込み行列Vを特徴ベクトルxに乗算することで、埋め込みベクトルzを算出する(S108)。埋め込みベクトル算出部125は、算出した埋め込みベクトルzをラベル取得部130に出力する。
【0044】
次に、ラベル取得部130は、第3記憶部160からラベルデータ162およびグラフインデックス164を読み出す。また、ラベル取得部130は、近似最近傍検索により、第3記憶部160に記憶された複数のラベルデータ162の中から、埋め込みベクトル算出部125によって算出された埋め込みベクトルzに類似する埋め込みベクトルを検索する。その後、ラベル取得部130は、検索によって得られた埋め込みベクトルに関連付けられたラベルベクトルyを取得する(S110)。
【0045】
次に、ラベル取得部130は、取得したラベルベクトルyに対応するラベルLを、対象データTDに付与するラベルとして取得する。前述したように、ラベル取得部130は、ラベルベクトルとラベルとが関連付けられたテーブルを用いてラベルLを導出してよい。
【0046】
ラベル取得部130は、取得したラベルLを通信部135に出力する。通信部135は、ラベル取得部130によって取得されたラベルLを、データサーバ200に送信し(S112)、前述のS11に処理を戻す。以上が、ラベル付与処理の一連の流れである。
【0047】
<4.ラベルベクトルの取得処理のフローチャート>
図9は、実施形態に係るラベルベクトルyの取得処理を示すフローチャートである。本フローチャートによる処理は、ラベル取得部130によって実行される。なお、本フローチャートは、図8のS110の処理を具体的に示したものである。
【0048】
図9に示すように、ラベル取得部130は、超球の半径rを∞(無限大)に設定し(S200)、ラベルデータ162に含まれるオブジェクト集合から部分集合Sを抽出する(S202)。超球とは、検索範囲(その範囲に入っていれば埋め込みベクトルzの近傍オブジェクト集合N(G,z)の要素に含められる可能性がある範囲)を示す仮想的な球である。埋め込みベクトルzの近傍オブジェクト集合N(G,z)とは、埋め込みベクトルzから見て距離が短い方から順に所定数kpだけ選択されるオブジェクトの集合であり、埋め込みベクトルzを参照元とする参照先のオブジェクトの集合である。なお、S202で抽出されたオブジェクト集合Sに含まれるオブジェクトは、同時にオブジェクト集合Rの初期集合に含められてもよい。
【0049】
次に、ラベル取得部130は、オブジェクト集合Sに含まれるオブジェクトの中で、埋め込みベクトルzとの距離が最も短いオブジェクトsを抽出する(S204)。次に、ラベル取得部130は、オブジェクトsをオブジェクト集合Sから除外する(S206)。
【0050】
次に、ラベル取得部130は、オブジェクトsと埋め込みベクトルzとの距離d(s,z)がr(1+ε)を超えるか否かを判定する(S208)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(その範囲にあるオブジェクトの近傍オブジェクトについて、埋め込みベクトルzの近傍オブジェクト集合N(G,z)の要素に含められるか否かを判定する範囲)の半径を示す値である。オブジェクトsと埋め込みベクトルzとの距離d(s,z)がr(1+ε)を超える場合、ラベル取得部130は、後述するS210に処理を進める。
【0051】
オブジェクトsと埋め込みベクトルzとの距離d(s,z)がr(1+ε)を超えない場合、ラベル取得部130は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトの中からオブジェクト集合Cに含まれないオブジェクトを一つ選択し、選択したオブジェクトuを、オブジェクト集合Cに格納する(S212)。オブジェクト集合Cは、重複検索を回避するために便宜上設けられるものであり、図9のフローチャートが開始されるときにリセットされて空集合とされる。
【0052】
次に、ラベル取得部130は、オブジェクトuと埋め込みベクトルzとの距離d(u,z)がr(1+ε)以下であるか否かを判定する(S214)。オブジェクトuと埋め込みベクトルzとの距離d(u,z)がr(1+ε)以下である場合、ラベル取得部130は、オブジェクトuをオブジェクト集合Sに追加する(S216)。
【0053】
次に、ラベル取得部130は、オブジェクトuと埋め込みベクトルzとの距離d(u,z)がr以下であるか否かを判定する(S218)。オブジェクトuと埋め込みベクトルzとの距離d(u,z)がrを超える場合、後述するS230に処理が進められる。
【0054】
オブジェクトuと埋め込みベクトルzとの距離d(u,z)がr以下である場合、ラベル取得部130は、オブジェクトuをオブジェクト集合Rに追加する(S220)。
【0055】
そして、ラベル取得部130は、オブジェクト集合Rに含まれるオブジェクト数がksを超えるか否かを判定する(S222)。所定数ksは、任意に定められる自然数である。例えば、ks=3である。
【0056】
オブジェクト集合Rに含まれるオブジェクト数がksを超える場合、ラベル取得部130は、オブジェクト集合Rに含まれるオブジェクトの中で埋め込みベクトルzとの距離が最も長いオブジェクトを、オブジェクト集合Rから除外する(S224)。
【0057】
次に、ラベル取得部130は、オブジェクト集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(S226)。オブジェクト集合Rに含まれるオブジェクト数がksと一致する場合、ラベル取得部130は、オブジェクト集合Rに含まれるオブジェクトの中で埋め込みベクトルzとの距離が最も長いオブジェクトと、埋め込みベクトルzとの距離を、新たなrに設定する(S228)。
【0058】
そして、ラベル取得部130は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えたか否かを判定する(S230)。オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えていない場合、前述のS212に処理が戻される。
【0059】
オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えた場合、ラベル取得部130は、オブジェクト集合Sが空集合であるか否かを判定する(S232)。オブジェクト集合Sが空集合でない場合、前述のS204に処理が戻される。一方、オブジェクト集合Sが空集合である場合、ラベル取得部130は、オブジェクト集合Rに含まれるオブジェクトに関連付けられたラベルベクトルyを取得し(S210)、図8のS112に処理が進められる(S234)。
【0060】
以上説明したように、第3記憶部160は、ラベルベクトルと埋め込みベクトルとが関連付けられた複数のラベルデータ162を記憶する。ラベル取得部130は、近似最近傍検索により、第3記憶部160に記憶された複数のラベルデータ162の中から、埋め込みベクトル算出部125によって算出された埋め込みベクトルzに類似する埋め込みベクトルを検索する。また、ラベル取得部130は、検索によって得られた埋め込みベクトルに関連付けられたラベルベクトルyを取得し、取得したラベルベクトルyに対応するラベルLを、対象データTDに付与するラベルとして取得する。
【0061】
本実施形態の近似最近傍検索によれば、ラベルデータ162に含まれる埋め込みベクトルを全てチェックすることなく、埋め込みベクトルzに類似する埋め込みベクトルを取得することができる。このため、本実施形態のラベル付与装置100は、短時間で対象データTDにラベルを付与することができる。
【0062】
<5.第1学習部による分類ベクトルの学習処理>
次に、第1学習部140による、第1記憶部150に記憶された分類ベクトルwからw図3参照)の学習処理の詳細を説明する。第1学習部140が分類ベクトルwからwの学習処理を行うことで、分類部115による特徴ベクトルxの分類処理を高精度に行うことができる。
【0063】
図10は、実施形態に係る第1学習データD1の一例を示す図である。第1学習部140は、第1学習データD1を用いて、分類ベクトルデータ152に含まれる分類ベクトルwからwを学習する。第1学習データD1は、第1特徴ベクトルxと、第2特徴ベクトルxとが関連付けられたデータである。iおよびjは、インデックス(添え字)を示す。図10に示される例においては、第1特徴ベクトルxおよび第2特徴ベクトルxは、p次元のベクトルである。
【0064】
具体的に、第1学習部140は、以下の式(1)に示される値が最大となるように、分類ベクトルwciを求める。式(1)において、Nは、第1特徴ベクトルxに対応する第1ラベルベクトルyとの内積の値が大きい上位N個のラベルベクトルのインデックスの集合(N−近傍点)を示す。Sは、ランダムにサンプリングされたインデックスの集合を示す。
【0065】
【数1】
【0066】
なお、式(1)におけるcは、以下の式(2)に示される。式(2)において、cはクラスタ番号を示す。
【0067】
【数2】
【0068】
このように、第1学習部140は、第1ラベルベクトルyに対応する第1特徴ベクトルxと、第1ラベルベクトルyとの内積の値が大きい上位N個の第2ラベルベクトルyに対応する第2特徴ベクトルxとを取得し、第1特徴ベクトルxと第2特徴ベクトルxとを第1学習データD1として用いて、分類ベクトルwciを学習する。
【0069】
具体的には、第1学習部140は、第1特徴ベクトルxの分類に用いられる分類ベクトルwciと、第2特徴ベクトルx(j∈N)とのコサイン類似度cos(wci,x)が大きくなるように、分類ベクトルwciを調整する。
【0070】
また、第1学習部140は、第1特徴ベクトルxの分類に用いられる分類ベクトルwciと、ランダムに取得された第3特徴ベクトルx(k∈S)とのコサイン類似度(wci,x)が小さくなるように、分類ベクトルwciを調整する。
【0071】
第1学習部140は、第1学習データD1に含まれる全ての第1特徴ベクトルxおよび第2特徴ベクトルxを用いて上記の学習処理を行うことで、分類ベクトルデータ152に含まれる分類ベクトルwからwの学習処理を行うことができる。
【0072】
以上説明したように、第1学習部140が、分類ベクトルデータ152に含まれる分類ベクトルwからwの学習処理を行うことで、分類部115による特徴ベクトルxの分類処理を高精度に行うことができる。
【0073】
<6.第2学習部による埋め込み行列の学習処理>
次に、第2学習部145による、第2記憶部155に記憶された埋め込み行列VからV図4参照)の学習処理の詳細を説明する。第2学習部145が埋め込み行列VからVの学習処理を行うことで、埋め込みベクトル算出部125による埋め込みベクトルzの算出処理を高精度に行うことができる。
【0074】
図11は、実施形態に係る第2学習データD2の一例を示す図である。第2学習部145は、第2学習データD2を用いて、埋め込み行列データ157に含まれる埋め込み行列VからVを学習する。第2学習データD2は、第1埋め込みベクトルzと、第2埋め込みベクトルzとが関連付けられたデータである。iおよびjは、インデックス(添え字)を示す。図11に示される例においては、第1埋め込みベクトルzおよび第2埋め込みベクトルzは、p次元のベクトルである。
【0075】
具体的に、第2学習部145は、以下の式(3)に示される値が最小となるように、埋め込み行列Vを求める。前述したように、Nは、第1特徴ベクトルxに対応する第1ラベルベクトルyとの内積の値が大きい上位N個のラベルベクトルのインデックスの集合(N−近傍点)を示す。Sは、ランダムにサンプリングされたインデックスの集合を示す。また、γはコサインのレンジを調整するために用いられる係数である。
【0076】
【数3】
【0077】
なお、式(3)におけるcos(z,z)は、以下の式(4)に示される。
【0078】
【数4】
【0079】
このように、第2学習部145は、第1ラベルベクトルyに対応する第1埋め込みベクトルzと、第1ラベルベクトルyとの内積の値が大きい上位N個の第2ラベルベクトルyに対応する第2埋め込みベクトルzとを取得し、第1埋め込みベクトルzと第2埋め込みベクトルzとを第2学習データD2として用いて、埋め込み行列Vを学習する。
【0080】
具体的には、第2学習部145は、第1埋め込みベクトルzと第2埋め込みベクトルzとのコサイン類似度cos(z,z)が大きくなるように、埋め込み行列Vを調整する。
【0081】
また、第2学習部145は、第1埋め込みベクトルzと、ランダムに取得された第3埋め込みベクトルzとのコサイン類似度cos(z,z)が小さくなるように、埋め込み行列Vを調整する。
【0082】
第2学習部145は、第2学習データD2に含まれる全ての第1埋め込みベクトルzおよび第2埋め込みベクトルzを用いて上記の学習処理を行うことで、埋め込み行列データ157に含まれる埋め込み行列VからVの学習処理を行うことができる。
【0083】
以上説明したように、第2学習部145が、埋め込み行列データ157に含まれる埋め込み行列VからVの学習処理を行うことで、埋め込みベクトル算出部125による埋め込みベクトルzの算出処理を高精度に行うことができる。
【0084】
また、本実施形態においては、コサイン類似度cos(z,z)およびコサイン類似度cos(z,z)を用いて、埋め込み行列VからVを学習することとした。したがって、内積の計算のような時間のかかる計算を行う必要が無いため、埋め込み行列VからVの学習処理を高速に行うことができる。
【0085】
<7.ハードウェア構成>
図12は、実施形態に係るラベル付与装置100のハードウェア構成の一例を示す図である。ラベル付与装置100は、例えば、CPU170、RAM171、ROM172、フラッシュメモリやHDDなどの二次記憶装置173、NIC174、ドライブ装置175、キーボード176、およびマウス177が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置175には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置173、またはドライブ装置175に装着された可搬型記憶媒体に記憶されたプログラムがDMA(Direct Memory Access)コントローラ(不図示)などによってRAM171に展開され、CPU170によって実行されることで、ラベル付与装置100の機能部が実現される。
【0086】
以上説明したように、実施形態のラベル付与装置100は、分類部115と、変換部(埋め込み行列取得部120、および埋め込みベクトル算出部125)と、ラベル取得部130とを備える。分類部115は、対象データTDから変換された特徴ベクトルxを、分類ベクトルwを用いて分類する。変換部(埋め込み行列取得部120、および埋め込みベクトル算出部125)は、分類部115による分類に応じた変換規則で、特徴ベクトルxを埋め込みベクトルzに変換する。ラベル取得部130は、変換部(埋め込み行列取得部120、および埋め込みベクトル算出部125)によって変換された埋め込みベクトルzに基づいて得られるラベルを、対象データTDに付与するラベルLとして取得する。これによって、正確かつ高速に対象データにラベルを付与することができる。
【0087】
なお、上記実施形態において、特徴ベクトル変換部110はラベル付与装置100に設けられることとしたが、ラベル付与装置とは異なる特徴ベクトル変換装置に設けられていてもよい。この場合、特徴ベクトル変換装置は、対象データTDを特徴ベクトルxに変換し、変換した特徴ベクトルxをラベル付与装置100に送信してもよい。ラベル付与装置100は、特徴ベクトル変換装置から受信した特徴ベクトルxに基づいて、対象データTDにラベルLを付与してもよい。
【0088】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0089】
100…ラベル付与装置
110…特徴ベクトル変換部
115…分類部
120…行列取得部
125…ベクトル算出部
130…ラベル取得部
135…通信部
140…第1学習部
145…第2学習部
150…第1記憶部
152…分類ベクトルデータ
155…第2記憶部
157…埋め込み行列データ
160…第3記憶部
【要約】      (修正有)
【課題】正確かつ高速に対象データにラベルを付与することができる情報処理装置、情報処理方法、およびプログラムを提供する。
【解決手段】ラベル付与装置100は、特徴ベクトル変換部110において、対象データから変換された特徴ベクトルを、分類ベクトル152を用いて分類する分類部115と、分類部115による分類に応じた変換規則で、特徴ベクトルから埋め込みベクトルを算出する埋め込みベクトル算出部125と、埋め込みベクトル算出部125によって算出された埋め込みベクトルに基づいて得られるラベルを、対象データに付与するラベルとして取得するラベル取得部130と、を備える。
【選択図】図2
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12