Information and Influence Propagation in Social Networks学习笔记
Information and Influence Propagation in Social Networks学习笔记
Wei Chen dalao写的书,在传播问题上感觉写的写的很详细,因为之前看的就像马冬梅一样,所以还是做一点笔记吧
chapter1:导论
chapter2:基本的模型(主要是IC和LT)
chapter3:引入IM问题,#P-hard,复杂度分析,时间分析
chapter4:IM问题的变体,从基于模型变成了基于数据,有竞争观点的传播
chpter5:怎么从过去的观察中学习参数,influence weight
chapter6:现存关于网络传播好用的工具
chapter7:核心挑战
1.3 社会传播问题的定义
给定 G=(V,E)G=(V,E)G=(V,E) 一个V点E边的图,有传播概率 p(u,v)p(u,v)p(u,v)
给定一部分初始的节点 S0S_0S0 分析他们的选择与作用,最终激活的点集为Φ(S0)\Phi(S_0)Φ(S0),那么对 S0S_0S0激活的点的期望就是σ(S0)=E(∣Φ(S0)∣)\sigma(S_0) =E(\vert\Phi(S_0)\vert)σ(S0)=E(∣Φ(S0)∣)
1.4面临的问题与挑战
在现实问题中,到底什么算是用户之间的影响?
问题一:有很多和影响看起来很像但是实际上又不存在的行为,比如homophily,两个人可能是因为有共同的偏好才在网络上连接在一起,而不是邻居把自己的爱好传给了其他人的influence,为了区别homophily和influence,Anagnostopoulos提出了一个shuffle技术 来区别两者Aral也提出了自己的技术。
问题二:Watts和Peretti发现大部分采用不是因为邻居的影响。
2.1 IC模型和LT模型,老生常谈,按下不表
2.1.1Live-arc graph model
给定G=(V,E)G=(V,E)G=(V,E)G的每一个arc 根据某些随机规则都可以有live/block这两种状态,然后V里所有的点和所有 live arc合起来叫一个live-arc graph dG(S,v)d_G(S,v)dG(S,v)表示点集S和点v的距离(v到S里最近那个点的距离);用RGi(S)R^i_G(S)RGi(S)表示到S距离为i的集合;RG(S)R_G(S)RG(S)放宽到只要可达就ok,n=∣V∣n=|V|n=∣V∣的时候,自然RGn−1(S)=RG(S)R^{n-1}_G(S)=R_G(S)RGn−1(S)=RG(S)
给出定义:给定G=(V,E)G=(V,E)G=(V,E)和影响概率p(·),对图里的每条边都过一遍p(u,v),选出随机的live-arc graphGLG_LGL。对给定的S0S_0S0激活点集StS_tSt就是RGLt(S0)R^t_{G_L}(S_0)RGLt(S0)
其实相当于,IC模型是基于点去跑的连边,live-arc的模型是基于所有边过了概率之后考虑初始节点的联通出来的子图
定理: independent cascade model (Definition 2.3) is equivalent to the live-arc graph model with independent arc selection (Definition 2.5).
2.1.3子模性(submodularity)和单调性(monitonicity)(IC和LTmodel的传播函数σ(⋅)\sigma(·)σ(⋅)均有)
单调性比较好理解,对于set functionf:2V→Rf:2^V\to\Rf:2V→R如果存在S⊆T⊆V,f(S)≤f(T)S\sube T\sube V,f(S)\leq f(T)S⊆T⊆V,f(S)≤f(T)意思就是子集的效果一定没有超集的好
子模性翻译成人话就是边际效益递减,因为有单调性的存在,多加一个点的收益一定为正,但是在大集合和小集合加上同一个点的时候,收益有什么样的区别呢?子模性就是说,vertices加在子集上的收益一定大于超集,公式表达就是对于set functionf:2V→Rf:2^V\to\Rf:2V→R,有S⊆T⊆VS\sube T \sube VS⊆T⊆V并且v∈V∖Tv\in V\setminus Tv∈V∖T那么
f(S∪{v})−f(S)≥f(T∪{v})−f(T)f(S\cup {\text{\textbraceleft}v\text{\textbraceright}})-f(S)\geq f(T\cup {\text{\textbraceleft}v\text{\textbraceright}})-f(T) f(S∪{v})−f(S)≥f(T∪{v})−f(T)
在独立级联和线性阈值的模型上,影响传播函数σ(⋅)\sigma(·)σ(⋅)均有单调性和子模性。
证明留到精神好一点的时候再来
其他相关模型
简要介绍了一些和信息传播相关的其他模型,数学上的处理还有像渗流模型(percolation model)可以去看
Geoffrey Grimmett. Probability on Graphs. Cambridge University Press, 2010. 25
2.2.1 传染病模型
传染病模型可以用来分析生物污染,现在也可以分析在社交网络上的病毒营销详情指路Newman的工作
M. E. J. Newman. Networks. Oxford University Press, 2010. DOI: 10.1093/acprof:oso/9780199206650.001.0001. 26, 28
经典的传染病模型是完全混合的,就是说所有人都能直接接触到其他个体并且传播疾病,所以在全联通图上用微分方程来分析
个体的状态可以分成S(易感)I(感染)R(康复)三种,状态的转换对应着不同的概率,以简单的SI模型为例子
β:从易感转为感染的比率s:易感所占的比例i:感染所占的比例n:总的节点数\beta:从易感转为感染的比率 \newline s:易感所占的比例\newline i:感染所占的比例 \newline n:总的节点数β:从易感转为感染的比率s:易感所占的比例i:感染所占的比例n:总的节点数
微分方程就可以列成
n⋅dsdt=−β⋅s⋅n⋅i⋅nn\cdot\frac{ds}{dt} =-\beta \cdot s\cdot n\cdot i \cdot n n⋅dtds=−β⋅s⋅n⋅i⋅n
就是说每个人都有β\betaβ的比率转化为感染者,注意s和i是比例,所以s+i=1s+i =1s+i=1把s代换,这是一个带初值的微分方程解得
i(t)=i(0)eβnt1−i(0)+i(0)eβnti(t)=\frac{i(0)e^{\beta nt} }{1-i(0)+i(0)e^{\beta nt}}i(t)=1−i(0)+i(0)eβnti(0)eβnt
注意到这个解其实和逻辑斯蒂曲线是相吻合的
加入恢复的患者R,微分方程会稍微复杂一些
n⋅dsdt=−β⋅s⋅n⋅i⋅n,n⋅didt=β⋅s⋅n⋅i⋅n−γ⋅i⋅n,n⋅dsdt=γ⋅i⋅ns+i+r=1n\cdot\frac{ds}{dt} =-\beta \cdot s\cdot n\cdot i\cdot n,\newline n\cdot\frac{di}{dt} =\beta \cdot s\cdot n\cdot i\cdot n -\gamma\cdot i\cdot n,\newline n\cdot\frac{ds}{dt}=\gamma\cdot i\cdot n\newline s+i+r = 1n⋅dtds=−β⋅s⋅n⋅i⋅n,n⋅dtdi=β⋅s⋅n⋅i⋅n−γ⋅i⋅n,n⋅dtds=γ⋅i⋅ns+i+r=1
对SIR模型来说,一个重要的参数是繁殖数量R0R_0R0,相当于一个小阳人平均能感染几个人,对SIR模型来说R0=βn/γR_0=\beta n/\gammaR0=βn/γ这里的γ\gammaγ相当于平均传染期,不过βn\beta nβn还是有点没想明白
3.影响力最大化问题
影响力最大问题,本质上就是挑选一堆点,争取在网络上达到最大传播范围的问题。可以简单把这个问题分成两步:第一步是详细建模网络中的影响扩散过程,包括学习模型的参数;第二步是设计算法,在学习好的传播模型上捕获那些有效的节点。这章主要讲的是第二步,第一步交给第五章。
IM问题也可以有一些变体,比如把约束条件换成每个节点都有子集独特的成本;或者在传播过程中给定一个时间约束;又或者把问题改成保障传播范围的情况下,最少能选择几个节点就完成任务,这些问题的拓展交给第四章来唠。
3.1IM的复杂度
IM问题是一个#p-hard问题,在IC和LTmodel上都是这样
3.2贪心的方法解决IM问题
IM问题其实有两个比较麻烦的地方:第一是种子节点选取的时候要考虑到的组合性质;第二个就是计算种子带来的影响力,即使是一个种子也不好算。目前我们的办法就是,用贪心来解决第一个问题,用蒙特卡洛来解决第二个问题
算法一算是比较高的层面写的贪心,其实也很简单,就是饭要一口一口吃,点要一个一个选,每多选一个点,每多选一个点,都要仿真评估一次。
这里有一个定理,就是贪心的算法选出来的解其实是有一定保障的,和最优的解S∗S^*S∗相比,贪心找出来的解能够保证f(Sg≥(1−1e)f(S∗))f(S^g\geq(1- \frac{1}{e})f(S^*))f(Sg≥(1−e1)f(S∗))
证明的过程主要用到了单调性和子模性
算法二算是算法一的具体版,加了MonteCarlo的评估,当
使用估计的评价时,需要加上一项误差0<γ≤ε/k2+ε/k0<\gamma\leq\frac{\varepsilon/k}{2+\varepsilon/k}0<γ≤2+ε/kε/k
f(Sg≥(1−1e−ε)f(S∗))f(S^g\geq(1- \frac{1}{e}- \varepsilon )f(S^*))f(Sg≥(1−e1−ε)f(S∗))
但是时间复杂度很哈人,是O(ε−2k3n2mlogn)O(\varepsilon^{-2}k^3n^2m\log n)O(ε−2k3n2mlogn)
3.2.2实证评估
MC-Greedy的方法终于要拉出来和其他算法比一比啦,考虑到MC-Greedy本来就是比较基础的算法,也只能和随机还有纯度选择比了,值得注意的是,能直观地看出蒙特卡洛的次数对的效果的影响 在p=0.01 的IC模型上,用NetHEPT跑出来是这样的。
Random这里就是随便挑点的基线算法
Degree是根据topk个点的度来进行挑选的算法
可以看出仿真挑选点的数目明显上升时,Influen Spread
的次数也明显上升,在20000次的时候能达到很好的效果,事实上,文献中还没有报道过在影响传播方面可以显着优于贪心算法的其他算法。(第一次看到真的裂开,那我还有什么好研究的?)
3.3大规模的IM问题
MC贪心还是有问题的,问题就是它太费时间了。在刚才的实验中,在R=2000的情况下,50个种子的传播在NetHEPT上要跑73.6小时,所以让贪心跑万把个节点几乎是不可能的。所以就要想一些办法来优化,比如lazy evaluation
细看一下蒙特卡洛贪心,有两个低效的地方:第一,传播评估的体量太大了k个种子就要跑这个算法k次,每次都要蒙特卡洛种子池外的每个点算σ(S∪{ω})\sigma(S\cup{\lbrace\omega\rbrace})σ(S∪{ω})所以选一组种子就需要O(nk)次评估,每次都是一个蒙特卡洛;第二就是蒙特卡洛的次数R也影响效果,所以效果好就要更耗时。
3.3.1减少IM评估
对子模集函数,一个有名的方法是Lazy evaluation,它可以在不改变输出的情况下显著减少评估次数 Leskovec et al. [2007](CELF)实证700倍的速度提升。
Lazy evaluation的灵魂就是非必要不评估,对于单调子模函数f的边际效益f(u∣S)=f(S∪{u})−f(S)f(u|S)=f(S\cup{\lbrace u\rbrace})-f(S)f(u∣S)=f(S∪{u})−f(S)考虑这么一个情况,在第i代贪心里,已经过了一部分点ω\omegaω算f(ω∣S)f(\omega|S)f(ω∣S),如果上几代有S’⊂SS’\subset SS’⊂S那么有一些点x就被测过f(x∣S)f(x|S)f(x∣S),存在f(x∣S′)≤f(ω∣S)f(x|S')\leq f(\omega|S)f(x∣S′)≤f(ω∣S),然后因为子模的性质,f(x∣S)≤f(x∣S′)≤f(ω∣S)f(x|S)\leq f(x|S')\leq f(\omega|S)f(x∣S)≤f(x∣S′)≤f(ω∣S),那么所以这些还没有评估的x肯定比评估过的ω\omegaω还要烂,就不用算了。
这个思想可以用优先队列来做。对每个元素u都维护两个fiels,u.mg是最近计算的边际效益,u.i是边际效益更新的那个代数。
第一代u存储的是f(u∣∅)f(u|\empty)f(u∣∅) ,边际收益作为键。把Top条目 v从优先队列里面拿出来。如果如果v.i是现在这代(f(x∣S)≤f(x∣S′)≤f(v∣S)f(x|S)\leq f(x|S')\leq f(v|S)f(x∣S)≤f(x∣S′)≤f(v∣S)自然成立)就算f(v∣S)f(v|S)f(v∣S)
举个例子
点 | u.mg | u.i |
---|---|---|
A | 10 | 1 |
B | 7 | 1 |
C | 4 | 1 |
抓到优先队列里top是A,A代数正好是1,直接把A抓紧Seedset,代数变为2,这个时候抓出来的top是B,u.i != iter了,这时候重新算一遍f(B∣S)f(B|S)f(B∣S),把新数值又插进Q里面,变成下面这样:
点 | u.mg | u.i |
---|---|---|
B | 6 | 2 |
C | 4 | 1 |
接下来抓出来的还是B,iter = u.i = 2 B抓进Seedset,这样就省去了点C的第二次评估。
这是用了LazyGreedy之后的,在NetHEPT上跑50个种子的仿真。每个条形上面的数字是运行时间,下面是一评估的次数,可以看到如果不用LazyGreedy,O(kn)大约是750K,图有15233个点,评估次数跟点的数目几乎就差不多了。而且比较好玩的是可以看到,monte2000次花的时间的反而比monte200次的少,是因为,monte次数少了以后,估计的点没那么准,评估的轮数反而翻倍了。
Goyal的CELF++提高了效率,关键点在于:更新u.mg(Algorithm3 11行,Algorithm CELF++13行)的时候,还算了一下S∪{prevbest}S\cup \lbrace prevbest\rbraceS∪{prevbest}这里的prevbest是目前这一代的最好值,如果这个点确实被选了,下一次u的评估就被省下来了,之所以可以节省工作量是因为σ(u∣S)\sigma (u|S)σ(u∣S)和σ(u∣S∪{prevbest})\sigma (u|S\cup \lbrace prevbest\rbrace)σ(u∣S∪{prevbest})可以在一组仿真里完成(这里没想明白)
影响传播的批量估计
另一个思路,在一代贪心里面不要独立去做蒙特卡洛边际效益的独立估计。依据是把模型等价成live-arc graph 模型,Chen提出了一种基于有效随机的算法,把每一代的时间复杂度从O(nRm)O(nRm)O(nRm)降到了O(TRm)O(TRm)O(TRm)T是一个远小于n的常数
3.3.2加速影响力计算
尽管lazy evaluations 和 batch estimates是的原始的贪心有了百倍的性能提升,跑大规模网络还是有问题。对一个有7万个点50万边的网络选50个种子需要花62个小时。主要问题还是每个点每次评估都要蒙特卡洛一下。前面的图表可以看到,单纯的减少蒙特卡洛仿真的次数(每个点跑多少次)会降低评估的效率,最后反而要多花迭代的次数才能达到最优解,总的时间复杂度并不会减少。为了解决这个问题,很多随机策略被提出。一个共同的特点是他们通过利用图结构和扩散模型的特定方面(special aspect)来避免蒙特卡罗模拟,从而显著加快影响力计算。接下来会以IC模型上的MIA算法和LT模型上的SimPath算法作位例子。
对于任一图上IC模型的传播影响力计算是#p-hard的,但是对于特定的图结构,比如树,会有有效的计算方法。Maximum Influence Arborescence(MIA)就是建立在这样便于计算的图结构上的,用来代替蒙特卡洛罗的评估。要求是把图当做以节点v为中心的,v有局部影响的树。这样做有两个好处,第一是不需要考虑远处的点的情况,就当这个概率太低直接忽略,这样计算的复杂度显著下降,传播结束就很快。第二是以v为根节点的局部树可以很好估计传播的影响力。MIA还能有效地跟新边际效益影响力,还是在线性时间内。详细可以看[Wang et al.2012]的工作。
建local树
对图G=(V,E)G=(V,E)G=(V,E)上的每一个arc(u,v)都有一个概率p(u,v)引入一个概念最大影响路径(maximum influence path,MIP(u,v)),MIP(u,v)MIP(u,v)MIP(u,v)的意思就是在u到v的所有可能路径中,传播概率最大的那一条。多条MIP存在的时候,这些路径就算作全部断裂,但是(u,v)的子路径(x,y)上的MIP依然生效。我们用λ∈[0,1]\lambda \in[0,1]λ∈[0,1]来略去概率较小的情况。maximum influence in-arborescence,MIIA(v,λ)MIIA(v,\lambda)MIIA(v,λ)
就成了各个点到v,用MIP拼出来的一颗树,MIP小于λ\lambdaλ的分支自然也会被剪掉。MIIA(v,λ)=∪u∈V,p(MIP(u,v)≥λMIP(u,v)MIIA(v,\lambda) = \cup _{u\in V,p(MIP(u,v)\geq \lambda}MIP(u,v)MIIA(v,λ)=∪u∈V,p(MIP(u,v)≥λMIP(u,v)
把概率p(u,v)转成距离权log(1/p(u,v))log(1/p(u,v))log(1/p(u,v))就可以把最大概率问题转成最短路径问题(路径的加过一道log就变成的概率的乘法),问题的求解就可以用迪杰斯特拉算法了,MIIA(v,λ)MIIA(v,\lambda)MIIA(v,λ)就把所有路径找出来一直到距离大于log(1/λ)log(1/\lambda)log(1/λ)
计算激活概率
现在有了树状T和种子集S,点u的激活概率记作ap(u,S,T)ap(u,S,T)ap(u,S,T)用递归计算的方法如下
关键的第四步其实是一个很直白的过程,www要激活的概率是ap(w)ap(w)ap(w),传到u的概率是p(w,u)p(w,u)p(w,u),没有别激活的概率互相独立所以连乘。1-X算出激活的概率。
评估传播
经过上面的操作σ(S)\sigma(S)σ(S)可以被估计为Σv∈Vap(v,S,MIIA(v,λ))\Sigma_{v\in V}ap(v,S,MIIA(v,\lambda))Σv∈Vap(v,S,MIIA(v,λ))那么开销节省在哪里了呢?关键就在于这个局部的树in-arborescence。InfSet(u)InfSet(u)InfSet(u)来表示那些in-arborescence里面有u的点的集合,你就会发现,u被SeedSet以后,需要变化激活概率的只有InfSet(u)InfSet(u)InfSet(u)里的点v,那么需要变化边际影响力的,就是存在于MIIA(v,λ)MIIA(v, \lambda)MIIA(v,λ)里的点 www ,这让贪心算法的迭代次数显著降低。
IncInf(w)IncInf(w)IncInf(w) | w的边际传播影响 |
---|---|
IncInf(w,v)IncInf (w,v)IncInf(w,v) | 存储w对v激活概率的边际贡献 |
因为v被激活的概率变了,所以w到v的传播影响也变了,计算边际效益的时候就需要把这部分先减掉(line2),再用ap重新算一遍(line5,多了w的ap差)然后再重新加回来,因为line5是好算的,所以边际效益的提升也好算,贪心自然就有提升。
拼起来的框架就是这样。
值得注意的是MIIA(v,λ)MIIA(v, \lambda)MIIA(v,λ)跟新是时间复杂度是O(∣MIIA(v,λ)∣2)O(|MIIA(v, \lambda)|^2)O(∣MIIA(v,λ)∣2)其中∣MIIA(v,λ)∣|MIIA(v, \lambda)|∣MIIA(v,λ)∣是MIIA里边的数量,通过优化,可以改进到O(∣MIIA(v,λ)∣)O(|MIIA(v, \lambda)|)O(∣MIIA(v,λ)∣)
Information and Influence Propagation in Social Networks学习笔记相关推荐
- Influence maximization in social networks using transfer learning via graph-based LSTM
基于图LSTM的社交网络影响力最大化问题迁移学习 前言 文章内容 摘要 特征提取 标签生成 用基于图的LSTM训练模型 选LSTM的原因: 基于图的LSTM: 迁移学习 提出的模型架构 提出的算法 训 ...
- Partial Transfer Learning with Selective Adversarial Networks学习笔记
Partial Transfer Learning with Selective Adversarial Networks学习笔记 文章目录 Partial Transfer Learning wit ...
- Multi-Modal Face Anti-Spoofing Based on Central Difference Networks学习笔记
论文题目:Multi-Modal Face Anti-Spoofing Based on Central Difference Networks 论文链接:https://openaccess.the ...
- Densely Connected Convolutional Networks 学习笔记
github链接:https://github.com/liuzhuang13/DenseNet MXNet版本代码(有ImageNet预训练模型):https: //github.com/mira ...
- 循环神经网络(RNN, Recurrent Neural Networks)学习笔记:源码分析(一)
前面帖子给出了RNN的基础理论,里面也提到了神牛Mikolov,这个帖子就基于此牛开源出的一个语言建模工具箱(RNN Language Modeling Tookit)进行代码走读,会加速理解RNN算 ...
- DenseNet(Densely Connected Convolutional Networks)学习笔记
这篇论文是CVPR 2017的最佳论文,即16年的resnet之后这篇文章提出了DenseNet这样一个全新的网络框架,丰富了自LeNet至今的CNN网络体系.本着学习的态度,我趁这个周末上午学习了D ...
- Unsupervised Feature Selection in Signed Social Networks 阅读笔记
论文来源:2017 KDD 论文链接 有符号的社交网络中存在正连接(positive links)和负连接(negative links),最近的一些研究指出,负连接具有一些正连接没有的额外信息.因此 ...
- Dual Graph Attention Networks for Deep Latent Representation of Multifaceted Social...》论文学习笔记
Dual Graph Attention Networks for Deep Latent Representation of Multifaceted Social Effects in Recom ...
- UIL 算法学习 Structure Based User Identification across Social Networks
Structure Based User Identification across Social Networks 这是篇无监督的论文. TKDE 2018 因此,在本研究中,我们研究了无监督策略, ...
最新文章
- html运行c代码大全,html特效代码大全
- wxpython基本控件-静态文本控件
- 深入剖析神秘的“零拷贝”
- 联想电脑的一键换机软件——乐换机
- c++学习笔记之类模板
- 直接进入ORACLE12C插件数据库
- java 很垃圾_JAVA吧真的很垃圾!!!
- 小学奥数_7832 最接近的分数 python
- Bootstrap Table事件
- 复变函数:傅里叶级数
- 运筹学 matlab实现运输问题(表上作业法)
- 利用diyUpload做多图片上传及预览
- [转] 从1个月到2岁半的育儿方案,有了它宝宝都不用去上早教啦
- 无线攻击 --aircrack-ng套件之一:Airbase-ng(攻击客户端多用途工具)
- 伤感!!!!!!!!!!!!!!!
- matlab示波器横轴变纵轴,excel表格横轴数据变纵轴-在EXCEL中做图表,横坐标和纵坐标如何调换?...
- huaweiUSG6650防火墙web故障
- js Console 对象 - Kaiqisan
- [软件人生]也谈谈支付宝五福
- 2022年罗振宇“时间的朋友”跨年演讲金句汇总
热门文章
- AToken全观:小米雷军也投区块链钱包 AToken有机会的
- E. The Humanoid
- ​Hello Qt(四十七)——QtQuick基础​
- 打印机打印的时候会打印计算机用户,共享打印机无法打印怎么办 共享打印机无法打印解决方法【图文】...
- centos系统清理挖矿病毒kthreaddk
- 一些与OWL相关的推理机的区别(如:Jess、Jena、Pellet等)
- 升级合作伙伴计划,实现全面赋能
- 今天是值得纪念的一天!
- IAR 无法跳转函数定义问题总结
- LQ0018 顺子日期【枚举+日期】