图算法入门
以下摘自“亿展宏图 第一篇|两张图入门图算法(By 赵扬)2021 年 06 月 18 日”
“凡两个物体接触,必会产生转移现象” ——罗卡定律。
引子
在老牌 TVB 剧《法证先锋》中,法证部的高 sir(欧阳震华饰)经常说的一句话:“凡两个物体接触,必会产生转移现象”。这就是罗卡定律,指的是:在犯罪现场调查中,行为人(犯罪嫌疑人)必然会带走一些东西,亦会留下一些东西。即现场必会留下微量迹证。而在 eBay 支付风控部门,我们也时时刻刻扮演着侦探的角色,与“不法分子”进行斗智斗勇。图算法(Graph Algorithm)作为侦探的好帮手,可以帮我们通过图深度学习的算法快速定位人与人以及人与物之间的微妙联系,用于抓住企图利用平台而做的不良行为。

本篇将从图算法的介绍、应用和演化过程三个方面带领大家入门图算法。
一、什么是图
根据维基百科的官方定义:图(Graph)用于表示物件与物件之间的关系,是图论的基本研究对象。图是由一些小圆点(称为定点或者节点)和连接这些圆点的直线或者曲线(称为边)组成。从定义中可以看出,图就是点和边的集合,研究图就是对点和边的研究。为了便于大家理解,我们以下面三张图为例 :
- 社交图:人为节点,社交关系/方式为边;
- 知识图谱:知识为节点,知识点间的关系/联系为边;
- 化学里面的分子图:原子为节点,键为边。
二、图算法的应用
上大学期间,有些人可能会开始“堕落”、不学无术,对所学专业缺乏兴趣。其中一个很重要的原因就是他们内心没有找到这些课程对他以后工作或者生活的用处。我一直认为,只有知道了这个“物”能为我们“所用”之后,我们才会更有耐心和兴趣去一步一步学习研究。这也是我为什么前两篇要优先介绍图算法应用而不是纯算法公式的原因。图算法在业界的应用有搜索推荐、分类、聚类、异常检测、传染病传播分析等等,我们逐一介绍一下。
1. 搜索推荐
通常的搜索推荐的算法无外乎从海量数据中先通过粗排找到相似的物品,然后通过用户反馈数据(比如点击量等数据)进行有监督的精排进行推荐。如果想要提升效果,肯定需要是引入了更多的对结果准确性有帮助的信息, 而图算法的加入就是加入了点和边等等的结构相关的重要信息。
比如在 Pinterest 网站的搜索排序中,他们就引入了基于图的算法,因为用户会自己会建立自己的收藏商品集合,比如所有的洋娃娃在一个收藏夹里面,这样无形中就建立了点和边的信息,每个点就是物品,如果两个物品在一个收藏夹里面,他们之间就会有连边,更大概率是同一类物品。引入这种结构在某些场景下会大幅度提升算法效果。
普通的搜索会根据图片信息,错误地返回一些纹理颜色类似但并不是同类型的物品,如下图的第一行所示,比如灯具等等。而基于图的算法结果(如下图第二行所示)在某些场景下会明显较好。不少大公司目前在搜索中也都慢慢地开始逐步引入图算法得到的一些特征,进而提升搜索准确性。

此图摘自斯坦福大学图算法课程
2. 分类
如维基百科需要识别文章是否是假的/谎报文章(hoax article),这就需要分类模型算法。通常解决这类问题的思路是用各种自然语言处理(NLP)的模型,通过文字上的不同进行分类。但是如果仔细看维基百科里文章结构性的分析,你会发现文章的联系图结构其实就是最核心的分类特征。根据维基百科分析师的研究发现,真实的文章会更互相耦合,如下图所示:

此图摘自斯坦福大学图算法课程
根据结构的不同 ,就可以建立图模型进行分类预测。效果如下:

此图摘自斯坦福大学图算法课程
根据以上数据显示:随机标记(Random)的准确率在 50%,非专业人工标记(Human)的准确率在 66%,而图算法(Network)的准确性可以达到 86%!可见图算法在某些特定的分类应用中的优越性。
3. 聚类
业界有各种各样的图聚类算法,这里就先不赘述了。其中需要注意的是:图聚类算法和普通的 K-means、层次聚类算法、密度聚类算法等各类传统算法的不同点。纯图聚类算法更多考虑的是图的结构,即边的结构,而不是传统聚类算法里面点和点之间的相似性。
4. 异常检测

此图摘自斯坦福大学图算法课程
比如你有一个大的物理计算机集群,你可以通过图算法找到集群中各个机器,也就是各个节点之间的联系,并构造边,这样你就构造出来一张大图。当某些节点发生问题的时候,通过应用图算法便可以检测并定位到集群相关的节点问题。