现有知识图谱(KG)的稀疏性和噪声使得项目-实体依赖关系偏离了反映其真实特征,从而显着放大了噪声效应,阻碍了用户偏好的准确表示。为了填补这一研究空白,作者设计了一个通用的知识图对比学习框架(KGCL),该框架可以减轻知识图增强推荐系统的信息噪声。
论文链接:https://doi.org/10.1145/3477495.3532009
代码链接:https://github.com/yuh-yang/KGCL-SIGIR22
本篇论文中涉及了知识图谱和对比学习相关理论,因此本篇文章先简要介绍一下知识图谱和对比学习以及其在推荐系统上的应用,然后再解释论文核心原理。
先导
知识图谱:
知识图谱(Knowledge Graph)是一种用于组织和表示知识的图形数据结构,旨在通过节点和边的方式来描述实体(如人、地点、事物)及其之间的关系。知识图谱的主要目的是为了以更加结构化和语义化的方式存储、管理和利用数据,从而帮助计算机理解人类的语言和世界。
核心概念
-
实体(Entity):
- 实体是知识图谱中的基本单元,表示现实世界中的“物体”,例如一个人、一个地点、一本书等。
-
关系(Relation):
- 关系用于描述实体之间的连接,例如“李白”是“唐朝”的“诗人”,“巴黎”是“法国”的“首都”等。
-
属性(Attribute):
- 属性是实体的特征或特性,例如一个人可以有“名字”、“年龄”等属性,一个城市可以有“人口”、“面积”等属性。
-
三元组(Triplet):
- 三元组是知识图谱的基本构建块,形式为
(实体1, 关系, 实体2)
,例如(李白, 是, 诗人)
或(巴黎, 位于, 法国)。
- 三元组是知识图谱的基本构建块,形式为
知识图谱在推荐系统中的作用
知识图谱通过提供丰富的上下文信息、实体关系和语义网络,有效缓解了上述挑战。它在推荐系统中的作用主要体现在以下几个方面:
1. 丰富的数据表示
知识图谱将用户、项目及其属性、关系以图的形式表示出来。例如,电影推荐系统中,一个电影可以通过知识图谱连接到导演、演员、类型、上映时间等多种属性。用户也可以通过他们的兴趣、职业、历史行为等属性进行表示。
2. 深度语义关联挖掘
通过知识图谱,推荐系统可以挖掘出深度语义关系。例如,用户喜欢某位演员的电影,那么系统可以推荐由同一演员主演的其他电影,甚至可以推荐与该演员风格相似的其他演员的电影。这种基于语义的关联挖掘使得推荐更具针对性和准确性。
3. 改善冷启动问题
对于新用户或新项目,由于知识图谱包含了丰富的属性和关系,即使没有大量的交互数据,推荐系统仍可以利用这些信息进行合理推荐。例如,通过用户的基本信息(如年龄、职业、兴趣爱好)在知识图谱中找到相似的用户,并基于此推荐相关内容。
4. 提供可解释性推荐
知识图谱能够提供推荐结果的解释。例如,如果系统推荐了某部电影,它可以通过知识图谱解释说“由于你喜欢的演员X出演了这部电影”或“这部电影与您喜欢的电影Y具有相似的主题”。
5. 多样化推荐
知识图谱可以帮助系统生成更加多样化的推荐结果。通过在知识图谱中探索不同的路径,系统可以推荐与用户兴趣相关但不直接相似的内容,避免推荐内容的单一化和重复性。
对比学习
1. 对比学习的核心思想
对比学习的基本目标是将相似的样本(正样本对)拉近,而将不相似的样本(负样本对)推远。通常,这些样本对的构造依赖于一些预定义的规则,例如:
- 正样本对:通常是同一图像或文本的不同变换(如不同角度、颜色扰动等)或同一类别的样本。
- 负样本对:是来自不同类别或不相关的样本。
模型通过优化损失函数来实现这一目标,常用的损失函数是对比损失函数(Contrastive Loss)或信息论视角的对比损失函数(如 InfoNCE)。
2. 对比学习的基本思想在推荐系统中的应用
对比学习的核心思想是通过拉近相似样本之间的距离,推远不相似样本之间的距离来学习有用的特征表示。在推荐系统中,这些“样本”可以是用户、物品、用户与物品的交互行为,或者用户的行为序列。
a. 用户与物品的表示学习
在推荐系统中,一个关键任务是为用户和物品生成高质量的向量表示。对比学习通过构建正样本对和负样本对,可以显著提升这些表示的质量。
- 正样本对:通常由用户与他们喜欢的物品组成。可以通过用户历史行为来构建,比如用户点击、购买、收藏等操作的物品都可以作为正样本。
- 负样本对:通常由用户与他们未交互过的物品或不感兴趣的物品组成。负样本的选择可以随机,也可以通过某种策略(如基于模型的预测)来选择。
b. 用户行为序列的对比学习
在推荐系统中,用户的行为序列(如浏览、点击、购买等)往往反映了用户的兴趣变化。对比学习可以通过对比不同时间窗口内的行为序列,学习到用户的动态兴趣表示。
- 正样本对:可以是同一用户在相近时间段内的行为序列,假设这些序列反映了相似的兴趣。
- 负样本对:可以是同一用户在不同时间段内的行为序列(假设兴趣变化较大),或者不同用户的行为序列(假设兴趣不同)。
这种方法可以帮助模型捕捉到用户兴趣的微妙变化,提高推荐的个性化程度。
KGCL核心原理解释
上图来自KGCL论文,是KGCL框架的核心架构。其中主要包括Knowledge Aggregation with Relation Heterogeneity(关系异质的知识聚合),Augmentation on Knowledge Graph Structures(知识图谱结构增强),Interaction Graph Augmentation(用户-项目交互图增强),Knowledge-aware Co-Contrastive Learning(知识感知协同对比学习)几个模块,以下将分别详细介绍其核心原理。
Knowledge Aggregation with Relation Heterogeneity(关系异质的知识聚合)
此处介绍的公式如下:
在消息聚合的一个组成部分中,xi,xe链接起来的三元组乘权重矩阵在通过激活函数后计算一个softmax权重乘以xe 各项求和后和xi加在一起。
图中激活函数为LeakyReLU函数。
Augmentation on Knowledge Graph Structures(知识图谱结构增强)
对于原知识图谱gk,通过随机增强的方式增强为两个视图n1gk和n2gk,增强的两个视图每一个三元组乘以一个MK1 MK2 代表知识图谱是否被选择,得到两个子图 计算子图对应原图的三元组消息聚合之后的余弦相似度,相似度高的认为对噪声影响比较小
Interaction Graph Augmentation(用户-项目交互图增强)
通过得到的知识图谱结构一致性数值ci,对其通过公式如下:
取指数,最大最小归一化,截断最小概率,并使用均值来衡量影响最后计算出衡量去掉user和item之间边的概率pui,然后通过公式6对影响小的边给删掉,然后得到新的增强的知识图谱。
Knowledge-aware Co-Contrastive Learning(知识感知协同对比学习)
从item语义和用户行为模式来破坏图结构,先获得n1gk和n2gk然后根据结构一致性参数ci来获得𝜑1gk 和𝜑2gk,此时以及获得了两个知识指导的破坏的知识图,然后使用lightgcn来编码特征,同时使用关系感知的知识聚合机制,通过多层训练捕获高阶特征,对于输入的特征向量依然使用图注意力机制,这个特征向量来替换lightgcn中的输入向量。
然后获得两个知识感知的图n1gk,𝜑1gk和n2gk,𝜑2gk 对两个图中的每一个节点进行对比学习,而后生成正对和负对,使用info损失函数改进对间距离,然后将其作为一个辅助的监督信号和图协同过滤一起进行推荐,具体来说,通过对比学习已经对两个破坏图的特征进行了修改,正对离得更近,负对里的更远,在本模型中最后的联合训练将两个图的相同节点可相加,拼接,或取其一来当作协同过滤辅助信号来进行推荐。
这个方法是22年提出来的,比较经典,以上就是其核心部分,别的部分说的都比较省略,如果需要的话还是看原创文章,本篇文章只介绍其核心创新点。以上纯属个人理解,如有侵权请联系删除。