python - 有没有像这样的图嵌入算法?
问题描述
注意:这个问题是这里原始问题的副本,因为我怀疑数据科学堆栈交换平台可能只是没有开发和流行到足以在那里找到答案。
我编写了一个基于图的拓扑生成节点嵌入的算法。大部分解释都在自述文件和示例中完成。
问题是:我是在重新发明轮子吗?与现有的嵌入生成解决方案相比,这种方法是否具有任何实际优势?
是的,我知道有很多基于随机游走的算法,但这是纯粹的确定性线性代数,从我的角度来看,它非常简单。
简而言之,该算法深受 PageRank 的启发。每个节点都由其邻近向量描述,该向量包含该节点与每个其他节点或某些选定节点子集的接近度数。“亲近”不仅仅是简单的最短距离。
这是回购自述文件中对有向/无向无权图的简要解释(这个想法非常直观地推广到了加权图):
- 每个节点都分配有一个向量。对于节点 i,向量的第 j 个元素是一个数字,表示它与节点 j 的接近程度(您可以将其视为信号强度)。
- 节点 i 与节点 j(信号流自“中心”节点)的接近度定义为相邻节点的信号强度乘以阻尼因子参数的总和。(倾销因子就像一种距离惩罚)
- 将节点“发射”到其他连接节点的信号等于节点本身中给定信号的强度除以它能够发射到的边数。
- 最初,节点 j 的接近度(与自身)等于 1。
整个事情是通过求解稀疏线性系统来计算的。
从节点 4 到其他节点的“信号”强度。请注意,此处的信号传播方向与边缘方向相反(如 Instagram 上的“跟随”关系)
解决方案
推荐阅读
- sql-server - 如何在 PostgreSQL 中使用带有 LEFT JOIN 的更新语句?
- java - 如果应用程序在后台运行,如何防止屏幕锁定
- azure - 如何使用 Terraform 创建 Python 运行时为 3.6 的 Azure Web 应用程序
- algorithm - Z 的最佳三元组是三个不同索引 i、j 和 k 的集合,其中 i≤j≤k,这使得乘积 Z[i]*Z[j]*Z[k] 尽可能大
- c# - Entity Framework 6 - 启用迁移会引发很多错误
- python-3.x - FastAPI 工作人员超时
- java - 从一类到另一类的输入
- php - 检查数组中所有值的前 2 位
- ubuntu - 构建 Caffe 时找不到 protoc 错误
- reactjs - 设置状态后,第二次拖动没有动画 - React Native、Expo、PanGestureHandler