有没有像这样的图嵌入算法?

数据挖掘 Python 麻木的 图表 嵌入 表示
2021-10-08 13:08:02

我编写了一个基于图的拓扑生成节点嵌入的算法。大部分解释都在自述文件和示例中完成。

问题是:我是在重新发明轮子吗?与现有的嵌入生成解决方案相比,这种方法是否具有任何实际优势?

是的,我知道有很多基于随机游走的算法,但这是纯粹的确定性线性代数,从我的角度来看,它非常简单。

简而言之,该算法深受 PageRank 的启发。每个节点都由其邻近向量描述,该向量包含该节点与每个其他节点或某些选定节点子集的接近度数。“亲近”不仅仅是简单的最短距离。

这是回购自述文件中对有向/无向无权图的简要解释(这个想法非常直观地推广到了加权图):

  1. 每个节点都分配有一个向量。对于节点 i,向量的第 j 个元素是一个数字,表示它与节点 j 的接近程度(您可以将其视为信号强度)。
  2. 节点 i 与节点 j(信号流自“中心”节点)的接近度定义为相邻节点的信号强度乘以阻尼因子参数的总和。(倾销因子就像一种距离惩罚)
  3. 将节点“发射”到其他连接节点的信号等于节点本身中给定信号的强度除以它能够发射到的边数。
  4. 最初,节点 j 的接近度(与自身)等于 1。

整个事情是通过求解稀疏线性系统来计算的。

从节点 4 到其他节点的“信号”强度。请注意,此处的信号传播方向与边缘方向相反(如 Instagram 上的“跟随”关系)

从节点 4 到其他节点的“信号”强度。 请注意,此处的信号传播方向与边缘方向相反(如 Instagram 上的“跟随”关系)

2个回答

所以我认为重要的是要意识到pagerank利用节点的特征值来加速计算。事实证明,这相当于随机游走。根据您在问题中提到的内容,听起来您正在描述 4 部分程序中的随机游走。您使用线性代数而不是模拟随机游走来解决它的事实有点无关紧要。在我看来,通过线性代数做这件事并没有什么特别独特的地方。事实上,如果有人真的模拟随机游走而不是像你一样做等效的线性代数,我会感到惊讶,因为做线性代数要高效得多。

我不会那么怀疑。是的,有很多关于基于随机游走的推荐/排名系统的研究,包括类似于 PageRank 的那些。是的,谱方法和线性代数已经很好地解决了这些问题。稀疏矩阵是解决这个问题的一种自然数据结构,因此您会发现许多利用它的实现。

但是,如果这种特定类型的随机游走以前没有尝试过(尽管从您的描述来看,它可能是通常的随机游走,只是随机选择一个传出边)和/或特别是如果它实际上可以解决一些真实的问题问题或在某些基准上有所改进,您的算法可能仍然很有趣。但是要让任何认真的人看看它,你应该分析它,链接到现有的研究并与其他现有的变体进行比较,并在论文或博客文章中呈现。

一组随机的参考文献,另见他们引用的论文或他们被引用的论文:

Linyuan Lü 和 Tao Zhou,复杂网络中的链接预测:一项调查物理学 A:统计力学及其应用 390(2011),1150-1170。

David Easley 和 Jon Kleinberg 的第 14 章,网络、人群和市场,剑桥大学出版社(2010 年)。

Maurizio Ferrari Dacrema、Paolo Cremonesi 和 Dietmar Jannach,我们真的取得了很大进展吗?对近期神经推荐方法的令人担忧的分析,在第 13 届 ACM 推荐系统会议论文集上,101-109(2019 年)。