图学习——06.metapath2vec

元路径随机游走

  • 如果忽略节点类型进行随机游走,结果是会有偏的,数目较多的节点类型出现的概率更大
  • 元路径随机游走:定义好一个游走类型路径,在上图中,路径可以定为APA,APVPA等,然后按照这个路径游走,即下一个节点只采样符合要求的节点类型元路径通常为对称的
  • 优点:这种元路径随机游走策略可以确保不同类型的节点语义关系被恰当的并入skip-gram模型中

同质图下训练embedding

给定节点v,计算它的邻居节点c出现的概率,并使其最大化,公式如下图所示:
这个邻居可以是一阶或者二阶等
在这里插入图片描述
在这里插入图片描述

异构图下训练embedding

同样是给定节点v,计算其邻居节点c出现的概率,公式如下图所示:
但是该节点c的选取必须在特定元路径下
在这里插入图片描述
比如给定下图元路径MIT,a1,p1,那么给定节点a1,就可以计算节点MIT出现的概率和p1出现的概率并使其最大化
在这里插入图片描述

游走概率计算

如下公式(3),计算给定节点vti,求游走到节点vi+1的概率
首先,第三个表示,vti和vi+1不相邻,那游走的概率就是0,第二个表示,两个节点相邻,但是vi+1不是元路径所规定的节点类别,那游走概率也是零,第一个就是即相邻又是元路径规定的节点类别,那一定是可以游走的,游走的概率就是所有满足此条件的节点的总数分之一。
举例:
下图中最后一个图,vi相邻的节点有四个,其中3个绿色的是满足元路径规定的节点类型的,但是最后一个橙色的不满足,所以游走到vi+1的概率是1/3
在这里插入图片描述
按照定义的meta-path来游走,游走完就形成了语料,然后根据skip-gram就可以训练出每个节点的embedding

skip-gram

给定如下图的一个语料,假设窗口大小为5(给定节点左右两个节点出现的概率),当给定节点The的时候,计算quick和brown出现的概率,同样,在给定quick的时候,计算The,brown和fox出现的概率,以此类推。
在这里插入图片描述

subsampling

比如上面在训练的时候(quick, the): 没有学习到quick的任何上下文信息,因为the是没什么用的副词,这种语料对于我们来说也没有任何上下文相关性
所以提出subsampling就是:有一定的概率删掉这个词,概率和单词出现的频率有关

计算公式如下:
其中z(wi) 表示单词wi出现的概率,比如语料内有一亿个词,单词wi出现1000次,该z(wi)=1000/100000000=1e-6
P(wi)就是计算保留下单词 i 的概率
在这里插入图片描述

Negarive Sampling

通过subsampling就确定了用来训练的语料,下面就根据语料来计算word embedding

比如说给定(the, quick) 那the就是输入,quick就是label

如果使用one-hot编码,那根据语料的大小N,每个单词都可以表示成长度为N的向量,只有自己所在位置是1,其他位置都是0。
这样就会有一个问题,就是计算量非常大,比如下图的神经网络,在hidden layer和output layer之间计算量非常大
在这里插入图片描述
所以提出了一个负采样的方式进行训练,负采样就是在hidden layer到output layer的时候,保留output layer 值为1的神经元,并随机采样几个输出神经元作为输出,比如下图,采样输出为4个神经元
在这里插入图片描述

Selecting Negative Samples

出现频率越高的单词,被选中的几率就越大
被选中的概率是单词wi出现的概率除以语料所有单词出现的概率,作者发现在对每个语料出现的概率求一个3/4次方的效果最好
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值