论文地址:[http://proceedings.mlr.press/v80/ivanov18a/ivanov18a.pdf]

从节点u开始匿名游走以建立与u在给定距离内的所有节点构成的子图,这种分布唯一地决定了u中的马尔科夫过程,所以不存在两个不同的子图具有相同的匿名游走分布。这意味着两个匿名游走分布相似的图应该在拓扑结构上相似。因此定义了基于特征的网络嵌入在匿名行走的分布,并展示了一种有效的采样方法,该方法近似于大型网络的分布。

定义一:节点u_{i} \epsilon V的有序列表s=\left ( u_{1},u_{2},\cdots,u_{k}, \right ),定义位置函数pos:\left ( s,u_{i} \right )\rightarrow q,q为返回值,是节点u_{i}在列表s中的位置。

例如:s=(a,b,c,b,c),pos(s,a)={1},pos(s,b)={2,4}

定义二:(匿名游走)如果w=\left ( v_{1}, v_{2},\cdots,v_{k}\right )是一个随机游走路径,那么它对应的匿名游走是整数序列a=\left ( f\left ( v_{1} \right ) ,f\left ( v_{2} \right ) ,\cdots ,f\left ( v_{k} \right ) \right ),其中整数f\left ( v_{i} \right ) = min pos\left ( w,v_{i} \right )

图中演示了匿名游走概念。图中的两个不同随机游走1和2对应于同一个匿名游走1,随机游走3对应于另一个匿名游走2。

随机游走1:a\rightarrow b\rightarrow c\rightarrow b\rightarrow c

随机游走2:c\rightarrow d\rightarrow b\rightarrow d\rightarrow b

对应的匿名游走序列都是1\rightarrow 2\rightarrow 3\rightarrow 2\rightarrow 3

随机游走3:a\rightarrow b\rightarrow a\rightarrow b\rightarrow d

对应的匿名游走序列是1\rightarrow 2\rightarrow 1\rightarrow 2\rightarrow 3

原理:从单个节点的角度来看,在观察者的位置上,网络拓扑可能是故意隐藏的(例如社交网络通常会限制外部用户查看您的友谊)或其他方式(例如搜索引擎还不知道万维网中新创建的链接)。然而,观察者可以通过从自身开始随机游走,将过程传递给其邻居,并在随机游走中记录观察到的状态,自己对网络进行实验。由于观察者无法获得节点的全局名称,匿名记录状态的一种方法是通过随机游走中第一次出现节点来描述他们。这样记录不仅简洁,而且通常存在隐私限制,不允许纪律节点的完整描述。

算法

基于特征的模型

定义一个加权有向图,生成一个随机游走图R=\left ( V,E,P \right ),对于边e=\left ( u,v \right )的权重p_{e}=\frac{w_{e}}{\sum_{v\epsilon N_{out\left ( u \right )} }^{}w_{u,v}}N_{out\left ( u \right )}是用户u的邻居集合,图R上长度为l的随机游走w是一个节点序列u_{1},u_{2},\cdots,u_{l+1}。根据随机游走图R中概率p\left ( u_{i},u_{i+1} \right )选择节点对\left (u_{i},u_{i+1} \right )。随机游走序列w的概率为p\left ( w \right )是所有选择边的总概率

根据定义一,匿名游走是一种随机游走,任意图中长度为l的所有可能的匿名游走的数量随l呈指数增长。考虑一个初始节点u和一组从u开始且长度为l的所有不同随机游走序列W_{l}^{u},这些随机游走对应\eta种不同的匿名游走A_{l}^{u}=\left ( a_{1}^{u},a_{2}^{u},\cdots ,a_{\eta}^{u}, \right )。对于节点u,长度为l的匿名游走a_{i}^{u}的概率是p\left ( a_{i}^{u} \right )=\sum_{w\epsilon W_{l}^{u}w \mapsto a_{i}}^{}p\left ( w \right )通过对图中所有节点的概率进行聚合,并用节点总数N对其进行归一化,得到在图中选择匿名游走a_{i}的概率

基于特征的匿名游走嵌入(feature-based anonymous walk embedding,AWE)

序列长度为l的所有的匿名游走序列A_{l}=\left ( a_{1},a_{2},\cdots ,a_{\eta}, \right ),图G中向量f_{G}的大小为\eta,其第i

部分对应图G 中具有匿名游走a_{i}的概率为p\left ( a_{i} \right ):

时间复杂度:O\left ( nlogn\left ( d_{in}^{max}\cdot d_{out}^{max} \right )^{\frac{l}{2}} \right ) 最大出入度

k_{l}:表示长度为l的随机游走序列的数量,由图G中节点的入度和出度的幂限制

因此,图中的随机游走数最多为n\left ( \left ( d_{in}^{max}\cdot d_{out}^{max} \right )^{\frac{l}{2}} \right )

采样:

由于在大型图中完全计数所有匿名游走是不可行的,描述了一种近似真实分布的抽样方法。以这种方式,采样m个随机游走序列,并计算相应的匿名游走的经验分布。为了保证经验分布和实际分布在给定的置信度下接近,将随机游走的采样数量m设置的足够大。

对于集合A_{l}上的两个离散概率分布PQ,将L_{1}距离定义为:

D_{l}A_{l}的真是分布,设X^{m}=\left ( X^{1} ,X^{2} ,\cdots ,X^{m} ,\right )是从D_{l}中提取的随机变量,原始分布D_{l}

的经验分布D^{m} 定义为:

如果x为真,则\left [ \left [x \right ] \right ]=1,假则为0

采样数量m满足P\left \{ \left \| D^{m}-D \right \|_{1}\geq \varepsilon \right \} \leq \delta等同于

例如,有\eta =877个匿名游走,长度l=7,如果设置\varepsilon =0.1,\delta =0.05,那么样本数量将增加到122500

由于可以对随机游走的转移概率进行预处理,因此可以在时间复杂度为O(1)的alias方法中对长度为l的随机游走序列中的节点进行采样。因此,计算基于特征的匿名游走嵌入的采样方法的总运行时间为O(ml)

数据驱动模型

消除基于特征嵌入的稀疏性

匿名游走的邻居:如果两个长度为l的匿名游走共享同一个源节点,我们在它们之间定义一个邻域。得到匿名游走序列的过程。

训练过程:定义了图的表示向量d和匿名游走矩阵W,向量大小为1\times d_{g}其中d_{g}是图嵌入向量的大小。矩阵W矩阵大小为\eta \times d_{g}\eta是长度为l的所有可能的匿名游走序列的数量,d_{a}是匿名游走的嵌入大小。d表示整个向量,W表示词矩阵。每个图对应它的向量d,一个匿名游走对应于矩阵W中的一行。该模型视图在给定同时发生的上下文匿名游走和一个图的情况下预测目标匿名游走。

一系列共发生的匿名游走s=\left ( a_{1},a_{2},\cdots,a_{T} \right )对应于向量w_{1},w_{2},\cdots ,w_{T},图G对应于向量d,目标为最大化平均对数概率

\Delta表示窗口大小,即每个目标词的上下文词的数量,以上的概率通过softmax函数定义

学习数据驱动匿名游走嵌入的框架

所有同时发生的匿名游走都从图中的同一节点开始,目标是通过其周围的上下文游走序列\left ( w_{1} ,w_{2} ,w_{3} \right )和图向量d来预测目标游走w_{4},平均上下文游走的嵌入,然后与图向量连接以预测目标向量。在抽样的匿名游走语料库中,使用随机梯度下降更新向量。

匿名游走 Anonymous Walk相关推荐

  1. 随机游走(Random Walk)模型详解:历史||数学表示||物理意义

    随机游走 随机游走(Random Walk,缩写为 RW),是一种数学统计模型,它是一连串的轨迹所组成,其中每一次都是随机的.它能用来表示不规则的变动形式,如同一个人酒后乱步,所形成的随机过程记录. ...

  2. 随机游走 Random Walk

    随机游走(英语:Random Walk,缩写为 RW),是一种数学统计模型,它是一连串的轨迹所组成,其中每一次都是随机的.[1][2]它能用来表示不规则的变动形式,如同一个人酒后乱步,所形成的随机过程 ...

  3. 基于随机游走Random Walk的图节点Node表示

    前言 在图中,如果能把节点表示成合适的数值,能做很多任务,例如节点分类,关系预测,聚类等等.如何把节点表示成计算机能看懂的数值目前也有很多方法,本文主要为大家介绍基于Random Walk的节点表示方 ...

  4. Deepwalk(深度游走)算法简介

    深度游走:一种社交表示的在线学习算法 主要思想 Deepwalk算法 参考文献 主要思想   Deepwalk是一种将随机游走(random walk)和word2vec两种算法相结合的图结构数据挖掘 ...

  5. DeepWalk(深度游走)算法

    整理自:   Deepwalk(深度游走)算法简介_Mr.Cheng1996的博客-CSDN博客 [论文笔记]DeepWalk - 知乎 DeepWalk是一种将随机游走(random walk)和w ...

  6. python三维随机游走轨迹模拟_用Python模拟随机游走(Random walks)

    什么是随机游走? 随机游走(random walk)也称随机漫步,随机行走等,是以随机的体例采纳连续步调的过程.然后,可以将其他条件应用于此描述,以为您的特定用例建立一个随机遍历.粒子的布朗运动,股票 ...

  7. garch模型python步骤_利用python进行时间序列分析——从随机游走到GARCH模型(一)...

    本文是主体是翻译Time Series Analysis (TSA) in Python - Linear Models to GARCH.但是文章主要是python操作,而理论较少,因此在此基础上补 ...

  8. 重启随机游走算法(RWR:Random Walk with Restart)

    重启随机游走算法(RWR:Random Walk with Restart) 1 pagerank算法的基本原理 Pagerank算法是Google的网页排名算法,由拉里佩奇发明.其基本思想是民主表决 ...

  9. 使用 NumPy 来模拟随机游走(Random Walk)

    考虑一种最简单的情形,即从位置 0 开始,每次前进一步(step=1)或者后退一步(step=-1),前进与后退的概率相同. 不使用 NumPy,直接使用 Python 内置的 random 函数: ...

  10. 6.2.4 随机游走(Random Walk)

    随机游走这一名称由Karl Pearson在1905年提出[Pearson, K. (1905). The problem of the Random Walk. Nature. 72, 294.], ...

最新文章

  1. iOS 解决1。返回时的黑边问题、2。controller的抖动问题
  2. 【博士论文】集群系统中的网络流调度
  3. linux shell编程(三) if 和 for
  4. 学好python需要多久-python入门要学多久
  5. 【Python】七段数码管绘制日期年月日
  6. 最好用的日志分析工具ELK
  7. Java ObjectOutputStream writeBytes()方法与示例
  8. Docker核心组件的关系
  9. 文本模式下安装Oracle 10g
  10. scp复制linux系统的文件文件到本机(windows)以及本机文件复制到远程的命令
  11. 有道翻译-python
  12. java解决跨域 多个号_java-解决跨域问题
  13. JS Array创建及concat()split()slice()使用
  14. python生成二维码_python生成二维码的实例详解
  15. 车辆OTA仿真测试解决方案
  16. 电子签约存证及印章管理整体化解决方案
  17. among us私服搭建
  18. Excel技巧—一个公式实现中英文翻译
  19. 角色攻击、角色特殊动作
  20. Debian内核防毒AntiVir安装

热门文章

  1. 让remix使用本地文件系统
  2. 魔兽世界8.0哪个服务器稳定,魔兽世界活得最安逸的BOSS!8.0版本才拿到7.0服务器首杀!...
  3. 新东方雅思词汇(List 21~ List 25)
  4. 解锁图案-九宫格有多少种组合?安全吗?用程序来解答
  5. html绘制钟表的原理,html5 canvas绘制钟表
  6. 数据库系统概论第五版第二章习题6(SPJ数据库查询操作)
  7. c语言十佳歌手程序,十佳歌手决赛的细则流程
  8. 《AMNet: Deep Atrous Multiscale Stereo Disparity Estimation Networks》
  9. 电脑键盘按键都代表着什么意思?
  10. 关于如何处理MyEclipse中struts2与Hiber 3中antlr-2.7.2.jar与antlr-2.7.6包冲突的问题