《Link Prediction with Personalized Social Influence》论文解读
论文:Huo, Zepeng, Xiao Huang, and Xia Hu. "Link Prediction with Personalized Social Influence." (2018).
1. Motivation
先思考几个问题
- 已知一个微博用户今天的活动记录(转发、评论、点赞等),能否预测其明天的活动情况?
- 假设该用户追星,而且其偶像的每一条微博他都会转发评论,那么对其明天的活动情况的预测是不是会更容易?
- 为什么更容易了?因为该用户的偶像对他有影响,这种影响降低了预测该用户活动的随机性,于是预测就更容易。
- 那么如果给出了所有用户的活动记录,是不是能够反推出用户间的相互影响力,进而更精确地对用户和网络建模表示,从而提高链接预测等应用的精确度。
那么接下来的问题是怎么由活动记录反推影响力。
1.1 由活动记录反推影响力
- 『已知用户 \(u_i\) 的活动记录,预测其明天的活动情况』与『已知用户偶像 \(u_j\) 和该用户 \(u_i\) 的活动记录,预测其明天的活动情况』,两个预测的不确定性之间,相差的就是偶像 \(u_j\) 对该用户 \(u_i\) 的影响。
- 那么怎么衡量这种不确定性?信息熵。熵在信息论中代表随机变量不确定度的度量。下面这个是信息熵的公式。
\[H(\mathbf{X})=-\sum\limits_{x\in \mathcal{X}} p(x)\log p(x)\]
2. 问题定义
现在来定义一下要解决的问题。
令 \(\mathcal{G}=\left\{\mathcal{U},\mathcal{E}\right\}\) 表示网络,其中 \(\mathcal{U}=\{u_1,u_2,\ldots,u_N\}\) 表示 \(N\) 个用户组成的集合,\(\mathcal{E}\subseteq \mathcal{U\times U}\) 为边集合。令 \(\mathcal{A}\) 表示活动时间戳集合,\(\mathcal{A}^{(i)}=\left\{t_{i,1},t_{i,2},\ldots\right\}\) 表示用户 \(u_i\) 的活动时间戳序列。
本文中的链接预测问题为:给定 \(\mathcal{G}\) 和 \(\mathcal{A}\),预测任意用户 \(u_i\) 到用户 \(u_j\) 有边的概率。
本文希望对于每个用户 \(u_i\) 能学习到两个向量 \(S_i\) 和 \(T_i\) ,分别为该用户作为边起点和边终点的表示。作为边起点时,用户对其他用户产生影响;作为终点时,该用户受其他用户的影响。最终,任意用户 \(u_i\) 和 \(u_j\) 有边的概率可通过 \(S_iT_j\) 表示。
3. 社交影响力度量
先解决上面说的度量社交影响力的问题,即借用信息熵由活动记录反推影响力。
3.1 时间序列建模
定义用户 \(u_i\) 的时间片大小为 \(\Delta t^i=(t_{max}-t_{min})/M\),从而将用户 \(u_i\) 的活动时间划分为 \(M\) 段。
定义任意用户 \(u_x\) 在第 \(m\) 段的活动频度为 \(A_{x,m}^{(i)}\)。
则对用户 \(u_i\) 来说,时间戳序列集合 \(\mathcal{A}\) 被转化为一个矩阵 \(A^{(i)}\in \mathbb{R}^{N\times M}\)。
于是,我们将有 \(N\) 个不同的矩阵,即 \(\left\{A^{(i)}\right\},\text{for}\ i=1,2,\ldots,N\)
下图为对这 \(N\) 个矩阵的一种具象的表示。
![](https://images2018.cnblogs.com/blog/726025/201809/726025-20180901142355541-590654827.png)
-->
3.2 影响力度量
考虑边 \((i,j)\),用户 \(u_i\) 关注 \(u_j\),则 \(u_j\) 对 \(u_i\) 产生影响。在矩阵 \(A^{(i)}\) 上计算用户 \(u_j\) 对 \(u_i\) 的影响力如下:
- 将 \(A^{(i)}_i\) 视为马尔可夫链,即可由 \(A^{(i)}_{i,m}\) 预测 \(A_{i,m+1}^{(i)}\),则可定义用户 \(u_i\) 在 \(m+1\) 段活跃的概率为
\[P(A_{i,m+1}^{(i)} \neq 0\mid A_{i,m}^{(i)})\]
则可得一个分布
\[p_1=\left\{P(A_{i,m+1}^{(i)} \neq 0\mid A_{i,m}^{(i)})\right\},\text{for}\ m=1,\ldots,M-1\]
该分布表达在不知 \(u_j\) 影响的前提下,对 \(u_i\) 活跃度预测的不确定性。 类似可得分布
\[p_2=\left\{P(A_{i,m+1}^{(i)} \neq 0\mid A_{i,m}^{(i)},A_{j,m}^{(i)})\right\}, \text{for}\ m=1,\ldots,M-1\]
该分布表达在已知 \(u_j\) 活动记录和 \(u_i\) 活动记录前提下,对 \(u_i\) 活跃度预测的不确定性。于是可将两分布的熵之差视作 \(u_j\) 对 \(u_i\) 影响的度量:
\[
\begin{align*}
I_{j\to i} &\triangleq H(p_1)-H(p_2) \\\\
&=-\sum\limits_{m=1}^{M-1} P(A_{i,m+1}^{(i)}\neq 0 \mid A_{i,m}^{(i)}) \log P(A_{i,m+1}^{(i)}\neq 0\mid A_{i,m}^{(i)}) \\\\
&\ \ \ \ +\sum\limits_{m=1}^{M-1}P(A_{i,m+1}^{(i)}\neq 0\mid A_{i,m}^{(i)},A_{j,m}^{(i)})\log P(A_{i,m+1}^{(i)}\neq 0\mid A_{i,m}^{(i)},A_{j,m}^{(i)})\\\\
\end{align*}
\]
3.3 \(p_1\) 和 \(p_2\) 的计算
\(p_1\) 是通过 Logistic 回归计算的:
\[P(A_{i,m+1}^{(i)}\neq 0\mid A_{i,m}^{(i)})={\frac{1}{1+e^{-\alpha_0-\alpha_1f(A_{i,m}^{(i)})}}}\]
其中 \(\alpha_0\) 和 \(\alpha_1\) 是通过学习得到的。
学习过程的输入为 \(\left\{A_{i,1}^{(i)},A_{i,2}^{(i)},\ldots,A_{i,M-1}^{(i)}\right\}\),对应 label 为 \(\left\{\text{sgn}(A_{i,2}^{(i)}),\text{sgn}(A_{i,3}^{(i)}),\ldots,\text{sgn}(A_{i,M}^{(i)})\right\}\)。
其中 \(f(x)=\begin{cases} x,&\text{if}\ x\leq 2,\\ 1+\lceil\log(1+x)\rceil, &o/w. \\ \end{cases}\),是为保证更符合现实情况,如某个用户在短时间内发了大量微博,其他用户并不一定每一条都看到。
类似地,\(p_2\) 可如下计算:
\[P(A_{i,m+1}^{(i)}\neq 0\mid A_{i,m}^{(i)},A_{j,m}^{(i)})=\frac{1}{1+e^{-\alpha_0-\alpha_1 f(A_{i,m}^{(i)})-\alpha_2 f(A_{i,m}^{(i)})}}\]
4. 社交影响力 + 网络结构
如果在保持网络结构的基础上,边的强度与边两端节点的影响力成正比,这样学习到的表示就能够更有效地利用网络中的信息。
定义 \(u_i\) 到 \(u_j\) 有边的概率为
\[\hat{p}(u_j\mid u_i)=I_{j\to i}/d_i^{\text{out}}\]
其中 \(d_i^{\text{out}}=\sum_{(i,n)\in \mathcal{E}}I_{n\to j}\)。
再定义由节点向量表示计算 \(u_i\) 到 \(u_j\) 有边的概率为
\[p(u_j\mid u_i)=\frac{e^{S_i T_j^\top}}{\sum_{n=1}^N e^{S_i T_n^\top}}\]
于是,将目标函数设置为最小化两者的 KL 散度即可:
\[
\begin{align*}
\text{min}\ \mathcal{J}_1&=\sum\limits_{(i,j)\in\hat{\mathcal{E}}} d_i^{out}D_{KL}(\hat{p}(u_j\mid u_i)\lVert p(u_j\mid u_i))\\\\
&=-\sum\limits_{(i,j)\in\hat{\mathcal{E}}}I_{j\to i}\log p(u_j\mid u_i)+\cfrac{I_{j\to i}}{d_i^{out}}\log \cfrac{I_{j\to i}}{d_i^{out}}
\end{align*}
\]
去掉常数项得:
\[\text{max}\ \hat{\mathcal{J}_1}=\sum\limits_{(i,j)\in\hat{\mathcal{E}}} I_{j\to i} \log p(u_j\mid u_i)\]
4.1 负采样
通过定义新的条件概率区别正负样本:
\[p(u_j > u_n\mid u_i)=\sigma(S_iT_j^\top-S_iT_n^\top)\]
则目标函数为:
\[\text{max}\ \ \mathcal{J}_2=\sum\limits_{(i,j)\in\hat{\mathcal{E} } }I_{j\to i} \sum\limits_{u_n\in \mathcal{U}\backslash j} \log\sigma(S_i T_j^\top-S_i T_n^\top )\]
则最终的目标函数为:
\[\text{max}\ \mathcal{J}=\sum_{(i,j)\in\mathcal{E}} I_{j\to i} \sum^K E_{u_n\sim P_n(u)}\log \sigma(S_i T_j^\top -S_i T_n^\top)-\frac{\beta_1}{2} \lVert S \rVert_F^2 -\frac{\beta_2}{2}\lVert T\rVert_F^2\]
之后使用异步随机梯度下降迭代更新参数 \(S\) 和 \(T\) 即可学习到节点的表示。
5. 总结
- 网络结构 + 社交影响力
- 构造分布,使用信息熵度量影响力
- 每个用户有 \(S\) 和 \(T\) 两个向量,表达其不同角色
END
2018.4.9
《Link Prediction with Personalized Social Influence》论文解读的更多相关文章
- 《Population Based Training of Neural Networks》论文解读
很早之前看到这篇文章的时候,觉得这篇文章的思想很朴素,没有让人眼前一亮的东西就没有太在意.之后读到很多Multi-Agent或者并行训练的文章,都会提到这个算法,比如第一视角多人游戏(Quake ...
- ImageNet Classification with Deep Convolutional Neural Networks 论文解读
这个论文应该算是把深度学习应用到图片识别(ILSVRC,ImageNet large-scale Visual Recognition Challenge)上的具有重大意义的一篇文章.因为在之前,人们 ...
- 《Deep Feature Extraction and Classification of Hyperspectral Images Based on Convolutional Neural Networks》论文笔记
论文题目<Deep Feature Extraction and Classification of Hyperspectral Images Based on Convolutional Ne ...
- Quantization aware training 量化背后的技术——Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference
1,概述 模型量化属于模型压缩的范畴,模型压缩的目的旨在降低模型的内存大小,加速模型的推断速度(除了压缩之外,一些模型推断框架也可以通过内存,io,计算等优化来加速推断). 常见的模型压缩算法有:量化 ...
- Training Deep Neural Networks
http://handong1587.github.io/deep_learning/2015/10/09/training-dnn.html //转载于 Training Deep Neural ...
- Training (deep) Neural Networks Part: 1
Training (deep) Neural Networks Part: 1 Nowadays training deep learning models have become extremely ...
- [CVPR2015] Is object localization for free? – Weakly-supervised learning with convolutional neural networks论文笔记
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Helvetica Neue"; color: #323333 } p. ...
- Training spiking neural networks for reinforcement learning
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 原文链接:https://arxiv.org/pdf/2005.05941.pdf Contents: Abstract Introduc ...
- CVPR 2018paper: DeepDefense: Training Deep Neural Networks with Improved Robustness第一讲
前言:好久不见了,最近一直瞎忙活,博客好久都没有更新了,表示道歉.希望大家在新的一年中工作顺利,学业进步,共勉! 今天我们介绍深度神经网络的缺点:无论模型有多深,无论是卷积还是RNN,都有的问题:以图 ...
- 论文翻译:BinaryConnect: Training Deep Neural Networks with binary weights during propagations
目录 摘要 1.引言 2.BinaryConnect 2.1 +1 or -1 2.2确定性与随机性二值化 2.3 Propagations vs updates 2.4 Clipping 2.5 A ...
随机推荐
- Java基础系列--08_集合1
---恢复内容开始--- 集合当中有很多都是应用到泛型的技术,所以在讲集合之前,应该先将泛型的概念普及一下. 泛型: (1)泛型是一种类型,但是这种类型是在编译或者调用方法时才确定. (2 ...
- c文件操作整理
<c陷阱与缺陷> FILE *fp; fp = fopen(file, "r+"); 编程者也许认为,程序一旦执行上述操作完毕,就可以自由地进行读取和写入的操作了.遗憾 ...
- springMVC 实现redis分布式锁
1.先配置spring-data-redis 首先是依赖 <dependency> <groupId>org.springframework.data</groupId& ...
- 软工+C(5): 工具和结构化(重构中, part 1...)
// 上一篇:Alpha/Beta换人 // 下一篇:最近发展区/脚手架 目录: ** 0x01 讨论:工具/轮子 ** 0x02 讨论:结构/演进 ** 0x03 讨论:行为/活动 ** 0x04 ...
- linux环境下vim创建java文件,并编译运行
一.前提 安装Java 二.创建工作目录并编辑java文件 三.编译 四.运行
- [转帖]Ansible管理windows集群
Ansible管理windows集群 http://www.cnblogs.com/Dev0ps/p/10026908.html 写的挺好的 我关注点还是不够好呢 最近公司新项目需要安装400+win ...
- IIS7.0 asp不能连接access数据 静态系统后台列表不显示 的问题
首先看一下系统磁盘的格式,看是NTFS的还是FAT32的,如果是NTFS的一般就是权限的问题,因为iis读取数据库在系统盘是有缓存的,所以对权限有要求,找到系统盘缓存目录: C:/Windows/te ...
- 通过VuePress管理项目文档(二)
通过vue组件实现跟:Element相似的效果.需要在VuePress网站中将自己的项目中的Vue组件运行结果展示在页面中. 至于如何将组件在VuePress网站中展示请参考:https://segm ...
- Luogu3732 [HAOI2017] 供给侧改革 【后缀数组】【线段树】【乱搞】
题目分析: 这道题我是乱搞的,因为他说$01$串是随机的. 那么我们可以猜测能够让LCP变大的地方很少.求出后缀数组之后可能让LCP变大的地方就等价于从大到小往height里动态加点同时维护这个点左右 ...
- Quartus16.1布线优化选择,重编译可能会满足时序
流程 (1)在默认的优化编译下,时序违例. (2)在assignments中选择setting. (3)根据需求,选择不同的优化方式,目前选择性能优先. (4)可以发现时序满足要求. 以上.