我最近遇到了图嵌入,例如 DeepWalk 和 LINE。但是,我仍然不清楚图形嵌入的含义以及何时使用它(应用程序)?欢迎任何建议!
什么是图嵌入?
什么是图嵌入? “图嵌入”是当今机器学习的热门领域。它基本上意味着找到捕获图的拓扑(在非常基本的意义上)的图的“潜在向量表示”。我们可以通过考虑顶点-顶点关系、边信息等来丰富这个“向量表示”。图中大约有两个级别的嵌入(当然,我们可以随时通过将整个图逻辑划分为各种尺寸的子图):
- Vertex Embeddings - 在这里你可以找到给定图中每个顶点的潜在向量表示。然后,您可以通过在空间中绘制这些向量来比较不同的顶点,有趣的是,“相似”的顶点被绘制得更靠近彼此,而不是那些不相似或不太相关的顶点。这与 Perozzi 在“DeepWalk”中所做的工作相同。
- Graph Embeddings - 在这里你可以找到整个图本身的潜在向量表示。例如,您有一组化合物,您想检查哪些化合物彼此相似,组中有多少种化合物(簇)等。您可以使用这些向量并将它们绘制在空间中找到以上所有信息。这是 Yanardag 在“Deep Graph Kernels”中完成的工作。
应用—— 仔细观察,嵌入是“潜在的”表示,这意味着如果一个图有一个 |V| * |V| 邻接矩阵,其中 |V| = 1M,很难在算法中使用或处理 1M * 1M 的数字。因此,维度“d”的潜在嵌入,其中 d << |V|,将使邻接矩阵 |V| *d 并且相对更容易使用。另一个应用程序可能是 - 考虑一个简单的场景,我们希望向在社交网络中具有相似兴趣的人推荐产品。通过获取顶点嵌入(这里指的是每个人的向量表示),我们可以通过绘制这些向量来找到相似的向量,这使得推荐变得容易。这些是一些应用程序,还有其他一些应用程序。你可以参考一篇不错的调查论文——Graph Embedding Techniques, a Survey。
这一切从何而来?这方面的工作已经很多,几乎都来自自然语言处理领域的开创性研究——Mikolov 的“Word2Vec”。如果您想开始研究图嵌入,我建议您首先了解 Word2Vec 的工作原理。您可以找到很好的解释 - Word2Vec 参数学习解释和斯坦福讲座。然后你可以跳转到你列出的论文。这些作品可以分类为:
基于“图嵌入”的作品: -深度图内核,Subgraph2Vec。
图嵌入学习从网络到向量空间的映射,同时保留相关的网络属性。
向量空间比图更适合数据科学。图包含边和节点,这些网络关系只能使用数学、统计和机器学习的特定子集。向量空间具有来自这些领域的更丰富的工具集。此外,向量运算通常比等效的图运算更简单、更快。
一个例子是寻找最近的邻居。您可以在图中执行从节点到另一个节点的“跳跃”。在经过几跳之后的许多真实世界图表中,几乎没有有意义的信息(例如,来自朋友的朋友的朋友的推荐)。但是,在向量空间中,您可以使用距离度量来获得定量结果(例如,欧几里得距离或余弦相似度)。如果您在有意义的向量空间中有定量的距离度量,那么找到最近的邻居很简单。
“ Graph Embedding Techniques, Applications, and Performance: A Survey ” 是一篇更详细的概述文章。
在 Levin 等人的论文A central limit theorem for an omnibus embedding of random dot product graphs 中。在论文中,一种特定类型的图嵌入(Omnibus 嵌入)将图嵌入定义为一种“将图的顶点映射到低维欧几里得空间中的向量”的方法。检查链接以获取更多信息。