总结

一边用GNN预测结果来提取子图,一边训练GNN,最后实现兼顾效率和准率的社区搜索模型

动机

老方法很难做更精准的community search。

比如a是查询点,黄蓝两边都是明显的community,但他们没法简单地通过结构或者关键词做区分。

比如aijkh这边,无论是k-core还是k-truss,k大于2后就不能聚合他们,一般情况要不断增加k,就会找不到这个稀疏地community。此外,这些点又没有相同的关键词,从关键词下手也不行。

定义

文章的目标定在了社交网络上(微博,推特等),数据都通过他们提供的API获取。

GNN

图定义:\(G=(V,E,F), A=\{0,1\}^{|V|\times|V|}, F=\mathbb{R}^{|V|\times d}\)

文章将社区搜索视作监督学习下的二分类问题\(P=GNN(A,F,W)\)

k-sized community with maximum GNN scores

给查询点\(q \in V\)和社区大小\(k\),找到GNN最高分的k0sized community就是kMG社区。

他是G的子图\(G_c=(V_c, E_c, F_c, P_c)\)需要满足:

  • 查询点和子图相连

  • \(|V_c|=k\)

  • \(\sum_{u\in V_c}P[u]\)

因为现实的数据下,即使尽可能地收集了数据,community任然会是稀疏的,所以只定下相连的门槛。

此外,毕竟目标不是完全的点分类,而是社区的搜索,所以可以设定一个目标社区的大小。

找到这样的kMG是NP-hard的。

模型

候选子图

在进行之后的算法前要先做一个结构上的初步筛选。

这里不知道是不是笔误,伪代码8行中用的是\(S_p\),但文中的解释是“没有标签”。根据内部的算法,应该文字说明是对的。

  • 根据初步筛选的图做GNN得到基于特征的子图。因为过了GNN,这时已经有了预测的分数。

  • 如果子图中的一个点是有正标签的,则去找规定页数内的粉丝,并把他们包括和目标点的连接加入图中。

  • 如果没有标签,则只加入和目标点以及已存进子图的点的边。

  • 利用用户发的信息补充目标点的特征。

  • 最后,如果没有获取过这个点的描述信息(姓名,所在地,年龄等),就获取一下。

GNN训练

算法2讲的就是embedding特征,GNN训练和预测,不贴了。

虽然文章在选子图的时候费了很大力气,但GNN这边会去训练所有候选子图,毕竟已经限制了大小,GNN这边不会是效率的瓶颈,而且多点训练效果也会更好。

K-Sized community with Maximun GNN scores

  • 给所有点标注一个false的flag

  • 从q开始做广度优先搜索,,前k个加入结果中,并标注为true

  • 结果中抽点出来个点u,找它的不在结果里的邻居v。如果它的预测结果比结果点中非u最低的点要高的话,就把它替代了,并把v标true

思路其实就是找candidate周围有没有更大的点,替代掉已经有的最小的点。flag的用处就是避免重复判断点。

这部分需要加一个考虑score最大化的loss:

\(Loss_r = \sum_{(v_0, v_1)\in R}\max(0. P[v_1] - P[v_0] - m)\)

其中\(0 \le m \le 1\)用来调节tolerance。这个损失的函数的期望是\(P[v_0] > P[v_1]\)。最后的loss就是联合交叉熵和上面的这个。

贪心算法

上面这个算法在一些情况还是会漏结果,比如一个标签为正的离query点很远,没能直接连接的点就可能被漏掉。

所以作者还提了个贪心算法。

这个算法是在遍历所有点。在每一轮对community结果的更新中,要判断所有点对于该community的最短路径和分数的综合收益,然后每次塞收益最大的,直到community大小到k。

实验

CPU主频2.3GHZ,显卡是两张2080ti,GNN选择GCN

数据集

offline

上来先把超参测了。

横坐标200,30表示子图大小200,社区30

上面的贪心算法伪代码对应Greedy-G,另一个Greedy-T是不管GNN的分数,直接看距离的结果。

BFS-S对应算法3。

实验结果挺有意思的,如果用贪心算法,即使不考虑其他任何特征,实验结果也会比非贪心的要好,也就是说其实结构信息已经是非常丰富的了,而且在够大的图上,比如Reddit上,其实效率也没落后太多,两个数量级以内。

Online

[VLDB 2021]ICS-GNN_ Lightweight Interactive Community Search via Graph Neural Network相关推荐

  1. ICS-GNN:Lightweight Interactive Community Search via Graph Neural Network

    1.问题定义 给定一个查询节点,求出此节点所属的社区.社区搜索用途(可以为许多应用提供候选集:friend recommendations,fraudulent graph discover) 2.现 ...

  2. 论文笔记:ICLR 2021 Combining Lable Propagation And Simple Models Out-Performs Graph Neural Network

    前言: 本文的作者认为对于 GNN 的可解释性不足.基于此,作者在节点分类任务上提出可以通过将忽略图结构的浅层模型与两个利用标签结构中相关性的后处理方法相结合,超越或匹配最先进的 GNN .具体如下: ...

  3. 【从零开始】CS224W-图机器学习-2021冬季学习笔记8.1 Applications of Graph Neural Networks

    课程主页:CS224W | Home 课程视频链接:斯坦福CS224W<图机器学习>课程(2021) by Jure Leskovec 文章目录 1  前言 2  对GNN进行图增强 2. ...

  4. cs224w(图机器学习)2021冬季课程学习笔记11 Theory of Graph Neural Networks

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. How Expressive are Graph Neural Networks? 2. D ...

  5. 【CVPR 2021】剪枝篇(二):Convolutional Neural Network Pruning with Structural Redundancy Reduction

    [CVPR 2021]剪枝篇(二):Convolutional Neural Network Pruning with Structural Redundancy Reduction 论文地址: 主要 ...

  6. 【1】谷歌2021模型量化白皮书《A White Paper on Neural Network Quantization》

    2021 Google模型量化白皮书 摘要 引言 模型量化的理论基础 硬件背景 均匀仿射量化 对称均匀量化 2的幂次方量化 量化粒度 量化模拟 Batch normalization folding ...

  7. cs224w(图机器学习)2021冬季课程学习笔记10 Applications of Graph Neural Networks

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Graph Augmentation for GNNs 1.1 图特征增强Feature A ...

  8. [TKDE 2021] Self-propagation Graph Neural Network for Recommendation

    摘要 解决的问题: 稀疏图忽略了link,导致传播不准确: 预定义的粗粒度规则决定propagation weight,只考虑到node层次 本文提出了3种方法补全稀疏图: 基于推荐模型补全图: 基于 ...

  9. 13 种高维向量检索算法全解析!数据库顶会 VLDB 2021 论文作者干货分享

    编者按: 以图搜图.商品推荐.社交推荐等社会场景中潜藏了大量非结构化数据,这些数据被工程师们表达为具有隐式语义的高维向量.为了更好应对高维向量检索这一关键问题,杭州电子科技大学计算机专业硕士王梦召等人 ...

最新文章

  1. MySQL中,当update修改数据与原数据相同时会再次执行吗?
  2. Linux VI编辑器
  3. 【DIY】送给儿子的礼物——DIY故事机(音乐播放器)
  4. Jquery实现点击页面发送弹幕效果
  5. [文摘20070913]最好的消息
  6. HDU 4893 线段树
  7. Nodejs线上日志部署
  8. gitlab搭建与使用
  9. 逆向破解之160个CrackMe —— 007
  10. linux mysql 查询慢_linux – MySQL非常简单的SELECT查询速度极慢
  11. Residual Attention Network--2017-【论文理解】
  12. oracle12c安装教程
  13. 苹方字体 android,iOS 9“苹方”字体像安卓被吐槽
  14. QTP基础教程(讲义)《软件测试技术》
  15. java 读取换行_Java中的换行字符读取 - java
  16. php网站静态页面模板,用PHP制作静态网站的模板框架
  17. AI智能语音系统源码搭建
  18. 2020年5月程序员工资统计,平均14542元
  19. 华为3COM正式更名为『杭州华三通信技术有限公司(H3C)』
  20. python七段数码管绘制实验报告_Python绘制七段数码管实例代码

热门文章

  1. caffe创建网络_Caffe2-创建自己的网络
  2. 《中国计算机报 停刊,《中国计算机报》硬件之星“最具超值”产品:捷波J-865PEDA...
  3. python3.6.6对应pydev_python之pydev安装
  4. 片上网络路由算法综述
  5. Linux入门(6)- SecureCRT 和 SecureFX 的使用
  6. MATLAB中的zigzag,ZIGZAG扫描的MATLAB实现
  7. tensorflow2.0——预测泰坦尼克号旅客生存概率(Keras应用实践)
  8. TMC2208-LA步进电机驱动芯片
  9. 学习笔记 - 如何增长
  10. linux安装和使用docker教程