(58)【調査した分野】(Int.Cl.,DB名)
第1ラベルベクトルに対応する第1特徴ベクトルと、前記第1ラベルベクトルとの内積の値が大きい上位所定数の第2ラベルベクトルに対応する第2特徴ベクトルとを取得し、前記第1特徴ベクトルと前記第2特徴ベクトルとを学習データとして用いて、前記分類ベクトルを学習する第1学習部を更に備える
請求項1記載の情報処理装置。
前記第1学習部は、前記第1特徴ベクトルの分類に用いられる前記分類ベクトルと、前記第2特徴ベクトルとのコサイン類似度が大きくなるように、前記分類ベクトルを調整する
請求項4記載の情報処理装置。
前記第1学習部は、前記第1特徴ベクトルの分類に用いられる前記分類ベクトルと、ランダムに取得された第3特徴ベクトルとのコサイン類似度が小さくなるように、前記分類ベクトルを調整する
請求項5記載の情報処理装置。
第1ラベルベクトルに対応する第1埋め込みベクトルと、前記第1ラベルベクトルとの内積の値が大きい上位所定数の第2ラベルベクトルに対応する第2埋め込みベクトルとを取得し、前記第1埋め込みベクトルと前記第2埋め込みベクトルとを学習データとして用いて、前記埋め込み行列を学習する第2学習部を更に備える
請求項1記載の情報処理装置。
【発明を実施するための形態】
【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
1からC
nのいずれかに分類する。ここで、nはクラスタの総数を示す。分類部115は、特徴ベクトルxが分類されたクラスタのクラスタ番号mを、埋め込み行列取得部120に出力する。ここで、1≦m≦nである。以下、分類部115による分類処理を具体的に説明する。
【0020】
図3は、実施形態に係る分類ベクトルデータ152の一例を示す図である。
図3に示されるように、分類ベクトルデータ152は、クラスタ番号と分類ベクトルとが関連付けられたデータである。
図3に示される例においては、クラスタ番号1からnのそれぞれに、分類ベクトルw
1からw
nが関連付けられている。
【0021】
分類部115は、第1記憶部150から分類ベクトルデータ152を読み出す。前述したように、分類ベクトルデータ152は、複数のクラスタ(クラスタ番号1からn)の各々に割り当てられた分類ベクトルw
1からw
nを含む。分類部115は、クラスタ番号1からnのうち、w
mとxとのコサイン類似度(cos(w
m,x))が最大となるクラスタ番号mを導出し、導出したクラスタ番号mを埋め込み行列取得部120に出力する。
【0022】
クラスタ番号mが分類部115から埋め込み行列取得部120に入力されると、埋め込み行列取得部120は、入力されたクラスタ番号mに対応する埋め込み行列V
mを第2記憶部155から取得する。埋め込み行列取得部120は、取得した埋め込み行列V
mを埋め込みベクトル算出部125に出力する。
【0023】
図4は、実施形態に係る埋め込み行列データ157の一例を示す図である。
図4に示されるように、埋め込み行列データ157は、クラスタ番号と埋め込み行列とが関連付けられたデータである。
図4に示される例においては、クラスタ番号1からnのそれぞれに、埋め込み行列V
1からV
nが関連付けられている。
【0024】
埋め込み行列取得部120は、第2記憶部155から埋め込み行列データ157を読み出す。前述したように、埋め込み行列データ157は、複数のクラスタ(クラスタ番号1からn)の各々に割り当てられた埋め込み行列V
1からV
nを含む。埋め込み行列取得部120は、分類部115から入力されたクラスタ番号mに基づき、埋め込み行列V
mを第2記憶部155から取得する。埋め込み行列取得部120は、取得した埋め込み行列V
mを埋め込みベクトル算出部125に出力する。
【0025】
特徴ベクトルxが特徴ベクトル変換部110から埋め込みベクトル算出部125に入力され、埋め込み行列V
mが埋め込み行列取得部120から埋め込みベクトル算出部125に入力されると、埋め込みベクトル算出部125は、埋め込みベクトルzを算出する。具体的に、埋め込みベクトル算出部125は、埋め込み行列取得部120によって取得された埋め込み行列V
mを特徴ベクトル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
1、z
2、z
3、・・・と、ラベルベクトルy
1、y
2、y
3、・・・とが関連付けられている。ここで、ラベルベクトルが関連付けられた埋め込みベクトルを、オブジェクトと称する。
【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
mを第2記憶部155から取得する(S106)。埋め込み行列取得部120は、取得した埋め込み行列V
mを埋め込みベクトル算出部125に出力する。
【0043】
次に、埋め込みベクトル算出部125は、埋め込み行列取得部120によって取得された埋め込み行列V
mを特徴ベクトル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
1からw
n(
図3参照)の学習処理の詳細を説明する。第1学習部140が分類ベクトルw
1からw
nの学習処理を行うことで、分類部115による特徴ベクトルxの分類処理を高精度に行うことができる。
【0063】
図10は、実施形態に係る第1学習データD1の一例を示す図である。第1学習部140は、第1学習データD1を用いて、分類ベクトルデータ152に含まれる分類ベクトルw
1からw
nを学習する。第1学習データD1は、第1特徴ベクトルx
iと、第2特徴ベクトルx
jとが関連付けられたデータである。iおよびjは、インデックス(添え字)を示す。
図10に示される例においては、第1特徴ベクトルx
iおよび第2特徴ベクトルx
jは、p次元のベクトルである。
【0064】
具体的に、第1学習部140は、以下の式(1)に示される値が最大となるように、分類ベクトルw
ciを求める。式(1)において、N
iは、第1特徴ベクトルx
iに対応する第1ラベルベクトルy
iとの内積の値が大きい上位N個のラベルベクトルのインデックスの集合(N−近傍点)を示す。S
−は、ランダムにサンプリングされたインデックスの集合を示す。
【0066】
なお、式(1)におけるc
iは、以下の式(2)に示される。式(2)において、cはクラスタ番号を示す。
【0068】
このように、第1学習部140は、第1ラベルベクトルy
iに対応する第1特徴ベクトルx
iと、第1ラベルベクトルy
iとの内積の値が大きい上位N個の第2ラベルベクトルy
jに対応する第2特徴ベクトルx
jとを取得し、第1特徴ベクトルx
iと第2特徴ベクトルx
jとを第1学習データD1として用いて、分類ベクトルw
ciを学習する。
【0069】
具体的には、第1学習部140は、第1特徴ベクトルx
iの分類に用いられる分類ベクトルw
ciと、第2特徴ベクトルx
j(j∈N
i)とのコサイン類似度cos(w
ci,x
j)が大きくなるように、分類ベクトルw
ciを調整する。
【0070】
また、第1学習部140は、第1特徴ベクトルx
iの分類に用いられる分類ベクトルw
ciと、ランダムに取得された第3特徴ベクトルx
k(k∈S
−)とのコサイン類似度(w
ci,x
k)が小さくなるように、分類ベクトルw
ciを調整する。
【0071】
第1学習部140は、第1学習データD1に含まれる全ての第1特徴ベクトルx
iおよび第2特徴ベクトルx
jを用いて上記の学習処理を行うことで、分類ベクトルデータ152に含まれる分類ベクトルw
1からw
nの学習処理を行うことができる。
【0072】
以上説明したように、第1学習部140が、分類ベクトルデータ152に含まれる分類ベクトルw
1からw
nの学習処理を行うことで、分類部115による特徴ベクトルxの分類処理を高精度に行うことができる。
【0073】
<6.第2学習部による埋め込み行列の学習処理>
次に、第2学習部145による、第2記憶部155に記憶された埋め込み行列V
1からV
n(
図4参照)の学習処理の詳細を説明する。第2学習部145が埋め込み行列V
1からV
nの学習処理を行うことで、埋め込みベクトル算出部125による埋め込みベクトルzの算出処理を高精度に行うことができる。
【0074】
図11は、実施形態に係る第2学習データD2の一例を示す図である。第2学習部145は、第2学習データD2を用いて、埋め込み行列データ157に含まれる埋め込み行列V
1からV
nを学習する。第2学習データD2は、第1埋め込みベクトルz
iと、第2埋め込みベクトルz
jとが関連付けられたデータである。iおよびjは、インデックス(添え字)を示す。
図11に示される例においては、第1埋め込みベクトルz
iおよび第2埋め込みベクトルz
jは、p次元のベクトルである。
【0075】
具体的に、第2学習部145は、以下の式(3)に示される値が最小となるように、埋め込み行列Vを求める。前述したように、N
iは、第1特徴ベクトルx
iに対応する第1ラベルベクトルy
iとの内積の値が大きい上位N個のラベルベクトルのインデックスの集合(N−近傍点)を示す。S
−は、ランダムにサンプリングされたインデックスの集合を示す。また、γはコサインのレンジを調整するために用いられる係数である。
【0077】
なお、式(3)におけるcos(z
i,z
j)は、以下の式(4)に示される。
【0079】
このように、第2学習部145は、第1ラベルベクトルy
iに対応する第1埋め込みベクトルz
iと、第1ラベルベクトルy
iとの内積の値が大きい上位N個の第2ラベルベクトルy
jに対応する第2埋め込みベクトルz
jとを取得し、第1埋め込みベクトルz
iと第2埋め込みベクトルz
jとを第2学習データD2として用いて、埋め込み行列Vを学習する。
【0080】
具体的には、第2学習部145は、第1埋め込みベクトルz
iと第2埋め込みベクトルz
jとのコサイン類似度cos(z
i,z
j)が大きくなるように、埋め込み行列Vを調整する。
【0081】
また、第2学習部145は、第1埋め込みベクトルz
iと、ランダムに取得された第3埋め込みベクトルz
kとのコサイン類似度cos(z
i,z
k)が小さくなるように、埋め込み行列Vを調整する。
【0082】
第2学習部145は、第2学習データD2に含まれる全ての第1埋め込みベクトルz
iおよび第2埋め込みベクトルz
jを用いて上記の学習処理を行うことで、埋め込み行列データ157に含まれる埋め込み行列V
1からV
nの学習処理を行うことができる。
【0083】
以上説明したように、第2学習部145が、埋め込み行列データ157に含まれる埋め込み行列V
1からV
nの学習処理を行うことで、埋め込みベクトル算出部125による埋め込みベクトルzの算出処理を高精度に行うことができる。
【0084】
また、本実施形態においては、コサイン類似度cos(z
i,z
j)およびコサイン類似度cos(z
i,z
k)を用いて、埋め込み行列V
1からV
nを学習することとした。したがって、内積の計算のような時間のかかる計算を行う必要が無いため、埋め込み行列V
1からV
nの学習処理を高速に行うことができる。
【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】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【解決手段】ラベル付与装置100は、特徴ベクトル変換部110において、対象データから変換された特徴ベクトルを、分類ベクトル152を用いて分類する分類部115と、分類部115による分類に応じた変換規則で、特徴ベクトルから埋め込みベクトルを算出する埋め込みベクトル算出部125と、埋め込みベクトル算出部125によって算出された埋め込みベクトルに基づいて得られるラベルを、対象データに付与するラベルとして取得するラベル取得部130と、を備える。