(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022051705
(43)【公開日】2022-04-01
(54)【発明の名称】ナレッジグラフを決定するための装置及び方法
(51)【国際特許分類】
G06N 7/00 20060101AFI20220325BHJP
G06N 3/08 20060101ALI20220325BHJP
【FI】
G06N7/00 150
G06N3/08 140
【審査請求】未請求
【請求項の数】16
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021151855
(22)【出願日】2021-09-17
(31)【優先権主張番号】20197168
(32)【優先日】2020-09-21
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
【住所又は居所原語表記】Stuttgart, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】アンネマリー フリードリヒ
(72)【発明者】
【氏名】スバシュ チャンドラ プジャリ
(57)【要約】
【課題】ナレッジグラフを決定するための装置及びコンピュータ実装による方法に関する。
【解決手段】当該装置及び方法は、インスタンスのトークンシーケンスのための埋め込みを決定し(404)、第1の分類器において、文脈上の埋め込みについて第1の分類を決定し(406)、第1の分類が第1の条件を満たしているか否かを判定し(410)、第1の分類が第1の条件を満たしている場合には、インスタンスを表すナレッジグラフの第1のノードと、第1の分類を表すナレッジグラフのノードとの間の第1のリンクをナレッジグラフに追加し(412)、そうでない場合には、第1のリンクを追加しない。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ナレッジグラフを決定するためのコンピュータ実装による方法において、
インスタンスのトークンシーケンスのための埋め込みを決定するステップ(404)と、
第1の分類器において、前記埋め込みについて第1の分類を決定するステップ(406)と、
前記第1の分類が第1の条件を満たしているか否かを判定するステップ(410)と、
前記第1の分類が前記第1の条件を満たしている場合には、前記インスタンスを表す前記ナレッジグラフの第1のノードと、前記第1の分類を表す前記ナレッジグラフのノードとの間の第1のリンクを、前記ナレッジグラフに追加し(412)、前記第1の分類が前記第1の条件を満たしていない場合には、前記第1のリンクを追加しないステップと、
を含むことを特徴とする、
ナレッジグラフを決定するためのコンピュータ実装による方法。
【請求項2】
第2の分類器において第2の分類を決定するステップ(408)と、
前記第2の分類が第2の条件を満たしているか否かを判定するステップ(414)と、
前記第2の分類が前記第2の条件を満たしている場合には、前記インスタンスを表す前記ナレッジグラフの前記ノードと、前記第2の分類を表す前記ナレッジグラフの第2のノードとの間の第2のリンクを、前記ナレッジグラフに追加し(416)、前記第2の分類が前記第2の条件を満たしていない場合には、前記第2のリンクを追加しないステップと、
を含むことを特徴とする、請求項1に記載の方法。
【請求項3】
前記第1の分類器に前記埋め込みを供給するステップ(406)と、
供給された前記埋め込みから結果として生じた前記第1の分類器の前記埋め込み及び/又は隠れ状態を、前記第2の分類器に入力として供給するステップ(408)と、
を含むことを特徴とする、請求項2に記載の方法。
【請求項4】
前記第2の分類が前記条件を満たしている場合には、前記インスタンスを表す前記ノードから前記第1の分類を表す前記第1のノードまで、前記第1のリンクを決定するステップ(418)を含むことを特徴とする、請求項3に記載の方法。
【請求項5】
前記インスタンスの前記トークンシーケンスを決定するステップ(402)を含むことを特徴とする、請求項1乃至4のいずれか一項に記載の方法。
【請求項6】
前記インスタンスは、ディジタルテキストデータを含むことを特徴とする、請求項1乃至5のいずれか一項に記載の方法。
【請求項7】
前記第1の分類及び/又は前記第2の分類は、バイナリ分類であることを特徴とする、請求項1乃至6のいずれか一項に記載の方法。
【請求項8】
前記ナレッジグラフにラベルツリーを表すノードを設けるステップ(502)と、
前記インスタンスのためのラベルを表すノードへの複数のリンクを、前記ナレッジグラフに追加するステップ(506)と、
を含むことを特徴とする、請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
前記第1の分類及び/又は前記第2の分類によって、前記インスタンスが前記ラベルツリー内のノードによって表されたカテゴリに属しているか否かを判定するステップを含むことを特徴とする、請求項8に記載の方法。
【請求項10】
前記第1の分類を、前記第2の分類とは異なるラベルに割り当てるステップ(502)を含むことを特徴とする、請求項1乃至9のいずれか一項に記載の方法。
【請求項11】
前記第1の分類のためのラベル及び/又は前記第2の分類のためのラベルを有するデータポイントを用意するステップ(504)と、
前記データポイントに依存して、前記第1の分類器及び/又は前記第2の分類器をトレーニングするステップ(506)と、
を含むことを特徴とする、請求項1乃至10のいずれか一項に記載の方法。
【請求項12】
モデル、特にニューラルネットワークを用意するステップ(502)と、
前記第1の分類又は前記第2の分類を決定するために前記モデルをトレーニングするステップ(506)と、
を含むことを特徴とする、請求項1乃至11のいずれか一項に記載の方法。
【請求項13】
前記モデルをトレーニングするステップ(506)は、
前記第1の分類器の出力からの損失及び前記第2の分類器の出力からの損失を決定するステップと、
両方の前記損失に依存して前記第1の分類器及び前記第2の分類器における重み付けをトレーニングするために、又は、前記第1の損失に依存してかつ前記第2の損失には依存せずに前記第1の分類器をトレーニングするために及び前記第2の損失に依存してかつ前記第1の損失には依存せずに前記第2の分類器をトレーニングするために、前記損失を逆伝播させるステップと、
を含むことを特徴とする、請求項12に記載の方法。
【請求項14】
前記モデル内の分類器の階層構造における1つのポジションで1つの分類器によって、トレーニングされた前記モデルへの入力のために1つの分類を決定し、前記分類をラベルツリーの階層構造における前記ポジションに対応するラベルに割り当てるステップを含むことを特徴とする、請求項12又は13に記載の方法。
【請求項15】
ナレッジグラフ(102)を決定するための装置(100)において、
前記装置(100)は、請求項1乃至14のいずれか一項に記載の方法のステップを実施するように構成されていることを特徴とする、
ナレッジグラフ(102)を決定するための装置。
【請求項16】
コンピュータにより実行されるときに、請求項1乃至14のいずれか一項に記載の方法におけるステップを前記コンピュータに実施させるためのコンピュータ可読命令を含むことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特に、分類問題の解決により、ナレッジグラフを決定するための装置及び方法に関する。
【発明の概要】
【課題を解決するための手段】
【0002】
発明の開示
ナレッジグラフを決定するためのコンピュータ実装による方法は、インスタンスのトークンシーケンスのための埋め込みを決定するステップと、第1の分類器において、埋め込みについて第1の分類を決定するステップと、第1の分類が第1の条件を満たしているか否かを判定するステップと、第1の分類が第1の条件を満たしている場合には、インスタンスを表すナレッジグラフの第1のノードと、第1の分類を表すナレッジグラフのノードとの間の第1のリンクをナレッジグラフに追加し、そうでない場合には、第1のリンクを追加しないステップと、を含む。第1の分類器には、ラベルツリー内の1つのラベルを表すナレッジグラフのノードが関連づけられている。第1の分類を、インスタンスがこのラベルに属していること、又は、インスタンスがこのラベルには属していないこと、とすることができる。
【0003】
好ましくは、この方法は、第2の分類器において第2の分類を決定するステップと、第2の分類が第2の条件を満たしているか否かを判定するステップと、第2の分類が第2の条件を満たしている場合には、インスタンスを表すナレッジグラフのノードと、第2の分類を表すナレッジグラフの第2のノードとの間の第2のリンクをナレッジグラフに追加し、そうでない場合には、第2のリンクを追加しないステップと、を含む。マルチタスクセッティングの場合、メインタスクが複数のタスクから成るセットに分割され、分類器は、各タスクについて別個に予測を出力する。
【0004】
この方法は、第1の分類器に埋め込みを供給するステップと、供給された埋め込みから結果として生じた第1の分類器の埋め込み及び/又は隠れ状態を、第2の分類器に入力として供給するステップと、を含み得る。階層構造におけるそれぞれ異なるレベルの分類器は、ラベルツリーにおけるラベルの階層構造において、それぞれ異なるレベルに割り当てられている。ナレッジグラフにおける親ノードと子ノードとの間のリンクは、分類器のための階層構造によって表されている。親を表す分類器の分類又は隠れ状態を、その子を表す分類器のための入力として用いることができる。
【0005】
この方法は、第2の分類が条件を満たしている場合には、インスタンスを表すノードから第1の分類を表す第1のノードまで、第1のリンクを決定するステップを含む。第2の分類器が、分類器のための階層構造において第1の分類器よりも低い階層レベルにある場合には、分類器のこの集合体の予測が、階層型予測モードにおいて使用され、又は、事後処理予測によって使用され、その目的は、階層型予測を首尾一貫させることであり、例えば、関連する親ノードは予測されていないが、子は予測されているときには、それらの親ノードをナレッジグラフに追加し、又は、親ノードが予測されていなければ、子のラベルを取り除くようにする。
【0006】
インスタンスのトークンシーケンスを決定することができる。シーケンスを決定するために、トークナイザを使用することができる。インスタンスは、ディジタルテキストデータを含み得る。
【0007】
好ましくは、第1の分類及び/又は第2の分類は、バイナリ分類である。
【0008】
この方法は、ナレッジグラフにラベルツリーを表すノードを設けるステップと、インスタンスのためのラベルを表すノードへの複数のリンクを、ナレッジグラフに追加するステップと、を含み得る。このようにして、単一のラベル又は複数のラベルをインスタンスに割り当てることができる。
【0009】
好ましくは、この方法は、第1の分類及び/又は第2の分類によって、インスタンスがラベルツリー内のノードによって表されたカテゴリに属しているか否かを判定するステップを含む。
【0010】
この方法は、好ましくは、第1の分類を、第2の分類とは異なるラベルに割り当てるステップを含む。従って、マルチタスクセッティングにおいて、それぞれ異なるタスクが解決される。
【0011】
トレーニングのために、この方法は、第1の分類のためのラベル及び/又は第2の分類のためのラベルを有するデータポイントを用意するステップと、データポイントに依存して、第1の分類器及び/又は第2の分類器をトレーニングするステップと、を含む。即ち、それぞれ異なる判定を下すために、それぞれ異なる分類器がトレーニングされる。これにより、マルチタスクセッティングにおいて、それぞれ異なるタスクを解決することができる。このことによって、それぞれ異なる判定に重点を置いた分類器をトレーニングすることによりトレーニングデータが最適な手法で活用されるという階層型分類アルゴリズムの利点と、トランスフォーマに基づくプレトレーニングされた分類のためのニューラル言語モデルの利点とが結合される。1つのトランスフォーマモデルが総ての分類器のために共有され、それぞれ異なる分類器がマルチタスクセッティングにおいてトレーニングされるので、限定された計算能力しか利用することができないセッティングであっても、計算の実現可能性が保証される。
【0012】
好ましくは、この方法は、モデル、特にニューラルネットワークを用意するステップと、第1の分類又は第2の分類を決定するためにモデルをトレーニングするステップと、を含む。従って、各ラベルについて、1つの分類器を表すニューラルネットワークの一部分がトレーニングされる。
【0013】
モデルをトレーニングするステップは、第1の分類器の出力からの損失及び第2の分類器の出力からの損失を決定するステップと、両方の損失に依存して第1の分類器及び第2の分類器における重み付けをトレーニングするために、又は、第1の損失に依存してかつ第2の損失には依存せずに第1の分類器をトレーニングするために及び第2の損失に依存してかつ第1の損失には依存せずに第2の分類器をトレーニングするために、損失を逆伝播させるステップと、を含み得る。
【0014】
好ましくは、この方法は、モデル内の分類器の階層構造における1つのポジションで1つの分類器によって、このようにトレーニングされたモデルへの入力のために1つの分類を決定し、この分類をラベルツリーの階層構造におけるポジションに対応するラベルに割り当てるステップを含む。モデル内の分類器の集合体を、階層型予測を行うために使用することができる。これによって、ツリー内のラベルが首尾一貫したものとなる。
【0015】
ナレッジグラフを決定するための装置は、この方法のステップを実施するように構成されている。
【0016】
以下の説明及び図面から、さらなる有利な実施形態が容易に導き出される。
【図面の簡単な説明】
【0017】
【
図1】ナレッジグラフを決定するための装置を示す図である。
【
図3A】第1の態様による分類を示す概略図である。
【
図3B】第2の態様による分類を示す概略図である。
【
図4】ナレッジグラフを決定するための方法におけるステップを示す図である。
【
図5】ナレッジグラフを決定するためのモデルをトレーニングするための方法におけるステップを示す図である。
【発明を実施するための形態】
【0018】
ナレッジグラフ102を決定するための装置100は、実施例によれば少なくとも1つのプロセッサ104、少なくとも1つのメモリ106及びインタフェース108を有する。ナレッジグラフ102のための入力データを受信し、その入力データに関する情報を出力するように、インタフェース108を適合させることができる。データリンク110は、少なくとも一時的に、少なくとも1つのプロセッサ104、インタフェース108及び少なくとも1つのメモリ106と接続される。
【0019】
装置100は、以下に説明する方法のステップを実施するように構成されている。
【0020】
少なくとも1つのメモリ106は、コンピュータプログラムを含み得る。コンピュータプログラムは、コンピュータ可読命令を含み得る。その場合、この命令は、少なくとも1つのプロセッサ104により実行されるときに、この方法におけるステップを装置100に実施させるためのものである。
【0021】
以下の実施例の場合、ナレッジグラフ102は、階層型マルチラベル分類により決定される分類問題の解決を表現する。階層型マルチラベル分類は、分類問題の1つのカテゴリであり、この場合、1つの項目が、例えば、テキスト又はディジタル画像のインスタンスが、階層型のラベルに分類され、その際に各階層レベルの複数のラベルを割り当て可能である。
【0022】
実施例におけるインスタンスは、少なくとも1つのメモリ106に格納され、又は、インタフェース108を介して受信される。インスタンスは、ディジタルテキストデータを含み得る。
【0023】
以下に説明する態様の場合、複数のラベルから成るツリーのリーフノード又は非リーフノードのために、バイナリ分類器がトレーニングされる。
図2には、階層構造を構成する例示的なラベルツリー200が示されている。この階層構造は、ルートレベル202と称する最上位レベル、並びに、降順の階層順序で、第1のレベル204、第2のレベル206及び第3のレベル208を有する。
【0024】
実施例におけるルートレベルは、ルートと称される1つのノードを有する。実施例における第1のレベル204は、ラベルAのための非リーフノードと、ラベルBのための非リーフノードとを有する。これら双方は、ルートと称されるノードと直接的にリンクされている。これら双方は、互いに直接的にはリンクされていない。1つの態様によれば、ラベルツリーにおいて各ノードは厳密に1つの親を有する。
【0025】
実施例における第2のレベル206は、ラベルA43のための非リーフノードと、ラベルA44のための非リーフノードとを有する。これら双方は、ノードAと直接的にリンクされている。これら双方は、ノードBにもルートと称されるノードにもリンクされていないし、互いに直接的にはリンクされていない。
【0026】
実施例における第2のレベル206は、ラベルB41のための非リーフノードと、ラベルB23のための非リーフノードとを有する。これら双方は、ノードBと直接的にリンクされている。これら双方は、ノードAにもルートと称されるノードにもリンクされていないし、互いに直接的にはリンクされていない。
【0027】
実施例における第3のレベル208は、ラベルA43Bのためのリーフノードと、ラベルA43Cのためのリーフノードとを有する。これら双方は、ノードA43と直接的にリンクされている。これら双方は、それ以外のいかなるノードともリンクされていない。
【0028】
実施例における第3のレベル208は、ラベルA44Bのためのリーフノードと、ラベルA44Cのためのリーフノードとを有する。これら双方は、ノードA44と直接的にリンクされている。これら双方は、それ以外のいかなるノードともリンクされていない。
【0029】
実施例における第3のレベル208は、ラベルB41Jのためのリーフノードと、ラベルB41Fのためのリーフノードとを有する。これら双方は、ノードB41と直接的にリンクされている。これら双方は、それ以外のいかなるノードともリンクされていない。
【0030】
実施例における第3のレベル208は、ラベルB23Dのためのリーフノードと、ラベルB23Qのためのリーフノードとを有する。これら双方は、ノードB23と直接的にリンクされている。これら双方は、それ以外のいかなるノードともリンクされていない。
【0031】
図3Aには、複数の分類器から成る集合体300の一部分が、第1の態様による分類の概略図として示されており、この場合、1つの分類器がツリーのノードごとにトレーニングされる。
図3Bには、第2の態様による分類が示されている。
【0032】
より具体的に言えば、
図3A及び
図3Bには、ノードAを含む
図2のツリーのブランチにおけるラベルのための分類器を備えた人工ニューラルネットワークアーキテクチャが示されている。以下においては、第1の態様による集合体300について、
図3Aを参照しながら説明する。
【0033】
集合体300への入力を、トークンシーケンスを有するインスタンスとすることができる。この入力は、特許文献の名称又は要約を含み得る。この実施例においては、ラベルは特許分類によるものである。
【0034】
図3Aに示されている第1の態様の場合、入力は、いかなる種類の処理も行われていない未加工のテキスト301である。適当なトークナイザ302、例えばワードピーストークン化によって、テキスト301がトークンシーケンスにトークン化される。実施例の場合、このトークンシーケンスは、one-hotエンコーディングされ、これによって、以下においてはトランスフォーマと称するトランスフォーマ層304のための準備として、対応する語彙のトークン識別303を用いて、トークンごとに入力ベクトルt1、t2、t3、...tnが形成される。特殊分類トークンのための入力ベクトルが同様に供給され、これは、
図3Aにおいては<CLS>と称される。
【0035】
実施例におけるトランスフォーマ304は、トランスフォーマに基づくニューラル言語モデルであり、例えば、プレトレーニングされたニューラル言語モデル、例えば、BERT又はRoBERTaである。
【0036】
トランスフォーマ304において、特殊分類トークンを表す入力ベクトル<CLS>、t1、t2、t3、...tn及びone-hotエンコーディングされたトークンシーケンスは、プレトレーニングされたトランスフォーマ、即ち、言語モデルを通過させられ、これによって、埋め込み306が生成される。埋め込み306は、入力ベクトルt1、t2、t3、...tnのためのトークン埋め込み306-1、306-2、...306-nを有する。埋め込み306は、特殊分類トークンのための埋め込み307、例えば、BERTのためのCLSを含む。
【0037】
1つの態様によれば、BERTは、特殊埋め込みシーケンスを出力し、それらの埋め込みのうち第1の埋め込みは、分類トークンに対応する埋め込み307であり、これを入力シーケンス全体の表現として使用することができる。これに加えて、BERTは、各トークンのために1つの埋め込みも出力する。この態様によれば、CLS埋め込みは、分類器及び/又はニューラルネットワークの残余の部分のための入力として用いられる、単一の埋め込みを形成するために用いられる。
【0038】
以下においては、CLSトークンの埋め込みを集約ベクトル308として使用することに基づき、実施例を説明する。
【0039】
トランスフォーマの出力埋め込み306は、1つの行列を成している。この行列の次元は、トークンの最大数に依存している。ワードピーストークンの個数を1つのテキスト内においてMとし、埋め込みサイズがEであるとすると、トランスフォーマ304は、次元M×Eのトークンテンソルを生成する。このトークンテンソル内の最初のベクトルは、CLSトークンの埋め込み307に対応し、これを入力シーケンス全体のための埋め込みを表すものとみなすことができ、即ち、集約埋め込み308として使用することができる。
【0040】
集約埋め込み308を、分類器のタスク固有の隠れ層に直接、送ることができる。
【0041】
図3Aには、階層構造に従って配置された複数の分類器が示されており、この階層構造は、
図2に示したラベルツリーにおけるリーフノードと非リーフノードの階層構造に合致している。
【0042】
より具体的に言えば、
図3Aには、階層構造の第1のレベルに対応する分類器310が示されており、この第1のレベルは、集約埋め込み308についてラベルAに割り当てられた分類の値を決定するためにトレーニングされている。階層構造の第2のレベルに対応する分類器312は、その入力について分類の値、特にラベルA43に割り当てられたバイナリ分類の値を決定するためにトレーニングされている。階層構造の第2のレベルに対応する分類器314は、その入力について分類の値、特にラベルA44に割り当てられたバイナリ分類の値を決定するためにトレーニングされている。階層構造の第3のレベルに対応する分類器316は、その入力について分類の値、特にラベルA43Bに割り当てられたバイナリ分類の値を決定するためにトレーニングされている。階層構造の第3のレベルに対応する分類器318は、その入力について分類の値、特にラベルA43Cに割り当てられたバイナリ分類の値を決定するためにトレーニングされている。階層構造の第3のレベルに対応する分類器320は、その入力について分類の値、特にラベルA44Bに割り当てられたバイナリ分類の値を決定するためにトレーニングされている。階層構造の第3のレベルに対応する分類器322は、その入力について分類の値、特にラベルA44Cに割り当てられたバイナリ分類の値を決定するためにトレーニングされている。
【0043】
トレーニングにおいては、2つのタスクのために共有された層を使用することができる。この態様における共有された層とは、個々の出力を計算するために使用された分類器のための人工ニューラルネットワークの層のことを指す。ラベルA43C及びA43Bのための分類器に関して、共有された層は、ラベルAのための分類器310の層、ラベルA43のための分類器312の層、ラベルA43Bのための分類器316の層、ラベルA43Cのための分類器318の層、及び、BERT層を含むが、ラベルA44のための分類器314の層も、ラベルA44Bのための分類器320の層も、ラベルA44Cのための分類器322の層も含まない。
【0044】
実施例におけるバイナリ分類は、インスタンスがラベルに割り当てられる場合には、真であり、そうでない場合には、偽である。真は、インスタンスがこのラベルに属していることを示すものであることを指す。偽は、インスタンスがこのラベルに属していないことを示すものであることを指す。
【0045】
ソフトマックス層又はソフトマックス演算324を、分類の値のために用意することができる。
図3Aに示された集合体300の一部分に表されているように、階層構造の全域にわたる7個のラベルによって、7個のソフトマックス層又はソフトマックス演算324を使用することができる。
【0046】
分類器は、実施例の場合、ラベル固有の層として配置されている。ある入力を1つのラベルに割り当てることができるのか否かを識別することが、実施例の場合には、1つのタスクである。分類器を、一般に任意のタイプの分類器とすることができる。
【0047】
ある1つのタスクへの入力によって、各ラベル間の階層関係が使用され、上位レベルのタスクの学習が下位レベルに渡される。実施例における分類器310のための入力は、集約埋め込み308である。
【0048】
いずれの分類器のための入力も、階層構造においてそれよりも上位のレベルにおける分類器の出力を含み得る。かかる分類器のための入力は、集約埋め込み308と、階層構造においてそれよりも上位のレベルにおける分類器の出力との連結体を含み得る。実施例においては、集約埋め込み308を個々の出力と結合、例えば連結するための任意選択的な手段326が示されている。1つの態様によれば、第2のレベル以下について、集約埋め込み308又はCNN出力を、親の隠れ状態と結合することができ、例えば連結することができ、この親の隠れ状態は、子の全結合層に入力として渡される。
【0049】
実施例の場合、ある1つのタスクは、分類器の少なくとも1つの全結合層によって実施される。出力を決定するために、最後の全結合層の後にソフトマックス関数を含む全結合層のセットを用いることができる。
【0050】
いずれの分類器のための入力も、ベクトルとすることができる。このベクトルを、各々がサイズDを有するk個の全結合層を通過させることができる。
【0051】
分類器は、タスク固有である。実施例におけるタスク固有の分類器は、与えられたインスタンス、例えば、テキスト若しくはテキストからの単語シーケンス又はディジタル画像が、特定のクラスに属しているか否かを予測するために、バイナリ分類を行う。実施例におけるタスク固有の分類器は、次元2のソフトマックス出力324を備えた全結合層を含む。全結合層に、活性化関数として正規化線形ユニットReLUを、損失としてバイナリ交差エントロピを、設けることができる。
【0052】
以下においては、第2の態様による集合体300について、
図3Bを参照しながら説明する。
図3Aに関してこれまで述べたものと同一の機能を有する要素には、
図3Bにおいても同一の参照符号が付されている。
【0053】
第2の態様による集合体300が第1の態様による集合体300と異なる点は、トークンシーケンスt1、t2、t3、...tnの情報が、1つの集約埋め込み308に、例えば単一のベクトルに、集約されているということだけである。第1の態様とは対照的に、この集約埋め込み308は、特殊分類トークンの埋め込み307、例えば、BERTにおけるCLS、には基づいていない。その代わりに、集約は、構成要素309によりトークン埋め込み306-1、306-2、...306-nから決定され、この構成要素309は、畳み込みニューラルネットワーク層、CNN層、又は、アテンションを用いた若しくは用いていない、平均のような集約関数であり得る。
【0054】
可変のカーネルサイズを有する畳み込み層のセットを、総ての入力トークンの埋め込みを含むテンソルに適用することができる。実施例における畳み込み層は、畳み込み層ごとにサイズ2、3、4、5のカーネル及びF個のフィルタを有する。実施例においては、構成要素309としてCNN層が用いられ、これによって、その入力シーケンス全体を表す単一のベクトルが生成される。
【0055】
以下においては、
図4を参照しながら、ナレッジグラフ102を決定するためのコンピュータ実装による方法について説明する。以下の説明においては、ラベルツリーのリーフノード又は非リーフノードごとに1つの分類器が設けられていることを前提とする。
【0056】
この方法は、トレーニングされたモデルを使用する。実施例の場合、モデルは、集合体300を表す。即ち、モデルは、階層型分類を実施する複数の分類器を備えたニューラルネットワークを表す。実施例におけるモデルは、上述のような層及びレベルを有するニューラルネットワークである。実施例における線形層は、バイナリ分類のために2つのロジットを生成する。
【0057】
複数の分類器のための、並びに、トレーニングされた第1の分類器及びトレーニングされた第2の分類器のための、例示的な階層構造を有する例を用いて、この方法について説明する。
【0058】
第1の分類器は、第1の分類を決定するためにトレーニングされている。第1の分類器には、第1のラベルを表すナレッジグラフ102の第1のノードが関連づけられている。第2の分類器は、第2の分類を決定するためにトレーニングされている。第2の分類器には、第2のラベルを表すナレッジグラフ102の第2のノードが関連づけられている。
【0059】
分類器のための階層構造は、さらに、それぞれ異なる判定を下すためにトレーニングされたそれぞれ異なる分類器を含み得る。分類器のための階層構造におけるそれぞれ異なるレベルの分類器は、ラベルツリーにおけるラベルの階層構造において、それぞれ異なるレベルに割り当てられている。これらの分類器を、第1の分類器及び第2の分類器について説明したのと同様に用いることができる。
【0060】
ナレッジグラフ102における親ノードと子ノードとの間のリンクは、分類器のための階層構造によって表されている。親を表す分類器の分類又は隠れ状態を、その子を表す分類器のための入力として用いることができる。
【0061】
実施例における第1の分類及び第2の分類は、ラベルツリーの1つの特定のラベルのためのバイナリ分類である。
【0062】
この方法によれば、トランスフォーマ304の出力を、総ての分類器のために共有することができる。それぞれ異なる分類器が、以下においてさらに詳細に説明するマルチタスクセッティングにおいて、トレーニングされる。即ち、トランスフォーマ304のパラメータを、同様に実際にトレーニングすることができる。
【0063】
この方法は、トークナイザ302を用いて、テキストのインスタンスをトークンシーケンスに分割するステップ402を含む。
【0064】
その後、ステップ404が実行される。
【0065】
ステップ404において、各トークンについて、トランスフォーマ304、例えば、トランスフォーマに基づくニューラル言語モデルを用いて、埋め込みが決定される。これと同時に、ステップ404は、単一の埋め込みを決定する。単一の埋め込みを、例えば、CLSトークンのための、又は、シーケンス全体を表すために使用可能な構成要素309の出力のための集約埋め込み308とすることができる。
【0066】
その後、ステップ406が実行される。
【0067】
ステップ406において、第1の分類が、第1の分類器において埋め込みについて決定される。この目的で、実施例においては、第1の分類器に埋め込みが供給される。
【0068】
その後、ステップ408が実行される。
【0069】
ステップ408において、第2の分類が、第2の分類器において決定される。この目的で、ステップ406において供給された埋め込みから結果として生じた第1の分類器の埋め込み及び/又は隠れ状態を、第2の分類器に入力として供給することができる。
【0070】
任意選択的に、埋め込みを、分類又は隠れ状態と連結することができる。
【0071】
その後、ステップ410が実行される。
【0072】
ステップ410において、第1の分類が第1の条件を満たしているか否かが判定される。第1の分類を、インスタンスがこのラベルに属していること、又は、インスタンスがこのラベルには属していないこと、とすることができる。
【0073】
第1の分類が第1の条件を満たしている場合には、例えば、インスタンスがこのラベルに属しているということを表している場合には、ステップ412が実行される。そうでない場合には、ステップ414が実行される。
【0074】
ステップ412において、インスタンスを表すナレッジグラフ102の第1のノードと、第1の分類を表すナレッジグラフ102のノードとの間の第1のリンクが、ナレッジグラフ102に追加される。
【0075】
その後、ステップ414が実行される。
【0076】
ステップ414において、第2の分類が第2の条件を満たしているか否かが判定される。第2の分類を、インスタンスがこのラベルに属していること、又は、インスタンスがこのラベルには属していないこと、とすることができる。
【0077】
第2の分類が第2の条件を満たしている場合には、例えば、インスタンスがこのラベルに属しているということを表している場合には、ステップ416が実行される。そうでない場合には、ステップ418が実行される。
【0078】
ステップ416において、インスタンスを表すナレッジグラフ102のノードと、第2の分類を表すナレッジグラフ102の第2のノードとの間の第2のリンクが、ナレッジグラフ102に追加される。
【0079】
その後、ステップ418が実行される。ステップ418は、任意選択的である。
【0080】
第2の分類が条件を満たしている場合には、ステップ418において、インスタンスを表すノードから第1の分類を表す第1のノードまで、第1のリンクが決定される。第2の分類器が、分類器のための階層構造において第1の分類器よりも低い階層レベルにある場合には、分類器のこの集合体の予測が、階層型予測モードにおいて使用され、又は、事後処理予測によって使用され、その目的は、階層型予測を首尾一貫させることであり、例えば、関連する親ノードは予測されていないが、子は予測されているときには、それらの親ノードをナレッジグラフに追加し、又は、親ノードが予測されていないときには、子のラベルを取り除くようにする。
【0081】
マルチタスクセッティングの場合、メインタスクが、種々の分類器に対応する複数のタスクから成るセットに分割される。それらの分類器は、各タスクについて別個に予測を出力する。ニューラルネットワークは、
図4に示されたものよりも多くの階層レベルを含み得る。かくして、より複雑なナレッジグラフ102が容易に決定される。
【0082】
未知のディジタルイメージ又はテキストシーケンスのインスタンスについて、このようにしてモデルにより供給されるマルチヘッドニューラルネットワークを用いて、ラベルセットが予測される。
【0083】
ラベルセットを任意選択的に、予測された階層型ラベルセットと首尾一貫させることができる。この目的で、予測されたラベルセットに従って、親ラベルを追加することができ、又は、子ラベルを取り除くことができる。
【0084】
ノードnを、元のディジタル画像又はテキストシーケンスを表すナレッジグラフ102に追加することができる。“belongsToCategory”(カテゴリに属する)と称されるリンクを、予測されたラベルのうちの1つを表す任意のノードLとnとの間に、追加することができる。これらは、親カテゴリを含むものとしてもよいし、含まないものとしてもよい。
【0085】
モデルをトレーニングするためのステップについて、
図5を参照しながら説明する。
【0086】
ステップ502において、モデルが用意される。
【0087】
詳細には、ラベルツリーに従った構造がニューラルネットワークに設けられる。ニューラルネットワークは、複数の畳み込みニューラルネットワーク層、ドロップアウト層又は全結合層を含み得る。
【0088】
ステップ504において、ラベリングされたデータポイントが用意される。
【0089】
データポイントは、実施例の場合、第1の分類又は第2の分類又はこれら双方に割り当てられる。実施例におけるデータポイントは、第1の分類器及び第2の分類器のためのラベルを有する。
【0090】
それぞれ異なる分類に割り当てられた又は複数の分類に割り当てられた複数のラベリングされたデータポイントを用いて、トレーニングが実施される。
【0091】
その後、ステップ506が実行される。
【0092】
ステップ506において、第1の分類器及び/又は第2の分類器が、データポイントに依存してトレーニングされる。
【0093】
第1の分類及び/又は第2の分類を決定するために、モデルがトレーニングされる。従って、各ラベルについて分類器がトレーニングされ、例えば、1つの畳み込みネットワーク、少なくとも1つの全結合層、又は、人工ニューラルネットワークの一部分がトレーニングされる。階層構造及び分類器において、3つ以上のレベルを設けることができる。
【0094】
即ち、このことは、それぞれ異なる判定を下すために、それぞれ異なる分類器がトレーニングされる、ということを意味する。このことによって、それぞれ異なる判定に重点を置いた複数の分類器をトレーニングすることによりトレーニングデータが最適な手法で活用されるという階層型分類アルゴリズムの利点と、テキスト分類アプローチのために一般的に最先端のパフォーマンスを結果として生じさせる、トランスフォーマに基づくプレトレーニングされたニューラル言語モデルの利点とが結合される。多数のトランスフォーマモデルをメモリ内に同時に保持することはできないであろうが、マルチタスクセッティングにおける階層型学習アルゴリズムの使用は、この結合を可能にする。1つのトランスフォーマモデルが総ての分類器のために共有され、それぞれ異なる分類器がマルチタスクセッティングにおいてトレーニングされるので、限定された計算能力しか利用することができないセッティングであっても、計算の実現可能性が保証される。
【0095】
1つの態様によれば、モデルをトレーニングするステップは、第1の分類器の出力からの第1の損失と、第2の分類器の出力からの第2の損失とを決定し、第1の分類器及び第2の分類器における重み付けをトレーニングするために、それらの損失を逆伝播させるステップを含む。1つの実施例によれば、第1の分類器及び第2の分類器は共有された層に属していない。このケースにおいては、第1の損失は、第2の分類器の出力には依存せずに決定され、第1の分類器のパラメータは、第1の損失に依存してかつ第2の損失には依存せずに更新される。第2の損失は、第1の分類器の出力には依存せずに決定され、第2の分類器のパラメータは、第2の損失に依存してかつ第1の損失には依存せずに更新される。他の実施例によれば、第1の分類器及び第2の分類器は、共有された層に属している。この実施例の場合、共有された層は、第1の損失及び第2の損失に依存して更新される。第1の分類器及び第2の分類器のパラメータは、例えば、第1の損失と第2の損失との和に依存して更新される。第1の損失又は第2の損失を、データポイントにおいて定義された入力に対するソフトマックス出力324と、このポイントに対しデータポイントにおいて定義された基準との差のノルムの和として、決定することができる。この入力を集約埋め込み308とすることができ、例えば、CLSトークンの埋め込み、又は、ある1つのトレーニングインスタンスの一連のトークンt1、...、tnにおける情報若しくはこのトレーニングインスタンスを集約する埋め込みとすることができる。
【0096】
他の態様によれば、モデルをトレーニングするステップは、データポイントが第1の分類のためにラベリングされており、第2の分類のためにはラベリングされていない場合、第1の分類器の出力からの損失を決定し、重み付けを第1の分類器においてトレーニングし、第2の分類器においてはトレーニングしないために、その損失を逆伝播させるステップを含む。
【0097】
他の態様によれば、モデルをトレーニングするステップは、データポイントが第2の分類のためにラベリングされており、第1の分類のためにはラベリングされていない場合、第2の分類器の出力からの損失を決定し、重み付けを第2の分類器においてトレーニングし、第1の分類器においてはトレーニングしないために、その損失を逆伝播させるステップを含む。
【0098】
トレーニングは、複数のエポックを含み得る。
【0099】
トレーニングのためのステップを、上述のモデルを使用する前に実施することができる。このケースにおいては、トレーニング後にステップ402が実行される。
【0100】
この方法は、このようにしてトレーニングされたモデルに入力するために分類を決定するステップを含み得る。モデル内の分類器の階層構造における1つのポジションにおいて、1つの分類器を用いて、分類を行うことができる。この方法は、さらに、ラベルツリーの階層構造内のポジションに対応する1つのラベルに分類を割り当てるステップを含み得る。
【外国語明細書】