图嵌入(Graph Embedding)方法小结

Embedding

  • 定义:Embedding在数学上是一个函数,即将一个空间的点映射到另一个空间,通常是从高维抽象空间映射到低维的具象空间
  • 意义:高维数据转换到低维有利于算法的处理,同时解决one-hot向量长度随样本变化而变化以及无法表示两个实体之间的相关性这一问题。
  • 常用方法:word2vec,根据语料库中单词的共线关系求出每个单词的embedding。常用的word2vec模型有cbow和skip-gram两种,其中cbow根据上下文预测中心词,skip-gram根据中心词预测上下文。

Graph Embedding

图嵌入(Graph Embedding)方法小结_第1张图片
图1. Graph Embedding的常见几种分类

DeepWalk

  • 方法:将节点视为单词并生成短随机游走作为句子来弥补网络嵌入和单词嵌入之间的差距。
  • 优点:1. 可以按需生成随机游走。2. 可拓展,生成随机游走的过程高效且平凡的并行化。3. 引入了深度学习图形的范例。

图嵌入(Graph Embedding)方法小结_第2张图片
skip-gram模型参考。

Node2vec

在DeepWalk的基础上,定义了一个bias random walk的策略生成序列,仍然用skip gram去训练。

  • 核心思想:采用Random Walk来代替DFS或BFS。通过定义参数在BFS和DFS中平衡。
  • 不足:硬要用skipgram或者wordvec的想法在networks上做显得比较牵强。因为存在Neighborhood概念在Graph上并不是很直观的定义。
  • 具体应用:腾讯的lookalike算法。

LINE

LINE也是一种基于领域的相似假设算法,与DeepWalk使用的DFS构造领域不同,LINE可以看作是一种使用BFS构造领域的算法。此外,LINE还可以运用在带权图中。

同时,LINE对顶点的相似度定义不同。
图嵌入(Graph Embedding)方法小结_第3张图片

first-order proximity

1阶相似度用于描述图中成对顶点之间的局部相似度,即若两个点之间存在直连边,则边劝即为两点之间的相似度,若不存在直连边,则1阶相似度为0。
如上图,6和7之间存在直连边,且边权较大,则认为两者相似且1阶相似度较高,而5和6之间不存在直连边,则两者间的1阶相似度为0。

second-order proximity

如上图所示,虽然5和6不存在直连边,但是有许多相似的邻居顶点(1,2,3,4),也可以表示5和6是相似的,而2阶相似度就是用来描述这种关系的。
同样,若两个顶点之间不存在相同的邻居顶点,则2阶相似度为0。

目标是让NRL前后节点间相似度不变,即如果节点表示学习前如果两个节点比较相似,那么embedding后的两个节点表示向量也要相似。本文中用的是KL散度来衡量两个概率分布之间的距离。

你可能感兴趣的:(推荐系统)