多关系聚类是利用多个关系中的信息,根据数据对象的相似性将数据对象划分为一组聚类的过程。在本节中,它可以介绍 CrossClus(具有用户指导的交叉关系聚类),这是一种用于多关系聚类的算法,探索如何在聚类和元组 ID 传播中利用用户指导来避免物理连接。
多关系聚类的一个主要挑战是不同关系中的属性太多,通常只有一小部分与特定的聚类任务相关。
考虑计算机科学系数据库。它可以对学生进行聚类,属性涵盖了许多不同方面的信息,例如学生所修的课程、学生的出版物、导师和学生的研究小组等。
用户通常对使用信息的某个方面对学生进行聚类(例如,按研究领域对学生进行聚类)感兴趣。用户通常可以很好地掌握他们的应用程序的要求和数据语义。因此,一个用户的管理在一个简单的查询结构中,可以用来提高高维多关系聚类的效率和质量。
CrossClus 接受包含目标关系和一个或多个相关属性的用户查询,这些属性共同指定了用户的聚类目标。CrossClus 定义了多关系属性。多关系属性 A' 由连接路径 R t ⋈ R 1 … 定义。⋈ R k是一个属性 R k。A of R k,可能还有聚合运算符(例如,平均值、计数、最大值)。
A' 正式表示为 [A'。加入路径,A'.attr,A'.aggr],其中A'。aggr 是可选的。多关系属性 A' 要么是分类特征,要么是数值特征,这取决于 R k是否为。A 是分类的或数字的。如果 A' 是一个分类特征,那么对于目标元组 t, t。A' 表示 R k中可与 t 连接的元组之间的值分布。
在多关系聚类过程中,CrossClus 需要跨多个关系搜索相关属性。CrossClus 必须解决搜索过程中的两大挑战。首先,目标关系 R t通常可以通过许多不同的连接路径与每个非目标关系 R 连接,并且 R 中的每个属性都可以用作多关系属性。
在这个巨大的搜索空间中,不可能进行任何种类的穷举搜索。其次,在大量的属性中,有些与用户查询相关(例如,学生的导师与其研究领域相关),而许多其他属性则无关紧要(例如,学生的同学的个人信息)。