Meta Path Based Random Walk复现思路【基于元路径的随机游走模型】

article/2025/9/11 18:28:28

title: Meta Path Based Random Walk
date: 2022-02-13 00:43:08
tags: NLP的一些收获

课题原因需要复现ARNN模型。即“An Attentional Recurrent Neural Networkfor Personalized Next Location Recommendation”这篇论文,早就听说随机游走模型以及PageRank之类的算法,现在算是自己动手复现了,因为其中需要使用随机游走来获得每个POI的neighbors,从而训练attention的权重。

本文详述该游走模型的复现思路,代码连接会给出,注释充足便不赘述,当然想必也存在不足,如有发现问题,还望及时提出以便修改。

首先描述一下随机游走(random walk)模型,给定一个含有n个节点都有向图,在有向图上定义随机游走,也就是一阶马尔可夫链,节点可用来表示状态,有向边表示状态之间的转移。

这里有一个假设,从一个节点通过有向边相连的所有节点的转移概率相等,当节点的type相同时,可以将转移关系描述为n阶的转移矩阵 M M M

它描述的是列下标对应的节点转移至行下标对应的节点的概率,换句话说, m i j m_{ij} mij是j节点指向i节点的概率。那么它的性质也有了。第一个共识很显然,第二个就是如果存在由j指向i的有向边,那么该位置的值位j节点的出度分之一,理由就是他们是等概率的。

这个矩阵 M M M也叫做随机矩阵(stochastic matrix)。

可以理解, M M M是用来进行表征节点的转移偏好的,但游走过程不仅由转移偏好决定,同时也受转移的起点决定。所以提出一个n维向量 V t V_t Vt来表征t时刻转移前,本次转移过程的初始节点的概率分布。

那么:

这里得到的t+1时间步的V就是时间步t这次转移活动在 V t V_t Vt初始分布前提下的转移结果分布,因此,可以以这种方式进行迭代,从而进行多次游走。

那么基于元路径的随机游走,大体与之相同,但是也有区别。既然要引入meta path的概念,那么图中节点的种类就不是唯一的,在ARNN要解决的任务中,图中存在三类节点,L:地点,U:访问者,V:地点种类,他们构成图。而基于“LL”、“LVL”、“LUL”这三类元路径的路径都要分别以他们为路径元素type的最小重复单元。

也就是每次转移的随机矩阵是需要不同的,“LL”就与上面讲的一样,而对“LVL”而言,需要两个随机矩阵,分别是(num_v, n)与(n, num_v),前者与地点分布向量相乘(单个path起点loc为1,其余均为0),从而得到type为v的节点概率分布向量,后者再与地点种类分布向量相乘,又得到地点分布向量,然后继续如此迭代。

“LUL”也是如此。

需要注意的是,这里我虽然将三类节点统一编码,并用三元组构成图谱,但并没有将所有类型的节点放在同一个tensor里,而是meta path在当前需要什么类型,我就单独把起点与终点的类型的节点构成tensor来进行计算,拓扑上讲就是讲图拆分,但是概率依赖关系不受影响。因为我认为所有实体的个数作为tensor的大小用来计算,效率会很低,不如拆分成多组tensor,直观且高效。

思路就是这样,代码实现方面,一开始按照@Xinbo Wu复现Personalised Page Rank的方法编写,使用dict来进行矩阵运算,结果显然是差强人意的,面对foursquare的数据运算效率就已经无法接受了,因此使用tensor放到GPU上进行运算,结果明显快了很多,效率勉强让人接受,其实也许可以通过解决矩阵稀疏的问题再加快游走效率,作者目前能力有限,没找到能更加提高效率的办法,希望大家给予思路。

代码链接如下:
https://github.com/hhy-huang/Meta-Path-Based-Random-Walk

【参考《统计学习方法》李航】


http://chatgpt.dhexx.cn/article/mT8gpcX9.shtml

相关文章

随机游走模型(Random Surfer Model)

《这就是搜索引擎:核心技术详解》第6章链接分析,本章主要介绍一些著名的链接分析方法。本节为大家介绍随机游走模型(Random Surfer Model)。 互联网用户在上网时,往往有类似的网络行为:输入网址&#xff0c…

R语言模拟和预测ARIMA模型、随机游走模型RW时间序列趋势可视化

最近我们被客户要求撰写关于​​​​​​​时间序列的研究报告,包括一些图形和统计输出。 当一个序列遵循随机游走模型时,就说它是非平稳的。我们可以通过对时间序列进行一阶差分来对其进行平稳化,这将产生一个平稳序列,即零均值…

高斯消元配合概率dp-图上随机游走模型

2023大厂真题提交网址(含题解): www.CodeFun2000.com(http://101.43.147.120/) 最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练习,体会真题难度。现在OJ已录入50道2023年最新大厂真题,同时在不断的更…

ARIMA模型、随机游走模型RW模拟和预测时间序列趋势可视化

原文链接:http://tecdat.cn/?p25122 当一个序列遵循随机游走模型时,就说它是非平稳的。我们可以通过对时间序列进行一阶差分来对其进行平稳化,这将产生一个平稳序列,即零均值白噪声序列。例如,股票的股价遵循随机游走…

随机游走(Random Walk)模型

Random Walk Model 1 模型及性质简介 给定一随机变量 u ( i ) { 1 , − 1 } u(i){\{1, -1\}} u(i){1,−1} 随机游走模型可表示为随时间 t t t变化的函数 y ( t ) ∑ i 1 t u ( i ) y(t)\sum_{i1}^{t} u(i) y(t)i1∑t​u(i) 几条随机游走可视化路线如下 性质一:…

读《PROSOSPEECH: ENHANCING PROSODY WITH QUANTIZED VECTOR PRE-TRAINING IN TEXT-TO-SPEECH》

当下韵律建模存在的问题: 1 提取的基音pitch信息存在误差,导致韵律合成出现问题 2 对韵律生成的相关要素 如基频 时长 能量等相互依存(dependent on each other) 共同产生了韵律相关的特征 3 韵律信息较高的可变性和高质量数据数目较少 导致不能完全学习…

UE4官方文档_Light Propagation Volumes_LPV方案

光线传播体积(Light Propagation Volumes)功能仍在开发中,不适用于生产。 本页面的内容: 启用光线传播体积基础场景设置光线传播体积设置 调整外观和性能 定向光源设置查看全局照明显示光线传播体积GI 替换材质切换其他注意事项 启…

Ue4 使用lpv快速增强间接光照效果

LPV缩写Light Propagation VolumesUe4自带,效果还可以,能快速在项目中实现不需要烘焙的间接光照效果主要原理使用光照生成点云进行对物体表面间接光进行计算测试版本4.16.3如何开启把r.LightPropagation1 加入到 consolevariables.ini 文件最后 &#…

实时GI方案概述

LPV CryTek原创的,但是貌似因为漏光的问题,没有广泛应用起来。 SVO VXGI Enlighten Enlighten的实时GI解决方案用的时预计算实时全局照明 (Precomputed Realtime GI),这是一种允许交互式更新场景照明的技术,采用的是辐射度算…

IPVLAN

IPVLAN 一、拓扑图二、实验内容三、配置信息 一、拓扑图 二、实验内容 假设S1交换机由于某种原因无法配置,利用IP地址划分在S3做相应配置使得PC能供与服务器正常通信 三、配置信息 1、接口信息配置 S1的0/0/1和0/0/2接口无任何配置,0/0/3接口配置了a…

LPI

概述 LPI全称是Locality-specific Peripheral Interrupts(LPIs),GICv3有两种方式支持LPIs: 1)使用ITS把从设备发送的EventID转换成LPI INTID 2)直接转发LPI INTID到Redistributors(GICR_SETL…

系统辨识和自适应控制

系统辨识知识要点 1.为什么采用负反馈技术 2.什么是自适应控制,为什么采用自适应控制,指出自适应控制的使用场合 3.学习了什么辨识方法,这些方法之间的联系 4.最小二乘中的无偏性和一致性指的是什么 5.什么是白噪声 白噪声是一种具有…

【状态估计】用于描述符 LTI 和 LPV 系统的分析、状态估计和故障检测的算法(Matlab代码实现)

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥 🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 …

Global Illumination_Light Propagation Volumes (LPV)

文章具体参照 https://ericpolman.com/ 本方法的思想就是把场景分成很多的小格子,然后计算每一个小格子里面的光照(LPV)。如果直接计算每个格子里面的光照那代价也是不可接受的,因此本算法用了一种很巧妙的方式来处理&#xff1…

LPV(Light Propagation Volumes)

lpv 测试了Light Propagation Volumes,全实时没有任何预处理的GI,而且可以适用任意场景。 文档很长,不过基本原理还是比较直白的: 生成reflect shadow map(rsm)。 将rsm信息用SH系数方式注入一个volumetexture中。 …

【GAMES-202实时渲染】4、3D空间全局光照(RSM、LPV、VXGI)

Lec7~8 1、Reflective Shadow Maps(RSM)2、Light Propagation Volumes(LPV)3、Voxel Global Illumination(VXGI) 1、Reflective Shadow Maps(RSM) RSM是一个特别经典的计算全局光照…

lpv

测试了Light Propagation Volumes,全实时没有任何预处理的GI,而且可以适用任意场景。 文档很长,不过基本原理还是比较直白的: 生成reflect shadow map(rsm)。 将rsm信息用SH系数方式注入一个volumetexture中。 在vol…

操作系统经典 pv过桥问题

Semophere bridge1; Semophere mutexNS1,mutexSN1;//用于保护countNS,countSN int countNS0,countSN0; Semophere s11,s20;//用于交替通过 StoN(){while(1){P(mutexSN);countSN;//来车了v(mutexSN);p(mutexSN);if(countNS0){//对面无车,则直接通过P(bridge);通过countSN--;V…

C语言解决四人/多人过桥问题

参加笔试的时候遇到一道经典的算法题,四人过桥问题。当时没写出来😅。 四人过桥问题:在一个黑夜里,有四个人需要过桥,每次只能通过两人,其中一人必须拿着手电筒;但只有一个手电筒,所…

小明过桥问题

小明家必须要过一座桥。小明过桥最快要1秒,小明的弟弟最快要3秒,小明的爸爸最快要6秒,小明的妈妈最快要8秒,小明的爷爷最快要12秒。每次此桥最多可过两人&…