《LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation》论文阅读

摘要

GCN模型是不是越复杂越好呢?这篇文章分析发现,GCN中常用的矩阵变换(feature transformation)和非线性激活函数(nonlinear activation)没有作用,甚至有反作用,据此作者提出了一个非常简单的GCN模型LightGCN,模型参数只有节点的embedding。这么简单的模型在推荐任务上,比大多数复杂模型的性能都要好,而且作者从理论分析了如此设计存在的若干好处。

Continue reading

《Fluent Python 2nd》代码示例1-1扑克牌类:如何让自定义类像内置类型

今天开始学习《Fluent Python 2nd》,Python进阶好书。第二版今年3月份刚刚出版,以最新Python 3.10为基础进行介绍。

第一个案例是Python风格的扑克牌类:

短短几行代码,包含了Python很多有趣的特性,咱们一一道来。

Continue reading

《DistDGL: Distributed Graph Neural Network Training for Billion-Scale Graphs》论文阅读

前言

工业界的图规模都非常大,少说也是上千万的顶点+上亿的边,单机训练不现实,必须借助多机分布式训练。然而目前主流的图训练框架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

明朝皇帝大事记——根据《明朝那些事儿》整理而成

之前看过《明朝那些事儿》,但过段时间就忘了。最近读客给寄了《南明史》,想着在阅读《南明史》之前,先复习下明朝历史,故根据《明朝那些事儿》整理得到下面的明朝皇帝列表及大事记,感兴趣的同学自取。可点击查看大图。

Continue reading

《早晨从中午开始》好句摘录

1. 我为自己牛马般的劳动得到某种回报而感到人生的温馨。我不拒绝鲜花和红地毯。但是,真诚地说,我绝不可能在这种过分戏剧化的生活中长期满足。我渴望重新投入一种沉重。只有在无比沉重的劳动中,人才会活得更为充实。这是我的基本人生观点。

Continue reading

《早晨从中午开始》读书笔记

这本书集合了路遥多篇散文随笔,其中《早晨从中午开始》记录了路遥写作《平凡的世界》的心路历程,也是本文的主要篇章。

缘起

路遥写作《平凡的世界》的缘起是,他在二十岁的时候,有过一个念头,即想要在四十岁之前写一部鸿篇巨著,一部连自己都感到规模最大的书。这个念头在《人生》大获成功之后越发强烈,《人生》已经很成功了,但是他想要超越成功。正是这种执念,他决定暂时“隐退”文坛,开始潜心构建一部规模宏大的作品,一个他心中的平凡的世界。

Continue reading

CS224W(1.12)Lecture 1. Introduction; Machine Learning for Graphs

前言

最近的工作涉及到图神经网络,打算系统学习下这方面的内容。首先搜集了相关的教材,发现市面上的教材大多数是罗列论文的形式,不太适合初学者入门。后来找到了斯坦福CS224W这门公开课,打算入坑,一是之前学习过斯坦福CS224N,感觉不错;二是CS224W这门课的老师是GraphSAGE的作者Jure Leskovec,有大佬背书错不了。

CS224W主页:http://web.stanford.edu/class/cs224w/
Winter 2021版主页:http://snap.stanford.edu/class/cs224w-2020/
Winter 2021版视频:https://www.youtube.com/playlist?list=PLoROMvodv4rPLKxIpqhjhPgdQy7imNkDn,Jure Leskovec是斯洛文尼亚人,英语不是很标准,建议打开YouTube的字幕。

Continue reading