Robust Influence Maximization

首先简要介绍一下这个问题:在一个社交网络图中寻找固定数量的节点,使得这些节点对所有节点的影响值尽可能的大。先对这个问题给出形式化的定义:给一个有向图G = (V,E) ,V代表节点,E代表有向边,每一条边有一个权值  ∈ [0,1],代表源点对终点的影响因子(源点有多大的几率对终点产生影响)。定义参数向量θ=( ) e∈E 代表每一条边上的影响因子。我们定义 (S)为影响传播函数,( (S)代表从S出发能传播到的所有节点数目的期望值) 其中L代表图G的子图, [L]代表在参数向量θ下子图L出现的概率。(每一条边出现的概率就是传播因子)RL(S)代表在子图L中从S节点能到达所有节点的个数。

Influence maxization问题就是要找到使得  (S)取得最大值得集合S。这个问题有多种多样的解法,适用于不同的情况。下面是搜索到的针对不同问题的针对性解法:

(1)Influence maximization in social networks based on discrete particle swarm optimization

(2)Influence maximization in complex networks through optimal percolation

(3)Influence Maximization in Social Networks When Negative Opinions May Emerge and Propagate∗

(4)Efficient Influence Maximization in Social Networks

(5)Efficient Influence Maximization in Social Networks

(6)Influence Maximization in Dynamic Social Networks

不难发现,Influence maximization problem的解法多种多样。但是Robust Influence Maximization 却是作者提出来的。这篇论文中,首先形式化的定义了一个问题robust influence maxization(RIM)

给一个有向图G = (V,E) ,V代表节点,E代表有向边,每一条边有一个权值区间[le,re],代表源点对终点的影响因子。定义参数空间Θ =  [le,re],我们希望能找到一个大小为k的集合,使得目标函数g(Θ,S)取得最大值。也就是找公式中的集合 (定义如下)

作者在提出这个问题之后,证明这个问题是NP-hard的,并且提供了一个LUGreedy算法给出 一个近似的解法。

作者接下来证明了,当图的规模很大的时候, RIM问题不存在令人满意的解,直观上也很容易想出来,当每一条边上的影响因子都有很大不确定度的时候,目标函数 的最大值也不会很大。

这个时候作者就另辟蹊径地解决这个问题,通过采样的方式来减小边上的影响因子的不确定度,作者提出了两种算法,一种是uniform sampling另一种是 adaptive  sampling。

对于第一种算法,我们对于每一条边采样次数都是一样的,并且作者给出了一个采样次数与最终解的好坏之间的一个函数关系。对于第二种算法,是一个启发式的算法,这个算法对于一些重要的边进行了多次的采样,对于其他的边采样次数就明显减少。从结果上来看,第二种算法能明显提升解的正确性。

这个作者名字是Wei Chen,他研究influence maximization问题很长时间,还写过书,而且我在查找论文的时候发现,很多论文的一作都是他。他主导的方法就是启发式算法,他很多论文都是关于influence maximization问题的启发式算法,我这个论文也不例外,论文中表现最好的算法adaptive  sampling就是启发式的。

这个算法的不足还是很明显的,第一个贪心算法时间复杂度太高,只能针对比较小的社交网络图进行运算。还有就是作者提出的最后一个算法仅仅是一个启发式的算法,没有证明第四个算法结果的下界是多好,但是作者只在两个数据集合上进行了测试,实在是难以令人信服。

还有就是第二个贪心算法的下界实在是太高了,而且这个算法的想法实在是太过朴素了,我想可能存在一些解法使得这个算法的下界能够进一步的提高。

最重要的不足我觉得是论文的证明有一些问题,论文提出了RIM问题,设计了一个LUGREEDY算法来解决它,但是算法有一个假设前提是真实的影响因子是在影响因子的区间里面,然后在这个基础上进行的算法下界的证明。但是真实的情况是我们只能得到一个影响因子的置信区间,使得真实值落在置信区间里面的概率是很大的,也就是说,影响因子有一定的可能性不在区间里面,这样的话对已经得到的算法的下界有影响,虽然我没有进一步的研究,但是直觉上是可以感觉到这个影响可能将会导致我们得到的算法的下界毫无意义。

influence maximization 第二弹的更多相关文章

  1. influence maximization

    Robust Influence Maximization 首先简要介绍一下这个问题:在一个社交网络图中寻找固定数量的节点,使得这些节点对所有节点的影响值尽可能的大.这个问题由于在病毒式营销,谣言监控 ...

  2. Robust Influence Maximization

    一.   研究背景 在社会和经济网络中,影响最大化问题在过去十年中得到广泛的研究,由于其广泛应用于病毒式营销[1,2],突破检测[3],谣言监测[4]等.例如公司可以通过向初始用户(称为种子)发送免费 ...

  3. 浅谈Hybrid技术的设计与实现第二弹

    前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) ...

  4. 讲座:Influence maximization on big social graph

    Influence maximization on big social graph Fanju PPT链接: social influence booming of online social ne ...

  5. 前端学习 第二弹: JavaScript中的一些函数与对象(1)

    前端学习 第二弹: JavaScript中的一些函数与对象(1) 1.apply与call函数 每个函数都包含两个非继承而来的方法:apply()和call(). 他们的用途相同,都是在特定的作用域中 ...

  6. 青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 10(排行榜界面&界面管理)

    继上一次介绍了<神奇的六边形>的完整游戏开发流程后(可点击这里查看),这次将为大家介绍另外一款魔性游戏<跳跃的方块>的完整开发流程. (点击图片可进入游戏体验) 因内容太多,为 ...

  7. typecho流程原理和插件机制浅析(第二弹)

    typecho流程原理和插件机制浅析(第二弹) 兜兜 393 2014年04月02日 发布 推荐 1 推荐 收藏 14 收藏,3.7k 浏览 上一次说了 Typecho 大致的流程,今天简单说一下插件 ...

  8. LCA问题第二弹

    LCA问题第二弹 上次用二分的方法给大家分享了对 LCA 问题的处理,各位应该还能回忆起来上次的方法是由子节点向根节点(自下而上)的处理,平时我们遇到的很多问题都是正向思维处理困难而逆向思维处理比较容 ...

  9. 线段树+RMQ问题第二弹

    线段树+RMQ问题第二弹 上篇文章讲到了基于Sparse Table 解决 RMQ 问题,不知道大家还有没有印象,今天我们会从线段树的方法对 RMQ 问题再一次讨论. 正式介绍今天解决 RMQ 问题的 ...

随机推荐

  1. linux下压力测试工具ab的使用

    一.安装 [root@node2 logs]# yum install httpd-tools 已加载插件:fastestmirror Loading mirror speeds from cache ...

  2. Node.js 薄荷网爬取

    Node.js:是一个基于前端的服务器,主要的特点:单线程,异步I/O(对这个没有了解,开发起来真的会踩很多坑),事件驱动 前言:本人主要是一个以使用.Net平台下的语言,进行开发的一个菜鸡,之前面试 ...

  3. nodejs 开启http服务器

    1.首先安装node.js windows地址:https://nodejs.org/dist/v10.15.3/node-v10.15.3-x64.msi 配置成功的标志: 若没成功,也有可能是没有 ...

  4. 企业BGP网络规划案例(一)

    网络拓扑: 如上图为一家企业的办公网,分为总部AS6500,分公司AS65001和分公司AS65002,其中每个站点都有生产.办公和服务器区域的网络互访,分公司和总公司之间通过两条联通/电信的MSTP ...

  5. Saving custom fields in production order

    In additional data screen 1.PPCO0012->EXIT_SAPLCOKO1_001->ZXCO1U11 ​ ​ ci_aufk-zxxx = i_caufvd ...

  6. OO第一次blog

    (1)基于度量来分析自己的程序结构 第一次:Poly:属性 AL<Term>方法 check(格式检查) Poly(构造) merge(合并) compute(求导) Term:属性 co ...

  7. WebSocket 实现链接 发送消息

    Websocket 原理浅析地址: https://www.cnblogs.com/yuanyongqiang/articles/10457793.html 直接上代码: myWebSocket.py ...

  8. RabbitMQ的学习

    生成者就是发送信息,消费者就是接收信息,队列就是存储数据的排队.消息通过你的应用程序和RabbitMQ进行传输,它们只能存储在队列中,队列容量没有限制,你要存储多少消息都可以——基本上是一个无限的缓冲 ...

  9. java之servlet学习基础(二)

    上一次写到Servlet的实现方法,主要还是通过继承HttpServlet来实现Servlet.下面主要是回顾一下HttpServletRequest和HttpServletResponse对象中的一 ...

  10. 每天写两个的java常见面试题—final 和static 的用法

    第一次写随笔,可能写的比较乱,更多的是作为自己记忆一些知识的方式.所有记录的东西都是自己的一些理解,很多语言可能还是从其他大牛的博客里面搬过来的. 一.static的作用: static的的作用从三个 ...