哈工大2020秋算法设计与分析大作业(二)


哈工大2020秋算法设计与分析大作业(一)

正文

3 领域综述

  1. Online community search using thread structure
    CIKM '09:第18届ACM信息和知识管理会议记录(2009年11月)
     
      在线社区是有价值的信息来源,人们通过互动积累知识。然而,论坛等在线社区网站提供的搜索服务往往很差。为了解决这个问题,我们研究了利用社区站点中的层次线程结构的检索技术。由于这些结构的注释有时是不明确的或不准确的,我们使用结构发现技术。然后在检索实验中使用线程结构。我们的结果表明,与强基线相比,使用经过精确注释的线程结构可以显著提高检索性能。

  2. Approximate closest community search in networks
    2015年12月VLDB(第9卷,第4期)
     
      现有的社区搜索研究大多没有解决搭便车的问题,即远离查询节点且与查询节点无关的节点被包含在检测到的社区中。一些最先进的模型试图解决这个问题,但它们的公式化问题不仅是NP难解问题,而且不允许任何没有限制性假设的近似,这在实践中可能并不总是成立的。
      本文给出了一个无向图G和一组查询节点Q,利用基于k-truss的社区模型研究了社区搜索问题。我们将寻找最近桁架群(CTC)的问题描述为寻找一个k最大且包含Q且直径最小的连通k-桁架子图。我们证明了这个问题是NP难的。此外,对于任何ε>0的情况,在一个因子(2-ε)内逼近问题是NP困难的。然而,我们开发了一个贪婪的算法框架,首先找到一个包含Q的CTC,然后从图中迭代地删除Q中最远的节点。该方法实现了对最优解的2-逼近。为了进一步提高效率,我们使用了一个紧凑的桁架索引,并开发了有效的k-桁架识别和维护算法。此外,利用批量删除优化和局部搜索策略,我们提出了两种更有效的算法。其中一种是以近似质量换取效率,而另一种是非常有效的启发式算法。在6个真实网络上的大量实验表明了我们的社区模型和搜索算法的有效性和效率。

  3. Attribute-driven community search
    2017年6月VLDB(第10卷,第9期)
     
      大多数以前的社区搜索算法忽略了属性,导致社区的节点属性的内聚性差。本文研究了属性驱动的社区搜索问题,即给定一个节点与属性相关的无向图G,以及一个由节点Vq和属性Wq组成的输入查询Q,找出包含Vq的社区,其中大多数社区成员是紧密相连的,具有相似的属性。
      我们将此问题描述为寻找属性桁架群(ATC),即寻找包含Vq的连通闭k-桁架子图,其属性相关性得分最大。我们设计了一个好的分数函数应该满足的理想性质的框架。我们证明了这个问题是NP难解的。然而,我们发展了一个有效的贪心算法框架来迭代移除具有最少流行属性的节点,并将图收缩成一个ATC。此外,我们还建立了一个优雅的索引来维护k-truss结构和属性信息,并提出了高效的查询处理算法。在具有地面真实社区的大型真实网络上的大量实验表明,我们的算法显著优于现有的算法,并证明了它们的效率和有效性。

  4. Finding Theme Communities from Database Networks
    2019年6月VLDB(第12卷,第10期)
     
      给定一个数据库网络,其中每个顶点都与一个事务数据库相关联,我们感兴趣的是寻找主题社区。这里,主题社区是一个内聚子图,这样一个公共模式在与子图中的顶点相关联的所有事务数据库中都是常见的。从数据库网络中寻找所有主题社区有许多新颖的应用。然而,这是一个挑战,因为即使计算数据库网络中所有主题社区的数量也是非常困难的。受主题社区随着模式长度的增加而收缩的观察结果的启发,作者研究了主题社区的一些属性,并开发了TCFI,一种利用这些属性有效地修剪不能形成任何主题社区的模式的可伸缩算法。我们还设计了TC-Tree,这是一种可扩展的算法,可以有效地分解和索引主题社区。从数亿个主题社区的TC树中检索主题社区的排名列表不到1秒。大量的实验和案例研究证明了TCFI和TC-Tree在从大型数据库网络中发现和查询有意义的主题社区方面的有效性和可扩展性。

  5. Topic-based Community Search over Spatial-Social Networks
    2020年7月VLDB(第13卷,第12期)
     
      以往的研究大多是通过社交网络来解决CS问题,而忽略了社区中的这类信息。本文提出了一个新的问题,即空间社会网络上的社区搜索(TCS-SSN),该问题能够检索具有较高社会影响力、较小旅行时间和覆盖特定关键字的社区。为了解决空间社交网络上的TCS-SSN问题,我们设计了有效的剪枝技术来减少问题搜索空间。我们还提出了一种有效的索引机制,即社会空间索引,以方便社区查询,并通过索引遍历开发了一种高效的查询应答算法。通过在不同参数设置下对真实数据集和合成数据集的大量实验,验证了剪枝技术、索引机制和查询处理算法的效率和有效性。

4 方法不足与改进

4.1 方法不足

对于异构信息网络(HIN)中的社区搜索,我们给定一个顶点,目标是查找包含顶点的密集连接子图形。本文使用元路径扩展经典最低度量值,从而衡量社区的凝聚力,并提出了使用这些凝聚力指标查找社区的高效查询算法,它们比基线解决方案快得多。
  但实际上,光有快速的计算与查询算法还不够,用户在使用过程中可能需要限制顶点之间的连接数,比如生物数据分析工作,在基因和疾病的HIN中,确定一个群体许多基因可以揭示不同疾病中隐藏的联系,但在搜索过程中未必需要对一种疾病搜索全部基因;在社会营销工作中,电子商务平台(如阿里巴巴)通常拥有大量的用户和产品,为了提高产品x的销售数量,可以向之前有共同购买行为的用户组发送广告消息,这些用户组可以通过CSH对购买过x的用户的查询来识别,但每个用户对x的偏爱程度是不一样的,查询时应基于每个用户对该产品的偏爱程度,得出最优结果。但现有方法都无法处理此类查询。

4.2 方法改进

我认为在HIN查询时,应该进行关系约束,允许用户指定顶点之间的细粒度连接需求。在此基础上,分别研究关系社区以及关系社区的发现和搜索问题。

4.3 改进结果理论分析

  1. 解决检测问题(RCD)
      为了避免不必要的计算,可以使用一种消息传递算法,在必要的时候以检查的方式去除不合格的顶点。具体来说,我们首先扫描并检查每个顶点一次。在此过程中,将删除不合格的顶点,每个顶点都会为其每个邻居发送一条消息。消息的格式为(v;u),这意味着\v的邻居u被删除。然后,我们检查接收到消息(v;u)时顶点v是否仍然是合格的。
      在算法2第3-11行中,我们扫描所有顶点一次,删除不合格的顶点,并将相关消息推送到队列中。在第12-18行中,我们逐个处理队列中的消息。对于消息(v;u),我们检查它是否仍然在VG中并且变得不合格(第14行)。如果是这样的话,我们将消息推送到每个邻居的队列中,并将其从VG中删除。
    在这里插入图片描述
      消息传递的优点是消除了部分冗余计算。它为推送到消息队列中的每条消息检查零个或一个顶点,因此检查的顶点总数不大于推送到的消息总数。同时,推送的消息的数量边界是2·|EG|,因为对于每一条边,删除它的任一侧会产生一条消息。因此,如果检查一个顶点,需要O(|S|+dmax)时长,则算法2的总运行时间为O((|EG|+|VG|)·(|S|+dmax)),其中dmax是顶点的最大度数。
  2. 解决搜索问题(MRCS)
      精确解的主要缺点是它的指数复杂性。当图形很大时,等待精确的结果是不实际的。相反,我们可以寻找在合理时间内可以得到的近似结果。
      在这里我们可以用一种贪心算法,它是对精确解的简单修正。简单来说,除了全局最小化R的大小外,在每一步仅选取局部最小值仍然可以得到一个好的解。由于我们不需要在每一步都尝试每一种选择,因此运行时间将大大缩短。
      算法5总结了这种方法。在第1-2行中,它得到Rmax(q),在第3-9行中,它迭代地从r-com中删除最大的顶点组。当不存在可移除的顶点组时,找到一个最小r-com并作为结果返回。
    在这里插入图片描述
      至于时间复杂度,第1-2行需要O(|EG|)时间。在每次迭代中,第4行用O(|ER|·|VR|)时间得到VR中每个顶点的顶点组,然后第6-7行用不超过O(|ER|)时间去除H0。最大迭代次数为|VRmax(q)|,假设在每次迭代中至少移除一个顶点。因此,总运行时间为O(|EG|+|ERmax(q)|·|VRmax(q)|^2)。

4.4 改进结果实验验证

4.4.1 实验设计
  1. 图形
    (1)IMDB1。这是一个MovieLens-100K数据集,它的结构很简单。它包含四种类型的顶点,即“\user”(U)、\movie”(M)、\actor”(A)和\director”(D)。顶点之间有三种类型的边,分别是\用户评论电影“,\演员表演电影”和\导演制作电影”。
    (2)Instacart^2。这是一个网上购物网站的联合采购网络。在这个网络中,每个顶点都是属于21个类别中的一个类别的产品,例如“面包房”和“罐头”。两个顶点之间的每条边这意味着它们在同一订单中购买了200多次。

  2. 架构
    对于每个数据集,我们按照以下步骤随机生成社区模式。
    (1)随机选取相关集LS;
    (2)对于每对标签(L1;L2);L1,L2 ∈ LS,生成随机数X,然后将约束<L1,L2,X>添加到S中。
     
      给定一个随机模式,图中可能不存在任何r-com(关联社区),我们只使用至少可以从图中查询一个r-com的模式。同时,为了对异构模式进行分类,我们将标签的基数定义为其上约束的总和,即
    在这里插入图片描述
    然后我们根据它们的平均基数对模式进行分组,用k表示。

  3. 查询顶点
      在MRCS问题中,对于每个模式,我们随机选择r-com中的一个顶点作为查询顶点。这样,我们保证每个查询肯定返回一个r-com。此外,我们还进行了实验来说明每种算法在结果为空时的性能。

  4. 图形更新
      对于合成动态图,我们根据批量大小b随机插入和删除边。具体来说,为了生成批量大小b的更新,我们在图中随机选择b/2条边进行删除,b/2对顶点作为要插入的新边的非相邻顶点。

  5. 参数设置
      在我们的实验中有两个参数,平均基数k和图更新批大小b。对于真实世界图的实验,我们将k从2变为9。对于合成图的实验,我们固定k=3。对于动态图的实验,我们将b从原始图的边数的10%变化到50%。

  6. 算法
      对于RCD问题,我们比较了naive和message-passing(mp)。对于MRCS问题,我们比较了精确搜索、贪婪搜索、局部搜索(ls)和带轮索引的局部搜索(ls-ri)四种算法。对于动态图上的MRCS,我们报告了ls-ri的运行时间。

4.4.2 实验结果

对于IMDB数据集,我们在所有类型中查询r-com顶点数。我们还将k从2变为9,以显示不同的模式。缺少的横条表明我们不能计算相似度得分,这意味着没有社区在该类型中包含多个顶点。
  可以看出,r-coms中的平均顶点相似度始终高于d-coms。对于这两种方法,当k增加时,每个顶点类型的得分也会增加增加,这表明设置更高的约束可以提高社区质量。缺少的条表示每个社区中只有一个顶点具有这种类型,所以不能计算相似性。
在这里插入图片描述
  在图5中显示了naive和mp的运行时间。同时给出了计数索引的最大构造时间和最大大小。由于其结构简单,空间成本低,计数索引只需要几兆字节的存储空间,而且可以在几秒钟内构造出来。可以看出,这两种方法在改变k时具有一致的性能。在较小的数据集上,这两种方法都运行得更快。
在这里插入图片描述
  在图6中,我们显示了针对k的运行时间和包含q(|Rmax(q)|)的最大社区的大小,这是精确和贪心的起点。此外,我们还显示了ls-ri的索引大小(\index”),以检查其空间开销。一般来说,在大多数情况下,exact无法在时限内完成。主要缺点是它的指数复杂性。其他三种方法在大多数情况下可以很快完成,而ls-ri是最快的。事实上,当搜索空间(索引大小)很大时,ls-ri可以比其他方法快几个数量级,这说明了舍入索引的效率。同时,舍入索引的空间开销最多可达数百KBs,与图的大小相比是很小的。当查看(d)、(e)和(f)时,很容易注意到所有数据集上的jRmax(q)j值都很大(>105)。相比之下,ls和ls-ri的搜索空间在大多数情况下都小于104。这表明local-search可以大大减少搜索空间。
在这里插入图片描述
 
  图7还显示了返回结果为空时每个方法的运行时间。很明显,在所有情况下,所有方法的运行时间都很短。特别是ls和ls-ri的运行时间非常接近,比精确和贪婪的算法小得多。这是因为局部搜索方法通常在搜索空间/索引大小较小的情况下,通过我们的候选剪枝策略在早期就检测到r-com的不存在性,而精确搜索和贪心搜索则必须遍历整个图。这显示了局部搜索方法检测不存在r-com的另一个优点。
在这里插入图片描述
 
  图8比较了每种方法在社区规模方面的准确性。对于每种方法,我们都会记录它在时间限制内找到的最佳社区,并将其与基本事实(图中的“事实”)进行比较。很明显,由于搜索空间和时间的限制,该算法不能精确搜索到小的群体,贪心通常陷入局部最优。另一方面,ls和ls-ri由于其自身的优势,通常可以建立规模较小的群落,在一个很小的地方搜索。在大多数情况下,它们的输出接近于实际情况。
在这里插入图片描述
 
  图9显示了动态图上ls-ri(算法8)的更新时间。很明显,当图形只有一点变化时,更新时间很短。随着图的变化,它逐渐接近静态图的运行时间。同时,图越大,动态更新与从头开始运行之间的运行时间差距越大,这说明了开发大型图动态算法的重要性。
在这里插入图片描述
 
  在合成图上测试所有方法的可伸缩性。结果如图10所示。
  对于RCD问题,这两种方法都可以在200秒内完成,即使是在大的或密集的图上。随着|VG|的增加,两种方法的运行时间呈次线性增长,这是因为社区变得越来越大,移除的顶点数量增长不快。另一方面,它们的运行时间线性增长到dG,因为删除每个顶点平均需要更多的时间。当|LG|增加时,需要删除更多的顶点,因为它们在LS中没有相关的类型,所以naive的迭代次数和运行时间都会增加。对于mp,更容易识别要移除的顶点,因此运行时间减少了一点。
对于MRCS问题,exact和greedy不能很好地扩展,几乎在所有情况下都会失败。当|VG|增大时,ls和ls-ri的运行时间呈次线性增长,因为当图较大时,搜索空间(索引大小)增长不快。当dG增大时,搜索空间减小,候选集增大,ls和ls-ri的运行时间只略有下降。当|LG|增长时,相关类型的顶点之间的连通性比较稀疏,因此ls和ls-ri的搜索空间和运行时间都在增长。总的来说,ls和ls ri在改变|VG|、dG和|LG|时都能很好地缩放。
在这里插入图片描述

4.4.3 实验结果分析

这一改进方案提出了基于关系约束的关系社区。使用这些约束,用户可以指定顶点度的粒度需求。它提出了一种高效的算法,利用消息在接近最佳时间内传递来检测关系社区。对于群体搜索问题,虽然它是NP难解的,但是该方案包含的一个精确解和三个近似算法,即贪心算法、ls算法和ls-ri算法可以很好地解决问题。ls和ls-ri的优点是避免了遍历整个图。此外,ls-ri算法自然地处理动态图。我们在真实图形上进行了大量的实验,结果表明我们提出的方法可以在短时间内得到高质量的结果。同时,ls-ri方法可以有效地处理图形更新,即使有大量的图形更新。

5 附录

参考文献
[1] Effective and efficient community search over large heterogeneous information networks
Yixiang Fang,Yixing Yang,Wenjie Zhang,Xuemin Lin,Xin Cao
VLDB February 2020 https://doi.org/10.14778/3380750.3380756
[2] Effective and efficient relational community detection and search in large dynamic heterogeneous information networks
Xun Jian,Yue Wang,Lei Chen, VLDB June 2020
[3] Topic-based community search over spatial-social networks
Ahmed Al-Baghdadi, Xiang Lian, VLDB July 2020 https://doi.org/10.14778/3407790.3407812
[4] Finding theme communities from database networks
Lingyang Chu, Zhefeng Wang, Jian Pei, Yanyan Zhang, Yu Yang, Enhong Chen
VLDB June 2019, https://doi.org/10.14778/3339490.3339492
[5] Approximate closest community search in networks
Xin Huang, Laks V. S. Lakshmanan, Jeffrey Xu Yu, Hong Cheng
VLDB December 2015, https://doi.org/10.14778/2856318.2856323
[6] Online community search using thread structure
Jangwon Seo, W. Bruce Croft, David A. Smith
CIKM '09: Proceedings of the 18th ACM conference on Information and knowledge managementNovember 2009 Pages 1907–1910, https://doi.org/10.1145/1645953.1646262

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值