[Datawhale][CS224W]图机器学习(四)

news2024/11/13 16:39:09

目录

    • 一、回顾
    • 二、图嵌入概述
      • 2.1 补充知识——表示学习
      • 2.2 图嵌入
      • 2.3 图嵌入-基本框架 编码器——解码器
        • 2.3.1 编码器
        • 2.3.2 解码器
        • 2.3.3 执行步骤
      • 2.4 随机游走
        • 2.4.1 随机游走的方法步骤
        • 2.4.2 计算优化
    • 三、随机梯度下降
      • 3.1 SGD步骤
      • 3.2 批处理
    • 四、node2vec
    • 五、基于随机游走的图嵌入的缺点:
    • 六、deepwalk优缺点
  • 参考文献

一、回顾

本门课程主线是将图转化为连续稠密的向量,本文及之前的文章均为不讲属性特征,只讲社群连接特征。

如何将节点转化为D维向量

  • 人工特征学习:节点重要度,集群系数,Graphlet
  • 图表式学习:通过随机游走构造自监督学习网络。DeepWalk,Node2Vec
  • 矩阵分解
  • 深度学习:图神经网络

本文主要讲的是图嵌入(Graph Embedding)

由节点,边,子图,全图,基于手工构造特征,矩阵分解,随机游走,图神经网络

二、图嵌入概述

2.1 补充知识——表示学习

表示学习:自动学习特征。将各模态输入转为向量

2.2 图嵌入

只利用节点连接信息,没有节点属性信息

将节点映射为d维向量

低维:向量维度远小于节点数

连续:每个元素都是实数(有正有负,有大有小)

稠密:每个元素都不为0

image-20230220185833863

2.3 图嵌入-基本框架 编码器——解码器

2.3.1 编码器

  1. 实现功能:输入一个节点,输出这个节点对应的D维向量
  2. 最简单的编码器:查表(将所有节点的相关度直接写为一张表) E N C ( v ) = z v = Z ⋅ v ENC(v)=z_v=Z\cdot v ENC(v)=zv=Zv
  3. Z表示一个矩阵,每一列表示一个节点,行数表示向量的维度
  4. 优化Z矩阵的方法:DeepWalk、Node2Vec

image-20230220192547135

2.3.2 解码器

  1. 实现功能:输入需人为定义的节点相似度,输出向量点乘数值(余弦相似度)。

    s i m i l a r i t y ( u , v ) ≈ z v T z u {similarity(u,v)\approx z_v^Tz_u} similarity(u,v)zvTzu

    e.g若定义两节点相连即位相似,则 i f if if两节点之间相连,则向量点乘数值会接近1; e l s e else else节点不相连,则节点向量会接近垂直,向量点乘数值会接近0.

  2. 直接优化嵌入向量,使用随机游走方式,如果两个节点出现在同一个随机游走序列中,就反映了这两个节点是相似的,并与下游任务无关

2.3.3 执行步骤

  1. 编码器:节点->D维向量。
  2. 定义一个节点相似度函数。
  3. 解码器DEC地图从嵌入到相似度评分。
  4. 迭代优化每个节点的D维向量,使得图中相似节点向量数量积大,不相似节点向量数量积小。

2.4 随机游走

  • 定义:随机游走(英语:Random Walk,缩写为 RW),是一种数学统计模型,它是一连串的轨迹所组成,其中每一次都是随机的。

  • 可以与NLP一一对应

image-20230220194958763

2.4.1 随机游走的方法步骤

  • P ( v ∣ z u ) P(v∣z_u) P(vzu):从 u u u节点触发的随机游走序列经过 v v v节点的概率
  • 使用softmax方法计算 P ( v ∣ z u ) P(v∣z_u) P(vzu) σ ( z ) [ i ] = e z [ i ] ∑ j − 1 K e z [ j ] σ(z)[i]=\frac{e^{z[i]}}{∑^K_{j-1}e^{z[j]}} σ(z)[i]=j1Kez[j]ez[i]
  • 具体步骤:
    1. 采样得到若干随机游走序列,计算条件概率 P ( v ∣ z u ) P(v∣z_u) P(vzu)
    2. 迭代优化每个节点的D维,使得序列中共现节点向量数量积大,不共现节点向量数量积小,计算结果反映了向量相似度
  • 优点:表示能力、计算便捷、无监督/自监督学习问题(没用到任何标签)
  • 使用极大似然估计,优化目标函数 m a x f ∑ u ∈ V l o g P ( N R ( u ) ∣ z u ) \underset{f}{max}\mathop{\sum}\limits_{u\in V}logP(N_R(u)|z_u) fmaxuVlogP(NR(u)zu)其中 N R ( u ) N_R(u) NR(u)表示从u节点出发的随机游走序列的所有邻域节点
  • 整个优化的目标函数:image-20230220200120474其中image-20230220200137887遍历所有节点,并遍历从u节点出发的随机游走序列的所有邻域节点,计算节点u和节点v在该随机游走序列中共现。

2.4.2 计算优化

1.负采样

l o g ( e x p ( z u T z v ) ∑ n ∈ V e x p ( z u T z n ) ) ≈ l o g ( σ ( z u T z v ) ) − ∑ i = 1 k l o g ( σ ( z u T z n i ) ) , n i   P v ( 非均匀分布采样 ) log(\frac{exp(z_u^Tz_v)}{\mathop{\sum}\limits_{n\in V}exp(z_u^Tz_{n})})\approx log(\sigma(z_u^Tz_{v}))-\mathop{\sum}\limits_{i=1}^{k}log(\sigma(z_u^Tz_{ni})),n_i ~P_v(非均匀分布采样) log(nVexp(zuTzn)exp(zuTzv))log(σ(zuTzv))i=1klog(σ(zuTzni)),ni Pv(非均匀分布采样)

2.k的选择,最好在5~20之间

3.理论上同一个随机游走序列中的节点不应当被用为负样本,但是在图神经网络中,图的样本足够大,使得很难重复,因此使用同一图

三、随机梯度下降

3.1 SGD步骤

  1. 采样,生成Mini-batch
  2. 前向推断,或损失函数
  3. 反向传播,求每个权重的更新速度
  4. 优化更新权重

3.2 批处理

image-20230220203022270

四、node2vec

可设置深度优先还是广度优先

image-20230220203236213

由两个参数p,q控制是上回还是去下一个节点

image-20230220203223341

Node2Vec算法:

计算每条边的随机游走概率

u节点为出发点,长度为l*,生成r*个随机游走序列

用随机梯度下降优化目标函数

五、基于随机游走的图嵌入的缺点:

  1. 随机游走的图嵌入方法都是对图中已有的节点计算特征,无法立刻泛化到新加入的节点,其实是某种程度的过拟合
  2. 只是探索相邻局部信息,只能采样出地理上相近的节点
  3. 仅利用图本身的连接信息,并没有使用属性信息

六、deepwalk优缺点

image-20230220204037089

参考文献

[1] 斯坦福CS224W图机器学习、图神经网络、知识图谱【同济子豪兄】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/359602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vivo x TiDB丨解决云服务海量数据挑战

vivo 是一家全球性的移动互联网智能终端公司,品牌产品包括智能手机、平板电脑、智能手表等 ,截至 2022 年 8 月,已进驻 60 多个国家和地区,全球用户覆盖 4 亿多人。 vivo 为用户提供了在手机上备份联系人、短信、便签、书签等数据…

k8s-kubeadm部署

文章目录一、准备环境二、安装docker三、安装kubeadm,kubelet和kubectl四、部署容器网络五、部署UI一、准备环境 1.安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统 CentOS7.x-86_x6…

论文阅读:pixelNeRF: Neural Radiance Fields from One or Few Images

中文标题:从一或少量图像中构建神经辐射场 提出问题 NeRF效果虽然惊艳,但是其需要大量环绕图像以及长时间的训练。 创新点 与原始的NeRF网络不使用任何图像特征不同,pixelNeRF将与每个像素对齐的空间图像特征作为输入。也可以集合更多输入…

计算机网络(第三版) 胡亮 课后习题第三章答案

计算机网络(第三版) 胡亮 课后习题第三章答案 1、双绞线电缆有哪两种? 非屏蔽双绞线(UTP)和屏蔽双绞线(STP) 2、UTP分为几类? UTP安好电气性能分为8种类型:1类、2类、3类、4类、5类、超5类、6类…

python基于vue学生毕业离校系统

可定制框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发 目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 2 系统开发环境 4 3 系统分析 6 3.1系统可行性分析 6 3.1.1经济可行性 6 3.1.2技术可行性 6 3.1.3运行可行性 6…

面试攻略,Java 基础面试 100 问(十二)

如何将字符串转换为基本数据类型? 调用基本数据类型对应的包装类中的方法 parseXXX(String)或 valueOf(String)即可返回相应基本类型; 如何将基本数据类型转换为字符串? 一种方法是将基本数据类型与空字符串(””)连…

面试官最喜欢的软件测试工程师简历模板

目录 个人信息 求职意向 职业技能 工作经历 项目经历 工作经历 项目经历 教育经历 自我评价 总结 个人信息 姓 名:xxx 性 别:女 手 机:xxxxxxxxxxxx 最高学历:统招硕士 工作年限&am…

专业运动耳机哪个牌子好、专业运动耳机推荐

近些年,户外运动兴起,运动耳机迎来爆发增长,拒绝运动乏味,追求健康运动方式,已经成为当下年轻人的共同诉求。跑步骑行听音乐,已经是运动爱好者再熟悉不过的操作,很多人在运动中离不开音乐的节奏…

【小程序】新版uniapp登录流程以及获取头像和昵称

众所周知,小程序新版登录无法拿到头像和昵称! 这篇文章讲解如何获取到微信用户昵称和头像 成品效果 步骤一,点击登录,获取token 步骤二,登录按钮隐藏,展示上传按钮 步骤三,点击上传按钮…

k8s介绍-组件架构-核心

文章目录一、Kubernetes介绍1、什么是Kubernetes?2、为什么需要Kubernetes,它能做什么?3、k8s的特性二、k8s集群架构与组件1、Master组件2、配置存储中心——etcd3、Worker Node 组件3.1 Node节点的工作流程:●Kubelet●Kube-Prox…

本地主机搭建服务器后如何让外网访问?快解析内网端口映射

本地主机搭建应用、部署服务器后,在局域网内是可以直接通过计算机内网IP网络地址进行连接访问的,但在外网电脑和设备如何访问呢?由于内网环境下,无法提供公网IP使用,外网访问内网就需要一个内外网转换的介质。这里介绍…

浅谈Kylin

1、什么是KylinApache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据。它能在亚秒内查询巨大的表。2、谁在使用Kylin3、工作原理Apache Kylin 的工作原理就是对…

图解LeetCode——剑指 Offer 63. 股票的最大利润

一、题目 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 二、示例 2.1> 示例 1: 【输入】 [7,1,5,3,6,4] 【输出】 5 【解释】 在第 2 天(股票价格 1)的时候买入&#xff…

vue入门(四)组件基础,$emits简单用法

上一篇&#xff1a;vue入门&#xff08;三&#xff09;事件&#xff08;方法&#xff09;处理、侦听器、模板引用 1.组件最基础的用法&#xff1a; 首先有一个button.vue的组件&#xff0c;里面只画了一个按钮 button.vue: <script> export default({data(){return{but…

备考心得100天PMP通关经验分享

01对PMP的认识 作为一线技术人员&#xff0c;在通信行业工作多年&#xff0c;深感项目管理的重要性。一个成功的项目&#xff0c;除了要把好技术关&#xff0c;项目的组织、协调、沟通、执行、风险管控等每一项都事关项目的成败。由此想到了田忌赛马的故事&#xff0c;科学合理…

用ChatGPT进行营销的一些可能场景

ChatGPT的热度席卷了全球科技圈。发布短短五天内&#xff0c;ChatGPT用户数就超过100万人&#xff1b;两个多月后月活用户突破1亿。 ChatGPT是谁&#xff1f; ChatGPT是由OpenAI开发的一个人工智能聊天机器人程序&#xff0c;于2022年11月推出。该程序使用基于GPT-3.5架构的大…

「mysql是怎样运行的」从一条记录说---InnoDB记录存储结构

「mysql是怎样运行的」从一条记录说—InnoDB记录存储结构 文章目录「mysql是怎样运行的」从一条记录说---InnoDB记录存储结构一、InnoDB页介绍二、InnoDB行格式2.1 COMPACT行格式2.2 REDUNDANT行格式2.3 溢出列2.4 DYNAMIC行格式和COMPRESSED行格式三、总结一、InnoDB页介绍 I…

字节终面,一道Linux题难住我了

以下是一道难道系数中高并且高频出现的linux面试题&#xff0c;题目具体要求如下&#xff1a; linux面试题&#xff1a; 某文件有多列数据&#xff0c;空格隔开&#xff0c;统计第n列单词&#xff0c;打印出现频率最高的5个单词。 解答这道面试题需要用到3个linux命令&#xff…

Spring @Asyn使用不当引起OOM

问题 生产环境偶尔出现pod重启&#xff0c;排查后发现是因为发生了OOM&#xff0c;才导致pod重启的。 查看日志&#xff0c;有如下错误 报错信息中描述为无法创建新的本地线程&#xff0c;根据堆栈的上线文&#xff0c;发现是因为异步接口使用了SimpleAsyncTaskExecutor执行器…

x79主板M.2无法识别固态硬盘

问题描述: 这几天在装电脑&#xff0c;买了块M.2接口固态硬盘。装上去始终无法读取到硬盘&#xff0c;一开始以为是寨板Bios问题不支持M.2的设备。更新了最新的BIOS然后还是没有识别出来&#xff0c;然而将日常用的电脑PM510硬盘装上发现可以识别&#xff0c;而且日常用电脑也…