CS224W3.2——随机游走(Random Walk)

2023-10-29 15:04

本文主要是介绍CS224W3.2——随机游走(Random Walk),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一文中说道定义节点相似度函数的时候使用Random Walk方法:

  • CS224W3.1——节点Embedding

这节课来说一下Random Walk方法。在这篇中,我们来看一个更有效的相似函数——在图上随机游走的节点共现的概率。我们介绍随机游走背后的直觉,我们将优化的目标函数,以及我们如何有效地执行优化。我们引入了node2vec,它结合了BFS和DFS来推广随机游走的概念。

文章目录

  • 1. 背景
  • 2. Random Walk定义
  • 3. 为什么使用Random Walk?
  • 4. 无监督学习
  • 5. Random Walk流程
  • 6. 随机游走策略
    • 6.1 node2vec
    • 6.2 其他随机游走策略
  • 7. 总结

1. 背景

在这里插入图片描述

2. Random Walk定义

在这里插入图片描述

我们要怎样定义相似性和概率的概念?

在这里插入图片描述

下面是思想:

在这里插入图片描述

  • 首先,我们需要通过随机游走策略(后面会说)估计出,从节点u到节点v的概率。
  • 然后我们要优化embedding,用这种方式来编码随机游走统计。

3. 为什么使用Random Walk?

我们想使用随机漫步,因为它们很有表现力,很灵活。给出了一种灵活的随机节点相似度定义,该定义结合了具有信息的局部和高阶邻居。

这个想法是,如果通过随机游走,从节点u访问到节点v,那么节点u和节点v很可能是相似的(它们有类似的网络邻居它们彼此靠得很近,它们之间可能有多条路径等等)。

这在某种程度上也是有效的因为我们在训练时不需要考虑所有的节点对。我们只需要考虑随机漫步中共出现的成对。

4. 无监督学习

在这里插入图片描述

设置优化问题:

在这里插入图片描述

  • 随机游走优化:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

但是这样计算复杂度很高:

在这里插入图片描述

来自softmax的归一化项是罪魁祸首:

在这里插入图片描述

答案是可以的:

在这里插入图片描述

其中的负采样:

在这里插入图片描述

也就是说度越高的节点,越可能被选为负例。

  • 随机梯度下降(Stochastic Gradient Descent)优化损失函数:

在这里插入图片描述

在这里插入图片描述

5. Random Walk流程

在这里插入图片描述

6. 随机游走策略

在这里插入图片描述

6.1 node2vec

在这里插入图片描述

在这里插入图片描述

node2vec的思想是通过设置偏见(biased)去调整随机游走策略,可以是更倾向于广度优先搜索,那么这个时候就会更体现局部信息,也可以更倾向深度优先搜索,那么这个时候就会更体现全局信息。

在这里插入图片描述

两个超参数:

在这里插入图片描述

在这里插入图片描述

思想是记住来路。

参数设置:

在这里插入图片描述

在这里插入图片描述

总结:

在这里插入图片描述

6.2 其他随机游走策略

在这里插入图片描述

7. 总结

在这里插入图片描述

这篇关于CS224W3.2——随机游走(Random Walk)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/301464

相关文章

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

使用C#如何创建人名或其他物体随机分组

《使用C#如何创建人名或其他物体随机分组》文章描述了一个随机分配人员到多个团队的代码示例,包括将人员列表随机化并根据组数分配到不同组,最后按组号排序显示结果... 目录C#创建人名或其他物体随机分组此示例使用以下代码将人员分配到组代码首先将lstPeople ListBox总结C#创建人名或其他物体随机分组

AI学习指南深度学习篇-带动量的随机梯度下降法的基本原理

AI学习指南深度学习篇——带动量的随机梯度下降法的基本原理 引言 在深度学习中,优化算法被广泛应用于训练神经网络模型。随机梯度下降法(SGD)是最常用的优化算法之一,但单独使用SGD在收敛速度和稳定性方面存在一些问题。为了应对这些挑战,动量法应运而生。本文将详细介绍动量法的原理,包括动量的概念、指数加权移动平均、参数更新等内容,最后通过实际示例展示动量如何帮助SGD在参数更新过程中平稳地前进。

AI学习指南深度学习篇-带动量的随机梯度下降法简介

AI学习指南深度学习篇 - 带动量的随机梯度下降法简介 引言 在深度学习的广阔领域中,优化算法扮演着至关重要的角色。它们不仅决定了模型训练的效率,还直接影响到模型的最终表现之一。随着神经网络模型的不断深化和复杂化,传统的优化算法在许多领域逐渐暴露出其不足之处。带动量的随机梯度下降法(Momentum SGD)应运而生,并被广泛应用于各类深度学习模型中。 在本篇文章中,我们将深入探讨带动量的随

HDD 顺序和随机文件拷贝和存储优化策略

对于机械硬盘(HDD),顺序拷贝和随机拷贝涉及到磁头的移动方式和数据的读取/写入模式。理解这些概念对于优化硬盘性能和管理文件操作非常重要。 1. 顺序拷贝 定义: 顺序拷贝指的是数据从硬盘的一个位置到另一个位置按顺序连续读取和写入。这意味着数据在硬盘上的位置是线性的,没有跳跃或回溯。 特点: 磁头移动最小化:由于数据是连续的,磁头在读取或写入数据时只需要在磁盘的一个方向上移动,减少了寻道时

Numpy random.random()函数补充

np.random.random() np.random.random()的作用是生成指定形状的均匀分布的值为[0,1)的随机数 参数为size,也就是用于指定的形状大小 import numpy as npprint(np.random.random(size=(2, 2)))# [[0.19671797 0.85492315]# [0.99609539 0.66437246]]

算法:将数组随机打乱顺序,生成一个新的数组

一、思路 核心:缩小原数组的可随机取数范围 1、创建一个与原数组长度相同的新数组; 2、从原数组的有效的可取数范围 (不断缩小) 中随机取出一个数据,添加进新的数组; 3、将取出的随机数与原数组的最后一个数据进行置换; 4、重复步骤2和3。 二、代码 public class ArrayRandomTest {//将数组随机打乱顺序,生成一个新的数组public static int

Midjourney 随机风格 (Style Random),开启奇幻视觉之旅

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话:       Midjourney 最近推出了 "Style Random"(随机风格),这项功能可以让我们使用独特的随机 sref 代码创建图像,从而每次都能获得不同的美感。通过对这些功能的探索和尝试,我发现了一些很棒的风格,我很高兴能与大家分享,这样可以节省大家的时间,不用自己动手测试。在本文中,我将展示十个M