一种用于层次化聚类的方法和系统与流程

文档序号:20010140发布日期:2020-02-22 04:01阅读:120来源:国知局
一种用于层次化聚类的方法和系统与流程

本发明涉及无监督学习,特别地,本发明涉及一种用于层次化聚类的方法、计算机系统以及计算机可读存储介质。



背景技术:

在无监督学习和探索性数据分析中,从高维的无标签数据中识别出层次化结构是一项十分重要的任务。层次化结构可以揭示出数据间普遍存在的关系,并在不同的粒度下对数据的信息进行汇总,这在大规模数据的应用中带来了许多便利。同时,丰富的层次化结构信息在不同的领域中均普遍存在,包括文本语料库中层次化主题、社交媒体中的社群关系、图像或照片数据库中的结构化的组织方式等。人工地构建一个层次化结构——甚至仅仅是人工地检查现有的层次化结构——通常都是一件极其耗时乃至不可能完成的任务。由于现有的层次化聚类算法通常是无监督的,且其结果通常不易理解,因此现在没有一个系统性的计算机化的方法能够对大规模的同质数据集有效地构建符合用户需求的层次化结构。



技术实现要素:

根据本发明的一个方面,提出了一种用于层次化聚类的方法,该方法包括:

获取多个同质数据源,所述多个同质数据源包括同一性质的数据源;获取知识库中所述多个同质数据源对应的层次化结构,所述层次化结构是多个节点组成的有向无环图,每个节点表示一个类别;利用所述多个同质数据源以及所述多个同质数据源对应的层次化结构获取约束树,其中所述约束树的获取利用了所述多个同质数据源的至少一部分,并且所述约束树可用于对所述多个同质数据源进行层次化聚类。

根据本发明的另一个方面,提出了一种用于层次化聚类的计算机可读存储介质,所述计算机可读存储介质具有存储其中的程序指令,所述程序指令可由计算设备执行以使得计算设备执行如上所述的方法。

根据本发明的又一个方面,提出了一种用于层次化聚类的系统,包括:存储器;以及至少一个处理器,其可操作地耦合到存储器并配置用于执行如上所述的方法。

根据本发明的再一个方面,提出了一种用于检测偏离分布样本的计算机系统,所述系统包括分别用于执行如上所述的方法的各个步骤的模块。

附图说明

通过参照附图阅读下面对说明性实施例的详细说明可更好地理解发明本身以及其优选使用模式、目标、特征以及优点,在附图中:

图1示出了符合用户需求的文件1-6的层次化结构;

图2示出了根据本发明的实施例的一种用于层次化聚类的系统;

图3示出了根据本发明的实施例利用图2所示的用于层次化聚类的系统对多个同质数据源进行层次化聚类的方法的流程图;

图4示出了根据本发明的实施例的一种用于获取约束树的方法的流程图;

图5示出了根据本发明的实施例的另一种用于获取约束树的方法的流程图;

图6示出了根据本发明的实施例的一种利用改进的蚁群算法获取最优路径的流程图;

图7示出了根据本发明的实施例的一种改进蚁群算法的流程图。

具体实施方式

以下描述包括体现本发明技术的示例性方法、系统、技术和指令序列。然而,应该理解,在一个或多个方面,可以在没有这些具体细节的情况下实践所描述的发明。在其他情况下,没有详细示出公知的协议、结构和技术,以免模糊本发明。本领域普通技术人员将理解,所描述的技术和机制可以应用于对值进行排序的各种体系结构。

下面参照附图来说明本发明的实施例。在下面的说明中,阐述了许多具体细节以便更全面地了解本发明。但是,对于本技术领域内的技术人员明显的是,本发明的实现可不具有这些具体细节中的一些。此外,应当理解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和要素的任意组合来实施本发明,而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。

本发明的目的是获得多个同质数据源的层次化结构,也就是对多个同质数据源进行层次化聚类。所谓的同质数据源包括同一性质的数据源。同质数据源包括以下之一:文本数据、图像数据或其他用户指定数据(如社交数据、医疗数据等)。文本数据例如多个文本文件、多个word文件等等。例如,有6个文件,其中文件101是关于足球的文件,文件102是关于篮球的文件,文件103是关于铅球的文件,文件104是关于跳远的文件,文件105是关于跨栏的文件,文件106是关于天气的文件。那么图1示出了符合用户需求的文件101-106的层次化结构。如图1所示,文件101和102被聚为一类,即其父节点为球类运动节点110;文件103和104被聚为一类,即其父节点为田赛节点130;文件105单独为一类,即其父节点为径赛节点140;而文件106和这些节点关系不紧密,因此其没有在层次化结构的树中。田赛节点130和径赛节点140组成一类,即其父节点为田径节点120。田径节点120和球类运动节点110组成一类,其父节点为运动节点100。如果利用现有的可靠的层次化聚类算法,文件101和102很大的可能也会被聚成一类,但是它们的父节点会被表示成为没有任何含义的节点。同理文件103和104的父节点也会被表示成为没有任何含义的节点。当文件的个数成千上万时,这样获得的若干没有任何含义的节点组成的层次化结构很难被人们所理解并使用。

在数据挖掘技术领域中,现有的对多个同质数据源聚类的层次化聚类算法通常是无监督的,造成其结果为若干没有任何含义的节点组成的层次化结构,这种层次化结构通常很难被人们理解,也很难被人们利用。

本发明首次考虑利用知识库中的层次化结构,充分考虑用户的需求,对多个同质数据源,利用该多个同质数据源以及知识库中该多个同质数据源对应的层次化结构,来获取约束树,这样可以利用获得的约束树以及多个同质数据源获得该多个同质数据源的层次化聚类结果,即层次化结构。这样获得的层次化结构容易被人们理解,获得的层次化结构也很容易被人们利用。

所谓知识库中的层次化结构,例如百度百科使用的知识库的层次化结构,在根节点下包括自然、文化、地理、历史、生活、社会、艺术、人物、经济、科技、体育等节点。每个节点下面还会进一步分成若干子节点,每个子节点都有符合人们思维的节点名称,例如历史节点下面又分各国历史、各年代历史、历史学、区域历史、历史战争、历史名人、历史学家等子节点。所有这些就组成了百度百科使用的知识库的层次化结构。这种层次化结构在计算机处理程序内部可以是多个节点组成的有向无环图,每个节点表示一个类别。将这种知识库中的层次化结构结合无监督的层次化聚类,就可以得到具有实际意义的节点,该节点组成的层次化结构更容易被人们理解从而被更有效地利用。

图2示出了根据本发明的实施例的一种用于层次化聚类的系统200。如图2所示,层次化聚类系统200包括约束树获取模块210,以及层次化聚类模块220。约束树获取模块210获取多个同质数据源201以及知识库中的层次化结构202,产生约束树203。层次化聚类模块220获取多个同质数据源201以及约束树获取模块210产生的约束树203,来得到层次化聚类结果204。该层次化聚类系统200可实现为一般的计算机系统上的应用程序,或者实现为服务器系统上的应用程序,或者实现为网络应用程序,或者实现为云平台上的应用程序。

图3示出了根据本发明的实施例利用图2所示的用于层次化聚类的系统200进行层次化聚类的方法300的流程图。如图3所示,在步骤310,约束树获取模块210获取多个同质数据源。所述多个同质数据源可以是多个要构建层次化结构的文本数据,多个要构建层次化结构的图像数据,多个要构建层次化结构的用户指定数据等。在步骤320,约束树获取模块210获取知识库中所述多个同质数据源对应的层次化结构,所述层次化结构是多个节点组成的有向无环图,每个节点表示一个类别。该层次化结构可以是现有的层次化结构,例如百度百科使用的层次化结构;也可以是用户根据自己的需求构建的层次化结构。

在步骤330,约束树获取模块210对所述同质数据源对应的层次化结构进行剪枝。在实际应用中,与该同质数据源相关的层次化结构通常只是整个知识库层次化结构的一小部分,因此有许多计算资源被耗费在了不相关的分支以及过深的区域里。剪枝是根据获得的多个同质数据源,对知识库中所述同质数据源对应的层次化结构进行裁剪以获取适应所述多个同质数据源的层次化结构。剪枝是一个优选的步骤。其可以加速约束树获取模块210获取约束树的操作。当然,不剪枝也可以获得最后的聚类结果,但是计算的开销相对会比较大。对层次化结构进行剪枝可以利用本领域技术人员已知的剪枝技术来执行。例如使用集束搜索来将不相关的分支铲除,并扩展那些高度相关的节点。具体地说,首先维护层次化结构的一个节点集合。刚开始其只包含根节点。在每轮迭代中,所有的同质数据源都会根据相似度对集合里的节点进行投票。随后将得票过少的节点认为是不相关的分支并移除,而对于得票过多的节点则将其孩子节点也并入集合。当没有新节点被添加或移除时算法终止,可得到了一个与该同质数据源有较高相关度的层次化结构作为剪枝结果。本领域技术人员也可以采用其他已知的剪枝方法。

在步骤340,约束树获取模块210利用所述多个同质数据源以及所述多个同质数据源对应的层次化结构获取约束树,其中所述约束树的获取利用了所述多个同质数据源的至少一部分,并且所述约束树可用于对所述多个同质数据源进行层次化聚类。约束树可以对进一步的多个同质数据源进行层次化聚类提供约束条件。约束树获取有多种方法,后面将会进一步详细阐述。

在步骤350,层次化聚类模块220利用所述多个同质数据源与所述约束树对所述多个同质数据源进行层次化聚类。可以利用现有的可靠的约束层次化聚类方法,将约束树分解为若干数据源间的约束,并影响层次化聚类方法给出的层次化结构的生成。也可以利用其他现有的对多个同质数据源进行层次化聚类的方法,本发明对此并不限定。

针对上述步骤340,发明人经过探索和实验,提出多种获取约束树的方法。图4示出了根据本发明的实施例的一种用于获取约束树的方法400的流程图。如图4所示,在步骤410,计算所述多个同质数据源的每个数据源与所述同质数据源对应的层次化结构的每个节点的相似度。在该步骤中可以用已有的方法对该数据源和节点分别抽取一个向量,利用已有的向量相似度计算获取二者之间的相似度。

在步骤420,对所述多个同质数据源的每个数据源获取相似度最高的节点作为该数据源的对应节点。例如,图1的文件101对应运动节点100、球类运动节点110、田径节点120、田赛节点130、径赛的节点140的相似度分别为0.3、0.9、0.45、0.3、0.3,则文件101对应的节点为球类运动节点110,因为其相似度最高。

在步骤430,保留相似度在规定阈值内的一部分数据源。对上述例子,文件106对应运动节点100、球类运动节点110、田径节点120、田赛节点130、径赛的节点140的相似度分别为0.2、0.1、0.15、0.1、0.3。其最大的相似度为0.3,而规定阈值为0.5,则该文件106在获取约束树中不被保留。而文件101-105与其对应节点的相似度分别为0.9、0.8、0.85、0.8、0.9,均大于阈值,因此都被保留。

在步骤440,在所述同质数据源对应的层次化结构中,保留所述一部分数据源的对应节点,从而形成约束树。对上述例子,文件101-105及其所对应的节点以及相应的父节点形成约束树。

上述方法实现简单,运行速度快。然而,由于数据源存在二义性的问题,每个数据源可能在知识库中找到多个与之相似度高的节点。除非算法同时考虑了其他数据源的分布,否则仅孤立地利用单个数据源的信息将无法准确地命中最合适的节点。一个简单的例子是一篇关于“足球规则”的文件,且其与“足球”大类的相似度比“运动规则”大类更高。但仍不能轻易地决定“足球”大类就是更优的节点,因为如果其他文件主要都是不同运动的规则,那么“运动规则”大类将是一个更好的选择。

为了解决这一问题,本发明提出了另一种获取约束树的方法。图5示出了根据本发明的实施例的另一种用于获取约束树的方法500的流程图。如图5所示,在步骤510,计算每个数据源与所述同质数据源对应的层次化结构的每个节点的相似度。在步骤520,保留相似度在规定阈值内的一部分数据源与对应节点。例如,图1的文件101对应运动节点100、球类运动节点110、田径节点120、田赛节点130、径赛的节点140的相似度分别为0.3、0.9、0.45、0.3、0.3,而规定的阈值为0.4,则文件101对应的球类运动节点110和田径节点120均被保留。此时一个数据源可能对应着不止一个对应节点。

在步骤530,获取该一部分数据源中每个数据源在所述同质数据源对应的层次化结构中的最优路径,从而形成约束树。例如,假设文件101对应的球类运动节点110和田径节点120均被保留,假设文件103对应的运动节点100、田赛节点130和田径节点120均被保留;则约束树只包含节点100,110,120,101和103。

在一种实施例中,可以利用蚁群算法来获取层次化结构中的最优路径。传统的蚁群算法被用来求解旅行商问题。最初所有的蚂蚁会随机地选择图中的未拜访过的城市。一旦它们找到了食物(完成一个回路),它们就会在自己的路径上释放信息素。今后的迭代中它们将不再随机选择道路,而是更倾向于选择有高信息素的道路。因此,如果蚂蚁在更短的路径上释放更多的信息素,经过若干轮迭代后,所有的蚂蚁都会收敛到最短的路径上。本发明实现中,每个数据源被视为一只蚂蚁,而将层次化结构中的根节点视为食物。一旦蚂蚁找到食物,它们将会评估自己所走的路径,并往短的路径上释放更多的信息素。经过若干轮迭代后算法收敛,就得到了每个数据源在所述同质数据源对应的层次化结构中的最优路径。

然而,现在本发明的目标并不是简单地抽取出数据源到根节点的最短路径,而是最优路径,因此本发明在蚁群算法的基础上,在更新信息素时考虑添加更多额外的因素。例如考虑如下因素中的至少一个:

(1)多个同质数据源对应的层次化结构中的路径上的每个节点与该数据源的相似度的均值,该因素体现了获取的约束树结构路径应该有较好的拟合度。每个节点与该数据源的相似度的均值越大路径越优。

(2)多个同质数据源对应的层次化结构中的路径上的每个节点生成该数据源的概率的均值,该因素体现了获取的约束树结构路径应该有较好的拟合度。路径上的每个节点生成该数据源的概率的均值越大路径越优。

(3)多个同质数据源对应的层次化结构中的路径上的每个节点的覆盖度的最小值,其中所述覆盖度为该节点被蚁群算法中的蚂蚁走过的子节点的个数占该节点所有子节点的个数的比例,该因素帮助蚂蚁跳开那些大而无用的节点——即许多子节点根本没有被数据源所覆盖的节点。路径上的每个节点的覆盖度的最小值越大路径越优。

(4)多个同质数据源对应的层次化结构中的路径的长度,该因素体现了获取的约束树结构路径应该足够短。路径的长度可以定义为多个同质数据源对应的层次化结构的树中,根节点到叶子节点的边的个数。路径的长度越短路径越优。

(5)多个同质数据源对应的层次化结构中的路径上的蚂蚁的密度,该因素体现了获取的约束树结构不应该过宽。路径上的蚂蚁的密度越大路径越优。

把上述至少一个因素融入到现有的蚁群算法中,从而得到改进的蚁群算法。图6示出了根据本发明的实施例的一种利用改进的蚁群算法600获取最优路径的流程图。如图6所示,在步骤610,将该一部分数据源中每个数据源作为蚂蚁输入到改进的蚁群算法。在步骤620,将所述同质数据源对应的层次化结构作为图输入到改进的蚁群算法。在步骤630,运行改进的蚁群算法得到每个数据源在所述同质数据源对应的层次化结构中的最优路径,组成约束树。

图7示出了改进蚁群算法中作为每只蚂蚁的每个数据源获取最优路径的流程图700。如图7所示,在步骤710,初始化改进的蚁群算法600的步骤620的层次化结构上的信息素。在步骤720,每只蚂蚁根据概率寻找到根节点的路径。在步骤730,每只蚂蚁计算所选择的路径在相应因素上的得分并更新信息素,这一步骤体现了如何将上述至少一个因素添加到现有蚁群算法中。在步骤740,判断算法是否收敛或达到指定迭代次数。如果算法没有收敛且尚未达到指定迭代次数,则返回步骤720。如果算法收敛或达到指定迭代次数,则在步骤750,确定每只蚂蚁找到了到根节点的最优路径。

本发明可以是系统、方法和/或计算机可读存储介质。计算机可读存储介质上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。本发明的方法可以在独立的计算机系统上执行,也可以在分布式计算系统上执行,甚至可以在云平台上执行。

这里参照根据本发明实施例的方法、装置(系统)和计算机可读存储介质的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机可读存储介质的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1