Graph Embedding(二)

本文详细介绍了LINE算法,一种用于图嵌入的方法,旨在捕捉网络中的一阶和二阶相似度。LINE考虑了无向图和有向图的情况,通过一阶和二阶相似度的优化目标函数,结合负采样策略进行模型训练。文章还涵盖了算法的实现细节,包括样本生成、节点嵌入更新,并提供了Python实现的概述。
摘要由CSDN通过智能技术生成

今天我们介绍Graph Embedding第二个算法——LINE(Large-scale Information Network Embedding)

一阶与二阶相似度

Deepwalk算法度量节点之间的相似性是根据是否有边相连决定的,LINE算法改变了这种度量方式,它引进了一阶相似度二阶相似度。

  • 一阶相似度First-order Proximity

对于无向图G(V,E)的每一条边edge(i,j),其相连的两个顶点vi和vj我们定义其一阶相似度:

同时定义其经验分布:

注意:wij不是上文中定义的一阶相似度pij

对于所有的V,引进KL散度衡量经验分布与一阶相似度的相似性:

注:KL散度=交叉熵-熵

我们希望这两个分布越接近越好,于是优化目标函数是:

这里说明一下为什么一阶相似度只适用于无向图,因为对于pij来说,具备对称性,即交换顶点vi和vj位置,结果不变;但对于有向图来说wij不一定等于wji

  • 二阶相似度(Second-order Proximity)

二阶相似度适用于无向图和有向图两种情况,它的出发点是:每一个顶点扮演两个角色,一个是作为顶点的时候代表它自己,另一个是作为其他顶点的上下文(邻居),因此,把这两个角色用两个向量表示:

因此对于每一条边edge(i,j),定义在顶点vi下的 “context” vj 的条件概率:

|V|就是顶点的总数,上面公式是说对于顶点vi,各节点为其context的概率。进一步,如果p2(•|v1)和p2(•|v2)的概率分布是相似的(即v1和v2的context相似),那么这两个顶点就是相似的.

同样引进经验分布:

我们希望二阶相似度与经验分布越接近越好,同理使用KL散度衡量,最后要优化的目标函数是:

负采样优化目标

上一节,我们知道要优化的目标函数有两个:

为了使得图模型同时考虑一阶和二阶相似性,先分别训练两个相似度的向量表示,然后组合(直接拼接)在一起使用。

对于二阶相似度,直接优是比较困难的,采取负采样方法,每一条边edge(i,j)优化目标函数转为:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

整得咔咔响

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值