在推荐系统系列的第一部分中,我们讨论了任务和常用的各种类型的推荐系统,以及基于业务上下文的相关指标。在本文中,我们将在推荐系统的背景下概述图论和图神经网络(GNN)。
推荐系统的一种流行技术是利用经典的机器学习方法进行矩阵补全,这是一种协同过滤方法。给定用户数 m 和数项 n,它旨在填充用户-项交互矩阵 R(维度为 mxn)中的缺失值。为了实现这一点,我们将每个用户和项目映射到大小为 k 的嵌入 — 向量空间中的抽象表示。这些嵌入可能会捕获电影类型或用户人口统计数据等特征,但很多时候是潜在的未知特征。生成用户嵌入矩阵 U(维度为 mxk)和项目嵌入矩阵 I(维度为 nxk)。 为了预测用户-项目对,我们计算转置项目矩阵和用户矩阵的点积。最初,潜在矩阵是随机初始化的,我们使用基于已知用户-项交互的损失函数优化嵌入。
图 1:此图显示了用户-项交互矩阵 R,以及我们如何在用户和项嵌入矩阵之间取点积来预测 R 矩阵中的特定值。
但是,此方法在处理稀疏矩阵时会遇到性能问题。在用户仅与数百万个可用项中的几个项交互的情况下,经典的矩阵完成方法可能是不够的,因为它们只考虑用户和项之间的直接连接。为了解决这一限制,基于图神经网络(GNN)的推荐系统已成为一种更有效的替代方案。
GNN 不仅通过考虑单个用户的偏好,还集成来自相邻用户的信息,在稀疏数据集中提供改进的性能。通过利用图形结构,GNN 可以更全面地捕获用户和项目之间的关系,从而实现更准确和个性化的推荐。让我们首先提醒自己一些关于图论的知识。
图形是一种数据结构,将实体集合表示为节点(顶点),并将其关系表示为边。它是建模和理解各种真实场景的强大工具。例如,图表可以表示银行交易,其中节点符号化银行账户,边表示它们之间的交易。同样,社交网络图以人为节点,边缘描绘个人之间的关系。
图 2:图形示例。
图表的类型
根据其特征,有不同类型的图形。 有向图具有具有特定方向的边。 例如,在银行交易图中,每条边表示从发送方到接收方的交易,从而建立明确的方向。另一方面,无向图不会为边分配方向。在社交网络中,无向边缘表示两个人之间的联系或相识,没有任何固有的方向性。
图形也可以分为同构或异构。 同类图具有单一类型的节点和边,而异构图可能包含多种类型。例如,在电子商务方案中,可能有两种类型的节点:一种表示可供销售的商品,另一种表示用户。不同类型的边缘可以表示不同的交互,例如用户单击项目或进行购买。
图 3:有向图、无向图、齐次图和异构图的示例
二分图是一种特定类型的异构图,在建模推荐系统方面非常有用。它们涉及两组不同的节点,例如用户和项目,边缘专门连接来自不同集的节点。二分图有效地捕获用户-项目交互,并启用高效的推荐算法来利用丰富的网络结构。
图 4:二分图示例。
有多种方法可以存储图形数据。一种方法是使用邻接矩阵,表示为 A ∈ {0, 1}ⁿxⁿ,其中 n 是图中的节点数。矩阵的 (i, j) 条目 Ai,j 表示节点 vi 和 vj 之间的连通性,如果有连接 vi 和 vj 的边,则为 Ai,j = 1。对于无向图,邻接矩阵是对称的,即 Ai,j = Aj,i。但是,对于大型和稀疏图(如社交网络),邻接矩阵可能是内存密集型的。这是因为邻接矩阵随节点数而缩放。在拥有数百万个节点的社交网络中,大多数人彼此不认识。这将导致一个大矩阵,其中大多数单元格为空。
为了解决这个问题,邻接列表表示形式对内存效率更高。 它将节点之间的边描述为元组 (i,j),其中 (0,1) 表示节点 0 和 1 之间的边。例如,对于图 5 中的图形,邻接列表为 [(A,B)、(B,D)、(B,C)、(D,C)]。
图 5a:图形示例 — 图 5b:图 4a 中图形的邻接矩阵。
邻接列表表示形式提供了更高的内存效率,特别是对于稀疏图,因为它仅存储有关连接节点的必要信息。这使其成为处理大规模图形数据(例如社交网络)的首选,其中连接数与节点总数相比通常有限。
与传统的矩阵完成方法类似,GNN 可以为用户和项目生成嵌入,以预测看不见的用户-项目交互。但是,它们提供了一种显式合并高阶图结构的方法,并且可以捕获数据本身中可能不可用的潜在或隐藏相关性。
给定一个图,我们的目标是将每个节点 v 映射到其自己的 d 维最终嵌入,其中基于其网络邻域特征以及自身特征的相似节点最终应在其最终嵌入空间中彼此接近。
图 6:节点编码到嵌入空间。
GNN 的一层在图中的所有直接邻居之间交换信息,为图中的每个节点生成新的节点嵌入。在 2 层 GNN 模型中,每个节点将根据其 2 跳邻域生成其第 2 层嵌入。 K-hop 邻域是指距离感兴趣节点 K 边的所有节点。这是一个迭代过程,其中邻居变量通过传递消息(一种消息传递方法)与每个变量“对话”。
图 7:2 层 GNN 中特定目标节点的输入图和计算图
在此图像中,我们看到节点 A 的第 2 层表示是通过以某种方式聚合其直接邻居 [B,C,D] 的第 1 层嵌入并对其应用黑盒转换或神经网络生成的。这些嵌入又由其第 0 层 [X_A、X_B...X_F] 嵌入直接相邻要素,这是初始输入要素。每一层都会生成一个新的节点嵌入,节点的 K 层嵌入从距离自身的 K 跳节点获取信息。
图神经网络(GNN)具有几个显着的特征和优势,使其与传统的矩阵补全方法区分开来。这些特征有助于它们在推荐系统中的有效性。让我们探索这些功能:
图 8:图 7 输入图中每个节点的计算图。
尽管GNN具有优势,但它们也有应考虑的局限性:
通过利用嵌入在图结构中的丰富信息,GNN可以捕获复杂的模式,发现潜在特征,并在推荐过程中考虑相邻用户的影响。这种方法增强了推荐系统做出准确预测的能力,即使在经典方法难以生存的稀疏数据集中也是如此。
随着推荐系统领域的不断发展,GNN已成为解决传统方法局限性的有前途的解决方案。 他们适应不同领域并自动从数据中学习的能力使他们非常适合在各种情况下提供相关和量身定制的建议。
在本系列的下一部分中,我们将深入研究GNN的数学基础,特别关注LightGCN在电影推荐系统中的应用。通过了解基本原理和算法,我们可以进一步了解GNN如何改变推荐系统的格局。