(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-17
(54)【発明の名称】テキストデータのラベル付けのための機械学習ベースのモデル
(51)【国際特許分類】
G06F 40/279 20200101AFI20241210BHJP
G06F 40/216 20200101ALI20241210BHJP
G06F 40/44 20200101ALI20241210BHJP
【FI】
G06F40/279
G06F40/216
G06F40/44
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024526952
(86)(22)【出願日】2022-11-10
(85)【翻訳文提出日】2024-05-07
(86)【国際出願番号】 GB2022052852
(87)【国際公開番号】W WO2023084222
(87)【国際公開日】2023-05-19
(32)【優先日】2021-11-10
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】524103807
【氏名又は名称】プリビター リミテッド
(74)【代理人】
【識別番号】100123858
【氏名又は名称】磯田 志郎
(72)【発明者】
【氏名】ギナマール,キーロン
(72)【発明者】
【氏名】ステファニューク,フィリップ
(72)【発明者】
【氏名】ウェラー,スザンヌ
(72)【発明者】
【氏名】マクフォール,ジェイソン
(72)【発明者】
【氏名】ページ,ヘクター
(72)【発明者】
【氏名】クリビン,パトリック
(72)【発明者】
【氏名】マグリッジ-ホワイト,ソフィー
(72)【発明者】
【氏名】リアザノフ,セルゲイ
(57)【要約】
機械学習エンジンを訓練して、テキストデータからの機密情報をラベル付けするためのコンピュータ実装方法。本方法は、(i)テキストデータ、及びラベル付けされるべき機密情報を定義するクラスのリストを受信することと、(ii)合成文のセットを生成し、機械学習エンジンを訓練するために合成文のセットを使用することと、(iii)テキストデータのサンプル内のエンティティのラベルを予測し、テキストデータのサンプルからラベル付けされた文章のサブサンプルを選択して、レビューのためにアノテーターに提供し、ユーザがレビューした文章で訓練データを更新することと、(iv)更新された訓練データで機械学習エンジンを訓練し、機械学習エンジンの性能がエンドユーザ要件を満たすまでステップ(iii)を繰り返すことと、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
機械学習エンジンを訓練して、テキストデータからの機密情報をラベル付けするためのコンピュータ実装方法であって、前記方法が、
(i)テキストデータ、及びラベル付けされるべき前記機密情報を定義するクラスのリストを受信することと、
(ii)合成文のセットを生成し、前記機械学習エンジンを訓練するために前記合成文のセットを使用することと、
(iii)前記テキストデータのサンプル内のエンティティのラベルを予測し、前記テキストデータのサンプルからラベル付けされた文章のサブサンプルを選択して、レビューのためにアノテーターに提供し、前記レビューされた文章で前記訓練データを更新することと、
(iv)前記更新された訓練データで前記機械学習エンジンを訓練し、前記機械学習エンジンの性能がエンドユーザ要件を満たすまでステップ(iii)を繰り返すことと、を含む、方法。
【請求項2】
前記受信したテキストデータが、非構造化テキストデータ、構造化テキストデータ、又は非構造化テキストデータと構造化テキストデータとの組み合わせを含む、請求項1に記載の方法。
【請求項3】
前記受信したテキストデータが、いずれの注釈もラベルも含まない、請求項1又は2に記載の方法。
【請求項4】
前記方法が、ラベル付けされた文章又はエンティティごとに信頼度スコアを提供するステップを含み、前記信頼度スコアは、前記エンティティが前記1つ以上のクラスに属する確率又は尤度に対応する値である、先行請求項のいずれか一項に記載の方法。
【請求項5】
各エンティティは、信頼度スコアが前記エンティティにマッピングされた各ラベルと関連付けられた状態で、複数のラベルにマッピングされる、先行請求項のいずれか一項に記載の方法。
【請求項6】
前記方法が、注釈付きテキストデータを出力するステップを含む、先行請求項のいずれか一項に記載の方法。
【請求項7】
前記エンドユーザ要件が、到達した反復の所定の数を含む、先行請求項のいずれか一項に記載の方法。
【請求項8】
前記エンドユーザ要件が、ラベル付けされた文章について到達した所定の信頼度スコアを含む、先行請求項のいずれか一項に記載の方法。
【請求項9】
前記エンドユーザ要件が、所定のリコール率、精度レベル、クラス性能、又は混同スコアのうちの1つ以上を含む、先行請求項のいずれか一項に記載の方法。
【請求項10】
前記テキストデータのサンプルが、層別サンプリングアプローチなどの確率サンプリングアプローチに基づいて選択される、先行請求項のいずれか一項に記載の方法。
【請求項11】
コンテキスト内で単語又はトークンのシーケンスを生成するために、文法ルール又はモデルに基づいて前記合成文が生成される、先行請求項のいずれか一項に記載の方法。
【請求項12】
前記合成文が、前記1つ以上の受信したクラスに属する1つ以上のエンティティを含み、前記エンティティが、正規表現に基づいて、かつ/又はルックアップリストを使用して生成される、先行請求項のいずれか一項に記載の方法。
【請求項13】
前記方法が、タイプミスを生成するなどの、前記合成文にノイズを導入するステップを含む、先行請求項のいずれか一項に記載の方法。
【請求項14】
前記合成文の言語が、前記受信したテキストデータを分析することに基づいて自動的に選択される、先行請求項のいずれか一項に記載の方法。
【請求項15】
前記文法ルール又はモデルが、前記受信したテキストデータを分析することに基づいて自動的に選択される、請求項11~14のいずれか一項に記載の方法。
【請求項16】
前記方法が、前記予測されたラベルと、前記アノテーターによってレビューされた前記ラベルとの比較を表す、混同行列を生成するステップを含む、先行請求項のいずれか一項に記載の方法。
【請求項17】
ステップ(iii)におけるラベル付けされた文章の前記選択が、前記生成された混同行列に基づく、請求項16に記載の方法。
【請求項18】
前記方法が、前記選択された文章の各ラベル付けされたエンティティについての混同スコアを提供するステップを含み、前記混同スコアが、所与のクラスに対する予測が別のクラスに対する予測にどの程度近いかを示す値である、先行請求項のいずれか一項に記載の方法。
【請求項19】
前記混同スコアが、前記文章内の各エンティティについて決定された前記混同スコアに基づいて、各選択された文章について決定される、請求項18に記載の方法。
【請求項20】
前記機械学習エンジンが、前記混同行列及び/又は前記混同スコアの分析に基づいて、各選択された文章をランク付けするように構成されている、請求項16~19のいずれか一項に記載の方法。
【請求項21】
各クラス又はクラスペアに重みが割り当てられる、請求項16~20のいずれか一項に記載の方法。
【請求項22】
前記混同行列及び/又は前記混同スコアが、ステップ(iii)の各反復について更新される、請求項16~21のいずれか一項に記載の方法。
【請求項23】
前記アノテーターに提供される前記ラベル付けされた文章が、前記割り当てられた重みに基づいて選択される、先行請求項のいずれか一項に記載の方法。
【請求項24】
前記重みが、エンドユーザによって割り当てられる、請求項23に記載の方法。
【請求項25】
前記重みが、自動的に割り当てられる、請求項23に記載の方法。
【請求項26】
前記重みが、ステップ(iii)の各反復において更新される、請求項23~25のいずれか一項に記載の方法。
【請求項27】
前記方法が、前記機械学習エンジンの前記性能をグラウンドトゥルース情報と比較し、前記比較結果に基づいて前記テキストデータのサンプルを選択するステップを含む、先行請求項のいずれか一項に記載の方法。
【請求項28】
前記重みが、前記混同行列及び/又は前記混同スコアに基づいて更新される、請求項16~27のいずれか一項に記載の方法。
【請求項29】
複数のアノテーターが、前記選択された文章をレビューするために使用される、先行請求項のいずれか一項に記載の方法。
【請求項30】
前記複数のアノテーターが所定のコンセンサスパーセンテージに達したときにのみ、前記選択された文章の前記ラベルが補正又は検証される、請求項29に記載の方法。
【請求項31】
外れ値検出器を使用して、前記レビューされた文章内の外れ値を検出する、先行請求項のいずれか一項に記載の方法。
【請求項32】
前記方法が、前記選択された文章の各エンティティをベクトル空間に表すステップを含み、前記エンティティが、ラベル付けされるべき前記機密情報を定義する前記1つ以上のクラスに属する、先行請求項のいずれか一項に記載の方法。
【請求項33】
前記方法が、各クラスのサポートを決定するステップを含み、前記サポートが、そのクラスを含む前記ラベル付けされた文章のセットを参照する、先行請求項のいずれか一項に記載の方法。
【請求項34】
前記方法が、各クラスの前記サポートをベクトル空間に表し、前記ベクトル空間内の中心を決定するステップを含む、請求項33に記載の方法。
【請求項35】
前記外れ値検出器が、各クラスの前記中心に関連して、前記選択された文章の各エンティティを分析する、請求項31に記載の方法。
【請求項36】
前記機械学習エンジンが、複雑なクラスを複数のサブクラスに表すことを学習するように構成されている、先行請求項のいずれか一項に記載の方法。
【請求項37】
前記機械学習エンジンが、複雑なクラスを、そのベクトル空間表現を分析することによって識別するように構成されている、請求項36に記載の方法。
【請求項38】
前記機密情報が、社会保障番号又はパスポート番号などのデータを識別することを含む、先行請求項のいずれか一項に記載の方法。
【請求項39】
前記機密情報が、性別、年齢、身長、体重、場所データ、旅行データ、金銭データ、又は医療データなどの準識別データを含む、先行請求項のいずれか一項に記載の方法。
【請求項40】
前記機密情報が、プライベート通信データを含む、先行請求項のいずれか一項に記載の方法。
【請求項41】
前記機密情報が、クラスに属すると定義され得る任意の情報を含む、先行請求項のいずれか一項に記載の方法。
【請求項42】
前記機械学習エンジンが、テキストデータを匿名化するように訓練される、先行請求項のいずれか一項に記載の方法。
【請求項43】
前記機械学習エンジンが、画像又はビデオベースのデータ内のテキストデータを匿名化するように訓練される、先行請求項のいずれか一項に記載の方法。
【請求項44】
テキストデータからの機密情報をラベル付けするために機械学習エンジンを訓練するように構成されたコンピューティング実装システムであって、前記システムが、
1つ以上のプロセッサと、
命令を集合的に記憶する1つ以上の非一時的コンピュータ可読媒体であって、前記1つ以上のプロセッサによって実行されたときに、前記コンピューティングシステムに動作を実施させる、非一時的コンピュータ可読媒体と、を備え、前記動作が、
(i)テキストデータ、及びラベル付けされるべき前記機密情報を定義するクラスのリストを受信することと、
(ii)合成文のセットを生成し、前記機械学習エンジンを訓練するために前記合成文のセットを使用することと、
(iii)前記テキストデータのサンプル内のエンティティのためのラベルを予測し、前記テキストデータのサンプルからラベル付けされた文章のサブサンプルを選択して、レビューのためにアノテーターに提供し、前記レビューされた文章で前記訓練データを更新することと、
(iv)前記更新された訓練データで前記機械学習エンジンを訓練し、前記機械学習エンジンの性能がエンドユーザ要件を満たすまでステップ(iii)を繰り返すことと、を含む、システム。
【請求項45】
前記システムが、請求項2~43に定義される方法のいずれかを実施する、請求項44に記載のシステム。
【請求項46】
正規表現のセットのための正規表現埋め込みを生成するためのコンピュータ実装方法であって、前記方法が、
(i)可能性のある正規表現のリストを受信することであって、各受信した正規表現が、オートマトン/グラフで表され得る、受信することと、
(ii)前記可能な正規表現グラフからの共通のサブグラフの組み合わせとして、全ての前記正規表現を表現することと、を含む、方法。
【請求項47】
前記方法が、訓練データを生成して、テキストデータ内の機密情報及び/又は識別情報を検出又は分類するステップを含む、請求項46に記載の方法。
【請求項48】
前記正規表現埋め込みが、テキストデータ内の機密情報及び/又は識別情報を検出又は分類するように訓練され、また、従来の教師なし学習訓練された単語埋め込みと組み合わせて使用される機械学習エンジンの一部として使用される、請求項46又は47に記載の方法。
【請求項49】
前記正規表現埋め込みが、機械学習エンジンへの入力として提供される、請求項46~48のいずれか一項に記載の方法。
【請求項50】
前記正規表現埋め込みが、従来の単語埋め込みを含むスタック埋め込みの一部である、請求項46~49のいずれか一項に記載の方法。
【請求項51】
ステップ(ii)が、正規表現の前記受信したリストの分析から学習される、請求項46~50のいずれか一項に記載の方法。
【請求項52】
正規表現のセットのための正規表現埋め込みを生成するように構成されたコンピューティング実装システムであって、前記システムが、
1つ以上のプロセッサと、
命令を集合的に記憶する1つ以上の非一時的コンピュータ可読媒体であって、前記1つ以上のプロセッサによって実行されたときに、前記コンピューティングシステムに動作を実施させる、非一時的コンピュータ可読媒体と、を備え、前記動作が、
(i)可能性のある正規表現のリストを受信することであって、各受信した正規表現が、オートマトン/グラフで表され得る、受信することと、
(ii)前記可能な正規表現グラフからの共通のサブグラフの組み合わせとして、全ての前記正規表現を表現することと、を含む、システム。
【発明の詳細な説明】
【技術分野】
【0001】
1.技術分野
本発明の分野は、アクティブラーニングを使用してモデルを訓練する方法に関する。特に、機械学習モデルは、テキストデータをラベル付けするために訓練される。
【0002】
本特許文書の開示の一部には、著作権保護の対象となる資料が含まれている。著作権者は、特許商標庁の特許ファイル又は記録に記載されているように、特許文書又は特許開示のファクシミリ複製に異議はないが、そうでなければ全ての著作権を留保する。
【背景技術】
【0003】
2.先行技術の説明
匿名化は、元の値を変更されたコンテンツに置き換えることによって、テキストデータ内の機密値を非表示又は不明瞭にするセットのデータプライバシー技術に関連している。テキストデータ内の機密値は、最初に検出及び/又はラベル付けされる必要がある。
【0004】
最近の匿名化技術は、手動、ルールベース、又は機械学習のいずれかのアプローチを使用している。しかしながら、手動プロセスにはかなりのリソースが必要である。ルールベースのプロセスは、単語のパターンに依存しており、多くの場合、特定の機密情報ごとに微調整する必要があり、単語の文脈を考慮に入れていない。
【0005】
機械学習モデルを訓練するには、通常、大量のラベル付けされたデータが必要であり、機密性の高い情報又は識別性のある情報を含む大量のデータを見つけることは容易ではない。その結果、機密情報を匿名化するように機械学習モデルを訓練することは困難な作業である。
【0006】
データラベリングは、ラベル付けされたデータの品質が機械学習モデルの性能を確実にするため、機械学習モデルを開発する際の重要な前処理ステップである。データラベリングは、いくつかの異なる方法で実施され得る。ラベリングアプローチの選択は、問題の複雑さ、時間リソース、訓練データ、又は機械学習プロセスのタイプなどの多数のパラメータに依存し得る。
【0007】
1回又は数回のショット学習は、訓練データセットが限られた情報を含む機械学習方法のタイプである。したがって、そのような学習プロセスは、同じクラスの多くの同様の例でモデルを訓練する必要性を減らす。しかしながら、1回又は数回のショット学習は、ラベリングの労力を最小限に抑えるのに十分ではないことが多く、機械学習モデルに所与のクラス内の例の完全な多様性を示すことが依然として必要である。
【0008】
アクティブラーニングは、学習するデータを選ぶか、又は選択し、人間のオラクルを使用する機械学習プロセスを指す。簡略化として、人間は、モデルの精度を向上させる上で最も価値があると見なされる標識されていないサンプルのラベルを提供するように求められる。しかしながら、現在のアクティブラーニングモデルは、依然として、例えば、訓練データセットが他のものよりも有意に少ないインスタンスによって表されるクラスを含む、不安定又は不均衡なモデルをもたらすことが多い。
【0009】
本発明は、上記の脆弱性及び上記に記載されていない他の問題にも対処する。
【発明の概要】
【0010】
本発明の実装形態は、機械学習エンジンを訓練して、テキストデータからの機密情報をラベル付けするためのコンピュータ実装方法であって、方法は、
(i)テキストデータ、及びラベル付けされるべき機密情報を定義するクラスのリストを受信するステップと、
(ii)合成文のセットを生成し、機械学習エンジンを訓練するために合成文のセットを使用するステップと、
(iii)テキストデータのサンプル内のエンティティのラベルを予測し、テキストデータのサンプルからラベル付けされた文章のサブサンプルを選択して、レビューのためにアノテーターに提供し、ユーザがレビューした文章で訓練データを更新するステップと、
(iv)更新された訓練データで機械学習エンジンを訓練し、機械学習エンジンの性能がエンドユーザ要件を満たすまでステップ(iii)を繰り返すステップと、を含む。
【0011】
用語
テキストシーケンス分類
テキストシーケンス分類は、名前付きエンティティ認識(NER)とも呼ばれる自然言語処理(NLP)問題に使用される用語である。所与の言語のテキストの文章を与えられた場合、テキストシーケンス分類は、その文章をセグメント(単語、サブワード、又は文字)のリストに分割し、各セグメントにクラスラベルを適用しようとする。
【0012】
トークナイザー
トークナイザーは、NLPの標準的な部分である。それは、文章(テキストシーケンス)をセグメントに分割することを担当する。単純なトークナイザーは、テキストシーケンスを単語全体(スペース文字で分割することによって)又は単一の文字に分割する。トークナイザーの選択は、モデルが行う予測の粒度に影響を与えるため、重要である。以下に記載される方法及びシステムは、任意のトークナイザーアプローチを使用し得る。
【0013】
セグメント
テキストシーケンスが分割される単位。これは、1つ以上の単語、サブワード、又は文字であり得る。サブワードは、単語の一部である。例えば、「することができない(cannot)」という単語は、2つのサブワード「することができる(can)」及び「ではない(not)」(それ自体も単語である)に分けることができる。単語レベルのトークナイザーは、これらを1つの単語として残すことができ、サブワードトークナイザーは、テキストシーケンスを小さなコンポーネントに分割する。
【0014】
プライミング
プライミングは、一般に、少数の例で訓練されたディープラーニングモデルを指す。そのようなモデルは、(10%の領域のどこかでのリコール/精度で)分類子としての不良な性能を達成し得る。しかしながら、プライミングステップは、混同サンプラーが注釈付け及び更なる訓練のための候補文を見つけることを十分に可能にするように設計される。
【0015】
サンプリング
サンプリングは、集団から多数の代表的な例を選択する技術である。階層化サンプリングなどのいくつかの確率サンプリングアプローチを使用し得る。
【0016】
エンティティ、クラス、ラベル
これらの用語は全て密接に関連しており、文脈に応じて、テキストブロックに含まれる機密情報又は識別情報のタイプを指す。これらは、標準的な名前付きエンティティ認識及び機械学習用語である。
【0017】
エンティティ/クラス
クラスは、任意の分類問題に適用され得る一般化である。クラスは、機械学習モデルが分類することを学習しているもののカテゴリである。画像分類の場合、これは「猫」又は「犬」の可能性があり、機密データ分類モデルの場合、これらは「名前」又は「社会保障ID」になる。テキストシーケンス分類でクラスのインスタンスについて話すときにエンティティを使用し、一般的に分類について話すときにクラスを使用する。別の例として、エンティティ「ロンドン」は、クラス「都市」のインスタンスである。
【0018】
ラベル
ラベルは、エンティティ(1つ以上のセグメントで構成)がクラスに属しているかどうかを示す。
【0019】
プール
サンプル及び/又は注釈を付けることができるテキストシーケンスのセット。
【0020】
決定論的有限オートマトン正規表現
決定論的有限オートマトンは、コンピュータサイエンスからの明確に定義された概念である。所与の正規表現を決定論的有限オートマトンとして表すことは、正規表現(すなわち、文字のシーケンス)によって一致するパターンが順序数によってインデックス付けされることを可能にする。また、正規表現をグラフィカル構造として表現及び分析することができる。
【0021】
コンテキスト
テキストシーケンス処理の観点から、所与のテキストセグメントのコンテキストは、その前後に発生するテキストセグメントである。
【0022】
サポート
サポートは、指定されたデータセット内のクラスの実際の出現回数である。訓練データの不均衡なサポートは、分類子の報告されたスコアの構造的弱点を示し得、階層化されたサンプリング又は再バランシングの必要性を示し得る。
【0023】
埋め込み
自然言語単語埋め込みは、単語(それは文字である)をとり、それをアルゴリズム(多くの場合、ニューラルネットワーク)によって処理され得る数値ベクトルにマッピングすることを担当する。我々の場合、単語埋め込みは、トークナイザーによって生成されたテキストセグメントで動作する。
【0024】
中心(又は重心)
テキストセグメントをベクトルにマッピングする埋め込みを与えると、同じクラスに属する全てのセグメントのセットをベクトル空間にマッピングし、この点のセットの中心(又は重心)を計算することができる。
【0025】
単語スパン
テキストシーケンス内のエンティティは、2つ以上のテキストセグメントから構成され得る。例えば、「キーロン・ギナマールがこれを書いた」の名前エンティティは、2つの単語「キーロン」及び「ギナマール」で構成されている。単語スパンは、所与のエンティティに属するテキストセグメントのリストである。
【0026】
混同行列
予測分析では、混同行列(時には混同表とも呼ばれる)は、対応する真のクラスの予測クラスを報告する行と列を持つ表である。これにより、正しい分類(精度)の割合を単に観察するよりも、より詳細な分析が可能になる。正確さは、データセットがバランスが取れていない場合、つまり異なるクラスの観測数が大きく異なる場合に、誤解を招く結果をもたらす。
【図面の簡単な説明】
【0027】
ここで、実施例として、各々が本発明の特徴を示す以下の図面を参照して、本発明の態様を説明する。
【0028】
【
図1】システムが返すことが期待されるクラス(1A)及びクラス予測(1B)を用いて単語(又はトークン)に分割された例示的な文章を提供する表を示す。
【
図2】アクティブラーニングサイクルを示す図を示す。
【
図3】3つのクラス予測を伴う文章を含む実施例を示す。
【
図4】各クラスペアで最も混同したスコアを持つ文章を示す。
【
図5】クラスA及びB、並びにヌルカテゴリを有する2クラスシークエンスタガーの混同行列を示す。
【
図7】任意のタイプのエラーの総数を合計し、エラーを正規化した混同行列を示す。
【
図8】
図7の行列の対角線の両側の対応するセルの合計の結果を示す。
【
図9】メッセージの最後でのサインオフを表すクラスのベクトル表現のPCA分解を示す
【
図10】両方の方法がどのように組み合わされるかを示す作業例を有する表を提供する
【
図11】ラベリングプロセスをサポートするためのカスタムUIのスクリーンショットを示す。
【
図12】ラベリングプロセスをサポートするためのカスタムUIのスクリーンショットの別の実施例を示す。
【
図13】正規表現とニューラルネットワークを組み合わせたシステムの概要図を提供する。
【発明を実施するための形態】
【0029】
アクティブラーニングを使用してモデルを訓練するための方法が提示されており、その方法では、人間アノテーター又はマシンアノテーターなどのアノテーターは、モデルの精度を向上させるのに最も価値のあるサンプルのラベルを提供するように求められる。特に、訓練された機械学習モデルは、匿名化パイプラインで使用するための名前付きエンティティ認識モデル又はシーケンス分類子であり得る。
【0030】
有利には、アクティブラーニングプロセスを使用して、人間レビュアーからのラベル付けを必要とするサンプルの量が減少する。利点は、生成された最初のモデルが、作成が安価で時間がかからないことである。エンドユーザにとっての利点は、独自のユースケースで高精度を達成するためにモデルをカスタマイズする必要が少ないことである。モデルをカスタマイズする場合、エンドユーザは、識別する必要のあるクラスのみを定義する必要がある。
【0031】
この発明を実施するための形態セクションは、以下のサブセクションに分かれている。
1.ハイレベルアプローチ
2.アクティブラーニングのプライミング
3.サンプラー
4.ラベリング
5.更なるアプリケーション
6.ニューラルネットワークと組み合わせた名前付きエンティティ認識(NER)。
【0032】
1.ハイレベルアプローチ
高度なアプローチは、バッチサンプラーを使用して、クライアントワークフローでの性能を向上させるために、人間によってラベル付けされるレコードのセットを選択し、より重要なことに、シーケンス分類に使用されるモデルは、(一度に1つのレコードを更新するのではなく)データのバッチで最適に洗練される。バッチサイズは、典型的には、モデルが分類することを学習しているクラスのペアの組み合わせの数の倍数に設定され得る。サンプリングプロセスは、ラベル付けされていないデータのプール上でモデルを評価することを伴い、モデルがサンプル上で更に訓練されるたびにこれをやり直す必要があるため、一度に1つのレコード(又は文章)を学習することは非効率的である。
【0033】
図1は、名前付きエンティティ認識(NER)プロセスによる分析の準備ができている、単語(又はセグメント)に分割された例示的な文章を提供する表を示している。
図1Aの表の第2の行は、システムが返すことが予想されるラベルである。
図1Bは、「人物」及び「ヌル」の2つのクラスについて、文章内の各エンティティの予測される信頼度スコアを提供する。
【0034】
実施例として、「ボブ・スミス」は単一のエンティティである。モデルが出力を返すことが期待される正しいクラス又はラベルが提供される。エンティティの前半には、クラスラベルB-PERSONが割り当てられており、Bはエンティティの開始を示している。後半には、終了を示すクラスラベル「E-PERSON」が付いている。両方の単語は、クラスラベル「PERSON」を持つ単一のエンティティの一部である。
【0035】
モデルは、最初に検出したいクラスごとにいくつかのレコードでプライミングされる。つまり、モデルはレコードを含むデータのセットで洗練される。次に、サンプラーは、これらのクラスに一致するエンティティが含まれていると思われるラベル付けされていない文章を探す。特に、サンプルは、モデルが所与のエンティティのクラスのペアを区別できない文章を識別する。例えば、「キエロンはパリを見に行った」という文章には、2つのエンティティ、「キエロン」及び「パリ」が含まれている。「キエロン」は簡単に人物として識別されるが、このコンテキストでは「パリ」は、都市又は人物である可能性がある。ここでのエンティティは、2つの異なるクラスのいずれかに混同される可能性がある。サンプラーは文章をランク付けし、ラベル付けされていない文章のプールから最高ランクの固定バッチ(例えば、最も混同したもの)を引き出し、ラベル付けツールに渡す。実証研究は、ラベル付けのエラーが学習率の大幅な遅延を引き起こすことを示しているため、ラベル付けされたデータを使用してモデルを洗練する前に、システムは、ラベル付けの可能性のあるエラーを探すためにいくつかの方法を採用し、それらをレビュアーに渡して修正するか、検討から文章を削除し得る。
【0036】
図2は、アクティブラーニングサイクルの主なステップの概要を示している。クラスのリストが最初に選ばれるか、又は選択され21、クラスのリストが、エンドユーザがラベル付けしたい機密情報を定義する。選ばれたクラスのリストに基づいて、1つ以上のクラスに属するエンティティを含む合成文(又は単語シーケンス)のセットが生成される22。次いで、各文章は、エンドユーザがラベル付けしたい機密情報の1つ以上の例を含み得る。生成された合成文のセットは、次いで、機械学習モデルをプライミングする(これは初期訓練に対応する)ために使用される23。合成文はまた、それらを生成する文法によって自動的にラベル付けされる。次いで、機械学習モデルは、テキストデータ内の文章(又は単語シーケンス)が選択されるサンプリングに使用される24。以下に記載されるように、サンプリングは、異なるアプローチを使用して達成され得る。次いで、テキストデータのサンプル内のエンティティ及び/又は文章のラベルが予測され、レビューのためにアノテーターに提供される25。次に、訓練データが更新され、エンドユーザ要件が達成されるまでモデルが洗練される。
【0037】
生成された合成文又は元のテキストデータから選択された文章などの文章は、一般に、コンテキストを提供する単語又はセグメントのテキストシーケンスを含む。通常、少なくとも2つの単語又はセグメントを含み、必ずしも主語、動詞、又は述語を含むわけではない。
【0038】
図2に示されるように、次いで、外れ値検出器を使用して、誤ってラベル付けされた文章を識別し得る26。次に、機械学習モデルは、新たにラベル付けされ、レビューされた文章を使用して洗練され得る27。次いで、最近ラベル付けされた(及びレビューされた文章)は、訓練データ28に追加され、モデルは、更に洗練され得る29。ステップ27及び29は、異なる学習レートを使用して実施され得る。代替的に、ステップ27及び29の一方又は両方が実施され得る。
【0039】
2.アクティブラーニングのプライミング
2.1 新しいエンティティの取り扱い
ニューラルネットワークの出力層は固定されている。これは、シーケンス分類子がタグ付けできる異なるエンティティの数が固定されていることを意味する。ニューラルネットワークの以前の層のいくつかを変更する必要がある場合もあるため、既存のネットワークに追加の出力クラスを追加することは重要ではない。これを回避するために、提供される初期モデルは、出力に設定された数のエンティティを持っている。ほとんどの場合、これらは、全てのクライアントが検出する必要がある標準的なエンティティに対応している。ユーザが検出する必要がある可能性のある全てのエンティティを予測することができないため、ネットワークの多くの出力は、未使用のカスタムエンティティのために予約されている。
【0040】
カスタムエンティティには、「CUST-1」、「CUST-2」などのプレースホルダー名がある。システムのユーザが新しいエンティティを追加する必要がある場合、システムは、次の未使用のカスタムエンティティに再ラベル付けし、モデルの訓練時にそれを使用する。
【0041】
2.2 アクティブラーニングサイクルのプライミング
新しいエンティティ(例えば、予約参照)の検出を改善するには、まずシステムがどのように見えるかを知る必要がある。モデルの洗練とは、訓練されたモデルが新しい異なる訓練セットを使用して更に訓練されることであり、通常は新しいタスクを処理するために微調整することを目的としている。モデルが新しいエンティティの少数の例を使用して洗練される場合、ラベル付けされていない文章のプールの中でより多くの例を検出することができるようになるであろう。
【0042】
例えば、
予約参照は次のようになる。「BK-AR100002323」
ラベル付けされていない文章は次の通りである。
1. 「SW31ABへの納品までの期間」
2. 「GB29 NWBK 6016 1331 9268 19にお支払いください」
3. 「先週、新しいシンセサイザーキーボードを注文したが、納品確認ができなかった。予約参照はBK-AZ100002320です」
4. 「予約参照:BK-AR100002323」
5. 「私の名前はロバート・スミスです」
【0043】
モデルが予約参照が英数字であることをすでに学習している場合、同様のパターンがそのクラスラベルの予測を生成する。ラベル付けされていない文章のパターンが既知の例に近いほど、予測の信頼度が高くなる。最初に、モデルが新しいエンティティの例をほとんど見ていない場合、ラベル付けされていない文章内の例で生成される信頼度スコアは低くなる。例が多ければ多いほど、モデルが生成する信頼度は強くなり、例えば、それに似た文章内の単語が生成される。モデルが以前に例を見なかった場合、システムは、その初期反復のためにランダムサンプリングに依存するであろう。経験的な結果から、これによりマイノリティクラスを学ぶのが非常に遅くなることがわかっている。上記の実施例では、「BK-AR100002323」は、プライミング時にすでにモデルによって見られている。この単語は、新しいクラスの高い信頼レベルの予測を受け取る。
【0044】
以下のセクションでは、新しいエンティティの実施例でアクティブラーニングプロセスをプライミングするための3つの方法を提示する。
【0045】
2.2.1 合成文によるプライミング
このセクションでは、顧客が合成文を定義してアクティブラーニングプロセスをプライミングすることができるようにするシステムについて説明する。この技術は、文法ルール又はモデル、ルックアップリスト、及び正規表現の組み合わせを使用する。これらの合成文は、自己ラベル付けされ得る。
【0046】
合成文のセットは、実際のデータを模倣するために生成され、キーワードを含む。キーワードは、エンドユーザが匿名化したいクラスのセットに属するエンティティである。例えば、エンドユーザは、特定のテキストデータから名前又は都市を削除したい場合がある。次いで、生成された文章のセットは、様々な文脈を有する名前又は都市の異なる例を含むであろう。したがって、このモデルは、テキストデータを匿名化するために、名前と都市とを区別する方法を学習することができる。
【0047】
合成文は、コンテキスト内で単語又はトークンのシーケンスを生成するために、文法ルール又はモデルに基づいて生成される。
【0048】
次に、システムがNLTK(自然言語ツールキット)文法ファイルと機密性の高い用語ジェネレータとの組み合わせを使用する実施例を説明する。機密性の高い用語ジェネレータは、正規表現(予約参照などのパターンベースの識別子を生成するため)又はルックアップリスト(例えば、人及び場所の名前)、又は2つの組み合わせ(例えば、電子メールアドレスの生成)のうちのいずれかであり得る。
【0049】
NLTK文法は、可能な全ての文章の分岐構造を定義する。文法の例を以下に示す。
contactme -> contact-action me a message at contact | you can contact-action me at contact | this is name ’,’ contact-action me at contact | at contact | my email is contact
contact-action -> ’send’ | ’drop’
this->‘this’
is->‘is’
me->‘me’
my->‘my’
a->‘a’
you->‘you’
can->‘can’
at->‘at’|‘on’
email->‘email’|‘email address’|‘e-mail’|’e-mail address’
message->‘message’|‘note’|‘email’|‘mail’
contact->‘<EMAIL-SPLIT>’|‘<EMAIL-NOSPLIT>’|‘<EML-ACCOUNT>’‘<EML-AT>’‘<EML-DOMAIN>’
name->‘<FIRSTNAME>’
【0050】
引用符で囲まれた単語は、端末ノードであり、引用符で囲まれていない単語は、展開する必要があり、かつ文法の後半の行を参照する必要があるノードである。角括弧内の単語は、ジェネレータである。文章ジェネレータは、ジェネレータのリスト及び文法ファイルを取り、文法に従って可能な全ての文章(すなわち、可能な全ての分岐)、及び設定可能なジェネレータへの呼び出し数を生成する。すなわち、それの異なる文章nバージョンごとに、異なるランダムに生成された置換で作成される。
【0051】
例えば、文法が単一の文章:「私の名前は<NAME>です」を定義している場合、ユーザは、各文章の2つのバージョンを要求し、その後、<NAME>ジェネレータを2回呼び出すことで2つの文章が作成される。ジェネレータが正規表現ジェネレータである場合、要求された文章のバージョンごとに、新しい安全な乱数が正規表現のオートマトン表現に渡される。これにより、文章の各バージョンがエンティティのランダムに選択された例を取得することが確実になる。ジェネレータがルックアップである場合、ルックアップリストからランダムに選択された値が毎回選ばれる。ジェネレータには、クラスラベルも割り当てられている。ジェネレータが複数の単語を返す場合、各単語はクラスラベルでスパンの一部としてラベル付けされる。同じクラスラベルを持つ複数のジェネレータが、ラベル付けされていない単語を分離せずに互いに隣接している場合、スパンはそれらの全てに及ぶ。上記の文法では、‘<EML-ACCOUNT>’‘<EML-AT>’‘<EML-DOMAIN>’は、全て電子メールジェネレータであるため、スパンは、アカウントジェネレータから始まり、ドメインジェネレータで終わり、全ての単語は同じエンティティラベルを受け取る。
【0052】
アルゴリズムの概要
ユーザは、文法ファイル、ジェネレータのリスト(予約参照のための正規表現、又は名前のルックアップリストなど)、及び(各文章のバージョン数を決定するための)カウントnを渡す
1. 文法で定義された全てのジェネレータが正しく設定されていることを確認する
2. 自然言語ツールキット(NLTK)は、提供された文法の下で可能な全ての異なる文章を生成する
3. 各文章について、各ジェネレータをn回呼び出すことによって、その文章のn個のコピーを作成する。
4. 上記の結果は、クラスラベルを持つ単語のシーケンスであり、これは、CoNLL-X形式(毎年の自然言語学習会議で定義されているような)又はいくつかの他のラベル付けされたデータ形式などのデータ形式に変換される。
【0053】
追加的に、合成データにノイズを導入するために、生成された文章のタイプミスも含まれ得る。
【0054】
追加的に、文章は、異なる言語で生成され得る。言語はまた、関心のあるクラスに応じて自動的に選択され得る。例えば、エンドユーザは、イギリス及びスペインの社会保障番号を識別又は分類したい場合がある。したがって、文章は、英語及びスペイン語の両方で生成され得る。言語はまた、分析されるべき元のテキストデータのタイプに基づいて選択され得る。
【0055】
追加的に、システムはまた、分析されるべき元のテキストデータのタイプに基づいて適切な文法ルールを選択し得る。例えば、元のテキストデータは、ツイッターデータを含み得る。したがって、実際のツイッターデータを模倣するために、合成文が生成される。
【0056】
2.2.2 ヴォールトを使用したプライミング
トークンヴォールトは、一貫したマスキングのために使用され得、ここで、マスキングは、機密値を非機密値、すなわちトークンに置き換えるプロセスを指す。しかしながら、機密値に遭遇するたびに、同じ非機密値が置き換えに使用される(したがって、一貫性がある)。ヴォールトベースのマスキングでは、ヴォールトデータベースは、機密値並びに非機密値に対応するトークンを記憶し得る。アクティブラーニング(AL)システムは、元の機密値のみを必要とする。
【0057】
各エンティティのヴォールトは、単一の(又はいくつかの)単語ラベル付けされた文章を作成するために使用される。これらの単一の単語は、識別子のコンテキストレスの表現を提供するが、ヴォールトのサイズが大きいことは、多様な例をキャプチャすることができることを意味する。パターンベースの識別情報(例えば、予約参照)の場合、モデルは、モデルによって使用される文字レベルのエンコーディングにおけるパターンの表現をすばやく学習する。
【0058】
次に、アルゴリズムの実施例を提供する。
CoNLLフォーマットファイルは、空行で区切られた文章を持つ単語及びラベルで構成されるスペース区切りの列形式である。システムは、モデルプライミングで使用するために、ヴォールトからJsonL又はCoNLLファイルを作成する。
CoNLL文章の例を以下に示す。例えば、
キーロン B-PER
ギナマール E-PER
says 0
hello 0
【0059】
トークンヴォールトから取得された単一の値でいっぱいのファイルの場合、システムは、最初に生の値をトークン化して、値をコンポーネント単語に分割する。次の郵便番号の例を考慮する。
SW1 B-ZIP
1AA E-ZIP
SW32ZP S-ZIP
【0060】
マスキングが(上記の最初の例のように)2つ以上の単語をもたらす場合、システムは、同じクラスの全ての単語部分でマルチワード文章を作成する。そうでない場合、ヴォールトの各エントリは、単一の単語の文章になる。
【0061】
各トークンヴォールトは、エンティティクラスと関連付けられている。所与のクラスのアクティブラーニングモデルをプライミングするためには、以下のことを行う。
1.ターゲットクラスと関連付けられている全てのヴォールトを選択する
2.全ての値を連結し、重複を削除する
3.[オプション]サイズnのランダムサンプルを取る
4.サンプル内の全ての値をトークン化して、単語に分割する。
5.トークンヴォールトの値ごとに1文章ずつ、上記のようにCoNLLファイルを作成する。
【0062】
全てのターゲットクラスがCoNLLファイルの準備ができたら、文章の完全なセットに対して最大50エポックにわたってモデルを洗練することができる。
【0063】
2.2.3 ヴォールトレスマスキングによるプライミング
一貫性を管理するためにヴォールトを使用せずに一貫して可逆的にマスキングするための技術が開発されているため、ヴォールトの使用を必要とせずにウォーターマークをマスクされたデータに直接埋め込むことができることが確実になる。ヴォールトレスマスキングには多くの利点がある。特に、集中型のヴォールトを呼び出すことができない分散型のデプロイメントでは特にそうである。しかしながら、ヴォールトは含まれていない。
【0064】
代わりに、アクティブラーニングシステムは、ヴォールトレスマスキングの構成を使用してプライミングすることができる。一貫したマスキングを生成し、ウォーターマークを埋め込み、入力に類似したフォーマットを生成するために、ヴォールトレスマスキングは、ユーザが入力上の任意の制約を記述する正規表現を提供することを必要とする。例えば、ヴォールトレス技術を使用してイギリスの国民保険番号をマスクする必要がある場合、正規表現は、入力が2つの文字に続いて3つの数字のペアで構成され、最後にスペースでオプションで区切られた単一の文字で構成されていることを示す。
【0065】
この場合、システムはヴォールトレス構成から直接正規表現を使用し、一致するランダムな文字列のサンプルを生成する。パターンは必ずしも値の実際の分布を表すものではないため、サンプルサイズは、ヴォールトを使用する場合よりも小さくする必要がある。
【0066】
2.3 アクティブラーニング
プライミング方法は、シーケンスタガーなどの機械学習モデルを学習するための開始点を定義する。アクティブラーニングプロセスは、コンテキスト内でこれらの単語を探し、(もしあれば)コンテキストがラベルにどのように影響するかを確認する。このモデルを使用して、ラベル付けされていないテキストシーケンスのサンプルのクラスを予測する。
【0067】
シーケンスタガーは、単一のクラスラベルを出力するのではなく、実際には全ての単一のクラスの確率を出力する。例えば、単語は、モデルによって75%が地名である可能性が高く、25%が会社名である可能性が高いと見なされる場合がある。2つのエンティティが単語埋め込みに類似した表現を持つ場合、それらは「混同」しており、つまり、各クラスの確率はしばしば類似している。以下に説明する「混同サンプラー」は、これが発生した例を探すことができ、人間のオラクルは、それらを区別する方法をモデルに教える。
【0068】
コンテキストがテキストシーケンス内の単語の意味に影響を与える場合、これはサンプリングプロセス中にモデルによって行われた予測、したがって生成されたサンプルに反映される。
【0069】
3. サンプラー
ペアワイズ混同サンプラー
このセクションでは、アクティブラーニングシステムで使用されるサンプラーのファミリーについて説明する。サンプラーは、NERモデルを訓練及び洗練するための文章(又は単語シーケンス)の「良い」例を見つけることにおいて、信頼度又はエントロピーサンプラーを上回るように設計されている。
【0070】
有利には、開発されたペアワイズ混同サンプラーは、バランスの取れたスムーズな学習曲線を提供し、マイノリティクラスの性能を向上させる。これは、各クラスが他のクラスと比較して等しい表現を有することを確実にすることによって行われる。
【0071】
比較として、既存のサンプラーは、マイノリティクラスの表現又はバイアスのいずれかに苦労している。例えば、エントロピーサンプラーは、多くの場合、高い情報ゲインを有する例を優先し、マイノリティクラスでは性能が低下する可能性がある。より単純であるが、信頼度サンプラーは不安定な挙動を達成する可能性があるが、精度及びリコールは反相関になる。
【0072】
ペアワイズ混同サンプラーは、クラスのペアのモデル予測が互いに混同されている(例えば、通貨金額と日付が混同されている)例について文章をスキャンする。最も混同した例にラベルを付けることに焦点を当てることで、モデルがテキストシーケンスのセグメントで表されるエンティティに正しいクラスを割り当てることを学習するにつれて、精度を迅速に向上させる。
【0073】
アルゴリズムの概要
1. プール内の全ての文章をトークン化する(「単語」のシーケンスに分割する)
2. モデルは、プール内の全ての文章を予測し、全ての単語の各クラスの信頼度スコアを返す
3. 各単語のクラスラベル(開始、内部、終了、又は単一)の各「部分」の信頼度スコアを合計する
4. [エンティティと関連付けられている]クラスのペアごとに、
a.2つのクラスの信頼度スコアの合計の差を見つける
b.信頼度スコアが特定のしきい値(例えば0.01)を下回っている場合は、差を無限に設定する
5. 全ての単語について、クラスのペアごとに最小の信頼差で文章をランク付けする(例えば、以下に説明するように混同スコアを決定する)
6. 各クラスペアでラウンドロビンを実行し、各クラスペアについて最も混同した文章(前のステップのランキングで示されているような)を選んで、希望のサイズのサンプルを作成する。
サンプラーの各バリエーションには、ランキング文章を選ぶための異なる方法がある。
a.クラスペアに混同した文章がない場合は、無限にランク付けされたランダムな文章を選ぶ。
【0074】
したがって、この方法はまた、2つの異なるクラス間のラベルの混同を示す「混同スコア」を生成するステップを含む。混同スコアを生成するために、方法は、可能な各ラベル又はクラスについて信頼度スコアを出力する分類子に依存する。例えば、4つのクラス(猫、犬、ウサギ、他)を予測することができ、かつ各ラベルの信頼度(又は確率)を出力するように較正される分類子を考慮する。所与のエンティティについて、信頼度スコアが次の通りである。猫=0.4、犬=0.1、ウサギ=0.4、及び他=0.1である場合、猫とウサギとの間の混同スコアは、2つのラベル間の信頼度スコアの差0.4-0.4=0である。これは、最も混同した2つのラベルの状態であり、分類子は、入力が猫かウサギかを判断できなかった。絶対的な混同スコアが高いほど、(2つのクラスに関して)入力のための分類子の混同は少ない。混同スコアは、予測されたクラスの全ての可能な組み合わせについてペアごとに計算され得る。
【0075】
図3は、3つのクラス予測を伴う文章を含む実施例を示す。「パリ」という言葉は、ある人物にとってはやや混同している。人物/場所の混同スコアを生成する場合、「パリ」は両方のスコアに最も近い単語であるため、この差をこの文章のクラスペアの混同スコアとして報告する。しきい値を下回るクラスの予測は無視されるため、パリの人物と会社との間の差は、人物/会社の最も混同したスコアとして返されない。
【0076】
図4は、各クラスペアで最も混同したスコアを持つ文章を示す表を示している。「キエロンはロンドンからパリまでサイクリングした」は、人物/場所のスコアが0.4であり、パリの人物と場所との間の予測の差である。これは、他の単語のペルソナと場所予測との差よりも小さいスコアである。しきい値を超えるペアのうちの1つの予測がないためにクラスペアを比較できない場合、無限大のスコアが返される。
【0077】
文章をランク付けするときは、最初に最小のスコアを選ぶことができる。人物/場所については、ロンドンからパリまでの文章が、最も高い順位にランク付けされている。このコンテキストでは、パリが実際に都市を参照していることを人間が確認することで、モデルを改善することができる。
【0078】
文章には多くの単語が含まれており、単一の文章が複数のクラスペアで高いランクになる可能性があることに留意されたい。文章の中には、強い、曖昧さのない予測を持ついくつかの単語があるかもしれないが、それでもラベルが必要になる。得られたサンプルは、少なくとも、n=サンプルサイズ及びpc=クラスペア数、2つのクラスが混同されているn/pc単語を持つ必要がある。しかしながら、いくつかのクラスの例がより多く含まれている可能性がある。このアプローチの利点は、マイノリティクラスがランダムなサンプルよりも多くの表現を得ることである。しかしながら、このアプローチは、全てのクラスが等しく重み付けされることを確実にするものではない。
【0079】
ここで、サンプリングステップを実装するための更なる変形例について説明する。
【0080】
バランスの取れたサンプラー
各クラスペアの等しい表現を確実にするバランスの取れたサンプラーが使用され得る。実施例として、上記のアルゴリズムのステップ6では、ペアにラウンドロビンするときに、常に文章を選び得る。
【0081】
加重サンプラー
また、加重サンプラーが実装されてもよく、これは、クラスペアにラウンドロビンするときに必ずしも文章を選ぶとは限らない。代わりに、各クラスペアについて、ユーザが指定した割合に従って文章が選ばれる。これにより、サンプラーは特定の関心のあるエンティティクラスに優先順位を付けることができる。例えば、モデルは、4つのクラスを予測することができ、1つのクラスは、99%の精度/リコールを有し、他のクラスは60%で低く-ユーザは、性能の低いクラスに33%の重み付けを指定し、性能の高いクラスに0%の重み付けを指定することができる。
【0082】
混同-行列加重サンプラー
加重サンプラーは、各クラスペアにどの重み付けを与えるかを決定するためにエンドユーザを必要とする。アクティブラーニングプロセスは反復的であるため、前回のサンプリングラウンドからの混同行列を使用して、各クラスペアの重み付けを決定することができる。その後、しばしば混同されるクラスペアは、モデルが効果的に区別できるクラスペアよりも優先され得る。
【0083】
アルゴリズムの概要
加重サンプラーを作成するには、システムはまず適切な加重を計算する必要がある。このために、人間アノテーターが以前のバージョンのモデルで生成されたラベルを修正したときに生成された混同行列を使用する。
【0084】
実施例として、
図5は、クラスA及びB(例えば、人物又は場所)並びにヌルカテゴリ(識別されない単語のための)を有する2つのクラスのシーケンスタガーの混同行列を提供する。対角線は、真陽性((A、A)及び(B、B))及び真陰性(0、0)を表す。ホワイトボックスは偽陰性に対応し、ドットボックスは偽陽性に対応し、対角線で塗りつぶされたボックスは、他のタイプのエラーである(例えば、人物が場所と混同されている場合)。人間アノテーターがサンプラーによって割り当てられたラベルを修正すると、システムはそのような行列を生成する。
【0085】
モデルを改善しようとするときに、モデルがすでに正しい場所(グレー)にはあまり興味がない。
図5に示すように、モデルによる識別情報の呼び出しは、(0、A)及び(0、B)のエラーを低減することによって改善され、モデルの精度は、(B、A)及び(A、B)(対角線で満たされたボックスを参照)並びに(A、0)及び(B、0)(ドットで満たされたボックスを参照)のエラーを低減することによって改善される。サンプラーがどのような文章に焦点を当てるべきかを決定するために、
図6に示すように対角線を無視する。
【0086】
次いで、システムは、任意のタイプのエラーの総数を合計する(この場合は29)。最後に、
図7に示すように、システムがエラーを正規化する。
【0087】
混同行列は、クラスAの真の例がクラスBと混同されるたびに表示され、クラスBの真の例がクラスAと混同される回数を示す。サンプラーは、順序ではなくペア(A、B)のみを考慮する。結果として、システムは、
図8に示されるように、対角線のいずれかの側の対応するセルを合計する。
【0088】
次に、サンプラーは、クラスA及びBが最も混同している31%、A及び0が最も混同している45%、最後にB及び0が最も混同している24%の文章の組み合わせを選択する。クラスペア間のサンプラーラウンドロビンでは、31%の割合で(A、B)クラスペアを選ぶ。これは、31個の真の値及び69個の偽の値を持つ100個のブール値のリストをランダムに入力することによって行われる。100の倍数のサイズのサンプルの場合、これは決定論的であり、100未満の場合、選択されたクラスペアは、所望の混合を正確に反映しない場合がある。
【0089】
システムは、これらの割合を使用する2つの方法をサポートしている。
1. 前のラウンドの重み付けを使用する(これをMN-1と呼ぶ)。新しくラベル付けされたデータの訓練及び洗練の後にモデルが改善されるため、これは遅れている可能性がある。計算する混同行列は、アクティブラーニング訓練ラウンドの前のモデルであり、データをサンプリングするために使用されるモデルに対応する。しかし、そのモデルは、このデータに基づいて洗練され、MNを生成し、それを使用して別のサンプルを生成したいと考えている。
2. 二相サンプリングアプローチはまた、最初に全てのペアが等しい優先順位を与えられた小さなサンプルを生成するバランスの取れたサンプラーで実装され得る。人間アノテーターが、この小さなセットにラベルを付ける。データのサンプルが注釈付けされると、モデルの予測と比較するために使用することができる「グラウンドトゥルース」が得られる。これから、モデルの性能(精度/リコール、このケースに関連する:混同行列)のプロキシが得られる。次いで、この情報を使用して、より大きなセットを構成するべき割合を決定する。
【0090】
第2のオプションは、多くの場合、推奨モードであり得、したがって、デフォルトの挙動として設定され得る。
【0091】
精度及びリコールは、エンドユーザが関心を持つ可能性のある2つの性能指標である。リコールは、モデルが正しくラベル付けするクラスの例の割合を指す。1つのクラスの100%リコールは、全てのエンティティをそのクラスとしてラベル付けすることで得られ得る。精度は、モデルがクラスとしてラベル付けするエンティティのうち、実際にそのクラスであるエンティティの割合である。前の実施例では、100回のリコールを受けた場合、精度は非常に低かったであろう。理想的には、精度及びリコールの両方を改善する必要があり得る。有利には、混同サンプラーは、精度及びリコールを同時に向上させるように構成されている。
【0092】
モデルを匿名化に使用する場合、リコール率は高くても精度は低く、精度が低いということは、望むよりも多くの情報を削除することを意味するため、それほど有用ではない。しかしながら、アクティブラーニングを使用してモデルを訓練する場合、モデルがより多くの例を所与のクラスの可能性があるとしてフラグを立てることができれば役立つ。
【0093】
逆の場合、リコールが非常に低いとき、サンプラーは、セットをランダムサンプルに近づける。マイノリティクラスの場合、そのクラスの例が多く含まれている可能性は低い。
【0094】
ユーザがリコールを改善することのみを望む場合、文章の所望の割合は、グレーで強調表示された偽陰性(
図6を参照)、すなわち、モデルが正しいクラスの代わりに0(識別されない)を予測した偽陰性のみを考慮することによって設定され得る。これは、モデルが新しいクラスの学習を開始したばかりの場合に推奨されるオプションである。
【0095】
モデルの性能をグラウンドトゥルース情報と比較するときに、偽陰性が決定され得る。
【0096】
偽陰性(クラスの場合)は、モデルがそのクラス以外の何かを予測した場合を指す。所与のタスクの精度を高めたい場合は、クラスが異なる予測を与えるモデルと混同された全てのケースを調べる必要がある。バランスが取れていない場合、システムは、混同行列を使用してサンプルを重み付けする(モデルが混同していないペアの代わりに、モデルが混同しているクラスのペアの例を更に引き出す)。例えば、モデルがしばしば人物と場所を混同するが、人物と電話番号を混同することがない場合、サンプラーは、人物/場所の混同の多くの例を引き出すために重み付けすることができるが、人物/電話番号の混同の例はない。
【0097】
別の実施例として、リコールの改善のみに関心がある場合、モデルは、人物がヌルカテゴリと混同されているケースだけを見るように構成され得る。精度はあまり向上しない(モデルは人物/場所を間違え続ける可能性がある)が、以前に誤ってヌルと予測された人の場合はリコールが改善される。
【0098】
したがって、モデルは訓練され得、訓練ステップは、特定の必要なユーザ定義の性能が達成されるまで反復される。ユーザ定義の性能は、クラス間の所定のリコール率、精度レベル、特定のクラス性能、又は混同スコアのうちの1つ以上を含み得る。代替的に、モデルは、事前に定義された数の反復に達するまで訓練され得る。
【0099】
4. ラベリング
品質の悪いラベルは、モデル訓練に問題を引き起こす。誤ってラベル付けされたデータは、モデルを混同させ、潜在的に矛盾する情報を学習解除するために、大量の正しくラベル付けされたデータを必要とする。
【0100】
4.1 ラベリングエラーのアルゴリズム検出
このセクションでは、潜在的なラベリングエラーを検出し、人間ラベラーに警告して、適用されたラベルを検証又は修正できるようにする方法について説明する。埋め込み空間にラベルをクラスタリングすることで、クラスに属していない可能性のある外れ値を識別することができる。
【0101】
名前付きエンティティ認識モデルの前面にある単語埋め込みは、文章内の単語をモデルによって処理可能な数字(ベクトル)にマッピングする責任がある。モデルの残りの部分は、双方向の長期的な短期的なネットワークであり、単語が文章の中で持つコンテキストを考慮することを可能にする。異なる埋め込みは、異なるプロパティを有する。基本的な埋め込みは、既知の単語をベクトルにマッピングするだけであり(例えば、Word2Vec)、より複雑な埋め込みは、文字レベルで動作し、かつサブワードを検出することができ、最後に、最も完全な特徴を有する単語埋め込みは、それらが発見されるコンテキスト(両側の単語)に応じて、単語のための異なるベクトルを与える。
【0102】
実施例として、次の語彙のワンホットエンコードされた単語埋め込みを考える。{“cat”,“dog”,“fish”,“badger”,“alpaca”,out_of_vocabulary}。猫、犬、魚、アナグマ、及びアルパカ以外の全ての単語は、out_of_vocabularyにマッピングされ、そうでない単語は、その特定の単語にマッピングされる。文章内の単語を埋め込み空間内のポイントにマッピングすると、次のようになる。
Cat->(1,0,0,0,0,0)
Dog->(0,1,0,0,0,0)
Rabbit->(0,0,0,0,0,1)
Frog->(0,0,0,0,0,1)
【0103】
全ての単語は、六次元ベクトルにマッピングされる。語彙にない「ウサギ」及び「カエル」などの単語は、同じベクトルにマッピングされる。実際には、ワンホットエンコード埋め込みは、決して使用されない。有用なボキャブラリーサイズの場合、ベクトルの次元はすぐに使用できなくなる。Word2Vecから最先端までのほとんどの最新の埋め込みは、よりコンパクトな学習された表現である。それらがどのように生成されるかは、この文書の範囲外である。
【0104】
積み重ね埋め込みは、複数の埋め込みが連結されている場合である(Akbik, Alan, Duncan Blythe, and Roland Vollgraf.“Contextual string embeddings for sequence labelling.“In Proceedings of the 27th international conference on computational linguistics, pp. 1638-1649.2018)。各単語の結果として生じるベクトルは、一方の埋め込みの表現が他方の表現と連結されていることからなる。例えば、語彙{“Rabbit”,“Frog”,out_of_vocabulary}のための追加の1つのホット埋め込みを考えてみる。これと前の例との連結埋め込みでは、ウサギという単語の次の表現が得られる。(0,0,0,0,0,1,1,0,0)。これは九次元のベクトルである。六次元の値は1であり、「ウサギ」は1番目の語彙に含まれていない。七次元の値は1であり、「ウサギ」は2番目の語彙の最初の単語である。「猫」は、連結された埋め込みの表現(1,0,0,0,0,0,0,0,1)を有し、最初の六次元は、最初の埋め込みの表現と一致し、最後の次元の値は1であり、「猫」は第2の埋め込み語彙にない。実施例として、英語の外れ値検出のために、システムは、フレアニュースフォワード及びニュースバックワードコンテキスト埋め込みの両方を使用し、これが生成する積み重ね埋め込みの次元は4096である。
【0105】
フレアフレームワークは、Pytorchの上に構築されており、文章内の各単語の埋め込みを簡単に計算することができる。文章は、積み重ね埋め込みのembed()呼び出しに1つずつ渡すことができる。
【0106】
図9は、電子メールとしてラベル付けされたエンティティなどの単語ベクトルのPCA分解(二次元へ)を示す。
【0107】
エンティティのクラスのクラスタを作成するには、コンテキスト内のエンティティを含む文章のセットが必要である。これをサポートと呼ぶ。これは、以前のラベリングラウンド又は小さなサブセットからのクラスの全ての既知の正しい例から生成することができる。サポートクラスタがあると、システムは、単語埋め込みの連結を使用して各単語を(コンテキストで)マッピングし、結果として生じる全てのベクトルの平均を計算することによって、与えられたベクトル空間内のこのクラスタの中心を見つける。十分なサポートがあれば、クラスタの中心は、クラス全体を表し、中心近くにマップされている単語は、クラスのメンバーである可能性が高く、遠い単語は、異なるクラスのものである可能性が高くなる。
【0108】
単語スパンの取り扱い
シーケンス予測は、単一の分類モデルとは異なる。文章全体について単一のクラスを返す代わりに、我々のモデルは、単一のエンティティに属する文章内の全ての単語をカバーする「スパン」を返す。例えば、
週末に自転車でケンブリッジに行くキーロン・ギナマール
B-PER E-PER 0 0 S-LOC 0 0 0 0 0
【0109】
文章の最初の2つの単語は、スパンを形成し、クラス「人物」の単一のエンティティを表す。システムは、スパン全体を考慮する必要がある。簡潔にするために、システムは、両方の単語の埋め込みベクトルの平均を取って、スパン全体のベクトルを取得する必要がある。
【0110】
偽陽性及び偽陰性
文章内のラベル付けされた単語ごとに、ベクトル空間からクラスタの中心までの距離を計算することができる。実装形態では、余弦距離を使用する。他の指標には、ユークリッド距離、マンハッタン距離、及びハミング距離が含まれ、使用する適切な指標は、文章が互いにどれだけ似ているかによって異なる。文章の長さが異なる可能性があるため、プロトタイプの実装形態では余弦距離が使用された。システムは、メトリックが設定可能であることを確認する必要がある。単語が中心から遠く離れている場合、それは偽陽性である可能性がある。ラベル付けされた全ての単語をランク付けし、クラスタの中心から最も遠いパーセンテージしきい値をダブルチェックするために選ぶことができる。
【0111】
しかしながら、ラベルが単語に誤って割り当てられている場合にのみ検出される。人間ラベラーがクラスラベルの割り当てに失敗したケースは検出されない。そのためには、偽陰性を決定する必要がある。クラスラベルが与えられていない単語ごとに、クラスタの中心までの距離をまた計算する。ダブルチェックのために、クラスタの中心に近いものを検討する。
【0112】
アルゴリズムの概要
全ての文章の全ての単語について:
サポートからクラスタの中心を計算する:
●サポートセット内の全ての文章について:
●文章を単語にトークン化する
●単語にスパンを割り当てる
●積み重ね埋め込みで文章を埋め込む
●各エンティティクラスについて
●クラスの全てのスパンを選択し、埋め込みベクトルを返す。
1. 複数の単語のスパンが、スパン内の全ての単語の埋め込みベクトルの算術平均を見つけた場合
2. それ以外の場合は、スパン内の単語のベクトルを返す
●クラスの全てのスパンの算術平均を計算する。これは、埋め込み空間内のこのクラスのクラスタの中心である。
【0113】
ラベル付けされたデータのプール内の各文章にはIDが割り当てられ、各IDに対して、文章がダブルチェックされた回数を示すダブルチェックカウントが記憶される。
【0114】
全てのクラスについて、モデルは次のことを予測することができる。
1. 埋め込み空間の単語スパンとクラスクラスタの中心との間の距離を計算する
2. 全てのワードスパンをクラスタまでの距離でランク付けする
3. クラスクラスタごとに、
a.クラスタと同じクラスラベルを持つ単語スパンの場合:再ラベル付けが必要なものとして、クラスタの中心から最も遠い上位n%をマークする(誤検知)
b.それ以外の場合、異なるクラスラベルを持つ単語スパンの場合:再ラベル付けが必要なものとして、クラスタの中心に最も近い上位n%をマークする(偽陰性)
4. まだダブルチェックされていないマークされた文章を全てラベリングツールにアップロードし、マスター訓練セットのIDとともにダブルチェックする。文章のIDは、どの文章がすでにダブルチェックされているかを示すマスターリストに対してチェックされる。
5. 選択した文章を人間が再ラベル付けする
6. 再ラベル付けされた文章は、ラベル付けされたデータのマスタープールにマージされ、これら全ての文章のチェックされたステータスが更新される。
【0115】
クラスタの中心の再計算
クラスのより多くの例が見出されるにつれて、より良い代表的なクラスタが計算され得る。より正確にラベル付けされたデータが組み立てられると、クラスタの中心が再計算される。このプロセスは、元のクラスタの中心を計算するのと同じであり、使用されるサポートのサイズ(すなわち、考慮される例の数)に制限はない。
【0116】
複雑なクラス
いくつかのクラスは、異なるサブクラスの複合体であり得る。クラスタを低次元表現(例えば、2d)に投影することによるクラスタの分析は、クラスを分割する可能性を実証し得る。例えば、参照番号は、予約参照及び配送参照の両方で構成され、それぞれに異なる接頭辞が付いている場合がある。これらは、2つの異なるクラスタを形成する。
【0117】
例えば、
図9は、メッセージの最後でのサインオフを表すクラスのベクトル表現のPCA分解を示す。ほとんどの場合、これらは全て電子メールであるが、いくつかは^記号が付いたイニシャルである。イニシャルは、異なるサブグループを形成し、2つのグループは、別々のクラス(例えば、メール及びイニシャル)に変えることができる。
【0118】
システムは、ユーザが長方形又はラッソで2d分解からエンティティを選択することができるようにすることで、バルク再ラベリングをサポートしている。多くの場合、コンテキストが欠落しているが、これは、クラスのエンティティの総数が少ない場合にラベルを割り当てるための効果的な方法である。
【0119】
4.2 ラベルコンセンサス
2人以上の人間アノテーターが単語にラベルを提供している場合、コンセンサスの程度を使用して、ラベルが正しい可能性を知ることができる。全ての人間ラベラーが同意する場合、人間ラベラーが誰も同意しない場合よりも、単語ラベルが正しい可能性が高くなる。このシステムは、この情報を使用して、人間が提供したラベルの精度をダブルチェックするのに必要な時間を短縮するための多数の方法を提供する。
【0120】
多くの人間ラベラーによる単一のパスは、少数のラベラーによる複数のパスと同じくらい安価に行うことができるが、はるかに迅速に行うことができる。彼ら全員が同意するところで、割り当てられたラベルが正しいという高い信頼を持つことができる。人間が同意しない場合、それはヒューマンエラー、論争の的となる単語(例えば、ブランドの名前であるか、人物又は組織の名前であるかの不確実性)のいずれかを指す可能性がある。最後に、賢明なラベルが存在しない場合、いくつかの文章は不要なものになる可能性がある。
【0121】
一実施例として、コンセンサスの程度は、総予測に対する過半数予測の割合を指し得る。4人が単語を「人物」とラベル付けし、5人目が「場所」とラベル付けし、6人目及び最後のアノテーターが「ヌル」とラベル付けした場合、コンセンサスの程度は、4/6(これは67%のパーセンテージで表される)になる。
【0122】
単純なコンセンサスのみ
アルゴリズムの最も単純な形態は、全てのラベラーが全てのラベルに同意する文章のみを選択することを伴う。これは、少数(4以下)の手動ラベラーが利用可能な場合に最適である。
1. 各文章について、データセットを渡す
a.全てのラベラーが全てのラベルに同意しているかどうかを示すために、各文章の横にブール値を記録する(全てのラベラーが各単語に同じラベルを割り当てている場合は真)
2. ブール値が偽に設定されている文章をフィルタリングする。
【0123】
より多くの人間ラベラーが利用可能である場合、ラベル付けされた文章は、全ての人間ラベラーが同意するわけではないが、ほとんどが同意する例を含む可能性が高い。例えば、3/4の人間ラベラーがラベルに同意した場合、3/4の過半数が正しいラベルを定義するために使用され得る。これは、文章の脱落を引き起こす奇妙なデータ入力ミスを避けるため、望ましい方法である。1/2~3/4のラベラーしか同意しない場合、文章は、ダブルチェックのために送信され得る。システムは、これらのしきい値をパラメータとして取り、ユーザは、生データの複雑さ又は品質に基づいてそれらを変更することができる(低品質の生データは、より高い合意のしきい値を必要とする場合がある)。
【0124】
システムには、文章にラベルを付けるためのUIが含まれている。このUIは、文章内のどの単語に論争の的となるラベルがあったかを強調表示する。
【0125】
最後に、これは自動化された外れ値検出と組み合わせることができる。全ての人間ラベラーが合意した外れ値は、ダブルチェックを必要としない。これにより、再ラベル付けは、人間が同意しない外れ値に焦点を当てることができる。人間の意見の相違のレベルが非常に高い場合、それは不要な文章を示す可能性がある。これらは訓練データから削除する必要がある。ハイレベルの意見の相違はまた、クラスの境界が人間にとって不明瞭であることを示している。この場合、ラベリングガイドラインを再確認する必要があるため、システムは、これらの文章をラベリングガイドラインを担当する管理者にエスカレートする。
【0126】
図10は、両方の方法(人間の不一致及び外れ値ランク)がどのように組み合わされるか(この実施例ではパーセンテージは、任意であり、かつシステムのユーザによって構成され得る)を示す作業例を有する表を提供する。
【0127】
システムで使用されるラベルショートカットは、全てのラベラーで同じである貧弱なUXに起因するラベル付けのエラーを回避するために、全ての人間ラベラーに無作為化されている。
【0128】
4.2 ユーザインターフェース(UI)のラベル付け
ラベリングプロセスをサポートするには、カスタムUIが必要である。UI内で、ユーザは新しいエンティティクラス及びドキュメントラベリングガイドラインを定義できる必要がある。
【0129】
ラベラーはログインして、割り当てられたサンプルを見ることができる。
【0130】
初期ラベルを提供する場合、サンプルを選択するために使用されるモデルによって予測されるラベルが存在し、ユーザは各ラベルを順番に確認又は変更することを要求する。キーボードショートカットは、各アクションで使用できる必要がある。
【0131】
図11は、ラベリングプロセスをサポートするためのカスタムUIのスクリーンショットを示す。示されているように、ショートカットh(ハッシュタグの場合)及びu(urlの場合)は自然な選択である。しかしながら、これはいくつかのラベルを超えては拡大縮小されない。電話番号、人物、及び郵便番号は、全てショートカットと競合する。代わりに、システムは、各ユーザにランダムなショートカットを割り当てる。これにより、学習曲線は増加するが、系統的なエラーが全てのラベルに影響を与える可能性が低くなる(例えば、全てのラベラーが電話番号を郵便番号として誤ってラベル付けしているなど)。
【0132】
ラベルを補正するときは、補正が必要なラベルのみが強調表示されるが、他のラベルは不透明度が高くなる(エラーが見つかった場合は編集することもできる)。論争の的となっているラベルをクリックし得ると、ユーザには、
図12に示すように、以前のラベル、及び各ラベルの横に表示された関連付けられたラベルの割合を持つ上位3つの手動で割り当てられたラベルが表示される。以前のように、ラベリングガイドラインには、候補ラベルがパネルの横に選ばれたときに表示される。
【0133】
5. 更なるアプリケーション
機密情報
機密情報は、プライバシーを保護しなければならない人物、会社、又は他のエンティティに関する情報に関連している。機密情報には、社会保障番号又はパスポート番号などの識別子、並びに性別、年齢、身長、体重、場所データ、旅行データ、金銭データ、又は医療データなどの準識別子が含まれ得る。機密情報には、プライベート通信データがまた含まれ得る。
【0134】
最も一般的には、方法及びシステムは、クラスに属すると定義され得る任意の情報にラベルを付けるために適用され得る。
【0135】
非構造化又は構造化テキストデータ
上記で提供される例は、非構造化データからの識別子又は準識別子の分類に焦点を当てている。しかしながら、提示される方法及びシステムは、構造化データ、非構造化データ、又は構造化データと非構造化データとの組み合わせを含む、任意のタイプのデータに適用するように一般化され得る。一例として、方法は、不正又は非不正な支払いにフラグを立てるための支払いテーブルなどの構造化データを分析するために使用され得る。特に、ユースケースアプリケーションは、各ラベルの信頼度スコアを出力するアクティブラーニングプロセスを提供する。
【0136】
テキストデータは、任意の非構造化ファイル、例えば、ログファイル、チャット/電子メールメッセージ、通話記録、又は契約を含み得る。また、インターネット又はウェブ閲覧に関連する情報が含まれる場合がある。
【0137】
テキストデータはまた、マイクロバッチデータ又はイベントストリーミングデータなどの1つ以上のストリーミングソースからのストリーミングデータを含み得る。
【0138】
テキストデータはまた、画像又はビデオベースのデータ内の任意のテキストデータを含み得る。
【0139】
前のセクションでは、テキストデータの識別を解除するために使用される自然言語モデルにアクティブラーニングプロセスがどのように適用されるかについて説明する。説明されたプロセスはまた、テキストデータの匿名化を超えて一般化され得る。例えば、次の分野でも使用することができる。
【0140】
データの分類
データセットに存在するリスクを理解するには、データセットにどのような情報があるかを理解する必要がある。多くの場合、これはデータ所有者から多大な労力を要する手動プロセスである。自動化された分類アルゴリズム及び同じアクティブラーニングプロセスを使用して、モデルを訓練及び洗練してデータセットを分類することができる。これはシーケンス分類の問題ではないが、テキスト分類と同じアプローチを取ることができるほど類似している。
【0141】
ポリシー構築の自動化
データセットに与えられたプライバシー保護は、ポリシーによって記述される。ポリシーとは、データセットをより安全にするためにどのように変換すべきかを示すルールのセットである。これは時間がかかる可能性がある。
【0142】
アクティブラーニングプロセスの要素は、ポリシーの最も不確実な部分のみがユーザに表示されるように適応させることができる。プロセスがより多くのデータを見るたびに、ポリシーの構築が改善され、ユーザの時間を節約することができる。データ分類のユースケースとは異なり、これは前述のバッチサンプリングプロセスを利用しない。
【0143】
6. ニューラルネットワークと組み合わせたNER
正規表現(Regex)は、NLPで一般的な手法である。正規表現は、パスポート番号、クレジットカード番号、社会保障番号などの機密情報を特定するために使用することができる。識別子又は準識別子は、多くの場合、正規表現と一致するように生成される。
【0144】
残念ながら、正規表現は必ずしも一般化が適切ではない場合がある。正規表現は、エンティティの全ての同義語について定義する必要がある。実施例として、日付、1980年12月5日は、いくつかの異なる方法で表すことができる。5/12/80、12/5/80は、両方とも同じ正規表現でピックアップされる。5/12/1980はそうではないかもしれないが、05-12-1980は、別の区切り記号を持っている。「1980年12月5日」は、ほとんどの正規表現では一致する日付でピックアップされない。別の実施例として、Krampusnacht eveはどの正規表現でもピックアップされず、ルックアップリストが必要である。
【0145】
その結果、正規表現及びルックアップはしばしば脆いものとして定義される。可能な全てのフォーマットをキャッチしようとすることは、もぐらたたきをするようなものである。
【0146】
単語埋め込み+双方向LSTM又はトランスフォーマーのいずれかに基づいた現代のニューラルネットワークは、はるかによく一般化されている。しかしながら、それらは訓練された大量のラベル付けされていないデータと同じくらい強力である。
【0147】
トランスフォーマーは、入力データの各部分の重要性を差別的に重み付けする自己注意のメカニズムを採用したディープラーニングモデルである。主に自然言語処理(NLP)及びコンピュータビジョン(CV)の分野で使用されている。再帰ニューラルネットワーク(RNN)と同様に、トランスフォーマーは、自然言語などのシーケンシャル入力データを処理し、翻訳及びテキスト要約などのタスクに向けたアプリケーションを処理するように設計されている。しかしながら、RNNとは異なり、トランスフォーマーは、入力全体を一度に処理する。注意メカニズムは、入力シーケンス内の任意の位置のコンテキストを提供する。例えば、入力データが自然言語の文章である場合、トランスフォーマーは、一度に1つの単語を処理する必要はない。これにより、RNNよりも多くの並列化が可能になり、したがって、訓練時間が短縮される。
【0148】
これは、機密情報及び識別情報がほとんどの場合、訓練データの一部を形成することができないという問題を我々に提起する。機密データ及び識別データを含む、テキストデータの巨大なコーパスはない。このため、トランスフォーマー又は埋め込みを使用して構築されたネットワークは、より構造化された識別子では高い性能を発揮しない。更に悪いことに、例えば、SpaCy又はBERTによってデータがトークン化されると、標準正規表現は適用されなくなる。
【0149】
次に、機密情報及び/又は識別情報が正規表現によってニューラルネットワークに表現される方法が提示される。正規表現とニューラルネットワークを組み合わせたシステムの概要図を
図13に示す。
【0150】
単語埋め込みに加えて、ネットワークの並列アームは、正規表現埋め込みを実装する。これは、トークンが埋め込みに一致する場合、ベクトルはその時点で「1」に設定され、それ以外の場合は「0」に設定されるワンホットエンコーディングである。
残念ながら、トークナイザーは、単語及び識別子をコンポーネントパーツに分割し、空白を削除し得る。例えば、
kieron.guinamard@privitar.comは、「kieron」、 「.」、「guinamard」、「@」、「privitar」、「.」、「com」になり、
15-04-01は、「15」、「-」、「04」、「-」、「01」になる
後続の単語と同じ単語に属することを示すために、トークン化された文章にインジケータを保持している大きな単語の一部であったサブ単語を使用する。
【0151】
したがって、キーは、多数の正規表現を取得し、それらをサブ式(サブ正規表現)として表現することである。これは、各正規表現のオートマトングラフを構築し、それらを共通のサブグラフの組み合わせとして再表現することによって行う(サブグラフが単語の終わりではない用語に一致する場合、サブ正規表現も連続文字に一致するように修正する)。サブ正規表現が小さすぎる可能性があるため、(オプションで)トークナイザーを正規表現によって生成された代表的なサンプルに適用し、サブ正規表現がサブワード全体に完全に一致することをテストすることもできる。
【0152】
これで、より構造化された識別子のためにトークナイザーによって生成されたサブワードに一致するサブ正規表現を含む新しい正規表現埋め込みを構築できるようになる。
【0153】
付録-主な機能の概要
主な機能が一般化されている。各機能には、様々なオプションのサブ機能もリストアップしている。任意の特徴は、(その特徴に起因するかどうかにかかわらず)任意の1つ以上のサブ特徴と組み合わせることができ、全てのサブ特徴は、1つ以上の他のサブ特徴と組み合わせることができることに留意されたい。
【0154】
特徴1.ワークフロー全体
テキストデータからの機密情報をラベル付けするために機械学習モデル又はエンジンを訓練するための方法が提供されている。最初に、機械学習モデルは、生成された合成若しくは人工の文章又はテキストシーケンスのセットを使用してプライミングされる。次いで、元のテキストデータのサンプル内のエンティティのラベルを予測し、予測された各ラベルの信頼度スコアを決定する、バランスの取れたサンプラーが実装される。次いで、予測された事前にラベル付けされたエンティティのサブサンプルは、人間アノテーター又はマシンアノテーターなどのアノテーターに送信される。次に、アノテーターは、事前にラベル付けされたエンティティに最も適切なラベルを選択する。有利には、全てのクラスのラベル付け性能は、反復プロセスを通じて同じ速度で改善される。
【0155】
特に、機械学習エンジンは、次いで、ラベル付けされた機密データを自動的に匿名化するために使用され得る。したがって、分析されるべき元のテキストデータ(すなわち、最終的に訓練されたモデル又はエンジンで匿名化する)はまた、機械学習エンジンを改善するために使用される訓練データの基礎を形成し得る。次いで、アクティブラーニングプロセスサンプルからの元のテキストデータを使用して、モデルを更に訓練する。
【0156】
次のように一般化することができる。
機械学習エンジンを訓練して、テキストデータからの機密情報をラベル付けするためのコンピュータ実装方法であって、方法は、
(i)テキストデータ、及びラベル付けされるべき機密情報を定義するクラスのリストを受信することと、
(ii)1つ以上のクラスに属するエンティティを含む合成文のセットを生成し、機械学習エンジンを訓練するために生成された文章のセットを使用することと、
(iii)テキストデータのサンプル内のエンティティのラベルを予測し、テキストデータのサンプルからラベル付けされた文章を選択して、レビューのためにアノテーターに提供し、ユーザがレビューした文章で訓練データを更新することと、
(iv)更新された訓練データで機械学習エンジンを訓練し、機械学習エンジンの性能がエンドユーザ要件を満たすまでステップ(iii)を繰り返すことと、を含む、方法。
【0157】
オプション特徴:
●ステップ(iii)で選択されたラベル付けされた文章は、テキストデータの元のサンプルのサブサンプルを形成する。
●受信したテキストデータは、単語のシーケンス又は文字のシーケンスを指す。
●受信したテキストデータは、非構造化テキストデータ、構造化テキストデータ、又は非構造化テキストデータと構造化テキストデータとの組み合わせを含む。
●受信したテキストデータは、いずれの注釈もラベルも含まない。
●方法は、ラベル付けされた文章又はエンティティごとに信頼度スコアを提供するステップを含み、信頼度スコアは、エンティティが1つ以上のクラスに属する確率又は尤度に対応する値である。
●各エンティティは、信頼度スコアがエンティティにマッピングされた各ラベルと関連付けられた状態で、複数のラベルにマッピングされ得る。
●方法は、注釈付きテキストデータを出力するステップを含む。
●エンドユーザ要件は、到達した反復の所定の数を含む。
●エンドユーザ要件は、ラベル付けされた文章について到達した所定の信頼度スコアを含む。
●エンドユーザ要件は、クラス間の所定のリコール率、精度レベル、クラス性能、又は混同スコアのうちの1つ以上を含む。
●テキストデータのサンプルは、層別サンプリングアプローチなどの確率サンプリングアプローチに基づいて選択される。
●機密情報は、社会保障番号又はパスポート番号などのデータを識別することを含む。
●機密情報は、性別、年齢、体重、身長、場所データ、旅行データ、金銭データ、又は医療データなどの準識別データを含む。
●機密情報は、プライベート通信データを含む。
●機密情報は、クラスに属すると定義され得る任意の情報を含む。
【0158】
特徴2.合成文生成
各文章は、エンドユーザが識別したい所定のクラスのセットに基づいて、各連続する単語又はエンティティを選択することによって、実際の文章への近似として合成的又は人工的に生成される。文章は、所定のクラスのセットに属する1つ以上のエンティティを含む。エンティティは、(パターンベースの識別子を生成するための)可能な出力トークンの順序付きリストを与える正規表現に基づいて、又はルックアップリスト(例えば、人又は場所の名前)を使用するか、又は2つの組み合わせ(例えば、電子メールアドレス)を使用して生成され得る。文章は、コンテキスト内で単語又はトークンのシーケンスを生成するために、文法ルール又はモデルに基づいて生成される。その後、特定のエンティティについての異なる文章は、様々なコンテキストで提供され得る。したがって、このモデルは、クラスが電話番号及びクレジットカード番号などの類似した形式を持っていても、クラスを区別する方法を学ぶ。有利には、人工の文章のセットは、モデルが、合成データの生成されたセットの分布におけるバイアスなしに、様々な数の例のみで提示されるように選択され得る。合成データはまた、例えば、文章にタイプミスを含めることによって導入され得るノイズを含み得る。
【0159】
次のように一般化することができる。
機械学習エンジンを訓練して、テキストデータからの機密情報をラベル付けするためのコンピュータ実装方法であって、方法は、
(i)テキストデータ、及びラベル付けされるべき機密情報を定義するクラスのリストを受信することと、
(ii)1つ以上のクラスに属するエンティティを含む合成文のセットを生成し、機械学習エンジンを訓練するために生成された文章のセットを使用することであって、合成文が、コンテキスト内で単語又はトークンのシーケンスを生成するために、文法ルール又はモデルに基づいて生成される、使用することと、
(iii)テキストデータのサンプル内のエンティティのラベルを予測し、テキストデータのサンプルからラベル付けされた文章を選択して、レビューのためにアノテーターに提供し、ユーザがレビューした文章で訓練データを更新することと、
(iv)更新された訓練データで機械学習エンジンを訓練し、機械学習エンジンの性能がエンドユーザ要件を満たすまでステップ(iii)を繰り返すことと、を含む、方法。
【0160】
オプション特徴:
●エンティティは、正規表現に基づいて、かつ/又はルックアップリストを使用して生成される。
●方法は、タイプミスを生成するなどの、合成文にノイズを導入するステップを含む。
●合成文の言語は、受信したテキストデータを分析することに基づいて自動的に選択される。
●文法ルールは、受信したテキストデータを分析することに基づいて自動的に選択される。
【0161】
特徴3.混同サンプラー
既存のサンプラーは、マイノリティクラスの表現又は特定のエンティティへのバイアスのいずれかに苦労している。いくつかのクラスが元のテキストデータ内で非常に少ない表現を有する場合でも、全てのタイプ又はクラスのエンティティの性能を改善するバランス混同サンプラーが提供される。一例として、テキストデータは、ツイッターデータなどのソーシャルメディアデータであり得、名前又はツイッターハンドルの多くの例、及び郵便番号のごくわずかな例を含み得る。しかしながら、提供されるサンプラーは、各クラスが他のクラスと比較して等しい表現を有することを確実にする。元のテキストデータ内で識別された各エンティティは、1つ以上のラベルにマッピングされ、各ラベルは、エンティティがラベルと関連付けられたクラスに属する確率又は尤度に対応する信頼度スコアにリンクされる。エンティティが2つ以上のクラスに属する同様の確率を有する場合、エンティティは、アノテーターによってレビューされ、アノテーターは、必要に応じてラベルを修正する。
【0162】
次のように一般化することができる。
機械学習エンジンを訓練して、テキストデータからの機密情報をラベル付けするためのコンピュータ実装方法であって、方法は、
(i)テキストデータ、及びラベル付けされるべき機密情報を定義するクラスのリストを受信することと、
(ii)1つ以上のクラスに属するエンティティを含む合成文のセットを生成し、機械学習エンジンを訓練するために生成された文章のセットを使用することであって、合成文が、コンテキスト内で単語又はトークンのシーケンスを生成するために、文法ルール又はモデルに基づいて生成される、使用することと、
(iii)テキストデータのサンプル内のエンティティのラベルを予測し、ラベル付けされた文章を選択して、レビューのためにアノテーターに提供し、ユーザがレビューした文章で訓練データを更新することと、
(iv)予測されたラベルと、アノテーターによってレビューされたラベルとの比較を表す、混同行列を生成することと、
(v)更新された訓練データで機械学習エンジンを訓練し、機械学習エンジンの性能がエンドユーザ要件を満たすまでステップ(iii)を繰り返すことであって、ラベル付けされた文章の選択が、生成された混同行列に基づいている、繰り返すことと、を含む、方法。
【0163】
オプション特徴:
●混同スコアは、所与のクラスの予測が別のクラスにどれだけ近いかを示す値である。
●混同スコアは、文章内の各エンティティについて決定された混同スコアに基づいて、各文章について決定される。
●MLエンジンは、混同行列及び/又は混同スコアの分析に基づいて、各文章をランク付けする。
●各クラス又はクラスペアに重みが割り当てられる。
●混同行列は、ステップ(iii)の各反復について更新される。
●混同スコアは、ステップ(iii)の各反復について更新される。
【0164】
特徴4.加重サンプラー
機械学習エンジンを訓練して、テキストデータからの機密情報をラベル付けするためのコンピュータ実装方法であって、方法は、
(i)テキストデータ、及びラベル付けされるべき機密情報を定義するクラスのリストを受信することであって、各クラス又はクラスペアに重みが割り当てられる、受信することと、
(ii)1つ以上のクラスに属するエンティティを含む合成文のセットを生成し、機械学習エンジンを訓練するために合成文のセットを使用することであって、合成文が、コンテキスト内で単語又はトークンのシーケンスを生成するために、文法ルール又はモデルに基づいて生成される、使用することと、
(iii)テキストデータのサンプル内のエンティティのラベルを予測し、ラベル付けされた文章を選択して、割り当てられた重みに基づいてレビューのためにアノテーターに提供し、ユーザがレビューした文章で訓練データを更新することと、
(iv)更新された訓練データで機械学習エンジンを訓練し、機械学習エンジンの性能がエンドユーザ要件を満たすまでステップ(iii)を繰り返すことと、を含む、方法。
【0165】
オプション特徴:
●重みは、エンドユーザによって割り当てられる。
●重みは、自動的に割り当てられる。
●重みは、ステップ(iii)の各反復において更新される。
●方法は、機械学習エンジンの性能をグラウンドトゥルース情報と比較し、比較結果に基づいてテキストデータのサンプルを選択するステップを含む。
●方法は、予測されたラベルと、アノテーターによってレビューされたラベルとの比較を表す、混同行列を生成するステップを含む。これは、平均して、モデルが最もミスを犯している場所を示している。次いで、モデルがより多くのエラーを犯していた文章に有利になるように、どの文章が(次のラウンド(iii)のサンプリングで)サンプラーによって選択されるかを重み付けするために使用される。
●重みは、生成された混同行列及び/又は混同スコアに基づいて更新される。
【0166】
特徴5.正しいラベリングのためのコンセンサス
機械学習エンジンを訓練して、テキストデータからの機密情報をラベル付けするためのコンピュータ実装方法であって、方法は、
(i)テキストデータ、及びラベル付けされるべき機密情報を定義するクラスのリストを受信することと、
(ii)1つ以上のクラスに属するエンティティを含む合成文のセットを生成し、機械学習エンジンを訓練するために合成文のセットを使用することと、
(iii)テキストデータのサンプル内のエンティティのラベルを予測し、テキストデータのサンプルからラベル付けされた文章を選択して、レビューのために複数のアノテーターに提供し、ユーザがレビューした文章で訓練データを更新することと、
(iv)更新された訓練データで機械学習エンジンを訓練し、機械学習エンジンの性能がエンドユーザ要件を満たすまでステップ(iii)を繰り返すことと、を含む、方法。
【0167】
オプション特徴:
●複数のアノテーターが所定のコンセンサスパーセンテージに達したときにのみ、ラベルが補正又は検証される。
【0168】
特徴6.外れ値検出
アノテーターが1ラウンドのラベル付けを完了すると、MLプロセスは、外れ値予測子を使用して、埋め込み空間に投影されたラベル/エンティティを分析する。実施例として、ツイッターハンドル及び電子メールは、埋め込み空間で似ている。
【0169】
機械学習エンジンを訓練して、テキストデータからの機密情報をラベル付けするためのコンピュータ実装方法であって、方法は、
(i)テキストデータ、及びラベル付けされるべき機密情報を定義するクラスのリストを受信することと、
(ii)1つ以上のクラスに属するエンティティを含む合成文のセットを生成し、機械学習エンジンを訓練するために生成された文章のセットを使用することと、
(iii)テキストデータのサンプル内のエンティティのラベルを予測し、テキストデータのサンプルからラベル付けされた文章を選択して、レビューのためにアノテーターに提供し、ユーザがレビューした文章で訓練データを更新することと、
(iv)更新された訓練データで機械学習エンジンを訓練し、機械学習エンジンの性能がエンドユーザ要件を満たすまでステップ(iii)を繰り返すことと、を含み、
次いで、ステップ(iii)と(iv)との間に外れ値検出器を使用して、レビューされた文章内の外れ値を検出する、方法。
【0170】
オプション特徴:
●方法は、各エンティティをベクトル空間に表すステップを含む。
●方法は、各クラスのサポートを決定するステップを含み、サポートは、そのクラスを含むラベル付けされた文章のセットを参照する。
●方法は、各クラスのサポートをベクトル空間に表し、ベクトル空間内の中心を決定するステップを含む。
●外れ値検出器は、各クラスの中心に関連して、各エンティティを分析する。
【0171】
特徴7.複雑なクラスを表す
機械学習エンジンを訓練して、テキストデータからの機密情報をラベル付けするためのコンピュータ実装方法であって、方法は、
(i)テキストデータ、及びラベル付けされるべき機密情報を定義するクラスのリストを受信することと、
(ii)1つ以上のクラスに属するエンティティを含む合成文のセットを生成し、機械学習エンジンを訓練するために生成された文章のセットを使用することと、
(iii)テキストデータのサンプル内のエンティティのラベルを予測し、テキストデータのサンプルからラベル付けされた文章を選択して、レビューのためにアノテーターに提供し、ユーザがレビューした文章で訓練データを更新することと、
(iv)更新された訓練データで機械学習エンジンを訓練し、機械学習エンジンの性能がエンドユーザ要件を満たすまでステップ(iii)を繰り返すことと、を含み、
機械学習エンジンは、複雑なクラスを複数のサブクラスに表すことを学習するように構成されている、方法。
【0172】
オプション特徴:
●機械学習エンジンは、複雑なクラスを、そのベクトル空間表現を分析することによって識別する。
●上記の方法のいずれかは、テキストデータを匿名化するために機械学習エンジンを訓練するために適用され得る。
●上記の方法のいずれかは、画像又はビデオベースのデータ内のテキストデータを匿名化するために機械学習エンジンを訓練するために適用され得る。
●上記の方法のいずれかは、機械学習エンジンを訓練して、複数のクラスに対応するテキストデータ内の任意の入力タイプを分類するために適用され得る。
【0173】
特徴8.正規表現埋め込みを生成するための方法
機密情報を分類又は識別するために構築された機械学習モデルには、大量のラベル付けされたデータが必要である。しかしながら、多くの場合、識別子又は準識別子について直接利用可能なデータはほとんどない。機械学習エンジンがまた、オートマトン/グラフに基づいて正規表現に対応する訓練データを自動的に生成する正規表現モジュールも含む、解決策が提供されている。
【0174】
次のように一般化することができる。
正規表現のセットのための正規表現埋め込みを生成するためのコンピュータ実装方法であって、方法は、
(i)可能性のある正規表現のリストを受信することであって、各受信した正規表現が、オートマトン/グラフで表され得る、受信することと、
(ii)可能な正規表現グラフからの共通のサブグラフの組み合わせとして、全ての正規表現を表現することと、を含む、方法。
【0175】
オプション特徴:
●方法は、訓練データを生成して、テキストデータ内の機密情報及び/又は識別情報を検出又は分類するステップを含む。
●正規表現埋め込みは、テキストデータ内の機密情報及び/又は識別情報を検出又は分類するように訓練され、また、従来の教師なし学習訓練された単語埋め込みと組み合わせて使用される機械学習エンジンの一部として使用される。
●正規表現埋め込みは、機械学習エンジンへの入力として提供される。
●正規表現埋め込みは、従来の単語埋め込みを含むスタック埋め込みの一部である。
●ステップ(ii)は、正規表現の受信したリストの分析から学習される。
【0176】
注意
上記で参照した構成は、本発明の原理の出願の例示にすぎないことを理解されたい。本発明の趣旨及び範囲から逸脱することなく、多数の修正及び代替配置を考案することができる。本発明は、図面に示されており、本発明の最も実用的で好ましい実施例であると現在考えられているものに関連して特定性及び詳細で上記に完全に説明されているが、本明細書に記載される本発明の原理及び概念から逸脱することなく、多数の修正を行うことができることが当業者には明らかであろう。
【国際調査報告】