图机器学习 - cs224w Lecture 7 - 节点的表示

本文探讨了图机器学习中节点的表示方法,包括Node Embedding、Random Walk、node2vec和TransE。重点讲述了随机游走如何帮助定义节点相似度,并通过negative sampling优化计算。此外,还提及了TransE算法在知识图谱中的应用,以及对整个图进行embedding的匿名游走方法。
摘要由CSDN通过智能技术生成

Node Embedding

上一讲介绍了对图中节点进行分类的方法,涉及了节点自身的特征以及图的结构信息。然而当特征这个概念出现就说明需要做特征工程,这是相当费时费力的工作。最后的结果还不一定理想,因为或多或少会丢失一些信息。因此我们希望能让算法自己学习节点特征,虽然这样的到的特征向量并不像传统意义上的特征那样每一列有明确的意义,而更有一种对节点进行编码(embedding)的味道。其中最简单的例子就是 one-hot,但这种简单 embedding 的方式存在很多问题,比如泛化性差,维度高,信息缺失等。因此我们希望得到的 embedding 有一些很好的性质,比如 embedding 的相似度能反映节点在网络中的相似度。这里的相似度是根据不同应用场景进行定义的,可以是拓扑结构上的相邻,也可以是之前提到的相同的角色。embedding 的相似度计算也需要针对不用应用场景或需求来定义,但一般情况下采用的还是向量的内积。
有了这个大体思路我们就可以将这个学习节点 embedding 的过程简单分为 3 步:

  1. 定义一个编码器
  2. 定义节点的相似度
  3. 对编码器的参数进行优化,使得 s i m i l a r i t y ( u , v ) ≈ z v T z u similarity(u,v)\approx z_v^Tz_u similarity(u,v)zvTzu

Random Walk

随机游走,正如这个名字描述的那样,节点从一个点开始沿着图中的边“乱”跑,途经的节点的 multiset(节点可重复) 就是我们想要的东西。为什么我们要这种看似无章可循的“乱”生成的结果?这其实是定义节点相似度的一种方法。假设现在我们需要节点 u u u 的 embedding,且我们希望节点相似度定义为结构上较为接近的点具有更高相似度。那最容易想到的方法就是邻接节点,这些点的相似度一定很高,这要能最大化这一部分点的 embedding 相似度就好了。想法很好也很正确,但是这样做存在两个问题。首先,如果只找邻接节点,那获得的信息就只有 1 1 1 hop,这样得到的结果太局限了。再说直观上也说不通,就好比和节点 u u u 直接相连的节点和 u u u 很类似,而 u u u 邻接点的邻接点就和 u u u 完全没有关系了。那可能就有人说,大不了我多迭代几次,考虑跑个 k k k hop。那么这就涉及到第二个问题,对于大规模的网络一部分节点的度很高,例如微软 MSN 的网络最高的度是指数级别的,因此找所有邻接节点代价太高更别说还要找邻接点的邻接点了。
这么一来,这个随机游走看起来是不是就很漂亮了。首先它随机传播,只要我们控制好传播距离就能实现多 hop。其次它不要求遍历所有邻接点,但只要随机次数足够它还是能覆盖大部分邻接点。
然后根据随机游走的结果来定义相似度就很简单了,即节点 u u u v v v 的 embedding 相似度和这两个节点同时出现在随机游走的结果中的概率成正比。你细品是不是这个道理。
有了相似度,接下来就是优化的过程。我们用 log-likelihood 来做。这里将随机游走的结果记为 N R ( u ) N_R(u) NR(u)

min ⁡ L = − ∑ u ∈ v log ⁡ P ( N R ( u ) ∣ z u ) = ∑ u ∈ V ∑ v ∈ N R ( u ) − log ⁡ P ( v ∣ z u ) \begin{aligned} \min L&=-\sum_{u\in v}\log P(N_R(u)|z_u) \\ &=\sum_{u\in V}\sum_{v\in N_R(u)}-\log P(v|z_u) \end{aligned} minL=uvlogP(NR(u)zu)=uVvNR(u)logP(vzu)

然后因为是概率,所以我们用 softmax 来定义 P ( v ∣ z u ) P(v|z_u) P

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值