前言
本文记录了我在学习推荐系统之MGGCF多图群组协同过滤时阅读论文产生的收获。
Title
多图群组协同过滤
Abstract
摘要:对于"将物品或者事件推荐给群组"的任务,目前的工作获得用户群偏爱的原因是它们聚集了相同用户群中某些个体用户的偏爱。然而,群、用户、物品这三者实际上被紧密地联系在一个更复杂的结构中,就比如相同的用户群不同的用户可能有不同的偏好。因此,用嵌入学习的方式来描述群、用户、物品的相互关系非常重要。为了解决这个问题,论文提出了MGGCF,它根据三个二分图精炼了群、用户、物品三者的表示方式。在它精炼这三者嵌入的同时,它不仅利于群推荐任务,也利于个体推荐任务。大量的实验在一个真实世界中的数据集和两个人造数据集上进行,实验结果证实了MGGCF对群推荐和物品推荐都意义重大,进一步的分析也证实了嵌入传播对于学习出更好的群用户物品表示的的重要性,这表明了MGGCF的合理性和有效性。
Introduction
- 网络上群组活动的趋势需要群组推荐系统
- 现有的群组推荐模型
- 第一种:权衡各个成员的偏好(可以分为基于记忆或者模型的方法)
- 基于记忆的方法
- 偏好汇总
- 分数汇总
- 基于模型的方法
- 为决策过程建模
- 缺点:在于没有对群组-用户-物品的协同信号进行编码,而自然的相关性是缺失的,因此嵌入向量不足以表达用户、群组、物品。
- 基于记忆的方法
- 第二种:将图神经网络模型应用于推荐系统
- 仅仅运用用户-物品交互信息来构建图形
- 结合了相关知识图谱的信息???(这里因为没看过论文,不了解提到的方法)
- 利用社会网络
- 第一种:权衡各个成员的偏好(可以分为基于记忆或者模型的方法)
- 论文提出的MGGCF
- 第一次将图神经网络应用到群组推荐系统领域
- 将群组-用户-物品图分成了三个子图,然后充分利用了三个嵌入传播层,将协同信号集成到group、user、item的嵌入向量中
- 用了大量实验来证明
Method
- 符号和问题表示:
- 任务描述:对于给定的群组或者用户,我们要给出推荐的物品列表 (这应该就是topK问题?)
- 抽象:输入的是用户、群组、物品各自的集合,它们的两两交互矩阵,模型要给出群组或用户的个性化排序函数:从物品集I映射到评分R
- 用矩阵来表示用户、群组和物品之间的两两交互
- 对矩阵的思考:交互矩阵是已知的吗?还是需要求的?
- 交互矩阵是已知的,但需要从原始的数据集中提取出信息,精炼成交互矩阵。并非需要传播的参数
- 对交互的思考:
- 论文中构建的总图及其子图是对矩阵抽象的结果,把数据集中的数据抽象成图形,使图形蕴含有交互信息
- 根据交互矩阵,对这篇论文的猜想:
- 我们要求的是不是就是类似于矩阵分解的u-i、u-g、i-g交互矩阵中u_j和i_j和g_j的嵌入向量?那么图嵌入与传统协同过滤的区别是不是就在于图嵌入增加了item-group,group-user的部分?与传统协同过滤(将user-item的嵌入向量进行内积得到评分的方法)相比,图嵌入怎么利用三个交互矩阵对应的嵌入进行评分呢?
- 对矩阵的思考:交互矩阵是已知的吗?还是需要求的?
- 先从简单的单图讲起:
- 一个嵌入层:分别初始化群组、用户、物品
- 一个嵌入传播层:从总图中(注意是总图,也就是说单图并没有运用子图)聚集邻接点的信息
- 对交互信息方式的思考:单图没有运用子图,那单图的交互矩阵是什么样的?(因为图本质上是矩阵的抽象,实际操作还是对交互矩阵进行操作)?聚集邻接点的信息又是什么意思呢?
- 通过以上的思考,我们可以知道,总图有点复杂(因为它包含了群组、用户、物品三种对象的信息),于是我就在想:“总图的交互矩阵该怎么表示呢,怎么用二维的矩阵表示三维对象呢”,但是,“单图利用总图的信息的方法是通过总图的交互矩阵”这件事就是个陷阱,因为不仅图是抽象的表现,连矩阵也是抽象的表现,我们运用矩阵只是想利用矩阵并行计算的良好性质,矩阵是我们的抽象方法,不能陷入矩阵的思维怪圈),实际上,单图的嵌入传播层要直接利用总图的信息,这件事很简单,直接通过总图中的邻接点就可以了,具体的实现要回到我们的任务本源:**对于给定的群组或者用户,我们要给出推荐的物品列表,**看这样一个例子:假设我们输入一个特定的用户u2,要给出针对u2的推荐物品列表,邻接点的信息就是与u2有边相连的点(有i1,i3,i5,g1,g2)
- 我们知道了给定的对象以及其邻接点信息的含义,那么如何操作呢?
- 论文中说这里的操作部分和多图中的类似,就放在多图中讲。
- 对交互信息方式的思考:单图没有运用子图,那单图的交互矩阵是什么样的?(因为图本质上是矩阵的抽象,实际操作还是对交互矩阵进行操作)?聚集邻接点的信息又是什么意思呢?
- 一个预测分数层:如何预测?
- 单图的缺陷:由上述b.可知,单图的嵌入传播层运用的信息来自于总图而不是子图,直接提取邻接点的信息(例如u2的邻接点有i1,i3,i5,g1,g2)导致单图不区分邻接点信息的类别,这会忽略 邻接点与u2 之间的关系类别对传播造成的影响,因为物品和群组分别对于u2的意义肯定是不同的。
- 再过渡到多图:
- 考虑到上述单图的缺陷,MGGCF把总图拆分为三个子图,把三种关系类型独立出来
-
whole method:
- Embedding Layer:初始化嵌入向量
- Subgraph:
- 对上图中粉色部分的思考:从[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TF6HxNQC-1679813525848)(null#card=math&code=e_{g_2}^{(0)]}&id=EB2tc)连接到Group-Item Subgraph的这部分是什么操作?
- 解答:就是利用子图的邻接点信息(更具体的说:比如输入g2,这部分就是找到Group-Item Subgraph中g2的邻接点)
- 对上图中粉色部分的思考:从[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TF6HxNQC-1679813525848)(null#card=math&code=e_{g_2}^{(0)]}&id=EB2tc)连接到Group-Item Subgraph的这部分是什么操作?
- Embedding Propagation Layer:
- Propagation Module传播模块(来自于NGCF):
- 抽象:只抽象出两个对象i和j(i和j之间有边连接,用(i, j)表示)
- 思考:该模块对u2和其邻接点进行操作,其运算方式是什么?(简单内积还是?)
- 对b. 思考的解答:两个操作部分
- information propagation:
- 计算:
- 公式m计算出j对于i的信息
- 计算:
- information aggregation:
- LeakyReLU累计i的所有邻接点的信息
- information propagation:
- 多个Propagation Module传播模块之间的连接:
- 连接方式:
- 思考:propagation进行了三层,分别指什么?每一层的作用是什么?三层之间有交互吗?需要对三层各自得到的结果进行综合再得到最后的结果吗?
- 方式:前一个传播模块的输出作为后一个传播模块的输入,共三个传播模块堆叠
- 合理性:将[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9t6Eswpw-1679813525931)(null#card=math&code=e_{i}{(0)]}&id=gEfy8)输入一个传播模块,经过传播层和聚集层之后得到的输出是更高阶的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-48z6BOq4-1679813525938)(null#card=math&code=e_{i}{(1)]}&id=nJjHl),所以格式仍然是嵌入向量,可以继续进入下一个传播模块
- 训练的参数:
- W1和W2
- 困惑:所以嵌入向量本身不是需要被训练的参数?只需要训练W权重,然后通过公式m和多个传播模块优化嵌入向量?
- 作用:实现高阶邻接点信息的传播
- 困惑:传播到底是什么?这里的传播模块与梯度传播的关系?看上去这里的传播模块就已经在优化嵌入向量了,感觉和梯度传播有点类似?
- 连接方式:
- Embedding Propagation Layer最终的输出
- 思考:多个传播模块有多个输出,再加上最初的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QSoBUTIr-1679813525871)(null#card=math&code=e_{i}^{(0)]}&id=sQXJ4),如何聚集成一个最终的输出?
- Propagation Module传播模块(来自于NGCF):
- Aggregation Layer:
- 对于对象i,经过两个子图及其嵌入传播层得到两个嵌入向量,Aggregation Layer的操作就是直接相加,得到最终的嵌入向量[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g5HKVM1u-1679813525888)(null#card=math&code=e_{i}&id=VFUl3)]
- 预测和训练:
- 预测:g-i或者u-i简单内积
- 损失函数:贝叶斯损失
- 之前没注意到的一个点:协同过滤算法是要利用两个对象的相关性。总图中例如u2的邻接点是i1和i5,这种关系我认为是非常隐性的,因为在原始的数据集中,i1和i5并没有直接的、自然的关系,而我们构造的图是对数据集抽象之后得来的,图的边表示i1和i5具有协同性(因为它们都与u2进行了交互),所以这里使用贝叶斯损失(目标是将i1和i5的差异减小)
- 模型的参数:嵌入向量、各个子图的两个权重(原本三个子图共有六个权重,gi和ui共用两个,因此总共四个)
- 思考:由于群组-物品子图和用户-物品子图中存在的边的类型相同,因此我们共享对应于群组-物品子图和用户-物品子图的两个嵌入传播层的参数矩阵。
- 解释:g-i和u-i的关系类型都是对item的交互,论文认为这种边的类型是相同的,所以用相同的权重
- 思考:由于群组-物品子图和用户-物品子图中存在的边的类型相同,因此我们共享对应于群组-物品子图和用户-物品子图的两个嵌入传播层的参数矩阵。
- 采用小批量Adam对预测模型进行优化,并对模型参数进行更新。
-
单图与多图的区别
- 思考:单图和多图在嵌入传播方面的区别是是单图将三种类型混在一起操作、多图将三种类型独立开分别进行操作吗?
- 对a. 思考的解答:可以这么说。实际上单图就不区分关系类型了,是将所有的邻接点一视同仁。
Conclusion
在这个工作中,我们介绍了图神经网络模型来解决群推荐任务。特别地,我们提出了一个多图群协同过滤。MGGCF的关键是嵌入传播层的应用和群-用户-物品图的分离。这个嵌入传播层利用了协同过滤信号和群用户物品图的分离,有利于分清嵌入层传播过程中的关系类型。在三个数据集上进行的大量实验证明了MGGCF的有效性和合理性。这个工作代表了用图神经网络模型解决群推荐系统的最初尝试,我们将努力尝试在群推荐领域提出更多类似于图注意力网络的图神经网络模型。