《深入浅出图神经网络》读后感

年初开始,有幸参与了和图神经网络相关的工作。对于我这个门外汉来说,最好的学习方法就是找本基础入门的书从头学。但是在搜了一圈后才发现,居然只找到了一本讲GNN的中文书,就是这本《深入浅出图神经网络》。不得不感慨GNN这个东西还真是够新的。

从4月份入手一本,开始从头读起,前前后后花了2个多月终于把核心内容都学习完成。当然中间伴随着工作项目的开展,也附带着看了相关的很多内容,所以开始读的不懂的东西,后来也能顺利地理解。到6月中旬,把最后一章快速浏览过,决定还是写点读后感,留给现在一些想学习GNN的人做参考。

作为一个曾经出版行业的从业者,先习惯性地看看这本书的基本信息:

  • 2020年1月第一版第一次印刷,无印量(估计这种比较专业的,还是很新的题目的书也不会印几本,初步猜测大概能印5000本)
  • 全书200多页,14个印张(印张是我们出版专业的术语,用来衡量印一本书要多少纸)
  • 原价:89块,只能感慨通胀够厉害,当年这本书基本也就是20多一本。我买的这本基本打了7折,心疼一下出版社。

下面开始讲讲这本书的情况。总体而言,书是一本不错的书,作者是良心写作。内容上也对得起“深入浅出”这4个字,相关的概念都有例子做解释,不是那种堆公式和代码的“高深”书。对于GNN的一些相关概念,书里都比较通俗易懂地给出了解释。同时作者也能给相关的模型和概念进行比较和分析,虽然不算是高屋建瓴,但也看得出是有深入理解的。

但是,这本书的质量被两个问题给拉低了。一是书里面编辑错误不断,各种小错误;二是这本书的目标读者不清晰,直接影响了作者的写作和读者阅读体验。

作为一个曾经的编辑,对编辑质量还是非常敏感的。这本书里面,从文字到公式,再到图片内容,至少出现了十几处明显的错误。有些错误,比如公式里缺少了一部分,可能是编辑对数学内容不理解造成的,这个可以理解。但是有些明显是文字和图片内容不一致的错误则就是标准的编辑错误了。这个责编:张同学 需要好好检讨。

第二个问题就涉及到出版书籍的目标读者的问题了。在这一点上,作者给出的目标读者是

  1. 想学习并初步实践图神经网络技术的;
  2. 想较系统且深入理解图神经网络技术的。

但是对于GNN而言,它是整个基于神经网络的AI的一个研究实践方向,有点类似本科阶段的专业课阶段。所以它是需要学生首先学习了神经网络的基础知识,然后再学习GNN的内容。而这本书花了接近一半的页面(第2-4章)来讲解神经网络的基础知识,覆盖了机器学习、神经网络、卷积网络、表征学习。虽然这些内容和后面章节介绍GNN的内容相关,但是显然作者既然要写,就很难写。太多了,占篇幅又喧宾夺主;太少了又讲不清楚。因此这个部分就变成了鸡肋。对于没有神经网络基础的读者,只看这些部分,基本上是看不懂的。而对于已经有了神经网络基础,只是来学习GNN的读者,这些内容基本上就可以忽略了。书的第1章介绍了图相关的内容,但是只有1章,对于图神经网络来说,这个内容又太少了。所以全书的前半部分基本没什么价值。

这本书真正有价值的部分是从第5章开始到第9章。特别是第5章,从频域分析的角度详细讲解了图信号处理的原理,并进一步引出了图卷集的概念,然后介绍了GNN最早出名的GCN的内容。
第6章的分析也很好,讲解了GCN的性质和优缺点。这些内容对于普通读者来说非常好。这种总结的内容,能帮助大家建立一个学习的框架,省了大家直接看paper去总结的时间。
第7章讲了现在常用的GNN的模型,也是比较好的总结。特别是其中的GNN的三种通用框架的总结,MPNN、LNNN和GN。这确实是一个帮助大家建立系统化知识体系的好内容。
第8章讲解了整图分类的模型,也是体系化的讲解,非常好。这个部分的知识是GNN比较特殊的地方,因为涉及到了不少图分析和图机器学习的基础知识,所以不是很容易理解。我也是看了好几遍,对于一般读者而言,需要提前看一些图分析的知识。
第9章介绍了图表征的学习方法,这个也是蛮有趣的一个话题。不过由于GAN的流行和NLP里面这种超大模型(Bert之流)的推广,图表征的内容也倒还是容易理解。
最后的第10章基本没啥内容,可以直接忽略。

这本书的一个特色是第5到9章里面,每章都给了基于PyTorch的样例代码。是希望读者能够自己上手跑一些代码加深理解。但是,这个部分从我个人理解而言价值不大,我自己只看一些数据处理的部分。而对于模型的部分,这些简单的实现无论是想做实验发paper,还是准备在公司场景里用一用,都远远不够的。

现在已经有了专门实现GNN模型的开源框架了,主流的就两个:DGL(Deep Graph Library)和PyG(PyTorch Geometric)。国内的大厂的基本都没啥用处。

所以如果想实际去学习GNN的模型代码,并且用在真实工作里,还是去学习这两个现成的框架,不要再去重复造轮子。里面有太多的工程问题(坑)要解决。

对于这两个框架,我后面会写一篇比较的博文来分析,有兴趣的小朋友可以留言交流。

总而言之,这本书对于有了一定深度学习基础,会用PyTorch处理数据写模型的同学,可以作为一本入门书来学习GNN。但是如果想深入的学习,还是要额外的读很多的东西。这里推荐斯坦福大学的CS224W的开源课程来补充图相关的机器学习的内容,可以很好的帮助理解这本书的内容。

你可能感兴趣的:(图学习,图神经网络,机器学习,深度学习,图神经网络,机器学习,书评)