SocialLGN Light graph convolution network for social recommendation
概
LightGCN + Social. 方法很简单, 利于理解 social recommendation.
SocialLGN
-
定义 \(\mathbf{R} \in \mathbb{R}^{N \times M}, \mathbf{S} \in \mathbb{R}^{N \times N}\) 分别为 interaction rating matrix 和 social adjacency matrix, \(N, M\) 分别表示 user 和 item 的数量. 即 social recommendation 比一般的协同过滤, 多了一部分 user-user 的信息.
-
令
\[\tilde{\mathbf{R}} := \mathbf{D}_{\mathbf{R}}^{-1/2} \mathbf{R} \mathbf{D}_{\mathbf{R}}^{-1/2}, \\ \tilde{\mathbf{R}}^T := \mathbf{D}_{\mathbf{R}^T}^{-1/2} \mathbf{R}^T \mathbf{D}_{\mathbf{R}^T}^{-1/2}, \\ \tilde{\mathbf{S}} := \mathbf{D}_{\mathbf{S}}^{-1/2} \mathbf{S} \mathbf{D}_{\mathbf{S}}^{-1/2}. \] -
于是第 \(k\) 层, 进行如下的操作:
\[\tilde{\mathbf{E}}_{U}^{(k)} = \mathbf{W}_3[\sigma(\mathbf{W}_1 \tilde{\mathbf{R}} \mathbf{E}_{\mathbf{I}}^{(k-1)}) \| \sigma(\mathbf{W}_2 \tilde{\mathbf{S}} \mathbf{E}_{U}^{(k-1)})], \\ \mathbf{E}_{U}^{(k)} = \frac{\tilde{\mathbf{E}}_{U}^{(k)}}{\|\tilde{\mathbf{E}}_{U}^{(k)}\|_F}, \\ \mathbf{E}_{I}^{(k)} = \tilde{\mathbf{R}}^T \mathbf{E}_U^{(k-1)}. \]其中 \(\sigma\) 作者采用的是 tanh.
-
其实思想很简单, Item 的 embedding 像 LightGCN 一样仅仅依靠 user-item 的交互来聚合信息, 而 User 的 embedding 则是融合了 social 和 interaction 两部分, 通过拼接 + \(\mathbf{W}_3\) 来保持维度上的一致.
代码
[official]