前言
这节课主要介绍传统的图机器学习方法。传统方法主要分为两步,第一步人工设计特征,第二步使用各种机器学习方法进行预测。因此,特征工程在传统图机器学习方法中有很重要的地位。本节课主要介绍图上的特征工程方法,分别介绍针对节点(node-level)、边(link-level)和图(graph-level)的特征工程方法。

这节课主要介绍传统的图机器学习方法。传统方法主要分为两步,第一步人工设计特征,第二步使用各种机器学习方法进行预测。因此,特征工程在传统图机器学习方法中有很重要的地位。本节课主要介绍图上的特征工程方法,分别介绍针对节点(node-level)、边(link-level)和图(graph-level)的特征工程方法。
任何政权在退出历史舞台之前,都要挣扎一番,明朝也不例外。由于明朝设立了北京和南京两套中央体系,北京政权灭亡之后,南京政权自然就担当起光复大明的重任。然而,摆在南京政权面前的第一个问题是继统问题,即拥立谁当皇帝。
然而明朝最后一任皇帝朱由检的三个儿子都被大顺军俘虏了,无法继统,皇位只能留给各位藩王了。从礼法上来说,福王朱由崧是最合适的人选。然而,由于朱由崧是万历年间“争国本”事件中万历皇帝宠爱的郑贵妃的孙子,当初正是由于东林党的反对,才导致郑贵妃的儿子老福王朱常洵没有当上皇帝,所以现在东林党也反对新福王朱由崧继位,担心朱由崧即位之后会秋后算账,对东林党不利。于是,东林党人到处游说拥立潞王朱常淓(崇祯的叔叔)当皇帝。国难当头,东林党人不顾大局,不管礼法,只考虑集团利益甚至是个人利益,混淆视听,党同伐异,为南明朝廷埋下了地雷。
Continue readingGCN模型是不是越复杂越好呢?这篇文章分析发现,GCN中常用的矩阵变换(feature transformation)和非线性激活函数(nonlinear activation)没有作用,甚至有反作用,据此作者提出了一个非常简单的GCN模型LightGCN,模型参数只有节点的embedding。这么简单的模型在推荐任务上,比大多数复杂模型的性能都要好,而且作者从理论分析了如此设计存在的若干好处。
Continue reading今天开始学习《Fluent Python 2nd》,Python进阶好书。第二版今年3月份刚刚出版,以最新Python 3.10为基础进行介绍。
第一个案例是Python风格的扑克牌类:
短短几行代码,包含了Python很多有趣的特性,咱们一一道来。
Continue reading工业界的图规模都非常大,少说也是上千万的顶点+上亿的边,单机训练不现实,必须借助多机分布式训练。然而目前主流的图训练框架PyG、DGL对图的多机分布式训练支持都不太好。工业界好像阿里的Euler、百度的PGL可以支持分布式训练。今天介绍一下亚马逊DGL针对分布式训练所做的优化。
GNN广泛应用在推荐、搜索、风控等领域,在这些领域,图的规模往往非常大,有数以亿计的顶点和万亿的边。为支持大规模图的分布式训练,本文提出了DistDGL,它能以mini-batch的方式在多机上进行分布式训练。DistDGL基于DGL框架,它将图数据分布在多台机器上,并基于数据分布,将计算也分布在多台机器上(owner-compute rule)。DistDGL以同步更新的方式进行训练。为了减小分布式训练的通信开销,DistDGL使用一个高效、轻量的图分割算法对图进行分割,在分割时设计了多个负载均衡约束,使得每个分割的子图达到较好的负载均衡。此外,为了减小跨机器的通信,DistDGL在每个子图中保留了halo nodes(正文会介绍到),并且使用了稀疏embedding更新策略。这些优化策略使得DistDGL在分布式训练时能达到较好的高并行效率和内存可扩展性。实验结果表明,在分布式训练时,随着计算资源的增大,DistDGL的训练速度可以线性增长。在16台机器组成的分布式环境中,DistDGL仅用13秒就可以完成1亿节点+30亿边的一个epoch的训练。DistDGL是DGL的一部分,已开源在:https://github.com/dmlc/dgl/tree/master/python/dgl/distributed。
Continue reading前段时间读客再版了顾诚先生的《南明史》,并给我寄了样书,非常感谢读客,让我有幸读到了这么优秀的历史著作!
今天下午翻看了第一章,阅读体验非常好,完全出乎我的意料,谈两点第一印象:
之前看过《明朝那些事儿》,但过段时间就忘了。最近读客给寄了《南明史》,想着在阅读《南明史》之前,先复习下明朝历史,故根据《明朝那些事儿》整理得到下面的明朝皇帝列表及大事记,感兴趣的同学自取。可点击查看大图。
Continue reading