DeepWalk & Node2Vec

维基百科词条DeepWalk图嵌入

import networkx as nx
import pandas as pd
import numpy as np
import random
from tqdm import tqdm
import matplotlib.pyplot as plt
%matplotlib inlineplt.rcParams["font.sans-serif"]=["SimHei"]
plt.rcParams["axes.unicode_minus"]=False
df = pd.read_csv("seealsology-data.tsv", sep="\t")

构建无向图

节点过多,省去可视化

生成随机游走序列

训练word2vec模型

分析word2vec结果

PCA降维可视化

可视化全部词条的二维embedding

可视化某个词条的二维embedding

可视化某些词条的二维embedding

TSNE降维可视化

可视化全部词条的二维embedding

导出TSNE降维到二维之后的embedding

可视化全部词条的三维enmbedding

导出TSNE降维到三维之后的embedding

<悲惨世界>人物关系-Node2Vec图嵌入

导入数据集

G = nx.les_miserables_graph()
G.nodes
NodeView(('Napoleon', 'Myriel', 'MlleBaptistine', 'MmeMagloire', 'CountessDeLo', 'Geborand', 'Champtercier', 'Cravatte', 'Count', 'OldMan', 'Valjean', 'Labarre', 'Marguerite', 'MmeDeR', 'Isabeau', 'Gervais', 'Listolier', 'Tholomyes', 'Fameuil', 'Blacheville', 'Favourite', 'Dahlia', 'Zephine', 'Fantine', 'MmeThenardier', 'Thenardier', 'Cosette', 'Javert', 'Fauchelevent', 'Bamatabois', 'Perpetue', 'Simplice', 'Scaufflaire', 'Woman1', 'Judge', 'Champmathieu', 'Brevet', 'Chenildieu', 'Cochepaille', 'Pontmercy', 'Boulatruelle', 'Eponine', 'Anzelma', 'Woman2', 'MotherInnocent', 'Gribier', 'MmeBurgon', 'Jondrette', 'Gavroche', 'Gillenormand', 'Magnon', 'MlleGillenormand', 'MmePontmercy', 'MlleVaubois', 'LtGillenormand', 'Marius', 'BaronessT', 'Mabeuf', 'Enjolras', 'Combeferre', 'Prouvaire', 'Feuilly', 'Courfeyrac', 'Bahorel', 'Bossuet', 'Joly', 'Grantaire', 'MotherPlutarch', 'Gueulemer', 'Babet', 'Claquesous', 'Montparnasse', 'Toussaint', 'Child1', 'Child2', 'Brujon', 'MmeHucheloup'))
len(G)
77
plt.figure(figsize=(15,14))
pos = nx.spring_layout(G, seed=5)
nx.draw(G, pos, with_labels=True)
plt.show()

构建Node2Vec模型

from node2vec import Node2Vec
node2vec = Node2Vec(G,dimensions=32,p=2,q=0.5,walk_length=3,num_walks=600,workers=4)
Computing transition probabilities:   0%|          | 0/77 [00:00<?, ?it/s]
model = node2vec.fit(window=3,min_count=1,batch_words=4)
x = model.wv.vectors

节点Embedding聚类可视化

x.shape
(77, 32)
from sklearn.cluster import KMeans
import warnings
warnings.filterwarnings('ignore')
cluster_labels = KMeans(n_clusters=3).fit(x).labels_
cluster_labels
array([1, 1, 1, 1, 2, 1, 0, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 0,2, 1, 0, 0, 1, 0, 0, 2, 0, 0, 2, 1, 1, 1, 1, 2, 1, 1, 0, 2, 1, 2,1, 2, 2, 1, 1, 1, 1, 1, 2, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1,1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1])

将networkx中的节点和词向量中的节点对应

colors = []
nodes = [*G.nodes]
for node in nodes:idx = model.wv.key_to_index[str(node)]colors.append(cluster_labels[idx])

可视化聚类效果

plt.figure(figsize=(15,14))
pos = nx.spring_layout(G, seed=10)
nx.draw(G, pos, node_color=colors, with_labels=True)
plt.show()

节点Embedding降维可视化

查看Embedding

对Edge(连接)做Embedding

Node2Vec官方作者Aditya Grover代码解读

载入图

生成一条随机游走序列

采样得到所有随机游走序列

利用word2vec训练Node2Vec模型

结果分析和可视化

查看Node Embedding

查找相似节点

Node Embedding聚类

运行聚类

将networkx中的节点和向量中的节点对应

可视化聚类效果

DeepWalk Node2Vec相关推荐

  1. 从Deepwalk到Node2vec

    上篇谈到了deepwalk,整体流程就是按均匀分布从当前节点走到下一个节点,从而采样到一条条"句子",但是这样采样方式一定是对的吗?边上是否有权重影响呢?走回头路的概率也是等于选择 ...

  2. 【论文翻译】DeepWalk: Online Learning of Social Representations

    背景介绍 这几年图神经网络模型(如谱聚类的GCN.GAT等等)都挺火的,这些图神经网络即将节点或图映射到一个低维空间(称为图嵌入):而除了GNN还有很多图嵌入方法(在GNN之前图嵌入的概念常出现在流行 ...

  3. 2021入门推荐系统,应该从哪入手?

    由于近些年深度学习技术的飞速发展,大力加速推动了AI在互联网以及传统各个行业的商业化落地,尤其是推荐系统.计算广告等领域.由于推荐系统与提升用户量以及商业化变现有着密不可分的联系,各大公司都放出了众多 ...

  4. 详解GCN、GAT、凸优化、贝叶斯、MCMC、LDA

    如果你准备发AI方向的论文,或准备从事科研工作或已在企业中担任AI算法岗的工作.那么我真诚的向大家推荐,贪心学院<高阶机器学习研修班>,目前全网上应该找不到类似体系化的课程.课程精选了四大 ...

  5. 我室友拿到了字节50万年薪,太牛逼了

    由于近些年深度学习技术的飞速发展,大力加速推动了AI在互联网以及传统各个行业的商业化落地,其中,推荐系统.计算广告等领域彰显的尤为明显.由于推荐系统与提升用户量以及商业化变现有着密不可分的联系,各大公 ...

  6. GRADE:联合学习演化节点和社区表示的概率生成模型

    作者 | 李梓盟 审稿 | 董靖鑫 今天给大家介绍加拿大蒙特利尔大学的著名学者唐建等人发表的一篇文章.作者在文章中针对现有的图动力学建模方法不能明确地捕捉到时间上的社区动态这一问题,提出了通过在轨迹上 ...

  7. CS224W图机器学习课,斯坦福大牛主讲 | 视频、课件

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 斯坦福大学的CS224W 2021冬季公开课,最近上线了. 在分析.处理大规模图形的过程中,往往在计算.算法和建模等方面充斥着挑战. 而本课 ...

  8. CF、FM、DSSM、DeepFM等这些推荐模型的原理以及使用场景是什么?

    由于近些年深度学习技术的飞速发展,大力加速推动了AI在互联网以及传统各个行业的商业化落地,尤其是推荐系统.计算广告等领域.由于推荐系统与提升用户量以及商业化变现有着密不可分的联系,各大公司都放出了众多 ...

  9. 深度探索推荐系统算法在工业界如何应用

    由于近些年深度学习技术的飞速发展,大力加速推动了AI在互联网以及传统各个行业的商业化落地,尤其是推荐系统.计算广告等领域.由于推荐系统与提升用户量以及商业化变现有着密不可分的联系,各大公司都放出了众多 ...

最新文章

  1. 用户不见了_屋面瓦/外墙板再也看不见螺丝打胶了
  2. LeetCode_每日一题今日份_329.矩阵中的最长递增路径(没懂)
  3. 洛谷——P1068 分数线划定
  4. html里面超链接alt_前端html--超链接,表格,表单属性
  5. 三类危险的TXT文件
  6. UVA 10596 Morning Walk
  7. 数据结构和算法 D3
  8. MySQL MVCC原理
  9. PyTorch学习—2.张量的创建与张量的操作
  10. 阿里云服务器Discuz论坛程序安装
  11. android 时间水印相机,水印相机时间打卡
  12. ajax直接调用数据库数据库数据库,AJAX调用mysql数据库简单例子(示例代码)
  13. Ac.wing 149. 荷马史诗
  14. Atom-beautify插件的安装,使用过程
  15. 使用Dhtml和poi导出excle表格出现Error Type:LoadXMl Incorrect Json错误
  16. 深入浅出正则表达式(一)(zzl)
  17. 为什么计算机不显示桌面工具栏,word菜单栏不见了-电脑任务栏显示桌面图标不见了怎么办...
  18. Oracle中select SEQ_YX.nextval from dual是什么意思
  19. 2015年职称计算机考试宝典,2015年度职称计算机考试宝典.doc
  20. LCD液晶驱动芯片VK1625/VK1626可通过指令进人省电模式,附带参考电路图

热门文章

  1. SQL server 2008R2 数据库迅雷下载地址;百度网盘下载地址
  2. [附源码]SSM计算机毕业设计病历管理系统设计JAVA
  3. android 11.0 屏蔽所有电话来电功能
  4. AutoCAD自动加载ARX文件
  5. 拥抱国产云桌面,焱融科技与酷栈科技完成产品兼容认证
  6. Python上的高等数学实验
  7. pow在python中是什么意思_数学.pow在Python中是十进制的?
  8. 孩子阅读习惯的培养以及好处
  9. ptv服务器系统,红狮PTV安灯管理服务器系统有效提升国内某知名车企生产效率
  10. Linux yum 安装docker容器