影响力传播模型

社交网络上影响力最大化问题需要借助相应的影响力传播模型,影响力传播模型的选择

LC IT模型(独立级联模型和线性阈值模型)

WC(权重级联模型)

HD(热传播模型)

SIR(传染病模型)

MIA模型(路径相关)

投票模型

巴斯模型

影响力最大化算法

目前有的几个影响力最大化的算法

  • 基于目标函数的子模性质的算法(一般是贪心算法和贪心算法的改进)

    • A note on maximizing a submodular set function subject to a knapsack constraint 这个文章主要是把问题扩展了,认为选择每个节点是有不同的代价的,而不同于传统的问题,传统的问题中,每个节点的选择大家都是一样的,因此,在总代价一定的情况下,那么问题就是选择固定个数的节点即可,但是如果每个节点的选择代价不一样,在总代价一定的情况下,选择的节点的个数就不一样

    • Cost-effective outbreak detection in networks (CELF算法)

    • Celf ++ : optimizing the greedy algorithm for influence maximization in social networks(CELF++算法) 这个文章就是大名鼎鼎的CELF算法,利用子模性质和边际效益递减对贪心算法进行优化,同理还有CELF++算法也是大致相同的思路

  • 基于中心性的启发式算法

  • Efficient influence maximization in social networks W.Chen (DegreeDiscount算法) 这个算法也是启发式算法,主要在于,每当选择一个节点后,认为这个节点不会再被影响,因此,它的邻居节点地度-1

    • A potential-based node selection strategy for influence max- imization in a social network (TM算法) 这个算法也是一种启发式算法,它是以节点地潜在地影响力作为启发的因素去选择初始的节点,同时设置了一个参数c,分为两个阶段,第一个阶段启发式的选择潜在影响力最大的若干个节点,第二阶段用贪心算法对这些第一阶段选择的种子节点进行筛选,当参数c为0,也就是没有第一阶段,那么算法就变成了传统的贪心算法。算法的缺点也很明显,首先参数c的选择依赖于经验判断,其次是启发式,准确率没有保证,再次也需要使用贪心算法,因此时间复杂度很高

    • A new centrality measure for influence maxi- mization in social networks 考虑到了传播模型中的传播度,利用这个进行启发式选择传播度最高的节点,从而得到更加精确的结果。这个传播度包括了两个方面,第一是节点自己影响他的邻居,第二个是他的邻居影响其他节点,结合影响概率一起构建的模型。优点在于启发式的选择的同时考虑了传播模型。

  • 基于影响路径的算法

  • Tractable models for information diffusion in social networks(SP1M算法) 基于影响路径的算法考虑某个节点只会尽可能地影响从这个节点开始地最短或者次最短路径上地节点,因此,可以递归地计算influenc spread而不用像贪心算法那样使用蒙特卡洛模拟,从而导致大量地计算时间,因此提高了算法地效率

    • Scalable influence maximization for prevalent viral marketing in large-scale social networks (MIA算法) 借鉴了基于路径地影响力最大化算法的思路,提出一种利用局部图结构的树状近似算法来近似influence spread从而也是避免了蒙特卡罗模拟。此算法中,每条路径具有一个传播概率,定义为在这条路径上的每条边的传播概率的乘积。只有具有最大传播概率的路径才能够作为影响力路径来扩散影响力。同时给每一个节点计算树状度,定义为从节点出发的各条路径中,路径传播概率大于阈值 $\theta$的路径上的所有点的集合

    • Scalable and parallelizable processing of influence maximization for large-scale social networks (IPA算法)

该算法不同于chen等人提出的算法,认为每条路径是相互独立的,chen等人只选择了具有最大的propagation 概率的那条路径,但是本论文则选择所有大于阈值 $\theta$的路径,并行的计算他们的influence spread。基于路径的算法也具有缺点,比如没有理论上的准确度保证,同时,针对于特别复杂的图,空间复杂度非常大

  • 基于社区的算法

    • Oasnet: an optimal allocation approach to in- fluence maximization in modular social networks(OASNET算法)

    这个算法假设社交网络划分社区后的每个社区是相互独立的,社区之间不会存在相互的影响力传播,利用CNM算法进行社区发现。种子节点的选择则分为两个阶段,第一个节点在每个社区内部利用贪心算法选择k个节点,第二个阶段则使用动态规划的方法在$C \times k$个节点中选择最终的k个节点

    • Identifying influential nodes in complex networks with community structure

    这个算法基于利用社区结构发现社交网络中的最具有影响力的几个节点的研究。首先根据加权图构造概率转移矩阵,然后使用$K-Mediods$聚类方法找到最具有影响力的若干个节点。

    • Cim: community-based influence maximization in social networks(CIM算法)

    chen等人基于HD(热传播)模型提出的基于社区结构的影响力最大化算法。算法分为好三个阶段,首先是社区发现,作者给出了一种$H_{Clustering}$算法用于社区发现,然后是候选节点迭代,作者根据节点的拓扑结构和它的社区特征进行选择,最后是种子节点的选择,同时考虑了诸多因素,个人认为是一个比较合理的影响力最大化算法。

    • Conformity-aware influence maximization in online social networks (CINEMA算法)

    基于节点的一致性来设计的算法。传播模型中的概率定义为让第一个节点的影响力指标乘以第二个节点的一致性指标作为传播概率。

    当然,基于社区发现的算法也有自己的缺点,首先是在社区内部进行初步的节点的选择,也需要进行蒙特卡洛模拟,因此时间复杂度也会比较大,其次,社区发现的思路,是用节点在社区内的influence spread去模拟它在whole network上的influence spread,近似效果依赖于网络结构,如果社区之间的连接边都比较少,那么近似结果是非常接近的,但是如果社区之间的连接边比较多,及即是hub节点比较多,那么近似效果可想而知

1.基于的贪心算法KK(kempe等学者提出的算法)
2.基于贪心算法的改进算法,利用启发式规则改进的NewGreedyIC,MixedGreedyIC,NewGreedyWC算法
	相关论文:Efficient influence maximization in social networks 2009
3.基于贪心算法的改进算法,利用子模性质改进的CELF算法,改进的CELF++算法
	相关论文:Cost-effective outbreak detection in networks 2007
			CELF++:optimizing the greedy algorithm for influence maximization in social networks 2011
4.启发式算法:随机算法,度中心算法,MaxDegree算法,Degree Discount算法
	相关论文:Efficient influence maximization in social networks
5.基于社区划分的算法:OASNET算法,CGA算法等(后面加上现阶段阅读的论文)
	相关论文:Community-based greedy algorithm for mining top-k influential nodes in mobile social networks 2010
6.MIA算法
混合式算法

社区划分的算法

  • 基于模块优化的算法
  • 光谱聚类的算法
  • 层次分级的算法
  • 基于标签传播的算法
    • LPA算法(目前的最快的社区划分算法,几乎是线性时间复杂度)

论文思考的几个点

基于社区发现的影响力最大化算法的分析,论文研究的目的:

  1. 算法的效率保证,时间复杂度尽可能低。
  2. 算法的性能保证,尽可能接近最优解。(利用到子模拟性质?)

毕业论文的大致的框架,总体是基于社区划分的思路,具体需要做的工作如下:

  • 传播模型的选择,如何改进传播模型使得切合实际的传播过程?IC,LT改进?结合PageRank算法或者思想?或者考虑改进HDM传播模型?引入时间空间的因素使得模型更加充分?

    (1)传播模型的改进,传播模型中,针对于某个节点的从邻居获得的影响力,不应该简单的直接叠加,而是考虑每个邻居并不是等同对待的,应当区分不同的权重,针对节点之间的互动频率,互动频率高的节点,应该具有更加高的信任度,同时,也可能存在负面的影响力,即反而让节点更不可能选择新产品,这点应该在改进的模型中有所反馈。

    (2)至于这个信任程度如何计算出来反应在传播模型中,则可以考虑,根据邻居之间的互动信息,每个节点的活跃程度,邻居节点本身是否是具有很高的度的节点,邻居节点和本节点的观点是正相关还是反相关,从而决定邻居对本节点的信任度。

    (3)应该考虑影响力的时效性,是否可以考虑结合HDM和LTM模型一起,加上信任度参数这个观点,一起构建一个新的传播模型。

  • 社区发现算法的选择,社区发现的选择是非常重点的,社区发现本质上是社交网络节点的聚类,应该涉及比较有效率的聚类算法或者选择其他的距离算法?

    社区发现聚类算法,一般都是先设置每个节点作为单独的一个社区,然后进行合并,在进行社区聚类发现的时候,不应当单独仅仅考虑边,仅仅利用边的关系,比如CGA算法就利用到了传播模型,结合传播模型进行标签传播,然后获得相应的划分的社区。同时,可以加以改进的地方,比如,社交网络的社区发现不应当仅仅考虑到拓扑结构,还有考虑节点之间的互动交流的信息,互动程度越频繁,那么两个节点在一个社区内部的概率就越大,因此要考虑这个改进点。

    同时,借鉴了CGA算法的思想,一个节点的社区内部的影响力和整个社交网络的影响力如何区别?如何用社区内部的影响力去近似?或者考虑hub节点,社区之间的这些连接节点也有着非常重要的作用。

  • 社区发现是否可以处理重叠社区的情况,重叠社区会导致影响力的重复传播,如何减少这种情况的出现,如何设计算法实现重叠社区的处理?

  • 各个社区的重要性也是不同的,应该有选择的摒弃一些社区,先给出一个社区选择的模型,比如说利用PageRank先计算出哪些社区比较重要,有的社区人数多,有的社区人数少,但是处在中心位置,并且一些非重要的社区,往往会关注这些重要社区的传递出来的信息。考虑种子节点选择的时候,应当把社区这些因素考虑进去。我们可以忽略那些不重要的小社区,重要的社区给与比较大的加权值,同时注意影响力避免重叠传播。

  • 社区发现之后,如何分配每个社区的种子节点数目?,直接按照比例分配?亦或是选择一种度量社区重要程度的模型?

    CGA算法,使用了动态规划进行贪心选择,在各个社区内部选择相应的种子节点。但是时间复杂度仍然是非常大的,是否可以考虑先在社区内部基于启发式规则,或者PageRank,计算重要的节点,然后全局进行贪心的选择?

  • 基于社区发现的算法,实际上是利用节点在社区内的传播来近似它在整个网络上传播的效果,因此这种近似肯定存在误差,如何减少这种误差的产生?而且这种误差还是和网络中的社区结构有关系的。

  • 注意充分利用社区结构的特点,划分社区之后,把社区也视为一个点,作为整体去考虑

  • 社区内的候选节点选择,候选节点应该按照什么标准进行选择,是按照启发式的度选择?还是设计另外的模型?结合PageRank模型?

  • 种子节点的获取策略,如何在这些候选节点上选择出最终的种子节点?直接按照贪心策略暴力选择还是参考CELF算法进行选择?或者是涉及其他的方法?

思路总结

基于社区发现的影响力最大化算法框架:

  • 社区划分。
  • 充分考虑社区作为一个整体性,来体现社区的一个作用,可以利用PageRank模型,来代表社区的重要程度,这个是社区的一个属性,利用这个模型,选择一些重要的社区,同时摒弃一些小的,没那么重要的社区。而且利用PageRank进行迭代,应该比传统的算法会快一些。
  • 社区内部种子节点的选择,考虑的是社区内部的种子节点在社区内部的影响力传播。如何选择社区内部的种子节点。?????这一点目前还需要多家考虑。
  • 社区出现重叠,如何考虑?
  • 种子节点在社区内的影响力只是对种子节点在全局的影响力的近似,那么需要一种方式来弥补这种误差。显然,种子节点的影响力如果想要传播到另外的社区,那么是通过社区之间的边界节点进行传播的,同时和社区本身的重要性有关,那么这部分的误差通过边界节点来弥补。
  • 最终会得到若干的候选节点,这些节点使用贪心算法进行选择出最终的种子节点,考虑贪心算法的时间复杂度,那么可以考虑使用CELF思路或者是其他的CGA这类的动态规划思路去求解,不过这还是基于蒙特卡罗模拟,时间复杂度仍然相对比较大,对算法进行加速。
  • 影响力传播模型,基于线性阈值模型进行改变,加上信任度参数,因为每个影响力的叠加不是平权的,和用户之间的互动,观点信息,兴趣爱好是否一直存在着相关的关系,因此在影响力传播模型中加入这个考虑因素。

算法的实验部分,考虑一些经典的BaseLine Algorithm

  • 传统贪心爬山算法-KK算法
  • CELF算法
  • CGA算法
  • CIM算法
  • 启发式算法(度启发式,中心性启发式)DegreeDiscount算法
  • 本论文的算法
  • 算法中参数的选择的影响
  • 控制变量对比实验

相关工作总结

  1. Richardson和Domingos在2002年的论文,首次把这个问题作为一个研究方向提出。

  2. 首先应该数说到的式Kempe的2003年的论文,主要提出了

a)LT IC 模型,并说明了这个问题的NP完全性

b)给出了贪心算法

c)说明了影响力递增的边界递减性质,利用子模性质说明了算法的性能保证

近期论文阅读总结

  1. 传播模型的改进,基于PageRank的改进,传统PageRank在考虑某个节点的PR值是均匀分配给链出的节点的(链出的概率为出度的倒数)(即权重级联模型),但是实际上,PR高的节点具有更高的影响力,因此考虑链出的概率不用度,而用PR值的占比,从而更加切合实际的情况。

  2. 还有的改进算法,改进了PageRank计算模型,把节点自身的属性,节点之间互动的属性,加入到了PageRank模型计算中,使得PageRank能够适用于社交网络中节点重要性的计算。

  3. 我们可以考虑把以上的两者结合起来给出一种新的信息传播模型(给出概率计算的方法)。

  4. 数据集选择

    参考宫秀云那篇文章

  5. 总结:基于PageRank思想的影响力计算,都是在PageRank的基础上进行模型的改进,加入其他的影响因子,给出不同的权重,从而更加符合实际的应用场景。