Graph Embedding(一)—— DeepWalk的原理及实现

本文介绍了Graph Embedding的概念,重点讲解了DeepWalk的原理,包括如何通过随机游走生成节点序列,并利用skipgram模型进行训练。在wiki数据集上的实验展示了DeepWalk的有效性,相似节点在词向量空间中聚集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 概念介绍

:是一种非常常用的结构,包含边和节点;

Graph Embedding:图中的每个节点会对应一个词向量,某两个节点挨的越近(或者联系越紧密、或者共同的边越多),词向量在词向量空间里也就越近(想想单词的词向量的定义,和这差不多,就是把文字中的单词迁移到图的节点了)

2. deepwalk

想想单词的词向量训练的时候,是不是根据文本序列,生成中心词和上下文词列表分别作为输入输出训练skipgram模型的;那么对于图来说,怎么生成节点序列呢?有节点序列就可以生成中心节点和上下文节点列表,就可以训练skipgram模型了!并且这个节点序列一定要像文本序列一样的分布,即联系得紧密,就越能共现,deepwalk生成的节点序列就有这个特点!

那么deepwalk到底是什么呢?怎么生成节点序列呢?它真的是经典又简单。

顾名思义:随机游走,我从任意一个节点出发,随机选择和该节点有边的一个节点作为下一个节点,不断重复这个过程,就生成了一个节点序列啦!用我们的意念想一想!是不是采样的节点序列多了以后,联系得越紧密的节点,就越能共现。严谨的同分布证明在paper里有,感兴趣的可以看!

3. deepwalk流程

4.deepwalk核心代码

    def deep_worker(self):
        for _ in range(self.nums):
            for node in self.G.nodes():
                self.node_series.append(self
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值