图表示学习(KGAT-2019KDD)

2023-11-21 23:59
文章标签 学习 表示 kgat 2019kdd

本文主要是介绍图表示学习(KGAT-2019KDD),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
代码地址: https://github.com/xiangwang1223/knowledge_graph_attention_network.

介绍

CF方法具有有效性和通用性,但它无法对诸如项目属性、用户配置文件和上下文等辅助信息进行建模,因此在用户和项目很少交互的稀疏情况下,CF方法的性能很差。为了整合这些信息, ** 一种常见的方法是将它们与用户ID和项目ID一起转换成一个通用的特征向量,并将它们输入到一个监督学习(SL)模型中来预测分数。** 这样的SL推荐范式已经在业界得到了广泛的应用。有代表性的模型有因式分解机(FM)、NFM(neural FM)、Wide&Deep和xDeepFM等。
尽管这些方法提供了强大的性能,但不足之处在于它们将每个交互作为独立的数据实例进行建模,而没有考虑它们之间的关系。这使得它们不足以从用户的集体行为中提取基于属性的协作信号。如图1所示在这里插入图片描述
如图1所示,user u1和movie i1之间有一个交互,由person e1指导。CF方法关注同样观看i1的相似用户的历史,即u4u5;而SL方法则强调属性为i1的相似项目,即i2。显然,这两类信息不仅对推荐是互补的,同时也形成了目标用户和物品之间的高阶关系。然而,现有的SL方法并没有将二者统一起来,不能考虑高阶连通性,如黄圈内的用户观看同一人导演的其他电影,或灰色圈中的项目与e1有着其他共同关系。

为了解决基于特征的SL模型的局限性,一种解决方案是采用项目侧信息图(aka)。考虑知识图1,构建预测模型。将知识图和用户项图的混合结构称为协同知识图(CKG)。如图1所示,成功推荐的关键是充分利用CKG中的高阶关系,例如,远程连接性:
在这里插入图片描述

发现问题

目前,利用协同知识图谱(CKG, collaborative knowledge graph)进行推荐的工作可以分为两大类:

Path-based methods

在KG中提取携带高阶信息(high-order relation)的路径,并将其输入预测模型。为了解决两个节点间存在大量路径的问题,有两种方法:
  ①应用路径选择算法来选择突出的路径。
   缺点:没有针对推荐问题进行路径选择算法的优化
  ②自定义元路径模式来约束路径
   缺点:需领域知识来定义元路径,工作量很大

Regularization-based methods

设计附加的损失项来捕获KG结构,使推荐模型学习规范化。
缺点:由于这些方法是通过隐式编码的方式将高阶信息引入推荐模型中,缺乏明确的建模,导致难以捕获high-order relation,且缺乏一定的解释性。

针对目前存在的问题,该研究提出了KGAT模型。其主要有两个特点:
  ①递归的Embedding传播机制(GraphSAGE)
  通过邻居节点来更新当前节点的表示,并且该算法能够在线性的时间复杂度上进行递归来捕获高阶连接性(high-order connectivities)。
  
  ②基于注意的聚合
  利用注意力机制来学习传播过程中每个邻居的权重,使得这种权重可以揭示不同高阶连通的重要程度。

优越性:
  避免了Path-based中提取路径工作量大的问题
  避免了高阶相关性无法捕获的问题:显式地将高阶关系纳入预测模型,对所有相关参数进行定制以优化推荐目标。

问题定义

CKG可以视为 知识图谱(物品间的连接)和 用户-物品二部图(主要是用户和物品的交互)的统一。
在这里插入图片描述
在这里插入图片描述

高阶连通性

利用高阶连通性是实现高质量推荐的重要手段。形式上,我们将节点间的L阶连通性定义为一条多跳关系路径:
在这里插入图片描述
现有的CF和监督学习方法不能挖掘出这种高阶连接。
  如下图所示,当用户 u 1 u_1 u1和电影 i 1 i_1 i1之间有交互时,协同过滤的方法关注也观看过该电影 i 1 i_1 i1
​ 的相似用户,即 u 4 u_4 u4 u 5 u_5 u5
而监督学习方法(如FM、NFM等)则强调具有属性 e 1 e_1 e1
​的相似物品,即 i 2 i_2 i2
在这里插入图片描述
在这里插入图片描述

方法

KGAT模型如下图所示,主要包含三个部分:

Embedding Layer:通过保留CKG的结构将每个节点参数化为一个向量。

方法:TransR,优化:
  在这里插入图片描述
  在这里插入图片描述

e h e_h eh e t e_t et分别为头实体和尾实体在关系空间r上的投影表示。所以得分为:
在这里插入图片描述
W自然就是转移矩阵,大小为d×k。得分越低,意味着三元组越真实。反之亦然。通过有效三元组和无效三元组进行区分的思想,训练成对损失函数如下。该层相当于知识表示的regularizar,提升了模型的表示能力。
在这里插入图片描述

Attentive Embedding Propogation Layer

递归地传播节点邻居的Embedding信息以更新其表示,并利用知识感知的注意力机制在传播过程中学习每个邻居的权值

Information Propagation

对于实体h(head entity),通过 N h _h h={(h,r,t)∣(h,r,t)∈G} 表示三元组集合,称为ego-network。通过如下公式,这种线性组合的思想刻画了实体h的一阶连接结构。
在这里插入图片描述
其中π(h,r,t)控制在关系(h, r, t)中实体间传播的衰减系数,其作用是:显示出通过关系r有多少信息能够从t传播到h。

Prediction Layer:集成来自所有传播层的用户和物品的表示,并输出相应的预测评分

通过注意力机制对π(h,r,t)公式化如下。在relation上距离更近的实体间会传递更多的信息。
在这里插入图片描述
 通过softmax函数对所有与h相连的三元组的系数进行归一化
在这里插入图片描述
因此,最终的注意力得分能够提示哪些邻居节点应该被更多的关注来捕捉协作信号。

Information Aggregation

该模块的作用:将前两层的结果(实体表示e h _h h和 ego-network表示 e N _N N h _h h)进行集成,作为实体h新的表示形式:
在这里插入图片描述

  1. GCN Aggregator:
    在这里插入图片描述
  2. GraphSage Aggregator
    在这里插入图片描述
    ||为串联操作(变为长向量)
  3. Bi-Interaction Aggregator
    在这里插入图片描述
    在这里插入图片描述
    多层传播
    在第l步中,我们递归地将实体的表示形式表示为:
    在这里插入图片描述
    e l ^l l − ^- 1 ^1 1是实体h在 l l l−1层中的表示:通过上一步的信息传播,在 l l l−1层中获取到的邻居信息得到的实体表示。
    e l ^l l − ^- 1 ^1 1 N _N N h _h h表示:对于实体h,在l层的ego-network上传播的信息:
    在这里插入图片描述

Model Prediction

在这里插入图片描述
其中,用户和物品表示是通过layer-aggregation机制,将不同层的输出所强调的连接信息进行集成:
在这里插入图片描述

Optimization

通过BPR损失函数对推荐模型进行优化。优化的intuition是:观察到的交互表示出用户的偏好,那么相应就应该有更高的预测评分。在这里插入图片描述
结合KG的损失,得到最终目标函数:
在这里插入图片描述

训练

Adam:
于一批随机抽样的(h,r,t,t′),我们更新所有节点的嵌入;此后,我们随机抽样一批(u,i,j),经过L步传播后检索它们的表示,然后利用预测损失的梯度来更新模型参数。

实验

  1. RQ1:与最先进的知识感知推荐方法相比,KGAT的表现如何?
  2. RQ2:不同组件(即知识图嵌入、注意力机制和聚合器选择)如何影响KGAT?
  3. RQ3:KGAT能否就用户对物品的偏好提供合理解释?
数据集

http://jmcauley.ucsd.edu/data/amazon/
https://grouplens.org/datasets/hetrec-2011/
在这里插入图片描述
对于每个数据集,我们随机选取每个用户80%的交互历史作为训练集,剩余的作为测试集。从训练集中,我们随机选取10%的交互作用作为验证集来调整超参数。对于每个观察到的用户-项目交互,我们将其视为一个正实例,然后执行负采样策略,将其与一个用户之前没有消费的负项目配对。
KG建立:Wayne Xin Zhao, Gaole He, Hong-Jian Dou, Jin Huang, Siqi Ouyang, and Ji-Rong
Wen. 2018. KB4Rec: A Dataset for Linking Knowledge Bases with Recommender
Systems. CoRR abs/1807.11141 (2018)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
w/o表示禁用

这篇关于图表示学习(KGAT-2019KDD)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/406010

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个