dgl-01 deepwalk

本文介绍了Deepwalk的基本原理,它基于word2vec并利用随机游走采样节点来训练节点向量。DGL库提供方便的随机游走接口和skip-gram模型,支持多GPU训练。通过数据处理、模型训练和评估,展示了如何使用DGL实现Deepwalk。实验使用了YouTube数据集,并进行了多分类评估。

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


Deepwalk原理

在word2vec基础上,利用随机游走采样邻居节点再训练节点向量
1. 随机游走采样节点序列
2. 使用skip-gram model学习节点向量

随机游走需要注意:

  1. 每次以当前节点为起始点,利用深度优先遍历采样
  2. 采用多进程并行对节点进行采样
  3. 需要指定采样深度

word2vec的输入是一个seq一个seq输入,
deepwalk只是把seq改成了随机游走采样出来的序列,
根据应用场景来选用模型。

  • 比如开会的场景, 要训练用户向量表示,业务希望看到的是一个会议里面的用户相似度。那么把一个会议的uid作为一个序列,用word2vec训练即可,这种场景更多是1度邻居关系,不是特别关注2度邻居
  • 如果是用户点击序列来构图来训练用户向量,可能关注的信息并不是当前用户点击的序列,希望能够通过点击商品,去关联出其它同样点击商品的用户信息,类似于协同过滤,这时候就要考虑图结构1,2度甚至更深的关系,就用deepwalk来训练更好。

DGL训练

  1. 有写好的随机游走采样接口
  2. 有写好的skip-gram模型, 直接使用即可
  3. 有graph数据结构
  4. 支持多GPU训练
  5. dgl源代码: deepwalk

整体来说就是开箱即用,既可以简单处理数据后直接使用, 也可以看源码学习。重点是了解数据处理和加载,后续慢慢学习模型源码。

数据示例

dgl提供了各种图结构相关数据,这里用youtube文件, 一共有3个文件

-rw-r--r-- 1 root root 457K Jun 10  2020 youtube-label.txt
-rw-r--r-- 1 root root  86M Jun 10  2020 youtube-net.txt
-rw-r--r-- 1 root root 236K Jun 10  2020 youtube-vocab.txt

# youtube-label.txt, 表示每个node节点对应的类别
1       1
3       1
5       1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值