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

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

▶ 株式会社リクルートの特許一覧

特開2023-162084一般化エンティティマッチングのためのシステムおよび方法
<>
  • 特開-一般化エンティティマッチングのためのシステムおよび方法 図1
  • 特開-一般化エンティティマッチングのためのシステムおよび方法 図2
  • 特開-一般化エンティティマッチングのためのシステムおよび方法 図3
  • 特開-一般化エンティティマッチングのためのシステムおよび方法 図4
  • 特開-一般化エンティティマッチングのためのシステムおよび方法 図5
  • 特開-一般化エンティティマッチングのためのシステムおよび方法 図6A
  • 特開-一般化エンティティマッチングのためのシステムおよび方法 図6B
  • 特開-一般化エンティティマッチングのためのシステムおよび方法 図7
  • 特開-一般化エンティティマッチングのためのシステムおよび方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023162084
(43)【公開日】2023-11-08
(54)【発明の名称】一般化エンティティマッチングのためのシステムおよび方法
(51)【国際特許分類】
   G06F 16/332 20190101AFI20231031BHJP
【FI】
G06F16/332
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022096493
(22)【出願日】2022-06-15
(31)【優先権主張番号】17/660,813
(32)【優先日】2022-04-26
(33)【優先権主張国・地域又は機関】US
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和3年6月15日にウェブサイト(https://arxiv.org/abs/2106.08455#:▲~▼:text=Entity%20Matching%20(EM)%20refers%20to,the%20same%20real%2Dworld%20entity.)にて公開 令和3年10月29日にウェブサイト(https://megagon.ai/blog/machamp-a-generalized-entity-matching-benchmark/)にて公開
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和4年1月10日にウェブサイト(https://megagon.ai/publications/machamp-a-generalized-entity-matching-benchmark/)にて公開
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和3年8月23日にウェブサイト(https://github.com/megagonlabs/machamp)にて公開 令和3年10月30日にウェブサイト(https://dl.acm.org/doi/10.1145/3459637.3482008)にて公開
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和3年6月15日にウェブサイト(https://www.researchgate.net/publication/352480096_Machamp_A_Generalized_Entity_Matching_Benchmark、https://cs.paperswithcode.com/paper/machamp-a-generalized-entity-matching、https://www.semanticscholar.org/paper/Machamp%3A-A-Generalized-Entity-Matching-Benchmark-Wang-Li/14bf3a610020064af7c5be27e10a84cc84d15634等)にて公開
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和4年6月10日にウェブサイト(https://arxiv.org/abs/2206.04853)にて公開 令和4年6月9日にウェブサイト(https://megagon.ai/blog/gem-machop-aidm-22/)にて公開
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和4年6月10日にウェブサイト(https://www.researchgate.net/publication/361252976_Machop_an_End-to-End_Generalized_Entity_Matching_Framework、https://cs.paperswithcode.com/paper/machop-an-end-to-end-generalized-entity、https://www.semanticscholar.org/paper/Machop%3A-an-End-to-End-Generalized-Entity-Matching-Wang-Li/d704f65e140de9140e28a5662ecbfcdaa36fa823等)にて公開
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.3GPP
3.JAVA
4.SMALLTALK
(71)【出願人】
【識別番号】518135412
【氏名又は名称】株式会社リクルート
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100139066
【弁理士】
【氏名又は名称】伊藤 健太郎
(72)【発明者】
【氏名】ワン,ジン
(72)【発明者】
【氏名】リ,ユーリャン
(72)【発明者】
【氏名】ヒロタ,ワタル
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175GC03
(57)【要約】
【課題】一般化エンティティマッチングのシステム及び方法を提供する。
【解決手段】開示する技法は、解析可能なデータ構造を有するよう前処理され得る2つのエンティティのデータ対を受信することと、データ対中の各エンティティのデータ構造に基づきデータ対を一連のトークンに直列化することとを含み得る。技法は更に、データ対中のデータにマップできるトピック属性を含むように直列化データ対を符号化することを含み得、マッピングされたデータのトピックは、トピック属性により表されるトピックとマッチし、データ対中のデータは連結される。技法は更に、データ対中の各符号化エンティティの文脈化属性表現とデータ対中の各エンティティのスキーマとに基づきデータ対中の属性をプールすることを含み得、文脈化属性表現は、一連のトークン中の各符号化属性の第1のトークンに基づき、技法は更に、プールされた属性に基づきデータ対間のマッチングラベルを予測することを含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
一般化エンティティマッチングシステムであって、
プロセッサ実行可能命令を記憶する1つまたは複数のメモリデバイスと、
命令を実行して前記一般化エンティティマッチングシステムに動作を行わせるように構成された1つまたは複数のプロセッサとを備え、前記動作が、
2つのエンティティのデータ対を受信するステップであって、前記2つのエンティティの前記データ対が解析可能なデータ構造を有するように前処理されるステップと、
前記データ対を一連のトークンに直列化するステップであって、前記データ対の直列化が前記データ対中の各エンティティのデータ構造に基づいているステップと、
トピック属性を含むように前記直列化データ対を符号化するステップであって、前記トピック属性が前記データ対中のデータにマップされ、前記マップされたデータのトピックが、トピック属性によって表される前記トピックにマッチし、前記データ対中のデータが連結されるステップと、
前記データ対中の各符号化エンティティの文脈化属性表現と前記データ対中の各エンティティのスキーマとに基づいて前記データ対中の属性をプールするステップであって、前記文脈化属性表現が前記一連のトークン中の各符号化属性の第1のトークンに基づいているステップと、
プールされた属性に基づいて前記データ対間のマッチングラベルを予測するステップと
を含む、一般化エンティティマッチングシステム。
【請求項2】
前記データ対の前記2つのエンティティが、均一なデータ構造を有するように前処理されることが、
前記2つのエンティティの複数のレコードを受信するステップと、
前記複数のレコードを階層的なキー値データ構造エンティティに変換するステップと、
ルールベースのプロセッサを用いて重複エンティティを除去して一意のエンティティを生成するステップと、
ルールベースのヒューリスティックを用いて一意のエンティティをフィルタリングしてエンティティの候補対を生成するステップと
を含む動作を含む、請求項1に記載の一般化エンティティマッチングシステム。
【請求項3】
2つのエンティティのデータ対を受信するステップが、
候補対のサブセットのラベルを受け取るためのユーザインターフェースを提示するステップと、
マッチするデータがない否定的な対を生成して、一般化エンティティマッチングシステムが使用する機械学習モデルを訓練するための入力として提供するステップと
を含む動作を含む、請求項2に記載の一般化エンティティマッチングシステム。
【請求項4】
前記データ対を一連のトークンに直列化するステップが、
前記データ対中の2つのエンティティのうちの1つのエンティティにアクセスするステップであって、前記エンティティが表の行であるステップと、
第1のトークンを追加して前記直列化されたエンティティの先頭を示すステップと、
前記エンティティの列ごとに第2および第3のトークンを反復追加するステップであって、
各列の先頭を示す第2のトークンを追加するステップであり、列の名前が前記第2のトークンに連結されるステップ、および
前記列の値の先頭を示す第3のトークンを追加するステップであり、前記列の値が前記第3のトークンに連結されるステップを含む、反復追加するステップと、
前記エンティティの終わりを示す第4のトークンを追加するステップと、
を含む動作を含む、請求項1に記載の一般化エンティティマッチングシステム。
【請求項5】
前記データ対を一連のトークンに直列化するステップが、
前記データ対中の2つのエンティティのうちの1つのエンティティにアクセスするステップであって、前記エンティティが階層的なキー値データ構造であるステップと、
第1のタグを追加して前記直列化されたエンティティの先頭を示すステップと、
前記階層的なキー値データ構造のレベルごとに第2および第3の列を再帰的に追加するステップであって、
各レベルの先頭を示す第2のトークンを追加するステップであり、前記レベルのキーが前記第2のトークンに連結されるステップ、および
前記レベルの値の先頭を示す第3のトークンを追加するステップであり、前記レベルの値が前記第3のトークンに連結され、前記値を連結するステップが、スペースによって分離された値を表す項目のリストを連結するステップ、
を含む再帰的に追加するステップと、
前記エンティティの終わりを示す第4のトークンを追加するステップと、
を含む動作を含む、請求項1に記載の一般化エンティティマッチングシステム。
【請求項6】
前記データ対を一連のトークンに直列化するステップが、
前記データ対の2つの直列化されたエンティティを連結して、前記特徴ベクトルを分類するためのエンコーダへの入力として与えられる特徴ベクトルを生成するステップ
を含む動作を含む、請求項1に記載の一般化エンティティマッチングシステム。
【請求項7】
前記データ対を一連のトークンに直列化するステップが、
前記データ対の前記2つのエンティティの各直列化されたエンティティを特徴ベクトルとしてエンコーダに提供して、前記特徴ベクトルを分類するステップ
を含む動作を含む、請求項1に記載の一般化エンティティマッチングシステム。
【請求項8】
前記データ対中の各符号化エンティティの文脈化属性表現と前記データ対中の各エンティティのスキーマとに基づいて前記データ対中の属性をプールするステップが、
前記2つのエンティティの各属性の値間で要素ごとの積を計算するステップであって、前記2つのエンティティが同一の属性のスキーマを共有するステップと
各属性の前記要素ごとの積を連結するステップと
を含む動作を含む、請求項1に記載の一般化エンティティマッチングシステム。
【請求項9】
前記データ対中の各符号化エンティティの文脈化属性表現と前記データ対中の各エンティティのスキーマとに基づいて前記データ対中の属性をプールするステップが、
前記2つのエンティティの値間の最大プーリング演算子を適用して前記特徴ベクトルの属性の最大マッチングスコアを生成するステップであって、前記2つのエンティティが前記同一の属性のスキーマを共有しないステップと、
前記特徴ベクトルの前記属性の前記最大マッチングスコアを連結するステップと
を含む動作を含む、請求項1に記載の一般化エンティティマッチングシステム。
【請求項10】
動作がさらに、
前記データ対の第1のエンティティの各属性と前記データ対の第2のエンティティの各属性との間のユークリッド距離を決定することと、
前記属性間のユークリッド距離に基づいて、マッチまたは非マッチを生じさせた属性をリストすることと
による、属性レベルの説明を用いてマッチの説明を行うステップを含む、請求項1に記載の一般化エンティティマッチングシステム。
【請求項11】
動作がさらに、
各層の注目重みを取得することであって、各要素の前記注目重みが、前記データ対の第1のエンティティ中のソーストークンから前記データ対の第2のエンティティ中のターゲットトークンまでであり、各層の注目出力が3次元テンソルである、取得することと、
3次元テンソルの最初の2つの次元を合計して、第2のエンティティのトークンごとに集計スコアを生成することと、
集計スコアが最上位象限内にある前記第2のエンティティのトークンを特定することと
による、単語レベルの説明を用いてマッチの説明を行うステップを含む、請求項1に記載の一般化エンティティマッチングシステム。
【請求項12】
プールされた属性に基づいて前記データ対間のマッチングラベルを予測するステップが、
前記データ対を非関連エンティティでフィルタリングするステップであって、前記データ対中の前記2つのエンティティが別々のタイプのエンティティであるステップ、または
前記データ対を非マッチエンティティでフィルタリングするステップであって、前記データ対中の前記2つのエンティティが同じエンティティタイプであるステップ
を含む動作を含む、請求項1に記載の一般化エンティティマッチングシステム。
【請求項13】
一般化エンティティマッチングシステムを利用して任意の2つのエンティティ間のマッチングを予測するシステムよって実施される方法であって、
2つのエンティティのデータ対を受信するステップであって、前記2つのエンティティの前記データ対が解析可能なデータ構造を有するように前処理されるステップと、
前記データ対を一連のトークンに直列化するステップであって、前記データ対の直列化が前記データ対中の各エンティティのデータ構造に基づいているステップと、
トピック属性を含むように外部知識を用いて前記直列化データ対を符号化するステップであって、前記トピック属性が前記データ対中のデータにマップされ、前記マップされたデータのトピックが、トピック属性によって表される前記トピックに一致し、前記データ対中のデータが連結されるステップと、
前記データ対中の各符号化エンティティの文脈化属性表現と前記データ対中の各エンティティのスキーマとに基づいて前記データ対中の属性をプールするステップであって、前記文脈化属性表現が前記一連のトークン中の各符号化属性の第1のトークンに基づいているステップと、
プールされた属性に基づいて前記データ対間のマッチングラベルを予測するステップ
とを含む方法。
【請求項14】
前記データ対の前記2つのエンティティが、均一なデータ構造を有するように前処理されることが、
前記2つのエンティティの複数のレコードを受信するステップと、
前記複数のレコードを階層的なキー値データ構造エンティティに変換するステップと、
ルールベースのプロセッサを用いて重複エンティティを除去して一意のエンティティを生成するステップと、
ルールベースのヒューリスティックを用いて一意のエンティティをフィルタリングしてエンティティの候補対を生成するステップと
を含む動作を含む、請求項13に記載の方法。
【請求項15】
前記データ対中の各符号化エンティティの文脈化属性表現と前記データ対中の各エンティティのスキーマとに基づいて前記データ対中の属性をプールするステップが、
前記2つのエンティティの各属性の値間で要素ごとの積を計算するステップであって、前記2つのエンティティが同一の属性のスキーマを共有するステップと、
各属性の前記要素ごとの積を連結するステップと
を含む動作を含む、請求項13に記載の方法。
【請求項16】
前記データ対中の各符号化エンティティの文脈化属性表現と前記データ対中の各エンティティのスキーマとに基づいて前記データ対中の属性をプールするステップが、
前記2つのエンティティの値間の最大プーリング演算子を適用して前記特徴ベクトルの属性の最大マッチングスコアを生成するステップであって、前記2つのエンティティが前記同一の属性のスキーマを共有しないステップと、
前記特徴ベクトルの前記属性の前記最大マッチングスコアを連結するステップと
を含む動作を含む、請求項13に記載の方法。
【請求項17】
任意の2つのエンティティ間のマッチングのための方法をシステムに行わせるように1つまたは複数のプロセッサによって実行可能な命令を含む非一時的コンピュータ可読媒体であって、その方法は、
2つのエンティティのデータ対を受信するステップであって、前記2つのエンティティの前記データ対が解析可能なデータ構造を有するように前処理されるステップと、
前記データ対を一連のトークンに直列化するステップであって、前記データ対の直列化が前記データ対中の各エンティティのデータ構造に基づいているステップと、
トピック属性を含むように前記直列化データ対を符号化するステップであって、前記トピック属性が前記データ対中のデータにマップされ、前記マップされたデータのトピックが、トピック属性によって表される前記トピックにマッチし、前記データ対中のデータが連結されるステップと、
前記データ対中の各符号化エンティティの文脈化属性表現と前記データ対中の各エンティティのスキーマとに基づいて前記データ対中の属性をプールするステップであって、前記文脈化属性表現が前記一連のトークン中の各符号化属性の第1のトークンに基づいているステップと、
プールされた属性に基づいて前記データ対間のマッチングラベルを予測するステップと
を含む、非一時的コンピュータ可読媒体。
【請求項18】
前記データ対の前記2つのエンティティが、均一なデータ構造を有するように前処理されることが、
前記2つのエンティティの複数のレコードを受信するステップと、
前記複数のレコードを階層的なキー値データ構造エンティティに変換するステップと、
ルールベースのプロセッサを用いて重複エンティティを除去して一意のエンティティを生成するステップと、
ルールベースのヒューリスティックを用いて一意のエンティティをフィルタリングしてエンティティの候補対を生成するステップと
を含む動作を含む、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記データ対中の各符号化エンティティの文脈化属性表現と前記データ対中の各エンティティのスキーマとに基づいて前記データ対中の属性をプールするステップが、
前記2つのエンティティの各属性の値間で要素ごとの積を計算するステップであって、前記2つのエンティティが同一の属性のスキーマを共有するステップと、
各属性の前記要素ごとの積を連結するステップと
を含む動作を含む、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記データ対中の各符号化エンティティの文脈化属性表現と前記データ対中の各エンティティのスキーマとに基づいて前記データ対中の属性をプールするステップが、
前記2つのエンティティの値間の最大プーリング演算子を適用して前記特徴ベクトルの属性の最大マッチングスコアを生成するステップであって、前記2つのエンティティが前記同一の属性のスキーマを共有しないステップと、
前記特徴ベクトルの前記属性の前記最大マッチングスコアを連結するステップと
を含む動作を含む、請求項17に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【0001】
背景
[001] 自然言語処理システムは、情報レコードを理解して、マッチするレコードを見つけることを含む多様なタスクを実施するために使用される。既存の自然言語処理システムでは、同一マッチングまたは等式を実施することしかできない。異種レコード間の他のいかなるマッチングも、カスタムマッチングフレームワークを必要とする。このようなカスタムマッチングフレームワークは、データ形式またはデータソースの変更に合わせて定期的に調整する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0002】
異なるデータソースまたは形式からのレコードをマッチングするタスクをカスタマイズ可能にするための技術およびシステムが必要とされている。そのような技術およびシステムは、現代の自然言語システムのニーズに時間効果および費用効果が大きい方法で対応することができる。
【課題を解決するための手段】
【0003】
[002] 本開示のいくつかの実施形態は、一般化エンティティマッチングのためのシステムに関する。このシステムは、1つまたは複数のメモリデバイスに記憶されたプロセッサ実行可能命令を実行して1つの方法を実施する、1つまたは複数のプロセッサを含む。その方法は、2つのエンティティのデータ対を受信するステップであって、2つのエンティティのデータ対が解析可能なデータ構造を有するように前処理されるステップと、データ対を一連のトークンに直列化するステップであって、データ対の直列化がデータ対中の各エンティティのデータ構造に基づいているステップと、トピック属性を含むように直列化データ対を符号化するステップであって、トピック属性がデータ対中のデータにマップされ、マップされたデータのトピックが、トピック属性によって表されるトピックにマッチし、データ対中のデータが連結されるステップと、データ対中の各符号化エンティティの文脈化属性表現とデータ対中の各エンティティのスキーマとに基づいてデータ対中の属性をプールするステップであって、文脈化属性表現が一連のトークン中の各符号化属性の第1のトークンに基づいているステップと、プールされた属性に基づいてデータ対間のマッチングラベルを予測するステップとを含むことができる。
【0004】
[003] いくつかの開示された実施形態によれば、データ対の2つのエンティティが、均一なデータ構造を有するように前処理されることが、2つのエンティティの複数のレコードを受信するステップと、複数のレコードを階層的なキー値データ構造エンティティに変換するステップと、ルールベースのプロセッサを用いて重複エンティティを除去して一意のエンティティを生成するステップと、ルールベースのヒューリスティックを用いて一意のエンティティをフィルタリングしてエンティティの候補対を生成するステップとを含むことができる。
【0005】
[004] いくつかの開示された実施形態によれば、2つのエンティティのデータ対を受信するステップは、候補対のサブセットのラベルを受け取るためのユーザインターフェースを提示するステップと、マッチングデータがない否定的な対を生成して、一般化エンティティマッチングシステムが使用する機械学習モデルを訓練するための入力として提供するステップとを含むことができる。
【0006】
[005] いくつかの開示された実施形態によれば、データ対を一連のトークンに直列化するステップは、データ対中の2つのエンティティのうちの1つのエンティティにアクセスするステップであって、エンティティが表の行であるステップと、第1のトークンを追加して直列化されたエンティティの先頭を示すステップと、エンティティの列ごとに第2および第3のトークンを反復追加するステップであって、各列の先頭を示す第2のトークンを追加するステップであり、列の名前が第2のトークンに連結されるステップ、および列の値の先頭を示す第3のトークンを追加するステップであり、列の値が第3のトークンに連結されるステップを含む、反復追加するステップと、エンティティの終わりを示す第4のトークンを追加するステップとを含むことができる。
【0007】
[006] いくつかの開示された実施形態によれば、データ対を一連のトークンに直列化するステップは、データ対中の2つのエンティティのうちの1つのエンティティにアクセスするステップであって、エンティティが階層的なキー値データ構造であるステップと、第1のタグを追加して直列化されたエンティティの先頭を示すステップと、階層的なキー値データ構造のレベルごとに第2および第3の列を再帰的に追加するステップであって、各レベルの先頭を示す第2のトークンを追加するステップであり、レベルのキーが第2のトークンに連結されるステップ、およびレベルの値の先頭を示す第3のトークンを追加するステップであり、レベルの値が第3のトークンに連結され、値を連結するステップが、スペースによって分離された値を表す項目のリストを連結するステップを含む、再帰的に追加するステップと、エンティティの終わりを示す第4のトークンを追加するステップとを含むことができる。
【0008】
[007] いくつかの開示された実施形態によれば、データ対を一連のトークンに直列化するステップは、データ対の2つの直列化されたエンティティを連結して、特徴ベクトルを分類するためのエンコーダへの入力として与えられる特徴ベクトルを生成するステップを含むことができる。
【0009】
[008] いくつかの開示された実施形態によれば、データ対を一連のトークンに直列化するステップは、データ対の2つのエンティティの各直列化されたエンティティを特徴ベクトルとしてエンコーダに提供して、特徴ベクトルを分類するステップを含むことができる。
【0010】
[009] いくつかの開示された実施形態によれば、データ対中の各符号化エンティティの文脈化属性表現とデータ対中の各エンティティのスキーマとに基づいてデータ対中の属性をプールするステップは、2つのエンティティの各属性の値間で要素ごとの積を計算するステップであって、2つのエンティティが同一の属性のスキーマを共有するステップと、各属性の要素ごとの積を連結するステップとを含むことができる。
【0011】
[0010] いくつかの開示された実施形態によれば、データ対中の各符号化エンティティの文脈化属性表現とデータ対中の各エンティティのスキーマとに基づいてデータ対中の属性をプールするステップは、2つのエンティティの値間の最大プーリング演算子を適用して特徴ベクトルの属性の最大マッチングスコアを生成するステップであって、2つのエンティティが同一の属性のスキーマを共有しないステップと、特徴ベクトルの属性の最大マッチングスコアを連結するステップとを含むことができる。
【0012】
[0011] いくつかの開示された実施形態によれば、方法はさらに、データ対の第1のエンティティの各属性とデータ対の第2のエンティティの各属性との間のユークリッド距離を決定することと、属性間のユークリッド距離に基づいて、マッチまたは非マッチを生じさせた属性をリストすることによる、属性レベルの説明を用いてマッチの説明を行うステップを含むことができる。
【0013】
[0012] いくつかの開示された実施形態によれば、方法はさらに、各層の注目重みを取得することであって、各要素の注目重みが、データ対の第1のエンティティ中のソーストークンからデータ対の第2のエンティティ中のターゲットトークンまでであり、各層の注目出力が3次元テンソルである、取得することと、3次元テンソルの最初の2つの次元を合計して、第2のエンティティのトークンごとに集計スコアを生成することと、集計スコアが最上位象限内にある第2のエンティティのトークンを特定することとによる、単語レベルの説明を用いてマッチの説明を行うステップを含むことができる。
【0014】
[0013] いくつかの開示された実施形態によれば、プールされた属性に基づいてデータ対間のマッチングラベルを予測するステップは、データ対を非関連エンティティでフィルタリングするステップであって、データ対中の2つのエンティティが別々のタイプのエンティティであるステップ、または、データを非マッチエンティティでフィルタリングするステップであって、データ対中の2つのエンティティが同じエンティティタイプであるステップを含むことができる。
【0015】
[0014] 本開示のいくつかの実施形態は、一般化エンティティマッチングシステムを利用して任意の2つのエンティティ間のマッチングを予測するコンピュータ実施方法に関する。その方法は、2つのエンティティのデータ対を受信するステップであって、2つのエンティティのデータ対が解析可能なデータ構造を有するように前処理されるステップと、データ対を一連のトークンに直列化するステップであって、データ対の直列化がデータ対中の各エンティティのデータ構造に基づいているステップと、トピック属性を含むように外部知識を用いて直列化データ対を符号化するステップであって、トピック属性がデータ対中のデータにマップされ、マップされたデータのトピックが、トピック属性によって表されるトピックにマッチし、データ対中のデータが連結されるステップと、データ対中の各符号化エンティティの文脈化属性表現とデータ対中の各エンティティのスキーマとに基づいてデータ対中の属性をプールするステップであって、文脈化属性表現が一連のトークン中の各符号化属性の第1のトークンに基づいているステップと、プールされた属性に基づいてデータ対間のマッチングラベルを予測するステップとを含むことができる。
【0016】
[0015] いくつかの開示された実施形態によれば、データ対の2つのエンティティが、均一なデータ構造を有するように前処理されることが、2つのエンティティの複数のレコードを受信することと、複数のレコードを階層的なキー値データ構造エンティティに変換することと、ルールベースのプロセッサを用いて重複エンティティを除去して一意のエンティティを生成することと、ルールベースのヒューリスティックを用いて一意のエンティティをフィルタリングしてエンティティの候補対を生成することとを含むことができる。
【0017】
[0016] いくつかの開示された実施形態によれば、データ対中の各符号化エンティティの文脈化属性表現とデータ対中の各エンティティのスキーマとに基づいてデータ対中の属性をプールするステップは、2つのエンティティの各属性の値間で要素ごとの積を計算するステップであって、2つのエンティティが同一の属性のスキーマを共有するステップと、各属性の要素ごとの積を連結するステップとを含むことができる。
【0018】
[0017] いくつかの開示された実施形態によれば、データ対中の各符号化エンティティの文脈化属性表現とデータ対中の各エンティティのスキーマとに基づいてデータ対中の属性をプールするステップは、2つのエンティティの値間の最大プーリング演算子を適用して特徴ベクトルの属性の最大マッチングスコアを生成するステップであって、2つのエンティティが同一の属性のスキーマを共有しないステップと、特徴ベクトルの属性の最大マッチングスコアを連結するステップとを含むことができる。
【0019】
[0018] 本開示のいくつかの実施形態は、任意の2つのエンティティ間でマッチングするための方法をシステムに行わせるように1つまたは複数のプロセッサによって実行可能な命令を含む、非一時的コンピュータ可読媒体に関する。その方法は、2つのエンティティのデータ対を受信するステップであって、2つのエンティティのデータ対が解析可能なデータ構造を有するように前処理されるステップと、データ対を一連のトークンに直列化するステップであって、データ対の直列化がデータ対中の各エンティティのデータ構造に基づいているステップと、トピック属性を含むように直列化データ対を符号化するステップであって、トピック属性がデータ対中のデータにマップされ、マップされたデータのトピックが、トピック属性によって表されるトピックにマッチし、データ対中のデータが連結されるステップと、データ対中の各符号化エンティティの文脈化属性表現とデータ対中の各エンティティのスキーマとに基づいてデータ対中の属性をプールするステップであって、文脈化属性表現が一連のトークン中の各符号化属性の第1のトークンに基づいているステップと、プールされた属性に基づいてデータ対間のマッチングラベルを予測するステップとを含むことができる。
【0020】
[0020] 本明細書に組み込まれ、その一部を形成する添付の図面は、いくつかの実施形態を図示し、その記述とともに、開示された原理を説明する役割を果たす。
【図面の簡単な説明】
【0021】
図1】[0021]本開示の実施形態と合致する、一般化エンティティマッチングシステムの例示的な構成要素を示すブロック図である。
図2】[0022]本開示の実施形態と合致する、例示的な一般化エンティティマッチングシステムのフロー図である。
図3】[0023]本開示の実施形態と合致する、一般化エンティティマッチングシステムによって生成された例示的なエンティティのデータ構造を示す図である。
図4】[0024]本開示の実施形態と合致する、一般化エンティティマッチングシステムによって生成された例示的なデータ直列化を示す図である。
図5】[0025]本開示の実施形態と合致する、例示的なコンピュータデバイスのブロック図である。
図6A】[0026]本開示の実施形態と合致する、一般化エンティティマッチングシステムで使用される機械学習モデルの層の例示的なネットワークを示す図である。
図6B】本開示の実施形態と合致する、一般化エンティティマッチングシステムで使用される機械学習モデルの層からなる例示的なネットワークを示す図である。
図7】[0027]本開示の実施形態と合致する、一般化エンティティシステムを使用して一対のエンティティ間のマッチを予測するための例示的な方法を示すフローチャートである。
図8】[0028]本開示の実施形態と合致する、データを前処理するための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【0022】
[0029] 以下の詳細な説明では、開示された例示的な実施形態の完全な理解が得られるように、多数の詳細が示される。当業者であれば、すべての具体的な詳細がなくても、例示的な実施形態の原理が実践できることが理解される。開示された実施形態は例示的なものであり、特許請求の範囲および本開示と合致するすべての可能な実施形態を開示するものではない。よく知られている方法、手順、および構成要素は、例示的な実施形態の原理を不明瞭にしないように、細部にわたっては説明されていない。明記されていない限り、本明細書に記載された例示的な方法およびプロセスは、特定の順番または順序に制約されることも特定のシステム構成に制約されることもない。加えて、説明されている実施形態またはその要素のいくつかは、同時に、同じ時点で、または並行して行われることも実施されることもあり得る。
【0023】
[0030] 本明細書では、特にことわらない限り、用語の「または」は、実行不可能な場合を除き、すべての可能な組み合わせを包含する。たとえば、ある構成要素がAまたはBを含むことができると記載されている場合、特にことわらない限り、または実行不可能ではない限り、その構成要素はA、もしくはB、またはAおよびBを含むことができる。第2の例として、ある構成要素がA、BまたはCを含むことができると記載されている場合、特にことわらない限り、または実行不可能ではない限り、その構成要素はA、もしくはB、もしくはC、またはAおよびB、もしくはAおよびC、もしくはBおよびC、またはAおよびBおよびCを含むことができる。
【0024】
[0031] 次に、開示された諸実施形態を詳細に参照するが、これらの例が添付の図面に示されている。明記されていない限り、本明細書では、送信および受信が、特定の要求に応じた、またはそのような特定の要求がない送信または受信を含む、広い意味を有すると理解されたい。したがって、これらの用語は、送信および受信の能動形と受動形の両方を包含する。
【0025】
[0032] 本明細書で説明されている実施形態では、コンピュータシステムによる自然言語技術を使用して、限られたトレーニングデータに基づいて、意見をマイニングして分類情報を抽出するための技術および技法を提供する。
【0026】
[0033] 説明されている実施形態は、既存の自然言語処理技法にまさる明確な利点を提供する。他のプロセスとは異なり、開示された実施形態で説明されているエンティティマッチング技法は、エンティティのタイプが異なる複数のマッチングタスクに使用することができる。加えて、説明されている実施形態は、エンティティマッチングの問題を分類の問題に変換して、BERTなどの変換器言語モデルをマッチングタスクに利用可能にすることができる。変換器言語モデルを使用することにより、本明細書に開示された実施形態では、エンティティ間の多様な関係を決定することができる。このモデルは、同じことを異なるように言うことが多い個人または質問に応答することが必要になり得る自然言語処理システムにおいて、重要な利点をもたらすことができる。分類情報を用いる一般化マッチングフレームワークを可能にすることによって、本明細書に開示された実施形態は、自然言語処理を使用するための能力の改善を多様な産業および特定化されたコンテキストにおいて、ただ1つのマッチングタスクのために構築された時間と費用のかかる専用マッチングフレームワークを必要とせずに、実現することができる。
【0027】
[0034] 図1は、本開示の実施形態と合致する、一般化エンティティマッチングシステムの例示的な構成要素を示すブロック図である。一般化エンティティマッチングシステム(GEM)100は、各タイプのエンティティのデータベースを個別に処理することによって、エンティティの初期対を作成してマッチがないかを調べるためのプロセッサ110を含むことができる。いくつかの実施形態において、候補対は、ユーザ入力、他のシステム、他のデータソース、または一般化エンティティマッチングシステム100もしくはその構成要素からのフィードバックによって、供給することができる。図1に示されるように、GEM 100は、プロセッサ110、照合器120、および説明器130などの構成要素を含むことができる。GEM 100はまた、データセットリポジトリ140などのデータ記憶装置を含むこともできる。GEM 100は、照合器120を使用して、データセットリポジトリ140中の異なるエンティティタイプのエンティティ同士をマッチングする。いくつかの実施形態において、GEM 100は、データセットリポジトリ140に記憶されたデータを入力として使用して、照合器120の機械学習(ML)モデルを訓練することができる。いくつかの実施形態において、GEM 100は、プロセッサ110および説明器130を使用して、それぞれ照合器120によってマッチングされるエンティティを前処理し、マッチしたエンティティを後処理して、マッチの理由を説明することができる。
【0028】
[0035] プロセッサ110は、照合器120などの下流モジュールが、利用可能なエンティティのすべての可能な対のうちの、エンティティの対のサブセットをマッチングすることを管理可能にする。プロセッサ110は、エンティティの多様な組み合わせの中で可能性のある候補対を作成してマッチするエントリを見つけるために、入力エンティティを操作する複数のルールベースのプリプロセッサを含むことができる。図1に示されるように、プロセッサ110は、パーサ111、デデュプリケータ(de-duplicator)112、ブロッカ113、およびサンプラ114を含むことができる。
【0029】
[0036] パーサ111は、エンティティを機械読み取り可能な形式に変換する助けになる。たとえば、パーサ111は、HTMLおよびPDF形式の求人情報および志望者の履歴書のエンティティを機械可読JSON形式に変換して、そのエンティティのコンテンツに階層構造を与えることができる。パーサ111は、エンティティのコンテンツの順番またはコンテンツ自体などの、エンティティのコンテンツ構造を修正しない。
【0030】
[0037] パーサ111は、ルールベースのプロセッサを使用して、エンティティ中のコンテンツを構造化形式に変換することができる。パーサ111によって処理される、エンティティに与えられる階層構造は、エンティティタイプに依存し得る。たとえば、履歴書データは、経験、スキル、教育、半構造化JSON形式データに変換するためのセクションからなる既知の構造を有する傾向がある。履歴書エンティティとは異なり、求人情報は通常、最小限の構造を持つ長いテキスト記述を有し、最終的に、あまり構造化されていないJSON形式データになる。パーサ111は、例示的なテンプレートスキーマを使用して、エンティティのコンテンツを変換することができる。いくつかの実施形態において、パーサ111は、提供されたエンティティに基づいてスキーマを生成することができる。パーサ111は、同じタイプの複数のエンティティを見直して、そのエンティティを半構造化JSON形式データに変換するための標準スキーマを決定することができる。たとえば、パーサ111は、利用可能なエンティティと、そのコンテンツおよびコンテンツの順番とに基づいて、JSON形式データのキーおよび階層構造として使用するための属性を決定することができる。パーサ111を用いて半構造化JSON形式データに変換された求人情報および履歴書の例については、以下の図2に関する記述で説明する。パーサ111はまた、エンティティのデータを解析してスパムエントリを特定する助けにもなり得る。たとえば、パーサ111は、会社名の電子メールID形式にされたデータを見つけると、そのエンティティをスパムエントリとみなし、照合器120によってマッチングされる候補対と考えられないようにフィルタリングすることができる。
【0031】
[0038] いくつかの実施形態において、パーサ111は、様々なデータソース(たとえば、ウェブサイト上の外部求人情報、ウェブサイト上のジョブレビュー、およびジョブサイトにアップロードされた履歴書)からデータを取得し、そのデータを一般化エンティティマッチングシステム(GEM)100の残りの部分で使用できるようにエンティティに加工することができる。パーサ111はさらに、データ抽出器111-1、データ変換器111-2、およびデータローダ111-3の各モジュールを含むことができる。データ抽出器111-1とデータ変換器111-2は協働して、データセットリポジトリ140に記憶されるエンティティを生成することができる。データ変換器111-2は、データ抽出器111-1によってデータソースから抽出された異種データを結合し、データセットリポジトリ140に記憶することができる。
【0032】
[0039] データ抽出器111-1は、様々なデータソースから、たとえば、Indeed.comやDice.comなどの求人情報サイト、glassdoor.comなどのジョブレビューサイト、LinkedInなどのソーシャルネットワークからデータを取得する。これらのデータソースのそれぞれが、異なるタイプのデータソースである可能性がある。たとえば、データソースは、データセットリポジトリ140と同様のデータベースとすることができる。データソースは、志望者の履歴書などの構造化データであり得る。いくつかの実施形態において、データソースは、求人情報およびジョブレビューなどのフラットファイルとすることができる。さらに、データソースは、重複するデータセットまたは完全に異種のデータセットを含むことができる。いくつかの実施形態において、1つのデータソースは求人情報に関する情報を含み、他のデータソースは、求人情報で広告された職の給与情報と、求人情報で広告されたものと同様の職における以前および現在の雇用主によるレビューを含むことができる。データ抽出器111-1は、多様なデータソースと相互作用し、関連するデータを取得し、そのデータをデータ変換器111-2に提供することができる。
【0033】
[0040] データ変換器111-2は、データ抽出器111-1からデータを受信し、そのデータを標準的な形式になるように処理することができる。いくつかの実施形態において、データ変換器111-2は、日付、住所、職業名などのデータを正規化することができる。たとえば、求人情報のデータソースは、職業名をストリングとして含むことができ(たとえば、エンジニア、ディレクター、マネージャーなど)、ジョブレビューのデータソースは、職業名を組織内の多様なレベル(たとえば、L1、L2など)として記憶することができる。この例では、データ変換器111-2は、データ抽出器111-1から提供されたデータを一貫性のある形式に修正することができる。したがって、データ変換器111-2は、データ抽出器111-1を通じて提供されたデータを効果的にクリーニングすることができ、それによりすべてのデータが、多様なソースに由来しているが、一貫性のある形式を有するようになる。いくつかの実施形態において、データ変換器111-2は、様々なソースからのデータを組み合わせることによって、データをクリーニングすることができる。たとえば、ジョブレビューデータは、各職の給与範囲を含むことができるが、求人情報は、給与範囲を含まない可能性がある。第2の例では、データ変換器111-2は、求人情報のウェブページを解析することによって生成される求人情報エンティティにおいて、欠けている給与範囲を含み得る。
【0034】
[0041] さらに、データ変換器111-2は、データ抽出器111-1によって送信されたデータから追加のデータポイントを抽出することができる。たとえば、データ変換器111-2は、働き口の場所および会社の場所の別々のデータフィールドを抽出することによって、仕事が遠隔の職であるかどうかを判断することができる。データ変換器111-2はまた、正規化および脱意味化(demeaning)などの、カテゴリデータおよび数値データに対する他の線形変換および非線形変換ならびに抽出を実施することもできる。いくつかの実施形態において、データ変換器111-2は、データ抽出器111-1によって抽出されたデータを匿名化することができる。データ変換器111-2は、データを匿名化して、一般化エンティティマッチングシステム100において機械学習モデルを訓練するためにプライベートデータが使用されることを回避することができる。データ変換器111-2は、変換または抽出されたデータをデータローダ111-3に供給することができる。いくつかの実施形態において、データ変換器111-2は、データローダ111-3、およびプロセッサ110の他のモジュールが後で使用するために、変換されたデータをデータセットリポジトリ140に記憶することができる。
【0035】
[0042] データローダ111-3は、正規化されたデータをデータ変換器111-2から受信することができる。データローダ111-3は、そのデータをGEM 100の特定の要件に依存する多様な形式にマージし、このデータをデータセットリポジトリ140などの適切な記憶機構に記憶することができる。
【0036】
[0043] デデュプリケータ112は、データセットリポジトリ140から重複エンティティを除去して候補対231を作成する助けになる。志望者に推奨すべき関連する仕事を見つけるための例示的なシナリオでは、GEM 100は、デデュプリケータ112を使用して、多様なウェブサイトにアップロードされた同じ求人情報のコピーを、別の求人情報とみなされることから排除することができる。デデュプリケータ112は、ルールベースのプロセッサを使用して、エンティティの重複コピーを除去する。ルールベースのプロセッサは、エンティティのコンテンツの特定のセクション内でマッチングするテキストを見つけるための単純なルールを含むことができる。たとえば、志望者に推奨すべき関連する仕事を見つけるという上述のシナリオにおいて、デデュプリケータ112は、キーワードベースの検索を用いて会社および職業名を文書内で見つけるためのルールを含むことができる。キーワード検索では、可能なキーワードのリストを調べることもできる。たとえば、デデュプリケータ112は、キーワードの「役割」、「肩書」、「職業名」、「職」、「働き口」などを検索することによって、働き口を特定することができる。別の例では、デデュプリケータ112は、求人情報文書の最上部を見ることによって会社名を見つけることができ、または会社の住所を示す住所形式のテキストを見つけることができる。デデュプリケータ112は、複数のキーワードを使用して取得したテキストと、エンティティのコンテンツ中の特定の位置から取得したテキストとを組み合わせて、重複エンティティを決定することができる。たとえば、上述の例示的なシナリオにおいて、会社名または職業名だけでは重複エンティティを特定する助けにならない可能性があるが、組み合わされると、重複エンティティを除去するためにデデュプリケータ112が使用できる固有の位置を表す。いくつかの実施形態において、デデュプリケータ112は、2つよりも多いルールベースの検索を使用してエンティティを一意に特定することが必要になり得る。たとえば、上記の例示的なシナリオにおいて、1つの会社からの同じ働き口が複数の場所で入手可能である場合があるので、重複を特定および除去するために、場所が職業名および会社名とともに検索される必要があり得る。
【0037】
[0044] いくつかの実施形態において、デデュプリケータ112は、N-gramルールベースのプロセッサを使用して重複エンティティを特定することができる。N-gramプロセッサは、肩書が職業名の後に続いていることを予測し、その肩書を使用して潜在的な重複エントリを特定することができる。
【0038】
[0045] ブロッカ113は、決してマッチしないエンティティ対を阻止する助けになることができる。GEM 100は、エンティティの潜在的マッチングのために照合器120によって見直されるべきエンティティ対の数を制限するために、ブロッカ113の阻止機能をユーザ160が構成することを可能にすることができる。阻止機能は、高速で再現率が高く、無関係なマッチングだけを回避する、単純なルールベースのプロセッサとすることができる。たとえば、マッチングジョブを見つけるためのシナリオにおいて、ブロッカ113は、ブロッカ113の阻止機能として「肩書」属性値がマッチしないことを使用してもよい。ブロッカ113は、パーサ111から出力された階層的なキー値構造データを使用して、「肩書」属性値を取得することができる。いくつかの実施形態において、ブロッカ113は、照合器120に送信されるエンティティ対をさらに洗練して潜在的なマッチを予測するために、複数の阻止機能を含むように構成することができる。たとえば、ブロッカ113は、照合器120と共有すべき可能性のあるエンティティ対をさらに洗練してマッチを予測するために、「肩書」マッチルールベースのブロッカ機能の後に適用されるべきQ-gram阻止機能を含むことができる。Q-gram阻止機能は、エンティティ中で2つの列の近似的なマッチングを可能にすることによって、マッチングの可能性のある対の組を洗練するために、エンティティ対を阻止する。2つの列の近似的なマッチングは、これらの列が長さQのサブ列だけ異なることを許容することを含むことができる。エンティティの任意の2つの列が長さQのサブ列を超えるだけ互いに異なる場合、2つの列によって表される2つのエンティティの対形成では、常に対形成することが阻止される。ユーザ160は、ブロッカ113に含むべきブロッキング機能を選択および/または画定するようにGEM 100を構成することができる。
【0039】
[0046] サンプラ114は、ブロッカ113によって阻止されないエンティティ対をフィルタリングすることができる。サンプラ114は、場合によって考慮されない可能性があるコンテンツをマッチングすることによってフィルタリングすることができる。サンプラ114は、ユーザ160によって、エンティティのサブセットを選択して照合器120に入力対を供給するように構成することができる。サンプラ114の構成には、GEM 100によって考慮されるべきいくつかのうちの、またはGEM 100によって特定されると予想されるマッチの数のうちの、いくつかのエンティティ対を含むことができる。たとえば、関連のある仕事を志望者に推奨するために仕事エンティティを履歴書エンティティとマッチングするシナリオでは、ユーザ160は、志望者への最小数および最大数の仕事推奨を含むようサンプラ114を構成し、サンプラ114に、仕事エンティティと履歴書エンティティの可能性のある対のうちのいくつかを照合器120によるマッチングのために選ばせるようにすることができる。サンプラ114は、複数のフィルタが重ねられることを可能にすることができる。上記の例示的なシナリオにおいて、ユーザ160はさらに、様々な大きさの会社(たとえば、大企業、新興企業)に対する最小値および最大値を設定するように構成することができる。
【0040】
[0047] 照合器120は、マッチするエンティティを特定することを支援できる機械学習(ML)モデルである。照合器120は、最も良くマッチするエンティティを見つけるために、データセットリポジトリ140に存在するエンティティのうちの候補対を取得することができる。照合器120は、エンティティの各対をスコアリングし、マッチスコアが最も高い上位パーセンテージのエンティティ対を選ぶことによって、最も良くマッチするエンティティを見つけることができる。いくつかの実施形態において、照合器120は、マッチスコアが低いエンティティ対を落とすことによって、マッチしたエンティティを選ぶことができる。
【0041】
[0048] 図1に示されるように、照合器120は、マッチしたエンティティ対を予測するためのデータをセットアップする入力層121を含むことができる。照合器120はまた、それぞれ入力エンティティ対を処理し、関連情報をフィルタリング除去し、マッチ結果を提示するためのエンコーディング層122、プーリング層123、出力層124を含むこともできる。照合器120のMLモデルの多様なアーキテクチャについての詳細な説明は、以下の図4の説明で提示する。
【0042】
[0049] 照合器120は、既知の言語モデル、たとえば、修正を加えたBERT、Long Formerなどとすることができる。修正は、既存の層の修正を含むことができ、たとえば、エンコーディング層122は、長いストリングを有する最小限に構造化された仕事エンティティをさらに構造化するための分類器を含むことができる。修正されたエンコーディング層122の機能についての詳細な説明は、以下の図4の説明で提示する。いくつかの実施形態において、修正は、可能性のあるマッチの数を減らし、最良のマッチを予測するために、プーリング層123などの新規の層の追加を含むことができる。
【0043】
[0050] 照合器120は、データセットリポジトリ140からエンティティ対にアクセスして、マッチを予測することができる。いくつかの実施形態において、照合器120は、エンティティ対を直接受け取ってマッチを予測することができる。ユーザ160が、ネットワーク150を介してエンティティ対を照合器120に供給することができ、またはプロセッサ110が、エンティティ対を供給してマッチを予測することができる。いくつかの実施形態において、照合器120は、マッチ予測を行う前に一組のエンティティ対をバッファすることができる。
【0044】
[0051] データセットリポジトリ140は、リレーショナルデータベース管理システム(RDBMS)(たとえば、Oracle Database、Microsoft SQL Server、MySQL、PostgreSQL、またはIBM DB2)とすることができる。RDBMSは、行全体のデータ、またはレコードを、可能な限り少ない操作でデータベースから効率的に返すように設計することができる。RDBMS は、データの各行を直列化することによってデータをデータ構造として記憶することができる。RDBMSでは、1つのレコードに関連するデータは、そのレコードの全カテゴリに関連するデータを1回の操作でアクセスできるように、直列に記憶することができる。さらに、RDBMSは、異種テーブルに記憶された関連レコードへのアクセスを効率的に可能にすることができる。たとえば、RDBMSでは、テーブル同士を参照列によってリンクすることができ、RDBMSは、テーブルを互いに結合してデータ構造のデータを取得することができる。いくつかの実施形態において、データセットリポジトリ140は、非リレーショナルデータベースシステム(NRDBMS)(たとえば、XML、Cassandra、CouchDB、MongoDB、Oracle NoSQL Database、FoundationDB、またはRedis)とすることができる。非リレーショナルデータベースシステムは、多様なデータ構造を使用して、とりわけ、キー値ストア、ドキュメントストア、グラフ、およびタプルストアなどを使用して、データを記憶することができる。たとえば、文書ストアを使用する非リレーショナルデータベースは、特定の識別子に関連するすべてのデータを、XMLを使用して符号化された単一の文書になるように結合することもできる。データセットリポジトリ140はまた、Memcachedなどのメモリ内データベースとすることもできる。いくつかの実施形態において、データセットリポジトリ110のコンテンツは、例えばRedisで可能なように、永続的記憶データベースにもメモリ内データベースにも存在することができる。
【0045】
[0052] 一般化エンティティマッチングシステム(GEM)100は、ネットワーク150を介して、エンティティ間のマッチングを予測するための要求を受け取ることができる。ネットワーク150は、ローカルネットワーク、インターネット、またはクラウドとすることができる。ユーザ160は、エンティティ同士をマッチングする要求を一般化エンティティマッチングシステム100へネットワーク150を介して送信することができる。ユーザ160は、ユーザデバイス170を通してGEM 100と対話することができる。ユーザデバイス170は、ウェブブラウザまたはインストールされたアプリケーションを使用するタブレット、ラップトップ、またはポータブルコンピュータなど、多様なデバイスとすることができる。ユーザ160は、エンティティ間のマッチを予測するために、マッチング要求180を一般化エンティティマッチングシステム100へネットワーク150を介して送信する。
【0046】
[0053] GEM 100の構成要素は、単一のコンピュータ上で動作することも複数のコンピュータまたはプロセッサに分散させることもできる。GEM 100の様々な構成要素は、ネットワーク(たとえば、LANもしくはWAN)160またはインターネットを介して通信することができる。いくつかの実施形態において、各構成要素は、複数のコンピュータインスタンスまたはプロセッサ上で動作することができる。GEM 100の各構成要素のインスタンスは、クラウドネットワーク(たとえば、Amazon AWS、Microsoft Azure、Google Cloud)などの、接続されたネットワークの一部とすることができる。いくつかの実施形態において、GEM 100の構成要素の一部または全部は、ハイパーバイザまたは仮想マシンなどの仮想化環境で動作する。
【0047】
[0054] 図2は、本開示の実施形態と合致する、図1の例示的な一般化エンティティマッチングシステム100のフロー図である。一般化エンティティマッチングシステム(GEM)100のマッチング予測は、多様な段階1~5を経由することによるデータの変換を含み、また、変換されたデータを照合器120のさらなる訓練のためにバックプロパゲーションすることを含むことができる。
【0048】
[0055] 段階1で、GEM 100は、エンティティのレコードをGEM 100で処理するために受信しクリーンアップすることができる。GEM 100は、エンティティレコードをユーザ160からネットワークを介して受信することができる。いくつかの実施形態において、エンティティレコード201は、ラベル付きデータおよび非ラベル付きデータを含むことができる。ラベル付きデータは、以前の反復のデータである可能性がある。
【0049】
[0056] GEM 100は、パーサ111ツールおよびデデュプリケータ112ツールを使用して受信エンティティレコード210をクリーンアップする。パーサ111およびデデュプリケータ112は、コンテンツの順番などのコンテンツの構造を維持しながら、半構造化データ構造を使用してエンティティレコード210中のコンテンツを統一形式に変換することによって、エンティティレコード210のクリーンアップを支援することができる。GEM 100は同時に、パーサ111を使用してエンティティレコード210を解析し、デデュプリケータ112を使用してエンティティレコード210の中で重複エンティティを決定することができる。
【0050】
[0057] 段階2で、GEM 100はさらに、マッチしたエンティティを見つけるために、エンティティレコード210のリストをクリーニングすることができる。GEM 100は、ブロッカ113を使用して、マッチしたエンティティを見つけるために考慮すべきエンティティレコード210からのエンティティの対を特定することができる。ブロッカ113は、キーワード221および属性222を用いて候補対231を決定する。ユーザ(たとえば、図1のユーザ160)は、エンティティレコード210内でエンティティの対を見つけて候補対231を生成するようにキーワード221および属性222を構成することができる。
【0051】
[0058] ブロッカ113は、キーワード221を使用してエンティティの候補対231を見つけ、マッチしたエンティティを特定することができる。ブロッカ113は、エンティティの対におけるキーワードを調べ、両方のエンティティがエンティティ中の情報としてキーワードを含む場合に、これらを対にすることができる。ブロッカ113は、様々なタイプのエンティティを対にするときに、この技法を用いることができる。たとえば、GEM 100は、仕事と履歴書タイプのエンティティをマッチングすることによって志望者に推奨する仕事を特定し、職業名などのマッチングキーワードを調べてエンティティを対にし、マッチングエンティティ対を見つけることができる。例示的なシナリオでは、履歴書のキーワードとして求人情報にリストされた職業名を検索することにより、以前の職業名同士をマッチングさせて仕事と履歴書エンティティの間で候補対を作成し、候補対231に含めることができる。ブロッカ113は、キーワードベースのマッチングを用いて、同じタイプのエンティティの候補対を特定することができる。たとえば、仕事エンティティ中の職業名は、候補対として同じ職業名を持つ他の仕事エンティティを見つけるためのキーワードとして使用することができる。
【0052】
[0059] いくつかの実施形態において、ブロッカ113は、属性222を使用して、エンティティ間でマッチする属性を検索することによって、候補対231を見つけることができる。ブロッカ113はこの技法を、同じ種類のエンティティを対にするときに使用することができる。たとえば、マッチする求人情報を見つけるように構成されたGEM 100は、マッチする属性を持っていない2つの仕事エンティティを、候補対231に含めるべき好適な候補対ではないとみなすことができる。いくつかの実施形態において、ブロッカ113は、エンティティ同士をマッチングするために、最初に、特定の属性が存在するかを調べることができる。たとえば、2つの求人情報をマッチングするように構成されたGEM 100は、更なるマッチングを行う前に、両方の仕事エンティティに「職業名」が存在するかを調べることができる。いくつかの実施形態において、ブロッカ113は、キーワード検索と属性ベースの検索との両方を一緒に用いて、マッチするエンティティを特定することができる。
【0053】
[0060] 段階3で、GEM 100はさらに、利用可能なエンティティレコード210の中でエンティティを限定して、マッチしたエンティティを見つけることができる。GEM 100は、サンプラ114を使用して、マッチしたエンティティ対を見つけるために段階4の照合器120に提供されるエンティティの対をフィルタリングする。たとえば、志望者に推奨する仕事を見つけるために使用されるGEM 100は、サンプラ114を使用して、ブロッカ113によって決定される求人情報と志望者履歴書のエンティティ対を最大10個のエンティティに限定し、それによって、一度に推奨される仕事の数を限定することができる。別の例では、サンプラ114は、エンティティ対をフィルタリングして、各地域の志望者に推奨される求人情報の数を限定することができる。サンプラ114は、GEM 100のユーザ(たとえば、図1のユーザ160)によって行われた設定に基づいて、いくつかの候補対231を選択することができる。
【0054】
[0061] 段階4で、GEM 100は、照合器120を使用して、マッチするエンティティを見つけることができる。いくつかの実施形態において、GEM 100は、マッチしたエンティティを特定することを改善する助けになるように、訓練データセット241を使用して照合器120を訓練することができる。照合器120は、マッチしたエンティティを決定することの助けになるように、ドメイン知識242および構造的知識243などの追加情報を受け取る。照合器120は、ドメイン知識242および構造的知識243を使用して、候補対231のエンティティを分類することによって、候補対231のエンティティのコンテンツを処理することができる。構造的知識243は、パーサ111によって長いテキスト記述とみなされ得るエンティティのコンテンツの一部分を分類するためにトークンを適用する助けになり得る。たとえば、志望者に推奨すべきマッチする仕事エンティティを見つける照合器120は、求人情報に関する構造的知識を用いて職務明細の長いテキストを変換し、職務、責任、スキル、利点などの様々な属性と関連付けて、属性を用いてエンティティ同士をマッチングすることを助けることができる。別のシナリオでは、照合器120はドメイン知識を用いて、職業名の「主任技師」と「エンジニアフェロー」が同じものを意味すること、およびエンティティ同士がマッチング可能であることを理解することができる。
【0055】
[0062] 段階5で、GEM 100は、説明器130を使用して、マッチしたエンティティの結果を説明することができる。説明器130は、照合器120によって特定されたマッチしたエンティティを見直して、マッチしたエンティティ対の結果を説明することができる。説明器130は、エンティティとのマッチを見つけるために重要なエンティティのコンテンツの一部分を強調することによって、説明を行うことができる。いくつかの実施形態において、説明器130は、マッチしたエンティティの最も離れた及び近いものを強調する、マッチしたエンティティに関連する属性間の距離を示す表形式表現を提供することができる。
【0056】
[0063] 説明器130は、マッチしたエンティティを説明するために、テキストを強調することによって、または単語レベルおよび属性レベルの説明技法を用いて表形式で、出力を提示することができる。説明器130は、照合器120の機械学習モデル(たとえば、BERTなどの変換言語モデル)の様々な層を通過した直列化エンティティのトークンの注目重みを取得することによって、単語レベルの説明を行うことができる。説明器130は、マッチしたエンティティ対の第1の直列化エンティティのソーストークンと第2の直列化エンティティのターゲットトークンとの間の注目重みを計算することができる。各層の注目出力は、3次元テンソルとすることができる。説明器130は、トークンを表すエンティティのテキストを、その集計スコアが最上位象限内に入る場合に強調することができる。説明器130は、3次元テンソルの少なくとも最初の2つの次元を合計することによって、トークンの集計スコアを計算することができる。集計スコアは、最高の集計スコアを持つトークンを見つけることによって、マッチの理由を特定するのに使用することができる。
【0057】
[0064] 説明器130は、照合器120によって決定されたマッチしたエンティティ対の第1および第2のエンティティの多様な属性間の距離を示す属性レベルの説明を用いて、表形式で説明を提示することができる。説明器は、プロセッサ110によって特定されたエンティティの属性間のユークリッド距離を決定して、表出力を用意することができる。この距離は、距離が最大の属性を見つけることによってマッチなしの理由を特定するのに使用することができる。
【0058】
[0065] 図3は、本開示の実施形態と合致する、図1の一般化エンティティマッチングシステム100によって生成されたエンティティの例示的なデータ構造を示す。図3に示されるように、求人情報スキーマ310および履歴書スキーマ320は、仕事エンティティおよび履歴書エンティティの半構造化表現を表す。パーサ111は、求人情報および履歴書をリストするHTML文書およびPDF文書を解析して、仕事エンティティおよび履歴書エンティティの半構造化JSON表現を生成することができる。半構造化JSON表現310および320は、キーの値としてのエンティティの文書中の情報の一部分にマップされた、キーワードとして提示される多様な属性を含む。たとえば、求人情報スキーマ310のエンティティの属性311および312は、求人情報エンティティを表す求人情報文書中に存在する様々な情報にマップされる。値は、キーで表されるより多くの属性とマップされた値との間の追加のマッピングを含むことができる。属性312は、追加の属性として、「肩書」、「会社」、および「国」を含む。いくつかの実施形態において、エンティティを表す文書中の情報の一部分は、属性にマップされた単一の長い値として使用することしかできない。たとえば、職務明細情報は、値「<LongJobDescription>」にマップされた「コンテンツ」キーで表される長いテキスト記述とすることができる。
【0059】
[0066] GEM 100は、エンティティタイプを表す既存のスキーマを使用して、求人情報のHTMLページ、または履歴書のPDFファイルなどのエンティティ文書をJSON形式エンティティ(たとえば、求人情報スキーマ310および履歴書スキーマ320など)に変換することができる。GEM 100は、パーサ111を要求して、エンティティ文書をJSON形式エンティティに変換することを助けることができる。ユーザ(たとえば、図1のユーザ160)は、JSON形式エンティティに変換するためのスキーマを提供することができる。いくつかの実施形態において、GEM 100は、エンティティ文書を解析して、JSON形式エンティティを用意するためのスキーマを自動的に決定することができる。GEM 100は、異なる情報を持つ同じタイプの複数のエンティティ文書を考慮して、エンティティタイプごとに1つの汎用スキーマを用意することができる。
【0060】
[0067] JSON形式エンティティは、エンティティ文書中の情報を階層的構造化エンティティとして編成することができる。たとえば、属性311は、1つのキー「コンテンツ」を1つの値「<LongJobDescription>」にマップするが、属性312は、キー「情報」を一組のキー値の対にマップする。いくつかの実施形態において、1つの属性をキー値の対の複数の組にマップすることができる。たとえば、属性321は、異なる値に対して繰り返されるキーの同じ組をそれぞれが持つ、キー値の対の組のリストにマップされたキー「経験」を含む。JSON形式エンティティの階層的性質により、1つのエンティティが、エンティティ全体を別のエンティティのキーにリンクすることによって、別のエンティティの一部になることが可能になる。
【0061】
[0068] 図4は、本開示の実施形態と合致する、図1の一般化エンティティマッチングシステム100によって生成されたデータの例示的な直列化を示す。フォーム表(たとえば、図4の表410)およびJSON文書(図3の求人情報スキーマ310)中にある構造化データおよび半構造化データは、照合器120(図1に示す)の入力層121(図1に示す)によって直列化される。入力層121は、構造化データをストリングに直列化するためのシリアライザ(たとえば、図6のシリアライザ610)を含むことができる。図4に示されるように、表の行411および422として表される求人情報エンティティは、直列化エンティティ421および422に直列化することができる。
【0062】
[0069] GEM 100は、エンティティを表すテーブルの各行を「[COL]」および「[VAL]」などの専用トークンを用いて変換して、特定の列の列名および行の値を表すことができる。シリアライザモジュールは列名および値を要求し、「[COL]<列名>[VAL]<列値>」というフォームのエントリを作成する。GEM 100は、各行の列を反復して直列化し、これらを一緒に追加して直列化エンティティを形成することができる。たとえば、直列化されたエンティティ421および422は、表410の列411および412を表し、列中のすべての列名および値が専用トークン「[COL]」および「[VAL]」を使用して一緒に追加される。
【0063】
[0070] GEM 100は、エンティティの対を直列化してマッチしたエンティティ対を特定することができる。GEM 100は、直列化エンティティ対423に示されるように、専用トークン「[CLS]」および「[SEP]」を使用することによって複数のエンティティを直列化することができる。エンティティ対423に示されるように、GEM 100は、「[CLS]」トークンを一連の先頭に追加し、「[SEP]」トークンを追加して直列化エンティティを分離する。GEM 100は、1つの属性に関連するエントリのリストを直列化するときに、スペースまたはカンマ文字をセパレータとして使用することができる。たとえば、属性321(図3に示す)は、キー間のマッピングを含み、リストの各値は、直列化キー値の対のリストが後に続く「[VAL]」トークンによって直列化される。
【0064】
[0071] GEM 100は、半構造化JSON形式エンティティ中の属性を直列化するときに同じ「[COL]」トークンを使用することも別のトークンを使用することもできる。たとえば、属性311は、「[ATTR]コンテンツ[VAL]<LongJobDescription>」として直列化することができる。
【0065】
[0072] 図5は、本開示の実施形態と合致する、例示的なコンピュータデバイス500のブロック図である。いくつかの実施形態において、コンピュータデバイス500は、本明細書で説明する機能を提供する専用サーバとすることができる。いくつかの実施形態において、図1のプロセッサ110、照合器120、説明器130、およびデータセットリポジトリ140などの、一般化エンティティマッチングシステム(GEM)100の構成要素は、コンピュータデバイス500、または並行して動作する複数のコンピュータデバイス500を使用して実施することができる。さらに、コンピュータデバイス500は、本明細書に記載された機能を提供する、またはサーバから情報を受信して記述された機能の少なくとも一部を提供する、第2のデバイスとすることができる。さらに、コンピュータデバイス500は、本開示の実施形態と合致するデータを記憶または提供する追加のデバイスとすることができ、いくつかの実施形態において、コンピュータデバイス500は、仮想マシン、複数の仮想マシン、またはハイパーバイザなどの仮想化コンピュータデバイスとすることができる。
【0066】
[0073] コンピュータデバイス500は、1つまたは複数の中央処理装置(CPU)520、およびシステムメモリ521を含むことができる。コンピュータデバイス500はまた、1つまたは複数のグラフィック処理ユニット(GPU)525、およびグラフィックメモリ526を含むこともできる。いくつかの実施形態において、コンピュータデバイス500は、GPU 525またはグラフィックメモリ526を含まないヘッドレスコンピュータデバイスとすることができる。
【0067】
[0074] CPU 520は、メモリ(たとえば、システムメモリ521)、キャッシュ(たとえば、キャッシュ541)、またはレジスタ(たとえば、レジスタ540のうちの1つ)に記憶された命令セットを実行することができる単一または複数のマイクロプロセッサ、フィールドプログラマブルゲートアレイ、またはデジタル信号プロセッサとすることができる。CPU 520は、とりわけ、データ、命令、浮動小数点値、条件値、メモリ(たとえば、システムメモリ521またはグラフィックメモリ526)内の位置のメモリアドレス、ポインタおよびカウンタを含む、多様なタイプのデータを記憶するための1つまたは複数のレジスタ(たとえば、レジスタ540)を含有することができる。CPUレジスタ540は、命令ポインタ、命令カウンタ、またはメモリスタックポインタなどの、命令を実行することに関連するデータを記憶するために使用される専用レジスタを含むことができる。システムメモリ521は、フレキシブルディスク、ハードディスク、コンパクトディスク読み取り専用メモリ(CD-ROM)、光磁気(MO)ドライブ、デジタル多用途ディスクランダムアクセスメモリ(DVD-RAM)、固体ディスク(SSD)、フラッシュドライブあるいはフラッシュメモリ、プロセッサキャッシュ、メモリレジスタ、または半導体メモリなどの、有形または非一時的コンピュータ可読媒体を含むことができる。システムメモリ521は、データを記憶すること、およびCPU 520による直接アクセスを可能にすることができる、1つまたは複数のメモリチップとすることができる。システムメモリ521は、任意のタイプのランダムアクセスメモリ(RAM)、または本明細書に記載のように動作することができる他の利用可能なメモリチップとすることができる。
【0068】
[0075] CPU 520は、バスと呼ばれることもあるシステムインターフェース550を介してシステムメモリ521と通信することができる。GPU 525を含む実施形態において、GPU 525は、メモリ(たとえば、グラフィックメモリ526)を操作および変更して画像の作成を実現または加速できる、任意のタイプの専用回路とすることができる。GPU 525は、グラフィックデータの大規模並列ブロックを汎用CPU 520よりも効率的に処理するように最適化された高度並列構造を有することができる。さらに、GPU 525の機能は、専用処理ユニットまたはコプロセッサのチップセットに含めることができる。
【0069】
[0076] CPU 520は、システムメモリ521または他のメモリに記憶されたプログラミング命令を実行し、メモリ(たとえば、システムメモリ521)に記憶されたデータに対して動作し、また、コンピュータデバイス500の多様な構成要素間の通信をブリッジするシステムインターフェース550を介して、GPU 525と通信することができる。いくつかの実施形態において、CPU 520、GPU 525、システムインターフェース550、またはこれらの任意の組み合わせが、単一のチップセットまたは処理ユニットに組み込まれる。GPU 525は、メモリ(たとえば、システムメモリ521)に記憶された命令セットを実行して、システムメモリ521またはグラフィックメモリ526に記憶されたグラフィックデータを操作することができる。たとえば、CPU 520は、GPU 525に命令を与えることができ、GPU 525は、その命令を処理して、グラフィックメモリ526に記憶されているグラフィックデータをレンダリングすることができる。グラフィックメモリ526は、ローカルメモリ、システムメモリ、オンチップメモリ、およびハードディスクを含む、GPU 525がアクセス可能な任意のメモリ空間とすることができる。GPU 525は、グラフィックメモリ526に記憶されたグラフィックデータを表示デバイス524に表示することを可能にすることができ、あるいは、グラフィック情報を処理し、その情報を接続デバイスに、ネットワークインターフェース518またはI/Oデバイス530を介して提供することができる。
【0070】
[0077] コンピュータデバイス500は、ディスプレイデバイス524と、I/Oコントローラ523に接続された入出力(I/O)デバイス530(たとえば、キーボード、マウス、またはポインティングデバイス)とを含むことができる。I/Oコントローラ523は、システムインターフェース550を介して、コンピュータデバイス500の他の構成要素と通信することができる。ここで、CPU 520はまた、システムインターフェース550を介する以外に、シリアル通信または直接のポイントツーポイント通信などによってシステムメモリ521および他のデバイスと通信することもできることを認識されたい。同様に、GPU 525は、システムインターフェース550以外の方法で、グラフィックメモリ526および他のデバイスと通信することができる。入力を受け取ることに加えて、CPU 520は、I/Oデバイス530を介して(たとえば、プリンタ、スピーカ、骨伝導、または他の出力デバイスを介して)出力を提供することができる。
【0071】
[0078] さらに、コンピュータデバイス500は、多様な接続を介してLAN、WAN、MAN、またはインターネットとインターフェースするための、標準電話回線、LANまたはWANリンク(たとえば、802.21、T1、T3、56kb、X.25)、ブロードバンド接続(たとえば、ISDN、フレームリレー、ATM)、無線接続(たとえば、特に、802.11a、802.11b、802.11b/g/n、802.11ac、Bluetooth、Bluetooth LTE、3GPPまたはWiMaxの各標準に準拠するもの)、または上記のいずれかまたはすべての何らかの組み合わせをこれらに限定されないが含む、ネットワークインターフェース518を含むことができる。ネットワークインターフェース518は、内蔵ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、または通信および本明細書に記載の動作を実施できる任意のタイプのネットワークにコンピュータデバイス600をインターフェースするのに適している、任意の他のデバイスを含むことができる。
【0072】
[0079] 図6A図6Bは、本開示の実施形態と合致する、図1の一般化エンティティマッチングシステム(GEM)100で使用する機械学習モデルの層からなる例示的なネットワークを示す。GEM 100は、層すなわち、入力層121、エンコーディング層122、プーリング層123、および出力層124を含む、機械学習(ML)モデルを使用することができる。GEM 100は、シーケンスアーキテクチャ(図6Aに示す)およびシャムアーキテクチャ(siamese architecture)(図6Bに示す)などの様々なネットワークアーキテクチャを使用して、マッチしたエンティティ対を特定することができる。
【0073】
[0080] 図6Aおよび図6Bに示されるように、入力層121は、入力層121ですでに利用可能なエンティティ611および612を直列化するためのシリアライザ610を含む。シリアライザ610は、エンティティ611および612をストリングに変換することができる。エンティティの直列化についての詳細な説明は、図4に関して上で提示されている。入力層121はまた、GEM 100で使用されるMLモデルに外部知識を入力して、様々な情報を含む様々な形式のエンティティ対の間のマッチを見つけるためのインジェクタ620を含むこともできる。外部知識は、入力エンティティが、マッチしたエンティティ対を予測するのに十分な構造を欠いている場合に特に有用である。たとえば、求人情報エンティティは、「<LongJobDescription>」を構造なしで持つ求人情報スキーマ310(図3に示す)などの、JSON構造で表される長い職務明細を含む。インジェクタ620は、エンティティ同士をより適切にマッチングするのに役立つように非構造化データおよび限定構造化データを変換するために、ドメイン知識(たとえば、図2のドメイン知識242)および構造知識(たとえば、図2の構造知識243)の注入を可能にする。GEM 100は、エンティティの構造を改善するようにMLモデルネットワークで使用するための外部知識を提供するために、ユーザインターフェースをユーザ(たとえば、図1のユーザ160)に提供することができる。GEM 100は、外部知識を用いてエンティティコンテンツ中の情報の文章を分類することができる。GEM 100は、トピックラベルを使用してエンティティ情報中の各文章を分類する分類器を含むことができる。GEM 100は、たとえばデータセットリポジトリ140(図1に示す)から一組の可能な文章のトピックラベルにアクセスして、各文章を分類するとともにエンティティの情報に構造を与えることができる。文章のトピック分類ラベルは、よく知られているエンティティ情報のセクションを含むことができる。たとえば、求人情報エンティティを処理する場合、文章トピック分類器ラベルは、求人情報エンティティの最も一般的なセクションであるセットの{資格、利益、職務、時間、場所、会社}を含むことができる。文章トピック分類器ラベルは、エンティティタイプの他の既知のセクションに該当しない文章に適用するための「なし」ラベルを含むことができる。GEM 100は、マッチしたエンティティを見つけるときに文章をエンティティから除去して、スペースを節約するとともに効率的にマッチを見つけることができる。文章トピック分類器ラベルは、プーリング層123などの上位層で使用されるエンティティに構造を与えるのを助けて、トピック分類器ラベルの様々なグループ化を表す属性をプールする助けになる。
【0074】
[0081] MLモデルネットワークアーキテクチャに応じて、エンティティ611および612は、様々な方法でエンコーディング層122に提供されることができる。図6Aに示すシーケンスアーキテクチャでは、エンティティ610と620は、エンコーダ(たとえば、エンコーダ630)に提供される前に連結されて、連結されたエンティティ対が、直列化エンティティ中の各トークンを表すベクトルを生成するように符号化される。図6Bに示すように、シャムアーキテクチャでは、エンティティ611および612は、エンコーダ640および650に個別に提供されて、プーリング層123によって使用される独立したベクトルを生成するように符号化される。
【0075】
[0082] プーリング層123は、属性をプールするのを助けて、マッチしないエンティティ対をフィルタリング除去することができる。プーリング層123は、エンティティの位置合わせ情報に基づいて直列化されたエンティティに存在する属性をプールする構造認識層である。位置合わせ情報は、エンティティの形式、エンティティタイプ、およびこれらのスキーマを含むことができる。プーリング層123は、同じ均質なスキーマを持つ2つのエンティティ、たとえば、2つの仕事エンティティを、位置合わせされたエンティティ属性の対類似性を用いてマッチングすることができる。位置合わせされた属性は、エンティティをマッチングするために、GEM 100のMLモデルによって特徴として使用される。GEM 100は、マッチングスキーマの位置合わせされた属性{attr,...,attr}の値を表す情報ベクトルv およびv を取ることによって、2つのエンティティeとeをマッチングすることができる。プーリング層123では、属性ごとに2つのベクトル間の要素ごとの積(たとえば、乗算)を実施し、その積ベクトルを連結することによって、エンティティのプーリングスコアを計算する。均質なスキーマのエンティティを使用する場合のプーリング演算の出力は、次式となる。
【0076】
【数1】
【0077】
[0083] プーリング層123は、異なるスキーマを持つ2つのエンティティをマッチングするときに、属性的に最大プーリングを実施することができる。属性的な最大プーリングは、エンティティ中の最も関連性のある属性を見つけることを支援する。プーリング層123は、第1のエンティティ中の各属性を表すベクトルごとに、第2のエンティティ中の複数の属性を表す複数のベクトルとの最大マッチングスコアを計算することによって、属性を最大プールする。ベクトルv によって表されるエンティティe中のattrについては、最大距離は、エンティティe中の多様なベクトルv までの距離を計算することによって算出される。次に、プーリング層123は、すべてのマッチングスコアを連結して、次式のようにプーリング出力を生成する。
【0078】
【数2】
【0079】
[0084] GEM 100は、プーリング層123からの出力を出力層に供給して、エンティティ対間のマッチのラベルを予測することができる。予測ラベルは、対エンティティのマッチまたは関連または否を示すための「はい」または「いいえ」を含むことができる。いくつかの実施形態において、ラベルは、エンティティのどの部分がマッチしているかを示すことができる。たとえば、予測ラベルは、エンティティ対の第2のエンティティの属性とマッチする第1のエンティティの属性を含むことができる。いくつかの実施形態において、予測ラベルは、マッチしたエンティティ対の名前を含むことができる。いくつかの実施形態において、予測ラベルは、エンティティが互いにどの程度マッチするかを示すことができる。たとえば、予測ラベルは、エンティティ間のマッチの程度を示す1~5の範囲の整数とすることができる。GEM 100は、ユーザデバイス170を介して、ユーザ(たとえば、ユーザ160)による出力予測ラベルの設定を可能にすることができる。
【0080】
[0085] 図7は、本開示の実施形態と合致する、一般化エンティティシステムを使用して一対のエンティティ間のマッチを予測するための例示的な方法を示すフローチャートである。方法700のステップは、たとえば、図1の一般化エンティティマッチングシステム100によって、例示の目的の図5のコンピュータデバイス500の機能について実行して、または別様にその機能を使用して、実施することができる。図示の方法700は、ステップの順番を修正するように、また、追加のステップを含むように変更できることを理解されたい。
【0081】
[0086] ステップ710で、一般化エンティティマッチングシステム(GEM)100は、前処理されたエンティティをデータ対としてネットワーク(たとえば、図1のネットワーク150)を介して受信して、マッチしたエンティティを特定することができる。いくつかの実施形態において、GEM 100は、マッチングステップの前にエンティティのデータ対を生成し、このデータ対を、マッチしたエンティティを特定するための候補対(たとえば、図2の候補対231)として含む必要があり得る。いくつかの実施形態において、GEM 100は、プロセッサ110などのデータプロセッサを使用して、エンティティデータを前処理することができる。エンティティデータを前処理するために使用されるプロセッサ110の多様な構成要素についての詳細な説明は、前述の図1の説明で提示されている。
【0082】
[0087] ステップ720で、GEM 100は、データ対をトークンのシーケンスに直列化することができる。一連のトークンは、前述の図4の説明で提示されている「[COL]」および「[VAL]」などの専用タグを含むことができる。
【0083】
[0088] ステップ730で、GEM 100は、外部知識を用いて直列化データ対を符号化することができる。外部知識(たとえば、ドメイン知識242および構造的知識243)は、エンティティ情報に構造を与えてマッチしたエンティティを見つけるのを助けることができる。GEM 100は、構造化エンティティを使用して、1つのエンティティに関連するキーワードおよび属性を用いてマッチを見つけることができ、このエンティティを用いてマッチを見つけることができる。外部知識を注入することについての詳細な説明は、前述の図2の説明で提示されている。
【0084】
[0089] ステップ740で、GEM 100は、データ対の各符号化エンティティの文脈化属性表現に基づいてデータ対の属性をプールすることができる。属性をプールすることは、マッチしたエンティティを特定するために使用されるデータ対のエンティティ中の位置合わせされた属性を支援することができる。GEM 100は、プーリング層123を使用して、位置合わせされた属性をエンティティタイプに基づいた様々な方法で見つけることができる。たとえば、プーリング層123は、データ対のエンティティのタイプがマッチするか否かを検証して、様々なプーリング演算子をプーリング層123の一部として使用することができる。GEM 100によって使用される様々なプーリング演算子についての詳細な説明は、前述の図6A~Bの説明で提示されている。
【0085】
[0090] ステップ750で、GEM 100は、出力層124を使用して、プールされた属性に基づいてデータ対間のマッチングラベルを予測することができる。GEM 100は、「はい」または「いいえ」のラベルを使用して、データ対のエンティティがマッチするか否かを予測することができる。いくつかの実施形態において、GEM 100は、ラベルを使用して、マッチするデータ対のエンティティの一部分の名前を予測することができる。いくつかの実施形態において、予測ラベルは、データ対のラベルが互いにどの程度マッチするかを示すことができる。たとえば、予測ラベルは、ラベル間のマッチの程度を示す1~5の範囲の整数とすることができる。
【0086】
[0091] GEM 100は、ステップ750を完了すると、コンピュータデバイス500によって方法700を実行すること(ステップ799)を完了する。
【0087】
[0092] 図8は、本開示の実施形態と合致する、データを前処理するための例示的な方法を示すフローチャートである。方法800のステップは、図1の一般化エンティティマッチングシステム100によって、例示の目的の図5のコンピュータデバイス500の機能について実行して、または別様にその機能を使用して、実施することができる。図示の方法800は、ステップの順番を修正するように、また、追加のステップを含むように変更できることを理解されたい。
【0088】
[0093] ステップ810で、GEM 100は、2つのエンティティの複数のレコードを受信することができる。GEM 100は、文書(たとえば、履歴書のPDFファイルもしくは求人情報のHTMLページ)またはデータベース表の形のレコードを受信することができる。GEM 100は、ネットワーク(たとえば、図1のネットワーク150)を介して、エンティティのレコードをユーザ(たとえば、ユーザ160)から受信することができる。いくつかの実施形態において、GEM 100は、データセットリポジトリ140に要求することによって、エンティティのレコードを取得することができる(図1に示す)。
【0089】
[0094] ステップ820で、GEM 100は、複数のレコードを階層的なキー値データ構造エンティティに変換することができる。GEM 100は、ステップ810で受信したエンティティレコード中の情報にスキーマを適用することによって、エンティティの階層的なデータ構造を作成することができる。たとえば、GEM 100は、パーサ111(図1に示す)を使用して、エンティティのレコード中のデータを解析するとともにJSON形式エンティティなどの階層的データ構造形式のエンティティに変換することができる。エンティティを解析することについての詳細な説明は、前述の図1の説明で提示されている。
【0090】
[0095] ステップ830で、GEM 100は、ルールベースのプロセッサを使用して重複エンティティを除去して、一意のエンティティを生成することができる。ルールベースのプロセッサは、入力エンティティ中の重複を除去するために、デデュプリケータ112の一部とすることができる。GEM 100は重複を除去して、スペースを節約するとともに効率をよくすることができる。いくつかの実施形態において、GEM 100は重複を除去して、同じエンティティに対して異なるマッチング結果を回避するようにすることができる。ルールベースプロセッサは、様々な属性によって特定されるエンティティのマッチする部分を探して、重複エンティティを特定することができる。たとえば、GEM 100は、会社名と職業名の両方を用いて、エンティティを一意に特定するとともに除去する必要がある潜在的な重複を見つけることができる。重複エンティティを除去するためにデデュプリケータ112を使用することについての詳細な説明は、前述の図1の説明で提示されている。
【0091】
[0096] ステップ840で、GEM 100は、ルールベースのヒューリスティックを用いて一意のエンティティをフィルタリングして、エンティティの候補対を生成することができる。GEM 100は、ブロッカ113およびサンプラ114を使用して、候補対(たとえば、図2の候補対231)とみなされないエンティティをフィルタリングすることができる。たとえば、GEM 100は、エンティティの階層的なデータ構造に変換するときに、ステップ820で情報がどの属性にもマップされないエンティティを特定することによって、フィルタリングする。GEM 100は、キーワードおよび属性ベースのフィルタをルールとともに使用することによって、エンティティをフィルタリングすることができる。一意のエンティティのフィルタリングについての詳細な説明は、前述の図2の説明で提示されている。階層的データ構造形式のエンティティ対に変換された一意のエンティティを特定した後、GEM 100は、そのエンティティがエンティティ対にマッチできるかどうかを予測することができる。100は、フィルタリングされた一意のエンティティ対を、エンティティのマッチを見つけるための入力として供給することができる。
【0092】
[0097] GEM 100は、ステップ840が完了すると、コンピュータデバイス500によって方法800を実行すること(ステップ899)を完了する。
【0093】
[0098] 例示的な実施形態が、方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図またはブロック図を参照して上記で説明されている。フローチャート図またはブロック図の各ブロック、およびフローチャート図またはブロック図のブロックの組み合わせは、コンピュータプログラム製品またはコンピュータプログラム製品上の命令によって実施できることが理解されよう。これらのコンピュータプログラム命令は、コンピュータのプロセッサ、または他のプログラム可能なデータ処理装置に与えられて1つの機械が作り出され、それにより、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサによって実行される命令は、フローチャートまたはブロック図のブロックに明記された機能/動作を実施するための手段を生成するようになる。
【0094】
[0099] これらのコンピュータプログラム命令はまた、コンピュータ可読媒体に記憶することもでき、コンピュータ、他のプログラム可能なデータ処理装置、または他の装置の1つまたは複数のハードウェアプロセッサに特定の方法で機能するように指示することができ、それにより、コンピュータ可読媒体に記憶された命令は、フローチャートまたはブロック図ブロックまたはブロックに明記された機能/動作を実施する命令を含む製造品を形成するようになる。
【0095】
[00100] コンピュータプログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードして、一連の動作ステップがコンピュータ、他のプログラム可能な装置、または他の装置で実施されて、コンピュータ実施プロセスを生成することもでき、それにより、コンピュータまたは他のプログラム可能装置で実行する命令は、フローチャートまたはブロック図ブロックまたはブロックに明記された機能/動作を実施するための処理を実現するようになる。
【0096】
[00101] 1つまたは複数のコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ可読媒体は、非一時的なコンピュータ可読記憶媒体とすることができる。本明細書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置またはデバイスで使用する、またはこれらと接続して使用するプログラムを含有または記憶できる、任意の有形の媒体とすることができる。
【0097】
[00102] コンピュータ可読媒体で具現化されたプログラムコードは、無線、有線、光ファイバケーブル、RF、IRなど、またはこれらの任意の適切な組み合わせをこれらに限定されないが含む、任意の適切な媒体を使用して伝送することができる。
【0098】
[00103] 諸動作、たとえば諸実施形態を遂行するためのコンピュータプログラムコードは、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書くことができる。プログラムコードは、ユーザのコンピュータで全部を実行すること、ユーザのコンピュータで部分的に実行すること、スタンドアロンソフトウェアパッケージとして実行すること、ユーザのコンピュータで部分的に実行すること、および遠隔のコンピュータで部分的に実行するか遠隔のコンピュータもしくはサーバで全部を実行することができる。後者のシナリオでは、遠隔のコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、あるいは接続は、外部のコンピュータと(たとえば、インターネットサービスプロバイダを使用してインターネットを介して)行うことができる。コンピュータプログラムコードは、プロセッサによって実行可能なオブジェクトコードにコンパイルすることができ、または中間オブジェクトコードに部分的にコンパイルすることができ、またはコンピュータプログラムコードを実行するためのインタプリタ、ジャストインタイムコンパイラ、もしくは仮想マシン環境で解釈することができる。
【0099】
[00104] 図中のフローチャートおよびブロック図は、多様な実施形態による、システム、方法、およびコンピュータプログラム製品の可能な実施態様のアーキテクチャ、機能性、および動作の例を示す。この関連で、フローチャートまたはブロック図の各ブロックは、コードのモジュール、セグメントまたは一部分を表すことができ、指定された論理機能を実施するための1つまたは複数の実行可能な命令を含む。いくつかの代替実施形態では、ブロック内に示された機能は、図に示された順序から外れて行われ得ることに留意されたい。たとえば、連続して示された2つのブロックを、実際には、実質的に同時に実行することができ、あるいは場合によってブロックを、含まれる機能に応じて逆の順序で実行することができる。ブロック図またはフローチャートの各ブロック、およびブロック図またはフローチャートのブロックの組み合わせは、特定の機能もしくは動作、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する、専用ハードウェアによるシステムによって実現できることもまた理解されたい。
【0100】
[00105] 説明した実施形態は相互に排他的ではなく、1つの例示的な実施形態に関連して説明した要素、構成要素、材料、またはステップは、所望の設計目的を達成するための適切な方法で他の実施形態と組み合わせること、または他の実施形態から排除することが可能であることを理解されたい。
【0101】
[00106] 上記の明細では、諸実施形態について、実施態様ごとに異なる可能性がある多数の具体的な細部に関連して説明した。説明した実施形態には特定の改造および修正を加えることができる。他の実施形態は、本明細書に開示された本発明の明細および実践を考察することにより、当業者には明らかにすることができる。これらの明細および例は、例示的なものにすぎないと考えられるものである。また、図に示されたステップの順序は例示目的にすぎず、いかなる特定のステップの順序にも限定されるものではないことが意図されている。そのため、当業者には、同じ方法を実施しながら、これらのステップを異なる順序で実施できることを認識することができる。
図1
図2
図3
図4
図5
図6A
図6B
図7
図8
【外国語明細書】