首页> 中国专利> 使用机器学习算法处理个人数据及其应用

使用机器学习算法处理个人数据及其应用

摘要

为了训练模型,需要训练数据。当个人数据随时间变化时,该训练数据可能会过时,从而消除了其在训练模型时的用处。实施例通过开发具有运行日志的数据库来处理该问题,该运行日志指定每个人的数据在当时如何变化。当摄取数据时,可能无法将其标准化。为了解决这个问题,实施例清理数据以确保摄取的数据字段被标准化。最后,训练模型和解决个人数据准确性所需的各种任务对于计算设备而言可能很快变得很麻烦。它们可能彼此冲突,并且在计算资源(诸如处理器能力和内存容量)方面的竞争效率低下。为了解决这些问题,使用了调度器来对涉及的各种任务进行排队。

著录项

  • 公开/公告号CN112189206A

    专利类型发明专利

  • 公开/公告日2021-01-05

    原文格式PDF

  • 申请/专利权人 维达数据方案公司;

    申请/专利号CN201980024828.1

  • 发明设计人 罗伯特·雷蒙德·林德内尔;

    申请日2019-04-09

  • 分类号G06N3/08(20060101);G06F16/335(20060101);

  • 代理机构11219 中原信达知识产权代理有限责任公司;

  • 代理人韩峰;孙志湧

  • 地址 美国华盛顿哥伦比亚特区

  • 入库时间 2023-06-19 09:24:30

说明书

技术领域

该领域通常与处理信息有关。

背景技术

随着技术的进步,越来越多的个人数据被数字化,结果,越来越多的个人数据变得可合法访问。个人数据的可访问性的增加催生了专注于合法挖掘个人数据的新行业。

个人数据记录可以包括许多属性。代表个人的数据记录可以包括诸如个人姓名、他或她的城市、州和邮政编码的属性。除了人口统计信息外,数据记录还可以包括有关个人的行为的信息。来自不同来源的数据记录可能包括不同属性。存在用于收集描述独立个体的特征或行为的信息的系统。收集这类个人信息具有许多应用,包括在国家安全、执法、市场营销、医疗保健和保险领域的应用。

例如,在医疗保健中,医疗保健提供者可能具有来自各种数据源的不一致的个人信息(诸如地址信息),这些数据源包括国家提供者标识符注册、药物管制局(DEA)注册、公共资源(例如诸如YELP评论网站的互联网网站)以及专有来源,诸如健康保险公司理赔信息。

随着记录从不同来源接收到越多更新,它们也存在不一致和与数据录入相关联的错误的更大风险。通过这些方式,均描述同一个人的数据记录在其内容方面可能是不协调、不一致且错误的。从这些各种来源,单个医疗保健提供者可以具有许多地址,也许多达200个地址。这些来源可能对正确的地址是什么意见不一。一些医疗保健提供者具有多个正确的地址。为此,提供者可能具有较新的地址的事实并不意味着较旧的地址不正确。

一些健康和牙科保险公司要求员工手动致电医疗保健提供者,以确定他们的正确地址。但是,由于医疗保健提供者的地址信息可能会经常更改,因此这种手动更新的成本很高。除了地址信息之外,与医疗保健提供者有关的其他人口统计信息(诸如电话号码)也存在类似的问题。

此外,欺诈性理赔是医疗保健中的巨大问题。据一些估计,仅从政府运营的健康保险计划中,欺诈性理赔每年就可能窃取超过800亿美元。欺诈的普遍存在远远超出了执法部门和保险公司进行调查的资源。

数据定向算法(称为机器学习算法)可用于进行预测和实施某些数据分析。机器学习是计算机科学的领域,为计算机赋予无需进行明确编程即可学习的能力。在数据分析领域,机器学习是一种用于设计可以被用来预测和估计的复杂模型和算法的方法。

要开发这些模型,首先必须对其进行训练。通常,训练涉及输入被称为特征的一组参数,以及用于输入特征的已知的正确或不正确的值。训练模型后,可以将其应用于未知适当解决方案的新特征。通过以这种方式应用模型,模型可以预测或估计未知的其他情况的解决方案。这些模型可以通过从数据库中的历史关系和趋势中学习来发现隐藏的见解。这些机器学习模型的质量可能取决于基础训练数据的质量和数量。

需要系统和方法来改善对正确个人信息(诸如医疗保健提供者的人口统计信息和欺诈倾向)或数据源的识别和预测。

发明内容

在实施例中,一种计算机实现的方法,其利用时变(temporally variant)个人数据来训练机器学习算法。在多个时间,监视数据源以确定与人员有关的数据是否已经更新。当所述人员的数据已经被更新时,将所更新的数据存储在数据库中,使得该数据库包括指定所述人员的数据随时间如何变化的运行日志。所述人员的数据包括与所述人员有关的多个属性的值。接收用于所述人员的数据中的特定属性的值在特定时间被验证为准确或不准确的指示。基于特定时间,从数据库中检索所述人员的数据,包括用于在该特定时间最新的多个属性的值。利用检索到的数据和指示,可以对模型进行训练,使得该模型可以预测另一人员对该特定属性的值是否准确。以这种方式,使检索到的数据流通至所述特定时间来在对所述模型的训练中维持所检索到的数据的意义。

在实施例中,一种计算机实现的方法,将与人员有关的不同的人口统计数据进行相关联。在该方法中,从多个不同的数据源接收描述该人员的同一属性的多个不同的值。确定多个不同的值中的任何一个是否表示同一特质。当确定不同的值表示同一特质时,选择表示同一特质的这些值中的一个来最准确地表示该特质,并且链接被确定为表示同一特质的那些值。

在实施例中,一种系统,其调度数据摄取和机器学习。该系统包括计算设备、数据库、存储在计算设备上的队列以及在计算设备上实现的调度器。调度器被配置为将完成作业的请求置于该队列上。该请求包括完成数据摄取任务、训练任务和求解任务中的至少一项的指令。该系统还包括三个进程:数据摄取进程、训练器进程和求解器进程,每个进程都在计算设备上实现并且监视队列。当队列包括完成数据摄取任务的请求时,数据摄取任务从数据源检索与人员有关的数据,并且将检索到的数据存储在数据库中。当队列包括完成训练任务的请求时,训练器任务使用数据库中的检索到的数据以及用于所述人员的数据中的特定属性的值被验证为准确或不准确的指示来训练模型。训练该模型,使得模型可以预测另一人员对特定属性的值是否准确。最后,当队列包括完成求解任务的请求时,求解器进程将应用该模型来预测多个属性中的另一人员的值是否准确。

还公开了方法、系统和计算机程序产品实施例。

在下文中,参照附图,详细地描述本发明的其他实施例、特征和优点以及各个实施例的结构和操作。

附图说明

并入本文并形成说明书的一部分的附图示出了本公开,并且结合说明书进一步用于解释本公开的原理并且使相关领域的技术人员能够制造和使用本公开。

图1是示出根据实施例,通过随时间变化的数据训练机器学习模型的示意图。

图2是示出根据实施例的摄取数据和训练模型的方法的流程图。

图3是示出根据实施例的摄取数据以训练模型的示例的示意图。

图4是示出根据实施例的训练模型的方法的流程图。

图5是示出根据实施例的应用模型来识别地址的示例的示意图。

图6是示出根据实施例的清理摄取的数据的方法的示意图。

图7是示出根据实施例的清理摄取的地址数据的方法的示意图。

图8是示出根据实施例的链接摄取的数据的方法的示意图。

图9是示出根据实施例的链接摄取的数据的示例的示意图。

图10是示出根据实施例的用于摄取数据、基于该数据训练模型以及基于训练的模型确定解决方案的系统的示意图。

图11是示出根据实施例的用于调度摄取、训练和求解任务的系统的示意图。

元件首次出现的图通常由各个参考数字中最左边的一个或多个数字指示。在附图中,相似的附图标记可以指示相同或功能上相似的元件。

具体实施方式

机器学习算法可以训练模型以预测个人数据的准确性。但是,要训练模型,需要有意义的训练数据。当个人数据随时间变化时,该训练数据可能会过时,从而消除了其在训练模型时的用处。实施例通过开发具有运行日志的数据库来处理该问题,该运行日志指定每个人的数据在当时如何变化。当验证个人的数据的准确性的信息可用于训练模型时,实施例可以从该数据库中检索信息,以将可用于所述人员的所有数据标识为在验证准确性时存在的数据。根据该检索到的信息,可以确定特征。所确定的特征被用来训练模型。以这种方式,实施例避免训练数据过时。

当摄取数据时,可能无法将其标准化。例如,可能在不同的记录和数据源中不同地列出相同的地址。不同的表示使得难以链接这些记录。如果以相同的方式表示相同的数据,则机器学习算法和模型将更有效地运行。为了解决这个问题,实施例清理数据以确保所摄取的数据字段被标准化。

训练模型和解决个人数据准确性所需的各种任务对于计算设备而言很快变得很麻烦。它们可能彼此冲突,并且在计算资源(例如处理器能力和内存容量)方面的竞争效率低下。为了解决这些问题,采用了调度器来对涉及的各种任务进行排队。

在下面的详细描述中,对“一个实施例”、“一实施例”、“示例性实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以不必包括该特定的特征、结构或特性。此外,这样的短语不一定指相同的实施例。另外,当结合实施例描述特定的特征、结构或特性时,可以认为结合不管是否明确描述的其他实施例来实现这样的特征、结构或特性在本领域的技术人员的知识范围内。

图1是示出根据实施例的通过随时间变化的数据来训练机器学习模型的示意图100。示意图100包括时间线120。时间线120示出了时间102A...N和104A...N。

在时间102A...N,有关个人或被监视的一群人的信息已经被更新。如下所述,信息可以被存储在多个不同的数据源中。应用于医疗保健提供者,数据源可以包括描述有关各个医疗保健提供者的人口统计信息的公共数据库和目录以及诸如内部保险目录和理赔数据库的专有数据库。对任何数据源的更新都会摒弃历史更新数据库110的更改日志。例如,当为医疗保健提供者添加新理赔时,新理赔被记录在历史更新数据库110中。类似地,当提供者的地址被更新时,该变化被记录在历史更新数据库110中,使得历史更新数据库110在进行变化时,对所有被监视人归档所有相关数据源。以这种方式,历史更新数据库110包括运行日志,该运行日志指定了与被监视人有关的所有相关数据如何随时间变化。根据历史更新数据库110,可以确定所有数据在任何特定时间存储时的内容。

在时间104A...N,至少一些信息被验证为准确或不准确。在人口统计信息(诸如地址或电话号码)的上下文中,这可能涉及致电医疗保健提供者并询问地址或电话号码是否有效。结果是该地址有效还是无效的指示以及验证发生的时间。这些值都被存储在验证数据库112中。除了人口统计信息外,还可以验证或确定有关个人的其他信息,包括其行为。例如,时间104A...N可能是经过调查确定为欺诈的理赔发生的时间。

使用数据和历史更新数据库110以及验证数据库112,可以确定特征化训练数据库114。在输入到特征化训练数据库114之前,可以将来自历史更新数据库110的历史数据转换成对训练和机器学习算法有用的特征,如下所述。这些特征被用来训练机器学习模型116。

如果历史更新数据库110仅包括最新信息,则验证数据库112中的信息将很快过时,因为该信息在时间102A...N被更新。此外,在时间104A...N处的验证可能与时间102A...N无关地发生。如果仅在接收到验证数据时才收集来自数据源的信息,则可能时间已过去,并且数据源已经被更新。为此,如果历史更新数据库110仅包括在接收到新的验证数据时才有效的数据,则历史更新数据库110将会过时。例如,可能对预测欺诈性理赔最相关的数据是提出理赔时有效的数据。如果历史更新数据库110仅包括最新信息或当确定理赔为欺诈时可用的信息,则可能不存在许多相关的历史数据,因此,机器学习算法可能不太有效。

图2是示出根据实施例的摄取数据以训练模型的方法200的流程图。例如,在图3的示意图300中示出方法200的示例性操作。

方法200从步骤202开始,通过检查各个数据源来确定数据是否已经被更新。为了检查数据是否已经被更新,实施例可以例如检查数据的时间戳,或确定数据的哈希值,并且将该哈希值与上次检查数据时生成的另一个哈希值进行比较。步骤202的检查可以在多个不同的数据源上进行。例如在图3的图300中示出这些数据源。

示意图300说明了各种数据源:医疗补助和医疗保险中心(CMS)服务数据源302A、目录数据源302B、DEA数据源302C、公共数据源302D、NPI数据源302E、注册数据源302F和理赔数据源302G。

CMS数据源302A可以是由政府机构提供的数据服务。该数据库可以是分布式的,并且不同的机构组织可以负责存储在CMS数据源302A中存储的不同数据。CMS数据源302A可以包括关于医疗保健提供者的数据,诸如合法可用的人口统计信息和理赔信息。CMS数据源302A还可以允许提供者在医疗保险提供者登记系统中登记和更新其信息,并且注册和协助医疗保险和医疗补助电子健康记录(EHR)激励计划。

目录数据源302B可以是医疗保健提供者的目录。在一个示例中,目录数据源302B可以是专有目录,其将医疗保健提供者与特定客户认为是真实的人口统计和行为特质进行匹配。目录数据源302B可能例如属于保险公司,并且只有在公司同意的情况下才能安全地访问和使用。

DEA数据源302C可以是由诸如DEA的政府机构维护的注册数据库。DEA可以维护允许开处方或配药的医疗保健提供者(包括医生、验光师、药剂师、牙医或兽医)的数据库。DEA数据源302C可以将医疗保健提供者与DEA编号进行匹配。另外,DEA数据源302C可以包括关于医疗保健提供者的人口统计信息。

公共数据源302D可以是公共数据源,可能是基于Web的数据源,诸如在线评论系统。一个示例是YELP在线评论系统。这些数据源可以包括有关医疗保健提供者的人口统计学信息、专业领域以及行为信息(诸如大众的评论)。

NPI数据源302E是将医疗保健提供者与国家提供者标识符(NPI)匹配的数据源。NPI是《健康保险可移植性和责任法案》(HIPAA)行政简化标准。NPI是投保的医疗保健提供者的唯一标识号。投保的医疗保健提供者以及所有健康计划和医疗保健信息交换所必须在HIPAA所采用的行政和金融交易中使用NPI。NPI是10位无智能数字标识符(10位数字)。这意味着这些数字不包含有关医疗保健提供者的其他信息,诸如他们所居住的州或医疗专业。NPI数据源302E还可以包括关于医疗保健提供者的人口统计信息。

注册数据源302F可以包括状态许可信息。例如,医疗保健提供者(诸如医师)可能需要在州许可委员会注册。州许可委员会可以提供关于医疗保健提供者的注册数据源302F信息,诸如人口统计信息和专业领域,包括委员会认证。

理赔数据源302G可以是具有保险理赔信息的数据源。类似于目录数据源302B,理赔数据源302G可以是专有数据库。保险理赔可以指定用于保险报销必要的信息。例如,理赔信息可以包括关于医疗保健提供者、所执行的服务以及可能的理赔金额的信息。可以使用标准化代码系统(诸如ICD-9)来描述所执行的服务。关于医疗保健提供者的信息可以包括人口统计信息。

返回图2,在判定框204处,评估每个数据源以确定是否已经发生了更新。如果在任何数据源中已经发生更新,则在步骤206存储该更新。该更新可以存储在图3所示的历史更新数据库110中。如上参考图1所述,历史更新数据库110包括运行日志,该运行日志指定所述人员的数据如何随时间变化。

例如,在图3中,在表312中示出了历史更新数据库110中的这种运行日志。表312具有三行和五列:源ID、日期时间、提供者ID、属性和值。源ID列指示来自历史更新数据库110的基础数据的源。跟踪该数据的源对于确保不适当地使用专有数据可能很重要。在表312中,前两行指示从NPI数据源302E检索数据,第三行指示从理赔数据源302G检索数据。日期时间列可以指示更新的时间或检测到更新的时间。提供者ID列可以是医疗保健提供者的主键标识符。该属性列可以是用于若干被监视的属性(诸如人口统计数据(例如地址、电话号码、姓名))之一的主键标识符。在这种情况下,表312中的每一行的属性值均为一,指示它们与医疗保健提供者的地址属性的更新有关。值列指示在指定时间从特定源接收到的用于该属性和用于特定提供者的值。在表312中,从NPI数据源302E对该提供者检索到的第一地址值是“123Anywhere Street”,随后从NPI数据源302E对该提供者检索到的第二地址值是“123Anywhere St.Suite 100”。

在步骤206更新从数据源下载的原始数据之后,在步骤208清理和标准化数据。有时,不同的数据源使用不同的约定来表示相同的基础数据。此外,数据中经常会发生一些错误。在步骤210,识别出不同数据源使用变化的约定来表示相同基础数据的这些实例。此外,校正经常或定期发生的一些错误。在下文中,参考图6-7,更详细地描述该清理和标准化。

转到图3,示意图300示出了在步骤314和表316处的清理和标准化的示例。在表316中,确定第一行和第二行表示相同的基础特质。因此,通过给定的通用表示链接它们。为了保持一致,将“Street”更改为缩写“St.”并且添加第一行中缺少的公寓号。

回到图2,在步骤210,捕获表示已知不正确或正确数据的特征。如上所述,可以手动地验证构建模型的属性。例如,在用于预测医疗保健提供者的地址的准确性的模型的示例中,工作人员可以手动地致电医疗保健提供者并询问地址是否正确。该解决方案数据可以被用来训练模型。除了该解决方案外,还必须确定模型所需的输入参数。输入参数可以被称为特征。

如果输入参数是与属性有关的事实,则机器学习算法可能会更好地运行,而不是将原始数据输入到模型中。事实可能是例如关于基础原始数据的真假陈述。例如,在地址模型中,以下特征可能有用:

·最近六个月内是否更新了地址?在过去的一年中是否更新了地址?

·提供者是否有与此地址匹配的州注册?

·最近六个月该地址是否存在理赔数据?在过去的一年中该地址是否存在理赔数据?

·地址数据的更新日期是否与创建日期相同?

可以不断添加和测试新特征,以确定它们在预测地址是否正确时的功效。为了节省计算资源以及训练和求解模型,可以删除影响很小的特征。同时,可以添加被确定为具有预测值的新特征。

转到图3,该特征化进程在步骤318中示出以产生在表320中示出的训练数据。在表320中,两行示出了已经发生的两个不同的验证。对于ID为14的提供者,地址“123AnywhereSt.Suite 100”已经被验证为正确。对于ID为205的提供商,地址“202Nowhere St.”已经被验证为不正确。两行都具有已经为各自的地址确定的一组特征Fl...FN。

返回图2,在步骤212,训练数据被用来训练多个机器学习模型。不同类型的模型可以对每个属性具有不同的有效性。因此,在步骤212,训练许多不同类型的模型。类型可以包括例如:逻辑回归、朴素贝叶斯、弹性网、神经网络、伯努利朴素贝叶斯、多模态朴素贝叶斯、最近邻分类器、支持向量机。在一些实施例中,可以组合这些技术。在输入与属性有关的特征时,经训练的模型可以输出指示该属性正确的可能性的分值。

在步骤214,选择最佳模型或模型组合。最佳模型可能是最准确地预告经过训练来预测的属性的模型。可以使用网格搜索来实施步骤214。对于每个已知的正确答案,都会计算特征并将其应用于每个经训练的模型。对于每个经训练的模型,确定指示由经训练的模型输出的分值正确的程度的精度值。然后,选择具有最大准确度的模型以预告属性的正确性。

以这种方式,实施例从多个数据源摄取数据,并且使用该数据来训练能够预测特定属性是否准确的模型。如图4和5所示,可以应用经训练的模型。

图4是示出根据实施例的训练模型的方法400的流程图。在图5的示意图500中示出方法400的操作。

方法400开始于步骤402。在步骤402,针对所查询的属性收集特征。可以按照收集特征以开发用于属性的模型的训练数据的相同方式来收集特征。例如,数据可以被清理和标准化,就像如上以及下文参考图6-7详述对训练数据一样。可以使用与属性有关的最新信息从历史更新数据库110计算特征。在一个实施例中,可以仅对用户请求的提供者来计算特征。在另一个实施例中,可以对每个提供者或不具有最近被验证并包括在训练数据中的属性(例如,地址)的每个提供者计算特征。计算的数据的示例在图5的示意图500中示出。

在示意图500中,表502示出了从历史更新数据库110接收的数据,用于输入到训练模型中。每行表示用于预测的属性的不同值。提供者ID对应于用于该值的提供者。F1...FN是与提供者和特定值相关的特征。这些特征可能是用于训练模型的相同事实。

返回图4,在步骤404,将收集的特征应用于经训练的模型。可以将特征输入模型,因此,模型可以输出指示该值准确的可能性的分值。

示例性分值在示意图500的步骤504和表506中示出。表506表示提供者的各种可能地址以及模型已经为每个地址输出的分值。另外,表506包括每个地址的源。为了确定源,可能需要对历史更新数据库110的附加查询。在表506的示例中,特定提供者存在四个可能的地址:从NPI数据源收集的“123Anywhere St.”、从第一理赔数据源收集的“321SomeplaceRd.”、从第二不同的理赔数据源收集的“10Somewhere Ct.”以及从DEA数据源收集的“5Overthere Blvd.”。该模型计算每个地址的分值。

在图4中,在步骤406,分析分值以确定适当的答案。对于一些属性,提供者可以具有一个以上有效答案。例如,提供者可以具有一个以上有效地址。为了确定哪些答案是有效的,可以分析分值。在一个实施例中,大于阈值的分值可以被选择为正确的。在另一个实施例中,低于阈值的分值可以被拒绝为不正确的。在又一实施例中,可以确定分值的分组,并且可以将该分组中的答案簇选择为正确的。

一旦在步骤406中确定了可能的答案,就在步骤408基于信息源对它们进行过滤。如上所述,并非所有数据源都是公共的。有些是专有的。在步骤408的过滤可以确保在没有适当同意的情况下,从专有源检索的值不会泄露给另一方。

在图5的步骤508和列表510中示出了步骤406和408中描述的答案选择和过滤。在该示例中,可以将四个可能的地址中的三个选择为提供者的有效地址:“321SomeplaceRd.”、“10Somewhere Ct.”和“5Overthere Blvd.”。这三个地址的分值分别为.95、.96和.94。它们彼此接近并且高于可以为.9的阈值。另一方面,其余地址的分值仅为.10,其低于阈值,因此被排除在可能的解决方案之外。

这三个有效地址来自三个不同的数据源。从公共数据源(如上所述的DEA数据源)收集地址“5Overthere Blvd.”。已经从公共源收集的“5Overthere Blvd.”被包括在列表510中,其列出了要呈现给用户的最终答案。其他两个地址-“321Someplace Rd.”和“10Somewhere Ct.”—从专有理赔数据库中收集。在示意图500所示的示例中,用户只能访问包含地址“321Someplace Rd.”的第一理赔数据库,而不能访问包含地址“5OverthereBlvd.”的理赔数据库。因此,“321Someplace Rd.”被包括在列表510中,但不包括“5Overthere Blvd.”。

以这种方式,实施例应用经训练的模型来求解用于个人数据的各个属性的有效值。

如上所述,为了训练模型并且将收集的数据应用于模型来求解正确的值,必须清理和标准化从各种数据源摄取的数据。例如参考图6-7描述该进程。

图6是示出根据实施例的清理摄取的数据的方法600的示意图。

方法600开始于步骤602,当从多个数据源接收到用于属性的多个值时。上文参考图2和3描述了该数据摄取进程。

在步骤604,分析值以确定它们中的任何一个是否表示同一特质。在地址的上下文中,分析各种地址值以确定它们是否旨在表示相同的基础地理位置。

当存在多个值来确定相同的基础特质时,发生步骤606和608。在步骤606,分析这些值以确定哪个最佳地表示基础特质。在地址的上下文中,可以选择最能表示地理位置的地址。另外,可以将任何约定(诸如缩写或不缩写)应用于地址。在实体名称的上下文中,步骤606可以涉及将实体的各种可能描述映射到与州注册一致的标准描述。例如,“DentalService Inc.”(没有逗号)可以被映射到“Dental Service,Inc.”(带逗号)。在理赔的上下文中,步骤606可以涉及将数据映射到诸如ICD-9的公用理赔代码系统。

在步骤608,值被链接以指示它们表示同一特质。在一个实施例中,可以将它们设置为在步骤606中确定的相同值。

图7是示出根据实施例的清理摄取的地址数据的方法700的示意图。

方法700开始于步骤702。在步骤702,对每个地址进行地理编码。地理编码是将邮政地址描述转换为地球表面的位置(例如,数字坐标中的空间表示)的进程。

在步骤704,评估地理编码的坐标以确定它们是否表示相同的地理位置。如果是,则所摄取的地址值很可能旨在表示同一特质。

在步骤706,评估公寓(Suite)号。公寓号通常以各种方式表示。例如,代替“公寓”,可以使用其他名称。此外,公寓号有时会省略数字。经常会省略数字,然后错误地添加数字。使用此,实施例可以在多个可能的公寓号之间进行选择。

例如,医疗保健提供者可能具有带有不同公寓号:“公寓550”和“公寓5500”的各种地址。实施例确定多个不同值中的第一字符串是否是多个不同值中的另一个中的第二字符串的子字符串。例如,实施例确定“550”是“5500”的子串。然后,该实施例确定“5500”更准确地表示医疗保健提供者的地址,因为更经常地省略数字然后错误地添加数字。除了检查子串之外或作为其替代,实施例可以应用模糊匹配,例如,将两个串之间的Levenshtein距离与阈值进行比较。

在步骤708,评估具有相似外观的数字。在实施例中,确定多个不同值中的第一字符串与多个不同值中的另一个中的第二字符串相似,除了具有相似外观的不同数字外。当该确定发生时,选择被确定为最准确地呈现该字符串的字符串。

例如,医疗保健提供者可能具有带有不同公寓号:“公寓6500”和“公寓5500”的各种地址。数字“5”和“6”可能具有相似的外观。除了用“5”替换“6”外,字符串相似。因此,字符串可能被识别为表示相同的地址。为了确定哪个字符串是正确的公寓号,可以采用其他因素,诸如在其他源中呈现的公寓号。

基于步骤706和708中的分析,在步骤710中选择正确的地址。

图8是示出根据实施例的链接摄取的数据的方法的示意图。如所示,方法800描述了用于使用前述系统的实施例来匹配和链接记录的实施例。术语“匹配”是指确定两个或更多个人数据记录对应于同一个人。

在步骤830,处理器合法地访问存储在存储器中的至少一组数据记录。在实施例中,该组数据记录可以包括以上针对图2-3描述的数据源。可以从各种外部源合法地访问和检索所有数据。

在一些实例中,所访问的数据记录可能以不期望的格式或以与所设想的方法和系统不兼容的格式被接收和/或存储。在这样的实施例中,数据记录被清理或标准化以与预定格式一致。

在步骤832,解析每个访问的记录的数据。在实施例中,使用定义一组动态规则的控制逻辑来实施该解析步骤。在实施例中,可以训练控制逻辑以解析数据记录,并且定位描述了与被解析的数据记录相关联的个人的、个人的名字、姓氏、家庭住址、电子邮件地址、电话号码或任何其他人口统计学或人员信息。在另一个实施例中,控制逻辑可以基于正被解析的数据记录类型来规定一组持久的规则。

在步骤834,将解析的数据分配给各个记录内的预定类别。例如,实施例可以包括解析用于查找个人的名字、姓氏、家庭住址、电子邮件地址和电话号码的规则。在这样的实施例中,当处理器查找名字、姓氏等时,可以在数据记录内创建临时文件,其中,将名字、姓氏等分配给各个的类别。在另一个实施例中,可以创建新永久文件来存储分类数据。例如,可以将新记录创建为数据库表或内存中的新行,并且将不同类别分别输入为该行中的列值。在又一个实施例中,处理器可以分配分类数据并将分配和分类的数据存储为原始文件内的元数据。

在步骤836,使用成对函数,将每个记录的分类数据与所有其他分类记录进行比较。例如,处理器将第一记录的分类数据与第二记录的分类数据进行比较。在实施例中,处理器比较单个类别。例如,处理器将与第一记录相关联的地址与第二记录相关联的地址进行比较,以确定它们是否相同。替选地,可以比较其他可能的类别,包括名字、姓氏、电子邮件地址、社会保险号或任何其他标识信息。在另一实施例中,处理器比较一个以上类别的数据。例如,处理器可以将与第一记录相关联的名字、姓氏和地址与第二记录的名字、姓氏和地址进行比较以确定它们是否相同。处理器可以跟踪哪些类别匹配以及哪些类别不匹配。替选地,处理器可以仅计数匹配的类别的数量。可以预期,步骤836可以包括比较三个以上的类别。例如,在实施例中,处理器比较多达七个类别。在另外的实施例中,处理器在8个和20个类别之间进行比较。

在实施例中,步骤836不仅可以使用文字匹配,还可以使用其他类型的匹配,诸如正则表达式匹配或模糊匹配。正则表达式匹配可以确定两个值在他们都满足相同正则表达式时匹配。当两个字符串大致(而不是完全)匹配某个模式时,模糊匹配可能会检测到匹配。

在实施例中,可以使用多组数据记录来实施步骤836。例如,可以使用本文描述的方法和系统,将来自第一组记录的数据记录与来自第二组记录的数据记录进行比较。在实施例中,第一组数据记录可以是包括描述感兴趣的人的数据记录的输入列表或感兴趣的人的列表。第二组数据记录可以是来自第二输入列表或合法地存储在数据库中的个人数据记录。执行多组数据记录的比较以确定第一组数据记录的记录和第二组数据记录的记录是否描述同一个人。

此外,在使用多组数据记录实施的实施例中,第二组数据记录可以保存真实的身份、具有确认的准确性的身份和/或超过预定准确性阈值的身份。真实的身份可以被编码为序列号。

在步骤838,针对每个数据对(data pair),基于所述数据比较来计算相似性分值。更具体地,处理器针对每个数据对基于在步骤836中确定记录的该对中的哪些类别匹配来计算相似性分值。在实施例中,相似性分值被计算为比率。例如,在比较7个类别的实施例中,如果第一记录和第二记录描述数据使得7个类别中的5个在记录之间是相同的,则相似性分值为5/7。在另一个实施例中,相似性分值被计算为百分比。例如,在比较20个类别的实施例中,如果第一记录和第二记录描述数据使得20个类别中的16个在记录之间是相同的,则相似性分值为.8或80%。

在另一个实施例中,可以为每个类别分配权重,并且可以在步骤838中,基于每个类别是否匹配以及与匹配类别相关联的各个权重来确定相似性分值。可以使用训练集确定权重。在一个示例中,可以使用线性编程来确定权重。在其他示例中,可以使用神经网络或其他自适应学习算法来基于一数据记录对中的哪些类别匹配来确定该对数据记录的相似性分值。

在步骤840,确定所计算的相似性分值是否满足或超过预定阈值。例如,在相似性分值阈值为5/7(或近似71.4%)的实施例中,处理器将确定所计算的相似性分值是否满足或超过5/7阈值。同样地,在相似性分值阈值为16/20(或80%)的实施例中,处理器将确定所计算的分值是否满足或超过阈值。

在步骤842,如果至少两个记录的相似性分值满足或超过相似性分值阈值,则将相似的记录(即,满足或超过相似性分值阈值的记录)链接或组合为一组。例如,在实施例中,处理器在第一记录和所有后续记录之间执行成对比较。在第一组中链接和/或组合满足或超过相似性分值阈值的任何记录。然后,处理器在第二记录和所有后续记录之间执行成对比较。假设第二记录未链接至第一记录,则在第二组中链接和/或组合(当与第二记录比较时)满足或超过相似性分值阈值的任何后续记录。当比较多组数据记录时,步骤842也是适用的。针对第一组数据记录中的每个数据记录当他们与第二组数据记录中的数据记录相关时计算相似性分值。如上所述,将满足或超过相似性分值阈值的任何记录链接和/或组合成组。在实施例中,在链接/分组的记录保留在它们各自的记录集中的同时,可以可编程地链接该链接/分组的记录。

进一步地,在步骤842,可能出现第一数据记录和第二数据记录之间的成对比较产生了满足或超过阈值的相似性分值的情况。此外,第二记录和第三记录之间的成对比较也产生了满足或超过阈值的相似性分值,但是,第一记录和第三记录之间的成对比较并不相似且未满足阈值。处理器可以以多种方式处理这种冲突的分组情况。例如,在实施例中,处理器可以在执行初始成对比较时,比较未包括的附加类别。例如,如果处理器在初始比较期间比较了名字、姓氏、地址和电话号码,则在第二成对比较期间,处理器可以包括社会安全号、年龄和/或可能帮助缩小身份的任何其他信息。在对第一记录、第二记录和第三记录的该第二成对比较之后,对每个比较(即,第一记录与第二记录、第一记录与第三记录、第二记录与第三记录)计算更新的相似性分值并且相对于第二预定阈值测量相似性分值。如果更新的相似性分值满足或超过第二预定阈值,则根据前述实施例将它们分组。但是,如果仍然存在相同的情况,即第一记录与第二记录相似,第二记录与第三记录相似,而第一记录与第三记录不相似,则将第二记录与第一记录或者与第三记录分组,取决于哪一成对比较具有较高的更新的相似性分值。如果更新的相似性分值相等,则将开始比较其他列的另一迭代。

在另一实施例中,处理器可以通过创建第二记录的副本来处理冲突的分组情况。在制作副本之后,处理器可以将第一记录和第二记录分组到组A中,并将第二记录的副本与第三记录分组到组B中。

在又一实施例中,处理器可以通过基于第二记录的成对比较创建组来处理冲突的分组情况。例如,基于第一记录与第二记录以及第二记录与第三记录之间的相似性分值,所有三个记录都基于它们与第二记录的关系而被分组在一起。

在步骤844,处理器确定每组相似记录内的最普遍身份。例如,如果相似记录组包含10条记录,并且其中有5条记录描述了名为James的个人,而其余5条记录中包括Jim、Mike或Harry的名字,则处理器将确定James是最普遍的名字。在其他实施例中,处理器可能需要其他步骤来确定每个组内最普遍的身份。例如,可能出现一组相似的记录包含六条记录,两条记录描述了名为Mike的个人,两条记录描述了名为Michael的个人,一条记录描述了具有第一个首字母“M”的个人,最后一条记录描述了名为John的个人的情况。在这样的实施例中,处理器可以基于名为Michael和Mike之间的关系来确定最普遍的身份是Michael。在没有明确的普遍身份的实例中,可以参考其他类别(即姓氏、地址、电子邮件地址、电话号码、社会安全码等)以确定最普遍的身份。在比较多组数据记录的实施例中,可以修改或标记第一或第二组数据记录中的数据记录以指示最普遍的身份和/或链接/分组的记录。更具体地,可以修改记录,使得用户可以在查看单组数据记录时确定最普遍的身份和/或链接的数据记录。

在步骤846,处理器修改相似记录的身份以匹配每组相似记录内的最普遍记录的身份。现在,我们回到上面提供的示例,其中,一组相似记录包含六条记录,两条记录描述了名为Mile的个人,两条记录描述了名为Michael的个人,一条记录描述了一个首字母为“M”的个人,最后一条记录描述了名叫John的个人。在该示例中,现在在步骤846,处理器修改每条记录,因此每条记录的身份描述了名为“Michael”的个人。在修改每个相似组的身份后,记录匹配操作完成。该进程在图9中进一步示出。

图9示出了流程图900,该流程图示出了示例性操作,可用于实现本公开的各个实施例。如所示,该流程图900示出了使用前述系统的实施例的记录匹配操作的实施例。

流程图900示出了已经使用上述解析、分配和分类步骤或者使用公知方法来解析、分类和标准化的数据。如所示,已经将所接收的分类数据分配给行950a-n和列952a-n。行950a-n中的每一行包括从描述个人的数据记录中解析出的信息。列952a-n中的每一个包括已经被解析并分配给预定类别的分类信息。

在步骤936,处理器使用成对函数,将每条记录的分类数据与所有其他分类记录进行比较。如上所述,处理器可以比较单个类别,或者替选地,处理器可以比较一个以上类别。在所示的实施例中,处理器比较五个类别并且实施3/5(或60%)的相似性分值阈值。

像上面一样,当比较多组数据记录时,图3所述的方法也可以适用。例如,也可以使用多组数据记录来执行步骤936。可以将来自第一组记录中的数据记录与来自第二组记录中的数据记录进行比较。更具体地说,第一组数据记录可以包括描述感兴趣的人或感兴趣的人的列表的数据记录,而第二组数据记录可以是合法存储在数据库或存储器中的个人数据记录。

在步骤942,如果至少两条记录的相似性分值满足或超过相似性分值阈值,则将相似的记录(即,满足或超过相似性分值阈值的记录)链接或组合为一组。如所示,基于行950a-n和列952a-n中提供的数据,已经创建了组A和组B。可能的组数与正比较的行数成正比。如所示,组A包含三条记录,而组B包含两条记录。各个组内的每条记录与该组内的其他记录相比,都满足或超过了相似性分值阈值比率3/5(或60%)。

在步骤944,处理器确定每组相似记录内的最普遍身份。例如,在组A中,处理器比较身份“Aaron Person”、“Erin Person”和“A.Person”。按照上述规则,处理器确定“AaronPerson”是A组中最普遍的身份。在B组中,处理器将“Henry Human”和“H.Humane”的身份进行比较。同样遵循上述规则,处理器将“Henry Human”确定为B组中的最普遍身份。

在步骤946,处理器修改记录958的身份以匹配各个相似记录组内的最普遍记录的身份。如所示,已经修改A组的记录以描述“Aaron Person”的身份,而已经修改B组的记录以描述“Henry Human”的身份。

图10是示出根据实施例的用于摄取数据、基于该数据训练模型并且基于经训练的模型确定解决方案的系统1000的示意图。

系统1000包括服务器1050。服务器1050包括数据摄取器1002。数据摄取器1002被配置为从数据源102A...N检索数据。数据可以包括用于描述所述人员的同一属性的多个不同值。特别地,数据摄取器1002重复且连续地监视数据源,以确定与正被监视的任何人有关的数据是否被更新。当已经更新用于所述人员的数据时,数据摄取器1002将更新的数据存储在数据库110中。如上所述,数据库110存储运行日志,该运行日志指定所述人员的数据随时间如何变化。

使用数据库110,服务器1050周期性地或间歇地生成机器学习模型1022以评估个人数据的有效性。为了生成模型1022,服务器1050包括六个模块:查询器1004、数据清理器1006、数据链接器1010、特征化器1012、训练器1015和测试器1020。

API监视器1003接收用于个人数据中的特定属性的值在特定时间被验证为准确或不准确的指示。例如,呼叫者可以手动地验证值的准确性,并在验证之后,使API调用传输到API监视器1003。基于特定时间,查询器1004从数据库110中检索所述人员的数据,包括在特定时间最新的用于多个属性的值。

数据清理器1006确定多个不同值中的任何一个是否表示同一特质。当不同值表示同一特质时,数据清理器1006确定被确定为表示同一特质的值中的哪一个最准确地表示该特质。

数据链接器1010链接被确定为表示同一特质的那些值。数据链接器1010可以包括地理编码器(未示出),该地理编码器对多个不同地址值中的每一个进行地理编码以确定地理位置,并且确定所确定的地理位置中的任何一个是否相同。

使用查询器1004检索、数据清理器1006清理以及数据链接器1010链接的数据,特征化器1012确定多个特征。多个特征中的每个特征都描述了有关所述人员的数据的事实。

使用这些特征,训练器1015可以训练模型1022,使得模型1022可以预测另一人员对特定属性的值是否准确。在实施例中,训练器训练多个模型。每个模型都使用不同类型的机器学习算法。测试器1020使用可用的训练数据来评估多个模型的准确性,并且从基于所评估的准确性而确定的多个模型中选择模型1022。

服务器1050可以使用模型1022来预告数据库110中的记录是否准确。为了生成呈现给客户的答案,服务器1050包括两个模块:评分引擎1025和答案过滤器1030。评分引擎1025应用模型1022来预测多个属性中的另一人员的值是否准确。在实施例中,对于用于另一人员的特定属性的多个值中的各个值,将模型应用于各个值以确定分值。

答案过滤器1030基于各个确定的分值,从由评分引擎1025确定的多个值中选择至少一个值。在实施例中,答案过滤器1030过滤答案,使得在没有适当同意的情况下不共享专有信息。

图10中所示的各个模块可能会相互冲突,并且无效地竞争计算资源,诸如处理器能力和内存容量。为了解决这些问题,采用调度器来对涉及的各种任务进行排队,如图11所示。

图11是示出根据实施例的用于调度摄取、训练和求解任务的系统1100的示意图。除了图10的模块外,系统1100包括调度器1102和队列1106,以及各种进程,包括数据摄取进程1108、训练器进程1110和求解器进程1112。各个进程中的每个进程都在单独的执行线程上运行。

如在系统1000中,系统1100包括API监视器1003。如上所述,API监视器1003可以接收用于个人数据中的特定属性的值在特定时间被验证为准确或不准确的指示。API监视器1003也可以接收其他类型的API请求。取决于API请求的内容,API监视器可以在收到API请求后,将完成在该API请求上指定的另一作业的请求置于队列上,该API请求包括完成数据摄取任务、训练任务、求解任务或调度任务中的至少一个的指令。

调度器1102将完成作业的请求置于队列1106上。该请求包括完成数据摄取任务、训练任务和求解任务中的至少一项的指令。在实施例中,调度器1102以周期性间隔将完成作业的请求置于队列上。调度器1102还监视队列1106。当队列1106包括(可能由API监视器1104置于的)完成调度任务的请求时,调度器1102调度如在API请求中指定的任务。

队列1106将各种任务1107排队。队列1106可以是用于进程间通信(IPC)或同一进程内的线程间通信的任何类型的消息队列。他们使用队列进行消息传递-控制或内容传递。群组通信系统提供类似种类的功能性。可以例如使用Java消息服务(JMS)或亚马逊简单队列服务(SQS)来实现队列1106。

数据摄取进程1108包括数据摄取器1002。数据摄取进程1108监视队列1106中的数据摄取任务。当队列1106接下来包括数据摄取任务时,数据摄取进程1108执行数据摄取器1002来从数据源检索与人有关的数据并且将检索到的数据存储在数据库中。

训练器进程1110包括数据清理器1006、数据匹配器1010、训练器1015、测试器1020、查询器1004和特征化器1012。训练器进程1110监视队列1106中的训练任务。当队列1106接下来包括训练任务时、训练器进程1110执行数据匹配器1010、训练器1015、测试器1020、查询器1004和特征化器1012以训练模型。

求解器进程1112包括评分引擎1025和答案过滤器1030。求解器进程1112监视队列1106中的求解任务。当队列1106接下来包括求解任务时,求解器进程1112执行评分引擎1025,并且答案过滤器1030应用该模型来预测另一人员在多个属性中的值是否准确,并且确定呈现给用户的最终解决方案。

在实施例(未示出)中,系统1100可以包括多个队列,每个队列专用于数据摄取任务、训练任务和求解任务之一。在那个实施例中,数据摄取进程1108监视专用于该数据摄取任务的队列。训练器进程1110监视专用于训练任务的队列。求解器进程1030监视专用于求解器任务的队列。

可以用计算设备上的软件、固件或硬件实现上述服务器和模块中的每一个。计算设备可以包括但不限于个人计算机、诸如移动电话的移动设备、工作站、嵌入式系统、游戏控制台、电视、机顶盒或任何其他计算设备。此外,计算设备可以包括但不限于具有处理器和存储器(包括非暂时性存储器)的设备,用于执行和存储指令。存储器可以以非暂时性的方式有形地体现数据和程序指令。软件可以包括一个或多个应用和操作系统。硬件可以包括但不限于处理器、存储器和图形用户界面显示。该计算设备还可以具有多个处理器和多个共享或分离的存储器组件。例如,计算设备可以是集群或分布式计算环境或服务器场的一部分或全部。

结论

有时将诸如“(a)”、“(b)、“(i)”、“(ii)”等的标识符用于不同的元素或步骤。这些标识符是为了清楚起见而使用的,不必指定元素或步骤的顺序。

上文已经借助于示出特定功能及其关系的实现的功能构造块描述了本发明。为了便于描述,在本文中已经任意定义了这些功能构造块的边界。只要适当执行指定的功能及其关系,就可以定义其他边界。

特定实施例的前述描述将如此充分地揭示本发明的一般性质,以至于其他人可以通过应用本领域技术人员的知识而为各种应用容易地修改和/或改编这些特定实施例,而无需过度实验,也不会脱离本发明的一般概念。因此,基于本文提出的教导和指导,这样的改编和修改旨在在所公开的实施例的等同的含义和范围内。应当理解到,本文的措词或术语是出于描述而非限制的目的,使得本说明书的术语或措辞将由技术人员根据教导和指导来解释。

本发明的广度和范围不应当由任何上述示例性实施例限制,而应当仅根据所附权利要求及其等同物来限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号