属性图社区搜索--QD-GCN(Query-Driven Graph Convolutional Networks for Attributed Community Search)

本文主要是介绍属性图社区搜索--QD-GCN(Query-Driven Graph Convolutional Networks for Attributed Community Search),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.什么是ACS(attributed community search)
  • 对于给定的查询节点 (节点+该节点的属性),找出其所属社区
    在这里插入图片描述
2.ACS问题–传统方法
  • 传统方法
    传统方法分两步执行
    1)structural matching:找出查询节点的候选社区结构
    2)attribute filtering:优化属性函数,来缩小或筛选第一步选出的社区
  • 缺点
    1)将结构和属性分开处理,忽略结构和属性关联,现实世界的社区结构和属性是有关系的
    2)传统社区搜索基于预定义的子图(先根据如下标准:k-core,k-truss,k-clique,k-edge connected component选出子图),但是现实世界中的图不能很好的严格满足这些标准
    3)属性独立处理(例如GCN和GNN是相似的,传统的方式认为是完全不相关的两个词)
3.ACS问题–本文提出的方法(QD-GCN)
  • QD-GCN方法介绍
    design four learning components for different learning tasks
    1)graph encoder
    学习整张图的结构和属性特征(both structure and attribute of entire graph),input图的邻接矩阵A和特征矩阵F,产生graph embedding
    2)structure encoder
    学习与特定查询相关的局部结构特征(query-specific local structural features),为查询节点提供接口,学习查询节点局部特征,产生查询节点的映射 query-specific structural embedding
    3)attribute encoder
    学习查询节点相关的属性特征,为查询属性提供接口,产生query-specific attribute embedding
    并基于属性结构二分图考虑属性的相似性。

4)feature fusion
融合上述三个编码器的输出,并获得最终的查询输出。融合的特征在训练过程中,也会传给结构和属性编码器
在这里插入图片描述

  • 创新点
    1)提出QD-GCN,能同时考虑社区结构和节点属性(解决了传统两阶段方法的问题)
    2)对GCN进行改进,使其能支持查询操作(对于不同的查询节点,能输出其对应社区)
    3)预测任意查询节点的社区·
4.ACS问题整体思路
  • 设计一个基于监督式的模型,优化损失函数学习参数(模型输出 model output 和 真实值 lable)
  • 训练集:查询节点(节点+属性)和 每个查询节点对应的社区结构 label
  • output:根据训练好的模型,输出查询节点的所属社区
    在这里插入图片描述
    图注:训练数据
    在这里插入图片描述
    图注:指示向量,如果查询节点Vi在真实的社区中,则第i行为1
    标签不应该为该节点所属社区的向量表示吗??然后和模型预测的社区结构算损失,反向传播优化
    在这里插入图片描述
    图注:对于查询节点,模型输出的向量
    在这里插入图片描述
5.预备知识-GCN
  • 每一层的信息传播规则
    前一层的学习到的节点特征,乘可训练的权重矩阵W,乘归一化后的矩阵(目的为了提取邻居节点和自身的信息),再通过激活函数非线性变换,和传统神经网络差不多,只是针对图结构加了一个信息提取的矩阵
    在这里插入图片描述
    图注:分解上述公式–具体节点的学习过程,聚合前一层节点本身特征和邻居节点特征
    在这里插入图片描述
6.QD-GCN实现细节
  • Graph Encoder
    输入邻接矩阵A和节点特征矩阵F,H矩阵初始化为按行归一化的特征矩阵F N×d
    图注:传统GCN每层前向传播+self feature modeling +bias(对邻居特征及自身特征聚合,来学习每个节点表示
    在这里插入图片描述
    图注:最后一层编码器输出的graph embedding不用送进激活函数,因为fusion encoder有激活函数,其余两个编码器的embedding最终输出也不用送到激活函数
    在这里插入图片描述

  • Structure Encoder
    输入邻接矩阵A和查询节点矩阵I,为查询节点提供接口,(学习每个节点基于查询节点集的表示
    在这里插入图片描述
    图注:信息传播方式
    在这里插入图片描述
    如何输入查询节点集到上式中,如何根据查询节点集学习每个节点的表示?
    最短路径能反映任意节点到查询节点集的紧密程度,求每个节点到查询节点集的最短路径初始化矩阵I(每个节点到查询节点集的紧密程度),值越大说明节点离查询节点集合越近,其属于一个社区的可能性越大
    在这里插入图片描述
    I初始化为节点到查询节点集的最短路径长度,之后把融合编码器的输出作为输入
    在这里插入图片描述
    最终的structure embedding
    在这里插入图片描述

  • Attribute Encoder
    提供查询属性接口,节点属性矩阵F和查询节点的属性矩阵Fq作为输入,(基于查询属性,产生每个节点的嵌入向量
    因为最终所查询的社区是节点的集合,所以需要将属性表示成节点形式(将属性和节点之间建立关系),构造structure-attribute bipartite graph,构造二分图的邻接矩阵(F是节点和属性的特征矩阵), 如果两个属性公共节点多,则属性更接近(能捕获属性之间的相似性)
    在这里插入图片描述
    节点属性二分图卷积网络(Bipartite Graph Network)
    目的:基于属性学习节点的嵌入向量
    1)图注:为了将查询属性输入,将查询属性表示成one-hot形式d×1,用查询属性one-hot矩阵初始化IV,之后把属性侧的输出,作为节点侧的特征输入。0层每个节点先对于自身属性中,包含的所有查询属性聚合(既是自己的属性∩又又在查询属性集合中),这样每个节点在查询属性集合中的数量越多,此节点的权重越大(意味着学习到了每个节点基于查询属性的嵌入)
    在这里插入图片描述
    在这里插入图片描述

2)图注:二分图属性侧特征学习过程,用查询属性的one-hot编码,初始化矩阵IF,
在这里插入图片描述
在这里插入图片描述
图注:二分图节点和属性学习过程,最终产生基查询属性的节点向量嵌入
在这里插入图片描述
图注:去掉属性编码器最后一层激活函数,送入fusion encoder
在这里插入图片描述

  • Feature Fusion
    聚合前面三个Encoder输出的embedding,AGG为聚合函数(例如sum),为了考虑结构和属性的关系,中间层将融合的特征输入到结构和属性编码器。
    在这里插入图片描述
    fusion encoder的最后一层输出融合前面三个编码器的各节点嵌入向量,将权重大(向量大)的节点划分为一个社区
    在这里插入图片描述
7.论文实验
  • 对比实验
    1)对比两个非属性社区搜索算法(CTC,K-ECC),以及两个属性社区搜索算法(ACQ,ATC)
    CTC:先找出包含查询节点集的k值最大的k-truss结构,然后移除离查询节点远的点和边
    K-ECC:找出包含查询节点的k-edge connected component
    ACQ:先找包含查询节点的k-core,然后筛选包含查询属性最多的k-core
    ATC:先找包含查询节点的k-truss,然后通过属性评分函数对k-truss评分,筛选
    2)自身对比,验证每个组件的必要性
    3)聚合函数对比实验
    4)输出层阈值r对比实验
    通过四个编码器,有效的提取了全局特征和局部特征,以及查询节点和查询属性(将这些特征映射在节点的向量表示中),然后进行下游任务社区搜索(根据阈值 r 选择节点向量中数值大的几个点作为一个社区)

这篇关于属性图社区搜索--QD-GCN(Query-Driven Graph Convolutional Networks for Attributed Community Search)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/714626

相关文章

探索Elastic Search:强大的开源搜索引擎,详解及使用

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选,相信大家多多少少的都听说过它。它可以快速地储存、搜索和分析海量数据。就连维基百科、Stack Overflow、

【文末附gpt升级秘笈】腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑

腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑 一、引言 随着人工智能技术的飞速发展,自然语言处理(NLP)和机器学习(ML)在各行各业的应用日益广泛。其中,AI搜索解析能力作为信息检索和知识抽取的核心技术,受到了广泛的关注和研究。腾讯作为互联网行业的领军企业,其在AI领域的探索和创新一直走在前列。近日,腾讯旗下的AI大模型应用——腾讯元宝,迎来了1.1.7版本的升级,新版本在AI搜

CALayer相关的属性

iOS开发UI篇—CAlayer层的属性 一、position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position; 用来设置CALayer在父层中的位置 以父层的左上角为原点(0, 0)   @property CGPoint anchorPoint; 称为“定位点”、“锚点”

CSS背景属性:打造丰富视觉效果的背景设计

在网页设计中,背景是创建视觉吸引力和设置页面基调的重要元素。CSS提供了多种背景属性来控制元素的背景样式,包括颜色、图像、尺寸、位置和重复方式。本文将详细介绍CSS中的背景属性,包括background简写属性以及background-color、background-image、background-repeat、background-position和background-size等属性。

CSS中的表格专有属性:提升表格布局与样式的灵活性

CSS为表格提供了一系列专有属性,这些属性使得开发者能够对表格的布局和样式进行精细控制。在本文中,我们将介绍几个关键的CSS表格属性:table-layout、border-spacing、border-collapse 和 empty-cells,以及它们如何影响表格的显示效果。 1. table-layout table-layout属性定义了表格的布局算法,主要有两个值: auto:浏

CSS列表属性:list-style系列属性详解

CSS(层叠样式表)是用于控制网页样式的一种语言,它允许开发者以一种非常灵活的方式来设置网页元素的外观。在CSS中,list-style属性族是专门用来设置列表样式的。列表是网页设计中常见的元素,它们可以是有序列表(<ol>)或无序列表(<ul>)。list-style系列属性允许你自定义列表项前的标记,包括类型、位置和图像。 1. list-style-type list-style-typ

Spring MVC的核心类和注解——@RequestMapping注解(二)@RequestMapping注解的属性

一、@RequestMapping注解的属性 属性名 类型 描述 name String 可选属性,用于为映射地址指定别名。 value String[] 可选属性,也是默认属性,用于指定请求的URL。 method RequestMethod[] 可选属性,用于指定该方法可以处理哪种类型的请求方式。 params String[] 可选属性,用于指定客户端请求中参数的值,必须包含

ADD属性驱动架构设计(一)

目录 一、架构设计过程 1.1、架构设计过程 1.1.1、设计目的 1.1.2、质量属性(非功能需求) 1.1.3、核心功能(功能需求) 1.1.4、架构关注 1.1.5、约束条件 1.2、基于设计过程 二、什么是ADD? 三、为什么选择ADD? 四、作用 五、ADD实现步骤 5.1、架构设计目标 5.1.1、系统类型确定  5.1.2、系统阶段确定 5.2、建

代码随想录算法训练营第三十九天|62.不同路径 63. 不同路径 II 343.整数拆分 96.不同的二叉搜索树

LeetCode 62.不同路径 题目链接:62.不同路径 踩坑:二维的vector数组需要初始化,否则会报错访问空指针 思路: 确定动态数组的含义:dp[i][j]:到达(i,j)有多少条路经递推公式:dp[i][j] = dp[i-1][j] + dp[i][j-1]初始化动态数组:dp[0][0] = 1遍历顺序:从左到右,从上到下 代码: class Solution {pu

图解float属性的详细信息

转自:http://www.cnblogs.com/58top/archive/2013/01/09/details_about_float_property.html 正确使用CSS的float属性可能会变成一项艰巨的任务,,它涉及内容过多,浏览器兼容性问题也很多。它的定位不仅涉及 包含块,还涉及到了行框,块框,还有行内框等内容。本文包含的实施例的应用属性float说明性例子,以及一些失误