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

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

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特表2024-528393訓練済み機械学習パイプラインを用いた分類階層の識別
<>
  • 特表-訓練済み機械学習パイプラインを用いた分類階層の識別 図1
  • 特表-訓練済み機械学習パイプラインを用いた分類階層の識別 図2
  • 特表-訓練済み機械学習パイプラインを用いた分類階層の識別 図3
  • 特表-訓練済み機械学習パイプラインを用いた分類階層の識別 図4
  • 特表-訓練済み機械学習パイプラインを用いた分類階層の識別 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-30
(54)【発明の名称】訓練済み機械学習パイプラインを用いた分類階層の識別
(51)【国際特許分類】
   G06F 16/906 20190101AFI20240723BHJP
   G06N 20/20 20190101ALI20240723BHJP
【FI】
G06F16/906
G06N20/20
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023575783
(86)(22)【出願日】2022-06-08
(85)【翻訳文提出日】2024-02-05
(86)【国際出願番号】 US2022032705
(87)【国際公開番号】W WO2022261233
(87)【国際公開日】2022-12-15
(31)【優先権主張番号】17/303,918
(32)【優先日】2021-06-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ポッレーリ,アルベルト
(72)【発明者】
【氏名】クマール,ラジブ
(72)【発明者】
【氏名】ブロン,マーク・ミシェル
(72)【発明者】
【氏名】チェン,グオドン
(72)【発明者】
【氏名】アグラワル,シェカール
(72)【発明者】
【氏名】ブーフハイム,リチャード・スティーブン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA10
5B175FA03
(57)【要約】
識別済みカテゴリが階層内にまだ存在していない場合でも、訓練済み機械学習(ML)パイプラインを使用して対象データ項目と関連付けられたカテゴリを識別するための技術が開示される。MLパイプラインは、とりわけ、訓練済みクラスタベースの機械学習モデルおよび訓練済み分類ベースの機械学習モデルを含むことができる。クラスタベースの機械学習モデルおよび分類ベースの機械学習モデルの結果が同じである場合、対象データ項目は、機械学習モデルの同じ結果と一致する階層的分類に割り振られる。割り振られた階層的分類は、識別された分類内の親カテゴリおよび子カテゴリが互いに適切に関連付けられているかどうかを決定する後続の訓練済みMLモデルの動作によって検証され得る。
【特許請求の範囲】
【請求項1】
1つまたは複数のハードウェアプロセッサによって実行されると、動作の実行を引き起こす命令を保存する1つまたは複数の非一時的コンピュータ可読媒体であって、前記動作は、
クラスタベースの機械学習モデルおよび分類ベースの機械学習モデルを、データ項目を階層的なカテゴリのセット内の対応するカテゴリと関連付けるように、訓練することを含み、
前記階層的なカテゴリのセットの第1のレベルにある対応する第1のカテゴリに類別されるべき第1の対象データ項目を受信することを含み、
前記クラスタベースの機械学習モデルを前記第1の対象データ項目に適用して第1の階層的分類を生成することを含み、前記クラスタベースの機械学習モデルを適用することは、
複数のクラスタのうちの、前記第1の対象データ項目に対する第1の候補クラスタを識別することを含み、
前記第1の候補クラスタは前記第1の階層的分類に対応し、前記複数のクラスタは、訓練データの第1のセットに基づいて前記クラスタベースの機械学習モデルによって決定され、
(1)前記対象データ項目を有する前記第1の候補クラスタの第1の分散値と(2)前記対象データ項目を有していない前記第1の候補クラスタの第2の分散値とを比較して、差分値を計算することを含み、
前記差分値が閾差分値未満であると決定するのに応答して、前記第1の候補クラスタに対応する前記第1の階層的分類を前記第1の対象データ項目に対する第1の候補分類として識別することを含み、
前記分類ベースの機械学習モデルを前記第1の対象データ項目に適用して第2の階層的分類を生成することを含み、前記分類ベースの機械学習モデルを適用することは、
前記第1の対象データ項目に対応する属性を解析して、前記第2の階層的分類を前記第1の対象データ項目に対する第2の候補分類として識別することを含み、
少なくとも、前記クラスタベースの機械学習モデルによって決定された前記第1の階層的分類および前記分類ベースの機械学習モデルによって決定された前記第2の階層的分類が同じであると決定するのに応答して、前記第1の階層的分類または前記第2の階層的分類のうちの一方を前記階層的なカテゴリのセットの前記第1のレベルにある前記第1のカテゴリとして前記第1の対象データ項目に割り振ることを含む、
1つまたは複数の非一時的コンピュータ可読媒体。
【請求項2】
前記第1の候補クラスタを識別することは、第1の対象データ項目の属性に基づいている、請求項1に記載の媒体。
【請求項3】
前記分類ベースの機械学習モデルはニューラルネットワークを備え、前記第1の対象データ項目に対応する前記属性を解析することは、前記ニューラルネットワークを前記第1の対象データ項目に対応する前記属性に適用することを含む、請求項1に記載の媒体。
【請求項4】
前記クラスタベースの機械学習モデルを第2の対象データ項目に適用して第3の階層的分類を生成することと、
前記分類ベースの機械学習モデルを前記第2の対象データ項目に適用して第4の階層的分類を生成することと、
少なくとも、前記クラスタベースの機械学習モデルによって決定された前記第3の階層的分類および前記分類ベースの機械学習モデルによって決定された前記第4の階層的分類が異なると決定するのに応答して、前記第3の階層的分類または前記第4の階層的分類のうちの一方を前記階層的なカテゴリのセットの前記第1のレベルにある第2のカテゴリとして前記第2の対象データ項目に割り振らないことと
をさらに含む、請求項1に記載の媒体。
【請求項5】
少なくとも、
追加の訓練済みクラスタベースの機械学習モデルを適用して、割り振られた前記第1の階層的分類または割り振られた前記第2の階層的分類と関連付けられた第1のレベルカテゴリと第2のレベルカテゴリとの間の第1の類似度値を決定すること、
訓練済みマルチクラス分類ベースの機械学習モデルを適用して、割り振られた前記第1の階層的分類または割り振られた前記第2の階層的分類と関連付けられた前記第1のレベルカテゴリと前記第2のレベルカテゴリとの間の第2の類似度値を決定すること、および
前記第1の類似度値および前記第2の類似度値が両方とも閾値を上回ると決定するのに応答して、前記第1の対象データ項目に割り振られた前記第1の階層的分類または前記第2の階層的分類を検証すること
により、前記第1の対象データ項目に割り振られた前記第1の階層的分類または前記第2の階層的分類を検証することをさらに含む、請求項1に記載の媒体。
【請求項6】
前記第1の対象データ項目は、履歴書、仕事内容、または求人のうちの1つまたは複数を含み、前記第1のカテゴリは求職者のスキルを含む、請求項1に記載の媒体。
【請求項7】
前記第1の階層的分類および前記第2の階層的分類が独立して生成される、請求項1に記載の媒体。
【請求項8】
請求項1~請求項7のいずれかに記載の動作を含む方法。
【請求項9】
ハードウェアプロセッサを含む少なくとも1つの装置
を備え、請求項1~請求項7のいずれかに記載の動作を実行するように構成されている、システム。
【請求項10】
請求項1~請求項7のいずれかに記載の動作を実行するための手段を備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願、参照による援用
関連出願である、2021年6月10日に出願された出願第17/303,918号は、参照により本明細書に援用される。本出願人は、本明細書により、親出願またはその出願経過における請求項の範囲のいかなる否認も無効にするとともに、本出願における請求項が親出願におけるいかなる請求項よりも広義であり得ることをUSPTOに助言する。
【0002】
技術分野
本開示は、データの階層的分類に関する。詳細には、本開示は、訓練済み機械学習パイプラインを使用してデータにおける分類階層を識別することに関する。
【背景技術】
【0003】
背景
様々な文脈のいずれにも使用される記述および術語は経時的に変化する。また、どの時点でも、術語は、同じ主題に言及するときでも、異なる組織(「エンティティ」)の間でしばしば異なることがある。同じ主題を記述するとき、エンティティ相互間であるかどうか、または経時的であるかどうかの術語の自然変異は、術語の意味が不明確であり得るためにデータ項目の解析を複雑にする。あるいは、第1の用語を用いた主題に対するクエリは、対象主題を参照するが、第2の異なる用語を用いて記述されるクエリ結果を識別できない場合がある。
【発明の概要】
【0004】
主題の分野に一貫した術語を適用すると、解析の効率および正確度が向上することになる。
【0005】
このセクションに記述される手法は、追求され得る手法であるが、必ずしも以前に着想または追求されたことがある手法ではない。したがって、別段の指示がない限り、このセクションに記述される手法はいずれも、単にこれらの手法をこのセクションに包含することにより先行技術としての資格があると見なされるべきでない。
【0006】
実施形態は、添付図面の図に例として示され、限定するために示されるものではない。本開示における「ある(an)」または「1つの(one)」実施形態への言及は、必ずしも同じ実施形態に対するものではなく、これらの言及は少なくとも1つの実施形態を意味することに留意すべきである。
【図面の簡単な説明】
【0007】
図1】1つまたは複数の実施形態によるシステムを示す図である。
図2】1つまたは複数の実施形態による、一貫性のないまたは非標準の術語を一貫性のある術語に変換するための動作のセットの例を示す図である。
図3】1つまたは複数の実施形態による、対象データセット内のカテゴリを識別するための動作のセットの例を示す図である。
図4】1つまたは複数の実施形態による、対象データセットで識別されたカテゴリを検証するための動作のセットの例を示す図である。
図5】1つまたは複数の実施形態によるコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0008】
詳細な説明
以下の記述では、説明する目的で、非常に多くの具体的な詳細が完全な理解を提供するために記載される。1つまたは複数の実施形態がこれらの具体的な詳細なしに実践され得る。一実施形態に記述される特徴は、異なる実施形態に記述される特徴と組み合わされ得る。いくつかの例では、周知の構造および装置が、本発明を不必要に曖昧にするのを回避するためにブロック図の形態を参照して記述される。
【0009】
1.概要
2.システムアーキテクチャ
3.MLパイプラインを用いたカテゴリの識別
4.カテゴリの検証
5.実施形態例
6.コンピュータネットワークおよびクラウドネットワーク
7.様々な拡張機能
8.ハードウェア概観
1.概要
1つまたは複数の実施形態が、階層的分類を対象データ項目に割り振るために、複数の独立して訓練され実行される機械学習モデルを適用する。このシステムは、対象データ項目の候補階層的分類を決定するために、クラスタベースの機械学習モデルと分類ベースの機械学習モデルの両方を適用する。両方の候補階層的分類が同じである場合、システムは、候補階層的分類を対象データ項目に割り振る。いくつかの実施形態は追加モデルを含み、追加モデルは各々、独立して導き出された階層的分類を解析に寄与させることもできる。これらの実施形態では、モデルの過半数(例えば、3分の2、4分の3)が同意すれば、モデルの過半数が同意している階層的分類は対象データ項目と関連付けられる。いくつかの例では、モデルがどれも同意しなければ、最も正確であると推定される正確の階層的分類は対象データ項目と関連付けられる。
【0010】
本明細書に記述されかつ/または特許請求の範囲に列挙される1つまたは複数の実施形態は、この概要のセクションに含まれないことがある。
【0011】
2.アーキテクチャの概観
以下に記述されるシステムの実施形態は、1つまたは複数の訓練済み機械学習モデルを使用して対象データ項目からカテゴリおよび/または階層的なカテゴリのセット(または簡略に「階層」)を抽出するように構成される。場合によっては、システムは、以前に識別されなかった任意の階層レベルにあるカテゴリ(例えば、親(「第2のレベル」)カテゴリ、子(「第1のレベル」)カテゴリ)などの階層の要素を識別することができる。高レベルでは、システムは、一連の機械学習モデルを使用してこれらの目的を達成することができ、機械学習モデルは各々、特定の解析を実行するために特に訓練されている。個々の訓練済み機械学習モデルは「パイプライン」として配置され、したがって、個々の訓練済み機械学習モデルのうちのいくつかは、パイプライン内の前段の機械学習モデルの解析産物出力をさらに処理する。いくつかの態様では、様々な訓練済みMLモデルからの結果が比較され、比較に基づいてある結果が抽出される。
【0012】
図1は、1つまたは複数の実施形態によるシステム100を示す。図1に示されているように、システム100は、クライアント102A、102B、機械学習アプリケーション104、データリポジトリ122、および外部リソース126を含む。1つまたは複数の実施形態では、システム100は、図1に示されている構成要素より多いまたは少ない構成要素を含むことができる。
【0013】
図1に示されている構成要素は、互いにローカルにあってもよく、リモートにあってもよい。図1に示されている構成要素は、ソフトウェアおよび/またはハードウェアで実装され得る。各構成要素は、複数のアプリケーションおよび/またはマシンに分散され得る。複数の構成要素が、1つのアプリケーションおよび/またはマシンにまとめられてもよい。その代わりに、1つの構成要素に関して記述されている動作は別の構成要素によって実行されてもよい。
【0014】
クライアント102A、102Bは、ネットワークに(例えば、コンピューティングデバイスを介して)通信可能に結合されるウェブブラウザ、モバイルアプリケーション、他のソフトウェアアプリケーションとすることができる。クライアント102A、102Bは、HTTPなどの1つまたは複数の通信プロトコル、ならびに/あるいはインターネットプロトコル(IP)スイートの他の通信プロトコルを使用して、システム100の他の要素と直接にまたはクラウドサービスを介して対話することができる。
【0015】
いくつかの例では、クライアント102A、102Bのうちの1つまたは複数は、データ項目を受信および/または生成するように構成される。クライアント102A、102Bは、解析のためにデータ項目をMLアプリケーション104に送信することができる。MLアプリケーション104は、1つまたは複数の訓練済みMLモデルを送信されたデータ項目に適用することにより送信されたデータ項目を解析し、それによってデータ項目から階層を抽出することができる。
【0016】
クライアント102A、102Bはまた、MLアプリケーション104によって生成されるグラフィックユーザインターフェース(GUI)をレンダリングするように構成されたユーザ装置を含むことができる。GUIは、ユーザがコンピューティングトランザクションの実行をトリガし、それによってデータ項目を生成するインターフェースを提示することができる。いくつかの例では、GUIは、ユーザが訓練データを見て、訓練データを分類し、MLアプリケーション104にデータ項目のセットから階層を抽出するよう指示することを可能にする特徴、および本明細書に記載の実施形態の他の特徴を含むことができる。さらに、クライアント102A、102Bは、MLアプリケーション104解析の正確度に関してユーザがGUIを介してユーザフィードバックを提供することを可能にするように構成され得る。すなわち、ユーザは、GUIを使用して、MLアプリケーション104によって生成された解析に正確または不正確とラベルを付け、それによって訓練データをさらに改訂または検証することができる。いくつかの例では、ユーザは、GUIを使用して、MLアプリケーション104によって生成された対象データの機械学習解析にラベルを付け、それによってデータ項目のセットから抽出された階層の態様を改訂することができる。この後者の特徴により、ユーザはMLアプリケーション104によって解析された対象データにラベル付けすることが可能になり、したがって、MLアプリケーション104はMLアプリケーションの訓練を更新することができる。
【0017】
システム100のMLアプリケーション104は、訓練データを使用して1つまたは複数のMLモデルを訓練し、ML解析前に対象データを準備し、対象データを解析し、それによって準備した対象データから階層を抽出するように構成され得る。本明細書に記載されているように、MLアプリケーション104は、対象データから階層を抽出できるだけでなく、カテゴリおよび/または以前にカテゴリと関連付けられていないサブカテゴリの任意の階層的レベルを識別することもできる。
【0018】
機械学習アプリケーション104は、特徴抽出器108、機械学習エンジン110、フロントエンドインターフェース118、およびアクションインターフェース120を含む。
【0019】
特徴抽出器108は、データ項目と関連付けられた特性を識別するように構成され得る。特徴抽出器108は、識別された特性を表す対応する特徴ベクトルを生成することができる。例えば、特徴抽出器108は、訓練済みMLモデルが解析するよう指示された訓練データおよび/または「対象」データ内の属性を識別することができる。識別されると、特徴抽出器108は、訓練データおよび対象データのうちの一方または両方から特性を抽出することができる。
【0020】
特徴抽出器108は、いくつかのデータ項目特性をトークンにトークン化することができる。次いで、特徴抽出器108は、各値が異なる特性的なトークンを表している一連の値を含む特徴ベクトルを生成することができる。特徴抽出器108は、document-to-vector(口語的に「doc-to-vec」と記載される)モデルを使用して特性を(例えば、人間が読めるテキストから抽出されるように)トークン化し、訓練データおよび対象データのうちの一方または両方に対応する特徴ベクトルを生成することができる。doc-to-vecモデルの例は、専ら例示を目的として提供される。特性をトークン化するために他の種類のモデルが使用されてもよい。
【0021】
特徴抽出器108は、生成された特徴ベクトルに他の特徴を付加することができる。一例では、特徴ベクトルは、[f1,f2,f3,f4]として表すことができる、ここで、f1,f2,f3は特性的なトークンに対応し、f4は非特性的な特徴である。非特性的な特徴の例は、以下に限定するものではないが、特徴ベクトルによって記述される特性のセットの1つまたは複数の特性に割り振るべき1つの重み(または複数の重み)を定量化するラベルを含むことができる。いくつかの例では、ラベルは、対応する特性に関連する1つまたは複数の分類を示すことができる。
【0022】
上述したように、システムは、訓練し、再訓練し、そしてその解析を新たな(対象)データに適用するためのラベル付きデータを使用することができる。
【0023】
特徴抽出器108は、対象データから特徴ベクトルを生成するために、対象データに随意に適用され得る。これらの対象データの特徴ベクトルは、下記のように、他のMLモデルによる対象データの解析を容易にすることができる。
【0024】
MLアプリケーション104の機械学習エンジン110は、訓練論理112および解析論理114を含む。解析論理114は、術語正規化器115および機械学習パイプライン116をさらに含む。
【0025】
いくつかの例では、訓練論理112は、データ項目のセットを入力(すなわち、訓練コーパスまたは訓練データセット)として受信する。データ項目の例としては、以下に限定するものではないが、電子的にレンダリングされる文書および電子通信が含まれる。電子通信の例としては、以下に限定するものではないが、電子メール、SMSもしくはMMSテキストメッセージ、電子的に送信されるトランザクション、ソーシャルメディアチャネル経由で通信される電子通信、クリックストリームデータ、電子文書、および/または電子的に保存されるテキストが含まれる。一例示では、電子文書の一種としては、求人情報や志願者の職歴などの要件を記述する任意のフォーマット(例えば、.txt、.doc、.PDF)のテキストファイルが含まれ得る。いくつかの例では、データ項目は、構造化データ(例えば、ブラウザ形態またはコンピューティングアプリケーション形態(PDF形態を含む)で提出される)または非構造化テキスト(例えば、.txt、.doc、.PDFなどのフリーテキスト文書、または他の「blob of text」フォーマット)の形態をとることができる。
【0026】
いくつかの例では、機械学習エンジン110を訓練するために訓練論理112によって使用される訓練データが、上述した、特徴抽出器108によって生成されるデータ項目の特徴ベクトルを含む。
【0027】
訓練論理112は、クライアント102A、102Bなどのユーザシステムと通信することができる。クライアント102A、102Bは、電子的に保存される訓練データセットにラベルを付けるためにユーザによって使用されるインターフェースを含むことができる。
【0028】
機械学習(ML)エンジン110は、訓練論理112を用いて、データ項目の階層的分類(「抽出済みタクソノミー」または「カテゴリ」と記載されることもある)を自動的に学習するように構成される。訓練済みMLエンジン110は、対象データに適用され、対象データの1つまたは複数の特性を解析することができる。これらの特性は、図2図4および図4の文脈で以下に記述される技術に従って使用され得る。
【0029】
MLエンジン110および/またはMLアプリケーション104のうちの一方または両方と関連付けられ得るMLモデルの種類は、以下に限定するものではないが、線形回帰、ロジスティック回帰、線形判別解析、分類と回帰のツリー、ナイーブベイズ、k最近傍、学習ベクトル量子化、サポートベクターマシン、バギングとランダムフォレスト、ブースティング、逆伝搬、ニューラルネットワーク、および/またはクラスタリングを含む。
【0030】
解析論理114は、対象データを解析するために訓練済み機械学習エンジン110を適用する。解析論理114は、対象データ項目と関連付けられた1つまたは複数の属性に基づいて対象データ項目のカテゴリを予測するために、データ項目を解析することができる。解析論理114は、対象データ項目のカテゴリを予測するとともに、階層的分類に現在存在していない1つまたは複数のカテゴリも予測するために、1つまたは複数の訓練済みMLモデルを使用することができる。
【0031】
解析論理114は、図1に正規化器115およびMLパイプライン116を含むものとして示されている例で示されている。解析論理114の他の構成は、追加の要素または少ない要素を含むことができる。
【0032】
正規化器115は、ユーザ固有の術語を特定の分野または特定の主題に関連する標準術語、または少なくとも均一な術語のセットに関連付けるように機能する。正規化器115をユーザデータに適用すると、いくつかの実施形態ではシステム100の結果の正確度および精度が向上し、さらに、システム100を様々な産業のいずれか、さらには特定の産業内の様々な別個のエンティティにも適用することが可能になる。
【0033】
正規化器115は最初に、(1)ユーザにとって関心のある主題または分野を(例えば、ユーザの命令により)受信するかまたは(例えば、訓練済みMLモデルを適用することにより)独立して決定し、(2)関心のある指示分野に関する用語の対応する標準化ライブラリを識別する。次いで、正規化器115は、ユーザデータに関連する口語的用語を標準化ライブラリに接続する関連付けまたは「マップ」を作ることができる。正規化器115は、対象データ、ならびに訓練データで動作することができ、したがって、ユーザに関連するが、術語が変化するデータ項目は一貫して解析され得る。例えば、エンティティが、エンティティに特異である口語的用語を用いて求人を掲載することができるのに対して、求職者は各々、(a)エンティティのものとは異なる、および(b)互いに異なる、のうちの一方または両方である術語を求職者の申込書内で使用することができる。正規化器115は、求人における仕事要件と求職者のスキルを比較する手段である共通の術語を見つけることにより、これらのデータの一貫した解析を可能にする。
【0034】
いくつかの実施形態では、正規化器115は、入力データ項目から特徴ベクトルを生成する訓練済みMLモデルを含むことができる。テキスト文書の場合、訓練済みMLモデルは、テキストベースの電子文書および/またはファイルからベクトルを生成する「doc-to-vec」モデルとすることができる。いくつかの例では、事前に訓練される市販のdoc-to-vecモデルが採用され得る(例えば、ORACLE(登録商標)TALEO(登録商標))。
【0035】
入力データ項目が特徴ベクトルとして表されると、正規化器115は、データ項目の主題に対応する標準用語のライブラリを識別することができる。例えば、システムは、入力データ項目に対応する1つまたは複数の特徴ベクトルと標準術語ライブラリの部分との間のコサイン類似度関数を用いて比較を実行することができる。例えば、システム100は、1つまたは複数の標準用語/標準タクソノミーライブラリ(例えば、データリポジトリ122内のライブラリ124)を含むデータ記憶装置と通信することができる。いくつかの例では、これらの主題ライブラリは各々、特徴ベクトルとして表されると、最も類似するライブラリを選択するためにシステムによって入力データベクトルと効率的に比較され得る要約または概要を有することができる。特定の一例示では、人材アプリケーションに適用可能な標準ライブラリ(タレント取得、人的資本管理)がONET(登録商標)によって生成され、ONET(登録商標)標準職業分類(SOC(登録商標))システムと呼ばれることがある。この特定の標準ライブラリは、約16000の様々な職業名を含む。様々な主題フィールドに適用可能な類似標準ライブラリが存在し、特定のアプリケーションに応じて使用され得る。
【0036】
標準用語を含む主題ライブラリを識別すると、次いで、システムは、対象データ項目内の術語を識別し、次いでその術語に対応する標準用語を識別することにより、対象データ項目内の術語を「正規化する」ことができる。次いで、システムは、対象データ項目内に存在する口語的術語が標準用語ライブラリからの対応する用語に置き換えられる、対象データ項目の「正規化」バージョンを生成することができる。この正規化プロセスの詳細は、図2の文脈で以下に記述される。
【0037】
システムが標準術語を使用してデータ項目のベクトル表現を生成すると、システム100の解析論理114は、MLパイプライン116内の1つまたは複数の訓練済み機械学習アルゴリズムを用いてデータ項目を処理し続ける。
【0038】
MLパイプライン116は、1つまたは複数の訓練済み機械学習モデルが前段の訓練済み機械学習モデルの出力を処理し、それによってデータ項目に順次処理ステップを施すように配置され得る。いくつかの例では、MLパイプライン116は、データ項目または前の機械学習項目の出力を直列に処理するか、並列に処理するか、またはこれらを組み合わせて処理する複数の訓練済み機械学習モデルを含むことができる。以下に記述されるいくつかの実施形態では、「投票」動作は、データ項目の同じバージョンで動作し、異なる解析を出力することができる並列機械学習モデル処理の出力から選択することができる。
【0039】
いくつかの例では、MLパイプライン116は、教師あり機械学習アルゴリズムおよび教師なし機械学習アルゴリズムのうちの一方または両方を含むことができる。種々の例では、これらの異なる種類の機械学習アルゴリズは、直列に(例えば、1つのモデルが前段のモデルの出力をさらに処理する)、並列に(例えば、2つ以上の異なるモデルが前段のモデルの出力をさらに処理する)、またはその両方で配置され得る。上述したように、並列処理構成の場合、MLパイプライン116は、パイプライン内の並列分岐の出力から選択する手段である基準を含むことができる。いくつかの例では、MLパイプライン116のセグメントの選択された出力が、追加の直列または並列のMLモデル構成によってさらに処理され得る。他の例では、MLパイプライン116のセグメントの選択された出力が、解析的結論(例えば、予測、推薦、予測カテゴリ)をもたらすために使用され得る。
【0040】
MLパイプラインを使用してデータ項目セット内の以前に識別されなかった追加のカテゴリを識別する方法の方法例が、図2図4の文脈で記述される。
【0041】
フロントエンドインターフェース118は、クライアント102A、102BとMLアプリケーション104との間の対話を管理する。1つまたは複数の実施形態では、フロントエンドインターフェース118は、ユーザとクライアント102A、102Bおよび/または機械学習アプリケーション104との間の通信を容易にするように構成されたハードウェアおよび/またはソフトウェアを指す。いくつかの実施形態では、フロントエンドインターフェース118は、多層アプリケーション内のプレゼンテーション層である。フロントエンドインターフェース118は、クライアントから受信した要求を処理し、他のアプリケーション層からの結果をクライアントによって理解または処理され得るフォーマットに変換することができる。
【0042】
例えば、クライアント102A、102Bのうちの一方または両方は、要求をフロントエンドインターフェース118経由でMLアプリケーション104に提出して、例えば、訓練データにラベルを付ける、かつ/または対象データを解析するための種々の機能を実行することができる。いくつかの例では、クライアント102A、102Bのうちの一方または両方は、要求をフロントエンドインターフェース118経由でMLアプリケーション104に提出して、1つまたは複数のプレイリストに照らして対象データ項目の解析に関係しているグラフィックユーザインターフェースを見ることができる。さらに他の例では、フロントエンドインターフェース118は、個々のインターフェース要素を再び順序付けるユーザ入力を受信することができる。
【0043】
フロントエンドインターフェース118は、ユーザインターフェース要素をレンダリングし、入力をユーザインターフェース要素経由で受信するように構成され得るハードウェアおよび/またはソフトウェアを指す。例えば、フロントエンドインターフェース118は、ウェブページおよび/または他のグラフィカルユーザインターフェース(GUI)オブジェクトを生成することができる。ウェブブラウザなどのクライアントアプリケーションは、インターネットプロトコル(IP)スイートのプロトコルに従って対話型ディスプレイにアクセスし、対話型ディスプレイをレンダリングすることができる。追加的または代替的に、フロントエンドインターフェース118は、ユーザとアプリケーションとの間の通信を容易にするように構成されたハードウェアおよび/またはソフトウェアを備える他の種類のユーザインターフェースを提供することができる。インターフェースの例は、以下に限定するものではないが、GUI、ウェブインターフェース、コマンドラインインターフェース(CLI)、触覚インターフェース、および音声命令インターフェースを含む。ユーザインターフェース要素の例は、以下に限定するものではないが、チェックボックス、ラジオボタン、ドロップダウンリスト、リストボックス、ボタン、トグル、テキストフィールド、日時セレクタ、コマンドライン、スライダ、ページ、およびフォームを含む。
【0044】
一実施形態では、フロントエンドインターフェース118の様々な構成要素は様々な言語で規定される。ユーザインターフェース要素の挙動は、JavaScript(登録商標)などのダイナミックプログラミング言語で規定される。ユーザインターフェース要素のコンテンツは、ハイパーテキストマークアップ言語(HTML)やXMLユーザインターフェース言語(XUL)などのマークアップ言語で規定される。ユーザインターフェース要素のレイアウトは、カスケーディングスタイルシート(CSS)などのスタイルシート言語で規定される。あるいは、フロントエンドインターフェース118は、1つまたは複数の他の言語、例えば、Java(登録商標)、C、C++で規定される。
【0045】
アクションインターフェース120は、アクションを実行する関数を呼び出すためのAPI、CLI、または他のインターフェースを含むことができる。これらの関数のうちの1つまたは複数が、機械学習アプリケーション104の外部にあり得るクラウドサービスまたは他のアプリケーションによって提供され得る。例えば、機械学習アプリケーション104の1つまたは複数の構成要素が、機械学習エンジン104用の訓練コーパスとして用いるデータリポジトリ122に保存された情報にアクセスするためにAPIを呼び出すことができる。実行されるアクションは実装によって異なり得ることが理解されよう。
【0046】
いくつかの実施形態では、機械学習アプリケーション104は、クラウドサービスなどの外部リソース126にアクセスすることができる。クラウドサービスの例は、以下に限定するものではないが、ソーシャルメディアプラットフォーム、電子メールサービス、ショートメッセージサービス、企業管理システム、およびその他のクラウドアプリケーションを含むことができる。アクションインターフェース120は、クラウドサービスを呼び出すためのAPI終点として働くことができる。例えば、アクションインターフェース120は、外部リソースによって摂取可能なプロトコルに従うアウトバウンド要求を生成することができる。
【0047】
コンピュータネットワークに関連する追加の実施形態および/または例が、「コンピュータネットワークおよびクラウドネットワーク」という名称のセクション6で以下に記述される。
【0048】
アクションインターフェース120は、機械学習アプリケーション104の他の構成要素によるさらなる処理を可能にするために、インバウンド要求を処理し変換することができる。アクションインターフェース120は、外部リソースにアクセスするための認証情報を保存し、交渉し、かつ/またはその他の方法で管理することができる。認証情報の例は、以下に限定するものではないが、デジタル証明書、暗号化キー、ユーザ名、およびパスワードを含むことができる。アクションインターフェース120は、外部リソースによって提供される関数を呼び出す要求に認証情報を含むことができる。
【0049】
1つまたは複数の実施形態では、データリポジトリ122は、データを保存するための任意の種類の記憶ユニットおよび/または装置(例えば、ファイルシステム、データベース、表の集合体、または任意の他の記憶機構)である。さらに、データリポジトリ122は、多くの様々な記憶ユニットおよび/または装置を含むことができる。多くの様々な記憶ユニットおよび/または装置は、同じ種類であってもよく、そうでなくてもよく、または同じ物理的サイトに配置されていてもよく、そうでなくてもよい。さらに、データリポジトリ122は、MLアプリケーション104と同じコンピューティングシステム上に実装されてもよく、または同じコンピューティングシステム上で実行されてもよい。代替的または追加的に、データリポジトリ122は、MLアプリケーション104から分離したコンピューティングシステム上に実装されてもよく、またはコンピューティングシステム上で実行されてもよい。データリポジトリ122は、直接接続によりまたはネットワークを介してMLアプリケーション104に通信可能に結合され得る。
【0050】
図1に示されている実施形態では、データリポジトリ122は、標準用語/タクソノミーライブラリ124を含む。上述したように、標準用語/タクソノミーライブラリ124は、システム100が任意のソース(さらには複数の様々なソース)からの口語的用語を単一の「標準」用語に関連付けることを可能にする。多様な口語的用語から単一用語へのこうした変換は、システムが、データ項目を、データ項目が使用している用語にかかわらず直接比較して、標準用語/タクソノミーライブラリ124内の対応する用語によって取り込まれる態様を記述することを可能にする。
【0051】
対象データ項目および訓練データに関係している情報は、システム100内の構成要素のいずれかを横切って実装され得る。しかしながら、この情報は、明瞭にしかつ説明するためにデータリポジトリ122に保存され得る。
【0052】
一実施形態では、システム100は、1つまた複数のデジタル装置上に実装される。「デジタル装置」という用語は、一般に、プロセッサを含む任意のハードウェア装置を指す。デジタル装置は、アプリケーションまたは仮想マシンを実行する物理的装置を指すことができる。デジタル装置の例としては、コンピュータ、タブレット、ラップトップ、デスクトップ、ネットブック、サーバ、ウェブサーバ、ネットワークポリシーサーバ、プロキシサーバ、汎用マシン、特定機能のハードウェア装置、ハードウェアルータ、ハードウェアスイッチ、ハードウェアファイアウォール、ハードウェアファイアウォール、ハードウェアネットワークアドレス変換器(NAT)、ハードウェアロードバランサ、メインフレーム、テレビ、コンテンツ受信機、セットトップボックス、プリンタ、携帯電話機、スマートフォン、携帯情報端末(「PDA」)、無線受信機および/または送信機、基地局、通信管理装置、ルータ、スイッチ、コントローラ、アクセスポイント、および/またはクライアント装置が含まれる。
【0053】
3.MLパイプラインを使用して階層的カテゴリを識別する
図2は、1つまたは複数の実施形態による、後続の階層的分類解析用のデータを準備するための方法200とまとめて呼ばれる動作のセットの例を示す。方法200は、口語的もしくは特異的属性(例えば、属性名、属性値)または特定のエンティティによって同等の属性に使用される他の記述をマッピングするために、データ項目に随意に適用され得る。特異な属性から「標準」属性へのこの属性の変換は、後続の方法(例えば方法300および方法400)に使用されるMLモデルが、使用される属性名にかかわらず他のエンティティまたはデータソースからプールされたより大きなデータセットを使用して訓練されることを随意に可能にする。それにより、より大きな訓練データセットはモデルの正確度を向上させることになる。方法200を使用すると、対象データ項目のより正確で一貫した解析も可能になる。
【0054】
図2に示されている1つまたは複数の動作は、全部まとめて変更、再配置、または省略され得る。したがって、図2に示されている特定の一連の動作は、1つまたは複数の実施形態の範囲を限定するものと解釈されるべきでない。方法200は対象データ項目の文脈で(解析方法200および方法300への予備ステップとして)提示されているが、方法200は訓練データに同等に適用され得ることが理解されよう。
【0055】
方法200は、エンティティ固有の術語を使用する1つまたは複数の対象データ項目を受信することから始まり得る(動作204)。エンティティ固有の術語の例としては、データ項目ラベル、データ項目記述、属性名、または属性値に使用される術語が含まれる。他の例では、エンティティ固有の術語は電子文書コンテンツを含むことができる。
【0056】
特定の例示では、組織が、いくつかの職務および所要のスキルを列挙する求人を生成することができる。職業名、職務、関連部門における他の職務権限との対話、最低限必要な資格、および所要スキルを記述するためにエンティティによって使用される自然言語は、その特定のエンティティに固有(例えば、特異)であり得る。求職内のエンティティによって使用される単語およびフレーズのうちの任意の1つまたは複数が、他のエンティティによって使用されるものおよび/またはより一般的に使用される術語(例えば「業界標準」)とは異なることがある。
【0057】
さらに、この例では、求人に応募する多くの求職者は各々、異なる術語を使用することがある。これは、その職の候補者を識別するという課題を複雑にし、というのも、何十、何百、または何千もの求職者がそれに応じて術語の何十、何百、または何千もの様々な順列を使用する可能性があり、求人を提供するエンティティによって使用される術語に直接適用できる順列はほとんどないか全くないからである。理解されるように、この特定の例示において、方法200は、データのすべてのソースが一貫性のあるかつ好都合に比較される術語を使用するように、求人自体と求職者からの申込書データの両方に適用することができる。
【0058】
対象データ項目が受信されると、システムは、用語を正規化するためのライブラリにアクセスすることができる(動作208)。ライブラリは、業界標準術語のライブラリであり得る。いくつかの例では、術語ライブラリは、学術機関、職能団体、または産業業界団体によって公開され得る。動作204において導入された求人の具体的な例示を続けると、公有職業名ライブラリが、種々の人材職業集団、学術機関、および会社によって生成される。
【0059】
ソースまたは主題にかかわらず、システムは、そのようなライブラリに、対象データ項目と関連付けられた対象項目コンテンツ術語(例えば、フリーテキスト)、属性名および/または属性値を均一に「正規化された」等価物に変換する前身としてアクセスすることができる。
【0060】
次いで、システムは、対象データ項目に使用されるエンティティ固有の用語に対応するライブラリ内の正規化用語(例えば、属性名、属性値、コンテンツ)を識別することができる(動作212)。いくつかの例では、ライブラリは、動作224の文脈で後述するように、対象データとの比較を容易にするためにベクトル形式で表すことができる。動作212は、一例では3つの動作を含むことができる。
【0061】
システムは、対象データ項目内のエンティティ固有の用語を随意に識別することができる(動作216)。これは、対象データ項目内の用語および/または属性対ライブラリ用語のベクトル表現に対するコサイン類似度解析を実行するために訓練済みMLモデルを使用して達成され得る。
【0062】
システムは、対象データ項目の特徴ベクトルを生成することができる(動作220)。一例では、特徴ベクトルは、動作216で随意に識別される識別済みエンティティ固有の用語のいずれかから生成され得る。別の例では、システムは、対象データ項目内の個々の用語および/または用語の順列に基づいて特徴ベクトルを生成することができる。一例では、システムは、特徴ベクトルを生成するために「doc-to-vec」訓練済み機械学習モデルを使用する。一例示では、システムは、「Taleo」(登録商標)などの事前に訓練されたdoc-to-vec訓練済み機械学習モデルを使用することができる。
【0063】
システムは、市販のまたは公開されている訓練データセットを使用してdoc-to-vec機械学習モデルを訓練し、エンティティに固有の訓練データおよび/または最終的に解析される主題を使用することによって訓練を随意に補うことができる。例えば、システムは、ジェネリック(すなわち、非主題固有の)訓練データセットおよび/または主題に固有である市販のもしくは公開されている訓練データセット(例えば、人材、物理科学、金融)を使用してdoc-to-vecを訓練することができる。一例では、特定のエンティティのための対象データ項目に適用されるモデルの正確度を向上させるために、エンティティによって使用される用語に固有である補足的訓練データセットが、ジェネリック訓練データセットを補うために使用される。別の例では、補足的訓練データセットは、エンティティに固有である特定の主題フィールドに固有のもの(例えば、人材、金融業でエンティティによって使用される用語)であってもよい。
【0064】
いくつかの例では、データ項目は、対象データ項目内のほとんどの単語および/またはフレーズのトークンを含むベクトルとして、あるいはその各々が単語およびフレーズ(例えば、2つ以上の単語のグループ)に対応しているベクトルのセットとして表すことができる。いくつかの例では、フレーズベクトルおよび/またはトークンは、対象データ項目内の単語の任意の数の順列を含むことができる。いくつかの例では、単語の順列は、システムが思考の分離を示すスピーチまたはフォーマッティングの各部分を認識することによって範囲を定められ得るものである。例えば、「および(and)」や「または(or)」などの移行語、および、セミコロン、ピリオド、行頭文字などのフォーマッティングは、これらの特徴によって分離された単語がトークンまたはベクトルに合成されるのを妨げることができる。これにより、システムによって実行される比較の数を減少させ、それによって、システムの解析効率全体を実質的コンテンツを除去することなく向上させることができる。いくつかの例では、システムは、書面または口頭でのコミュニケーションに有用であるが、上述したような特徴ベクトル解析を実行する際には有用でないことがあるスピーチの定冠詞、不定冠詞、および他の部分を省略することができる。
【0065】
システムは、動作224において、ライブラリ内の正規化用語のベクトル表現と対象データ項目内のエンティティ固有の用語のベクトル表現とを比較することができる。動作224は、エンティティ固有の用語と、その用語の、正規化用語のライブラリ内の対応する類語と、を識別することができる。いくつかの例では、これは、システムがコサイン類似度解析を適用すると達成され得る。システムは、コサイン解析によって生成された値が閾値を上回る(例えば、0.5超、0.75超、0.8超)ときに対象データおよびライブラリ内の用語を類似していると識別することができる。他の例では、システムは、類似用語を識別するためにK最近傍訓練済み機械学習モデルを適用することができる。使用される比較アルゴリズムにかかわらず、システムは、口語的術語(単語/フレーズ)が標準用語ライブラリからの術語に置き換えられる、データ項目を表すベクトルのバージョンを生成することができる。
【0066】
対象データとライブラリとの間の類似用語を識別すると、システムは、エンティティ固有の用語と正規化用語との間のマッピングを生成する(動作228)。「マッピング」という用語が使用されるが、これは、単に、異なるが類似している用語間の対応の基準または他の指示を指すことが理解されよう。
【0067】
次いで、システムは、マッピングを対象データ項目に適用し、それによってエンティティ固有の用語を正規化用語に変換することができる(動作232)。システムは、特徴値がエンティティ固有の用語の代わりに正規化用語に対応していることを除いて、対象データ項目を表す特徴ベクトルのバージョンを生成することができる。
【0068】
方法200(すべての状況で必ずしも必要ではない場合がある)を完了すると、次いで、システムは方法300を実行することができ、方法300の動作は図3に示されている。図3に示されている1つまたは複数の動作は、全部まとめて変更、再配置、または省略され得る。したがって、図3に示されている特定の一連の動作は、1つまたは複数の実施形態の範囲を限定するものと解釈されるべきでない。
【0069】
方法300を適用すると、システムは、1つまたは複数の(正規化された)対象データ項目内の階層的カテゴリを決定するか、または別の方法で識別することができる。いくつかの例では、システムは、方法300を用いて、1つまたは複数の対象データ項目によって提示される新たな階層的カテゴリを、そうしたカテゴリがまだ既存の階層の一部ではないときでも識別することができる。種々の例では、方法300を適用すると、リーフノードレベル(すなわち「第1」のレベル)にあるか、リーフノードレベルへの直接親レベル(すなわち、第1のレベルより「上の」(すなわち、さらに一般的な)「第2」のレベル)にあるか、さらに高いレベルにあるか、のいずれかの階層レベルにあるカテゴリのいずれか1つまたは複数を識別することができる。
【0070】
方法300は、解析のために対象データ項目を受信することを含む(動作302)。対象データ項目の例としては、任意の数の形式の電子文書が含まれる。システムに適応するデータタイプの多様性の一例示では、これらの様々な形式の例としては、非構造化データ(動作304)または構造化データ(動作306)が含まれる。非構造化データ304の例としては、許容されている単語、値、フォーマット、シンタックス、および/または句読点に対する制約がほとんどない、フリーテキストを含むデータ項目が含まれる。システムが採用できるフリーテキスト解析の特定の種類は、いわゆる「bag of words」または、Pythonプログラミング言語で使用される場合は「blob of words」を含む。システムが非構造化テキストを処理する能力は、例えば、個々のソースから切り離して生成された文書またはデータ項目を受信するときに、特に有用である。求人の例示を続けると、システムは、異なる術語だけでなく異なるフォーマットや異なる文書編成スキームなども使用して、求職者の経験を記述する非構造化のテキストベースの履歴書を処理することができる。既述のように、これらの非構造化データ項目は、非構造化ウェブもしくはコンピューティングアプリケーションフォーム、電子メール、ソーシャルメディアポスト、SMSもしくはMMSテキストメッセージ、テキスト編集文書などによって提出され得る。
【0071】
構造化データ(動作306)の例としては、構造化ウェブもしくはコンピューティングアプリケーションフォームやPDF(登録商標)「入力可能な」フォームなどによって提出されるデータが含まれる。いくつかの例では、システムは、フィールド名による構造化データ項目および/または構造化データ項目メタデータ内のフィールドを識別することができる。これらの識別特徴は、個々にまたは別々に、各フィールドに対する期待値や適用されるべきML処理の種類などに関してシステムに指示することができる。
【0072】
対象データ項目が受信される形式にかかわらず、システムは、方法200を使用して対象データ項目を「正規化」形式に処理することができる。システムは、システムによる追加の解析を容易にするために対象データ項目をベクトル表現に変換することができる。システムは、データ項目を対応する特徴ベクトルに変換する前に、変換する間に、または変換した後で、方法200による正規化変換プロセスを実行することができる。
【0073】
方法300は、1つまたは複数の対象データ項目を漸進的に解析するために、システムが使用する1つまたは複数の機械学習(ML)モデルを訓練することを含む(動作308)。図3の例では、システムは3つの機械学習モデルを採用しているが、任意の数の1つまたは複数の訓練済み機械学習モデルが、本開示に従ってデータ項目を処理するために使用され得る。
【0074】
いくつかの例では、第1の訓練済みMLモデル(動作312)は、対象データ項目のテキストだけに基づいてカテゴリを識別するように訓練された訓練済み機械学習モデルを含むことができる。いくつかの例では、第1の訓練済みMLモデルは、狭いが確認済みの正確なホワイトリスト内に存在するものよりも、対象データ項目内のより広い潜在的カテゴリセットを識別するように構成される。ホワイトリストは、動作324の文脈で以下に記述される。このようにして、第1の訓練済みMLモデルは、ホワイトリストに存在しない1つまたは複数の対象データ項目内の新しいカテゴリを検出することができる。
【0075】
いくつかの例では、第1の訓練済みMLモデルは、「固有表現認識器」またはNER訓練済みMLモデルであり得る。いくつかの例では、システムは任意の種類のNERモデルを実行し、その一例がスタンフォードNERモデルである。NERモデルは、文書内の個々の単語およびフレーズ(すなわち、単語の順列)を解析する。NERモデルは、その訓練に基づいて、個々の単語および/またはフレーズ(または他の検出可能な属性)のいずれかが対応するカテゴリと関連付けられるかどうかを決定することができる。いくつかの例では、第1の訓練済みMLモデルは、手入力で選択されラベル付けされたカテゴリのリストまたは手入力で選択されラベル付けされたデータ項目を使用して訓練され得る。他の例では、NERモデルは、NERモデルにカテゴリおよびコンテキストデータを提供する訓練済みニューラルネットワークを使用して訓練され得る。
【0076】
いくつかの例では、第2の訓練済みMLモデルは分類子モデルである(動作314)。他の例では、第2の訓練済みMLモデルは、ニューラルネットワークまたは「深層学習」モデルである。いずれの場合も、第2の訓練済みMLモデルは、対象データ項目内のデータ項目属性、個々のトークンおよび/またはトークンの順列(例えば、doc-to-vecモデルによって単語/テキストから生成される)と関連付けられたカテゴリおよび親カテゴリを識別するように訓練される。モデルの種類にかかわらず、第2の訓練済みMLモデルは、第1の訓練済みMLモデルから受信した出力を解析し、それ自体の分類解析を使用して、第1の訓練済みMLモデルによって識別されたカテゴリが正しく識別されているかどうかを決定する。
【0077】
第2の訓練済みMLモデルは、教師あり学習技術を使用して訓練され得る。例えば、第2の訓練済みMLモデルは、手入力でラベル付けされたデータ、すなわち、単語およびフレーズが親カテゴリでラベル付けすることによりカテゴリとして示されているようなデータ項目を使用して訓練され得る。例えば、ホワイトリスト(以下に記述される)は、ホワイトリストの識別済みカテゴリおよび親カテゴリラベルとともに、第2の訓練済みMLモデルを訓練してデータ項目属性とカテゴリとの間の正しい関連性を識別するために使用され得る。同様に、ホワイトリストを生成するために使用されるが、カテゴリと関連付けられていない属性は、そうした属性と関連付けられたカテゴリがないことを示すためにラベル付けされ得る。これは、第2のMLモデルに否定的な訓練例を提供する。他の例では、上述したものと同様に、第2の訓練済みMLモデルは、カテゴリを識別するように訓練されたニューラルネットワークを使用して訓練され得る。
【0078】
いくつかの例では、第3の訓練済みMLモデル(動作316)は、クラスタリングモデルなどの教師なし機械学習モデルである。一実施形態では、第3の訓練済みMLモデルは、K平均クラスタリングモデルであり得る。一実施形態では、第3の訓練済みMLモデルは、ホワイトリストを使用して訓練され得る(以下に記述される)。第3の訓練済みMLモデルは、ホワイトリストデータを使用して、既知の正しいカテゴリを表すベクトルのクラスタを生成することができる。他の実施形態では、第3の訓練済みMLモデルは、ラベルなし訓練データを使用して、カテゴリを表す複数のクラスタを生成することができる。いくつかの例では、第3の訓練済みMLモデルは、コサイン類似度、K平均法、またはK最近傍アルゴリズムのうちの任意の1つまたは複数を使用して、訓練データ内のクラスタを識別することができる。
【0079】
訓練済みMLモデルのいずれかを適用する前に、システムは、既知の正しいカテゴリおよびそれに付随する属性の「ホワイトリスト」を参照することにより対象データ項目と関連付けられたカテゴリを識別する(動作324)。ホワイトリストは、有効であると分かっているカテゴリを表すベクトルのリストを含むことができる。いくつかの例では、ホワイトリストは、付随する属性(例えば、単語/フレーズ、他の属性、および/またはそれらのトークン)も含むことができる。しかしながら、本開示に照らして理解されるように、ホワイトリストは、1つまたは複数のデータ項目内に実際に存在するすべての正しいカテゴリを含んでいなくてもよい。方法300(および方法400)の以下の動作は、データ内に存在するがホワイトリスト上に反映されていない追加のカテゴリを識別するように構成される。さらに、方法300(および方法400)は、誤りのあるまたは正しくないカテゴリがデータから予測されるという可能性を低減することにより識別済みカテゴリの完全性を保つ動作も含む。
【0080】
いくつかの例では、カテゴリのホワイトリストは、エンティティまたは主題フィールドに固有であり得る。いくつかの例では、ホワイトリストは、手入力で準備されるか、または第三者エンティティ(例えば、産業業界団体、職能団体、学術機関、企業体)からアクセスされる訓練済み機械学習モデル解析(例えば、doc-to-vec、ニューラルネットワーク)によって生成され得る。上述したように、ホワイトリストは、ホワイトリスト上にあるべきカテゴリを不適切に除外し得る、正しいと分かっているカテゴリを含む。
【0081】
一例では、ホワイトリストは、データ項目のデータセットを解析し、データセットの各データ項目内の各カテゴリにラベル付けすることによって生成され得る。いくつかの例では、カテゴリラベルは、属性値(または特徴ベクトルトークン)がカテゴリであるかカテゴリでないかを示す2進数である。上述したように、一例では、カテゴリラベルは、データ項目内の単語および/または属性の対応する順列を表す個々のトークンおよび/または個々の特徴ベクトルに適用され得る。
【0082】
他の例では、カテゴリラベルは、2進数ではなく、代わりに、識別済みカテゴリを付随するより一般的な親(または第2のレベル)カテゴリでラベル付けする。ホワイトリスト上に含まれるべき、データ項目において識別された子(同等にリーフまたは第1)レベルカテゴリを対応する第2のレベルカテゴリでラベル付けすることには、階層情報をラベル自体によって識別済み第1のレベルカテゴリと関連付けるという利点がある。このプロセスは、訓練文書において第1のレベルカテゴリが識別されるごとに繰り返すことができる。これは、訓練文書全体を単一ラベルでラベル付けするのとは異なる。識別済み第1のレベルカテゴリおよびそれらのラベルは、訓練データから抽出され、ホワイトリストをまとめて形成するようにコンパイルされる。
【0083】
例えば、求人の例示に続けると、識別済み第1のレベルカテゴリは、「雇用マネージャ」のジョブスキルとして識別され得る。第1のレベルカテゴリおよび対応する第2のレベルカテゴリを識別するために使用される訓練文書の例としては、エンティティによって使用される参考書類(例えば、産業業界団体によって市販または提供されている)、機械学習訓練目的で使用される履歴書のセット、エンティティ固有のジョブスキルリストまたはジョブスキルリストのセットなどが含まれ得る。第1のレベルカテゴリ(ジョブスキル)と関連付けられたラベルは、「人事オペレーション」(組織機能)の第2のレベルカテゴリを示すことができる。データラベルにおける「雇用マネージャ」と「人事オペレーション」とのこの関連付けは、システムに階層情報を提供する。さらに、訓練文書(例えば、履歴書、ジョブ要件リスト)は、多くのスキルを含むことができ、スキルの各々はラベル付けされる。例えば、種々のコンピュータプログラムにおける熟練度を含む同じ訓練文書は、第1のレベルカテゴリとして識別され、対応する第2のレベルカテゴリ(「コンピュータスキル」)でラベル付けされ得る。同様に、同じ訓練文書は経理を含むことができ、システムは、経理を第1のレベルカテゴリとして識別し、経理に対応する第2のレベルカテゴリ(「金融業」)でラベル付けする。
【0084】
システムは、第1の訓練済み機械学習モデルを、対象データ項目の階層的分類を予測するプロセスの一部として適用することができる(動作328)。一例では、第1の訓練済みMLモデルは、対象データ項目内の単語、フレーズ、および/または単語の順列(またはより正確には、それらの対応する特徴ベクトル/トークン)などの属性をカテゴリと関連付けることによりカテゴリを識別することができる。これらの属性および属性の順列は、属性および/または順列がカテゴリと関連付けられるかどうかを決定するために解析される。
【0085】
いくつかの例では、NERモデル出力は、識別済みカテゴリ、カテゴリに付随する親カテゴリラベル、およびカテゴリが識別されるデータ項目のコンテキストの部分である。候補カテゴリを検出し、カテゴリと候補カテゴリが検出されたデータ項目のコンテキストとを後続のモデルに渡すことにより、後続の解析の全体の正確度を向上させることができる。
【0086】
第1の訓練済みMLモデル、特にNERモデルを用いた手法は、第1の訓練済みMLモデルに「フォールスポジティブ」カテゴリ識別を生成させることができる。すなわち、第1の訓練済みMLモデルは、1つまたは複数のデータ項目内の態様をカテゴリとして誤って識別し得るが、この態様はカテゴリではない。カテゴリの不適切な識別は、これが正しくない階層的分類を生成するので、運用上問題がある。エラーが階層的分類に導入されると、エラーは、より多くのデータ項目が解析されるので、経時的に拡大し得る。これは、時間のかかる人手による修正の原因となり得る。システムが正しくないカテゴリを識別するという可能性を防止または低減するには、第1の訓練済みMLモデルの解析出力は、第2の訓練済みMLモデルと第3の訓練済みMLモデルとの集団的動作によりこれらの「フォールスポジティブ」カテゴリを除去するために続いて処理され得る。これらの動作は以下に記述される。
【0087】
第2の訓練済みMLモデル(動作314)および第3の訓練済みMLモデル(動作316)は、第1の訓練済みMLモデルによって識別された候補カテゴリがフォールスポジティブであるか、正しい結果であるかを一緒に決定することができる。システムは、第1の訓練済みMLモデル(動作328)からの結果を、動作332での第2の訓練済みMLモデルと動作336での第3の訓練済みMLモデルの両方で解析する。
【0088】
一例では、システムは、第2の訓練済みMLモデルを第1の訓練済みMLモデルの出力に適用し、出力は、カテゴリ、親カテゴリラベル、および対応するコンテキストを含むことができる(動作332)。システムは、第2の訓練済みMLモデルの解析を使用して、第1のMLモデルの正確度を部分的に決定することができる。
【0089】
いくつかの例では、第2の訓練済みMLモデルは、第1の訓練済みMLモデルによって以前に解析された対象データ項目を受信し、カテゴリおよび親カテゴリに従って単語および/またはフレーズ(例えば、単語の順列)を分類する。いくつかの例では、第2の訓練済みMLモデルは、文脈に名詞的単語を配置する方法として単語のフレーズを解析し、それによって特定の属性(例えば、単語またはフレーズ)に付随する意味および/または重要性をさらに良く決定する。いくつかの例では、第2の訓練済みMLモデルは、上述したように、実質的コンテンツと関連付けられる見込みのない、スピーチの特定の単語および/または部分を省略することにより、このモデルの計算効率を上げることができる。
【0090】
いくつかの実施形態では、第2の訓練済みMLモデルは、カテゴリがそのモデルの訓練に基づいて親カテゴリと適切に関連付けられているかどうかを決定する。例えば、第2の訓練済みMLモデルは、このモデルの分類子ベースのアルゴリズムを使用して、データ項目属性に基づいてデータ項目の階層的分類を決定することができる。識別されたカテゴリおよび親カテゴリが互いに一致する場合、第2の訓練済みMLモデルは、カテゴリおよび親カテゴリに、カテゴリが正しいこと(すなわち「1」)を示すラベルを付ける。追加的または代替的に、第2のMLモデルは、第2のMLモデルによって生成された階層的分類が第1のMLモデルによって生成されたものと一致するかどうかを決定することができる。この結果は、一致を示すラベルも生成する。識別されたカテゴリおよび親カテゴリが互いに一致しないか、または第1の訓練済みMLモデルの結果と一致しない場合、第2の訓練済みMLモデルは、カテゴリおよび親に、カテゴリが正しくないこと(すなわち「0」)を示すラベルを付ける。
【0091】
次いで、関連するカテゴリ/親カテゴリデータのこれらの解析結果は、以下に記述される、第3の訓練済みMLモデルの結果と組み合わせて解析するために、MLパイプラインの後続の段階に渡され得る。
【0092】
システムは、第3の訓練済みMLモデルを適用することができる(動作336)。第3の訓練済みMLモデルがクラスタリングモデルである実施形態の場合、モデルは、各クラスタの重心を識別し、各クラスタを定義する1つまたは複数の次元の変動(またはノイズ)値を計算することができる。いくつかの実施形態では、モデルは、各クラスタの変動値を定量化するためにシルエット係数を使用してクラスタ変動性を計算する。
【0093】
次いで、第3の訓練済みMLモデルは、いくつかの例では、第1の訓練済みMLモデルによって生成されたカテゴリのベクトル表現を1つまたは複数のクラスタに関連付けることにより、第1の訓練済みMLモデルの出力を評価することができる。割り振られると、第3の訓練済みMLモデルは、新たに付加されたベクトルを有するクラスタのシルエット係数を計算する。シルエット係数が第1の訓練済みMLモデルの出力ベクトルの付加時に増大するか、そうでなければ閾値を上回り、それによってクラスタ変動性の増大を示す場合、システムは、出力ベクトルがそのクラスタと関連付けられるべきでないと決定する。しかしながら、シルエット係数が第1の訓練済みMLモデルの出力ベクトルの付加時に減少するか、そうでなければ閾値未満であり、それによってクラスタ変動性の減少を示す場合、システムは、出力ベクトルがそのクラスタと適切に関連付けられていると決定する。このようにして、第3の訓練済みMLモデルは、カテゴリが以前に識別されたカテゴリ(例えば、ホワイトリスト上)ではない場合でも第1の訓練済みMLモデルによって識別されたカテゴリに対する親カテゴリの関連性(すなわち、階層的分類)を独立して決定する。このプロセスは、第1の訓練済みMLモデルの各出力ベクトルに対して各クラスタで反復され得る。
【0094】
他の例では、第3の訓練済みMLモデルは、新たに付加されたベクトルがクラスタ内のデータ項目を表すベクトルと適切に関連付けられているかどうかを決定するために、コサイン類似度解析を実行することができる。ベクトルを比較するコサイン値が閾値を上回る場合、新たに付加されたベクトル(データ項目を表す)はクラスタと適切に関連付けられる。ベクトルを比較するコサイン値が閾値未満である場合、新たに付加されたベクトル(データ項目を表す)はクラスタと適切には関連付けられない。
【0095】
次いで、システムは、第1の訓練済みMLモデルによって識別され、第2の訓練済みMLモデルおよび第3の訓練済みMLモデルによって別々に解析されたカテゴリのうちの1つまたは複数が潜在的に有効なカテゴリであるかどうかを決定する(動作340)。一例では、システムは、第1の訓練済みMLモデルによって識別された任意のカテゴリおよび対応する親カテゴリが、第2の訓練済みMLモデルと第3の訓練済みMLモデルの両方によって予測されているかどうかを検出する。このプロセスの同等の記述は、第2の訓練済みMLモデルと第3の訓練済みMLモデルの両方が、両モデル自体のそれぞれの解析に基づいて特定の予測済みカテゴリ(および予測済み親カテゴリ)に「投票する」ことである。一例では、第2の訓練済みMLモデルと第3の訓練済みMLモデルの両方が(a)同じカテゴリを識別しており、かつ(b)カテゴリを(例えば、コサイン類似度解析、クラスタリング解析、ニューラルネットワーク解析などにより)識別済み親カテゴリに適切に関係していると識別している場合、カテゴリおよび親カテゴリは潜在的に有効と識別される。
【0096】
第2の訓練済みMLモデルと第3の訓練済みMLモデルの両方が対象データ項目内の特定のカテゴリおよび対応する親カテゴリを予測する場合、システムは、予測を検証のために方法400に渡す(動作344)。
【0097】
いくつかの例では、カテゴリおよび対応する親カテゴリのホワイトリストは、第2の訓練済みMLモデルおよび第3の訓練済みMLモデルによって識別されたカテゴリおよび親カテゴリと組み合わされ得る。このオプションの組合せは、図3に、動作324および動作344を接続する破線矢印で示されている。
【0098】
しかしながら、第1の訓練済みMLモデルによって識別されたカテゴリが第2の訓練済みMLモデルと第3の訓練済みMLモデルの両方によって識別されない場合、カテゴリは拒否される(動作348)。拒否されたカテゴリは、検証のために方法400には渡されない。
【0099】
カテゴリを検証する
図4は、1つまたは複数実施形態による、分類の階層を新たに識別された正しいカテゴリで更新するのに備えて、方法300で識別されたカテゴリを検証するための、まとめて方法400と呼ばれる動作のセットの例を示す。図4に示されている1つまたは複数の動作は、全部まとめて変更、再配置、または省略され得る。したがって、図4に示されている一連の特定の動作は、1つまたは複数の実施形態の範囲を限定するものとして解釈されるべきでない。
【0100】
方法400は、方法300の結論時に生成される、カテゴリの複合セットを受信することから始まり得る(動作404)。上述したように、カテゴリの複合セットは、ホワイトリストからのカテゴリおよび対応する親カテゴリを、第2の訓練済みMLモデルと第3の訓練済みMLモデルの両方によって識別されたものとして含むことができる。カテゴリの複合セットは、上述したように、カテゴリを特徴ベクトルとして表すことができる。いくつかの実施形態では、カテゴリ特徴ベクトルは各々、そのベクトルが生成されたソースを(例えば、パラメータ値またはラベルにより)識別することができる。これらのソースは、ホワイトリスト、第1の訓練済みMLモデル、第2の訓練済みMLモデル、または第3の訓練済みMLモデルを含む。
【0101】
システムは、特定のカテゴリがホワイトリストから、または第2の訓練済みMLモデルと第3の訓練済みMLモデルとの複合解析によって生じているかどうかを決定する(動作408)。例えば、システムは、特定のカテゴリと関連付けられた特徴ベクトルを解析し、特徴ベクトルのソースを示す特徴ベクトル内のパラメータ値および/またはラベルを識別することができる。特徴ベクトルのソースがカテゴリのホワイトリストである場合、プロセスは動作424へ進み、そこでシステムはカテゴリおよび親カテゴリの最終セットを生成する。動作424の詳細は、以下でより詳細に記述される。
【0102】
動作408で、システムが、カテゴリのソースがホワイトリスト上にないと決定すると、システムは、2つの訓練済み機械学習モデルを使用してカテゴリを解析する。いくつかの実施形態では、これらのモデルの1つが分類子型の訓練済み機械学習モデルであり、これらのモデルの別の1つがクラスタリング訓練済み機械学習モデルである。
【0103】
訓練済み分類子MLモデルは、カテゴリが有効である可能性が高いかどうかを決定するためにカテゴリに適用され得る(動作412)。いくつかの例では、動作412で使用される分類子モデルは、上述したようにホワイトリストを使用して訓練され得る。いくつかの実施形態では、動作412で使用される訓練済み分類子モデルは、カテゴリ、親カテゴリ、祖父母カテゴリなどを識別する能力があるマルチクラス機械学習モデルであり得る。他の例では、訓練済み分類子MLモデルは、訓練済み深層学習(またはニューラルネットワーク)機械学習モデルであり得る。
【0104】
システムは、動作412を使用して、方法300によってデータ項目に対して識別された子カテゴリおよび親カテゴリが互いに適切に関連付けられるかどうかを決定することができる。いくつかの例では、これは、子カテゴリおよび親カテゴリが互いに「関係」していると記述され得る。いくつかの例では、マルチクラス分類子モデルは、親と子の分類が閾値を上回る類似度を有するかどうかを決定するために、コサイン類似度解析を実行することができる。識別済み分類(またはカテゴリ)が閾値を上回る場合、システムは、親カテゴリおよび子カテゴリが互いに適切に関連付けられていると決定する。識別済み分類(またはカテゴリ)が閾値未満である場合、システムは、親カテゴリおよび子カテゴリが互いに適切には関連付けられていないと決定する。
【0105】
システムはまた、訓練済みクラスタベースのMLモデルを使用して受信したカテゴリを解析する(動作416)。訓練済みクラスタベースのMLモデルは、いくつかの実施形態では、第3の訓練済み機械学習モデル316の再適用であり得る。いくつかの実施形態では、訓練済みクラスタベースのMLモデルは、動作336の文脈で上述したものと同様の解析を簡単に実行することができる。すなわち、訓練済みクラスタベースのMLモデルは、K平均クラスタリングアルゴリズムを使用して動作404で受信されたカテゴリをクラスタ化することができる。システムは、暫定的に、クラスタ内の新たに識別されたカテゴリを含み、新たに識別されたカテゴリを含める前後にクラスタの変動性および分散の尺度を定量化するクラスタのシルエット係数を生成することができる。上述したように、クラスタのシルエット係数が増大して(または閾値を上回って)、新たに識別されたカテゴリの付加時にクラスタ内のさらなる変動性を表す場合、カテゴリはそのクラスタから拒否される。すなわち、方法300によって一緒に階層的に分類されると識別された親カテゴリおよび子カテゴリは、互いに適切に関連付けられない。クラスタのシルエット係数が減少するか、または同じままであり(またはそうでない場合は閾値未満であり)、新たに識別されたカテゴリの付加時にクラスタ内にさらに少ないまたは同等の変動性を表す場合、カテゴリはそのクラスタと関連付けられる。言い換えると、親カテゴリおよび子カテゴリは、互いに適切に階層的に関係している。このプロセスは、新たに識別された各カテゴリがクラスタに割り振られるか、または訓練済みクラスタベースのMLモデルによって拒否されるまで、各クラスタおよび新たに識別された各カテゴリに対して繰り返すことができる。
【0106】
次いで、方法400は動作420へ進み、そこで3つの機械学習モデルの集められた解析結果は、階層内に識別済みカテゴリを含むか含まないかを決定するために「投票」プロセスで解析される。これは、カテゴリ「を検証すること」と同等に呼ばれることがある。
【0107】
解析される3つの機械学習モデルの解析結果は、動作328に記載の第1の訓練済みMLモデル312、ならびに動作412および416に記載の訓練済みMLモデルである。カテゴリは、これら3つの訓練済みMLモデルのうちの任意の2つが特定のカテゴリを(随意に、親カテゴリと関連して)識別しているかどうかを決定することによって検証される。
【0108】
これらの訓練済みMLモデルのうちの任意の2つが動作420で同じ予測をしている場合、カテゴリが検証される(動作424)。いくつかの例では、システムは、新たに検証されたカテゴリをホワイトリストに付加し、それによって既知の正しいカテゴリのリストを拡張することができる。
【0109】
3つのモデルのどれも特定のカテゴリの予測で互いに一致しない(すなわち、カテゴリが3つのモデルのうちの1つのみによって予測される)場合、システムは、動作412で適用された分類子MLモデルの予測を受け入れることによりこの不一致を解消することができる(動作428)。システムは、分類子MLモデルが動作420においてこの投票プロセスを実行している3つのモデルの中で最も正確であるという推定に基づいて分類子MLモデルの予測を選択することができる。
【0110】
動作432では、システムは、議論されているカテゴリが動作412での分類子モデルによって予測されているかどうかを決定する。議論されているカテゴリが分類子モデルによって予測されている場合、カテゴリは、動作424に従ってカテゴリの最終セットに含められる。議論されているカテゴリが分類子モデルによって予測されておらず、代わりに他の2つのモデルの一方によって予測されている場合、カテゴリは拒否される(動作436)。
【0111】
5.実施形態例
詳細な例が明瞭にする目的で以下に記述される。以下に記述される構成要素および/または動作は、特定の実施形態に適用できないことがある1つの特定の例として理解されるべきである。したがって、以下に記述される構成要素および/または動作は、請求項のいずれかの範囲を限定するものと解釈されるべきでない。
【0112】
一実施形態では、上のシステムは、タレント獲得などの人材管理に適用され得る。上述したように、エンティティによる職位は、複数の求職者の履歴書を受信する結果になり得る。システムは、システムが一貫した術語を使用する履歴書コンテンツのベクトル表現に対して後続の動作を実行することができるように、術語「正規化」動作を実行することができる。
【0113】
システムは、受信した履歴書内の単語および/またはフレーズのベクトル表現をスキルおよび付随するビジネス機能のホワイトリストと比較することができる。この例でのスキルは子カテゴリに対応し、付随するビジネス機能は親カテゴリに対応する。ジョブスキルおよび対応するビジネス機能の例示はそれぞれ、暖房システムメンテナンスおよび施設管理、経理および金融業、Javaプログラミングおよびエンジニアリング、従業員の監督および管理を含むことができる。
【0114】
任意のホワイトリストに記載されたスキルおよびビジネス機能が識別されると、システムは、候補スキルおよび付随するビジネス機能を広範に識別するために固有表現認識器訓練済みMLモデルを適用する。上述したように、システムは、ホワイトリスト上にはない任意の潜在的スキルおよび対応するビジネス機能を識別するために固有表現認識器訓練済みMLモデルを実行する。例えば、システムは、ホワイトリスト上にないスキルおよびビジネス機能の2つの例示、すなわち(1)融資管理/金融業、および(2)石油リグ運営/事業運営を決定することができる。これらの例示では、ホワイトリスト上にない識別済み第1の階層は、スキルとビジネス機能との間の適切な関連性であり、識別済み第2の階層は適切な関連性ではない。
【0115】
次いで、システムは、分類ベースの訓練済みMLモデルおよびクラスタベースの訓練済みMLモデルを第1の識別済み階層および第2の識別済み階層に適用する。一例示では、分類ベースの訓練済みMLモデルは、識別済み階層の両方を適切と識別し、クラスタベースの訓練済みMLモデルは、第1の階層を適切とし、第2の階層を不適切と正しく識別する。2つのモデルは第1の識別済み階層に同意し、第2の識別済み階層には同意しないので、第1の識別済み階層だけが、検証のためにMLパイプライン内の後続の作業に渡される。第2の識別済み階層は拒否される。
【0116】
「融資管理/金融業」の第1の識別済み階層は、上述した別の訓練済みマルチクラス分類子ベースのMLモデルおよびクラスタリングベースのMLモデルを使用して解析される。これらのモデルは両方とも、それらの解析を実行し、両方とも関連性が適切であると決定する。さらに、固有表現認識器は、最初に生成された第1の識別済み階層を有しており、この解析にも同意する。上述したように、3つのMLモデルのうちの2つだけが、階層を検証するために処理するこの段階で同意する必要がある。
【0117】
いくつかの例では、他の訓練済みマルチクラス分類子ベースのMLモデルとクラスタリングベースのMLモデルの関連性による階層の検証は、両モデルによって実行される独立した予測に基づいていてもよく、または、ジョブスキルおよびビジネス機能が検証を正当化するために互いに十分に類似していることを確実にするために、類似性解析および/またはシルエット係数解析に基づいて決定されてもよい。検証されると、「融資管理/金融業」の第1の識別済み階層は、将来使用するためにホワイトリストに付加され得る。
【0118】
6.コンピュータネットワークおよびクラウドネットワーク
1つまたは複数の実施形態では、コンピュータネットワークが、ノードのセット内の接続性を提供する。ノードは、互いにローカルおよび/またはリモートにあり得る。ノードは、リンクのセットによって接続される。リンクの例としては、同軸ケーブル、シールドなしツイストケーブル、銅ケーブル、光ファイバ、および仮想リンクが含まれる。
【0119】
ノードのサブセットは、コンピュータネットワークを実装する。そのようなノードの例としては、スイッチ、ルータ、ファイアウォール、およびネットワークアドレス変換器(NAT)が含まれる。ノードの別のサブセットはコンピュータネットワークを使用する。そのようなノード(「ホスト」とも呼ばれる)はクライアントプロセスおよび/またはサーバプロセスを実行することができる。クライアントプロセスは、コンピューティングサービス(特定のアプリケーションの実行、および/または特定のデータ量の保存など)に対して要求をする。サーバプロセスは、要求されたサービスを実行することおよび/または対応するデータを返すことにより応答する。
【0120】
コンピュータネットワークは、物理的リンクによって接続された物理的ノードを含む物理的ネットワークであり得る。物理的ノードは任意のデジタル装置である。物理的ノードは、ハードウェアスイッチ、ハードウェアルータ、ハードウェアファイアウォール、ハードウェアNATなどの特定機能のハードウェア装置であり得る。追加的または代替的に、物理的ノードは、それぞれの機能を実行する種々の仮想マシンおよび/またはアプリケーションを実行するように構成された汎用マシンであり得る。物理的リンクは、2つ以上の物理的ノードを接続する物理的媒体である。リンクの例としては、同軸ケーブル、シールドなしツイストケーブル、銅ケーブル、および光ファイバが含まれる。
【0121】
コンピュータネットワークは、オーバーレイネットワークであり得る。オーバーレイネットワークは、別のネットワーク(物理的ネットワークなど)の上に実装される論理ネットワークである。オーバーレイネットワーク内の各ノードは、下にあるネットワーク内のそれぞれのノードに対応する。したがって、オーバーレイネットワーク内の各ノードは、オーバーレイアドレス(オーバーレイノードにアドレス指定する)とアンダーレイアドレス(オーバーレイノードを実装するアンダーレイノードをアドレス指定する)の両方と関連付けられる。オーバーレイノードは、デジタル装置および/またはソフトウェアプロセス(仮想マシン、アプリケーションインスタンス、またはスレッドなど)であり得る。オーバーレイノードを接続するリンクは、下にあるネットワークを通るトンネルとして実装される。トンネルの両側にあるオーバーレイノードは、オーバーレイノード相互間の下にあるマルチホップパスを単一論理リンクとして扱う。トンネリングは、カプセル封入およびカプセル除去によって行われる。
【0122】
一実施形態では、クライアントは、コンピュータネットワークにローカルにあってもよくかつ/またはコンピュータネットワークからリモートにあってもよい。クライアントは、プライベートネットワークやインターネットなどの他のコンピュータネットワークを通じてコンピュータネットワークにアクセスすることができる。クライアントは、ハイパーテキスト転送プロトコル(HTTP)などの通信プロトコルを使用して、要求をコンピュータネットワークに通信することができる。要求は、クライアントインターフェース(ウェブブラウザなど)、プログラムインターフェース、アプリケーションプログラミングインターフェース(API)などのインターフェースを通じて通信される。
【0123】
一実施形態では、コンピュータネットワークは、クライアントとネットワークリソースとの間の接続性を提供する。ネットワークリソースは、サーバプロセスを実行するように構成されたハードウェアおよび/またはソフトウェアを含む。ネットワークリソースの例としては、プロセッサ、データ記憶装置、仮想マシン、コンテナ、および/またはソフトウェアアプリケーションが含まれる。ネットワークリソースは、複数のクライアントの間で共有される。クライアントは、コンピュータネットワークからコンピューティングサービスを互いに独立して要求する。ネットワークリソースは、要求および/またはクライアントにオンデマンドベースで動的に割り振られる。各要求および/またはクライアントに割り振られるネットワークリソースは、例えば、(a)特定のクライアントによって要求されたコンピューティングサービス、(b)特定のテナントによって要求されたアグリゲーテッドコンピューティングサービス、(c)コンピュータネットワークの要求されたアグリゲーテッドコンピューティングサービスに基づいてスケールアップまたはスケールダウンさせることができる。このようなコンピュータネットワークは「クラウドネットワーク」と呼ばれることがある。
【0124】
一実施形態では、サービスプロバイダがクラウドネットワークを1つまたは複数のエンドユーザに提供する。種々のサービスモデルが、以下に限定されるものではないが、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、およびサービスとしてのインフラストラクチャ(IaaS)を含むクラウドネットワークによって実装され得る。SaaSでは、サービスプロバイダが、エンドユーザに、ネットワークリソース上で実行しているサービスプロバイダのアプリケーションを使用する能力を提供する。PaaSでは、サービスプロバイダは、エンドユーザに、ネットワークリソース上にカスタムアプリケーションを展開する能力を提供する。カスタムアプリケーションは、プログラミング言語、ライブラリ、サービス、およびサービスプロバイダによって支援されるツールを使用して作成され得る。IaaSでは、サービスプロバイダが、エンドユーザに、ネットワークリソースによって提供される処理、記憶装置、ネットワーク、および他の基本的コンピューティングリソースをセットアップする能力を提供する。オペレーティングシステムを含む任意のアプリケーションが、ネットワークリソース上に展開され得る。
【0125】
一実施形態では、種々の展開モデルが、以下に限定されるものではないが、プライベートクラウド、パブリッククラウド、およびハイブリッドクラウドを含むコンピュータネットワークによって実装され得る。プライベートクラウドでは、ネットワークリソースは、1つまたは複数のエンティティ(「エンティティ」という用語は、本明細書で使用される場合、法人、組織、人、または他のエンティティを指す)の特定のグループによる排他的使用のためにセットアップされる。ネットワークリソースは、エンティティの特定のグループの敷地にローカルにあってもよくかつ/または敷地からリモートにあってもよい。パブリッククラウドでは、クラウドリソースは、互いに独立している複数のエンティティ(「テナント」または「顧客」とも呼ばれる)のためにセットアップされる。コンピュータネットワークとそのネットワークリソースは、異なるテナントに対応するクライアントによってアクセスされる。このようなコンピュータネットワークは、「マルチテナントコンピュータネットワーク」と呼ばれることもある。いくつかのテナントが、異なる時間におよび/または同じ時間に同じ特定のネットワークリソースを使用することができる。ネットワークリソースは、テナントの敷地にローカルにあってもよくかつ/またはテナントの敷地からリモートにあってもよい。ハイブリッドクラウドでは、コンピュータネットワークは、プライベートクラウドおよびパブリッククラウドを備える。プライベートクラウドとパブリッククラウドとの間のインターフェースは、データおよびアプリケーションの携帯性を可能にする。プライベートクラウドに保存されるデータおよびパブリッククラウドに保存されるデータは、インターフェースを通じて交換され得る。プライベートクラウドに実装されるアプリケーションおよびパブリッククラウドに実装されるアプリケーションは、互いに依存関係を有することができる。プライベートクラウドにあるアプリケーションからパブリッククラウドにあるアプリケーションへの呼び出し(逆もまた同様)は、インターフェースを通じて実行され得る。
【0126】
一実施形態では、マルチテナントコンピュータネットワークのテナントは互いに独立している。例えば、1つのテナントのビジネスまたは運営は、別のテナントのビジネスまたは運営から分離することができる。異なるテナントが、コンピュータネットワークの異なるネットワーク要件を要求することができる。ネットワーク要件の例としては、処理速度、データ記憶量、セキュリティ要件、性能要件、スループット要件、待ち時間要件、復元性要件、サービスの質(QoS)要件、テナント隔離、および/または一貫性が含まれる。同じコンピュータネットワークは、異なるテナントによって要求される異なるネットワーク要件を実装する必要があり得る。
【0127】
1つまたは複数の実施形態では、マルチテナントコンピュータネットワークにおいて、テナント隔離は、異なるテナントのアプリケーションおよび/またはデータが互いに共有されないことを確実にするために実施される。種々のテナント隔離手法が使用され得る。
【0128】
一実施形態では、各テナントはテナントIDと関連付けられる。マルチテナントコンピュータネットワークの各ネットワークリソースには、テナントIDでタグ付けされる。テナントは、テナントおよび特定のネットワークリソースが同じテナントIDと関連付けられる場合にのみ、特定のネットワークリソースへのアクセスを許可される。
【0129】
一実施形態では、各テナントはテナントIDと関連付けられる。コンピュータネットワークによって実装される各アプリケーションはテナントIDでタグ付けされる。追加的または代替的に、コンピュータネットワークによって保存される各データ構造および/またはデータセットはテナントIDでタグ付けされる。テナントは、テナントならびに特定のアプリケーション、データ構造、および/またはデータセットが同じテナントIDと関連付けられる場合にのみ、特定のアプリケーション、データ構造、および/またはデータセットへのアクセスを許可される。
【0130】
一例として、マルチテナントコンピュータネットワークによって実装される各データベースはテナントIDでタグ付けされ得る。対応するテナントIDと関連付けられたテナントだけが特定のデータベースのデータにアクセスすることができる。別の例として、マルチテナントコンピュータネットワークによって実装されたデータベース内の各登録は、テナントIDでタグ付けされ得る。対応するテナントIDと関連付けられたテナントだけが特定の登録のデータにアクセスすることができる。しかしながら、データベースは複数のテナントによって共有され得る。
【0131】
一実施形態では、サブスクリプションリストは、どのテナントがどのアプリケーションにアクセスする権限を有しているかを示す。アプリケーションごとに、アプリケーションにアクセスする権限を与えられたテナントのテナントIDのリストが保存される。テナントは、テナントのテナントIDが特定のアプリケーションに対応するサブスクリプションリストに含まれる場合にのみ、特定のアプリケーションへのアクセスを許可される。
【0132】
一実施形態では、異なるテナントに対応するネットワークリソース(デジタル装置、仮想マシン、アプリケーションインスタンス、スレッドなど)は、マルチテナントコンピュータネットワークによって維持されるテナント専用のオーバーレイネットワークに対して隔離される。一例として、テナントオーバーレイネットワーク内の任意のソース装置からのパケットは、同じテナントオーバーレイネットワーク内の他の装置にのみ送信され得る。カプセル封入トンネルが、テナントオーバーレイネットワーク上のソース装置から他のテナントオーバーレイネットワーク内の装置へのいかなる送信も禁止するために使用される。具体的には、ソース装置から受信されたパケットは、外パケット内にカプセル封入される。外パケットは、第1のカプセル封入トンネル終点(テナントオーバーレイネットワーク内のソース装置と通信する)から第2のカプセル封入トンネル終点(テナントオーバーレイネットワーク内の宛先装置と通信する)に送信される。第2のカプセル封入トンネル終点は、ソース装置によって送信されたオリジナルパケットを取得するために外パケットのカプセルを除去する。オリジナルパケットは、第2のカプセル封入トンネル終点から同じ特定のオーバーレイネットワーク内の宛先装置に送信される。
【0133】
7.様々な拡張機能
実施形態は、ハードウェアプロセッサを含み、本明細書に記述されかつ/または下記の請求項のいずれかに列挙された動作のいずれかを実行するように構成された1つまたは複数の装置を有するシステムを対象とする。
【0134】
一実施形態では、非一時的コンピュータ可読記憶媒体が、1つまたは複数のハードウェアプロセッサによって実行されると、本明細書に記述されかつ/または請求項のいずれかに列挙された動作のいずれかの実行を引き起こす命令を含む。
【0135】
本明細書に記載の特徴および機能性を任意に組み合わせたものが、1つまたは複数の実施形態に従って使用され得る。前述の明細書では、実施形態は、実装によって変化し得る多くの具体的詳細に関して記述されている。本明細書および図面は、それに応じて、限定的意味ではなく例示的な意味で評価されるべきである。本発明の範囲の唯一かつ排他的な指標、および、出願人が本発明の範囲として意図するものは、本出願に由来する請求項のセットの文字通りのかつ等価の範囲であり、そのような請求項が生じる特定の形式で、任意の後続の補正を含む。
【0136】
8.ハードウェア概観
一実施形態によれば、本明細書に記載の技術は、1つまたは複数の特殊用途計算装置によって実施される。特殊用途計算装置は、技術を実行するために結線で接続されてもよく、または、技術を実行するために持続的にプログラミングされた、1つまたは複数の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ネットワーク処理装置(NPU)などのデジタル電子装置を含んでいてもよく、または、ファームウェア、メモリ、他の記憶装置、もしくはこれらの組合せ内のプログラム命令に従って技術を実行するようにプログラミングされた1つまたは複数の汎用ハードウェアプロセッサを含んでいてもよい。このような特殊用途計算装置は、技術を実現するために、カスタムハードワイヤード論理、ASIC、FPGA、またはNPUをカスタムプログラミングと組み合わせることもできる。特殊用途計算装置は、技術を実装するためにハードワイヤードおよび/またはプログラム論理を組み込んでいる、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルド装置、ネットワーキング装置、または他の装置であり得る。
【0137】
例えば、図5は、本発明の実施形態が実装され得るコンピュータシステム500を示すブロック図である。コンピュータシステム500は、情報を通信するためのバス502または他の通信機構、および情報を処理するためのバス502に結合されたハードウェアプロセッサ504を含む。ハードウェアプロセッサ504は、例えば、汎用マイクロプロセッサとすることができる。
【0138】
コンピュータシステム500は、プロセッサ504によって実行されるべき情報および命令を保存するための、バス502に結合された主メモリ506、例えばランダムアクセスメモリ(RAM)や他のダイナミック記憶装置も含む。主メモリ506はまた、プロセッサ504によって実行されるべき命令の実行中にテンポラリ変数または他の中間情報を保存するためにも使用され得る。かかる命令は、プロセッサ504にアクセス可能な非一時的記憶媒体に保存されると、コンピュータシステム500を、命令に規定された動作を実行するようにカスタマイズされている特殊用途マシンにレンダリングする。
【0139】
コンピュータシステム500は、プロセッサ504用の静的情報および命令を保存するために、バス502に結合された読取り専用メモリ(ROM)508または他の静的記憶装置をさらに含む。磁気ディスクや光ディスクなどの記憶装置510は、情報および命令を保存するために提供され、バス502に結合される。
【0140】
コンピュータシステム500は、バス502を介して、コンピュータユーザに情報を表示するための陰極線管(CRT)などのディスプレイ512に結合され得る。英数字およびその他のキーを含む入力装置514は、情報選択およびコマンド選択をプロセッサ504に通信するためにバス502に結合される。別の種類のユーザ入力装置は、方向情報選択およびコマンド選択をプロセッサ504に通信するとともに、ディスプレイ512上のカーソル移動を制御するためのマウス、トラックボール、カーソル方向キーなどのカーソル制御装置516である。この入力装置は、通常、装置が平面内の位置を指定することを可能にする、2軸、すなわち第1の軸(例えばx)および第2の軸(例えばy)の2つの自由度を有する。
【0141】
コンピュータシステム500は、コンピュータシステムと組み合わせて、コンピュータシステム500を特殊用途マシンにさせるかまたはコンピュータシステム500をプログラミングするカスタマイズ済みハードワイヤード論理、1つまたは複数のASICもしくはFPGA、ファームウェア、および/またはプログラム論理を使用して本明細書に記載の技術を実装することができる。一実施形態によれば、本明細書での技術は、プロセッサ504が主メモリ506に含まれている1つまたは複数の命令の1つまたは複数のシーケンスを実行するのに応答して、コンピュータシステム500によって実施される。そのような命令は、記憶装置510などの別の記憶媒体から主メモリ506に読み取ることができる。主メモリ506に含まれている命令のシーケンスを実行すると、プロセッサ504は本明細書に記載のプロセスステップを実行する。代替実施形態では、ハードワイヤード回路が、ソフトウェア命令の面内でまたはソフトウェア命令と組み合わせて使用され得る。
【0142】
「記憶媒体」という用語は、本明細書で使用される場合、マシンに特定の方法で動作させるデータおよび/または命令を保存する任意の非一時的記憶媒体を指す。このような記憶媒体は、不揮発性媒体および/または揮発性媒体を備えることができる。不揮発性媒体は、例えば、記憶装置510などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、主メモリ506などのダイナミックメモリを含む。記憶媒体の共通の形態には、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、もしくは他の磁気データ記憶媒体、CD-ROM、他の光データ記憶媒体、孔パターンを有する任意の物理的媒体、RAM、PROM、およびEPROM、フラッシュEPROM、NVRAM、他のメモリチップもしくはカートリッジ、連想メモリ(CAM)、ならびに三値連想メモリ(TCAM)が含まれる。
【0143】
記憶媒体は伝送媒体と異なるが、伝送媒体とともに使用され得る。伝送媒体は、記憶媒体相互間で情報を転送することに関与する。例えば、伝送媒体は、バス502を備えるワイヤを含む、同軸ケーブル、銅線、および光ファイバを含む。伝送媒体は、電波通信および赤外線データ通信中に生成されるような音波または光波の形をとることもできる。
【0144】
様々な形態の媒体が、実行のために、1つまたは複数の命令の1つまたは複数のシーケンスをプロセッサ504に搬送することに関わることができる。例えば、命令は、最初に遠隔コンピュータの磁気ディスクまたはソリッドステートドライブで搬送され得る。遠隔コンピュータは、命令を遠隔コンピュータのダイナミックメモリにロードし、この命令を、モデムを使用して電話線を通じて送る。コンピュータシステム500にローカルにあるモデムは、データを電話線で受信し、赤外線送信機を使用してデータを赤外線信号に変換することができる。赤外線検出器が、赤外線信号で搬送されたデータを受信することができ、適切な回路がデータをバス502上に配置することができる。バス502は、データを主メモリ506へ搬送し、プロセッサ504は、主メモリから命令を取り出し実行する。主メモリ506によって受信された命令は、プロセッサ504による実行の前か後のどちらかで記憶装置510に随意に保存され得る。
【0145】
コンピュータシステム500は、バス502に結合された通信インターフェース518も含む。通信インターフェース518は、ローカルネットワーク522に接続されたネットワークリンク520に結合する双方向データ通信を提供する。例えば、通信インターフェース518は、総合サービスデジタルネットワーク(ISDN)カード、ケーブルモデム、衛星モデム、または対応する種類の電話線へのデータ通信接続を提供するモデムであり得る。別の例として、通信インターフェース518は、互換LANへのデータ通信接続を提供するローカルエリアネットワーク(LAN)カードであり得る。無線リンクも実装され得る。そのようないかなる実装でも、通信インターフェース518は、様々な種類の情報を表すデジタルデータ流を搬送する電気信号、電磁信号、または光信号を送受信する。
【0146】
ネットワークリンク520は、典型的には1つまたは複数のネットワーク経由で他のデータ装置までのデータ通信を提供する。例えば、ネットワークリンク520は、ローカルネットワーク522経由でホストコンピュータ524までの接続、またはインターネットサービスプロバイダ(ISP)526によって操作されるデータ機器までの接続を提供することができる。それにより、ISP526は、現在一般に「インターネット」528と呼ばれる世界規模のパケットデータ通信ネットワークを通じてデータ通信サービスを提供する。ローカルネットワーク522およびインターネット528は両方とも、デジタルデータ流を搬送する電気信号、電磁信号、または光信号を使用する。種々のネットワークを通る信号、および、ネットワークリンク520上の、通信インターフェース518を通る信号は、デジタルデータをコンピュータシステム500との間で搬送するものであり、伝送媒体の形態の例である。
【0147】
コンピュータシステム500は、プログラムコードを含むメッセージを、ネットワーク、ネットワークリンク520、および通信インターフェース518を経由して送信し、データを受信することができる。インターネットの例では、サーバ530が、アプリケーションプログラム用の要求されたコードを、インターネット528、ISP526、ローカルネットワーク522、および通信インターフェース518を経由して送信してもよい。
【0148】
受信済みコードは、そのコードが受信されるときにプロセッサ504によって実行され、かつ/または、後で実行するために記憶装置510または他の不揮発性記憶装置に保存され得る。
【0149】
前述の明細書では、本発明の実施形態は、実装によって変化し得る多くの具体的詳細に関して記述されている。本明細書および図面は、それに応じて、限定的意味ではなく例示的な意味で評価されるべきである。本発明の範囲の唯一かつ排他的な指標、および、出願人が本発明の範囲として意図するものは、本出願に由来する請求項のセットの文字通りのかつ等価の範囲であり、そのような請求項が生じる特定の形式で、任意の後続の補正を含む。
図1
図2
図3
図4
図5
【国際調査報告】