技术专栏
本文作者:刘忠雨
由萝卜兔编辑整理
通过前文《浅析图卷积神经网络》的介绍,相信大家对于图学习有了一个初步的认识,接下来我们将更加细致的解析图学习的相关知识。
开启图学习算法的第一步:理解什么是图
在数学上,图(Graph)是表示对象与对象之间关系的方法。从定义上可以看出,图有两个要素:
1、对象又称节点(Node)、顶点(Vertex)、实体(Entity),它描述的是具体的一件事物。
2、关系又称边(edge)它描述的对象之间的关系。
我们一般用这样的形式来表示一张图:G=(V, E), V表示节点的集合,E表示边集合;
V={V0,V1,V2,V3}、E={V0V1,V0V2,V1V2,V2V3}
图的另一种表达方式是邻接矩阵(Adjacent matrix)
Aij(邻接矩阵的第i行第j列)的取值表示的是第i个节点与第j个节点之间是否有边,取值为1表示有边,取值为0表示无边。邻接矩阵刻画的是图的结构信息,给定一个邻接矩阵,相应的图就可以画出来。
另外在实际研究中,节点与边都有特定的类型,比如连接“用户”与“商品”节点的边,很可能就是“购买”的类型关系。像这样,在构建一个具体业务场景的图时,标识上节点类型与边的类型,这样的图我们称之为图的结构表示(Graph Schema),它反应出来的是一种业务上的逻辑抽取。后面我们会结合各类现实场景中的Graph Schema来说说我们关注的一些学习任务。
青睐有加,理解图的优势
图做为一种广泛应用的数据结构,其优势主要表现在两点:
一是顺藤摸瓜,给定一个节点,顺着其边的信息,能够快速的找到它的邻居节点。换言之,在图里面查询信息很容易。
二是拉帮结派,由于图的传播性强(邻居的邻居也跟自己关系紧密),相互之间联系紧密的节点可以构成一个子图(或子团)。
上图中可以明显看到有a、b两个子图,一般像这样在图中寻找子团的任务称为社群检测(Community Detection )或者叫作高密子图挖掘(Dense Subgraph Mining)。
现实场景下缤纷的图世界
社交网络
利用社交网络图可以实现以下任务:
1、推荐用户可能感兴趣的人;
2、推荐用户可能感兴趣的帖子或者内容;
3、社群发现(通过用户社交关系网络挖掘群体结构);
4、用户画像(地点、兴趣、关系网络);
搜索排名
图在网页排名中的应用,根据各网页的链接关系网来确定各网页的排名,又叫做PageRank算法。其基本思路是被引用越多的网页重要性越高;被重要性高的网页链接的网页重要性越高。
评分系统
用户-产品的评分图
通过上述的图可以分析比如哪些用户可能对啤酒感兴趣,哪些用户可能对尿布感兴趣,从而实现商品推荐。还可以实现评分清洗,建模用户的公平度、商品的良心度、评分的可信度,按照一定的规则迭代更新这三个值,从而分析商品的优劣或者区分恶意用户。例如上图中的用户f,很大可能就是恶意评价用户。
推荐系统
用户与歌曲的关系图谱,可以实现可解释的推荐和精细化推荐。
比如沿着用户-歌曲-曲风-歌曲这个路径是推荐用户喜欢的曲风下的其他歌曲;沿着用户-年代-歌曲-歌手是推荐活跃在用户出生年代的歌手的歌曲(可能是用户小时候听过的歌,俗称回忆杀系列),这些就是可解释的推荐。
小思考:沿着用户-歌曲-年代-用户-歌曲的意义是什么呢?
关于精细化推荐,从图中挖掘有很多条路径,很多种理由去推荐,每个用户对具体路径的偏好不一,我们还可以根据历史偏好信息对用户做更精细化的推荐。
知识图谱(关联图谱)
知识图谱通常是指从文本中分解实体及其关系,导入到图中,便于查询及推理。简单介绍两个很简单的知识图谱应用。
▪知识图谱应用之知识推理:
基于规则“爸爸的爸爸是爷爷”可以推理出康熙是乾隆的爷爷。
▪知识图谱应用之语义理解(智能问答):
通过对“北京”和“博物馆”两个信息的综合,机器可以得出结论该地方很有可能是指故宫。
风险控制
图在风控中的应用很广泛,很多风控的策略逻辑可以转化为图里面的一些具体问题来思考。比如下面涉及到的几种思路方法,包括像关联识别、聚类识别、推导识别、异构识别、碰撞识别等一系列应用。
▪风险控制之关联识别
通过强标识性节点的关联信息来做Identity recognition。比如关联到相同设备指纹与IP节点的用户可视为同一用户。
短时间内关联到同一设备节点的用户节点数目异常可考虑为撞库行为。
同一设备关联的用户数目异常
撞库原理
▪风险控制之聚类识别
通过节点关联信息来挖掘子图结构,而这种致密的结构通常会被判定为异常的风险关系。
图中可以看出,用户1、用户2、用户3和帖子1、帖子2形成了高密子图
▪风险控制之推导识别
顺藤摸瓜,找到与异常节点相关联的节点进行风险排查。
▪风险控制之异构识别:
用户关联的信息发生较大变化,潜在被盗号风险。
▪风险控制之碰撞识别:
节点之间的对应关系出现碰撞矛盾。
公司G同时存在两个地址,出现数据碰撞,那么就可能有风险。
归纳总结:图的学习任务分类
上面和大家介绍的是一些常见场景下的图结构以及相关任务,总的来说,我们可以从节点、边、图三个方面对图学习任务进行分类。
1、节点上的任务:利用图中节点的关系可以做包括分类(比如风险识别、价值排名等任务)、聚类(社群检测、用户画像等任务)。
2、边上的任务:通过图中节点之间是否有边可以做比如推荐、知识推理等任务。
3、图上的任务:图可以做像高分子分类、3D视觉分类等任务。
在后期专栏中将会对各种任务进行更加细致的探讨。图在各种场景数据中都有着广泛的适用性。但是实际应用上,图的学习一直停留在“规则引擎”、“图计算”这样的浅层层面上,本专栏旨在通过梳理 Graph learning的方方面面,和大家一起打开思路,探讨真正的 Learning on graph。
网友评论