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

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

▶ エヌフェレンス,インコーポレイテッドの特許一覧

特表2023-517870個人の健康データを用いて計算するためのシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-27
(54)【発明の名称】個人の健康データを用いて計算するためのシステム及び方法
(51)【国際特許分類】
   G16H 10/00 20180101AFI20230420BHJP
   G06F 16/9032 20190101ALI20230420BHJP
   G09C 1/06 20060101ALI20230420BHJP
   G06F 21/62 20130101ALI20230420BHJP
【FI】
G16H10/00
G06F16/9032
G09C1/06
G06F21/62 345
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022552898
(86)(22)【出願日】2021-03-04
(85)【翻訳文提出日】2022-11-01
(86)【国際出願番号】 US2021020906
(87)【国際公開番号】W WO2021178689
(87)【国際公開日】2021-09-10
(31)【優先権主張番号】62/984,989
(32)【優先日】2020-03-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/985,003
(32)【優先日】2020-03-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/908,520
(32)【優先日】2020-06-22
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/012,738
(32)【優先日】2020-04-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/128,542
(32)【優先日】2020-12-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/109,769
(32)【優先日】2020-11-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519102141
【氏名又は名称】エヌフェレンス,インコーポレイテッド
【氏名又は名称原語表記】NFERENCE,INC
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】アラヴァムダン,ムラリ
(72)【発明者】
【氏名】ムルガダース,カールティック
(72)【発明者】
【氏名】アルダーナリ,サンカー
(72)【発明者】
【氏名】ラジャセクハラン,アジット
【テーマコード(参考)】
5B175
5L099
【Fターム(参考)】
5B175BA01
5B175FB04
5L099AA15
(57)【要約】
個人の健康データを用いて計算するための技術が提供される。これらの技術は、テキストシーケンスを受信するステップと、テキストシーケンスを複数のエンティティタグ付けモデルに提供するステップであって、複数のエンティティタグ付けモデルの各々が、対応するエンティティタイプを有するテキストシーケンスの1つ又は複数の部分にタグ付けするように訓練される、提供するステップと、複数のエンティティタグ付けモデルを使用してテキストシーケンス内の1つ又は複数のエンティティにタグ付けするステップと、エンティティを代替用語に置換することによって、1つ又は複数のタグ付きエンティティの中の各エンティティを難読化するステップであって、代替用語が、エンティティの1つ又は複数の属性に基づいて選択され、置換されるエンティティと同様の特性を維持する、難読化するステップと、を含む、識別解除方法を含む。
【特許請求の範囲】
【請求項1】
テキストシーケンスを受信するステップと、
前記テキストシーケンスを複数のエンティティタグ付けモデルに提供するステップであって、該複数のエンティティタグ付けモデルの各々が、対応するエンティティタイプを有する前記テキストシーケンスの1つ又は複数の部分にタグ付けするように訓練される、提供するステップと、
前記複数のエンティティタグ付けモデルを使用して前記テキストシーケンス内の1つ又は複数のエンティティにタグ付けするステップと、
前記エンティティを代替用語に置換することによって、前記1つ又は複数のタグ付きエンティティの中の各エンティティを難読化するステップであって、該代替用語が、前記エンティティの1つ又は複数の属性に基づいて選択され、置換される前記エンティティと同様の特性を維持する、難読化するステップと
を含む、識別解除方法。
【請求項2】
前記1つ又は複数のタグ付きエンティティの中の各エンティティを難読化するステップが、共通の対象を指す2つ以上のエンティティを、共通の代替用語に置換するステップを含む、請求項1に記載の識別解除方法。
【請求項3】
前記共通の代替用語が、前記2つ以上のエンティティの1つ又は複数の属性に基づいて選択される、請求項2に記載の識別解除方法。
【請求項4】
前記共通の代替用語が、前記2つ以上のエンティティに関連する性別に基づいて選択される、請求項2に記載の識別解除方法。
【請求項5】
前記共通の代替用語が、前記2つ以上のエンティティに関連する民族性に基づいて選択される、請求項2に記載の識別解除方法。
【請求項6】
1つ又は複数のエンティティにタグ付けする前記ステップが、2つ以上の個人名にタグ付けするステップを含み、更に、
前記1つ又は複数のタグ付きエンティティの中の各エンティティを難読化する前記ステップが、前記2つ以上の個人名の各々を、異なる代替用語に置換するステップを含む、請求項1に記載の識別解除方法。
【請求項7】
前記1つ又は複数のタグ付きエンティティの中の各エンティティを難読化する前記ステップが、共通の人物を指す2つ以上のエンティティを、該共通の人物に関連する性別とマッチングする代替用語に置換するステップを含む、請求項1に記載の識別解除方法。
【請求項8】
前記1つ又は複数のタグ付きエンティティの中の各エンティティを難読化する前記ステップが、共通の人物を指す2つ以上のエンティティを、該共通の人物に関連する民族性とマッチングする代替用語に置換するステップを含む、請求項1に記載の識別解除方法。
【請求項9】
前記1つ又は複数のタグ付きエンティティの中の各エンティティを難読化する前記ステップが、日付を表す2つ以上のタグ付きエンティティを、代替用語の日付に置換するステップを含み、
該代替用語の日付が、ランダム値によって変更された該2つ以上のタグ付きエンティティに基づく、請求項1に記載の識別解除方法。
【請求項10】
共通の患者に関連する日付が、前記同じランダム値によって変更される、請求項9に記載の識別解除方法。
【請求項11】
前記1つ又は複数のタグ付きエンティティの中の各エンティティを難読化する前記ステップが、数値識別子をスクランブルするために、該数値識別子を表す2つ以上のエンティティを、ランダム値でスクランブルするステップを含む、請求項1に記載の識別解除方法。
【請求項12】
前記テキストシーケンスが、電子健康記録の少なくとも一部を含む、請求項1に記載の識別解除方法。
【請求項13】
前記複数のエンティティタグ付けモデルのうちの少なくとも1つが、エンティティタイプのエンティティにタグ付けするように訓練され、該エンティティタイプが、個人名、組織名、年齢、日付、時間、電話番号、ポケットベル番号、臨床識別番号、電子メールアドレス、IPアドレス、ウェブURL、車両番号、住所、郵便番号、社会保障番号、又は生年月日のうちの少なくとも1つを含む、請求項1に記載の識別解除方法。
【請求項14】
前記複数のエンティティタグ付けモデルのうちの少なくとも1つが、ルールベースのアルゴリズムに基づいてエンティティにタグ付けする、請求項1に記載の識別解除方法。
【請求項15】
前記複数のエンティティタグ付けモデルのうちの少なくとも1つが、テキストのシーケンスからの学習に基づいた機械学習モデルを含む、請求項1に記載の識別解除方法。
【請求項16】
前記テキストシーケンスの1つ又は複数の部分をホワイトリスト化するステップであって、前記1つ又は複数のホワイトリスト化された部分が、前記複数のエンティティタグ付けモデルに提供されない、ホワイトリスト化するステップを更に含む、請求項1に記載の識別解除方法。
【請求項17】
前記複数のエンティティタグ付けモデルの各々が、所定の閾値を上回る性能メトリックを実現するために、前記テキストシーケンスの1つ又は複数の部分にタグ付けするように訓練される、請求項1に記載の識別解除方法。
【請求項18】
前記複数のエンティティタグ付けモデルによって識別された前記テキストシーケンスからタグ付きエンティティを集約するステップを更に含む、請求項1に記載の識別解除方法。
【請求項19】
前記集約されたタグ付きエンティティを1つ又は複数のドレグフィルタに通すステップを更に含み、該1つ又は複数のドレグフィルタの各々が、ルールベースのテンプレート又はパターン・マッチング・フィルタのうちの少なくとも1つに基づいて、対応するエンティティタイプをフィルタリングするように構成される、請求項18に記載の識別解除方法。
【請求項20】
前記ルールベースのテンプレートが、
前記テキストシーケンスの1つ又は複数の部分の各々を、対応する構文テンプレートにマッピングするステップと、
前記テキストシーケンスの1つ又は複数の部分に基づいて1つ又は複数の候補構文テンプレートを類推する機械学習モデルに基づいて候補構文テンプレートを識別するステップと、
前記候補テンプレートに対応する前記テキストシーケンスの部分における前記1つ又は複数のタグ付きエンティティの各々を、対応する構文トークンに置換することによって、前記候補構文テンプレートから前記ルールベースのテンプレートを生成するステップと
によって、生成される、請求項16に記載の識別解除方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年12月21日に出願された「Systems and Methods for Computing with Private Healthcare Data」と題する米国仮出願第63/128,542号、2020年11月4日に出願された「Systems and Methods for Computing with Private Healthcare Data」と題する米国仮出願第63/109,769号、2020年6月22日に出願された「Systems and Methods for Computing with Private Healthcare Data」と題する米国非仮出願第16/908,520号、2020年3月4日に出願された「Systems and Methods for Selective Information Masking in Text」と題する米国仮出願第62/984,989号、2020年3月4日に出願された「Pipelined Federated Architecture for Computing with Private Healthcare Data」と題する米国仮出願第62/985,003号、及び2020年4月20日に出願された「Systems and Methods for Augmented Curation and Temporal Discrimination of Health Records」と題する米国仮特許出願第63/012,738号に対する35 U.S.C.第119条(e)の下での優先権を主張し、これらはそれぞれその全体が参照により本明細書に組み込まれる。
【0002】
本発明は、一般に、利用者又は規制によってプライベートと見なされる情報を含み得るデータの処理に関する。
【背景技術】
【0003】
病院、医療提供者及び介護者は、患者から大量のデータを収集する。それは、健康を一般の人々に提供するプロセスの必要な部分である。患者は通常、自身の病気の治療を受ける一部として、データを介護者に提供する。このデータは、介護者によって保管され、とりわけ研究目的で、後で使用される場合がある。別の典型的なシナリオでは、1つ又は複数のデバイス、例えばパルスオキシメータ、グルコースモニタ、スマートウォッチ、フィットネスブレスレットなどを介して、利用者からデータを収集する場合がある。そのような使用事例では、収集されたデータは、連続的に、又は一定期間にわたって、患者の健康を分析するために使用されることが多い。その結果、膨大な量の患者情報が、サービス提供者によって蓄積されることになる。
【0004】
介護者及びサービス提供者によって収集された患者データの多くの態様は、プライバシー規制の対象となり得る。患者から収集された処理データの有用性及び利点は明らかであり、一般に認められている。しかしながら、特に、データを使用して患者を識別し得るとき、ユーザデータのプライバシーの維持に対する懸念が高まっている。このような懸念は、1996年に米国議会を最初に通過したHIPAA(医療保険の携行性と責任に関する法律)規制の根拠である。他の多くの国も同様の規制及び法律を公布している。一般に、一般の人々を識別し、又はそれらの物理的属性若しくはバイオメトリックデータの詳細となり得る個人情報の公開を、HIPAA及び他の規制は制限する。
【0005】
したがって、個々の患者又は利用者のプライバシーを維持するという制約の下で、生物医学(及び他のタイプの)データは、計算プロセスによって分析され得る必要がある。そのようなシステム及び方法は、結果として、社会にとって大きな商業的、社会的及び科学的な利益となる。
【図面の簡単な説明】
【0006】
図1A】個人データを含むデータセットを処理するための連合型アプローチを示す図である。
図1B】いくつかの実施形態による、セキュアな計算環境のアーキテクチャの簡略図である。
図2】いくつかの実施形態による、セキュアエンクレーブの一般的なアーキテクチャの簡略図である。
図3】いくつかの実施形態による、データセットに適用可能な例示的なポリシーの簡略図である。
図4A】ポリシーがセキュアエンクレーブ内で適切にプログラムされることを保証するための例示的なオーケストレーションの簡略図である。
図4B】ポリシー制約に従ってデータが計算されることを保証するための例示的なオーケストレーションの簡略図である。
図5】信頼のチェーン、すなわち計算の連合型パイプラインに関連付けられた証明又は証拠を拡張する技術の使用の簡略図である。
図6】拡張された信頼のチェーンの検証の簡略図である。
図7】いくつかの実施形態による、分散型信頼モデルの簡略図である。
図8】いくつかの実施形態による、個人データを協調して受信し、記憶し、処理する企業の連合型グループのアーキテクチャの簡略図である。
図9】いくつかの実施形態による、個人データを協調して受信し、記憶し、処理する企業の連合型グループのアーキテクチャの簡略図である。
図10】いくつかの実施形態による、個人データを協調して受信し、記憶し、処理する企業の連合型グループのアーキテクチャの簡略図である。
図11】いくつかの実施形態による、情報マスキングのためのシステムの簡略図である。
図12】いくつかの実施形態による、情報マスキングのための制御フローの簡略図である。
図13】いくつかの実施形態による、エンティティのタグ付けプロセス、及び欠落したエンティティの処理の簡略図である。
図14】いくつかの実施形態による、有効性をマスキングするためのテストスイート診断フロー方法を示す簡略図である。
図15】いくつかの実施形態による、情報検索のためのシステムの簡略図である。
図16】いくつかの実施形態に対する情報検索のためのデータフローの簡略図である。
図17】いくつかの実施形態による、フラグメント検索のためのデータフローの簡略図である。
図18】いくつかの実施形態による、クエリに応答して情報を検索するための方法の簡略図である。
図19】いくつかの実施形態による、フラグメント検索を実施するための方法の簡略図である。
図20A】いくつかの実施形態による、情報検索システムのグラフィカルインターフェースのスクリーンショットの図である。
図20B】いくつかの実施形態による、情報検索システムのグラフィカルインターフェースのスクリーンショットの図である。
図21】いくつかの実施形態による、情報検索のための方法の簡略図である。
図22A】いくつかの実施形態による、情報検索システムのグラフィカルインターフェースのスクリーンショットの図である。
図22B】いくつかの実施形態による、情報検索システムのグラフィカルインターフェースのスクリーンショットの図である。
図23】いくつの実施形態による、健康記録の拡張キュレーションのための方法の簡略図である。
図24】いくつかの実施形態による、健康データの時間的区別のための方法の簡略図である。
図25】いくつかの実施形態による、健康記録を時間的に整列したセットに基づいて生成された視覚化の簡略図である。
図26A】いくつかの実施形態による、個人情報を難読化するためのプロセスの簡略図である。
図26B】いくつかの実施形態による、タグ付きエンティティの属性及び対応する置換戦略の表の簡略図である。
図26C】プレースホルダを使用した個人情報の編集と、代替用語を使用した個人情報の置換とを比較する簡略図である。
【発明を実施するための形態】
【0007】
開示した主題の様々な目的、特徴、及び利点は、同様の参照番号が同様の要素を識別する以下の図面に関連して考慮されるとき、開示した主題の以下の詳細な説明を参照して完全に理解され得る。
【0008】
真に驚くべき量の情報が、患者及び利用者の健康状態、習慣、環境、周囲、及び家庭に関して患者及び利用者から収集されている。ますます、この情報は、機械学習及び人工知能モデルを利用するコンピュータプログラムによって処理されている。そのようなコンピュータプログラムは、利用者の健康状態、疾患の発生及び治療、ユーザの行動などの分析及び予測において著しい進歩を示している。更に、収集されたデータが、患者の生体認証及び他の個人識別属性を含む可能性があるので、そのようなコンピュータプログラムは、患者及び利用者の身元を知り得るという懸念が高まっている。したがって、個人属性を含む健康データの分析に関心のある企業は、個人のプライバシーを維持すること、及び1996年の医療保険の携行性と責任に関する法律(HIPAA:Health Insurance Portability and Accountability Act)規制などの個人データに関する関連規制を遵守することに関心がある。
【0009】
HIPAAに加えて、欧州連合のGDPR(General Data Protection Regulations)、PSD2(Revised Payment Services Directive)、CCPA(California Consumer Privacy Act 2018)など、多くの他の規制が、様々な管轄区域で制定されている。
【0010】
以下の説明では、「ユーザ情報」、「個人情報」、「個人の健康情報(「PHI:personal health information」)」、「健康情報のデータ又は記録」、「識別情報」、及び個人を識別可能な情報(PII:Personally Identifiable Information)という用語は、互換的に使用され得る。同様に、「電子健康記録(「EHR:electronic health records」)」及び「データ記録」という用語も互換的に使用され得る。
【0011】
個人データを処理する1つの手法は、データセットのすべての記録を暗号化することである。暗号化されたテキストは、暗号文と呼ばれることもあり、復号されたテキストは、平文とも呼ばれる。暗号化は、類推によって、データセットの記録をロックされたボックスに入れるものとして説明され得る。その後、ロックされたボックスの記録へのアクセスは、ロックされたボックスに対する鍵によって制御される。この概念は、許可されたエンティティのみが(復号)鍵へのアクセスを許可されるということである。
【0012】
いくつかの規制(例えば、HIPAA)は、健康データが暗号化された形式で記憶されることを要求する。これは、「保存データの暗号化」と呼ばれることもある。
【0013】
しかしながら、悪意のあるエンティティは、復号鍵にアクセスしたり、コンピュータのメカニズムを使用して復号鍵を類推/推測したりする可能性がある。後者の可能性は、暗号化/復号技術が十分に強力ではないとき(例えば、鍵の長さ(鍵を構成するビット数)が、コンピュータの攻撃に十分に耐え得る長さではない)、又は鍵が失われたか若しくは安全に保管されていない場合、可能性が高くなる。
【0014】
暗号化及び他のそのようなセキュリティ技術は、コンピュータによる攻撃者が、基礎となるデータにアクセスするために、特定の量のリソース(コンピュータ時間、メモリ、及び計算能力)を費やす可能性が高いという予想に依存し得る。暗号化鍵の長さは、暗号化を破るために必要な計算リソースの量を増加するために使用される変数の1つである。
【0015】
強力な暗号化技術であっても、個人データの処理に関連するセキュリティ上の課題を解決し得ない。例えば、暗号化されたデータセットを処理している企業は、そのデータセットをコンピュータにロードし、そのデータセットを復号し、そのデータセットの記録を処理し、そのデータセットを再暗号化する可能性がある。この例では、データセットの1つ又は複数の記録は、処理中に(平文に)復号される。悪意のあるエンティティは、平文の記録が処理されている間にコンピュータにアクセスし、個人情報を漏洩させる可能性がある。すなわち、処理を目的としてデータを復号すると、「ランタイム」脆弱性を生じさせる。
【0016】
したがって、個人データを処理するための改善された技術を開発することが望ましい。
【0017】
完全準同型暗号(FHE:Fully homomorphic encryption)は、暗号化されたデータを復号せずに用いて計算するための手法を記述する。すなわち、暗号化されたデータ要素

が与えられると、暗号化された結果

を生成する関数

を計算する。そのような計算の入力、出力及び処理の段階は、暗号化されたデータ要素のみを扱うので、漏洩の確率は最小限に抑えられる。暗号化技術の(数学的)基盤が十分に強い場合、量子コンピュータなどの極めて強力なコンピュータが使用されたとしても、鍵の類推/推測は実行不可能な計算になり得る。
【0018】
しかしながら、FHEデータセットを用いて計算する従来技術は、非実用的であるという点で非効率的であり得る。2009年に報告された計算では、FHEデータセット上で実行される計算は、暗号化されていないデータ計算よりも100兆倍遅い。(Ameesh Divatia,https://www.darkreading.com/attacks-breaches/the-fact-and-fiction-of-homomorphic-encryption/a/d-id/1333691及びPriyadarshan Kolte,https://baffle.io/blog/why-is-homomorphic-encryption-not-ready-for-primetime/を参照されたい。)
【0019】
更に、基本的なFHE機能を提供するFHEライブラリを使用するために、既存のアプリケーションコードを書き換える必要があり得る。
【0020】
セキュアエンクレーブは、コンピュータ内で実行されている他のプロセスに、機密データを公開することなく、メモリ内で機密データを復号して、処理し得る計算環境である。データは、他のプロセス及びネットワークから「隔離された」計算環境で復号及び処理される。このような環境の保護は、後述する方法で復号鍵を保護することによって更に強化され得る。
【0021】
セキュアエンクレーブの技術は、FHE技術よりも効率的であり得る。
【0022】
場合によっては、セキュアエンクレーブを含むコンピュータは、セキュアコンピュータとも呼ばれる場合がある。セキュアコンピュータは、1つ又は複数のセキュアエンクレーブ、例えば、コンピュータで実行されるアプリケーションごとに1つのセキュアエンクレーブを含んでもよい。
【0023】
一般に、エンクレーブを、他のプロセス及び他のエンクレーブから確実に隔離することは、セキュアエンクレーブ技術の目標である。
【0024】
セキュアエンクレーブは、ハードウェア(CPU、メモリ、レジスタ、キャッシュなど)及び/又はソフトウェア(プログラムされた回路)で構成された隔離された環境である。セキュアエンクレーブは、コールゲート又はファイアウォールと呼ばれることもある特別に構成されたハードウェア及びソフトウェア要素を介して、アプリケーションプログラムがアクセス可能である。セキュアエンクレーブへのアクセスは、暗号化鍵を介して制御され、暗号化鍵の一部は、製造時に構成されるハードウェア要素内に存在し得る。悪意のあるエンティティは、セキュアエンクレーブのブートプロセス中に鍵を抽出しようと試みる可能性がある。鍵を抽出するためのリバースエンジニアリング又は他のそのような攻撃は、繰り返される鍵要求を禁止することによって、及び/又はそのような要求間の時間を長くすることによって、阻止され得る。場合によっては、鍵のセットは、ハードウェア要素の特定のセットに関連付けられてもよい。
【0025】
セキュアエンクレーブに投入されるデータ(及びコンピュータプログラム)が暗号化されること、更に、セキュアエンクレーブから出力されたデータも暗号化されることを要求することによって、更なる保護を実現し得る。暗号化されたデータが、セキュアエンクレーブに一旦投入されると、セキュアエンクレーブ内で復号され、処理され、その結果は、出力に備えて暗号化され得る。したがって、隔離されたセキュアエンクレーブは、上述したランタイム脆弱性問題を解決する。
【0026】
セキュアエンクレーブ内のデータを復号するプロセスが、復号鍵をセキュアエンクレーブの外部に知られないようにすることで、更に安全になるという要求により、セキュアエンクレーブ内のデータを保護する更なる手段が、導入され得る。すなわち、セキュア・エンクレーブ・インフラストラクチャの外部のエンティティは、復号鍵にアクセスすることを禁止される。
【0027】
このようにして、投入するエージェントが、セキュアエンクレーブのファイアウォールの制約を満たすとき、暗号化されたデータが、セキュアエンクレーブに投入され得る。投入されたデータを復号して、それを処理するために使用され得る復号鍵を、セキュアエンクレーブは含む。セキュアエンクレーブは、結果を出力する前に、セキュアエンクレーブ内で利用可能な暗号化鍵を使用して、処理アクティビティの結果を暗号化し得る。
【0028】
個人データを保護する問題に対処する別の技術は、データを、識別解除又は匿名化することである。この技術は、個人データをランダムデータで置換すること、例えば社会保障番号をランダムな数字で置換することである。そのような技術は、構造化データセットにおいて使用される場合がある。例えば、患者の名前、社会保障番号及び心拍数を含む構造化データセットは、属性「名前」及び「社会保障番号」の値を、識別解除することによって匿名化されてもよい。
【0029】
構造化データセットにおける識別解除技術は、以下のように処理能力の損失をもたらす。
【0030】
構造化データセットは、最大の処理上の利点を得るために、他の構造化データセットと組み合わせられる必要があることが多い。例として、2つの構造化データセット(氏名、SS#、心拍)及び(名前、SS#、重み)を考える。2つのデータセットを組み合わせることによって、患者のデータ記録を更に完全し得る。すなわち、2つのデータセットに表された患者を関連付けることによって、2つのデータセットに固有の関係を利用し得る。2つのデータセットを識別解除するプロセスは、固有の関係を失う患者を匿名化することにつながる。
【0031】
上記の例を続けると、固有の関係を維持するために、識別解除を実行するエンティティは、2つのデータセット内に表された患者に同じランダムデータを割り当てる場合がある。すなわち、匿名化エンティティは、患者、例えばジョンが2つのデータセット内の特定のデータによって表されていることを知っている。これは、匿名化を行うエンティティの知識が脆弱になることを意味する。
【0032】
したがって、構造化データを識別解除することは、悪意のある計算エンティティによって利用される可能性のある脆弱性を生じる可能性がある。
【0033】
従来の識別解除技術の別の欠点は、識別解除が、医療ノート、注釈、病歴、病理データなどの非構造化データセットには適用されないことである。大量の健康データは、非構造化データセットからなる。本開示の後の部分では、機械学習及び人工知能技術を使用して非構造化データセットを識別解除する技術を開示する。
【0034】
非構造化データセットを識別解除することの1つの結果は、結果として得られるデータセットが、一部の残りの個人データを含み得ることである。一実施形態では、非構造化データセットの識別解除を、識別解除の有効性の尺度を導出する統計分析にかける。すなわち、データセットが識別解除された確率の尺度を、取得することができる。
【0035】
実施形態では、エンティティAは、確率尺度pに対するデータセットを識別解除し、それをエンティティBに提供する。後者はまた、エンティティCから1つ又は複数のコンピュータプログラムを受信する。エンティティBは、エンティティCから受信したコンピュータプログラムを使用して、エンティティAから受信したデータを処理し、処理の結果を別のエンティティDに提供する。(実施形態において、A、B、C及びDは、原則として別個のエンティティであってもよく、実際には、エンティティA、B、C及びDのうちの1つ又は複数は、相互の合意を通じて協力してもよい。)
【0036】
本発明の実施形態により、その処理がデータと関連付けられた確率pを維持することを、エンティティBは、エンティティA(及びC、及びD)に保証し得る。
【0037】
更に、エンティティBを含まないプロセスでは、エンティティAは、そのデータセット上でエンティティCのコンピュータプログラムの使用を承認し得る。
【0038】
本発明の実施形態により、当該データセットがエンティティCによって提供されたコンピュータプログラムによってのみ処理され、そのデータセットが他のコンピュータプログラムによって処理されなかったことを、エンティティBは、エンティティC(及びA、及びD)に保証し得る。更に、エンティティCによって提供され、基礎となるデータセットを処理するために使用されたコンピュータプログラムが、いかなる方法でも改変、変更又は修正されなかったこと、すなわち、処理中に使用されたコンピュータプログラムのバイナリイメージが、提供されたコンピュータプログラムのバイナリイメージと同一であったことを、エンティティBは、他のエンティティに保証し得る。すなわち、この有効化は、受信したコンピュータプログラムの起源を維持する。
【0039】
また、秘匿特性は、以下の条件を満たす特性に相当する。
1.エンティティAによって提供されたデータセットに、エンティティCによって提供されたコンピュータプログラムに、及びエンティティDに提供された出力に、アクセスできなかったことを、エンティティBは、エンティティA、C及びDに保証し得る。
2.エンティティAが、データセットAにのみアクセスし、Cによって提供されたコンピュータプログラムにも、エンティティDに提供された出力にもアクセスしなかったことを、エンティティBは、エンティティC及びDに保証し得る。
3.エンティティCが、そのコンピュータプログラムにのみアクセスし、Aによって提供されたデータセットにも、Dに提供された出力にもアクセスしなかったことを、エンティティBは、エンティティA及びDに保証し得る。
4.エンティティAが、エンティティAが提供したデータセットAにのみアクセスし、Dに提供された出力にも、Cによって提供されたコンピュータプログラムにもアクセスしなかったことを、エンティティBは、エンティティC及びDに保証し得る。
【0040】
更に、上記の様々な保証は、暗号技術に基づいて、検証可能で、偽造不可能なデータ証書、すなわち証明書の形式で提供される。
【0041】
図1Aに示される本発明の実施形態により、第1のエンティティ1A100は、「信頼の計算チェーン」1A105を構築することができ、「信頼の計算チェーン」1A105は、第2のエンティティ1A101から(所定の識別解除確率で)データセットを第1のエンティティ1A100が受信する点で発生し、第3のエンティティ1A103から第1のエンティティ1A100が受信したコンピュータプログラムを使用して1つ又は複数のデータ処理段階1A102を通って延在し、更に処理の結果が第4のエンティティ1A104によって受信される点で終了する。また、信頼のチェーン1A105は、秘匿特性を満たす。したがって、信頼のチェーンは、入力確率尺度、受信したコンピュータプログラムの起源、及び秘匿特性を保存する概念を具体化する。
【0042】
一般性を失うことなく、説明を容易にするために、図1Aの例示的な実施形態では、第1のエンティティAは、「オペレータ」とラベル付けし、第2のエンティティは、「データ提供者」とラベル付けし、第3のエンティティは、「プログラム提供者」とラベル付けし、第4のエンティティは、「データサイエンティスト」とラベル付けした。処理を実施する機器は、「連合型パイプライン」とラベル付けした。「連合型」という用語は、パイプラインが複数のエンティティから入力を受信し、複数のエンティティに出力を提供し得ることを示す。
【0043】
本開示は、とりわけ、データセットの入力識別解除確率、入力コンピュータプログラムの起源、並びに計算に関与する様々なデータ及びコンピュータプログラムの秘匿を維持する「連合型パイプライン」(ソフトウェア技術及び/又はハードウェア/ファームウェア構成要素を使用して実装される)について説明する。
【0044】
場合によっては、連合型パイプラインからの出力データセット又は結果を取得したデータサイエンティスト(例えば、図1Aのエンティティ1A104)は、出力データセットを処理し、その結果を第三者と共有することを望むことがある。上記で説明したように、データサイエンティストは、連合型パイプラインからの出力を受信するので、出力は、(一連の)証明、すなわち信頼のチェーンに関連付けられることに留意されたい。ここで、データサイエンティストが、受信した出力を処理し、それを第三者と共有することを望む場合、第三者は、信頼のチェーンを、新たに処理された結果にまで拡張することを求めてもよい。
【0045】
すなわち、連合型パイプラインから受信した出力が、新しいコンピュータプログラムへの入力として実際に使用され、第三者に提供された出力が、そのプログラムによって出力されるという証拠を取得することを、第三者が望んでいる可能性がある。すなわち、データサイエンティストは、連合型パイプラインに関連付けられた信頼のチェーンを拡張するように第三者によって求められる場合がある。データサイエンティストが連合型パイプラインに関連付けられていない場合、連合型パイプラインシステムで使用される方法とは独立した、信頼のチェーンを拡張する方法が必要である。
【0046】
図5は、この課題を示している。結果を共有するとき、データサイエンティストによって提供された可能性がある特定のコンピュータプログラム(P1)が、実行されたことと、データサイエンティスが、証明を有する連合型パイプラインによって提供された入力データセット(#1)のソースを受け入れて、検証したことと、を結果の受取人が信頼することを、データサイエンティストは望む。プログラムP1は、例えば、既知の外部データリポジトリに対して、データセット#1の一部として提供されたシリアル番号をチェックしてもよい。プログラムP1が実行したとするものは、データセット#2をもたらす。
【0047】
更に、データセット#2が、(データサイエンティストによって提供された可能性がある)コンピュータプログラムP2によって処理されことと、プログラムP2が実行したとするものが、最終出力データセット(図5)をもたらしたということとを、受取人が信頼することを、データサイエンティストは望む場合がある。
【0048】
D.Genkinら参照によりその全体が本明細書に組み込まれる、2018年、COMMUNICATIONS OF THE ACMの「Privacy in Decentralized Cryptocurrencies」は、プログラムP1及びP2の実行を検証するための例示的な技術を示している。プローバと呼ばれるソフトウェアモジュールは、プログラムP1及びP2を実行可能な計算環境を提供する。そのような実行時に、プローバは、2つの出力、すなわち、(1)プログラムP1及びP2の出力と、(2)プログラムP1及び/又はP2の実行の証拠と呼ばれるデータオブジェクトと、を生成する。
【0049】
更に、プローバは、任意の第三者に提供され得る検証部(図6を参照)と呼ばれるソフトウェアモジュールも提供する。検証部は、証拠を入力とし、バイナリで「はい/いいえ」の回答を出力する。回答「はい」は、当該プログラムが実行され、入力された証拠オブジェクトが生成されたことを示す。「いいえ」という応答は、実行したとするものの証拠が、検証され得なかったことを意味する。
【0050】
したがって、D.Genkinらは、コンピュータプログラムが実行したとするものが、実行したとするものの証拠を、検証部システムに提出することによって検証され得るシステム及び方法を示す。証拠オブジェクトは暗号化オブジェクトであり、(実行したとするものが検証可能であるというメタステートメント以外の)基礎となるデータ又はプログラムに関する情報を漏洩しない。
【0051】
実施形態では、コンピュータプログラムPは、2つの企業EとEとの間にポリシーを組み込むものとして合意されてもよい。前者の企業Eは、ここで、プログラムPを実行させ、上述のプローバ技術を使用して、その実行したとするものの証拠πを生成させ得る。企業Eは、ここで、πを(上述の検証技術を使用して)検証し、プログラムPが実行されたことを信頼し、それにより、合意されたポリシーが実現されたことを信頼し得る。
【0052】
図1Bは、適用の観点からのセキュアエンクレーブの論理アーキテクチャを示している。アプリケーション100は、それ自体のコード、データ、及びセキュアエンクレーブを含む。アプリケーション100は、(1)従来のコンピュータにおける典型的なアプリケーションとして実行する非セキュア部分と、(2)セキュアエンクレーブ内で実行するセキュア部分と、の2つの部分に論理的に分割される。セキュアエンクレーブを生成し、特定のブートイメージをセキュアエンクレーブにロードし、実行することを、アプリケーションの非セキュア部分のコードは要求し得る。その後、セキュアエンクレーブ内の実行終了時の制御は、呼出しポイントに戻される。特権システム200(OS、BIOS、SMM、VMなどを含む)は、セキュアエンクレーブへのアクセスを阻止される。
【0053】
いくつかの実施形態では、以下の方法を実行して、コード及びデータをセキュアエンクレーブに入力してもよい。
方法[セキュアエンクレーブの生成及び入力]
(1)アプリケーションのセキュア部分をコンパイルし、
(2)セキュアエンクレーブを生成するためのコマンドを発行し(例えば、基礎となるハードウェア/OS命令セットを使用する)、
(3)事前に指定されたライブラリから事前にプロビジョニングされたコードをロードし、
(4)ステップ1からのコンパイル済みコードをセキュアエンクレーブにロードし、
(5)適切な資格認証情報を生成し、
(6)セキュアエンクレーブのイメージ及び資格認証情報を保存する。
【0054】
いくつかの実施形態では、以下の方法を実行して、セキュアエンクレーブ内でコードを実行してもよい。
方法[セキュアエンクレーブ内でのコードの実行]
(1)アプリケーションの非セキュア部分(例えば、アプリケーション100)をセキュアなイメージと共にコンパイルし、
(2)アプリケーションを実行し、
(3)アプリケーションは、セキュアエンクレーブを生成し、イメージをセキュアエンクレーブにロードし、
(4)様々な資格認証情報を検証する。
【0055】
セキュアエンクレーブのハードウェア及びソフトウェアの構成要素は、エンクレーブ内のコード及びデータの完全性及び機密性を保護することによって、データプライバシーをもたらす。入口点及び出口点は、アプリケーションコードをコンパイルするときに、事前に定義される。セキュアエンクレーブは、そのアプリケーションから暗号化されたデータを送信/受信し、暗号化されたデータをディスクに保存し得る。エンクレーブは、そのアプリケーションのメモリにアクセスし得るが、その逆は真ではなく、すなわち、アプリケーションは、エンクレーブのメモリにアクセスし得ない。
【0056】
エンクレーブは、指定されたコンピュータ上で実行され得る自己完結型実行可能ソフトウェアである。例えば、エンクレーブは、外部リソース又は共有リソースを呼び出すのではなく、動作中に使用するリソース(例えば、コードライブラリ)を含んでもよい。場合によっては、ハードウェア(例えば、グラフィック処理ユニット又は特定の量のメモリ)要件、及びオペレーティングシステム(例えば、Linux(登録商標)バージョン2.7又はAlpine Linux(登録商標)バージョン3.2)要件が、エンクレーブに対して指定されてもよい。
【0057】
図2は、いくつかの実施形態による、健康データを処理するための使用事例のシナリオを示している。データ提供者は、ユーザの名前、住所、患者ID番号、郵便番号、及び他のユーザ固有のデータなど、属性の一部が個人データであり得るデータ記録を含むデータベース200を提供する。データベース200は、場合によってはクラウドサーバ環境に存在する、集合的にパイプライン210と呼ばれる1つ又は複数のコンピュータに接続される。
【0058】
図2はまた、エンクレーブ220の外部に存在する(プログラム提供者によって提供される)コンピュータプログラム270を示している。これは、前述したように、セキュアエンクレーブに含まれていないため、セキュアでないプログラムである。方法「セキュアエンクレーブの生成及び入力」を使用して、プログラム270は、パイプライン210にセキュアエンクレーブを生成し、そのセキュアなアプリケーション部分であるアプリケーション230をそれに入力する。アプリケーション230は、セキュアエンクレーブ内にあるため、定義上、セキュアである。
【0059】
方法「セキュアエンクレーブの生成及び入力」で説明したように、事前にプロビジョニングされたソフトウェアは、セキュアエンクレーブにロードされ得る。SE220は、とりわけ、TLS(トランスポート・レベル・セキュリティ)接続のための1つのエンドポイントとして機能する事前にプロビジョニングされたソフトウェア240-2を含む。TLS接続のための第2のエンドポイント240-1は、データベース200に存在する。(TLSの代わりに、任意のセキュアなネットワーク接続技術、例えばhttps、VPNなどを使用してもよい。)
【0060】
TLS接続は、データベース200からデータを検索するために、アプリケーション230によって使用されてもよい。アプリケーション230はまた、データ記録の受信を実行するためのプロキシメカニズムを含んでもよい。
【0061】
更に、SE220は、その機能を後述する、事前にプロビジョニングされたソフトウェアモジュールPA250(ポリシーエージェント)及びAC260(アクセスコントローラ)を含む。
【0062】
したがって、SE220のプログラムアプリケーション230は、TLSエンドポイント240-1及び240-2を使用してデータベース200からデータを検索し得る。TLS技術は、転送されるデータがセキュアであることを保証する。データベース200は、暗号化されたデータ記録を含んでもよい。したがって、アプリケーション230は、暗号化されたデータ記録を受信する。動作中、アプリケーション230は、受信したデータ記録を復号し、そのプログラムされたロジックに従って、それらを処理する。(復号を行う方法については後述する。)
【0063】
上述の「セキュアエンクレーブでコードを実行する」方法を使用して、アプリケーション230を呼び出し、次いでデータベース200からデータを検索して、復号し得る。処理の結果は、ポリシーエージェントPA250の制御下にある、エンティティラベル付きデータサイエンティスト280に向けられてもよい。一般に、PA250は、ポリシーマネージャ280と連携して動作する。PA250及びポリシーマネージャ280の機能及び相互運用については、後で詳細に説明する。
【0064】
いくつかの実施形態では、ポリシーマネージャ280は、それ自体のセキュアエンクレーブ290内に存在してもよい。
【0065】
図2は、2つのセキュアエンクレーブ220及び290を含むパイプラインを示している。実施形態では、パイプラインは、1つ又は複数のセキュアエンクレーブを含み得る。更に、1つ又は複数のセキュアエンクレーブは、(例えば、計算作業タスクを分散させるために)相互接続されてもよい。例えば、1つ又は複数のセキュアエンクレーブは、計算タスクの同時実行を実現するために、マップ低減構成として知られるものを実現する相互接続であってもよい。パイプラインは、1つ又は複数のコンピュータを使用して実装されてもよく、例えば、セキュアエンクレーブは、複数のコンピュータ、例えばクラウドサーバ環境に存在してもよい。図2は、エンクレーブに接続された単一のデータベース200を示している。実施形態では、1つ又は複数のデータベースを1つ又は複数のエンクレーブにそのように接続してもよい。
【0066】
要約すると、計算タスクは、セキュア部分及び非セキュア部分を有するアプリケーションプログラムとして、それを符号化することによって実現され得る。呼び出されると、アプリケーションの非セキュア部分は、1つ又は複数のセキュアエンクレーブを生成し、そのセキュアな部分をセキュアエンクレーブに投入し、その実行を呼び出す。アプリケーションのセキュア部分は、エンクレーブに接続された(事前にプロビジョニングされた)データベースからの、又は他のエンクレーブからのデータにアクセスし得る。そして、アプリケーションのセキュア部分は、受信したデータを復号する。次いで、処理は、相互接続されたエンクレーブの構成を利用して、場合によってはアプリケーションのロジックに従って進行する。結果は、ポリシーエージェントを介してデータサイエンティストに提示される。
【0067】
データが決して復号されず、処理が暗号化されたデータに対して進行するFHEデータセット手法と比較して、図2に示す構成では、エンクレーブ内のデータは、暗号化された形式であり、処理前に復号される。これは、結果が外部エンティティと共有される前に再暗号化されてもよい。したがって、図2の構成は、FHEと比較して効率的であり、処理速度の向上を実現し得る。
【0068】
上述のパイプライン技術は、個人データを含み得るデータセットに対して計算を実行し得る。パイプライン技術の一態様は、セキュアエンクレーブ内のデータ(及びプログラム)が、秘匿可能であること、すなわち、ポリシーマネージャ(又はそのコホート、ポリシーエージェント)によって行使されるポリシー制御を受けることである。更に、プログラムの実行の結果として生成される出力はまた、ポリシーに従って方向付けられてもよい。
【0069】
例として、とりわけ、患者の体重、身長、生年月日、及び住所を含むデータセットに記憶された個々の患者の肥満度指数(BMI:body mass index)を計算するパイプラインで実行される計算を考える。次いで、計算は、様々な米国の郡にわたる平均BMIを計算するために進む。
【0070】
これらの計算は、個人の患者データを含むので、計算はプライバシー規制の対象となり得る。様々なタイプの出力は、(1)平均BMIが最も高い米国の5つの郡のデータセット、(2)「過体重」BMIであり、住所を含む5人の患者のデータセット、(3)マサチューセッツ州ノーフォーク郡の郵便番号及びBMIを含む患者のデータセット、(4)マサチューセッツ州デダムの25~45歳で、「過体重」BMIである患者のデータセット、又は(5)マサチューセッツ州デダムのアライドストリートで体重、身長及び年齢を含む患者のデータセットなどの例が望ましい場合がある。いずれの場合も、計算への入力は、個人データを含み得るデータセットであり、出力は、個人データを含み得るデータセットである。
【0071】
上記の第1の出力データセットは、郡の人口のレベルに集約されたデータを列挙し、PIIデータ属性を含まない。結果は、いかなる単一の個人のデータ記録からも独立し、結果は母集団に関係する。したがって、ポリシーは、そのようなデータセットが出力され得る、すなわち平文として出力され得ることをもたらし得る。
【0072】
一方、上記の第2の出力データセットは、(1)個人を識別可能な情報、すなわち住所を含み、(2)データセット内の項目の数、すなわち出力セットのカーディナリティは小さい。悪意のあるエージェントは、そのようなデータセットから特定の個人を切り分け得る可能性がある。この場合、そのような要求を禁止するように、ポリシーが形成され得る。
【0073】
すなわち、出力データセットのカーディナリティに制約を課す、プライバシーパラメータと呼ぶパラメータKを与えてもよい。したがって、そのPII属性がK人未満の個人を識別する場合、出力データセットは禁止される可能性がある。
【0074】
追加的又は代替的に、データサイエンティストによって提出されたクエリに応答するコンピュータプログラムと共に、出力データセットは、意図された受取人、例えば、データサイエンティストに、セキュアエンクレーブ内で暗号化された形式で提供されてもよい。次いで、データサイエンティストは、(セキュアでない)アプリケーションプログラムを使用して、エンクレーブ内の(セキュアな)プログラムにクエリし、エンクレーブの応答を受信してもよい。したがって、データサイエンティストは、患者データを見ることはできないが、データサイエンティストのクエリに対する応答を受信し得る。更に、セキュアなプログラムの応答は、出力データセットの選択及び所定の「ビュー」のみを明らかにするように制約されてもよく、「ビュー」は、データベースシステムにおけるビューについて一般的に受け入れられている概念に対応し得る。あるいは、出力データセットは、FHEを使用してデータセットを最初に暗号化することによって、出力データセットをセキュアエンクレーブに密封することなく、データサイエンティストに提供されてもよい。
【0075】
上記の第3の出力要求では、データは任意の郡の郵便番号にわたって集約されているため、そのような患者の数が十分に多い場合には、プライバシーの懸念を生じない可能性がある。そのような例では、出力データセットのサイズに制約を課すポリシーを形成することができ、例えば、出力データセットは、少なくとも20人の患者に関するデータを含まなければならない。同様のポリシーを、第4及び第5の出力要求にも使用し得る。
【0076】
いくつかの実施形態では、データセットのカーディナリティが、制約を課した制限未満である場合、ランダムなデータ記録を、出力データセットに追加することを提供するポリシーを形成してもよい。なわち、最小サイズ、例えば20人の出力を実現するために、十分な記録が出力データセットに含まれるように、制約が課される。
【0077】
出力要求(例えば、上記の第3、第4及び第5の出力要求)が一連の要求として発行されるとき、加えて、出力が、単一のエンティティ(例えば、データサイエンティスト)によって、又は結託して出力を共有する複数のエンティティによって、収集されるとき、更なる課題が発生する可能性がある。出力要求は、小さい母集団サイズに連続的に適用される計算データセットを要求するので、そのような「絞込み」計算を使用して、特定の個人に関する情報を取得する可能性がある。
【0078】
文献(Cynthia Dwork,Differential Privacy:A Survey of Results,2008年、International Conference on Theory and Applications of Models of Computation)に示されているように、ますます増大する絞込み(又はより正確な応答)のシーケンスは、最終的に個人情報を漏洩する。
【0079】
図3は、上述した様々なポリシーを示している。これらのポリシーは、例示を目的としており、実装される実際のポリシーは異なっていてもよい。
【0080】
いくつかの実施形態では、ポリシーエージェントは、パイプラインの1つ又は複数のセキュアエンクレーブに、事前にプロビジョニングされたソフトウェアとして含まれるように構成されてもよい。ポリシーエージェントは、ポリシーマネージャ(後述)から、そのポリシーを受信し、すべての出力データセットに、そのポリシーを課す(そのいくつかの例は上記の説明で提供した)。様々な(企業)当事者間の帯域外契約を使用して、当事者が、ポリシーエージェントに含まれる事前にプロビジョニングされたポリシーを指定し、表示し得る。
【0081】
ポリシー・エージェント・ソフトウェアはまた、エンクレーブ内で実行されるプログラムによって行われる、すべてのアクセス及び他のアクションを記録する、すなわちログ記録する。
【0082】
ポリシーマネージャは、1つ又は複数のポリシーエージェントを管理するように構成され得る。ポリシーマネージャはまた、後述する他の機能を実施してもよい。簡単にするために、本開示は、マスタ-スレーブ構成においてパイプライン内のすべてのポリシーエージェントを管理するパイプラインのために、単一のポリシーマネージャを示す。
【0083】
本開示はまた、例示目的のためにパイプラインのオペレータのドメインで実行されるポリシーマネージャを示しており、様々な代替形態が可能である。いくつかの実施形態では、ポリシーマネージャは、オペレータ、データ提供者、プログラム提供者又はデータサイエンティストのいずれかによって制御される任意のドメインに、実装されてもよい。ポリシーマネージャが分散型技術を用いて実装される場合、ポリシーマネージャの制御は、上記企業エンティティのうちの1つ又は複数にわたって分散型であってもよい。本開示で使用される「分散型」という用語は、ポリシーマネージャを制御するポリシーが、単一の当事者ではなく、複数の当事者によって提供され得ることを意味する。
【0084】
例えば、図7は、ポリシーマネージャの分散型制御の1つの例示的な実施形態を示している。図7は、行がグループを記述するポリシーマネージャに含まれる表を示している。グループは、協調エンティティ、及びそれらの協調に関連する要素の集合である。協調エンティティのグループは、それらの個々のポリシーを介してポリシーマネージャの制御を行使する。アルゴリズムa1を提供するメンバとしてA1という名前のエンティティを有し、データd1を提供するD1という名前の別のメンバを有する、グループ1という名前のグループを、1行目は示している。2つのメンバによって提供されたデータ及びアルゴリズムは、処理されており、ロードイメージは、パイプラインにロードされるように準備されている。準備されたロードイメージは、セキュアな記憶装置に記憶され、リンクL1を使用することによってアクセスされ得る。
【0085】
いくつかの実施形態では、ポリシーエージェントは、ポリシーマネージャを用いて、その状態を記録してもよい。更に、レギュレータ及び/又は第三者エンティティが、個々のポリシーエージェントの記録された状態を試験し得るように、ポリシーマネージャが、構築されてもよい。したがって、レギュレータ及び第三者エンティティは、データセットが出力された制約を試験し得る。実施形態では、ポリシーマネージャの可能な実装方法は、ブロックチェーンシステムであり、その台帳は、不変データ記録を含んでよい。
【0086】
上述のシナリオでは、データサイエンティストが、セキュアエンクレーブに密封された出力データセットを受信し得ることを、ポリシーは指示し得る。これは、データセット内のデータが、データサイエンティストにとって不透明であることを意味する。データサイエンティストは、新たな要求をエンクレーブに投入することによって、エンクレーブ内の出力データセットに対して追加の出力要求を自由に実行することができる。これらの場合、出力データセットがPIIデータを有していないか、又はプライバシーパラメータ制約に違反していないとき、データセットは、制約されなくなり、データサイエンティストにとって利用可能になり得る。
【0087】
いくつかの実施形態では、データサイエンティスト又は他の要求者は、エンクレーブ内に含まれるデータセットのコンテンツを閲覧してもよい。エンクレーブをウェブブラウザに接続することによって、更にエンクレーブのコンテンツをウェブページとして表示させることによって、エンクレーブのコンテンツは、要求者にとって利用可能になり得る。これにより、要求者がブラウザの状態を、保存又はコピーすることを防止し得る。しかしながら、場合によっては、要求者は、ブラウザページの視覚イメージを取得してもよい。
【0088】
いくつかの実施形態では、データサイエンティストは、データ要求を提出してもよく、その後、それは、キュレーションサービスを使用してキュレートされる。キュレーションサービスが、データ要求をプライバシー保護であると見なす場合、データ要求は、エンクレーブ内のデータセットを使用して処理され、出力データセットは、制約のないデータセットとしてデータサイエンティストに提供され得る。このようにして、キュレーションサービスは、提出されたデータ要求が良性であること、すなわち、データ要求が、プライバシー規制に違反する出力を生成しないことを、チェックし、保証する。
【0089】
上述したように、エンクレーブの内部のプロセスが秘匿可能であるため、エンクレーブを使用して個人データを処理することに関連する更なる課題は、エンクレーブ内で実行される計算について、ポリシーを提供し得るか否かである。例えば、図2に関して上述した一般的な説明に従って、セキュアエンクレーブ技術の使用事例を考える。暗号化されたデータを所有する第1の企業は、データをエンクレーブに記憶し得る。パイプラインを提供する第2の企業が使用するために、エンクレーブ内のデータは、処理され、及び準備されてもよく、コンピュータプログラムは、第3の企業によって提供されるデータを処理する。ここで、データサイエンティストは、データ要求をエンクレーブに投入し、結果として出力データセットを期待し得る。上記で説明したように、一例では、出力データセットは、エンクレーブに密封されたデータとしてデータサイエンティストに提供され得る。別の例では、出力データセットは、データの暗号化ストアとして提供されてもよい。後者の場合、データサイエンティストがデータにアクセスするために、データサイエンティストに復号鍵を提供してもよい。これらすべての行動は、第1、第2又は第3の企業のいずれかによって事前に決定されたポリシーの影響を受ける。
【0090】
更に、当該ポリシーでは、データサイエンティストがデータを処理し、出力データセットを受信するためのアクセスを許可する必要がある。すなわち、データサイエンティストによるアクセスは、認証されなければならない。データの完全性がデータ処理パラダイムにとって重要であるので、指定されたデータ提供者によって提供されたデータに対して、データサイエンティストのデータ要求が動作することを保証される必要が、データサイエンティストにはある。特に、データサイエンティストが、出力された結果を第三者と共有することを意図している場合、データサイエンティストは、入力データの完全性、及び結果が特定のデータ要求を実行することによって得られたという事実を、前者に保証する必要があり得る。データを保存及び処理するプロセス全体が、透明でなければならず、調査及び事後承認のために利用可能でなければならないことを、レギュレータは要求し得る。
【0091】
上述した様々な懸念に対処するために、図4Aのワークフロー図に示すように、オーケストレーション方法を実行し得る。ワークフローには、以下のエンティティ、(1)データ提供者、すなわち、データを所有するエンティティと、(2)オペレータ、すなわちパイプライン技術を提供するエンティティと、(3)データを処理するためのコンピュータプログラムを提供するプログラム提供者と、(4)データサイエンティスト、すなわち、出力された結果の取得を望むエンティティと、(5)ポリシーエージェントを制御するソフトウェアモジュールを含み得るポリシーマネージャと、が関与する。
【0092】
図4Aを参照すると、ステップ1、2、3及び4において、データ提供者、データサイエンティスト、プログラム提供者、及びオペレータはそれぞれ、それらのポリシーを指定する。ステップ5において、ポリシーマネージャは、ポリシーエージェントを開始する準備をする。ステップ6において、オペレータは、新しいパイプラインを生成し、ステップ7において、パイプラインの生成についてオーケストレーションの参加者に通知する。参加者は、ここで、データ、プログラム、及びポリシーをパイプラインに入力し得る。パイプラインは、事前にプロビジョニングされたソフトウェアライブラリでも開始されることに留意されたい。
【0093】
図4Bを参照すると、データ提供者と、パイプラインと、プログラム提供者によって提供されたセキュアなアプリケーションプログラムと、ポリシーマネージャと、データサイエンティストと、ポリシーエージェントとの間のオーケストレーションを示している。
⇒ ステップ1.ポリシーマネージャが、図4Aのステップ5で準備したポリシーエージェントを開始する。
⇒ ステップ2.セキュアアプリケーションが処理要求を開始する。
⇒ ステップ3.開始要求をログ記録する。
⇒ ステップ4.ポリシーエージェントが、処理要求に関連する適切なポリシー及びアクセス資格認証情報を選択する。
⇒ ステップ5.ポリシーエージェント(ポリシーマネージャの助けを借りて)が、資格認証情報を検証する。資格認証情報を満たさない場合、要求は終了する。
⇒ ステップ6.パイプラインは、処理要求を実行し、データを記憶する。
⇒ ステップ7.パイプラインは、要求された出力が利用可能であることをデータサイエンティストに通知する。
鍵管理
【0094】
公開鍵暗号は通常、秘密鍵及び公開鍵と呼ばれる一対の相補鍵に依存する。公開鍵は、任意の関係者に分配されてよい。前者、すなわち秘密鍵は常に秘密に保たれる。例えば、アリスによって配布された公開鍵を使用して、別の当事者、例えば、ボブは、アリスのみが彼女の秘密鍵を使用してメッセージを復号し得るという認識において、メッセージを暗号化して、それをアリスに安全に送信することができる。ボブによって暗号化されたメッセージを復号するために、他の鍵は使用できない。前述したように、秘密鍵の所有権は、主要な関心事であり、いくつかの技術が、このトピックに関連する文献で議論されている。
【0095】
セキュアエンクレーブ技術は、(公開鍵に対応する)秘密鍵が、常にセキュアエンクレーブ内に存在することを保証することによって、秘密鍵の所有権の問題に対処するために使用され得る。これは、例えば、第1のセキュアエンクレーブを生成することによって、更にそれを、秘密鍵と公開鍵の対を生成する公開/秘密鍵暗号化ソフトウェアで事前にプロビジョニングすることによって、実現し得る。そのようなソフトウェアは、オープンソースのリポジトリを介して利用可能である。次いで、第2のセキュアエンクレーブに存在するコンピュータプログラムは、必要となる秘密鍵のコピーを(セキュアなチャネルを使用して)提供するように、第1のエンクレーブに要求し得る。したがって、秘密鍵は、セキュアなエンクレーブインフラストラクチャの外部には決して存在せず、常にセキュアエンクレーブ内に存在し、セキュアチャネルを使用してセキュアエンクレーブ間で送信される。
【0096】
いくつかの実施形態では、ポリシーマネージャに、公開/秘密鍵ソフトウェアを事前にプロビジョニングし、図2に示すように、ポリシーマネージャをセキュアエンクレーブ内に密封してもよい(280参照)。
【0097】
次いで、セキュアエンクレーブは、そのポリシーエージェントに秘密鍵を要求し得る。ポリシーエージェントは、上述したように、ポリシーマネージャと連携して動作し、ポリシーマネージャに秘密鍵を要求し得る。セキュアエンクレーブで実行されるコンピュータプログラムは、データ提供者から受信し得る暗号化データを復号するために秘密鍵を必要とする場合がある。セキュアエンクレーブで実行されるコンピュータプログラムは、秘密鍵を提供し得るそのポリシーエージェントに、復号目的のために必要な秘密鍵を要求し得る。
【0098】
先に説明したように、ハッシュ関数又はハッシュアルゴリズムと呼ばれる暗号化技術が存在し、これは、メッセージと呼ばれることが多い平文の文字列を取得し、それを16進数のシーケンス、すなわち、数字のシーケンス[0~9、A~F]として暗号化し得る。公開されている利用可能なハッシュ関数の例は、MD5、SHA-256、SHA-512である。後者の2つの関数はそれぞれ、長さ256及び512の鍵を使用する。上述したように、鍵の長さは、悪意のある攻撃に耐える暗号化技術の強度を保証する要因である。
【0099】
平文を16進数にマッピングするハッシュ関数の1つの特性は、異なる平文を同じ数字にマッピングしないことである。したがって、平文は、固有のシグネチャ、すなわち入力としての平文に対して動作するハッシュ関数の出力を有し得る。
【0100】
プログラム及びデータを含むセキュアエンクレーブが、平文を含むと見なされ得る場合、すべてのセキュアエンクレーブは、固有のシグネチャを有することになる。したがって、セキュアエンクレーブのコンテンツに適切なハッシュ関数を適用することによって、そのエンクレーブのシグネチャを取得する。シグネチャは、他の異なるセキュアエンクレーブが、そのシグネチャを有しないという点で固有である。
【0101】
セキュアエンクレーブに既知のコンピュータプログラム及び既知のデータセットを入力する場合、そのセキュアエンクレーブのシグネチャを使用して、セキュアエンクレーブのシグネチャと、以前に格納されたシグネチャとを比較することによって、セキュアエンクレーブが、既知のデータセット上でプログラムを実行している(又は実行された)ことをアサートし得る。
【0102】
したがって、エンクレーブのシグネチャが提供された場合、データ提供者は、そのデータセットが、破損していない、又は変化していないことを、更に所定のプログラムによって操作されることを、保証され得る。
【0103】
同様に、プログラム提供者は、そのプログラムが、破損していない、及び変化していないことを、保証され得る。データサイエンティストは、その出力が所定のデータに対する所定のプログラムによる処理の結果であることを保証され得る。
【0104】
関連する復号鍵へのアクセスを拒否することによって、オペレータが、セキュアエンクレーブのコンテンツにアクセスすることを禁止するように、ポリシーマネージャは、プログラムされ得るので、パイプラインのオペレータは、セキュアエンクレーブのコンテンツを閲覧又は編集し得ない。
【0105】
本開示では、セキュアエンクレーブは、シグネチャを生成するために、ポリシーマネージャによって呼び出され得るハッシュ関数を計算するためのソフトウェアで事前にプロビジョニングされ得る。次いで、ポリシーマネージャは、様々なエンティティ、例えばデータ提供者又はプログラム提供者に要求されると、これらのシグネチャを証明書として提供するようにプログラムされ得る。
【0106】
ここで図10を参照すると、初期データセット1001は、セキュアエンクレーブ1001に記憶され、処理され、データセット1010として出力され得る。データセット1010は、セキュアデータ層1009に存在する。1つ又は複数のアプリケーションは、データサイエンティストによって、エンクレーブ1002に投入され、データセット1010は、そのようなアプリケーションに提供され得る。処理時に、出力データセットは、出力1008として記憶され得る。出力1008は、エンクレーブ1004に更に投入され、企業1005は、(独自の)アプリケーションを使用して、結果を処理して、データセット1007として出力し得る。なお、出力データセット1007は暗号化されている。
【0107】
したがって、企業1005は、エンクレーブ1003に投入されたアプリケーションを実行するか、又はデータセット1008を異なるエンクレーブ1004で受け取り、その中で独自のアプリケーションを実行するか、を選択する。
【0108】
すなわち、一連のエンクレーブ1001、1002、1003及び1004(図10)を組み立てることができ、各エンクレーブは、セキュアなデータストア1009から、暗号化されたデータを受信し、次のラインエンクレーブのためのセキュアな(暗号化された)データセットを順に生成する。したがって、元のデータ所有者1000は、処理のためにそのデータ1011を第三者、すなわち企業1005に提供し、個人データが漏洩しないことを保証され得る。
【0109】
適切なデータ要求プログラムが実行され、更に入力データの起源が確認された証明書と共に、企業1005は、データセット上で独自のデータ要求を実行し、更に処理の結果を顧客に提供する、柔軟性を有する。企業1005は、データセット1007の所有権を引き継ぎ得るが、その後、そのプライバシーに対する法的責任を引き継ぐ。
【0110】
図10は、エンクレーブのシーケンスを示し、各エンクレーブは、中間のセキュアデータ層を介して別のエンクレーブに接続される。しかしながら、実施形態では、図9に示すように、いくつかのエンクレーブ909及び910も、同時に実行され得る。更に、すべてのコードがエンクレーブ内に存在するとは限らず、エンクレーブは、必要に応じて非セキュアなコードを含む計算環境と混合されてもよい、902参照(図9)。
【0111】
すべてのエンクレーブに利用可能なセキュアなデータ層と共に、セキュアメッセージング904、アクセス制御及びポリシーエージェント通信905、並びに暗号化鍵906の交換のために、追加の層が、提供され得る。これらの追加の通信層は、エンクレーブが互いに漏洩することなく、安全に様々な種類のデータを交換し得るように、設けられる。
【0112】
図8に示す例示的な実施形態を参照すると、第1の企業800は、データセット2Aを取得するために、識別解除し、及び匿名化し得るデータセット1を所有する。前述したように、識別解除手順は、完全に有効ではない可能性があり、データセット2Aは、依然として何らかの個人データを含み得る。第1の企業は、第2の企業890による処理で利用可能であり得るように、セキュアデータ層810において、2Bとして示すデータセット2Aのコピーを提供する。
【0113】
企業890は、データセット2Bを受信し、データセット2Bをエンクレーブ802に記憶させ、エンクレーブ802で、データセット2Bは、更なる処理のために処理され、準備され、その後、データセット850としてセキュアデータ層810に記憶される。
【0114】
エンクレーブ802は、エンクレーブ803にパイプライン接続され、このことは、データセット850が、エンクレーブ802から出力され、エンクレーブ803への入力として提供されることを意味する。ここで、エンクレーブ803内のアプリケーションは、データを処理し、出力データセット809を生成し得る。
【0115】
次に、企業899が管理するネットワーク内に存在するエンクレーブ804に、エンクレーブ803は、パイプライン接続される。すなわち、エンクレーブ803は、企業890によって管理され、エンクレーブ804は、企業899によって管理される。後者の企業は、追加のデータ811をエンクレーブ804に投入し、また、データセット805を生成するために、入力データセット809と共に、データセット811を処理するためのアプリケーションを投入し得る。計算の結果は、ポリシーエージェント/マネージャの指示に従って、企業899のデータサイエンティストがアクセスし得るようになる。
【0116】
図8はまた、企業899が、エンクレーブ803に投入される、(おそらく処理の結果として得られる)エンクレーブ804からのデータを提供し得る例示的な実施形態849を示している。これにより、得られた結果を更なる処理のために再導入すること、すなわち、結果の更なる処理のためのフィードバックループが可能になり得る。
【0117】
前述の説明では、様々な実施形態が、複数の当事者によるデータを協調的に記憶し、処理し、及び分析するシステム及び方法を有することを示している。例えば、図8は、協調する3つの企業800、890、899を示している。企業800は、データを提供し、企業890は、データをエンクレーブに記憶するインフラストラクチャを提供し、企業899は、特定のデータ要求をエンクレーブに投入することによって、データを処理する。一実施形態では、中央信頼モデルが使用され、それは、第1の企業によって提供されたデータが協調合意の下で第2の企業に利用可能にされることを保証するために、企業のうちの1つ、例えばインフラストラクチャを提供する企業が信頼される。すなわち、データアクセス及びデータ処理が、様々な所有権及び処理上の懸念に従うことを、信頼された企業は保証する。データ提供者のデータは、承認された企業だけが処理することを、データ提供者は保証されることを望む。データ処理者は、データ要求を非公開にし、処理要求の詳細を競合企業と共有しないことを望む。そのような懸念の維持は、信頼された企業にかかっている。そのような実施形態は、集中型信頼モデルと呼ばれることがあり、すなわち、1つの企業又はエンティティに信頼が置かれる。
【0118】
別の実施形態では、複数の企業が信頼されている分散型の信頼モデルが提供されてもよい。そのような信頼モデルは、オープンな市場において特に適している可能性があり、そこでは、データ提供者が、データを提供し、分析者が、提供されたデータを処理するデータ要求、すなわちコンピュータプログラムを提供する。単一の企業又はエンティティは、分散型モデルにおいて信頼されるべきではない。むしろ、データ提供者及びアルゴリズム提供者を支配する制約が維持されていることを検証するために、任意の第三者がアクセスし得るオープンに利用可能な構造が提供される。
【0119】
図7は、分散型信頼モデルの1つの例示的な実施形態を示している。図7は、行がグループを記述する表を示している。グループは、協調エンティティ、及びそれらの協調に関連する要素の集合である。プログラムa1を提供するメンバとしてA1という名前のエンティティを有し、データd1を提供するD1という名前の別のメンバを有する、グループ1という名前のグループを、1行目は示している。2つのメンバによって提供されたデータ及びアルゴリズムは、処理されており、ロードイメージは、エンクレーブにロードされるように準備されている。準備されたロードイメージは、セキュアな記憶装置に記憶され、リンクL1を使用することによってアクセスされ得る。
【0120】
上述したように、イメージをエンクレーブにロードするために、データを暗号化する特定の暗号化鍵が必要である(その対応する復号鍵は、データを復号するためにエンクレーブによって使用される)。
【0121】
前述の実施形態は例示であり、多くの追加の代替の実施形態が可能であることを理解されたい。いくつかの実施形態では、上述の連合型パイプラインの少なくとも一部は、Intel社のSecurity Guard Extensions(SGX)などの保護メモリを提供するハードウェア及びファームウェア上で実行されてもよく、その実装の詳細は、https://www.intel.com/content/www/us/en/architecture-and-technology/software-guard-extensions.htmlで説明されている。いくつかの実施形態では、連合型パイプラインの少なくとも一部は、AMD社のSecure Encrypted Virtualization(SEV)などの隔離された仮想マシンを生成する仮想化ソフトウェアを使用して実行されてもよく、その実装の詳細は、https://developer.amd.com/sev/で説明されている。いくつかの実施形態では、連合型パイプラインは、Amazon社のAWS Key Management Service(KMS)などの鍵管理サービスを使用して暗号化鍵を管理してもよく、それは、https://aws.amazon.com/kms/で更に詳細に説明されている。しかしながら、ハードウェア、ファームウェア、仮想化ソフトウェア、及び鍵管理サービスのこれらの例は、異なる所有権、ポリシー及び証明を有する連合型パイプラインを生成するために使用され得る暗号プロトコルに基づく隔離されたソフトウェアプロセスを独立して生成し得ない。したがって、いくつかの実施形態では、基礎となるハードウェア/ファームウェア、オペレーティングシステム、鍵管理、及び暗号アルゴリズムを使用して、セキュアエンクレーブなどのセキュアで、プライベートな隔離されたプロセスを実現し得るミドルウェア(例えば、ソフトウェアの層)が、提供されてもよい。
【0122】
いくつかの実施形態では、セキュアエンクレーブを互いに連結して、パイプラインを形成してもよい。そのような実施形態と一致して、計算をサブタスクに分割することができ、サブタスクは、パイプライン内で、パイプラインの構成に基づいて同時に若しくは順次に、又はその両方で処理される。
【0123】
いくつかの実施形態では、証明サービスを、パイプラインに関連付けてもよい。証明サービスは、パイプラインの開始からパイプラインの終了までに生じる信頼のチェーンを確立し、これは、パイプラインの内部コンテンツが外部エンティティを観察できない場合でも、外部エンティティの保証を提供する。いくつかの実施形態では、関連するパイプライン自体を拡張することなく、信頼のチェーンを更に拡張してもよい。
【0124】
健康データを扱う1つの方法は、個人データ属性を匿名化又はマスキングすることであり、例えば、処理又は分析される前に、社会保障番号をマスキングすることである。本開示のいくつかの実施形態では、健康記録から個人情報をマスキングする、及び識別解除するための方法を用いてもよい。これらの方法を使用して、マスキング又は識別解除された、そのデータ属性の様々な部分を、健康記録を含むデータセットは有し得る。したがって、結果として得られるデータセットは、1人又は複数の特定の個人を識別し得る個人情報を含み得ない。
【0125】
しかしながら、健康記録の性質を考えると、健康データセットを完全に匿名化又は識別解除することは不可能である。例えば、データセットは、その後デジタル的に転写される、医療提供者によって取られた同時期の(手書きの)ノートを含む場合がある。多くの健康データセットは、アナログデータ、例えば病理データをデジタル化することによって得られる。したがって、データセットは、特に多数の記録を含む場合、匿名化又は識別解除されていない個人情報を含み得る。
【0126】
特定のアプリケーションドメインについてのテキストにおける情報マスキングは、極めて高いレベルの性能、特にリコール(モデルによってタグ付けされた機密エンティティの数と機密エンティティの総数との間の比)を要求する。例えば、電子健康記録(EHR)内の名前、場所、電話、住所などの患者識別情報をマスキングして、研究目的でそれらを公開するには、EHR記録を研究用に公開するために、極めて高いレベルのリコールが必要である。米国の病院及び医療研究センターでは、EHRの採用が9%(2008年)から96%(2017年)に急増している。臨床試験データセットは、EHRがその一部である現実の証拠データのほんの一部を表しており、2003年以来、大手製薬会社ごとに約3,490回の介入臨床試験において、2003年以来、大手製薬会社ごとに約100万人の患者が扱われている。この観点を通して、主要な米国及び世界的な健康組織のすべてにわたって医療提供者独自のEHRデータセット(非構造化データ及び構造化データ)を合成することは、研究開発(R&D)データサイエンスの現代のカーネルとして現われ、臨床試験データセット及び純粋に構造化されたEHR/請求データベースへの現在の依存に取って代わることになる。適切に行われた場合、キュレーションされたEHRデータが、R&D目的に使用される臨床データを大幅に強化/増強することができるので、更にはバイオ医薬品会社が、追加の臨床試験を実行する必要なく、追加の承認及びライン拡張を得ることができるように、薬物が現実世界で有効であることを規制当局(FDAなど)に実証するための代替方法を提供することができるので、キュレーションされたEHRデータは、バイオ医薬品会社にとって重要な資産となり得る。
【0127】
しかしながら、そのような堅牢な「臨床ゲノム」データセットの生成には、関連するいくつかの課題がある。まず、データの所有権及びデータの識別解除は、これらの課題のうちの2つである。EHRデータからの識別可能な患者情報は、患者が所有しているが、識別解除された患者レベルのデータは、合成され、市販され得る。機関(病院等)は、識別解除されたEHRデータの現在の「所有者」又は「管理人」であるため、識別解除プロセスが堅牢な方法で行われる限り、そのデータに対する最大限の制御/活用を行うことができる。後者は、個人情報がユビキタスで(臨床ノート、病理報告書など)あるため、更にその個人情報が極めて多様な方法で利用可能であるため、「ディープなEHRデータ」を扱うときの複雑なタスクである。
【0128】
患者の健康情報(「PHI」)としてフラグが立てられた単語、フレーズ、又は数字が、患者のプライバシー又は機密性を危険にさらすことのない識別不能なプレースホルダに置換されることを、識別を解除するプロセスは必要とする。これらの要件の例は、参照によりその全体が本明細書に組み込まれる、米国HIPAAプライバシールール第164.514セクションによって定義されたセーフハーバ方法に概説されているものであり、これは、マスキングされなければならない18個のカテゴリのPHI識別子を指定している。セーフハーバ方法はまた、健康情報の識別解除のためのプライバシールールに含まれる要件を、どのように実施するのが最良であるかをオペレータに知らせるために、参照によりその全体が本明細書に組み込まれる関連ガイドラインを含む。以下のいくつかの実施形態の説明は通常、セーフハーバ方法に従ってマスキングされた患者データを対象としているが、本明細書に記載のシステム及び方法は、これらの実施形態を超えてデータ記録にも同様に適用し得る。
【0129】
自然言語処理(NLP:Natural Language Processing)のための現在のディープ・ラーニング・モデルは、それ単独では、本出願で必要とされるこれらの高い性能基準を満たさない。ディープ・ラーニング・モデルが、これらの基準を満たさない理由の1つは、ディープ・ラーニング・モデルが、教師あり学習のために大量のラベル付きデータを必要とすることである。特定のエンティティタイプのための公的に利用可能なラベル付きデータは、場合によっては活用され得るが、必要な高レベルのリコールに達するために、ディープ・ラーニング・モデルは、実際には十分なドメイン固有のラベル付きデータを必要とすることが多い。精度はマスキングの観点から主要な目的ではないが、マスキングされたデータが研究に使用される材料であるためには、精度が高くなければならない。有効性の要件は、精度とリコールの両方について高く、リコールは、通常高い(例えば、最小許容精度は99.999%以上であり得る)。
【0130】
機密情報を明らかにするエンティティの大規模マスキングは、EHRアプリケーションに限定されない。例えば、政府機関による機密情報を含む文書の公開は、小規模での人間のキュレーションによって実際には解決されることが多いが、対処するための同じ問題を有する。
【0131】
ディープ・ラーニング・モデル以前の辞書ベースの方法は更に短くなり、人間のキュレーション/検証を必要とし、大規模マスキングアプリケーションは、規模が原因で、ほとんど実用的ではない。
【0132】
本開示は、以下に説明するように、これらの制限の1つ又は複数に対処し得る。
【0133】
図11) いくつかの実施形態による、情報マスキングのためのシステムの簡略図であ
る。システムが情報を選択的にマスキングするように訓練されると、システム1102に供給されるテキスト入力1101は、出力1103をもたらし、そこでは、単一の単語又は複数の単語のフレーズのいずれかである関心のあるエンティティのサブセットが、選択的にマスキングされる(一般的なプレースホルダのトークンで置換される)。図11に示す例では、人、場所、日付、及び年齢の4つのエンティティタイプがマスキングされている。テキスト入力1101は、テキストベースの情報の他のリポジトリの中でも、EPIC又はCernerなどの第三者記録データベースから引き出されたEHRのコーパスの部分を表し得る。
【0134】
図12) いくつかの実施形態による、情報マスキングのための制御フローの簡略図で
ある。制御フローは、(対象のエンティティにわたって)未知の確率分布を有する大きなデータセット内の情報をマスキングする方法を説明しており、そのサイズを考慮すると完全なサンプリングは実用的ではない。本開示に記載した方法は、小さなデータセットにわたって未知の分布を自動的に包含する。
【0135】
図12は、2つのデータセット1200a及び1200bを示している。データセット1200aは、マスキングされるべき1つ又は複数のエンティティタイプに関するラベル付きデータセットである。データセット1200a及び1200bは、特定のエンティティタイプに関連付けられた行及び/又は列を有する表形式を使用して編成された構造化データセットであってもよい。更に、データセット1200a及び1200bは、構造化データフォーマットの特定のセル内に非構造化データを含んでもよく、非構造化データは、自由形式のテキスト又は文であってもよい。エンティティタイプは、他の識別特性の中でも、個人又は組織の名前、場所、年齢、日時、電話番号、ポケットベル番号、臨床識別番号、電子メール及びIPアドレス、ウェブURL、車両番号、住所、郵便番号、社会保障番号、並びに生年月日を含んでもよい。エンティティタイプについての任意の辞書が、指定されたエンティティタイプに関する1200aに追加されてもよい。サブワードを使用して単語を表すTransformerを活用した双方向の符号化表現(BERT:Bidirectional Encoder Representations from Transformers)のようなサブワードベースのモデルは、それらのサブワードを共有するエンティティにタグ付けするために、辞書内の単語を構成するサブワードを活用し得る。未知の分布データセット1200bは、特定のエンティティタイプを選択的にマスキングする必要があるデータである。マスキングされる必要があるすべてのエンティティタイプが、事前にラベル付きデータセット1200aを有する必要はない。データセット1200bのサンプルを使用して、ブートストラップするために、ラベル付きデータセット1200aを生成してもよい。場合によっては、データセット1200bのサンプルは、システム管理者又は主題の専門家によって手動で生成されてもよい一方で、他のサンプルは、パターンマッチングルール、正規表現、辞書及び公開データベース検索を使用して、PHI要素を識別する、機械学習又はルールベースのアルゴリズムを使用して生成されてもよい。例えば、ルールベースのアルゴリズムは、「年月日」(例えば、XX/XX/XX又はXX/XX/XXXX)の形式で提示された日付、又は10桁の形式で提示された電話番号(例えば、(XXX)XXX-XXXX)などの標準的な形式の情報のシーケンスのみに基づいてもよい。これらの標準フォーマットに基づいて、ルールベースのアルゴリズムは、パターンを識別し、潜在的に識別する情報を一般的なプレースホルダに置換して、情報をマスキングし得る。
【0136】
対象のエンティティは、マスキングされる必要があるエンティティに限定される必要はない。モデルが、マスキングされる必要があるエンティティに対して高いリコールを有するだけでなく、研究に必要なエンティティ(例えば、薬物、疾患など)に対しても高い精度を有することを保証するために、大きなエンティティのセットとすることができる。関心のあるエンティティのサブセットのみがマスキングされる。残りのエンティティは、検出されている間、モデル性能評価にのみ使用される。
【0137】
エンティティタイプごとに、ラベル付きデータセットは、そのエンティティタイプのモデル1202を微調整するために使用される。好ましい実施形態は、エンティティのタグ付けごとに少なくとも1つの別個のモデルを説明しているが、複数のエンティティにタグ付けするモデルも排除しない。
【0138】
本開示の好ましい実施形態では、各タグ付けモデルは、アテンションベース(attention based)のモデル、例えば、参照によりその全体が本明細書に組み込まれる、Devlinらによる、「BERT:Pre-training of deep bidirectional transformers for language understanding」、arXivプレプリント arXiv:1810.04805に記載されているBERTモデルである。しかしながら、シーケンスモデル(例えば、長・短期記憶(LSTM:long short-term memory)ネットワーク、条件付きランダムフィールド(conditional random field)を有するLSTM(LSTM-CRF)、又はリカレント・ニューラル・ネットワーク(RNN:recurrent neural network))などの他のモデルを、エンティティにタグ付けするために使用してもよい。BERTを使用する場合、エンティティタイプごとに、エンティティタイプに最適な事前訓練されたモデルが選択される。例えば、人、場所などのエンティティにタグ付けする場合、Wikipediaのような一般的なコーパス上で教師なしで訓練されたモデルで十分であり得る。いくつかの実施形態では、事前訓練されたモデルは、とりわけ、健康科学ジャーナル、専門出版物、査読済みジャーナル出版物、又はオペレータコンパイル型データベースなどのモデル訓練を増強するために、他の既存の公的に利用可能なデータベースに基づくことができる。疾患、遺伝子などのエンティティにタグ付けするとき、科学出版物/生物医学コーパスで訓練されたモデルは、ドメイン固有の言語的特徴をモデルに組み込むことを支援することによって、又は分野で広く普及していない可能性がある新興用語を識別することによって、良い結果を生成し得る。
【0139】
テキストデータの大きなコーパスからテキストのテンプレート又はパターンを発見するための1つの方法は、統計的な固有表現認識(NER:named entity recognition)モデルを、コーパス内の個々の文に適用することによって生成された類推を含み得る。テキストのパターンが頻繁に繰り返される大きなコーパスでは、統計的方法は、パターンのすべてのインスタンスを捕えない可能性がある。例えば、「Electronically signed by:SMITH,JOHN C on 01/02/1980 at 12:12 PM CST」という文では、「SMITH,JOHN C」が人物のエンティティとして検出される可能性があるが、「Electronically signed by:DEWEY,JONES K on 01/02/1980 at 12:12 PM CST」という極めて類似した文では、「DEWEY,JONES K」が完全に人物として検出されない可能性がある。そのような状況では、パターンベースの方法が良好に機能する。「Electronically signed by:[A-Za-z]+,[A-Za-z]+[A-Za-z]+on ¥d+/¥d+/¥d+at ¥d+:¥d+PM CST」のような正規表現構文は、すべてのそのようなケースを捕える。しかし、パターンの識別は、特に手動で行われる場合、コーパス内の十分に大きな文のサンプルの検査を含むため、不可能ではないにしても困難な作業になる。NER予測は、それらのタイプによって符号化されたエンティティ値を有する文テンプレートを生成するために使用され、それらの符号化を構文パターンにマッピングし得る。これは、パターン・マッチング・テンプレート候補の生成を自動化する方法を提供する。
【0140】
一実施形態によれば、NERモデルは、図13に関して以下で更に説明する前処理の形式として、コーパスを個々の文に最初に分割することによって、使用されてもよい。これは、自然言語ツールキット、spaCy、CoreNLP、TextBlob、Gensimなどの自然言語処理ツールを使用することによって完了されてもよい。いくつかの実施形態では、コーパスを文に分割することは、例えば、同じ文がコーパス内で複数回出現するときに、処理されるテキストの全体量を低減し得る。したがって、コーパスを文に分割し、得られた文のセットの重複を排除することで、計算効率は向上し得る。いくつかの実施形態では、1つ又は複数の短い文(例えば、単語又は用語の数が閾値より少ない文)を組み合わせてもよく、これは、機械学習モデルに追加のコンテキストを提供し、NERタグ付け性能を改善し得る。一例として、「Performed by pet」 という文において、「pet」という用語は、動物のペット、又は(他の可能性の中でも)大文字使用を伴わない「Peter」という名前の人の頭字語のいずれかを意味する可能性がある。しかしながら、前の文が「硬膜外麻酔が4時間後に切れた」であった場合、これは、「pet」が硬膜外麻酔を投与された人の固有名詞を指す可能性が最も高いと類推する機械学習モデルにとって適切なコンテキストの提供となる。
【0141】
コーパスを文(又は複数文の節)に分割した後、各固有の文は、アルファベット、数字、及び英数字と関連付けられたトークンを含む構文テンプレートにマッピングされてもよい。例えば、文字の連続したシーケンスは、トークン「W」を使用して識別される一方で、数字のみのシーケンスは、トークン「N」を使用して識別され、英数字のシーケンスは、トークン「A」を使用して識別されてもよい。例えば、「Electronically signed by:SMITH,JOHN C on 01/02/1980 at 12:12 PM CST」という文は、「W W W:W,W W W N/N/N W N:N W W」となる。そして、システムは、上記のトークンを使用して生成した各固有のテンプレートに整列するコーパス内の文のリストを生成し、統計的なNERモデルを適用して、選択されたテンプレートに整列するコーパス内の文の量を決定し得る。しかしながら、このトークンベースの手法を使用すると、文内のすべての単語、数字、及び英数字の文字をトークン化し、そのうちのいくつかはマスキングされる必要がない。システムはまた、テンプレート内で識別されたエンティティタイプに基づいてトークンを符号化する。トークン符号化技術は、内部、外部、開始(IOB:inside,outside,beginning)フォーマット又はIOB2フォーマットを含んでもよい。例えば、このステップにより、原文「Electronically signed by:SMITH,JOHN C on 01/02/1980 at 12:12 PM CST」は、「Electronically signed by:B-PER,I-PER I-PER on B-DATE at B-TIME PM CST」になる。
【0142】
多数のサンプルが同じテンプレートにマッピングされる場合、システムは、そのテンプレートをルールになる候補として識別し、異なるテンプレートにマッチングするルールの曖昧さを低減する。候補テンプレートをルールに遷移させる前に、システムは、ルール内でマスキングされなければならないエンティティを識別するために、トークン識別された文出力と、IOB又はIOB2符号化出力とを相互参照することによって、テンプレート内のIOB又はIOB2タグを、対応する構文トークンに戻し得る。IOB2フォーマットとトークンとを置換することにより、トークンに基づく単純化されたルールとすることができるが、マスキングされる必要のない単語又は情報をテンプレートの元のテキストに保持する。例えば、フォーマットされたテンプレート「Electronically signed by:B-PER,I-PER I-PER on B-DATE at B-TIME PM CST」は、名前付きエンティティを識別するためのルール又はパターンテンプレートである「Electronically signed by:W,W W on N/N/N at N:N PM CST」になる。パターンテンプレート内の構文トークンは、標準的な構文パターンマッチング方法に直接変換する。例えば、「W」は、正規表現「[A-Za-z]+」に、「N」は、「¥d+」にマッピングされてもよい。したがって、一実装形態では、上記の例のパターンテンプレートは、正規表現「Electronically signed by:[A-Za-z]+,[A-Za-z]+[A-Za-z]+on ¥d+/¥d+/¥d+at ¥d:¥d PM CST」になってもよい。
【0143】
代替的な実施形態では、上述のように、コーパスを個々の文に分離することに続いて、システムは、上記の説明と同様に、統計的なNERモデルを介して個々の文を最初に渡してもよく、統計的NERモデルは、IOB又はIOB2タグで抽出されて、置換されたエンティティ用語を有する各文の出力を生成する。次に、システムは、タグ付きエンティティタイプ又はタグ付きエンティティカウントの指定された閾値カウントをもたらさないテンプレートを除外し得る。例えば、少なくとも2つのエンティティタイプを有するテンプレートのみがルールに適格である、又はエンティティタイプに関係なく、潜在的に少なくとも4つのタグ付きエンティティを有するテンプレートであると、システムオペレータは指定してもよい。閾値カウントが満たされると、システムは、IOB又はIOB2構文トークンを、選択されたテンプレートにマッピングし、更に上述した同じアルファベット、数字、及び英数字のトークン「W」、「N」、及び「A」を使用して、パターンテンプレートを生成し得る。パターンテンプレートを生成した後、システムは、パターンテンプレートが固有の統計的なNERクラスに由来するか否かを評価し、ルールを作成するために、それらの固有のパターンテンプレートを選択し得る。各固有のパターンテンプレートは、特定のパターン化シーケンスに続く文の数に、あるいは異なる数のエンティティ又はエンティティタイプを有する数に、基づいてもよい。例えば、パターンテンプレートのすべてのインスタンス「Electronically signed by:W,W W on N/N/N at N:N PM CST」が、NERテンプレートのインスタンス「Electronically signed by:B-PER,I-PER I-PER on B-DATE at B-TIME PM CST」から生成された場合、それはルール生成のために選択される。そうすることにより、システムオペレータは、コーパス内のエンティティタイプを誤って識別することによって不適切なデータマスキングになる可能性が低くなるように、ルールベースのテンプレートを制限し得る。機密情報をマスキングするなどのいくつかの実施形態では、オペレータが複数のエンティティを同じものとして扱うことが有用である場合がある。マッチングする別のテンプレートは、それらがマッチングの最小数/割合のいくつかの閾値を潜在的に通過した後、手動で検査され得る。例示的なIOB/IOB2構文トークンを使用して説明しているが、このルール生成方法は、コーパス内のエンティティ及びエンティティタイプを示すために、他の形式の構文又はトークンシステムを使用してもよい。
【0144】
訓練及びルール開発はまた、エンティティタイプに基づいて個々のモデルを評価する前に、一連のカテゴリに基づいてコーパス内の文書又は記録を手動で分類するオペレータで構成されてもよい。記録内の特定のタイプのPHIが、類似して、識別可能である可能性が高くなるように、データ記録は、セグメント記述、サービス記述、及びサービスイベントなどのカテゴリに分類され得る。例えば、特定の記録のセグメント記述は、とりわけ、経過ノート、相談、退院指示書、患者概要、又は医師のノートなど、ノートの性質に基づいてもよい。サービス記述は、医療腫瘍学、整形外科、皮膚科、家庭医療、又は救急科、並びに組織又はビジネスの他のファセットを含む治療の部門又は領域を識別し得る。サービスイベントは、臨床外来患者、入院患者、緊急事態、検査室、内分泌学相談、日中手術、又は他の文書作成設定など、文書が生成された設定を識別し得る。
【0145】
訓練文書のコーパスが分類されると、個々の検証セットは、個々の分類内で使用され、データ記録の反復位置において、PHIを一般的に含む反復データフォーマットを識別し得る。例えば、外来設定で収集された皮膚科サービス記述が、文書の第1の文内の個人名情報の形式のPHIを一般に含むという識別を、分類は、もたらし得る。分類はまた、記録タイプごとの患者ノートの数の分布を識別するために使用され、各ノートは、特定の形式のPHIデータを含み得る。分類により、オペレータは、分類メトリックのいずれか1つに基づいて記録ごとのPHI要素の平均数を識別することも可能にし得る。分類に基づいてPHIの普及を識別することによって、オペレータは、ノートタイプ(PHIエンリッチ・ノート・タイプとも呼ばれる)及びモデル訓練に優先順位を付けて、大量のPHIデータを含む記録に焦点を合わせ得る。
【0146】
エンティティタイプに対して、特定の事前訓練されたモデルが選択されると、モデルは、ブートストラップ訓練セット1201で微調整される。ブートストラップ訓練セット1201は、反復プロセスを使用して更新されてもよく、それによって、訓練サンプルは、訓練サンプルの初期セットに連続的に追加され、これについては図14に関連して以下で更に説明する。いくつかの実施形態では、既存の訓練サンプルは、以前のモデルで識別されたエラーに基づいて、選択されたコーパスから選択された個々の文によって補完されてもよい。モデルが微調整された後、未知の分布1200bからサンプル評価/テストセットが引き出され(1203)、リコール、精度、及びFスコアレベルを評価することによって、各モデルの有効性が評価される(1204)。このステップは、エンティティタイプごとに実施され、リコール/精度スコアが計算される。
【0147】
平均リコール、精度、及びFスコアレベルが、n個のテスト(nは任意の数)にわたって必要なレベルと少なくとも同程度に良好である場合、そのエンティティ訓練は完了したと見なされる。マスキング手順後に利用可能にされる情報を識別するために、オペレータが有するリスク許容度に応じて、必要なレベルは、システムオペレータによって決定される閾値成功率又は比率であってもよい。すべてのエンティティが所望の閾値に達すると(1207)、データセット1200bに対して完全なマスキング実行が行われる(1208)。マスキングされたセットに対してサンプリングが行われ、リコール/精度の最終的な測定値について試験される(209)。
【0148】
エンティティタイプの平均リコールスコアが、そのエンティティタイプに対して必要な閾値を上回っていない場合(1205)、未知の分布のラベルなしデータセットからサンプルが引き出され(1206)、ステップ1204において、モデルの有効性を評価するために同じ方法を使用して再び評価される。ステップ1206において、閾値要件を満たさなかった失敗した文は、テンプレートサンプルを生成するために使用され、エンティティタイプ内で関連付けられた辞書を使用して、失敗した文内の実際のエンティティインスタンスと、辞書からの同等のエンティティインスタンスとを置換するように、訓練セットに追加される(1206)。辞書を使用してエンティティタイプを置換することによって、これは、以前に失敗したエンティティインスタンスが訓練の将来の反復において適切に説明されることを保証する。
【0149】
図13は、いくつかの実施形態による、エンティティのタグ付けプロセスの簡略図である。入力テキスト1301は、各エンティティタグ取付け部に供給される前に、最小限の事前処理がなされる。いくつかの実施形態では、入力テキスト1301は、同時に処理される患者ノートのバッチを含んでもよい。前処理の一部として、システムは、ノートのバッチを分解し、個々の文に文識別子(「文ID」)を割り当てて、これにより、ノートの各々からの個々の文を個別に処理し、後述する後のコンパイルのために文IDの記録を保持し得る。更に、複数の文が、同じパターン又は情報を含む場合、事前処理の一部として、システムは、文IDを使用して追跡されたバッチ内の文を関連付け得る。このようにして、システムは、識別情報を正確にマスキングするために、関連する文の1つの代表文を処理するだけでよく、関連する文の各々に対して同じマスキングを、後で実施するだけでよい。前処理は、エンティティ依存又はエンティティ非依存であり得る。例えば、人物タグ取付け部への入力の1つの経路は、活字のケースが保存されているテキストとすることができ、同じエンティティタイプの別のエンティティタグ取付け部への入力のための別の経路は、活字のケースの正規化を実施し得る(任意選択で、すべての名詞形を大文字の後に続いて小文字のテキストで開始するようにPOSタグ取付け部を使用する)。いくつかの実施形態では、段落の区切り及び/又は句読点を使用して、患者ノートのバッチのテキストを個々の文に分離してもよい。更に、非構造化テキスト文字列は、テキストファイル、データベース、又は任意の他の一般的に使用されるデータ記憶装置リポジトリシステムから分離されてもよい。
【0150】
いくつかの実施形態では、PHIを含まないと一般的に識別され、したがってマスキングを必要としない、共通又は繰返しフレーズを識別するために、タグ付け部モデル1302~1305に文を導入する前に、ホワイトリストタグ取付け部(図示せず)を使用してもよい。例えば、ホワイトリストに登録されたエントリは、コンピュータ生成テキスト(例えば、「薬の服用に問題がある場合は、かかりつけ医に知らせてください。」)、医師の筆記体の繰返しフレーズ(例えば、「疼痛症状:なし」)、又はセクションヘッダなどの臨床ノートの共有要素(例えば、「現在の病気の病歴」)を含んでもよい。これらのホワイトリスト文は、PHI又は他の識別情報を公開するリスクが、ほぼゼロパーセントであるため、処理されるデータから除去され、後のコンパイルのためにアグリゲータ1306に渡され得る。ホワイトリストタグ取付け部を生成するために、各固有の文の普及カウントが、手動レビューステップ後の最高カウントに基づいて計算され、識別され得る。システムの一部としてホワイトリストタグ取付け部を使用すると、PHIを含まないことが知られているデータのタグ付け及びマスキングを必要としないことによって、計算リソースが節約される。
【0151】
図13に示すように、複数のエンティティタグ取付け部モデルは、各エンティティタイプにタグ付けし、タグ取付け部モデルの数及びタイプは、とりわけ、そのエンティティタイプに必要な要求されるリコール、精度、及びFスコアレベルなどに依存する。例えば、タグ取付け部モデル1302は、人物又は組織の名前エンティティに合わせて調整され、タグ取付け部モデル1303は、日付エンティティに合わせて調整され、タグ取付け部モデル1304は、年齢エンティティに合わせて調整され、タグ取付け部モデル1305は、疾患エンティティに合わせて調整される。タグ取付け部モデルのいくつかは、ルールベースの手法、ディープ・ラーニング・モデル、及びパターンベースのモデルなどの異なる訓練手法を使用して訓練されてもよい。そうすることにより、エンティティタイプごとに多様なタグ付け手法が生成され、システムがエンティティ情報の識別を見逃す可能性を更に低減する。
【0152】
好ましい実施形態では、各エンティティタイプは、1つ又は複数のエンティティタグ取付け部モデルによってタグ付けされるが(エンティティタイプのタグ付きの数は一定ではない)、他の実施形態は、複数のエンティティにタグ付けするモデルを有してもよい。いくつかの実施形態では、特定のエンティティに関連付けられた1つ又は複数のエンティティタグ取付け部モデルは、非構造化EHRデータ内のエンティティに関連付けられた異なる相補的特徴を識別するように微調整されてもよい。例えば、名前エンティティに合わせて調整されたタグ取付け部モデルの場合、任意のモデルは、テキスト内の名前を識別することに焦点を合わせる一方で、別のモデルは、住所及び位置に関連する名前に合わせて調整されてもよく、又は別の場合、追加のタグ取付け部モデルは、事前処理を必要とせずに、名前の活字のケース化及びケース化なしの変形に焦点を合わせてもよい。
【0153】
モデル1302、1303、1304、1305からのタグ付き出力は、すべての所望のエンティティがプレースホルダのタグで置換された文を出力するアグリゲータ1306に供給される。アグリゲータは、誤って形成されたエンティティシーケンスの修正(例えば、I、IなどがB、Iシーケンスに変換される)、タグ付けの競合の解決(疾患と人物の両方にタグ付けされた同じ用語-例えばパーキンソン氏)、誤って整列されたエンティティタイプのスパンの処理、及びタグ付き用語とプレースホルダのタグとの最終的な置換など、複数の機能を実施する。アグリゲータは、エンティティタイプに関する必要なリコール、精度、Fスコアに基づいて、フィルタリングされるエンティティに優先順位を付け得る。
【0154】
次いで、アグリゲータ1306からの出力は、ドレグフィルタ1307、1308が代表的であるドレグフィルタのカスケードを通過する。ドレグフィルタは、特定のエンティティタイプに対する最終的な処理フィルタとして機能して、前の処理ステップでミスした個々のエンティティが、PHIにアクセスするべきではないユーザへの出力として生成されないことを保証し得る。例えば、ドレグ・フィルタ・カスケード1307は、人物エンティティタイプに合わせて調整され、ドレグ・フィルタ・カスケード1308は、日付エンティティタイプに合わせて調整される。追加のドレグフィルタは、タグ取付け部1302~1305に関連するエンティティタイプに向けられて、含められ得る。ドレグフィルタ1307、1308は、上記のステップでタグ付けされなかった用語/フレーズをフィルタリングする。ドレグフィルタ1307、1308は、PHIエンリッチ・ノート・タイプに基づくルールベースのテンプレートを使用して、タグ取付け部モデル1302~1305によって識別されなかった追加のPHIを除外し得る。ルールベースのテンプレートは、PHIデータを好適に識別するために、データ記録内の個々の文構造に合わせて調整され得る。各ドレグ・フィルタ・カスケード1307、1308は、異なるエンティティタイプに向けられ、複数のルールベースのテンプレートを含み得る。ドレグフィルタ1307、1308はまた、パターン・マッチング・フィルタ又は同様の手法を使用して、PHIデータを識別し得る。最終出力1309は、元の文と、個々の文の各単語に対するタグの関連する配列(例えば、IOB2フォーマット)であり、所望のマスキングされた出力をもたらす。最終出力1309の前に、システムはまた、モデル1302~1305にタグ付けすることによって実行されるタグ付けの前に記憶された文IDを使用して、バッチデータセットからノートの各々をコンパイルし得る。
【0155】
フィルタドレグは、入力文を取り込み、入力は、IOB又はIOB2フォーマットを使用して、文のフレーズの始まり及び終わりをマークするフレーズタグ取付け部を介して送られる。タグ付けされなかったそれらの用語/フレーズについては、存在する場合、エンティティの辞書が、使用され、エンティティタイプごとに、辞書内の用語のベクトル表現と、タグ付けされていないフレーズのベクトル表現との類似性を見つける。これは、その後、前のステップで見逃された可能性があるエンティティを更にフィルタリングするために使用される。
【0156】
例えば、文に出現した名前「jayendran balakrishnan」が、人(偽陰性)、又は任意の他のエンティティタイプ(偽陽性)としてタグ付けされていない場合、そのフレーズは、フィルタカスケード段階1307/1308でピックアップされ、エンティティタイプごとに、辞書用語のベクトル表現とマッチングされる。類似性測度が何らかの閾値を超える場合、フレーズは、文から、トークン又はトークン表現に置換される。BERTモデルは、サブワードから単語を構築する能力のために、フレーズのベクトル表現を生成するために使用され得る。いくつかの実施形態では、訓練モデル及び/又はドレグフィルタの両方は、関係の強さによって順序付けられた入力用語間の関連付けを使用して、関連付けをグループ化し、PHIとして不適切にタグ付けされた可能性がある出現中の単語又はフレーズを識別してもよい。例えば、入力「ECOG」は、公的に入手可能な文献に基づいて上位の疾患に関連付けられてもよいが、システムは、「ECOG」を人の名前としてタグ付けしている可能性がある。「ECOG」と、一般的に関連する疾患用語との間の関係を検討することによって、システムは、「ECOG」を適切に識別し、それをPHIとして扱わない場合がある。
【0157】
次いで、カスケード・ドレグ・フィルタ段階1308からの出力は、モデル精度/確度を評価するために使用される。これは、システムオペレータによる最終出力1309の手動サンプリング、又は以下に説明する自動化プロセスを使用して完了され得る。
【0158】
いくつかの実施形態では、出力データで識別されたタグ付きエンティティは、様々な方法でマスキングされてもよい。例えば、タグ付きエンティティは、削除されてもよく、空白文字で置換されてもよく、エンティティのタイプを識別するプレースホルダで置換されてもよい。いくつかの実施形態では、タグ付きエンティティの値は、同じタイプのランダム情報に変更されてもよい。例えば、タグ付きエンティティが電話番号である場合、エンティティはランダムな(又は難読化された)電話番号に変更されてもよい。この手法は、エンティティタグ付けモデルが検出できない個人情報を難読化し得る。例えば、エンティティタグ付けモデルが、所与の記録のセット内で10個の電話番号のうちの9個を検出してランダム化するが、10番目をミスした場合、データのエンドユーザは、どの電話番号が実際のものであり、どれが難読化されているか分からず、それによって、タグ取付け部が検出しなかった電話番号に、保護形式を提供する。
【0159】
いくつかの実施形態では、識別解除が完了した後であっても、オペレータシステム内で患者データ記録を全体的に関連付けるために、特定の患者IDフィールドを保持してもよい。例えば、マスキング後に情報が公開されているにもかかわらず、オペレータが関連する患者ファイルを遡及的に引き出したい場合には、マスキングされた文書のコーパスに、患者インテークIDを保持してもよい。患者IDはまた、とりわけ患者の生年月日、住所、病室番号、電話番号、又は電子メールアドレスなどの他の形態をとってもよい。そうすることにより、オペレータは、各個々の記録インスタンスが独立してマスキングされた後であっても、匿名化されたデータの有用性を最大にするために、データ内に有用な医療及び生物学的シグナルを保持し得る。患者及び他の識別子は、そのような目標を達成するために、これらの個々の記録間のリンクを提供し得る。
【0160】
患者IDがデータ記録インスタンスに保持される場合、いくつかの実施形態は、患者IDを有する患者記録の暗号化バージョンにアクセスすることができる、組織の個人又は指定メンバなどのカバーされるエンティティに対する許可を含んでもよい。例えば、カバーされるエンティティは、共通の患者識別子を有する患者データ記録のバージョンにアクセスするための暗号化鍵、パスワード、又は多段階認証方法など、特定の資格認証情報を有してもよい。他の実施形態では、患者IDは、マスキング手順後にすべての文書に保持されてもよいが、患者IDをその患者の医療記録の完全なセットに相関させるデータベースは、暗号化データファイルに記憶される(患者データの「リンク」とも呼ばれる)。暗号化方法は、AES-256暗号化を含んでもよい。データ記録はまた、ソルトを使用しても、又はデータをハッシュするために、追加の一方向関数を使用したランダムなデータシーケンスを使用して、暗号化されてもよい。そうすることにより、暗号化ハッシュの繰返し推測を実行するために、効率的な計算システムを使用して総当たり攻撃によってデータが危険にさらされることを防止する。いくつかの実施形態では、安全なハッシュは、システムがハッシュを患者IDと関連付ける一方向追跡であり、これは、患者データ記録を再構築するために、入力IDと出力ハッシュIDを別々のデータリポジトリ又は記憶場所に別々に記憶する必要がある。これは、とりわけ、SHA-512ハッシュを含んでよい。これらの実施形態では、カバーされるエンティティは、生成された場合、暗号化鍵、ソルト、及び任意の出力マップへのアクセスを制御してもよい。
【0161】
他の実施形態では、システムは、PHIがイメージ自体にテキストとして埋め込まれる、X線又はオプト相同イメージなどのイメージに含まれるPHIをマスキングするために、使用されてもよい。そのような実施形態では、システムは、畳み込みニューラルネットワークを使用して、イメージが作成されるオペレータの好ましいプログラム又はアプリケーションに基づいて、イメージ内の領域を自動的に検出してもよい。いくつかの実施形態では、システムは、イメージ内の識別された領域からテキストを自動的に検出し、抽出し、次いで、そのテキストを、文ごとに関連する上記の説明と同様のデータベースからの置換可能な匿名化テキストにマッピングしてもよい。他の実施形態では、システムは、全スライド・イメージ・レベルのラベルを取り、パッチレベル(例えば、PHIを含有すると識別されたイメージの部分領域)で予測を行うように訓練された畳み込みニューラルネットワークからなるマルチインスタンス学習(MIL:Multi Instance Learning)を使用してもよい。代表的なパッチサイズは、イメージの2次元ピクセルサイズに基づいてよく、ピクセルレベルの注釈ではなく、スライドごとのレベルでクラスを予測するために、パッチレベル予測において、最大プーリングを、又はリカレント・ニューラル・ネットワーク(RNN)を使用してもよい。別の実施形態では、システムは、イメージ類似性方法を使用して、特定のイメージ内に見られるPHIを識別し、マスキングしてもよい。そのようなモデルを訓練するために、システムオペレータは、訓練イメージの特定の部分領域を選択し、解像度値を設定し、次いで、同じ解像度値でデータベースから、すべての類似パッチを見つけるようにシステムに依頼してもよい。例えば、トリプレット損失概念に基づく分類器ネットワークを最初に構築して、すべての解像度で各イメージから(ベクトルとして)きめ細かい特徴を効率的に学習してもよい。次いで、そのようなイメージ由来特徴ベクトルのデータベースが生成され、イメージの別個の倍率/解像度レベルを別個のイメージ自体として処理する。次に、システムは、最新の高性能高次元類似性検索方法(例えば、とりわけ、シャム型ニューラルネットワーク)を使用して、ユーザがクエリで使用したパッチに最も類似したパッチを見つけ得る。
【0162】
図14) いくつかの実施形態による、有効性をマスキングするためのテストスイート
診断フロー方法を示す簡略図である。テストスイート方法1400は、図12に記載したものと同様に、オペレータが、テスト環境で新しいモデルを訓練すること、又はライブシステムに以前に展開された個々のタグ付けモデルのパラメータを継続的に強化して、特定のエンティティモデルの精度、リコール、及びFスコアレベルを改善することの両方を可能にする。新しいモデルの場合、システムオペレータは、データセット内の特定のエンティティに関連付けられたタグを含むラベル付きデータセット1401を、訓練フェーズにおけるシステムに導入し得る。このラベル付きデータセットは、オペレータによって手動で識別されてもよく、又は図13に記載したモデルタグ取付け部1302~1305によって生成された以前にラベルが付けられたデータセットの成果であってもよい。ステップ1402において、テストスイートの訓練段階において、ラベル付きデータセットは、初期タグ取付け部モデルV1403を訓練するために、初期タグ取付け部モデルV1403に導入される。ステップ1404において、モデルV1403は、ラベルなしデータセット1409のサブセットを分析し、モデルV1403がラベルなしデータセット内で識別したトークンのセットを有するラベル付きデータセットの出力を生成する。次に、ステップ1405において、出力が評価されて、タグ取付け部モデルタイプ(例えば、それがどのエンティティの1つ又は複数のタイプに合わせて調整されるか)を検証し、ラベル付きデータセットからタグ付けされたトークンのエラーを識別する。テストスイートは、モデルV1403出力の精度、リコール、及びFスコアレベルを決定し、システムオペレータによって決定された閾値に対して3つすべてのスコアを測定する。
【0163】
ステップ1405において、精度、リコール、及びFスコアレベルが、必要な閾値を満たさない場合、テスト・スイート・システムは、ステップ1406において、異なる、又は更新されたラベル付きデータセットを選択し、ステップ1407において、更新されたラベル付きデータセットをモデルV1403に再導入し、これにより、モデルが、新しい文字を取り込み、モデルV1408をもたらす。更新されたラベル付きデータセットは、ステップ1404で知覚されたエラーに基づくことができ、これにより、モデルは、特定のエンティティタイプを認識するそれ自体の能力を反復的に改善する。再訓練に続いて、モデルV1408は、更新されたラベル付きデータセット内でモデルV1408が識別した新しいトークンのセットを有する更新されたラベル付きデータセットにタグ付けし、その出力は、ステップ1404及び1405においてモデルV1403と同じ方法で評価される。いくつかの実施形態では、モデルV1408は、臨床ノートなどの報告されたデータのコーパスから取得されたラベルなしデータセット1409の一部に対して検証されてもよい。このプロセスは、再訓練されたモデルがステップ1405において精度、リコール、及びFスコアに必要な閾値を満たすまで、反復的に繰り返される。完了すると、検証されたモデルV1410が、最終的に生成され、ここで、Nは、ステップ1405において、適切な閾値確度に達する前にモデルを完了するために必要な訓練フェーズ内の反復回数を表す。
【0164】
確認後、モデルV1410は、ライブシステムに展開され、ステップ1411において、ラベルなしデータセット1409の大きなコーパスから受け取ったデータにタグ付けするために使用され得る。ステップ1411におけるデータの処理は、図3に関して上述したものと同じであり、ステップ1412において最終匿名化データセットをもたらす。
【0165】
前述の実施形態は例示であり、様々な代替形態が可能であることを理解されたい。いくつかの実施形態では、特定のエンティティタイプに対応する単語のセット(又は複数単語用語)が与えられると、セット内の単語を含むテキスト文書又はコーパスから、1つ又は複数の連続フレーズが抽出される。例えば、組織のタイプに対応する単語のセットを考える。すなわち、セットは、例示的に、「肺」、「肝臓」、「脳」などの単語を含んでよい。セットはまた、「左」、「右」、及び「後」などの用語を含んでもよく、これらは組織のコンテキストで追加の修飾語として使用されることが多い。逆に、単語のセットは、PHI又は他の機密情報を表し得る単語及びフレーズを省略してもよい。特定のテキストフラグメント(例えば、「スミスさんは今日、左肺の手術のためにMGHを訪問した」)が与えられると、エンティティ(例えば、「左肺」)に対応する単語のセットに見られる単語で構成されるフレーズが、抽出される。特に、前述の例では、単語のセットが、このフレーズを直接含まない場合でも、「左肺」というフレーズが抽出され、むしろ、セットは、構成単語「左」及び「肺」を含む。このようにして、患者識別可能コンテンツ(例えば、上記の例における名前「スミスさん」)が抽出されない間に、有用な情報が、テキストから抽出され得る。このアプローチは、疾患、薬物などの多種多様な生物医学エンティティに容易に拡張され得る。
【0166】
いくつかの実施形態では、名前付きエンティティ認識は、ラベル付き訓練文を使用せずに、教師なしの方法で実施されてもよい。例えば、名前付きエンティティ認識は、マスキングされた言語モデル目標を使用してコーパスで訓練されたBERTモデルを使用して実施されてもよい。この技術の例示的な例は、2020年2月28日のTowards Data Science(https://towardsdatascience.com/unsupervised-ner-using-bert-2d7af5f90b8a)の記事「Unsupervised NER using BERT」に更に詳細に記載されており、その全体が参照により本明細書に組み込まれる。
【0167】
個人の健康データなどの情報を安全に処理し、受け取ることに関連する上述の課題に加えて、情報のリポジトリから検索クエリに応答する情報を検索することは課題であり得る。情報は、文書の集合、データベース(例えば、構造化データベース、半構造化データベース、又は非構造化データベース)、知識グラフなど、様々な方法で記憶され得る。いくつかの情報検索ツールは、クエリ用語に基づいてリポジトリから文書又は他の記録を検索するように設計される。例えば、様々な公的に利用可能な検索エンジン(例えば、Google又はPubMed)は、ユーザ提供のクエリ用語に関連するウェブページ、ジャーナル記事、書籍などを識別するように構成される。
【0168】
しかしながら、いくつかのシナリオでは、リポジトリ内の関連する記録を識別することは、ユーザのクエリに対する適切な応答を生成しない場合がある。例えば、ユーザが集約された情報に基づいて判定又は類推を行おうとしているとき(例えば、特定の薬物が特定の疾患に対して有効であることが示されているか否かを、その薬物に対して実施された研究の集合に基づいて判定するために)、関連文書のリストを含む検索結果は、ユーザのクエリに、明確に、そして直接的に応答しない場合がある。例示すると、特定の薬物が、特定の疾患に対して有効であることが示されているか否かの回答を求めるユーザの上記の例では、ユーザは、どの文書がクエリに実際に応答しているかを判定するために、各関連文書(例えば、薬物及び疾患に言及する各文書)を閲覧するという面倒なタスクを課される可能性がある。その後、応答文書のその後の手動分析を実施して、ユーザによって提示された最初の質問に対する回答を生成し得る。検索結果を手動で調べて所望の情報をつなぎ合わせ、適切な判定又は類推を行うこのプロセスは、面倒で時間がかかる可能性がある。
【0169】
したがって、クエリに応答する情報を検索するための改善された技術を、特に、異種フォーマットで記憶された情報に適用され得る技術を、開発することが望ましい。
【0170】
図15は、いくつかの実施形態による、情報検索のためのシステム1500の簡略図である。システム1500は、ネットワーク1510を介して通信可能に接続された複数のデバイス1501~1509を含む。デバイス1501~1509は一般に、パーソナルコンピュータ、モバイルデバイス、サーバなどのコンピュータデバイス又はシステムを含む。ネットワーク1510は、1つ又は複数のローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、有線ネットワーク、無線ネットワーク、インターネットなどを含んでもよい。例示的に、デバイス1501~1509は、TCP/IPプロトコル又は他の適切なネットワークプロトコルを使用して、ネットワーク1510を介して通信してもよい。
【0171】
デバイス1501~1509のうちの1つ若しくは複数は、デジタル文書1521~1529を記憶し、及び/又はネットワーク1510を介してデジタル文書1521~1529にアクセスし得る。例えば、図15に示すように、デバイス1501、1502、及び1509はそれぞれ、デジタル文書1521、1522、及び1529を記憶し、デバイス1503は、ネットワーク1510を介してデジタル文書1521~1529にアクセスする。デジタル文書1521~1529は、ウェブページ、デジタルファイル、デジタルイメージ(ビデオ又はアニメーションの1つ又は複数のフレームを含む)などを含んでもよい。例示的に、デジタル文書1521~1529は、HTML/CSS文書、PDF文書、ワープロ文書(例えば、Word文書)、テキスト文書、スライドショープレゼンテーション(例えば、パワーポイントのプレゼンテーション)、イメージファイル(例えば、JPEG、PNG、又はTIFFイメージ)などとしてフォーマットされてもよい。デジタル文書1521~1529は、異種(例えば、異なるフォーマット又はファイルタイプの)、又は同種(例えば、同じフォーマット又はファイルタイプの)であり、構造化データ又は非構造化データを含んでもよい。一般に、デジタル文書1521~1529は、英数字、記号、絵文字、テキストのイメージ表現などを含み得るテキストデータを含む。ネットワーク1510を介した効率的な記憶及び/又は送信のために、文書1521~1529は、ネットワーク1510を介した送信前又は送信中に圧縮されてもよい。暗号化、認証(多要素認証を含む)、SSL、HTTPS、及び他のセキュリティ技術などのセキュリティ手段が、適用されてもよい。
【0172】
いくつかの実施形態によれば、デバイス1503は、デバイス1501、1502、及び1509からデジタル文書1521~1529をダウンロードすることによって、デジタル文書1521~1529のうちの1つ又は複数にアクセスしてもよい。更に、デバイス1501、1502、又は1509のうちの1つ又は複数は、デジタル文書1521~1529をデバイス1503にアップロードしてもよい。デジタル文書1521~1529は、様々な時点で更新されてもよい。したがって、デバイス1503は、最新のコピーを取得するために、様々な間隔(例えば、周期的)で複数回デジタル文書1521~1529にアクセスし得る。
【0173】
図1図14と一致するいくつかの実施形態では、デバイス1501~1509のうちの1つ又は複数は、セキュアなデータストア810,901、及び1009などのセキュアなデータストアに対応するか、それらを含んでもよい。例えば、デジタル文書1521~1529のうちの1つ又は複数は、個人の健康データを含んでもよく、したがって、例えば、プライバシー規制に準拠するために、マスキングされた情報を含んでもよい。マスキングは、図1図14と一致する技術を使用して、情報マスキングシステム1102などの情報マスキングシステムによって実施され得る。いくつかの実施形態では、情報マスキングシステムは、システム1500の一部として含まれてもよく、別個のシステムであってもよく、又は複数のシステムにわたって分散されてもよい。マスキングは、デバイス1503によって、アクセスされる前、アクセス中、又はアクセスされた後に、実施されてもよい。
【0174】
図15に示すように、デバイス1503は、メモリ1540(例えば、1つ又は複数の非一時的メモリ)に接続されたプロセッサ1530(例えば、1つ又は複数のハードウェアプロセッサ)を含む。メモリ1540は、情報検索プログラム1550に対応する命令及び/又はデータを記憶する。プロセッサ1530が実行されるとき、情報検索プログラム1550により、プロセッサ1530は、クエリに応じた情報の検索に関する動作を実施する。いくつかの実施形態では、クエリは、デバイス1504のユーザによって入力(例えば、クエリ文字列)として提供され、ネットワーク1510を介してデバイス1503に送信されてもよい。その後、情報検索プログラム1550を使用して決定されたクエリに対する応答は、ネットワーク1510を介してデバイス1504に配信され、ユーザインターフェースを介してユーザにレンダリングされてもよい。情報検索プログラム1550によって実施されるデータフローの例示的な実施形態は、図16図17を参照して以下で更に詳細に説明する。
【0175】
情報検索プログラム1550の実行中、プロセッサ1530は、1つ又は複数のニューラル・ネットワーク・モデル1560を実行し得る。ニューラル・ネットワーク・モデル1560は、入力データに基づいて予測(例えば類推)を行うように訓練される。ニューラル・ネットワーク・モデル1560の複数の層、及びその層間の関係を定義する構成1562を、ニューラル・ネットワーク・モデル1560は含む。層の例示的な例には、入力層、出力層、畳み込み層、密結合層、マージ層などを含む。いくつかの実施形態では、ニューラル・ネットワーク・モデル1560は、入力層と出力層との間に少なくとも1つの隠れ層を有するディープ・ニューラル・ネットワークとして構成されてもよい。層間の接続は、フィードフォワード接続又は反復接続を含み得る。
【0176】
ニューラル・ネットワーク・モデル1560の1つ又は複数の層は、訓練されたモデルパラメータ1564に関連付けられる。訓練されたモデルパラメータ1564は、機械学習プロセスに従って学習されたパラメータのセット(例えば、人工ニューロンの重み及びバイアスパラメータ)を含む。機械学習プロセス中に、ラベル付き訓練データが、ニューラル・ネットワーク・モデル1560への入力として提供され、ニューラルネットワーク1560によって生成された予測が、対応するラベルと所望のレベルの確度でマッチングするまで、訓練されたモデルパラメータ1564の値は、反復的に調整される。
【0177】
性能を向上させるために、プロセッサ1530は、グラフィカル処理ユニット、テンソル処理ユニット、特定用途向け集積回路などを使用して、ニューラル・ネットワーク・モデル1560を実行し得る。
【0178】
デバイス1503は、データベース1570、又はデジタル情報の別の適切なリポジトリに通信可能に接続され得る。例えば、データベース1570は、スキーマ又は他の論理的関係(例えば、リレーショナルデータベース)に従って編成されたコンテンツを有する構造化データベースとして、構成されてもよい。いくつかの実施形態では、データベース1570は、非リレーショナルデータベース、半構造化データベース、非構造化データベース、鍵値ストアなどとして構成されてもよい。データベース1570を、デバイス1503に直接接続されるものとして示しているが、様々な他の構成も可能であることを理解されたい。例えば、データベース1570は、メモリ1540に記憶されてもよく、ネットワーク1510などを介してアクセスされてもよい。
【0179】
図16は、いくつかの実施形態に対する情報検索のためのデータフロー1600の簡略図である。図15と一致するいくつかの実施形態では、データフロー1600は、以下で更に説明するように、システム1500の様々な構成要素及び/又は特徴を使用して、実施されてもよい。図1図14と一致するいくつかの実施形態では、データフロー1600は、個人の健康データを含む、又は個人の健康データに基づく情報を検索するように構成されてもよい。したがって、データフロー1600は、図1図14と一致する技術を使用して実施され得る。例えば、データフロー1600は、1つ又は複数のコンテナ内で実施されてもよく、入力情報は、図1図14を参照して説明したようにマスキングされてもよい。
【0180】
図16に示すように、アプリケーション1602は、情報検索システム1604に通信可能に接続される。図15と一致するいくつかの実施形態では、情報検索システム1604は、情報検索プログラム1550に対応してもよい。情報検索システム1604にクエリを提供し、情報検索プログラム1604からの応答を処理するように構成されたプログラムに、アプリケーション1602は一般に対応する。例えば、ユーザからクエリを受信し、クエリを情報検索システム1604(例えば、APIを介して)に送信し、対応する応答を受信して、レンダリングするウェブアプリケーション又はモバイルアプリケーションに、アプリケーション1602は対応してもよい。図15と一致するいくつかの実施形態では、アプリケーション1602は、デバイス1504上で実行するフロントエンド構成要素、デバイス1503上で実行するバックエンド構成要素などを含んでもよい。いくつかの実施形態では、情報検索システム1604が様々なタイプ又はバージョンのアプリケーションと通信し得る標準化されたAPI又は他のインターフェースを、情報検索システム1604は提供してもよい。いくつかの実施形態では、ユーザが、アプリケーション1602をバイパスしてクエリを情報検索システム1604に直接提供し得るユーザインターフェースを、情報検索システム1604は提供してもよい。
【0181】
情報検索システム1604は、ユーザの要求を満たすために使用される複数のモジュール1610~1650を含む。いくつかの実施形態では、モジュール1610~1650はそれぞれ、統合プログラムの構成要素であってもよい。いくつかの実施形態では、モジュール1610~1650は、互いに独立して動作して、標準インターフェースを介して互いに通信する独立したプログラム(例えば、マイクロサービス)であってもよい。情報検索システム1604を分散させてもよい。性能及び並列性を向上するために、情報検索システム1604は、モジュール1610~1650の複数のインスタンスを含んでもよい。
【0182】
情報検索システム1604のコントローラモジュール1610は、アプリケーション1602からクエリ(及び/又は他のタイプの要求)を受信し、処理する。コントローラモジュール1610は、情報検索プログラム1604の1つ又は複数の他のモジュール(例えば、モジュール1620~1650)に接続され、要求を満たすために他のモジュール間を調整する。いくつかの実施形態では、要求を満たすプロセスは、要求のタイプに応じて、変化し得る。
【0183】
情報検索システム1604の知識ベースモジュール1620は、情報間の様々なタイプの関係を識別する知識ベースへのアクセスを提供する。例えば、知識ベースモジュール1620は、所与の関係を共有することが知られている用語の集合(例えば、用語が互いに同義語であってもよい)を記憶してもよい。いくつかの実施形態では、情報及びそれらの関連する関係は、知識グラフ、又は他の適切なデータ記憶技術を使用して、記憶され、検索されてもよい。
【0184】
一般に、知識ベースモジュール1620によって記憶された知識ベースは、関心のある主題に関して包括的であることが望ましい。関係の包括的なセットは、様々な技法を使用して、識別され、集約され得る。いくつかの実施形態では、知識ベースは、生物医学領域の場合には統合医学用語システム(UMLS:Unified Medical Language System)などの既存の知識ベースから開始し、次いで領域固有の情報の他のソースをそれに集約することによって構築されてもよい。例えば、データは、外部データベース(例えば、公的に利用可能なデータベース、及び専有又は顧客固有のデータベース)から集約されてもよい。集約データ間の関係は、ニューラル・ネットワーク・モデル(例えば、ニューラル・ネットワーク・モデル1560)、又は集約データから関係を検索するように構成された他の情報検索方法を使用して、識別され得る。
【0185】
情報検索システム1604の検索モジュール1630は、クエリ用語に基づいて、テキスト(例えば、文書の集合、データベース記録など)のコーパスを検索し得る検索エンジンを提供する。コーパスは、例えば、公開文献コーパス、臨床データコーパス(例えば、医師のノート及び他のタイプの患者の健康記録)、又はその両方を含んでもよい。コーパスは、構造化データ又は非構造化データを含んでもよい。いくつかの実施形態では、構造化データは、投与される薬物の名称など、患者健康記録の1つ又は複数の構造化データフィールドを含んでもよい。例えば、そのような情報が、保険目的で、又は様々な他の形式的若しくは法的機能で、使用され得るので、そのような情報は、患者の健康記録において、非構造化エントリよりも高い信頼性であることが期待され得る。したがって、患者の健康記録内の構造化データフィールドを使用することは、信頼性を向上させることができ、コーパスの少なくともサブセットが、機械学習モデルの訓練(又はテスト)データを提供するようにラベル付けされる実施形態では、手動でタグ付けされるデータの量を低減し得る。これは、評判分類器など、コーパスに基づいた機械学習モデルの迅速で、正確な開発及び訓練を容易にし得る。
【0186】
臨床データコーパス、又は患者データを含む他のコーパスの使用に関連する1つの課題は、前述したプライバシー上の懸念である。したがって、図1図14で説明した技法のうちの1つ又は複数は、安全な処理環境を提供するために、更に機密患者データを識別解除又はマスキングするために、使用され得る。例えば、図13のエンティティのタグ付けプロセスは、機密情報をマスキングするために、コーパス(又は機密情報を含むコーパスの一部)に適用されてもよい。いくつかの実施形態では、コーパスの検索は、患者の状態だけに基づいて患者の識別が容易である、まれな状態の患者を除外するように抑制されてもよい。例えば、患者が最小閾値サイズ未満のコホート(例えば、類似又は同一の状態を有する患者の数)に関連付けられている場合、その患者の記録は、コーパスで抑制され、これにより、患者の記録は、検索結果のリストに返されない。
【0187】
いくつかの実施形態では、検索モジュール1630は、クエリ用語に関連すると判定されたコーパスから、完全なテキスト文書又はデータベース記録を識別しても、検索してもよい。しかしながら、前述のように、この手法には様々な制限がある。例えば、ユーザが、(例えば、特定の薬物が特定の疾患に対して有効であることが示されているか否かを、その薬物に対して行われた研究の集約に基づいて判定するために)集約された情報に基づいて判定又は類推を行おうとしているとき、関連文書のリストを単に含む検索結果は、ユーザのクエリに明確に、そして直接的に応答しない場合がある。したがって、この手法は、所望の情報をつなぎ合わせ、適切な判定又は類推を行うために、検索結果の各々を試験するユーザの一部に面倒で時間のかかる努力を必要とする可能性がある。
【0188】
これらの制限に対処するために、検索モジュール1630は、マッチングする文書又は記録のリストではなく(又はそれに加えて)、クエリ用語にマッチングするテキストフラグメントのリストを返すように構成され得る。このフラグメントベースの検索手法は、関心のある情報、例えば、ユーザが行おうとしている判定又は類推に直接関連する情報を含む文書の局所化された部分(例えば、いくつかの単語、文、又は段落)を生成する。このようにして、文書が一般にユーザのクエリに関連しないが応答のフラグメントを含む場合、文書全体が、マッチングする文書のリストに含まれることに十分に関連しない場合でも、応答のテキストフラグメントが検索結果に返される。逆に、文書がクエリ用語と強くマッチングするが、クエリに直接応答するいかなるフラグメントも含まない場合、文書は、マッチングするテキストフラグメントのリスト内のいかなるフラグメントも、生成しない可能性がある。更に、所与の文書又は記録が、2つ以上のマッチングするテキストフラグメントを含む場合、単一の文書又は記録は、返されたテキストフラグメントのリストに複数のエントリを生成し得る。結果として、フラグメントベースの検索手法は、検索結果の全体的な関連性及び完全性を改善し得る。フラグメントの検索モジュールの例示的な実施形態を、図17を参照して以下で更に詳細に説明する。
【0189】
情報検索システム1604の統計分析モジュール1640は、検索モジュール1630によって提供される検索結果のリストなど、情報検索システム1604の他のモジュールからの情報を統計的に分析するツールを提供する。ユーザから受信した要求のタイプなどの要因に応じて、広範囲の統計分析が実施され得る。例えば、統計分析モジュール1640は、検索モジュール1630からの検索結果のリストに現れる様々なエンティティ及び用語の統計的有意性を計算してもよい(例えば、検索結果における所与の用語の出現回数のカウント、用語と他の用語との共起回数のカウント、他の用語に対する任意の用語の有意性を比較するためのスコア又はランキングなど)。統計分析を実施する際に、統計分析モジュール1640は、情報検索システム1604の他のモジュールと通信し、他のモジュールから情報を検索し得る。統計分析モジュール1640を使用して計算され得る統計的有意性メトリックの例を、図18を参照して以下で更に詳細に説明する。
【0190】
情報検索システム1604の機械学習モジュール1650は、検索モジュール1630によって提供される検索結果のリストなど、情報検索システム1604の他のモジュールからの情報に、機械学習モデル(例えば、ニューラル・ネットワーク・モデル1560)を適用するツールを提供する。いくつかの実施形態では、機械学習モジュール1650は、検索結果のテキストを分析する自然言語処理(NLP)パイプラインを含んでもよい。NLPパイプラインは、NLPプリミティブ(例えば、トークン化、埋め込み、名前付きエンティティ認識など)を含んでもよい。更に、NLPパイプラインは、限定しないが、否定表現ファインダ、評判分類器、エンティティ抽出器などを含む、事前訓練されたルールベースモデル又は機械学習モデルを含んでもよい。結果の中の関係及び関連付けを識別するために、NLPパイプラインの出力に対して、更なる統計分析が、実施されてもよい。
【0191】
図17は、いくつかの実施形態による、フラグメント検索のためのデータフロー1700の簡略図である。図16と一致するいくつかの実施形態では、データフロー1700は、検索モジュール1630を使用して実施されてもよい。
【0192】
コーパス1710は、1つ又は複数のテキスト文書又はデータベース記録の集合など、テキストの集合に対応する。例えば、コーパス1710は、デバイス1501~1509から受信した文書1521~1529に対応してもよく、及び/又はデバイス1503によってローカルに記憶された文書を含んでもよい。いくつかの実施形態では、コーパス1710は、メモリ1540、データベース1570、オンチップメモリ(例えば、キャッシュ)などに記憶されてもよい。コーパス1710内の文書は、ネイティブフォーマットで(例えば、デバイス1501~1509から受信したフォーマットで)記憶されてもよく、又は様々な事前処理動作が、受信した文書に対して実施され、文書のコンテンツ又はフォーマットを修正してもよい。例えば、非テキストデータ(例えば、イメージデータ)及び/又はメタデータが、文書から除去されてもよく、テキストデータが、(例えば、光学文字認識によって)文書などから抽出されてもよい。文書のフォーマットは、統一されたフォーマットに変換されてもよく、又は文書からのデータは、データベース(例えば、データベース1570)に入力するために使用されてもよい。いくつかの実施形態では、コーパス1710は、動的に更新されてもよい。
【0193】
コーパス1710のコンテンツは、一般的な主題(例えば、様々なトピックをカバーするニュース記事又はWikipediaエントリの集合)、又はドメイン固有の主題に関連し得る。例示的に、コーパス1710は、生物医学の主題に関連してもよい。例えば、コーパス1710は、生物医学分野に関連するジャーナル記事、参考教科書、特許出願、ウェブサイトなどからのテキストを含んでもよい。コーパス1710は、分子データベース、科学文献、保険文書、製薬会社のウェブサイト、ニュースフィード、規制情報(臨床試験、SEC提出、IP)などの多種多様なソースから引き出され得る。図1図15と一致するいくつかの実施形態では、コーパス1710は、上述した技術に従って処理され、格納された個人データ(例えば、健康記録)を含んでもよい。
【0194】
図17に示すように、コーパス1710は、複数のサブセットに分割される。各サブセットは、シャード1721~1729の中のそれぞれのシャードに提供され得る。いくつかの実施形態では、シャード1721~1729の中でコーパス1710を分割することにより、分散計算リソース(例えば、分散プロセッサ及び/又は記憶装置システムを使用する)を使用してコーパス1710の処理を容易にしてもよい。例えば、シャード1721~1729のうちの1つ又は複数は、データセンタ内の異なるマシンに、及び/又は異なるデータセンタに配置されてもよい。いくつかの実施形態では、コーパス1710のサブセットの各々は、サイズがほぼ等しくてもよく、例えば、それらは、同様の総ディスクスペースを占有してもよく、又はそれらは、同様の数の文書を含んでもよい。
【0195】
シャード1721~1729の各々は、対応する反転リスト1731~1739を含む。反転リスト1731~1739の各々は、コーパス1710の対応するサブセット内のトークン(例えば、単語)ごとに、コーパス1710のサブセット内のトークンの出現のリストを識別する。例えば、反転リスト1731~1739は、コーパス1710のサブセット内のトークンの各出現の位置(例えば、コーパス1710のサブセット内の各文書の連結に対応するテキストの連続した配列内の位置)を識別してもよい。いくつかの実施形態では、反転リスト1731~1739は、トークンが出現する文書に対応する文書識別子、トークンの出現に対する文書内のオフセットなどを識別してもよい。いくつかの実施形態では、反転リスト1731~1739内の各エントリは、各トークンの出現ごとに、複数の位置識別子を含んでもよい。複数の識別子は、(1)連結された文書の連続した配列内のトークンの出現の配列インデックスと、(2)出現の文書識別子と、(3)識別された文書内の出現までのオフセットと、を識別するトリプレットなど、適切なデータ構造に記憶され得る。
【0196】
いくつかの実施形態では、反転リスト1731~1739は、トークンの効率的な検索を容易にするために順序付けられてもよい。例えば、反転リスト1731~1739は、コーパス1710のサブセットに対応するテキストの配列内の各トークンの位置の昇順に基づいて、順序付けられてもよい。反転リスト1731~1739は、各トークンに関連付けられた整数値を使用してインデックス付けされてもよく、これにより、トークンに対応する整数が与えられると、反転リスト1731~1739を含むデータ構造は、トークンの出現の対応するリストを効率的に返す。
【0197】
シャード1721~1729の各々は、対応するフラグメント検索モジュール1741~1749を更に含む。フラグメント検索モジュール1741~1749の各々は、フラグメントクエリ1752を受信し、反転リスト1731~1739からのデータにアクセスすることによって、フラグメントクエリに対する応答を生成するように構成される。フラグメントクエリ1752は、検索アグリゲータ1754を使用して、フラグメント検索モジュール1741~1749へ配信され得る。次いで、検索アグリゲータ1754は、フラグメント検索モジュール1741~1749によって生成された検索結果を受信し、集約し得る。その後、検索結果は、後の分析1756に使用されてもよい。例えば、図16と一致するいくつかの実施形態では、分析1756は、知識ベース1620、統計分析モジュール1640、又は機械学習モジュール1650のうちの1つ又は複数を使用して、実施されてもよい。
【0198】
いくつかの実施形態では、フラグメントクエリ1752は、フラグメント検索に関する所望の検索基準を示す1つ又は複数のクエリパラメータを含む。例えば、フラグメントクエリ1752は、クエリパラメータ(例えば、AND、OR、及びNOTなどのブール演算子によって任意選択的に結合された、検索される1つ又は複数のトークン、単語、あるいは複数単語フレーズの組合せ)を含んでもよい。フラグメントクエリ1752はまた、フラグメント検索モジュール1741-1749によって返されたテキストフラグメントの所望のサイズを示すサイズパラメータを含んでもよい。フラグメントクエリ1752は、文書内のフラグメントが検索結果に含まれるための前提条件として、文書が満たすべき1つ又は複数の基準を指定する文書パラメータを、更に含んでもよい。例えば、適格な文書が、指定された単一若しくは複数の単語のフレーズ(又はそれらの論理的組合せ)を含む基準を、又は適格な文書が、文書メタデータと関連付けられる基準(例えば、著者名、出版年、文書ソース、文書タイプなど)を、文書パラメータは、含んでもよい。そのような実施形態と一致して、フラグメントクエリ352は、<FragQuery,FragmentSize,DocumentSpecifier>として表されるデータ構造など、様々な検索パラメータを送信し、処理するための適切なデータ構造を使用して表されてもよく、ここで、FragQueryは、クエリパラメータを表し、FragmentSizeは、サイズパラメータを表し、DocumentSpecifierは、検索結果に含まれる文書の適格条件を表す。
【0199】
図18は、いくつかの実施形態による、クエリに応答して情報を検索するための方法1800の簡略図である。図15図17と一致するいくつかの実施形態によれば、方法1800は、情報検索プログラム1550の実行中にプロセッサ1530によって実行されてもよい。例えば、方法1800は、コントローラモジュール1610を使用して実施されてもよい。
【0200】
プロセス1810において、クエリを、コントローラ(例えば、コントローラモジュール1610)が受信する。クエリは、1つ又は複数のトークン(例えば、単語、文など)、ブール演算子、制約、フィルタ、及び様々な他のパラメータを含んでもよい。いくつかの実施形態では、クエリは、アプリケーション1602などのアプリケーションによって送信された要求に含まれてもよい。そのような実施形態と一致して、要求を、APIを介して受信してもよい。要求の受信に応答して、コントローラは、以下のプロセス1820~1850のうちの1つ又は複数に従って、クエリに応答する情報を収集することによって、要求を処理し、要求に応答し得る。分散計算環境では、情報は、異なるネットワークノードに配置された様々なモジュールとの間で送受信される通信を介して収集され得る。
【0201】
プロセス1820において、クエリを、1つ又は複数の関連用語を含むように拡張する。関連用語は、知識ベースモジュール1620の知識ベースなどの知識ベースから、検索され得る。いくつかの実施形態では、関連する用語は、元のクエリ内の用語と所定の関係を共有してもよい(例えば、これらの用語は互いに同義語であってもよい)。このようにして、関連用語を検索することは、ユーザによって提供された用語と同様の意味を有する用語を含むように、クエリを拡張し得る。
【0202】
プロセス1830において、検索結果のリストを、拡張したクエリに基づいて検索する。検索結果のリストは、クエリにマッチングする文書又は節(又はそのような文書又は節を識別する情報)を含む。検索結果のリストは、検索モジュール1630などの検索エンジン又は検索モジュールを介して検索され得る。いくつかの実施形態では、検索結果は、コントローラによって提供されたクエリ用語に基づいて、テキストのコーパス(例えば、文書の集合、データベース記録など)から検索されてもよい。例えば、検索結果は、フラグメントベースの検索の結果に対応してもよい。この手法では、検索結果は、関心のある情報を含むフラグメント(例えば、いくつかの単語、文、段落、又は文書の他の局所化された部分)を含む。フラグメントベースの検索の例示的な実施形態を、図19を参照して以下で更に詳細に説明する。
【0203】
いくつかの実施形態では、検索結果のリストは、クエリの「コンテキスト」と呼ばれることがあり、適切なデータ構造を使用して記憶されても、又はインデックス付けされてもよい。コンテキストは、コーパス内でマッチングするクエリ用語の近くに現れる用語(例えば、コーパス内でマッチングするクエリ用語のn個のトークンのウィンドウサイズ内に現れる用語)と共に、クエリ用語を含むコーパスのウィンドウを含む。コンテキストは、バイナリであっても、非バイナリであってもよい。バイナリコンテキストでは、コーパス内の用語は、コンテキストに含まれるか(例えば、それらがクエリ用語の出現のn個のトークン内にある場合)、又はコンテキストから省略される。非バイナリ又は「スムーズ(smooth)」コンテキストでは、コーパス内の用語は、クエリ用語からの距離などの要因に基づいて重み付けされ得る(例えば、0と1との間の値が割り当てられる)。例えば、非バイナリコンテキスト内の用語に割り当てられる重みは、クエリ用語からの用語の距離に基づいて指数関数的に減衰してもよい。
【0204】
プロセス1840において、検索結果のリスト内で、1つ又は複数のエンティティを、任意選択で識別する。例えば、生物医学用途のコンテキストにおいて、エンティティの例示的な例は、薬物、疾患、遺伝子、製薬会社、研究機関などの名前を含んでもよい。いくつかの実施形態では、1つ又は複数のエンティティは、知識ベースモジュール1620の知識ベースなどの知識ベースを参照することによって識別されてもよい。例えば、知識ベースは、エンティティの集合を記憶してもよく、これにより、検索結果のリストは、検索結果のリスト内のエンティティを識別するために、エンティティの集合と比較されてもよい。いくつかの実施形態では、名前付きエンティティ認識などの自然言語処理技術を使用して、検索結果のリスト内のエンティティを正確に識別してもよい。
【0205】
プロセス1850において、検索結果のリスト内の1つ若しくは複数の用語又はエンティティについて、統計分析を行う。統計分析は、統計分析モジュール1640などの統計分析モジュールによって、機械学習モジュール1650などの機械学習モジュールによって、又はモジュールの組合せによって、実施されてもよい。いくつかの実施形態では、統計分析は、関心のある用語又はエンティティごとに、関係スコア、有意性スコア、又はその両方を計算することを含んでもよい。そのような統計分析は、検索結果における所与の用語の出現回数のカウント、用語と他の用語との共起回数のカウント、他の用語に対する任意の用語の有意性を比較するためのスコア又はランキングなどに基づいてもよい。
【0206】
いくつかの実施形態では、有意性スコアは、所与の用語(例えば、トークン、m単語フレーズ、エンティティなど)とユーザクエリとの関連性を捕える統計的有意性メトリックを計算することによって測定され得る。実例として、統計的有意性メトリックは、mが1である(すなわち、フレーズは単一の単語である)とき、以下の式を使用して計算され得る。
【0207】
ここで、kは、検索結果のリスト内のフレーズの出現回数(例えば、クエリに応答して検索モジュール1630によって返されるテキストフラグメントのリスト)であり、nは、検索結果のリスト内の単語の総数であり、pは、比率N(w)/Nであり、N(w)は、コーパス内のフレーズの出現回数であり、Nは、コーパス内の単語の総数である。
【0208】
mが1より大きい(すなわち、フレーズは複数単語のフレーズである)場合、以下の式を使用し得る。
【0209】
検索結果のリストが非バイナリコンテキストを含むいくつかの実施形態では、統計的有意性メトリックは、検索結果のリスト内のエンティティの各外観に割り当てられた重みに基づいて調整され得る。例えば、上記の式におけるkの値は、検索結果におけるエンティティの出現回数の重み付けされたカウントに対応してもよい。
【0210】
プロセス1850で提供される上述の統計分析は例示的なものであり、様々な代替形態が可能であることを理解されたい。例えば、統計分析モジュール1640は、関連性スコアEMS(Q,t)、及び統計的有意性メトリックpVal(Q,t)を決定してもよい。これらの値は、m単語フレーズtと、ユーザクエリQとの関連性を捕え得る。
【0211】
プロセス1860において、1つ又は複数のエンリッチセットを、任意選択で、1つ又は複数のエンティティの統計分析に基づいて生成する。いくつかの実施形態では、エンリッチセットは、プロセス1850で識別された最も有意なエンティティ(例えば、有意性又は関係スコアが最も高いエンティティ)を含んでもよい。例えば、生物医学のコンテキストでは、1つ又は複数のエンリッチセットは、薬物のセット、疾患のセット、及び遺伝子のセットを含んでもよい。例えば、薬物のエンリッチセットは、最も有意であるか、又はユーザのクエリに関連すると判定されたn個の薬物を識別してもよい。
【0212】
プロセス1870において、検索結果のリスト又は1つ若しくは複数のエンリッチセットのうちの少なくとも一方を含むクエリに対する応答を、提供する。いくつかの実施形態では、応答は、アプリケーション1602などのアプリケーションに送信され、ユーザに表示されてもよい。ユーザが検索結果又はエンリッチセットと相互作用し得るために、応答は、相互作用型ユーザインターフェース要素をユーザに提供してもよい。例えば、エンリッチセット内の項目について、ユーザは、アイテム上にホバーして、アイテムに関連する統計分析(例えば、有意性スコア、関係スコアなど)を見てもよい。
【0213】
図19は、一部の実施形態による、フラグメント検索を実施するための方法1900の簡略図である。図15図18と一致するいくつかの実施形態では、方法1900は、検索モジュール1630などの検索モジュールによって実施されてもよい。次いで、方法1900を使用して生成されたフラグメント検索結果は、方法1800のプロセス1830においてコントローラによって検索され得る。
【0214】
プロセス1910において、コーパス1710などのコーパスを、複数のサブセットに分割する。コーパスは、複数のテキスト文書又はデータベース記録を含む。いくつかの実施形態では、コーパスのサブセットの各々は、サイズがほぼ等しくてもよく、例えば、それらは、同様の総ディスクスペースを占有してもよく、又はそれらは、同様の数の文書を含んでもよい。
【0215】
プロセス1920において、複数のサブセットの各々を、シャード1721~1729などの対応する複数のシャードに分散する。各シャードは、分散方式でコーパスの一部を処理する役割を担う。いくつかの実施形態では、シャードの中でコーパスを分割することにより、分散計算リソース(例えば、分散プロセッサ及び/又は記憶装置システムを使用する)を使用してコーパスの処理を容易にしてもよい。例えば、1つ又は複数のシャードは、データセンタ内の異なるマシンに、及び/又は異なるデータセンタに配置されてもよい。
【0216】
プロセス1930において、シャードごとに、コーパスのそれぞれのサブセット内の1つ又は複数の文書を連結して、テキスト配列を形成する。例えば、テキスト配列は、1つ又は複数の文書に関して連続していてもよい。
【0217】
プロセス1940において、シャードごとに、反転リストを生成する。反転リストは、コーパス内のトークン(例えば、語彙単語)ごとに、エントリを含む。各エントリは、コーパス内のトークンの出現のリストを含む。例えば、出現のリストは、プロセス1930において形成された配列内のトークンの各出現の位置を識別してもよい。いくつかの実施形態では、反転リストは、トークンが出現する文書に対応する文書識別子、トークンの出現に対する文書内のオフセットなどを含んでもよい。いくつかの実施形態では、反転リスト内の各エントリは、各トークンの出現ごとに、複数の位置識別子を含んでもよい。複数の識別子は、(1)連結された文書の連続した配列内のトークンの出現の配列インデックスと、(2)出現の文書識別子と、(3)識別された文書内の出現までのオフセットと、を識別するトリプレットなど、適切なデータ構造に記憶され得る。
【0218】
反転リストは、トークンの効率的な検索を容易にするために順序付けられてもよい。例えば、反転リストは、テキストの配列内の各トークンの位置の昇順に基づいて、順序付けられてもよい。反転リストは、各トークンに関連付けられた整数値を使用してインデックス付けされてもよく、これにより、トークンに対応する整数が与えられると、反転リストを含むデータ構造は、トークンの出現の対応するリストを効率的に返す。
【0219】
プロセス1950において、フラグメントクエリ1752のようなフラグメントクエリを、検索アグリゲータ1754のような検索アグリゲータが受信する。フラグメントクエリは、フラグメント検索のための所望の検索基準を示す1つ又は複数のクエリパラメータを含む。例えば、フラグメントクエリは、クエリパラメータ(例えば、AND、OR、及びNOTなどのブール演算子によって任意選択的に結合された、検索される1つ又は複数のトークン、単語、あるいは複数単語フレーズの組合せ)を含んでもよい。フラグメントクエリはまた、検索結果におけるテキストフラグメントの所望のサイズを示すサイズパラメータを含み得る。フラグメントクエリは、文書内のフラグメントが検索結果に含まれるための前提条件として、文書が満たすべき1つ又は複数の基準を指定する文書パラメータを、更に含んでもよい。例えば、適格な文書が、指定された単一若しくは複数の単語のフレーズ(又はそれらの論理的組合せ)を含む基準を、又は適格な文書が、文書メタデータと関連付けられる基準(例えば、著者名、出版年、文書ソース、文書タイプなど)を、文書パラメータは、含んでもよい。
【0220】
プロセス1960において、フラグメントクエリを、複数のシャードに分散する。フラグメントクエリを受信すると、複数のシャードの各々は、それぞれの反転リストに対して検索を実施して、マッチングするフラグメントを識別し、フラグメント検索結果のセットを生成する。いくつかの実施形態では、フラグメントクエリに含まれる検索基準(例えば、検索に含まれる適格な文書に対する制限)は、検索中に適用されてもよい。
【0221】
プロセス1970において、複数のシャードからのフラグメント検索結果のセットを、検索アグリゲータが集約する。例えば、検索結果は、コンパイルされ、連結され、ソートされ、ランク付けなどされてもよい。検索結果を集約すると、検索結果は、更なる分析のためにコントローラ又は別のモジュールに提供されてもよく、又はユーザに返されてもよい。
【0222】
図20A及び図20Bは、いくつかの実施形態による、情報検索システム1604などの情報検索システムのグラフィカルインターフェース2000のスクリーンショットである。図15図19と一致するいくつかの実施形態では、グラフィカルインターフェース2000は、アプリケーション1602に関連付けられてもよい。例示目的のために、ユーザが生物医学領域で情報を検索するためのツールを提供するものとして、アプリケーションを示している。
【0223】
図20Aに示すように、グラフィカルインターフェース2000は、ユーザが検索用語をタイピングする、又は入力し得る検索入力フィールド2010を含む。図20A及び図20Bの図において、検索用語は、「イマチニブ」という名前の薬物である。
【0224】
ユーザが検索用語を入力したことに応答して、情報検索システムは、検索文字列に関連付けられた情報を検索し、グラフィカル・ユーザ・インターフェース2000を介して情報を表示する。図15図19と一致する実施形態では、情報は、コントローラ1610、知識ベースモジュール1620、検索モジュール1630、統計分析モジュール1640、及び機械学習モジュール1650などの情報検索システムの様々なモジュールを使用して検索されてもよい。例えば、グラフィカルインターフェース2000は、検索用語にマッチングした、マッチング記事2020(又はその一部)を表示してもよい。この場合、マッチング記事2020は、「イマチニブ」についてのWikipediaの記事に対応する。
【0225】
グラフィカルインターフェース2000は、検索用語に関連付けられたエンティティ又は概念のエンリッチセット2031~2039を更に表示してもよい。いくつかの実施形態では、エンリッチセット2031~2939は、検索用語に対して最も有意であると判定されたエンティティ(例えば、統計学的有意性スコアが最も高いエンティティ)を含んでもよい。図20Aに示すように、エンリッチセット2031~2039は、イマチニブ2031に関連する疾患の集合、イマチニブ2032に関連する薬物の集合及び薬物のクラス、並びにイマチニブ2039に関連する細胞及び組織の集合を含む。
【0226】
いくつかの実施形態では、グラフィカルインターフェース2000は、グラフィカルインターフェース2000に表示される1つ又は複数の用語又は概念に関連する統計分析及び/又は機械学習分析を表示してもよい。分析は、デフォルトで表示されてもよいし、ユーザが特定の用語又は概念をホバーしたときに動的に現れてもよい。いくつかの実施形態では、統計分析モジュール1640、機械学習モジュール1650、又はそれらの組合せを使用して、統計分析又は機械学習分析を実施してもよい。分析で使用される基礎となるデータは、知識ベース1620及び/又は検索モジュール1630から検索され得る。例えば、図20に示すように、様々なスコアリングメトリック及び出現/共起メトリック(例えば、コーパスにおける用語の出現回数、及び検索用語と任意の用語の共起回数)を含む用語「メシル酸イマチニブ」を、ユーザがホバーすると、分析のセット2040が表示される。
【0227】
いくつかの実施形態では、グラフィカルインターフェース2000は、ユーザ選択に応答して、検索用語に関する追加情報を表示するウィジェット2050を提供してもよい。図20Bに示すように、ウィジェット2050は、検索用語に関連付けられた文献証拠(例えば、イマチニブの有効性に関する発表された研究の編集)を表示する。例えば、文書2061~2069は、検索用語又は関連用語を含む文書2061~2069内のテキストフラグメントと共に示される。このようにして、本出願のユーザは、イマチニブが、調査中の目的のために関連性があるか又は臨床的に有効である可能性が高いか否かを、効率的に判定し得る。
【0228】
図21は、いくつかの実施形態による情報検索のための方法2100の簡略図である。図15図19と一致するいくつかの実施形態によれば、方法2100は、情報検索システム1500などの情報検索システムを使用して、生物医学領域内の関係を識別し、分析する方法の例示的な例を提供してもよい。方法2100におけるユーザの例示的な目的は、科学文献が第1のエンティティ(例えば、薬物、化学物質など)と、第2のエンティティ(例えば、疾患、生体分子、遺伝子など)との間の特定の関係の証拠を示すか否かを判定することである。特定の関係の例には、有害事象関係、標的化関係(例えば、薬物又は化学物質が生体分子、遺伝子などを標的にする関係)、又はモダリティ関係(例えば、薬物又は化学物質が特定の治療様式を有する関係)が含まれるが、これらに限定されない。実例として、以下に記載する方法2100の実施形態では、第1のエンティティは、薬物に対応し、第2のエンティティは、疾患に対応する。しかしながら、方法2100の様々な実施形態を使用して、様々な他のタイプのエンティティ間の関係を分析し得ることを理解されたい。
【0229】
プロセス2110において、薬物、疾患)、及び関係の各々を指定するクエリを受信する。いくつかの実施形態では、薬物、疾患、及び関係は、グラフィカルインターフェースの入力形式を使用してユーザから収集されてもよい。
【0230】
プロセス2120において、クエリに応答して、クエリにマッチングするテキストフラグメントのリスト(例えば、薬物と疾患の両方に言及することによって)を取得する。いくつかの実施形態では、テキストフラグメントのリストは、検索モジュール1630などの検索システムを使用してコーパス(例えば、コーパス1710)から検索されてもよい。いくつかの実施形態では、例えば、知識ベースモジュール1620を使用して、クエリ用語に関連する同義語及び他の用語を識別することによって、検索の範囲を拡張してもよい。次いで、同義語とマッチングするテキストフラグメントを検索結果に含めてもよい。いくつかの実施形態では、検索の範囲は、検索される文書のタイプに対する制約(例えば、検索は、特定の時間枠の間に発行された特定のジャーナルからの文書に制約されてもよい)など、検索の範囲に対する制約を課すことによって制限されてもよい。
【0231】
プロセス2130において、各テキストフラグメントを、1つ又は複数の文に分割する。いくつかの実施形態では、テキストフラグメントを、機械学習モジュール1650などの第1の自然言語処理又は機械学習システムを使用して分割してもよい。
【0232】
プロセス2140において、テキストフラグメントごとに、関係が成立するか否か(例えば、薬物と疾患が有害事象関係を有するか否か)を類推する。いくつかの実施形態では、類推は、機械学習モジュール1650などの第2の機械学習システムを使用して行われてもよい。例えば、第2の機械学習システムは、文のリストとしてフォーマットされたテキストフラグメントを含む入力に基づいて、有害事象関係が成り立つか否かを識別するように訓練された機械学習モデルをホストしてもよい。
【0233】
プロセス2150において、テキストフラグメントごとに、関係が成立することを、類推が示すか否かに基づいて、メトリックを決定する。例えば、有害事象関係(又は他の特定の関係)を示すと類推されるテキストフラグメントの割合を、メトリックは含んでもよい。
【0234】
プロセス2160において、メトリックと、テキストフラグメントのリストの中の1つ又は複数のテキストフラグメントとを含む分析の結果を、表示する。1つ又は複数のテキストフラグメントが、プロセス2140において指定された関係を示すと類推されたか否かに従って、1つ又は複数のテキストフラグメントは、ラベル付けされ得る。分析の結果を表示する例示的な実施形態を、図22A及び図22Bを参照して以下に更に詳細に説明する。
【0235】
図21は単なる例示であり、様々な他の実施形態が可能であることを理解されたい。例えば、方法2100は、他のタイプのエンティティ(例えば、薬物及び疾患以外のエンティティ)間の関係を識別するために使用されてもよい。
【0236】
図22A及び図22Bは、いくつかの実施形態による、情報検索システムのグラフィカルインターフェース2200のスクリーンショットである。図15図21と一致するいくつかの実施形態によれば、グラフィカルインターフェース2200は、方法2100の間に生成された結果を表示し得る。図22Aにおいて、ユーザは、薬物ダサチニブが肺動脈高血圧症を有害事象として引き起こすか否かを判定しようとする。表示した結果は、検索結果のテキストフラグメント316個のうち314個が、有害作用を示すとラベル付けされたので、この有害事象関係が真であるという、確かな証拠があることを示している。一方、図22Bにおいて、ユーザは、薬物イマチニブが有害事象として白血病に関連付けられ得るか否かを判定しようとする。ここで、その確かな証拠は、805個のマッチングするテキストフラグメントのうち31個が、有害作用を示すとラベル付けされているだけので、そのような有害関係が存在しないことを示唆している。
【0237】
上記の開示が示唆するように、電子健康記録(EHR)及び患者チャートなどの健康記録は、患者の状態に関する広範囲の情報を捕える。健康記録は、医師によって書かれたメモのテキストなど、非構造化又は半構造化フォーマットで表されることが多い。人間は、テキスト(例えば、英数字、記号、絵文字などのシーケンスとして表される単語、フレーズ、及び他の用語)の形式で提示される情報の意味を理解し得るが、コンピュータ技術は一般に、人間が読める形式のテキストの意味論的意味を理解し得ない。更に、患者の健康記録に反映される患者の状態は、経時的に変化し得る。したがって、健康記録の拡張キュレーション及び時間的識別のための技術を開発することが望ましい。
【0238】
本開示の更なる背景は、米国仮特許出願第63/012,738号の添付書類であり、更に全体が参照により本明細書に組み込まれる「Augmented Curation of Unstructured Clinical Notes from a Massive EHR System Reveals Specific Phenotypic Signature of Impending COVID-19 Diagnosis」(以下、「拡張キュレーション論文」という)と題する論文に提供されている。
【0239】
図23は、いくつかの実施形態による、健康記録の拡張キュレーションのための方法2300の簡略図である。健康記録の拡張キュレーションは、電子健康記録(EHR)、患者チャートなどの生の健康記録を、患者表現型(例えば、患者の症状、診断、治療などのスナップショット)の構造化表現に変換する。次いで、構造化表現は、視覚化され、統計的又は機械学習分析などのための入力として使用され得る。いくつかの実施形態では、例えば、プライバシー規制(例えば、HIPAA)に準拠するために、有用ではない患者の個人情報又は他の情報をマスキングするために、生の健康記録は、識別解除されてもよい。そのような選択的情報マスキング技術の例は、上記で参照した米国仮特許出願第62/865,030号及び62/985,003号、並びに本開示の図1図14に、更に詳細に記載されている。健康記録の識別解除は、方法2300の前、その間中、又はその後に行い得る。図1図22Bと一致するいくつかの実施形態では、方法2300の少なくとも一部は、システム1500を使用して実施されてもよい。
【0240】
プロセス2310において、キュレーションされた健康記録のセットを受信する。プロセス2310の例示的な実施形態は、例えば、上記で参照した拡張キュレーション論文の「方法」セクションに記載されている。例えば、キュレーションされた健康記録のセットは、手動でキュレーションされた健康記録に対応してもよい。生の(又は識別解除された)健康記録をキュレーションすることは、特定の症状、疾患、投薬といった同義語などの関連する単語及びフレーズを識別し、グループ化することを含んでもよく、その例は、上記の拡張キュレーション論文に記載されている。例えば、とりわけ、「SOB」、「息切れ」、及び「呼吸困難」などの用語はそれぞれ、キュレーション中の症状エンティティ「息切れ」に対応するものとして識別されてもよい。健康記録におけるエンティティの所与の出現は、例えば、症状の有無、医薬品の有効性又は無効性などを識別する肯定的/否定的評判といった、評判に更に関連付けられ得る。このようにして、キュレーションされた健康記録は、患者の表現型の構造化された表現を提供し得る。キュレーションは、医師によって、又は生の健康データを解釈する際の専門知識又は訓練経験がある他の個人によって、実施され得る。キュレーションされた健康記録のセットのサイズは、ニューラル・ネットワーク・モデルを訓練するために通常使用されるものと比較して小さく、したがって、人手も、時間も要しないキュレーションにより、所望の確度を達成し得る。例えば、キュレーションされた健康記録のセットは、100人の患者のチャートからのデータ(又は所与の症状、疾患、又は他のエンティティを伝えるために使用される様々な単語及びフレーズを捕えるために十分な記録の別の数)に対応してもよいが、典型的なニューラル・ネットワーク・モデルは、何千ものキュレーションされた記録を使用して訓練されてもよい。
【0241】
プロセス2320において、キュレーションされた健康記録のセットを使用して、ニューラルネットワークを訓練する。プロセス2320の例示的な実施形態は、例えば、上記で参照した拡張キュレーション論文の「方法」セクションに記載されている。例えば、ニューラルネットワークは、BERTベースのニューラルネットワークに対応し得る。いくつかの実施形態では、ニューラルネットワークは、プロセス2310で受信したキュレーションされた健康記録のセットよりも大きくなり得る健康データのコーパスを使用して、事前に訓練されていてもよい。所与のトークンに含まれるエンティティ(例えば、症状、疾患、投薬など)を抽出し、それらを肯定的/否定的評判に従って分類するニューラルネットワーク分類器に、ニューラルネットワークは対応し得る。評判は、例えば自然言語処理(NLP)技術を使用して、周囲の表現に基づいて判定され得る。例えば、「患者は息切れを呈した」及び「呼吸困難について陰性」というフレーズがそれぞれ、症状エンティティ「息切れ」を含むが、異なる評判(第1のフレーズは、症状があることを示し、後者は、症状がないことを示す)を有することを、ニューラルネットワークは、検出し得る。いくつかの実施形態では、キュレーションされた健康記録のセットは、ニューラルネットワークを訓練するために使用されたコーパス内のエンティティに加えられたエンティティを含んでもよい。したがって、健康データのキュレーションされたセットは、予め訓練されたニューラルネットワークによって提供される評判分析を実施する際の確度を活用しつつ、ニューラルネットワークが認識し得るエンティティのセットを拡張してもよい。
【0242】
いくつかの実施形態では、ニューラルネットワークは、プロセス2320中の訓練の結果として特定の性能メトリックを実現し得る。例えば、性能メトリックは、ニューラルネットワークの確度に対応してもよく、更に、テスト目的のために確保され、訓練に使用されないキュレーションされた健康記録のセットの一部などのテストデータを使用して、測定されてもよい。ニューラルネットワークの典型的な訓練セットに対して、キュレーションされた健康記録のセットのサイズが制限されているため、ニューラルネットワークが実現する性能メトリックは、それに応じて制限され得る。
【0243】
プロセス2330において、キュレーションされていない健康記録のセットを受信する。プロセス2330の例示的な実施形態は、例えば、上記で参照した拡張キュレーション論文の「方法」セクションに記載されている。例えば、キュレーションされていない健康記録のセットは、生の電子健康記録又は患者チャートを含み、これは上述のように識別解除されてもよい。キュレーションされていない健康記録のセットは、トークン化されてもよく、例えば、文、単語、又は他のテキストフラグメントに、トークン化されてもよい。いくつかの実施形態では、キュレーションされていない健康記録のセットのサイズは、キュレーションされた健康記録のセットよりも大きくてもよい(例えば、キュレーションされていない健康記録のセットのサイズは、多くの記録、多くの患者データの全体量、又はその両方を含んでもよい)。
【0244】
プロセス2340において、プロセス2320の訓練されたニューラルネットワークを使用して、キュレーションされていない健康記録のセットをキュレーションする。プロセス2340の例示的な実施形態は、例えば、上記で参照した拡張キュレーション論文の「方法」セクションに記載されている。プロセス2340は、プロセス2310及び2340からのキュレーションされた健康記録のセットを含む拡張されたキュレーションされた健康記録のセットを生成し得る。キュレーションされていない健康記録のセットをキュレーションすることは、各記録の各トークンに対してエンティティ認識及び評判分析を実施し、各記録で捕えられた患者表現型の構造化表現を生成することを含み得る。いくつかの実施形態では、プロセス140で生成されたキュレーションされた健康記録は、検証され、例えば、受け入れられ、又は拒否され、及び再分類されてもよい。検証は、キュレーションされた健康記録のエラーを識別するために十分な専門知識を有する、医師、あるいは他の熟練した又は訓練された個人に、キュレーションされた健康記録を提供することを含み得る。個人は次に、キュレーションされた健康記録の確度を確認するか、キュレーションされた健康記録の修正バージョン(例えば、誤ったエントリが、訓練された個人によって再分類されたバージョン)を提供し得る。一般に、時折発生する不正確さを検出して対処するために自動的にキュレーションされた健康記録を検証することは、基礎となる生の健康記録を手動でキュレーションするよりも効率的に実施され得る。検証されたキュレーションされた健康記録は、拡張キュレーションプロセスが進行するにつれて、ニューラル・ネットワーク・モデルを反復的に再訓練するために、又は新規のニューラル・ネットワーク・モデルを訓練するために、使用され、キュレーション効率及びモデル確度を向上し得る。プロセス2340は、キュレーションされた結果のフィルタリングを連続的に少なくすることを含む1つ又は複数の段階で実施され、これは、ニューラルネットワークが再訓練されるにつれて、拡張キュレーションの向上した確度を反映する。
【0245】
したがって、方法2300は、生の(及び/又は識別解除された)健康記録に基づいて、患者表現型の構造化表現を生成する。これらの構造化表現は、生の健康記録よりも計算分析に適している場合がある。例えば、構造化表現は、健康記録の構造化データベースに入力するために使用されてもよい。データは、視覚化されてもよく、統計又は機械学習分析などのための入力として使用されてもよい。構造化表現を使用して実施され得る計算分析の例は、上記で参照した米国仮特許出願第62/962,146号及び第62/985,003号、拡張キュレーション論文、並びに図1図22に更に詳細に記載されている。
【0246】
いくつかの実施形態では、方法2300に基づいて入力された健康記録の構造化データベースは、エンリッチメント分析を実施するために使用されてもよい。例えば、エンリッチメント分析は、患者が病気である可能性を示す一連の症状又は他の患者特性など、疾患に関連する早期予測因子を識別することを含んでもよい。エンリッチメント分析は、特定の患者コホートと密接に関連する属性を識別することなどによって、患者コホートを特徴付けることを含み得る。構造化データベースはまた、例えば、クラスタリングアルゴリズムを使用して患者のサブグループ間を区別するなど、患者情報の遡及的分析に使用されてもよい。患者間を区別する能力、又は患者を層別化する能力は、肺高血圧症などの広範囲の重症度又は転帰に関連する(及び早期段階で区別することが困難であり得る)状態に特に有用であり得る。いくつかの実施形態では、異なる患者のサブグループに対して、異なる治療計画が選択されてもよい。例えば、低いリスクに関連すると識別された患者のサブグループよりも、悪い転帰に関連する患者のサブグループに対して、積極的な治療計画が選択されてもよい。そのような調整された治療計画は、リソースの効率的な使用、及び良好な全体的なケアの質をもたらし得る。
【0247】
更に、方法2300は、新規の健康データが利用可能になるにつれて、リアルタイムで適用され得る。更に、方法2300は、比較的少量のキュレーションされたデータがプロセス2310で使用されて新しいエンティティを分析に追加するため、新しい疾患、症状、及び治療(例えば、古い文献に頻繁に現れないもの)などの関心のある新興概念に適用され得る。この手法の例示的な利点は、上記で参照した米国仮特許出願第62/962,433号、第62/962,146号、及び第62/985,003号、並びに拡張キュレーション論文に更に記載されている。
【0248】
図24は、いくつかの実施形態による、健康データの時間的識別のための方法2400の簡略図である。図1図22Bと一致するいくつかの実施形態では、方法2400の少なくとも一部は、システム1500を使用して実施されてもよい。
【0249】
プロセス2410において、キュレーションされた健康記録のセットを時間的に整列する。プロセス2410の例示的な実施形態は、例えば、上記で参照した拡張キュレーション論文の「方法」セクションに記載されている。例えば、キュレーションされた健康記録のセットは、方法2300を使用して生成されたキュレーションされた健康記録のセットに対応してもよい。健康記録を時間的に整列することは、特定の診断テストが行われた日付、特定の症状が最初に観察された日付など、所与の患者の健康履歴における所定の事象の出現を識別することを含み得る。次いで、患者の健康記録を、所定の事象の出現日に対して整列する。例えば、所定の事象の出現日が0日目に指定されている場合、事象の3日前に記録された患者の表現型を-3日目に指定し、事象の4日後に記録された表現型を4日目に指定してもよい。患者の表現型の日付は、患者記録に関連するメタデータ(例えば、タイムスタンプ)、所与の記録内に含まれる情報(例えば、日付を示す医師のメモ)などに基づいて判定され得る。いくつかの実施形態では、日付を、自然言語処理技術を使用して判定してもよい。例えば、記録が「患者は3日前に咳を始めた」というフレーズを含む場合、自然言語処理を使用して、咳の症状の開始日が記録の日の3日前であったと判定してもよい。
【0250】
プロセス2420において、時間ウィンドウの選択を受信する。プロセス2420の例示的な実施形態は、例えば、上記で参照した拡張キュレーション論文の「方法」セクションに記載されている。例えば、時間ウィンドウは、精漿テスト(COVID-19の試験など)の前後の小さな時間ウィンドウ(例えば、10~30日)に対応してもよい。時間ウィンドウは、研究されている条件に基づいてよい。例えば、肺高血圧症などのゆっくりと進行する状態を研究するために、診断前後で大きな時間ウィンドウ(例えば、1年又は複数年)を使用してもよい。
【0251】
プロセス2430において、時間的に整列した健康記録のセットを視覚化する。例えば、所定の事象のN日以内に特定の表現型(例えば、特定のシステムを提示する)を有する患者の数又は割合は、時間ウィンドウ全体にわたって時間の関数としてプロットされてもよい。そのような視覚化は、医師又はサイエンティストによる下流の意思決定に有用であり得る。例えば、図25は、いくつかの実施形態による、時間的に整列した健康記録のセットに基づいて生成された視覚化2500の簡略図である。
【0252】
プロセス2440において、時間的に整列した健康記録のセットと、健康記録の1つ又は複数の対照セットとを比較する。プロセス2440の例示的な実施形態は、例えば、上記で参照した拡張キュレーション論文の「方法」セクションに記載されている。いくつかの実施形態では、時間的に整列した健康記録と、1つ又は複数の対照セットとを比較することを使用して、所与の状態(例えば、COVIDテスト陽性)を予測する表現型(例えば、顕著な症状)を識別してもよい。対照セットは、自動的に決定されてもよく、例示的に、(1)「慢性的な病気の患者」のランダムなセットの健康記録と、(2)慢性疾患以外の理由で診療所を訪れる集団のランダムなセットの健康記録と、(3)研究されている状態に関連する状態に関連付けられた患者の健康記録と、に対応してもよい。一例として、COVID-19を研究する場合、第3の対照セットは、症状をCOVID-19患者と区別するために、「インフルエンザ」患者を含んでもよい。
【0253】
プロセス2450において、e時間的に整列した健康記録のセットに基づいて、時間的エンリッチメントを識別する。プロセス2450の例示的な実施形態は、例えば、上記で参照した拡張キュレーション論文の「方法」セクションに記載されている。例えば、時間ウィンドウ内の所与の日について、陽性テスト結果を示す患者の数と、陰性テスト結果を示す患者の数との比を使用して、時間的エンリッチメントが、定量化されてもよい。エンリッチメントは、上記で参照した米国仮出願第62/962,146号及び第62/985,003号、並びに図1~22に更に詳細に記載されている。例えば、COVID-19患者は、対照患者(例えば、インフルエンザ患者)と比較して、陽性テストに至る日に特定の症状(例えば、咳、下痢、味覚の変化など)を示す可能性が高くなり得る。そのような知見は、臨床的意思決定又はリソース最適化に(例えば、テストのために特定の症状を示す患者を優先することによって)、役立つ可能性が高い。時間的エンリッチメントは、特定の転帰のリスクに関連する因子の組合せを識別するコエンリッチメントを更に含み得る。そのような組合せは、様々な既知の統計分析方法を使用して識別され得る。
【0254】
いくつかの実施形態では、出力データで識別されたタグ付きエンティティは、様々な方法でマスキングされてもよい。例えば、タグ付きエンティティは、削除されてもよく、空白文字で置換されてもよく、エンティティのタイプを識別するプレースホルダで置換されてもよい。いくつかの実施形態では、タグ付きエンティティの値は、同じタイプのランダム情報に変更されてもよい。例えば、タグ付きエンティティが電話番号である場合、エンティティはランダムな(又は難読化された)電話番号に変更されてもよい。この手法は、エンティティタグ付けモデルが検出できない個人情報を難読化し得る。例えば、エンティティタグ付けモデルが、所与の記録のセット内で10個の電話番号のうちの9個を検出してランダム化するが、10番目をミスした場合、データのエンドユーザは、どの電話番号が実際のものであり、どれが難読化されているか分からず、それによって、タグ取付け部が検出しなかった電話番号に、保護形式を提供する。
【0255】
図26Aは、いくつかの実施形態による、個人情報を難読化するためのプロセス2600の簡略図である。例示的な入力テキスト2610及び出力テキスト2620を示している。図示のように、難読化プロセス2600は、タグ付きエンティティ(例えば、氏名、所在地及び組織)を、適切な代替用語に置換する。日付は、各患者に固有のランダムな値だけシフトされる。数値識別子は、ランダム値の置換によってスクランブルされる。その結果、入力テキスト2600内の個人データ要素、例えば、「ジョン・スミス」、「MRN#1234567」、「マサチューセッツ総合病院」、及び「8月20日」はそれぞれ、「ジャック・パーカ」、「MRN#6741932」、「スプリングフィールド記念病院」、及び「8月10日」に置換される。このようにして、難読化プロセス2600は、検出された個人情報を、適切な代替用語に置換することによって、残りの個人情報(入力テキスト2610内の個人情報は検出されない)を隠すことに役立ち、したがって、残りの個人情報と代替用語との間を区別することは困難となり、それによって再識別リスクを低減する。対照的に、マスキングを使用する実施形態では、入力テキスト2610は、「頭痛を訴えて<DATE>に<HOSPITAL>を訪れた<NAME>(MRN<ID>)」などのプレースホルダを含み、ここで、「<NAME>」、「<ID>」、「<HOSPITAL>」、及び「<DATE>」は、個人データのためのプレースホルダである。患者情報を削除する実施形態では、出力テキスト2620は「頭痛を訴えて訪れた」となる。図26Cは、検出された個人情報をマスキングするためのプレースホルダの使用(上の分岐)と、検出された個人情報及び検出されていない個人情報の両方を難読化するための代替用語の使用(下の分岐)と、の間の例示的な比較を示している。
【0256】
いくつかの実施形態では、難読化プロセス2600は、エンティティの1つ又は複数の属性(例えば、カテゴリ又はサブカテゴリ)に基づいて、置換されるエンティティごとに、代替用語を選択してもよい。属性及び対応する置換戦略の例示的な例を図26Bに示す。図26Bと一致して、代替用語が、偽を、本物として説得力があるものにするために置換されるエンティティと同様の特性を保持するように、代替用語は選択される。例えば、名前の難読化では、置換は、性別及び民族性と一致する方法で選択される。日付は、それらのフォーマット(すなわち、「2014年3月5日」は、「2014年2月27日」となり、「03-05-2014」は、「02-27-2014」となる)を維持するように処理される。日付のシフトは、1から31の間の患者固有のランダムな数である。これにより、所与の患者について、日付が一貫してシフトされることを保証する。場所及び組織は、事前に定義された辞書から選択された適切な代替用語に置換される。数字を含むPHIエンティティ(例えば、電話番号、患者IDなどで)は、全長及びフォーマットを維持しつつ、これらの数字をランダムに置換する。
【0257】
いくつかの実施形態では、所与の患者について、エンティティの難読化は、一貫した方法で実施される。すなわち、同じ要素が、異なる文、又は医師のノートで繰り返される場合(例えば、2つ以上のエンティティが共通の対象を指す場合)、それは同じ代替用語によって置換される。一例として、「今日、ケビン・マイヤーズは、セントオーガスティン病院を訪れた」になるように難読化された「今日、ジョン・スミスは、メイヨークリニックを訪れた」を含む患者のノートを考える。次いで、「ジョンは、かなり気分が良いと伝えている」などの別の文(同じ患者について異なるノートであっても他の場所で現れる)は、「ケビンは、かなり気分が良いと伝えている」になる。したがって、名前ジョンからケビンへのマッピング、及び苗字スミスからケビンへのマッピングは、この患者について維持される。マッピングは、単一の患者のレベルで適用される。ジョン・スミスという名前の別の患者は、別の代替用語、例えばトム・ミラーに置換される。いくつかの実施形態では、エンティティの一貫した難読化は、エンティティとそれらの代替用語との間のマッピング情報を記憶する専用のキャッシュメカニズムを使用して実施される。専用のキャッシュメカニズムは、システム内の他のキャッシュリソースとは独立して動作し、ディスクベースのキャッシュ、メモリ内キャッシュなどを含み得る。集中型キャッシュに加えて、又は集中型キャッシュの代わりに専用キャッシュを使用すると、難読化プロセスの性能及び効率を向上させ得る。
【0258】
これらの実施形態と一致して、難読化プロセス2600は、出力テキスト2620の可読性及び解釈性を処理する。例えば、上記の技術を使用して代替用語を選択しないプロセス2600の実施形態では、例示的な入力テキスト「ジョン・スミスは、彼の息子のジャックを伴って現れた感じの良い67歳である。ジョンは、呼吸困難を訴えている」は、「ジェーン・ケイトは、彼の息子のマットを伴って現れた感じの良い67歳である。ライアンは、呼吸困難を訴えている。」に変形されてもよい。この例では、「ジェーン・ケイト」は、偽名であり、したがって漏洩する可能性のある任意の真の個人情報と区別するために役立つことは、明らかである。この場合の名前変換は、元の苗字の前にある名前と性別のフォーマットがマッチングしなかった。別の問題は、全く別の人が呼吸困難を訴えているように見えるので、出力の解釈性が悪いことである。この問題に対処するために、上述した技術を使用するプロセス2600の実施形態は、「ジョン」を「ジェーン」ではなく男性の名前に変換し(性別マッチング)、「スミス」を、「ケイト」のように主に名前として使用される名前の代わりに有効な苗字に変換してもよい。名前では、民族性(例えば、慣習及び文化的ノート)を反映する健康記録の特徴が、変換された名前と一致するように、民族性をマッチングさせることが同様に望ましい場合がある。更に、解釈性を向上させるために、ジョン・スミスという名前に対する各参照に同じ変換を適用してもよい。これらの改善を反映する例示的な出力は、「ヤコブ・ハミルトンは、彼の息子のジョナサンを伴って現れた感じの良い67歳である。ヤコブは、呼吸困難を訴えている。」 当業者であれば、上述のエンティティタイプのいずれか1つの難読化は、同じ難読化プロセスにおいて、他の上述のエンティティタイプの難読化と共に実施され得ることを理解するであろう。
【0259】
本明細書に記載の主題は、本明細書に開示した構造的手段、及びその構造的均等物を含む、デジタル電子回路で、あるいはコンピュータソフトウェア、ファームウェア、又はハードウェア、又はそれらの組合せで、実装され得る。本明細書に記載の主題は、データ処理装置(例えば、プログラム可能なプロセッサ、コンピュータ、又は複数のコンピュータ)によって実行される、又はその動作を制御するために、情報キャリア(例えば、機械可読記憶デバイスにおいて)に有形に具現化された、又は伝播信号に具現化された1つ又は複数のコンピュータプログラムなど、1つ又は複数のコンピュータプログラム製品として実装され得る。コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとしても知られる)は、コンパイル言語又はインタプリタ言語を含む任意の形式のプログラミング言語で記述され、更にコンピュータプログラムは、スタンドアロンプログラムとして、又はモジュール、構成要素、サブルーチン、若しくは計算環境での使用に適した他のユニットとして、任意の形式で展開され得る。コンピュータプログラムは、必ずしもファイルに対応しているとは限らない。プログラムは、他のプログラム又はデータを保持するファイルの一部に、当該プログラムに専用の単一のファイルに、又は複数の協調ファイル(例えば、1つ又は複数のモジュール、サブプログラム、又はコードの一部を記憶するファイル)に、記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、あるいは1つのサイトにおいて、又は複数のサイトにわたって分散され、通信ネットワークによって相互接続される、複数のコンピュータ上で、実行されるように展開され得る。
【0260】
本明細書に記載の主題の方法ステップを含む、本明細書に記載のプロセス及びロジックフローは、入力データを操作し、出力を生成することによって、本明細書に記載の主題の機能を実施する1つ又は複数のコンピュータプログラムを実行する1つ又は複数のプログラマブルプロセッサによって実施され得る。プロセス及びロジックフローはまた、FPGA(フィールド・プログラマブル・ゲート・アレイ)又はASIC(特定用途向け集積回路)などの専用論理回路によって実施され、本明細書に記載の主題の装置は、その専用論理回路として実装され得る。
【0261】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1つ又は複数のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ又はランダム・アクセス・メモリ、又はその両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ、並びに命令及びデータを記憶するための1つ又は複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つ又は複数の大容量記憶デバイス、例えば、磁気、光磁気ディスク、又は光ディスクを含み、それらからデータを受信する、それらにデータを送信する、又はそれらとデータを送受信するように動作可能に接続される。コンピュータプログラム命令及びデータを具現化するために適した情報キャリアは、例として、半導体メモリデバイス(例えば、EPROM、EEPROM、及びフラッシュ・メモリ・デバイス)、磁気ディスク(例えば、内蔵ハードディスク又はリムーバブルディスク)、光磁気ディスク、及び光ディスク(例えば、CD及びDVDディスク)を含む、あらゆる形式の不揮発性メモリを含む。プロセッサ及びメモリは、専用論理回路によって補完されても、又は専用論理回路に組み込まれてもよい。
【0262】
ユーザとの相互作用を提供するために、本明細書に記載の主題は、情報をユーザに表示するためのディスプレイデバイス、例えばCRT(陰極線管)又はLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を提供し得るキーボード及びポインティングデバイス(例えば、マウス又はトラックボール)と、を有するコンピュータ上に実装され得る。なお、他の種類のデバイスを使用して、ユーザとの相互作用を提供してもよい。例えば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、ユーザからの入力は、音響、音声、又は触覚入力を含む任意の形式で受信されてもよい。
【0263】
本明細書に記載の主題は、バックエンド構成要素(例えば、データサーバ)、ミドルウェア構成要素(例えば、アプリケーションサーバ)、若しくはフロントエンド構成要素(例えば、ユーザが本明細書に記載の主題の実装形態と相互作用し得るグラフィカル・ユーザ・インターフェース又はウェブブラウザを有するクライアントコンピュータ)、又はそのようなバックエンド、ミドルウェア、及びフロントエンド構成要素の任意の組合せを含む計算システムに実装され得る。システムの構成要素は、任意の形式又は媒体のデジタルデータ通信、例えば通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカル・エリア・ネットワーク(「LAN」)及びワイド・エリア・ネットワーク(「WAN」)、例えばインターネットを含む。
【0264】
個人の健康データを用いて計算するための技術を開示している。特定の一実施形態では、本技術は、セキュアエンクレーブを形成する隔離メモリパーティションを構築することと、セキュアエンクレーブ内にソフトウェアを事前にプロビジョニングすることと、を含む方法として実現され得る。セキュアエンクレーブは、1つ又は複数のプロセッサ上で実行されている1つ又は複数の不正なコンピューティングプロセスから隔離して、1つ又は複数のアプリケーション計算プロセスを実行するために、1つ又は複数のプロセッサに利用可能である。事前にプロビジョニングされたソフトウェアは、暗号化された形式で、1つ又は複数のアプリケーション計算プロセスのための入力データ又は命令のうちの少なくとも1つを受信することと、1つ又は複数の暗号化鍵を使用して入力データ又は命令のうちの少なくとも1つを復号することと、出力データを生成するために、復号した入力データ又は命令のうちの少なくとも1つに基づいて1つ又は複数のアプリケーション計算プロセスを実行することと、1つ又は複数のアプリケーション計算プロセスが受信した入力データ上で動作したことを示す実行の証拠を生成することと、1つ又は複数の暗号化鍵を使用して出力データを暗号化することと、暗号化した出力データ及び実行の証拠に外部アクセスを提供することと、によって、1つ又は複数のプロセッサ上で1つ又は複数のアプリケーション計算プロセスの命令を実行するように構成される。
【0265】
この特定の実施形態の他の態様によれば、本方法は、データ提供者から入力データを受信するステップと、データ提供者以外のエンティティに対応する命令提供者から、入力データを分析する1つ又は複数のプログラムを受信するステップと、入力データをセキュアエンクレーブにロードするステップと、入力データを分析する1つ又は複数のプログラムをセキュアエンクレーブにロードするステップと、セキュアエンクレーブを使用して入力データを分析する1つ又は複数のプログラムを実行するステップと、を更に含む。
【0266】
この特定の実施形態の他の態様によれば、本方法は、臨床データ記録のセットをセキュアエンクレーブにロードする前に入力データを識別解除するステップであって、入力データを識別解除するステップが、入力データから1つ又は複数の個人又はエンティティを識別する情報を除去するステップを含む、識別解除するステップと、セキュアエンクレーブ内の1つ又は複数のアプリケーション計算プロセスのデータ又は命令に関連付けられた復号鍵を、データ提供者又は命令提供者にそれぞれ提供するステップと、入力データをセキュアエンクレーブにロードする前に、入力識別解除確率を入力データに関連付けるステップであって、セキュアエンクレーブが、出力データ内の入力識別解除確率を維持する、関連付けるステップと、を更に含む。
【0267】
この特定の実施形態の他の態様によれば、入力データは、臨床データから個人識別情報(PII)を除去することによって識別解除される臨床データを含み、入力データ、及び入力データを分析する1つ又は複数のプログラムは、同じトランザクションでセキュアエンクレーブにロードされる。
【0268】
この特定の実施形態の他の態様によれば、本方法は、セキュアエンクレーブを、第2のセキュアエンクレーブ内で実行されるウェブサーバに接続するステップと、セキュアエンクレーブの出力データを、ウェブクライアント又はウェブブラウザ上のウェブページとして表示させるステップと、を更に含む。
【0269】
この特定の実施形態の他の態様によれば、セキュアエンクレーブ内のウェブサーバによって処理されている入力データは、ウェブブラウザ又はウェブクライアントにアクセスできず、ウェブサーバを介して表示された出力データは、セキュアエンクレーブに関連付けられた暗号化オブジェクトに関連付けられる。
【0270】
この特定の実施形態の他の態様によれば、本方法は、キュレーションサービスから入力データ又は命令を受信するステップを更に含み、入力データ又は命令がプライバシー保護であると、キュレーションサービスが判定する。
【0271】
この特定の実施形態の他の態様によれば、セキュアエンクレーブは、パイプラインを形成するために1つ又は複数の他のセキュアエンクレーブに通信可能に接続され、セキュアエンクレーブからの出力データは、パイプライン内の後続のセキュアエンクレーブへの入力データとして提供され、実行の証拠が、暗号化オブジェクトを備え、暗号化オブジェクトは、セキュアエンクレーブのコンテンツの表現であり、セキュアエンクレーブのコンテンツの表現は、不正なコンピュータプログラムが入力データ上で動作していないことを証明し、セキュアエンクレーブのコンテンツの表現は、入力データに関連付けられた入力識別解除確率がセキュアエンクレーブによって維持されたことを証明し、暗号化オブジェクトは、パイプライン内の1つ又は複数の他のセキュアエンクレーブのコンテンツを表す1つ又は複数の他の暗号化オブジェクトとリンクされる。
【0272】
この特定の実施形態の他の態様によれば、セキュアエンクレーブ内で1つ又は複数の計算プロセスを実行することは、入力データ又は命令の少なくとも1つに基づいてセキュアエンクレーブの固有シグネチャを生成することを更に含み、1つ又は複数のアプリケーション計算プロセスの受信した入力データ及び命令は、パイプライン内のセキュアエンクレーブにリンクされた他のいかなるセキュアエンクレーブにもアクセスできず、1つ又は複数のアプリケーション計算プロセスの受信した入力データ及び命令は、パイプラインのオペレータにとってアクセス可能ではなく、1つ又は複数の不正な計算プロセスは、少なくとも1つの特権ソフトウェア、特権ファームウェア、又はネットワークインターフェースプロセスを含み、入力データは、臨床データ記録のセットを備える。
【0273】
特定の一実施形態では、本技術は、テキストシーケンスを受信するステップと、テキストシーケンスを複数のエンティティタグ付けモデルに提供するステップと、複数のエンティティタグ付けモデルによって識別されたテキストシーケンスからタグ付きエンティティを集約するステップと、集約されたタグ付きエンティティに基づいてテキストシーケンス内の情報をマスキングするステップと、を含む情報マスキング方法として実現され得る。複数のエンティティタグ付けモデルの各々は、対応するエンティティタイプを有するテキストシーケンスの1つ又は複数の部分にタグ付けし、更に所定の閾値を超える性能メトリックを実現するように、訓練される。
【0274】
この特定の実施形態の他の態様によれば、テキストシーケンスは、電子健康記録の少なくとも一部を含み、複数のエンティティタグ付けモデルのうちの少なくとも1つは、エンティティタイプのエンティティにタグ付けするように訓練され、エンティティタイプは、個人名、組織名、年齢、日付、時刻、電話番号、ポケットベル番号、臨床識別番号、電子メールアドレス、IPアドレス、ウェブURL、車両番号、住所、郵便番号、社会保障番号、又は生年月日のうちの少なくとも1つを含み、複数のエンティティタグ付けモデルのうちの少なくとも1つは、ルールベースのアルゴリズムに基づいてエンティティをタグ付けし、複数のエンティティタグ付けモデルのうちの少なくとも1つは、テキストのシーケンスからの学習に基づいた機械学習モデルを含み、テキストシーケンスにおける情報をマスキングすることは、1つ又は複数のタグ付きエンティティを、1つ又は複数のタグ付きエンティティのタイプをマーキングするプレースホルダに置換することを含み、テキストシーケンスにおける情報をマスキングすることは、1つ又は複数のタグ付きエンティティの値を、ランダム化された値に変更することを含む。
【0275】
この特定の実施形態の他の態様によれば、情報マスキング方法は、テキストシーケンスの1つ又は複数の部分をホワイトリスト化するステップであって、1つ又は複数のホワイトリスト化された部分は、集約されたタグ付きエンティティを1つ又は複数のドレグフィルタに通す複数のエンティティのタグ付けモデルに提供されず、1つ又は複数のドレグフィルタの各々は、ルールベースのテンプレート又はパターン・マッチング・フィルタのうちの少なくとも1つに基づいて対応するエンティティタイプをフィルタリングするように構成される、ホワイトリスト化するステップを更に含む。ルールベースのテンプレートは、テキストシーケンスの1つ又は複数の部分のそれぞれを、対応する構文テンプレートにマッピングすることと、テキストシーケンスの1つ又は複数の部分に基づいて1つ又は複数の候補構文テンプレートを類推する機械学習モデルに基づいて候補構文テンプレートを識別することと、候補テンプレートに対応するテキストシーケンスの部分における1つ又は複数のタグ付きエンティティの各々を、対応する構文トークンに置換することによって、候補構文テンプレートからルールベースのテンプレートを生成することと、によって生成され得る。
【0276】
別の特定の実施形態では、本技術は、薬物、疾患、及び関係を指定するクエリを受信するステップと、クエリに応答して、薬物及び疾患の各々に言及するテキストフラグメントのリストを取得するステップであって、テキストフラグメントのリスト内の各テキストフラグメントが、薬物及び疾患に対応するトークン、並びに薬物と疾患との間及び薬物と疾患の周囲の複数の追加のトークンを含む、取得するステップと、テキストフラグメントごとに、訓練された少なくとも1つのニューラル・ネットワーク・モデルを使用して、関係が成立するか否かを類推するステップと、関係がテキストフラグメントのリストの中で成立することを、類推が示す頻度に基づいてメトリックを決定するステップと、メトリック、及びテキストフラグメントのリストの中の1つ又は複数のテキストフラグメントを含むクエリに対する応答を提供するステップと、を含む方法として実現され得る。
【0277】
この特定の実施形態の他の態様によれば、テキストフラグメントのリストを取得することは、クエリに基づいて第2のクエリを検索アグリゲータに送信して、第2のクエリを検索アグリゲータに受信させ、第2のクエリを複数のシャードに分散させ、それぞれの反転リストに対する検索を複数のシャードの各々に実施させることであって、複数のシャードの各々は、コーパスの対応する部分を処理して、反転リストを形成し、反転リストは、コーパス内の各トークンの出現のリストを含む、実施させることと、検索結果のセットを生成し、複数のシャードからの検索結果を集約して、テキストフラグメントのリストを形成することと、を含む。
【0278】
この特定の実施形態の他の態様によれば、反転リストは、コーパスを複数のサブセットに分割することと、複数のサブセットの各々を、対応する複数のシャードに分散することと、複数のシャードの中のシャードごとに、それぞれのサブセット内の1つ又は複数の文書を連結して、テキスト配列を形成することと、それぞれのサブセット内の各トークンの出現のリストを決定することであって、出現のリストは、反転リストとして記憶される、決定することと、によって生成される。
【0279】
この特定の実施形態の他の態様によれば、本方法は、薬物、疾患、又は関係のうちの少なくとも1つに関連する1つ又は複数の関連用語を含むようにクエリを拡張するステップを更に含み、テキストフラグメントのリストは、拡張されたクエリに基づいて取得され、1つ又は複数の関連用語は、複数の用語の中での関係を識別する知識ベースから検索される。
【0280】
この特定の実施形態の他の態様によれば、本方法は、テキストフラグメントのリスト内の1つ又は複数のエンティティを識別するステップと、1つ又は複数のエンティティの統計分析に基づいて1つ又は複数のエンリッチセットを生成するステップと、を更に含み、クエリに対する応答は、1つ又は複数のエンリッチセットを含み、1つ又は複数のエンリッチセットは、1つ又は複数のエンティティの中で最も高い統計的有意性スコアを有する1つ又は複数のエンティティのサブセットを含む。
【0281】
この特定の実施形態の他の態様によれば、テキストフラグメントのリストは、公開文献コーパス又は臨床データコーパスのうちの少なくとも1つを含むコーパスから取得され、コーパスは、マスキングされた情報を含む少なくとも1つのテキストシーケンスを含み、コーパスは、少なくとも1つの構造化データフィールドを含む構造化テキストデータを含み、コーパスは、少なくとも1つの患者記録が最小コホートサイズ未満のコホートに関連付けられていることに基づいて、応答から省略された少なくとも1つの患者記録を含む。
【0282】
この特定の実施形態の他の態様によれば、マスキングされた情報は、少なくとも1つのテキストシーケンスを受信することと、少なくとも1つのテキストシーケンスを複数のエンティティタグ付けモデルに提供することであって、複数のエンティティタグ付けモデルの各々は、所定の閾値を超える性能メトリックを実現するように訓練される、提供することと、複数のエンティティタグ付けモデルによって識別されたテキストシーケンスからタグ付きエンティティを集約することと、集約されたタグ付きエンティティに基づいてテキストシーケンス内の情報をマスキングすることと、によってマスキングされる。
【0283】
別の特定の実施形態では、本技術は、第1のキュレーションされた健康記録のセットを受信するステップであって、キュレーションされた健康記録のセット内の各健康記録は、患者情報の構造化表現を含む、受信するステップと、第1のキュレーションされた健康記録のセットを使用して第1のニューラル・ネットワーク・モデルを訓練するステップと、第1のキュレーションされていない健康記録のセットを受信するステップと、訓練された第1のニューラル・ネットワーク・モデルを使用して第1のキュレーションされていない健康記録のセットをキュレーションするステップと、第2のキュレーションされた健康記録のセットを生成するステップと、第2のキュレーションされた健康記録のセットを使用して第2のニューラル・ネットワーク・モデルを訓練するステップであって、第2のニューラル・ネットワーク・モデルは、第1の性能メトリックと比較して改善された性能を示す第2の性能メトリックを訓練するステップに基づいて、第2の性能メトリックを実現する、訓練するステップと、を含む方法として実現され得る。
【0284】
この特定の実施形態の他の態様によれば、本方法は、現在の反復についてキュレーションされていない健康記録のセットを受信するステップと、前の反復からの訓練されたニューラル・ネットワーク・モデルを使用して、現在の反復のためにキュレーションされていない健康記録のセットをキュレーションするステップと、現在の反復のためにキュレーションされた健康記録のセットを生成するステップと、現在の反復のためにキュレーションされた健康記録のセットを使用して、現在の反復のためのニューラル・ネットワーク・モデルを訓練するステップと、を反復的に実施するステップを更に含む。
【0285】
この特定の実施形態の他の態様によれば、本方法は、第2のキュレーションされていない健康記録のセットを受信するステップと、訓練された第2のニューラル・ネットワーク・モデルを使用して第2のキュレーションされていない健康記録のセットをキュレーションするステップと、第3のキュレーションされた健康記録のセットを生成するステップと、第4のキュレーションされた健康記録のセットに基づいて健康記録の構造化データベースに入力するステップであって、第4のキュレーションされた健康記録のセットは、第1のキュレーションされた健康記録のセット、第2のキュレーションされた健康記録のセット、第3のキュレーションされた健康記録のセット、又は1つ若しくは複数のニューラル・ネットワーク・モデルを反復的に訓練することによって生成されたキュレーションされた健康記録のセットのうちの少なくとも1つを含み、1つ又は複数のニューラル・ネットワーク・モデルの各々は、前の反復中に生成されたキュレーションされた健康記録のセットを使用して訓練される、入力するステップと、健康記録の構造化データベースに基づいてエンリッチメント分析を実施するステップと、クラスタリング分析に基づいて複数の患者のサブグループ間を区別し、複数の患者のサブグループごとに、異なる治療計画を選択するステップと、第3のキュレーションされた健康記録のセットを時間的に整列し、時間的に整列した健康記録のセットに基づいて1つ又は複数の時間的エンリッチメントを識別するステップと、を更に含む。
【0286】
この特定の実施形態の他の態様によれば、訓練された第2のニューラル・ネットワーク・モデルは、関心のある新興の概念に基づいて第3のキュレーションされた健康記録のセットをキュレーションし、エンリッチメント分析は、疾患に関連する疾患予測因子を識別すること、又は患者コホートを特徴付けることとのうちの少なくとも1つを含み、第3のキュレーションされた健康記録のセットは、陽性テストの日付、医療処置の日付、又は薬剤の使用に関連する日付のうちの少なくとも1つに基づいて時間的に整列され、1つ又は複数の時間的エンリッチメントは、複数の時間ウィンドウ内で識別され、1つ又は複数の時間的エンリッチメントは、複数の因子に基づく少なくとも1つのコエンリッチメントを含む。
【0287】
別の特定の実施形態では、本技術は、システムに通信可能に接続され、システム内で動作するように構成された少なくとも1つのコンピュータプロセッサを含むシステムとして実現され、少なくとも1つのコンピュータプロセッサは、上述の方法のうちの1つ又は複数におけるステップを実施するように更に構成され、第2のニューラル・ネットワーク・モデルは、合成した健康記録のセット、第1のキュレーションされた健康記録のセット、及び第2のキュレーションされた健康記録のセットを使用して訓練される。
【0288】
別の特定の実施形態では、本技術は、非一時的なプロセッサ可読媒体と、媒体に記憶された命令と、を含む製品として実現され、命令は、情報マスキングシステムに通信可能に接続され、情報マスキングシステム内で動作するように構成された少なくとも1つのコンピュータプロセッサによって媒体から読取り可能に構成され、それによって、上述の方法のうちの1つ又は複数のステップを実施するように、少なくとも1つのコンピュータプロセッサを動作させる。
【0289】
開示した主題は、その適用において、上記の説明に記載された又は図面に示された構成の詳細及び構成要素の配置に限定されないことを理解されたい。開示した主題は、他の実施形態が可能であり、様々な方法で実施及び実行することができる。また、本明細書で使用される表現及び用語は、説明のためのものであり、限定するものと見なされるべきではないことを理解されたい。
【0290】
したがって、当業者は、本開示の基礎となる概念が、開示した主題のいくつかの目的を実行するための他の構造、方法、及びシステムの設計の基礎として容易に利用され得ることを理解するであろう。したがって、特許請求の範囲は、開示した主題の趣旨及び範囲から逸脱しない限り、そのような同等の構成を含むと見なされることが重要である。
【0291】
開示した主題を前述の例示的な実施形態で説明及び図示してきたが、本開示は例としてのみなされており、開示した主題の趣旨及び範囲から逸脱することなく、開示した主題の実装の詳細における多くの変更がなされ得ることが理解され、これは以下の特許請求の範囲によってのみ限定される。
図1A
図1B
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20A
図20B
図21
図22A
図22B
図23
図24
図25-1】
図25-2】
図26A
図26B
図26C
【国際調査報告】