文章详情

专注互联网科技,赋能企业数字化发展

一次性说清楚Node2vec是什么?

作者:一次性说清楚Node2vec是什么?

Node2Vec:融合同质性与结构性的智能图嵌入算法 一、核心问题:如何定义“邻居”? 图嵌入的关键在于如何为每个节点定义一个“上下文邻居”。传统方法如 DeepWalk 采用均匀随机游走,但其局限性在于无法灵活捕捉节点的多样特性。Node2Vec 的卓越贡献在于认识到,节点的相似性有两种核心定义: 1. 同质性:直接相连或处于同一紧密社区的节点(如好友),其向量应相近。 2. 结构性:在网络中扮演相似角色的节点(如不同社区的“中心枢纽”),其向量也应相近。 单一的游走策略难以同时兼顾这两种特性。为此,Node2Vec 设计了一种有偏的、可控的随机游走策略,通过两个巧妙的参数实现对游走行为的精细调控。 二、核心创新:有偏的二阶随机游走 假设随机游走刚刚从节点 t 走到了节点 v,现在需要决定下一个节点 x。Node2Vec 根据 x 与上一个节点 t 的距离,将边分为三类,并赋予不同的非归一化转移概率: · 返回:如果 x 就是 t(距离为0),则概率为 1/p。 · 停留:如果 x 与 t 直接相连(距离为1),则概率为 1。 · 远离:如果 x 与 t 不相连(距离为2),则概率为 1/q。 这里的 p 和 q 就是控制游走行为的关键参数: · 返回参数 p: · p 值高:游走倾向于不折返,从而进行更远距离的探索,有助于发现那些结构相似但距离较远的节点(捕捉结构性)。 · p 值低:游走倾向于退回原处,使其在局部区域徘徊,更能捕捉紧密连接的社区(捕捉同质性)。 · 进出参数 q: · q 值高:游走倾向于选择与 t 相连的节点(即“停留”),行为类似广度优先搜索,利于探索节点的直接邻居,捕捉同质性。 · q 值低:游走倾向于选择远离 t 的节点,行为类似深度优先搜索,鼓励向更远的网络区域探索,从而发现结构性。 通过调整 p 和 q,我们可以在“广度优先”和“深度优先”之间平滑过渡,使算法能适应不同特性的网络和应用需求。 三、算法流程 Node2Vec 的执行分为四步: 1. 预处理:根据给定的图、参数 p 和 q,为每个节点计算其邻居的转移概率。 2. 生成随机游走序列:从图中的每一个节点出发,模拟多次固定长度的随机游走。每次选择下一个节点时,都严格遵循上述有偏策略,最终生成一个庞大的节点序列集合。 3. 构建训练样本:将这些节点序列视作自然语言中的“句子”。对于每个中心节点,将其一定窗口大小内的邻居节点作为其上下文,构成(中心词,上下文词)的训练样本对。 4. 训练嵌入向量:采用 Word2Vec 中的 Skip-gram 模型进行训练。#推荐系统

返回新闻列表