0.3 图计算应用0.3.1 网页排序将网页作为顶点,网页之间的超链接作为边,整个互联网可以建模成一个非常巨大的图(十万亿级边) 。搜索引擎在返回结果时,除了需要考虑网页内容与关键词的相关程度,还需要考虑网页本身的质量 。
PageRank是最早Google用于对网页进行排序的算法,通过将链接看成投票来指示网页的重要程度 。PageRank的计算过程并不复杂:在首轮迭代开始前,所有顶点将自己的PageRank值设为1;每轮迭代中,每个顶点向所有邻居贡献自己当前PageRank值除以出边数作为投票,然后将收到的所有来自邻居的投票累加起来作为新的PageRank值;如此往复,直到所有顶点的PageRank值在相邻两轮之间的变化达到某个阈值为止 。
0.3.2 社区发现社交网络也是一种典型的图数据:顶点表示人,边表示人际关系;更广义的社交网络可以将与人有关的实体也纳入进来,例如手机、地址、公司等 。社区发现是社交网络分析的一个经典应用:将图分成若干社区,每个社区内部的顶点之间具有相比社区外部更紧密的连接关系 。社区发现有非常广泛的用途,在金融风控、国家安全、公共卫生等大量场景都有相关的应用 。
标签传播是一种常用的社区发现算法:每个顶点的标签即为自己的社区,初始化时设置自己的顶点编号;在随后的每一轮迭代中,每个顶点将邻居中出现最频繁的标签设置为自己新的标签;当所有顶点相邻两轮之间的标签变化少于某个阈值时则停止迭代 。
0.3.3最短路径在图上发现顶点与顶点之间的最短路径是一类很常见的图计算任务,根据起始顶点与目标顶点集合的大小,又可分为单对单(一个顶点到一个顶点)、多对多(多个顶点到多个顶点)、单源(一个顶点到所有其它顶点)、多源(多个顶点到所有其它顶点)、所有点对(所有顶点到其它所有顶点)等 。对于无权图,通常使用基于BFS的算法;对于有权图,比较常见的有SPFA算法、Bellman-Ford算法等 。
最短路径的用途十分广泛:在知识图谱中经常需要寻找两个实体之间的最短关联路径;基于黑名单和实体之间的关联可以发现其它顶点与黑名单之间的距离;而所有点对的最短路径可以帮助衡量各个顶点在整个图的拓扑结构所处的位置(中心程度) 。
节点级别任务:金融诈骗检测中,节点是用户和商家,边是用户和商家之间的交互,利用图模型预测潜在的金融诈骗分子 。在目标检测案例中,将3D点云数据中点与点之间距离作为边,通过图结构可以进行3D目标检测
边级别任务:推荐系统中,通过已有的用户-商品数据建立用户图行为关系,得到节点的向量表示,进而进行推荐任务
图级别任务:气味识别,利用图神经网络识别分子结构进而识别气味
1.图与图学习1.1 图的基本表示方法先简单学习一下图论的基本概念,图论的经典算法,以及近些年来图学习的发展
举个例子,一个简单的图可能是这样:
文章插图
节点(node)用红色标出,通过黑色的边(edge)连接 。
图可用于表示:
- 社交网络
- 网页
- 生物网络
- …
- 研究拓扑结构和连接性
- 群体检测
- 识别中心节点
- 预测缺失的节点
- 预测缺失的边
经验总结扩展阅读
- 谣言检测《Rumor Detection with Self-supervised Learning on Texts and Social Graph》
- TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX将一统天下
- pytorch、paddlepaddle等环境搭建 深度学习环境搭建常用网址、conda/pip命令行整理
- PaddleOCR-EAST
- GLA 论文解读《Label-invariant Augmentation for Semi-Supervised Graph Classification》
- paddle&蜜度 文本智能较对大赛经验分享(17/685)
- GGD 论文解读《Rethinking and Scaling Up Graph Contrastive Learning: An Extremely Efficient Approach with Group Discrimination》
- Nebula Graph介绍和SpringBoot环境连接和查询
- 谣言检测《Data Fusion Oriented Graph Convolution Network Model for Rumor Detection》
- ClaHi-GAT 谣言检测《Rumor Detection on Twitter with Claim-Guided Hierarchical Graph Attention Networks》