理解机器学习中的node2vec算法
Node2Vec 是一种机器学习方法,试图学习如何以连续的方式描述网络或图中的节点。它特别擅长捕获网络的结构信息,这使得它能够执行诸如节点分类、链接预测和网络结构分析等任务。本文将探讨 Node2Vec 算法的基础知识,包括其工作原理和应用场景。
图表示学习
图被用于表示许多领域中复杂的关系和交互,例如社交网络、生物网络、推荐系统和知识图谱。图表示学习专注于将图节点映射到连续的向量空间,以便后续的机器学习技术可以应用于嵌入,而不是底层的网络结构。
根据节点的相似性嵌入节点,捕获其结构和语义信息,是图表示学习的核心思想。传统的基于矩阵分解和随机游走的方法只能近似地捕获图的全局和局部结构模式。在这种情况下,Node2Vec 方法就显得很有帮助。
Node2Vec 的必要性
Node2Vec 通过使用节点邻域来解决传统方法中的问题。其核心思想是,图中相同区域的节点很可能具有相同的功能或角色。Node2Vec 利用广度优先搜索 (BFS) 和深度优先搜索 (DFS) 的优势,生成能够探索图中局部和全局特征的随机游走。
随机游走
随机游走是在网络中的一条路径,其中下一个要访问的节点是从该节点的邻居中随机选择的。随机游走能够捕获图的局部和全局结构。在 Node2Vec 中,目标是生成既能探索附近节点又能探索未知区域的随机游走。
Node2Vec 算法
Node2Vec 算法包含三个主要步骤:
采样随机游走
创建有偏随机游走
使用 Skip-gram 或其他类似方法学习节点嵌入
步骤 1:采样随机游走
在 Node2Vec 的第一步中,从图中采样随机游走。该方法从每个节点开始,生成一定数量的固定长度的随机游走。根据选择的起始节点,可以专注于局部或全局探索。
Node2Vec 使用返回超参数 (p) 和内外超参数 (q) 来平衡探索与利用之间的权衡。返回超参数 (p) 控制重新访问先前步骤中节点的概率,而内外超参数 (q) 区分广度优先搜索 (q > 1) 和深度优先搜索 (q < 1) 探索策略。
步骤 2:创建有偏随机游走
在第二步中,使用节点之间的转移概率来生成有偏的随机游走。这些转移概率受图的结构以及 p 和 q 的值影响。
在每个随机游走步骤中,算法会决定是回到上一个节点,还是探索所有邻居,或者更倾向于访问距离上一个节点更近或更远的节点。这些决策由转移概率引导,而转移概率受超参数 p 和 q 影响。
步骤 3:学习节点嵌入
Node2Vec 方法的最后一步是使用 Skip-gram 或相关方法学习节点嵌入。Skip-gram 是一种常用的自然语言处理中的词嵌入学习方法,也可以用于学习节点嵌入。
在 Skip-gram 中,目标是根据目标节点预测上下文(目标节点周围的其他节点)。Node2Vec 通过在其生成的随机游走上训练模型来学习将节点嵌入到连续的向量空间中。节点嵌入之间的距离反映了其结构的相似性。
Node2Vec 的应用
Node2Vec 由于能够捕获图中的结构信息,因此已应用于许多领域。其最显著的应用包括:
节点分类 - Node2Vec 嵌入可以作为机器学习任务(如后续节点分类)的特征。通过在学习到的嵌入上训练分类器,可以根据节点的嵌入表示以及训练集中标记的节点,预测从未见过的节点的类别或标签。
链接预测 - 链接预测旨在确定网络中缺少或将要添加的链接。Node2Vec 可以用来生成节点的嵌入,然后测量这些嵌入的相似性。具有相似嵌入的节点很可能具有相似的连接模式,这可以帮助确定缺失的链接或可能在将来添加的链接。
网络可视化 - Node2Vec 嵌入使得能够将大型图可视化到低维空间中。当将高维嵌入投影到 2D 或 3D 空间时,可以观察图的结构并识别集群或社区。
推荐系统 - Node2Vec 也可以应用于推荐系统,以生成个性化推荐。通过学习推荐图中用户和项目的嵌入,可以根据与目标用户或项目相似的节点来生成基于相似性的推荐。
结论
Node2Vec 是一种强大的方法,用于学习如何以连续的方式描述图中的节点。Node2Vec 通过利用随机游走并结合探索与利用,能够捕获节点的局部和全局结构信息。它可以应用于许多不同的领域,例如节点分类、链接预测、网络可视化和推荐系统。Node2Vec 通过发现重要的图模式,有助于改进用于分析和理解网络的机器学习方法。