SGL论文阅读笔记
摘要部分内容
首先,论文提出了目前用户-项目图所面临的两大问题
- 长尾问题:高度数的节点对表示学习产生更大的影响 ,导致低度数的结点的推荐比较困难
- 鲁棒性问题:用户的交互数据中包含很多噪声,而邻居聚合策略会更进一步放大聚合的影响
于是,这篇论文提出了自监督学习,主要思想是用一个辅助的监督任务来补充经典的推荐监督任务,这个辅助的监督任务具体来说,就是生成一个节点的多个视图,然后提高同一个节点在不同视图表征之间的相似性,最小化不同节点表征之间的相似性
这里该论文提出了三种产生不同视图的方法,分别是
- node dropout
- edge dropout
- random walk
之后该论文提出了通过对比学习,SGL具有自动挖掘hard negative node的能力,提高了推荐精度,对于长尾项以及对交互噪声的鲁棒性
正文部分内容
该论文提出了当前GCN的推荐系统有以下三个限制
- 稀疏的监督信号,就是数据是稀疏的,用户和物品之间有交互的很少
- 倾斜的数据分布,普通的GCN容易偏向度数高的节点,降低了度数低的节点的表示性能,也就是长尾问题
- 交互中的噪声,就是学习容易受交互噪声的影响
该论文构建的辅助任务有两个关键部分组成
- 数据增强,也就是给每个节点生成多个视图
- 对比学习,也就是使同一节点不同视图之间的一致性最大化
在对比学习中,通过改变图邻接矩阵来构造“未标记”数据空间,然后就采用上述提到的三种方式来生成多个视图,之后对变化的结构进行对比学习,SGL是通过探索节点间的内部关系来增强节点表示学习的
SGL从三个方面补充了现有的推荐模型
- 节点自我识别提供了辅助的监督信号,补充了仅通过观察交互的经典监督
- 数据增强,尤其是edge dropout,通过有意降低高度节点的影响来减轻度的偏差
- 节点的多视图不同的局部结构增强了模型对交互噪声的鲁棒性
最后还发现了有挖掘hard negative节点的能力,不仅提高了性能,而且加速了训练过程
SGL还是模型无关的,可以应用到任何基于用户/项目嵌入的基于图的模型
模型的示意图如下:
图结构数据增强
$ z_ {1}^ {(l)} $ =H( $ Z_ {1}^ {(l-1)} $ , $ s_ {1} $ (G)), $ Z_ {2}^ {(l)} $ =H( $ Z_ {2}^ {(l-1)} $ , $ s_ {2} $ (G)), $ s_ {1} $ , $ s_ {2} $ $ \sim S$ ,
这与GNN进行节点编码的范式差不多,有区别的是对图结构进行了dropout操作,这里要做两次从而形成两个不同的子视图
三种方式的dropout策略如下:
- node dropout:使用两个不同的掩码矩阵与节点矩阵相乘来产生两个不同的子视图
- $ s_ {1} $ (G)=(M' $ \odot $ V, $ \varepsilon $ ), $ s_ {2} $ (G)=(M″ $ \odot $ V, $ \varepsilon $ )
- edge dropout:使用两个不同的掩码矩阵与边矩阵相乘来产生两个不同的子视图
- $ s_ {1} $ (G)=(V, $M_1 \odot $ $ \varepsilon $), $ s_ {2} $ (G)=( V, $M_2 \odot $ $ \varepsilon $)
- random walk:在每一层里,使用两个不同的掩码矩阵与边矩阵相乘来产生两个不同的子视图
- $ s_ {1} $ (G)=(V, $M_1^{(l)} \odot $ $ \varepsilon $), $ s_ {2} $ (G)=( V, $M_2^{(l)} \odot $ $ \varepsilon $)
在训练时,我们在每个epoch开始时生成每个节点的两个不同的视图,对于s1和s2,dropout的比例应当相同
对比学习
该论文将同一节点在不同视图的表示看成一对正样本,把不同节点的表征看作负样本,于是我们采用的对比损失函数如下:
s表示两个向量之间的相似度,本论文采用的是余弦相似度,\(\tau\)是温度系数
我们结合用户和项目的损失函数,之后的损失函数为:
\(L_{ssl}=L_{ssl}^{user}+L_{ssl}^{item}\)
之后就是进行多任务训练,把经典的推荐任务和自监督学习任务结合起来,我们得到最终的损失函数为
\(L=L_{main}+\lambda_1L_{ssl}+\lambda_2 \|\Theta\|_2^2\)
其中,\(\Theta\)为\(L_{main}\)模型参数的集合
理论分析部分
第一部分主要分析了温度系数\(\tau\)对挖掘hard negative node的影响
hard negative node就是其表示与positive节点相似,即表示的相似性x在0到1之间
用数学方式分析了,当\(\tau\)在一定范围内的时候,hard negative node对梯度的贡献很大,能够有效的加快收敛
所以SGL也能够有效的挖掘hard negative node
之后分析了SGL的复杂度,主要优化思路是拿同一个batch的其他节点作为负样本,而不是整个图的节点作为负样本,复杂度略涨,但还是在可接受的范围内
标签:node,笔记,dropout,论文,视图,SGL,节点 From: https://www.cnblogs.com/anewpro-techshare/p/17685259.html