#1 metapath2vec

metapath 是最早一批提出使用源路径来进行异构图标识学习的,其思想就是对于图中的节点,先使用源路径采样其邻居,然后优化节点的嵌入是的生成邻居的概率最大。

首先是符号描述:
在这里插入图片描述
在这里插入图片描述

我们首先描述一下同构图当中node2vec的思想,因为其与我们的metapath2vec相当地相似:
在同构图当中进行节点嵌入的优化目标为:
在这里插入图片描述
其中N(v)代表我们采样出的近邻节点,这也相当好理解,就是优化节点的嵌入,使得生成这个图的概率最大。


matepath2vec

那么同样的,我们首先很容易得到这样一个思想:在异构图当中也使用上面的式子,我们的优化目标是:

在这里插入图片描述
其中在这里插入图片描述

我们在这里使用的是元路径来得到节点v的近邻节点,具体策略是基于源路径的随机游走,游走概率为:
在这里插入图片描述

matepathvec++

在上面的metapathvec当中,我们的结果是生成一个 X ∈ R ∣ V ∣ × d X∈R^{|V|×d} XRV×d,在现在的metapath2vec++中,我们的结果是T个嵌入矩阵,其中T表示为节点的种类数。后验概率变成了:
在这里插入图片描述
也就是说,我们之前评价边(v,ct)存在的概率是其出现概率占(v与全部节点之间的边的出现概率之和)的比例,现在我们评价边(v,ct)存在的概率是其出现概率占(v与t这类节点之间的边的出现概率之和)的比例。 这样的好处是显而易见的,比方说我在一个用户-商品图当中,我想评价用户v对某个商品ct的倾向,metapath2vec++的评价是:
p = 用 户 v 对 c t 的 倾 向 s u m ( 用 户 对 所 有 商 品 倾 向 ) p=\frac{用户v对c_t的倾向}{sum(用户对所有商品倾向)} p=sum()vct

而metapath2vec的评价指标是:
p = 用 户 v 对 c t 的 倾 向 s u m ( 用 户 对 所 有 节 点 ( 用 户 节 点 , 商 品 节 点 ) 倾 向 ) p=\frac{用户v对c_t的倾向}{sum(用户对所有节点(用户节点,商品节点)倾向)} p=sum()vct

我们很明显地可以看出metapath2vec++的评价指标更合理。


还需要提到的是损失函数中的负采样技术:
要优化这个式子的复杂度相当高:
在这里插入图片描述
于是我们使用负采样,优化函数为:
在这里插入图片描述

おすすめ

転載: blog.csdn.net/cobracanary/article/details/120388573