graph embedding第一篇——deepwalk and line

论文研读-图嵌入-2018综述 图嵌入综述论文研读论文概述文章摘要关键词英文表达图嵌入是什么概念发展插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 论文概述 这是一篇2018年发表在IEEE知识与数据工程汇刊上的图嵌入的综述,论文题目为A Comprehensive Survey of Graph Embedding:P 阅读详情

参考

graph embedding
深度学习中不得不学的Graph Embedding方法
Embedding从入门到专家必读的十篇论文
DNN论文分享 - Item2vec
从KDD 2018最佳论文看Airbnb实时搜索排序中的Embedding技巧
Negative-Sampling Word-Embedding Method
推荐系统遇上深度学习(四十四)-Airbnb实时搜索排序中的Embedding技巧
理论优美的深度信念网络,Hinton老爷子北大最新演讲

前言

本系列主要介绍graph embedding的一些常用技术以及在推荐领域一些较为成功的graph embedding的应用,如airbnb embedding,阿里提出的EGES。

问题定义:
定义图 G = ( V , E ) G=(V,E) G=(V,E),其中 V V V代表图中所有的顶点, E E E代表所有的边。目标是用低维空间( d d d)的向量表达 V V V,其中 d < < ∣ V ∣ d<<|V| d<<∣V∣。映射到低维空间后,我们希望仍然保留原graph的一些特性:

  • 来自同一个社区的顶点映射的低维embedding尽可能的相似(邻居节点的低维embedding要相似,这可以理解为网络的局部结构)。
  • 将来自同一类特殊连接模式的顶点映射低维embedding尽可能的相似(刻画的是网络的全局结构,一般用高阶邻近度刻画)

而且graph emebdding存在的问题:

  • 稀疏性:大多数的现实网络非常稀疏,仅仅利用观察到的有限连接难以刻画效果比较好的表征。

DeepWalk

DeepWalk: Online Learning of Social Representations
deepwalk code
【Graph Embedding】DeepWalk:算法原理,实现和应用
deepwalk首次将深度学习技术引入到network分析中,从而学习到图顶点的社交表达social representation。其思想是,对于网络中的任一顶点 u u u,采用随机游走技术得到长度为 t t t(hyperparameter)的序列,这个序列可以被看成文本序列,利用word2vec技术学习到顶点的表达。

more information about random walk: https://github.com/phanein/deepwalk/blob/master/deepwalk/graph.py

def random_walk(self, path_length, alpha=0, rand=random.Random(), start=None):
   """ Returns a truncated random walk.
       path_length: Length of the random walk.
       alpha: probability of restarts.
       start: the start node of the random walk.
   """
   G = self
   if start:
     path = [start]
   else:
     # Sampling is uniform w.r.t V, and not w.r.t E
     path = [rand.choice(list(G.keys()))]

   while len(path) < path_length:
     cur = path[-1]
     if len(G[cur]) > 0:
       if rand.random() >= alpha:
         path.append(rand.choice(G[cur]))
       else:
         path.append(path[0])
     else:
       break
   return [str(node) for node in path]

思想非常简单,我们来看看其具体算法。

算法

deepwalk:

在这里插入图片描述

skipgram:
在这里插入图片描述
更多的训练细节,可以参考skip-gram的方法,比如:使用Hierarchical Softmax降低计算代价等。这部分内容,都将在word embedding中详述。

hyperparameter 探索

具体分析详见论文6.2.1节。

在这里插入图片描述

  • 对不同的数据集而言,不同 γ \gamma γ的差异非常一致。
  • γ = 30 \gamma=30 γ=30时几乎取得最好效果,继续提升 γ \gamma γ影响不大。
  • 对于不同的数据集,不同的 d d d与 T R T_R TR​的效果比较一致,都是:增加 γ \gamma γ时开始可能有显著的提升,但是当 γ > 10 \gamma > 10 γ>10时效果开始显著的下降。说明,仅需要少量的随机游走,我们就可以学到有意义的顶点的表示。

缺陷

  • 仅适合处理无权图,不适合处理带权重的图。
  • 并没有明确表示保留的是顶点的一阶邻近度还是二阶邻近度。

Line

LINE: Large-scale Information Network Embedding
【Graph Embedding】LINE:算法原理,实现和应用
LINE code
在这里插入图片描述
从上图可以看出:

  • 顶点6与顶点7直接相连,应该在低维空间中相似度较高(一阶邻近度)
  • 但顶点5,6应该也要相似度较高,因为他们共享相似的邻居(二阶邻近度)

Line模型分别为一阶邻近度和二阶邻近度进行建模,建模后的结果分别称之为LINE(1st)与LINE(2nd)。一般来说,对于有监督模型,我们可以将LINE(1st) concat LINE(2nd);但是对于无监督模型我们只能单独使用其中的一个,因为无监督任务没办法确认他们之间的融合权重。

那么,LINE(1st)和LINE(2nd)都是如何做的呢?

LINE(1st)

为了建模一阶邻近度,对于每一个无向边 ( i , j ) (i,j) (i,j),定义顶点 v i , v j v_i,v_j vi​,vj​之间的联合概率分布为:
在这里插入图片描述
在这里插入图片描述
想法就是让联合分布与经验分布的KL散度越小越好,优化 O 1 O_1 O1​,我们终将获得每个顶点的一阶表达。

LINE(2nd)

对于一阶邻近度我们的目标是与经验分布 越相近越好,那么对于二阶邻近度(考察本节figure 1的顶点5和6)我们的目标为 顶点的邻居节点 越相近越好,为了刻画邻居节点,则需要关注每个顶点对其邻居节点的经验分布:
在这里插入图片描述
同样的,定义顶点 v i v_i vi​生成器邻居节点 v j v_j vj​的条件概率为:
在这里插入图片描述
与LINE(1st)相同,目标是二者的KL散度,有:
在这里插入图片描述
在这里插入图片描述

模型优化

O 2 O_2 O2​的优化:
eq(6)的计算相当低效,这是因为在eq(4)中我们遍历了所有的顶点。这里可以参考skip-gram的negative sampling的方法(越热门的顶点,被采样的概率越高),将eq(4)修改为:
在这里插入图片描述
O 1 O_1 O1​的优化:
目标函数 O 1 O_1 O1​含有一个平凡解,即:
在这里插入图片描述
但这样的解是没有意义的,因此,为了避免这样的结果,论文同样采用负采样策略:
在这里插入图片描述
因为一阶邻近度是无向图,因此要对顶点 i , j i,j i,j均进行负采样。

边采样

我们采用一步随机梯度下降(ASGD)来优化算法:
在这里插入图片描述
由eq(8)可知,每次都要去乘以边的权重,而当边权分布的特别分散时,学习率将难以抉择:

  • 我们希望,对于权重较大的边权配以比较小的学习率;但是如果边权较小,将学习缓慢
  • 对权重较小配以比较大的学习率,但是如果边权较大,会梯度爆炸。

经上分析,我们自然希望边权是相等的。因此论文提出一个朴素的想法构建二元边,这个策略被称为边采样策略:

  1. 令边权 W = { w 1 , w 2 , ⋯   , w ∣ E ∣ } W=\{w_1,w_2,\cdots,w_{|E|}\} W={w1​,w2​,⋯,w∣E∣​},计算 w s u m w_sum ws​um为 W W W中所有边权之和。
  2. 随机采样一个随机数 S,观察S落入的区间:
    在这里插入图片描述
    对应的边就是被采样的边。

这个算法的问题是,如果边的数量非常大,则时间代价会很大。
论文还提出可以用alias table来解决,其采样边的时间复杂度会变成 O ( 1 ) O(1) O(1)。

more information about alias table: https://blog.youkuaiyun.com/haolexiao/article/details/65157026

总而言之,边采样的策略能够在不改变目标函数的情况下,提高随机梯度下降的效率,且不会影响最优化结果。

其他问题

低度数顶点

对于一些顶点由于其邻接点非常少会导致embedding向量的学习不充分,论文提到可以利用邻居的邻居构造样本进行学习。
在这里插入图片描述

新加入顶点

对于新加入graph的node i i i,如果它跟图中的node有链接,我们可以根据目标函数 O 1 , O 2 O_1,O_2 O1​,O2​分别计算他们的一阶和二阶的embedding:
在这里插入图片描述
在优化过程中,已有顶点的embedding 保持不变,仅更新新顶点的embedding。

如果顶点 i i i不与其他顶点相连,则需要借助其他信息(这也是alibaba 2018年的论文解决的问题)。

【论文总结】LINE和DEEPWALK方法总结与比较 LINE(large-scale information network embedding) 研究问题: 大规模信息网络嵌入低维向量空间。 模型优点: 1、可适应任意类型的网络:有向、无向、有权、无权。 2、采用一阶相似度和二阶相似度结合 3、边采样优化方法解决了SGD的局限性(边的权值变换很大 时,学习率难以选择,并且权值和乘以梯度导致梯度爆炸) 模型描述: 1、一阶相似度的LINE模型(... 阅读详情

相关推荐

Graph Embedding(DeepWalk,LINE,Node2vec)

Graph Embedding 属于表示学习。主要是将图中的节点/图表示成低维,实值,稠密的向量形式,使得到的向量能够做进一步的推理,对下游任务会很有帮助。图嵌入(顶点嵌入/图嵌入)方法主要有矩阵分解,随机游走和深度学习。 矩阵分解: 基于矩阵分解的方法是将节点间的关系用矩阵的形式加以表达,然后分解该矩阵以得到嵌入向量。通常用于表示节点关系的矩阵包括邻接矩阵,拉普拉斯矩阵,节点转移概率矩阵,节点...

nakaizura 6567

Graph Neural Networks (GNN)(五):Graph Embedding (DeepWalk, Line, Node2Vec)

Graph Neural Networks (GNN)(五):Graph Embedding (DeepWalk, Line, Node2Vec)

xiaopihaierletian的博客 765

Graph 探索之DeepWalk,Line,Node2Vec

Graph 探索之DeepWalk,Line,Node2Vec   网络表示学习**(Network Representation Learning,NRL),也称为图嵌入法(Graph Embedding Method,GEM):用低维、稠密、实值的向量表示网络中的节点(含有语义关系,利于计算存储,不用再手动提特征(自适应性),且可以将异质信息投影到同一个低维空间中方便进行下游计算)。也就是说...

yao1131的博客 2255

graph embedding 第二篇 node2vec and sdne

文章目录参考前言Node2VecSDNEItem2VecAirbnb EmbeddingBillion-scale Commodity Embedding for E-commerce Recommendation in Alibaba 参考 graph embedding 深度学习中不得不学的Graph Embedding方法 Embedding从入门到专家必读的十篇论文 DNN论文分享 - Item2vec 从KDD 2018最佳论文看Airbnb实时搜索排序中的Embedding技巧 Negative

init__的博客 548

【Graph Embedding/Network Embedding 图嵌入/网络表示学习】主要工作(Deepwalk/LINE/node2vec)总结

本文介绍了图嵌入/网络表示学习领域比较重要的三个工作DeepWalk/LINE/node2vec,重点在于它们的思路、算法以及其中关联。

TsingM 3617

Graph Embedding在人力资本领域的应用

一切皆可Embedding 在NLP(自然语言处理)中,自然语言无法直接应用到数学模型的建立中,需要将其映射到欧式空间。Embedding就是解决如何将自然语言表示为向量的,Goo...

ifchange的博客 607

图神经网络分享系列-LINE(二)

摘要:本文深入探讨了LINE模型在大规模信息网络嵌入中的应用。该模型通过保留一阶邻近性(直接相连节点间的相似性)和二阶邻近性(共享相似邻居的节点间的相似性)来有效捕捉网络结构。针对优化计算复杂度高的问题,采用负采样和边采样技术提升效率,并讨论了对低度数顶点的处理策略。LINE模型能同时处理有向、无向和加权网络,具有线性时间复杂度,适用于超大规模网络嵌入任务。

flying_1314的博客 1053

【AI理论学习】Graph Embedding理论介绍及5种算法演示(DeepWalk)

DeepWalk算法思想与 word2vec 类似,**从一个初始节点沿着图中的边随机游走一定的步数,将经过的节点序列视为句子。**那么,从不同的起点开始的不同游走路线就构成了不同的句子。当获取到足够数量的句子(节点访问序列)后,可以使用 skip-gram 模型对每个节点学习其向量表示。

小哲的博客 2079

详解Graph-Embedding之DeepWalk、Line、Struct2vec

网易的几篇关于GAT和GCN的模型改造有点难,准备先拿其用过的Graph Embedding作为入门练手。 目录 前言 算法详解 前言 原文链接:Line -GraphEmbedding 本来想从DeepWalk写起的,感觉最近事情有点多,这个方法又有点简单,就不想写了,具体可以看以下几个链接:一言以蔽之,采用深度遍历的方法,进行随机游走,得到许多句子作为训练库,然后使用skip-gram学习表示向量,这个表示向量就是embedding。 DeepWalk:DeepWalk;生动解释;通俗理解

Data _designer 1210

ArcMap学习笔记(三)地图数字化

地图数字化前言地图数字化实现步骤1.加载地形图2.新建要素图层3.开启编辑环境4.设置捕捉环境5.选择数字化图层6.数字化控制点7.数字化等高线8.数字化图幅边框9.保存数字化成果总结 前言 使用软件:ArcMap10.4.1中文版 如果出现侵权,请在评论留言,我会及时删除,谢谢。 地图数字化 空间数据采集(输入)是将现有的地图、外业观测成果、航空像片、遥感图片数据、文本资料等转换成GIS可以直接...

JayWang博客 1万+

VMware Workstation Pro必备技巧:5分钟搞定Ubuntu虚拟机磁盘瘦身(附常见错误解决)

本文详细介绍了如何为VMware Workstation Pro中的Ubuntu虚拟机进行磁盘瘦身,解决.vmdk文件只增不减的问题。通过清理系统垃圾、使用零填充空闲空间,并利用vmware-toolbox-cmd或vmware-vdiskmanager工具进行压缩,可有效回收被无效占用的磁盘空间。文章还提供了常见错误解决方案和预防性维护建议,帮助用户高效管理虚拟机存储。

sea99的博客 297

从Random Walk(随机游走)到Graph Embedding(DeepWalk,LINE,Node2vec,SDNE,Graph2vec,GraphGAN)

前言 本文转载自csdn博主上杉翔二系列博客并外加一些自己收集的资料,在这里仅作为自己学习之用。 原文链接:https://blog.youkuaiyun.com/qq_39388410/article/details/87904974 1. 随机游走 普通数据挖掘方法大多都是确定性模型,对于输入的输出往往没有随机性,而一些能给出概率的随机性模型似乎更加的适用,如蒙特卡洛模拟,即模拟输入一堆的随机数进行评估。 1.1 几何布朗运动(Brownian motion) 布朗运动是将看起来连成一片的液体,在高倍显微镜下看其实

qq_44015059的博客 1万+

AXI4接口说明

ACLK:全局AXI接口时钟输入(建议与系统时钟保持一致)ARESET_n:全局AXI接口复位信号,低电平有效。PS:在HBM AXI接口应用中,此复位端口仅应在数据传输开始前使用。若在传输开始后使用,会导致AXI接口与内存控制器失步(out-of-sync)。当开关启用时,IP核会将所有ARESET_n引脚内部连接在一起——因为内存作为一个整体工作。

rhtul的博客 1522

Graph Embedding 基础 (DeepWalk, LINE, Node2vec, ComE, ComE+)

Graph EmbeddingDeepWalk:图网络与NLP的巧妙融合先验知识Random WalkSkip-GramDeepWalkLINE:不得不看的大规模信息网络嵌入先验知识一阶相似性的LINE模型二阶相似性的LINE模型模型优化与输出结果 因为莫名其妙的审稿意见(laji意见还拒稿了)就要开始学习Graph Embedding, 直接看论文看的一头雾水,所以来优快云上搜集资料,从零开始学习Graph Embedding。 DeepWalk:图网络与NLP的巧妙融合 学习资料:DeepWalk:图

qq_40087229的博客 3105

软件工程期末知识点总结【超详细】

生命周期模型(过程模型):瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。2、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N)3、语句覆盖 就是设计足够的调试用例,使得程序中的每个语句至少执行一次。 5、判定覆盖就是设计足够的测试用例,使得程序中每个判定的取“真”分支和取“假”分支至少都执行一次,判定覆盖又称分支覆盖 6、条件覆盖就是设计足够的测试用例,使得程序判定中的每个条件能获得各种可能的结果。7、软件开发时期通常分成4个阶段:总体设计、详细设计、编码和单元测试、综合测试。

这个人好有趣....hh 1万+

AI 代码生成工具的质量评估体系

基础需求层包括响应速度(Response Time)和界面友好性(UI Friendliness),期望需求层涵盖智能提示(Smart Suggestions)和个性化配置(Personalization),兴奋需求层则涉及多模态交互(Multimodal Interaction)和代码进化(Code Evolution)。在金融领域,代码审计合规性(Compliance Audit)权重应提升至40%,而在Web开发中,API兼容性(API Compatibility)的权重需达到35%。

2503_92418637的博客 3373

几种常见的Graph Embedding方法

图(Graph)是一个常见的数据结构,现实世界中有很多很多任务可以抽象成图问题,比如社交网络,蛋白体结构,交通路网数据,以及很火的知识图谱等,甚至规则网络结构数据(如图像,视频等)也是图数据的一种特殊形式。针对graph的研究可以分成三类:1.简单的graph算法:如生成树算法,最短路算法,复杂一点的二分图匹配,费用流问题等等;2.概率图模型:将条件概率表达为图结构,并进一步挖掘,典型的有条件随...

RecDay2018's Blog 1万+

MinerU 系列教程 | 第二课:快速上手 -- 安装与第一次解析

本篇教程作为的第二课,将带你从零完成 MinerU 的环境搭建、模型下载,并成功运行第一次文档解析。上一课我们从宏观视角认识了 MinerU,本课开始正式动手实践。

weixin_43674738的博客 301

Graph Embedding避坑指南:从DeepWalk到Graph2vec的6大算法选型实战

本文深入解析Graph Embedding技术在电商行为图谱中的应用,对比DeepWalk、Node2vec等六大算法的工业指标与优化策略。针对千万级节点的内存瓶颈、计算效率等痛点,提供PyTorch基准测试框架和分布式优化方案,帮助开发者在推荐系统等场景实现高效图嵌入工程化落地。

t8u9v0的博客 886

Response Instance 详解:在 ABAP OData Client Proxy 中读懂每一次响应

ABAP OData Client Proxy中的Response Instance是关键信息载体,封装了业务数据及调用上下文(如分页、delta link等)。响应实例在执行请求后自动生成,根据请求类型返回特定接口(如READ返回/IWBEP/IF_CP_RESPONSE_READ)。响应抽象与OData版本解耦,支持统一处理V2/V4服务。常见响应类型包括单实体读取、列表读取(支持分页和增量同步)、创建/更新/删除响应等。开发时可通过响应对象的安全类型方法获取数据,如get_business_data获

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 137

道通无人机信号分析

本文分析了道通无人机及其遥控器的EIRP参数(表1-2),发现不同地区的功率标准存在差异。针对5230MHz图传信号,观测到四帧连续信号结构类似LORA分包传输。脉冲分析(表3)显示固定3.9ms脉宽和1.1ms间隔。频谱异常表现为非矩形窗特征,经分析系多径效应引起的频率选择性衰落所致——不同路径传播导致特定频率出现相长/相消干涉,形成波峰波谷的起伏频谱特征。这种现象与无线信道的多径时延、衰减差异直接相关。

jiaotinglang2580的博客 487

图嵌入(Graph Embedding)方法小结

Embedding 定义:Embedding在数学上是一个函数,即将一个空间的点映射到另一个空间,通常是从高维抽象空间映射到低维的具象空间。 意义:高维数据转换到低维有利于算法的处理,同时解决one-hot向量长度随样本变化而变化以及无法表示两个实体之间的相关性这一问题。 常用方法:word2vec,根据语料库中单词的共线关系求出每个单词的embedding。常用的word2vec模型有cbow...

外婆家的大灰狼 3941

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

graph embedding 论文及源码阅读 deepwalk & line & node2vec & bine

最近学习了下graph embedding方面的内容,主要看了如下几篇论文及对应开源代码,记录下。 DeepWalk: Online Learning of Social Representations LINE: Large-scale Information Network Embedding node2vec: Scalable Feature Learning for Network...

KIDGIN7439的专栏 1920

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

推荐系统(二)Graph Embedding之DeepWalk

本篇博客概述了DeepWalk的由来以及算法的基本过程,其基本内容包括:1. Graph Embedding的由来,2. Graph Embedding中Graph的构建,3. RandomWalk+Word2Vec算法介绍,3. 代码实现,4. DeepWalk算法的缺点

更木的博客 2724

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【推荐算法】Graph Embedding系列之LINE: Large-scale Information Network Embedding

LINE能够将非常大的信息网络embedding到低维的向量空间,同时LINE适用于带权或者不带权的有向图和无向图。LINE定义了一阶相似度和二阶相似度,并在目标函数保留了网络的局部结构和全局结构。在优化目标函数时,LINE采用了边抽样算法,提高了其有效性和效率。

长相忆兮长相忆的专栏 1472
上一篇: Induction Networks for Few-Shot Text Classification
下一篇: graph embedding 第二篇 node2vec and sdne
一只小菜狗:D
博客等级 码龄7年 4658粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值