随机游走

【论文总结】LINE和DEEPWALK方法总结与比较

血红的双手。 提交于 2020-03-17 07:53:58
LINE(large-scale information network embedding) 研究问题: 大规模信息网络嵌入低维向量空间。 模型优点: 1、可适应任意类型的网络:有向、无向、有权、无权。 2、采用一阶相似度和二阶相似度结合 3、边采样优化方法解决了SGD的局限性(边的权值变换很大 时,学习率难以选择,并且权值和乘以梯度导致梯度爆炸) 模型描述: 1、一阶相似度的LINE模型(只用于无向图) 为了模拟一阶相似度,对于每个无向边(i,j),我们定义顶点vi和vj之间的联合概率如下: (sigmoid function,向量越接近,点积越大,联合概率越大。其中,ui表示节点vi对应的向量。) 经验概率可以定义为:(两点之间边的权值越大,经验概率越大) 为了保持一阶相似性,一个简单的办法是最小化下面的目标函数: 我们选择最小化两个概率分布的KL散度,用KL散度代替d(·,·)并省略一些常数,得到: KL散度公式: 只考虑一阶相似度的情况下,改变同一条边的方向对于最终结果没有什么影响。因此一阶相似度只能用于无向图,不能用于有向图。 2、二阶相似度的LINE模型 二阶相似度可以用于 有向图和无向图 。下面是针对有向图的算法(在无向图中,可以将每条边看成是两条方向相反且有相同权重的有向边)。   二阶相似度假设共享邻居的顶点彼此相似。每个顶点扮演两个角色

[PKUWC2018]随机游走——Min-Max容斥+DP+FWT

心已入冬 提交于 2020-03-02 19:44:07
题面    LOJ#2542 解析   求到$S$集合每个点走一次的期望,即求$E(max(S))$,套上$Min-Max$容斥,即是求$E(min(T)),T\subseteq S$   考虑对每种集合做一次$dp$,外层枚举$P \subseteq U$,$dp[u]$表示点$u$到$P$集合内任意一点的期望时间, $deg[u]$表示点$u$的度数,$fa$为$u$的父亲节点,$v$为$u$的儿子节点。   若$u \in P$,则$dp[u] = 0$   否则有:$dp[u] = \frac{1}{deg[u]}(dp[fa]+\sum dp[v])+1$   然后是一个我没总结过的较常见套路,设$dp[u] = A[u] * dp[fa] + B[u]$,带入上式化简:$$deg[u]*dp[u]=dp[fa]+\sum(A[v]*dp[u]+B[v])+deg[u]$$$$(deg[u]-\sum A[v])*dp[u]=dp[fa]+(\sum B[v])+deg[u]$$$$dp[u]=\frac{1}{deg[u]-\sum A[v]}*dp[fa]+\frac{deg[u]+\sum B[v]}{deg[u]-\sum A[v]}$$   故:$$A[u]=\frac{1}{deg[u]-\sum A[v]},\ B[u]=\frac{deg[u]+\sum

「PKUWC2018」随机游走

廉价感情. 提交于 2020-02-28 15:44:48
题目 我暴力过啦 看到这样的东西我们先搬出来 \(min-max\) 容斥 我们设 \(max(S)\) 表示 \(x\) 到达点集 \(S\) 的期望最晚时间,也就是我们要求的答案了 显然我们也很难求出这个东西,但是我们有 \(min-max\) 容斥 设 \(min(S)\) 表示 \(x\) 第一次到达 \(S\) 的期望时间,我们就有 \[max(S)=\sum_{T\subseteq S}(-1)^{|T|}min(T)\] 我们现在只需要求出所有 \(min(S)\) 之后用 \(fwt\) 做一个子集和就好了 尽管这是一棵树,但是我并没有推出什么优美的转移方程,我们考虑暴力高消 设 \(dp_{x,s}\) 表示从 \(x\) 到集合 \(s\) 的期望步数 显然如果有 \(x\in s\) ,那么 \(dp_{x,s}=0\) 否则 \[dp_{x,s}=1+\sum_{(x,v)\in e}\frac{dp_{v,s}}{d_x}\] 于是我们对于每一种 \(s\) 分别列方程转移就好了 复杂度是 \(O(2^{n}n^3)\) 但是我们注意到没有包含 \(x\) 点的集合只有 \(2^{n-1}\) 个,同时高消的常数小至 \(\frac{1}{8}\) ,同时很多高消都没有跑满,于是还是跑的挺快的 代码 #include<cstdio> #include

LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp + FMT)

核能气质少年 提交于 2020-01-30 10:24:41
写在这道题前面 : 网上的一些题解都不讲那个系数是怎么推得真的不良心 TAT (不是每个人都有那么厉害啊 , 我好菜啊) 而且 LOJ 过的代码千篇一律 ... 那个系数根本看不出来是什么啊 TAT 后来做了 HDU 4035 终于会了.... 感谢 雕哥的帮助 !!! 题意 #2542. 「PKUWC 2018」随机游走 题解 原本的模型好像我不会那个暴力dp .... 就是直接统计点集中最后经过的点的期望 , 也就是点集中到所有点步数最大值的期望 . (也许可以列方程高斯消元 ? 似乎没分) 但我们考虑转化一下 (因为原来 有道CLJ的题 也是求这个) 把最大值的期望用 最值反演(MinMax容斥) 转化成最小值的期望 就可以算了 ... 最值反演 (又称 MinMax容斥 ) : \[\displaystyle \max\{S\}=\sum_{T\subseteq S, T \not = \varnothing}(-1)^{|T|-1}\min\{T\}\] 其中 \(S\) 是全集 , \(T\) 是它的一个子集 , 就有这个神奇的定理 ... 证明 ( 来自 DOFY大大的博客 ) : 设最大值为 \(x \in S\) ,那么构造映射 \(f(T) \to x \in T~?~T−x:T+x\) , 也就是有 \(x\) 就去掉 , 没有就加上 。那么当 \(T\)

基于随机游走的三维网格分割算法(Random Walks)

孤街醉人 提交于 2019-12-26 15:27:46
  首先以一维随机游走(1D Random Walks)为例来介绍下随机游走(Random Walks)算法,如下图所示,从某点出发,随机向左右移动,向左和向右的概率相同,都为1/2,并且到达0点或N点则不能移动,那么如何求该点到达目的地N点的概率。   该问题可以描述为如下数学形式: P(0) = 0 P(N) = 1 P(x) = 1/2*P(x - 1) + 1/2*P(x + 1) for x = 1, 2, 3, … , N-1   如果用矩阵形式描述,即: 那么通过求解该线性方程组就可以得到各个点到达目的地N点的概率,以上就是一维随机游走算法原理。 [Grady et al. 2006]提出了利用随机游走思想来分割二维图像,文章将图像考虑成一张图(Graph),每个像素对应图中一个节点,根据亮度差值定义节点间的权重(相当于一维随机游走中向左和向右的概率),然后用户指定前景(foreground)和背景(background)标签(相当于一维随机游走中N点和0点),通过求解线性方程组就可以得到各个像素点属于前景或背景的概率,如果将阈值概率设置为0.5,那么就可以分割得到期望的图像区域。 [Lai et al. 2008]将这种思想扩展到三维网格分割,文章将网格中每个三角片对应图中一个节点,利用相邻三角片之间的二面角来定义节点之间的权重,具体如下: 对于三角片f i

IMU Noise Model

情到浓时终转凉″ 提交于 2019-12-26 00:26:02
1.参考资料 2.相关定义 3.IMU 的噪声模型 3.1噪声的建模 3.2白噪声和随机游走噪声的离散化 3.3如何获取传感器噪声参数 4.随机噪声和扰动的积分 4.1建立模型 4.2噪声的离散化模型推导 4.3系统的状态误差方程 4.4状态误差方程的积分 4.4.1 第一项-状态误差 4.4.2 第二项-测量白噪声 4.4.3 第三项-扰动噪声离散化(随机游走噪声) 4.5 离散的系统误差方程 4.6 误差状态方程的其他说明 4.7 Full IMU example 1.参考资料 <1>Kalibr IMU Noise Model: https://github.com/ethz-asl/kalibr/wiki/IMU-Noise-Model <2>高斯白噪声: http://blog.csdn.net/ZSZ_shsf/article/details/46914853 <3>随机游走: http://blog.sina.com.cn/s/blog_5c2cfefb0100emyi.html <4>泡泡机器人IMU状态模型(2) http://mp.weixin.qq.com/s/_ElpcSkMaGEIFd3bmwGa_Q <5>泡泡机器人IMU状态模型(1) http://mp.weixin.qq.com/s/PD4cOqVE3oMhyW4A2N02xQ <6>

图推荐-基于随机游走的personrank算法

六月ゝ 毕业季﹏ 提交于 2019-12-03 04:10:24
转自 http://blog.csdn.net/sinat_33741547/article/details/53002524 一 基本概念 基于图的模型是推荐系统中相当重要的一种方法,以下内容的基本思想是将用户行为数据表示为一系列的二元组,每一个二元组(u,i)代表用户u对物品i产生过行为,这样便可以将这个数据集表示为一个二分图。 假设我们有以下的数据集,只考虑用户喜不喜欢该物品而不考虑用户对物品的喜欢程度, 其中用户user=[A,B,C],物品item=[a,b,c],用户和物品有以下的关系: 上述便是一个典型的二分图,我们用G(V,E)来表示,其中V为用户user和物品item组成的顶点集即[A,B,C,a,b,c],而E则代表每一个二元组(u,i)之间对应的边e(u,i),我们这里不考虑用户对物品的喜爱程度,即默认喜爱则e=1,不喜爱则e=0。 那么我们如何使用上述的二分图模型进行物品的推荐呢?根据用户与物品的相关性,对于相关性高的顶点有如下的定义: (1)两个顶点之间有很多路径相连 (2)连接两个顶点之间的路径长度都比较短 (3)连接两个顶点之间的路径不会经过度比较大的顶点 上面有一个概念需要理解,度,顶点的度是指和该顶点相关联的边数。 基于上述的定义,我们这里使用基于随机游走的PersonalRank 算法 来计算,那么这个算法是什么意思呢? 在解释之前