【论文阅读】社交网络传播最大化问题-04

news2024/11/19 7:47:59

Efficient Influence Maximization in Social Networks

  • 相关工作
  • 改进的贪心算法
    • 对独立级联模型的改进
    • 对加权级联模型的改进
  • 改进度折扣算法

影响力最大化:在社交网络中找到一小部分能够最大化传播影响力的节点(种子节点)。

一是改进原有的贪心算法,进一步缩短其运行时间
二是提出新的degree-discount(度折扣)启发式,改善影响传播。

实验结果表明:
(a)改进的贪心算法,在影响扩散匹配的情况下,获得了更好的运行时间
(b)程度折扣启发式比经典的基于程度和中心的启发式获得了更好的影响扩散;当对特定的影响级联模型进行优化时,与贪心算法的影响线程几乎匹配。
更重要的是
(c)在我们有几万个节点的实验图中,度离散计数启发式只在毫秒内运行,而即使是改进的贪婪算法也要运行数小时。

基于我们的结果,我们相信微调启发式可能为影响最大化问题提供真正可扩展的解决方案,具有令人满意的影响扩散和惊人的快速运行时间。

相关工作

社交网络是大规模的,具有复杂的连接结构,而且非常动态,这意味着问题的解决方案需要非常高效和可扩展。

  1. Domingos和Richardson首先将影响最大化作为算法问题进行了研究。
    然而,他们的方法是概率的。
  2. Kempe、Kleinberg和Tardos首先将该问题表述为以下离散优化问题。
    社交网络被建模为一个图,其中顶点代表个体,边代表两个个体之间的联系或关系。
    影响根据随机级联模型在网络中传播。
  3. 中考虑了三种级联模型,分别是独立级联模型、权重级联模型和线性阈值模型。
    给定一个社交网络图,一个特定的影响级联模型,以及一个很小的k,影响最大化问题就是在图中找到k个顶点(称为种子),使得在影响级联模型下,k个种子(文中称为影响扩散)所影响的顶点的期望数量最大。
  4. Kempe等人证明了优化问题是np困难的,并提出了一种适用于所有三种模型的贪婪近似算法,该算法保证了影响扩散在最优影响扩散的(1−1/e)范围内。
    他们还通过实验表明,他们的贪婪算法在影响扩散方面明显优于经典的度和基于中心的启发式算法。
  5. 然而,他们的算法有一个严重的缺点,那就是效率。
    他们的贪婪算法的一个关键元素是计算给定种子集的影响扩散,这被证明是一个困难的任务。
    他们没有找到一个精确的算法,而是对影响级联模型进行了足够多次的蒙特卡洛模拟,以获得对影响扩散的准确估计。
    因此,即使在一个中等规模的网络(例如15000个顶点)中找到一个小的种子集,在现代服务器上也可能需要几天的时间才能完成。
  6. 最近的几项研究旨在解决这一效率问题。
    1)Kimura和Saito提出了基于最短路径的影响决策模型,并提供了在这些模型下计算影响扩散的有效算法。
    然而,由于影响级联模型不同,它们不能直接解决[5]中所研究的级联模型的贪婪算法的效率为9sue的问题。
    2)Leskovec等人提出了一种选择新种子的优化方法,称为“具有成本效益的懒进”(CELF)方案。
    CELF优化利用影响最大化目标的子模块属性,极大地减少了对影响扩散的评估次数。
    他们的实验结果表明,CELF优化在选择种子顶点时可以达到700倍的速度,这是一个非常令人印象深刻的结果。
    然而,我们的实验表明,改进后的算法在一个有几万个顶点的图上仍然需要几个小时的时间来完成,因此对于大规模的网络仍然是不有效的。
  7. 在本文中,我们从两个互补的方向来解决影响最大化的效率问题。
    1)我们设计了新的方案来进一步改进贪婪算法,并将我们的方案与CELF优化相结合,得到更快的贪婪算法。
    2)我们提出了新的程度折扣启发式,其影响扩散明显优于经典的程度和基于中心的启发式,并接近贪婪算法的影响扩散。
    3)我们的启发式的最大优势是它们的速度,因为它们比所有贪婪算法快许多个数量级。

我们的新贪婪算法和程度折扣启发式是从独立级联模型和加权因果关系模型推导出来的。
我们在两个真实的协作网络上进行了大量的实验,将我们的算法与CELF优化算法以及经典的度和中心性启发式算法进行比较。
我们比较的两个指标是影响扩散和运行时间。
对于我们的新贪婪算法,它们的影响扩散与原始贪婪算法完全匹配,而运行时间比CELF优化缩短了15% - 34%。
对于我们的程度折扣启发式算法,它们的影响扩散接近于贪婪算法,并始终优于经典的基于程度和基于中心的启发式算法。
针对传播概率较小的独立级联模型优化的一种特殊启启式算法几乎与独立级联模型中贪婪算法的影响扩散(与一个实验图中的贪婪算法相同,在另一个图中较低3.4%)匹配。

改进的贪心算法

独立级联模型和加权级联模型中贪心算法的改进。

  1. 设S为被选中用于启动影响传播的顶点子集,我们称之为种子集
  2. 设RanCas(S)表示从种子集S开始的影响级联的随机过程,其输出是受S影响的随机顶点集。

本文中的算法以图G和一个数字k为输入,生成基数为k的种子集S,目的是使受种子集S影响的顶点的期望数量最大化,即我们所说的影响扩散尽可能大。

  1. 算法1描述了给定一个RanCas()运行的dom进程的一般贪婪算法。
    1)在每一轮i中,算法向选定的集合S中添加一个顶点,使该顶点与当前的集合S一起使影响扩展最大化(第10行)。
    2)等价地,这意味着在第i轮中选择的顶点是该轮中增量影响分布最大倍数的顶点。
    3)为此,对于每个顶点v不属于S,用R次ranas (S∪{v})的重复模拟来估计S∪{v}的影响范围(第3-9行)。
    4)每个RanCas(S)的计算需要O(m)时间,因此算法1需要O(knRm)时间来完成。

  2. Leskovec等提出了基于影响最大化目标的子模块性的原始贪婪算法的CELF优化。
    1)子模块性是在向种子集S中添加顶点v时,如果S越小,则由于添加v而产生的增量影响扩散越大。
    2)CELF优化利用了子模块性,这样在每一轮中,大量节点的实际影响扩散不需要重新评估,因为它们在前一轮中的值已经小于当前一轮中评估的其他一些节点的值。
    3)CELF优化具有与原始贪婪算法相同的影响传播,但速度要快得多,实际上是700倍。

  3. 在本文中,我们将改进的贪婪算法与celf优化的贪婪算法的运行时间进行了比较,表明我们可以进一步改进贪婪算法。
    级联模型(独立级联模型和加权级联模型)之间的主要区别是随机耦合过程RanCas(S),下面将对此进行解释。

对独立级联模型的改进

GeneralGreedy
RanCas(S)的工作原理如下:

  1. 设Ai是第i轮被激活的顶点集合,且初始化时A0 = s。对于任何uv∈E,即u∈Ai但v尚未激活,v在第(i + 1)轮被u激活,具有独立的概率p,我们称之为传播概率
  2. 重复这个过程,直到Ai+1为空.
  3. 注意,在随机过程RanCas(S)中,每条边uv只确定一次,从u到v或从v到u,决定影响是否通过这条边传播。
  4. 两个方向上的概率都是相同的传播概率p。因此,我们可以先确定uv是否被选择用于传播,并从G中去除所有不用于传播的边,得到一个新的图g0。
  5. 随机集RanCas(S)就是g0中从S可达的顶点集合
  6. 通过随机生成R次g0,每次对图g0进行线性扫描

在NewGreedyIC【优化一】中,每个随机图都用于估计所有顶点的影响扩散,这可能导致影响扩散估计之间的相关性。
然而,我们相信这些相关性是无关紧要的,因为(a)他们不影响每个顶点的估计,(b)相关性主要是由于生成顶点共存同一连接组件的一些随机图,小比较图的大小,和©估计为平均从大量的随机图(例如R = 20000),因此对于每一对顶点他们只在一小部分共存的随机图采样。
我们的实验结果表明,使用相同的NewGreedyIC达到GeneralGreedy一样的传播影响,所以没有必要增加R补偿相关的效果。

比较NewGreedyIC算法【优化一】和 CELF优化【优化二】,在运行时间上有一个权衡。

  1. 在CELF优化中,它的第一轮和原始算法一样慢。
  2. 然而,从第二轮开始,每轮可能只需要探索少量顶点,而且每个顶点的探索通常很快,因为RanCas (S)通常在探索图的一小部分后停止。
  3. 相反,在NewGreedyIC算法的每一轮中,我们需要遍历整个图R次,以生成R个随机图g0。
  4. 为了结合这两种改进的经验,我们进一步考虑 MixGreedyIC【优化三】 算法,在第一轮中我们使用NewGreedyIC来选择第一个种子并计算所有顶点的影响扩散估计,然后在后面的几轮中我们使用CELF优化来选择剩余的种子。

对加权级联模型的改进

  1. 设dv是图G中节点v的度,设uv是G中的一条边。
  2. 在加权级联(WC)模型中,如果u在第i轮被激活,那么v在第i+ 1轮被u激活的概率为1/dv。
    与IC模型相似,每个邻居都可以独立激活v。
  3. 因此,如果一个尚未激活的顶点v在第i轮中有l个邻居被激活,则v在第i + 1轮中被激活的概率为1−(1−1/dv)^l
  4. WC模型中的RanCas(S)与IC模型的 主要区别在于,u激活v的概率通常与v激活u的概率不相同。 因此,我们构建了一个有向图G = (v, E),其中每条边uv∈E都被两个有向边uv和vu所取代。我们仍然用dv来表示原图中v的度
  5. 利用与IC模型相同的思想,在贪婪算法的每一轮中,当选择一个新顶点加入到现有的种子集S中时,我们生成R个随机有向图G0
  6. 对于每个顶点v和每个图g0,我们要计算|RG0 (S∪{v})|,然后对所有g0求平均值,得到S∪{v}的影响范围,并选择使该值最大化的v。

改进度折扣算法

在影响最大化的种子选择中,常使用度。
选择度最大的顶点作为种子的影响扩散比其他启发式算法更大,但仍然没有贪婪算法产生的影响扩散大。
我们提出了度折扣启发式,它的性能接近于IC模型的贪婪算法。

1.基本折扣思路如下:
设v是顶点u的邻居。
如果u已经被选择为一个种子,那么在考虑根据v的度数选择v作为一个新的种子时,我们不应该对其度数计算vu边。
因此,由于u在种子集中,我们应该对v的度进行减1的折现,并且我们对已经在种子集中的v的每一个邻居进行同样的折现。
这是一个适用于所有级联模型的基本程度折扣启发式,在我们的实验部分称为SingleDiscount。

2.更精确的度折现启发式
因为v是u的邻居,而u被选进了种子集,且至少有p的概率,v会受到u的影响,在这种情况下,我们不需要把v选进种子集。
这就是为什么进一步的折扣更准确的原因。

  1. 当p较小时,我们可以忽略v对多跳邻居的间接影响,而只关注v对其近邻的直接影响,使得度折计算易于管理。
  2. 记 N(v) = {v}∪ {w ∈ V | vw ∈ E}是v的邻居集合。
  3. 设**Star(v)**为以N(v)为顶点,以v为边(N(v)与v的所有边)的子图。
  4. 计算节点v对Star(v)的附加影响【创新点】
    在这里插入图片描述
    具有传播概率p的IC模型:
    tv是顶点v的已经被选为种子的邻居数。
    节点v的度:dv = O(1/p),tv = o(1/p)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29534.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

KMP算法——通俗易懂讲好KMP算法:实例图解分析+详细代码注解

文章目录1.kmp算法基本介绍2.字符串的最长公共前后缀&部分匹配表2.1 什么是最长公共前后缀2.2 什么是部分匹配表Next2.3 字符串最长公共前后缀&部分匹配表的代码实现2.4 代码测试3.根据部分匹配表搜索字符串匹配位置3.1 匹配成功一个就退出匹配的代码3.1.1 KMP算法的大…

Vue父组件给子组件传参数

别人在调用我们写的组件时,虽然要实现的结构一样,但如果别人想改一下显示的内容或者之类的,该怎么做呢;这时候就要提到“传参数”这个词了,别人可以通过传不同的参数,来实现他们具体的结构; 传参…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.22 RabbitMQ 安装

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.22 RabbitMQ 安装5.22.1 Erlang下载5.22.2 安装5.…

HTML+CSS期末大作业 中国传统美食网站设计 节日美食13页 html5网页设计作业代码 html制作网页案例代码 html大作业网页代码

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

3招学会TikTok电商选品,速看

Sensor Tower商店情报数据显示,2022年10月Instagram以将近6700万下载量,成为全球移动应用(非游戏)下载榜冠军,较2021年10月增长17.2%。其中,印度市场的下载量占45.2%,美国市场的下载量占比为5.4…

《码出高效:Java开发手册》笔记之二-面向对象

前言 第二章主要是讲面向对象,也就是oop,这个概念其实很多人已经听腻了,都是非常基础的知识,本章就是讲一些java以及很多编程语言的基础设计思想 正文 oop理念 面向对象是在早期滥用面向过程编程后出现的,面向过程…

CSS清除浮动的五种方法(超详细)

1.为什么要清除浮动? 浮动的原理是让图片脱离文档流,直接浮在桌面上。我们一般布局的时候都是只设置宽度不设置高度,让内容来自动填充高度。但使用浮动后会让原本填充的高度消失,父元素高度为0,后续添加内容布局会产生混乱,造成…

C语言tips-数组指针和指针数组

最近因为工作需要开始重新学c语言,越学越发现c语言深不可测,当初用python轻轻松松处理的一些数据,但是c语言写起来却异常的复杂,这个板块就记录一下我的c语言复习之路 数组指针 概念:顾名思义就是一个指针,…

英特尔oneAPI-用于异构计算的英特尔oneAPI

文章目录前景解决方案CUDA替代方案OpenMPOpenACCC 库Python 和 JavaSYCL 和 oneAPI结论如今,异构性广泛存在于高性能计算和消费电子产品中。这些系统在传统 CPU 的基础上增加了大量协处理器或加速器,例如 GPU、TPU 和 FPGA。然而,没有一种简单…

梯度下降——机器学习

一、实验内容 掌握基于密度的聚类方法的基本思想;掌握单变量函数的梯度下降的原理、算法及python实现;掌握双变量函数的梯度下降的原理、算法及python实现,并测试分析;理解学习率η的选择并测试分析。 二、实验过程 1、算法思想 在…

状态估计|基于 MMSE 的分析估计器的不确定电力系统分析(Matlab代码实现)

一、概述 在分布式电网系统中部署可再生资源带来了一系列新挑战,主要是由于它们的可变性和对气候参数的依赖性,这可能对测量潮流和状态估计所需的系统参数产生重大影响。第一个旨在根据某些参数的先验知识(或预测)计算整个系统参…

从头开始进行CUDA编程:流和事件

前两篇文章我们介绍了如何使用GPU编程执行简单的任务,比如令人难以理解的并行任务、使用共享内存归并(reduce)和设备函数。为了提高我们的并行处理能力,本文介绍CUDA事件和如何使用它们。但是在深入研究之前,我们将首先…

C++【智能指针】

文章目录一、什么是智能指针RAII思想std::auto_ptr二、智能指针的拷贝问题&#xff08;C98&#xff09;1.unique_ptr2.shared_ptrshared_ptr的问题循环引用的问题3.weak_ptr内存泄漏的危害一、什么是智能指针 #include<iostream>using namespace std; int div() {int a,…

哈希散列表hlist_head - linux内核经典实例

hlist_head和hlist_node用于散列表&#xff0c;分别表示列表头&#xff08;数组中的一项&#xff09;和列表头所在双向链表中的某项&#xff0c;两者结构如下: include/linux/types.h(line 190) struct hlist_head {struct hlist_node *first; };struct hlist_node {struct h…

护眼灯真的可以保护眼睛吗?2022双十二选哪款护眼灯对孩子眼睛好

传统的台灯只是单一色光&#xff0c;无法调节台灯的照度和色温&#xff0c;长时间使用不但不可以护眼&#xff0c;而且还会导致近视、散光等各种问题的发生。现在的护眼台灯大多都是使用led灯珠作为发光源&#xff0c;不但本身比较高效节能&#xff0c;而且光线可调控&#xff…

react--redux

此篇文章非学习使用&#xff0c;学习勿入 redux 文档&#xff1a; http://www.redux.org.cn 用于做状态管理的js库 集中管理react中多个组件共享的状态 安装&#xff1a; cnpm i redux 给形参赋值&#xff0c;表示形参的默认值 错误&#xff1a; 对象不能作为一个dom元素…

NPDP认证|制造业产品经理日常工作必备技能,快来学习提升吧!

不同阶段的产品经理对技能的掌握程度要求不同&#xff0c;侧重点也不同&#xff0c;一般包括需求分析、数据分析、竞品分析、商业分析、行业分析、需求收集、产品设计、版本管理、用户调研等。这些技能&#xff0c;是我们必须要掌握的专业技能。 比如&#xff1a;对于刚入行的…

异常检测算法分类总结(含常用开源数据集)

作者&#xff1a;云智慧算法工程师 Chris Hu 异常检测是识别与正常数据不同的数据&#xff0c;与预期行为差异大的数据。本文详细介绍了异常检测的应用领域以及总结梳理了异常检测的算法模型分类。文章最后更是介绍了常用的异常算法数据集。 异常的概念与类型 目前异常检测主…

硝酸根离子深度去除树脂

普通的阴离子交换树脂对阴离子的交换次序是&#xff1a;SO42-&#xff1e;NO3-&#xff1e;HCO3-&#xff0c;对硝酸盐没有选择性&#xff0c;优先交换水中硫酸根&#xff0c;造成树脂再生频繁&#xff0c;产水中氯离子含量增高&#xff0c;出水水质稳定性差&#xff0c;树脂交…

[注塑]各种进胶方式优缺点分析

[注塑]各种进胶方式优缺点分析1.直接进胶2.测胶口3.搭接式浇口4.扇形浇口5.潜胶6.弧线浇口7.针形浇口结构设计的时&#xff0c;分析浇口的进胶方式尤为重要&#xff0c;为了简便我们的设计&#xff0c;常常需要将一些常用的标准形式&#xff0c;以下是我们常见的一些浇口形式。…