Supervised Random Walks: Predicting and Recommending Links in Social Networks
概
本文通过模型预测结点间的一个 strength, 然后通过 random walk with restarts 生成每个某个节点到其他节点的一个转移概率.
符号说明
- \(G(V, E)\), 图;
- \(s \in V\), 当前我们所关注的一个点;
- \(D = \{d_1, \ldots, d_k\} \subset V\), 与结点 \(s\) 发生关系的那些点 (正样本);
- \(L = \{l_1, \ldots, l_n \} \subset V\), 与结点 \(s\) '无关'的一些点 (负样本);
- \(\psi_{uv}\), 描述 \((u, v)\) 关系的一些特征向量;
本文方法
-
对于某个结点 \(s\), 我们有它的一些正样本 \(D\) 和负样本 \(L\), 我们希望结点 \(s\) 到其他结点的重要性分数满足如下性质:
\[\tag{1} p_{sl} < p_{sd}, \forall l \in L, \: d \in D; \] -
首先, 我们通过模型 \(f_w(\cdot)\) 预测
\[a_{uv} = f_w(\psi_{uv}) \]为两个结点的一个紧密程度, 由此定义
\[Q_{uv}' = \left \{ \begin{array}{ll} \frac{a_{uv}}{\sum_w a_{uw}} & \text{if } (u, v) \in E \\ 0 & \text{else}; \end{array} \right . \] -
作者和 PageRank 一样采用 restarts 的方式定义转移概率矩阵 \(Q\):
\[Q_{uv} = (1 - \alpha) Q_{uv}' + \alpha \mathbb{I}(v = s), \]不同的是, restart 仅仅回到结点 \(s\), 这是因为这个 \(Q\) 相当于是一个个性化的 (关于 \(s\)) 的一个转移矩阵, 我们希望和 \(s\) 紧密联系的到能够被频繁访问;
-
最后通过
\[p^T = p^T Q \]迭代得到最后的 scores \(p_s = [p_{s1}, p_{s2}, \ldots, p_{s|V|}]\);
-
接下来为了满足 (1), 我们优化如下的损失:
\[\min_w \|w\|^2 + \lambda \sum_{s \in S} \sum_{d \in D_s, l \in L_s} h(p_{sl} - p_{sd}). \]其中 \(h\) 是损失函数, 比如
-
Squared loss with margin b:
\[h(x) = (\max(x+ b, 0))^2; \] -
Huber loss with margin \(b\) and window \(z > b\):
\[h(x) = \left \{ \begin{array}{ll} 0 & \text{if } x \le -b, \\ (x + b)^2 / (2z) & \text{if } -b < x \le z - b, \\ (x + b) - z/ 2 & \text{if } x > z - b; \end{array} \right . \] -
Wilcoxon-Mann-Whitney (WMW) loss with width \(b\):
\[h(x) = \frac{1}{1 + \exp(-x / b)}. \]
-
-
此外, 关于 \(f\) 可以如下定义:
- Exponential edge strength:\[a_{uv} = \exp(\psi_{uv} \cdot w), \\ a_{uv} = (1 + \exp(-\psi_{uv} \cdot w))^{-1}. \]
- Exponential edge strength:
代码
[code]