图表示学习(Deepwalk-2014KDD)

标题

摘要

提出了一种学习网络中顶点潜在表示的新方法DeepWalk。这些潜在的表征将社会关系编码在一个连续的向量空间中,这很容易被统计模型利用。**DeepWalk利用截短随机游动获得的局部信息,将游动视为句子的等价物来学习潜在表示。**它是一种在线学习算法,可以生成有用的增量结果,并且具有很小的并行性。这些特性使得它适用于广泛的实际应用,如网络分类和异常检测。

预备知识

Zipf定律:
1932年,哈佛大学的语言学专家Zipf在研究英文单词出现的频率时,发现如果把单词出现的频率按由大到小的顺序排列,则每个单词出现的频率与它的排名序号的常数次幂存在简单的反比关系:P(r) ~r^-α 这种分布就称为Zipf定律。

作者发现:短随机游动中顶点出现的频率也将服从幂律分布。自然语言中的词频遵循相似的分布,语言建模技术解释了这种分布行为。(在自然语言里面,可以理解为只有少量的单词出现频率非常高,而绝大部分的单词出现的频率较低。——人们最经常访问的节点(图中)的数量往往也是很少的。他们都服从幂率定律)
在这里插入图片描述

语言模型

语言建模的目标是估计特定序列的单词出现在语料库中的可能性。即:
在这里插入图片描述
推广到图上:
在这里插入图片描述
直接的模拟是估计在随机游动中观察到的所有先前访问过的顶点活力的可能性。

Deepwalk的目标是学习一个潜在的表示,而不仅仅是节点共现的概率分布,因此引入了一个映射函数Φ表示与图中每个顶点v相关联的潜在社会表示(向量形式)。
在这里插入图片描述
整合语言模型(skipgram)(而不是CBOW,后来证明,CBOW效果甚至更好)):
在这里插入图片描述

方法

在任何语言建模算法中,唯一需要的输入是一个语料库和一个词汇V。DeepWalk把一组短截短的随机游走它自己的语料库,把图的顶点看作自己的词汇表(V=V)。
在这里插入图片描述
这个算法由两个步骤组成:1、随机游走,2、更新步骤。
算法参数:一个图G(V,E),游走窗口大小w,产生的向量的长度(顶点表示的维度)d,对于每个点走的次数γ,走的长度t。
输出:一个顶点表示矩阵φ,大小为|V|*d
下面逐行介绍:
1:初始化φ
2:从V构建一个二叉树T(应该是用来做分层softmax的)
3-9是算法核心,外层循环代表了每个顶点产生多少个随机序列,内层循环表示对每个点产生一个Wi,并用SkipGram进行更新φ。

在这里插入图片描述
这个算法是语言模型中,最大化窗口w中出现的词的概率的方法(梯度下降),如上图所示
外层循环是对这个序列中的每个词进行操作,内层循环是对每个词的窗口大小为w的词序列进行操作。具体操作是用一个似然函数J(φ)表示φ,然后求导,用梯度下降的方法更新,(这个α应该是学习率)。
在这里插入图片描述
由于直接计算概率**Pr(uk|φ(vj))**不好计算,因此,如果把顶点放在二叉树的叶子上,那么预测的问题,就变成了最大化下面这个概率:
在这里插入图片描述
路径被定义为这样一个序列:
在这里插入图片描述
b 0 _0 0是根节点,walk的其他节点为叶子节点。优点:计算复杂度由O(|v|)变为O(log|v|),可以加速训练过程。

优化

这里优化使用随机梯度下降(SGD),这里的学习率α一般为0.25,然后线性减少。

通俗来讲,如果v1在v3和v5之间,那么,hierarchical Softmax会计算Pr(v3|φ(v1)和Pr(v5|φ(v1))的概率,而φ则向着v1的上下文是v3和v5的“方向”更新。

实验

数据集

在这里插入图片描述
BlogCatalog是一个由博客作者提供的社会关系网络。标签表示作者提供的主题类别

Flickr是照片共享网站用户之间的联系人网络。标签代表了用户的兴趣群体,如“黑白照片”。

YouTube是流行视频分享网站用户之间的社交网络。这里的标签代表了喜欢普通视频类型(如动漫和摔跤)的观众群体。

结果略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值