什么是聚类?

如果你想了解某些信息(例如音乐),一种方法是查找有意义的群组或集合。您可以按流派整理音乐,而您的朋友可能会按流派整理音乐。如何选择将内容划分为多个组的方法有助于您将各组作为一个整体的音乐详细了解。您可能会发现,您对朋克摇滚有着浓厚的兴趣,并将这种流派进一步划分成了不同的方法或来自不同位置的音乐。另一方面,您的好友或许可以观看 20 世纪 80 年代的音乐,并且能够了解当时各个流派的音乐受到社会政治环境的影响。在这两种情况下,尽管您采取了不同的方法,但您和您的朋友已经学到了音乐方面的知识。

在机器学习中,我们通常会将样本分组,作为理解机器学习系统中的主题(数据集)的第一步。对无标签样本进行分组称为聚类

由于这些示例是无标签的,因此聚类依赖于非监督式机器学习。如果样本带有标签,则聚类变为分类。如需关于受监管和非监督式方法的详细讨论,请参阅机器学习问题构建简介

显示三个聚类的图表
图 1:分组到三个聚类的无标签样本。

您需要先查找类似的示例,然后才能对类似的示例进行分组。您可以通过将样本的特征数据组合成指标(称为相似度衡量)来衡量示例之间的相似度。当每个示例由一个或两个特征定义时,很容易衡量相似度。例如,您可以查找作者的类似图书。随着特征数量的增加,创建相似性度量变得越来越复杂。我们稍后将介绍如何在不同场景中创建相似性指标。

聚类有哪些用途?

聚类在各行各业中有众多用途。一些常见的聚类应用包括:

  • 市场细分
  • 社交网络分析
  • 搜索结果分组
  • 医学影像
  • 图片分割
  • 异常值检测

聚类后,系统会为每个集群分配一个称为集群 ID 的编号。现在,您可以将示例的整个特征集精简为相应的集群 ID。用简单的集群 ID 表示复杂的示例会使集群变得强大。作为进一步扩展的理念,聚类数据可以简化大型数据集。

例如,您可以按不同的功能对商品进行分组,如以下示例所示:

示例
  • 按亮度将星标分组。
  • 按遗传信息将生物归类到类目中。
  • 按主题对文档进行分组。

然后,机器学习系统可以使用集群 ID 来简化大型数据集的处理。因此,聚类的输出将用作下游机器学习系统的特征数据。

在 Google 中,聚类用于 YouTube 视频、Play 应用和音乐轨道等产品中的泛化、数据压缩和隐私保护。

泛化

当集群中的一些示例缺少特征数据时,您可以从集群中的其他示例推断出缺少的数据。

示例
不太热门的视频可以与更热门的视频聚集在一起,以改进视频推荐功能。

数据压缩

如前所述,集群中的所有示例的特征数据都可以替换为相关的集群 ID。此替换简化了特征数据并节省了存储空间。当扩展到大型数据集时,这些优势会变得非常明显。此外,机器学习系统可以使用集群 ID 作为输入,而非使用整个特征数据集。降低输入数据的复杂性会使机器学习模型训练起来更简单、更快速。

示例
单个 YouTube 视频的特征数据可以包括:
  • 关于地理位置、时间和受众特征的观看者数据
  • 包含时间戳、文字和用户 ID 的评论数据
  • 视频广告代码
对 YouTube 视频进行聚类后,您可以使用这一个集群 ID 替换这组功能,从而压缩您的数据。

隐私保护

您可以通过以下方式保护隐私:对用户进行聚类,并将用户数据与集群 ID(而不是特定用户)相关联。为确保无法将用户数据与特定用户相关联,集群必须加入足够数量的用户。

示例
假设您想将 YouTube 用户的视频历史记录添加到您的模型中。您可以聚类用户并依靠集群 ID,而不是依赖于用户 ID。现在,您的模型无法将视频历史记录与特定用户相关联,而只能将其与代表大量用户的集群 ID 相关联。