模式识别 [0001] 相关申请的交叉引用 本申请要求在2011年2月23日以Michal Aharon等人名义提交的第13/033,443号美国专利申请的优先权。 背景技术 [0002] 各种行业通常在大量有关现实生活问题的数据中寻找模式。例如,学习医学的人可能寻找指示患者的两个物理属性之间的相关性的模式。特别地,分析大型集合的患者数据可能指示共享某些特性和过去经验的个体面对特定类型疾病或其它不利情况的风险。在数据中找到这些模式给科学家提供能够帮助发现因果关系并从而找到治疗这类疾病的方法的附加工具。 [0003] 诸如要素分析和主成分分析(PCA)之类的各种技术能够被用于将一组数据内的大量的可观测变量减少为较少数量的影响可观测变量的未观测到变量。观察这些未观测到变量有助于在数据内找到模式。但是,这类技术仅找到存在于大部分数据内的模式。在一些情况中,模式可能存在于较小百分比的数据内。这类模式不会被各种要素分析方法获得。 附图说明 [0004] 附图图示本文描述的原理的各种实施例,且是说明书的一部分。图示的实施例仅是示例而不限制权利要求的范围。 [0005] 图1是示出根据本文描述的原理的一个示例的说明性的物理计算系统的示图。 [0006] 图2是示出根据本文描述的原理的一个示例的说明性的二分图的示图。 [0007] 图3是示出根据本文描述的原理的一个示例的在二分图内属性节点的转移概率函数的使用的示图。 [0008] 图4是示出根据本文描述的原理的一个示例的在二分图内实例节点的转移概率函数的使用的示图。 [0009] 图5A和5B是示出根据本文描述的原理的一个示例的指示两个不同属性之间的相关性的说明性图表的示图。 [0010] 图6是示出根据本文描述的原理的一个示例的用于模式识别的说明性方法的流程图。 [0011] 贯穿图表,相同的附图标记指定类似的但不一定是相同的元素。 具体实施方式 [0012] 如上面提到的,诸如要素分析和主成分分析(PCA)之类的各种技术能够被用于将一组数据内大量的可观测变量减少为较少数量的影响可观测变量的未观测到变量。观察这些未观测到变量有助于在数据内找到模式。但是,这类技术仅找到存在于大部分数据内的模式。在一些情况中,模式可能存在于较小百分比的数据内。这类模式不会被各种要素分析方法获得。 [0013] 根据这点和其它问题,本说明书公开了用于大量数据中的模式识别的方法和系统。特别地,本文描述的方法将允许系统检测存在于可用数据的较小子集内的模式。模式是共享类似属性的类似值的一组不可忽略的实例。 [0014] 根据某些说明性示例,要针对模式进行搜索的数据被构造为二分图。二分图是一种数据结构。数据结构是存储和表示数据以使得数据能被高效地使用的方式。二分图数据结构包括两组节点。第一组中的节点能够连接到第二组中的任何数量的节点,且反之亦然。 节点之间的连接被称为边。 [0015] 为了构造数据以允许针对模式的高效搜索,二分图数据结构内的第一组节点被用于表示数据内的实例。这些节点将被称为实例节点。数据结构内的第二组节点被用于表示那些实例可能表现出的属性。这些节点将被称为属性节点。特定实例节点和特定属性节点之间的边被分配与该特定实例关联的那个属性的值。例如,如果实例节点表示参与调查的人,并且属性节点表示在该调查中的问题,那么实例节点和属性节点之间的边表示与该实例节点关联的人对与该属性节点关联的问题所给出的答案。 [0016] 然后给每个属性节点分配转移概率函数。分配给特定属性节点的转移概率函数是基于与该属性节点关联的属性的性质。此外,每个实例节点被分配基于连接到该实例节点的属性节点而变化的转移概率函数。 [0017] 然后对二分图应用随机游走。随机游走被设计成从实例节点跳到属性节点,并然后从该属性节点回到实例节点。此过程持续特定的时间段。随机游走选择穿过的边将根据计算的转移概率函数而被随机地选择。转移概率函数将使随机游走比起其它边更可能会穿过某些边。通过考虑更频繁地被穿过的边,数据中的模式能够被揭示。 [0018] 在以下描述中,为了解释的目的,阐述了许多具体细节以便提供本系统和方法的透彻理解。但是对于本领域的技术人员将是显而易见的是,本装置、系统和方法可以在没有这些具体细节的情况下而被实现。说明书中提到的“实施例”、“示例”或类似的语言意思是,与实施例或示例有关地描述的特定特征、结构、或特性被包括在至少那一个实施例中,但在其它实施例中不是必需的。在说明书中短语“在一个实施例中”或在各种地方中的类似短语的各种实例不一定都指的是相同的实施例。 [0019] 现在参考附图,图1是示出可用于模式识别的说明性的物理计算系统(100)的示图。根据某些说明性示例,物理计算系统(100)包括使模式识别软件(104)和数据(106)存储在其上的存储器(102)。物理计算系统(100)也包括处理器(108)和用户接口(110)。 [0020] 存在许多类型的可用存储器。诸如固态驱动器的一些类型的存储器被设计用于存储。这些类型的存储器通常具有大存储容量但是相对慢的性能。诸如那些用于随机存取存储器(RAM)的其它类型的存储器关于速度被最优化而通常被称为“工作存储器”。各种形式的存储器可以以软件(104)和数据(106)的形式存储信息。 [0021] 物理计算系统(100)也包括用于运行软件(104)和使用或更新存储在存储器(102)中的数据(106)的处理器(108)。软件(104)可以包括操作系统。操作系统允许其它应用与移动计算系统的硬件合适地交互。其它应用可以包括模式识别应用。 [0022] 用户接口(110)可以给用户(112)提供与物理计算系统(100)交互的手段。用户接口可包括用于与人类用户(112)交互的任何设备的集合。例如,用户接口(110)可以包括诸如键盘或鼠标之类的输入设备和诸如监视器之类的输出设备。 [0023] 图2是示出说明性二分图(200)的示图。如上面提到的,数据能被构造为二分图(200)。贯穿本说明书且在附加的权利要求中,术语“二分图”指的是数据结构而不是视觉显示。图(200)内的第一组节点会将被称为实例节点(214)。图内的第二组节点将被称为属性节点(216)。边(218)存在于实例节点(214)和属性节点(216)之间。这些边(218)能够被分配值。 [0024] 二分图(200)内的每个实例节点(202)表示数据内的一个实例。例如,在数据表示由若干人参与的调查的结果的情况中,每个实例节点将表示该调查的一个参与者。 [0025] 二分图(200)内的每个属性节点(216)表示能够与实例关联的特定属性。例如,在上面提到的数据表示来自由若干人参与的调查的结果的示例中,每个属性节点可表示在该调查中问的一个问题。 [0026] 二分图(200)内的边(218)被用于指示与特定实例关联的每个属性的值。在一些情况中,数据可能不是完整的,因此每个实例节点(202)可能不一定具有连接到每个属性节点(216)的边(218)。根据边所连接到的实例节点和属性节点,边被分配值。例如,实例1(202-1)和年龄属性节点(204)之间的边(218)被分配值32。这指示与实例1(202-1)关联的人是32岁。同样地,连接在实例2(202-2)和年龄属性节点(204)之间的边(218)被分配值47。这指示与实例2(202-2)关联的人是47岁。而且,边的值可以包括多于一个值。例如,边可以表示成对的值。该对中的一个值能够表示调查参与者所给出的答案而另一个值能够表示该参与者给出该答案所花费的时间。 [0027] 其它属性节点(216)表示各种其它属性。特别地,是/否问题属性节点(206)可表示人对是或否问题的回答。等级属性节点(208)可以表示人对要求人把特定经验分为一到五级的问题的回答。花费属性节点(210)可以表示人对关于在特定日子他或她花费多少钱的问题的回答。区域属性节点(212)可以指示人居住的地理区域。本文描述的模式识别原理将在这些各种属性之中找到模式。 [0028] 在图2中和剩下的图中示出的二分图(200)是简单的示例。表示一组实际数据的实际的二分图通常会大得多。因此,本文描述的模式识别原理将能在大量复杂数据中检测模式。 [0029] 由属性节点(216)所表示的各种属性可以用不同的方式来测量。例如,一些属性可以包含人可能属于的一大组离散值。例如,如果年龄用年和月来测量,则存在相对大的一组离散值来表示该年龄。相反地,一些属性能够在相对小的一组离散值中被测量。例如,是/否问题属性节点(206)可以表示诸如对简单的是或否问题的回答之类的能够用两个离散值之一来回答的问题。在一些情况中,边的值本质上可以是连续的。若连接到那条边的属性是能够呈现连续值的属性,则会是这种情况。 [0030] 图3是示出在二分图内属性节点的转移概率函数的使用的示图。如上面提到的,随机游走被应用到二分图。随机游走将从实例节点跳到属性节点且反之亦然。但是它不会从实例节点跳到另一个实例节点。而且它不会从属性节点跳到另一个属性节点。当随机游走处于特定的属性节点上时,它会沿着从该属性节点连接到实例节点(202)之一的边的其中之一随机地跳跃。但是对于连接到该属性节点的每条边来说,它将沿着特定边跳跃的概率不一定是相同的。分配给该节点的转移概率函数将确定随机游走将沿着连接到该属性节点的每条边(218)跳跃的概率。 [0031] 概率函数被用于定义在一个集合内元素的随机选择将选择特定元素的概率。例如,如果一个集合包含五个要被随机地选择的元素,那么概率函数将描述那五个元素中的每个将被选择的概率。特定元素将被选择的概率通常被分配在0和1之间的值。分配给该集合内的每个元素的概率相加将共计为1。例如,如果集合内的五个元素中的每个具有相等的被选择机会,那么概率函数会定义每个元素为具有0.2的概率,每个元素的总和为1。但是概率函数不必必须给每个元素分配相等的被选择概率。 [0032] 分配给特定属性节点的转移概率函数把每条连接到该属性节点的边看作集合内的元素。每条边根据转移概率函数被给予概率。分配给每个元素的概率是基于随机游走所来自的边的值。转移概率函数将使得随机游走更可能会选择具有与到达边的值类似的值的边。 [0033] 例如,如果随机游走从实例节点1(202-1)跳到年龄属性节点(204),那么分配给年龄属性节点(204)的转移概率函数(302)将确定随机游走将沿着连接到年龄属性节点(204)的每条边(218)跳跃的概率。随机游走将沿着连接到实例2(202-2)的边、或连接到实例3(202-3)的边、或连接到实例4(202-4)的边之一跳跃。因为随机游走从有值32的边到达年龄属性节点(204),它更可能将在有更接近32的值的边(218)上离开年龄属性节点(204)。因此,最可能被穿过的边(218)是连接到实例4(202-4)的边。这是因为数字28比数字47或数字13更接近数字32。然而,随机游走仍然可能会跳到实例2(202-2)或实例3(202-3),但是随机游走不太可能会这样做。 [0034] 每个属性节点(216)可被分配唯一的转移概率函数。分配给特定属性节点的转移概率函数依赖于该属性节点的性质。例如,由于关于数据中的年龄属性的值的范围,连续转移概率函数(302-1)可能更适合于年龄属性节点(204)。但是,在其它情况中,属性可能仅呈现小离散范围的值。例如,等级属性节点(206)可以表示要求调查中的参与者基于特定经验是多令人愉快的而把该经验从一到五分级的问题。因为连接到等级属性节点(208)的边(218)将仅呈现小范围的值,离散转移概率函数(302-2)可能更适合于等级属性节点(208)。但是,连续转移概率函数也可以被使用。 [0035] 使用离散转移概率函数,当随机游走在等级属性节点(208)上时,随机游走将最可能跳到通过与它来自的边具有类似的值的边而连接的实例节点。例如,如果随机游走从实例节点2(202-2)沿着有值4的边到达,比起连接到实例4(202-4)的边,它更可能将在连接到实例3(202-3)的边上离开等级属性节点(208)。这是因为值5比值2更接近值4。 [0036] 在一些情况中,关于特定属性的值的离散集合可能不具有数值次序。例如,如果属性是人的行业,那么回答的可能集合不会是数值有序的。在这种情况中,回答可能根据行业的类型被分组。然后转移概率函数可能使下述情况更可能,即随机游走将跳到有相同组中的行业的边。 [0037] 图4是示出在二分图内实例节点的转移概率函数的使用的示图。根据某些说明性示例,当随机游走到达实例节点时,与该实例节点关联的实例转移概率函数(402)确定随机游走将穿过哪条边(218)以到达连接到该实例节点(202)的属性节点(216)之一。为了使随机游走在数据中找到模式,与每个实例节点关联的实例转移概率函数被配置成使下述情况更可能,即随机游走将跳到与它所来自的属性节点相关的属性节点。这是通过确定在特定值处一个属性与另一个属性的相关性如何来完成的。用于确定一个属性与另一个的相关性如何的机制在下文与图5A和5B关联的文字中将被更详细地描述。 [0038] 例如,如果随机游走从年龄属性节点(204)到达实例节点3(202-3),那么与实例节点3(202-3)关联的实例概率函数(402)将使下述情况更可能,即随机游走将跳到与在 13岁的年龄属性的相关性良好的属性。在这个示例中,模式识别系统可能预先已确定在13岁附近的年龄范围存在与花费属性(210)的相关性。这可能是因为通常13岁每天不花费许多钱,因此13岁左右的许多人每天会花费类似数量的钱。对于其他年龄范围,可能不是这种情况。因此,实例概率函数将使得,当随机游走从连接到实例3(202-3)的属性节点中选择时,比起与年龄属性节点(204)相关性不好的另一个节点,它将更可能跳到花费属性节点(210)。对于随机游走来说将仍然可能跳到相关性不好的属性节点。但是它不太可能会这样做。 [0039] 图5A和5B是示出指示两个不同属性之间的相关性的说明性图表的示图。根据某些说明性示例,在应用随机游走函数之前模式识别系统可以确定每个属性与其它属性的相关性如何。图5A图示相关性不好的两个属性之间的比较。可替代地,图5B图示示出在特定范围的值的相关性的两个属性之间的比较。沿着每幅图(500、510)的横轴的每一组条表示数据内的实例(504)。每幅图(500、510)的垂直长度指示特定属性的值。白条表示第一属性,而阴影条表示第二属性。 [0040] 为了确定两个属性的相关性如何,模式识别系统基于连接到该属性节点的每条边来排序第一属性。边表示共享该属性的每个实例的值。边可以基于边的值以各种方式被排序。在此例中,边被从最小值到最大值排序。图5A中的图(500)示出10个不同实例。这些实例被示出基于由白条(506)表示的第一属性的它们的值来排序。然后模式识别系统能考虑由阴影条(508)表示的每个实例的第二属性的值。在图5A中,可以看到在由阴影条(508)表示的第二属性的值中不存在模式。第二属性的值是随机的。因此,在这两个属性之间几乎不存在相关性。 [0041] 图5B图示两个不同属性之间的比较。再一次,实例(504)被基于由白条(506)表示的第一属性的值而排序。这里在实例的特定范围(512)存在第二属性的值的稳定性。因此模式识别系统能够确定在发现稳定性的实例范围(512)的值范围处这两个属性之间存在相关性。此相关性能够被用于确定随机游走将相对于一个属性选择跳到另一个属性有多大可能。 [0042] 在一些情况中,在随机游走函数被应用之前整个二分图中的每个属性之间的相关性能够被预先确定。在随机游走函数被应用之前关于实例节点和属性节点这二者的转移概率函数也能够被确定。在一些情况中,转移概率函数能够用转移矩阵表示。转移矩阵通常用在随机系统建模中以确定不同结果之间的概率。在一些示例中,模式能够通过考虑随机系统的平稳向量而找到。平稳向量能够通过转移概率矩阵上的各种数学计算的应用来确定。 这些计算在本领域中是已知的,因此在这里不会给出它们的详细描述。 [0043] 图6是示出用于模式识别的说明性方法的流程图。根据某些说明性示例,该方法包括,用物理计算系统,构造(块602)数据为二分图,该图内的一组实例节点表示数据内的实例以及图内的一组属性节点表示实例的属性,实例节点和属性节点之间的边表示属性的值,给每个实例节点和每个属性节点分配(块604)转移概率函数,和对该图应用(块606)随机游走,所述随机游走利用转移概率函数。 [0044] 总之,通过使用与本文描述的模式识别有关的方法和系统,存在于不可忽视的数量的实例中的模式可以被揭示。这能够允许研究与数据有关的主题的人找到以前未知的模式和关系。这些模式和关系能够引导进一步的新因果关系的研究和发现。 [0045] 之前的描述被提出仅用以说明和描述所描述原理的实施例和示例。此描述不意为穷尽的或限制这些原理为公开的任何确切形式。根据以上教导,许多修改和变形是可能的。