元数据分类的制作方法
未命名
09-18
阅读:102
评论:0
元数据分类
1.相关申请
2.本技术根据35u.s.c.
§
119(e)要求于2021年1月29日提交的第17/163,156号美国专利申请的权益,该美国专利申请的全部内容据此通过引用并入本文。
技术领域
3.本公开涉及数据处理,并且特别涉及对列式数据(columnar data)的元数据进行分类。
4.背景
5.客户希望了解他们的数据,并希望具有自动对列进行分类的能力。分类不仅让客户了解他们的数据,而且使他们能够使用各种数据治理和数据隐私工具。随着更多的隐私法规在世界各地成为法律,这将变得更加重要。作为这些法规的一部分,客户必须了解他们拥有什么样的个人数据、这些数据在哪里、他们拥有这些数据多长时间了,以及如何在仍然获得洞察力的同时保护这些数据。分类是重要的第一步。此外,分类可以用于治理、访问控制和策略管理、个人身份信息和匿名化。
6.附图简述
7.通过参考以下结合附图进行的描述,可以最好地理解所描述的实施例及其优点。这些附图决不限制本领域技术人员在不脱离所描述的实施例的精神和范围的情况下可以对所描述的实施例做出的形式和细节上的任何改变。
8.图1是描述其中可实现本文公开的方法的示例计算环境的框图。
9.图2是分类和匿名化操作的一个实施例的示意性框图。
10.图3是对输入表进行分类操作以产生输出表的一个实施例的示意性框图。
11.图4是执行数据集的分类和匿名化操作的方法的一个实施例的流程图。
12.图5是执行数据集的分类操作的方法的一个实施例的流程图。
13.图6是执行数据集的匿名化操作的方法的一个实施例的流程图。
14.图7是匿名化输入表的一个实施例的示意性框图。
15.图8是为输入表创建匿名化视图的一个实施例的示意性框图。
16.图9是教育数据层次结构(educational data hierarchy)的一个实施例的示意性框图。
17.图10是根据一些实施例的可以执行本文所述的一个或更多个操作的示例计算设备的框图。
18.详细描述
19.在所描述的系统和方法中,数据存储系统利用基于sql(结构化查询语言)的关系数据库。然而,这些系统和方法适用于使用任何数据存储架构和使用任何语言以在数据库中存储和检索数据的任何类型的数据库。本文描述的系统和方法还提供了多租户(multi-tenant)系统,该多租户系统支持隔离不同客户/客户端(client)之间以及同一客户/客户端内的不同用户之间的计算资源和数据。
20.在一个实施例中,云计算平台可以对作为数据集一部分的列式数据进行自动分类。分类可以允许客户了解他们的数据,而且使他们能够使用各种数据治理和数据隐私工具,随着更多的隐私法规在世界各地成为法律,这些工具可以变得更加重要。作为这些法规的一部分,客户必须了解他们拥有什么样的个人数据、这些数据在哪里、他们拥有这些数据多长时间了,以及如何在仍然获得洞察力的同时保护这些数据。分类是重要的第一步。此外,分类可以用于治理、访问控制和策略管理、个人身份信息和匿名化。
21.在该实施例中,云计算平台从数据集检索数据,其中数据是列式数据,或者可以提取或变换为列式数据。云计算平台还确定针对与数据相关联的每个列的一个或更多个语义类别。可以通过以下方式来生成语义类别:使用各种方案来检查数据以确定一个或更多个语义类别。例如,在一个实施例中,云计算平台可以应用白名单和/或黑名单布隆过滤器(bloom filter),使用查找表,和/或应用范围或范围和模式。不同的布隆过滤器或其他方案可以应用于同一列,从而为单个列生成多个不同的候选语义类别。
22.此外,云计算平台可以确定每个候选语义类别的概率。在一个实施例中,概率表示列数据符合相关联的语义类别的可能性。云计算平台还使用候选语义类别的概率和阈值来确定列语义类别。在为数据集中的每一列确定列语义类别的情况下,云计算平台将隐私类别分配给数据集的列。此外,云计算平台可以使用数据集的隐私分类来匿名化数据。
23.图1是在其中可以实现在本文中公开的系统和方法的示例计算环境100的框图。特别地,可以实现云计算平台110,诸如amazon web services
tm
(aws)、microsoft azure
tm
、google cloud
tm
或google cloud platform
tm
等等。如本领域中已知的,云计算平台110提供计算资源和存储资源,这些资源可以被获取(购买)或租赁并被配置为执行应用和存储数据。
24.云计算平台110可以托管云计算服务112,该云计算服务有助于云计算平台110上的数据存储(例如,数据管理和访问)和分析功能(例如,sql查询、分析)以及其他计算能力(例如,云计算平台110的用户之间的安全数据共享)。云计算平台110可以包括三层架构:数据储存器140,查询处理130和云服务120。
25.数据储存器140可以促进云计算平台110上的数据在一个或更多个云数据库141中的存储。数据储存器140可以使用诸如amazon s3的存储服务来在云计算平台110上存储数据和查询结果。在特定实施例中,为了将数据加载到云计算平台110中,数据表可以被水平分割成大的、不可变的文件,这些文件可以类似于传统数据库系统中的块或页。在每个文件中,每个属性或列的值被分组在一起,并使用有时被称为混合列的方案进行压缩。每个表都有一个表头,除其他元数据外,还包含文件中每一列的偏移量。
26.除了存储表数据之外,数据储存器140便于存储由查询操作(例如,连接)生成的临时数据,以及包含在大型查询结果中的数据。这可能允许系统在没有内存不足或磁盘不足错误的情况下计算大型查询。这样存储查询结果可以简化查询处理,因为它消除了传统数据库系统中对服务器端游标的需求。
27.查询处理130可以处理虚拟机的弹性集群(在本文称为虚拟仓库或数据仓库)内的查询执行。因此,查询处理130可以包括一个或更多个虚拟仓库131,其在本文也可以被称为数据仓库。虚拟仓库131可以是在云计算平台110上运行的一个或更多个虚拟机。虚拟仓库131可以是计算资源,可以根据需要在任何时候创建、销毁或调整大小。这个功能可以创建
一个“弹性”的虚拟仓库,它可以根据用户的需要进行扩展、收缩或关闭。扩展虚拟仓库包括生成虚拟仓库131的一个或更多个计算节点132。收缩虚拟仓库包括从虚拟仓库131中移除一个或更多个计算节点132。更多的计算节点132可以导致更快的计算时间。例如,在有四个节点的系统上,数据加载需要十五个小时,而在有三十二个节点的系统上,可能只需要两个小时。
28.云服务120可以是跨云计算服务110协调活动的服务集合。这些服务将云计算服务110的所有不同组件联系在一起,以便处理从登录到查询分派的用户请求。云服务120可以在由云计算服务110从云计算平台110提供的计算实例上操作。云服务120可以包括管理虚拟仓库、查询、事务、数据交换以及与这些服务相关联的元数据(例如数据库模式、访问控制信息、加密密钥和使用统计)的服务集合。云服务120可以包括但不限于认证引擎121、基础设施管理器122、优化器123、交换管理器124、安全引擎125和元数据储存器126。
29.在一个实施例中,云计算服务112可以基于数据集中的数据的内容对数据集进行分类。在该实施例中,云计算服务112从数据集中检索数据,其中数据被组织在多个列中。云计算服务112还可以为每一列生成一个或更多个候选语义类别,其中一个或更多个候选语义类别中的每一个具有相应的概率。云计算服务112还可以从一个或更多个列候选语义类别和相应的概率创建每一列的特征向量。附加地,云计算服务112还可以至少使用特征向量和训练的机器学习模型,从一个或更多个候选语义类别中选择每一列的列语义类别。
30.图2是对数据集执行分类和匿名化操作的系统200的一个实施例的示意性框图。在图2中,系统200包括云计算平台204,该云计算平台检索数据集202并对该数据集202进行分类和/或匿名化以给出分类的和/或匿名化的数据集206。在一个实施例中,数据集可以是存储在列中的任何类型的数据集,或者可以被转换成列式数据(例如,javascript对象表示法、键值数据和/或其他类型的存储数据)。在另一实施例中,云计算平台204是提供各种数据处理和/或存储服务的计算平台,例如上面图1中描述的云计算平台110。在另一实施例中,客户端206是个人计算机、膝上型计算机、服务器、平板电脑、智能电话和/或可处理数据的另一类型的设备。在该实施例中,客户端206可以请求数据集202的分类和/或匿名化。此外,客户端206可以呈现中间结果并允许用户更改结果。例如,在一个实施例中,客户端可以呈现关于数据集的每个列的语义类别和/或语义类别类型。用户可以修改关于一个或更多个列的语义类别和/或语义类别类型,并且云计算平台204可以对数据集进行重新分类和/或匿名化。在一个实施例中,分类和/或匿名化的数据208是使用由云计算平台204确定的列来组织的列式数据。
31.图3是对输入表302进行分类操作300以产生输出表306的一个实施例的示意性框图。在图3中,输入表302包括名称308a、年龄308b和“c”308c的列302a-c。在一个实施例中,列“c”308a包括可以扩展到附加列中的属性值联系人数据(“联系人”、“家庭”和“电子邮件”)。在另一实施例中,分类器304基于列308a-c中的数据内容对输入数据进行分类。在该实施例中,对于每一列,分类器304分析列数据并确定列数据的一个或更多个候选语义类别。语义类别是描述数据的列的标识符(identifier)。分类器304可以为单个列生成多个语义类别,因为列数据可以符合不同的语义类别。例如,在一个实施例中,具有描述名称的数据的列还可以符合街道名称的描述。
32.在一个实施例中,分类器304将来自输入表302的列308a-c中的数据分类到具有列
310a-e的输出表306中。在该实施例中,分类器将输入数据中的三个数据列转换为四个数据列:“名称”、“年龄”、“联系人:电话”和“联系人:电子邮件”。分类输出将数据组织成不同的列结构,以便组织分类的数据。在该实施例中,列310a是输出表306的列_名称(column_name),其中列_名称是输入表302中的原始列名称。列310b是分类数据的路径(例如,对于诸如列308a-b的单独列数据为空白,并且对于嵌入在列308c中的数据为路径名)。列310c给出分类数据的初始语义类别。例如,在一个实施例中,具有列名称“名称(name)”的数据具有语义类别“名称”,具有列名称“年龄(age)”的数据具有语义类别“年龄”,具有列名称“c”和路径“联系人:电话(contact:phone)”的数据具有语义类别“电话号码(phone_number)”,并且具有列名称“c”和路径“联系人:电子邮件(contact:email)”的数据具有语义类别“电子邮件”。在一个实施例中,列数据的语义类别等同于语义类别。
33.通过分配语义类别,可以分配隐私类别。在一个实施例中,分类器304基于语义类别指定来确定数据的隐私类别。在该实施例中,至少有四种不同的隐私类别:标识符、准标识符、敏感和其他。在另一实施例中,可以存在其他类型的隐私类别。在一个实施例中,隐私类别指示在匿名化操作期间数据如何被处理。例如,在一个实施例中,在匿名化操作期间抑制具有标识符或敏感的隐私类别的数据。标识符数据是可以识别人或物的数据,如姓名、电子邮件或电话号码。因此,如果标识符数据在匿名化操作中幸存,则匿名性将丢失。敏感数据,如医疗结果,是一种出于道德或法律原因而不被披露的数据类型。准标识符是属性,该属性可能不能通过其自己识别一个人或事物,但可以唯一地通过组合识别个体。例如,年龄、性别和邮编可以单独地或与其他公开可用的数据结合来识别个体。不转换具有其他隐私类别的数据。
34.如上所述,分类数据可以具有多于一个可能的语义类别。在一个实施例中,分类器304将“名称”分类为具有“名称”的语义类别,并且还将其分类为“us_city(美国_城市)”的语义类别。分类器选择分配哪个语义类别是基于由分类器计算的概率。在一个实施例中,概率是计算的语义类别对于该列中的数据是正确的可能性。在该实施例中,为数据列计算的每个语义类别将具有计算的概率。分类器基于概率和阈值选择哪个语义类别。在一个实施例中,分类器选择具有高于阈值的最高概率的语义类别。分类器可能没有为特定列选择任何语义类别。在一个实施例中,阈值由用户分配或者是默认值。在另一实施例中,分类器使用机器学习机制来计算阈值。
35.在图3中,分类器304为“名称”列计算两个不同的语义类别:概率为0.9的“名称”和概率为0.1的“us_city”。在一个实施例中,分类器将基于相对优先级为“名称”列分配“名称”的语义类别。在另一实施例中,用户可以检查分类并根据需要手动改变分类。对数据的分类在下面的图5中进一步描述。
36.图4是用于执行对数据集的分类和匿名化操作的方法400的一个实施例的流程图。通常,方法400可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。例如,处理逻辑可以实现为查询处理130。方法400可以在步骤402开始,在步骤402中处理逻辑检索数据集。在一个实施例中,数据集是列式数据,或者可以被提取或转换成列式数据。在步骤404,处理逻辑可以对数据集进行分类。在一个实施例中,处理逻辑通过确定数据集中数据的语义特征来对数据集进行分类。在一个实施例中,处理逻辑
通过对数据集中的数据进行分类并为数据集中的每一列确定一个或更多个候选语义类别(或等效语义类别)来确定语义特征。在另一实施例中,处理逻辑通过应用布隆过滤器、白名单和/或黑名单并进一步确定每个语义类别的概率来确定语义类别。对数据集的分类在下面的图5中进一步描述。
37.在步骤406,处理逻辑确定数据集的匿名化视图。在一个实施例中,处理逻辑通过使用语义类别和相关联的隐私类别来匿名化数据,从而确定匿名化视图。在该实施例中,处理逻辑使用隐私类别来确定是抑制个体数据、匿名化个体数据还是忽略。匿名化数据集在下面的图6中进一步描述。处理逻辑在步骤408生成视图。
38.图5是用于执行对数据集的分类操作的方法500的一个实施例的流程图。通常,方法500可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。例如,处理逻辑可以实现为查询处理130。方法500可以在步骤502开始,在步骤502中处理逻辑检索数据集。在一个实施例中,数据集是列式数据或可以提取成列数据的数据。例如,在一个实施例中,数据可以是列和嵌入列的混合,如上面的图3中的输入表302所示。
39.处理逻辑执行处理循环(步骤504-516)以确定列语义类别。在步骤506,处理逻辑检查列名称(如果可用的话)。在一个实施例中,处理逻辑寻找列名称中的片段,以确定该列名称是否是与可能的语义类别中的一个的匹配。在该实施例中,处理逻辑使用匹配来提高该语义类别是匹配的概率或降低该语义类别是匹配的阈值。例如,在一个实施例中,“local zip code(当地邮政编码)”的列名称匹配语义类别“邮政编码(zip code)”。在该示例中,处理逻辑可以将概率提高特定的百分比(例如,10%或另一个百分比)或将匹配的阈值降低特定的百分比(例如,10%或另一个百分比)。可替代地,“postal c”的列名称可能不是与语义类别中的一个的匹配。在本示例中,处理逻辑不会根据该列名称调整结果概率或阈值。在步骤508,处理循环检查列的单元格(cell)以确定候选语义类别和概率。在一个实施例中,处理逻辑针对可能的语义类别应用各种不同的检查,以确定候选语义类别和概率。如果有十个可能的语义类别,则处理逻辑针对关于列数据的十个可能的语义类别执行每一个可能的检查。虽然在一个实施例中,对语义类别有一个检查,但在替代实施例中,对语义类别可以有不止一个检查(例如,基于语言或位置对名称或地址的不同检查)。这将为该列的十个不同的可能语义类别产生十个不同的概率。在该实施例中,处理逻辑可以将以下项中的一项或更多项应用于列中的数据:白名单/黑名单布隆过滤器、验证器、查找表、范围、范围/模式、自定义库函数和/或另一种类型的数据检查器。
40.在一个实施例中,处理逻辑将布隆过滤器应用于列的单元格,以确定语义类别的匹配概率。在该实施例中,布隆过滤器特定于特定类型的语义类别。例如,在一个实施例中,可以有用于名字、姓氏、邮政编码、街道地址、城市、县或另一种类型的数据的布隆过滤器。布隆过滤器可以被填充从各种数据源抓取(scrap)的示例内容。例如,在一个实施例中,从互联网上抓取160k个名字或100k个姓氏,以分别为名字或姓氏创建布隆过滤器。处理逻辑可以将一些或所有布隆过滤器应用于列数据,以确定列数据可能在该语义类别中的概率。例如,在一个实施例中,如果有用于名字、姓氏和城市的布隆过滤器,则处理逻辑可以将这些布隆过滤器中的每一个应用于列数据,以确定列数据是名字、姓氏和/或城市数据的概
率。在一个实施例中,处理逻辑通过确定列中匹配语义类别的单元格的数量除以具有数据的单元格的总数量来确定语义类别的概率。在该实施例中,列可以是稀疏的,其中不是列中的每个单元格都具有数据。因此,处理逻辑将使用列中具有数据的单元格的总数量。例如,在一个实施例中,如果数据的列具有100个单元格,50个单元格具有数据,并且45个单元格匹配“名称”的语义类别,则该语义类别的匹配概率将是0.9。
41.在另一实施例中,可以存在用于数据的白名单和/或黑名单的布隆过滤器。例如,在一个实施例中,白名单布隆过滤器可以填充有该语义类别的有一定可能性的内容(例如,地址布隆过滤器可以具有条目为“washington(华盛顿)”和“街道”的白名单),并且黑名单布隆过滤器可以填充有与该语义类别不相关联的内容(例如,名称布隆过滤器的黑名单可以具有“街道”条目)。如果有白名单和黑名单布隆过滤器,那么在匹配存在于白名单布隆过滤器中而不是黑名单布隆过滤器中,或者可替代地,匹配存在于白名单布隆过滤器和黑名单布隆过滤器两者中的情况下,处理逻辑可以确定布隆过滤器的匹配。在一个实施例中,可以有用于不同语义类别的黑名单和/或白名单布隆过滤器。在另一实施例中,用户可以从整个列或从未被识别的值创建他们自己的布隆过滤器。
42.可替代地,处理逻辑可以采用不同的检查来确定其他类型的语义类别。在一个实施例中,存在用于可以由算法规则检查的语义类别的自定义验证器,该自定义验证器可以是一个或更多个代码规则。例如,在一个实施例中,互联网协议(ip)地址的验证器可以是检查32位或128位ip地址的标准格式规则的验证器。类似地,可以有用于遵循严格格式化规则的其他数据类型(例如,(纬度、经度)、统一资源定位符(url)、信用卡号、电子邮件地址、美国邮政编码和/或具有严格格式化规则的其他数据类型)的验证器。在另一个实施例中,处理逻辑可以使用诸如查找表、范围、范围/模式和其他类型的其他类型的检查来确定语义类别。在一个实施例中,查找表可以用于具有相对小的扩展(例如,美国各州)的数据。此外,可以应用范围或范围/模式来确定其他数据类型(例如,出生、年龄、性别和/或其他类型的数据)的语义类别。在一个实施例中,处理逻辑如上所述的通过确定列中与语义类别匹配的单元格的数量除以列中具有数据值的单元格的总数量来确定语义类别的概率。
43.在步骤510,处理逻辑生成列的候选语义类别。在一个实施例中,处理逻辑收集从上述步骤508计算的候选语义类别。在步骤512处理逻辑生成阈值。在一个实施例中,可以手动分配列的阈值。在另一个实施例中,可以使用机器学习模型(例如,随机森林机器学习模型)来推断列的阈值。机器学习模型在下文进一步描述。在该实施例中,处理逻辑使用经训练的机器学习模型来确定列语义类别,如下文所述。
44.在步骤514,处理逻辑使用阈值和一个或更多个候选语义类别的概率从一个或更多个候选语义类别中选择列语义类别。在一个实施例中,处理逻辑选择具有高于阈值的最高概率的语义类别。处理逻辑可能不为特定列选择任何语义类别。在另一实施例中,处理逻辑使用机器学习模型来确定列语义类别。在该实施例中,处理逻辑根据来自上述语义类别检查的概率创建特征向量。处理逻辑将该特征向量输入到机器学习模型中,其中机器学习模型输出作为列语义类别的标签。在一个实施例中,经训练的机器学习模型是随机森林机器学习模型,其中用于选择列语义类别的阈值被编码在经训练的机器学习模型中。
45.在一个实施例中,使用包括具有分配的语义类别的各种数据的列式训练集的训练集来训练经训练的机器学习模型。在该实施例中,使用具有训练集的机器学习算法(例如,
随机森林模型)来迭代地训练机器学习模型。每次迭代,调整机器学习模型中的权重,使得机器学习模型针对训练集的使用越来越接近每个训练集的正确语义类别标签。当机器学习模型确定输入训练集的正确语义类别(在阈值内)时,机器学习模型被训练。
46.在步骤516处理循环结束。在步骤518,处理循环允许用户编辑。在一个实施例中,处理循环将列语义类别传输到客户端,其中客户端呈现数据集的语义类别(例如,在浏览器或其他类型的应用中)。在该实施例中,用户可以检查数据集中不同列的语义类别。用户可以改变分配,其中客户端将语义类别改变发送到处理逻辑。在步骤520,处理逻辑接收语义类别改变并完成列分配。
47.如上所述,语义类别分配的一个用途是使用这些分配来匿名化数据集中的数据。在一个实施例中,云计算平台可以通过创建数据的匿名化视图来匿名化数据集中的数据。在该实施例中,通过创建匿名化视图,底层数据不会被转换,因此数据被保留,并且可以用于不同的匿名化或用于其他目的。匿名化视图允许用户在不泄露可识别数据的情况下使用数据。图6是用于执行对数据集的匿名化操作的方法600的一个实施例的流程图。通常,方法600可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。例如,处理逻辑可以实现为查询处理130。方法600可以在步骤602开始,在步骤602,处理逻辑检索数据集和数据集的分类。在一个实施例中,分类包括数据集中每个数据列的语义类别和隐私类别分配。
48.在步骤604,处理逻辑检索用准标识符的隐私类别识别的语义类别的数据层次结构。在一个实施例中,数据层次结构是将较特定的数据与较不特定的数据相关联的层次结构。下面在图9中示出了数据层次结构的示例。处理循环使用数据层次结构和分类对数据集中的数据进行匿名化。在一个实施例中,处理循环抑制具有标识符的隐私类别的每一列的数据。在该实施例中,作为标识符的每个数据可以用于唯一地识别个体。具有标识符的隐私类别的语义类别可以是名称(名字、姓氏、全名和/或名称的一些变体)、信用卡、支付卡、ip地址、电话号码、社会安全号码(或一些其他政府识别号码)、电子邮件地址、护照号码、车辆识别号码、国际移动设备身份和/或另一种类型的标识符。
49.此外,处理逻辑抑制具有敏感的隐私类别的每一列的数据。在一个实施例中,敏感的语义类别是关于个体通常不会以一般方式披露的数据。这可以用于医学或财务敏感数据,例如血压、身高、体重、工资和/或其他敏感数据。在一个实施例中,抑制数据意味着在数据集的匿名化视图中不揭露要抑制的数据。
50.在另一实施例中,处理逻辑匿名化具有准标识符的隐私类别的数据。匿名化是指“一种过程,通过该过程个人数据被以这样的方式不可逆转地更改,在该方式中数据主体可能不再直接或间接地被数据控制者单独地或与任何其他方合作地识别”。基于风险的匿名(或去识别)是基于在最大化数据效用的同时降低重识别(re-identification)的风险。重识别是匿名数据通过其与其真正所有者匹配的过程。例如,研究人员能够将一份容易购买的选民登记名单与“匿名”医院数据联系起来。医院数据只去除了患者的姓名,但他们的出生日期、性别和邮政编码仍在数据中。研究人员表明,这三个属性足以重新识别87%的美国人口。
51.一种匿名化数据的方法叫做k-匿名。k-匿名修改直接标识符和间接或准标识符,
使得每个单独的记录具有至少k-1个与匹配的准标识符共同的其他记录。具有匹配的准标识符的记录组称为等效类。数据变换完全编辑直接标识符,同时泛化或抑制准标识符以满足k约束,但是最小化信息损失。这是一个np难问题,主要原因是搜索空间以准标识符的数量呈指数增长,且目标既不是凸的(convex)也不是连续的。在一个实施例中,处理逻辑通过应用k-匿名算法来将匿名化视图中的数据进行匿名化,使得准可识别数据被泛化以满足k约束。
52.在一个实施例中,处理逻辑可以通过使用数据层次结构、应用规则、将数据映射到范围或模式和/或其他类型的变换来泛化准标识符数据。在该实施例中,应用规则可以用于格式化数据,例如从邮政编码或ip地址中删除最右边的数字。此外,对于将特定年龄映射到年龄范围的年龄数据,可以完成将数据映射到范围。在步骤608,处理逻辑使用上面确定的匿名化数据生成数据集的匿名化视图。
53.图7是对输入表进行匿名化操作700的一个实施例的示意性框图。在图7中,输入表702包括关于名称708a、性别708b、年龄708c、邮政编码708d和停留708e的列。在一个实施例中,分类器将关于名称的列708a识别为标识符,将列年龄708c和邮编708d识别为准可识别,将列性别708b和停留708e识别为其他(例如,非标识符、准标识符或敏感)。匿名化操作执行两个不同的操作来匿名化数据:泛化和抑制(704)。泛化使用数据层次结构或另一种类型的操作,使用k-匿名操作(或其他匿名化方案)来泛化数据。抑制防止数据被查看。在图7中,对名称列施加抑制,导致在输出视图706的名称列710a中数据不可见。列710b-d(年龄和邮政编码)被泛化。例如,在一个实施例中,年龄数据从特定年龄转换到列710c中的年龄范围,并且通过去除邮政编码的最后三个数字来泛化邮政编码数据。因为性别列和停留列被归类为其他,所以通常不变换此数据。
54.在一个实施例中,如果一行包括不能泛化成一组的数据,则抑制该行。例如,在一个实施例中,名称为travis ortega的行的年龄为70岁,在55岁-56岁的年龄范围之外,并且只有一个人是在70岁或在70岁左右。因为在这个年龄组中只有一个人,所以在输出表706中抑制该行(除了停留列710e中的数据)。
55.图8是为输入表创建800匿名化视图808的一个实施例的示意性框图。在图8中,基表802和数据层次结构804被馈送到等效类(ec)大小806中。在一个实施例中,当k匿名算法被应用于数据集时,k是准标识符数据的最小匿名类大小。如果数据被匿名化为小于k类大小,则数据被抑制(如上面的图7所示)。这将生成匿名化视图806。
56.图9是教育数据层次结构900的一个实施例的示意性框图。在一个实施例中,数据层次结构是将较特定的数据与较不特定的数据相关联的层次结构。在图9中,数据层次结构900是将特定教育水平与较一般的教育水平相关联的教育数据层次结构。数据层次结构900包括层次结构中的三个级别,从具有空(null)值的根节点902开始。下一层包括表示教育组的广泛级别的节点904a-c,例如高等教育904a、中等教育904b和初等教育904c。节点904a-c中的每一个是根节点902的子节点。此外,节点904a-c中的每一个包括表示更具体类型的教育的一个或更多个子节点。例如,在一个实施例中,高等教育节点904a具有关于研究生906a、本科生906b和职业教育906c的子节点。在该示例中,研究生906a、本科生906b和职业教育906c分别表示更特定类型的高等教育。此外,中等教育节点904b具有子节点高中906d,其表示更特定类型的中等教育。此外,初等教育节点904c具有关于小学906e的子节点,小学
806e表示更特定类型的初等教育。
57.在一个实施例中,数据层次结构900可用于匿名与教育水平相关的数据。例如,在一个实施例中,可以通过将特定的专科级别的教育级别替换为“高等教育”来匿名化包括专科级别教育的列。
58.图10是根据一些实施例的可以执行本文描述的一个或更多个操作的示例计算设备1000的框图。计算设备1000可以连接到lan、内联网、外联网和/或互联网中的其他计算设备。该计算设备可以在客户端-服务器网络环境中以服务器机器的能力操作或在对等网络环境中以客户端的能力操作。该计算设备可以由个人计算机(pc)、机顶盒(stb)、服务器、网络路由器、交换机或网桥或能够执行指定该机器要采取的动作的指令集(顺序或以其它方式)的任何机器提供。此外,尽管仅示出了单个计算设备,但是术语“计算设备”也应被认为包括单独地或共同地执行一组(或多组)指令以执行本文所讨论的方法的计算设备的任何集合。
59.示例计算设备1000可以包括处理设备(例如,通用处理器、pld等)1002、主存储器1004(例如,同步动态随机存取存储器(dram)、只读存储器(rom))、静态存储器1006(例如,闪存和数据存储设备1010),它们可以经由总线1030彼此通信。
60.处理设备1002可以由一个或更多个通用处理设备提供,诸如微处理器、中央处理单元等。在说明性示例中,处理设备1002可以包括复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实现其它指令集的处理器或实现指令集的组合的处理器。处理设备1002还可以包括一个或更多个专用处理设备,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。根据本公开的一个或更多个方面,处理设备1002可以被配置为执行本文描述的操作,以执行本文讨论的操作和步骤。在一个实施例中,处理设备1002表示图1的云计算平台110。在另一实施例中,处理设备1002表示客户端设备(例如,客户端设备101-104)的处理设备。
61.计算设备1000还可以包括可以与网络1020通信的网络接口设备1008。计算设备1000还可以包括视频显示单元1010(例如,液晶显示器(lcd)或阴极射线管(crt))、字母数字输入设备1012(例如键盘)、光标控制设备1014(例如鼠标)和声信号生成设备1016(例如扬声器)。在一个实施例中,视频显示单元1010、字母数字输入设备1012和光标控制设备1014可以组合成单个部件或设备(例如,lcd触摸屏)。
62.数据存储设备10010可以包括计算机可读存储介质1028,根据本公开的一个或更多个方面,可以在该计算机可读存储介质1028上存储一组或更多组指令,例如,用于执行本文所述的操作的指令。在计算设备1000执行分类指令1026期间,分类指令1026还可以完全或至少部分驻留在主存储器1004内和/或在处理设备1002内,主存储器1004和处理设备1002还构成计算机可读介质。指令可以进一步经由网络接口设备1008通过网络1020传输或接收。
63.虽然在说明性示例中将计算机可读存储介质1028示出为单个介质,但是术语“计算机可读存储介质”应被理解为包括存储一组或更多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的缓存和服务器)。术语“计算机可读存储介质”也应被理解为包括能够存储、编码或携带一组指令以由机器执行并且使机器执行本文描述的方法的任何介质。因此,术语“计算机可读存储介质”应被认为包括但不限于固态存储器、光学介
质和磁性介质。
64.除非另有明确说明,否则诸如“检索”、“生成”、“选择”、“确定”、“匿名化”、“计算”、“应用”、“调整”等的术语是指由计算设备执行或实现的动作和过程,该动作和过程将表示为计算设备的寄存器和存储器内的物理(电子)量的数据操纵和变换为类似表示为计算设备存储器或寄存器或其它此类信息存储、传输或显示设备内的物理量的其它数据。此外,如本文中所使用的,术语“第一”、“第二”、“第三”、“第四”等是指用于区分不同元件的标签,并且可能不一定具有根据它们的数字名称的序数含义。
65.本文描述的示例还涉及用于执行本文描述的操作的装置。该装置可以被特殊地构造用于所需目的,或者它可以包括由存储在计算设备中的计算机程序选择性地编程的通用计算设备。此类计算机程序可以被存储在计算机可读的非暂时性存储介质中。
66.本文描述的方法和说明性示例与任何特定计算机或其他装置不是固有地相关。可以根据本文描述的教导来使用各种通用系统,或者可以证明构造更专用的装置以执行所需的方法步骤是方便的。各种这些系统的所需结构将如上面的描述中所阐述的那样出现。
67.以上描述旨在是说明性的,而不是限制性的。尽管已经参考特定的说明性示例描述了本公开,但是将认识到,本公开不限于所描述的示例。本公开的范围应参考所附权利要求书以及权利要求书所赋予的等效物的全部范围来确定。
68.如本文中所使用的,单数形式“一(a)”、“一个(an)”和“该(the)”也意图包括复数形式,除非上下文另外明确指出。将进一步理解的是,当在本文中使用时,术语“包括(comprises)”、“包括(comprising)”、“包含(includes)”和/或“包含(including)”指定存在所述特征、整数、步骤、操作、元素和/或部件,但不排除一个或更多个其他特征、整数、步骤、操作、元素、部件和/或其组的存在或添加。因此,本文所使用的术语仅出于描述特定实施例的目的,而无意于进行限制。
69.还应注意,在一些替代实施方式中,提到的功能/动作可能不按照图中提到的顺序发生。例如,根据所涉及的功能/动作,连续示出的两个图实际上可以基本上同时执行,或者有时可以以相反的顺序执行。
70.尽管以特定顺序描述了方法操作,但是应该理解,可以在所描述的操作之间执行其他操作,可以调整所描述的操作,使得它们在稍微不同的时间发生,或者所描述的操作可以分布在允许处理操作在与处理相关联的各种间隔处发生的系统中。
71.各种单元、电路或其他部件可以被描述或要求为“被配置成”或“可配置成”执行一个任务或更多个任务。在此类上下文中,短语“被配置成”或“可配置成”用于通过指示单元/电路/部件包括在操作期间执行一个任务或更多个任务的结构(例如,电路)来表示结构。这样,即使当指定的单元/电路/部件当前不可操作(例如,未接通)时,也可以说该单元/电路/部件被配置成执行任务,或者可配置成执行任务。与“被配置成”或“可配置成”语言一起使用的单元/电路/部件包括硬件——例如,电路、存储可执行以实现操作的程序指令的存储器等。陈述单元/电路/部件“被配置成”执行一个或更多个任务,或者“可配置成”执行一个或更多个任务,显然旨在不针对该单元/电路/部件援引35u.s.c.112第6段。附加地,“被配置成”或“可配置成”可以包括由软件和/或固件(例如,fpga或执行软件的通用处理器)操纵来以能够执行讨论中的任务的方式操作的通用结构(例如,通用电路)。“被配置成”还可以包括使制造过程(例如,半导体制造设施)适于制造适于实现或执行一个或更多个任务的设
备(例如,集成电路)。明确表示“可配置成”不适用于空白介质、未编程的处理器或未编程的通用计算机、或未编程的可编程逻辑设备、可编程门阵列或其他未编程的设备,除非伴随有赋予未编程设备被配置成执行所公开的功能的能力的编程的介质。
72.可以利用一种或更多种计算机可用或计算机可读介质的任意组合。例如,计算机可读介质可以包括便携式计算机软盘、硬盘、随机存取存储器(ram)设备、只读存储器(rom)设备、可擦除可编程只读存储器(eprom或闪存)设备、便携式光盘只读存储器(cdrom)、光学存储设备和磁性存储设备中的一项或更多项。可以以一种或更多种编程语言的任何组合来编写用于执行本公开的操作的计算机程序代码。可以将这样的代码从源代码编译为适合于将在其上执行代码的设备或计算机的计算机可读汇编语言或机器代码。
73.实施例也可以在云计算环境中实现。在本说明书和所附权利要求中,“云计算”可以被定义为一种模型,用于实现对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的无处不在、方便的、按需的网络访问,这些计算资源可以以最小的管理工作或服务提供者交互来被快速地供应(包括通过虚拟化)和释放,然后相应地按比例调节(scaled)。云模型可以由各种特征(例如,按需自助服务、广泛的网络访问、资源池化、快速弹性和可度量的服务)、服务模型(例如,软件即服务(“saas”),平台即服务(“paas”)和基础设施即服务(“iaas”))以及部署模型(例如,私有云、社区云、公共云和混合云)组成。附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。在这方面,流程图或框图中的每个框可以表示代码的模块、段或部分,其包括用于实现指定的一个或更多个逻辑功能的一个或更多个可执行指令。还将注意,框图或流程图中的每个框以及在框图或流程图中的框的组合可以由执行指定功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现。这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指导计算机或其他可编程数据处理装置以特定方式起作用,使得存储在计算机可读介质中的指令产生包括指令装置的制品,该指令装置实现流程图和/或框图的一个框或更多个框中指定的功能/动作。
74.出于解释的目的,已经参考特定实施例描述了前述描述。然而,上面的说明性讨论并不旨在为无遗漏的或将本发明限制于所公开的精确形式。鉴于上述教导,许多修改和变化都是可能的。选择和描述这些实施例是为了最好地解释实施例的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用实施例以及如可以适合于预期的特定用途的各种修改。因此,本实施例应被认为是说明性的而不是限制性的,并且本发明不限于本文给出的细节,而是可以在所附权利要求的范围和等效物内进行修改。
技术特征:
1.一种方法,包括:从数据集中检索数据,其中,所述数据被组织在多个列中;以及对于所述多个列中的每一列:生成关于该列的一个或更多个候选语义类别,其中,所述一个或更多个候选语义类别中的每一个具有相应的概率,根据所述一个或更多个候选语义类别和所述相应的概率创建该列的特征向量,以及至少使用所述特征向量和经训练的机器学习模型从所述一个或更多个候选语义类别中选择列语义类别。2.根据权利要求1所述的方法,其中,存在用于至少一列的多个候选语义类别。3.根据权利要求1所述的方法,还包括:至少基于该列的所述列语义类别来确定所述多个列中的每一列的语义类别类型。4.根据权利要求3所述的方法,其中,语义类别类型选自包括标识符、准标识符和敏感的组。5.根据权利要求3所述的方法,还包括:使用所述多个列中的每一列的所述语义类别类型来匿名化所述数据。6.根据权利要求1所述的方法,其中,生成一个或更多个候选语义类别包括:生成一个或更多个候选语义类别中的多个候选语义类别中的每一个候选语义类别的概率。7.根据权利要求6所述的方法,其中,所述概率的生成包括:从所述多个列中选择列;将具有潜在语义类别的布隆过滤器应用于该列的数据;以及基于将所述布隆过滤器应用于所述列数据的一组结果来计算概率。8.根据权利要求6所述的方法,其中,所述布隆过滤器是白名单布隆过滤器和黑名单布隆过滤器中的一个。9.根据权利要求1所述的方法,其中,经训练的机器学习模型是随机森林训练的机器学习模型。10.一种系统,包括:一组存储资源;查询处理器,用于:从数据集中检索数据,其中,所述数据被组织在多个列中;以及对于所述多个列中的每一列:利用所述查询处理器生成该列的一个或更多个候选语义类别,其中,所述一个或更多个候选语义类别中的每一个具有相应的概率,根据所述一个或更多个候选语义类别和所述相应的概率创建该列的特征向量,以及使用所述特征向量和经训练的机器学习模型从所述一个或更多个候选语义类别中选择列语义类别。11.根据权利要求10所述的系统,其中,存在用于至少一列的多个候选语义类别。12.根据权利要求10所述的系统,其中,所述查询处理器还用于:至少基于该列的所述列语义类别来确定所述多个列中的每一列的语义类别类型。
13.根据权利要求12所述的系统,其中,语义类别类型选自包括标识符、准标识符和敏感的组。14.根据权利要求12所述的系统,其中,所述查询处理器还用于:使用所述多个列中的每一列的所述语义类别类型来匿名化所述数据。15.根据权利要求10所述的系统,其中,为了生成一个或更多个候选语义类别,所述查询处理器还用于:生成一个或更多个候选语义类别中的多个候选语义类别中的每一个候选语义类别的概率。16.根据权利要求15所述的系统,其中,为了生成所述概率,所述查询处理器还用于:从所述多个列中选择列;将具有潜在语义类别的布隆过滤器应用于该列的数据;以及基于将所述布隆过滤器应用于所述列数据的一组结果来计算概率。17.根据权利要求10所述的系统,其中,所述布隆过滤器是白名单布隆过滤器和黑名单布隆过滤器中的一个。18.根据权利要求10所述的系统,其中,经训练的机器学习模型是随机森林训练的机器学习模型。19.一种非暂时性机器可读介质,其存储指令,所述指令当由计算设备的一个或更多个处理器执行时使所述一个或更多个处理器:从数据集中检索数据,其中,所述数据被组织在多个列中;以及对于所述多个列中的每一列:利用所述一个或更多个处理器生成该列的一个或更多个候选语义类别,其中,所述一个或更多个候选语义类别中的每一个具有相应的概率,根据所述一个或更多个候选语义类别和所述相应的概率创建该列的特征向量,以及至少使用所述特征向量和经训练的机器学习模型从所述一个或更多个候选语义类别中选择列语义类别。20.根据权利要求10所述的系统,其中,所述指令还使得所述一个或更多个处理器:至少基于该列的所述列语义类别来确定所述多个列中的每一列的语义类别类型。
技术总结
描述了生成数据集的语义名称。示例方法可以包括从数据集中检索数据,数据被组织在多个列中。该方法还可以包括生成该列的一个或更多个候选语义类别,其中一个或更多个候选语义类别中的每一个对于每一列具有相应的概率。该方法还可以进一步包括从一个或更多个列候选语义类别和相应的概率创建每一列的特征向量。附加地,该方法还可以包括至少使用特征向量和经训练的机器学习模型从一个或更多个候选语义类别中为每一列选择列语义类别。类别中为每一列选择列语义类别。类别中为每一列选择列语义类别。
技术研发人员:克雷格
受保护的技术使用者:斯诺弗雷克公司
技术研发日:2022.01.18
技术公布日:2023/9/16
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种路沿石模具的制作方法 下一篇:一种具有保护结构的大提琴摆放装置
