Graph Embedding-DeepWalk
一言以蔽之,DeepWalk是在graph上,通过随机游走来产生一段定长的结点序列,并将其通过word2vec的方式获得各个结点的embedding的算法。
DeepWalk一共涉及以下几个内容:
- 随机游走的一些知识
- DeepWalk如何做随机游走
- Word2Vec的一种训练方式
DeepWalk 使用图中节点与节点的共现关系来学习节点的向量表示。在描述节点与节点的共现关系的过程中,DeepWalk 给出的方法是使用随机游走 (RandomWalk) 的方式在图中进行节点采样。
随机游走
随机游走(Random Walk)是一种数学统计模型,它是一连串的轨迹所组成,其中每一次都是随机的。它能用来表示不规则的变动形式,如同一个人酒后乱步,所形成的随机过程记录.通常,随机游走一个简单的随机游走的例子是在整数在数轴上的随机游走,它从0开始,然后每一步以相同的概率移动+1或−1, 那么在图上的随机游走也按等概率的原则,随机的选取当前结点的邻居结点作为下一次访问的结点:所以理论上,RandomWalk 是一种可重复访问已访问节点的深度优先遍历算法。给定当前访问起始节点,从其邻居中随机采样节点作为下一个访问节点,重复此过程,直到访问序列长度满足预设条件。
DeepWalk的随机游走
这里贴一张DeepWalk的算法
uploading-image-790981.png
算法包含几个重要的参数:
- \(w\): Word2Vec的采样窗口大小
- \(d\): 每个结点embedding的维度
- \(\gamma\):这个参数意思是我要重复\(\gamma\)次从不同结点进行随机游走的次数,可以理解为进行\(\gamma\) 个 epoch
- \(t\): 游走的长度,也就是结点的数量
上面的\(\gamma\)意思也就是希望多重复几次相同开始结点的随机游走,作者认为这样能加快随机梯度下降的收敛速度。
具体实现层面:
我们可以把\(\gamma\)并行化处理,其次,算法中的shuffle(V)的话其实就是把所有的node都全部打乱,然后挨个的遍历一遍并做随机游走。在随机游走的时候,我们可能并不能保证每次都能拿到规定的长度,这时候可以不用管,直接break掉,有多少算多少,因为这些后面可以交给Word2Vec进行处理。
模拟一下随机游走:
def deepwalk_walk(walk_length, start_node):
walk_seq = [start_node]
while len(walk_seq) < walk_length:
curr_node = walk[-1]
cur_node_nbrs = list(G.neighbors(curr_node))
if len(cur_node_nbrs) > 0:
walk.append(random.choice(curr_node_nbrs))
else:
break
return walk_seq
Word2Vec的训练方式
拿到结点序列之后,我们将其看作是一段自然语言序列,这样就可以顺其自然的送到W2V里面train。
Graph Embedding-DeepWalk的更多相关文章
- 推文《阿里凑单算法首次公开!基于Graph Embedding的打包购商品挖掘系统解析》笔记
推文<阿里凑单算法首次公开!基于Graph Embedding的打包购商品挖掘系统解析>笔记 从17年5月份开始接触Graph Embedding,学术论文读了很多,但是一直不清楚这技术是 ...
- 关于embedding-深度学习基本操作 【Word2vec, Item2vec,graph embedding】
https://zhuanlan.zhihu.com/p/26306795 https://arxiv.org/pdf/1411.2738.pdf https://zhuanlan.zhihu.com ...
- Graph Embedding Review:Graph Neural Network(GNN)综述
作者简介: 吴天龙 香侬科技researcher 公众号(suanfarensheng) 导言 图(graph)是一个非常常用的数据结构,现实世界中很多很多任务可以描述为图问题,比如社交网络,蛋白体 ...
- Graph Embedding总结
图嵌入应用场景:可用于推荐,节点分类,链接预测(link prediction),可视化等场景 一.考虑网络结构 1.DeepWalk (KDD 2014) (1)简介 DeepWalk = Rand ...
- graph embedding 使用方法
无论是network embedding 还是graph embedding都是通过节点(node)和边的图,学出每个节点的embedding向量. 比较流行的算法有: Model Paper Not ...
- 深度解析Graph Embedding
Graph Embedding是推荐系统.计算广告领域最近非常流行的做法,是从word2vec等一路发展而来的Embedding技术的最新延伸:并且已经有很多大厂将Graph Embedding应用于 ...
- [论文阅读笔记] GEMSEC,Graph Embedding with Self Clustering
[论文阅读笔记] GEMSEC: Graph Embedding with Self Clustering 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 已经有一些工作在使用学习 ...
- 论文阅读 Real-Time Streaming Graph Embedding Through Local Actions 11
9 Real-Time Streaming Graph Embedding Through Local Actions 11 link:https://scholar.google.com.sg/sc ...
- GNN 相关资料记录;GCN 与 graph embedding 相关调研
最近做了一些和gnn相关的工作,经常听到GCN 和 embedding 相关技术,感觉很是困惑,所以写下此博客,对相关知识进行索引和记录: 参考链接: https://www.toutiao.com/ ...
- GNN 相关资料记录;GCN 与 graph embedding 相关调研;社区发现算法相关;异构信息网络相关;
最近做了一些和gnn相关的工作,经常听到GCN 和 embedding 相关技术,感觉很是困惑,所以写下此博客,对相关知识进行索引和记录: 参考链接: https://www.toutiao.com/ ...
随机推荐
- 黑马python基础课的一些题
1, 打印5行小星星 思路: 可以用1个星星乘以行数:还可以循环嵌套,外层循环控制行数,内层循环控制每一行应该输出多少个小星星,比如,第一行输出1个,第二行输出2个,内层循环可以当成列,只不过这个列要 ...
- 学习笔记:勒让德(Legendre)符号
授课老师:ybx.chh. 授课时间:2024/3/8. 授课内容纲要:勒让德符号及其性质(欧拉准则,高斯引理,二次互反律). 勒让德符号概括 好像在 OI 和 MO 当中都挺有用的. 勒让德符号的定 ...
- 英语字母z解析.drawio
英语字母z解析.drawio
- 软件推荐 Notable / 现改用 Vnote 了
https://notable.app/#download
- c 串口读写数据实例解析
一 前记 程序员就是不断地砌砖头,然后用砖头,把砖头模块化,用的时候直接调用,能够节省很多精力. 二 实例: 1 #include <stdio.h> 2 #include <uni ...
- java基本数据类型及运算的注意事项
java基本数据类型及运算的注意事项 一.基本数据类型 序号 类型 位数 范围 说明 整数类型 (最高位为符号位) byte 8位 -128(-27)~127(27-1) 默认类型为int 二进制0b ...
- 多线程系列(二十) -CompletableFuture使用详解
一.摘要 在上篇文章中,我们介绍了Future相关的用法,使用它可以获取异步任务执行的返回值. 我们再次回顾一下Future相关的用法. public class FutureTest { publi ...
- MediaCodec硬解流程
一 MediaCodec概述 MediaCodec是Android 4.1(api 16)版本引入的低层编解码接口,同时支持音视频的编码和解码.通常与MediaExtractor.MediaMuxer ...
- NVIDIA Jestson TX2 配置cuda以及cudnn的坑 ( JetPack-L4T 、Error: downloading update lock、TX2,TX1,TK1相关资源信息)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 总体最小二乘法(Total Least Squares)拟合直线
前言 最小二乘法是最小化每个点到直线的垂直误差,由于误差采用的是垂直误差,导致越接近垂直线(平行于\(y\)轴),拟合效果越差,无法拟合垂直线. 通过最小化每个点到直线的距离误差可以解决最小二乘法无法 ...