IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社リコーの特許一覧

特許7509279プロトタイプネットワークの訓練方法、装置および記憶媒体
<>
  • 特許-プロトタイプネットワークの訓練方法、装置および記憶媒体 図1
  • 特許-プロトタイプネットワークの訓練方法、装置および記憶媒体 図2
  • 特許-プロトタイプネットワークの訓練方法、装置および記憶媒体 図3
  • 特許-プロトタイプネットワークの訓練方法、装置および記憶媒体 図4
  • 特許-プロトタイプネットワークの訓練方法、装置および記憶媒体 図5
  • 特許-プロトタイプネットワークの訓練方法、装置および記憶媒体 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-24
(45)【発行日】2024-07-02
(54)【発明の名称】プロトタイプネットワークの訓練方法、装置および記憶媒体
(51)【国際特許分類】
   G06N 3/08 20230101AFI20240625BHJP
   G06N 3/045 20230101ALI20240625BHJP
   G06F 40/279 20200101ALI20240625BHJP
【FI】
G06N3/08
G06N3/045
G06F40/279
【請求項の数】 16
(21)【出願番号】P 2023102881
(22)【出願日】2023-06-23
(65)【公開番号】P2024004478
(43)【公開日】2024-01-16
【審査請求日】2023-06-23
(31)【優先権主張番号】202210750715.3
(32)【優先日】2022-06-28
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】ルォイ チョン
(72)【発明者】
【氏名】ビヌ ドォン
(72)【発明者】
【氏名】シャヌシャヌ ジアン
(72)【発明者】
【氏名】ヨンウエイ ジャン
(72)【発明者】
【氏名】レイ ディン
【審査官】千葉 久博
(56)【参考文献】
【文献】国際公開第2022/107328(WO,A1)
【文献】国際公開第2020/158217(WO,A1)
【文献】中国特許出願公開第114547241(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
G06N 3/045
G06F 40/279
(57)【特許請求の範囲】
【請求項1】
名前付きエンティティの認識に使用されるプロトタイプネットワークの訓練方法であって、
複数の訓練サンプルを含む訓練セットを取得するステップと、
前記訓練サンプルにおけるサブワードのサブワードベクトルと位置ベクトルを生成し、前記サブワードのサブワードベクトルと位置ベクトルを融合して、前記サブワードの融合ベクトルを取得するステップと、
前記訓練セットに基づいてサポートセットとクエリセットを生成し、前記サポートセットとクエリセットを使って前記プロトタイプネットワークを訓練するステップと、を含み、
前記サポートセットとクエリセットはいずれも前記訓練セットのサブセットであり、
前記プロトタイプネットワークは第1のプロトタイプネットワークと第2のプロトタイプネットワークを含み、
前記訓練は、
前記サポートセットにおける訓練サンプルの各サブワードのサブワードベクトルを第1のプロトタイプネットワークに入力して、エンティティタイププロトタイプを生成し、前記クエリセットを利用して前記エンティティタイププロトタイプの第1の損失を計算するステップと、
前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを第2のプロトタイプネットワークに入力して、エンティティ境界プロトタイプを生成し、前記クエリセットを利用して前記エンティティ境界プロトタイプの第2の損失を計算するステップと、
前記第1の損失と第2の損失に基づいて総損失を取得し、前記総損失に基づいて前記第1のプロトタイプネットワークと第2のプロトタイプネットワークを最適化するステップと、を含むことを特徴とするプロトタイプネットワークの訓練方法。
【請求項2】
予め設定された終了条件を満たすまで、反復最適化を複数回繰り返すステップをさらに含み、
毎回の反復最適化において、異なるサポートセットとクエリセットを生成し、該サポートセットとクエリセットを利用して前記プロトタイプネットワークに対して前記訓練を行い、
毎回の反復最適化で使用されるクエリセットの和集合は、前記訓練セットにおけるすべての訓練サンプルをカバーすることを特徴とする請求項1に記載のプロトタイプネットワークの訓練方法。
【請求項3】
前記訓練サンプルにおけるサブワードの位置ベクトルを生成するステップは、
前記訓練サンプルにおけるサブワードの位置情報をエンコードして、サブワードの位置ベクトルを取得するステップを含むことを特徴とする請求項1に記載のプロトタイプネットワークの訓練方法。
【請求項4】
前記訓練サンプルにおける前記サブワードの位置情報は、
前記訓練サンプルにおける前記サブワードの絶対位置、または、
前記サブワードと、前記サブワードが所在する名前付きエンティティにおける指定位置にあるサブワードとの相対距離であることを特徴とする請求項3に記載のプロトタイプネットワークの訓練方法。
【請求項5】
前記サブワードのサブワードベクトルと位置ベクトルを融合して、前記サブワードの融合ベクトルを取得するステップは、
前記サブワードのサブワードベクトルと位置ベクトルに対してベクトル連結を行い、サブワードの融合ベクトルを取得するステップ、または、
予め設定された重みに従って、前記サブワードのサブワードベクトルと位置ベクトルに対して重み付き加算を実行し、サブワードの融合ベクトルを取得するステップを含むことを特徴とする請求項1に記載のプロトタイプネットワークの訓練方法。
【請求項6】
前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを第2のプロトタイプネットワークに入力して、エンティティ境界プロトタイプを生成するステップは、
前記訓練サンプルにおける各サブワードが所属する名前付きエンティティにおける位置に従って、前記訓練サンプルにおける各サブワードのエンティティ境界タイプを取得するステップと、
前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成するステップと、
前記サポートセットにおける同一のエンティティ境界タイプのエンティティ境界特徴ベクトルを融合して、当該エンティティ境界タイプに対応するエンティティ境界プロトタイプを取得するステップと、を含むことを特徴とする請求項1に記載のプロトタイプネットワークの訓練方法。
【請求項7】
前記クエリセットを利用して前記エンティティ境界プロトタイプの第2の損失を計算するステップは、
前記クエリセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成するステップと、
前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界特徴ベクトルと各エンティティ境界プロトタイプとの距離に従って、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界プロトタイプの予測結果を取得するステップと、
前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプの予測結果と、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプとの差分に基づいて、前記エンティティ境界プロトタイプの第2の損失を計算するステップと、を含むことを特徴とする請求項6に記載のプロトタイプネットワークの訓練方法。
【請求項8】
前記総損失に基づいて前記第1のプロトタイプネットワークと第2のプロトタイプネットワークを最適化するステップは、
前記総損失を小さくするように、確率的勾配降下法を使って、前記第1のプロトタイプネットワーク及び第2のプロトタイプネットワークのネットワークパラメータを調整するステップを含むことを特徴とする請求項1に記載のプロトタイプネットワークの訓練方法。
【請求項9】
前記エンティティ境界プロトタイプは、エンティティ開始位置プロトタイプ、エンティティ終了位置プロトタイプ、エンティティ内部位置プロトタイプ、及びエンティティ外部位置プロトタイプを含むことを特徴とする請求項1に記載のプロトタイプネットワークの訓練方法。
【請求項10】
名前付きエンティティの認識に使用されるプロトタイプネットワークの訓練装置であって、
複数の訓練サンプルを含む訓練セットを取得するサンプル取得モジュールと、
前記訓練サンプルにおけるサブワードのサブワードベクトルと位置ベクトルを生成し、前記サブワードのサブワードベクトルと位置ベクトルを融合して、前記サブワードの融合ベクトルを取得するベクトル生成モジュールと、
前記訓練セットに基づいてサポートセットとクエリセットを生成し、前記サポートセットとクエリセットを利用して前記プロトタイプネットワークを訓練するネットワーク訓練モジュールと、を含み、
前記サポートセットとクエリセットはいずれも前記訓練セットのサブセットであり、
前記プロトタイプネットワークは第1のプロトタイプネットワークと第2のプロトタイプネットワークを含み、
前記訓練は、
前記サポートセットにおける訓練サンプルの各サブワードのサブワードベクトルを第1のプロトタイプネットワークに入力して、エンティティタイププロトタイプを生成し、前記クエリセットを利用して前記エンティティタイププロトタイプの第1の損失を計算することと、
前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを第2のプロトタイプネットワークに入力して、エンティティ境界プロトタイプを生成し、前記クエリセットを利用して前記エンティティ境界プロトタイプの第2の損失を計算することと、
前記第1の損失と第2の損失に基づいて総損失を取得し、前記総損失に基づいて前記第1のプロトタイプネットワークと第2のプロトタイプネットワークを最適化することと、を含むことを特徴とするプロトタイプネットワークの訓練装置。
【請求項11】
予め設定された終了条件を満たすまで、反復最適化を複数回繰り返す反復最適化モジュールをさらに含み、
毎回の反復最適化において、異なるサポートセットとクエリセットを生成し、該サポートセットとクエリセットを利用して前記プロトタイプネットワークに対して前記訓練を行い、
毎回の反復最適化で使用されるクエリセットの和集合は、前記訓練セットにおけるすべての訓練サンプルをカバーすることを特徴とする請求項10に記載のプロトタイプネットワークの訓練装置。
【請求項12】
前記ベクトル生成モジュールは、前記訓練サンプルにおけるサブワードの位置情報をエンコードして、サブワードの位置ベクトルを取得することを特徴とする請求項10に記載のプロトタイプネットワークの訓練装置。
【請求項13】
前記ネットワーク訓練モジュールは、
前記訓練サンプルにおける各サブワードが所属する名前付きエンティティにおける位置に従って、前記訓練サンプルにおける各サブワードのエンティティ境界タイプを取得し、
前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成し、
前記サポートセットにおける同一のエンティティ境界タイプのエンティティ境界特徴ベクトルを融合して、当該エンティティ境界タイプに対応するエンティティ境界プロトタイプを取得することを特徴とする請求項10に記載のプロトタイプネットワークの訓練装置。
【請求項14】
前記ネットワーク訓練モジュールは、
前記クエリセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成し、
前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界特徴ベクトルと各エンティティ境界プロトタイプとの距離に従って、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界プロトタイプの予測結果を取得し、
前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプの予測結果と、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプとの差分に基づいて、前記エンティティ境界プロトタイプの第2の損失を計算することを特徴とする請求項13に記載のプロトタイプネットワークの訓練装置。
【請求項15】
前記エンティティ境界プロトタイプは、エンティティ開始位置プロトタイプ、エンティティ終了位置プロトタイプ、エンティティ内部位置プロトタイプ、及びエンティティ外部位置プロトタイプを含むことを特徴とする請求項10に記載のプロトタイプネットワークの訓練装置。
【請求項16】
コンピュータプログラムが記憶されたコンピュータが読み取り可能な記憶媒体であって、前記コンピュータプログラムがプロセッサにより実行される場合、請求項1から9のいずれか一つに記載のプロトタイプネットワークの訓練方法のステップを実現することを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は機械学習と自然言語処理(NLP,Natural Language Processing)の技術分野に関するものであり、具体的には名前付きエンティティの認識(named entity recognition, NER)に使用されるプロトタイプネットワークの訓練方法、装置及びコンピュータが読み取り可能な記憶媒体に関する。
【背景技術】
【0002】
名前付きエンティティの認識 (エンティティ認識、エンティティチャンキング、エンティティ抽出とも呼ばれる) は、NLP の基本的なタスクであり、情報抽出、質問応答システム、構文解析、機械翻訳など、多くの NLP タスクにとって重要な基本ツールである。名前付きエンティティの認識 (エンティティ認識、エンティティチャンキング、エンティティ抽出とも呼ばれる) は、テキスト内の名前付きエンティティを特定し、人名、機関名、地名、時間式、数量、通貨価値、パーセンテージなど、予め定義したエンティティタイプに分類することを目的とする。したがって、名前付きエンティティの認識も分類タスクであることが分かる。
【0003】
少量サンプル(few-shot)(訓練サンプルが少ない)の分類タスクでは、データの過剰適合は最も重要な解決すべき問題の一つである。 訓練サンプルが少なすぎるため、一般的な分類アルゴリズムでは過剰適合の現象があり、その結果、分類結果と実際の結果には大きな誤差がある。サンプル量が小さすぎることによる過剰適合の影響を減らすため、例えばプロトタイプネットワークなど、メトリックベースのメタ学習方法を使用することができる。
【0004】
プロトタイプネットワークは、小さなサンプルの分類タスクを解決するために提案されている。プロトタイプネットワークは、サンプルをメトリック空間に投影し、且つこの空間では、類似したサンプルは近くにあり、異種のサンプルは遠くにある。図 1 に示すように、このメトリック空間には、C1、C2、および C3 の 3つのサンプルカテゴリがあり、且つ同じカテゴリのサンプル間の距離は比較的近い。ラベル付けされていないサンプル x にラベルを付けるため、サンプルをこの空間に投影し、x がどのカテゴリに近いかを計算することで、x はそのカテゴリに属すると判断する。
【0005】
プロトタイプネットワークは最初、少量サンプルの画像分類タスクを解決するために提案されたが、後に一部の研究者がそれをセンテンスの分類タスクに移行して利用した。しかし、現在でも少量サンプルのNERタスクにはほとんど使用されていない。少量サンプルのNERタスクに使用される既存の方法は、エンティティタイプ情報を使用してエンティティタイププロトタイプを構築し、少量サンプルのエンティティ分類タスクで良好な結果を取得したが、厳密に言えば、エンティティ分類には、1)エンティティの境界を確定する、2)エンティティのタイプを確定するという 2つのサブタスクが含まれ、従来技術の方法は、タイプ情報のみを識別し、エンティティの境界情報を無視する。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本出願に依れば、少なくとも一つの実施例でプロトタイプネットワークの訓練方法、および装置を提供し、名前付きエンティティ認識タスクにおいてプロトタイプネットワークの性能を高めることができる。
【課題を解決するための手段】
【0007】
上記の技術問題を解決するため、本出願は次のような態様を提供する。
【0008】
第1の態様では、名前付きエンティティの認識に使用されるプロトタイプネットワークの訓練方法であって、複数の訓練サンプルを含む訓練セットを取得するステップと、前記訓練サンプルにおけるサブワードのサブワードベクトルと位置ベクトルを生成し、前記サブワードのサブワードベクトルと位置ベクトルを融合して、前記サブワードの融合ベクトルを取得するステップと、前記訓練セットに基づいてサポートセットとクエリセットを生成し、前記サポートセットとクエリセットを使って前記プロトタイプネットワークを訓練するステップと、を含み、前記サポートセットとクエリセットはいずれも前記訓練セットのサブセットであり、前記プロトタイプネットワークは第1のプロトタイプネットワークと第2のプロトタイプネットワークを含み、前記訓練は、前記サポートセットにおける訓練サンプルの各サブワードのサブワードベクトルを第1のプロトタイプネットワークに入力して、エンティティタイププロトタイプを生成し、前記クエリセットを利用して前記エンティティタイププロトタイプの第1の損失を計算するステップと、前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを第2のプロトタイプネットワークに入力して、エンティティ境界プロトタイプを生成し、前記クエリセットを利用して前記エンティティ境界プロトタイプの第2の損失を計算するステップと、前記第1の損失と第2の損失に基づいて総損失を取得し、前記総損失に基づいて前記第1のプロトタイプネットワークと第2のプロトタイプネットワークを最適化するステップと、を含むことを特徴とするプロトタイプネットワークの訓練方法を提供する。
【0009】
好ましくは、前記プロトタイプネットワークの訓練方法は、予め設定された終了条件を満たすまで、反復最適化を複数回繰り返すステップをさらに含み、毎回の反復最適化において、異なるサポートセットとクエリセットを生成し、該サポートセットとクエリセットを利用して前記プロトタイプネットワークに対して前記訓練を行い、毎回の反復最適化で使用されるクエリセットの和集合は、前記訓練セットにおけるすべての訓練サンプルをカバーする。
【0010】
好ましくは、前記訓練サンプルにおけるサブワードの位置ベクトルを生成するステップは、前記訓練サンプルにおけるサブワードの位置情報をエンコードして、サブワードの位置ベクトルを取得するステップを含む。
【0011】
好ましくは、前記訓練サンプルにおける前記サブワードの位置情報は、前記訓練サンプルにおける前記サブワードの絶対位置、または、前記サブワードと、前記サブワードが所在する名前付きエンティティにおける指定位置にあるサブワードとの相対距離である。
【0012】
好ましくは、前記サブワードのサブワードベクトルと位置ベクトルを融合して、前記サブワードの融合ベクトルを取得するステップは、前記サブワードのサブワードベクトルと位置ベクトルに対してベクトル連結を行い、サブワードの融合ベクトルを取得するステップ、または、予め設定された重みに従って、前記サブワードのサブワードベクトルと位置ベクトルに対して重み付き加算を実行し、サブワードの融合ベクトルを取得するステップを含む。
【0013】
好ましくは、前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを第2のプロトタイプネットワークに入力して、エンティティ境界プロトタイプを生成するステップは、前記訓練サンプルにおける各サブワードが所属する名前付きエンティティにおける位置に従って、前記訓練サンプルにおける各サブワードのエンティティ境界タイプを取得するステップと、前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成するステップと、前記サポートセットにおける同一のエンティティ境界タイプのエンティティ境界特徴ベクトルを融合して、当該エンティティ境界タイプに対応するエンティティ境界プロトタイプを取得するステップと、を含む。
【0014】
好ましくは、前記クエリセットを利用して前記エンティティ境界プロトタイプの第2の損失を計算するステップは、前記クエリセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成するステップと、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界特徴ベクトルと各エンティティ境界プロトタイプとの距離に従って、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界プロトタイプの予測結果を取得するステップと、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプの予測結果と、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプとの差分に基づいて、前記エンティティ境界プロトタイプの第2の損失を計算するステップと、を含むこと。
【0015】
好ましくは、前記総損失に基づいて前記第1のプロトタイプネットワークと第2のプロトタイプネットワークを最適化するステップは、前記総損失を小さくするように、確率的勾配降下法を使って、前記第1のプロトタイプネットワーク及び第2のプロトタイプネットワークのネットワークパラメータを調整するステップを含む。
【0016】
好ましくは、前記エンティティ境界プロトタイプは、エンティティ開始位置プロトタイプ、エンティティ終了位置プロトタイプ、エンティティ内部位置プロトタイプ、及びエンティティ外部位置プロトタイプを含む。
【0017】
第2の態様では、名前付きエンティティの認識に使用されるプロトタイプネットワークの訓練装置であって、複数の訓練サンプルを含む訓練セットを取得するサンプル取得モジュールと、前記訓練サンプルにおけるサブワードのサブワードベクトルと位置ベクトルを生成し、前記サブワードのサブワードベクトルと位置ベクトルを融合して、前記サブワードの融合ベクトルを取得するベクトル生成モジュールと、前記訓練セットに基づいてサポートセットとクエリセットを生成し、前記サポートセットとクエリセットを利用して前記プロトタイプネットワークを訓練するネットワーク訓練モジュールと、を含み、前記サポートセットとクエリセットはいずれも前記訓練セットのサブセットであり、前記プロトタイプネットワークは第1のプロトタイプネットワークと第2のプロトタイプネットワークを含み、前記訓練は、前記サポートセットにおける訓練サンプルの各サブワードのサブワードベクトルを第1のプロトタイプネットワークに入力して、エンティティタイププロトタイプを生成し、前記クエリセットを利用して前記エンティティタイププロトタイプの第1の損失を計算することと、前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを第2のプロトタイプネットワークに入力して、エンティティ境界プロトタイプを生成し、前記クエリセットを利用して前記エンティティ境界プロトタイプの第2の損失を計算することと、前記第1の損失と第2の損失に基づいて総損失を取得し、前記総損失に基づいて前記第1のプロトタイプネットワークと第2のプロトタイプネットワークを最適化することと、を含むことを特徴とするプロトタイプネットワークの訓練装置を提供する。
【0018】
好ましくは、前記プロトタイプネットワークの訓練装置は、予め設定された終了条件を満たすまで、反復最適化を複数回繰り返す反復最適化モジュールをさらに含み、毎回の反復最適化において、異なるサポートセットとクエリセットを生成し、該サポートセットとクエリセットを利用して前記プロトタイプネットワークに対して前記訓練を行い、毎回の反復最適化で使用されるクエリセットの和集合は、前記訓練セットにおけるすべての訓練サンプルをカバーする。
【0019】
好ましくは、前記ベクトル生成モジュールは、前記訓練サンプルにおけるサブワードの位置情報をエンコードして、サブワードの位置ベクトルを取得する。
【0020】
好ましくは、前記ネットワーク訓練モジュールは、前記訓練サンプルにおける各サブワードが所属する名前付きエンティティにおける位置に従って、前記訓練サンプルにおける各サブワードのエンティティ境界タイプを取得し、前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成し、前記サポートセットにおける同一のエンティティ境界タイプのエンティティ境界特徴ベクトルを融合して、当該エンティティ境界タイプに対応するエンティティ境界プロトタイプを取得する。
【0021】
好ましくは、前記ネットワーク訓練モジュールは、前記クエリセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成し、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界特徴ベクトルと各エンティティ境界プロトタイプとの距離に従って、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界プロトタイプの予測結果を取得し、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプの予測結果と、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプとの差分に基づいて、前記エンティティ境界プロトタイプの第2の損失を計算する。
【0022】
好ましくは、前記エンティティ境界プロトタイプは、エンティティ開始位置プロトタイプ、エンティティ終了位置プロトタイプ、エンティティ内部位置プロトタイプ、及びエンティティ外部位置プロトタイプを含む。
【0023】
第3の態様では、コンピュータプログラムが記憶されたコンピュータが読み取り可能な記憶媒体であって、前記コンピュータプログラムがプロセッサにより実行される場合、上記のプロトタイプネットワークの訓練方法のステップを実現することを特徴とする記憶媒体を提供する。
【発明の効果】
【0024】
従来の技術に比べ、本実施例に係るプロトタイプネットワークの訓練方法及び装置は、エンティティタイプ情報とエンティティの境界情報に基づいてエンティティタイププロトタイプ及びエンティティ境界プロトタイプを学習及び構成することで、名前付きエンティティ認識にエンティティ境界情報を導入し、名前付きエンティティ認識の性能を高めることができる。特に、名前付きエンティティ認識のサンプルが少ないシナリオでは、モデルの性能を効果的に向上させることができる。また、本実施例の訓練方法では、境界特徴の生成方法が効率的であり、実装が容易である。
【図面の簡単な説明】
【0025】
以下の好ましい実施例の詳細な説明を読めば、当業者は様々な他の長所やメリットが明らかになるであろう。図面は、好ましい実施例を説明することのみを目的としており、本出願を限定するものと見なされるべきではない。また、全図において同一の構成要素には同一の符号を付している。
図1】従来技術によるプロトタイプネットワークの原理を示した図である。
図2】本実施例のプロトタイプネットワークの訓練方法のフローチャートである。
図3】本実施例におけるサブワードベクトルを生成する一例を示す図である。
図4】本実施例におけるサブワード位置の特徴ベクトルを生成する一例を示す図である。
図5】本実施例のプロトタイプネットワークの訓練装置の構造を示す概略図である。
図6】本出願の別の実施例のプロトタイプネットワークの訓練装置の構造を示す概略図である。
【発明を実施するための形態】
【0026】
本発明が解決しようとする技術的課題、技術的解決手段及び利点をより明確にするため、図面、及び具体的な実施例を参照しながら以下の通り詳しく説明する。以下で説明する具体的な構成、及び構成要素などの特定の詳細は、本実施例の包括的な理解を助けるためだけのものであり、従って、当業者ならここに記述した実施方式に対しさまざまな改変と修正を行うことができるが、本発明の範囲から外れるものではないことを認識するであろう。また、簡素明瞭にするため、公知の機能及び構成の説明は省略する。
【0027】
本明細書全体を通して、「一つの実施例」または「一実施例」への言及は、実施例に関連する特定の特徴、構造、または特性が、少なくとも一つの本実施例に含まれることを意味する。したがって、本明細書を通して随所で使われる「一つの実施例では」または「一実施例では」の表現は、必ずしも同じ実施例を指すものではない。さらに、これらの特定の特徴、構造、または特性は、一つまたは複数の実施例において任意の適切な方法で組み合わせることができる。
【0028】
本出願の様々な実施例において、下記の各プロセスの番号の大きさは実行順序の前後を意味するものではなく、各プロセスの実行手順はその機能及び固有のロジックによって決定されるべきであり、本実施例の実施プロセスに対し如何なる制限を構成してはならない。
【0029】
従来の技術では、名前付きエンティティ認識タスクにプロトタイプネットワークを使用する場合、通常はエンティティタイププロトタイプを構築するためにエンティティタイプ情報のみが使用され、エンティティ境界情報は考慮されない。本実施例は、エンティティタイプ情報に基づいてエンティティタイププロトタイプを学習および構築し、エンティティ境界情報に基づいてエンティティ境界プロトタイプを学習および構築して、生成されたエンティティ境界プロトタイプがより多くの有用なエンティティ境界情報を含むようにする。これにより、エンティティ境界情報を使って名前付きエンティティ認識の性能を高められ、特に名前付きエンティティ認識のサンプルが少ないシナリオでは、上記の利点がより顕著になる。
【0030】
図2に示すように、本実施例はプロトタイプネットワークの訓練方法を提供し、前記プロトタイプネットワークは名前付きエンティティの認識に使用される。当該方法は、次のステップを含む。
【0031】
ステップ21において、複数の訓練サンプルを含む訓練セットを取得する。
【0032】
ここで、本実施例は訓練セットを取得し、前記訓練セットは複数のラベル付けした名前付きエンティティタイプの訓練サンプルを含む。処理をしやすくするため、名前付きエンティティにラベルを付ける時、事前定義済みの名前付きエンティティタイプに加え、別のエンティティタイプを設定して、事前定義済みの名前付きエンティティに属さないサブワードにラベルを付けることができる。例えば、訓練サンプル「Jobs founded NeXT Inc. with $ 7 million」において、「Jobs」は人名にラベリングされ、「NeXT Inc.」は機関名に、「$ 7 million」は通貨価値に、「founded」及び「with」はその他のエンティティタイプにラベリングされる。
【0033】
実際のラベル付けでは、サブワードの名前付きエンティティタイプと当該名前付きエンティティタイプにおけるサブワードの位置に従ってラベリングすることができる。たとえば、「Jobs」を「B-人名」としてラベリングし、そのうち、Bはそのサブワードが人名の開始サブワードであることを示す。「NeXT Inc.」の「NeXT」と「 Inc.」 をそれぞれ「B-機関名」」および「E-機関名」 としてラベリングし、そのうち、BはNeXTが当該機関名の開始サブワードで、EはInc.が当該機関名の終了サブワードであることを示す。「$7 million」の「$」、「7」、および「million」をそれぞれ「B-通貨価値」、「I-通貨価値」、および 「E-通貨価値」としてラベリングし、ここで、Bは $ が当該通貨価値の開始サブワードで、I は7が当該貨幣価値の中間サブワード、E はmillionが当該貨幣価値の終了サブワードであることを意味する。
【0034】
ステップ22において、前記訓練サンプルにおけるサブワードのサブワードベクトルと位置ベクトルを生成し、前記サブワードのサブワードベクトルと位置ベクトルを融合して、前記サブワードの融合ベクトルを取得する。
【0035】
ここで、本実施例は自然言語テキストをサブワードレベルの特徴ベクトルに変換する。サブワードとは、事前訓練言語モデルの用語集の中のワードを指し、事前訓練言語モデルが自然言語テキストをエンコードする際の単位である。一部レアワードは用語集の中で分割され、例えば、「culmination」は {cu, ##lm, ##ination}に分割されるため、サブワードと呼ぶ。
【0036】
本出願の実施例では、訓練サンプルをある事前訓練言語モデルに入力して、事前訓練言語モデルによってエンコードされた当該訓練サンプルにおける各サブワードのサブワードベクトルを取得することができる。前記事前訓練言語モデルは、通常、巨大なデータセットで事前訓練されており、限定はされるものではないが、前記事前訓練言語モデルには、BERTモデル、RoBERTa、T5 などのモデルのいずれかが含まれる。図3は、事前訓練言語モデルを利用して訓練サンプルのサブワードベクトルを生成する一例を示した。そのうち、Xは入力文 (訓練サンプル) を表し、xiは文中(訓練サンプル)のサブワードを表し、図3のiの値の範囲は1から8であり、
(外1)
は最終的に生成されたサブワードxiのサブワードベクトルを表す。そのうち、
(外2)
は特定の事前訓練言語モデルを表し、θ0は事前訓練言語モデルのパラメータを表し、当該パラメータは固定されてもよいし、本実施例の方法で継続的に訓練および更新してもよい。説明の便宜上、ここではX1を使って特定のサブワードxのサブワードベクトルを示す。
【0037】
前記訓練サンプルにおけるサブワードの位置ベクトル生成する時、本実施例は前記訓練サンプルにおけるサブワードの位置情報をエンコードして、前記サブワードの位置ベクトルを取得することができる。前記位置情報は具体的に、訓練サンプルにおける前記サブワードの絶対位置、または前記サブワードと、前記サブワードが配置されている名前付きエンティティの指定位置にあるサブワードとの相対距離(相対位置)であることができ、前記指定位置のサブワードは、名前付きエンティティの開始サブワードまたは終了サブワードであってもよい。具体的なエンコードアルゴリズムは、内角正弦(sin)アルゴリズム、内角余弦(cosine)アルゴリズム、またはこれら2つの組み合わせであってもよい。
【0038】
上記の絶対位置を使用したサブワードの位置情報を例にとると、訓練サンプル「Jobs founded NeXT Inc. with $ 7 million」には、「Jobs」、「founded」、「NeXT」、「Inc.」、「with」、「$」、「7」及び「million」というサブワードがあり、絶対位置は、それぞれ 1、2、3、4、5、6、7、及び8 である。
【0039】
サブワードの位置情報が上記の相対位置を使用し、且つ前記指定された位置にあるサブワードが名前付きエンティティの開始サブワードである例をみると、位置エンコードアルゴリズムを使用して、サブワードの位置情報をサブワード位置の特徴ベクトル(位置ベクトル)に変換する。具体的に、サブワードの相対位置の計算方法は次のとおりである。
【0040】
【数1】
piは、トレーニングサンプルにおける特定サブワードiの絶対位置であり、psは、サブワードiが配置されている名前付きエンティティ内の開始サブワードが訓練サンプルにおける絶対位置である。ここで、piとpsはいずれもサブワードの絶対位置(例えば、図4に示した1,2,3,…)である。「$7 million」のサブワード「million」を例にとると、当該サブワード「million」に対応するpiは8であり、当該サブワード「million」が配置された名前付きエンティティは「$7 million」であり、その開始サブワード「$」の絶対位置は 6 である。したがって、計算によりサブワード 「million」 に対応するpは|8-6|=2である。特定のサブワードが予め定義したエンティティタイプのいずれにも属さない場合(例えば、図 4 に示したサブワード「founded」) 、それをその他のエンティティタイプとして扱うことができ、同じ方法でサブワードの位置ベクトルを生成することができる。
【0041】
図4は相対位置情報を使ってサブワードの特徴ベクトル(位置ベクトル)を生成するプロセスを示す。そのうち、Xは入力文 (訓練サンプル) を表し、xiは文中(訓練サンプル) におけるサブワードを表し、図 4 の i の値の範囲は 1 から 8 であり、
(外3)
は最終的に生成されたサブワードxiの位置ベクトルを表す。そのうち、xi pはサブワードxiの相対位置情報を表し、
(外4)
は特定の位置エンコードアルゴリズムを表し、δ0は当該位置エンコードアルゴリズムのパラメータであり、当該パラメータは固定されてもよいし、本実施例の訓練方法で継続的に訓練および更新してもよい。説明の便宜上、ここではX2を使って特定のサブワードxの位置ベクトルを示す。
【0042】
また、前記サブワードのサブワードベクトルと位置ベクトルを融合する時、本実施例では、前記サブワードのサブワードベクトルX1と位置ベクトルX2に対してベクトル連結を行い、サブワードの融合ベクトルX3を取得し、または、予め設定された重みに従って、前記サブワードのサブワードベクトルX1と位置ベクトルX2に対して重み付き加算を実行し、サブワードの融合ベクトルX3を取得する。
【0043】
ステップ23において、前記訓練セットに基づいてサポートセットとクエリセットを生成し、前記サポートセットとクエリセットを利用して前記プロトタイプネットワークを訓練する。そのうち、前記サポートセットとクエリセットはいずれも前記訓練セットのサブセットであり、前記プロトタイプネットワークは第1のプロトタイプネットワークと第2のプロトタイプネットワークを含み、前記訓練は、前記サポートセットにおける訓練サンプルの各サブワードのサブワードベクトルを第1のプロトタイプネットワークに入力して、エンティティタイププロトタイプを生成し、前記クエリセットを利用して前記エンティティタイププロトタイプの第1の損失を計算するステップと、前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを第2のプロトタイプネットワークに入力して、エンティティ境界プロトタイプを生成し、前記クエリセットを利用して前記エンティティ境界プロトタイプの第2の損失を計算するステップと、前記第1の損失と第2の損失に基づいて総損失を取得し、前記総損失に基づいて前記第1のプロトタイプネットワークと第2のプロトタイプネットワークを最適化するステップを含む。
【0044】
ここで、本出願の実施例は、前記訓練セットに基づいてサポートセットおよびクエリセットを生成する。例えば、前記訓練セットの一部訓練サンプルを前記サポートセットとして使用し、残りの訓練サンプルをクエリセットとして使用することで、前記サポートセットおよびクエリセットを利用してプロトタイプネットワークを訓練および最適化することができる。例えば、サンプル数 4:1 の比率に基づいて、訓練セットDLをサポートセットSとクエリセットQに分割する。
【0045】
本出願の実施例では、前記プロトタイプネットワークは、エンティティタイププロトタイプを生成するための第1のプロトタイプネットワークと、エンティティ境界プロトタイプを生成するための第2のプロトタイプネットワークとを含む。続いて、訓練プロセスについて詳しく説明する。
【0046】
本実施例において、前記エンティティタイププロトタイプの生成プロセスおよび第1の損失の計算は以下の通りである。
【0047】
(1) サポートセットSを使用して、エンティティタイププロトタイプcを生成する。
【0048】
具体的には、前記サポートセットにおける訓練サンプルの各サブワードのサブワードベクトルを前記第1のプロトタイプネットワークに入力して、各サブワードのエンティティタイプ特徴ベクトルを生成する。次に、前記サポートセットにおける同じ名前付きエンティティタイプのエンティティタイプ特徴ベクトルを融合(例えば、ベクトル平均演算を行う)して、当該名前付きエンティティタイプに対応するエンティティタイププロトタイプを取得する。エンティティタイププロトタイプの数は、人名プロトタイプ、機関名プロトタイプ、通貨価値プロトタイプ、その他のエンティティタイププロトタイプなど、名前付きエンティティタイプのプリセット数に依存する。上記の計算プロセスは次の式を使って表示することができる。
【0049】
【数2】
そのうち、mは特定の名前付きエンティティタイプを表し、Smはサポートセットにおける当該名前付きエンティティタイプmに属するすべてのサブワードを表し、|Sm|はサポートセットにおける当該名前付きエンティティタイプmに属するすべてのサブワードの数を表し、cmはサポートセットを利用して生成された名前付きエンティティタイプmに対応するエンティティタイププロトタイプを表す。X1はステップ22で生成されたサブワードxのサブワードベクトル、すなわち、
(外5)
を表し、
(外6)
は第1のプロトタイプネットワークを表し、φ1は当該第1のプロトタイプネットワークのネットワークパラメータを表し、当該パラメータは本実施例の方法において訓練および更新することができる。
(外7)
は サブワードベクトルX1を第1のプロトタイプネットワークに入力して生成したエンティティタイプ特徴ベクトルを表す。
【0050】
(2)クエリセットQを使用して、エンティティタイププロトタイプcの損失 (第1の損失) を計算する。
【0051】
具体的には、前記クエリセットにおける訓練サンプルの各サブワードのサブワードベクトルを前記第1のプロトタイプネットワークに入力して、各サブワードのエンティティタイプ特徴ベクトルを生成する。次に、前記クエリセットにおける訓練サンプルの各サブワードのエンティティタイプ特徴ベクトルと各エンティティタイププロトタイプとの距離に従って、前記クエリセットにおける訓練サンプルの各サブワードの名前付きエンティティタイプの予測結果(たとえば、サブワードが各名前付きエンティティタイプに属する確率)を取得する。ここで、前記距離の算出アルゴリズムは、L1アルゴリズムやcos類似度算出アルゴリズム等を利用することができる。それから、前記クエリセットにおける訓練サンプルの各サブワードの名前付きエンティティタイプの予測結果と、前記クエリセットにおける訓練サンプルの各サブワードの名前付きエンティティタイプとの差分に基づいて、前記エンティティタイププロトタイプの第1の損失を計算する。具体的には、クロスエントロピー損失関数の使用により、エンティティタイププロトタイプの損失 (第1の損失) を計算することができる。
【0052】
本実施例において、前記エンティティ境界プロトタイプの生成プロセスおよび第2の損失の計算は以下の通りである。
【0053】
(1) サポート セットSを使用して、エンティティタイププロトタイプbを生成する。
【0054】
本実施例では、訓練サンプル内の特定のサブワードのエンティティ境界タイプには、次の4つのタイプが含まれる。
【0055】
1. エンティティの開始位置。当該サブワードが訓練サンプルの特定の名前付きエンティティにあり、且つ当該サブワードが当該名前付きエンティティの最初のサブワードであることを示す。
【0056】
2. エンティティの終了位置。当該サブワードが訓練サンプルの特定の名前付きエンティティにあり、且つ当該サブワードが当該名前付きエンティティの最後のサブワードであることを示す。
【0057】
3. エンティティの内部位置。当該サブワードが訓練サンプルの特定の名前付きエンティティにあり、且つ当該サブワードが当該名前付きエンティティの中間サブワードであることを示す。この時、当該サブワードは当該名前付きエンティティの最初又は最後のサブワードではない。
【0058】
4. エンティティの外部位置。当該サブワードが訓練サンプルの名前付きエンティティにはない。つまり、当該サブワードがその他のエンティティタイプのサブワードであることを示す。
【0059】
上記4つのエンティティ境界タイプに対し、本実施例は各エンティティ境界タイプに対応するエンティティ境界プロトタイプを生成し、それぞれエンティティ開始位置プロトタイプ、エンティティ終了位置プロトタイプ、エンティティ内部位置プロトタイプ、エンティティ外部位置プロトタイプである。
【0060】
エンティティタイププロトタイプを生成する時、先ず、前記訓練サンプルにおける各サブワードが所属する名前付きエンティティにおける位置に従って、前記訓練サンプルにおける各サブワードのエンティティ境界タイプを取得する。次に、前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルX3を前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成する。その後、前記サポートセットにおける同じエンティティ境界タイプのエンティティ境界特徴ベクトルを融合(例えば、ベクトル平均演算を行う)して、当該エンティティ境界タイプに対応するエンティティ境界プロトタイプを取得する。上記の計算プロセスは次の式を使って表示することができる。
【0061】
【数3】
その中で、nは特定のエンティティ境界タイプを表し、Snはサポートセットにおいて当該エンティティ境界プロトタイプに属するすべてのサブワードを表し、bnはサポートセットを利用して生成した当該エンティティ境界タイプ n に対応するエンティティ境界タイプを表す。X3はステップ22で生成されたサブワードxの融合ベクトルを表し、
(外8)
は第2のプロトタイプネットワークを表し、φ2は当該第2のプロトタイプネットワークのネットワークパラメータを表し、当該パラメータは本実施例の方法において訓練および更新することができる。
(外9)
はサブワードxの融合ベクトルX3を第2プロトタイプネットワークに入力して生成したサブワードxのエンティティ境界特徴ベクトルを表す。
【0062】
(2)クエリセットQを使用して、エンティティ境界プロトタイプbの損失 (第2の損失) を計算する。
【0063】
具体的に、前記クエリセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成する。次に、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界特徴ベクトルと各エンティティ境界プロトタイプとの距離に従って、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界プロトタイプの予測結果(たとえば、サブワードが各エンティティ境界タイプに属する確率)を取得する。ここで、前記距離の算出アルゴリズムは、L1アルゴリズムやcos類似度算出アルゴリズム等を利用することができる。それから、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプの予測結果と、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプとの差分に基づいて、前記エンティティ境界プロトタイプの第2の損失を計算する。例えば、クロスエントロピー損失関数の使用により、エンティティ境界プロトタイプの損失 (第2の損失) を計算することができる。
【0064】
第1の損失および第2の損失を取得した後、本出願の実施例は、前記第1の損失および第2の損失に基づいて総損失を取得し、例えば、予め設定された重みに従って、第1の損失および第2の損失に対して重み付き加算を実行し、総損失を取得する。続いて、前記総損失に基づいて前記第1のプロトタイプネットワーク、及び第2のプロトタイプネットワークを最適化する。最適化する時、確率的勾配降下法を使って、前記第1のプロトタイプネットワーク及び第2のプロトタイプネットワークのネットワークパラメータを調整し、総損失を減らすことを目標に最適化する。
【0065】
上記のステップを通じて、本出願の実施例は、エンティティタイププロトタイプとエンティティ境界プロトタイプを組み合わせることにより、名前付きエンティティの認識により多くの補助情報(エンティティ境界特徴情報)を導入し、名前付きエンティティの認識タスクの性能を向上させることができる。特に、名前付きエンティティ認識のサンプルが少ないシナリオで、本出願の実施例は認識性能を大幅に改善することができる。また、本実施例の訓練方法では、境界特徴の生成方法が効率的であり、実装が容易である。
【0066】
さらに、本出願の実施例は、予め設定された終了条件を満たすまで、反復最適化を複数回繰り返し実行し、最終的なプロトタイプ ネットワークを取得することができる。そのうち、毎回の反復最適化において、異なるサポートセットとクエリセットを生成及び利用して前記プロトタイプネットワークに対し前記訓練を行い、且つ毎回の反復最適化で使用されるクエリセットの和集合は、前記訓練セットのすべての訓練サンプルをカバーする。
【0067】
例えば、訓練セットの訓練サンプルは5つの部分に分割され、各部分には複数の訓練サンプルが含まれている。次に、 1 回目の反復最適化 (epoch1) において、パート1 ~ 4 の訓練サンプルをサポートセットとし、パート 5 の訓練サンプルをクエリセットとして反復訓練を1 回実行する。
【0068】
次に、1 回目の反復最適化で得られたプロトタイプネットワークに基づいて、2 回目の反復最適化 (epoch2) を実行する。 2 回目の反復最適化において、パート2 ~ 5 の訓練サンプルをサポートセットとし、パート 1 の訓練サンプルをクエリセットとして反復訓練を1 回実行する。
【0069】
次に、2 回目の反復最適化で得られたプロトタイプネットワークに基づいて、3 回目の反復最適化 (epoch3) を実行する。 3 回目の反復最適化において、パート1、パート3-5の訓練サンプルをサポートセットとし、パート 2 の訓練サンプルをクエリセットとして反復訓練を1 回実行する。
【0070】
次に、3 回目の反復最適化で得られたプロトタイプネットワークに基づいて、4 回目の反復最適化 (epoch4) を実行する。 4 回目の反復最適化において、パート1、2、パート4-5の訓練サンプルをサポートセットとし、パート 3 の訓練サンプルをクエリセットとして反復訓練を1 回実行する。
【0071】
次に、4 回目の反復最適化で得られたプロトタイプネットワークに基づいて、5 回目の反復最適化 (epoch5) を実行する。 5 回目の反復最適化において、パート1、2、3、5の訓練サンプルをサポートセットとし、パート 4 の訓練サンプルをクエリセットとして反復訓練を1 回実行する。
【0072】
これで、すべての訓練サンプルはクエリセットとして訓練されている。予め設定された訓練終了条件 (例えば、予め設定された反復最適化のラウンド数、または予め設定された収束条件などを達成) に達した場合、訓練を終了して最終的なプロトタイプネットワークを出力し、それ以外の場合は、続けて次のラウンドの反復最適化を行う。
【0073】
上記毎回の反復最適化において、さらに各バッチ(batch)の訓練サンプル数を設定することができ、ここでは繰り返して説明しない。
【0074】
上記の方法に基づき、本出願の実施例は上記方法を実装する装置を提供する。図5に示すように、本出願の実施例はプロトタイプネットワークの訓練装置を提供し、前記プロトタイプネットワークは名前付きエンティティの認識に使用される。前記訓練装置は、以下のモジュールを含む。
【0075】
サンプル取得モジュール51は、複数の訓練サンプルを含む訓練セットを取得する。
【0076】
ベクトル生成モジュール52は、前記訓練サンプルにおけるサブワードのサブワードベクトルと位置ベクトルを生成し、前記サブワードのサブワードベクトルと位置ベクトルを融合して、前記サブワードの融合ベクトルを取得する。
【0077】
ネットワーク訓練モジュール53は、前記訓練セットにしたがってサポートセットとクエリセットを生成し、前記サポートセットとクエリセットを利用して前記プロトタイプネットワークを訓練する。そのうち、前記サポートセットとクエリセットはいずれも前記訓練セットのサブセットであり、前記プロトタイプネットワークは第1のプロトタイプネットワークと第2のプロトタイプネットワークを含む。前記訓練は、前記サポートセットにおける訓練サンプルの各サブワードのサブワードベクトルを第1のプロトタイプネットワークに入力して、エンティティタイププロトタイプを生成し、前記クエリセットを利用して前記エンティティタイププロトタイプの第1の損失を計算するステップと、前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを第2のプロトタイプネットワークに入力して、エンティティ境界プロトタイプを生成し、前記クエリセットを利用して前記エンティティ境界プロトタイプの第2の損失を計算するステップと、前記第1の損失と第2の損失に基づいて総損失を取得し、前記総損失に基づいて前記第1のプロトタイプネットワークと第2のプロトタイプネットワークを最適化するステップを含む。
【0078】
上記のモジュールを通じて、本出願の実施例は、エンティティタイププロトタイプとエンティティ境界プロトタイプを組み合わせることにより、名前付きエンティティの認識にエンティティ境界特徴情報を導入し、名前付きエンティティの認識タスクの性能を向上させることができる。
【0079】
好ましくは、上記訓練装置は、次のモジュールをさらに含む(図 5 に未表示)。
【0080】
反復最適化モジュールは、予め設定された終了条件を満たすまで、反復最適化を複数回繰り返す。そのうち、毎回の反復最適化において、異なるサポートセットとクエリセットを生成及び利用して前記プロトタイプネットワークに対し前記訓練を行い、且つ毎回の反復最適化で使用されるクエリセットの和集合は、前記訓練セットのすべての訓練サンプルをカバーする。
【0081】
好ましくは、前記ベクトル生成モジュールは、前記訓練サンプルにおけるサブワードの位置情報をエンコードして、サブワードの位置ベクトルを取得する。
【0082】
好ましくは、前記訓練サンプルにおける前記サブワードの位置情報は、前記訓練サンプルにおける前記サブワードの絶対位置、または前記サブワードと、前記サブワードが配置されている名前付きエンティティの指定位置にあるサブワードとの相対距離である。
【0083】
好ましくは、前記ベクトル生成モジュールはさらに、前記サブワードのサブワードベクトルと位置ベクトルに対してベクトル連結を行い、サブワードの融合ベクトルを取得し、または、予め設定された重みに従って、前記サブワードのサブワードベクトルと位置ベクトルに対して重み付き加算を実行し、サブワードの融合ベクトルを取得する。
【0084】
好ましくは、前記ネットワーク訓練モジュールは、前記訓練サンプルにおける各サブワードが所属する名前付きエンティティにおける位置に従って、前記訓練サンプルにおける各サブワードのエンティティ境界タイプを取得し、前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成し、前記サポートセットにおける同じエンティティ境界タイプのエンティティ境界特徴ベクトルを融合して、当該エンティティ境界タイプに対応するエンティティ境界プロトタイプを取得する。
【0085】
好ましくは、前記ネットワーク訓練モジュールはさらに、前記クエリセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成し、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界特徴ベクトルと各エンティティ境界プロトタイプとの距離に従って、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界プロトタイプの予測結果を取得し、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプの予測結果と、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプとの差分に基づいて、前記エンティティ境界プロトタイプの第2の損失を計算する。
【0086】
好ましくは、前記エンティティ境界プロトタイプは、エンティティ開始位置プロトタイプ、エンティティ終了位置プロトタイプ、エンティティ内部位置プロトタイプ、エンティティ外部位置プロトタイプを含む。
【0087】
好ましくは、前記ネットワーク訓練モジュールはさらに、前記総損失を減らすため、確率的勾配降下法を使って、前記第1のプロトタイプネットワーク及び第2のプロトタイプネットワークのネットワークパラメータを調整する。
【0088】
図6は、本実施例におけるプロトタイプネットワークの訓練装置のハードウェア構造のブロック図である。図6に示すように、この訓練装置600は、プロセッサ602と、コンピュータプログラムのコマンドを格納するメモリ604と、を含む。
【0089】
その中で、前記コンピュータプログラムコマンドが前記プロセッサにより実行される時、前記プロセッサ602に、複数の訓練サンプルを含む訓練セットを取得するステップと、前記訓練サンプルにおけるサブワードのサブワードベクトルと位置ベクトルを生成し、前記サブワードのサブワードベクトルと位置ベクトルを融合して、前記サブワードの融合ベクトルを取得するステップと、前記訓練セットに基づいてサポートセットとクエリセットを生成し、前記サポートセットとクエリセットを使って前記プロトタイプネットワークを訓練するステップを含み、そのうち、前記サポートセットとクエリセットはいずれも前記訓練セットのサブセットであって、前記プロトタイプネットワークは第1のプロトタイプネットワークと第2のプロトタイプネットワークを含み、前記訓練は、前記サポートセットにおける訓練サンプルの各サブワードのサブワードベクトルを第1のプロトタイプネットワークに入力して、エンティティタイププロトタイプを生成し、前記クエリセットを利用して前記エンティティタイププロトタイプの第1の損失を計算するステップと、前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを第2のプロトタイプネットワークに入力して、エンティティ境界プロトタイプを生成し、前記クエリセットを利用して前記エンティティ境界プロトタイプの第2の損失を計算するステップと、前記第1の損失と第2の損失に基づいて総損失を取得し、前記総損失に基づいて前記第1のプロトタイプネットワークと第2のプロトタイプネットワークを最適化するステップを実行させる。
【0090】
さらに、図6に示すように、当該訓練装置600は、ネットワークインターフェース601と、入力デバイス603と、ハードディスク605と、ディスプレイデバイス606をさらに有する。
【0091】
上記の種々のインターフェース及びデバイスは、バスアーキテクチャを介して相互接続される。バスアーキテクチャにおいて、相互接続できるバス及びブリッジの数は任意であってよい。具体的に、プロセッサ602に代表される一つまたは複数の中央処理装置(CPU)と/またはグラフィックプロセッサ(GPU)、及びメモリ604に代表される一つまたは複数のメモリの各種電気回路は、互いに接続される。バスアーキテクチャはまた、周辺機器、電圧レギュレータ、電源管理回路など、他の様々な回路を互いに接続する。バスアーキテクチャは、これらの構成要素間の接続通信を可能にするために使用されることが分かる。バスアーキテクチャは、データバスに加えて、電力バス、制御バス、及びステータス信号バスを含み、これらは当分野でよく知られており、したがって、本明細書では詳細に説明しない。
【0092】
前記ネットワークインターフェース601は、インターネットやローカルエリアネットワーク等のネットワークに接続でき、ネットワークから訓練サンプル等のデータを受信し、受信したデータをハードディスク605に保存することができる。
【0093】
前記入力デバイス603は、オペレータが入力した種々のコマンドを受け付け、プロセッサ602に送り、実行する。前記入力デバイス603は、キーボード或いはクリックデバイス(例えば、マウス、トラックボール(trackball))、タッチパッド或いはタッチパネルなどを含むことができる。
【0094】
前記ディスプレイデバイス606は、例えば訓練の進度など、プロセッサ602がコマンドを実行して取得した結果を表示することができる。
【0095】
前記メモリ604は、オペレーションシステムの実行に必要なプログラムとデータ、及びプロセッサ602の計算プロセスの中間結果などのデータを格納する。
【0096】
本実施例におけるメモリ604は、揮発性メモリ、または不揮発性メモリであってもよく、あるいは揮発性メモリ、及び不揮発性メモリの両方を含んでもよい。その中で、非揮発性メモリは読み取り専用メモリ(ROM)、プログラマブル読み取り専用メモリ(PROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)或いはフラッシュメモリであることができる。揮発性メモリはランダムアクセスメモリ(RAM)であることができ、それを外部キャッシュに用いる。本明細書で説明する装置、及び方法のメモリ604は、限定はされるものではないが、これら、及び任意の他の適切なタイプのメモリを含むものとする。
【0097】
一部の実施方式において、メモリ604は下記の要素を格納し、モジュール或いはデータ構造を実行することができ、或いはそのサブセット、またはその拡張セットであるオペレーティングシステム6041とアプリケーション(アプリケーションプログラムとも称される)6042を実行することができる。
【0098】
ここで、オペレーティングシステム6041は、フレームワーク層、コアライブラリ層、ドライバ層など各種システムプログラムを含み、各種基本サービスの実現、及びハードウェアのタスク処理に用いられる。アプリケーション6042は、例えば、ブラウザー(Browser)などさまざまなアプリケーションを含み、各種アプリケーション業務の実現に用いられる。本実施例の方法を実現するプログラムはアプリケーション6042に含まれてもよい。
【0099】
本実施例に開示された上記方法はプロセッサ602に適用でき、またプロセッサ602により実現できる。プロセッサ602は、信号処理能力を有する集積回路チップであってもよい。実現過程において、上記方法の各ステップは、プロセッサ602におけるハードウェアの集積論理回路、またはソフトウェア形式のコマンドによって完了することができる。上記のプロセッサ602は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理デバイス、個別ハードウェア構成要素であってもよく、本実施例で開示される方法、ステップ、及び論理ブロック図を実装、または実行してもよい。汎用プロセッサはマイクロプロセッサであってもよく、また当該プロセッサは任意の従来プロセッサなどであってもよい。本実施例に関連して開示された方法のステップは、ハードウェア復号プロセッサによって直接実装されてもよく、また復号プロセッサ内のハードウェア、及びソフトウェアモジュールの組み合わせによって実装されてもよい。ソフトウェアモジュールはランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、または電気的消去可能なプログラマブルメモリ、レジスタ等の本技術分野の成熟した記憶媒体であってよい。当該記憶媒体はメモリ604内に配置され、プロセッサ602はメモリ604内の情報を読取り、そのハードウェアと共に上記方法のステップを実行する。
本明細書で説明する実施例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの組合せで実現される。ハードウェア実装について、処理ユニットは、1つ或いは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、汎用プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、本請求に記述した機能を実行するための他の電子ユニットまたはその組み合わせによって実装することができる。
【0100】
ソフトウェア実装について、本明細書に記述した機能のモジュール(例えばプロセス、関数など)を実行することによって本明細書に記述した技術を実装することができる。ソフトウェアコードは、メモリに記憶され、プロセッサによって実行される。メモリは、プロセッサ内、またはプロセッサ外部に実装される。
【0101】
具体的に、前記コンピュータプログラムは、プロセッサ602によって実行されるとさらに、次のステップを実行することができる。
【0102】
予め設定された終了条件を満たすまで、反復最適化を複数回繰り返す。そのうち、毎回の反復最適化において、異なるサポートセットとクエリセットを生成及び利用して前記プロトタイプネットワークに対し前記訓練を行い、且つ毎回の反復最適化で使用されるクエリセットの和集合は、前記訓練セットのすべての訓練サンプルをカバーする。
【0103】
具体的に、前記コンピュータプログラムは、プロセッサ602によって実行されるとさらに、次のステップを実行することができる。
【0104】
前記訓練サンプルにおけるサブワードの位置情報をエンコードして、サブワードの位置ベクトルを取得する。
【0105】
好ましくは、前記訓練サンプルにおける前記サブワードの位置情報は、前記訓練サンプルにおける前記サブワードの絶対位置、または前記サブワードと、前記サブワードが配置されている名前付きエンティティの指定位置にあるサブワードとの相対距離である。
【0106】
具体的に、前記コンピュータプログラムは、プロセッサ602によって実行されるとさらに、前記サブワードのサブワードベクトルと位置ベクトルに対してベクトル連結を行い、サブワードの融合ベクトルを取得するステップ、または、予め設定された重みに従って、前記サブワードのサブワードベクトルと位置ベクトルに対して重み付き加算を実行し、サブワードの融合ベクトルを取得するステップを実行することができる。
【0107】
具体的に、前記コンピュータプログラムは、プロセッサ602によって実行されるとさらに、前記訓練サンプルにおける各サブワードが所属する名前付きエンティティにおける位置に従って、前記訓練サンプルにおける各サブワードのエンティティ境界タイプを取得するステップと、前記サポートセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成するステップと、前記サポートセットにおける同じエンティティ境界タイプのエンティティ境界特徴ベクトルを融合して、当該エンティティ境界タイプに対応するエンティティ境界プロトタイプを取得するステップを実行することができる。
【0108】
具体的に、前記コンピュータプログラムは、プロセッサ602によって実行されるとさらに、前記クエリセットにおける訓練サンプルの各サブワードの融合ベクトルを前記第2のプロトタイプネットワークに入力して、各サブワードのエンティティ境界特徴ベクトルを生成するステップと、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界特徴ベクトルと各エンティティ境界プロトタイプとの距離に従って、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界プロトタイプの予測結果を取得するステップと、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプの予測結果と、前記クエリセットにおける訓練サンプルの各サブワードのエンティティ境界タイプとの差分に基づいて、前記エンティティ境界プロトタイプの第2の損失を計算するステップを実行することができる。
【0109】
具体的に、前記コンピュータプログラムは、プロセッサ602によって実行されるとさらに、前記総損失を減らすため、確率的勾配降下法を使って、前記第1のプロトタイプネットワーク及び第2のプロトタイプネットワークのネットワークパラメータを調整するステップを実行することができる。
【0110】
好ましくは、前記エンティティ境界プロトタイプは、エンティティ開始位置プロトタイプ、エンティティ終了位置プロトタイプ、エンティティ内部位置プロトタイプ、エンティティ外部位置プロトタイプを含む。
【0111】
当業者は、本明細書に開示された実施例に関連して、例として説明された種々のユニット、及びアルゴリズムステップが、電子ハードウェア、またはコンピュータソフトウェアと電子ハードウェアとの組合せで実装されることを理解できる。これらの機能がハードウェアまたはソフトウェアのいずれで実行されるかは、技術提案の特定アプリケーションや設計の制約条件による。当業者は、説明した機能を特定のアプリケーション毎に種々の方法で実装できるが、そのような実装形態は、本開示の範囲から逸脱するものと見なされるべきではない。
【0112】
当業者であれば、上記のシステム、装置、及びユニットの具体的な動作プロセスについて、前述方法の実施例で対応するプロセスを参照することができるので、説明を簡素明瞭にするために、ここでは繰り返して説明しない。
【0113】
本出願で提供した実施例において、開示した装置及び方法は、他の方法でも実装できることを理解すべきである。例えば、上記で説明した装置の実施例は例示的なものに過ぎず、例えば、前記ユニットの分割は、ロジック機能の分割に過ぎず、実際に実現する時に他の分割方式であってもよく、例えば複数のユニット、またはコンポネントを結合あるいは他の一つシステムに統合してもよく、またはいくつかの特徴を無視してもよいし、実行しなくてもよい。また、図示、又は説明された相互間の接続、又は直接接続、又は通信接続は何らかのインターフェース、装置、又はユニットを介した間接接続、または通信接続であってもよく、電気的、機械的又は他の形態であってもよい。
【0114】
前記分離部材として説明されたユニットは物理的に分離してもしなくともよく、ユニットとして表示された部材は物理的ユニットであってもよいし、でなくてもよい。即ち、一つの場所に位置してもよいし、または複数のネットワークユニットに分散してもよい。実際の必要に応じて、その中の一部またはすべてのユニットを選択して本実施例の解決手段の目的を実現することができる。
【0115】
また、各実施例における各機能ユニットは一つの処理ユニットに集積されてもよく、各ユニットが単独で物理的に存在してもよく、二つまたは二つ以上のユニットが一つのユニットに集積されてもよい。
【0116】
前記機能は、ソフトウェア機能ユニットの形態で実装され、独立した製品として販売、または使用される場合、一つのコンピュータ読取可能記憶媒体に格納できる。このような認識に基づき、本出願の技術的解決手段は、本質的に又は従来技術に寄与する部分又は当該技術的解決手段の部分は、ソフトウェア製品の形式で実現することができる。当該コンピュータソフトウェア製品は一つの記憶媒体に記憶され、複数のコマンドを含み、1台のコンピュータ装置(パーソナルコンピュータ、サーバ、又はネットワーク装置等)で、本発明の各実施例に記載した前記方法の全部、又は一部のステップを実行できる。上記の記憶媒体はUSBメモリ、リムーバブルハードディスク、ROM、RAM、磁気ディスク、又は光ディスク等の各種のプログラムコードを記憶できる媒体を含む。
【0117】
以上の記載は、本出願の具体的な実施例に過ぎず、本出願の保護範囲はこれに限定されるものではなく、当業者が本出願に開示された技術範囲内で、容易に想到し得る変更、または置き換えは、いずれも本出願の保護範囲内に含まれるべきである。従って、本出願の保護範囲は請求項の保護範囲を基準とすべきである。
図1
図2
図3
図4
図5
図6