
DGL
文章平均质量分 88
Icy Hunter
如果我真的存在,也是因为你需要我
展开
-
2022大规模电商图上的风险商品检测
因为我用这个比赛来抵专业实践,现在成绩出来了,就发一发吧。近年来,图计算尤其是图神经网络等技术获得了快速的发展以及广泛的应用。在电商平台上的风险商品检测场景中,黑灰产和风控系统之间存在着激烈的对抗,黑灰产为了躲避平台管控,会蓄意掩饰风险信息,通过引入场景中存在的图数据,可以缓解因黑灰产对抗带来的检测效果下降。在实际应用中,图算法的效果往往和图结构的质量紧密相关,由于风险商品检测场景中对抗的存在,恶意用户会通过伪造设备、伪造地址等方式,伪造较为“干净”的关联关系。原创 2022-09-27 21:28:06 · 2013 阅读 · 4 评论 -
GraphSAGE的一些理解以及一些模块的DGL的代码实现
本来想画个图来展现一层层采样的汇聚过程的,但是感觉好像有点过于复杂了,那就直接从最后一步的结果来理解也是可以的吧,DGL邻居采样能够根据gnn的层数来得出对应得结果,计算的时候,只需要对应得block参与对应层gnn计算即可,这样实现了minbatch的计算,使得超大图得以轻松的训练。...原创 2022-07-30 16:46:01 · 2824 阅读 · 0 评论 -
DGL库中一些函数或者方法的介绍
DGL库中有许多内置函数和方法,还是需要记录一下,以便更好的掌握DGL。原创 2022-07-23 11:12:43 · 1956 阅读 · 0 评论 -
R-GAT实现基于方面级情感分析
这篇博客主要是为了记录一下一套完整的深度学习模型的流程,方便以后好copy数据预处理其实比较重要,不过看模型喂入数据的格式就知道应该将数据处理成什么样了,过程肯定仁者见仁,智者见智,这里就不介绍了。这个主要是为了让你训练的时候,能够根据训练结果来决定是否结束训练,如果测试集损失一直在升高,就没必要训练了。R-GAT模型这个以前讲过,用的就是异构图卷积,可以参考基于注意力机制的图神经网络且考虑关系的R-GAT的一些理解以及DGL代码实现但是方面级情感预测,每个句子里的方面可能不止一个词,自己操作一下就好原创 2022-07-12 14:43:38 · 2254 阅读 · 7 评论 -
使用StanfordCoreNLP的句法树以及NLTK的Tree建立DGL的图数据结构
因为其实Tree-LSTM的数据类型构造起来也是比较麻烦的,还是要记录一下,以防之后忘记因为前面一篇写的Tree-LSTM是用DGL实现的,那么图数据结构自然也要用DGL来操作一下,不然喂不进去啊。构建数据集的样子是按照DGL自带的SSTDataset(mode=‘tiny’)来的,因为这样我就可以直接放进去训练了。我是使用句法树来构建的,因为句法树并不止二叉,因此模型使用Child-sum Tree-LSTM会比较合适。例如:这么一颗句法树,因为DGL使用序号来标注节点的,那么其实我也需要转成序号才原创 2022-07-06 10:21:15 · 1592 阅读 · 4 评论 -
Tree-LSTM的一些理解以及DGL代码实现
Tree-LSTM其实在好久之前就研究过了,那也应该是我第一次学DGL的时候。因为树就是一种特殊的图,也算是我入门图神经网络的基础操作,依稀记得当时搞着模型也是弄了蛮久的…Tree-LSTM是一种树形结构的LSTM,能够提高LSTM计算的并行速度,同时能够融入依存树或者句法树的相关信息,从而达到比较好的句子建模的效果。Tree-LSTM有两种形式,一种是N-ary Tree-LSTM还有一种是Child-sum Tree-LSTM,前者能够记录时序信息但对孩子节点的个数有特点限制,后者会失去位置信息,但是对原创 2022-07-06 09:31:46 · 3651 阅读 · 9 评论 -
基于注意力机制的图神经网络且考虑关系的R-GAT的一些理解以及DGL代码实现
因为R-GAT在DGL的官网上并没有给出实例教程,然后原文的代码实在是太长了,完全头大,只能在网上疯狂搜索野生代码,最后搜到一个通过DGL中的GATConv代码改出来的R-GAT,虽然有些细节并不是非常确定,但是大体上思路是不错的,R-GAT就是为每种关系配了一个注意力机制层,然后计算出对应的关系注意力权重,最后再加到节点里就可以了。GCN通过节点的度来确定传递信息的权重,但是并没有考虑关系的影响;R-GCN考虑到了关系对信息传递的影响,但是当图节点增加时,关系的迅速增长,以及某些关系的数据比较少,容易出现原创 2022-07-05 11:36:40 · 5089 阅读 · 12 评论 -
DGL中异构图的一些理解以及异构图卷积HeteroGraphConv的用法
相比同构图,异构图里可以有不同类型的节点和边。这些不同类型的节点和边具有独立的ID空间和特征。 例如在下图中,”用户”和”游戏”节点的ID都是从0开始的,而且两种节点具有不同的特征。因此异构图才是最能够表达和适用我们真实世界的各种表达的。下面可以使用DGL创建一个如下的异构图:一共有三种实体,三种关系的异构图输出结果:DGL中创建异构图有许多方式,上面介绍的是通过类似三元组的方式创建例如(‘store’, ‘sells’, ‘game’),是指store指向game的sells关系,([0],原创 2022-07-04 10:52:06 · 5721 阅读 · 4 评论 -
DGL中的消息传递相关内容的讲解
学会DGL中的消息传递,基本就能够比较好的来理解编写各种图神经网络的代码了吧。消息传递是实现GNN的一种通用框架和编程范式。它从聚合与更新的角度归纳总结了多种GNN模型的实现。因此在DGL代码编写消息传递部分时,我们需要三个函数,分别是消息函数、聚合函数、更新函数。简单来说就是:消息函数用来取边和节点的特征。聚合函数用来计算边和节点的特征,例如特征求和,根据特征求个注意力权重等等。更新函数用来更新节点的特征,对聚合函数传来的特征可以过个激活函数等,最后得到最终的节点特征即可更新。在DGL中,消息原创 2022-07-03 11:01:23 · 2006 阅读 · 3 评论 -
基于注意力机制的图神经网络GAT的一些理解以及DGL官方代码的一些理解
昨天的R-GCN是对GCN的一种改进,因为考虑了关系,那么今天的GAT也是对GCN的一种改进,就算使用注意力机制来确定每个节点更新特征时,邻居节点传来的特征的比例,就相当于使用注意力机制来计算特征权重,而不是GCN简单通过度来计算特征权重。如果知道注意力机制应该会比较快理解GAT,目前注意力机制很常见,LSTM、CNN加上注意力机制一般效果都会提升,Transformer就是一个完完全全的多头自注意力机制架构并且再NLP和CV领域取得非常好的效果,放在图神经网络中同样也能够取得比较好的效果。其中hi(l原创 2022-07-02 14:27:55 · 3352 阅读 · 8 评论 -
考虑关系的图卷积神经网络R-GCN的一些理解以及DGL官方代码的一些讲解
昨天写的GCN的一篇文章入榜了,可喜可贺。但是感觉距离我的目标还是有点远,因为最后要用R-GAT,我感觉可能得再懂一点R-GCN和GAT才可能比较好的理解R-GAT,今天就尝试一下把R-GCN搞搞清楚吧(至少得读懂DGL官方给的代码吧)R-GCN和GCN的区别就在于这个R。R-GCN考虑了关系对消息传播的影响。带你快速理解R-GCN(relational-GCN)看看b站这个视频就应该能够比较形象的知道R-GCN是有什么创新点了,讲的还是非常不错的。R-GCN解决了什么问题,可以这么形象的理解:例如原创 2022-07-01 17:12:39 · 4484 阅读 · 11 评论 -
图卷积神经网络GCN的一些理解以及DGL代码实例的一些讲解
近些年图神经网络十分火热,因为图数据结构其实在我们的现实生活中更常见,例如分子结构、人的社交关系、语言结构等等。NLP中的句法树、依存树就是一种特殊的图,因此,图神经网络的学习也是必不可少的。GCN是图卷积神经网络,初期研究者为了从数学上严谨的推导该公式是有效的,所以会涉及到诸如傅里叶变换,拉普拉斯算子的知识,但是对于我们使用者而言,并不需要会证明GCN最终能收敛等等知识,能够懂大概原理和计算方式就差不多了吧…下面介绍GCN原文中的一些关键点。其中H(l) 是值输入的特征H(l+1) 是指更新后输出原创 2022-06-30 14:52:19 · 2810 阅读 · 4 评论 -
图的一些表示方式、邻居和度的介绍
由于最近需要学一学图神经网络,最终目标是需要用到R-GAT,但是总是不能一蹴而就的,拷下代码能跑应该不难,但是如果能够理解代码,修改代码,可能还是需要懂对应的模型理论知识。那还是先从图的表示开始吧…下面的图是b站视频里截的,因为确实看图一目了然了https://www.bilibili.com/video/BV1U44y1K7yP?p=2&vd_source=f57738ab6bbbbd5fe07aae2e1fa1280f邻接矩阵是一种基础的图表示方式。假设一个图的节点数量为N,则生成一个N*N的矩阵。原创 2022-06-29 16:57:20 · 3543 阅读 · 2 评论 -
DGL的图数据结构的创建、图的特征、dgl.batch及一些理解
文章目录前言一、创建图1.dgl.graph((u, v))2.dgl.graph((tuple)...)二、理解图1.边和节点的特征赋值与查看2.图的一些属性或方法3.DGL中的Batch前言dgl是图神经网络构建的工具。官方文档:https://docs.dgl.ai/guide_cn/graph-basic.html#guide-cn-graph-basic有中文的文档,很贴心。一、创建图1.dgl.graph((u, v))我只说一下我目前用过的方式,还有许多方式可以看官方文档。imp原创 2022-05-18 11:17:49 · 8231 阅读 · 6 评论