目录
概
GCN 已经被广泛应用在了推荐系统中, 但是往往只是简单地应用. 作者考虑了 \(A_{ij} \in \{0, 1\}\) 的合理性, 构建新的‘邻接矩阵’来帮助推荐系统更好地运用协同过滤的信息.
符号说明
- \(\mathcal{G = (V, E)}\);
- \(\mathcal{V = U \cup I}\);
- \(A \in \{0, 1\}^{\mathcal{|V| \times |V|}}\);
- \(e_{pq} \in \mathcal{E}, \: \text{ if } A_{pq} = 1\);
- \(\mathcal{N}_p^l\), \(l\)-hops neighbors;
- \(\tilde{\mathcal{N}}_p^1 = \mathcal{N}_p^1 \cup \{p\}\);
- \(P_{pq}^l \in \mathscr{P}_{pq}^l\), \(p, q\) 间长度为 \(l\) 的路径, \(\mathscr{P}_{pq}^l = \empty\), 如果不存在这样的路径;
- \(\mathbf{E}^0 \in \mathbb{R}^{(n + m) \times d^0}\), 初始的 embeddings.
本文思路
-
LightGCN:
\[y_{ui}^L = (\sum_{l=0}^L \beta_l \bm{e}_u^L)^T (\sum_{l=0}^L \beta_l \bm{e}_i^L), \]它等价于
\[(\sum_{l_1=0}^L \sum_{j \in \mathcal{N}_u^{l_1}} \sum_{l_2=l_1}^L \beta_{l_2} \alpha_{ju}^{l_2} \bm{e}_j^0)^T (\sum_{l_1=0}^L \sum_{v \in \mathcal{N}_i^{l_1}} \sum_{l_2=l_1}^L \beta_{l_2} \alpha_{vi}^{l_2} \bm{e}_v^0)^T, \]故 LightGCN 实际上能够利用到各 hop 的一个协同信息:
-
但是, 作者认为, LightGCN 的这种利用方式可能并不有效, 于是作者提出了如下的一个指标, 用于衡量 \(j\) 对 \(u\) 的一个重要性:
\[\phi_u^L(j) = \frac{1}{\mathcal{N}_u^1} \sum_{i \in \mathcal{N}_u^1} \sum_{l=1}^L \beta^{2l} \sum_{P_{ji}^{2l} \in \mathscr{P}_{ji}^{2l}} \frac{1}{f(\{\mathcal{N}_k^1| k \in P_{ji}^{2l}\})}, \forall j \in \mathcal{N}_u^1, \forall u \in \mathcal{U}. \]直观地说, 该指标通过 \(u\) 的 1-hop neighbors 和 \(j\) 的各级路径来构建二者的关系 (取决于 \(L\) 和 \(f\) 的选择).
-
说实话, 对于 \(L > 1\) 的情况我感觉构建合理的 \(f\) 可能不是一件非常容易的事情. 让我们看一下 \(L=1\) 的情况下, 取不同的 \(f\) 会有什么效果:
-
\(f(\{\mathcal{N}_k^1| k \in P_{ji}^{2l}\} = |\mathcal{N}_i^1 \cup \mathcal{N}_j^1|\):
\[\phi_u^i(j) =\frac{\beta_1}{|\mathcal{N}_u^1|} \sum_{i \in \mathcal{N}_u^1} \frac{|\mathcal{N}_i^1 \cap \mathcal{N}_j^1|}{|\mathcal{N}_i^1 \cap \mathcal{N}_j^1|} =\frac{\beta_1}{|\mathcal{N}_u^1|} \sum_{i \in \mathcal{N}_u^1} \text{JC}(i, j). \]注意到, \(\text{JC}(A, B) = \frac{|A \cap B|}{|A \cup B|}\) 描述了两个集合的 Jaccard Similarity.
-
\(f(\{\mathcal{N}_k^1| k \in P_{ji}^{2l}\} = \sqrt{|\mathcal{N}_i^1 \cup \mathcal{N}_j^1|}\):
\[\phi_u^i(j) =\frac{\beta_1}{|\mathcal{N}_u^1|} \sum_{i \in \mathcal{N}_u^1} \frac{|\mathcal{N}_i^1 \cap \mathcal{N}_j^1|}{\sqrt{|\mathcal{N}_i^1 \cap \mathcal{N}_j^1|}} =\frac{\beta_1}{|\mathcal{N}_u^1|} \sum_{i \in \mathcal{N}_u^1} \text{SC}(i, j). \]注意到, \(\text{SC}(A, B) = \frac{|A \cap B|}{\sqrt{|A \cup B|}}\) 描述了两个集合的 Salton Cosine Similarity.
-
\(f(\{\mathcal{N}_k^1| k \in P_{ji}^{2l}\} = 1\):
\[\phi_u^i(j) =\frac{\beta_1}{|\mathcal{N}_u^1|} \sum_{i \in \mathcal{N}_u^1} |\mathcal{N}_i^1 \cap \mathcal{N}_j^1| =\frac{\beta_1}{|\mathcal{N}_u^1|} \sum_{i \in \mathcal{N}_u^1} \text{CN}(i, j). \]注意到, \(\text{CN}(A, B) = |A \cap B|\) 描述了两个集合的 Common Neighbors.
-
\(f(\{\mathcal{N}_k^1| k \in P_{ji}^{2l}\} = |\mathcal{N}_i^1|\cdot|\mathcal{N}_j^1|\):
\[\phi_u^i(j) =\frac{\beta_1}{|\mathcal{N}_u^1|} \sum_{i \in \mathcal{N}_u^1} \frac{|\mathcal{N}_i^1 \cap \mathcal{N}_j^1|}{|\mathcal{N}_i^1|\cdot|\mathcal{N}_j^1|} =\frac{\beta_1}{|\mathcal{N}_u^1|} \sum_{i \in \mathcal{N}_u^1} \text{LHN}(i, j). \]注意到, \(\text{LHN}(A, B) = \frac{|A \cap B|}{|A| \cdot |B|}\) 描述了两个集合的 Leicht-Holme-Nerman.
-
-
总结来说, 上述的这些 \(\phi_u^1(j)\) 实际上是 2-hop 信息的一种度量, 原则上, \(j\) 和 \(u\) 的 1-hop neighbors 的接触越多则 \(j\) 越重要. 而 \(f\) 在这里起到了一个 normalization 的作用, 它是重要的. 通过实验可以发现, \(\text{CN}\) 的效果最差, 或许就是因为它缺少 normalization 的原因.
-
有了 CIR, 我们可以定义一个新的(非对称)权重矩阵:
\[\Phi_{ij} = \left \{ \begin{array}{ll} \phi_i(j) & \text{ if } A_{ij} > 0, \\ 0 & \text{ if } A_{ij} = 0. \end{array} \right . \]它建模了 \(i, j\) 的联系.
-
基于此, 我们可以通过
\[\bm{e}_i^{l+1} = \sum_{j \in \mathcal{N}_i^1} (\gamma \frac{\Phi_{ij}}{\sum_{k \in \mathcal{N}_i^1} \Phi_{ik}} + d_i^{-1/2}d_j^{-1/2}) \bm{e}_j^l \]其中第一部分表示来自重定义权重矩阵的信息, \(\gamma\) 用于调整自定义和本来的权重矩阵的平衡. 事实上, 当 \(\gamma=0\) 的时候, 就退化为 LightGCN 了.
代码
[official]
标签:Convolutional,Recommender,frac,Network,text,sum,cap,beta,mathcal From: https://www.cnblogs.com/MTandHJ/p/16860458.html