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. python Selenium启动chromedriver

    从网上下载对应版本的chromedriver之后,里面的内容仅为一个.exe文件, 将其解压在chrome的安装目录下(C:\Program Files (x86)\Google\Chrome\App ...

  2. git clone失败

    操作: $ git clone https://github.com/zjun615/DragListView.gitCloning into 'DragListView'...fatal: unab ...

  3. Docker容器镜像瘦身的三个小窍门(转)

    [转自:http://dockone.io/article/8174] 在构建Docker容器时,我们应尽可能减小镜像的大小.使用共享层的镜像尺寸越小,其传输和部署速度越快. 不过在每个RUN语句都会 ...

  4. ABAP开发相关事务代码

    事务代码 事务描述 事务代码 事务描述 SE37 ABAP/4函数编辑器 BAPI BAPI 浏览器 SE38 ABAP编辑器 LSMW 数据导入工具 SE39 ABAP分屏编辑器 PFCG 权限管理 ...

  5. SpringMVC避免IE执行AJAX,返回JSON出现下载文件

  6. docker run 与docker start的区别

    docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start). 而docker start的作用是,重新启动 ...

  7. 【转】为什么分布式一定要有Redis?

    发现一篇好文. https://studygolang.com/articles/15064

  8. Python之路(第三十四篇) 网络编程:验证客户端合法性

    一.验证客户端合法性 如果你想在分布式系统中实现一个简单的客户端链接认证功能,又不像SSL那么复杂,那么利用hmac+加盐的方式来实现. 客户端验证的总的思路是将服务端随机产生的指定位数的字节发送到客 ...

  9. rds

    数据库:提供数据的高可用保证,至少要用双节点(一主已备,经典高可用架构:采用基于binlog的数据复制技术维护数据库的可用性和数据一致性.同时,高可用版的性能也可以满足业务生产环境的需求,配置上采用物 ...

  10. 博客三--tensorflow的队列及线程基本操作

    连接我的开源中国账号:https://my.oschina.net/u/3770644/blog/3036960查询